Files
lords-of-ash/docs/milestones/M3-the-final-empire.md
T
jpmschweitzerandClaude Opus 4.6 51bc5fa57d docs(milestones): add council, religion, caste, and innovation systems
Expand milestone docs with several major new systems:

M3: Religion overhaul — 12 custom tenets (3 per faith), 2 custom
doctrine groups (Allomantic Stance, Caste Doctrine), expanded holy
sites (~10, differentiated by faith, with conditional sites),
tradition condition fixes, dead parameter cleanup. New task 3.11:
Steel Inquisitor holy order + individual Inquisitor request mechanic,
Keeper Network secret society with progression and discovery risk.

M4: Council retheme (5 positions with 10 custom tasks), 7 court
positions (Royal Court), legend system suppression, caste law system
(3 tiers: Strict/Relaxed/Abolished with cross-caste consequence
events), innovation system (Age of the Lord Ruler pre-unlocked +
Age of Liberation locked behind lord_ruler_fallen flag).

M5: Band council with 7 crew roles, vacancy penalties, ~14 role
events, and 5 band tasks. Each crew member's Allomantic ability
enhances their assigned role.

M7: Advanced council interactions (~25 events) — kandra courtier
replacement, Court Smoker vs Seeker duels, Obligator Witness
betrayal, Terris Steward Keeper reveal. Post-endgame choice: seize
the throne or release the kingdoms. Variable standardized to
lord_ruler_fallen across all docs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 17:00:34 +01:00

71 KiB

M3: The Final Empire

Canonical characters populate the world. The Lord Ruler looms over everything.

Prerequisites

  • M1: Foundation must be complete -- province history files exist, comment syntax fixed, modifier definitions present, game rule infrastructure exists, vanilla decision suppression in place, mod boots cleanly.
  • M2: The Metallic Arts must be complete -- all Allomancy/Feruchemy/Hemalurgy traits validated, snapping event chain complete, men-at-arms balanced, stub events filled in, Sandbox "Discover Your Metallic Arts" decision working.
  • The outputs from M1/M2 that M3 directly depends on:
    • common/traits/ -- all 6 trait files with finalized trait IDs and stat blocks
    • common/modifiers/00_mistborn_modifiers.txt -- compounder_modifier, steel_inquisitor_power, lord_ruler_attention_1/2/3 all defined
    • common/game_rules/ -- Narrative vs Sandbox toggle defined
    • history/provinces/ -- province history files assigning culture/religion
    • common/scripted_triggers/mistborn_triggers.txt -- all triggers validated
    • common/scripted_effects/mistborn_effects.txt -- create_steel_inquisitor_effect working

Current State

The codebase has placeholder characters and structure but needs canonical Mistborn figures and several new systems.

Characters (history/characters/00_mistborn_characters.txt):

  • 30 placeholder characters across 10 dynasties. None are canonical Mistborn characters (no Kelsier, Vin, Elend, Sazed, Lord Ruler, etc.).
  • Character IDs start at 900001. ID space 900001-900099 is used.
  • Terris stewards are incorrectly assigned to noble house dynasties (e.g., Telden = dynasty_venture). Noted in REVIEW_NOTES.txt NOTE-04.
  • A placeholder named "Kwaan" reuses a canonical historical name (NOTE-05).

Titles (history/titles/00_mistborn_titles.txt):

  • All kingdom/duchy/county titles assigned to placeholder characters.
  • e_final_empire has no holder (NOTE-03 in REVIEW_NOTES.txt).

Religions (common/religion/religions/00_scadrial_religions.txt):

  • 4 religions defined: steel_ministry_religion, terris_religion, survivorist_religion, ruin_religion.
  • Steel Ministry uses doctrine_no_head -- needs to change to spiritual head for the Lord Ruler.
  • Terris/Survivorism/Cult of Ruin all use doctrine_no_head.

Dynasties (common/dynasties/00_mistborn_dynasties.txt):

  • 10 dynasties defined (5 Tier 1, 5 Tier 2). No Terris dynasty exists.
  • No dynasty for the Lord Ruler or Kelsier's crew.

Cultures (common/culture/cultures/00_scadrial_cultures.txt):

  • 3 cultures defined: noble_scadrian, skaa, terris.
  • All reference TODO name lists that do not exist yet.

Landed Titles (common/landed_titles/00_landed_titles.txt):

  • Full title hierarchy from empire to barony. Baronies reference vanilla province IDs (Swiss/Swabian/Burgundy/Lombard region).
  • Special baronies exist: b_kredik_shaw, b_conventical_of_seran, b_pits_of_hathsin -- but no special building slots defined.

Holy Sites (common/religion/holy_sites/00_holy_sites.txt):

  • 5 holy sites defined: Luthadel, Pits of Hathsin, Conventical of Seran, Tathingdwen, Urteau. Each references a barony.

Traits -- trait_kandra does not exist. trait_knows_hemalurgy was added in a previous fix pass but no trait_kandra for kandra characters.

Buildings -- common/buildings/ directory does not exist.

Name lists -- common/culture/name_lists/ directory does not exist.

Implementation Tasks

3.1 -- Create the Lord Ruler Character

Context: The Lord Ruler is the central figure of the setting. He must exist as an immortal character, hold e_final_empire, and serve as the religious head of the Steel Ministry. He is not playable. This is the single most important task in M3 -- many other tasks depend on it.

Steps:

  1. Add the Lord Ruler character definition to history/characters/00_mistborn_characters.txt using ID 900100. Use birth date 0.1.1 (born at the start of the calendar -- he is ~1020 years old). Assign dynasty = dynasty_rashek (new dynasty, see step 4). Set religion = "steel_ministry", culture = "terris" (he was originally Terris per lore). Assign traits: trait_mistborn, trait_feruchemist, trait_allomantic_strength_strong, brave, callous, ambitious, paranoid, education_martial_4. Add the compounder_modifier via the character history block at game start date 1020.1.1.

  2. Make the Lord Ruler effectively immortal. In CK3, use the health trait approach: set health = 10 in his character definition (extremely high base health). The compounder_modifier already grants health = 3. Together these ensure he will not die naturally. Additionally, add a scripted trigger is_lord_ruler_trigger to common/scripted_triggers/mistborn_triggers.txt:

    is_lord_ruler_trigger = {
        this = character:900100
    }
    
  3. Assign the Lord Ruler as holder of e_final_empire in history/titles/00_mistborn_titles.txt:

    e_final_empire = {
        1020.1.1 = {
            holder = 900100
        }
    }
    

    Also make all k_* titles (kingdoms/dominances) de jure under e_final_empire and the Lord Ruler their liege. The kingdom holders should be vassals, not independent.

  4. Create dynasty_rashek in common/dynasties/00_mistborn_dynasties.txt:

    dynasty_rashek = {
        name = "dynn_Rashek"
        culture = terris
    }
    

    And house_rashek in common/dynasty_houses/00_mistborn_houses.txt:

    house_rashek = {
        name = "dynn_house_Rashek"
        dynasty = dynasty_rashek
    }
    

    Add localization in localization/english/mistborn_dynasties_l_english.yml:

    dynn_Rashek:0 "Rashek"
    dynn_house_Rashek:0 "House Rashek"
    
  5. Prevent the Lord Ruler from being playable. Add to common/scripted_triggers/mistborn_triggers.txt:

    is_playable_scadrian_trigger = {
        NOT = { is_lord_ruler_trigger = yes }
    }
    

    In a game rule or via the is_shown block of the bookmark definition, ensure the Lord Ruler cannot be selected. If CK3 1.18 supports can_be_played = { } in the character history, use that. Otherwise, rely on not listing him in any bookmark.

  6. Add a game-start on_action effect in common/on_action/mistborn_on_actions.txt that gives the Lord Ruler the compounder_modifier (permanent, no expiry):

    # Inside on_game_start effect block:
    character:900100 = {
        if = {
            limit = { NOT = { has_modifier = compounder_modifier } }
            add_character_modifier = {
                modifier = compounder_modifier
            }
        }
    }
    

Files:

  • history/characters/00_mistborn_characters.txt -- modify (add Lord Ruler)
  • history/titles/00_mistborn_titles.txt -- modify (assign e_final_empire)
  • common/dynasties/00_mistborn_dynasties.txt -- modify (add dynasty_rashek)
  • common/dynasty_houses/00_mistborn_houses.txt -- modify (add house_rashek)
  • common/scripted_triggers/mistborn_triggers.txt -- modify (add triggers)
  • common/on_action/mistborn_on_actions.txt -- modify (add game-start effect)
  • localization/english/mistborn_dynasties_l_english.yml -- modify

References:

  • Lore: docs/lore/mistborn-universe.md -- Lord Ruler's Compounding, immortality
  • Existing character pattern: history/characters/00_mistborn_characters.txt:13-28
  • Existing dynasty pattern: common/dynasties/00_mistborn_dynasties.txt:10-13
  • Existing on_action pattern: common/on_action/mistborn_on_actions.txt:97-110

