npx skills add ...
npx skills add gamedev-skills/awesome-gamedev-agent-skills --skill unreal-cpp-gameplay
Write Unreal Engine 5 C++ gameplay code: the UCLASS/UPROPERTY/UFUNCTION reflection macros, the Gameplay Framework (GameMode, Pawn, Character, PlayerController, Actor components), and the module Build.cs. Use when writing or debugging UE C++, deriving from AActor/ACharacter/ AGameModeBase, exposing properties to the editor or Blueprints, or when the user mentions Unreal C++, UCLASS, GENERATED_BODY, GameMode, ACharacter, or .Build.cs.
npx skills add gamedev-skills/awesome-gamedev-agent-skills --skill unreal-cpp-gameplay
Write correct UE5 gameplay C++: the reflection macros that connect C++ to the editor and Blueprints, the Gameplay Framework class roles, and module dependencies. Targets UE 5.8.
AActor, APawn, ACharacter, AGameModeBase,
UActorComponent), exposing properties/functions with UPROPERTY/UFUNCTION, setting up a
GameMode's default classes, or adding a module dependency in *.Build.cs.Source/ tree with *.h/*.cpp using UCLASS, and *.Build.cs.When not to use: designer-facing visual logic → unreal-blueprints. Player input
binding details → unreal-enhanced-input. AI logic → unreal-behavior-trees. This skill owns
the C++ class/reflection foundation those build on.
A = Actor-derived, U = UObject/component-derived,
F = plain struct, E = enum, I = interface. The prefix must match the base class.UCLASS() above the class, GENERATED_BODY()
as the first line in the body, and #include "ClassName.generated.h" as the last
include in the header.UPROPERTY (editor/Blueprint visibility and garbage-collection
tracking) and behaviour with UFUNCTION (BlueprintCallable, etc.).CreateDefaultSubobject<T>(TEXT("Name")) and
set the RootComponent.AGameModeBase sets the rules + default classes; APawn/
ACharacter is the controllable body; APlayerController is the player's will;
UActorComponent is reusable behaviour.*.Build.cs (e.g. EnhancedInput) or unresolved-symbol
link errors follow.Ctrl+Alt+F11 for function bodies; full rebuild for
header/UPROPERTY changes) and checking the class/properties appear in the editor.generated.h not last / missing — compile errors like "Cannot find generated header" or
"Expected an include". It must be the final include in the header.GENERATED_BODY() — UHT (Unreal Header Tool) errors; it must be the first
thing inside the class body.UObject* without UPROPERTY — the garbage collector doesn't see it and may destroy
it out from under you. Track every UObject pointer with UPROPERTY (use TObjectPtr in UE5).UCLASS/UPROPERTY/headers need a full editor restart + rebuild.UFoo (or a component AFoo) breaks UHT; match the
prefix to the base type.Build.cs
PublicDependencyModuleNames.Super:: in overridden BeginPlay/Tick/etc. skips engine setup.UActorComponent creation/attachment, the UPROPERTY garbage-collection ownership rules
(TObjectPtr, TArray<TObjectPtr<>>, AddToRoot), and a replication primer, read
references/components-and-gc.md.https://dev.epicgames.com/documentation/en-us/unreal-engine/gameplay-framework-in-unreal-engine).unreal-blueprints — exposing C++ to designers; BP/C++ interop.unreal-enhanced-input — binding input in a C++ Pawn/Character.unreal-behavior-trees — C++ AI tasks driven from a behaviour tree.