No description
Find a file
Vadim Peretokin f8eb6b5597
fix: saved variables holding functions come back empty again instead of half-filled (#9860)
#### Brief overview of PR changes/additions

- A saved variable with a function, userdata or coroutine anywhere
inside it now exports only the members registered in `savedVars`, which
for a table ticked while empty is an empty group. Tables holding nothing
but data keep the full save added in #9762.
- The save-time walk records which saved globals hold such a value;
`XMLexport` turns the ride-along off for those variables only. Silent,
and it costs nothing outside a save.
- New `SavedVariableFenceTest` pins all 11 measured shapes, on disk and
after a reload.

#### Motivation for adding to Mudlet

A half-restored table defeats the `if next(t) == nil then rebuild() end`
guard packages carry, which kills cron-daemon's scheduler permanently on
its first minute wake after a restart.

#### Other info (issues closed, discussion etc)

Fixes #9857

**Test case:** install cron-daemon, tick `cron` in the Variables view,
add a job with a `command` function, restart and wait for the minute
rollover - the daemon keeps running (measured 2/2 canary fires, against
0/2 before).

Assisted-by: Claude:claude-opus-5
Signed-off-by: Vadim Peretokin <vadim.peretokin@mudlet.org>
2026-08-13 15:49:17 +02:00
.agents/skills Infra: Add CMake presets for every platform, and one home for AI assistant skills (#9742) 2026-08-12 21:28:13 +02:00
.claude Infra: Add CMake presets for every platform, and one home for AI assistant skills (#9742) 2026-08-12 21:28:13 +02:00
.devcontainer Infrastructure: update edbee-lib submodule & use system oniguruma if present (#9156) 2026-04-06 16:28:46 +01:00
.github fix: undoing the game's line wrapping no longer merges list entries (#9836) 2026-08-13 11:39:13 +02:00
.signpath Infrastructure: disable signing MudletCrashReporter.exe temporarily (#8880) 2026-02-04 18:29:23 +01:00
.vscode add: 3rd party definition files for Lua (#8966) 2026-03-25 16:38:21 +11:00
3rdparty fix: notepad, IRC client and toolbars outliving their profile (#9706) 2026-08-11 19:13:19 +02:00
CI fix: preloading a sound no longer plays it, and IRC settings stop losing your password (#9817) 2026-08-12 20:31:43 +02:00
cmake infrastructure: harden the Widgets audit script and refresh its baseline (#9516) 2026-07-26 18:05:59 +02:00
docker improve: remove qt5 checks (#7736) 2025-02-24 06:59:51 +01:00
docs Infra: Add CMake presets for every platform, and one home for AI assistant skills (#9742) 2026-08-12 21:28:13 +02:00
src fix: saved variables holding functions come back empty again instead of half-filled (#9860) 2026-08-13 15:49:17 +02:00
templates
test fix: saved variables holding functions come back empty again instead of half-filled (#9860) 2026-08-13 15:49:17 +02:00
translations Infrastructure: Update text for translation in Crowdin (#9718) 2026-08-07 02:38:22 +00:00
.clang-format infrastructure: apply clang-format style to tests too (#9201) 2026-04-20 11:56:29 +02:00
.clang-tidy Infrastructure: update .clang-tidy with version 16 checks (#7213) 2024-05-26 22:57:20 +00:00
.crowdin.yml Infrastructure: give a danger-friendly PR title to Crowdin updates (#5605) 2021-11-07 22:17:49 +01:00
.cursorrules Infrastructure: update info for LLM agents (#8245) 2025-09-23 07:06:06 +02:00
.DirIcon Fix: Add StartupWMClass and .DirIcon for AppImage icon recognition (#8480) 2025-11-13 23:16:22 +01:00
.git-blame-ignore-revs fix: Clang-format hash in .git-blame-ignore-revs (#8882) 2026-02-26 16:31:06 +01:00
.gitattributes improve: ship every default package as an mpackage (#9626) 2026-08-04 10:18:48 +02:00
.gitignore Infrastucture: ignore multiple build targets (#9562) 2026-08-02 22:23:12 +02:00
.gitmodules Fix: updater to work with github releases (#9125) 2026-04-08 20:19:41 +02:00
.imgbotconfig Infrastructure: Add .imgbotconfig file to set a PR Title which conforms with our danger checks (#5714) 2021-11-30 15:01:03 -05:00
AGENTS.md Infrastructure: update info for LLM agents (#8245) 2025-09-23 07:06:06 +02:00
asan-suppressions.txt infrastructure: stop suppressing QString leaks in LSan enforcement (#9602) 2026-08-03 11:39:32 +02:00
CLAUDE.md Infrastructure: update info for LLM agents (#8245) 2025-09-23 07:06:06 +02:00
CMakeLists.txt Infrastructure: add Mudlet lua files to those shown by Qt Creator (#9409) 2026-07-12 20:08:02 +00:00
CMakePresets.json Infra: Add CMake presets for every platform, and one home for AI assistant skills (#9742) 2026-08-12 21:28:13 +02:00
COMMITMENT
COMPILE
COPYING
CPPLINT.cfg
dangerfile.js Infrastructure: trial new guideline - no TODOs as they dont actually add value (#6446) 2022-11-27 22:41:08 +01:00
icon_1024x1204.png [ImgBot] Optimize images 2020-10-23 22:28:38 +01:00
icon_dev_1024x1204.png [ImgBot] Optimize images 2020-10-23 22:28:38 +01:00
icon_ptb_1024x1204.png [ImgBot] Optimize images 2020-10-23 22:28:38 +01:00
mudlet.desktop add: telnets:// link support for secure TLS connections (#9153) 2026-04-12 17:37:37 +02:00
mudlet.png
mudlet.svg
README.md Infrastructure: Add SignPath Foundation attribution to README (#8895) 2026-02-06 08:35:13 +01:00
SECURITY.md Infrastructure: Bump development version to 4.20.0 (#8919) 2026-02-07 19:15:47 +01:00
UI-design-philosophy.md Add UI-design-philosophy.md (#8002) 2025-08-12 07:02:24 +02:00


Mudlet
Mudlet

Play immersive, multiplayer, pure-text RPGs on Mudlet.

CodeFactor

AboutKey FeaturesDownloadHow To UseRoadmapCreditsLicense

Interfaces players have created with Mudlet

About

Mudlet is a quality MUD client, designed to take mudding to a new level.

Its a modern breed of a client on the gaming scene with an intuitive user interface, a specially designed scripting framework, and a very fast text display. That, along with cross-platform capability and an open-source development model result in a very likable game client.

Key Features

  • Simple to use
  • Very, very fast
  • Active development
  • Big, thriving community
  • Powerful trigger engine
  • Rich Lua-based coding functionality (API)
  • Excellent script editor
  • 2D and 3D mapper with autowalk
  • Powerful and simple to use GMCP
  • Discord integration
  • Completely themable
  • Open-source and Free
  • Cross platform: runs on Windows, macOS and Linux
  • Full compatibility: run same scripts on any of the above
Explain?

Easy to use client

Were big on usability, and as such, creating an easy to use client and interface is one of the defining goals of the project. This applies to both the power users and usual gamers everyone will feel at home with Mudlet, without having to waste too much time figuring out how to do something.

Designed for speed

Mudlet is designed and built to be very fast and efficient right from the start. Its scripting engine is designed to scale to large systems without bogging down and the text display is designed to handle thousands of lines in under a second. All in all, we are very serious about Mudlet being quick and take all measures to make it so.

Powerful Scripting

Mudlet features a scripting framework using Lua a small, fast and efficient scripting language. This allows Mudlet to leverage the existing community and large ecosystem of existing packages for Lua without the many drawbacks of creating a Mudlet specific scripting language. Best of all, the Lua API is seamlessly integrated in Mudlet and shared by all aliases, triggers, scripts, keybindings, buttons and other Mudlet components.

Cross-Platform love

We believe in making Mudlet available to people on all major platforms, and we work on keeping cross-platform compatibility right from start. Mudlet is available on Linux (both 32bit and 64bit), Windows, and macOS; you may be able to run it on additional platforms as well.

Download

Download for free from mudlet.org.

How To Use

  1. Download and double-click on Mudlet to run
  2. Pick an existing game and hit Connect
  3. ... or play one of your choosing:
    1. Click New
    2. Enter Server address and Port of your game (found on the game's website, e.g. mygame.com and 2003)
    3. Pick a Profile name
    4. Hit Connect

Compiling

If you'd like to compile Mudlet yourself instead of downloading, you can find instructions to do so here.

Vision

Mudlet's vision is to build the best text gaming experience possible to nurture & grow this niche scene.

Roadmap

See the project's roadmap to get an idea of where it's headed

Contribute

Join in, contributions are welcome! Find out how you can start Contributing.

Credits

Author: Mudlet Makers.

This software wouldnt've been possible without these open source packages:

Credit to Markdownify for the README inspiration.

Windows code signing provided by SignPath.io, certificate by SignPath Foundation.

License

GPL2+


website  ·  forums  ·  manual