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.
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.
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.
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.
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.
Controllable object in the world (possessed by Controller). Base class for any controllable Actor. Represents the player's physical presence in the world.
Simple pawn with default movement.
Pawn for free-fly viewing or spectating.
Humanoid pawn with movement/animation. Supports walking, running, jumping, etc. Includes skeletal mesh, capsule, movement components.
Non-physical class that controls Pawn behavior. Non-physical Actor that possesses and controls a Pawn.
Handles input and camera for human players. Handles player input, UI, and camera.
Drives AI behavior via logic/behavior trees. Uses AI systems (Behavior Trees, State Trees, etc.) to control Pawns.
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).
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).
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.
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.
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.
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.
Adds transform (location, rotation, scale). Can be attached to other Scene Components to form hierarchies. Inherits from UActorComponent.
Plays 2D/3D sounds attached to an Actor. Inherits from USceneComponent.
Handles spawning and managing particle effects (Cascade/Niagara). Inherits from USceneComponent.
Base for components with renderable or collidable geometry (meshes, shapes). Inherits from USceneComponent.
Defines camera properties (FOV, aspect ratio) and provides a viewpoint. Typically attached to a Pawn or CameraActor. Inherits from USceneComponent.
Creates a collision-aware boom arm, often used to attach cameras smoothly behind a character. Inherits from USceneComponent.
Renders animated (skinned) meshes with bone hierarchies. Used for characters, creatures. Inherits from UPrimitiveComponent (specifically USkinnedMeshComponent).
Renders non-animated 3D models (props, environment pieces). Inherits from UPrimitiveComponent (specifically UMeshComponent).
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.
Another static utility library providing access to engine/system level functions like console commands, timers, platform checks, quitting the game, etc.
Provides a wide range of static math functions (vector math, rotations, interpolation, random numbers, etc.) useful in gameplay logic.
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.
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.
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.