-
Notifications
You must be signed in to change notification settings - Fork 0
Creature Library
Banco de NPCs e monstros reutilizável entre encontros e entre campanhas. O mestre importa uma criatura uma vez (colando JSON do 5etools, ou preenchendo um form), e ela fica salva pra subir no tracker em qualquer sessão futura.
É sistema-agnóstica: cada entrada carrega o campo system que discrimina a que sistema pertence.
No painel Biblioteca de criaturas, expanda Importar do 5etools e cole o JSON de um monstro (botão de export do site). O servidor parseia, normaliza e salva.
-
Sistema: por padrão usa o sistema da campanha ativa; pode forçar (
dnd5e-2024/dnd5e-2014) no campo ao lado. - O parsing roda no servidor (valida + storage atômico); o cliente só envia a string crua.
- Payloads acima de ~200KB são rejeitados.
name, type, size, alignment (+ alignmentPrefix), ac, hp (média + fórmula), speed, atributos (STR–CHA), save, cr, senses, passive, languages, immune (incluindo grupos condicionais tipo "bludgeoning/piercing/slashing (from nonmagical attacks)"), conditionImmune, trait, action, bonus, reaction, legendary, spellcasting e source+page.
Metadata interna do site, sem uso na mesa: traitTags, senseTags, actionTags, languageTags, damageTags, spellcastingTags, miscTags, conditionInflict*, savingThrowForced*, hasToken, hasFluff, hasFluffImages.
O 5etools usa tags tipo {@dc 22}, {@atk ms}, {@damage 3d10+7}. O importer (strip5eMarkup) converte tudo pra texto plano antes de salvar:
| Tag | Vira |
|---|---|
{@dc 22} |
DC 22 |
{@hit 14} |
+14 |
{@atk ms} |
Melee Spell Attack |
{@damage 3d10 + 7} |
3d10 + 7 |
{@spell Detect Magic|XPHB} |
Detect Magic |
{@recharge 5} |
(Recharge 5-6) |
Para sistemas sem parser dedicado (Lancer, Vampire, etc.), o painel mostra um form mínimo (GenericCreatureForm) com nome, tipo, CR, HP, CA e notas. Salva via saveCreature no sistema da campanha ativa. Sem parsing — os campos essenciais bastam pra rodar.
Selecione a criatura na lista (filtro por nome/tipo/sistema), informe a iniciativa e clique + Tracker. Ela entra no Combat Tracker como combatente, com HP semeado pela média da criatura.
Vive num arquivo separado e global: .creatures.json (não entra no .session.json). Motivo: a biblioteca não muda quando troca de campanha e cresce com o tempo — mantê-la no snapshot inflaria o broadcast. Cap defensivo de 500 entradas, write com debounce de 500ms.
socket.emit('importCreature5e', rawJson, systemOverride?)
socket.emit('saveCreature', { system, name, type?, cr?, hp?, ac?, notes?, ... })
socket.emit('deleteCreature', id)
socket.emit('spawnCombatantFromCreature', creatureId, initiative)Veja também: Combat Tracker, Encounter Library, RPG Systems.
Setup
Conteúdo
Ferramentas
- Combat Tracker
- Creature Library
- Encounter Library
- Clocks
- Party Resources
- Random Tables
- Dice and Roll History
- GM Notes
- RPG Systems
Display
Arquitetura