GameFeatureActions
CrimsonCore provides a full set of UGameFeatureAction subclasses that compose any feature into an experience via data assets, and uses the input actions that ship in CrimsonInput alongside them. All GFAs are reversible - they undo their changes when the experience deactivates or the feature plugin is unloaded.
| GFA class | What it does |
|---|---|
UCrimsonGameFeatureAction_AddAbilities | Grants UCrimsonAbilitySets (abilities + attribute sets + effects) to actors matching a class filter. Revokes on deactivate. |
UCrimsonGameFeatureAction_AddInputBinding (ships in CrimsonInput) | Registers UCrimsonInputConfigs with the pawn's ICrimsonInputConfigReceiver - UCrimsonHeroComponent is CrimsonCore's implementation of it. Removes bindings on deactivate. |
UCrimsonGameFeatureAction_AddWidget | Pushes HUD layouts and registers widget extensions via UIExtensionSubsystem. Removes them on deactivate. |
UCrimsonGameFeatureAction_AddTeams | Attaches UCrimsonTeamAgentComponent and populates team / hostile tags. Tears down on deactivate. |
UCrimsonGameFeatureAction_AddInventory | Attaches UCrimsonInventoryManagerComponent with constraint and currency tables. |
UCrimsonGameFeatureAction_AddEquipmentSlots | Attaches UCrimsonEquipmentSlotsComponent and UCrimsonEquipmentManagerComponent with a configured slot layout. |
UCrimsonGameFeatureAction_AddNPCSpawner | Primes UCrimsonEnemySpawnerSubsystem before spawner actors tick. |
UCrimsonGameFeatureAction_AddContainerInstances | Registers UCrimsonHUDContainerData payloads at a HUD extension slot. |
UCrimsonGameFeatureAction_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. |
UCrimsonGameFeatureAction_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] UCrimsonGameFeatureAction_AddAbilitiesAbilitiesList[0].ActorClass = BP_YourCharacterAbilitiesList[0].GrantedAbilitySets = [DA_AbilitySet_Fighter][1] UCrimsonGameFeatureAction_AddInputBinding (CrimsonInput)InputConfigs[0] = DA_InputConfig_Fighter[2] UCrimsonGameFeatureAction_AddWidgetWidgets[0].LayerTag = UI.Layer.GameWidgets[0].WidgetClass = WBP_HUD_Dungeon[3] UCrimsonGameFeatureAction_AddTeamsTeamsToAdd = [TAG_Team_Player, TAG_Team_Enemy]