Operators

Admin & Ops Guide

Running AoW — ranks, spawning champions, tuning, backups.

01  The lay of the land

AoW SMP runs Paper 1.21.8 on Java 21 (Temurin), backed by a 4 vCPU / 16 GB Hostinger VPS with a 8 GB heap tuned via Aikar flags. The stack is 6 consolidated in-house packs plus ~21 third-party. This page is for operators — everything below assumes shell access to the box and op (or LuckPerms-granted) permissions in-game.

Paper 1.21.8
Java 21 (Temurin)
Heap 8 GB + Aikar
Host 4 vCPU / 16 GB
Plugins 6 packs + ~21
Golden rule for the custom plugins: every AoW plugin is paper-api only, vanilla items only, ADD-only, and crossplay-safe. They never replace vanilla behaviour — they only add on top of it. Keep that in mind when tuning: disabling a system never breaks the base game.

02  Becoming an operator

There are two ways to act as staff: server-level op and rank-based permissions via LuckPerms 5.5.57. Op is the blunt instrument; LuckPerms is how you run day-to-day staff.

Granting op from the console

From the server console (no slash prefix needed at the console) or as an existing op in-game:

op Steve
deop Steve
Bedrock names carry a "." prefix. A Bedrock player named Steve joins as .Steve. Always include the dot when targeting Bedrock accounts: op .Steve, lp user .Steve parent add mod, etc.

Op vs LuckPerms — which to use

Use op when…Use LuckPerms when…
You need full unrestricted access right now (yourself / co-owner). You want scoped, revocable staff ranks (mod, helper, builder).
Bootstrapping the server before ranks are set up. Granting a single permission node without full op.

03  Ranks with LuckPerms

LuckPerms drives every rank, prefix and permission on AoW. Manage it in-game with /lp or from the web editor.

Assign a rank

/lp user .Steve parent set mod — replace all rank parents with mod.

Add a secondary group

/lp user Steve parent add builder — stack a group on top.

Grant one node

/lp user Steve permission set essentials.fly true

Create a rank

/lp creategroup helper then /lp group helper permission set ...

Set a prefix

/lp group mod meta setprefix "&c[Mod] "

Web editor

/lp editor — opens a one-time link to a full GUI; apply to save back.

Reload after manual edits: if you edit LuckPerms storage directly, run /lp sync to pull changes into the live server without a restart.

04  Spawning Champions

The Fractured Veil is the centerpiece. As an operator you can hand-place any titled Champion for events, testing, or just to terrorize the regulars. The command:

/champions spawn <tier> <mob> [title] [stars] [subtitle]
Arguments
ArgMeaning
tierOne of the 8 tiers: anomalous, fledgling, veteran, elite, champion, legend, mythic, cataclysm.
mobVanilla mob type, e.g. zombie, skeleton, chicken, creeper, enderman.
titleOptional. A species archetype title; omit to roll one that fits the mob.
starsOptional. Ascension stars 0–5 (each +30% HP/dmg).
subtitleOptional. One of the 12 sub-titles, e.g. blessed, enriched, ascendant.
Examples
# A straightforward Elite chicken (Queen of the Roost / Sir Cluckalot themed)
/champions spawn elite chicken

# Fully rolled — random tier, mob, title, everything
/champions spawn random

# A Legend zombie with 3 Ascension stars
/champions spawn legend zombie 3

# A Blessed Elite skeleton that drops Veilweaver tomes
/champions spawn elite skeleton blessed

# An Enriched Mythic pig — 2x loot, for a loot-drop event
/champions spawn mythic pig enriched
Cataclysm is triggered-only. The Cataclysm tier (28x HP / 8x dmg, 2.5x size) is normally event-triggered, not a natural spawn — be deliberate when spawning one by hand. Natural-spawn size is capped at 1.9; a hand-spawned Cataclysm ignores that cap.
Aquatic & bats are tier-capped in the wild (aquatic at Elite, bats at Veteran). Hand-spawning above the cap works for testing but won't reflect what players see naturally.

05  Tuning the AoW systems

Every in-house plugin ships its own config and a reload command. The pattern is consistent: edit the config, then reload that one plugin — no full restart needed.

The reload pattern
# Generic shape — replace <plugin> with the plugin's command root
/<plugin> reload

# e.g. reload the Champions / Fractured Veil config
/champions reload
Where it livesWhat it holds
plugins/<PluginName>/config.ymlThe main tunables for each in-house plugin.
plugins/Champions/Fractured Veil config — base spawn chance, tier weights, Fracture Level, Blood Moon cadence.
plugins/AuraSkills/RPG skill XP curves and abilities (AuraSkills 2.3.12).
plugins/GriefPrevention/Claim block rates and limits (GriefPrevention 16.18.7).
Champion spawn math, for reference when tuning: base chance 0.05, multiplied by night ×1.8, beyond 500 blocks ×1.5, Fracture Level (1 + lvl×0.15), and Blood Moon ×3. Nudge the base rather than the multipliers if you just want "more / fewer champions overall".
Reload only the plugin you changed. A blanket /reload confirm reloads every plugin and is risky on a 95-plugin stack — prefer the per-plugin reload command.

