Skip to content

No. 0051 TE TechEQLabs Pro

Blueprint Tick Auditor

UE 5.4–5.85/52.0.5

Module: Tech · Category: Performance · Tool ID: BlueprintTickAuditorTab

A Blueprint pays per-frame VM cost only when two things are both true: it implements an Event Tick, and ticking is enabled on it. This tool checks both conditions against the real class data and ranks the every-frame tickers — the actual cost drivers.

It is a precondition audit, not a profiler, and it is careful about that distinction.

Blueprint Tick Auditor after scanning 54 Blueprint actor classes: the 24 every-frame tickers ranked to the top with Event Tick and Tick Enabled both Yes, the classes that never tick listed below them.
Blueprint Tick Auditor after scanning 54 Blueprint actor classes: the 24 every-frame tickers ranked to the top with Event Tick and Tick Enabled both Yes, the classes that never tick listed below them.
Every Blueprint actor class in the project, ranked by what really ticks every frame.
  • Auditing a project for Blueprints that tick when they don’t need to
  • Finding the cost drivers before opening a profiler
  • Enforcing a “no unnecessary tick” standard across a team
  • Checking that Blueprints converted to interval ticking actually got the interval
  • Don’t expect per-node cost in milliseconds. That is a runtime measurement — see below.
  • Don’t assume every-frame tick is automatically bad. Some Blueprints need it. The tool ranks; you judge.
  1. Open the EQLabs Hub and search for tick or blueprint (or browse to Tech → Performance).
  2. Click the tool card.
  3. Click Scan Blueprints.

The scan loads every /Game Blueprint actor class. That is why it is not instant, and why the results are real rather than inferred — the status line says so: “Auditing Blueprint tick usage (loads each Blueprint)…”

CheckSource
Does the class implement an Event Tick?UClass::IsFunctionImplementedInScript("ReceiveTick")
Is ticking enabled?CDO PrimaryActorTick.bCanEverTick
Is it throttled?CDO PrimaryActorTick.TickInterval

Both conditions matter, and checking only one is how audits get this wrong. A Blueprint with an Event Tick node but bCanEverTick false costs nothing per frame; a Blueprint with ticking enabled but no Event Tick implemented costs nothing in the Blueprint VM.

ColumnMeaning
BlueprintThe actor class
TicksThe classification
Event TickWhether ReceiveTick is implemented
Interval (s)Tick interval, if any
Tick EnabledWhether bCanEverTick is set
The same scan with 'Show only ticking Blueprints' on: just the 24 cost drivers.
The same scan with 'Show only ticking Blueprints' on: just the 24 cost drivers.
ClassMeaning
No TickNo Event Tick implemented, or ticking disabled → no per-frame BP VM cost
ThrottledEvent Tick + ticking enabled, but on an interval (> 0 s)
Every FrameEvent Tick + ticking enabled + no interval → the cost drivers

Summary line:

412 Blueprint actor class(es) scanned | 37 tick every frame | showing 37
ControlNotes
Show only ticking BlueprintsHides Blueprints that never run an Event Tick
Scan BlueprintsLoad and audit all /Game Blueprint actor classes
Export ReportWrites the audit as an EQLabs report (JSON/CSV/HTML)

Per-node VM cost in milliseconds is a runtime measurement. It requires capturing a trace and reading it in Unreal Insights, or using the Blueprint Profiler. That attribution is deferred, not faked.

The distinction is worth being precise about, because it defines how to use the tool: it tells you which Blueprints can cost you — a static, complete, project-wide answer — and the profiler tells you which ones actually do, on your content, in your scenario. Running the profiler first over four hundred Blueprints is the slow way round; this narrows it to thirty-seven.

  1. Scan Blueprints.
  2. Enable Show only ticking Blueprints.
  3. Sort to bring Every Frame to the top — that is the candidate list.
  4. For each, ask whether it genuinely needs per-frame work:
    • Event-driven instead? Timers, delegates, and overlap events replace most polling
    • Interval acceptable? Setting a tick interval moves it to Throttled
    • Genuinely per-frame? Movement, interpolation, input — leave it
  5. Re-scan to confirm the classification changed.
  6. Profile the survivors in Insights or the Blueprint Profiler.
  7. Export Report as the record.
  • Both conditions are required for cost. An Event Tick node in a class with ticking disabled is free.
  • The scan loads every Blueprint, so it takes real time on a large project — and that cost is what makes it accurate.
  • A tick interval does not make a Blueprint free, only cheaper. Throttled still runs.
  • Every Frame is not automatically wrong. Movement and interpolation need it; the ranking exists so you spend judgement where it matters.
  • Re-scan after changes. The classification comes from the CDO, so it updates only when the Blueprint is recompiled and re-scanned.
  • Native C++ tick is out of scope. This audits the Blueprint VM precondition specifically.
Report an issue with this tool

Opens our feedback form in a new tab with the tool name pre-filled.