Skip to content

Submitting Changes

Branch strategy

BranchPurpose
devActive development — push your changes here
mainStable — 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/ or plugins/*/players/ — runtime data, not source
  • plugins/Denizen/secrets.secret — contains API keys
  • plugins/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 dev

Before you push

  • Reload the relevant plugin and test in-game: /ex reload, /mm reload, etc.
  • Check that gameplay scripts respect the gameplay_disabled flag.
  • If you added a new model, confirm it loads without errors in /meg reload output.
  • 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-prod

If the change only affects scripts (no JAR changes), a reload is enough without a full restart.

TerminaCraft — a Majora's Mask recreation in Minecraft