Round 44: player aliases, named exits + traverse hook, overworld mob markers (#353/#370/#363)
Three player-facing features; each lands in its existing home (plus the
traverse hook added to the room-trigger catalog).
- #353 player aliases: Builder-Commands (new "aliases expand at the split step"
subsection + the alias/unalias command entries) + Player-Reference + the
handoff snapshot field list (Cross-Shard-Handoff). Expansion runs at the split
step BEFORE verb resolution, so an alias can target any verb and grants no
privilege (MinRank runs on the resolved verb); cycle/depth-bounded and
re-capped to the ingress byte cap. Distinguished from an engine command-alias
(n->north). Durable + rides a signature-bound handoff field, re-sanitized on
arrival.
- #370 named exits + traverse hook: Builder-Commands (named-exit fall-through,
consulted last, exits map only never entrances) + Player-Reference (any exit
keyword is typeable) + Pack-Lua-Hooks (the cancellable traverse room trigger:
block/return-false/redirect, FAILS OPEN so it is not a hard security boundary,
redirect is budget-bounded and can name only an exits key so it cannot reach an
instance entrance — the depth-0-typed-move invariant) + the demo Warded Sanctum
example.
- #363 overworld nearby-mob markers: Pack-Lua-Scripting (has_visible_creature()
presence-only disclosure primitive: display-render only, both rooms open_sight,
canSee-filtered, mobs-only, never re-opening the foreign-room anti-scry) +
Demo-Pack (the minimap's ! marker + the open_sight flag on plains rooms; mutual
opt-in).
Round 42: close the gaps left by a9f0cfe (#408 exemplar + engine-side vital semantics)
Round 42 was already partly self-documented in a9f0cfe, which covered #405/#406/
#407 on the builder-facing pages (Pack-Entity-Reference + Combat-System). This
fills what that pass did not reach.
- Abilities-and-Effects (the ENGINE-INTERNALS view, untouched by a9f0cfe) still
carried the pre-Round-42 framing: it called onDepleted "the cancellable death
hook" and described routing as op-level-only. Corrected: every pool runs its
own on_depleted (on a vital pool it is ALSO the death hook), so a non-vital
pool is a full second track — damageable, fires its hook at 0, never lethal;
and damage reaches a pool through the three-tier precedence (explicit op
`resource` > the damage type s `target_resource` > the `primary` vital).
Reframed the capacity discard as a STRUCTURAL immunity a pack can rely on.
- Demo-Pack: document #408, the Sanity/horror secondary-vital exemplar — the
acceptance artifact proving the three primitives compose. Covers the
no-per-op-resource routing, why the pool must NOT be marked vital, why it is
inert for existing characters by construction (a 0-base capping attribute,
not a check), the two authoring rules the level-triggered hook forces, and
why it ships in the existing pack rather than a new one (the pack-set
consistency check fatally refuses a process whose TELOS_CONTENT_PACKS
disagrees with the published manifest).
- GMCP-Reference: the #408 engine rider — Char.Vitals now skips a pool the
character has no capacity in, so an opt-in pool is ABSENT rather than reported
as 0/0 to every client on the shard.
- Pack-Lua-Scripting: on_depleted is a pool-depletion hook, not only a death hook.
Overworld map, content-defined toggles, and the demo-strip release model
Cross-repo changes (gomud engine+demo, telosMUD-content, telosMUD-infra):
Overworld / minimap (gomud #358/#360/#361/#367):
- Pack-Entity-Reference: new toggle_defs def table (on/off player preference,
verb-flipped, delta-from-default override, never a trust signal); the room
display surface (return nil to fall back → own the render for some rooms only)
- Pack-Lua-Scripting: coord(), has_room_flag (room content flags, vs has_flag =
Living flags), long(), toggle() handle reads
- Builder-Commands + Player-Reference: enter/exit/out named-exit verbs + the
Exits: line order; toggle verbs
- Demo-Pack: the 4th zone (overworld 'The Open Plains', 6x20 grid) + the opt-in
minimap (overworld toggle → room display template); the plains route vs the
kept-for-parity direct market->grove exit
Demo-strip release model (gomud release-images + telosMUD-content/-infra):
- Deployment: published images built with nofixture ship core-only; the world is
pulled from the external content store; telos-pull added to the published matrix
(telos-seed keeps the demo embed for local stacks)
- Content-Packs-Intro + Content-Pack-Operations: the demo is a dev fixture, not a
shipped world; a deployed fleet (e.g. live staging) pulls the reference pack
Close the Round 24 doc gaps: roam field, salvage pity, #205 validation
Most of Round 24 was documented as it shipped (on("spawn")/witness_leave hooks,
the state.x reload-guard idiom, the shared-def rolling-reboot readout). Remaining:
- Pack-Entity-Reference: add the missing roam reset field (zone-wide population)
- Loot-Spawns-and-Crafting: salvage pity no longer compounds across over-skill
bonus passes (was listed as a latent bug); only the base pass advances pity
- Content-Loading-and-Hot-Reload: scoped reloads now validate against the whole
merged graph, rejecting only findings whose last-writer pack is in scope
(provenance-by-last-writer; avoids the migration trap)
- Demo-Pack: the wandering wisp + chasing stalker, and the reload-safe greeter seed
Pack Reference (demo) + Player Reference + Mudlet recipes
- Pack-Reference: catalog + why three systems + licensing overview
- Demo-Pack: real walkthrough of the midgaard/darkwood/crypt world + scripts
- Player-Reference: connecting, everyday commands, channels, rich clients
- Mudlet-Samples: HP-bar / automapper / GMCP tab-complete recipes
- SRD5/WoW/D6 placeholders: added exact source PDFs + license references
Scaffold wiki + author About and Getting Started
- 48-page skeleton across all audiences (flat files + grouped _Sidebar)
- Every page carries an Audience + Status banner (Ready/Draft/Placeholder)
- About: Overview, History of MUDs (Ready)
- Getting Started: Getting-Started, Running-Locally, First-Admin-Setup,
Content-Packs-Intro (Ready) — dev bypass, local GitHub OAuth, bootstrap
admin, promote/demote, content-pack model, all grounded in code
- SRD5/WoW/D6 pack pages are honest placeholders (packs not yet built)