Functions and Bindings
Behavior functions are discovered from function libraries. Pure functions become expressions. Non-pure functions become actions.
Function Kinds
Section titled “Function Kinds”| Kind | Source in Unreal | Behavior role |
|---|---|---|
| Pure function | BlueprintPure / pure Blueprint function | Expression |
| Callable function | BlueprintCallable / non-pure Blueprint function | Action |
Built-in functions are listed in Function Reference.
Input Sources
Section titled “Input Sources”Inputs can be filled in three ways:
| Source | Purpose |
|---|---|
| Literal | A fixed value stored on the behavior step. |
| Bound | A value produced by an earlier expression or action. |
| Overwrite | A literal value exposed for per-mapping edits in the Tag Manager. |
Overwrite Inputs
Section titled “Overwrite Inputs”Overwrite inputs can be edited where the behavior is mapped:
- TagSet mapping
- group mapping
- tag mapping
This lets one behavior asset stay reusable while individual tags provide different thresholds, target tags, messages, or other parameters.
Outputs
Section titled “Outputs”Outputs are resolved from reflected function signatures. Expressions commonly return Result as a boolean or value output. Actions often return Result to indicate success or an affected count.
Outputs can be:
- used as inputs on later steps
- combined by operators
- selected explicitly as action triggers
- auto-detected by an action when supported by the current workflow
Custom Function Libraries
Section titled “Custom Function Libraries”Users can create their own functions through the supported behavior function library API:
- Blueprint: create a
J2 Tag Behavior Function Libraryasset. It derives fromUJ2TagBehaviorBlueprintLibrary. - C++: create a native class derived from
UJ2TagBehaviorFunctionLibraryBase.
The behavior registry discovers only these explicit extension classes and exposes their reflected inputs and outputs in the Behavior Editor. A matching class name is not enough.
Rules to keep custom functions reliable:
- Keep public function names stable.
- Prefer explicit parameter names.
- Use supported value types from Input and Output Types.
- Avoid maps, sets, delegates, interfaces, and other unsupported reflected parameter types.
- Use pure functions for expressions and callable functions for actions.
- Treat owner class paths, input names, and output names as serialized behavior asset data.
For C++ examples and the full public API boundary, see Behavior Public API.