---
title: Mudlet
kind: note
description: mud/mush client
words: 238
readingMinutes: 1
created: '2024-08-17T18:22:24+02:00'
updated: '2026-06-28T19:57:47+02:00'
website: https://www.mudlet.org/
---
## Link

<https://www.mudlet.org/>

- Open-source [MUD](/notes/mud) client for [Windows](/notes/microsoft-windows), [macOS](/notes/macos) and [Linux](/notes/linux).
- Uses [Lua](/notes/lua) as a scripting language.
## Resources
- [Chocolatey](/notes/chocolatey) package for [Windows](/notes/microsoft-windows):
	```powershell
	choco install mudlet
	```
### Documentation
- [Manual](https://wiki.mudlet.org/w/Manual:Contents) - for players
	- [Introduction](https://wiki.mudlet.org/w/Manual:Introduction)
	- [User Interface](https://wiki.mudlet.org/w/Manual:Mudlet_User_Interface)
#### Scripting
- [Geyser Layout Manager](https://wiki.mudlet.org/w/Manual:Geyser) - an object oriented framework for creating, updating and organizing GUI elements within Mudlet
	- [Use Mudlet's UserWindows within Geyser](https://wiki.mudlet.org/w/Manual:Geyser#Geyser.UserWindow)
- [Technical Manual](https://wiki.mudlet.org/w/Manual:Technical_Manual/en)
- [Events](https://wiki.mudlet.org/w/Manual:Event_Engine)
- [Best Practices](https://wiki.mudlet.org/w/Manual:Best_Practices)
- [demonnic/muddler](https://github.com/demonnic/muddler?tab=readme-ov-file) - a build tool for Mudlet packages
	- [Edru2/DeMuddler](https://github.com/Edru2/DeMuddler) - deconstructs mpackage files into Muddler projects
	- [CI](https://github.com/demonnic/muddler/wiki/CI)
- [Mudlet Package Repository](https://mudlet.github.io/mudlet-package-repository/)
- [Vyzor Reference](https://etomyutikos.github.io/Vyzor/index.html) - an older UI framework that has largely been replaced by Geyser
##### GUI examples
- [Midnight Sun](https://midnightsun2.org/gateways/gui.html?show=overview)
- [Geyser UI Template](https://forums.mudlet.org/viewtopic.php?f=6&t=4098)
## FAQ
### Muddler project on [Windows](/notes/microsoft-windows)
1. Install [Podman Desktop](/notes/podman#7cfae6)
2. Open [PowerShell](/notes/microsoft-powershell) and navigate to the *parent* directory of the new project's directory, e.g.
	```powershell
	mkdir $HOME/src
	cd $HOME/src
	```
3. Create a new Muddler project in the "TemplateProject" folder:
	```powershell
	podman run --pull always --rm -it -v ${PWD}:/src -w /src demonnic/muddler --default
	```
4. Rename the "TemplateProject" folder to something more appropriate, e.g.
	```powershell
	ren TemplateProject MyFirstMuddle
	```
5. In Mudlet, create/open a profile that you use for development only, and install the Muddler package in order to facilitate automatic reloading of the package you are developing:
	```text
	lua installPackage("https://github.com/demonnic/muddler/releases/download/1.1.0/Muddler.mpackage")
	```
6. Create a script in the Mudlet profile you use for development that uses Muddler to automatically reload the (development) package from its directory, e.g.
	```lua
	local function killMDK()
	  for pkgName, _ in pairs(package.loaded) do
	    if pkgName:find("MDK") then
	      debugc("Uncaching lua package " .. pkgName)
	      package.loaded[pkgName] = nil
	    end
	  end
	end
	local function create_helper()
	  if MDKhelper then MDKhelper:stop() end
	  MDKhelper = Muddler:new({
	    path = "C:/Users/USERNAME/src/MyFirstMuddle",
	    postremove = killMDK,
	  })
	end
	
	if not MDKhelper then
	  registerAnonymousEventHandler("sysLoadEvent", create_helper)
	end
	```
	- Make sure to use forward slashes (`/`) instead of backslashes (`\`) in the path
7. Watch for code changes and build continously:
	```powershell
	cd $HOME/src/MyFirstMuddle
	podman run --pull always --rm -it -v ${PWD}:/MyFirstMuddle -w /MyFirstMuddle demonnic/muddler -w
	```
	- The package should now get installed in the Mudlet profile.
8. Edit the code using your favorite code editor.
