skara-brae-common/docs/game/skill-magic-system.md
Jan-Peter von Hunnius 7a9a5a3e7b docs(game): migrate game-design canon notes from Joplin into docs/game/
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.
2026-10-03 17:27:43 +02:00

22 KiB
Raw Permalink Blame History

Skara Brae — Skill & Magic System (MERP/Rolemaster-Inspired)

Source: Joplin note 4c295d18c9b04aea947b534834ffaced, migrated 2026-10-03

Goal: Port the depth of the MERP/Rolemaster skill and magic engine into Skara Brae's existing use-based, BIGINT-stat, idle/MMO framework — without abandoning the Torn-style "stats only go up, train by doing" feel.


1. Design Philosophy — Reconciling Two Worlds

Concern RoleMaster/MERP Skara Brae Existing Resolution
How skills grow Development Points spent per level (point-buy) Use-based XP per skill (like RuneScape/Idle Fantasy) Hybrid: practice-ranks by use + development-ranks by spend. See §3.
Skill depth ~60 skills in 18+ categories, stat-linked, diminishing returns Flat list of ~25 skills, each on its own XP bar Adopt RM categories, rank-bonus formula, stat integration, maneuver difficulties.
Magic Spell lists (open/closed/base), realm-based, learned in order, power-point cost 4 BT1 schools + 3 realms mentioned but undefined Full spell-list system (§5): curated lists per realm, ordered progression, PP cost, bolt/ball/utility classification.
Resolution d100 open-ended + skill bonus vs. maneuver difficulty d100 open-ended for combat only Generalize d100 open-ended maneuver roll to all skills (§4).
Stats 10 stats 6 BIGINT stats (Str/Agi/Con/Int/Wis/Cha) Map each skill to 1–3 of our 6 stats (§2.2).

Key principle: Use-based training is the primary advancement loop (consistent with Torn + Idle Fantasy + the idle/offline features). Development Points are a secondary layer that lets players cross-train skills they don't actively grind — exactly Rolemaster's flexibility, but earned through play rather than per-level allocation alone.


2. The Skill Catalogue

2.1 Skill Categories

All skills are organized into Rolemaster-style categories. A character's profession (class) grants a profession modifier per category — a discount on Development Point cost and/or a small bonus to the skill bonus. This is the Rolemaster "class feel" mechanism.

# Category Example Skills Primary Use
1 Armor Light Armor, Medium Armor, Heavy Armor, Shield Mitigation, agility penalties
2 Weapon — Melee 1H Edged, 1H Concussion, 2-Handed, Polearms, Unarmed, Martial Arts Attack rolls, OB
3 Weapon — Ranged Bow, Crossbow, Thrown, Sling Ranged attack rolls
4 Athletic / Brawn Climbing, Swimming, Gymnastics (dodge), Lifting Movement, escape, evasion
5 Awareness / Search Perception, Alertness, Tracking, Trap Sense, Ambush Awareness Detection, scouting
6 Body Development Constitution (HP pool growth), Stamina Survivability
7 Combat Maneuvers Mounted Combat, Adrenal Defense, Multiple Parry, Feint Advanced combat options
8 Craft / Trade Blacksmithing, Alchemy, Enchanting, Tailoring, Jewelcrafting, Fletching, Cooking Crafting professions
9 Gathering Mining, Herbalism, Woodcutting, Fishing, Skinning Material acquisition
10 Directed Spells Runes, Staves & Wands, Scrolls Using magic items
11 Influence Leadership, Persuasion, Intimidation, Disguise Social, guild, trade
12 Lore General Lore, Magical Lore, Religious Lore, Skara Brae Lore Quests, puzzles, dungeon riddles
13 Magic Lore Runereading, Spell Mastery, Mana Weaving Spellcasting support
14 Mental (Mentalism) Telepathy, Mental Defense, Mind Control, Enhancement Mentalism spell channeling
15 Outdoor / Environment Foraging, Survival, Weather Reading, Navigation Wilderness, Wilds, offshore
16 Self Control Meditation (mana regen), Frenzy (berserk), Willpower (RR bonus) Buffs, recovery
17 Special Attacks Backstab, Ambush, Poisons, Stunning Blows Rogue/Monk techniques
18 Spells (per realm) Essence Lists, Channeling Lists, Mentalism Lists Spellcasting — see §5
19 Subterfuge / Stealth Lockpicking, Pickpocketing, Sneaking, Hiding, Trap Setting Thievery, adventures
20 Technical / Trade Bartering, Appraisal, Engineering (siege/traps) Economy, guild siege
21 Urban Streetwise, Gambling, Carousing, Black Market (fencing) Inn, Lower City, Harbor

