Realm Zone Model

Last updated: July 24, 2026

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 RPG and theme is fantasy/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