3.2 -- Set Lord Ruler as Steel Ministry Religious Head

Context: The Lord Ruler is worshipped as the "Sliver of Infinity" -- the living god of the Steel Ministry. CK3's religious head system lets us make him the spiritual head, which grants him special interactions and makes the religion feel alive.

Steps:

  1. In common/religion/religions/00_scadrial_religions.txt, change steel_ministry_religion from doctrine_no_head to doctrine_spiritual_head. This tells CK3 the faith has a religious head.

  2. In the steel_ministry faith block (inside steel_ministry_religion), add the religious_head field pointing to a title. Create a new religious title d_steel_ministry_head to serve as the religious head title. The Lord Ruler will hold this title.

  3. Define the religious head title in common/landed_titles/00_landed_titles.txt. Add it outside the e_final_empire block (religious titles are independent):

    d_steel_ministry_head = {
        color = { 60 60 60 }
        color2 = { 200 200 200 }
        capital = c_luthadel
    
        can_create = { always = no }
        can_be_named_after_dynasty = no
        de_jure_drift_disabled = yes
    }
    
  4. Assign the Lord Ruler as holder of d_steel_ministry_head in history/titles/00_mistborn_titles.txt:

    d_steel_ministry_head = {
        1020.1.1 = {
            holder = 900100
        }
    }
    
  5. In the steel_ministry faith definition, set:

    religious_head = d_steel_ministry_head
    
  6. Add localization for the religious head title in localization/english/mistborn_titles_l_english.yml:

    d_steel_ministry_head:0 "Sliver of Infinity"
    d_steel_ministry_head_adj:0 "Holy"
    
  7. Add localization for the Lord Ruler character in localization/english/mistborn_religions_l_english.yml or a new characters localization file. The Lord Ruler's name should display as "The Lord Ruler" (use CK3 character naming or a nickname override).

Files:

  • common/religion/religions/00_scadrial_religions.txt -- modify
  • common/landed_titles/00_landed_titles.txt -- modify (add religious title)
  • history/titles/00_mistborn_titles.txt -- modify (assign religious head)
  • localization/english/mistborn_titles_l_english.yml -- modify
  • localization/english/mistborn_religions_l_english.yml -- modify

References:

  • CK3 religious head system: vanilla common/religion/religions/ for examples of doctrine_spiritual_head usage (e.g., Catholic papacy)
  • Existing religion file: common/religion/religions/00_scadrial_religions.txt:1-45
  • Existing title pattern: common/landed_titles/00_landed_titles.txt:5-15

