JediMUD 7.0 — The D20 Rebuild
After two decades on the original codebase, JediMUD is undergoing its biggest rewrite ever — a top-to-bottom rebuild around the D20 SRD ruleset, a SQL-backed persistence layer, a modern observability stack, and AI-driven NPCs.
Live now on the alpha tree. Promoting to dev as features stabilize. prod stays on 6.x until 7.0 is RC.
Where we are
6.x
Where prod lives today. Classic CircleMUD/tbaMUD-derived. The base everyone's playing.
7.0-alpha
Reconstruction in progress on the alpha tree. Open for staff testing; feature-complete-ish.
7.0-rc
Once alpha stabilizes and dev mirrors, an RC build promotes to prod for player testing.
7.0 launch
Full launch — server reboot, account migration, fanfare. Date TBD.
7.0 — What's new
Everything below is built and running on the alpha tree. As features pass internal testing they promote to dev for wider validation, then to prod for 7.0 launch.
🎲 D20 system rebuild
- 22 classes across 3 tiers — 9 base, 2 Epic (Bard/Ranger), 11 Prestige
- 16 races with size, family, ability mods, attack types, gender/alignment rules
- ~353 feats with prereq chains (feat / ability / class-level / race / BAB / spellcasting / alignment / weapon-proficiency)
- Live editors — cledit, rcedit, fedit, spedit — all changes apply immediately, persisted in SQL or disk
- Formula evaluator — every spell field (damage, applies, duration, summon-req) is a live expression with caster/victim/object variables
- Spell runtime consults a per-spell catalog for 7 mag_*() functions; falls back to hardcoded behavior gracefully
- SPELL_ACQ_INHERIT — Prestige casters inherit their base class's spell list
🏛 Account system
- Cross-character accounts — share gold + questpoints + remorts across all your alts
- Unlock store — buy access to Prestige classes + exotic races; the unlock is permanent and account-wide
- Cumulative pricing — first unlock is cheap; the tenth costs 36× base. Keeps the economy balanced over an account's lifetime
- ATM-gated banking — three money commands need an ATM object in reach; account session works anywhere
🤖 AI-driven NPCs
- OpenAI + Ollama fallback chain — cloud LLM first, local model as backup, static fallback last
- Four behaviors per mob: dialogue (tell), greet, emote reaction, combat taunt — each on its own cooldown
- Per-NPC personality strings stored in SQL — staff write 2-4 sentences, the LLM stays in character
- Async response handoff — worker threads never touch CircleMUD state; main-thread drain delivers lines
- Prompt-injection sanitizer — all player input is cleansed before reaching the LLM
📡 PubSub event bus
- Synchronous in-process bus with topic-based subscribers
- Sound layer subscribes to combat/weather/chat/player events → emits MSP triggers to capable clients
- MTRIG_PUBSUB — DG-script mob triggers can subscribe to any topic with wildcard arglists (combat.*, player.lowhp, etc.)
- Staff dashboard at /staff/pubsub shows live event tail
🌦 Weather + day cycle
- 15 rare weather events per zone — sandstorms, hurricanes, tornadoes, blizzards, thunderstorms, etc.
- Zone terrain flags (desert/water/mountain/forest/city/island/artic) gate which events can fire
- Movement cost modifiers + minor damage during severe weather
- Control Weather spell — magic can suppress or amplify events
- Six sunlight transitions per game-day driving outdoor messaging + DARK-room visibility
📊 Observability stack
- SQL audit log — every shutdown, admrole, load, purge, discipline action recorded with verb.subverb codes
- Entity load events — every mob/obj spawn attempt tracked; surfaces "this mob never spawns" via load-fail rate
- Class level events — level-up history with HP/Mana/Move deltas per class
- Combat kill log — PvE + PvP balance dashboard
- Performance monitoring — instrumented sections with per-pulse percentage breakdown
- Staff web dashboards for every stream
💾 Persistence layer
- SQL-authoritative player records + object sets, with disk-file mirror for transport + safety
- Object instance system — every loaded obj tagged with (vnum, uid, generation) for dedup + forensic provenance
- plrset / objset commands for full SQL ↔ disk repair, archive restore, recovery from self-delete
- automysqlbackup daily dump as a second independent backup beyond the file-level snapshot
- Object version upgrades — edit a prototype, every player's instance auto-upgrades on next rent-load
🗺 World & content tools
- Offline zone builder — single-file HTML editor for building zones without being online (try it)
- 8 new cross-zone reset commands (L/C/K/N/U/J/F/H) — chain zone events, set room flags across the world, force weather
- Live OLC for D20 content — cledit, rcedit, fedit, spedit + the classic redit/medit/oedit/zedit/sedit/trigedit/qedit suite
- Achievement system — auto-granted milestones with public leaderboards
- Raffle campaigns — multi-prize, multi-account, ticket-ledger-audited
- Help system in SQL — instant edits via hedit, no more flat-file fan-out
- IBT system — players submit bugs/ideas/typos; staff triage via ibtedit + a web dashboard
🌐 Web stack
- jedimud.net rebuilt in Astro 5 — fast static site, no slow CMS
- Browser web client at /webclient/ — telnet-over-WebSocket, audio, MSDP/GMCP support
- Staff dashboards — 12 cookie-gated tools for audit/load/level/combat/economy/IBT/pubsub/perf/MUD controls
- 72 documentation pages for staff + 10 builder guides + 4 interactive tools, all downloadable as .md bundles
🎵 Client integration
- MSP sound bridge — 13 event sounds + 9 weather sounds with 5-category mute
- MSDP variables — character vitals, combat target, weather, party state pushed every second
- GMCP packages — IRE-standard Char.Vitals/Status/Stats + custom Char.Environ/Group/Items/Skills/Event
- Discord bridge — gossip + auction + shout mirror out to a Discord channel
🛠 Built but not on prod yet
Features that live on alpha + dev but haven't promoted to prod. These need a prod restart to land:
- fedit / spedit — the feat + spell editors are alpha-only currently
- Formula evaluator for spell expressions — alpha-only
- SQL class/race overlay at boot — alpha+dev have this; prod doesn't
- Some MSDP variables introduced 2026-05-18 (WEATHER*, WORLD_EVENT, GROUP_MEMBERS) — promotes with prod binary update
- Achievement events — schema is there, runtime fires on alpha+dev
- Account unlock store v2 (cumulative pricing) — alpha+dev
- AI service — gated behind a feature flag pending API budget review on prod
📋 Path to 7.0 RC
What needs to happen before we can call something "Release Candidate":
- Alpha smoke testing — every D20 path exercised against the formula evaluator. Spedit content tested end-to-end.
- Dev promotion — alpha → dev port, dev acts as staging for a week+
- Player content audit — convert/upgrade all existing prod content (zones, mobs, objects) to D20-aware versions where applicable
- Account migration plan — existing prod players need accounts created; pooled-gold seeding from per-character bank balances
- Documentation freeze — staff + builder + player docs locked in (this is the part that's basically done already 🎉)
- Prod restart drill — disaster recovery rehearsed; rollback path validated
- AI service budget — final go/no-go on OpenAI cost ceilings before flipping the feature live on prod
- Performance baseline — perfmon over a week of player traffic on dev shows healthy headroom
📅 What 7.0 launch looks like
- Announce 1-2 weeks ahead on news + Discord + login banner
- Pfile + SQL snapshot — full backup of prod state before the cutover
- Rolling downtime — ~30 min for the binary swap + first zone reset
- Account migration auto-runs on first connect for legacy chars (one-time form prompt)
- Login banners + new MOTD announcing what's new + key changes that affect existing players
- Active staff presence for the first 48 hours to triage issues
- Rollback plan — if anything's catastrophic, downgrade binary + restore SQL within 2 hours
🔭 Post-7.0 directions
Ideas in the someday-pile, listed so you know where the wind is blowing:
- Persistent player journals — first-person logs of major events, exportable
- Live-streaming the world map on the website — see player positions update in real time
- Visual character sheet on the website rather than just terminal display
- Cross-tree player visits — temporary character snapshots from dev to alpha for staff testing
- Mobile-friendly web client — touch-first input, larger buttons, no chord shortcuts
- Voice integration — text-to-speech for AI taunts, accessibility for sight-impaired players
- Federated MUDs — protocol for player-character travel between cooperating muds (very speculative)
Nothing here is committed. Treat as inspiration for what 7.1+ could include.
How to follow along
- Discord — discord.gg/EQfuEkV for daily progress chat
- News — /news for milestone announcements
- Changes — /changes for per-change build notes
- Want to help test? Reach out on Discord. Builders + active testers welcome on the dev tree.
Roadmap last updated 2026-05-19. Detail subject to change without notice; that's what an alpha is for.