The 3D selector
The catalogue standing in the world on ExyliaLib's centre stage: the emote danced live in the player's skin, PLAY under it, and the layout in spatial/emotes.yml.
The 3D selector is the same catalogue as the classic menu, drawn in the world in front of the player instead of in an inventory. The emote they pick is danced live on a pedestal by a body in their own skin, so they see what they are about to perform before they perform it.
Opening it
| How | What opens |
|---|---|
/emote 3d (alias showroom) | The selector, always. |
/emote | The selector when menu.style in config.yml is SPATIAL; the classic window when it is CLASSIC, the default. |
/emote classic | The classic window, always. |
| A placed selector | Clicking its hologram walks the player onto the spot and opens it there. Place one with /emotesadmin spatial place. |
It needs exyliaemotes.command.emote, the same node as the classic menu.
The selector needs a 1.21.4 client or newer. A player joining with an older one (through ViaBackwards) is opened the classic window instead, wherever they asked from. With no ViaVersion on the server, every client counts as the server's version.
What is on it
| Piece | What it does |
|---|---|
| Tabs | The categories along the top, as plain words, plus All emotes and the favourites star. The mouse wheel steps through them. |
| Name | The emote under the crosshair, else the one chosen, with one quiet line: its rarity and whether it is yours. |
| Description | Up to three lines, once the crosshair rests on an emote. |
| The arc | Four emotes either side of the preview, at eye level. The wheel or the arrows turn it a page. Owned emotes come first. |
| Preview | The chosen emote danced on the pedestal by a body in the viewer's skin. A duet is danced by two: the viewer and a partner wearing another online player's skin, or a default one. |
| PLAY | The one button. On an owned emote it closes the selector and performs it, as a click in the classic menu does. On one for sale it reads BUY, then CONFIRM with the price, and plays it once bought. With no price it reads LOCKED. |
| Icons | Favourite, replay the preview, open the crate, help (the tour again) and leave. |
While it is open the player is held still and sees nobody, and nobody sees them. Sneaking leaves.
A duet cannot be started from here either: PLAY on one answers needs-partner, which tells the player
to use /emote play <id> <player>, and the selector stays open.
What the classic menu does with locked rows applies here too: with
behaviour.hide-without-permission a locked emote is left out except on the favourites tab, and with
behaviour.require-permission: false nothing is locked. Buying goes through the same shop, at the same
price.
The tour
The first time a player opens it, a short guided tour points at the arc, the preview, PLAY and the
icons. The ? icon shows it again. /emotesadmin spatial tour <player> makes it show once more on
their next open.
Placed selectors
/emotesadmin spatial place # where you stand, facing the way you face
/emotesadmin spatial remove # the nearest one, up to four blocks awayA placed selector is a hologram in the world. Clicking it walks the player onto the spot and opens the
selector there, facing the way the spot was placed. Spots are kept in spatial/spots.yml.
The layout
Where every piece stands is spatial/emotes.yml. Coordinates are blocks on a board a little over four
blocks in front of the eyes. The easy way to move a piece is in game:
/emotesadmin spatial editLook at a piece and click it: the mouse wheel moves it, F changes the axis (across, up, forward, and size, spacing or curve where they apply) and the next click saves it to the file. Sneak to leave.
The file only places things. Every word drawn on it is in messages.yml under spatial, so it follows
the server's language like the rest; spatial.catalog holds the buttons, the hint lines and the tour's
captions. When a release changes the shipped layout it raises menu-version at the top, and
/exylialib updates offers the change to a server that edited its copy.
/emotesadmin reload re-reads the layout and the words, and redraws every selector that is open.
The crate from here
The crate icon opens the crate. With crate.opening: SPATIAL the opening is drawn in the world too —
see The crate.
Something missing on this page? Tell us on Discord