Knowledge base
Knowledge base
Knowledge base
Free, anonymous browsing of Unreal Engine Blueprint examples, node references, and best practices. The same content the WoalzCraft plugin uses to generate Blueprints.
20 results for debug
UKismetSystemLibrary::DrawDebugLine.
Draw Debug LineUE 5.0, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7updated 2mo agoUKismetSystemLibrary::PrintString. Default duration 2.0s.
PrintStringUE 5.4, 5.7updated 2mo agoPrintStringUE 5.3, 5.4, 5.5, 5.6, 5.7updated 2mo agoInputs: 'InString' (NOT 'String' or 'Text'). Duration in seconds (-1 = default 5s). Disable in shipping builds — always gate with #if !UE_BUILD_SHIPPING or remove before release.
PrintStringUE 5.3, 5.4, 5.5, 5.6, 5.7updated 2mo agoDraw Debug SphereUE 5.0, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7updated 2mo agoFlushPersistentDebugLinesUE 5.3, 5.4, 5.5, 5.6, 5.7updated 2mo agoDealing damage: Event → ApplyDamage(TargetActor, BaseDamage, InstigatorController, DamageCauser, DamageTypeClass). Receiving: EventAnyDamage → Damage output → Subtract_FloatFloat(CurrentHealth, Damage) → FClamp(Result, 0, MaxHealth) → SET CurrentHealth → Branch(CurrentHealth <= 0) → True: DestroyActor. Initialize CurrentHealth=MaxHealth in BeginPlay.
Why: An execution pin (the white triangle pins, not data pins) has no wire feeding into or out of it. UE5 can't determine when this node should run. Fix: Click and drag from the white-triangle exec OUTPUT of one node to the white-triangle exec INPUT of the next. Every node in an execution sequence must be chained — orphan nodes are silently skipped (warnings) or crash compile (errors).
A visual scripting asset (.uasset) that defines runtime behavior without C++. Compiles to bytecode the engine executes.
MISTAKE 1: Calling GetAllActorsOfClass every Tick. FIX: Cache results in BeginPlay or use delegates/tags instead. MISTAKE 2: Not checking IsValid before using object references. FIX: Always IsValid → Branch → Is Valid before dereferencing. MISTAKE 3: Using hard references to large assets in variables. FIX: Use Soft Object References + AsyncLoadAsset. MISTAKE 4: Tick enabled on many actors doing heavy work. FIX: SetActorTickInterval(0.1) for non-critical logic, or use Timers. MISTAKE 5: Casting to specific class without checking IsValid first. FIX: CastTo has 'Cast Failed' output — always handle it. MISTAKE 6: Modifying array elements by getting then setting a copy. FIX: Use 'Array Set' with index to modify in-place. MISTAKE 7: Creating widget every time it's shown. FIX: Create once → cache reference → show/hide with SetVisibility or Add/RemoveFromParent.