Babysitter unreal-gamesframework

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

install
source · Clone the upstream repo
git clone https://github.com/a5c-ai/babysitter
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/a5c-ai/babysitter "$T" && mkdir -p ~/.claude/skills && cp -r "$T/library/specializations/game-development/skills/unreal-gamesframework" ~/.claude/skills/a5c-ai-babysitter-unreal-gamesframework && rm -rf "$T"
manifest: library/specializations/game-development/skills/unreal-gamesframework/SKILL.md
source content

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