Administration
The admin menu and its filters, the admin screen of one protection, the in-game tier editor, the inactive cleanup with its preview, and every /protections admin subcommand.
What only staff do: find any protection on the network and put it right, edit tiers without touching the
file, and clear out land nobody plays in. Every menu and command on this page needs exyliaprotections.admin,
which operators have by default.
exyliaprotections.admin counts as the owner of every protection in menus and commands, and lets its holder
enter every protection. It does not let them break, place or open anything inside one. That is
exyliaprotections.bypass, and only when the node is set on the player: an operator holding every
permission by default still builds nowhere they are not a member. An admin breaking somebody's core is offered
to pick it up, like its owner. See Permissions.
Admin subcommands
| Command | What it does | Console |
|---|---|---|
/protections admin | Opens the admin menu | No |
/protections admin give <player> <tier> [amount] | Gives an online player cores of a tier, 1 to 64. A core that does not fit is kept for them and handed over when they have room or next join | Yes |
/protections admin cleanup <days> [preview|confirm] [--include-unknown] | Previews, or with confirm runs, the inactive cleanup below | Yes |
/protections admin migrate <INTERNAL|WORLDGUARD> | Switches the backend. See Backends | Yes |
/protections admin import protectionstones [--dry-run] | Imports ProtectionStones regions. See Migration | Yes |
There is no reload subcommand. The tier editor writes config.yml itself and applies it at once; any other
change to config.yml or the messages needs a restart. /exylialib reload recompiles the menu files.
The admin menu
/protections admin lists every protection on the network, sorted by owner and then by name. Left-click one to
open its admin screen; right-click teleports to it.
Five filters narrow the list. Left-click a filter to set it and right-click to clear it; right-click the Protection admin button in the middle to clear them all.
| Filter | How it is set |
|---|---|
| Owner | Typed; any owner whose name contains it |
| Name | Typed; a protection whose name contains it, or whose id starts with it |
| World | Each click moves to the next world a protection is in, then back to any |
| Server | Each click moves to the next server, then back to any |
| State | Any → normal → raidable → abandoned → for sale → for rent → any |
A protection's state is the most urgent thing about it, in that order: raidable, abandoned, for sale, for rent (it, or one of its plots, has a rent offer), normal. Each admin's filters are their own, and kept until they log out.
The row of a protection shows its owner, tier, size, world, server, core location, members and state. The Tier editor and Inactive cleanup buttons open the sections below.
The admin screen of a protection
The top of the screen shows the owner, tier and level, state, size, members, bank, location, server, when its owner or a member last played, and how long ago it was made.
| Button | What it does |
|---|---|
| Open as owner | Its own protection screen. An admin passes every owner and role check there |
| Teleport | To its home, or on top of its core without one, on any server, with the home warmup |
| Logs | Its audit log. With submodules.logs on |
| Set level | From 0 to the tier's highest level. See below |
| Transfer | Type a player's name to hand it to them |
| Lives | With raids on. Left-click sets its lives; right-click clears its raid |
| Upkeep | With upkeep on. Forgives an abandonment |
| Force delete | Deletes it after a dangerous confirmation, whatever it is doing |
Set level. A higher level grows the land the way an upgrade does, by the difference in radius-bonus, and
is refused when the grown land would overlap another protection of that server and world. A lower level keeps
the land as it is; only the level and what it unlocks change. Nothing is charged.
Raising the level from the admin screen only checks for overlap. Unlike a player's upgrade it does not check
settings.min-distance, foreign WorldGuard regions, disabled worlds or the world border, and it works while
the protection is raidable, abandoned or rented.
Transfer. The player is found by name, online or not, and the protection is theirs, whatever their limits
or the tier's permission say. Everything else follows the rules of a sale: members stay or go as
market.keep-members says, rents end with each tenant paid back from the bank, and offers are withdrawn. See
Economy. It is not refused while the protection is
raidable, abandoned or rented.
Lives. Setting the lives asks for a number from 1 to the protection's maximum, ends any raid and cooldown, and starts the regrowth clock from now. Clearing the raid gives every life back, with no raid and no cooldown. See Raids.
Upkeep. Only for an abandoned protection: nothing is owed any more, the next period starts now, and the owner counts as seen, so the next check does not abandon it again at once. It is refused while the bank is busy. See Economy.
Force delete. Deletes it even while it is raided, abandoned, rented or for sale. Tenants are paid back from the bank first and the rest of the bank goes to the owner, as with any deleted protection. The core block is removed and not given back.
Every change made here is written to the protection's log as done by an admin, and from the console as done by the console.
The tier editor
Tier editor lists every tier with its size, height, shop price, limit and how many protections on the
network use it. New tier asks for an id, up to 32 of a-z, 0-9, - and _, and opens it with the
fields of a new tier: an AMETHYST_BLOCK core named PROTECTION CORE, no lore, radius 10, FULL height,
y-radius 10, not sold in the shop, no permission, no limit and no flags on.
| Button | Writes | Input |
|---|---|---|
| Core block | material | Put in an item; it must be a block |
| Name | name | Text, up to 256 characters; colour tokens and &l allowed |
| Lore | lore | Text, up to 2048 characters; lines split with | |
| Radius | radius | 0 to 512 |
| Height | height | Click to switch between FULL and CUBOID |
| Cuboid height | y-radius | 0 to 512 |
| Shop price | price | 0 or more; 0 keeps it out of the shop |
| Currency | currency | Click to move to the next currency of the economy, then back to the default |
| Permission | permission | Text; - for none |
| Limit | limit | 0 to 1000; 0 for no limit of its own |
| Lives | raids.tier-lives.<tier> | 1 to 100 |
| Upkeep | upkeep.tier-costs.<tier> | 0 or more |
| Flags | flags | One switch per flag at the bottom, for the flags a new protection of this tier starts with |
Each change rewrites config.yml on the spot and applies at once, on this server. Other servers reading the same
file pick it up on their next restart. A tier's lives and upkeep cost are kept in their own sections; a tier never
given them uses raids.default-lives and upkeep.default-cost. What every key means is on
Creating protections.
Delete tier is refused while any protection on the network uses the tier, and for the tier selection.tier
names. After a dangerous confirmation the tier goes, with its lives and upkeep entries. Its core items stop
working: placing one is refused.
Protections keep the box they were given; a new radius or height only applies to cores placed afterwards. The same goes for the starting flags. Changing the core block is the one to be careful with: a core is only removed from the world while it is still the tier's block, so deleting or picking up a protection placed with the old block leaves that block standing.
Inactive cleanup
Removes protections whose owner and members all stopped playing.
From the menu. Inactive cleanup asks how many days, 1 to 3650, offering cleanup.default-days first,
and opens the preview: every protection that would go, oldest first, with how long ago its players were last
seen. Clicking one opens its admin screen.
| Button | What it does |
|---|---|
| Never seen players | Switches whether protections with a player who was never seen are removed too |
| Days | Asks for other days |
| Remove | After a dangerous confirmation naming how many, removes them |
From the command. /protections admin cleanup <days> prints how many would go, how many were kept for
having a never-seen player, a tenant or money in the bank, and the first ten with their world and server.
Adding confirm runs it at once, with no further question. Days below 1 count as 1.
A protection is removed when:
- Its owner and every player member were last seen more than that many days ago. Clan members do not count: a clan is added whole.
- Nobody in it is unknown, never seen, unless
--include-unknown, or the menu's Never seen players switch, is on. - Nobody rents in it right now, with
cleanup.skip-with-tenants. - Its bank holds nothing, with
cleanup.skip-with-bank.
"Last seen" is a player's last join or quit on any server of the network, and now while they are online on this
server. The plan is made again when the removal starts, and each protection is judged once more just before it
goes, so an owner who came back since the preview keeps their land. Removal runs batch-size protections a tick
and tells whoever started it how many it removed. Each one is logged as removed by the inactivity cleanup, its
bank goes to the owner, and its core block is removed.
| Key | Default | What it does |
|---|---|---|
cleanup.default-days | 30 | Days the menu asks about first |
cleanup.skip-with-tenants | true | Keep protections with a tenant renting in them right now |
cleanup.skip-with-bank | false | Keep protections whose bank holds money. Off: the money is paid to the owner |
cleanup.batch-size | 20 | Protections removed per tick while a cleanup runs |
When protections load, every owner and member with no last-seen record is recorded as seen at that moment. On a server that just started using the plugin nothing is removed until that many days have passed, and "unknown" only covers players added since the last start who have not joined since.
A cleanup still running when the server stops is cancelled; what it had not removed yet stays.
All keys
cleanup:
default-days: 30
skip-with-tenants: true
skip-with-bank: false
batch-size: 20Something missing on this page? Tell us on Discord