Combat Settings (Advanced)
combatSettings
Numeric tuning for the combat system: XP rewards for defeating enemies, ability recharge timing, ability effectiveness bonus, NPC daily healing, and the canonical list of valid damage types for your world.
"Combat settings and their mechanics"
- Editor location
- Mechanics → Advanced → Combat Settings
- Editor type
- JSON only
- Size limits
-
-
combatSettings.damageTypes(entry count) — 40 entries -
combatSettings.damageTypes.*(each) — 60 chars
-
Schema
{
"combatSettings": {
"minCombatXP": "number",
"baseCombatXP": "number",
"abilityCooldown": "number",
"abilityBonus": "number",
"npcDailyHealingAmount": "number",
"damageTypes": [
"string"
]
}
}
Example
{
"minCombatXP": 1,
"baseCombatXP": 100,
"abilityCooldown": 0,
"abilityBonus": 10,
"npcDailyHealingAmount": 999,
"damageTypes": [
"piercing", "slashing", "bludgeoning", "poisoning",
"fire", "lightning", "wind", "water",
"arcane", "light", "dark", "psychic"
]
}
Fields
abilityCooldown
Global setting governing ability cooldowns. It is not a multiplier on a per-ability cooldown. It serves two roles: it is the default cooldown an ability is given when it does not define its own (an authored cooldown applies directly), and it is the minimum number of turns that must pass before a character can learn another new ability. Balanced default: 0.
abilityBonus
Global setting for ability checks. It is not a multiplier on a per-ability bonus: an ability’s bonus (shown in-game as Power) is added to the check directly as a flat modifier, alongside the acting skill and attribute contributions, and is not scaled by this value. abilityBonus is the default bonus an ability is given when it does not define its own; authored abilities use their own bonus instead. Either way the contribution shares the skillSettings.maxSkillSuccessLevel cap with skills, attribute bonuses, and context modifiers, consuming space within it rather than bypassing it. Balanced default: 10.
npcDailyHealingAmount
Note (
npcDailyHealingAmount): Health NPCs recover by this amount per in-game day — not tied to the Long Rest mechanic specifically. Setting this to a high value (e.g. 999) effectively means any NPC recovers fully between encounters, preventing NPCs from remaining at low HP permanently across sessions.
Note (
isHealth): The codec-validated way to designate the health resource isisHealth: trueon the resource entry inresourceSettings- the engine reads that flag to identify the primary HP pool.
damageTypes
Note (
Custom damage types): Adding a type like"radiant"or"necrotic"todamageTypesmakes it a valid value innpcTypesvulnerabilities,resistances, andimmunities. The engine math - increased or decreased damage for matching types - applies there. Beyond that, the damage type has no automatic behavior: it does not change how abilities deal damage, does not trigger elemental effects, and does not carry secondary rules (e.g."poison"does not automatically inflict a poisoned condition). Any secondary behavior has to be defined explicitly in abilitydescriptiontext and narrator instructions ingenerateActionInfo.
Common mistake (matching is case-sensitive and unnormalized): Damage type matching against
npcTypesvulnerabilities,resistances, andimmunitiesis exact and case-sensitive —"Fire"and"fire"are different types, and a mismatch fails silently (full damage, no warning). Use the same lowercase ASCII strings everywhere you reference a damage type, and avoid accented or non-ASCII characters, which break matching the same silent way.