Blueprint Visual Scripting
More actions
| Blueprint Visual Scripting | |
|---|---|
| Information | |
| Type | Visual scripting |
| Industry | Video games |
| Developer | Epic Games |
| License | Proprietary, part of Unreal Engine |
| Release Date | March 19, 2014 (with Unreal Engine 4) |
| Website | https://dev.epicgames.com/documentation/en-us/unreal-engine/blueprints-visual-scripting-in-unreal-engine |
Blueprint Visual Scripting is the node-based visual scripting system built into Unreal Engine, the game engine made by Epic Games. Epic's documentation calls it "a complete gameplay scripting system based on the concept of using a node-based interface to create gameplay elements from within Unreal Editor." Like a text scripting language, it defines object-oriented classes and objects in the engine, and Blueprint-specific markup in Unreal Engine's C++ code lets programmers build base systems that designers then extend.[1] The system and the assets made with it are often called just "Blueprints".[2]
Blueprints shipped with Unreal Engine 4, which Epic opened to the public at the Game Developers Conference on March 19, 2014. They replaced Kismet, the level scripting editor of Unreal Engine 3.[3][4] In virtual reality development, the logic of Unreal Engine's VR Template is built from Blueprint assets, including its VRPawn, its GrabComponent and its spectator view.[5]
History
Kismet in Unreal Engine 3
Unreal Engine 3 had a visual scripting tool called UnrealKismet. Epic's UE3 documentation describes it as a tool "that allows non-programmers to script complex gameplay flow in level" by connecting simple Sequence Objects into sequences. Each level had one top-level sequence, which could be split into nested subsequences.[6] Kismet sequences belonged to individual levels. Unreal Engine 4 also replaced UE3's UnrealScript language with C++ for gameplay code.[4]
Introduction in Unreal Engine 4
Epic's March 2014 release announcement listed "the Blueprint visual scripting system, giving designers and artists unprecedented power to construct gameplay logic without programming" among the tools in Unreal Engine 4, next to the material editor, the Persona animation system and Matinee.[3] In a June 2014 guest post on Epic's blog for developers moving from UE3, Matt Stafford, technical director at the Australian studio Pub Games, called Blueprint "probably the most well-published and biggest change" in the new engine. He wrote that Blueprint "replaces Kismet, prefabs, archetypes", and that UE3's AnimTrees had been replaced by a Blueprint-based system called AnimBlueprint.[4] Epic's current documentation still compares the Level Blueprint with Kismet and describes Data-Only Blueprints as "essentially a replacement for archetypes".[7]
Blueprint nativization
Unreal Engine 4.12, released on June 1, 2016, added "Cooking Blueprints to C++" as an experimental preview. Epic said the feature was meant "to reduce the VM overhead that goes into executing Blueprints" by packaging Blueprints into native source code, and that it should not yet be relied on for shipping games.[8] In Unreal Engine 4.15, released on February 15, 2017, Epic declared the feature production ready and said it had used it on its own projects, including the VR shooter Robo Recall.[9]
Nativization had two modes. Inclusive nativization converted every supported Blueprint asset in the project, and exclusive nativization converted only Blueprints the developer selected. Level Blueprints and Blueprint macros were not supported. Epic warned that inclusive nativization could grow the executable to a size "that may be unacceptable for the platform that you're shipping for", and recommended the exclusive mode for large projects shipping to hardware with limited resources.[10] The feature was dropped in Unreal Engine 5. Epic's migration guide states: "Blueprint Nativization will not exist in UE5." It adds that projects that used it should keep working, but that performance may be affected and developers would need other optimization approaches.[11] For moving a Blueprint to C++ by hand, Epic's current documentation points to Blueprint Header View, which generates a C++ header with the Blueprint's variable and function declarations; the function bodies still have to be rewritten manually.[12]
| Date | Engine version | Event |
|---|---|---|
| March 19, 2014 | Unreal Engine 4 | Public release; Blueprint visual scripting listed among the engine's tools[3] |
| June 1, 2016 | Unreal Engine 4.12 | "Cooking Blueprints to C++" (nativization) added as an experimental preview[8] |
| February 15, 2017 | Unreal Engine 4.15 | Nativization declared production ready; Epic cites its use on Robo Recall[9] |
| April 5, 2022 | Unreal Engine 5 | Release of UE5, which does not include nativization ("Blueprint Nativization will not exist in UE5")[13][11] |
How it works
Blueprints are built from graphs of nodes. Developers connect events, functions and variables with wires to define object construction, individual functions and responses to gameplay events.[2] Epic's overview says the system works with typed data such as numbers, booleans, arrays and structs, and that logic follows execution wires, so a node runs only when something explicitly tells it to run.[14]
A Blueprint Class is edited in the Blueprint Editor, which has a Viewport tab for its components, an Event Graph and a Construction Script. The Event Graph holds logic that runs in response to gameplay events such as player input. The Construction Script runs when the actor is spawned and also in the editor when the actor is moved or a property changes, so a configurable prop updates in the viewport immediately.[14] Blueprints compile to bytecode that runs on a virtual machine rather than to machine code.[12] The Blueprint Debugger can pause a project during Play-In-Editor or Simulate-In-Editor sessions at breakpoints placed on graph nodes, after which the developer can inspect variable values and step through the execution flow.[15]
Other engine systems are built on Blueprints. Epic describes the Unreal Motion Graphics (UMG) user interface system as "based on Blueprint Visual Scripting", and pawns and characters, the classes that represent a player in the world, are a type of Blueprint Class.[2] The asset types that Unreal Engine 4's nativization tool could convert included Anim Blueprints and Widget Blueprints, besides Blueprint Classes, function libraries, interfaces, structures and enums.[10]
Blueprint types
Epic's Unreal Engine 5.8 documentation describes the following Blueprint asset types.[7][14]
| Type | Description in Epic's documentation |
|---|---|
| Blueprint Class | An asset that adds functionality on top of existing gameplay classes. It defines a new class or type of actor that can be placed in maps as instances; editing the class updates every instance of it[2][7] |
| Data-Only Blueprint | A Blueprint Class that contains only the node graphs, variables and components inherited from its parent; inherited properties can be adjusted, but no new elements are added. It opens in a compact property editor and becomes a full Blueprint when code, variables or components are added[7] |
| Level Blueprint | A level-wide global event graph. Every level has one, created by default; it works much like Kismet in Unreal Engine 3, controls level streaming and Sequencer, and binds events to actors placed in the level[7] |
| Blueprint Interface | A set of named functions with no implementation that other Blueprints can add and implement. Interfaces cannot add variables, edit graphs or add components[7] |
| Blueprint Function Library | Reusable static functions that any Blueprint in the project can call[14] |
| Blueprint Macro Library | Reusable self-contained graphs that are expanded into the graphs that use them at compile time[7] |
| Blueprint Utility (Editor Utility) | An editor-only Blueprint that performs editor actions or extends editor functionality[14] |
Relationship with C++
Unreal Engine projects can be made with Blueprints only, with C++ only, or with both. Epic's guidance describes C++ as the programming language for building systems and Blueprint as the scripting language for defining behaviors on top of them, while noting that the line between the two is not strict. It lists faster iteration, easier access for designers and artists, easier discovery of API and asset references and a memory model designed to avoid crashes as Blueprint strengths. For C++ it lists faster runtime performance, access to lower-level engine functionality, text files that are easier to diff and merge, and stronger debugging tools.[12]
On performance, Epic states that C++ compiles to machine code executed directly by the CPU, while Blueprints compile to bytecode executed on a virtual machine, which adds script execution overhead. It also says the difference is "usually insignificant" and depends on context. The cases where Epic expects the largest effect are core low-level infrastructure, tight loops with heavy I/O or processing, systems that process large data sets, tick-dependent classes with many instances, and work that benefits from multi-threading, which Blueprint does not support. Epic recommends timers or delegates instead of Tick, and profiling with Unreal Insights before converting a Blueprint to C++.[12]
The recommended way to combine the two is to write a C++ base class and build Blueprint classes on top of it. C++ elements are exposed to Blueprints with metadata specifiers such as UPROPERTY(BlueprintReadWrite) and UFUNCTION(BlueprintCallable), or through a C++ subclass of UBlueprintFunctionLibrary. In the other direction, BlueprintImplementableEvent declares a function that must be implemented in Blueprint, and BlueprintNativeEvent one that Blueprint may optionally override.[12]
Use in VR and AR development
VR Template
Unreal Engine's VR Template, the starting project for new VR work in the engine, keeps its core objects in the Content > VRTemplate > Blueprints folder. The VRPawn Blueprint holds the logic for motion controller input and implements both locomotion methods in the template, teleport and snap turn. Grabbing works through a GrabComponent Blueprint that is added to any actor that should be grabbable; a GrabType enum asset offers Free, Snap and Custom modes, and the Custom mode exposes OnGrabbed and OnDropped events for logic such as two-handed grabs, dials or levers. The component can also play a haptic effect on grab. Common grab functions are abstracted into a Blueprint Interface asset, VRInteraction BPI, so the VRPawn does not need separate checks for each kind of object.[5]
The template's in-headset menu is a UMG widget, and a VR Spectator Blueprint shows an example of Spectator Screen Mode, which lets people at the PC watch and control a separate camera while someone wears the headset. Epic notes that the spectator mode does not work on mobile VR devices such as the Oculus Quest. The template is built on OpenXR, and Epic's 5.8 documentation lists Quest 1, Quest 2, Rift S, Quest with Oculus Link, Valve Index, HTC Vive and, on Android XR, the Samsung Galaxy XR as supported devices.[5]
Platform plug-ins
XR platform plug-ins expose their features as Blueprint nodes as well. Meta's documentation for the Meta XR Plugin includes a "Hand Tracking Blueprints" reference for the functions in UOculusXRInputFunctionLibrary, part of the plug-in's OculusXRInput module, with nodes such as Get Dominant Hand, Get Bone Rotation, Get Pointer Pose and Is Hand Tracking Enabled.[16] In Unreal Engine, motion controllers are accessed through a Motion Controller Component, which is typically attached to the project's Pawn.[17]
VR projects
Epic's own VR shooter Robo Recall used Blueprint nativization: the Unreal Engine 4.27 documentation says Epic "successfully used Blueprint Nativization while developing our newest VR title, Robo Recall", and the 4.15 release notes name it as one of the projects that proved the feature.[10][9] When the game launched for free on Oculus Rift with Oculus Touch in March 2017, it came with a mod editor. UploadVR wrote that because the editor was built on Unreal Engine 4, modders could use the Blueprints scripting environment to test their creations against the game.[18]
Epic's 2015 showcase post on CCP Games' EVE: Valkyrie said the Blueprint system let the game's content designers work in the engine "without bugging programmers" and iterate on ship art without long build cycles.[19] In a 2016 developer interview published by Epic, Wiktor Ohman, art lead at Quixel, described building the VR experience HOMEBOUND after receiving a Vive Pre development kit, without having used Blueprints or VR before. He wrote that he first put most of the logic in the Level Blueprint, found that it had limitations, and then moved to separate Blueprints linked together, such as a button and a door connected through the details panel.[20]
Research
Blueprints have been studied in software engineering and human-computer interaction research. Eric Chu and Loutfouz Zaman of Ontario Tech University presented BPAlt, a system for creating, saving, organizing and swapping alternative versions of Blueprints and levels for quick experimentation. In a preliminary study with 10 moderately skilled participants who prototyped game objects and mechanics in four games, they compared BPAlt with Unreal Engine alone and reported that its support for alternatives helped exploration in the developers' workflow.[21][22]
At the 2025 Mining Software Repositories conference, Kalvin Eng and Abram Hindle of the University of Alberta released a dataset of Blueprint graphs parsed from Unreal Engine's binary UAsset files. They mined 335,753 Blueprint UAsset files from 24,009 GitHub projects and noted that there had been little research on the intersection of software engineering and Blueprint-based visual programming.[23]
A controlled experiment by Jose Ignacio Trasobares, África Domingo, Lorena Arcega and Carlos Cetina, published in the proceedings of the MODELS 2026 conference on model-driven engineering, compared Blueprints with Unity Visual Scripting using 31 participants. The authors report that Blueprints outperformed Unity Visual Scripting on correctness and efficiency. Their qualitative analysis, which included focus group discussions, found that Blueprints provide a tailored abstraction layer and model-based debugging, while Unity Visual Scripting works mainly as a visual wrapper for C#. The authors also point to the two-way integration between Blueprints and C++ as a factor that reduces the "loss of control" concern that slows adoption of model-driven development.[24]
Licensing
Blueprint Visual Scripting is not sold or licensed separately; it is part of Unreal Engine and is covered by the engine's license. Epic's licensing page, in the version archived on March 23, 2026 (the live page blocked automated access when it was checked for this article), states that the engine is free for game developers until a product's gross revenue passes 1 million US dollars, after which a 5% royalty applies to lifetime gross revenue above that amount, with revenue from sales in the Epic Games Store exempt. Companies with more than 1 million US dollars of revenue in the past 12 months that use the engine commercially without shipping engine code to end users pay US$1,850 per seat per year.[25]
See also
References
- ↑ "Blueprints Visual Scripting in Unreal Engine". Unreal Engine 5.8 Documentation, Epic Developer Community. Epic Games. https://dev.epicgames.com/documentation/en-us/unreal-engine/blueprints-visual-scripting-in-unreal-engine. Retrieved 2026-10-18.
- ↑ 2.0 2.1 2.2 2.3 "Introduction to Blueprints Visual Scripting in Unreal Engine". Unreal Engine 5.8 Documentation, Epic Developer Community. Epic Games. https://dev.epicgames.com/documentation/en-us/unreal-engine/introduction-to-blueprints-visual-scripting-in-unreal-engine. Retrieved 2026-10-18.
- ↑ 3.0 3.1 3.2 "Epic Games Releases Unreal Engine 4 for All". Unreal Engine Blog. Epic Games. 2014-03-19. https://web.archive.org/web/2014/https://www.unrealengine.com/blog/epic-games-releases-unreal-engine-4-for-all. Retrieved 2026-10-18.
- ↑ 4.0 4.1 4.2 Matt Stafford (2014-06-05). "Transitioning from UE3 to UE4". Unreal Engine Blog. Epic Games. https://web.archive.org/web/20250317102306/https://www.unrealengine.com/en-US/blog/transitioning-from-ue3-to-ue4. Retrieved 2026-10-18.
- ↑ 5.0 5.1 5.2 "VR Template in Unreal Engine". Unreal Engine 5.8 Documentation, Epic Developer Community. Epic Games. https://dev.epicgames.com/documentation/en-us/unreal-engine/vr-template-in-unreal-engine. Retrieved 2026-10-18.
- ↑ "Unreal Kismet User Guide". UDK Documentation. Epic Games. https://web.archive.org/web/20190916164037/https://docs.unrealengine.com/udk/Three/KismetUserGuide.html. Retrieved 2026-10-18.
- ↑ 7.0 7.1 7.2 7.3 7.4 7.5 7.6 "Types of Blueprints in Unreal Engine". Unreal Engine 5.8 Documentation, Epic Developer Community. Epic Games. https://dev.epicgames.com/documentation/en-us/unreal-engine/types-of-blueprints-in-unreal-engine. Retrieved 2026-10-18.
- ↑ 8.0 8.1 Alexander Paschall (2016-06-01). "Unreal Engine 4.12 Released!". Unreal Engine Blog. Epic Games. https://web.archive.org/web/20240201234058/https://www.unrealengine.com/en-US/blog/unreal-engine-4-12-released. Retrieved 2026-10-18.
- ↑ 9.0 9.1 9.2 Alexander Paschall (2017-02-15). "Unreal Engine 4.15 Released!". Unreal Engine Blog. Epic Games. https://web.archive.org/web/20231217215731/https://www.unrealengine.com/en-US/blog/unreal-engine-4-15-released. Retrieved 2026-10-18.
- ↑ 10.0 10.1 10.2 "Nativizing Blueprints". Unreal Engine 4.27 Documentation, Epic Developer Community. Epic Games. https://dev.epicgames.com/documentation/en-us/unreal-engine/nativizing-blueprints?application_version=4.27. Retrieved 2026-10-18.
- ↑ 11.0 11.1 "Unreal Engine 5 Migration Guide". Unreal Engine 5.8 Documentation, Epic Developer Community. Epic Games. https://dev.epicgames.com/documentation/en-us/unreal-engine/unreal-engine-5-migration-guide. Retrieved 2026-10-18.
- ↑ 12.0 12.1 12.2 12.3 12.4 "Coding in Unreal Engine: Blueprint vs. C++". Unreal Engine 5.8 Documentation, Epic Developer Community. Epic Games. https://dev.epicgames.com/documentation/en-us/unreal-engine/coding-in-unreal-engine-blueprint-vs-cplusplus. Retrieved 2026-10-18.
- ↑ "Unreal Engine 5 is now available!". Unreal Engine Blog. Epic Games. 2022-04-05. https://web.archive.org/web/20240203105629/https://www.unrealengine.com/en-US/blog/unreal-engine-5-is-now-available. Retrieved 2026-10-18.
- ↑ 14.0 14.1 14.2 14.3 14.4 "Overview of Blueprints Visual Scripting in Unreal Engine". Unreal Engine 5.8 Documentation, Epic Developer Community. Epic Games. https://dev.epicgames.com/documentation/en-us/unreal-engine/overview-of-blueprints-visual-scripting-in-unreal-engine. Retrieved 2026-10-18.
- ↑ "Blueprint Debugger in Unreal Engine". Unreal Engine 5.8 Documentation, Epic Developer Community. Epic Games. https://dev.epicgames.com/documentation/en-us/unreal-engine/blueprint-debugger-in-unreal-engine. Retrieved 2026-10-18.
- ↑ "Hand Tracking Blueprints". Meta Horizon OS Developers. Meta. https://developers.meta.com/horizon/documentation/unreal/unreal-blueprints-hand-tracking-blueprints/. Retrieved 2026-10-18.
- ↑ "Making Interactive XR Experiences in Unreal Engine". Unreal Engine 5.8 Documentation, Epic Developer Community. Epic Games. https://dev.epicgames.com/documentation/en-us/unreal-engine/making-interactive-xr-experiences-in-unreal-engine. Retrieved 2026-10-18.
- ↑ Tal Blevins (2017-03-01). "GDC 2017: Robo Recall Available Now, With Full Mod Support". UploadVR. https://www.uploadvr.com/robo-recall-launches-mod-support-today/. Retrieved 2026-10-18.
- ↑ Shannon Drake (2015-02-27). "Eve: Valkyrie: Made for Virtual Reality". Unreal Engine Blog. Epic Games. https://web.archive.org/web/20250317090027/https://www.unrealengine.com/en-US/blog/eve-valkyrie-made-for-virtual-reality. Retrieved 2026-10-18.
- ↑ Wiktor Ohman (2016-06-03). "Homebound Developer Discusses Building From Scratch in Blueprints". Unreal Engine Developer Interviews. Epic Games. https://web.archive.org/web/20241115032447/https://www.unrealengine.com/en-US/developer-interviews/homebound-developer-discusses-building-from-scratch-in-blueprints. Retrieved 2026-10-18.
- ↑ Eric Chu, Loutfouz Zaman (2021-01). "Exploring alternatives with Unreal Engine's Blueprints Visual Scripting System". Entertainment Computing, vol. 36, article 100388. https://doi.org/10.1016/j.entcom.2020.100388. Retrieved 2026-10-18.
- ↑ Eric Chu (2019-04-01). "Exploring design alternatives in game development engines using visual programming". Master's thesis, University of Ontario Institute of Technology (Ontario Tech University). https://ontariotechu.scholaris.ca/items/25e301e6-f7a6-4700-9e52-1df1bdebec18. Retrieved 2026-10-18.
- ↑ Kalvin Eng, Abram Hindle (2025). "Under the Blueprints: Parsing Unreal Engine's Visual Scripting at Scale". 2025 IEEE/ACM 22nd International Conference on Mining Software Repositories (MSR), pp. 611-615. https://doi.org/10.1109/MSR66628.2025.00097. Retrieved 2026-10-18.
- ↑ Jose Ignacio Trasobares, África Domingo, Lorena Arcega, Carlos Cetina (2026). "The Software Modeling Paradox in Videogames: An Empirical Evaluation of Unreal Blueprints vs. Unity Visual Scripting". Proceedings of the ACM/IEEE 29th International Conference on Model Driven Engineering Languages and Systems (MODELS 2026), pp. 269-280. https://doi.org/10.1145/3822455.3830326. Retrieved 2026-10-18.
- ↑ "Unreal Engine (UE5) licensing options". Unreal Engine. Epic Games. 2026-03-23. https://web.archive.org/web/20260323205255/https://www.unrealengine.com/en-US/license. Retrieved 2026-10-18.