Criar fichas e referência do RPG Desk. As seções Criar fichas e Referência da documentação do RPG Desk: tudo o que se usa para escrever fichas e tabelas da mesa em HTML, CSS e JavaScript com o rpgdesk.js.
# Criar fichas
> Fichas e tabelas da mesa feitas em HTML, CSS e JavaScript, à mão ou com ajuda de uma IA.
Página: https://docs.rpgdesk.com/fichas/
No RPG Desk, uma ficha é uma página web: **HTML** para os campos, **CSS** para o visual e, se precisar, **JavaScript** para as contas. O **rpgdesk.js**, a biblioteca do RPG Desk, liga a página à mesa:
- o que o jogador escreve fica guardado na mesa e aparece na hora para o mestre;
- os botões de rolagem rolam no chat, com os dados 3D, para todos;
- só o dono da ficha e os mestres escrevem; os outros só leem, e o rpgdesk.js trava os campos sozinho;
- partes da ficha podem ser só do mestre, e elas nem chegam aos jogadores.
A ficha abaixo está funcionando. Escreva nos campos e clique em **Rolar Força**:
*Exemplo funcionando:* [Ficha mínima](https://docs.rpgdesk.com/exemplos/ficha-minima.html)
Ela não tem nenhuma linha de JavaScript: cada campo tem um atributo `data-field`, e cada botão de rolagem, um `data-roll`.
## Três jeitos de fazer
**Com uma IA**
Copie o guia do RPG Desk para a IA (o ChatGPT, o Claude, o Gemini…), descreva a ficha e instale o arquivo que ela devolver. Veja [Criar com uma IA](https://docs.rpgdesk.com/fichas/com-ia/).
**À mão, num arquivo só**
Um arquivo `.html`, com o manifesto dentro e as duas linhas do rpgdesk.js. Comece pelo [tutorial](https://docs.rpgdesk.com/fichas/primeira-ficha/).
**Num pacote**
Vários arquivos (HTML, CSS, JavaScript, imagens, fontes) num `.zip`, com mais de uma ficha ou tabela. Veja [Pacotes com vários arquivos](https://docs.rpgdesk.com/fichas/pacotes/).
## Do arquivo à mesa
1. **Teste no navegador:** abra o arquivo da ficha (dois cliques). Fora do RPG Desk, o rpgdesk.js entra no **modo de teste**, com os dados no navegador e uma faixa no canto para trocar de papel.
2. **Instale na mesa:** como mestre, em **Configurações da mesa → Plugins → Instalar plugin…**, escolha o `.html` (ou o `.zip`). O RPG Desk confere o arquivo e diz o que consertar, se for o caso.
3. **Use:** a ficha aparece em **Nova ficha…**, na biblioteca.
> **Dica**
>
> Fichas e tabelas são a mesma coisa por dentro. Uma **tabela da sala** (uma lista de NPCs, um calendário) é uma página igual, que fica embaixo da biblioteca para a mesa toda. Veja [Tabelas da sala](https://docs.rpgdesk.com/fichas/tabelas/).
## Nesta seção
[A primeira ficha](https://docs.rpgdesk.com/fichas/primeira-ficha/): O tutorial: do arquivo vazio à ficha instalada na mesa.
[Criar com uma IA](https://docs.rpgdesk.com/fichas/com-ia/): O guia para a IA, o pedido e como consertar o que vier errado.
[Campos, listas e abas](https://docs.rpgdesk.com/fichas/campos/): Tudo o que se faz só com atributos no HTML.
[JavaScript na ficha](https://docs.rpgdesk.com/fichas/javascript/): O documento, os campos calculados e as listas pelo código.
[Rolagens, chat e cartão](https://docs.rpgdesk.com/fichas/rolagens-e-chat/): Rolar, falar no chat e preencher as barras do jogador.
[Partes privadas](https://docs.rpgdesk.com/fichas/partes-privadas/): O que só o mestre ou só o dono vê.
[Tabelas da sala](https://docs.rpgdesk.com/fichas/tabelas/): Páginas para a mesa toda: NPCs, iniciativa, mapas de viagem.
[Visual](https://docs.rpgdesk.com/fichas/visual/): O rpgdesk.css, as cores do tema e as telas estreitas.
[Pacotes com vários arquivos](https://docs.rpgdesk.com/fichas/pacotes/): O .zip com manifest.json, imagens e fontes.
[Testar e desenvolver](https://docs.rpgdesk.com/fichas/desenvolvimento/): O modo de teste, o modo de desenvolvimento e os erros da página.
[Webhooks na ficha](https://docs.rpgdesk.com/fichas/webhooks/): Mandar dados para o Zapier, o Make ou o IFTTT.
[Novas versões](https://docs.rpgdesk.com/fichas/versoes/): Atualizar a ficha sem perder os dados dos jogadores.
[Exemplos](https://docs.rpgdesk.com/fichas/exemplos/): Fichas e uma tabela prontas, para usar e estudar.
Para consultar os detalhes, a [Referência](https://docs.rpgdesk.com/referencia/) tem o manifesto, os atributos, a API do rpgdesk.js, o verificador e os limites.
# A primeira ficha
> O tutorial: do arquivo vazio a uma ficha com campos, rolagens, uma lista e um campo calculado, testada no navegador e instalada na mesa.
Página: https://docs.rpgdesk.com/fichas/primeira-ficha/
Neste tutorial você faz uma ficha simples, a do jogo “Aventura Rápida”: nome, nível, dois atributos com o modificador calculado, um botão de rolar para cada um e uma lista de equipamento. Você só precisa de um editor de texto (o Bloco de Notas serve; o VS Code é melhor) e do navegador.
## 1. O esqueleto
Crie um arquivo chamado `minha-ficha.html` com isto:
`minha-ficha.html`
```html
Herói
```
Três partes:
- **O manifesto**, o `
```
`doc.compute` grava `mod_forca` sempre que `forca` muda. É o jeito certo de guardar valores calculados: veja [JavaScript na ficha](https://docs.rpgdesk.com/fichas/javascript/#campos-calculados).
## 6. Uma lista
Para o equipamento, uma lista em que cada item tem os seus campos:
```html
Equipamento
```
O `` é o molde de cada item. Dentro dele, `data-field="nome"` é o nome **do item**, não o do personagem. `data-list-add` acrescenta um item vazio; `data-list-remove` tira o item dele.
## 7. Pronto
Juntando tudo, a ficha fica assim:
*Exemplo funcionando:* [Aventura Rápida](https://docs.rpgdesk.com/exemplos/primeira-ficha.html)
`minha-ficha.html`
```html
Herói
Atributos
Modificador:
Modificador:
Equipamento
```
## 8. Instalar na mesa
1. Entre na sua mesa como mestre e abra **Configurações da mesa → Plugins**.
2. **Instalar plugin…** e escolha o `minha-ficha.html`.
3. O RPG Desk confere o arquivo. Se aparecer um problema, o diálogo diz como consertar (veja [O verificador](https://docs.rpgdesk.com/referencia/verificador/)). Sem erros, clique em **Instalar**.
4. Na biblioteca, **Novo item → Nova ficha…** mostra o sistema **Herói**, da **Aventura Rápida**.
Mudou a ficha? Suba a `version` no manifesto (`1.0.1`) e instale de novo: o RPG Desk atualiza o plugin, e as fichas já criadas mantêm os dados. Veja [Novas versões](https://docs.rpgdesk.com/fichas/versoes/).
> **E agora?**
>
> - Abas, imagens, caixas de marcar e listas mais ricas: [Campos, listas e abas](https://docs.rpgdesk.com/fichas/campos/).
> - A vida no cartão do jogador: [Rolagens, chat e cartão](https://docs.rpgdesk.com/fichas/rolagens-e-chat/#o-cart%C3%A3o-do-jogador).
> - Notas que só o mestre vê: [Partes privadas](https://docs.rpgdesk.com/fichas/partes-privadas/).
# Criar com uma IA
> Fazer a ficha do seu sistema com ajuda de uma IA: o guia do RPG Desk, o pedido, o teste e como consertar o que vier errado.
Página: https://docs.rpgdesk.com/fichas/com-ia/
Você não precisa saber programar para ter a ficha do seu sistema. Uma IA de conversa (o ChatGPT, o Claude, o Gemini…) escreve a ficha inteira, se ela souber as regras do RPG Desk. Essas regras estão no **guia para IA**: você cola o guia no começo da conversa e descreve a ficha.
## O guia para IA
Dois jeitos de pegar o guia:
- **No RPG Desk:** dentro da sua mesa, como mestre, em **Configurações da mesa → Plugins**, clique em **Copiar instruções para IA**. O guia vai para a área de transferência, na língua do RPG Desk e com o endereço do rpgdesk.js do seu servidor.
- **Aqui no site:** [baixe o guia em português](https://docs.rpgdesk.com/_sdk/1/guia-ia.md) ou [em inglês](https://docs.rpgdesk.com/_sdk/1/ai-guide.md), e cole o conteúdo do arquivo.
*Captura de tela:* Os botões Instalar plugin e Copiar instruções para IA, em Configurações, Plugins.
O guia explica à IA o formato do arquivo, as regras do ambiente (sem internet, bibliotecas só dentro do pacote), os atributos, a API do rpgdesk.js e traz um exemplo completo.
## A documentação para a IA
O guia resume as regras. Para a IA consultar os detalhes (todos os atributos, a API do rpgdesk.js, os códigos do verificador), esta documentação também existe em arquivos de texto feitos para IA, no padrão [llms.txt](https://llmstxt.org):
- [`llms-fichas.txt`](https://docs.rpgdesk.com/llms-fichas.txt): as seções Criar fichas e Referência num arquivo só. É o que mais ajuda para escrever fichas: se a IA aceita arquivos, anexe-o à conversa junto com o guia.
- [`llms-full.txt`](https://docs.rpgdesk.com/llms-full.txt): a documentação inteira.
- [`llms.txt`](https://docs.rpgdesk.com/llms.txt): o índice, com um link para cada página. Se a IA consegue abrir endereços da internet, mande o endereço dele: ela acha o resto a partir daí.
Cada página do site também existe em Markdown: troque a barra do fim do endereço por `.md` (`/fichas/campos/` vira `/fichas/campos.md`).
## Pedir a ficha
1. Abra uma conversa nova com a IA.
2. Cole o guia e, logo depois, descreva a ficha. Quanto mais concreto, melhor:
```text
Faça a ficha do meu sistema, "Lâminas do Sertão".
- Identidade: nome, origem, ofício, nível (1 a 10) e um retrato.
- Atributos: Força, Agilidade, Mente e Coragem, de 1 a 5. Cada um com um botão
que rola 2d6 + o atributo.
- Vida: atual e máxima (máxima = 10 + Força x 2, calculada). A vida vai para a
barra 1 do cartão do jogador.
- Perícias: uma lista com nome e bônus, e um botão de rolar 2d6 + bônus.
- Inventário: uma lista com item e quantidade.
- Uma aba "Mestre", só para os mestres, com anotações.
Cores: tons de areia e couro. Tem que caber num espaço estreito.
```
3. Peça **o arquivo `.html` inteiro**. Salve a resposta num arquivo com a extensão `.html` (`sertao.html`).
## Testar
Abra o arquivo no navegador (dois cliques). Fora do RPG Desk, a ficha entra no **modo de teste**: preencha os campos, clique nos botões de rolar e veja o **Registro**, na faixa do canto. Troque o **Papel** para **Outro jogador** e confira se os campos travam. Veja [Testar e desenvolver](https://docs.rpgdesk.com/fichas/desenvolvimento/).
Algo errado ou faltando? Diga à IA o que aconteceu, com detalhes (“o botão de Agilidade rola 1d20, não 2d6”; “o retrato não aparece”), e peça o arquivo inteiro de novo.
## Instalar e consertar
Instale em **Configurações da mesa → Plugins → Instalar plugin…**. O RPG Desk confere o arquivo antes:
*Captura de tela:* O diálogo de instalação com dois erros e um aviso, cada um com como consertar, e o botão Copiar relatório.
- Se aparecerem problemas, clique em **Copiar relatório** e cole na conversa com a IA: o relatório diz o que está errado, em que linha e como consertar, num texto que a IA entende.
- Já instalada, se a ficha mostrar um aviso de **Erros da página** (o triângulo no canto), clique nele, em **Copiar erros**, e cole na conversa também.
*Captura de tela:* Uma ficha com o painel Erros da página aberto, mostrando um TypeError, e os botões Copiar erros e Limpar.
> **Dicas**
>
> - Peça uma coisa de cada vez: primeiro a ficha básica, depois as abas, depois as contas.
> - Lembre a IA de subir a `version` a cada mudança (`1.0.0`, `1.0.1`…): assim o RPG Desk sabe que é uma atualização. Veja [Novas versões](https://docs.rpgdesk.com/fichas/versoes/).
> - Se a conversa ficou longa e a IA começou a esquecer as regras, abra outra conversa, cole o guia e o arquivo atual, e continue de onde parou.
> - A IA não vê a tela. Uma captura do problema, quando a IA aceita imagens, ajuda muito.
# Campos, listas e abas
> Tudo o que se faz só com atributos no HTML: campos de todos os tipos, textos calculados, imagens, listas, abas e o que cada papel vê.
Página: https://docs.rpgdesk.com/fichas/campos/
O rpgdesk.js liga sozinho os atributos `data-…` da página, inclusive nos elementos que aparecem depois (os itens de uma lista, por exemplo). Uma ficha inteira pode ser feita sem JavaScript. A tabela completa está em [Atributos no HTML](https://docs.rpgdesk.com/referencia/atributos/).
A ficha abaixo usa quase tudo desta página: o retrato, os campos, os modificadores calculados, as abas, a lista do inventário e a aba do mestre. Troque o **Papel** na faixa do canto para ver o que cada um vê.
*Exemplo funcionando:* [D20 Genérico](https://docs.rpgdesk.com/exemplos/d20-generico.html)
## O documento e os caminhos
Cada ficha tem um **documento**: os campos e os valores dela, guardados na mesa. Cada campo tem um **caminho**:
- `nome`, `nivel`, `forca`: campos soltos;
- `atributos.forca`, `pv.atual`, `pv.max`: campos dentro de um grupo, separados por ponto.
As regras dos nomes:
- letras **sem acento**, números e `_`, começando por letra ou `_`: `forca`, não `força`;
- maiúsculas não contam: `Forca` e `forca` são o mesmo campo;
- até 64 caracteres por nome e 12 níveis de grupo;
- nomes que começam com `_rpgdesk` são do RPG Desk.
O verificador avisa de um nome errado antes de instalar. Veja [O verificador](https://docs.rpgdesk.com/referencia/verificador/).
## Campos: `data-field`
Vai num ``, `