How an authored YAML room or mob becomes a live world object: a deliberately incomplete save overlay, and the restore pass that puts authored intent back on top
Guided views
Explore this system
Step through curated paths without changing the source diagram.
Beat
Next
ReadyChapter 01 / 01
Guided chapter
Diagram guideExplore this system
Inspecting compiled semantics
E ExportT ThemeS Style0 Reset+ Zoom in- Zoom outEsc Close
Find a node
⌕/
No matching nodes
Semantic passport
Verified source
Authored reach
Route probeChoose a start node
Pick two semantic nodes on the diagram
Choose the source, then the destination. Direction matters.
Semantic lensCompare system roles
Choose up to two semantic kinds. One reveals its real traffic; two compare only direct authored relationships.
Choose a kind to inspect its nodes and touching relationships.
Semantic radar
Building overview
Click nodeDrag to pan
Three files, one struct
• The authored template under rooms/ or mobs/ is read first, every time
• Templates: _datafiles/world/dogmud/rooms/<zone>/<id>.yaml and mobs/<zone>/<id>-<name>.yaml
• Room saves: rooms.instances/<zone>/<id>.yaml
• Mob saves: mobs.instances/<zone>/<id>-<name>-room<n>.yaml, so one template spawned in two rooms keeps two files
• A saved instance under rooms.instances/ or mobs.instances/ may not exist
• Most rooms in the world never acquire an instance file at all
• Once loaded, the in memory object outranks both files until the next restart
Two overlays, two mechanisms
• A room save unmarshals directly onto the struct, so any field it names wins
• A mob save is a fixed record: training, skills, mutations, gold, gear, plan state
• The room overlay is limited by a tag; the mob overlay is limited by its type
• Charmed companions and bounty hunters are excluded and never write a file
What a stale save cannot override
• 23 Room fields carry instance:skip and are copied back from a clean template
• Title, description, exits, nouns, biome, coordinates and spawn lists are among them
• The yaml library cannot see the tag, so the restore pass enforces it afterwards
• Spawn lists are in this group: a spawn edit needs no instance wipe to take effect
• DefusedExits is deliberately excluded, and is re applied after the restore
What actually gets written
• SaveRoomInstance is the deny list, SaveMobInstance is the allow list
• Unexported fields, skip tagged fields, and fields equal to the template are dropped
• What remains is floor items, gold, containers, stash, signs, mutators, room data
• An instance file with nothing left in it is deleted instead of written
• Ephemeral rooms refuse to save: their id sits at or above the ephemeral floor
Traced from source
• github.com/pruuk/DOGMud at d383a6fffbf24b9ed455e47d503567d0ff35cf42
Sequence diagram • Built with Archify • Create yours ↗ • Hover to trace • R route • Click to focus • +/− zoom • M radar • [/] views • P play story • T theme • E export