Blueprint Utilities
The plugin
Blueprint Utilities is a plugin designed to enhance the speed of game prototyping with the Unreal Engine. Its primary goal is to add, modify, or replace native engine systems to make them easier to handle or implement. Whenever the plugin introduces a new feature, its primary purpose is to provide quality-of-life improvements for developers who use it. Blueprint Utilities does not improve games themselves or interfere with gameplay in any way.
My Approach
Initially, knowing that I wanted to implement complex logic in Blueprints, I trained myself on creating nodes in C++ using Kismet (UK2Node). With this knowledge, I was able to create nodes that adopt special behaviors based on the user and the environment where they are placed (e.g., changing the node title based on a parameter, dynamically adding/removing pins). Once I became proficient with Kismet, I leveraged my experience with Unreal Engine to identify processes that could be simplified.
As I implemented new features, I consistently focused on the goal of designing with ease of use and accessibility in mind. To achieve this, I decided to focus on two new areas: creating a clear and illustrated online documentation site, and learning how to create editor interfaces in Unreal Engine. This allowed me to design custom elements that enhance the plugin’s usability (e.g., custom pins for complex types, project and engine options to adapt the plugin’s behavior).
Lastly, I learned to understand how code elements are structured (projects, plugins, modules, APIs, etc.) to better organize my work and improve performance for users. For example, if certain code is only useful in the editor, it would be inefficient to compile it with the game.
Modules and Features
« GetAs » Module
The first system implemented was the GetAsSystem, which allows manipulation of the output classes of all native engine accessors. This eliminates the need to perform “Casts” on the output of these nodes. This feature, while very simple, is highly practical as it saves time and improves the readability of Blueprint code.
Log Module
Math Module
The math module adds several nodes to simplify advanced calculations in Blueprints. To make the nodes more versatile and user-friendly, they were created using “wildcards,” allowing the nodes to support multiple native types (int, bool, float, double, etc.). Additionally, a context menu enables users to manually change the type.