
Gameplay Attribute Select
UncookedOnly • PreDefault Loading Phase





Plugin overview
Gameplay Attribute Select is a plugin that adds two new Gameplay Attribute-based select nodes called Attribute Select and Contains Attribute Select.
Attribute Select takes a Gameplay Attribute, and returns the first option that matches that attribute.
Contains Attribute Select takes an array/set/map of Gameplay Attributes, and returns the first option that is contained inside that container.
They also have the capability to:

Get notified when more attributes are added
In short, there are 3 main interfaces: IGenericAgentActivityWorker
, IGenericCrowdActivityWorker
and IGenericWorldActivityWorker
. Each of them are able to begin activities, which are expressed as GameplayTags.
From this framework’s perspective, only the following is known:
IGenericAgentActivityWorker
runs a FAgentActivity
one at the time (non-virtual). The actual implementation of the activity itself is delegated to a pure virtual impl
method.
The framework does not preconceive what these activities actually mean. For example, IGenericAgentActivityWorker
only knows and manages the beginning/ending of an FAgentActivity
without further inclinations.
Likewise, IGenericCrowdActivityWorker
can only run a FCrowdActivity
, and IGenericWorldActivityworker
only a FWorldActivity
.
/** Backbone for all FAgentActivity workers */
class GENERICACTIVITYRUNTIME_API IGenericAgentActivityWorker
{
GENERATED_BODY()
...
public:
/** Process a new AgentActivity */
void BeginAgentActivity(const FAgentActivity& InAgentActivity);
/** Immediately stop the current AgentActivity */
void EndAgentActivityImmediately();
...
private:
/** Implementation body of BeginAgentActivity */
virtual void BeginAgentActivityImpl(const FAgentActivity& InAgentActivity) = 0;
...
};
Cognition tags
Each activity worker has methods for keeping their own Scoped/Persistent Cognition tags, which are GameplayTags mapped to a specific base category. They may encapsulates anything from knowledge, reasoning, to memory.
Scoped Cognition tags are automatically removed when the current activity ends.
Persistent Cognition tags remain unless manually removed.
ubyte.dev endorses creating GameplayConcepts extending Cognition that: