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.

In the editor

"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
Last updated

Schema

json
{
  "combatSettings": {
    "minCombatXP": "number",
    "baseCombatXP": "number",
    "abilityCooldown": "number",
    "abilityBonus": "number",
    "npcDailyHealingAmount": "number",
    "damageTypes": [
      "string"
    ]
  }
}

Example

json
{
  "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 is isHealth: true on the resource entry in resourceSettings - the engine reads that flag to identify the primary HP pool.

damageTypes

Note (Custom damage types): Adding a type like "radiant" or "necrotic" to damageTypes makes it a valid value in npcTypes vulnerabilities, resistances, and immunities. 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 ability description text and narrator instructions in generateActionInfo .

Common mistake (matching is case-sensitive and unnormalized): Damage type matching against npcTypes vulnerabilities, resistances, and immunities is 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.