Blueprint Visual Scripting in Unreal Engine is a tool that lets you create gameplay elements using a node-based system instead of coding. It's similar to other scripting languages, allowing you to create and control objects in the game.
Blueprint is powerful because it gives designers access to many features that are usually only available to programmers. Also, programmers can set up basic systems in C++ that designers can then expand using Blueprints.
Blueprints work by using graphs of nodes for various purposes, such as object construction, individual functions, and general gameplay events. You can create gameplay elements by connecting nodes of events, functions, and variables with wires.
A Level Blueprint contains logic for level-specific events within maps. Each level has a Level Blueprint, which can:
Reference and manipulate actors within the level
Control cinematics using level sequence actors
Manage level streaming
A Level Blueprint can also interact with Blueprint Classes placed in the level, such as reading variables and triggering custom events. To learn more, see Level Blueprints.
A Blueprint Class defines a new class or type of actor that you can place into maps as instances. Editing a Blueprint Class used throughout a project will update every instance of it.
Blueprint Classes are ideal for making interactive assets such as doors, switches, collectible items, and destructible scenery. To learn more, see Blueprint Class.
The following topics are a few examples you can accomplish with the Blueprint system.
The Construction Script is a type of graph within a Blueprint Class that executes when an actor is placed or updated in the editor, but not during gameplay. It helps create customizable props that improve environment artists' workflows. For example, a light fixture that automatically updates its material to match the color and brightness of its point light component or a Blueprint that randomly scatters foliage meshes over an area.
In the Content Examples maps, the demo rooms that contain each example (pictured above) are a single Blueprint made up of many components. The Blueprint's Construction Script creates and arranges the various static meshes and lights according to parameters exposed in the Blueprint's Details panel. With each Content Example map, we can drop in the demo room Blueprint, set values for the length, height, and number of rooms to generate, and have a complete set of rooms ready in moments.
Pawns, a type of Blueprint Class, are the physical representation of actors players can control. With a pawn class, you can assemble every element you need to create a playable Character. You can manipulate camera behavior, set up input events for mouse, controller, and touch screens, and create an animation Blueprint asset for handling skeletal mesh animations.
A character Blueprint contains a character component that has much of the behavior needed for moving around, jumping, swimming, and falling built-in. To finalise the setup, you must add some input events in accordance with how you want players to control your character.
To learn more, see Setting Up Character Movement.
You can use Blueprints to create a game's HUD (heads-up display). The setup is similar to Blueprint Classes in that it can contain event sequences and variables but is assigned to your project's GameMode asset instead of directly to a level.
You can set up a HUD to read variables from other Blueprints, display a health bar, update a score value, display objective markers, and more. It is also possible to use the HUD to add hit-boxes for elements like buttons you can click on.
While possible with Blueprint, the Unreal Motion Graphics system is a more designer-friendly way of laying out a UI. The system is based on Blueprint Visual Scripting.
The Blueprint Editor is the user interface you use to construct Blueprint elements to build your visual script.
The Blueprint Editor's UI changes based on the type of Blueprint chosen. The core feature of most Blueprint Editors is the Event Graph tab for laying out the network of your Blueprint.