Submitting Changes
Branch strategy
| Branch | Purpose |
|---|---|
dev | Active development — push your changes here |
main | Stable — merged from dev when ready to deploy |
Push to dev. Do not push directly to main.
What to commit
Everything under server/plugins/ that is tracked in git is fair game. In practice this means:
- Denizen scripts (
plugins/Denizen/scripts/) - MythicMobs definitions (
plugins/MythicMobs/Mobs/,Skills/,DropTables/) - ModelEngine blueprints (
plugins/ModelEngine/blueprints/*.bbmodel) - WorldGuard region data (
plugins/WorldGuard/worlds/*/regions.yml) - Multiverse portal configs (
plugins/Multiverse-Portals/config.yml) - Axiom blueprints (
plugins/AxiomPaper/blueprints/) - FAWE schematics (
plugins/FastAsyncWorldEdit/schematics/) - Plugin configs you intentionally changed
Do not commit:
plugins/*/data/orplugins/*/players/— runtime data, not sourceplugins/Denizen/secrets.secret— contains API keysplugins/ModelEngine/resource pack.zip— generated artifact- World folders (
server/Termina*/,server/Hyrule/, etc.) — managed separately via snapshot
Typical workflow
bash
# make your changes in-game, then:
git status # see what changed
git add plugins/Denizen/scripts/npc/my_npc.dsc
git commit -m "add postman NPC dialogue for second day"
git push origin devBefore you push
- Reload the relevant plugin and test in-game:
/ex reload,/mm reload, etc. - Check that gameplay scripts respect the
gameplay_disabledflag. - If you added a new model, confirm it loads without errors in
/meg reloadoutput. - If you changed a region, verify region flags are correct with
/rg info.
After merging to main (deploy)
Deployment to the live server is handled by LupusMalus. The process:
bash
git pull origin main
cp environments/live/server.properties server/server.properties
cp environments/live/ops.json server/ops.json
cp environments/live/whitelist.json server/whitelist.json
sudo systemctl restart minecraft-prodIf the change only affects scripts (no JAR changes), a reload is enough without a full restart.
