Guides

Lore Design with Shared setting documents

Persistent MUD worlds accumulate lore drift when multiple builders add content over years without centralized constraints. This guide provides an implementation workflow for establishing canonical documentation, faction matrices, and editorial checkpoints that prevent contradictions in room descriptions, NPC dialogue, and historical references. The approach focuses on text-based constraints: readable scrolling limits, cross-referencing systems for OLC (Online Creation) environments, and continuity tracking tools that function in plain text or version control systems commonly used by MUD development teams.

4-6 hours for initial framework; ongoing quarterly maintenance8 steps
Medieval Hereford Mappa Mundi showing ancient cartography with faded ink territories
Historical cartography representing faction territories and trade routes
1

Establish Canonical Lore Document Structure

Create a version-controlled master document (Git repository or wiki) serving as the single source of truth for immutable world facts. Structure with anchor links for quick reference during building: geographic constants (continent shapes, climate zones), hard magic system rules, major historical events with specific in-game dates, and prohibited technologies or anachronisms. Require builders to cite document sections when proposing new areas.

CANON.md
# Canon v1.2 - Last Updated: Year 847 of the Third Age

## Geographic Constants {#geo}
- **Continent Layout**: Three landmasses (Western Isles, Central Mass, Eastern Desert)
- **Climate Rules**: No tropical zones above 60 degrees latitude
- **Magic Limitations**: Teleportation requires line-of-sight to visited locations

## Historical Lock {#history}
- **Year 0**: Cataclysm (fixed)
- **Year 847**: Current game year (advances quarterly)
- **Forbidden**: No events referencing 'ancient' times without specific year attribution

## Faction Status Matrix {#factions}
[Link to Matrix Step 2]

⚠ Common Pitfalls

  • Storing lore only in builder heads without written documentation
  • Allowing contradictory versions to exist in different zone folders
  • Failing to version the document when major plot events occur
2

Create Faction Relationship Matrix

Build a text-based grid mapping every faction against others with explicit status values (Allied/Hostile/Trade/Neutral) and the specific in-game year when relations shifted. Include the room vnum where this relationship manifests visibly (e.g., aggressive mob placement, restricted shop access). Update this matrix before approving any new area containing faction NPCs.

FACTION_MATRIX.md
| Faction | Royal Guard | Thieves Guild | Merchant Consortium | Status Changed | Vnum Evidence |
|---------|-------------|---------------|---------------------|----------------|---------------|
| Royal Guard | - | Hostile (842) | Allied (810) | 842 | 1200-1250 (aggro mobs) |
| Thieves Guild | Hostile (842) | - | Trade (835) | 835 | 3400 (fence shop) |
| Merchant Consortium | Allied (810) | Trade (835) | - | - | 2100 (neutral zone) |

⚠ Common Pitfalls

  • Forgetting to update matrix when builders add new aggressive mobs
  • Assuming neutral status without documenting explicit trade agreements
  • Allowing faction conflicts to resolve in player areas without admin coordination
3

Define Room Description Scrolling Constraints

Establish hard character limits and formatting rules to prevent wall-of-text fatigue in clients with limited scrollback. Define: 400-character maximum for main descriptions, 80-character line breaks, and mandatory 'significant detail first' ordering where interactive elements (mobs, objects, exits) appear within the first 120 characters. Create a template showing correct line breaking and color code usage.

ROOM_STYLE_GUIDE.txt
GOOD (387 chars, exits visible early):
The cobblestone square opens west toward the harbor [W], where salt-stained
warehouses line the docks. East, the cathedral spire rises above tiled roofs
[E]. A weathered notice board stands here, flanked by a one-eyed veteran.

BAD (flowery, exits buried):
You stand in the magnificent central square of the ancient city of Thorne, where
the golden sunlight filters through the azure sky to illuminate the weathered
stones that have borne witness to centuries of triumph and tragedy...
[West leads to Harbor, East to Cathedral, North to Market]

⚠ Common Pitfalls

  • Excessive prose that hides interactable objects in scrolling text
  • Inconsistent use of color codes between adjacent rooms
  • Exceeding 80-character lines that wrap poorly in fixed-width clients
4

Implement Timeline Continuity Tracker

Create a linear calendar file tracking in-game years with tagged events. When builders add historical references (ruins, books, NPC dialogue), they must append to this file with the vnum where the reference appears. Before approving new areas, grep the tracker for date keywords to prevent anachronisms (e.g., referencing the Kingdom of Varn before its founding year).

TIMELINE.csv
Year,Event_Type,Description,Affected_Zones,Reference_Vnums
0,CATACLYSM,The Great Sundering splits the continent,ALL,0
810,POLITICAL,Merchant Consortium forms alliance with Royal Guard,2100-2150,2100
842,CONFLICT,Thieves Guild declares war on Royal Guard,1200-1250;3400,1205
847,CURRENT,Present day (advances quarterly),ALL,N/A

⚠ Common Pitfalls

  • Dating events vaguely as 'ancient times' instead of specific years
  • Allowing multiple builders to edit timeline simultaneously without merging conflicts
  • Failing to check that ruin descriptions match the destruction date in tracker
5