Mappers to existing design: categories 8 & 9 = the 5 gathering + 7 crafting professions already defined. Category 19 = the Thievery tree. Category 21 = social/inn activities. Category 18 = the magic system in §5.

2.2 Stat Linkage

Each skill rolls 1–3 relevant stats. Stat bonus is derived from the BIGINT stat via a logarithmic bonus function (so billions-scale stats still produce a bounded, meaningful bonus):

stat_bonus(value) = floor( 10 * log2( value / 10 ) )   // bounded, grows slowly
// Example:  10 → 0,  20 → +10,  80 → +30,  10K → +100,  1B → ~+200

(Exact curve TBD in tuning — the point is slow, diminishing growth so that a character with 1B Intelligence isn't auto-winning every lore check, but is meaningfully better than one with 10K.)

Sample skills Linked Stats
1H Edged Str, Agi
Bow Agi
Stealth / Sneaking Agi
Lockpicking Agi, Int
Blacksmithing Str, Int
Alchemy Int, Wis
Persuasion Cha
Tracking Wis, Int
Meditation Wis, Con
Unarmed / Martial Arts Str, Con, Agi
Runereading Int

3. Skill Ranks — Practice + Development (Hybrid)

3.1 Two Tracks, One Bonus

A skill's effectiveness is driven by its total ranks, which come from two sources:

  1. Practice Ranks — earned automatically by using the skill (use-based XP → rank thresholds). This is the core loop. Each skill has its own XP bar. Offline apprentice workers grant practice XP at 50% (existing design).
  2. Development Ranks — purchased with Development Points (DP). Lets a player boost a skill they aren't actively grinding, or push past a practice plateau.
total_ranks(skill) = practice_ranks + development_ranks
skill_bonus(skill) = rank_bonus(total_ranks)
                       + Σ stat_bonus(linked_stats)
                       + profession_bonus(class, category)
                       + equipment_bonus
                       + situational_modifiers

3.2 Rank Bonus — Diminishing Returns (Rolemaster Formula, Adapted)

Rank Band Bonus per Rank Cumulative at Band End
Ranks 1–10 +5 each +50
Ranks 11–20 +3 each +80
Ranks 21–30 +2 each +100
Ranks 31–50 +1 each +120
Ranks 51+ +0.5 each (rounded) slow creep

This mirrors Rolemaster's "first rank is worth a lot, then diminishing." It keeps use-based grinding rewarding early and makes Development Points meaningful for pushing high-end skills. Caps per skill can be set per tuning (e.g., max 50 ranks for non-combat, higher for weapons/spells).

3.3 Development Points

  • DP per character level = 5 + stat_bonus(Intelligence) (Intelligence = learning aptitude). Patrons may get +2.
  • DP cost to buy a rank depends on the skill's category and the character's profession:
Profession Modifier DP per Rank Meaning
Favored 1 Class's core competencies
Normal 2 Secondary skills
Unfavored 4 Outside the class's wheelhouse
Restricted 8 (or disallowed) E.g., heavy spellcasting for a Warrior
Class Favored Categories (examples) Unfavored
Warrior Armor, Weapon-Melee, Weapon-Ranged, Body Dev, Combat Maneuvers Spells, Mental
Rogue Subterfuge/Stealth, Special Attacks, Urban, Awareness, Weapon-Melee Spells (closed), Self Control
Mage Spells (Essence), Lore, Magic Lore, Directed Spells, Craft (Enchant/Alchemy) Armor, Weapon-Melee, Subterfuge
Bard Spells (Mentalism), Influence, Lore, Urban, Self Control Armor (heavy), Body Dev
Cleric Spells (Channeling), Influence, Self Control, Lore Weapon-Ranged, Subterfuge
Ranger Weapon-Ranged, Outdoor/Envir, Awareness, Gathering, minor Channeling Urban, Influence
Paladin Armor, Weapon-Melee, Spells (minor Channeling), Self Control, Influence Subterfuge, Mental
Monk Unarmed/Martial Arts, Athletic, Self Control, Body Dev Armor (heavy), Spells

3.4 Classless Cross-Training

Because any class can buy any (non-restricted) skill at higher DP cost, a Warrior can learn a basic Fire Bolt — but it costs 8 DP/rank and caps low. This is pure Rolemaster flexibility and rewards hybrid builds, while keeping class identity strong.


4. Skill Resolution — The Maneuver Roll (Generalized d100)

Every non-trivial skill action resolves with the same engine as combat: an open-ended d100 maneuver.

4.1 Difficulty Modifiers

Difficulty Modifier Example in Skara Brae
Routine +30 Pick an easy lock (tavern cellar)
Easy +20 Track a fresh trail in snow
Light +10 Brew a basic healing potion
Medium 0 Pickpocket a sober merchant
Hard −10 Pickpocket a guard; scale a city wall
Very Hard −20 Defuse a dungeon trap; fence rare goods
Extremely Hard −30 Pick a vault lock in the Noble Quarter
Sheer Folly −50 Climb a sheer cliff in a storm
Absurd −70 Pickpocket Mangar's lieutenant

4.2 Resolution

maneuver_total = d100_open_ended() + skill_bonus(skill) + difficulty_modifier

Open-ended: 96–100 rolls again and adds; 01–05 rolls again and subtracts (downward open-ended, per Rolemaster).

4.3 Result Table

maneuver_total Outcome Effect
≥ +80 Absolute Success Best result + bonus (e.g., +50% yield, bonus loot)
+21 to +79 Complete Success Full intended effect
0 to +20 Partial Success Effect at reduced value / longer time
−20 to −1 Failure No effect; small chance of minor mishap
−80 to −21 Absolute Failure Failure + complication (broken pick, alarm, wasted materials)
≤ −81 Spectacular Failure Severe consequence (injury, aggro, lost materials, trap sprung)

Downward open-ended rolls (01–05) feed the lower bands → the "fumble" tension that makes Rolemaster feel alive.

4.4 Why This Matters

  • Adventures (pickpocketing, burglary, fencing) now use real skill checks with difficulty tiers — replacing a flat success chance.
  • Crafting quality rolls (Common→Legendary) can be driven off the maneuver table instead of a separate d100.
  • Dungeon puzzles (lore checks, riddles, lockpicking, trap disarming) become skill encounters.
  • Social actions (persuade the Beggar King, bluff the City Watch) use Influence skills.
  • Consistent with the combat crit table already designed — one unified resolution engine.

5. The Magic System — Spell Lists per Realm

5.1 Realms & Primary Stat (Power Points)

Realm Casters Primary Stat (PP) Flavor
Essence Mages Intelligence Raw magical energy woven from the world
Channeling Clerics, Paladins (minor) Wisdom Power granted by the Old Gods
Mentalism Bards Charisma Power drawn from mind and will

Power Points (PP) = the spell-casting resource (replaces/generates the mana BIGINT pool). PP-per-level scales with the realm stat bonus:

max_pp = base_pp(class) + realm_stat_bonus * pp_multiplier(class)

PP regenerates over time, boosted by Meditation skill (Self Control) and blessings. Spells cost PP to cast; higher-tier spells on a list cost more.

5.2 Spell Lists — Open, Closed, Base

A spell list is an ordered progression: spell #1 is the weakest, spell #N is the strongest. You must learn a list in order — you can't learn spell #10 without #1–#9. This is core Rolemaster.

List Class Availability Example
Open Available to all casters of that realm (favored DP cost) Essence Hand (utility) for all Essence users
Closed Restricted to specific professions of that realm (normal/normal+ cost) Life Mastery (healing) closed to Clerics
Base The profession's signature lists (cheapest, defines the class) Fire Law as a Mage base list

You rank up a spell list like a skill (practice by casting + DP). Your list rank determines the highest spell number you can cast from that list. E.g., Fire Law rank 12 lets you cast Fire Law spells 1–12.

5.3 Curated Spell Lists per Realm

(Target: ~20 lists per realm, ~10–15 spells each. Below is the launch set — expandable.)

Essence (Mages)

List Class Highlights
Fire Law Base (Mage) Spark → Fire Bolt → Wall of Fire → Fire Ball → Inferno
Ice Law Base (Mage) Frost → Ice Bolt → Freeze → Blizzard
Light Law Base (Mage) Glow → Light Bolt → Blinding Flash → Sun Bolt
Earth Law Closed Stone Bolt → Entangle → Earthquake
Water Law Closed Water Bolt → Wave → Tidal Surge
Illusions Closed Phantasmal Force → Blur → Invisibility
Living Change Closed Enhance Stat → Shrink → Polymorph
Lofty Bridge Closed Leap → Long Step → Gate → Teleport
Essence Hand Open Light → Unseen Hand → Lock Lore → Dispel
Essence Ways Open Detect Magic → Aura Reading → Sense Essence
Spell Wall Open Minor Shield → Barrier → Wall of Force
Essence Perceptions Open Detect Essence → Analyze Magic

BT1 School Mapping: The four Bard's Tale schools are focuses within Essence:

  • Magician (offensive) → Fire/Ice/Light Law base lists
  • Conjurer (summoning) → summoning sub-lists + Earth Law
  • Sorcerer (debilitating) → Illusions + Living Change
  • Wizard (utility) → Lofty Bridge + Essence Hand + Spell Wall

Switching "school" at the Review Board = reprioritizing which base lists you rank. Master all four = Archmage (all Essence lists learned).

Channeling (Clerics)

List Class Highlights
Life Mastery Base (Cleric) Minor Heal → Major Heal → Regeneration → Resurrection
Repulse / Undead Mastery Base (Cleric) Turn Undead → Hold Undead → Control Undead
Protections Base (Cleric) Sanctuary → Holy Shield → Consecration
Detections Closed Detect Evil → Detect Undead → Detect Trap
Creations Closed Create Light → Create Food → Create Water
Weather Ways Closed Calm Weather → Fair Winds → Storm Call
Communal Ways Open Sense Deity → Commune → Divine Guidance
Channeling Perceptions Open Detect Aura → Sense Danger

Mentalism (Bards)

List Class Highlights
Mind Mastery Base (Bard) Daze → Confusion → Mental Stun → Dominate
Song / Sound Base (Bard) Valor (atk buff) → Hope (morale) → Fear (debuff) → Charm → Lullaby (sleep). Long-duration bard songs.
Self Healing Closed Mend → Recover → Revitalize
Mind's Door Closed Telepathy → Mind Speech → Mind Store
Body Control Closed Adrenal Speed → Adrenal Strength → Prowess
Mental Illusions Closed Mirage → Phantasm → Mirage Illusion
Mind's Eye Open Sense Thoughts → Detect Motive
Mental Defenses Open Mind Barrier → Mental Shield → Iron Will

5.4 Spell Classification (Combat Integration)

Type Resolution Notes
Bolt (directed) Attack roll = d100 open-ended + Directed Spells skill vs. target's defense (like a missile) Fire Bolt, Ice Bolt. Can trigger crit tables (elemental crit).
Ball / Area (non-directed) Target makes Resistance Roll: d100 + Will bonus + level vs. spell level Fire Ball, Blizzard. Failed RR = full effect; partial = reduced.
Defensive / Utility Auto-cast (costs PP); resisted only where noted Shields, teleports, detections, healing.

This slots directly into the existing Resistance Roll design (d100 + Will vs. spell difficulty) and the d100 open-ended crit tables. Elemental crit tables (burn, frost, shock) extend the slash/crush/puncture/unarmed tables already defined.

5.5 Spell Acquisition — The Review Board

Per existing design, the Adventurers' Guild (Review Board) is where you learn magic:

  • Increase a spell-list rank by paying gold + meeting the level/practice prerequisite.
  • Casters must visit to gain access to new spell numbers on a list.
  • Magical exam (lore check) for spellcasters (existing design) — now a real Magical Lore maneuver.
  • Mages switch Essence-school focus here (reprioritize base lists).
  • Archmage: a Mage who has maxed all four BT1 schools' base lists → cosmetic title + achievement + small global casting bonus.

5.6 Spell Scrolls & Items

  • Scrolls (Directed Spells → Scrolls skill): one-use spell from any list; lets non-casters cast minor spells (Torn-like consumable). Found in dungeons, crafted by Enchanting.
  • Staves & Wands (Directed Spells → Staves & Wands): rechargeable PP-cost items casting a fixed spell. Crafted/bound via Enchanting.
  • Runes (Magic Lore → Runereading): permanent magical inscriptions on gear; activated by Runereading skill.

6. Integration With Existing Systems

Existing System Change / Enhancement
Combat (crit tables) Elemental crit tables added (burn, frost, shock). Bolts roll like missiles; balls use RR. Maneuver roll unified with combat.
BIGINT stats stat_bonus() log function feeds skills. Stats keep growing to billions; bonuses grow slowly (bounded).
Adventures Success now computed via maneuver roll + skill bonus + difficulty tier. Time-of-day & skill synergies become modifiers.
Crafting (5 gather + 7 craft) These are skills in categories 8 & 9. Quality roll driven by maneuver table; crafting crits = upward open-ended success.
Thievery Lives in Subterfuge/Stealth category (Lockpicking, Pickpocketing, Sneaking, Hiding). Adventures use these directly.
Education courses Completing a course grants DP (development points) — a second DP source beyond leveling. Makes education feel impactful.
Blessings Could grant temporary +skill bonus or +DP regen instead of flat multipliers.
Workers (apprentice) Apprentice grants practice XP to a chosen skill at 50% — unchanged, now feeds practice ranks.
Database New tables needed: skill_categories, character_skill_ranks (split practice/dev), spell_lists, character_spell_list_ranks, spell_definitions. See §7.

7. Database Additions (Draft)

-- Skill ranks (practice + development split)
CREATE TABLE character_skills (
    character_id     UUID NOT NULL REFERENCES characters(id),
    skill_name       VARCHAR(48) NOT NULL,
    category         VARCHAR(32) NOT NULL,
    practice_ranks   INT NOT NULL DEFAULT 0,
    development_ranks INT NOT NULL DEFAULT 0,
    experience       BIGINT NOT NULL DEFAULT 0,   -- feeds practice_ranks
    PRIMARY KEY (character_id, skill_name)
);

-- Development point pool per character
ALTER TABLE characters ADD COLUMN unspent_dp INT NOT NULL DEFAULT 0;

-- Spell lists
CREATE TABLE spell_lists (
    id           VARCHAR(64) PRIMARY KEY,         -- e.g. 'fire_law'
    realm        VARCHAR(16) NOT NULL,            -- essence | channeling | mentalism
    list_class   VARCHAR(16) NOT NULL,            -- open | closed | base
    name         VARCHAR(64) NOT NULL,
    description  TEXT
);

-- Spell definitions (ordered within a list)
CREATE TABLE spells (
    id           VARCHAR(64) PRIMARY KEY,         -- e.g. 'fire_law_3'
    list_id      VARCHAR(64) NOT NULL REFERENCES spell_lists(id),
    spell_number INT NOT NULL,                    -- position in list (1..N)
    name         VARCHAR(64) NOT NULL,
    spell_type   VARCHAR(16) NOT NULL,            -- bolt | ball | defensive | utility
    pp_cost      INT NOT NULL,
    effect_json  JSONB NOT NULL,                  -- damage, duration, modifiers
    description  TEXT,
    UNIQUE (list_id, spell_number)
);

-- Character spell-list ranks
CREATE TABLE character_spell_lists (
    character_id UUID NOT NULL REFERENCES characters(id),
    list_id      VARCHAR(64) NOT NULL REFERENCES spell_lists(id),
    rank         INT NOT NULL DEFAULT 0,          -- highest spell_number accessible
    experience   BIGINT NOT NULL DEFAULT 0,
    PRIMARY KEY (character_id, list_id)
);

8. Open Design Questions

  • Stat bonus curve: exact stat_bonus() function shape — log2 base? Per-stat caps?
  • Rank caps: hard cap per skill (50? 100?) or soft cap via DP scarcity?
  • PP vs. existing mana BIGINT column: unify into PP, or keep mana as the raw pool and PP as derived? Recommend: rename mana→PP conceptually, derive max from formula.
  • Elemental crit tables: how many (burn/frost/shock/sonic/poison)? Where stored (skara-brae-common/crit-tables/)?
  • Scroll/wand crafting: which Enchanting recipes produce scrolls? List-restricted or universal?
  • DP from education: how many DP per completed course? Balance against per-level DP.
  • Multi-realm casters: should any class get a second realm at reduced effectiveness (e.g., Ranger = Essence + Channeling minor)? Rolemaster has semi/hybrid casters.
  • Archmage bonus: cosmetic only, or small global casting bonus?