Level Progression
progressionSettingsPer-world level-up configuration: XP cadence, ability and attribute point awards, trait-pick pools, and milestone titles.
"Rules for how characters level up and what they receive, including XP requirements, ability points, attribute points, trait picks, and milestone Titles."
- Editor location
- Files → Mechanics → Level Progression
- Editor type
- Edit in Studio + View JSON
- Size limits
No character-length caps for this section.
Schema
{
"progressionSettings": {
"startingCharacterLevelUpRequirement": "number",
"extraRequiredXPPerCharacterLevel": "number",
"maxCharacterLevel": "number",
"abilityPointEveryLevels": "number",
"abilityPointsPerGrant": "number",
"attributePointEveryLevels": "number",
"attributePointsPerGrant": "number",
"maxAttributeValue": "number",
"traitPickEveryLevels": "number",
"traitPicksPerGrant": "number",
"locationDiscoveryXP": "number",
"levelUpTraitPool": [
"string"
],
"milestoneTitles": [
{
"levelGranted": "number",
"title": "string"
}
]
}
}Example
{
"progressionSettings": {
"startingCharacterLevelUpRequirement": 1000,
"extraRequiredXPPerCharacterLevel": 400,
"maxCharacterLevel": 100,
"abilityPointEveryLevels": 1,
"abilityPointsPerGrant": 1,
"attributePointEveryLevels": 5,
"attributePointsPerGrant": 1,
"maxAttributeValue": 999,
"traitPickEveryLevels": 10,
"traitPicksPerGrant": 1,
"locationDiscoveryXP": 10,
"levelUpTraitPool": [],
"milestoneTitles": [
{ "levelGranted": 1, "title": "Initiate" },
{ "levelGranted": 10, "title": "Adept" },
{ "levelGranted": 20, "title": "Veteran" },
{ "levelGranted": 30, "title": "Expert" },
{ "levelGranted": 40, "title": "Master" },
{ "levelGranted": 50, "title": "Legend" }
]
}
}Level-up rewards are configured here. On each new level the character gains the rewards whose interval that level is a multiple of. Players spend attribute points in the Stats tab, pick level-up traits in the Traits tab, and choose which earned title to display.
Note: The field names describe the cadence (
*EveryLevels) and amount (*PerGrant) of each reward.levelUpTraitPoolis sampled as described in Level-up trait picks; a trait-pick grant offers at most as many options as remain eligible in the pool, so an empty pool grants no trait picks.
Fields
startingCharacterLevelUpRequirement
XP required to reach character level 2. The full curve: XP to reach level N = startingCharacterLevelUpRequirement + (N - 2) * extraRequiredXPPerCharacterLevel (so level 2 costs exactly startingCharacterLevelUpRequirement).
extraRequiredXPPerCharacterLevel
Additional XP added to each level's requirement after level 2. 0 gives a flat curve, and is the only progression value allowed to be 0.
maxCharacterLevel
Maximum character level. Leveling stops there.
abilityPointEveryLevels
Interval, in character levels, on which ability points are granted.
abilityPointsPerGrant
Ability points granted at each interval.
attributePointEveryLevels
Interval, in character levels, on which attribute points are granted.
attributePointsPerGrant
Attribute points granted at each interval.
maxAttributeValue
Highest value an attribute can be raised to by spending attribute points. A spend that would take any attribute past it is rejected, and attribute-point grants stop once the banked points could no longer be spent under this cap.
traitPickEveryLevels
Interval, in character levels, on which a trait pick is granted.
traitPicksPerGrant
Trait picks granted at each interval.
locationDiscoveryXP
XP each party member gains the first time the party enters an area.
levelUpTraitPool
Traits offered as options for level-up trait picks. Leave [] for none. Entries reference trait keys from traits.
milestoneTitles
Titles awarded at set levels. Each entry is { levelGranted, title }: levelGranted is the character level at which the title unlocks and title is the display string. A title is granted only when the character reaches that exact level, so a skipped level is not granted later. A newly earned title is selected automatically, and players can switch to any title they have earned. levelGranted must be a positive whole number and title must not be blank; Voyage drops entries that break either rule when the world loads. Give each milestone a distinct level.