NPC Details
generateNPCDetailsFills in details for generated NPCs: basic info, hidden info, personality, abilities and faction ties, each governed by its own editable section. Distinct from generateCharacterBackground, which writes the player character's backstory and appearance during character creation.
"Runs when an NPC receives their first meaningful expansion during play. Use it to shape public and hidden background, appearance, personality, faction ties, and abilities while preserving what the story already established."
- Editor location
- Files → AI → NPC Details
- Editor type
- Edit in Studio + View JSON
- Size limits
- Each string leaf under a task (
aiInstructions.<task>.<key>) — 5,000 aiInstructions.generateNPCDetailstotal — 28,964
- Each string leaf under a task (
Schema
{
"aiInstructions": {
"generateNPCDetails": {
"<key>": "string"
}
}
}Example
{
"aiInstructions": {
"generateNPCDetails": {
"custom": "## HIDDEN INFO STRUCTURE\nAll NPCs are SENTIENT. Write hiddenInfo as three labelled fields in dense behavioural prose. Use this exact format:\n\nFormat: \"hiddenInfo\": \"Background: ...\\n\\nPersonality: ...\\n\\nCombat: ...\"\n\nBackground (6-8 sentences): Name, age, origin/clan, rank or skill tier; how they reached their current level; at least one defined relationship; current objective or pressure; personal view on their role or world.\n\nPersonality (7-9 sentences): Speech style and tone; default behaviour and how it shifts under pressure; routine and idle tendencies; behaviour toward higher vs lower status; what they hide vs reveal; one defining belief or trait outside combat.\n\nCombat (4-5 sentences): Fighting style tied to their training and specialisation; preferred range and engagement style; triggers for escalation or disengagement; reaction to injury or disadvantage; one distinct combat habit.\n\n## ABILITIES (MANDATORY)\nAll NPCs must have 6-10 abilities. Abilities must be broad systems, not single techniques; must reflect rank and specialisation; must explain practical combat or utility use.\nFormat: (TYPE) Ability Name: Description. Types: attack, combat, utility.\n\n## ARCHETYPE FIRST\nNPCs must be immediately readable on first encounter. Each rank or class should carry a one-line silhouette: 'reactive, learning' / 'composed, dependable' / 'commanding, experienced' / 'silent, efficient, lethal' / 'authoritative, dominant'. Match observable behaviour to the silhouette.\n\n## CHARACTER PHILOSOPHY\nDefine characters by what they want — ambitions, loyalties, drives — not by what they have lost. Lead with desire, not damage.\n\n## KNOWLEDGE LIMITS\nNPCs volunteer only what their role and position would plausibly allow. Hidden information surfaces through play, observation, or earned trust — never through narrator convenience.\n\n## BANNED TYPES\nNo bureaucrats, pedants, worriers, sticklers, moralists, or procedural personalities. Any record-keeper should be dangerous or funny, not procedural.",
"style": "## Style\n* Plain, period-appropriate language\n* No anachronisms; nothing that sounds modern in a pre-industrial setting",
"cliche_avoidance": "## Cliche Avoidance\n* No retired mercenaries, chosen ones, or amnesiacs",
"faction_affiliation": "## Faction Affiliation\n- Assign a faction only when the NPC would plausibly be known to it"
}
}
}A worked pattern with labelled hiddenInfo sections — replace world-specific tokens:
Fields
Each key replaces one section of the prompt the engine ships for this task. Set only the sections you want to change; every key you leave out keeps Voyage's own text.
custom
Free-form rules layered over the whole pass rather than one section.
character_creator_instructions
The opening brief: what the task is producing and that the world background sets genre, tone, style, and setting.
personality_archetype_information
How to use archetype guidance when the engine supplies it, and what to do for lower-tier characters that arrive without any.
style
Prose register for the whole NPC: plain language, grounded and flawed people, tropes subverted by ordinary human weakness, nothing anachronistic to the setting.
cliche_avoidance
Backstories to refuse outright. Voyage's default rules out retired mercenaries, former servants of the king, orphans, and fallen nobles.
basic_info
The short public-facing description: appearance, gender, approximate age, bearing, demeanour. Voyage's default keeps it evergreen and bars anything situational.
hidden_info
The private brief written as narrative: who they are, the event that shaped them and what they took from it, and the specific thing they care about that drives their choices.
personality
The comma-separated trait list, mixing plain adjectives with descriptive phrases and pairing outward traits with inner motivation. Voyage's default asks for a contradiction and rules out quirks and verbal tics.
abilities
Shape of the ability list, including how many, the (TYPE) NAME: DESCRIPTION format, and that they stay useful in combat or conflict.
faction_affiliation
When to attach a faction. Voyage's default treats it as optional, restricts it to factions the world already defines, and assigns one only where the NPC's occupation, values, or goals line up.
Authoring pattern
The example above is one world's custom block. What it does:
- Labelled
hiddenInfosections with sentence counts (Background, Personality, Combat), plus aFormat:line showing the exact output string with its `
` separators.
- A fixed abilities count and format:
6-10 abilities,(TYPE) Ability Name: Description, and the allowed types. - Short cross-cutting rules: a one-line silhouette per rank, a character philosophy, knowledge limits, and a list of personality types to avoid.
custom is added alongside the default sections, not instead of them. The default hidden_info still asks for a 3-sentence background and the default abilities for 1-3 abilities of 5-10 words, so when your counts differ, put them in those two keys to replace the defaults rather than contradicting them from custom.
Note: To enforce a baseline depth floor (a minimum character count) on generated
hiddenInfo, see Minimum output depth in the Advanced AI Techniques appendix.