Skip to content

Releases: mpvmud/Vmud

vMUD 2.1.25

17 Mar 06:39
f291ce0

Choose a tag to compare

● VMud 2.1.25

  • Fixed login screen art garbled on connect — the auto-detect encoding was falling back to CP437 when recv() split multi-byte UTF-8 characters mid-buffer, turning block art (█▄▀) into garbage text. Now always decodes as UTF-8.

vMUD 2.1.24

17 Mar 06:24
f291ce0

Choose a tag to compare

VMud 2.1.24

  • Fixed UTF-8 decoding reliability - Replaced the _utf8_trailing() byte-holding mechanism with _is_tail_truncation(). The old code could hold back bytes between recv() calls, causing display glitches. The new approach never holds data between flushes - every recv() is decoded and emitted immediately. If a multi-byte UTF-8 character gets split across two recv() calls, it decodes with replacement instead of stalling.

    • Added update popup — when a new version is available, replacing the old version that was blocked behind the quick connect, a dialog appears on startup with Download and Ignore buttons instead of a text-only message buried in the terminal

vMUD 2.1.23

17 Mar 04:03
f291ce0

Choose a tag to compare

VMud 2.1.20

  • Added Custom Map Sectors. Players can now create their own sector types in Preferences > Map Sectors with a custom name, color, keywords, and uploaded tile image. Tiles are scaled to 16x16 and stored as base64 in settings — fully portable, no external files needed. Custom sectors appear in the map right-click context menu below the built-in types. Keywords (e.g., "lava", "magma") are used by the auto-mapper to automatically assign
    sectors when walking into matching rooms. Custom keyword matches score higher than built-in ones so player-defined sectors take priority. Changes hot-reload instantly without restarting the client.

VMud 2.1.21

  • Fixed UTF-8 block art corruption on the login screen. When the server sent multi-byte UTF-8 characters (█▄▀░▒▓), a network read boundary could split a character across two packets, causing the entire buffer to fall back
    to CP437 encoding and garble the art. The client now detects incomplete trailing UTF-8 sequences and carries them over to the next read.

VMud 2.1.22

  • Fixed command chaining separator. Switched from ; to * to match VoR's alias syntax and stop blocking the ; grouptell shortcut. The splitter uses smart detection — kill rat*flee and kill 1.*bash 1. chain correctly, but
    chat corrections like hello* oops and emotes like Oh *hello* how are you doing are left alone. Chat commands (say, tell, emote, gtell, etc.) are never split.

VMud 2.1.23

  • Added startup update checker. VMud now checks GitHub Releases on launch for a newer version. If one is found, a yellow notification appears in the terminal with the new version number and a download link. Runs in a
    background thread so it never blocks the client.

Vmud v2.1.19

15 Mar 21:06
f291ce0

Choose a tag to compare

v2.1.17 — Auto-Mapper + User Data Protection

  • Screen-scraping auto-mapper — New mapper for MUDs without GMCP (like Fate). Parses room names and exits from terminal output, builds a room graph, and displays it in the existing map panel
  • User data moved to %LOCALAPPDATA%\VMud — Profiles, settings, maps, triggers, scripts now survive client updates/reinstalls. Auto-migrates from old {app}\user_data location on first run
  • Files updated: 5 modules migrated to new core/paths.py centralized path system (profile_manager, settings_manager, lua_script_loader, storage, automapper)
  • Installer updated — No longer creates/deletes user_data dirs inside install folder

