🎊 Happy 15th birthday, TCRF! 🎊

Psychonauts/Debug Menu

From The Cutting Room Floor
Jump to navigation Jump to search

This is a sub-page of Psychonauts.

Hmmm...
To do:
There's a lot here and it's very overwhelming. More detail is needed as well as in-depth testing either on Linux or with the missing code fixed up via hacking.

Present but dormant in the game's code is a debug menu that was used during development. It has many options, most of which still work when the menu is re-enabled via hacking.

Some options remain non-functional. There's a few reasons for this: - Some options don't work because they relied on debug Lua scripts that aren't shipped with the game - Some options and displays don't work because they're primarily for debugging the Xbox release and so don't function as intended on PC. (Naturally, options of this type do work if the menu is somehow accessed in the Li-Po 553 build.) - Finally, a large amount of the game's rendering code is stubbed and non-functional. As a result, many options that relied on this functionality either do nothing, partially work, or are completely broken. However, these options will work if the menu is accessed in the Linux port of the game (or the Li-Po 553 build) as that release is actually built in debug mode.

The menu is sorted into 5 tabs with a varying number of options in each. From left to right:

Custom

A versatile tab. This tab has 11 default options all defined via Lua and the game allows for additional options to be added to this menu per-level via Lua scripting. As such, the options available in this menu are usually dependent on what level or area you're currently in.

Default Options

Hmmm...
To do:
Document all the level-specific options

Million Lives - Self explanatory. Sets Raz's max and current lives to 1000000. Also has the side effect of causing the number of lives to disappear from the HUD, leaving only the icon.

All Powers - Again, self-explanatory. Grants the player all the PSI powers in the game. Works via the exact same mechanism as the button code cheat that does the same thing (in fact, the cheat version just sends a script message to the debugging entity.)

Global items - Gives you the cobweb duster, dowsing rod, smelling salts, psycho-portal and sea urchin whistle. Also gives you the mental magnet badge and enables the ability to change your levball via talking to Cruller using bacon (though doesn't actually give you the bacon). As a final bonus, it also gives you 1000 arrowheads. Similar to All Powers, the button code cheat version of this calls the same functionality.

Reset Health+Ammo - Maxes out your health, PSI blast ammo and confusion grenades. Technically, it attempts to add 100000 health and 100 of both ammo types but this effectively just means it maxes out to whatever your current limits for those are.

Entity Placer - Is intended to toggle a debug tool that would let you fly around and move around entities in the level. The tool is entirely in Lua and isn't shipped with the game so this does nothing.

Get 50 Arrowheads - Gives you 100 arrowheads and closes the menu.

Clear All LevelData - Clears out any globally saved data on the current level and reloads it.

Reenter Level as Completed - Flags the current level has having been completed and then reloads it.

Debug

Allow Debug Display - Master toggle for all debug display

Simple Debug Combo - Ostensibly this toggles whether or not "quick debug buttons" are active. Based on Lua code in Debug/Controller.lua this would probably use a separate controller, so how this works on PC if at all is unclear.

Player Only - Apparently meant to toggle whether non-player entities are simulated but all it seems to do when toggled on Windows is reset the renderer.

NPC Debug - Unknown.

Show Trigger Vol - Shows labels on trigger volumes. If debug rendering is working, it also shows their bounds.

Cy) Labels - Intended to display entity labels, but seems to do nothing.

Show Domains - If debug rendering worked, this would show the bounds of the level's "domains".

Show Targets - Intended to display some debug visuals relating to the Z-targeting system.

Show Skel - Self explanatory, would draw entity skeletons.

Show Skel Only - If show skel is enabled, this is meant to hide the entities' meshes.

Invul on/off - Toggles whether Raz can take damage

Show Nav Path - If debug rendering worked, this would show AI navigation visuals.

Show Collision - Self-explanatory but non-functional without debug rendering.

Collision Spheres - Intended to show entity collision spheres.

Rumble on/off - Self-explanatory.

Show Decals - Self-explanatory.

Debug Decals - If debug rendering worked this would show some debug visualisations related to decals.

Show Particles - Self-explanatory.

Show Dynamic Decals - Like Show Decals but for dynamic decals.

Options

Hmmm...
To do:
Document freecam controls, debug pages

The default page the debug menu opens to.

Fly Camera - Arguably one of the menu's most useful features. This unlocks the camera and allows for free control of it.

Sphere Camera - Switches the camera to one that still follows Raz but is completely unrestrained, has no collision and can zoom in and out.

Drop Player - Teleports Raz to be in front of the camera. If Fly Camera or Sphere Camera are enabled, this will disable them. Very useful in combination with Fly Camera, since it lets you teleport to anywhere in the current level.

Cy) LOD Override Level - Intended to cycle through the game's LOD levels but does nothing.

Cy) Timing/Cy) Timing Width/Sort by hier page - All intended to revolve around a debug page pertaining to "timing" but none of these work.

No HUD - Hides the HUD.

Cy) Debug - Cycles through various pages of debug information. Some work, some partially work, and some show nothing.

Cy) Display/Cy) hilit surface/Cy) hilit trig/material - Intended to cycle through various displays about geometry. If debug rendering does not work, the first 2 toggle of Cy) Display will turn the world blue and the final one will enable labels showing which entities reside in which level octree leaves.

Render

A giant page full of toggles for various rendering effects including lighting, reflections, bumpmaps and more. The other half of the page includes options that are intended to be for debugging rendering effects but most either don't work at all or are incredibly broken outside of a debug build. A partially functional wireframe option is here, too.

Misc

Return to level menu - Exits the level and goes back to the level select.

Shutdown Game - Closes the game

Pause Game - Pauses the game. The debug menu remains open and can be fiddled with while the game is paused, but the game will unpause when the menu is closed.