Content generated with AI — it may contain mistakes.

Configuring

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

HowWhat opens
/emote 3d (alias showroom)The selector, always.
/emoteThe selector when menu.style in config.yml is SPATIAL; the classic window when it is CLASSIC, the default.
/emote classicThe classic window, always.
A placed selectorClicking 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.

Older clients get the classic window

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

PieceWhat it does
TabsThe categories along the top, as plain words, plus All emotes and the favourites star. The mouse wheel steps through them.
NameThe emote under the crosshair, else the one chosen, with one quiet line: its rarity and whether it is yours.
DescriptionUp to three lines, once the crosshair rests on an emote.
The arcFour emotes either side of the preview, at eye level. The wheel or the arrows turn it a page. Owned emotes come first.
PreviewThe 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.
PLAYThe 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.
IconsFavourite, 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 away

A 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 edit

Look 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