Skip to content

Functions and Bindings

Pro Behavior

Behavior functions are discovered from function libraries. Pure functions become expressions. Non-pure functions become actions.

KindSource in UnrealBehavior role
Pure functionBlueprintPure / pure Blueprint functionExpression
Callable functionBlueprintCallable / non-pure Blueprint functionAction

Built-in functions are listed in Function Reference.

Inputs can be filled in three ways:

SourcePurpose
LiteralA fixed value stored on the behavior step.
BoundA value produced by an earlier expression or action.
OverwriteA literal value exposed for per-mapping edits in the Tag Manager.

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 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

Users can create their own functions through the supported behavior function library API:

  • Blueprint: create a J2 Tag Behavior Function Library asset. It derives from UJ2TagBehaviorBlueprintLibrary.
  • 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.