06  CoreProtect — rollback & lookup

CoreProtect 23.2 logs every block change, container access and kill. Use it to undo griefing and investigate.

Inspector toggle

/co inspect (or /co i) — then punch / right-click blocks to see history.

Lookup a player

/co lookup u:Steve t:3d — what Steve did in the last 3 days.

Rollback grief

/co rollback u:Griefer t:6h r:30 — undo Griefer's last 6h within 30 blocks.

Restore (redo)

/co restore u:Griefer t:6h r:30 — reverse a rollback if you overshot.

Bedrock targets need the dot: /co rollback u:.Griefer t:6h r:30. Always preview with /co lookup before you roll back — radius and time stack and can revert legit builds.

07  WorldEdit & WorldGuard

WorldEdit 7.4.4 for terrain edits, WorldGuard 7.0.17 for protected regions. The WorldEdit selection wand is a blaze rod.

WorldEdit basics
//wand            # gives you the blaze_rod selection tool
# left-click pos1, right-click pos2 to select a region
//set stone       # fill the selection
//replace dirt grass_block
//copy            # then //paste at a new location
//undo
WorldGuard regions
# With a WorldEdit selection made:
/rg define spawn
/rg flag spawn pvp deny
/rg flag spawn mob-spawning deny
/rg addmember spawn .Steve
WorldGuard around spawn pairs well with the champion system: a mob-spawning deny region keeps Champions from ambushing brand-new players at the hub while leaving the wild fully dangerous.

08  Pre-generating chunks (Chunky)

Chunky 1.4.40 pre-generates terrain so players aren't generating lag in real time. Run it off-hours; it auto-throttles but still uses CPU.

/chunky world minecraft:overworld
/chunky radius 5000
/chunky start
# check progress / pause:
/chunky progress
/chunky pause
Pre-gen, then render the map. Run Chunky first, then a squaremap full render (next section) so the web map at map.aowmc.com reflects the freshly generated land.

09  Web map (squaremap)

squaremap 1.3.12 renders the live web map served at map.aowmc.com (behind nginx + Let's Encrypt). It updates incrementally, but you can force a full render after big terrain changes.

# Full render of the overworld
/squaremap fullrender minecraft:overworld

# Cancel a running render if needed
/squaremap cancelrender minecraft:overworld
Full renders are heavy. Kick them off during low-traffic hours — a 5000-block radius render reads a lot of chunks. Incremental updates handle normal day-to-day play on their own.

10  Restart, logs & backups

The server runs as a systemd service named minecraft. Operate it from the VPS shell.

Restart the server
systemctl restart minecraft
# status / stop / start
systemctl status minecraft
systemctl stop minecraft
systemctl start minecraft
Tail the logs
# Live server log via the systemd journal
journalctl -u minecraft -f
# last 200 lines
journalctl -u minecraft -n 200
Backups

Backups live in /opt/backups. Check what's there before relying on a restore:

ls -lh /opt/backups
Stop or save-off before a manual world copy. Copying the world while the server is writing to it can produce a corrupt region file. systemctl stop minecraft, copy, then start again — or flush an in-game save first.

11  Gotchas worth memorizing

A few sharp edges specific to this stack and version. Learn these and you'll save yourself a confused half-hour.

The gamerule is advance_time in 1.21. If you want to freeze or resume the day/night cycle, it's /gamerule advance_time false — not the older doDaylightCycle name.
EssentialsX hijacks /time. To set vanilla time you must namespace it: /minecraft:time set day, /minecraft:time add 1000. Plain /time goes to Essentials and may not do what you expect.
Bedrock "frozen sky" is a known Geyser bug (#2790). Geyser doesn't relay server time to Bedrock, so the Bedrock sky can look stuck. Server time and gameplay — mob hostility, Blood Moons, beds — are all correct; only the Bedrock visual lags. Players can check the true time with the AoWScoreboard or .realtime. This is not something you need to "fix" on the server.
Crossplay names: Bedrock players always carry a . prefix (Geyser-Spigot 2.10.1 + Floodgate 2.2.5). Any admin command that targets a Bedrock player needs the dot — op, LuckPerms, CoreProtect, WorldGuard members, the lot.

12  Operator quick reference

The whole admin toolkit in one place.

TaskCommand
Grant opop .Steve
Set a rank/lp user .Steve parent set mod
LuckPerms web editor/lp editor
Spawn an Elite chicken/champions spawn elite chicken
Spawn a fully random champion/champions spawn random
Reload a plugin's config/<plugin> reload
Rollback grief/co rollback u:.Griefer t:6h r:30
WorldEdit wand//wand (a blaze_rod)
Define a region/rg define spawn
Pre-gen chunks/chunky radius 5000 then /chunky start
Full map render/squaremap fullrender minecraft:overworld
Restart serversystemctl restart minecraft
Tail logsjournalctl -u minecraft -f
Backups location/opt/backups
Set vanilla time/minecraft:time set day
Freeze day/night/gamerule advance_time false