Skip to main content

Debugging

Things will break. Here's how to find out why.

Printing to the Output Log

Your first debugging tool is the Output Log (Window > Output Log in HELIX Studio).

Blueprint Print String Debugging
Event BeginPlayPrint StringIn String"Debug: Actor started"Print to ScreentruePrint to LogtrueText ColorDuration5.0

For formatted output, use Format String or Append nodes to build your message before passing it to Print String.

C++ equivalent (for reference)
// Use the "Print String" node
// Connect your value to the In String pin
// Check "Print to Log" to see it in Output Log
// Check "Print to Screen" to see it as an overlay

Blueprint Debugging in HELIX Studio

HELIX Studio (built on UE5) has a powerful visual debugger for Blueprints:

  1. Breakpoints -- Click the left edge of any Blueprint node to set a breakpoint (red circle). Execution pauses there during Play-in-Editor.
  2. Watch values -- While paused, hover over any pin to see its current value.
  3. Step controls -- Use the toolbar buttons to Step Into, Step Over, or Resume.
  4. Blueprint Profiler -- Window > Developer Tools > Blueprint Profiler shows execution time per node.

Enabling debug flow

When you hit Play with breakpoints set, the editor highlights the execution path with animated wires. This makes it easy to see which branch of an If/Branch node was taken.

Common Errors and Fixes

ErrorWhat it meansFix
Accessed NoneYou're using a variable that's nullAdd an IsValid check before using the reference
Cast FailedThe object isn't the type you expectedUse the Cast Failed pin to handle this case
Infinite loop detectedA loop ran too many iterationsCheck your loop exit condition; use a counter as a safety net
Module not found (Lua)require can't find your fileCheck the module path matches your folder structure
Cannot read property of undefined (JS)Accessing a field on null/undefinedAdd null checks or use optional chaining (?.)

Debugging Network Issues

Multiplayer bugs are the trickiest. Some tips:

  • Use HasAuthority to check if code is running on the server or client. Print which side you're on.
  • Watch the Net Mode in HELIX Studio's play settings. Test with "Play As Client" and multiple player windows.
  • Log on both sides. Add prints at the start of RPCs (Remote Procedure Calls) to confirm they're being received.
Blueprint Network Authority Check
Event BeginPlayHas AuthorityReturn ValueBranchConditionTrueFalsePrint StringIn String"Running on SERVER"Print StringIn String"Running on CLIENT"
C++ equivalent (for reference)
// Has Authority -> Branch
// True -> Print "Running on SERVER"
// False -> Print "Running on CLIENT"

Console Commands

Open the console in HELIX Studio with the ` (backtick) key:

CommandWhat it does
stat fpsShow FPS counter
stat unitShow frame time breakdown
UnLua.HotReloadReload all Lua scripts
ShowDebugToggle debug info overlay
log LogBlueprintUserMessages VerboseSee all Blueprint print messages

Tips

  • Remove or disable debug prints before publishing. Heavy logging tanks performance.
  • Use screen-printed debug text (Print to Screen) for real-time values you need to watch while playing.
  • When something works in single-player but breaks in multiplayer, it's almost always a replication or authority issue. Check the Client-Server Model docs.