This document guides you through creating and configuring UCombatPawnData assets for Player and Enemy in the OptimizedGASDemo project.
🔗 Quick Setup: For a complete walkthrough of setting up PawnData along with AbilitySets and InputConfig, see COMPLETE_SETUP_GUIDE.md.
UCombatPawnData is a data asset that contains all necessary information for a pawn (character) in the GAS system:
- Basic attributes (Health, Stamina, Damage)
- Ability Sets (abilities and effects)
- Input Configuration (for player)
- Open Content Browser
- Right-click > Miscellaneous > Data Asset
- Select UCombatPawnData
- Name it (e.g.,
DA_PlayerPawnData,DA_EnemyPawnData)
// Default values for attributes
Default Health: 1000.0
Default Max Health: 1000.0
Default Damage: 10.0
Default Knockback Impulse: 500.0
Default Launch Impulse: 300.0
Default Stamina: 100.0
Default Max Stamina: 100.0
// Required Attribute Sets
Attribute Sets:
- UHealthAttributeSet
- UDamageAttributeSet
- UStaminaAttributeSet
- UMovementAttributeSet (for player)- Create new Data Asset:
UCombatAbilitySet - Name it (e.g.,
DAS_SharedCombatAbilities,DAS_PlayerSpecificAbilities,DAS_EnemySpecificAbilities)
Granted Abilities (TArray):
- Add required ability classes
Granted Gameplay Effects:
- Add effect classes (e.g., stamina regeneration)
Granted Attributes:
- Add attribute sets if needed
Granted Abilities:
- UCombatReceiveDamageAbility
- UCombatDeathAbility
- UCombatComboAttackAbility
- UCombatChargedAttackAbility
- UCombatLockToggleAbility
- UCombatStaminaRegenerationAbility
Granted Gameplay Effects:
- UCombatStaminaRegenerationGameplayEffect
Granted Attributes:
- (usually empty, attributes are set in PawnData)
Granted Abilities:
- UCombatReceiveDamageAbility
- UCombatDeathAbility
- UCombatComboAttackAbility
- UCombatChargedAttackAbility
- UCombatLockableAbility
- UCombatStaminaRegenerationAbility
- UCombatTraceAttackAbility
Granted Gameplay Effects:
- (can be empty)
Granted Attributes:
- (usually empty)
- Create new Data Asset:
UCombatInputConfig - Name it (e.g.,
DA_PlayerInputConfig)
Input Mappings (TArray):
// Example for Combo Attack
Input Action: IA_ComboAttack (from project settings)
Ability Triggers:
- Trigger Tag: Event.Attack.Combo.Start
- Trigger Event: Started
// Example for Charged Attack
Input Action: IA_ChargedAttack
Ability Triggers:
- Trigger Tag: Event.Attack.Charged.Start
- Trigger Event: Started
- Trigger Tag: Event.Attack.Charged.Release
- Trigger Event: CompletedIn Player PawnData:
Input Config: DA_PlayerInputConfig
Ability Sets (TArray):
// Player PawnData
Ability Sets:
- Ability Set: DAS_SharedCombatAbilities
- Ability Set: DAS_PlayerSpecificAbilities
// Enemy PawnData
Ability Sets:
- Ability Set: DAS_SharedCombatAbilities
- Ability Set: DAS_EnemySpecificAbilitiesNote: Ability Sets are used to grant abilities and effects to the pawn. Input binding is handled separately via the InputConfig asset (for players only).
In ACombatCharacter:
- PawnData is created in
ACombatBase::ACombatBase() - Ability Sets are granted in
ACombatPlayerState::SetPawnData()
In ACombatEnemy:
- PawnData is created similarly
- Ability Sets are granted in
ACombatEnemy::BeginPlay()
Attributes:
- Default Health: 1000
- Default Max Health: 1000
- Default Damage: 15
- Default Stamina: 100
- Default Max Stamina: 100
- Attribute Sets: [UHealthAttributeSet, UDamageAttributeSet, UStaminaAttributeSet, UMovementAttributeSet]
Abilities:
- Ability Sets:
- Ability Set: DAS_SharedCombatAbilities
- Ability Set: DAS_PlayerSpecificAbilities
Input:
- Input Config: DA_PlayerInputConfig
Attributes:
- Default Health: 500
- Default Max Health: 500
- Default Damage: 8
- Default Stamina: 50
- Default Max Stamina: 50
- Attribute Sets: [UHealthAttributeSet, UDamageAttributeSet, UStaminaAttributeSet]
Abilities:
- Ability Sets:
- Ability Set: DAS_SharedCombatAbilities
- Ability Set: DAS_EnemySpecificAbilities
- Check if AbilitySet is properly referenced in PawnData
- Ensure AbilitySystemComponent is initialized in PlayerState
- Check if InputConfig is set in PawnData
- Ensure Input Actions are configured in Project Settings > Engine > Input
- Check if Attribute Sets are added to PawnData
- Ensure AbilitySystemComponent has Granted Attribute Sets