Pular para o conteúdo principal

Balancing

These values are constants in the code, not configuration. Changing them means editing and rebuilding. They are documented here so you know what the numbers mean before you touch them.

Need decay​

Per tick, from NeedsHelper.tickDecay (Adultos):

NeedRateWith trait
Hunger0.0001—
Energy0.00020.0004 if LAZY
Social0.00015—
Fun0.00010.00005 if FUNNY
Hygiene0.0002—

Per tick, from BabyNeeds.tickDecay (Bebês/Crianças):

NeedRateCondição
Hunger0.0003—
Affection0.0002—
Health0.00010.0004 se Hunger < 20
Negative Experiences+0.001se Hunger, Affection ou Health < 30

At 20 ticks per second, adult hunger takes roughly 13.9 in-game hours to fall from 100 to 0.

Hunger thresholds​

ConstantValueEffect
Idle search70Looks for food when idle
HUNGRY_ENOUGH_TO_EAT70Eats a gift on the spot instead of pocketing it
HUNGER_INTERRUPT_THRESHOLD25Drops its current task to eat
STARVATION_THRESHOLD5Stops working and cries

Starvation​

Starvation costs an NPC its usefulness, not its life. Below STARVATION_THRESHOLD it abandons its job, its hobby and its social life, turns SAD and plays the crying animation. It stays that way indefinitely until someone feeds it.

It still walks to a chest and eats — the "stop everything" rule excludes the tasks that lead to food, and excludes sleep.

Hunger does not kill

Aging and disease will own death. A second cause competing with them would make both harder to reason about, so hunger was deliberately taken out of that role.

Earlier versions of this page described a starvationDamage counter that killed at 200 damage. That system was removed along with Needs.java; the constants it named no longer exist.

Food values​

TierHungerHealth
1+25+6
2+45+14
3+65+24

Tiers come from the item's own Root_Secondary_Consume_Food_T1..T3 interaction, not from its name.

Sleep​

ConstantValue
Night windowday progress < 0.25 or > 0.75
Tired threshold30 energy, or 60 if LAZY
Energy recovered while asleep0.045 per tick

Guards invert the window: they sleep during the day.

Search radii and cooldowns​

ConstantValueWhy it exists
CHEST_SEARCH_RADIUS24 blocksDistância máxima que o NPC caminha para buscar comida
FOOD_SEARCH_COOLDOWN_TICKS100Evita tempestade de buscas quando não há comida acessível
MOVE_TIMEOUT_TICKS600 (30 s)Desiste de um baú ou destino inalcançável
Furniture scan radius on join32 blocksDetecta camas e baús pré-existentes ao entrar
SOCIAL_SEARCH_RADIUS20 blocksDistância máxima de varredura por um parceiro de conversa
SOCIAL_COOLDOWN_TICKS800–1200 (40–60 s)Cooldown obrigatório pós-conversa para ambos os NPCs evitarem bater papo sem parar
SOCIAL_SEARCH_INTERVAL_TICKS300 (15 s)Intervalo entre varreduras de socialização quando ocioso
SOCIAL_THRESHOLD< 45Limiar de necessidade social para iniciar conversas (ou 4% chance espontânea)
WANDER_RADIUS_VILLAGEaté 48 blocksRaio de perambulação a partir do centro da vila, espalhando os moradores pela cidade
WANDER_RADIUS_HOME20 blocksRaio de passeio ao redor da cama para residentes isolados (expandido de 8 blocos)
SEPARATION_RADIUS1.15 blocksRaio de espaço pessoal para evitar aglomerações e NPCs se sobrepondo
Do not remove the cooldowns

Without them, an NPC with no reachable bed or food re-enters the search every tick. One real session logged 3447 rejections of the same bed in a few seconds, with the NPC standing still the whole time.