Content generated with AI — it may contain mistakes.

Protecting land

Menus

The /protections hub, the list, a protection's overview and its seven sections, every other screen, the files they live in, and every exyliaprotections: action with its arguments.

Everything players do with their land happens in menus opened from /protections. Every button carries the protection's id in its action, so a screen holds no state of its own: a click is checked again against the protection as it is when the click arrives, and refused when the player lost the right to do it in the meantime.

The files

Every screen is a file under lang/<language>/menus/, in the language folder ExyliaLib is set to (en, es, pt or fr).

FolderOwnerOn update
menus/user/Yours. Restyle, move and reword freely.Kept. Only missing files are written. A release that has to change a screen's layout raises its menu-version; that file is then replaced and your previous one kept next to it.
menus/admin/The plugin's.Rewritten from the jar on every start, so staff screens always match the release.

Each file's header comment lists the placeholders it receives. Buttons show only while their condition holds; the %…_enabled% placeholders are true or false from submodules. An action prefixed with left:, right:, shift_left: or shift_right: runs on that click only; without a prefix it runs on any click.

Menu files are read when the plugin enables and again on /exylialib reload. A file that does not parse is named in the console and left out, instead of opening as an empty screen.

The hub

/protections (or /ps, /claims) opens menus/user/main.yml, a 27-slot screen.

SlotButtonShown whileAction
4Your land: how many they own out of their limit, and how many they own or belong toalwaysnone
12My protectionsalwayslist
13Protection shop, with how many tiers are for salesome tier has a priceshop
14Select landselection.enabled and the player holds exyliaprotections.selectselect
21For sale, with how many are listedsubmodules.marketmarket
22For rentsubmodules.rentrent
23Public warpssubmodules.warpswarps

The list

menus/user/list.yml: every protection the player owns or belongs to, on any server, oldest first, 36 to a page. Each shows its owner, the player's role, size, location, server and member count.

ClickWhat it does
Left-clickOpens the protection's overview.
Right-clickTeleports home, with the warmup.
Back (slot 49)The hub.

The overview

menus/user/manage.yml is one protection's own screen: 45 slots, a summary at the top and one button per section. It needs membership; admins open anybody's.

SlotButtonShown whileAction
4The protection: owner, the player's role, tier, size, members, location, serveralwaysnone
19Landalwayssection <id> land
20Peoplealwayssection <id> people
21Accessalwayssection <id> access
22Economybank, upkeep or market is on, or rent with rent.whole-protectionsection <id> economy
23Growthupgrades, subregions or merge is onsection <id> growth
24Defenseraids or logs is onsection <id> defense
25Extraswarps, effects or environment is onsection <id> extras
36Teleport homealwayshome <id>
40Backalwaysmanage_back <id>
44Deletealwaysdelete <id>

Back returns to the list, except for an admin looking at somebody else's protection, who goes back to the admin screen they came from. Every button is shown to every member; one their role does not allow answers "You cannot do that in this protection."

Sections, and the section that sticks

Each section is a 36-slot screen, menus/user/manage_<section>.yml, whose Back (slot 31) returns to the overview with section <id> hub.

Opening a section remembers it for that player and that protection. Every later reopening of the protection's screen — a Back from members, roles, bans or logs, or the screen coming back after a change — lands on that section again, not on the overview. It is forgotten when the player goes back to the overview, opens another protection, or leaves the server. Opening a protection from the list always starts on the overview.

Land — manage_land.yml

SlotButtonNeedsAction
4Summary: size, location, core statenone
10Teleport homemember or tenanthome <id>
11Set homeset-home, standing inside on its serversethome <id>
12Renamerenamerename <id>
14Hide coremanage-core, standing on its server and worldhide <id>
15Move protectionmanage-core, standing on its server and worldmove <id>
16Show border (while visualization is on)membershow <id>

People — manage_people.yml

SlotButtonNeedsAction
12Membersmanage-membersmembers <id>
13Rolesmanage-rolesroles <id>
14Bans (while bans is on)manage-bansbans <id>

Access — manage_access.yml

SlotButtonNeedsAction
12Flagsedit-flagsflags <id>
13Lock, open or locked (while lock is on)toggle-locklock <id>
14Greeting & farewell (while enter-leave is on): left greeting, right farewell, shift + right clears bothrenamegreeting <id> greeting|farewell|clear

Economy — manage_economy.yml

SlotButtonNeedsAction
10Bank (while bank is on): left deposit, right withdrawbank-deposit / bank-withdrawbank <id> deposit|withdraw
12Upkeep (while upkeep is on): pay what is duememberupkeep <id>
14Sell or give away (while market is on): left lists or unlists, right gives awayownersell <id>, transfer <id>
16Rent out (while rent and rent.whole-protection are on)manage-rentrent_offer <id> *

Growth — manage_growth.yml

SlotButtonNeedsAction
12Upgrade, level out of the highest (while upgrades is on)ownerupgrade <id>
13Plots, count out of the cap (while subregions is on)manage-subregionssubregions <id>
14Merge (while merge is on)ownermerge <id>

