A downloadable tool for Windows

Buy Now$14.99 USD or more

UMG's "Create Binding" button is the most expensive convenience in Unreal. Every property binding it makes is polled by Slate every single frame, and each one that points at a Blueprint function pays a VM call to do it. Epic documents this as an anti-pattern and ships no tool that enforces it.

This plugin does three things about it, in one commandlet:

  • Finds every per-frame binding in your project - using asset-registry tags first, so Widget Blueprints with no bindings are never loaded at all.
  • Rewrites the ones it can PROVE are safe - a bound function whose graph is a single pure variable read becomes a native property binding with the same value and no Blueprint call.
  • Refuses everything else, by name - and prints the specific reason it found in your project.

The refusals are the point

"Not eligible" is not a reason anyone can act on. This tool prints eleven distinct refusal reasons, each naming the thing it actually found:

  • the bound function reads 2 variables, so no single change can drive the update
  • the bound function graph contains K2Node_CallFunction, which this tool cannot prove is free of side effects
  • widget 'NameText' is driven by animation 'NameplateFadeIn', which may fight a pushed value
  • widget 'LevelText' has no bindable 'RenderOpacityDelegate', so this is an event binding rather than a per-frame attribute binding
  • the bound path walks 2 objects, and this tool cannot prove the intermediate ones notify on change

Every ambiguity resolves toward NOT rewriting. There is no branch that promotes a binding because nothing was found to object to - the rewrite tier is granted only by a positive structural proof, and everything else falls through to a named refusal. The thing it would otherwise be rewriting is your shipping UI.

The engine gets the last word

Before it commits any patch, the tool hands the rewritten path to FEditorPropertyPath::Validate - the same check UMG's own compiler runs - and carries the engine's error text through verbatim if it is refused. The last word on whether a rewrite is legal belongs to Unreal, not to this plugin's opinion of Unreal.

The Binding Cost Map

Every run writes a self-contained HTML report: one card per Widget Blueprint, one generated mark per binding, and the refusals printed beside the bindings they belong to. The mark is drawn from a stable hash of <Widget>.<Property> - rotation, dash phase and arc sweep all derive from it - so no two bindings look alike and the plugin ships no image files at all.

The report also publishes what the scan could not vouch for. In the run pictured on this page it caught a Widget Blueprint whose asset-registry tag claimed 2 bindings while the asset held 3, and said plainly that the asset is authoritative and the tag is stale until re-saved.

CI gate

-Budget=N fails the build when more than N bindings still poll through a Blueprint call. That is what makes this a tool rather than a finder: detection is free and open source, and the budget, the gate and the guided remediation are not.

Safety

  • Dry run by default. -Apply is required before anything is written.
  • Every change is written to a manifest, and -Revert=<manifest> puts it all back.
  • It re-scans after applying - the fix pass's own success count is a claim; the re-scan is the evidence.

Technical information

  • Engine: Unreal Engine 5.8 only. That is the only version installed on the build machine and the only one the packaging gate has run against. We do not claim versions we have not built.
  • Platform: Windows (Win64). The gate ran Win64 and nothing else.
  • Editor-only plugin. Nothing ships into your packaged game.
  • Raw, readable C++. 15 source files, no obfuscation - you are a developer and you must be able to read, debug and extend it.
  • Zero warnings under RunUAT BuildPlugin, with real compile actions in the log.

Rings show structure, not time

The cost class in the report is structural - derived from the shape of the binding and its graph. Nothing here is profiled, and the report says so. This plugin will not quote you a millisecond figure it never measured.

Documentation: Full user documentation

More Unreal tools from Core Systems Asset Factory

  • Asset Sentinel - renames, moves and clamps the assets that break your standards, then re-scans to prove the repair worked
  • Material Sprawl Collapser - merges duplicate materials into one master with generated parameters
  • Migration Ledger - fixes the redirectors a migration leaves behind
  • Config Warden - resolves your ini layers in the engine's own order
  • Plugin Cleaner - disables the plugins your project never references

New from Core Systems Asset Factory: Primary Asset Doctor — rewrites the Asset Manager config that leaves GetPrimaryAssetIdList empty, then re-scans to prove the repair worked.

Purchase

Buy Now$14.99 USD or more

In order to download this tool you must purchase it at or above the minimum price of $14.99 USD. You will get access to the following files:

UMG Binding Surgeon 1.0.0 — Unreal Engine 5.8 (Win64) 68 kB
Version 1.0.0

Development log

Leave a comment

Log in with itch.io to leave a comment.