marvin1099/Prism-MC-Updater
A simple Python script for automatically updating Minecraft profiles in MultiMC/Prism Launcher. This script ensures your instance always runs the latest release or snapshot version of Minecraft.
Prism-MC-Updater
Description
A powerful yet simple Minecraft version auto-updater for PrismLauncher and MultiMC instances.
It ensures your selected instance always launches the latest release or snapshot version of Minecraft — without needing to manually adjust the configuration every time Mojang pushes an update.
Features
- Supports both release and snapshot Minecraft versions
- Fully compatible with PrismLauncher wrapper commands
- Can still be used as a pre-launch command (works in MultiMC, but may not be effective in newer PrismLauncher versions due to config overwrite behavior)
- Detects whether an update is needed before patching
- Can auto-relaunch the launcher with updated version settings if needed
Installation
-
Download the latest script from:
-
Make the script executable (Linux/macOS):
chmod +x mc-update.py
Requirements
- Python 3.x installed
- MultiMC or PrismLauncher installed
Usage
A) PrismLauncher Wrapper Mode (Recommended for Prism)
- Open PrismLauncher.
- Right-click your instance → Folder
- Place the script inside the opened instance directory
- Right-click your instance → Edit → Settings tab.
- Under Custom Commands, paste the following into the Wrapper Command field:
Basic usage (default: latest release)
-
Linux/macOS:
python3 "$INST_DIR/mc-update.py" -
Windows:
python "%INST_DIR%\\mc-update.py"
Most of these commands are defined for Linux/macOS
If you are on Windows you will need to change them to fit the format above.
With snapshot version:
python3 "$INST_DIR/mc-update.py" --snapshotWith custom Prism path and subprocess logging:
python3 "$INST_DIR/mc-update.py" --snapshot --prism_path "/usr/bin/prismlauncher" --subprocess_logWith optirun or other GPU wrappers:
python3 "$INST_DIR/mc-update.py" --end_up_wrapper optirunAll wrapper arguments go before
--end_up_wrapper. Anything after that is treated as the command to run Minecraft (usually inserted automatically by PrismLauncher).
B) MultiMC Pre-Launch Command (Still works)
For legacy behavior (or when using MultiMC instead of PrismLauncher):
- Open MultiMC.
- Right-click your instance → Folder
- Place the script inside the opened instance directory
- Go to your instance's Settings → Custom Commands tab.
- Add the following as the pre-launch command:
Release version (default):
-
Linux/macOS:
python3 "$INST_DIR/mc-update.py" -
Windows:
python "%INST_DIR%\\mc-update.py"
Snapshot version:
python3 "$INST_DIR/mc-update.py" --snapshotOptions
| Option | Description |
|---|---|
--release |
Use the latest release version (default) |
--snapshot |
Use the latest snapshot version |
--subprocess_log |
Enables logging for subprocess patching. Log will be created in instance dir |
--prism_path PATH |
Path to the PrismLauncher or MultiMC binary |
--instance_dir PATH |
Manually set the instance folder (default: current working dir) |
--end_up_wrapper |
All arguments after this will be passed to the actual game launch command |
--help |
Displays the help text |
Behavior
- If the instance already has the latest version: it starts normally.
- If an update is needed:
- The wrapper exits, and a delayed subprocess patches the config and relaunches the instance using PrismLauncher.
- If run as a pre-launch command in MultiMC: the config is patched before the launcher starts the game.
FAQ
What happens if I updated the game manually?
Well it will say it's up to date and close itself.
Afterwards the game should start as usual.
Can I compile the script with PyInstaller?
I did not test it.
You can try it, it may work but no promises.
What is the difference between wrapper and pre-command?
Both the wrapper and pre-command options allow you to run custom scripts before launching Minecraft,
but they serve slightly different purposes and are handled differently by PrismLauncher and MultiMC.
Pre-Command (Simple)
- Runs before anything else.
- Executes your script before the launcher touches any game files or starts Minecraft.
- Ideal for simple one-shot tasks like updating files or running quick checks.
- Works well in MultiMC.
- In PrismLauncher, this may not work as expected, because it applies config changes after the pre-command runs, potentially overwriting them.
Wrapper (Advanced – Recommended for PrismLauncher)
- Replaces the actual Minecraft launch command.
- PrismLauncher starts your script instead of the game.
- This script receives the full game command as arguments, allowing it to:
- Check if an update is needed
- Close cleanly if not (game would run after that)
- Or relaunch PrismLauncher after patching the version
- More flexible and reliable for complex tasks
- Required if you want proper version patching in PrismLauncher, since config changes need to happen after Prism’s own logic completes.