dMUD Realm/Zone Model
Multi-realm world architecture with home binding, stable dailies, and mode-aware /play. Added July 2026 (commit 68b26338).
Purpose
dMUD evolved from a flat room list into a structured multi-realm world. Each realm represents a thematic universe (e.g., dLand, WoW Classic Elwynn), and zones group rooms within a realm. This enables:
- Thematic separation of content (fantasy vs. social vs. ambient)
- Per-realm quest chains and profession content
- Home bind points for player return
- Stable daily quest rotation per realm
Architecture (dmud/room_meta.go)
Room Modes
| Mode | Constant | Purpose |
|---|---|---|
ambient |
RoomModeAmbient |
Decorative/atmospheric rooms (Matrix, Starfield, etc.) |
rpg |
RoomModeRPG |
Adventure/combat HUD rooms |
hub |
RoomModeHub |
Central navigation hubs |
social |
RoomModeSocial |
Agent dens, player homes (chat focus) |
partyline |
RoomModePartyline |
Lobby, Global, System social channels |
Realm/Zone Derivation
Rooms declare realm and zone in their INI [meta] section. If omitted, NormalizeRoomMeta() auto-derives them:
// deriveRealmZone maps room ID prefixes and themes to realm/zone
func deriveRealmZone(room *Room) (realm, zone string) {
id := strings.ToLower(room.ID)
theme := strings.ToLower(room.Theme)
// wow_* rooms → realm: "wow_classic", zone from ID
// sys_* rooms → realm: "dland", zone from ID
// etc.
}
Adventure Auto-Detection
NormalizeRoomMeta() automatically marks rooms as Adventure: true if they match exploration patterns:
- Room ID contains:
forest,cave,meadow,mine,dungeon,village - Room ID starts with
wow_ - Room type is
RPGand theme isfantasy/scifi/outdoor
Home Bind
Players can set a home room (/bind). On disconnect or /home, the player teleports back to their bind point. Stored in user persistence.
Realms
| Realm ID | Theme | Rooms | Description |
|---|---|---|---|
dland |
Mixed | All sys_* rooms |
Default dMUD social/ambient world |
wow_classic |
Fantasy | wow_* rooms (17+) |
WoW Classic Elwynn Forest + Westfall/Redridge stubs |
Key Commits
| Hash | Change |
|---|---|
68b26338 |
Realm/zone model, home bind, stable dailies, mode-aware /play |
7ca5ec6f |
WoW Classic Elwynn Forest realm — 9 rooms + 8 NPCs |
b84e0e53 |
Expand Elwynn — 8 new rooms, 7 NPCs, 2 expansion hooks |
67cfe10 |
Enable WoW Classic realm |
693b5583 / 2d896c1d |
Separate RPG worlds by theme (multi-realm architecture) |
Key Files
| File | Purpose |
|---|---|
dmud/room_meta.go |
Realm/zone derivation, room mode constants, NormalizeRoomMeta() |
dmud/room.go |
Room loading, navigation, realm-aware routing |
dmud/user.go |
Home bind persistence |
dmud/quest.go |
Realm-scoped quest chains |
dmud/data/rooms/wow_*.ini |
WoW Classic realm room definitions |
Cross-References
- Features/dmud/wow-elwynn-realm.md — WoW realm content details
- Features/dmud/seasonal-events.md — Seasonal system (cross-realm)
- Features/dmud/async-command-pipeline.md — Command processing