There was an error while loading. Please reload this page.
Round 48: SRD items/chargen/plumbing — the last engine wave of #505 (#512/#514-#519/#548) Eight primitives closing the SRD engine register. Two stale claims corrected (chargen array/roll "not implemented"; the Wearer "affix sums" only). - Pack-Entity-Reference: chargen array_assign + roll step kinds now implemented (roll is server-authoritative, forged client values ignored); wearable gains static `modifiers` (#514) and `equip_affects` (#515, on-equip magic + OnHit procs, item-keyed derived state). - Abilities-and-Effects: worn static modifiers compose through the Wearer modSource (mulMod was hardwired to identity); teleport/push same-zone relocation ops (#516, forced-move harm-gated, same-zone structural, instance- entrance refused); the polymorphic dice_num + one-of conflict rejection (#517) and the `fixed` op flag (#515). - Combat-System: item procs = an equip-affect subscribing OnHit, with the OnHit self-loop guard + `fixed` rider; the prevents:move WALK fix (#548, a confirmed bug — attemptMove never consulted prevents:move, voiding the whole immobilize system). - Builder-Commands + Player-Reference: carrying capacity (carry_capacity derived attribute, enforced at acquisition, get-all-takes-what-fits); the `credits` verb (#519); rest short/long. - Pack-MUD-Settings: manifest license/attribution (accumulate per pack; a later pack can't erase an earlier notice). - Pack-Lua-Hooks: OnRest now live + OnShortRest/OnLongRest (distinct kinds, NOT the mag argument which would double a handler's heal). - Pack-Lua-Scripting: h:move now harm-gates forcing another player (was an ungated grief hole) — the safe co-move primitive for mounts/grapple-drag. Store field-drop trap again: #519 pack license needed BOTH fold loops (mergePacks file->Pack AND Merge Pack->LoadedContent) plus the pack_meta round-trip; #514/#515 ride existing wholesale-marshaled bodies.
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 34 milestone: spawn-protection window, audit trail, comms history - Combat-System + Abilities-and-Effects: the actor-agnostic post-respawn spawn-protection window shipped (#394) — updates the #318 "deferred" note. respawnPlayer opens a pulse-deadline protectedUntil; guardHarmful refuses harmful ops aimed at a protected player AHEAD of the !isPlayer no-op so a MOB attacker is covered (safe-room cannot be); drops when the player acts. - Persistence-and-Durability (new section) + Accounts-and-Auth-Internals: the append-only character_audit trail (#350) — world emits died/attr/track via an async per-shard auditor (saver twin, drains on shutdown), account emits create/tier_changed in-transaction; idempotent on (subject,kind,dedup_key) with a DURABLY-UNIQUE key (died = per-death UUID, not the transient deaths counter that collided across relogs); audit self-view scoped by stable pid, audit <name> staff-only. - Builder-Commands + Player-Reference: tells/replay session tell history (#349, structural pair-privacy, skips ignored authors, resets on relog) and history <channel> scrollback (#348, fetch-time canHear gate, shard-local partial view); Pack-Entity-Reference channel_defs.history row enriched.
Add a TinTin++ Setup page for tt++ players Parallel to Mudlet Samples: GMCP via #event {IAC SB GMCP <Module>}, an auto-open- login #action, the built-in #map mapper driven by Room.Info, a #split vitals line, and channel colouring — with honest placeholders where tt++ can't match Mudlet (no dockable per-channel windows; no addCmdLineSuggestion-style tab completion). Linked from the sidebar and Player-Reference.
Mudlet: add an auto-open-login-link trigger recipe A plain-text (non-GMCP) multiline trigger that matches the gate's OAuth login prompt and opens the link in the browser via openUrl(matches[2]). Regex keys off the engine's login screen text (stable across content changes). Linked from the Player-Reference Connecting section.
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
Round 29: help system (#64) + world-director script (#47) Round did not self-document. Two LARGE features: #47 content-defined Lua world-director script (the headline — closes the 'director-script unauthored' gap the Orchestration + Engine-Dev-landing pages carried): - Orchestration-and-Directors: new 'The world-director script' section — the director host table (get/set/broadcast/log), on_signal delivered per non- boss.died signal, the four guards (guard-your-own-events, idempotent derived writes, reserved key/down-event refusal); rewrote the stale 'unauthored' note. - Lua-Sandbox-Internals: the sandbox core is now a shared internal/luasandbox package used by both the zone VM and the director VM, cross-checked by a build-failing parity test. - Scoped-Event-Bus: signal-up is now consumed by the content on_signal handler. - Pack-MUD-Settings: world_script manifest field. - Pack-Lua-Hooks: builder-facing 'The world-director script' authoring section. #64 builder-defined help system: - Pack-Entity-Reference: help_defs def table (ref/title/category/keywords/body/ see_also; auto-includes the command set; honors CmdHidden+MinRank). - Builder-Commands + Player-Reference: the help command; fixed the stale 'CmdHidden has no help/listing consumer yet' note.
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
Correct transport claims: GMCP-only, no MCCP/NAWS/SSH Code only offers/accepts GMCP (telnet option 201); MCCP2/NAWS/TTYPE/CHARSET are skipped/refused and SSH was removed (OAuth-only). Fixes Overview + the Edge/Engine-Dev/Player scaffolds that claimed otherwise.
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)