Last updated: 06/10/2024, 02:17

Current Project: Rejuvenation of Hellkeeper.net

Enabling Debug Messages and Color Coding

Before we shipped Unreal 2, we disabled the message area to prevent unwanted debug messages.

Debug Code

If you're developing for U2, these messages can be very useful though. Here's how to enable debugging.

Open the file "UIScripts/UI.ui" with a text editor and search for the line ";Component=Console.MessageArea" and delete the ";" character, thus reenabling the message area (it's green text on the top corner of the screen).
Remove the "read only" attribute from UI.ui (it is set by default because the file has been copied from the installation CD) and save it.
Open the User.ini file and set these two settings to false (they default to true in the shipped game):

Save the "User.ini" file.

NPCs that encounter an error will now turn a certain color, making it easy for you to spot guys that aren't behaving properly.

You can also debug your .u2s scripts now, as seen in the above screenshot. To print out an AI script as it's executing, you add the line "debugmode xx" to the script. "debugmode 11" is especially useful here: it tells you every command an NPC is processing. If you need help with the syntax, load some of the existing scripts, for example "Script/Atlantis/AidaPostM00.u2s". Uncomment the debugmode line, save the file and play the first interlude to see what Aida is doing.

You can also enable these debug messages globally by editing your "User.ini":

[U2AI.ScriptControllerBase]
DebugMode=0
//DebugMode=1 // show internal debug info
//DebugMode=2 // dump commands and log executed commands
//DebugMode=3 // 1+2
//DebugMode=4 // dump events
//DebugMode=8 // dump control flow jumps (gotos, calls, onevent etc.)
//DebugMode=11 // dump everything but events
//DebugMode=15 // dump everything
ErrorMessageFrequency=3.0 // rate at which script errors are logged to screen in-game

"Debugmode 0" is set by default. Set it to another value to get more feedback for every guy in the map .When you're making levels, "debugmode 11" is probably all you'll ever need to debug your scripts. Here are some additional settings, straight from the .ini, that you might find useful, especially if you're writing .uc code:

[Engine.LicenseeController]
DebugFlags=0
//DebugFlags=7 // anims
//DebugFlags=16 // basic AI (incl. state changes if bTrackStateChanges, etc.)
//DebugFlags=32 // attacks/weapons
//DebugFlags=64 // events
//DebugFlags=128 // movement
//DebugFlags=176 // all except anims and events
//DebugFlags=240 // all except anims
//DebugFlags=247 // all including anims
//DebugForced=true // show forced debug messages
bTrackStateChanges=false
//bTrackStateChanges=true // log gotostate/goto information
bDebugForced=false

[U2AI.U2NPCController]
//bVisibleAI=true // show/hide AI intermediate/final destination actors

[Engine.TriggerHelper]
//bDebugMode=true // log trigger debug info

[U2.U2Pawn]
bDisableErrorColors=false
bDisableErrorMessages=false

© 2005-2026, by Hellkeeper.

Valid XHTML 1.1 & CSS 3