Reference

HorizonCode Node Reference

Every built-in node, and the full Engine Call subsystem catalogue — 19 groups, ~220 functions.

Reference

Built-in Nodes

Every built-in node, grouped the way the searchable add-menu groups them. On top of these, the single generic Engine Call node reaches every engine subsystem — its own reference table follows below.

Node Category Purpose
EventEvents Host-fired entry point — OnInit, Construct, OnLevelLoaded, a UI element event, or a custom event you declare. Optional argument data-out.
FunctionEvents Declares a function: typed input parameters (as data-outs), an access modifier (public/private), and a subgraph body.
ReturnEvents Writes the owning function's return values. Terminal — no exec-out.
Get SelfEvents A Ref to this running instance.
Get Game InstanceEvents A Ref to the app-wide GameInstance, reachable from any graph.
BranchFlow An if — steers True/False exec-outs from a Bool.
SequenceFlow Runs two exec-outs in order, one fully before the next.
For EachFlow Loops an array: Body once per element (with Element + Index), then Done. The sanctioned way to reach elements of an object array.
DelayFlow Latent — pauses the chain and resumes from Completed after Duration seconds. Retriggering while pending is ignored; the resumed chain is a fresh run, so wire state through variables, not exec outputs.
Do OnceFlow Lets the chain through only the first time per instance.
Flip FlopFlow Alternates its A/B exec-outs (A first); Is A reports which side just ran.
Get VariableVariables Reads a graph variable — single value or array, any type.
Set VariableVariables Writes a graph variable; passes the value through as a data-out.
Float, Bool, Int, String, Vec2, Color, TransformLiterals Constant values edited inline on the node body. Bool/Int/Float/String also accept an inline value directly on an unwired input pin — no literal node needed.
Add, Subtract, Multiply, DivideMath Arithmetic on floats; dividing by zero returns 0 rather than faulting.
Greater, Less, EqualsMath Comparisons; Equals compares floats within a small epsilon.
And, Or, NotLogic Boolean operators.
ConcatStrings Joins two strings.
To StringStrings Converts a value to its string form.
Make Array, Array Length, Array Get, Array Append, Array Set, Array Insert, Array Remove, Array Contains, Array Index OfArrays Pure, copy-semantics array operations — each returns a new array rather than mutating in place. Array pins draw as a 2×2 grid to distinguish a list-of-T from a scalar T.
Create WidgetWidgets Instantiates a UI Widget asset by path, returns a Widget id.
Show Widget, Hide Widget, Destroy WidgetWidgets Acts on a widget by id.
Show Self, Hide SelfWidgets A widget graph shows or hides its own widget.
Create ObjectObjects & References Instantiates a HorizonCode Class asset, fires its Construct, returns a Ref.
Destroy ObjectObjects & References Destroys a referenced object (fires Destruct).
Call FunctionObjects & References Calls a function defined in this same graph.
Call Function (Ref)Objects & References Calls a public function on another running instance through a Ref.
Get (Ref) / Set (Ref)Objects & References Reads or writes a public variable on a referenced instance.
Get Property / Set PropertyObjects & References Reads or writes a property on the graph's target element — a widget element, for example.
Bind EventObjects & References Subscribes to another instance's event through a reference; when it fires, this instance's matching event runs.
Emit EventObjects & References Broadcasts an event to everyone bound to this instance.
Is ValidObjects & References Bool: is a Ref a live instance? The guard to run before touching an object that may have been destroyed.
PrintDebug Logs a value to the engine log.
Engine CallEngine The universal node — pick any function from the HE::api registry and its pins mirror that function's parameters and results. One node type exposes every engine subsystem below.

Engine surface

Engine Call Subsystems

One descriptor registry lights up Engine Call nodes and the horizon.<group>.<fn> Lua/Python APIs at the same time, so a HorizonCode graph and a script reach exactly the same engine surface. 19 groups, ~220 functions today:

Group#Functions
Debug5log, debug.line, debug.sphere, debug.box, debug.clear
Entity8getName, spawn, destroy, distance, findByName, exists, setVisible, getVisible
Transform6get/set Position, Rotation, Scale
Physics3raycast, setVelocity, isGrounded
Material2getParam, setParam
UI11element access — get/set Text, Color, Visible, Position, Size, setMaterialParam
Widget7create, destroy, show, hide, setZOrder, isVisible, callFunction
Cursor1setVisible
Math4clamp, lerp, length, distance
Random5seed, value, range, rangeInt, chance
Time3deltaTime, elapsed, frameCount
Input5keyDown, mouseButton, mousePosition, mouseDelta, scrollDelta
Camera6get/set Position, Rotation, Fov
Environment106get/set for every sky & weather field — TimeOfDay, CloudCoverage, FogDensity, WindDirection, WindSpeed, sun/moon, stars, nebula, aurora, precipitation & more (53 fields × get+set)
Audio7play, playAt, stop, stopAll, isPlaying, setBusVolume, setSoundPosition
String11length, substring, contains, find, replace, toUpper, toLower, trim, startsWith, endsWith, toNumber
File5writeText, readText, exists, remove, makeDir — sandboxed to a per-user save folder
Save11set/get Number/String/Bool, hasKey, deleteKey, saveToSlot, loadFromSlot, slotExists
Scene12load, loadAdditive, unloadZone, activate, hasPendingLevel, showZone, hideZone, zonePosition, setZonePosition, zoneScene, loadedZones, available

Scene streaming: Scene enables seamless transitions — load swaps the world only after the new one finishes building, while loadAdditive streams a zone in at a position (hidden or visible) for later toggling. The scene input on these calls is picked from a dropdown of your project's scenes, so a hand-typed path can never silently miss what the exporter packed.