Aprenda a criar módulos e sistemas
Escolha o que quer construir e siga do primeiro arquivo ao recurso funcionando na mesa.

Escolha o resultado que você quer entregar
Consulte o mapa completo de capacidades para localizar cada método, operação, superfície e família do Map Builder.
| Quero construir | Tutorial | O que vou conseguir testar |
|---|---|---|
| Meu primeiro módulo | Criar, instalar e atualizar um módulo do zero | Botão na mesa, leitura autorizada e modal nativo |
| Uma ferramenta de diário | Como criar um módulo de diário | Criar um diário e acrescentar uma seção pela interface do módulo |
| Uma ação na ficha existente | Como criar um módulo que atua na ficha | Editar um nome preservando os dados da ficha, inclusive snapshots de token |
| Uma biblioteca criada pelo módulo | Como criar um módulo de compêndio | Criar pack, capturar conteúdo, ler entrada e importar uma cópia |
| Conteúdo que acompanha meu sistema | Como incluir compêndios em um sistema | Instalar um único ZIP com sistema, JSONs e três packs originais |
Comece pelo primeiro tutorial se ainda não instalou um módulo próprio. Os casos acima são pontos de entrada. O catálogo completo abaixo também ensina personagens, itens, cenas, tokens, combate, cartas, áudio, chat/dados, missões, tabelas de rolagem, arquivos, armazenamento, tradução, janelas e servidor. Cada página mostra arquivos necessários, o que mudar, instalação, ativação e resultado a conferir. Use campanha de desenvolvimento e conteúdo original.
Todos os projetos e suas receitas
Todas as capacidades de extensão e onde implementá-las: Mapa explícito de cada método para seu projeto, helpers, superfícies, integrações de servidor e limites da release.
Como criar um pacote de sistema original completo: Um ZIP instalável com fichas de ator/token funcionais, tipos de item, iniciativa armazenada e três packs originais.
Como criar um módulo de diário: Crie, instale e execute um módulo comum que cria diários privados e acrescenta rascunhos de sessão persistentes.
Como criar um diário do zero por um módulo: Use create pelo formulário table.interface e abra o documento privado criado.
Como criar um módulo que atua na ficha: Comece com uma pasta vazia e entregue uma ação real para renomear atores e tokens na ficha existente.
Como criar e substituir uma ficha completa de sistema: Use o pacote funcional Example Expedition, instale, crie atores e verifique tokens vinculados e independentes.
Como criar um módulo de compêndio: Monte o pacote completo a partir de pasta vazia, instale e confira seu conteúdo original.
Como incluir compêndios em um sistema: Monte o pacote completo a partir de pasta vazia, instale e confira seu conteúdo original.
Como criar um módulo de ferramentas de cena: Monte módulo que consulta camadas, edita metadados/pastas, cria uma porta nativa e transmite cena de teste.
Como criar um módulo de ferramentas de token: Coloque, mova, duplique, configure e remova tokens; controle visão, ocultação e condições com duração.
Como criar um módulo de ferramentas de combate: Crie laboratório de encontro com participantes, iniciativa, ordem, estados, turnos, rodadas e limpeza.
Como criar ferramentas de itens e inventário: Crie, organize, duplique, compartilhe e edite itens originais com revisões e permissões nativas.
Como criar ferramentas de cartas e baralhos: Crie definições reutilizáveis, compre, revele, mova, transfira e reúna cartas com posse real.
Como criar ferramentas de áudio e trilha da cena: Configure faixas nativas, playlists, fontes espaciais, vozes da cena e trilhas temporizadas com revisões corretas.
Como criar ferramentas de chat, dados e prontidão: Crie um módulo funcional para mensagens, rolagens, moderação, busca de documentos e atualização da prontidão.
Como criar automações de missões e ações de quadro: Crie e leia uma missão real, avance objetivos, atribua atores e gerencie todos os vínculos do quadro.
Como criar, sortear e restaurar tabelas de rolagem: Crie uma tabela de diário original, altere um peso preservando dados e publique sorteios nativos com ou sem reposição.
Como criar, organizar e compartilhar documentos de diário: Crie diários ricos nativos, preserve páginas ao editar, organize pastas e controle acesso e apresentações.
Criar um módulo de personagens e pastas: Criar, organizar, renomear e autorizar atores com tipos do sistema.
Salvar configurações e preferências do módulo: Implementar JSON pessoal, compartilhado e local com revisões e descarte.
Enviar e usar arquivos de módulos e campanhas: Usar File/Blob, imagens de ator, cartas, provedores nativos e downloads.
Traduzir um módulo e reagir a eventos: Ler arquivos do pacote, traduzir interface e assinar eventos sem acumular listeners.
Manter módulo que usa o SDK original host.call: DTOs concretos de ator/token, revisões opacas e os demais contratos multipart/locais.
Criar formulários Customize e janelas nativas do módulo: Formulário completo com migração, CAS, traduções, ciclo de modal e montagem em preferences.
Criar integração Django confiável e hooks de servidor: App Python completo com rotas autenticadas, alterações nativas e sinais depois do commit.
Como criar e ativar um pacote de idioma da instalação: Empacote seis textos originais, ative globalmente, escolha o idioma da conta e confira a alternativa em inglês.
Como versionar, assinar e distribuir um módulo: Prepare ZIPs imutáveis, confira registros Ed25519 e entenda instalação, ativação e revogação.
Antes de escolher um “tipo de módulo”
“Diário”, “ficha” e “compêndio” descrevem o que seu módulo faz. Não são valores para colocar em um campo kind do manifesto. Um módulo de diário é um pacote comum que registra journal.sheet e usa journals. Uma ação de ficha registra actor.sheet e token.sheet. Uma biblioteca pode ser criada como conteúdo da campanha pela API. Um sistema com catálogo declara system e content.compendiums no mesmo manifesto.
| Decisão | Escolha |
|---|---|
| Acrescentar um botão ou painel | mode: augment, mantendo a interface existente |
| Desenhar a ficha do próprio sistema | mode: replace e tipos do sistema, como no sistema de exemplo |
| Salvar dados de um diário/ator | API pública do documento, usando a revisão lida |
| Salvar uma preferência do módulo | Armazenamento do módulo, sem sobrescrever o documento |
| Distribuir catálogo com um sistema | Arquivos físicos no ZIP e content.compendiums |
O ciclo completo de desenvolvimento
Defina uma ação observável: “clicar no botão cria uma seção”, por exemplo. Escolha um recurso que o contrato da release 0.3.0 realmente permite alterar.
Crie uma pasta com manifest.json, a entrada JavaScript, estilos e licença. O manifesto aponta para arquivos; ele não executa a ação sozinho.
Implemente start/register/stop. Use o root e o api da montagem; registre a superfície onde a ferramenta deve aparecer.
Faça um ZIP com o manifesto na raiz. O dono instala esse ZIP na instalação de teste.
O GM ativa a versão exata na mesa. Um sistema também precisa ser escolhido como sistema da campanha.
Abra a janela ou diretório que recebe a montagem. Execute a ação e confirme o documento salvo, não apenas uma mensagem de sucesso.
Teste leitura, conflito, cancelamento e jogador. Uma versão instalada é imutável: altere a versão do pacote antes de instalar novos bytes.
Quando consultar a referência
Os tutoriais ensinam o fluxo completo. Use Exemplos por kind para variar um contrato e a referência de módulos para limites e assinaturas. O guia de API detalha os métodos. Se uma ideia não cabe na release solicitada, descreva a limitação antes de inventar um endpoint ou exigir um novo host.
Como usar a IA para começar um módulo
Quero construir [ação concreta] no Gravewright 0.3.0. Parta do tutorial [link] e de seu ZIP. Antes de escrever, mostre qual superfície monta a ferramenta, qual API grava o recurso e onde o pacote será instalado/ativado. Entregue a árvore completa, todos os arquivos, instruções de instalação e passos de teste com resultado observável. Preserve revisões, permissões, seções privadas e snapshots. Não crie um kind de manifesto nem uma API inexistente.