Think of Unreal Engine's Gameplay Framework like a big box of LEGO® bricks specifically for making games. It gives you pre-built pieces (like Actors, Pawns, Controllers) for common game features and rules. You just pick the bricks you need and snap them together to create your unique gameplay!
Technically, the Gameplay Framework is a set of core C++ classes (like `AActor`, `APawn`, `AController`, `AGameModeBase`) that provide the foundation for gameplay. It lets you build features in reusable chunks using Actor Components (`UActorComponent`) and clearly defines how game information is shared in multiplayer (replication), how players control characters, the game's rules, and how game state is tracked.
World & Game Instance
UGameInstance
Manages persistent data across levels (e.g., save systems). Persists from engine launch until shutdown. Manages global data and systems that exist across level transitions (e.g., save systems, menu data). Not replicated in multiplayer. Manages GameInstanceSubsystems.
UGameInstanceSubsystem
Global systems (e.g., matchmaking) created and managed by GameInstance. Created and destroyed with the GameInstance. Used to manage global functionality like online services, lobbies, friends, leaderboards, etc.
UWorld
Represents the current level; manages actors, tick, and systems. Top-level object representing the current map. Contains the persistent level and manages all active Actors, GameMode, GameState, Controllers, and Pawns.
Actors & Derivatives
AActor
Base for all objects placed in a level (replicable, transformable). Any object that can be placed in a level (e.g., camera, mesh, spawn point). Supports transformations and can be spawned/destroyed via gameplay. Hosts Actor Components and supports replication.
APawn
Controllable object in the world (possessed by Controller). Base class for any controllable Actor. Represents the player's physical presence in the world.
ADefaultPawn
Simple pawn with default movement.
ASpectatorPawn
Pawn for free-fly viewing or spectating.
ACharacter
Humanoid pawn with movement/animation. Supports walking, running, jumping, etc. Includes skeletal mesh, capsule, movement components.
AController
Non-physical class that controls Pawn behavior. Non-physical Actor that possesses and controls a Pawn.
APlayerController
Handles input and camera for human players. Handles player input, UI, and camera.
AAIController
Drives AI behavior via logic/behavior trees. Uses AI systems (Behavior Trees, State Trees, etc.) to control Pawns.
AGameModeBase
Server-only; defines rules and spawns key framework actors. Server-only manager that controls game rules and structure. Instantiated on level load. Spawns GameState, PlayerStates, Controllers, and Pawns. Not persistent between levels. (AGameMode extends this with match state logic).
AGameStateBase
Replicates shared match data (scores, players) to clients. Non-physical Actor. Replicates data relevant to all players (e.g., team scores, objectives, player list) across server and clients. (AGameState extends this).
APlayerState
Tracks individual player data (health, inventory, etc.). Non-physical Actor. Replicates per-player data (e.g., health, ammo, inventory). Created when a player joins or loads into the level.
AHUD
Draws UI overlays (health bars, scores) on screen using Canvas drawing. Often superseded by UMG for complex UI. Displays UI elements on a per-player basis. Each human-controlled player gets their own HUD instance.
ACameraActor
Defines the camera's position and orientation in world. Represents a viewpoint. Often used for fixed cameras or cinematic shots. Player viewpoint usually managed by PlayerController/CameraManager.
Actor Components
UActorComponent
Base for reusable logic attached to actors. Building blocks of Actors. Control how Actors move, render, and behave. Hosted by Actors to provide modular functionality. Does not have a transform.
USceneComponent
Adds transform (location, rotation, scale). Can be attached to other Scene Components to form hierarchies. Inherits from UActorComponent.
UAudioComponent
Plays 2D/3D sounds attached to an Actor. Inherits from USceneComponent.
UParticleSystemComponent
Handles spawning and managing particle effects (Cascade/Niagara). Inherits from USceneComponent.
UPrimitiveComponent
Base for components with renderable or collidable geometry (meshes, shapes). Inherits from USceneComponent.
UCameraComponent
Defines camera properties (FOV, aspect ratio) and provides a viewpoint. Typically attached to a Pawn or CameraActor. Inherits from USceneComponent.
USpringArmComponent
Creates a collision-aware boom arm, often used to attach cameras smoothly behind a character. Inherits from USceneComponent.
USkeletalMeshComponent
Renders animated (skinned) meshes with bone hierarchies. Used for characters, creatures. Inherits from UPrimitiveComponent (specifically USkinnedMeshComponent).
UStaticMeshComponent
Renders non-animated 3D models (props, environment pieces). Inherits from UPrimitiveComponent (specifically UMeshComponent).
Static Utilities
UGameplayStatics
Collection of static utility functions for common gameplay tasks: spawning actors/effects, applying damage, playing sounds, getting player controllers/pawns, managing pause state, etc. Accessible globally.
UKismetSystemLibrary
Another static utility library providing access to engine/system level functions like console commands, timers, platform checks, quitting the game, etc.
UKismetMathLibrary
Provides a wide range of static math functions (vector math, rotations, interpolation, random numbers, etc.) useful in gameplay logic.
User Interface
User Interface (UI)
Encompasses menus, HUDs, and interactive elements. Primarily built using Unreal Motion Graphics (UMG) via User Widgets (`UUserWidget`), which are displayed using Player Controllers or added to the viewport. AHUD provides lower-level drawing capabilities.
UUserWidget
The base class for UI elements created with the UMG visual designer. Represents a reusable piece of UI (like a health bar, inventory screen, main menu). Managed and displayed via Player Controller.
UWidgetComponent
An Actor Component that renders a UUserWidget in 3D world space, attached to an Actor (e.g., interaction prompts above objects, floating nameplates). Inherits from UPrimitiveComponent.