Gameplay tags
The framework ships the vocabulary it has to understand itself, and nothing else. Everything under the roots below that is not listed here is yours to declare.
Geometry — Mount.Entry.*
Which side of a mount a door is on. These are not game vocabulary — they are facts about a shape, and the framework computes them itself when it picks which door you walk to. Shipping them means an animation set authored in one project reads the same in the next.
| Tag | |
|---|---|
Mount.Entry.Left | The mount's −Y side. |
Mount.Entry.Right | The mount's +Y side. |
Mount.Entry.Front | The mount's +X side: bonnet, prow, the head end of a horse. |
Mount.Entry.Rear | The mount's −X side: tailgate, stern. |
Mount.Entry.Top | From above: a turret hatch, an open-top buggy, a roof. |
An entry point with no side tag gets one derived from where it is: whichever of the mount's local axes the offset points along most strongly, with Z winning only when the point is clearly above.
Roles — Mount.Role.*
| Tag | |
|---|---|
Mount.Role.Driver | The seat that steers this mount. The only role the framework acts on. |
Mount.Role.Passenger | Any seat that does not. The default. |
Games add their own leaves: Mount.Role.Gunner, Mount.Role.Navigator. The framework passes them to
animation selection and to your code, and does nothing else with them.
Phases — Mount.Phase.*
What an animation set entry is keyed on.
| Tag | |
|---|---|
Mount.Phase.Enter | Getting in. |
Mount.Phase.Exit | Getting out. |
Mount.Phase.Shuffle | Moving between seats. |
Mount.Phase.Seated | Settling into the seat — a one-shot, not the seated loop. |
An entry tagged with the parent Mount.Phase covers every phase under it, which is how a single
"any transition" fallback is expressed.
Protocol — Mount.Event.*
What an anim notify hands back. These are a contract with your montages.
| Tag | What the framework does |
|---|---|
Mount.Event.Attach | Attaches the rider. On the server, takes the seat. |
Mount.Event.Detach | Detaches and places the rider. On the server, frees the seat. |
Mount.Event.Finished | Ends the transition early. |
Mount.Event.DoorOpen | Calls SetSeatDoorOpen(Seat, true) on the mount. |
Mount.Event.DoorClose | Calls SetSeatDoorOpen(Seat, false). |
A tag you declare under Mount.Event is delivered to OnMountEvent on both the rider and the mount,
and nothing else happens to it. That is the whole extension mechanism for transition moments.
Access — Mount.Access
A root only. Whether a seat is locked to a faction, a key item or a quest state is a question only your game can answer, so declare your own leaves under it:
; Config/DefaultGameplayTags.ini
[/Script/GameplayTags.GameplayTagsSettings]
+GameplayTagList=(Tag="Mount.Access.PoliceVehicle",DevComment="Only police may drive it")
+GameplayTagList=(Tag="Mount.Access.HasKeys",DevComment="Granted by the key item")
Then put a query in the seat's Required Rider Tags and answer GetRiderTags from wherever your
game keeps them. See Access rules.
Using them in C++
#include "System/EDMountingTags.h"
Seat->RoleTag = EDMountingTags::Mount_Role_Driver;
EntryPoint.SideTag = EDMountingTags::Mount_Entry_Left;
if (EventTag.MatchesTagExact(EDMountingTags::Mount_Event_Attach)) { ... }
The variable name mirrors the tag with . replaced by _.
All of them are native tags, declared with UE_DEFINE_GAMEPLAY_TAG_COMMENT, so they are registered
before any asset loads and cannot be missing from a project's tag table.