https://github.com/gesslar/mupdate
Mudlet Package Self-Updater
https://github.com/gesslar/mupdate
mudlet mudlet-lua
Last synced: 23 days ago
JSON representation
Mudlet Package Self-Updater
- Host: GitHub
- URL: https://github.com/gesslar/mupdate
- Owner: gesslar
- License: unlicense
- Created: 2024-06-22T03:56:44.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-11-21T00:20:15.000Z (4 months ago)
- Last Synced: 2026-02-13T20:41:33.247Z (24 days ago)
- Topics: mudlet, mudlet-lua
- Language: Lua
- Homepage:
- Size: 2.28 MB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Mupdate Auto-Updater Module
[](https://app.codacy.com/gh/gesslar/mupdate/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)
## Description
This module provides an auto-updater for packages within the MUD client,
[Mudlet](https://github.com/Mudlet/Mudlet/). It automates the process of
checking for new versions of a package, downloading updates, and installing
them.
## Acknowledgements
This module was essentially ripped off from the [MUDKIP_Mud2](https://github.com/11BelowStudio/MUDKIP_Mud2)
package from [@11BelowStudio](https://github.com/11BelowStudio/), and
refactored.
### Original acknowledgements on the MUDKIP_Mud2 package
The core functionality of this auto-updater was adapted from the DSL PNP 4.0
Main Script by Zachary Hiland, originally shared on the
[Mudlet forums](https://forums.mudlet.org/viewtopic.php?p=20504).
Special thanks to [@demonnic](https://github.com/demonnic/) for providing
additional Lua code and guidance on package installation.

## Instructions for Use
### 1. Placement
- **Using [Muddler](https://github.com/demonnic/muddler):** Put the
`Mupdate.lua` file in your project's resources directory.
- **Developing Directly in Mudlet:** Add the `Mupdate.lua` file to your Mudlet
package's Script Group within Mudlet, and ensure that it is higher than the
script that will be calling it.
### 2. Integration
In your package script, require the Mupdate module and instantiate it with the
necessary options.
### Variables
- `downloadPath`: The URL path where the package files are hosted.
- `packageName`: The name of your package.
- `remoteVersionFile`: The file name of the version check file on the server.
File should be named `PACKAGE_NAME_version.txt`
- `paramKey`: (Optional) The key of the URL parameter to check for the file
name.
- `paramRegex`: (Optional) The regex pattern to extract the file name from the
URL parameter value.
- `debugMode`: (Optional) Boolean flag to enable or disable debug mode for
detailed logging. Defaults to `false`.
#### Example Implementation
An example implementation is provided in this repository called `Updater.lua`.
### Version Comparison
- Mupdate calls `getPackageInfo(packageName)` to get your package's version
number. Which must be in the SemVer format. So, this must be set on your
package.
- Mupdate downloads the version file from the same location that hosts your
`.mpackage` file, and its contents must simply contain the updated version in
the SemVer format.
### Semantic Versioning
The Mupdate system requires the use of semantic versioning (SemVer) for package
version numbers. Semantic versioning follows the format `MAJOR.MINOR.PATCH`,
where:
- `MAJOR` version increments indicate incompatible API changes,
- `MINOR` version increments add functionality in a backward-compatible manner, and
- `PATCH` version increments include backward-compatible bug fixes.
#### Example
- `1.0.0` -> Initial release
- `1.1.0` -> New feature added
- `1.1.1` -> Bug fix
- `2.0.0` -> Breaking change introduced