Defense — manage_defense.yml

SlotButtonNeedsAction
12Lives (while raids is on): buy a life backmemberraid_restore <id>
14Logs (while logs is on)view-logslogs <id> all _

Extras — manage_extras.yml

SlotButtonNeedsAction
12Public warp (while warps is on)manage-warpwarp <id>
14Perks & atmosphere (while effects or environment is on)owner, or edit-environmentperks <id>

Slot 4 of every section is a summary of what it holds and has no action.

The other screens

Every list below is a 54-slot paged screen: up to 36 entries a page (fewer on the grid-shaped ones), previous and next page buttons, and Back in slot 49.

FileOpened byWhat it is
user/members.ymlmembersMembers and clans; see Members and clans. Clans use clan_template. Add player (45), Add clan (46).
user/roles.ymlrolesRoles, visitor last with visitor_template. Create role (45).
user/permissions.ymlflags, role_edit, overrides, subregion_flags, subregion_overridesOne list of switches. Its title names what it edits. Clicking a switch runs toggle; Back runs back.
user/shop.ymlshopEvery tier with a price. A click buys one core.
user/bans.ymlbansRunning bans. Right-click lifts one. Ban player (45).
user/logs.ymllogsThe audit log with its action and player filters (45, 46).
user/market.ymlmarketProtections for sale. Left buys, right visits.
user/rent.ymlrentThe player's own rentals first (rented_template: left renews, right teleports home), then every offer (left rents, right visits).
user/subregions.ymlsubregionsA protection's plots. Create plot (45).
user/subregion.ymlsubregionOne plot's members (left role, shift + left overrides, right removes) and its buttons: add member (45), plot flags (46), private (47), rent out (51, while rent is on), delete (53).
user/warps.ymlwarpsPublic warps. Left visits, right rates. Sort (45) cycles visits, rating, newest.
user/warp.ymlwarpOne protection's warp: publish, land here, rename, icon, description.
user/perks.ymlperksPerk switches for the owner, then time (38) and weather (42) while environment is on.
user/merge.ymlmergeThe owner's protections that touch this one. A click merges it in.
admin/admin.yml/protections admin, adminEvery protection on the network, with filters. See Administration.
admin/admin_protection.ymladmin_protectionOne protection's admin buttons.
admin/tiers.yml, admin/tier.ymladmin_tiers, admin_tierThe tier editor.
admin/cleanup.ymladmin_cleanupThe inactive cleanup preview.

A switch in permissions.yml shows ON / OFF for flags and roles, ALLOW / DENY / ROLE for a member's overrides, and ALLOW / DENY / PROTECTION (follow the protection) for a plot's flags.

Actions

Every button runs an action written exyliaprotections:<name> <arguments>, so a restyled menu can call any of them. Placeholders such as %protection_id% fill the arguments. Up to four arguments are read.

Before running, every action is refused while its feature is off ("That feature is turned off."), when the protection no longer exists ("That protection no longer exists."), or when the requirement below does not let the player through. <id> is a protection id.

Land and the protection itself

ActionArgumentsNeedsWhat it does
openThe hub
listThe list
shopThe shop
selectexyliaprotections.select, selection.enabledHands out the selector
buy<tier>the tier's permissionBuys one core of a tier with a price
manage<id>memberThe overview, or the section that stuck
section<id> <land|people|access|economy|growth|defense|extras|hub>memberOpens a section and remembers it; hub or anything else opens the overview and forgets it
manage_back<id>The list, or the admin screen for an admin outside the protection
home<id>member or tenantTeleports home with the warmup
sethome<id>set-homeMoves the home to where the player stands, inside
rename<id>renameAsks for a name, up to 32 characters of plain text
hide<id>manage-coreHides or shows the core
move<id>manage-coreMoves the protection onto the block looked at, for settings.move-price
delete<id>ownerDeletes after a confirmation
raid_restore<id>member, raidsBuys a life back after a confirmation
show<id>member, visualizationDraws the border

People and access

ActionArgumentsNeedsWhat it does
members<id>manage-membersThe members screen
member_add<id>manage-membersAsks a player name, then a role
clan_add<id>manage-membersAsks a clan tag, then a role
member_role<id> <uuid|clan:<clan>>manage-membersAsks a new role
member_remove<id> <uuid|clan:<clan>>manage-membersRemoves a member or clan
overrides<id> <uuid>manage-membersA member's override switches
roles<id>manage-rolesThe roles screen
role_create<id>manage-rolesAsks a name and opens the new role
role_edit<id> <role>manage-rolesA role's switches
role_rename<id> <role>manage-rolesAsks a new name
role_delete<id> <role>manage-rolesDeletes after a confirmation
flags<id>edit-flagsThe flag switches
toggle<id> <target> <key>depends on the targetFlips one switch; see below
back<id> <target>Leaves a switch screen: a role to roles, a member to members, a plot target to the plot, anything else to the protection
lock<id>toggle-lock, lockLocks or unlocks
bans<id>manage-bans, bansThe bans screen
ban_add<id>manage-bans, bansAsks who and for how long, with a summary
unban<id> <uuid>manage-bans, bansLifts a ban
greeting<id> <greeting|farewell|clear>rename, enter-leaveAsks the greeting or farewell, or clears both. Anything but farewell and clear edits the greeting
logs<id> <action|all> <player|_>view-logs, logsThe log, filtered; all and _ mean no filter
logs_action<id> <action|all> <player|_>view-logs, logsThe log with the next action filter
logs_player<id> <action|all>view-logs, logsAsks a player name to filter by

