CONTENT CONTRACT · VERSION 1
progress_track
A named progress track besides the character level (fishing, crafting …): its own experience and levels; handlers grant it with grant_xp and read its level through its variable.
Signature
{ character_permille: Permille, icon: (TextureAssetId)?, id: ContentId, kind: "progress_track", level_variable: (VariableId)?, level_xp: {PositiveCount}, name: TextKey }Fields
| Name | Type | Meaning |
|---|---|---|
character_permille | Permille | Share of experience granted on the track that the character level gains too. Range: 0…1000; Unit: permille |
icon | TextureAssetId | Icon shown with the track. Length: 1…129; Pattern: ^[a-z][a-z0-9_]{0,31}:[a-z][a-z0-9_]{0,95}$; Reference: asset:texture |
id | ContentId | Package-qualified identity; unique within its declaring namespace. Length: 1…129; Pattern: ^[a-z][a-z0-9_]{0,31}:[a-z][a-z0-9_]{0,95}$ |
kind | "progress_track" | Discriminant |
level_variable | VariableId | Player variable (int) the engine keeps at the track's level. Length: 1…129; Pattern: ^[a-z][a-z0-9_]{0,31}:[a-z][a-z0-9_]{0,95}$; Reference: variable |
level_xp | {PositiveCount} | Experience each next level of the track needs, in order (not falling). Items: 1…99 |
name | TextKey | Localization key for the displayed name. Length: 1…129; Pattern: ^[a-z][a-z0-9_]{0,31}:[a-z][a-z0-9_]{0,95}$; Reference: text |
Validated example
{
"character_permille": 250,
"id": "reference:gardening",
"kind": "progress_track",
"level_xp": [
50,
120,
250
],
"name": "reference:gardening_name"
}