ue-gameplay-framework

Implement Unreal Engine gameplay framework classes in C++ including GameMode, GameState, PlayerController, and Pawn.

55|5|Updated Mar 26, 2026
One-click install
npx skills add https://github.com/kevinpbuckley/unreal-engine-skills --skill ue-gameplay-framework-kevinpbuckley
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: ue-gameplay-framework
Source: https://github.com/kevinpbuckley/unreal-engine-skills/tree/main/skills/core/ue-gameplay-framework
Command: npx skills add https://github.com/kevinpbuckley/unreal-engine-skills --skill ue-gameplay-framework-kevinpbuckley

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Choosing the correct Unreal Engine base class for each piece of gameplay logic is the most consequential design decision in UE C++ development, and mistakes lead to broken replication, lost state on respawn, and server/client authority bugs. This Skill provides verified UE 5.8 API signatures, class hierarchies, and decision guides so an agent writes correct gameplay framework code the first time. ## Core Features & Use Cases - Class role mapping: Covers UGameInstance, AGameModeBase/AGameMode, AGameStateBase/AGameState, APlayerController, APawn/ACharacter, APlayerState, and AHUD with replication and lifetime semantics for each. - Server login and spawn flow: Documents the full PreLogin → Login → PostLogin → HandleStartingNewPlayer → RestartPlayer → Possess sequence with exact header citations, plus respawn and seamless travel patterns. - Decision guides and gotchas: Tables for where logic belongs (server-only vs replicated vs per-player), the final Possess/OnPossess override rule, and deprecated APIs like DispatchPostLogin. - Use Case: When building a multiplayer game, use this Skill to create a custom AGameModeBase subclass that sets DefaultPawnClass, PlayerControllerClass, PlayerStateClass, and GameStateClass in its constructor, then implement timer-based respawn via RestartPlayer. ## Quick Start Use the ue-gameplay-framework skill to create a C++ GameMode, PlayerController, Character, and PlayerState for my multiplayer game with correct default class wiring and respawn logic.

Frequently Asked Questions about ue-gameplay-framework

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I set default pawn and controller classes in Unreal C++?

Assign DefaultPawnClass, PlayerControllerClass, PlayerStateClass, and GameStateClass in your AGameModeBase constructor using StaticClass(). These TSubclassOf properties are EditAnywhere and BlueprintReadOnly, so Blueprint subclasses can still override them in the editor.

What is the difference between AGameModeBase and AGameMode?

AGameModeBase is the lean modern default for server-only game rules. AGameMode adds the match-state machine with states like WaitingToStart, InProgress, and WaitingPostMatch. Start from the Base classes unless you need match states.

Where should per-player replicated data live in Unreal?

Per-player replicated data belongs in APlayerState, which is created during Login and added to GameState.PlayerArray. It replicates to all clients and survives pawn death, making it correct for name, team, score, and similar persistent facts.

Why does GetAuthGameMode return null on clients?

AGameModeBase exists only on the server, so GetAuthGameMode always returns null on clients by design. Guard every call with HasAuthority() or GetLocalRole() == ROLE_Authority before accessing the GameMode.

Can I override Possess in Unreal Engine 5?

No, AController::Possess and UnPossess are virtual final since UE 4.22. Override OnPossess and OnUnPossess on the controller, or PossessedBy and UnPossessed on the pawn, to react to possession changes.

When should I use APawn versus ACharacter?

Use APawn when you need full control over collision and movement, such as vehicles or turrets. Use ACharacter for bipedal or swimming agents since it bundles a capsule, skeletal mesh, and CharacterMovementComponent with built-in network prediction.