Agent Skills: Unreal GAS Skill

Unreal Engine Gameplay Ability System (GAS) skill for attributes, abilities, and gameplay effects.

UncategorizedID: a5c-ai/babysitter/unreal-gamesframework

Install this agent skill to your local

pnpm dlx add-skill https://github.com/a5c-ai/babysitter/tree/HEAD/library/specializations/game-development/skills/unreal-gamesframework

Skill Files

Browse the full folder contents for unreal-gamesframework.

Download Skill

Loading file tree…

library/specializations/game-development/skills/unreal-gamesframework/SKILL.md

Skill Metadata

Name
unreal-gamesframework
Description
Unreal Engine Gameplay Ability System (GAS) skill for attributes, abilities, and gameplay effects.

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

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

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