Calling everything Blueprint
Storing an Actor with it’s components (Unity Prefab)? It’s a Blueprint.
The Blueprint, Event Graph? Commonly referred to as Blueprint.
Data Only Component without Logic? Correct, also a Blueprint.
Animation Controller? It’s a Blueprint, again!
Blueprints Functionality
- Poor Delegate Support: Delegate support in Blueprints is limited:
- While you can pass a delegate to a Blueprint event, there is no straightforward way to invoke it. Source
- Persistent Bugs: Some Blueprint-related bugs have been around for years without being fixed:
- Enum to Name Conversion: The conversion of enums to names is broken, an issue reported as early as 2015. Source
Blueprint Editor
- Component Ordering: There is no straightforward way to order components in the Blueprint editor, making organization difficult. Source / ➡️
- Child Actor Components: These components are buggy and unpredictable:
- For example, particle effects reset randomly, especially when running in fullscreen mode.
- Some Actors interpret their Transforms in WorldSpace in a shipped build and in ParentSpace in the Editor.
- 💡 Never use ChildActorComponents. It’s not worth it. other solutions exist.
- Construction Script Issues: The Construction Script sometimes refuses to report component offsets, leading to unexpected behavior. Source and Source
Blackboards (AI-related, but ties into Blueprints)
- API Inconsistencies: The API for Blackboards used in Behavior Trees is inconsistent:
- There are functions to clear, set, and get values from Blackboard keys, but no function to check if a value is cleared, except for vectors. The
IsVectorValueSet
function exists, but similar functions for other types do not.
- The Blackboard functions require a name parameter instead of a "Blackboard Key Selector," forcing developers to extract the name from the Key Selector struct manually.
Blueprint-Specific Annoyances
- No Blueprint Creation from AVolume Subclasses: Creating a Blueprint from an AVolume subclass consistently results in an error, claiming that the volume is zero.