Overview
OmniNodes adds 317 Blueprint nodes and a few helper classes that cover the everyday gaps of Blueprint projects:
file and folder access, string and number utilities, geometry math, image and DDS loading, Ogg sound playback from disk,
runtime key rebinding, UMG helpers, level streaming instances, ragdoll and trace helpers, process launching and
system queries. Everything is C++ exposed to Blueprint, so the nodes are also callable from your own C++ code.
- Files and config — list files (recursive, filtered), load and save text, save-game slot listing, project folder paths, MD5 file hashes and typed reads/writes of the game ini.
- Strings and math — explode by multi-character separators, clipboard, number formatting, plane/line/sphere/box math, multiples, speed unit conversion and UMG anchor conversion.
- Arrays and random — wildcard Sort (structs and objects by property) and Valid Index, min/max with index, seeded random numbers including a Mersenne Twister.
- Textures and capture — load PNG, JPG, BMP, ICO, EXR, ICNS and DDS files into textures, read and save pixels, project points into scene captures and save captures to image files.
- Sound — play
.ogg files from disk at a location or attached to a component, sound class volume.
- Input — read, rebind and remove action/axis mappings at runtime, simulate keys and the mouse wheel.
- UMG and viewport — find, count and remove widgets by class, widget parent/children queries, insert into panels, viewport hit tests and deprojection, mouse position, full-screen mode and frame-rate cap.
- Actors and characters — ragdoll enter/leave, socket traces, aim offsets, clone static mesh actors, convert actors to instanced static meshes, rendered-actor queries, relative transforms.
- Levels and system — add/remove streaming level instances, launch processes and read their output, GPU and display information, OS time, platform flags.
- Helper classes — a process pipe object, a player controller with subtitle and public IP events, and a key/value lookup component.
Requirements
| Requirement | Details |
| Unreal Engine | 4.27 and 5.8 (verified clean on both) |
| Modules | OmniNodes (Runtime) |
| Dependencies | None. No other plugins are required; only engine modules are used. |
| Language | Blueprints and C++ |
| Platforms | Win64, Mac and Linux are enabled by the plugin. Win64 is built and verified by Alpha XP; Mac and Linux are supported by the code, not verified by Alpha XP. |
Installation
- Close the editor. Copy the
OmniNodes folder into your project's Plugins folder (create it if needed), or install the plugin to the engine from the launcher.
- Open the project. For C++ projects, rebuild when the editor asks you to compile the plugin.
- Open Edit > Plugins, find OmniNodes in the Blueprints category, enable it and restart the editor.
- C++ only: add
"OmniNodes" to PublicDependencyModuleNames (or PrivateDependencyModuleNames) in your module's .Build.cs.
Verifying the installRight-click in any Blueprint graph and type Get Command Line. If the node appears under OmniNodes › System, the plugin is loaded.
Quick start
Blueprint: read every text file in the Saved folder
- Add Paths Saved Dir (category OmniNodes › Paths). It returns the absolute
Saved folder.
- Add File IO Get Files, connect the folder to Root Folder Full Path and type
txt into Ext.
- Loop over the returned Files array, append each file name to the folder and call Load String from File.
- Optional: use Load String Array from File instead to get the file as an array of lines.
Blueprint: show a clock
- Feed elapsed seconds into Seconds to Hours Minutes Seconds with Trim Zeroes enabled.
- Bind the returned string to a UMG text block. 330 seconds are shown as
+05:30 (the engine timespan format includes a leading sign).
C++
All nodes are static members of UOmniNodesFunctionLibrary or UOmniNodesMathLibrary:
#include "OmniNodesFunctionLibrary.h"
#include "OmniNodesMathLibrary.h"
void UMyComponent::DumpSavedTextFiles()
{
const FString Folder = UOmniNodesFunctionLibrary::Paths__SavedDir();
TArray<FString> Files;
if (UOmniNodesFunctionLibrary::FileIO_GetFiles(Files, Folder, TEXT("txt")))
{
for (const FString& File : Files)
{
FString Text;
if (UOmniNodesFunctionLibrary::LoadStringFromFile(Text, Folder / File))
{
TArray<FString> Lines;
UOmniNodesFunctionLibrary::String__ExplodeString(Lines, Text, TEXT("\n"));
UE_LOG(LogTemp, Log, TEXT("%s: %d lines"), *File, Lines.Num());
}
}
}
const FString Clock = UOmniNodesFunctionLibrary::SecondsToHoursMinutesSeconds(330.f, true); // "+05:30"
const FVector Snapped = UOmniNodesMathLibrary::GridSnap(FVector(123.f, 47.f, 9.f), 50.f); // (100,50,0)
}
Classes & types
Besides the two static function libraries, OmniNodes provides these classes and types. In the editor, class names are shown without their prefix and with spaces (for example Omni Nodes Process Pipe).
| Node | Type | Description |
| UOmniNodesFunctionLibrary | Class | Blueprint function library holding most nodes (all static except the two Transform nodes). |
| UOmniNodesMathLibrary | Class | Blueprint function library with the vector, intersection, integer, anchor, console-variable and physics math nodes. |
| UOmniNodesProcessPipe | Class | Blueprintable object. Create it with Construct Object from Class and pass it to Create Proc to capture the process output; read it with Read from Pipe. |
| AOmniNodesPlayerController | Class | Player controller with Play Speech Sound / On Subtitles Queued and the public IP request. Use it (or a Blueprint child) as the Player Controller Class of your Game Mode. |
| UOmniNodesTMapComponent | Class | Actor component (Add Component › OmniNodes) with seven key/value tables: String to Actor, String, Integer, Vector, Rotator; Integer to Vector and Float. |
| AOmniNodesISM | Class | Actor with one Instanced Static Mesh component (Mesh), created by ISM Convert to ISMActors. |
| FOmniNodesInput | Class | Struct: action name, key, key display string and Shift/Ctrl/Alt/Cmd flags of an action mapping. |
| FOmniNodesInputAxis | Class | Struct: axis name, key, key display string and scale of an axis mapping. |
| FOmniNodesLevelStreamInstanceInfo | Class | Struct: package name, package to load, location, rotation, load/visible/blocking flags and LOD index of a streaming level instance. |
| FOmniNodesSubtitleCue | Class | Struct: subtitle text and time, passed to On Subtitles Queued. |
| EOmniNodesImageFormats | Class | Enum used by the image loaders: JPG, PNG, BMP, ICO, EXR, ICNS. |
| EOmniNodesFullScreenMode | Class | Enum used by the full-screen nodes: Regular Full Screen, Windowed Full Screen High Quality, Windowed Full Screen (Default). |
| EOmniNodesSpeedUnit | Class | Enum used by Convert Physics Linear Velocity: cm/s, ft/s, m/s, m/min, km/s, km/min, km/h, mph, knot, Mach, speed of light, yd/s. |
Files, paths & config
35 nodes. Categories are shown as they appear in the Blueprint context menu.
OmniNodes › File IO
| Node | Type | Description |
| UTCTo Local | Pure | Converts a UTC date/time to local time using the machine's current UTC offset. |
| File IO Get Files | Pure | File names in a folder, optionally filtered by extension. |
| File IO Get Files in Root and All Sub Folders | Pure | Full paths of all files in a folder and its sub-folders, optionally filtered by extension. |
| Save Game Object Get All Save Slot File Names | Pure | File names of all save-game slots in Saved/SaveGames. |
| Save Game Object Get Most Recent Save Slot File Name | Pure | File name of the most recently written save-game slot. |
| Load String Array from File | Pure | Loads a text file into an array of lines, optionally skipping empty lines. |
| Load String from File | Callable | Loads a whole text file into one string (Unicode supported). |
| File IO Save String Text to File | Callable | Saves a string to a file in a folder (created if needed), with overwrite and append options. |
| File IO Save String Array to File | Callable | Saves an array of strings as lines of a file, with overwrite and append options. |
OmniNodes › Paths
| Node | Type | Description |
| Paths Win 64Dir Binary Location | Pure | Absolute folder of the running executable. |
| Paths Windows No Editor Dir | Pure | Absolute root folder of the packaged game. |
| Paths Game Root Directory | Pure | Absolute project folder. |
| Paths Saved Dir | Pure | Absolute Saved folder of the project. |
| Paths Config Dir | Pure | Absolute project Config folder. |
| Paths Screen Shots Dir | Pure | Absolute screenshot folder. |
| Paths Logs Dir | Pure | Absolute log folder. |
OmniNodes › Screenshots
| Node | Type | Description |
| Screen Shots Rename Move Most Recent | Callable | Moves the most recent screenshot (regular or high-resolution) to a folder under a new name (.png). |
OmniNodes › MD5
| Node | Type | Description |
| Create MD5Hash | Callable | Hashes a file with MD5 and writes the hash to another file. Large files can stall the game thread. |
| Compare MD5Hash | Callable | Compares two hash files written by Create MD5 Hash; true if they match. |
OmniNodes › Custom Config Vars
| Node | Type | Description |
| Get Custom Config Var Bool | Pure | Reads a bool from a section/key of the game ini. Is Valid is false if the key is missing. |
| Get Custom Config Var Int | Pure | Reads an integer from the game ini. |
| Get Custom Config Var Float | Pure | Reads a float from the game ini. |
| Get Custom Config Var Vector | Pure | Reads a vector from the game ini. |
| Get Custom Config Var Rotator | Pure | Reads a rotator from the game ini. |
| Get Custom Config Var Color | Pure | Reads a colour from the game ini. |
| Get Custom Config Var String | Pure | Reads a string from the game ini. |
| Get Custom Config Var Vector 2D | Pure | Reads a 2D vector from the game ini. |
| Set Custom Config Var Vector 2D | Callable | Writes a 2D vector to the game ini. |
| Set Custom Config Var Bool | Callable | Writes a bool to a section/key of the game ini. |
| Set Custom Config Var Int | Callable | Writes an integer to the game ini. |
| Set Custom Config Var Float | Callable | Writes a float to the game ini. |
| Set Custom Config Var Vector | Callable | Writes a vector to the game ini. |
| Set Custom Config Var Rotator | Callable | Writes a rotator to the game ini. |
| Set Custom Config Var Color | Callable | Writes a colour to the game ini. |
| Set Custom Config Var String | Callable | Writes a string to the game ini. |
Strings & conversion
23 nodes. Categories are shown as they appear in the Blueprint context menu.
OmniNodes › String
| Node | Type | Description |
| Count Occurrances Of Sub String | Pure | Number of occurrences of a substring (case sensitivity selectable). |
| Append Inline | Callable | Appends to a string variable in place (optionally with a newline) and returns the result. |
| Is Alpha Numeric | Pure | True if the string contains only letters and digits. |
| Get String from OSClipboard | Pure | Reads text from the operating system clipboard. |
| Save String to OSClipboard | Callable | Copies text to the operating system clipboard. |
| Has Substring | Pure | True if a string contains a substring (case and search direction selectable). |
| String Combine Strings | Pure | Combines two strings with an optional separator and labels. |
| String Combine Strings Multi | Pure | Joins strings with a space; add pins for more inputs. |
| Accessor Get Name as String | Pure | Object name as a string. |
| Explode String | Pure | Splits a string by a (multi-character) separator, with optional limit and trimming. |
| Append Multiple | Pure | Concatenates strings; add pins for more inputs. |
OmniNodes › Utilities › String
| Node | Type | Description |
| IsEmpty | Pure | True if the string is empty. |
OmniNodes › Conversion
| Node | Type | Description |
| Text Is Numeric | Pure | True if the text is a number. |
| Text to Float | Pure | Converts text to a float, removing thousands separators (comma or dot style). |
| Text to Int | Pure | Converts text to an integer, removing thousands separators (comma or dot style). |
| String to Vector | Pure | Parses a vector from its string form; Is Valid reports success. |
| String to Rotator | Pure | Parses a rotator from its string form; Is Valid reports success. |
| String to Color | Pure | Parses a linear colour from its string form; Is Valid reports success. |
| Color to String | Pure | Converts a linear colour to a string. |
| Conversions Vector to Rotator | Pure | Rotation that points along a vector. |
| Conversions Rotator to Vector | Pure | Unit direction vector of a rotator. |
| Character Get Controller Rotation | Pure | Control rotation of a character's controller. |
| String Conversion Get Float as String with Precision | Pure | Formats a float with a fixed number of decimals, optionally with a leading zero. |
Math
47 nodes. Categories are shown as they appear in the Blueprint context menu.
OmniNodes › Math
| Node | Type | Description |
| Vector 2DInterp To | Pure | Smoothly interpolates a 2D vector toward a target. |
| Vector 2DInterp to Constant | Pure | Moves a 2D vector toward a target at a constant rate. |
| Map Range Clamped | Pure | Maps a value from one range to another, clamped to the output range. |
| Conversion Float to Rounded Integer | Pure | Rounds a float to the nearest integer (1.4 becomes 1, 1.6 becomes 2). |
OmniNodes › Math › Float
| Node | Type | Description |
| Float Plus Equals | Callable | Adds to a float variable in place (+=). |
| Float Minus Equals | Callable | Subtracts from a float variable in place (-=). |
| Negate Float | Pure | Reverses the sign of a float. |
| Is Even Number | Pure | True if the number is even. |
OmniNodes › Math › Integer
| Node | Type | Description |
| Int Plus Equals | Callable | Adds to an integer variable in place (+=). |
| Int Minus Equals | Callable | Subtracts from an integer variable in place (-=). |
| Negate Int | Pure | Reverses the sign of an integer. |
| Round to Lower Multiple | Pure | Rounds an integer down to a multiple (optionally skipping itself). |
| Round to Upper Multiple | Pure | Rounds an integer up to a multiple (optionally skipping itself). |
| Round to Nearest Multiple | Pure | Rounds an integer to the nearest multiple. |
| Is Power Of Two | Pure | True if the integer is a power of two. |
| Is Multiple Of | Pure | True if the integer is a multiple of a number. |
OmniNodes › Math › Vector
| Node | Type | Description |
| Set Vector Length | Pure | Scales a vector to a given length. |
| Vector Radians to Degrees | Pure | Converts each component of a vector from radians to degrees. |
| Vector Degrees to Radians | Pure | Converts each component of a vector from degrees to radians. |
| Closest Point on Sphere to Line | Pure | Closest point on a sphere to a line. |
| Closest Point on Line Seqment | Pure | Closest point on a line segment to a point. |
| Signed Distance Plane Point | Pure | Signed shortest distance from a point to a plane (normal and point). |
| Project Point on Line | Pure | Projects a point onto an infinite line. |
| Closest Points on Two Lines | Pure | Closest points between two non-parallel infinite lines; false if parallel. |
| Point on Which Side Of Line Segment | Pure | 0 if the point is on the segment, 1 if beyond the first end, 2 if beyond the second end. |
| Grid Snap | Pure | Snaps a vector to the nearest grid multiple. |
| Convert Physics Linear Velocity | Pure | Converts a velocity (cm/s) to another speed unit (m/s, km/h, mph, knots, Mach and more). |
OmniNodes › Math › Vector › Intersection
| Node | Type | Description |
| Is Point Inside Box | Pure | True if a point is inside a box (origin and extent). |
| Is Line Inside Sphere | Pure | True if a line (start, direction, length) intersects a sphere. |
| Line Extent Box Intersection | Pure | Swept box versus box test with hit location, normal and time. |
| Sphere Box Intersection | Pure | True if a sphere and a box intersect. |
| Closest Points Of Line Segments | Pure | Closest points between two line segments. |
| Line to Line Intersection | Pure | Intersection point of two coplanar infinite lines; false if they do not intersect. |
| Are Line Segments Crossing | Pure | True if two line segments cross and are not parallel. |
OmniNodes › Math › Vector2D
| Node | Type | Description |
| Equal (vector2D) | Pure | True if two 2D vectors are equal within a tolerance. |
| Not Equal (vector2D) | Pure | True if two 2D vectors differ by more than a tolerance. |
| Negate Vector 2D | Pure | Reverses the sign of a 2D vector. |
OmniNodes › Math › Plane
| Node | Type | Description |
| Create Plane | Pure | Plane through a point with a normal. |
| Point Distance to Plane | Pure | Signed distance from a point to a plane (>0 in front, <0 behind). |
| Is Point on Plane | Pure | True if a point lies on a plane within a tolerance. |
OmniNodes › Math › Anchor
| Node | Type | Description |
| Convert Anchor to Anchor | Pure | Converts UMG layout offsets from one anchor setup to another for the current viewport size. |
OmniNodes › Vector
| Node | Type | Description |
| Get Vector Relative Location | Pure | Location of a point relative to a parent location and rotation. |
OmniNodes › Rotator
| Node | Type | Description |
| Get Rotator Relative Rotation | Pure | Rotation of a child rotation relative to a parent rotation. |
OmniNodes › Transform
| Node | Type | Description |
| Transform Vector to Actor Space Angle | Pure | Rotation of a world-space vector expressed in an actor's local space. Non-static: the node needs an UOmniNodesFunctionLibrary target, so it is mainly useful from C++. |
| Transform Vector to Actor Space | Pure | World-space vector expressed in an actor's local space. Non-static: the node needs an UOmniNodesFunctionLibrary target, so it is mainly useful from C++. |
OmniNodes › Console
| Node | Type | Description |
| Get Console Variable Float | Pure | Value of a float console variable (0 if not found). |
| Get Console Variable Int | Pure | Value of an integer console variable (0 if not found). |
Arrays & random numbers
22 nodes. Categories are shown as they appear in the Blueprint context menu.
OmniNodes › Array
| Node | Type | Description |
| Sort Int Array | Callable | Sorts an integer array ascending in place. |
| Sort Float Array | Callable | Sorts a float array ascending in place. |
| Max Of Float Array | Pure | Largest value of a float array and its index (-1 when empty). |
| Max Of Int Array | Pure | Largest value of an integer array and its index (-1 when empty). |
| Min Of Float Array | Pure | Smallest value of a float array and its index (-1 when empty). |
| Min Of Int Array | Pure | Smallest value of an integer array and its index (-1 when empty). |
OmniNodes › Utilities › Array
| Node | Type | Description |
| Valid Index | Pure | Wildcard: true if an index is valid for any array. |
| Sort | Callable | Wildcard: sorts any array of numbers, bools, names, strings or text; arrays of structs or objects are sorted by a named property. |
OmniNodes › Random
| Node | Type | Description |
| Construct Rand | Callable | Seeds the random engines from a random device (or the current time if no entropy is available). |
| Seed Rand | Callable | Seeds the random engines with a value. |
| Seed Rand with Time | Callable | Seeds the random engines with the current time. |
| Seed Rand with Entropy | Callable | Seeds the random engines from the random device. |
| Rand Bool Bernoulli | Pure | Random bool with a bias (Bernoulli distribution). |
| Rand Int Uni Dis | Pure | Random integer 0 or 1. |
| Rand Int MINMAX Uni Dis | Pure | Random integer in [Min, Max]. |
| Rand Float Uni Dis | Pure | Random float in [0, 1). |
| Rand Float MINMAX Uni Dis | Pure | Random float in [Min, Max). |
| Rand Bool Bernoulli MT | Pure | Random bool with a bias, using a Mersenne Twister. |
| Rand Int Uni Dis MT | Pure | Random integer 0 or 1, using a Mersenne Twister. |
| Rand Int MINMAX Uni Dis MT | Pure | Random integer in [Min, Max], using a Mersenne Twister. |
| Rand Float Uni Dis MT | Pure | Random float in [0, 1), using a Mersenne Twister. |
| Rand Float MINMAX Uni Dis MT | Pure | Random float in [Min, Max), using a Mersenne Twister. |
Textures, capture & materials
14 nodes. Categories are shown as they appear in the Blueprint context menu.
OmniNodes › Load Texture From File
| Node | Type | Description |
| Load Texture 2D from DDSFile | Callable | Creates a texture from a .dds file (DXT1/3/5, BC4/BC5 or uncompressed 32-bit BGRA, 2D only). |
| Load Texture 2D from File | Pure | Creates a texture from a JPG, PNG, BMP, ICO, EXR or ICNS file and returns its size. |
| Load Texture 2D from File Pixels | Pure | Like Load Texture 2D from File, and also returns the pixel colours. |
| Get Pixel from Array | Pure | Colour at x/y in a pixel array (index = y * Image Height + x). |
| Save Pixels | Callable | Saves a pixel array of a given width and height as PNG or BMP. |
| Get Pixel from T2D | Callable | Reads one pixel of a texture whose compression is VectorDisplacementmap (switches the texture to non-sRGB). |
| Get Pixels Array from T2D | Callable | Reads all pixels of a texture whose compression is VectorDisplacementmap (switches the texture to non-sRGB). |
| Load Texture 2D from File by Extension | Callable | Creates a texture from an image file, choosing the decoder from the file extension. |
OmniNodes › SceneCapture
| Node | Type | Description |
| Capture Component 2D Project | Pure | Projects a world location to pixel coordinates in a scene capture component's render target. |
| Capture 2D Project | Pure | Projects a world location to pixel coordinates in a Scene Capture 2D actor's render target. |
| Capture Component 2D Save Image | Callable | Saves a scene capture component's B8G8R8A8 render target to an image file; pixels matching the clear colour become transparent. |
| Capture 2D Save Image | Callable | Saves a Scene Capture 2D actor's B8G8R8A8 render target to an image file; pixels matching the clear colour become transparent. |
OmniNodes › Material
| Node | Type | Description |
| Does Material Have Parameter | Pure | True if a material (or the parent of a material instance) has a scalar, vector or texture parameter with the name. |
OmniNodes › Post Process
| Node | Type | Description |
| Set Bloom Intensity | Callable | Overrides the bloom intensity of a post process volume. |
Sound & subtitles
7 nodes. Categories are shown as they appear in the Blueprint context menu.
OmniNodes › Sound
| Node | Type | Description |
| Sound Class Set Volume | Callable | Sets the volume of a Sound Class immediately. |
| Sound Class Get Volume | Pure | Current volume of a Sound Class (-1 if none supplied). |
| Play Sound Attached from File | Callable | Loads an .ogg file from disk and plays it attached to a component (fire and forget). |
| Play Sound at Location from File | Callable | Loads an .ogg file from disk and plays it at a world location (fire and forget). |
| Get Sound Wave from File | Callable | Creates a sound wave from an .ogg (Ogg Vorbis) file on disk. |
OmniNodes › Subtitles
| Node | Type | Description |
| Play Speech Sound | Callable | Target: AOmniNodesPlayerController. Plays a 2D sound and forwards its subtitles to On Subtitles Queued; returns the audio component. |
| On Subtitles Queued | Event | Target: AOmniNodesPlayerController. Implement to receive the subtitle cues and cue duration of a sound played with Play Speech Sound. |
UMG, viewport & graphics
26 nodes. Categories are shown as they appear in the Blueprint context menu.
OmniNodes › UMG
| Node | Type | Description |
| Get Head Mounted Display Device Type | Pure | Name of the connected XR system, or None. |
| Get All Widgets Of Class | Callable | All user widgets of a class in the world, optionally only those added to the viewport. |
| Remove All Widgets Of Class | Callable | Removes all user widgets of a class from the viewport. |
| Is Widget Of Class in Viewport | Pure | True if a user widget of the class is in the viewport. |
| Is Key Event for Key | Pure | Tests whether a key event is for a key and returns the Ctrl/Shift/Alt/Cmd states. |
| Get First Widget Of Class | Callable | First user widget of a class, optionally only top-level ones. |
| Widget Is Child Of | Callable | True if a widget is a descendant of another widget. |
| Widget Get Parent Of Class | Callable | Nearest parent user widget of a class. |
| Widget Get Children Of Class | Callable | Child user widgets of a class, immediate or all descendants. |
| Get Widget from Name | Callable | Widget inside a user widget by name. |
OmniNodes › Widget › Panel
| Node | Type | Description |
| Insert Child At | Callable | Inserts a widget into a panel at an index (the child's Construct event fires again). |
OmniNodes › Game › Viewport
| Node | Type | Description |
| Get Viewport Position | Callable | Converts a screen position (for example from a pointer event) to the viewport's local coordinates. |
| Get Viewport Position Hit Result by Channel | Callable | Trace under a viewport position on a collision channel; returns the hit. |
| Viewport Position Deproject | Callable | World origin and direction under a viewport position. |
| Horizontal FOV | Pure | Horizontal field of view from a vertical field of view and aspect ratio. |
| Vertical FOV | Pure | Vertical field of view from a horizontal field of view and aspect ratio. |
OmniNodes › Game Window
| Node | Type | Description |
| Viewport Get Mouse Position | Pure | Mouse cursor position in the player's viewport. |
| Viewport Get Center Of Viewport | Pure | Centre coordinates of the player's viewport. |
| Client Window Game Window Is Fore Ground in OS | Pure | True if the game window is the foreground window of the operating system. |
| Flash Game on Task Bar | Callable | Flashes the game window on the Windows task bar (continuously or a number of times). No effect on other platforms. |
| Rendering Freeze Game Rendering | Callable | Stops game rendering (game logic keeps running). |
| Rendering Un Freeze Game Rendering | Callable | Resumes game rendering after Freeze Game Rendering. |
OmniNodes › Graphics Settings
| Node | Type | Description |
| Graphics Settings Set Frame Rate Cap | Callable | Enables frame-rate smoothing with a maximum frame rate. |
| Graphics Settings Set Frame Rate to be Unbound | Callable | Disables frame-rate smoothing (frame rate limited only by hardware). |
| Graphics Settings Full Screen Get | Pure | Current full-screen mode (r.FullScreenMode). |
| Graphics Settings Full Screen Set | Callable | Sets the full-screen mode (r.FullScreenMode). |
Actors, components & characters
49 nodes. Categories are shown as they appear in the Blueprint context menu.
OmniNodes › Actor
| Node | Type | Description |
| Get Time in Play | Pure | Seconds since the actor was created (-1 for no actor). |
| Spawn Actor Into Level | Callable | Spawns an actor of a class into a specific loaded streaming level (by package name). |
| Get Static Mesh Vertex Locations | Pure | World-space vertex positions of a static mesh component's complex collision mesh. |
| Add to Actor Rotation | Callable | Adds a rotation to an actor in its local space. |
| Clone Static Mesh Actor | Callable | Spawns a copy of a Static Mesh Actor (mesh, materials, physics) with optional location and rotation offsets. |
| Actor Teleport to Actor | Pure | Moves an actor to another actor's location and rotation. |
| Visibility Get Rendered Actors | Callable | Actors rendered within the last N seconds. |
| Visibility Get Not Rendered Actors | Callable | Actors not rendered within the last N seconds. |
| Data Get Character Bone Locations | Callable | World locations of every bone of a character's mesh. |
| Get Creation Time | Pure | World time at which the actor was created. |
| Get Time Alive | Pure | Seconds the actor has existed. |
| PrestreamTextures (Actor) | Callable | Forces all mips of the actor's mesh textures to stream in for a number of seconds. |
| Get Actor Relative Location | Pure | Location of a child actor relative to a parent actor's transform. |
| Get Actor Relative Rotation | Pure | Rotation of a child actor relative to a parent actor. |
OmniNodes › Actor › Get Immediate Attached Actors
| Node | Type | Description |
| Actor Get Attached Actors | Pure | Actors directly attached to a parent actor. |
OmniNodes › Components
| Node | Type | Description |
| PrestreamTextures (Component) | Callable | Forces all mips of a mesh component's textures to stream in (0 seconds = 30 days). |
| Get Component Relative Location | Pure | Location of a child component relative to a parent component's transform. |
| Get Component Relative Rotation | Pure | Rotation of a child component relative to a parent component. |
OmniNodes › Components › SkinnedMesh
| Node | Type | Description |
| Get All Bone Names Below Bone | Callable | Names of all bones below a bone in a skeletal mesh component; returns the count. |
OmniNodes › Character
| Node | Type | Description |
| Character Movement Set Max Move Speed | Callable | Sets the character movement component's maximum walk speed. |
| Accessor Get Player Controller | Pure | Player controller possessing a character. |
| Accessor Get Character Skeletal Mesh | Callable | Mesh component of a character. |
OmniNodes › Aim Offset
| Node | Type | Description |
| Animation Get Aim Offsets | Callable | Aim-offset pitch and yaw from the character's control rotation, in actor space (for a -90..90 blend space). |
| Animation Get Aim Offsets from Rotation | Callable | Aim-offset pitch and yaw for a given rotation, in the character's actor space. |
OmniNodes › 3d Lines
| Node | Type | Description |
| Draw Thick 3DLine from Character Socket | Callable | Draws a thick debug line from a socket of the character's mesh to a point. |
| Draw Thick 3DLine from Socket | Callable | Draws a thick debug line from a skeletal mesh socket to a point. |
| Draw Thick 3DLine Between Actors | Callable | Draws a thick debug line between two actors. |
OmniNodes › Traces
| Node | Type | Description |
| Trace Data Get Trace Data from Character Socket | Callable | Start/end points for a trace from a character mesh socket along a rotation and length (does not trace); optional debug draw. |
| Trace Data Get Trace Data from Skeletal Mesh Socket | Callable | Start/end points for a trace from a skeletal mesh socket along a rotation and length (does not trace); optional debug draw. |
| Traces Character Mesh Trace Closest Bone | Callable | Line trace that, on hitting a character, traces its mesh and returns the impact data and the closest bone. |
| Traces Character Mesh Trace Closest Socket | Callable | Line trace that, on hitting a character, traces its mesh and returns the impact data and the closest socket. |
OmniNodes › Instanced Static Mesh
| Node | Type | Description |
| ISM Get All ISMActors | Pure | All AOmniNodesISM actors in the world. |
| ISM Convert to ISMActors | Callable | Converts all actors of a class into one instanced static mesh actor per static mesh asset, optionally destroying the originals. |
OmniNodes › Physics
| Node | Type | Description |
| Physics Update Angular Damping | Callable | Changes the angular damping of a simulating component's body at runtime. |
| Get Distance to Collision | Pure | Distance from a point to a component's collision and the closest point on it (-1 if the component has no collision). |
| Get Distance Between Component Surfaces | Pure | Approximate distance between the collision surfaces of two components and the two surface points. |
| Physics Enter Rag Doll | Callable | Puts a character's mesh into ragdoll (requires a physics asset). |
| Physics Leave Rag Doll | Callable | Ends ragdoll: moves the capsule to the mesh, re-attaches the mesh with the initial relative transform and optionally sets Falling movement. |
| Physics Is Rag Doll | Callable | True if any body of the character's mesh is simulating physics. |
| Physics Get Locationof Rag Doll | Callable | World location of the root bone of a ragdolling character. |
| Physics Initialize Rag Doll | Callable | Stores the mesh's initial relative location and rotation for later use with Leave Rag Doll. |
| Physics Update Character Camera to Ragdoll Location | Callable | Interpolates the character (and its camera) toward the ragdoll's location with a height offset. |
| Get Velocity at Point | Callable | World velocity of a point on a physics-simulated component or bone, optionally drawing debug info. |
| Set Center Of Mass Offset | Callable | Offsets the physics-calculated centre of mass of a component or bone. |
OmniNodes › AI
| Node | Type | Description |
| AI Move to with Filter | Callable | Moves a pawn's AI controller to a location using an optional navigation query filter class (per-move filtering of custom nav areas). |
| Get Closest Actor Of Class in Radius Of Location | Pure | Closest actor of a class within a radius of a location. Is Valid is false when none is found. |
| Get Closest Actor Of Class in Radius Of Actor | Pure | Closest actor of a class within a radius of another actor (the centre actor itself is ignored). |
OmniNodes › Team
| Node | Type | Description |
| Get Generic Team Id | Pure | Team id of an actor implementing the generic team agent interface (255 = no team). |
| Set Generic Team Id | Callable | Sets the team id of an actor implementing the generic team agent interface. |
Level streaming & networking
11 nodes. Categories are shown as they appear in the Blueprint context menu.
OmniNodes › LevelStreaming
| Node | Type | Description |
| Get Level Instance Info | Callable | Package names, transform, load/visible flags and LOD index of a dynamic streaming level. |
| Add to Streaming Levels | Callable | Adds a streaming level from a level instance info and flushes level streaming. |
| Remove from Streaming Levels | Callable | Unloads and removes a streaming level by package name. |
| Hide Streaming Level | Callable | Hides a dynamic streaming level. |
| Unload Streaming Level | Callable | Unloads a dynamic streaming level. |
OmniNodes › Networking
| Node | Type | Description |
| Get Player Unique Net ID | Pure | Player id from the first player controller's player state (-1 if unavailable). |
| Player State Get Player ID | Callable | Player id from a player controller's player state. |
| Is Stand Alone | Pure | True if the world runs as a standalone (non-networked) game. |
OmniNodes › Controller
| Node | Type | Description |
| Player Controller Get Controller ID | Callable | Controller id of a player controller's local player. |
OmniNodes › Player Controller
| Node | Type | Description |
| Get My IP Send Request | Callable | Target: AOmniNodesPlayerController. Requests this machine's public IP address from the public ipify service; false if the request could not start. |
| Get My IP ~ Data Received | Event | Target: AOmniNodesPlayerController. Implement to receive the public IP address (or an error text). |
System, process & GPU
42 nodes. Categories are shown as they appear in the Blueprint context menu.
OmniNodes › System
| Node | Type | Description |
| Create Proc | Callable | Launches an external program with arguments, detach/hidden options, priority and working directory. Returns the process id; pass a Process Pipe to capture its output. |
| Get Process Application Name | Pure | Executable name of a process id (for example one returned by Create Proc). |
| Is Process Running | Pure | True if the process id is still running. |
| Get Unix Time Stamp | Pure | Converts a UTC date/time to a Unix timestamp (seconds since 1970-01-01 UTC, int64). |
| Get UTCFrom Unix Time Stamp | Pure | Converts a Unix timestamp (int64 seconds) to a UTC date/time. |
| Set Component Tick Rate | Callable | Sets a component's tick interval in seconds at runtime. |
| Get Command Line | Pure | Returns the command line the engine was started with. |
| Server Travel | Callable | Server travel to a map (asynchronous level change), optionally skipping player notifications. |
| Get Player Start | Callable | Finds a Player Start actor by its object name. |
| Get Names Of Loaded Levels | Pure | Package names of all streaming levels that are currently loaded and visible. |
| Open URL in Web Browser | Callable | Opens a URL in the operating system's default web browser. |
| Operating System Get Current Platform | Pure | Booleans telling which platform the game is running on (Windows, Mac, Linux, iOS, Android and others). |
| Real World Time Get Current OSTime | Pure | Current local date/time as a string (with milliseconds) plus its individual components. |
| Real World Time Get Time Passed Since Previous Time | Pure | Milliseconds, seconds, minutes and hours elapsed since a time string returned by Get Current OS Time. |
| Real World Time Get Difference Between Times | Pure | Difference between two time strings returned by Get Current OS Time. |
| Seconds to Hours Minutes Seconds | Pure | Formats seconds in the engine timespan format with a leading sign (+00:05:30); Trim Zeroes removes zero hours (+05:30). |
| Options Menu Get Display Adapter Screen Resolutions | Pure | Supported screen resolutions (widths, heights, refresh rates in parallel arrays), optionally distinct per refresh rate. |
| World Type in Editor World | Pure | True when the world context is an editor world. |
| World Type in PIEWorld | Pure | True when the world context is a Play In Editor world. |
| World Type in Game Instance World | Pure | True when the world context is a standalone game world. |
| Viewport Enable World Rendering | Callable | Turns 3D world rendering on or off for a player's viewport; UMG and HUD keep drawing (useful behind loading screens). |
OmniNodes › Process
| Node | Type | Description |
| Create Pipe | Callable | Target: UOmniNodesProcessPipe. Creates the read/write pipe pair (does nothing if it already exists). |
| Close Pipe | Callable | Target: UOmniNodesProcessPipe. Closes the pipes. Also called automatically when the object is destroyed. |
| Read from Pipe | Callable | Target: UOmniNodesProcessPipe. Reads the output (STDOUT/STDERR) written so far by the process. Returns false if the pipe was not created. |
| Pipe Is Valid | Pure | Target: UOmniNodesProcessPipe. True while both pipe handles exist. |
OmniNodes › GPU
| Node | Type | Description |
| Get GPUBrand | Pure | Primary GPU brand string reported by the platform. |
| Get RHIAdapter Name | Pure | Name of the graphics adapter used by the renderer. |
| Get GPUInfo | Pure | Device description, provider, driver version and driver date of the active graphics adapter. |
| Get User Display Adapter Brand | Pure | Whether the active GPU is AMD, NVIDIA or Intel; for other vendors returns Is Unknown and the vendor id. |
OmniNodes › Misc
| Node | Type | Description |
| Create Texture Render Target 2D | Callable | Creates a new render target texture (size, clear colour, gamma) for runtime scene captures. |
| Load Object from Asset Path | Callable | Loads an asset from a reference path (the format of right-click > Copy Reference). Store the result to keep it alive. |
| Get Object Path | Pure | Reference path of an object, in the format accepted by Load Object from Asset Path. |
| Loops Reset BPRunaway Counter | Callable | Resets the Blueprint infinite-loop (runaway) counter. Use with great care in intentionally long loops. |
| Project World to Screen Position | Callable | Projects a world location to screen coordinates of the first local player's viewport. |
| Create Primitive Component | Callable | Creates and registers a primitive component of the given class in the world at a location and rotation. |
| Draw Circle | Callable | Draws a debug circle from line segments around a centre, in the plane defined by the Y and Z axes. |
| Get Box Containing World Points | Pure | Centre and extent of the box that encloses all supplied points. |
| Selection Selection Box | Callable | Marquee selection: actors (optionally filtered by class) whose screen position lies inside the box between two screen points. |
| Calcs Closest Point to Source Point | Callable | Closest point in an array to a source point and its distance (-1 when the array is empty). |
| Lens Flare Get Lens Flare Offsets | Callable | Pitch, yaw and roll difference between the player's view rotation and the direction to a light source. |
| Distance to Surface Distace Of Point to Mesh Surface | Callable | Distance from a point to the collision surface of a Static Mesh Actor and the closest surface point (-1 on error). |
| Mobility Set Scene Comp Mobility | Callable | Changes the mobility (Static / Stationary / Movable) of a scene component. |
TMap component
28 nodes. Categories are shown as they appear in the Blueprint context menu.
OmniNodes › TMap Component › Add
| Node | Type | Description |
| String Actor Add Pair | Callable | Target: UOmniNodesTMapComponent. Adds or replaces the value for a key in the String → Actor table. |
| String String Add Pair | Callable | Target: UOmniNodesTMapComponent. Adds or replaces the value for a key in the String → String table. |
| String Int Add Pair | Callable | Target: UOmniNodesTMapComponent. Adds or replaces the value for a key in the String → Integer table. |
| String Vector Add Pair | Callable | Target: UOmniNodesTMapComponent. Adds or replaces the value for a key in the String → Vector table. |
| String Rotator Add Pair | Callable | Target: UOmniNodesTMapComponent. Adds or replaces the value for a key in the String → Rotator table. |
| Int Vector Add Pair | Callable | Target: UOmniNodesTMapComponent. Adds or replaces the value for a key in the Integer → Vector table. |
| Int Float Add Pair | Callable | Target: UOmniNodesTMapComponent. Adds or replaces the value for a key in the Integer → Float table. |
OmniNodes › TMap Component › Get
| Node | Type | Description |
| String Actor Get | Pure | Target: UOmniNodesTMapComponent. Value for a key in the String → Actor table; Is Valid is false if the key is missing. |
| String String Get | Pure | Target: UOmniNodesTMapComponent. Value for a key in the String → String table; Is Valid is false if the key is missing. |
| String Int Get | Pure | Target: UOmniNodesTMapComponent. Value for a key in the String → Integer table; Is Valid is false if the key is missing. |
| String Vector Get | Pure | Target: UOmniNodesTMapComponent. Value for a key in the String → Vector table; Is Valid is false if the key is missing. |
| String Rotator Get | Pure | Target: UOmniNodesTMapComponent. Value for a key in the String → Rotator table; Is Valid is false if the key is missing. |
| Int Vector Get | Pure | Target: UOmniNodesTMapComponent. Value for a key in the Integer → Vector table; Is Valid is false if the key is missing. |
| Int Float Get | Pure | Target: UOmniNodesTMapComponent. Value for a key in the Integer → Float table; Is Valid is false if the key is missing. |
OmniNodes › TMap Component › Remove
| Node | Type | Description |
| String Actor Remove | Callable | Target: UOmniNodesTMapComponent. Removes a key from the String → Actor table. |
| String String Remove | Callable | Target: UOmniNodesTMapComponent. Removes a key from the String → String table. |
| String Int Remove | Callable | Target: UOmniNodesTMapComponent. Removes a key from the String → Integer table. |
| String Vector Remove | Callable | Target: UOmniNodesTMapComponent. Removes a key from the String → Vector table. |
| String Rotator Remove | Callable | Target: UOmniNodesTMapComponent. Removes a key from the String → Rotator table. |
| Int Vector Remove | Callable | Target: UOmniNodesTMapComponent. Removes a key from the Integer → Vector table. |
| Int Float Remove | Callable | Target: UOmniNodesTMapComponent. Removes a key from the Integer → Float table. |
OmniNodes › TMap Component › Clear
| Node | Type | Description |
| String Actor Clear | Callable | Target: UOmniNodesTMapComponent. Empties the String → Actor table. |
| String String Clear | Callable | Target: UOmniNodesTMapComponent. Empties the String → String table. |
| String Int Clear | Callable | Target: UOmniNodesTMapComponent. Empties the String → Integer table. |
| String Vector Clear | Callable | Target: UOmniNodesTMapComponent. Empties the String → Vector table. |
| String Rotator Clear | Callable | Target: UOmniNodesTMapComponent. Empties the String → Rotator table. |
| Int Vector Clear | Callable | Target: UOmniNodesTMapComponent. Empties the Integer → Vector table. |
| Int Float Clear | Callable | Target: UOmniNodesTMapComponent. Empties the Integer → Float table. |
Troubleshooting
| Symptom | Cause and fix |
| An OmniNodes node does not appear in the context menu. | Make sure the plugin is enabled (Edit > Plugins > Blueprints). Nodes of UOmniNodesProcessPipe, AOmniNodesPlayerController and UOmniNodesTMapComponent only appear when you drag from a reference of that class or turn off Context Sensitive. |
| Get Pixel from T2D / Get Pixels Array from T2D return false. | The texture's Compression Settings must be VectorDisplacementmap (RGBA8); a Message Log entry is written in PIE when it is not. The nodes also turn sRGB off on the texture. |
| The key rebinding nodes return empty arrays. | They read and write the legacy action/axis mappings of the Input Settings. Projects that only use Enhanced Input mapping contexts have no legacy mappings to list or rebind. |
| Get Static Mesh Vertex Locations returns false or no positions. | The node reads the complex-collision triangle mesh of the component's body setup. The static mesh needs complex (per-polygon) collision data. |
| Get Sound Wave from File returns None. | Only Ogg Vorbis (.ogg) files are decoded. Check the absolute path and the file format; WAV and MP3 files are not supported by this node. |
| Flash Game on Task Bar has no effect. | It is implemented for Windows only and does nothing on Mac and Linux. In Play In Editor the editor window is flashed, which is less visible than in a standalone game. |
| Get My IP ~ Data Received never fires. | The event belongs to AOmniNodesPlayerController: set it (or a Blueprint child) as the Player Controller Class of the Game Mode, call Get My IP Send Request on it and make sure the machine has internet access. |
| An object returned by Load Object from Asset Path disappears. | Store the returned object in a variable; otherwise it can be garbage collected. Use the exact path format produced by right-click > Copy Reference. |