Combat Settings

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
Files → Mechanics → Advanced → Combat Settings
Editor type
Edit in Studio + View JSON
Size limits
  • combatSettings.damageTypes (entry count)40 entries
  • combatSettings.damageTypes.* (each)60

Schema

json
{
  "combatSettings": {
    "minCombatXP": "number",
    "baseCombatXP": "number",
    "abilityCooldown": "number",
    "abilityBonus": "number",
    "npcDailyHealingAmount": "number",
    "damageTypes": [
      "string"
    ],
    "damageTypePresentation": {
      "<key>": {
        "emoji": "string"
      }
    }
  }
}

Example

json
{
  "combatSettings": {
    "minCombatXP": 1,
    "baseCombatXP": 100,
    "abilityCooldown": 0,
    "abilityBonus": 10,
    "npcDailyHealingAmount": 999,
    "damageTypes": [
      "piercing", "slashing", "bludgeoning", "poisoning",
      "fire", "lightning", "wind", "water",
      "arcane", "light", "dark", "psychic"
    ],
    "damageTypePresentation": {
      "fire": { "emoji": "🔥" },
      "lightning": { "emoji": "⚡" }
    }
  }
}

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.

damageTypePresentation

Controls how damage types are displayed. Each key is a damage type and its value takes an emoji string. The map is empty by default, so damage types show as text labels; a type displays an emoji only where you configure one here, and any type you leave out keeps its text label.

baseCombatXP

Base XP for a combat victory: the amount awarded when the defeated enemy is at the party's level. Combat XP scales with the level gap, so a foe at or above the party's level grants the full base (plus any situational bonuses on top), while lower-level foes grant progressively less, tapering toward minCombatXP. Default 100.

minCombatXP

The floor of the combat-XP curve. As a defeated enemy's level falls below the party's, the baseCombatXP award diminishes toward this value, so even a trivial victory over a much lower-level foe still grants at least this much rather than nothing. Default 1.