Define produção passiva (galinha → ovo a cada 60s) ou receita (2 madeira + 1 corda → 1 escudo).
production#
Define como um item é produzido: passivamente ao longo do tempo (mode passive) ou via receita com ingredientes (mode recipe). Cada um dos timers/quantidades pode ser vinculado a uma tabela de progressão pra escalar com o nível.
Por que importa#
Production é a coluna vertebral de jogos clicker, farming, crafting e idle. Sem schema dedicado, cada receita vira um JSON ad-hoc no código, e mudanças de balanceamento exigem rebuild. Aqui você define no GDD, exporta pro JSON, e ajusta valores sem tocar código.
Onde costuma viver#
- Página de tipo
📜 Receita(uma receita por página). - Página de tipo
📦 Item produzível(raro — quando é item passivo de produção).
Singleton — 1 production por página.
Schema#
| Campo | Tipo | Padrão | Descrição |
|---|---|---|---|
idSim | string | ID interno. | |
nameSim | string | Nome do addon. | |
modeSim | "passive" | "recipe" | passive: produz X por intervalo (galinha põe ovo). recipe: requer ingredientes pra produzir. | |
outputRef | string (sectionId) | Modo passive: qual item é produzido. | |
minOutput | number | Modo passive: quantidade mínima por ciclo. | |
maxOutput | number | Modo passive: quantidade máxima por ciclo (rolagem entre min e max). | |
intervalSeconds | number | Modo passive: intervalo entre ciclos (aceita decimais). | |
requiresCollection | boolean | Modo passive: jogador precisa coletar ativamente, ou cai direto no inventário? | |
capacity | number | Modo passive: estoque máximo acumulável antes do jogador coletar. | |
ingredientsSim | ProductionIngredient[] | Modo recipe: lista de itemRef + quantity necessários. | |
outputsSim | ProductionOutput[] | Modo recipe: lista de itemRef + quantity produzidos. | |
craftTimeSeconds | number | Modo recipe: tempo de craft em segundos (aceita decimais). | |
notes | string | Notas livres. |
Vínculos com progressionTable#
Quase todos os campos numéricos podem ser vinculados a uma coluna de uma tabela de progressão:
minOutputProgressionLink,maxOutputProgressionLinkintervalSecondsProgressionLink,craftTimeSecondsProgressionLinkcapacityProgressionLink
Quando vinculado, o motor lê o valor da tabela no nível atual do jogador, em vez do valor estático do schema. Permite escalar produção/craft conforme o jogador progride.
"intervalSecondsProgressionLink": {
"progressionAddonId": "section-prog-table",
"columnId": "col-craft-time",
"columnName": "Tempo de Craft"
}
Exemplo: produção passiva#
Galinha põe 1-3 ovos a cada 60s, capacidade 10 ovos:
{
"id": "prod-chicken",
"name": "Galinha",
"mode": "passive",
"outputRef": "section-egg",
"minOutput": 1,
"maxOutput": 3,
"intervalSeconds": 60,
"requiresCollection": true,
"capacity": 10,
"ingredients": [],
"outputs": []
}
Exemplo: receita#
2 Madeira + 1 Corda → 1 Arco, em 30 segundos:
{
"id": "prod-bow-recipe",
"name": "Receita: Arco",
"mode": "recipe",
"ingredients": [
{ "itemRef": "section-wood", "quantity": 2 },
{ "itemRef": "section-rope", "quantity": 1 }
],
"outputs": [
{ "itemRef": "section-bow", "quantity": 1 }
],
"craftTimeSeconds": 30
}
Wizard#
A page type 📜 Receita cria automaticamente:
- Este addon
productionem modorecipe - Pre-fill com 1 ingrediente vazio + 1 output vazio
- Wizard pede
craftTimeSecondsno diálogo inicial
Você completa as referências de itens depois.
Quem aponta pra production#
craftTable.entries[].productionRef— uma mesa de craft agrega múltiplas receitas via refs.