Build Class and Race Lore Alignment Templates

Standardize how mechanical choices connect to narrative by creating template files for each race/class combination. Document mandatory elements: origin stories explaining stat bonuses, restricted equipment rationales tied to physical size or cultural taboos, and specific homeland vnum references. Require builders to cite these templates when creating related content (shops selling class-restricted items, trainers).

templates/dwarf_fighter.md
## Template: Mountain Dwarf Fighter

**Stats Justification**: +2 CON (living at altitude), -2 CHA (isolationist culture)
**Equipment Restrictions**: Cannot wear plate above 400lbs (mountain climbing necessity)
**Homeland**: Vnums 5000-5100 (Stonehold Mountains)
**Cultural Taboos**: Magic use restricted to Runecasters only (see CANON.md#magic)
**Builder Notes**: All Mountain Dwarf NPCs must reference Stonehold in description or dialogue

⚠ Common Pitfalls

  • Creating classes with no cultural attachment to existing zones
  • Allowing racial abilities that contradict established magic system rules
  • Failing to restrict equipment in shops according to template specifications
6

Create Editorial Review Checklist

Construct a pass/fail markdown checklist covering lore consistency verification. Before zone approval, builders must complete: cross-reference against canonical docs (cite section numbers), faction matrix verification for all NPCs, timeline continuity check for historical references, and room description length audit. Require two senior builders to sign off on checklist completion before immortal approval.

CHECKLIST.md
## Pre-Approval Checklist for Zone [VNUM RANGE]

- [ ] **Canon Check**: All historical facts cited from CANON.md sections: ___
- [ ] **Faction Matrix**: NPC aggression flags match current relations (see MATRIX.md)
- [ ] **Timeline**: No historical references to years > 847 or < 0 without approval
- [ ] **Room Length**: All descriptions < 400 chars; exits visible in first 120 chars
- [ ] **Class/Race Alignment**: Restricted equipment matches templates
- [ ] **Geography**: Climate and terrain consistent with CANON.md#geo

**Builder Sign-off**: _____________ **Reviewer Sign-off**: _____________

⚠ Common Pitfalls

  • Skipping checklist for 'small' updates that introduce lore contradictions
  • Not checking that new mob names don't conflict with existing lore figures
  • Failing to verify that exit descriptions match the actual destination room descriptions
7

Compile New Builder Onboarding Lore Packet

Extract the most commonly violated rules from canonical docs into a 2-page quick-reference. Include: current in-game year and season, list of major active conflicts that builders cannot resolve unilaterally (requires admin plot approval), and the 'ask first' list (gods, world-ending events, interplanetary travel, technology above specified era). Update this packet quarterly when the timeline advances.

NEW_BUILDER_BRIEF.md
# Quick Reference - Current State: Year 847, Spring

## Active Conflicts (Do Not Resolve)
- Royal Guard vs. Thieves Guild (ongoing since 842)
- Eastern Desert resource disputes (diplomatic stalemate)

## Ask First List
- Any deity manifestation or divine intervention
- Technology exceeding late medieval (no gunpowder, printing press)
- Destruction or major alteration of canonical zones (vnums < 1000)
- Time travel or alternate dimension references

## Current Season Effects
- Spring floods: Harbor district (vnums 1200-1250) should mention high water

⚠ Common Pitfalls

  • Overwhelming new builders with 50-page bibles instead of this brief
  • Failing to update the packet when major plot events occur
  • Not explicitly listing which conflicts are 'hands off' for builder resolution
8

Establish Zone Integration Testing Protocol

Create a procedure for connecting new areas to existing world geography before deployment. Verify that: exit descriptions in adjacent zones match the new area's entrance text; wandering mobs from neighboring zones have appropriate aggression flags based on faction matrix; weather and season descriptions align with global calendar; and resource files (shop inventories, quest items) reference correct canonical lore sections.

INTEGRATION_TEST.txt
Integration Test Procedure for Zone [XXXX-YYYY]:

1. Check adjacent zone exits:
   - Verify room [XXXX-1] exit description matches neighbor's entrance
   - Check reverse exit from neighbor leads back correctly

2. Faction alignment test:
   - Spawn wandering mobs from neighboring zones into new zone
   - Verify aggression matches MATRIX.md values

3. Timeline consistency:
   - Search all room descriptions for year references
   - Verify against TIMELINE.csv (no future dates, consistent past)

4. Resource verification:
   - Check shop items against class restriction templates
   - Verify quest items reference correct historical events

⚠ Common Pitfalls

  • Testing zones in isolation without neighbor context
  • Forgetting to check daylight cycles in underground areas (should not reference sun)
  • Failing to verify that reset timers on lore-significant objects match historical importance

What you built

Lore design in MUDs requires active maintenance, not just initial creation. Schedule quarterly audits where senior builders grep the live areas for references to outdated faction statuses or contradictions with the canonical document. When major plot events advance the timeline (e.g., year 848), freeze new area submissions for one week to allow systematic updating of all lore documents. Maintain the principle that mechanical changes (new zones, mob stats) must always reference the lore documentation, never bypass it. This prevents the accumulation of 'lore debt' that makes onboarding new builders increasingly difficult over time.