{
  "tab": "mechanics",
  "section": "skillSettings",
  "title": "Skill Settings (Advanced)",
  "summary": "Global skill mechanics — XP costs for leveling, skill learning chance, maximum skill level, and the difficulty check thresholds that translate difficulty labels (Easy/Hard/etc.) into numeric bonuses.",
  "uiLocation": "Mechanics → Advanced → Skill Settings",
  "uiSubtitle": "\"Skill system tuning\"",
  "editor": "JSON only",
  "sizeLimits": [],
  "related": "skills - individual skill definitions; combatSettings - combat-specific numeric settings; abilities - ability bonus is capped by maxSkillSuccessLevel",
  "wikiUrl": "/mechanics/skillSettings",
  "schema": {
    "_type": "required",
    "fields": {
      "trainingCooldown": "number",
      "skillXPRewards": {
        "_type": "record",
        "domain": "string",
        "codomain": "number"
      },
      "skillBonusModifier": "number",
      "xpFromNewSkill": "number",
      "maxSkillLevel": "number",
      "maxSkillSuccessLevel": "number",
      "charXPPerSkillLevel": "number",
      "baseXPFromSkillUpgrade": "number",
      "additionalXPRequiredPerSkillLevel": "number",
      "startingXPToLevelUpSkill": "number",
      "baseChanceToLearnNewSkill": "number",
      "skillLearningBonusModifier": "number",
      "skillTypeDifficultyBonus": {
        "_type": "record",
        "domain": "string",
        "codomain": "number"
      },
      "newSkillGenerationEnabled": "boolean"
    }
  },
  "body": "## Example\r\n\r\n```json\r\n{\r\n  \"maxSkillLevel\": 100,\r\n  \"maxSkillSuccessLevel\": 100,\r\n  \"skillXPRewards\": { \"small\": 40, \"medium\": 60, \"large\": 100, \"huge\": 150 },\r\n  \"startingXPToLevelUpSkill\": 100,\r\n  \"additionalXPRequiredPerSkillLevel\": 40,\r\n  \"skillBonusModifier\": 1,\r\n  \"xpFromNewSkill\": 200,\r\n  \"newSkillGenerationEnabled\": true,\r\n  \"baseChanceToLearnNewSkill\": 0.1,\r\n  \"skillLearningBonusModifier\": 0.01,\r\n  \"trainingCooldown\": 10,\r\n  \"charXPPerSkillLevel\": 5,\r\n  \"baseXPFromSkillUpgrade\": 125,\r\n  \"skillTypeDifficultyBonus\": { \"none\": 0, \"combat\": 0, \"utility\": 0, \"magic\": 0 }\r\n}\r\n```\r\n\r\n## Fields\r\n\r\n### maxSkillLevel\r\n\r\n**`maxSkillLevel` and `maxSkillSuccessLevel` must match.** Both cap the same thing from different directions — `maxSkillLevel` caps how high a skill can be trained, `maxSkillSuccessLevel` caps how much any single contribution can add to a check. Setting them to different values produces incoherent results: a character whose skill exceeds `maxSkillSuccessLevel` is investing XP that produces no effect. Always set both to the same value.\r\n\r\n### skillXPRewards\r\n\r\n**`skillXPRewards`** assigns XP gained per successful skill use by size category. Each `skills[*]` entry carries no numeric XP value itself — the XP amount is read from this table. Assign skills to size buckets: `small` for high-frequency combat skills, `large` or `huge` for skills used rarely. The effect is that rarely-used skills level faster per use, which compensates for fewer opportunities.\r\n\r\n### skillTypeDifficultyBonus\r\n\r\n**`skillTypeDifficultyBonus`** — flat bonus applied to all checks for skills of that type. Keys must match values in `skills[*].type`. Setting all to `0` means type has no mechanical effect beyond categorization. Non-zero values effectively make some skill types globally easier or harder regardless of the check's own difficulty.\r\n\r\n### baseChanceToLearnNewSkill\r\n\r\n**`baseChanceToLearnNewSkill`** — probability of gaining a new skill the first time a character attempts it without having it. `0.1` = 10% chance. Set both this and `skillLearningBonusModifier` to `0` to lock the skill set to character creation.\r\n\r\n### newSkillGenerationEnabled\r\n\r\n**`newSkillGenerationEnabled`** — whether Voyage may invent entirely new skills during play. `true` keeps the prior behavior (new skills can be generated); `false` locks characters to the skills already defined in the world config. **Required** -- the editor rejects a config that omits it. (The per-attempt chance of *learning* a new skill is configured by `baseChanceToLearnNewSkill` and `skillLearningBonusModifier`.)\r\n\r\n### additionalXPRequiredPerSkillLevel\r\n\r\n**`additionalXPRequiredPerSkillLevel`** — additional XP required per level beyond the starting threshold. With `startingXPToLevelUpSkill: 100` and `additionalXPRequiredPerSkillLevel: 40`: level 1 requires 100 XP, level 2 requires 140, level 3 requires 180, and so on. Higher values make later skill levels progressively harder to reach, which steepens the progression curve."
}