😀Emotes
Emotes allow players to express themselves in game with a various animations.
When interacting with emotes in the ODK, the main asset to interact with is the BPMC_ODK_EmotesComponent
. This is a component on the ODK morpheus player character BPM_ODK_PlayerCharacterBase
.
Defining Emotes
You can define an emote by creating a new PDA_ODK_Emote asset.

Name - Display name used in UI Emote Id - Used to help unlock emotes via token ownership. The token metadata will specify the emote id that it represents ownership of. Icon - Icon used in UI Type - An enum that lets code categorise emotes. Currently the types we support are: STANDARD and COOP. Emote Executor - An object that runs logic to start the emote
Currently, emotes come in two flavours: standard emotes and coop emotes. Stardard emotes simply play an animation on you player character. Coop emotes allow you to play animations synced with another player character. The way these are handled are very different. The emote executor allows for completely different behaivours to be executed by different emotes whilst being handled the same way in the reset of our logic.
Setting Emote Selection
The emotes available to a player in your game can be configured on the BPC_ODK_EmotesComponent
on your player render target actor. You can configure the DefaultEmoteSelection
property on the component by selecting the PDA_ODK_Emote
assets you desire.

Starting and Stopping Emotes
PlayEmote
and CancelCurrentEmote
can be used to start and stop emotes regardless of whether they are standard or coop emotes.
Overriding Emote Selection
You can override what emotes are available by using the override functions: OverrideEmoteSelection
, RemoveEmoteSelectionOverride
and, RemoveAllEmoteOverrides
. This can be useful for limiting what emotes are available in different contexts. You might only want a couple emotes available whilst the player is in a tutorial but allow all emotes to be played after the tutorial is completed. This can help achieve that. When you apply an emote selection override, a new state will be added to a stack containing the override emotes. When you no longer want to override the emote selection, removing the override will remove the state from the stack returning you to the original emote selection.
Filtering Emote Selection
You can use GetFilteredEmotes
, to get a filtered list of emotes that currently playable. This would take into account emote selection overrides. Filtering can be used in conjunction with overrides. You could for example filter the current emote selection for all coop emotes and then apply an emote selection override to only include those coop emotes.
Last updated