Kzeroko KTM2

NPC moods and personalities

How named characters react, recover and expose mood information to dialogue.

Updated Sep 19, 2026 5 min read

Named NPCs react emotionally to damage, gifts, consumables and their current activity. Mood is the current state; personality shapes the strength and recovery of that response. Mood intensity is separate from favor.

Reading a mood

Each mood holds immediate impulse, lingering memory and situational context separately, each from 0–100. Displayed intensity is their sum, capped at 100. The primary mood is selected through activation thresholds and switching rules.

MoodNameTypical source or meaning
composedComposedSettled baseline; no stronger active emotion.
joyfulJoyfulPositive gifts and consumed food or drink.
affectionateAffectionatePositive gift reactions scaled by attachment.
flusteredFlusteredGift-related embarrassment or emotional exposure.
excitedExcitedCombat, attacks and consumables.
focusedFocusedWork at an activity point and combat.
boredBoredSustained inactivity without another activity.
uneasyUneasyDamage, danger and low health during combat.
hurtHurtDamage from a friendly/trusted player.
angryAngryDamage and hostile reactions.
exhaustedExhaustedLow health and its lingering effects.

Ordinary citizens and other non-unique NPCs do not run this persistent emotional simulation. Dialogue reports composed at intensity 0 with no secondary mood. Body emotes and emoji stickers are separate presentation systems, so their playback does not establish a mood intensity.

What changes it

SituationReaction
Positive giftAdds joy, affection and fluster, while soothing boredom, hurt and anger.
Accepted gift with 0 favor gainBrief fluster and slight boredom relief; this does not mean the gift was rejected.
Eating or drinkingSmall joy/excitement response; soothes boredom and exhaustion.
Performing an attackBrief excitement/focus; soothes boredom.
Damage from a friendly or trusted playerHurt and anger.
Other damageUneasiness; another living attacker also causes anger.
Damage during combatCan also add excitement; critically low health adds exhaustion and uneasiness.

These reactions come from actual events. Simply standing near a player does not continually generate affection or joy. Positive events can soften negative intensity without clearing all lingering memory.

Current situation

ConditionBase context target
Ordinary stateComposed 9
SleepingComposed 22
Busy at an activity pointFocused 34 × energy
In combatFocused 16 × courage; excited 23 × energy × courage
Awake and health fraction below 0.50Exhausted 38 × danger; also uneasy 25 × danger × inverse courage in combat
Sustained inactivityAfter 25 once-per-second idle samples, ramps over 100 samples toward bored 30 × energy

Danger is (0.50 - healthFraction) / 0.50. Personality further scales each mood target; overlapping sources use the larger target. Dialogue, activity points, combat, item use, sleep or movement interrupts boredom accumulation. Unloaded time does not add an equivalent number of idle samples.

Recovery and switching

Impulse recovers faster and memory more slowly, both by linear intensity loss. Context approaches the current situational target. Soothing removes impulse first, then context, then memory. Recovery speed varies with mood and personality.

RuleValue
Context update and ordinary primary-mood resolutionEvery 20 ticks (1 second)
Decisive lead allowing an early switch3.5 intensity
Current-mood dwell condition60 ticks (3 seconds); a decisive lead or current mood below threshold allows an earlier switch
Elapsed-world-time recovery cap after loading7 days
Maximum time applied to each context step2 seconds

The strongest other active non-composed mood can appear as a secondary mood. Remaining hurt after a gift does not mean the gift had no effect: it may have reduced an intensity that has not yet recovered fully.

Personalities

Personality changes temper, recovery, energy, empathy, pride, attachment, courage, composure and overall reactivity. It is character configuration and does not change with the current primary mood. These are the stable dialogue keys and in-game names; the developer reference contains the complete numeric profiles.

PersonalityName
defaultDefault
tsundereTsundere
optimisticOptimistic
yandereYandere
gloomyGloomy
kuudereKuudere
genkiGenki
loyalLoyal
shyShy
dojikkoDojikko
lazyLazy
tennenTennen
chatterboxChatterbox
mukuchiMukuchi
ojou_samaOjou-sama
onee_sanOnee-san
tomboyTomboy
bookwormBookworm
tricksterTrickster
cowardlyCowardly
justiceJustice
workaholicWorkaholic
chuunibyouChuunibyou

Information available to dialogue

NPC dialogue supplies this metadata as read results, not as a mood configuration file to place in a data pack. Fallbacks describe an NPC without emotional simulation; personality still comes from the character’s configuration.

FieldTypeDefaultMeaning
isekaiexpansion:npc_mood_keystringcomposedDominant mood key.
isekaiexpansion:npc_mood_intensityfloat0Dominant intensity divided by 100, clamped to 0–1.
isekaiexpansion:npc_secondary_mood_keystring""Strongest other active non-composed mood, or empty.
isekaiexpansion:npc_secondary_mood_intensityfloat0Secondary intensity divided by 100, clamped to 0–1.
isekaiexpansion:npc_personality_keystringdefaultConfigured personality key; independent of the current mood.

Use stable string keys in dialogue, not display names or internal ordinals. This provider does not add these fields to non-NPC dialogue.

Mood and personality values are built into the mod. There is no dedicated mood JSON directory replaceable with /reload. See NPC emotion runtime for formula and personality changes, and emoji data for the separate sticker resource format.