O manifesto
O manifesto diz ao RPG Desk o que o plugin é. Ele vai:
- num arquivo
.htmlúnico, dentro do<head>:<script type="application/rpgdesk+json" id="rpgdesk-manifest">{ … }</script>; - num pacote
.zip, no arquivomanifest.json, na raiz.
Ele é JSON: aspas duplas, sem comentários e sem vírgula depois do último item. O JSON Schema, para o
editor ajudar, está em https://docs.rpgdesk.com/_sdk/1/manifest.schema.json (use em "$schema").
Exemplo
Seção intitulada “Exemplo”{ "rpgdesk": 1, "id": "com.seunome.sistema", "name": { "pt": "Meu Sistema", "en": "My System" }, "version": "1.2.0", "author": "Seu nome", "description": "Ficha e tabela de NPCs do Meu Sistema.", "sdk": 1, "icon": "icone.svg", "sheets": [ { "type": "com.seunome.sistema.ficha", "title": "Personagem", "entry": "ficha.html", "private": { "mestre": "gm" } } ], "tables": [ { "type": "com.seunome.sistema.npcs", "title": "NPCs", "entry": "npcs.html" } ], "webhooks": [ { "name": "rolagens", "description": "Cada rolagem da ficha", "example": { "total": 17 } } ]}Os campos
Seção intitulada “Os campos”| Campo | Obrigatório | O que é |
|---|---|---|
rpgdesk |
sim | a versão do formato do manifesto: 1 |
id |
sim | o identificador do plugin: minúsculas, números, ., - e _, começando por letra ou número (até 120). Use um domínio invertido: com.seunome.sistema |
name |
sim | o nome do plugin (até 120), num texto ou por língua (veja abaixo) |
version |
sim | maior.menor.correção, como 1.0.0. Suba a cada mudança |
sdk |
sim | a versão maior do rpgdesk.js: 1 |
author |
não | quem fez (até 120) |
description |
não | o que o plugin traz (até 1000). Aparece na instalação e na lista de plugins |
sheets |
um dos dois | as fichas (veja abaixo) |
tables |
um dos dois | as tabelas da sala (veja abaixo) |
webhooks |
não | os webhooks que o plugin usa (veja abaixo) |
icon |
não | um .png ou .svg do pacote |
$schema |
não | o endereço do JSON Schema, para o editor |
Um campo que o RPG Desk não conhece gera um aviso, e é ignorado.
Fichas e tabelas
Seção intitulada “Fichas e tabelas”sheets e tables são listas. Cada item:
| Campo | O que é |
|---|---|
type |
o tipo de dado da ficha ou tabela: começa com o id do plugin e um ponto (com.seunome.sistema.ficha), com os mesmos caracteres do id (até 120). Não mude depois de publicar |
title |
o nome que aparece em Nova ficha… ou na aba da tabela (até 120), num texto ou por língua |
entry |
só no pacote: o HTML da ficha ou tabela, dentro do pacote (ficha.html). No arquivo único, a entrada é o próprio arquivo |
private |
só nas fichas: as partes privadas, { "caminho": "gm" | "owner" }. Veja Partes privadas |
- O plugin precisa de pelo menos uma ficha ou tabela, e tem no máximo 20.
- Um arquivo
.htmlúnico traz uma ficha ou uma tabela. - Cada
typeaparece uma vez.
Webhooks
Seção intitulada “Webhooks”webhooks é uma lista (até 20). Cada item:
| Campo | O que é |
|---|---|
name |
o nome que a página usa em RPGDesk.webhooks.send(nome, dados): minúsculas, números, - e _ (até 40) |
description |
o que o webhook manda, para o mestre (até 300) |
example |
opcional: um exemplo dos dados, até 4 KB em JSON |
Veja Webhooks na ficha.
Textos em duas línguas
Seção intitulada “Textos em duas línguas”name e title aceitam um texto por língua:
"name": { "pt": "Ficha Básica do RPG Desk", "en": "RPG Desk Basic Sheet" }Cada pessoa vê o da língua do RPG Desk dela; sem o dela, vale o português, depois o inglês, depois o
primeiro. As chaves são códigos de língua: pt, en, pt-BR.