GameFeatureActions
CrimsonCore provides a full set of UGameFeatureAction subclasses that compose any feature into an experience via data assets. All GFAs are reversible — they undo their changes when the experience deactivates or the feature plugin is unloaded.
| GFA class | What it does |
|---|---|
UGFA_AddAbilities | Grants UCrimsonAbilitySets (abilities + attribute sets + effects) to actors matching a class filter. Revokes on deactivate. |
UGFA_AddInputBinding | Registers UCrimsonInputConfigs with UCrimsonHeroComponent on each player pawn. Removes bindings on deactivate. |
UGFA_AddWidget | Pushes HUD layouts and registers widget extensions via UIExtensionSubsystem. Removes them on deactivate. |
UGFA_AddTeams | Attaches UCrimsonTeamAgentComponent and populates team / hostile tags. Tears down on deactivate. |
UGFA_AddInventory | Attaches UCrimsonInventoryManagerComponent with constraint and currency tables. |
UGFA_AddEquipmentSlots | Attaches UCrimsonEquipmentSlotsComponent and UCrimsonEquipmentManagerComponent with a configured slot layout. |
UGFA_AddHotbar | Attaches UCrimsonHotbarContainerComponent and per-hotbar manager components. |
UGFA_AddNPCSpawner | Primes UCrimsonEnemySpawnerSubsystem before spawner actors tick. |
UGFA_AddSummons | Enables summon ability support for the experience. |
UGFA_AddCompanions | Enables companion roster on the PlayerState. |
UGFA_AddContainerInstances | Registers UCrimsonContainerData payloads at a HUD extension slot. |
UGFA_SetupCamera | Per-feature camera setup: assigns a UCrimsonLockOnConfig to the pawn's lock-on component (adds it if missing), optionally adds a lockable target component, and optionally overrides the pawn's default camera mode. Composes with existing components and restores all on deactivate. |
UGFA_SplitscreenConfig | Reference-counted vote to disable splitscreen for the active world. |
UCrimsonGameFeatureAction_AddGameplayCuePath | Registers gameplay cue notify paths with UAbilitySystemGlobals when the feature registers (not just when it activates). |
Typical ExperienceDefinition setup
DA_Experience_DungeonDefaultPawnData = DA_PawnData_FighterGameFeaturesToEnable = ["DungeonFeature"]Actions:[0] UGFA_AddAbilitiesAbilitiesList[0].ActorClass = BP_CrimsonCharacterAbilitiesList[0].GrantedAbilitySets = [DA_AbilitySet_Fighter][1] UGFA_AddInputBindingInputConfigs[0].ActorClass = BP_CrimsonCharacterInputConfigs[0].InputConfig = DA_InputConfig_Fighter[2] UGFA_AddWidgetWidgets[0].LayerTag = UI.Layer.GameWidgets[0].WidgetClass = WBP_HUD_Dungeon[3] UGFA_AddTeamsTeamsToAdd = [TAG_Team_Player, TAG_Team_Enemy]