Content generated with AI — it may contain mistakes.

Configuring

The menu

One screen: the tabs, the grid, the favourites, and every template menus/effects.yml declares.

/arrows opens one window of 54 slots. Nothing in it touches a bow — an effect gets onto a bow through its token, which is the thing a server sells.

It refuses to open in bow mode

With behaviour.mode: bow nothing on this screen would ever be read, so the menu answers menu-disabled instead of opening a window that changes nothing.

The two lists

SectionSlotsWhat it holds
categories9,18,27,36The tabs down the left, paged with the buttons at slots 0 and 45.
grid11-16,20-25,29-34,38-43The open category's effects, paged at slots 47 and 52.

The fixed buttons: YOUR EFFECT at slot 4 (click to take the effect off), EFFECT CRATE at 8, PARTICLE VISIBILITY at 48, RANDOM EFFECT at 49, CLOSE at 50.

EFFECT CRATE opens menus/crate.yml and shows the keys the player holds and how much of the catalogue they have unboxed — see Rarities and the crate. RANDOM EFFECT sets every shot to draw a different effect from the ones they own; its line is menu.random-on while it is the choice they carry and menu.random-off while it is not.

The favourites tab

The first tab is always the player's own shortlist — it is not a category in effects.yml, because it holds different effects for every player. It is named and drawn by menu.favourites-name and menu.favourites-icon in config.yml.

RuleDetail
Starring is freeOwning an effect is not required to star it. A star that vanished the day a rank lapsed would lose them the list they built.
Their order, not yoursStarred effects stay in the order they were starred. Nothing is re-sorted.
Locked rows still showOn this tab a locked effect is drawn even on a server that hides locked effects everywhere else.
Emptying itShift click the tab while it is open, or /arrows favourites clear.

An empty shortlist draws empty_template so the tab reads as empty rather than as a screen that failed to load.

What a click does

ClickOn a grid row
LeftWears the effect — or takes it off, when it is already the one worn.
RightPreviews it: the player is moved to the server's preview stage, the effect plays for them alone, and they are put back exactly where they were. Locked rows can be previewed too. A server with no stage set says so instead — /arrowsadmin preview location sets it.
ShiftStars it, or unstars it.

Ordering and locked rows

Effects the player may use are drawn first, then the locked ones — so what they can use is never behind a page of rows they cannot. With behaviour.hide-without-permission: true the locked ones are dropped from the grid entirely, except on the favourites tab.

Templates

Each list picks a template per row. item_template is the plain state and must stay first.

SectionTemplateUsed when
categoriesitem_templateAnother tab is open.
open_templateThis is the tab being looked at.
favourites_templateThe shortlist tab, while another tab is open.
favourites_open_templateThe shortlist tab while it is open — the only one carrying the "empty the list" action.
griditem_templateAn effect the player owns.
selected_templateThe effect currently worn.
locked_templateAn effect they do not own.
empty_templateDrawn on the favourites tab when nothing is starred.

Placeholders

These are the menu's own tokens, filled in while the screen is drawn. They are not PlaceholderAPI placeholders and only work inside this file.

PlaceholderWhereWhat it draws
%category_id%categoriesThe tab's id — favourites on the shortlist tab.
%category_name%categoriesThe tab's display name.
%category_material%categoriesThe material its icon is drawn with.
%category_total%categoriesHow many effects the tab holds.
%category_owned%categoriesHow many of those the player owns.
%category_status%categoriesmenu.tab-open or menu.tab-closed, depending on whether this is the tab being looked at.
%effect_id%gridThe effect's id.
%effect_name%gridIts display name, with its colours.
%effect_material%gridThe material it is drawn with.
%effect_description%gridIts description from effects.yml.
%effect_bows%gridWhat it may be bound to, in words.
%effect_tier_id%gridIts rarity's id.
%effect_tier%gridThe rarity's name, in the rarity's colour.
%effect_tier_color%gridThat colour on its own.
%effect_favourite%gridmenu.favourite-on or menu.favourite-off, depending on whether it is starred.
%current_effect%AnywhereThe effect the player is wearing, menu.random-name on random, or menu.empty.
%random_status%Anywheremenu.random-on or menu.random-off.
%favourites_count%AnywhereHow many effects they have starred.
%keys%AnywhereCrate keys they hold.
%unlocked_count%AnywhereHow many effects they have won from the crate.
%catalogue_count%AnywhereHow many effects the server declares.
%particle_visibility%AnywhereThe player's current visibility mode, named as particles.name-* says.
%visibility_all%AnywhereThe name of the "everyone" mode, for a button that offers it.
%visibility_none%AnywhereThe name of the "nobody" mode.
%visibility_self_only%AnywhereThe name of the "only me" mode.
%visibility_others_only%AnywhereThe name of the "only others" mode.

Actions

ActionWhat it does
arrows:openOpens the screen.
arrows:category <id>Switches tab. favourites is a valid id.
arrows:choose <id>Wears an effect, or takes it off when it is already worn.
arrows:clearTakes the effect off.
arrows:favourite <id>Stars or unstars.
arrows:favourites_clearEmpties the shortlist.
arrows:preview <id>Previews an effect and reopens the menu afterwards.
arrows:visibilitySteps the viewer's visibility on by one.

Wording

The few strings one template draws for every row live in config.yml, because no file can spell them out row by row:

config.yml
menu:
  empty: "{muted}Nothing"
  tab-open: "{success}✔ You are here"
  tab-closed: "{warning}➥ Click to open"
  bows-any: "Any bow"
  favourites-name: "Favourites"
  favourites-icon: "AMETHYST_SHARD"
  favourite-on: "{highlight}★ In your favourites"
  favourite-off: "{muted}☆ Not in your favourites"
The window follows the choice

Every way a player's row can change — their own click, a command, an admin, or a rank that ran out under them — redraws whatever windows they have open. Nothing has to be closed and reopened.

Something missing on this page? Tell us on Discord