# 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) ```sql -- 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? --- ## Related Notes - [Game Concept Overview](joplin://9cf8a2e701654ffbbd6512cc837c7e2f) — Skills, classes, stats, spell schools, education - [Combat System & Stat Scaling Design](joplin://0ef630db4e3e4d6dab18ccaefccaaa5a) — d100 open-ended crit tables (this system generalizes them) - [Mechanics Source Mapping](joplin://87a0f70b45c4453caae0fa2b5b8a96f9) — RoleMaster source mapping (expanded here) - [Lore & World Building](joplin://867bdc9845624908a90928887a71c4c9) — Adventurers' Guild / Review Board, districts for learning - [Tech Stack & Architecture](joplin://cecd2ef2690d4d1fba3450342aa63953) — DB schema, crate structure (skills.rs, spell engine) - [Project Plan](joplin://d243ae57778343fca997d46b73d0ee3b) — Roadmap, MVP scope - [Medals & Honours System](joplin://4877acc671ed4bfcb0d6bf2c5323c94a) — Skill/magic mastery feeds medals