Files
UE5-Modular-Game-Framework/docs/blueprints/16-state/StateAssets_All.asset.md
Lefteris Notas 3ca87a7893 Add asset creation sheets for various systems and UI components
- Created Save/Load & Death Loop asset sheet detailing checkpoint, death handling, and respawn systems.
- Added UI widget creation sheets for pause menu, settings menu, inventory, journal viewer, objective display, notification toast, screen effect controller, accessibility UI, diegetic HUD frame, menu flow controller, and credits screen.
- Implemented HUD controller and interaction prompt display assets with detailed wiring instructions.
- Established narrative systems asset sheet including components for narrative state, objectives, dialogue playback, and branching consequences.
- Developed weapons, AI, and adaptive systems asset creation sheet outlining weapon base, enemy AI components, and adaptive gameplay mechanics.
- Compiled meta, settings, and polish asset creation sheet covering progress tracking, achievement systems, accessibility settings, and various polish components.
- Defined input actions and mapping contexts for enhanced input system, including gameplay actions and context priorities.
- Created state management assets including enums, structs, data asset, and state manager component for action gating and state transitions.
2026-05-20 15:34:06 +03:00

4.7 KiB

State Management Assets — Enums, Structs, Data Asset

UE5 Path: Content/Framework/State/ Assets: 4 Enums + 3 Structs + 1 Data Asset + 1 Component


Enums — Create All (4 assets)

E_PlayerActionState (42 values)

  1. Content Browser → Content/Framework/State/
  2. Right-click → Blueprint → Enumeration
  3. Name: E_PlayerActionState

Values to Add:

Idle, Walking, Sprinting, Crouching, Jumping, Falling, Landing,
Sliding, Vaulting, Mantling, Climbing, Swimming, Crawling,
Firing, Aiming, Reloading, Melee, Blocking, Throwing,
Interacting, Inspecting, UsingItem, ConsumingItem,
Hiding, Peeking, HoldingBreath, Lockpicking, Hacking,
Dialoguing, Reading, Examining, Crafting,
Dead, Dying, Unconscious, Staggered, KnockedDown,
CutsceneBound, VoidSpace, Menu, Inventory, Journal

E_OverlayState (18 values)

  1. Name: E_OverlayState

Values:

None, Aiming, Firing, Reloading, MeleeAttack, Blocking,
UsingItem, Inspecting, Interacting, Throwing,
HoldingBreath, Peeking, Dialoguing, Injured,
Staggered, Carrying, WristwatchActive, MapActive

E_PlayerVitalSignals (5 values)

  1. Name: E_PlayerVitalSignals

Values:

Calm, Elevated, Stressed, Panic, Critical

E_ActionRequestResult (8 values)

  1. Name: E_ActionRequestResult

Values:

Granted, Denied, BlockedByForce, AlreadyActive,
InvalidState, RequesterNotFound, CooldownActive, VitalThreshold

Structs — Create All (3 assets)

S_StateChangeRequest

  1. Content Browser → Content/Framework/State/
  2. Right-click → Blueprint → Structure
  3. Name: S_StateChangeRequest
Field Type
RequestedState GameplayTag
Requester Actor (Object Reference)
Priority Integer
Reason String
Timestamp Float

S_StateGatingRule

  1. Name: S_StateGatingRule
Field Type
ActionTag GameplayTag
BlockedByStates Array<GameplayTag>
RequiresStates Array<GameplayTag>
BlockedByOverlays Array<GameplayTag>
bRequiresAuthority Boolean
CooldownSeconds Float
RulePriority Integer

S_ActionPermissionResult

  1. Name: S_ActionPermissionResult
Field Type
bPermitted Boolean
ResultCode E_ActionRequestResult
BlockingState GameplayTag
BlockReason String

Data Asset — DA_StateGatingTable

Create

  1. Content Browser → Content/Framework/State/
  2. Right-click → Miscellaneous → Data Asset
  3. Class: PrimaryDataAsset
  4. Name: DA_StateGatingTable

Variables to Add

Variable Type Default
GatingRules Array<S_StateGatingRule> Empty — populate below
ForceStackRules Array<S_StateGatingRule> Empty

Populate GatingRules (37 action rules — key examples)

Action Blocked By
Framework.State.Action.Sprint Crouching, Aiming, Firing, Injured
Framework.State.Action.Fire Sprinting, Reloading, Dead, Menu
Framework.State.Action.Reload Sprinting, Firing, Melee, Dead
Framework.State.Action.Jump Crouching, Dead, CutsceneBound
Framework.State.Action.Interact Sprinting, Firing, Dead, Menu
Framework.State.Action.Hide Sprinting, Firing, Carrying
Framework.State.Action.Melee Reloading, Inspecting, Dead
Framework.State.Action.UseItem Dead, Staggered, CutsceneBound
Framework.State.Action.Crouch Sprinting, Falling, Vaulting
Framework.State.Action.Inspect Sprinting, Hiding, Dead, Menu
Framework.State.Action.Dialogue Sprinting, Firing, Hiding, Dead
Framework.State.Action.Vault Crouching, Aiming, Firing, Carrying
Framework.State.Action.Aim Sprinting, Reloading, Melee, Dead
Framework.State.Action.Menu Dead, CutsceneBound (always permitted otherwise)
Framework.State.Action.Dead Always permitted (force-state — overrides everything)

Component — BPC_StateManager

Already covered in C++ (Source/Framework/Public/Player/BPC_StateManager.h).

Attach to Pawn

  1. Open player pawn Blueprint
  2. Add Component → BPC_StateManager
  3. In Details → Gating Table → assign DA_StateGatingTable
  4. Set Default Action StateFramework.State.Action.Idle

Test It

  • All 4 enums created with correct values
  • All 3 structs created with correct fields
  • DA_StateGatingTable populated with 37 rules
  • PIE: IsActionPermitted(SprintTag) returns false when crouching
  • RequestStateChange(Fire) returns Granted when idle
  • ForceStateChange(Dead)IsActionPermitted(AnyTag) returns false
  • RestorePreviousState() → previous state restored