3.3 -- Create Canonical Characters (Kelsier's Crew)

Context: The core cast of Mistborn: The Final Empire must exist as starting characters. Kelsier's crew are the protagonists. Most are unlanded skaa or low-status characters. In M3 they exist as characters in the world; in M5 they will be organized into an adventurer band.

Steps:

  1. Add the following characters to history/characters/00_mistborn_characters.txt using IDs 900200-900299 (new range for canonical characters). For each character, set birth date to make them the correct age at game start 1020.1.1. Reference docs/lore/mistborn-universe.md for trait assignments.

    ID Name Culture Religion Traits Birth Notes
    900200 Kelsier skaa survivorism trait_mistborn, brave, ambitious, scarred (use wounded_1) 982.1.1 ~38 at game start
    900201 Vin skaa steel_ministry trait_mistborn_potential, paranoid, shy, diligent 1004.1.1 ~16 at start, pre-snap
    900202 Sazed terris terris_worldbringers trait_feruchemist, just, temperate, education_learning_4 985.1.1 ~35, Keeper
    900203 Breeze noble_scadrian steel_ministry trait_misting_soother, arrogant, gregarious, education_diplomacy_3 980.1.1 ~40, noble-born
    900204 Ham skaa steel_ministry trait_misting_thug, brave, just, education_martial_3 983.1.1 ~37, philosophical soldier
    900205 Clubs skaa steel_ministry trait_misting_smoker, cynical, patient, education_intrigue_3 968.1.1 ~52, veteran
    900206 Dockson skaa steel_ministry diligent, patient, education_stewardship_3 981.1.1 ~39, no Allomancy
    900207 Marsh skaa steel_ministry trait_misting_seeker, zealous, brave, education_learning_3 978.1.1 ~42, Kelsier's brother
    900208 Yeden skaa survivorism craven, zealous, education_martial_1 985.1.1 ~35, rebel leader
    900209 OreSeur noble_scadrian steel_ministry trait_kandra, deceitful, patient, education_intrigue_3 500.1.1 ~520, kandra (see 3.7)
  2. Set family relationships: Marsh is Kelsier's brother -- give them the same father (create a deceased father character ID 900210):

    900210 = {
        name = "Unknown"
        culture = "skaa"
        religion = "steel_ministry"
        male = yes
        960.1.1 = { birth = "960.1.1" }
        975.1.1 = { death = "975.1.1" }
    }
    

    Then set father = 900210 for both Kelsier (900200) and Marsh (900207).

  3. For Vin, create a deceased mother (ID 900211) who was skaa with trait_allomantic_potential (to justify Vin's Mistborn potential via inheritance):

    900211 = {
        name = "Vin's Mother"
        culture = "skaa"
        religion = "steel_ministry"
        female = yes
        trait = trait_allomantic_potential
        970.1.1 = { birth = "970.1.1" }
        1006.1.1 = { death = "1006.1.1" }
    }
    

    Set mother = 900211 for Vin.

  4. Add Kelsier's scars from the Pits of Hathsin. Use vanilla trait scarred or wounded_1 to represent his arm scars. If scarred is not a vanilla CK3 trait, use wounded_1 plus a custom character flag pits_survivor:

    1020.1.1 = {
        add_character_flag = pits_survivor
    }
    
  5. Ensure Marsh does NOT yet have Steel Inquisitor traits at game start (he becomes one during the story). He starts as a Seeker working undercover in the Steel Ministry.

Files:

  • history/characters/00_mistborn_characters.txt -- modify (add ~12 new characters)
  • localization/english/mistborn_characters_l_english.yml -- create (character names)

References:

  • Lore: docs/lore/mistborn-universe.md -- character roles and abilities
  • Lore: docs/bookmarks/the end of an empire/events.md -- crew composition
  • Existing character pattern: history/characters/00_mistborn_characters.txt:13-28
  • MASTERPLAN.md M3 scope: character list with trait assignments

3.4 -- Create Canonical Characters (Noble Houses and Inquisitors)

Context: The Great Houses need canonical heads (Straff Venture, Shan Elariel) and the Steel Inquisitors must exist as terrifying enforcers. Placeholder characters should be replaced or repurposed.

Steps:

  1. Replace/rename key placeholder characters to canonical ones. The following placeholder-to-canonical mapping replaces existing character IDs:

    House Venture -- Replace Devinshae Venture (900001) with Straff Venture. Straff is a Tineye, ruthless patriarch. Change:

    • Name: "Straff"
    • Traits: trait_misting_tineye, ambitious, callous, lustful, education_stewardship_4

    Replace Fellren Venture (900002) with Elend Venture. Elend is Straff's heir, bookish idealist. Change:

    • Name: "Elend"
    • Traits: remove trait_allomantic_potential, add education_learning_4, just, shy, compassionate
    • Birth: 1000.1.1 (~20 at game start)
    • Note: Elend has no Allomancy in Book 1. He gains it later via Lerasium.
  2. House Elariel -- Replace Shanvere Elariel (900021) with Shan Elariel. She is already defined as a secret Mistborn, which is lore-accurate. Change:

    • Name: "Shan"
    • Keep trait_mistborn, beautiful, deceitful
    • Add ambitious, arrogant
  3. Steel Inquisitors -- Create 3 Steel Inquisitor characters using IDs 900300-900302. Each should have:

    • culture = "noble_scadrian", religion = "steel_ministry"
    • All hemalurgic traits: trait_hemalurgist, trait_hemalurgic_steel, trait_hemalurgic_pewter, trait_hemalurgic_bronze, trait_hemalurgic_atium
    • Vanilla trait disfigured (spikes through eyes)
    • education_martial_4, brave, callous
    • Use the steel_inquisitor_power modifier applied at game start via on_action
    • Birth dates ~900.1.1 (they are very old, sustained by Hemalurgy)
    • No dynasty (they abandoned their former lives)
    • Names: "Kar" (900300), "Bendal" (900301), "Tathren" (900302). Kar is a canonical Inquisitor from the books.
  4. Make the Steel Inquisitors courtiers of the Lord Ruler. In history/titles/00_mistborn_titles.txt, ensure they have no titles of their own. In history/characters/00_mistborn_characters.txt, they need an employer or must be placed in the Lord Ruler's court via an effect block at game start.

  5. Keep remaining placeholder characters (Tekiel, Lekal, Hasting, etc.) as they are -- they serve as minor house heads and fill the world. Rename the Terris placeholder "Kwaan" (900081) to a non-canonical name like "Vedren" to avoid confusion (see REVIEW_NOTES.txt NOTE-05).

  6. Create a Terris stewards dynasty for Terris characters:

    dynasty_terris_stewards = {
        name = "dynn_Terris_Stewards"
        culture = terris
    }
    

    Reassign Terris characters (900080-900082) from noble house dynasties to dynasty_terris_stewards. Add matching localization.

  7. At game start, apply steel_inquisitor_power modifier to each Inquisitor via the on_action on_game_start effect block:

    character:900300 = {
        add_character_modifier = { modifier = steel_inquisitor_power }
    }
    # Repeat for 900301, 900302
    

Files:

  • history/characters/00_mistborn_characters.txt -- modify (replace placeholders, add Inquisitors)
  • history/titles/00_mistborn_titles.txt -- modify (update holder names)
  • common/dynasties/00_mistborn_dynasties.txt -- modify (add dynasty_terris_stewards)
  • common/dynasty_houses/00_mistborn_houses.txt -- modify (add house_terris_stewards)
  • common/on_action/mistborn_on_actions.txt -- modify (Inquisitor modifiers)
  • localization/english/mistborn_dynasties_l_english.yml -- modify
  • localization/english/mistborn_characters_l_english.yml -- create or modify

References:

  • Existing characters: history/characters/00_mistborn_characters.txt:1-100
  • REVIEW_NOTES.txt NOTE-04, NOTE-05: Terris dynasty and name issues
  • create_steel_inquisitor_effect pattern: common/scripted_effects/mistborn_effects.txt:146-157

3.5 -- Create Custom Name Lists

Context: Without custom name lists, characters are generated with vanilla Western European names, destroying Scadrial immersion. Three name lists are needed: noble Scadrian, skaa, and Terris. Names should be drawn from Mistborn lore -- the books provide many named characters that establish naming patterns.

Steps:

  1. Create the directory common/culture/name_lists/ if it does not exist.

  2. Create common/culture/name_lists/name_list_scadrial_noble.txt. Noble Scadrian names follow patterns from the books: male names often end in "-en", "-ren", "-nd", "-sh"; female names in "-enne", "-ine", "-ise", "-ette". Dynasty names are single-word house names.

    Structure (CK3 name list format):

    name_list_scadrial_noble = {
        male_names = {
            Elend Straff Venture Ashweather Jastes Zane Telden Goradel
            Breeze Clubs Dockson Demoux Penrod Yomen Aradan Cett
            Feltren Jordren Aldren Brodren Renweld Dagren Varren
            Garven Salmen Krondain Jastin Gorven Phellen Yollren
            Emmaren Norren Trellen Kellen Wellrin Dellren
            # Additional lore-flavored names
            Kelsinnen Rashten Brellen Durand Stranden Verroth
            Mallren Corrent Hallen Pelliven Jassmere Daston
            Feddren Kolsten Abrend Terroth Vallsten Greneth
        }
        female_names = {
            Valette Shan Kliss Allrianne Tindwyl Beldre
            Valisse Klainne Mellisande Jastrenne Vellenne Dallienne
            Cladine Shanvere Marenne
            # Additional lore-flavored names
            Ellisenne Verdenne Castine Fellise Austrenne Dorienne
            Brellise Kartenne Vallenne Brennine Salienne Kastenne
            Trelenne Merrenne Jordenne Serenne Hastenne Lekienne
        }
        dynasty_names = {
            Venture Hasting Elariel Tekiel Lekal Erikeller
            Bylerum Entrone Conrad Urbain Renoux Cett Penrod
            Yomen Ffnord Getrue Habren Izenry Ostlin
        }
        # CK3 patronymic/matronymic settings
        founder_named_dynasties = yes
        dynasty_of_location_prefix = "of "
    }
    
  3. Create common/culture/name_lists/name_list_scadrial_skaa.txt. Skaa names are simpler -- single syllable or two syllables, rougher sounds. No dynasty names (skaa don't have houses).

    name_list_scadrial_skaa = {
        male_names = {
            Kelsier Dockson Hammond Marsh Yeden Demoux Goradel
            Bilg Hoid Reen Mennis Jed Kar Durn Theron
            Spook Lestibournes
            # Additional lore-flavored names
            Brennan Dellen Tarn Kell Jord Hennen Darrel
            Strad Fenn Torr Bren Marden Greffen Korr
            Vell Redd Stunnen Petten Garth Henden Felren
        }
        female_names = {
            Vin Mare Tindwyl Beldre
            # Additional lore-flavored names
            Kell Maren Tellin Darren Jessi Henna Vallin
            Brennen Sellen Arden Torren Fellah Lessie Renna
        }
        dynasty_names = {
            # Skaa do not traditionally have dynasty names
        }
        always_use_patronym = no
    }
    
  4. Create common/culture/name_lists/name_list_terris.txt. Terris names often end in "-ed" (Sazed, Tindwyl, Kwaan are canon examples). They have a distinctive, slightly Middle Eastern or South Asian flavor.

    name_list_terris = {
        male_names = {
            Sazed Kwaan Rashek Alendi Haddek Tathren Vedzan
            # Additional lore-flavored names
            Kazed Lathren Nathred Vedrin Hathren Beldren
            Tathred Sazen Rashken Kwaden Fellred Jathren
            Kellred Mathren Dorred Galthen Hallred Nolred
        }
        female_names = {
            Tindwyl Beldre
            # Additional lore-flavored names
            Kathwyl Rashwyl Nathren Belwyl Felwyl Halwyl
            Kelwyl Mathwyl Dorwyl Jathwyl Galdren Nolwyl
        }
        dynasty_names = {
            # Terris typically use patronymics or no family name
        }
        always_use_patronym = no
    }
    
  5. Verify the name_list references in common/culture/cultures/00_scadrial_cultures.txt match the file names:

    • noble_scadrian uses name_list = name_list_scadrial_noble -- match
    • skaa uses name_list = name_list_scadrial_skaa -- match
    • terris uses name_list = name_list_terris -- match Remove the # TODO comments from the culture definitions.

Files:

  • common/culture/name_lists/name_list_scadrial_noble.txt -- create
  • common/culture/name_lists/name_list_scadrial_skaa.txt -- create
  • common/culture/name_lists/name_list_terris.txt -- create
  • common/culture/cultures/00_scadrial_cultures.txt -- modify (remove TODO)

References:

  • Existing culture definitions: common/culture/cultures/00_scadrial_cultures.txt:12,37,62
  • CK3 name list format: vanilla common/culture/name_lists/ files
  • Lore names: docs/lore/mistborn-universe.md, character names from books

3.6 -- Create Special Buildings

Context: Three locations in the Final Empire deserve unique buildings: Kredik Shaw (the Lord Ruler's palace), the Pits of Hathsin (atium mine), and the Conventical of Seran (Inquisitor headquarters). CK3's special building system lets us create province-specific buildings with unique effects.

Steps:

  1. Create the directory common/buildings/ if it does not exist.

  2. Create common/buildings/00_mistborn_special_buildings.txt with three special building definitions. Each uses type = special and is tied to a specific barony via the can_construct trigger.

    Kredik Shaw (in b_kredik_shaw, province 2046):

    kredik_shaw = {
        construction_time = 0
    
        can_construct_potential = {
            building_requirement_castle_city_church = { # Placeholder trigger
                LEVEL = 01
            }
        }
    
        can_construct = {
            barony = title:b_kredik_shaw
        }
    
        is_enabled = {
            always = yes
        }
    
        cost_gold = 0
    
        county_modifier = {
            monthly_county_control_growth_add = 0.5
            tax_mult = 0.15
            development_growth_factor = 0.1
        }
    
        character_modifier = {
            monthly_prestige = 2
            monthly_piety = 1
            dread_baseline_add = 20
        }
    
        flag = special_building
    
        ai_value = {
            base = 100
        }
    }
    

    Pits of Hathsin (in b_pits_of_hathsin, province 2482):

    pits_of_hathsin = {
        construction_time = 0
    
        can_construct = {
            barony = title:b_pits_of_hathsin
        }
    
        is_enabled = {
            always = yes
        }
    
        cost_gold = 0
    
        county_modifier = {
            monthly_county_control_growth_add = -0.3
            county_opinion_add = -20
            tax_mult = 0.3
        }
    
        character_modifier = {
            monthly_prestige = 0.5
            gold = 2   # Atium income
            tyranny_gain_mult = 0.2
        }
    
        flag = special_building
    
        ai_value = {
            base = 80
        }
    }
    

    Conventical of Seran (in b_conventical_of_seran, province 2039):

    conventical_of_seran = {
        construction_time = 0
    
        can_construct = {
            barony = title:b_conventical_of_seran
        }
    
        is_enabled = {
            always = yes
        }
    
        cost_gold = 0
    
        county_modifier = {
            monthly_county_control_growth_add = 0.3
        }
    
        character_modifier = {
            monthly_piety = 1
            martial = 2
            dread_baseline_add = 15
            hostile_scheme_power_mult = 0.15
        }
    
        flag = special_building
    
        ai_value = {
            base = 60
        }
    }
    

    Note: The exact CK3 1.18 building syntax should be verified against vanilla special buildings (e.g., special_building_hagia_sophia_01). The can_construct trigger may need adjustment -- vanilla uses barony = title:b_* pattern. Also check whether construction_time = 0 is supported or if the building must be pre-built via history.

  3. If CK3 requires buildings to be pre-built in province history, add building assignments to history/provinces/00_mistborn_provinces.txt for the three special barony provinces. Follow the format:

    2046 = {  # b_kredik_shaw
        holding = castle_holding
        buildings = { kredik_shaw }
    }
    
  4. Add building slot entries to the barony definitions in common/landed_titles/00_landed_titles.txt. In CK3, special buildings are referenced via flags on the title. Check if the baronies need a special_building_slot or special_building field. If not, the building can_construct trigger handles placement.

  5. Add localization in localization/english/mistborn_buildings_l_english.yml:

    kredik_shaw:0 "Kredik Shaw"
    kredik_shaw_desc:0 "The Hill of a Thousand Spires. The Lord Ruler's palace complex in the heart of Luthadel, a massive fortress of twisting metal towers that dominates the skyline."
    pits_of_hathsin:0 "The Pits of Hathsin"
    pits_of_hathsin_desc:0 "A brutal prison camp where skaa are worked to death mining atium geodes from crystalline caverns beneath the earth. Considered inescapable."
    conventical_of_seran:0 "Conventical of Seran"
    conventical_of_seran_desc:0 "The primary research base of the Canton of Inquisition. Steel Inquisitors study Hemalurgy and interrogate prisoners within its dark halls."
    

Files:

  • common/buildings/00_mistborn_special_buildings.txt -- create
  • history/provinces/00_mistborn_provinces.txt -- modify (building assignments)
  • common/landed_titles/00_landed_titles.txt -- modify (if building slots needed)
  • localization/english/mistborn_buildings_l_english.yml -- create

References:

  • CK3 vanilla special buildings: common/buildings/ in vanilla game data
  • Existing barony definitions: common/landed_titles/00_landed_titles.txt:33-41 (Kredik Shaw), common/landed_titles/00_landed_titles.txt:525-533 (Pits), common/landed_titles/00_landed_titles.txt:137-143 (Conventical)
  • Lore: docs/lore/mistborn-universe.md -- Kredik Shaw, Pits of Hathsin

3.7 -- Add Kandra Trait and Contract Mechanics

Context: Kandra are shapeshifting creatures created by the Lord Ruler via Hemalurgy. They serve humans via Contracts. OreSeur (a crew member) is a kandra. The kandra trait does not exist yet -- it needs to be created, along with basic Contract mechanics.

Steps:

  1. Create trait_kandra in common/traits/05_hemalurgy_traits.txt (kandra are Hemalurgic creations). Use index 266 (next after trait_knows_hemalurgy at 265):

    # Kandra - shapeshifting Hemalurgic creature bound by Contracts
    trait_kandra = {
        index = 266
    
        category = fame
    
        genetic = no
    
        intrigue = 8
        diplomacy = 2
        health = 2
        attraction_opinion = -10
    
        ruler_designer_cost = 0
        shown_in_ruler_designer = no
    
        icon = "gfx/interface/icons/traits/trait_kandra.dds"
    }
    
  2. Add trait_kandra to the has_hemalurgic_spike_trigger in common/scripted_triggers/mistborn_triggers.txt (kandra have Hemalurgic blessings):

    has_hemalurgic_spike_trigger = {
        OR = {
            has_trait = trait_hemalurgist
            has_trait = trait_hemalurgic_steel
            has_trait = trait_hemalurgic_pewter
            has_trait = trait_hemalurgic_bronze
            has_trait = trait_hemalurgic_atium
            has_trait = trait_kandra
        }
    }
    
  3. Add a kandra-specific trigger:

    is_kandra_trigger = {
        has_trait = trait_kandra
    }
    
  4. Create a kandra Contract scripted effect in common/scripted_effects/mistborn_effects.txt:

    assign_kandra_contract_effect = {
        # Assigns a kandra to serve this character
        # The kandra becomes a courtier and gains a flag for the contract
        scope:kandra_target = {
            set_relation_guardian = root  # Represents the Contract bond
            add_character_flag = kandra_contract_active
        }
    }
    
  5. Update the existing hire_kandra_decision in common/decisions/00_mistborn_decisions.txt. Currently it triggers mistborn_misc.0001. Ensure the event properly creates a kandra courtier with trait_kandra and applies the Contract flag. This event should already exist from M2 event completion -- verify it handles trait_kandra.

  6. Add localization for the kandra trait in localization/english/mistborn_traits_l_english.yml:

    trait_kandra:0 "Kandra"
    trait_kandra_desc:0 "A shapeshifting creature created through Hemalurgy. Kandra can absorb a person's bones to perfectly mimic their appearance. They are bound by strict Contracts to serve their masters."
    

Files:

  • common/traits/05_hemalurgy_traits.txt -- modify (add trait_kandra)
  • common/scripted_triggers/mistborn_triggers.txt -- modify (add is_kandra_trigger, update has_hemalurgic_spike_trigger)
  • common/scripted_effects/mistborn_effects.txt -- modify (add assign_kandra_contract_effect)
  • localization/english/mistborn_traits_l_english.yml -- modify

References:

  • Existing hemalurgy traits: common/traits/05_hemalurgy_traits.txt:1-108
  • Kandra lore: docs/lore/mistborn-universe.md -- The Kandra section
  • Hire kandra decision: common/decisions/00_mistborn_decisions.txt:200-253

3.8 -- Polish Religions: Custom Tenets, Doctrines, and Holy Sites

Context: The four religions need deep mechanical identity to feel like living faiths, not just reskinned vanilla. This means custom tenets (replacing vanilla placeholders), custom doctrine categories unique to Scadrial, faith- differentiated holy sites, and faith-specific modifiers. Steel Ministry needs the Lord Ruler as head (done in 3.2). Terris Keepers need "secret faith" mechanics. Survivorism needs rebellion bonuses. Cult of Ruin needs Hemalurgy bonuses.

Steps:

  1. Create custom tenets. In common/religion/doctrines/ (new directory), define ~12 custom tenets that replace vanilla placeholders. Each tenet has a character_modifier block and unlocks specific decisions or events:

    Steel Ministry tenets:

    • tenet_obligator_hierarchy — Replaces tenet_tax_nonbelievers. Bonus: +0.3 monthly piety, +5% tax income from non-believers, +5 same-faith opinion. Unlocks: "Demand Obligator Tithe" decision.
    • tenet_allomantic_oversight — Replaces tenet_religious_law. Bonus: +2 learning for clergy, +10% scheme discovery chance. Allows Ministry Preceptor council task (M4) to detect hidden Allomancers in court.
    • tenet_imperial_mandate — New. Bonus: +0.2 monthly prestige for Steel Ministry rulers, +10 vassal opinion if Lord Ruler attention < 25. Penalty: -10 vassal opinion if Lord Ruler attention > 75 (the mandate feels oppressive).

    Terris Worldbringers tenets:

    • tenet_keepers_vow — Replaces tenet_pacifism. Bonus: +3 learning, -2 martial (Keepers are scholars, not warriors). Unlocks: "Store Knowledge in Coppermind" decision. Characters with this tenet can access coppermind artifact events (M3.10, M7.10).
    • tenet_metalmic_preservation — Replaces tenet_monasticism. Bonus: +0.15 development growth in holy sites, +1 stewardship. Feruchemist characters gain +1 additional learning. Represents preserving pre- Ascension knowledge and culture.
    • tenet_worldbringer_mission — Replaces tenet_ancestor_worship. Bonus: +0.1 cultural acceptance gain, +5 different-faith opinion. Keepers aim to preserve ALL knowledge, including other faiths. Unlocks: "Share Preserved Knowledge" interaction (teach another character about a lost religion).

    Survivorist tenets:

    • tenet_kelsiers_sacrifice — Replaces tenet_liberation_theology. Bonus: +15 same-faith opinion, +0.1 hostile scheme power, monthly county control growth -0.1 (undermines authority). Conditional: if kelsier_martyred global flag is set, bonuses double. Represents the power of martyrdom.
    • tenet_hope_in_ash — Replaces tenet_communal_identity. Bonus: +0.2 stress loss, +5 attraction opinion, +0.1 monthly prestige. Represents the belief that things can change, that flowers can grow in ash.
    • tenet_underground_network — Replaces tenet_mendicants. Bonus: +15% hostile scheme resistance, +10% personal scheme power. Skaa characters gain +2 intrigue. Represents the skaa underground's secrecy.

    Cult of Ruin tenets:

    • tenet_hemalurgic_rites — Replaces tenet_human_sacrifice. Bonus: +10 dread baseline, +2 prowess, -2 diplomacy. Characters who sacrifice prisoners via decision gain a hemalurgic spike trait. Far darker than vanilla human sacrifice.
    • tenet_embrace_destruction — Replaces tenet_ritual_cannibalism. Bonus: stress gain -0.15, monthly piety +0.1, health -0.25 (destruction consumes the faithful too). Unlocks: "Commune with Ruin" decision (intrigue event, gain information at cost of health).
    • tenet_ruins_whispers — Replaces tenet_struggle_and_submission. Bonus: +3 intrigue, +15% scheme power. Characters occasionally receive "Ruin's Guidance" events (random intrigue/martial bonuses with sanity cost via stress). Represents Ruin's influence whispering to followers.
  2. Create custom doctrine categories. In the same doctrine directory, define 2 custom doctrine groups unique to Scadrial:

    Doctrine group: "Allomantic Stance" (doctrine_allomantic_stance)

    • doctrine_allomancy_divine — Allomancy is a gift from Preservation. Bonus: +10 opinion of Allomancers, Misting/Mistborn characters gain +0.1 monthly piety. Used by: Survivorism, Terris Worldbringers.
    • doctrine_allomancy_controlled — Allomancy must be registered and regulated. Bonus: Ministry Preceptor gains +2 effectiveness at detecting hidden Allomancers. Allomancers who hide their abilities face heresy charges. Used by: Steel Ministry.
    • doctrine_allomancy_forbidden — Allomancy (except Hemalurgy) is abomination. Bonus: +5 dread when executing Allomancers, piety +20 for each Allomancer killed. Used by: Cult of Ruin.

    Doctrine group: "Caste Doctrine" (doctrine_caste_stance)

    • doctrine_caste_divine_order — The noble/skaa divide is ordained by the Lord Ruler. Intermarriage is heresy. Bonus: +5 same-culture opinion (within your caste), -20 opinion of different-caste characters. Used by: Steel Ministry.
    • doctrine_caste_irrelevant — All people are equal before Preservation. Bonus: +10 opinion with skaa characters, +5 different-culture opinion. Used by: Survivorism, Terris Worldbringers.
    • doctrine_caste_tool — Castes are tools for control — use them or discard them as needed. Bonus: no opinion penalties for cross-caste interaction, +5 intrigue. Used by: Cult of Ruin.
  3. Expand and differentiate holy sites. Update common/religion/holy_sites/00_holy_sites.txt to increase from 5 to ~10 sites, differentiated by faith. Some sites are shared, some are exclusive:

    Existing (updated):

    Holy Site Primary Faith(s) Notes
    Kredik Shaw Steel Ministry, Cult of Ruin Lord Ruler's seat of power. Ruin worshippers see it as the prison of Ruin's power
    Pits of Hathsin Steel Ministry, Cult of Ruin Atium source — both faiths covet it
    Conventical of Seran Steel Ministry Obligator research center
    Tathingdwen Terris Worldbringers Terris capital, Keeper archives
    Urteau Survivorism Northern skaa population center, rebellion base

    New sites to add:

    Holy Site County/Barony Primary Faith(s) Modifiers Lore
    Terris Homeland Peaks c_terris_peaks / b_terris_shrine Terris Worldbringers +2 learning, +0.5 piety Sacred mountains where Keepers hid copperminds
    The Arguois Caverns c_arguois / b_arguois_caves Survivorism +0.3 prestige, +1 intrigue Underground skaa meeting place, rebel hideout
    Ruin's Deposit c_ruin_deposit / b_ruin_well Cult of Ruin +1 prowess, +5 dread A place where Ruin's influence bleeds through, hemalurgic rituals performed
    Kelsier's Pyre c_luthadel / b_execution_square Survivorism (conditional) +20 same-faith opinion, +0.5 monthly prestige Only activates after kelsier_martyred flag is set. The site where Kelsier died becomes sacred
    The Well of Ascension c_luthadel / b_well_of_ascension Terris Worldbringers (conditional) +3 learning, +1 piety Only activates after Fall of Kredik Shaw endgame (M7). The Well is discovered beneath Kredik Shaw

    This gives each faith 3-4 holy sites:

    • Steel Ministry: Kredik Shaw, Pits of Hathsin, Conventical of Seran (~3)
    • Terris Worldbringers: Tathingdwen, Terris Homeland Peaks, Well of Ascension (conditional) (~2-3)
    • Survivorism: Urteau, Arguois Caverns, Kelsier's Pyre (conditional) (~2-3)
    • Cult of Ruin: Kredik Shaw, Pits of Hathsin, Ruin's Deposit (~3)
  4. Terris Worldbringers -- Secret faith mechanics. In the terris_worldbringers faith definition:

    • The mechanical goal: Terris characters should be able to hide their faith from the Steel Ministry. CK3's secret faith mechanic works when a faith has the is_unreformed flag or when characters manually set a secret faith. If CK3 1.18 supports doctrine_is_secret or similar, use that. Otherwise, add a custom decision "Practice Feruchemy in Secret" that sets a character flag and provides bonuses while hiding the religion.
    • The tenet_keepers_vow (step 1) synergizes with this: Keepers who practice secretly gain the tenet bonuses but risk discovery.
  5. Survivorism -- Rebellion bonuses. In the survivorism faith definition:

    • Apply survivorism_faith_modifier at game start to Survivorist characters:
      • monthly_county_control_growth_add = -0.1 (undermines control)
      • hostile_scheme_power_mult = 0.1 (good at subterfuge)
      • same_faith_opinion = 20 (strong in-group loyalty)
    • These are now reinforced by the tenet_kelsiers_sacrifice and tenet_underground_network tenets from step 1.
  6. Cult of Ruin -- Hemalurgy bonuses. In the cult_of_ruin faith:

    • Apply cult_of_ruin_faith_modifier at game start:
      • dread_baseline_add = 10
      • prowess = 2
      • diplomacy = -2
      • stress_gain_mult = -0.1 (they embrace destruction)
    • Cult of Ruin followers should automatically know Hemalurgy: add a game-start on_action that grants trait_knows_hemalurgy to all Cult of Ruin characters.
    • Reinforced by tenet_hemalurgic_rites and tenet_embrace_destruction.
  7. Steel Ministry -- Obligator hierarchy. The Steel Ministry is now headed by the Lord Ruler (done in 3.2). Additional polish:

    • Apply steel_ministry_faith_modifier:
      • monthly_piety = 0.2
      • same_faith_opinion = 5
    • The tenet_obligator_hierarchy and tenet_imperial_mandate reinforce the mechanical identity of the Ministry as a state religion.
  8. Wire dead tradition parameters. The culture traditions (tradition_allomantic_heritage, tradition_noble_intrigue, tradition_skaa_resilience, tradition_terris_scholarship) define custom parameters (allomantic_potential_bonus, etc.) that are never referenced. Either:

    • (a) Wire them into scripted triggers so events/decisions can check has_cultural_tradition_parameter = allomantic_potential_bonus, or
    • (b) Remove the dead parameters and rely on the character_modifier stat blocks which already work. Option (b) is recommended unless a specific mechanic needs the parameters.
  9. Fix tradition conditions. The is_valid blocks on traditions use has_cultural_pillar = heritage_scadrial which is shared by all 3 cultures. This means any culture could adopt any tradition. Fix:

    • tradition_allomantic_heritage: keep as heritage_scadrial (available to all — Allomancy crosses caste lines)
    • tradition_noble_intrigue: restrict to has_culture = culture:noble_scadrian
    • tradition_skaa_resilience: restrict to has_culture = culture:skaa
    • tradition_terris_scholarship: restrict to has_culture = culture:terris
  10. Add all new tenet, doctrine, modifier, and holy site definitions to their respective files. Add localization for:

    • 12 custom tenet names + descriptions (~48 keys)
    • 6 custom doctrine options + descriptions (~24 keys)
    • 2 doctrine group names + descriptions (~8 keys)
    • 5 new holy site names + descriptions (~10 keys)
    • Faith-specific modifier names (~8 keys)
    • Total: ~100 new localization keys

Files:

  • common/religion/doctrines/00_scadrial_doctrines.txt -- create
  • common/religion/religions/00_scadrial_religions.txt -- modify (update tenets and doctrine references)
  • common/religion/holy_sites/00_holy_sites.txt -- modify (expand to ~10 sites, differentiate by faith, add conditional sites)
  • common/culture/traditions/00_scadrial_traditions.txt -- modify (fix conditions, clean up dead parameters)
  • common/modifiers/00_mistborn_modifiers.txt -- modify (add faith modifiers)
  • common/on_action/mistborn_on_actions.txt -- modify (cult of ruin hemalurgy, conditional holy site activation)
  • localization/english/mistborn_religions_l_english.yml -- modify (~100 keys)
  • localization/english/mistborn_modifiers_l_english.yml -- modify

References:

  • Existing religions: common/religion/religions/00_scadrial_religions.txt
  • Existing holy sites: common/religion/holy_sites/00_holy_sites.txt
  • Existing modifiers: common/modifiers/00_mistborn_modifiers.txt
  • Existing traditions: common/culture/traditions/00_scadrial_traditions.txt
  • Vanilla doctrine format: CK3 game install common/religion/doctrines/
  • Vanilla tenet format: CK3 game install common/religion/doctrines/ (tenets are doctrines with is_tenet = yes)
  • Lore: docs/lore/mistborn-universe.md -- Keepers, Survivorism, Cult of Ruin, Steel Ministry, Preservation, Ruin

3.9 -- Update Title History and Bookmark

Context: With canonical characters replacing placeholders, the title history and bookmark definitions must be updated to reflect the new character IDs and names. The Lord Ruler now holds the empire, and the bookmark should offer canonical starting characters.

Steps:

  1. Update history/titles/00_mistborn_titles.txt to reflect character changes from tasks 3.3 and 3.4. If character IDs changed (placeholder replaced by canonical character at same ID), the title history file already works. If new IDs were used, update all holder = XXXXX lines.

  2. Add e_final_empire holder assignment (done in 3.1 but verify it is present).

  3. Update the bookmark in common/bookmarks/00_mistborn_bookmarks.txt. Replace the placeholder bookmark characters with more interesting starts:

    Keep the existing landed starts but update names:

    • Straff Venture (900001) -- k_central, difficulty "easy"
    • Elend Venture (900002) -- landed (heir, c_luthadel or no title if unlanded starts are possible). If Elend has a county, difficulty "medium".
    • Keep one military start: Hasting or another house lord.

    Add Kelsier and Vin as bookmark characters even though they are unlanded. In M3 they are visible in the bookmark but may not be fully playable until M5 (the crew/band system). Mark them appropriately:

    • Kelsier (900200) -- "Not yet playable (requires M5)" in the description text. Set difficulty = "hard".
    • Vin (900201) -- similar treatment.

    Update the bookmark name/description localization in localization/english/mistborn_bookmarks_l_english.yml.

  4. Verify that every title holder in the title history references a valid character ID that exists in the character file. Do a consistency sweep.

Files:

  • history/titles/00_mistborn_titles.txt -- modify
  • common/bookmarks/00_mistborn_bookmarks.txt -- modify
  • localization/english/mistborn_bookmarks_l_english.yml -- modify

References:

  • Existing bookmark: common/bookmarks/00_mistborn_bookmarks.txt:1-91
  • Existing title history: history/titles/00_mistborn_titles.txt:1-485

3.10 -- Artifacts: Metallic Arts Equipment and Iconic Items

Context: The Mistborn world is defined by its physical objects — metal vials, metalminds worn as jewelry, mistcloaks that blur in the mists, glass daggers that can't be Pushed or Pulled, and the Lord Ruler's atium bracers that grant him immortality. CK3's artifact system (Royal Court DLC) is a natural fit for these items. This task group creates the core artifact types that populate the world at game start and can be crafted, inherited, and looted during play.

Note: This requires the Royal Court DLC. If unavailable, artifacts can be approximated with character modifiers and flags, but the full artifact system is strongly preferred for immersion (equippable, visible in court, inheritable).

Steps:

  1. Create common/artifacts/types/00_mistborn_artifact_types.txt defining the artifact type categories. Each type needs a slot (e.g., primary_armament, regalia, helmet, miscellaneous), visual template, and valid quality tiers. Types to define:

    • mistcloak — slot: regalia. The iconic tasseled cloak worn by Mistborn. Grants prowess +2, intrigue +2, dread +5. Higher quality versions add stealth bonuses. Should only be equippable by characters with is_allomancer_trigger or trait_mistborn.
    • metal_vial_set — slot: miscellaneous. A bandolier or case of metal vials. Integrates with the M2 metal supply system: owning this artifact extends metal_reserves_abundant duration by 1 year. Grants prowess +1. Can be crafted by any Allomancer with gold.
    • glass_daggers — slot: primary_armament. Obsidian/glass weapons that cannot be affected by Coinshots or Lurchers. Grants prowess +3 vs Allomancer opponents (use artifact_combat_modifier if available, or a flat prowess bonus). Flavor: "Invisible to Allomantic senses."
    • dueling_canes — slot: primary_armament. Noble wooden sparring weapons used at balls. Grants diplomacy +1, prowess +1. Required culture: noble_scadrian. Flavor: "The weapon of choice for noble duels."
    • koloss_sword — slot: primary_armament. Massive crude blade torn from a fallen koloss. Grants prowess +6, martial +2, diplomacy -2 (terrifying and brutish). Very rare — only obtainable by defeating koloss or looting.
    • coppermind — slot: miscellaneous. A Feruchemical coppermind storing memories. Grants learning +4, intrigue +1 (secret knowledge). Only equippable by characters with trait_feruchemist. Terris Keepers start with one.
    • metalmind_set — slot: regalia. A set of Feruchemical metalminds (bracelets, rings, earrings) for storing attributes. Grants health +0.5, prowess +2. Only equippable by characters with trait_feruchemist. Higher quality versions grant more stats.
    • atium_bracers — slot: regalia. Unique legendary artifact. The Lord Ruler's personal atium metalminds, the source of his Compounding immortality. Grants health +5, prowess +10, monthly_prestige +1.0. Only one exists in the game. Held by the Lord Ruler at game start. Removing them is key to the Fall of Kredik Shaw endgame (M7). Mark as unique = yes.
    • inquisitor_spike_set — slot: helmet (eye spikes). Hemalurgic spikes through the eyes. Grants prowess +8, martial +4, intrigue +3, dread +20, diplomacy -5, attraction_opinion -30. Only equippable by characters with trait_hemalurgist and 3+ spike traits. Inquisitors start with these.
  2. Create common/artifacts/visuals/00_mistborn_artifact_visuals.txt with visual definitions for each type. For now, map to appropriate vanilla artifact visual templates (e.g., mistcloak -> cloak/cape visual, koloss sword -> greatsword visual, coppermind -> book/scroll visual). Custom visuals are deferred to M8.

  3. Create common/artifacts/templates/00_mistborn_artifact_templates.txt for artifact templates used by history and scripted effects to create specific instances:

    • lord_ruler_atium_bracers — creates the unique atium bracers artifact
    • standard_mistcloak — creates a typical mistcloak
    • keeper_coppermind — creates Sazed's coppermind (higher quality)
    • steel_inquisitor_spikes — creates inquisitor spike set
  4. Assign starting artifacts to canonical characters in history/characters/00_mistborn_characters.txt:

    • Lord Ruler: atium_bracers (legendary quality)
    • Kelsier: mistcloak (excellent quality), glass_daggers (good quality)
    • Vin: initially none (she receives a mistcloak via events in M6)
    • Sazed: coppermind (masterwork quality)
    • Ham, Clubs, Breeze: metal_vial_set (standard quality)
    • Steel Inquisitors: inquisitor_spike_set
    • Great House heads: dueling_canes (quality varies by house wealth)
    • Straff Venture: metal_vial_set (excellent — he's a Tineye)
  5. Add a decision craft_mistcloak_decision in decisions:

    • is_shown: is_allomancer_trigger = yes
    • is_valid: gold >= 100, NOT already has a mistcloak artifact
    • Cost: 100 gold
    • Effect: create mistcloak artifact and equip it
    • Flavor: commissioning a mistcloak is a rite of passage for Allomancers
  6. Add a decision forge_glass_weapons_decision:

    • is_shown: is a ruler, knows about Allomantic combat
    • is_valid: gold >= 50
    • Effect: create glass_daggers artifact. Tooltip explains why glass weapons matter against Coinshots/Lurchers.
  7. Add localization for all artifact types, templates, decisions, and descriptions in localization/english/mistborn_artifacts_l_english.yml (new file). Each artifact needs: name, description, and equip tooltip.

Files:

  • common/artifacts/types/00_mistborn_artifact_types.txt — create
  • common/artifacts/visuals/00_mistborn_artifact_visuals.txt — create
  • common/artifacts/templates/00_mistborn_artifact_templates.txt — create
  • history/characters/00_mistborn_characters.txt — modify (add starting artifacts)
  • common/decisions/00_mistborn_decisions.txt — modify (crafting decisions)
  • localization/english/mistborn_artifacts_l_english.yml — create

References:

  • Vanilla artifact structure: check CK3 game install common/artifacts/ for type/visual/template patterns
  • Lord Ruler's bracers: docs/lore/mistborn-universe.md (Compounding, atium metalminds grant age storage → immortality)
  • Mistcloak description: iconic tasseled cloak, strips of cloth that blur in the mists, worn by all Mistborn
  • Glass weapons: Allomancers can only Push/Pull metals; glass and wood are immune to Allomantic manipulation, making them prized by those who fight Allomancers

3.11 -- Holy Orders: Steel Inquisitors and Keeper Network

Context: The Steel Inquisitors are the militant arm of the Steel Ministry — terrifying individuals with hemalurgic spikes driven through their eyes. They hunt heretics, interrogate prisoners, and enforce the Lord Ruler's will. In CK3 terms, they are a holy order — but they function as individual super-powered agents, not a conventional army. Separately, the Terris Keepers operate as a secret counter-network, preserving forbidden knowledge underground. This task creates both as religious orders with distinct mechanics.

Steps:

  1. Create the Steel Inquisitor Holy Order. In common/holy_orders/00_mistborn_holy_orders.txt (new directory/file), define the Inquisitor order:

    holy_order_steel_inquisitors = {
        religion = steel_ministry_religion
        # ... order definition
    }
    

    The order is available for hire by Steel Ministry rulers (piety cost). Mechanically, hiring the order provides a small but devastatingly powerful MaA regiment of Inquisitors (~50-100 soldiers with extreme stats, reflecting that a single Inquisitor is worth hundreds of normal fighters).

    Order properties:

    • Hire cost: 500 piety
    • Maintenance: 2.0 gold/month (the Ministry demands resources)
    • MaA type: inquisitor_squad — 100 soldiers, damage 150, toughness 80, pursuit 40. Counters: Mistborn Agents, Hazekillers. This represents a small squad with Inquisitors at the lead.
    • Leader: The order's leader should be one of the M3 Steel Inquisitor characters. The order fires events when hired (Inquisitor arrives at court, terror among courtiers).
    • Hire trigger: faith = faith:steel_ministry, piety >= 500
    • Dismiss trigger: always available but costs -100 piety (dismissing the Lord Ruler's enforcers is seen as impiety)
  2. Create the individual Inquisitor request mechanic. Beyond the holy order (military), Steel Ministry rulers can "Request an Inquisitor" via decision:

    request_inquisitor_decision = {
        is_shown = {
            faith = faith:steel_ministry
            is_ruler = yes
            highest_held_title_tier >= tier_county
        }
        cost = { piety = 200 }
    }
    

    On taking the decision, an event fires:

    • mistborn_inquisitor.0001 — An Inquisitor arrives at your court. A special character is generated with trait_hemalurgist, multiple spike traits, and the steel_inquisitor_power modifier.
    • The Inquisitor becomes a courtier with unique interactions:
      • Investigate Heresy — Target a courtier or vassal. Intrigue check. Success: reveals hidden faith, hidden Allomantic traits, or secrets. Failure: target is terrorized (stress +20) but nothing found.
      • Hunt Allomancers — Target a province. Works like the Hazemaster council task but more effective (+30% detection). Discovered Allomancers are captured, not given recruitment option.
      • Interrogate Prisoner — Target a prisoner. Brutal intrigue check. Success: learn all secrets, gain confession (can be used as hook). Side effect: prisoner gains tortured trait, opinion of you -30 with compassionate characters.
    • The Inquisitor is NOT loyal to you — they serve the Lord Ruler. Yearly event (15% chance): the Inquisitor reports your activities to the Canton. Lord Ruler attention +5. This creates tension: Inquisitors are powerful but dangerous to keep around.
    • Cooldown: 3 years between requests (flag-based).
  3. Create the Keeper Network (secret religious order). The Terris Keepers are not a military force — they're a clandestine network that preserves forbidden knowledge. Implement as a "secret society" equivalent:

    keeper_network = {
        religion = terris_religion
        # Secret order, not visible to non-members
    }
    

    The Keeper Network functions differently from the Inquisitor order:

    • Joining: Terris Worldbringer characters with learning >= 12 can take a decision "Seek the Keepers" to join. If accepted (event chain with tests), they gain the keeper_initiate flag and access to Keeper events.
    • Progression: Keeper initiates can advance to full Keepers via events (requires: learning >= 15, Feruchemist trait preferred, 2+ years as initiate). Full Keepers gain keeper_identity flag and access to:
      • Coppermind sharing events (exchange knowledge with other Keepers)
      • "Teach Forbidden History" interaction (target: any character, grants learning +1, risk of Ministry detection)
      • Access to hidden Keeper archive holy site events
    • Network bonuses: For each Keeper in your realm, gain:
      • +0.5 learning (court-level modifier)
      • +5% cultural acceptance gain
      • The Keeper network passively preserves knowledge: post-rebellion, unlocked Keepers accelerate the innovation unlock (M4/M7 tie-in)
    • Risk: The Steel Ministry actively hunts Keepers. Yearly event per Keeper character (10% chance): Ministry investigation. If the Keeper is discovered:
      • The Keeper is arrested (becomes prisoner of nearest Steel Ministry ruler)
      • The lord sheltering them gains Lord Ruler attention +10
      • If the lord IS a Steel Ministry ruler, they must choose: hand over the Keeper (piety +30) or protect them (attention +15, piety -50)
    • Interaction with Terris Steward court position (M4): If your Terris Steward is a Keeper, they gain enhanced bonuses but increased discovery risk. This ties into M7's Terris Steward reveal events.
  4. Create Inquisitor vs Keeper tension events. When an Inquisitor and a Keeper are in the same court (or the Inquisitor is investigating a court with a hidden Keeper):

    • mistborn_inquisitor.0010 — The Inquisitor senses something wrong. If a Keeper is present: heightened detection chance (25% instead of 10%). Event text describes the Inquisitor's bronze Allomancy probing.
    • mistborn_inquisitor.0011 — If the Keeper has a Court Smoker ally (M4 court position), the Smoker can shield the Keeper. Intrigue contest between Inquisitor and Smoker. Ties into M7 advanced council events.
  5. Localization. Add entries for:

    • Holy order name, description, hire/dismiss text (~10 keys)
    • Inquisitor request decision + events (~25 keys)
    • Inquisitor interactions (investigate, hunt, interrogate) (~20 keys)
    • Keeper Network join/advance/events (~30 keys)
    • Keeper-Inquisitor tension events (~10 keys)
    • Total: ~95 new localization keys

Files:

  • common/holy_orders/00_mistborn_holy_orders.txt -- create
  • common/men_at_arms_types/00_mistborn_maa.txt -- modify (add inquisitor_squad MaA type)
  • common/decisions/02_inquisitor_decisions.txt -- create
  • common/character_interactions/00_inquisitor_interactions.txt -- create
  • events/inquisitor_events.txt -- create
  • common/decisions/02_keeper_decisions.txt -- create
  • events/keeper_events.txt -- create
  • localization/english/mistborn_holy_orders_l_english.yml -- create

References:

  • Vanilla holy order format: CK3 game install common/holy_orders/
  • Steel Inquisitor characters: M3 task 3.4
  • Inquisitor traits/modifier: common/traits/ (hemalurgic spikes), common/modifiers/ (steel_inquisitor_power)
  • Keeper lore: docs/lore/mistborn-universe.md — Terris Keepers, copperminds, Worldbringers, the breeding program
  • Court Smoker position: M4 task 4.8
  • Terris Steward court position: M4 task 4.8
  • Advanced Inquisitor/Keeper events: M7 task 7.12

Testing Checkpoints

  • After 3.1 + 3.2 (Lord Ruler + Religious Head):

    • Test: Load the mod, open the religion view for Steel Ministry.
    • Expected: The Lord Ruler appears as the religious head "Sliver of Infinity." He holds e_final_empire. He is alive and has the compounder_modifier. He is not selectable as a playable character.
  • After 3.3 + 3.4 (Canonical Characters):

    • Test: Load the mod, search the character finder for "Kelsier", "Vin", "Elend", "Straff", "Sazed", "Shan".
    • Expected: All canonical characters exist with correct traits. Kelsier is a Mistborn. Vin has trait_mistborn_potential. Elend has no Allomantic traits. Steel Inquisitors have all hemalurgic traits and disfigured. Marsh is a Seeker (not yet an Inquisitor).
  • After 3.5 (Name Lists):

    • Test: Start a new game, let it run 10 years, check generated characters.
    • Expected: Newborn noble characters have names like "Fellren", "Austrenne" -- not "Hans" or "Friedrich." Skaa characters have simpler names. Terris names end in "-ed" or "-wyl" patterns.
  • After 3.6 (Special Buildings):

    • Test: Inspect the province view for Luthadel (b_kredik_shaw), Pits of Hathsin, Conventical of Seran.
    • Expected: Special buildings are visible with appropriate bonuses. Kredik Shaw provides prestige and control. Pits provide gold but reduce opinion.
  • After 3.7 (Kandra Trait):

    • Test: Use the console to add trait_kandra to a character. Verify the trait appears with correct stats. Use the "Hire a Kandra" decision.
    • Expected: Trait appears with intrigue +8, diplomacy +2. The decision fires its event chain correctly.
  • After 3.8 (Religion Polish):

    • Test: Check each religion in the religion view. Verify descriptions, custom tenets, and custom doctrines. Check holy sites — verify each faith has 2-3 differentiated sites. Start as a Terris character, verify secret faith mechanics. Check that Cult of Ruin followers have Hemalurgy trait. Verify tradition conditions are fixed (skaa_resilience only on skaa).
    • Expected: Steel Ministry shows Lord Ruler as head with custom tenets (Obligator Hierarchy, Allomantic Oversight, Imperial Mandate). Each faith has 3 unique custom tenets. Allomantic Stance and Caste Doctrine custom doctrine groups appear. Holy sites differentiated by faith. Conditional sites (Kelsier's Pyre, Well of Ascension) not yet active. Tradition conditions restrict culture-specific traditions.
  • After 3.11 (Holy Orders):

    • Test: As a Steel Ministry ruler, hire the Inquisitor holy order (piety cost). Verify MaA regiment appears. Take "Request an Inquisitor" decision. Verify Inquisitor courtier arrives with spike traits. Use "Investigate Heresy" interaction on a courtier. As a Terris character, take "Seek the Keepers" decision. Verify initiation event chain. Place a Keeper and an Inquisitor in the same court — verify tension event fires.
    • Expected: Holy order is hireable, Inquisitor arrives as courtier with unique interactions, Keeper Network is joinable with progression. Inquisitor yearly report to Canton fires. Keeper discovery risk events fire.
  • After 3.9 (Title History + Bookmark):

    • Test: Start a new game from the "End of an Empire" bookmark. Try each recommended character.
    • Expected: Bookmark shows updated character names and descriptions. Straff Venture starts as king of Central Dominance. The Lord Ruler holds the empire. All vassals are correctly assigned under their lieges.
  • After 3.10 (Artifacts):

    • Test: Start the game. Check the Lord Ruler's inventory for atium bracers. Check Kelsier for mistcloak and glass daggers. Check Sazed for coppermind. Use "Craft Mistcloak" decision as an Allomancer. Try equipping a coppermind on a non-Feruchemist.
    • Expected: All starting artifacts are present with correct stats. Crafting decisions work. Equipment restrictions enforce trait requirements. Atium bracers show as unique legendary item.

Acceptance Criteria

  • The Lord Ruler exists as character 900100 with trait_mistborn, trait_feruchemist, and compounder_modifier
  • The Lord Ruler holds e_final_empire and d_steel_ministry_head
  • The Lord Ruler appears as Steel Ministry religious head in the faith view
  • The Lord Ruler is not selectable as a playable character in the bookmark
  • Kelsier (900200) exists as a Mistborn with culture = skaa
  • Vin (900201) exists with trait_mistborn_potential and culture = skaa
  • Sazed (900202) exists as a Feruchemist with culture = terris
  • Elend Venture (900002) exists with no Allomantic traits and education_learning_4
  • Shan Elariel exists as a Mistborn
  • At least 3 Steel Inquisitors exist with full hemalurgic trait sets and steel_inquisitor_power modifier
  • OreSeur (900209) exists with trait_kandra
  • trait_kandra is defined with appropriate stats and icon reference
  • Custom name lists exist for all 3 cultures: name_list_scadrial_noble, name_list_scadrial_skaa, name_list_terris
  • Generated characters use names from the custom name lists, not vanilla names
  • Kredik Shaw, Pits of Hathsin, and Conventical of Seran have special buildings with unique effects
  • dynasty_rashek and dynasty_terris_stewards are defined with localization
  • Terris characters are no longer assigned to noble house dynasties
  • 12 custom tenets defined (3 per faith) replacing vanilla placeholders
  • 2 custom doctrine groups defined: Allomantic Stance (3 options), Caste Doctrine (3 options)
  • Each faith has correct custom tenets and doctrine assignments
  • Holy sites expanded to ~10 total, differentiated by faith
  • Conditional holy sites (Kelsier's Pyre, Well of Ascension) defined with activation triggers
  • Steel Ministry: Kredik Shaw, Pits, Conventical (~3 sites)
  • Terris: Tathingdwen, Terris Homeland Peaks (~2 sites, +1 conditional)
  • Survivorism: Urteau, Arguois Caverns (~2 sites, +1 conditional)
  • Cult of Ruin: Kredik Shaw, Pits, Ruin's Deposit (~3 sites)
  • Terris secret faith mechanics functional
  • Dead tradition parameters cleaned up (wired or removed)
  • Tradition conditions fixed (culture-specific restrictions)
  • Cult of Ruin followers receive trait_knows_hemalurgy at game start
  • Faith-specific modifiers applied at game start
  • Steel Inquisitor holy order hireable by Steel Ministry rulers (500 piety)
  • inquisitor_squad MaA type defined with correct stats
  • "Request an Inquisitor" decision spawns Inquisitor courtier with spike traits and unique interactions
  • Inquisitor interactions functional: Investigate Heresy, Hunt Allomancers, Interrogate Prisoner
  • Inquisitors report to Canton yearly (15% chance, attention +5)
  • Keeper Network joinable by Terris characters with learning >= 12
  • Keeper progression from initiate to full Keeper functional
  • Keeper discovery risk events fire (10% yearly per Keeper)
  • Inquisitor-Keeper tension events fire when both in same court
  • All holy order, Inquisitor, and Keeper content has complete localization (~95 keys)
  • The "End of an Empire" bookmark shows canonical characters
  • All title holders in title history reference valid character IDs
  • 9 artifact types defined: mistcloak, metal_vial_set, glass_daggers, dueling_canes, koloss_sword, coppermind, metalmind_set, atium_bracers, inquisitor_spike_set
  • Lord Ruler starts with unique atium_bracers artifact
  • Kelsier starts with mistcloak and glass_daggers
  • Sazed starts with coppermind artifact
  • Steel Inquisitors start with inquisitor_spike_set
  • Artifact equipment restrictions work (copperminds require Feruchemist, mistcloaks require Allomancer)
  • Craft Mistcloak and Forge Glass Weapons decisions function
  • The mod loads with no critical errors in error.log
  • Playing as Straff Venture for 5 years produces no crashes

Risks & Mitigations

  1. Lord Ruler immortality. CK3 may still kill high-health characters via disease events or murder schemes. Mitigation: add a scripted effect in the yearly pulse that restores the Lord Ruler's health if it drops below a threshold, or use the immortal = yes flag if CK3 1.18 supports it on characters.

  2. Religious head title conflicts. If the religious head title system does not work as expected (e.g., CK3 requires a specific title tier for religious heads), fall back to making the Steel Ministry a temporal head with the Lord Ruler holding e_final_empire as both secular and religious authority.

  3. Name list format compatibility. CK3's name list format has changed across versions. If the name list files don't load, verify the format against the CK3 1.18 vanilla name lists and adjust field names accordingly.

  4. Special building syntax. CK3's special building system is tied to the special_building flag and requires specific triggers. If the buildings don't appear, check vanilla examples like Hagia Sophia or the Pyramids for the exact trigger and flag patterns.

  5. Character ID conflicts. The 900xxx range may conflict with other mods. Since this is a total conversion, conflicts are unlikely, but verify no vanilla character IDs overlap.

Open Questions

  1. Lord Ruler playability restriction. What is the best CK3 1.18 mechanism to prevent a character from being playable? Options: (a) game rule that excludes specific characters, (b) is_playable trigger on the character, (c) simply not listing in bookmarks (players can still use the character finder). Decide which approach to use.

  2. Kandra depth. The MASTERPLAN.md asks about kandra depth (design question #9). For M3, implement the basic trait_kandra and a simple Contract flag. Deeper kandra mechanics (impersonation events, bone absorption) are deferred to M7.

  3. Government type. MASTERPLAN.md design question #6 asks about custom government. For M3, keep feudal government. A custom "Imperial Appointment" government type may be added in M4 or later.

  4. Steel Inquisitor placement. How to make Inquisitors courtiers of the Lord Ruler without giving them titles? CK3 may require them to be in his court via history or an on_game_start effect. Test both approaches.