v2.1.18 — Auto-Mapper Fixes + Features

  • v2.1.18a — Rewrote mapper with permanent world coordinates. First room = (0,0,0), movement assigns coords once. Fixed map breaking after ~4 rooms due to BFS regeneration
  • v2.1.18b — Save button on connect dialog to save profiles. Manage Profiles dialog to view/delete saved connection profiles
  • v2.1.18c — Regex-based room detection using DikuMud/EmlenMUD format: Room Name [Sector] + [Exits: dir dir dir]. Ghost rooms pre-created at exit coordinates. Sector parsing from bracket text
  • v2.1.18d — Fixed LOOK creating duplicate rooms. Looking now updates current room in-place instead of creating a new one
  • v2.1.18e — BFS viewport — Only shows rooms reachable from current room on same z-level (fixed disconnected clusters showing). Right-click sector editing on map tiles. Automapper state persists across restarts
  • v2.1.18f — Sector lock — Manually-set sectors no longer overwritten when walking over rooms. Shift+click multi-select for mass sector changes on map
  • v2.1.18g — Major sector detection improvements:
    • Smart sector guessing from room names — Keywords like forest, field, trail, gate, cave, hill, mountain, etc. map to appropriate tile types
    • Vnum stripping — [#12345] tags at end of room lines properly stripped
    • Slash-split bracket parsing — [Morning/Clear] checked per-part so [Indoors] always works
    • Position-aware name parsing — "A Dusty Trail Through an Old Forest" correctly identifies trail as primary terrain (what you're on) vs forest as scenery (what's nearby)
    • Directional prefix stripping — "East of Jangai Pass", "West of the Pass" properly handled
    • Positional prefix stripping — "Next to an Old Trail", "Along the River" properly handled
    • Description-based sector fallback — Room description text scanned for terrain keywords when name is ambiguous
    • Scoring-based sector selection — Multiple keyword matches weighted and scored instead of first-match-wins
    • Plural keyword support — "gates", "forests", "roads", etc. all match correctly
    • Default sector changed to field (outdoor) instead of inside
    • Fixed login position — Mapper restores saved room position; also matches by room name as fallback
    • Debug log — %LOCALAPPDATA%\VMud\automapper_debug.log for troubleshooting room detection
    • Clear Map Data menu option under View
  • Splitter position memory — All splitter positions (split-screen ratio, terminal/panel width, data/map height) saved and restored across sessions

v2.1.19 — zMUD Trigger Import

  • Scripts > Import zMUD Triggers — Import triggers and aliases from zMUD/CMUD exported .txt files
  • Converts zMUD wildcards (%1-%9, %d, %w, %*) to regex capture groups
  • Handles #TRIGGER, #ACTION, #ALIAS commands
  • Preserves %1-%9 substitution in responses (compatible with VMud)
  • Supports semicolon-separated multi-commands, #GAG flag detection
  • Imported items grouped under "zMUD Import" in trigger/alias editors

Vmud v2.1.14

12 Mar 05:03
f291ce0

Choose a tag to compare

Changes since VMud 2.1.6:

2.1.7 — Clickable URLs

  • URLs highlighted blue + underlined in terminal output
  • Pointing hand cursor on hover
  • Single-click opens in default browser

2.1.8 — Timestamp Toggle

  • Ctrl+T or View > Timestamps to toggle
  • Prompt-only timestamps (lines with hp/mv)

2.1.9 — Command Separator

  • Semicolons split commands: kill rat;flee;look sends three commands
  • Each part runs through full alias pipeline

2.1.10 — Numpad Fix

  • Numpad movement works even with text in the input bar
  • Regular number keys still type normally

2.1.11 — Interruptible Reconnect

  • Press Enter during reconnect countdown to skip timer and reconnect immediately

2.1.12–2.1.13 — Timestamp Refinement

  • Narrowed from every-line to prompt-only stamping

2.1.14 — Timestamp with Date

  • Format now includes date: [Mar 11 26 03:05:42]

Vmud 2.1.6

05 Mar 05:54
f291ce0

Choose a tag to compare

There was a bug that LUA was noting be started by the program
Also added a test button to allow for testing of current and the run button will reload all enable scripts just in case something crazy starts going off with one of the scripts.

Vmud 2.1.2

05 Mar 05:11
f291ce0

Choose a tag to compare

This now has some minor memory leaks fixed that caused unwanted lag after long runtimes.
Small QOL fixes like the recall feature of zmud where you can type a few letters from a pervious command and recall it using the up arrow.

Big addition is LUA scripting that should support Mudlet LUA scripting. This is not 100% tested as I am not a Mudlet user, but I am hoping that it does work.

Screenshot 2026-03-04 230928 Screenshot 2026-03-04 231022 Screenshot 2026-03-04 231044

Vmud Mud Client

27 Feb 12:07
f291ce0

Choose a tag to compare

This has an update that fixes the EmlenMud flottop map to work correctly with the Client. This works just like if you were using Zmud.

If you have 1.5.1 installed, this will overwrite the current file. If this is your first instillation, pick the location you want to have your files installed.

Vmud Mud Client

27 Feb 11:13
f291ce0

Choose a tag to compare

VMud build 1.5.1 - Feature Breakdown

Core Terminal

  • QPainter character grid rendering - no QTextEdit, pure pixel-perfect character drawing
  • Full 16-color ANSI - configurable palette (8 normal + 8 bright), CSI sequences for colors, cursor movement, erase
  • CP437 font support - bundled "Px437 IBM Model3x Alt4" with Consolas fallback
  • UTF-8 / CHARSET negotiation - server sends block characters (█▄▀), client decodes properly
  • Mouse text selection with auto-copy to clipboard
  • Split screen (Ctrl+Z) - ZMud-style frozen scrollback on top, live terminal on bottom. Scroll-up auto-splits, Escape or scroll-to-bottom closes it
  • Command echo in yellow (ZMud style), suppressed during password prompts

Protocol Support (what makes it work with ANY MUD)

  • Plain Telnet - connects to any MUD on any host:port. Terminal, input, triggers, aliases all work without GMCP/MSDP
  • GMCP (Generic MUD Communication Protocol) - structured data for vitals, stats, room info, map, group, equipment, affects
  • MSDP (MUD Server Data Protocol) - alternative structured data (health, mana, movement)
  • Both can be active simultaneously - the client checks gmcp_ok || msdp_ok
  • NAWS - window size negotiation
  • TTYPE - terminal type identification
  • CHARSET - UTF-8 negotiation

Any MUD behavior: Connect, type commands, see colored output, use triggers/aliases, command history. The right panel stays empty if the server doesn't send GMCP/MSDP - everything still works.

Right Panel (GMCP/MSDP powered)

  • Vitals - HP/Mana/Move/XP bars, color-coded (green→yellow→red), name/level/remorts header
  • Stats - STR/CON/DEX/INT/WIS in a horizontal row, color-coded
  • Group - party members with their own HP/Mana/Move bars
  • Equipment - worn items by slot with condition percentage, color-coded wear
  • Buffs - active affects with duration, color-coded by time remaining
  • Map - overhead tile map with sector colors, mob markers, exit connections, player position, mouse wheel zoom
  • Toggleable with F12, font size adjustable with Ctrl+=/Ctrl+-

Scripting System

  • Triggers - fire on incoming text. Substring or regex patterns, ANSI-stripped matching, capture groups (%0, %1...), response commands (semicolon-delimited), gag lines, highlight with FG/BG colors, one-shot mode
  • Aliases - fire on outgoing commands. Substring or regex, %1/%2/%* argument substitution, multi-command expansion, recursion protection (max 10 levels)
  • GUI editors with group tree, inline pattern tester (live match preview with capture groups), and built-in help panels (Quick Start / Patterns / Examples / Tips tabs)
  • Per-profile JSON storage in user_data/scripts/{profile}.json

Connection Management

  • Profile system - save host/port/history per server
  • Quick-connect button for VoR
  • Auto-reconnect - 10-second countdown on disconnect (skipped if you manually disconnected)
  • Command history - 200 commands per profile, persisted across sessions, up/down arrow navigation
  • Empty Enter repeats last command (ZMud behavior - type 'e', then keep hitting Enter to walk east)