Eight canon notes (Game Concept Overview, Mechanics Source Mapping, Combat System & Stat Scaling Design, Skill & Magic System, Medals & Honours System, Lore & World Building, Idle Fantasy Inspirations, Tech Stack & Architecture) as markdown, note title as H1, with source line citing the Joplin note ID. Joplin keeps status notes.
18 KiB
Skara Brae — Medals & Honours System (Torn City-Inspired)
Source: Joplin note 4877acc671ed4bfcb0d6bf2c5323c94a, migrated 2026-10-03
Goal: A deep, profile-defining achievement system in the spirit of Torn City's Honours/Awards — long-term goals, bragging rights, rare prestige, and a few meaningful permanent bonuses — layered onto every existing Skara Brae system (combat, adventure, crafting, magic, guild, economy, etc.).
Torn City's honours are a major long-term retention driver: hundreds of awards across every activity, displayed on the profile, some granting small permanent stat boosts. Skara Brae adapts this into a fantasy-flavoured, three-tier structure: Medals (tiered, category-based) → Honours (rare, prestigious, single awards) → Titles (displayed name prefixes/suffixes).
1. System Overview
| Layer | What It Is | How Earned | Reward Style |
|---|---|---|---|
| Medals | Tiered achievement badges, organized by category | Cumulative thresholds across gameplay | Mostly cosmetic; some grant small permanent bonus per tier |
| Honours | Rare, prestigious single awards for exceptional feats | Specific hard/rare accomplishments | Display + a few grant permanent bonus |
| Titles | Name prefixes/suffixes shown with character name | Unlocked by medals/honours | Cosmetic only |
| Hall of Fame | Leaderboards / rankings | Top N per category, season & all-time | Bragging rights + seasonal cosmetic |
Design guardrail: Permanent gameplay bonuses from honours/medals are small, %-based, and collectively capped (max ~+10% total across all sources) so this rewards dedication without creating unbridgeable gaps or pay-to-win pressure. The bulk of the value is cosmetic prestige + long-term goals.
2. Medals — Tiered Badges by Category
Each medal has 5 tiers. Cross a threshold → earn that tier (and upgrade the badge on your profile). Tiers are cumulative counters tracked per character.
Tier Progression (Fantasy-Flavoured)
| Tier | Name | Relative Rarity |
|---|---|---|
| T1 | Copper | Common — early game |
| T2 | Silver | Uncommon — mid game |
| T3 | Gold | Rare — dedicated players |
| T4 | Platinum | Very rare — long-term veterans |
| T5 | Dragon | Legendary — top-tier devotees |
2.1 Medal Categories & Examples
Thresholds are illustrative; final values set in tuning. A medal marked ⚡ grants a small permanent bonus at one or more tiers (see §4 for the bonus catalogue).
⚔️ Combat (PvP & PvE)
| Medal | Copper | Silver | Gold | Platinum | Dragon | Bonus? |
|---|---|---|---|---|---|---|
| Pit Fighter (arena wins) | 10 | 100 | 1,000 | 10,000 | 50,000 | ⚡ +arena XP |
| Ambusher (successful ambushes) | 5 | 50 | 500 | 2,500 | 10,000 | — |
| Survivor (survive lethal attacks <10% HP) | 1 | 10 | 50 | 200 | 1,000 | — |
| Crit Master ⚡ (critical hits landed) | 100 | 1,000 | 10,000 | 100,000 | 500,000 | +crit chance |
| Flawless (win combat without taking damage) | 5 | 50 | 250 | 1,000 | 5,000 | — |
| Duelist (1v1 ranked wins) | 10 | 100 | 500 | 2,000 | 10,000 | ⚡ +duel rewards |
| Dungeon Clearer (dungeons completed) | 1 | 10 | 50 | 200 | 1,000 | — |
🗡️ Adventure (→ Torn's Crimes)
| Medal | Copper | Silver | Gold | Platinum | Dragon | Bonus? |
|---|---|---|---|---|---|---|
| Pickpocket (successful pickpockets) | 10 | 100 | 1,000 | 10,000 | 50,000 | — |
| Burglar (manors/vaults broken into) | 1 | 25 | 100 | 500 | 2,000 | — |
| Fencer (stolen goods fenced) | 10 | 100 | 1,000 | 10,000 | 50,000 | ⚡ +fence value |
| Waylayer (travelers waylaid) | 5 | 50 | 500 | 2,500 | 10,000 | — |
| Dungeon Raider (guild raids completed) | 1 | 5 | 25 | 100 | 500 | — |
| Adventurer (total adventures completed) | 100 | 1,000 | 10,000 | 50,000 | 250,000 | ⚡ +adventure gold |
| Night Owl ⚡ (nighttime adventures) | 50 | 500 | 5,000 | 25,000 | 100,000 | +stealth at night |
🔨 Crafting & Gathering
| Medal | Copper | Silver | Gold | Platinum | Dragon | Bonus? |
|---|---|---|---|---|---|---|
| Smith (items crafted) | 10 | 100 | 1,000 | 10,000 | 50,000 | — |
| Artisan (Superior+ quality crafted) | 5 | 50 | 500 | 2,500 | 10,000 | — |
| Mastercraft (Masterwork crafted) | 1 | 10 | 50 | 200 | 1,000 | ⚡ +crafting crit |
| Legendary Forger (Legendary crafted) | 1 | 5 | 25 | 100 | 500 | — |
| Miner's Grit ⚡ (ore mined) | 1K | 10K | 100K | 1M | 10M | +gathering yield |
| Herbalist (herbs gathered) | 1K | 10K | 100K | 1M | 10M | — |
| Polymath (all 12 professions to Journeyman) | — | 1 | — | all to Expert | all to Master | ⚡ +crafting XP |
✨ Magic & Skills (feeds the Skill/Magic System)
| Medal | Copper | Silver | Gold | Platinum | Dragon | Bonus? |
|---|---|---|---|---|---|---|
| Apprentice (any skill to rank 10) | 1 | 5 | 12 | 25 | 50 skills | — |
| Spellweaver (spells learned) | 5 | 25 | 75 | 150 | 250 | — |
| List Master ⚡ (spell list maxed) | 1 | 3 | 6 | 10 | 20 lists | +PP regen |
| Archmage (all 4 Essence schools mastered) | — | — | — | 1 | — | ⚡ +casting bonus |
| Loremaster (all Lore skills rank 20) | — | — | 1 | — | — | — |
| Jack of All Trades ⚡ (skills at rank 20+) | 5 | 15 | 30 | 50 | 80 | +DP gain |
💰 Economy
| Medal | Copper | Silver | Gold | Platinum | Dragon | Bonus? |
|---|---|---|---|---|---|---|
| Coinpurse (total gold earned) | 10K | 1M | 100M | 10B | 1T | — |
| Tycoon ⚡ (net worth milestone) | 100K | 10M | 1B | 100B | 10T | +bank interest |
| Merchant (market trades completed) | 10 | 100 | 1,000 | 10,000 | 50,000 | ⚡ -listing fees |
| Gambler (inn games won) | 10 | 100 | 1,000 | 5,000 | 25,000 | — |
| Speculator (merchant ventures profited) | 1 | 10 | 50 | 200 | 1,000 | — |
🛡️ Guild & Social
| Medal | Copper | Silver | Gold | Platinum | Dragon | Bonus? |
|---|---|---|---|---|---|---|
| Loyalist (guild tenure) | 1mo | 6mo | 1yr | 2yr | 5yr | — |
| War Hero (guild wars won) | 1 | 5 | 25 | 100 | 500 | ⚡ +guild rep gain |
| Benefactor (gold donated to guild) | 10K | 1M | 100M | 10B | 1T | — |
| Reputation (social reputation points) | 100 | 1K | 10K | 100K | 1M | — |
| Carouser ⚡ (inn carousing sessions) | 10 | 100 | 1,000 | 5,000 | 25,000 | +charisma temp |
🏹 Slayer & Hunting
| Medal | Copper | Silver | Gold | Platinum | Dragon | Bonus? |
|---|---|---|---|---|---|---|
| Slayer (tasks completed) | 1 | 10 | 50 | 250 | 1,000 | ⚡ +slayer XP |
| Bounty Hunter (bounties claimed) | 1 | 10 | 50 | 250 | 1,000 | — |
| Exterminator (total enemies slain) | 100 | 1K | 10K | 100K | 1M | — |
| Rare Game (rare/elite enemies killed) | 1 | 10 | 50 | 200 | 1,000 | — |
🗺️ Exploration
| Medal | Copper | Silver | Gold | Platinum | Dragon | Bonus? |
|---|---|---|---|---|---|---|
| Pathfinder (districts discovered) | 3 | 6 | all 11 | — | — | — |
| Voyager (offshore trips) | 1 | 5 | 25 | 100 | 500 | — |
| Tomb Raider (Lost Tombs cleared) | 1 | 5 | 25 | 100 | 500 | — |
| World Walker (all travel destinations visited) | — | — | — | — | 1 | — |
🎪 Events & Seasonal
| Medal | Copper | Silver | Gold | Platinum | Dragon | Bonus? |
|---|---|---|---|---|---|---|
| Festival Goer (seasonal events joined) | 1 | 3 | 6 | 12 | 24 | — |
| The Hunt Champion (world boss dealt final blow) | — | — | 1 | 3 | 10 | — |
| Mangar's Eve survivor | — | 1 | 3 | 5 | 10 | — |
2.2 Hidden Medals
A subset of medals are hidden (like Torn's secret honours) — the name/description is ??? until earned. Examples: discover the Adventurers' Guild, find a hidden room in a dungeon, fence goods to Old Grist 100 times. Creates exploration-driven surprise and community wiki culture.
3. Honours — Rare Prestige Awards
Honours are single, non-tiered awards for exceptional, hard, or one-off accomplishments. Far rarer than medals. Displayed in a dedicated "Honours" ribbon on the profile. Each has a unique fantasy name and flavour text.
| Honour | Requirement | Bonus? | Notes |
|---|---|---|---|
| First Light | Be among the first 100 characters to reach level 50 | ⚡ +1% all XP | World-first cohort |
| Dragonslayer | Deal the final blow to a Dragon-tier world boss | ⚡ +2% damage to bosses | Coordination feat |
| Archmage of Skara Brae | Master all four Essence schools (Archmage) | ⚡ +5% spell effectiveness | Magic capstone |
| Grandmaster Artisan | Reach Grandmaster in all 12 professions | ⚡ +crafting crit chance | Ultimate crafter |
| Unbroken | Win 100 arena duels without a single loss streak | ⚡ +arena prestige | Combat excellence |
| The Untouchable | Reach level 50 without ever being ambushed/defeated | ⚡ +1% dodge | Pure PvE run |
| Mangar's Bane | Complete Act V (defeat Mangar) | ⚡ +title "Bane of Mangar" | Storyline capstone |
| Citizen of the Year | Win a seasonal Hall of Fame #1 | Cosmetic title | Seasonal |
| Lucky Devil | Roll an upward open-ended 200+ (any maneuver) | — | RNG flex |
| Iron Will | Resist 100 spells via Resistance Roll | ⚡ +5 RR | Anti-magic |
| The Beggar King's Shadow | Max all underground slayer tasks | ⚡ +stealth | Rogue capstone |
| Champion of the Dawn | Complete all of High Priestess Vaela's divine quests | ⚡ +blessing duration | Cleric capstone |
| Patron of the Arts | Hire 1,000 gold worth of inn workers | — | Gold-sink flex |
| Survivor of the Deep | Clear the Undercity without a party member falling | ⚡ +Undercity rewards | Solo/coordination |
Honours are intentionally curated and limited (target: ~40 at launch, expandable). They're the "wow" awards that make a profile stand out.
4. Permanent Bonuses — Bounded & Capped
The ⚡ bonuses are the main gameplay incentive. To prevent power creep:
- Each ⚡ bonus is small: typically +1% to +5% in its niche.
- Collective cap: total bonus from all honours + medals combined is capped at +10% per category of effect (e.g., max +10% combat-related, +10% crafting-related, etc.). Beyond the cap, additional ⚡ awards are cosmetic-only.
- Diminishing stacking: multiple sources of the same effect stack multiplicatively with diminishing returns (e.g., two +5% crit bonuses = 1 - (0.95)(0.95) = +9.75%, not +10%).
- Cosmetic is king: most medals/honours are display-only. The bonuses are seasoning, not the meal.
This mirrors Torn, where honours give tiny permanent stat bumps — enough to matter to min-maxers, not enough to invalidate progression.
5. Titles
Earned from medals/honours. One active title displayed with the character name (e.g., in chat, combat, profile). Players can switch their active title freely from earned titles.
| Title | Source |
|---|---|
| the Pit Fighter | Pit Fighter medal (Gold) |
| Slayer of the Deep | Survivor of the Deep honour |
| Bane of Mangar | Mangar's Bane honour |
| Archmage | Archmage honour |
| the Coin-King / Coin-Queen | Tycoon medal (Platinum) |
| Dragonslayer | Dragonslayer honour |
| Grandmaster | Grandmaster Artisan honour |
| Loremaster | Loremaster medal |
| Shadow / the Unseen | Beggar King's Shadow honour |
| of the Dawn | Champion of the Dawn honour |
Titles are purely cosmetic — no mechanical effect. They're the social currency of prestige.
6. Hall of Fame / Leaderboards
Redis-backed leaderboards (already in the tech stack) power the Hall of Fame:
| Board | Scope | Reset |
|---|---|---|
| Combat ranking | PvP rating | Seasonal (monthly) + all-time |
| Wealth ranking | Net worth | All-time |
| Adventure ranking | Adventures completed (season) | Seasonal |
| Crafting ranking | Items crafted (season) | Seasonal |
| Guild ranking | Guild reputation | Seasonal + all-time |
| Slayer ranking | Slayer tasks (season) | Seasonal |
Top 3 / Top 10 / Top 100 each season earn a seasonal honour + cosmetic. All-time leaders are enshrined permanently.
7. Profile Display
A character's profile (viewable by others, like Torn's profile page) shows:
- Honours ribbon — row of rare honour icons (the flex zone)
- Medal case — categorized medal badges with earned tiers; unearned show greyed silhouettes (hidden medals show
???) - Active title — prefix/suffix on the name
- Hall of Fame badges — seasonal & all-time rankings
- Featured medal — player picks one medal to feature prominently
This creates the Torn-style "let me see how impressive this player is at a glance" profile.
8. Database Schema (Draft)
-- Medal definitions (static game data, in skara-brae-common)
-- (could be JSON/TOML in common repo; shown as SQL for schema context)
CREATE TABLE medal_definitions (
id VARCHAR(64) PRIMARY KEY, -- 'pit_fighter'
category VARCHAR(32) NOT NULL,
name VARCHAR(64) NOT NULL,
description TEXT NOT NULL,
is_hidden BOOLEAN NOT NULL DEFAULT FALSE,
-- tier thresholds as JSON array: [10,100,1000,10000,50000]
thresholds JSONB NOT NULL
);
-- Character medal progress (highest tier earned + current count)
CREATE TABLE character_medals (
character_id UUID NOT NULL REFERENCES characters(id),
medal_id VARCHAR(64) NOT NULL REFERENCES medal_definitions(id),
count BIGINT NOT NULL DEFAULT 0,
highest_tier SMALLINT NOT NULL DEFAULT 0, -- 0..5
PRIMARY KEY (character_id, medal_id)
);
-- Honour definitions
CREATE TABLE honour_definitions (
id VARCHAR(64) PRIMARY KEY,
name VARCHAR(64) NOT NULL,
description TEXT NOT NULL,
bonus_json JSONB, -- null if cosmetic
title VARCHAR(64) -- granted title, if any
);
-- Character honours earned
CREATE TABLE character_honours (
character_id UUID NOT NULL REFERENCES characters(id),
honour_id VARCHAR(64) NOT NULL REFERENCES honour_definitions(id),
earned_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
PRIMARY KEY (character_id, honour_id)
);
-- Earned titles
CREATE TABLE character_titles (
character_id UUID NOT NULL REFERENCES characters(id),
title VARCHAR(64) NOT NULL,
source VARCHAR(64) NOT NULL, -- honour_id or medal_id
earned_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
PRIMARY KEY (character_id, title)
);
ALTER TABLE characters ADD COLUMN active_title VARCHAR(64);
ALTER TABLE characters ADD COLUMN featured_medal VARCHAR(64);
Counters that feed medals (arena wins, crits, gold earned, etc.) are best stored as existing gameplay columns or a lightweight character_counters key-value table to avoid schema bloat:
CREATE TABLE character_counters (
character_id UUID NOT NULL REFERENCES characters(id),
counter_key VARCHAR(48) NOT NULL, -- 'arena_wins', 'crits_landed', ...
value BIGINT NOT NULL DEFAULT 0,
PRIMARY KEY (character_id, counter_key)
);
9. API Additions (Draft)
# Profile / medals / honours (public-ish)
GET /api/profile/:character_id # overview incl. medals, honours, title
GET /api/character/medals # own medals + progress + hidden (revealed only)
GET /api/character/honours # own honours
PUT /api/character/active-title # set active title
PUT /api/character/featured-medal # set featured medal
# Hall of Fame
GET /api/leaderboard/:board # seasonal or all-time rankings
A new WebSocket notification type for medal/honour unlocks:
{ "type": "achievement:unlock", "data": { "kind": "medal", "id": "crit_master", "tier": 3, "name": "Crit Master", "bonus": "+1% crit chance" } }
{ "type": "achievement:unlock", "data": { "kind": "honour", "id": "dragonslayer", "name": "Dragonslayer" } }
10. Integration With Existing Systems
| Existing System | Integration |
|---|---|
| Cumulative achievements (existing design) | Replaced/augmented by medals. "Mine 10,000 ore" → Miner's Grit medal. |
| Skill & Magic System (new) | Skill ranks, spell lists mastered, Archmage, Jack of All Trades all feed medals/honours. |
| Combat crit tables | Crit Master medal tracks crits landed. |
| Crafting quality tiers | Artisan / Mastercraft / Legendary Forger medals track quality outcomes. |
| Adventures / crimes | Pickpocket, Burglar, Fencer, Adventurer medals mirror Torn crime milestones. |
| Guilds / Clans | War Hero, Benefactor, Loyalist medals; seasonal guild HOF. |
| Slayer / Bounty | Slayer, Bounty Hunter medals. |
| Economy | Coinpurse, Tycoon, Merchant medals; wealth HOF. |
| Seasonal events | Festival Goer, seasonal HOF "Citizen of the Year" honour. |
| Redis (tech stack) | Powers leaderboards + counter aggregation for medal thresholds. |
11. MVP / Phasing
- Phase 1 (MVP): Medal counters + a handful of combat/adventure medals (cosmetic only). Profile shows medal case. Lays the tracking infrastructure.
- Phase 2: Full medal categories, ⚡ bonuses (capped), Honours, Titles, profile ribbon.
- Phase 3: Hall of Fame leaderboards (seasonal + all-time), hidden medals, seasonal honours.
- Phase 4: Community medal wiki integration, medal-of-the-week, special event honours.
12. Open Design Questions
- Bonus cap: confirm +10% per-effect-category collective cap? Adjust per category?
- Tier count: 5 tiers (Copper→Dragon) or simplify to 4 (drop Dragon)?
- World-first honours (First Light): feasible to award fairly at launch? Use a registration-cohort instead?
- Hidden medals: how many at launch? Risk of players missing them entirely.
- Seasonal HOF reset cadence: monthly? Quarterly?
- Bonus stacking math: confirm multiplicative-diminishing vs. additive-capped.
- Counter storage: dedicated
character_counterstable vs. adding columns — choose before Phase 1.
Related Notes
- Game Concept Overview — Core loops, cumulative achievements (now medals)
- Skill & Magic System — Skills/magic feed medals & honours
- Mechanics Source Mapping — Torn City source mapping (honours expanded here)
- Combat System & Stat Scaling Design — Crit Master medal tracks crits
- Tech Stack & Architecture — Redis leaderboards, DB schema
- Lore & World Building — NPCs/districts referenced in honours
- Project Plan — Roadmap, phasing