Level Progression

progressionSettings

Per-world level-up configuration: XP cadence, ability and attribute point awards, trait-pick pools, and milestone titles.

In the editor

"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

json
{
  "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

json
{
  "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. levelUpTraitPool is 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.