Content generated with AI — it may contain mistakes.

Systems

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.

Admin is not bypass

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

CommandWhat it doesConsole
/protections adminOpens the admin menuNo
/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 joinYes
/protections admin cleanup <days> [preview|confirm] [--include-unknown]Previews, or with confirm runs, the inactive cleanup belowYes
/protections admin migrate <INTERNAL|WORLDGUARD>Switches the backend. See BackendsYes
/protections admin import protectionstones [--dry-run]Imports ProtectionStones regions. See MigrationYes

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.

FilterHow it is set
OwnerTyped; any owner whose name contains it
NameTyped; a protection whose name contains it, or whose id starts with it
WorldEach click moves to the next world a protection is in, then back to any
ServerEach click moves to the next server, then back to any
StateAny → 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.

ButtonWhat it does
Open as ownerIts own protection screen. An admin passes every owner and role check there
TeleportTo its home, or on top of its core without one, on any server, with the home warmup
LogsIts audit log. With submodules.logs on
Set levelFrom 0 to the tier's highest level. See below
TransferType a player's name to hand it to them
LivesWith raids on. Left-click sets its lives; right-click clears its raid
UpkeepWith upkeep on. Forgives an abandonment
Force deleteDeletes 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.

Set level checks less than an upgrade

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.

ButtonWritesInput
Core blockmaterialPut in an item; it must be a block
NamenameText, up to 256 characters; colour tokens and &l allowed
LoreloreText, up to 2048 characters; lines split with |
Radiusradius0 to 512
HeightheightClick to switch between FULL and CUBOID
Cuboid heighty-radius0 to 512
Shop priceprice0 or more; 0 keeps it out of the shop
CurrencycurrencyClick to move to the next currency of the economy, then back to the default
PermissionpermissionText; - for none
Limitlimit0 to 1000; 0 for no limit of its own
Livesraids.tier-lives.<tier>1 to 100
Upkeepupkeep.tier-costs.<tier>0 or more
FlagsflagsOne 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.

A tier change does not reach existing protections

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.

ButtonWhat it does
Never seen playersSwitches whether protections with a player who was never seen are removed too
DaysAsks for other days
RemoveAfter 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:

  1. 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.
  2. Nobody in it is unknown, never seen, unless --include-unknown, or the menu's Never seen players switch, is on.
  3. Nobody rents in it right now, with cleanup.skip-with-tenants.
  4. 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.

KeyDefaultWhat it does
cleanup.default-days30Days the menu asks about first
cleanup.skip-with-tenantstrueKeep protections with a tenant renting in them right now
cleanup.skip-with-bankfalseKeep protections whose bank holds money. Off: the money is paid to the owner
cleanup.batch-size20Protections removed per tick while a cleanup runs
Nobody is inactive before the plugin has watched them

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

plugins/ExyliaProtections/config.yml
cleanup:
  default-days: 30
  skip-with-tenants: true
  skip-with-bank: false
  batch-size: 20

Something missing on this page? Tell us on Discord