Generating
Make a movement group
Makes an emote_group: one emote per movement state (idle, walk, sprint, sneak_idle, sneak_move, jump), worn as one thing with /emote <name>. RP Engine plays whichever state the player is in, so a pack can have its own walk and run and leave jumping to the game.
parts maps a state to an emote's id from POST /packs/{pack}/emotes or the listing. A state left out is the player's own animation. Emotes for more than one performer, and groups, cannot be members: a part naming one is left out and reported in ignored.
Free, and finished when it answers. A pack holds at most 16 groups.
/packs/{pack}/emote-groupsPath parameters
packstringrequiredThe pack's slug, as returned by the packs endpoints.
Body
namestringrequiredmax 64 charactersWhat it is called, and what /emote takes.
partsobjectState to emote id, for any of the states.
idlestringThe emote played while idle.
walkstringThe emote played while walk.
sprintstringThe emote played while sprint.
sneak_idlestringThe emote played while sneak idle.
sneak_movestringThe emote played while sneak move.
jumpstringThe emote played while jump.
Response · 201
Made.
idstringrequiredThe group's id. Also its job handle's last part, and what /emote takes.
typestringrequiredAlways emote_group.
namestringrequiredIts name.
partsobjectrequiredState to emote id, as saved.
idlestringThe emote played while idle.
walkstringThe emote played while walk.
sprintstringThe emote played while sprint.
sneak_idlestringThe emote played while sneak idle.
sneak_movestringThe emote played while sneak move.
jumpstringThe emote played while jump.
packstringrequiredThe pack it is in.
ignoredarray of stringStates you named whose emote could not be a member. Absent when none.
Error codes
Branch on error.code, never on the message.
invalid_json400The request body wasn't a JSON object.
invalid_request400Something in the body or query is wrong. message says what.
invalid_api_key401The key isn't one of ours, or it has been revoked.
missing_api_key401No Authorization: Bearer header was sent.
wrong_key_kind401An MCP key sent to the REST API, or an API key sent to the MCP server. Each only opens its own.
account_suspended403The account is suspended, so its keys open nothing. message says until when, if the suspension has an end date.
forbidden403Valid key, but not permitted to do this in this pack.
plan_required403The key is valid, but its account is on Starter. The API needs a paid plan.
not_found404No such pack, asset or job.