Content generated with AI — it may contain mistakes.

Configuring

The menu

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

/emote opens one window of 54 slots, menus/emotes.yml. Clicking an emote is the performance, not a setting: the window closes and the emote starts where the player is standing.

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 tab's emotes, paged at slots 47 and 52.

The fixed buttons: YOUR EMOTES at slot 3 (how many they own and have starred, and how to stop one), EMOTE CRATE at 5, CLOSE at 49.

The menu opens on the tab the player last left it on, or the first tab when that one is gone. A tab is only drawn for a category that has at least one emote.

The favourites tab

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

RuleDetail
Starring is freeOwning an emote is not required to star it. A shortlist is what somebody is saving up for as much as what they have.
Their order, not yoursStarred emotes stay in the order they were starred. Nothing is re-sorted.
Locked rows still showOn this tab a locked emote is drawn even on a server that hides locked emotes everywhere else.
Emptying itShift click the tab while it is open, or /emote 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

ClickOwned solo emoteDuetLocked emote
LeftCloses the window and performs it.Nothing — the row says to use /emote play <id> <player>.Nothing.
RightPreviews it.Previews it.Previews it.
ShiftStars or unstars it.Stars or unstars it.Stars or unstars it.

A preview plays the emote on the server's preview stage and reopens the menu afterwards. Until /emotesadmin preview location has been run it answers preview-unavailable instead, and tells an admin which command sets it.

Ordering and locked rows

Emotes the player owns 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. With behaviour.require-permission: false nothing is locked.

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_templateA solo emote the player owns.
duet_templateA duet the player owns. It has no left-click action: a row has nobody to name.
locked_templateAn emote 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 emotes the tab holds; on the shortlist, how many are starred.
%category_owned%categoriesHow many of those the player owns.
%category_status%categoriesmenu.tab-open or menu.tab-closed.
%emote_id%gridThe emote's id.
%emote_name%gridIts display name, with its colours.
%emote_material%gridThe material it is drawn with.
%emote_description%gridIts description from emotes.yml.
%emote_kind%gridmenu.kind-solo or menu.kind-duet.
%emote_favourite%gridmenu.favourite-on or menu.favourite-off.
%emote_tier%gridThe rarity's name, in the rarity's colour.
%emote_tier_id%gridThe rarity's id.
%emote_tier_color%gridThat colour on its own.
%favourites_count%AnywhereHow many emotes they have starred.
%owned_count%AnywhereHow many emotes they may perform, by permission or unlock.
%keys%AnywhereCrate keys they hold.
%unlocked_count%AnywhereHow many emotes they have won from the crate.
%catalogue_count%AnywhereHow many emotes the server declares.

Actions

ActionWhat it does
emote:openOpens the screen.
emote:category <id>Switches tab. favourites is a valid id.
emote:play <id>Closes the window and performs the emote. A duet answers needs-partner.
emote:favourite <id>Stars or unstars.
emote:favourites_clearEmpties the shortlist.
emote:preview <id>Previews an emote and reopens the menu afterwards.
emote:crateOpens the crate.
emote:crate_open <amount>Spends that many keys and drops that many reels. Used by menus/crate.yml.

Wording

The few strings one template draws for every row live in config.yml:

config.yml
menu:
  tab-open: "{success}✔ You are here"
  tab-closed: "{warning}➥ Click to open"
  favourites-name: "Favourites"
  favourites-icon: "AMETHYST_SHARD"
  favourite-on: "{highlight}★ In your favourites"
  favourite-off: "{muted}☆ Not in your favourites"
  kind-solo: "Solo"
  kind-duet: "With a friend"
The window follows the row

Starring, a key handed over, an unlock granted by an admin — every change to a player's favourites, keys or unlocks redraws the emote screen if they have it open.

Something missing on this page? Tell us on Discord