Skip to content

Random Tables

Felipe Lippelt edited this page Jun 19, 2026 · 1 revision

Random Tables / Tabelas Aleatórias

Rolador de tabelas de resultados — loot, encontros aleatórios, nomes de NPC, complicações, o que o mestre quiser. Cada tabela é uma lista de entradas com peso uniforme.

Criar uma tabela

No painel Tabelas:

  • Nome — ex.: "Saque comum", "Rumores na taverna".
  • Entradas — uma por linha. Cada linha é um resultado possível.

Limites: 300 tabelas, 300 entradas por tabela, 300 chars por entrada (saneado no servidor por sanitizeTableEntries).

Rolar

Botão 🎲 sorteia uma entrada aleatória (distribuição uniforme) e mostra o resultado ao lado da tabela. O resultado fica visível só no painel de controle — é uma ferramenta do mestre, não vai pra tela dos jogadores. Tem botão pra copiar o resultado.

Editar / remover

Tabelas podem ter nome e entradas editados (updateTable) ou serem removidas (deleteTable).

Persistência

Arquivo global .tables.json (igual criaturas/encontros — persiste entre campanhas). Debounce de 500ms na escrita.

Socket events

socket.emit('saveTable', { name, entries })
socket.emit('updateTable', id, { name?, entries? })
socket.emit('deleteTable', id)

A rolagem em si é local no cliente (Math.random sobre as entradas) — não passa pelo servidor, já que é consulta do mestre e não precisa de broadcast.

Tipo

interface RandomTable {
  id: string
  name: string
  entries: string[]   // peso uniforme
  createdAt: number
}

Veja também: Dice and Roll History.

Clone this wiki locally