
A customizable simple modpack updater, perfect for private packs
Una's Simple Updater
unsup is a somewhat minimal implementation of a generic working directory
syncer in Java. It supports running as a Java agent, to piggy-back off of the
launch of another program.
It is particularly good at syncing small private modpacks or one-offs in small groups, where a full public distribution (e.g. on Modrinth!) is overkill or undesirable. It is capable of downloading mods from their original sources, wherever that may be... as long as it speaks HTTP(S).
An unsup.ini
must be placed in the working directory for unsup to know what to do, or a -Dunsup.bootstrapUrl= JVM argument specifying where to find such a file.
The updater works hard to ensure the working directory is never left in an
inconsistent state. Short of a sudden power loss in the middle of applying
changes (an incredibly short time window), an unsup update cannot result in
an inconsistent or corrupted working directory.
It does hash-based consistency validation (with your choice of function, SHA-256 recommended) on all downloads and on files before overwriting
them, warning the user if they've changed something that has been updated. It
additionally supports signing manifests using OpenBSD Signify for additional
security.
unsup's unique simplified design means it is compatible with all launchers,
from the vanilla launcher to MultiMC. Just add -javaagent:unsup.jar to the
JVM arguments, and place unsup.jar and unsup.ini in the .minecraft
directory.
In Prism Launcher, you can utilize unsup as a "component" by importing thecom.unascribed.unsup.json from the latest release on Forgejo. (I can't upload JSON files to Modrinth). This will allow Prism
Launcher to download and manage unsup. (MultiMC does not support Java agent
components, despite requests.)
It also has a built-in concept of environments and flavors, allowing it to
be used to manage server installs rather than just clients, and allowing users
to pick between multiple mutually incompatible mod sets with a feature-packed interface unlike any other updater tool.
unsup is also capable of updating MultiMC's "components", including
unsup itself if it is added as one. This means you can update mod loaders or
Minecraft itself.
You can either point unsup at a Packwiz pack.toml (recommended),
or write a native unsup manifest by hand. See the wiki for info on the
native manifest format. The Creator GUI is on hold, as Packwiz has become a
de-facto standard for Minecraft modpacks.
unsup has been used for modpacks on versions from b1.7.3 to 1.21.5, both client and server,
and is known to work with Forge (both legacy and modern), Fabric, Quilt, and NeoForge. It
has successfully powered many modpacks, from small
to large. Native manifest and Packwiz manifest
support are both quite stable, and have been used extensively.
Signing support is still somewhat experimental, and has not been deployed by anyone at
large scale. That someone could be you — please let me know if it works well!
unsup has a minimal and elegant GUI that works everywhere (yes, including
macOS) and can have all of its colors customized to make it fit in with your
branding. It ships with a dark theme with minty accents. Check out the gallery tab!
unsup is released under the LGPLv3.