toggle targets, as PermissionTarget spells them:

TargetSwitchesNeeds
flagsThe protection's flagsedit-flags
role:<name>A role's permissionsmanage-roles and holding the permission; not the role the player holds; never a management permission for visitor
player:<uuid>A member's overrides, cycling role, allow, denymanage-members and holding the permission; not themselves
sub:<plot>:flagsA plot's flags, cycling follow, on, off; visitor-entry excludedmanage-subregions
sub:<plot>:player:<uuid>A plot member's overridesmanage-subregions and holding the permission; not themselves

Economy and estates

ActionArgumentsNeedsWhat it does
bank<id> <deposit|withdraw>bank-deposit or bank-withdraw, bankAsks an amount. Anything but withdraw deposits
upkeep<id>member, upkeepPays what is due
sell<id>owner, marketAsks a price and lists it, or unlists it when listed
transfer<id>owner, marketAsks a player name and gives the protection away
marketmarketThe market
market_buy<id>marketBuys a listed protection
market_visit<id>marketTeleports to a listed protection
upgrade<id>owner, upgradesUpgrades to the next level
subregions<id>manage-subregions, subregionsThe plots screen
subregion<id> <plot>sameOne plot
subregion_create<id>sameHands out the selector, then asks the name
subregion_delete<id> <plot>sameDeletes after a confirmation
subregion_private<id> <plot>sameToggles private and shared
subregion_flags<id> <plot>sameThe plot's flag switches
subregion_member_add<id> <plot>sameAsks a name, then a role
subregion_member_role<id> <plot> <uuid>sameAsks a new role
subregion_member_remove<id> <plot> <uuid>sameRemoves a plot member
subregion_overrides<id> <plot> <uuid>sameA plot member's override switches
rent_offer<id> <plot|*>manage-rent, rentAsks price and period with a summary, or cancels the running offer. * or blank is the whole protection
rentrentThe rent screen
rent_take<offer>rentRents an offer
rent_visit<offer>rentTeleports to an offer
rent_renew<id> <plot|*>rentRenews the player's own rental

Extras

ActionArgumentsNeedsWhat it does
warps[visits|rating|newest]warpsThe public warps, sorted; visits by default
warps_sort<current sort>warpsThe same, sorted by the next order
warp_visit<id>warpsVisits a warp
warp_rate<id> <sort>warpsAsks one to five stars, then returns to the list in that order
warp<id>manage-warp, warpsThe protection's warp screen
warp_toggle<id>samePublishes or unpublishes
warp_here<id>sameMoves the warp to where the player stands
warp_rename<id>sameAsks the warp's name
warp_icon<id>sameAsks the icon
warp_description<id>sameAsks the description
perks<id>owner or edit-environment; effects or environmentThe perks screen
perk_toggle<id> <perk>owner, effectsTurns an unlocked perk on or off
time<id>edit-environment, environmentNext time of day
weather<id>edit-environment, environmentNext weather
merge<id>owner, mergeThe merge screen, or "nothing to merge"
merge_pick<id> <other id>owner, mergeMerges the other protection into this one

Admin

Every one of these needs exyliaprotections.admin. They are described on Administration.

ActionArgumentsWhat it does
adminThe admin search
admin_filter<owner|text|world|server|state>Asks the owner or name filter, or cycles the world, server or state filter
admin_filter_clear<owner|text|world|server|state|all>Clears one filter; anything else clears them all
admin_protection<id>One protection's admin screen
admin_teleport<id>Teleports to it
admin_lives<id>Asks its lives (raids)
admin_raid_clear<id>Ends its raid (raids)
admin_abandoned<id>Takes it out of abandonment (upkeep)
admin_level<id>Asks its level
admin_transfer<id>Asks a new owner
admin_delete<id>Deletes after a confirmation
admin_tiersThe tier list
admin_tier<tier>One tier
admin_tier_createAsks a new tier id
admin_tier_edit<tier> <item|name|lore|radius|height|y-radius|price|currency|permission|limit|lives|upkeep>Edits one field
admin_tier_flag<tier> <flag>Toggles a starting flag
admin_tier_delete<tier>Deletes an unused tier after a confirmation
admin_cleanupAsks the days, then previews
admin_cleanup_view<days> <true|false>The preview, with or without never-seen players
admin_cleanup_run<days> <true|false>Runs the cleanup after a confirmation

Something missing on this page? Tell us on Discord