BP-TICK-001

WarningBlueprintEvent Tick Usage

Flags Blueprints executing expensive operations on Event Tick. The problem isn’t Tick itself—it’s doing heavy work 60+ times per second per actor instance.


Why It Matters

Cost = Frequency × Multiplicity

A 0.3ms operation on Tick with 20 actors:

TargetFrame BudgetGameplay Headroom
60 FPS16.67ms~5-8ms
90 FPS (VR)11.11ms~3-5ms

Modern UE5 features (Lumen, VSM, Nanite) already consume significant frame time.


When It’s Acceptable


The Fix

Option 1: Timers (Most Common)

Replace per-frame with interval:

Before: Event Tick → GetAllActors → Find nearest
After:  Set Timer (0.5s, Looping) → GetAllActors → Find nearest

60 calls/sec → 2 calls/sec = 30× improvement

Option 2: Event-Driven

Replace polling with events:

Before: Event Tick → Get Health → Compare → Update UI
After:  Bind to OnHealthChanged → Update UI

Zero Tick cost.

Option 3: Disable When Idle

OnCombatStart → Set Actor Tick Enabled (true)
OnCombatEnd → Set Actor Tick Enabled (false)

Expensive Operations

OperationCostAvoid on Tick
GetAllActorsOfClass0.2-0.5msYes
LineTrace0.05-0.15msLimit frequency
Cast to Blueprint0.03-0.08msCache result

Configuration

Project Settings → Blueprint Health Analyzer → BP-TICK-001 → 15.0