{"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.","kind":"schema","uiLocation":"Mechanics → Advanced → Skill Settings","uiSubtitle":"\"Skill system tuning\"","editor":"JSON only","related":[{"section":"skills","note":"individual skill definitions"},{"section":"combatSettings","note":"combat-specific numeric settings"},{"section":"abilities","note":"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"}},"sizeLimits":[],"blocks":[{"type":"example","lang":"json","code":"{\n  \"maxSkillLevel\": 100,\n  \"maxSkillSuccessLevel\": 100,\n  \"skillXPRewards\": { \"small\": 40, \"medium\": 60, \"large\": 100, \"huge\": 150 },\n  \"startingXPToLevelUpSkill\": 100,\n  \"additionalXPRequiredPerSkillLevel\": 40,\n  \"skillBonusModifier\": 1,\n  \"xpFromNewSkill\": 200,\n  \"newSkillGenerationEnabled\": true,\n  \"baseChanceToLearnNewSkill\": 0.1,\n  \"skillLearningBonusModifier\": 0.01,\n  \"trainingCooldown\": 10,\n  \"charXPPerSkillLevel\": 5,\n  \"baseXPFromSkillUpgrade\": 125,\n  \"skillTypeDifficultyBonus\": { \"none\": 0, \"combat\": 0, \"utility\": 0, \"magic\": 0 }\n}"},{"type":"fields","fields":[{"name":"maxSkillLevel","tooltip":"maxSkillLevel and maxSkillSuccessLevel must match.","md":"**`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."},{"name":"skillXPRewards","tooltip":"skillXPRewards assigns XP gained per successful skill use by size category.","md":"**`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."},{"name":"skillTypeDifficultyBonus","tooltip":"skillTypeDifficultyBonus — flat bonus applied to all checks for skills of that type.","md":"**`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."},{"name":"baseChanceToLearnNewSkill","tooltip":"baseChanceToLearnNewSkill — probability of gaining a new skill the first time a character attempts it without having it.","md":"**`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."},{"name":"newSkillGenerationEnabled","tooltip":"newSkillGenerationEnabled — whether Voyage may invent entirely new skills during play.","md":"**`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`.)"},{"name":"additionalXPRequiredPerSkillLevel","tooltip":"additionalXPRequiredPerSkillLevel — additional XP required per level beyond the starting threshold.","md":"**`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."}]}],"body":"## Example\n\n```json\n{\n  \"maxSkillLevel\": 100,\n  \"maxSkillSuccessLevel\": 100,\n  \"skillXPRewards\": { \"small\": 40, \"medium\": 60, \"large\": 100, \"huge\": 150 },\n  \"startingXPToLevelUpSkill\": 100,\n  \"additionalXPRequiredPerSkillLevel\": 40,\n  \"skillBonusModifier\": 1,\n  \"xpFromNewSkill\": 200,\n  \"newSkillGenerationEnabled\": true,\n  \"baseChanceToLearnNewSkill\": 0.1,\n  \"skillLearningBonusModifier\": 0.01,\n  \"trainingCooldown\": 10,\n  \"charXPPerSkillLevel\": 5,\n  \"baseXPFromSkillUpgrade\": 125,\n  \"skillTypeDifficultyBonus\": { \"none\": 0, \"combat\": 0, \"utility\": 0, \"magic\": 0 }\n}\n```\n\n## Fields\n\n### maxSkillLevel\n\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.\n\n### skillXPRewards\n\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.\n\n### skillTypeDifficultyBonus\n\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.\n\n### baseChanceToLearnNewSkill\n\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.\n\n### newSkillGenerationEnabled\n\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`.)\n\n### additionalXPRequiredPerSkillLevel\n\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."}