Hey!👋 ubyte.dev just recently launched. It's dedicated towards Unreal Engine 5.
Plugin icon of Gameplay Attribute Select

Gameplay Attribute Select

Introduces gameplay attribute select nodes, capable of automatically generating wildcard options from an attribute set.
UE 4.27, 5.0 ─ 5.1
Use case
Blueprint Graph Editor • K2Node
Module specifications
Runtime • Default Loading Phase
UncookedOnly • PreDefault Loading Phase

Attribute Select Runtime
Attribute Select Editor

Plugin overview

Branch main

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:

Generate wildcard option pins automatically from all members of an attribute set, or add option pins manually.
Featured image of Gameplay Attribute Select

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
	/** Process a new AgentActivity */
	void BeginAgentActivity(const FAgentActivity& InAgentActivity);

	/** Immediately stop the current AgentActivity */
	void EndAgentActivityImmediately();
	/** 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:

Explicitly specify which problem they solve. Example: WorkerStrategyGameplayConcept (included by default) introduces a filtered variant of Cognition called Strategy. The concept mandates that these always dynamically influence the underlying implementation of an activity.

Explicitly manage their blueprint exposure. Example: WorkerStrategyGameplayConcept introduces BlueprintCallable methods for adding/removing Strategy tags.

Blueprints should never be able to add/remove unencapsulated cognition tags. It's only permitted through blueprint-exposed concepts that extend cognition (e.g. Strategy).

UE 4.27, 5.0 ─ 5.1
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram