Bevy ECS Expert
Master Bevy's Entity Component System (ECS) in Rust, covering Systems, Queries, Resources, and parallel scheduling.
Unreal Engine Gameplay Ability System (GAS) skill for attributes, abilities, and gameplay effects.
---
name: unreal-gamesframework
description: Unreal Engine Gameplay Ability System (GAS) skill for attributes, abilities, and gameplay effects.
allowed-tools: Read, Grep, Write, Bash, Edit, Glob, WebFetch
graph:
domains: [domain:gaming]
specializations: [specialization:game-development]
skillAreas: [skill-area:gameplay-programming, skill-area:game-engines]
roles: [role:game-developer]
---
# Unreal GAS Skill
Gameplay Ability System for Unreal Engine.
## Overview
This skill provides capabilities for implementing complex gameplay systems using Unreal's Gameplay Ability System (GAS).
## Capabilities
### Abilities
- Create Gameplay Abilities
- Handle ability activation
- Manage ability costs
- Implement cooldowns
### Attributes
- Define attribute sets
- Handle attribute modifiers
- Implement derived attributes
- Manage attribute replication
### Gameplay Effects
- Create instant effects
- Implement duration effects
- Handle stacking
- Manage effect removal
### Integration
- Implement ability tasks
- Handle ability events
- Create ability tags
- Manage ability instances
## Prerequisites
- Unreal Engine 5.0+
- GameplayAbilities plugin enabled
## Usage Patterns
### Attribute Set
```cpp
UCLASS()
class UMyAttributeSet : public UAttributeSet
{
GENERATED_BODY()
public:
UPROPERTY(BlueprintReadOnly, ReplicatedUsing=OnRep_Health)
FGameplayAttributeData Health;
ATTRIBUTE_ACCESSORS(UMyAttributeSet, Health)
UPROPERTY(BlueprintReadOnly, ReplicatedUsing=OnRep_MaxHealth)
FGameplayAttributeData MaxHealth;
ATTRIBUTE_ACCESSORS(UMyAttributeSet, MaxHealth)
};
```
### Gameplay Ability
```cpp
UCLASS()
class UGA_Attack : public UGameplayAbility
{
GENERATED_BODY()
protected:
virtual void ActivateAbility(
const FGameplayAbilitySpecHandle Handle,
const FGameplayAbilityActorInfo* ActorInfo,
const FGameplayAbilityActivationInfo ActivationInfo,
const FGameplayEventData* TriggerEventData) override;
};
```
## Best Practices
1. Use tags extensively
2. Keep abilities modular
3. Handle prediction properly
4. Test multiplayer thoroughly
5. Document ability interactions
## References
- [GAS Documentation](https://docs.unrealengine.com/5.0/en-US/gameplay-ability-system-for-unreal-engine/)
---
name: unreal-gamesframework
description: Unreal Engine Gameplay Ability System (GAS) skill for attributes, abilities, and gameplay effects.
allowed-tools: Read, Grep, Write, Bash, Edit, Glob, WebFetch
graph:
domains: [domain:gaming]
specializations: [specialization:game-development]
skillAreas: [skill-area:gameplay-programming, skill-area:game-engines]
roles: [role:game-developer]
---
# Unreal GAS Skill
Gameplay Ability System for Unreal Engine.
## Overview
This skill provides capabilities for implementing complex gameplay systems using Unreal's Gameplay Ability System (GAS).
## Capabilities
### Abilities
- Create Gameplay Abilities
- Handle ability activation
- Manage ability costs
- Implement cooldowns
### Attributes
- Define attribute sets
- Handle attribute modifiers
- Implement derived attributes
- Manage attribute replication
### Gameplay Effects
- Create instant effects
- Implement duration effects
- Handle stacking
- Manage effect removal
### Integration
- Implement ability tasks
- Handle ability events
- Create ability tags
- Manage ability instances
## Prerequisites
- Unreal Engine 5.0+
- GameplayAbilities plugin enabled
## Usage Patterns
### Attribute Set
```cpp
UCLASS()
class UMyAttributeSet : public UAttributeSet
{
GENERATED_BODY()
public:
UPROPERTY(BlueprintReadOnly, ReplicatedUsing=OnRep_Health)
FGameplayAttributeData Health;
ATTRIBUTE_ACCESSORS(UMyAttributeSet, Health)
UPROPERTY(BlueprintReadOnly, ReplicatedUsing=OnRep_MaxHealth)
FGameplayAttributeData MaxHealth;
ATTRIBUTE_ACCESSORS(UMyAttributeSet, MaxHealth)
};
```
### Gameplay Ability
```cpp
UCLASS()
class UGA_Attack : public UGameplayAbility
{
GENERATED_BODY()
protected:
virtual void ActivateAbility(
const FGameplayAbilitySpecHandle Handle,
const FGameplayAbilityActorInfo* ActorInfo,
const FGameplayAbilityActivationInfo ActivationInfo,
const FGameplayEventData* TriggerEventData) override;
};
```
## Best Practices
1. Use tags extensively
2. Keep abilities modular
3. Handle prediction properly
4. Test multiplayer thoroughly
5. Document ability interactions
## References
- [GAS Documentation](https://docs.unrealengine.com/5.0/en-US/gameplay-ability-system-for-unreal-engine/)
Imported from the listed AgentSkill.sh category. Complete supplied package files and notices are retained. Required external tools and credentials are not installed. No bundled code was executed during import. Individual agent task behavior has not been tested.