Skill Experience Formula¶
Design Intent¶
Skill advancement rewards quality of challenge, not grind. A player performing easy activities for hours does not advance past a basic threshold. Advancement requires encounters and actions that are at or above the character's current competence — the system pushes players toward harder content as they improve.
There is no skill decay. Skills once advanced are permanent. This design decision removes maintenance anxiety and lets players focus on new challenges rather than repeating old content to maintain standing.
Skill Event Triggers¶
A skill event is a recorded instance of a player character performing an action in the relevant skill domain. Skill events are generated by the expedition resolver at settlement tick, not in real time during an expedition session.
Skill events are only generated when: 1. The action was in the relevant skill category 2. The action's difficulty tier is at or above the character's current band threshold
Events below the threshold generate no skill progress. This is the core anti-grind mechanism.
First-Use Bootstrap¶
A skill at Untrained has no threshold requirement — any qualifying action in that skill domain generates a skill event. This is the bootstrap path. A character attempting their first melee fight, their first herb harvest, or their first fishing cast always gets credit for it, regardless of how trivial the content is.
The bootstrap rule applies only while the skill is at Untrained. Once Familiar is reached, the standard difficulty threshold applies and trivial actions stop generating progress.
The resolver identifies a first-use action by checking whether current_band = Untrained for the relevant skill at the time the expedition settles. No special flag or unlock is required — the skill record exists for every character at Untrained from creation.
Difficulty Threshold Requirement¶
| Current Band | Minimum Action Difficulty for Progress |
|---|---|
| Untrained | Trivial (any action in the skill domain) |
| Familiar | Easy difficulty or above |
| Practiced | Standard difficulty or above |
| Skilled | Challenging difficulty or above |
| Veteran | Hard difficulty or above |
| Expert | Very Hard difficulty or above |
| Master | No further advancement |
Difficulty of an action is determined by the resolver comparing the action's inherent difficulty rating (set by the encounter or zone type) to the character's current band. An action rated Standard difficulty registers as Easy for a Veteran and as Challenging for a Familiar character.
Skill Progress Accumulation¶
Skill events accumulate experience weight toward the next band advance. The weight is not shown directly to the player — instead, the player sees their accumulated experience as a qualitative descriptor in the skill panel:
| Progress State | Descriptor Shown |
|---|---|
| 0–20% of threshold | Developing |
| 21–50% of threshold | Building |
| 51–80% of threshold | Progressing |
| 81–99% of threshold | Approaching |
| 100% | Ready to advance — awaiting confirmation |
Band advance requires player confirmation. When the progress threshold is met, the player sees a notification at next login and must choose to advance. Advancement is not automatic — this keeps players in control of when they apply the band change.
Advance-Pending Overflow¶
When a skill reaches 100% of the threshold but the player has not yet confirmed the advance, skill events continue to accumulate. Accumulation does not pause.
- Overflow weight is stored against the next band's threshold, not the current one
- On confirmation, the skill advances to the next band, and any overflow weight is immediately applied to the new band's accumulation counter
- Overflow cannot skip a band — it does not compound across two unconfirmed advances; a second advance-pending state cannot trigger until the first is confirmed
- There is no time limit on confirming a pending advance; a player can delay indefinitely without penalty
Event Weight Formula¶
event_weight = base_event_weight × difficulty_multiplier × variety_bonus × teaching_multiplier × quality_bonus
Base event weight: 1.0 per qualifying action.
Difficulty multiplier (above threshold):
| Action Difficulty vs. Current Band | Multiplier |
|---|---|
| Exactly at threshold | 1.0× |
| One tier above threshold | 1.4× |
| Two tiers above threshold | 2.0× |
| Three or more tiers above threshold | 2.5× (cap) |
Attempting actions far above the current skill threshold is risky but rewards more progress per success. A Familiar character who survives a Challenging encounter gains twice the skill weight of one who carefully only takes easy challenges.
Variety bonus: Performing the same action type repeatedly in the same expedition reduces marginal gain per repeat. Different action sub-types within the same skill domain each contribute independently.
| Repeat Count of Same Action Sub-Type in One Expedition | Variety Multiplier |
|---|---|
| 1st occurrence | 1.0× |
| 2nd occurrence | 0.9× |
| 3rd occurrence | 0.75× |
| 4th+ occurrences | 0.5× (floor) |
Variety bonuses reset between expeditions.
Teaching multiplier: If the character has an active teaching relationship with a player teacher or is enrolled in NPC instruction, their events during that period receive a bonus:
| Teaching Source | Multiplier |
|---|---|
| No active teaching | 1.0× |
| NPC instruction (enrolled) | 1.15× |
| Player teacher at same skill band +1 | 1.25× |
| Player teacher at Veteran or above (teaching below Expert) | 1.35× |
| Player teacher at Master (teaching any band) | 1.5× |
The teaching multiplier applies to all skill events in the relevant skill domain while the teaching relationship is active.
Quality bonus: For craft skills (Smithing, Leatherworking, Alchemy, etc.), producing output at Fine quality or above adds a weight bonus to the associated skill event:
| Output Quality | Bonus Multiplier |
|---|---|
| Common | 0.9× |
| Crafted | 1.0× |
| Fine | 1.2× |
| Superior | 1.5× |
| Exceptional | 2.0× |
Exceptional-quality output is a meaningful skill event regardless of how experienced the crafter is.
Band Advance Thresholds¶
The total event weight required to advance from one band to the next increases significantly at higher tiers:
| Current Band → Next Band | Total Event Weight Required |
|---|---|
| Untrained → Familiar | 20 |
| Familiar → Practiced | 60 |
| Practiced → Skilled | 150 |
| Skilled → Veteran | 350 |
| Veteran → Expert | 800 |
| Expert → Master | 2,000 |
These thresholds are calibrated to typical expedition play. An active player who runs expeditions regularly and seeks appropriately challenging content can expect: - Familiar: achievable within a few sessions - Practiced: a few weeks of regular play - Skilled: a few months of focused effort - Veteran: a long-term milestone requiring sustained challenge-seeking - Expert: a defining achievement that distinguishes a character - Master: rare at server level; a player may Master 1–2 skills in a year of focused play
Settlement-Awarded Skill Events¶
Some skill events are awarded at settlement tick rather than from expedition resolution. These are administrative: a Guild Master teaching in a guild session, a player completing a board order that qualifies as a training exercise, or the Crafters Guild certifying a craft output that meets their standards.
Settlement-awarded events use the same weight formula. They are not a shortcut — they reflect qualifying activities the player performed and the settlement machinery confirmed.
Skill Decay¶
There is no skill decay. Skills are permanent. A player who has not logged in for months returns with exactly the skill bands they left with. This is an explicit design decision:
- Removing maintenance anxiety lets players engage with the game's economy and exploration without being punished for real-life breaks
- Skill scarcity in the server economy comes from advancement difficulty, not from decay forcing constant re-advancement
- The challenge comes from reaching higher bands, not from defending against losing lower ones
Cross-Skill Interaction Events¶
Some actions generate skill events in two related skills simultaneously. The cross-skill event uses the same formula applied separately to each skill:
| Action | Primary Skill Event | Secondary Skill Event |
|---|---|---|
| Herbalism harvest (in the field) | Herbalism | Tracking (zone familiarity component) |
| Crafting with cross-craft recipe | Primary craft skill | Secondary craft skill (at 0.5× weight) |
| Teaching another player | The taught skill (for the teacher, at 0.25× weight) | — |
| Survey + Map making | Surveying | Cartography (at 0.75× weight) |
| Mount travel in mountain zone | Routefinding | Wilderness Handling (at 0.5× weight) |
Cross-skill events are not the main advancement path for any secondary skill — they are incidental benefits of breadth. A character who wants to advance Cartography primarily needs to do Cartography-focused actions, not just Survey constantly hoping for the secondary event.
Skill Data Schema¶
The following fields are stored per character per skill in the character_skill table:
| Field | Type | Description |
|---|---|---|
character_id |
FK | Owning character |
skill_id |
FK | References skill definition table |
current_band |
enum | Untrained \| Familiar \| Practiced \| Skilled \| Veteran \| Expert \| Master |
accumulated_weight |
float | Current weight toward next band; resets to overflow on advance |
overflow_weight |
float | Weight past the threshold accumulated before confirmation; applied to next band on confirm |
advance_pending |
bool | True when accumulated_weight ≥ threshold and advance not yet confirmed |
teaching_session_id |
FK nullable | Active teaching relationship; null if no active teaching |
last_event_tick |
int | Settlement tick of the most recent qualifying skill event |
total_events_lifetime |
int | Lifetime count of qualifying events; informational only |
The skill definition table (skill_def) stores:
| Field | Type | Description |
|---|---|---|
skill_id |
PK | |
skill_name |
string | Canonical name (e.g. Blades, Herbalism) |
family |
string | Starter-visible family (e.g. Frontline Combat, Gathering) |
visibility |
enum | starter_visible \| advanced_visible |
reveal_trigger |
string | Condition key for advanced-visible reveal (see Skill Reveal Triggers) |
Skill Event Type Catalog¶
The expedition resolver consults this mapping to determine which skill receives a skill event for a given action. All events are generated at settlement tick. An action can appear in multiple rows if it generates both a primary and a cross-skill event.
Combat Events¶
| Action | Skill Event Generated |
|---|---|
| Deal a melee hit with a bladed weapon | Blades |
| Deal a melee hit with an axe or hammer | Axes and Hammers |
| Deal a melee hit with a polearm | Polearms |
| Successfully block or intercept a hit with a shield | Shielding |
| Take a hit without being staggered (armor absorbs) | Heavy Armor or Light Armor (whichever is equipped) |
| Dodge or reposition to avoid a hit | Evasion |
| Complete a multi-step encounter without morale collapse | Endurance |
| Deliver a ranged hit | Archery |
| Identify an enemy's weak point before engaging | Tracking |
| Choose a correct retreat timing that avoids injury | Combat Judgment |
| Stabilize an injured party member during or after combat | Field Medicine |
| Deal damage with an elemental effect | Elementalism |
| Apply a ward that absorbs a hit | Warding |
| Revive or cleanse a party member | Restoration |
| Complete a ritual site interaction | Ritualism |
| Successfully read a creature's affinity before the encounter | Arcane Theory |
Gathering Events¶
| Action | Skill Event Generated |
|---|---|
| Extract ore from a vein | Mining |
| Cut and process timber at a site | Logging |
| Extract stone or cut blocks | Quarrying |
| Harvest herbs from a zone | Herbalism |
| Catch fish at a fishing zone | Fishing |
| Trap and recover an animal | Hunting and Trapping |
| Skin or field-dress a kill | Hunting and Trapping |
| Harvest crops or manage field rotation | Farming |
| Recover salvage from ruins or wreckage | Salvage Recovery |
| Locate and identify useful materials in an abandoned site | Scavenging |
| Complete a survey of a zone | Surveying |
Crafting Events¶
| Action | Skill Event Generated |
|---|---|
| Produce a metal component or weapon | Smithing |
| Shape or join wood into a structure or tool | Carpentry |
| Produce leather armor or straps | Leatherworking |
| Sew or fabricate a cloth item | Clothworking |
| Prepare a meal or supply ration | Cooking |
| Smoke, salt, dry, or pickle a food item | Preservation |
| Produce an alchemical salve, extract, or reagent | Alchemy |
| Assemble a mechanism, trap, or repair kit | Tinkering |
| Lay stone, build a wall, or kiln-fire a block | Masonry |
| Craft an arcane tool or hybrid component | Artifice |
Travel and Scouting Events¶
| Action | Skill Event Generated |
|---|---|
| Navigate a route without delay or detour | Routefinding |
| Produce a valid survey output for a zone | Surveying |
| Record a map entry with usable quality | Cartography |
| Correctly predict weather before an expedition | Weather Sense |
| Establish a functioning camp (any tier) | Campcraft |
| Locate a water source in an arid or cold zone | Waterfinding |
| Detect an ambush before it resolves | Tracking |
Logistics and Social Events¶
| Action | Skill Event Generated |
|---|---|
| Keep a cargo load balanced through a difficult route | Pack Handling |
| Lead a convoy through a threat encounter without loss | Caravan Handling |
| Manage an animal under stress without it bolting | Animal Handling |
| Ride a mount through rough terrain at speed | Mount Riding + Wilderness Handling (cross-skill) |
| Execute a successful taming attempt | Taming + Beastbonding (cross-skill) |
| Complete a care session that improves mount condition | Mount Husbandry |
| Conduct a training session that advances a mount tier | Mount Training |
| Sell at a price above market baseline | Trade |
| Correctly identify a material's grade without NPC help | Appraisal |
| Resolve a contract dispute or price negotiation favorably | Negotiation |
| Manage a guild reserve through a deficit period | Stewardship |
| Coordinate a group expedition that succeeds despite role gaps | Leadership |
| Complete a successful teaching session | Teaching |
| Produce a codex entry, contract document, or map note | Scribing |
Multi-Skill-in-Category Resolution¶
When multiple individual skills fall under the same role category, the resolver selects the score contribution using the highest relevant skill band among the skills that are applicable to the current action type. It does not average all skills in the category.
For combat role scoring specifically:
| Role | Skills Scored | Rule |
|---|---|---|
| Vanguard | Shielding, Heavy Armor, Endurance, Combat Judgment | Highest two among these four; average them |
| Ranger | Archery, Tracking | Both; average them |
| Arcanist | Elementalism, Arcane Theory | Both; average them |
| Warden | Field Medicine, Restoration | Highest two among Field Medicine, Restoration, Herbalism; average them |
For non-combat resolver scoring (gathering, crafting, travel), the resolver uses the single highest skill in the applicable sub-category for that action:
- A character gathering ore: Mining is the only skill that scores; Quarrying does not substitute
- A character crafting a leather piece: Leatherworking scores; Smithing does not substitute
- A character navigating a route: Routefinding scores; Cartography does not substitute unless the action is specifically map-making
A character with a high Gathering family score but low Mining specifically does not get credit from adjacent gathering skills in a Mining action. Breadth of gathering skill improves variety bonus but does not replace depth in a specific domain.