This repo is now Dart-native. The only root script is ./start.sh, which just runs the Dart CLI.
./start.shEverything (wizard + commands) is implemented in MultiplexorApp.
plugin->consumers/plugin-consumersforge->consumers/forge-mod-consumersfabric->consumers/fabric-mod-consumersneoforge->consumers/neoforge-mod-consumers
Isolation rules:
- No shared config files between instances except plugin
ops.json. - Mod consumers are fully isolated from plugin consumers.
shared-plugin-datais used only byplugin(for Iris packs).- Plugin instances share operators via
shared-plugin-data/ops/ops.json. - No archive workflow.
./start.sh consumer show
./start.sh consumer use plugin
./start.shPlugin jars source:
./start.sh --consumer plugin plugins show-sourceMod jars sources:
./start.sh --consumer forge mods show-source
./start.sh --consumer fabric mods show-source
./start.sh --consumer neoforge mods show-sourceserver create supports cached or custom jars:
./start.sh server create <name> --jar <path-to-server-jar> [--type label]
./start.sh server create <name> --type <paper|purpur|folia|canvas|spigot|forge|fabric|neoforge> [--mc <version>]For --type, the jar is resolved from the consumer build cache under consumers/<consumer>/builds/<type>.
tmux is required for background runtime + live console attach.
./start.sh runtime start [instance] [--no-console]
./start.sh runtime start [--instance <name>] [--no-console]
./start.sh runtime console [instance|--instance <name>]
./start.sh runtime consoles
./start.sh runtime consoles-lateral
./start.sh runtime stop [instance]
./start.sh runtime status [instance]
./start.sh runtime listNotes:
runtime startauto-opens console by default.- Use
--no-consolefor background/bulk starts. runtime consoleauto-targets the server when exactly one is running.
Wizard IA:
- Main sections:
Run,Instances,Build/JVM,Exit. Run -> Start one stopped instanceauto-opens that console.Run -> Open consoleskips picker when exactly one server is running.Run -> Start all stopped instancesstarts in background and opens console view once at the end.
Instance reset:
./start.sh instance reset <name>- Resets worlds/config/plugins/mods/logs to baseline.
- Keeps launch artifacts so the instance remains launchable.
Runtime JVM settings (wizard-backed):
./start.sh runtime settings show
./start.sh runtime settings presets
./start.sh runtime settings set-heap 6G
./start.sh runtime settings set-preset aikar
./start.sh runtime settings resetPlugin watcher commands:
./start.sh plugins watch-start
./start.sh plugins watch-status
./start.sh plugins watch-stop./start.sh repos sync [all|paper|purpur|folia|canvas]
./start.sh build <paper|purpur|folia|canvas|spigot|forge|fabric|neoforge> [--mc <version>] [--loader <version>] [--installer <version>]
./start.sh build test-latest [--spigot-mc <version>]
./start.sh build list
./start.sh build list-all [type]
./start.sh build latest <type>
./start.sh build versions [type]Notes:
forge/neoforgebuild commands cache installer jars andserver create --type ...auto-installs to args-file launch mode.- If the workspace path contains
[or], mod consumer instances (forge/fabric/neoforge) are automatically stored in~/.multiplexor/instance-store/<workspace-hash>/<consumer>to keep launcher/runtime paths valid.