Patch Notes
The latest updates and improvements to MudBringer.
Beta 12 - Scripting Gap Fixes, Import Fixes
Highlights: Beta12 restores dashboard hydration when a character profile starts, imports shared dashboard packs from Import/, and improves compatibility with legacy MudMaster scripts. Grid play stays catalog-driven; this build also separates dedicated Home from keypad 7, sends richer Get List selections, and lets Shift-composed paths append to an already-accepted route instead of replacing it.
No intentional breaking changes to .mbs / .mbd file formats. Grid.Ui worlds that use local.selection now receive the selected row’s top-level fields (not a hard-coded inventory shape).
Dashboards & Scripts
Character startup hydration
- Beta11 routed sibling
*.mbdthrough the MudMaster brace importer, which dropped unbraced rows/cols. The log still said Auto-loaded, but the Dashboard Wizard list stayed empty. - Opening a character profile now loads its main script, then deterministically hydrates sibling
*.mbd,*_actions.mbs, andbuttons.jsoncompanions. - Character-local unpacked
*.mbdrun as native MudBringer dashboard commands, preserving rows, columns, spans, and scale values. *_actions.mbsstill use the legacy-script normalizer;buttons.jsonrestores the character’s saved buttons./readand Scripts -> Load Script… import only the explicitly selected file. They no longer rescan or duplicate the character’s companion package.
Shared Import/ packs
- At character startup,
{exe}/Import/*.mbdpacks are loaded in deterministic filename order through/dashimport. - Both plain and zipped
.mbdpacks are supported. Zipped images retain the existing import behavior, and imported dashboard scripts are persisted beside the character script. - A pack is skipped when its dashboard is already loaded, preventing the shared library from replacing a character-local copy.
/dashimportand Dashboard Wizard imports strip/showdashboard, so library packs load defined but inactive.
Legacy script imports
- Bare startup lines now execute like MudMaster instead of being rejected. This includes aliases invoked during load and ordinary commands such as
look. - MudMaster startup commands such as
#trand#atrare no longer mistaken for comments; conventional# comment,##,#-, and#*lines remain comments. /playwaveis translated to/playwav, and/emoteato/emoteall, without altering already-correct commands.- Quoted
/readand/writepaths work when filenames contain spaces. Imported source files are never rewritten. - Legacy math, quoted
/ifcomparisons, array assignments, loop bounds, nested procedure arguments, andmath.dllDiv/Mulcompatibility were tightened for real MudMaster script libraries.
Load Script…
- Scripts -> Load Script… opens in
{exe}/Scripts/(creates the folder if missing).
Beta 11a - Packaging, Import, and v9 for MB
Highlights: 11a is a hot-fix drop on top of Beta 11, meant to re-package missing items and fix some auto-import issues. 11a also features "v9 for MB" which is a script set/platform for Medievia specifically, ported over from MudMaster2k6.
To load v9 for Medievia, use the "Scripts > Load Script" menu function to select "v9.mbs" from the v9 folder in the Scripts folder. v9 is a PORT from legacy MudMaster, and so does not offer the same user experience as MB. FOLLOW THE TEXT INSTRUCTIONS AFTER LOADING. Valk would much rather everyone use MB natively, but v9 does also work for MB now.
Fixes
- Load Script now properly opens to the Scripts folder.
- Load Plugin now properly opens to the Plugins folder.
Dashboards & Scripts
- Auto-load actually creates boards.
- Beta 11 routed sibling .mbd through the MudMaster brace importer, which dropped unbraced rows/cols. The log still said Auto-loaded, but the Dashboard Wizard list stayed empty.
- Character-local unpacked .mbd now run with raw /dashboard / /dashadd parsing (same as before Beta 11).
- _actions.mbs next to the character script still go through the importer.
Shared Import / Packs
- After a character .mbs / .mm load, zip packs in {exe}/Import/.mbd are /dashimported only if the session does not already have a dashboard named after the pack file.
- /dashimport (and Dashboard Wizard import) strips /showdashboard, so library packs load defined but inactive.
Load Script
- Scripts -> Load Script... opens in {exe}/Scripts/ (creates the folder if missing).
Beta 11
Beta 11 includes a number of significant under-the-hood structural changes aimed at improving performance, stability, and MudBringer's foundations going forward. Most aren't particularly exciting to list individually, but they touch a lot of the application. Please report any new bugs or unexpected behavior you encounter!
New Features
Font Folder & Packaged Fonts
MudBringer now automatically loads fonts found in the /Fonts folder within the MudBringer root directory at launch. Fonts packaged here are given priority by MudBringer, allowing the client to reliably use the intended font without requiring it to be separately installed in Windows.
This provides two major benefits:
- Medievia font reliability: Helps eliminate problems caused by missing, incorrect, or differently versioned Medievia fonts.
- MUD-specific fonts: MUDs and MudBringer packages can include their own custom fonts and know that players will see the intended presentation.
Simply place a supported font in MudBringer/Fonts and MudBringer will make it available on the next launch.
Load Scripts
Added Scripts -> Load Scripts to the main menu. This provides a graphical equivalent of the existing /read command for loading script files into MudBringer.
Automatic MudMaster Script Conversion
Scripts loaded through either /read or Scripts -> Load Scripts are now automatically checked for legacy MudMaster syntax and converted to MudBringer's current syntax where necessary. This brings the legacy compatibility previously available through the Character Importer to individually loaded script files.
The converter can now:
- Repair missing { } syntax where applicable.
- Convert legacy commands such as /loadlib, /session, and other supported MudMaster syntax.
- Display the results of the conversion so you can see exactly what was changed.
Expanded Performance Profiler Diagnostics
The Performance Profiler now exposes additional diagnostic information, providing more visibility into MudBringer's internal performance and making it easier to identify bottlenecks.
Performance Improvements
- Independent Session Socket Processing: MudBringer now processes each active session on its own socket processing path, eliminating a potential bottleneck where heavy activity from one connection could interfere with processing on others. This is particularly important for MudBringer's multi-session gameplay.
- Hot-Path Optimization: A number of frequently executed internal code paths have been optimized to reduce unnecessary work and improve responsiveness during heavy activity.
- Atlas Tracking Performance: Atlas tracking no longer routes its tracking updates through unnecessary WPF/UI update paths. This eliminates a major source of UI contention and prevents Atlas tracking activity from hanging or stalling the application under load.
Bug Fixes
- Shift+Enter /sendall Deadlock: Fixed an issue where using Shift+Enter with a /sendall command could deadlock the application, resulting in an apparent soft crash. Shift+Enter broadcasting now works correctly with /sendall.
- Hotkey Input Handling: Cleaned up several issues involving hotkey and keyboard input capture. Input is now routed and captured appropriately based on the active MudBringer window type.
Beta 10 - Diagnostics & Hotpath Release
This release is a stability and scalability pass focused on predictable hot-path performance, and actionable diagnostics when scripts or the client misbehave. No intentional breaking changes to script syntax or session file formats.
NOTE TO TESTERS: If you're having any issues with your scripts, please provide the both .log files from the MudBringer root directory to help us narrow down the source/cause.
Performance & Hot Path
- Session pipeline (network decoupling): Each session now owns a SessionPipeline — a per-session channel worker that runs all inbound engine work off the socket thread. Socket reads are enqueue-only. Terminal rendering is marshaled to the UI thread via Dispatcher.InvokeAsync.
- Prompt-flush on the worker: The 50 ms prompt timer still fires on a pool thread, but it posts the flush onto the pipeline worker, so all engine mutation stays FIFO and single-threaded per session.
- Trigger matching index: New TriggerMatcherIndex: gags, substitutes, highlights, and actions are bucketed by first extractable literal. Per-line cost scales with distinct literals, not total script-library size. Index rebuilds automatically when entities are added, removed, enabled, or cleared.
- Zuggtest / line-splitter regression fix: Fixed a performance regression where large single-packet bursts scanned a StringBuilder character-by-character. Line splitting now uses vectorized string.IndexOfAny. Empty trigger collections skip enumerator allocation entirely on each line.
- AutoMap Tracker performace fix: Fixed an issue where the WPF thread was being called during tracking events, causing hang-ups. The AutoMapper now tracks independently.
Stability & Resilience
- Diagnostic logging (new): Always on: logs/mudbringer.log beside the executable. [SCRIPT] for user script faults, [CLIENT] for engine faults. Opt-in verbose: logs/mudbringer-diagnostics.log when enabled.
- General Error handling cleanup and General UI Performance Improvements.
Removed / Cleanup
- Deleted unused standalone wizard windows (superseded by unified wizards).
- Removed obsolete SessionManager (replaced by per-session pipeline + registry).
Beta 09b
- Minor unlisted fixes and stability improvements.
Beta 09a - Hotfix
- /dgroups and /delegation expansion commands were not properly packaged in the last .exe.
- Fixed parsing for delegated commands (like /sendall) when sending script entries. /sendall /alias {test} {/showme {it's working!}} now properly sets up an alias on the other sessions.
Beta 09
- FEATURE: MUD Browser (Mud List) added to character and profile creators.
- FEATURE: Added Loading Bars - a loading bar hides the app building when profiles are loaded.
- COMMAND: /delegation expanded to allow adding and removing groups rather than only setting a CSL (/delegation add|+, /delegation remove|-).
- COMMAND: /listdelegation {group} command added to list members of a delegation group.
- COMMAND: /dgroups on its own will open the groups wizard. /dgroups add|+ group or /dgroups remove|- group adds or removes delegation groups as a whole.
- PROCEDURE: @GroupList({Group}) has been added, which returns a usable MudBringer list of session names associated with the groupmath.
- HELP: Added help file for /listdelegation, @GroupList, and some other fixes.
- FEATURE: Delegated commands now show a localecho- which has its own color setting in Session > Options (default orange).
- COMMAND: Expanded /input to include topinside, bottominside, topoutside, bottomoutside as arguments for input bar location.
- FEATURE: Added the Import folder to the root directory for dropping dashboards, characters, scripts, images and maps for easier location during imports.
- COMMAND: /dashimport added to import dashboards via script. It checks the Import folder and is smart enough to import nested dashboards, tabbed dashboards, and images.
- FEATURE: Exporting through the dashboard wizard now zips the required images into the .mbd with it, prompting for overwrites on import.
- FEATURE: Packaged the MapPlugin.dll, sample dashboards, images, and the v9 multi-play basic script package with the .zip.
Beta 08 - MudMaster Importer
- GENERAL: Terminal Word Wrap now enabled by default for new characters.
- GENERAL: Added Macro Wizard to Actions, Aliases, Triggers wizard on their own tab.
- FEATURE: Added the Import Wizard. You can now easily import your old MudMaster characters and scripts seamlessly.
- LAYOUT WIZARD: Streamlined the character setup phase, apply settings once across all, setup groups with a click.
- MAP PLUGIN: Added dynamic font size change settings, and ability to output to Sessions or Dashboard TextBoxes.
- DASHBOARDS: Tabs are now visually customizable in the Dashboard Wizard.
- FEATURE: Added /sendprimary as a complimentary to /sendall and /sendothers.
- HELPFILES: Added help files for /sendprimary and over 50 others. (Total 385 help files).
- HELPFILES: ALL Helpfiles should now be included in the Help folder, accessible via /help in-terminal, and in the Script Entity Manager.
- BUG FIX: Delegation commands (/delegate, /sendall, /sendothers, /sendprimary) only propogate a single time went sent (rather than exponentially which was causing a soft lock).
Beta 07a - Hotfix
- Delegation Groups now function properly across "hidden" tabs and sessions.
Beta 07
- BUG FIX: Macros with SHIFT in the hotkey were breaking the downkey detection.
- BUG FIX: ^Anchors were not triggering properly when received within a larger packet from the MUD server.
- FEATURE: Contrast borders added to profiler, cartographer, and debug windows.
- FEATURE: You can now perform actions based on the session Disconnect message.
- FEATURE: "Open Sessions" button added to all SHARE windows (sharing scripts, dashboards, etc).
- BUG FIX: Now compatible with all number-row macro assignments from MudMaster.
- FEATURE: Number row macros can now be used as just their number (before you had to use D1, D2, etc).
- FEATURE: Introducing the ATLAS - a per-profile manager of world maps, and map viewer. Atlas is now a dashboard object, can maintain a 'master list' of area maps, toggles between Isometric and Normal views (with 5 z-layers), and can export/import maps. Map Merging Wizard added.
- BUGFIX: @CommandToList() was resolving $ListItem only once, now it resolves properly per-item/command.
- FEATURE: Added @CommandToEach() to mirror @CommandToList() but with Groupmath.
- HELP FILES: Added help files for new commands and missing legacy files.
- AUTOMAPPER: Tweaked confidence engine for accuracy and performance. Now detects teleports or unintentional movement and tries its darndest to keep track of you.
Beta 06
- BUG FIX: Fixed losing focus when closing wizard windows with ESC.
- BUG FIX: Profile Wizard now allows edit/save of existing characters with the Edit/Character Wizard.
- FEATURE: Added "propogate" button to apply settings across all characters in the Character Editor.
- FEATURE: Added Share button to group-apply Session Settings PER-TAB in the Session Options window.
- FEATURE: Profile Wizard: Changed AddCharacter selector to a multi-selector list with a filter/search for easier multi-adds.
- FEATURE: Expanded the use of /showother to include TextBox outputs on dashboards.
- GENERAL: Character and Session names can no longer have dots (.) in them.
- BUG FIX: Dashboard TextBox font sizes and other settings now serialize and save/load properly.
- FEATURE: Dashboard TextBoxes now capable of alignment (left/right/center).
- FEATURE: Buttons, Meters, and Badges combined into "Widgets". Widget Wizard has been implemented.
- FEATURE: Widgets can be anchored to the Terminal window.
- FEATURE: Dashboards can now be "borrowed" from other characters.
- FEATURE: Widgets clicked from a shared dashboard have the "$ClickTarget" system variable to capture the session name the button belongs to.
- BUG FIX: Variables now join with adjacent strings through fallback lookup (ie, $hpHP now shows as 544HP).
- FEATURE: Right-Clicking a dashboard on the dashboard selector now opens the editor to that dashboard.
- FEATURE: Widgets now able to take state-based images, transparency, fill. /widgetstate and @GetWidgetState().
- FEATURE: ASCII Meters added to the Dashboard Wizard. Able to use "stacked" style meters.
- FEATURE: Dashboards: added "Aggregator" type dashboard objects, which dynamically fill the dashboard based on shared sessions.
- FEATURE: CTRL+SHIFT+TAB now cycles the opposite direction of open tabs.
Beta 05
- BUG FIX: Aliases with wildcards no longer trigger on similar commands.
- FEATURE: Profile Layout Wizard. File > Profile Wizard lets you choose from presets, or easily create your own layouts.
- PERFORMANCE: Isolated more frequent REGEXes and simplified or compiled them.
- PERFORMANCE: Various exceptions now return specific errors rather than simply catching and returning nothing.
- PERFORMANCE: Automapper tracks faster when confidence levels are high.
- FEATURE: Added /sendall and /sendothers commands.
- DOCUMENTATION: Added help files for /sendall and /sendothers, and some other previously missing help files (total 276 help files).
- PERFORMANCE: Cleaned up plugin memory leaks due to no garbage collecting.
- FEATURE: Various hotkeys added.
Beta 04
- Shared and Group Variables Wizards.
- Fixed Debugger Window was showing blank lines between every line.
- Map Plugin now allows multiple/alternate end-capture strings.
- Map Plugin now allows end-line designation as part of capture strings.
- Added Cross-Session Data Sharing.
- Added @csvtolist().
- Various Help Files added: @CSVToList(), @ReadJSON(), @WriteJSON, @GetAPI(), @PostAPI(), @StripAnsi().
- Various streamlines to the pipeline/performance increases.
- Fixed an issue with debug output causing its own slow-down of the app.
- User scripts now compile on load/save in the wizard for peak regex performance.
- Literals (no regex) are no longer passed through the regex parser.
- User scripts are pre-parsed into syntax trees for reference.
- Decoupled math from Cartographer window (pathfinding, lookups, etc).
- Converted CharRun from a class into a readonly struct (flattening it into contiguous memory like C++).
- Reduced redundancy in string calculations during the render loop with geometry caching (we render each only once).
- Added "Zuggtest" benchmark. Follows Benchmark set by Nick Gammon. CTRLQ to open.
- Re-focus to primary input bar when a wizard window is closed.
- Add to File menu the most recent (up to 4) profiles to load. Pressing ALT F and then the number should load it.
- Set sessions with numbers in session menu for Alt s and number for switching.
Beta 03
- Wildcards now resolve to empty strings "" when empty.
- Accessibility Hotkeys added to all wizards.
- High Contrast Border options in Accessibility options.
- Switched to GlyphAPI, for huge performance increase over WPF output.
- Automapper Confidence Engine implemented.
- Images can now be set in 6 layers on dashboards (3 background layers, 3 foreground layers).
- Consolidated All Wizards into 6 main.
- Moved Status Bar wizard to the Window menu (deprecated).
- Isometric View on Automapper.
- Added Cross-Session Data Sharing.
- Added guide for new Cross-Session Data Sharing commands.
- Added 8 more help files.
Beta 02
- Added Bold option for fontfaces.
- Added basic hotkeys for window navigation.
- /enablegroup and /disablegroup are now functioning.
- Added 140 help files for various commands and procedures.
- Added a @Pause() procedure for auto-running with the AutoMapper.
- Compiled most used Regex for performance.
- Added image layers to the Dashboard Wizard - 3 layers behind and 3 layers in fore.
- Search bar added for wizard lists.
- Added native text-to-speech, and pronunciation dictionaries, and tts navigation commands.
- Fixed @ConCat() not counting spaces correctly.
- Added colorblind profiles and TrueColor override for Colorblind profiles.
Beta 01
All basic features are present:
- Encoding: Telnet (RFC 854), Windows-1252 (CP1252), UTF-8, CP437 (DOS)
- Protocols: GMCP (Option 201), MSDP (Option 69), MSSP (Option 70), MTTS (Option 24)
- Compression: MCCPv2 (option 86)
- Media Interaction: MXP (Option 91), MSP (Option 90)
- Chat/Social: MMCP (MudMaster Chat Protocol)
- Rendering Standards: ANSI, Xterm-256, TrueColor
- Scripting: Variables, Lists, Arrays, Triggers, Aliases, Filtering, Events, Trains, Advanced procedures for string manipulation, math, logic, script flow, and more. 100% compatibility loading MudMaster.mm scripts.
- Delegation Groups: Every session is set to groups, Hotkeys for sending input to groups (shift+enter, Ctrl+enter, etc.)
- Basic Automapper: Will record and store rooms and maps and their metadata. Will track your position based on these maps metadata.
- Tablet: Reference tablet for bookmarks, images, .txt or URLs.
- Debugger: Step-through debugging with the live debugger, see script timings, captures, and outputs.
- Performance Profiler: Track your TIME MARK ping to the MUD, your TTS Regex timing, processor ram and more.
- Demos and Playback: Able to record demos and play them back with a scrub bar and playback speeds.
- Dashboard Wizard: Basic dashboard wizard able to make meter bars, button, textboxes, tabbed and nested dashboards, and more.
- Plugin Support: Read-Line support provided for plugins, and a basic MapPlugin.dll for transposing maps from any mud onto a target window or textbox (or both).
- Profiles and Window Nesting: Designed for playing multiple sessions at once, you have ultimate freedom to adjust the windows and tabs to whatever you desire.