The Halo 3 Editing Kit includes a standalone build of that game (halo3_tag_test.exe). This build doesn't include network functionality and it intended for testing single-player maps. It includes AI debugging code not included in other published builds of the engine.

The standalone build is configuered differently from the retail build of Halo 3 that's part of MCC - bugs or features found in one might not be found in the other. For that reason maps should always receive final testing as map cache files loaded by MCC itself.

Usage

The UI works to a limited degree but not all maps can be loaded using it. Map load should be done by adding the required game_start command to init.txt. Note: you need to use the full scenario tag path as this is a tag build. For example:

; load tags\levels\solo\020_base\020_base.scenario:
game_start levels\solo\020_base\020_base
; load tags\levels\solo\040_voi\040_voi.scenario:
game_start levels\solo\040_voi\040_voi

If you want to load an stock scenario it might be easier to use the debug menu.

Once you are in-game you can change the map using the console. If you modify tags for the currently loaded map it will be automatically reloaded. You do not need to do anything to enable this behaviour, just edit and let it reload! Major changes might result in the map/game reset, minor changes should be seamless apart from a loading screen.

Use cases

This build offers a number of benefits for testing over compiling cache files or using player simulation:

  • As mentioned above tag reloading is enabled for standalone and Sapien.
  • You have access to a HaloScript console which lets you toggle globals and call functions at will.
  • It will be closer to the experience of playing through level in the cache build than player simulation.

Keyboard shortcuts/hotkeys

Some of these shortcuts are only used in certain windows or editor modes.

General

  • ~: Opens the command console.
  • Shift+Esc: Exit Standalone
  • Ctrl+M: Disables mouse look and enables the cursor
  • Shift+Return: Clears console output
  • Home Opens the debug menu. Use the arrow keys and enter to select an item. The menu or a submenu is closed using End. Entering the number or letter on the left of an has the same effect as selecting it using the arrow keys and pressing Enter
    • If you want to add items to the menu create a bin\debug_menu_user_init.txt file using the same syntax as bin\\debug_menu_init.txt. The two menus will be merged together. Don't edit the stock menu as updates will overwrite it.

Encounters and AI

  • F1: Selects the spawned actor in the center of the game view.
  • F2 Select next encounter. You can also use the console command ai_select <encounter>.
  • F3: Select previous encounter.
  • F4: When an encounter is selected, selects the next actor.
  • Shift+F4: Selects the previous actor.
  • F5: Cycles through render modes for actor sprays:
    • Actions
    • Activation status
    • None
  • F6: Erase all spawned actors, e.g. those created with ai_place.

Player Cheats

  • Left Parenthesis Teleports the player to location they are looking at. Only seems to work if it's further above the player?
  • Ctrl+C: Toggles deathless players

Debug Toggles

  • F10: Toggles profile summary. Pressing it multiple times will switch between the following modes:
    • All
    • Objects
    • Graphics
    • Occlusion
    • Effects
    • AI
    • Game-state
    • Environment Artist
    • Disabled
  • Ctrl+F10: Disables profile summary output
  • Ctrl+I: Toggles input debug
  • Shift+W: Toggles weapon debug
  • Ctrl+F11: Toggles 4x3 view in widescreen
  • Ctrl+F: Toggles display framerate
  • Ctrl+R: Toggles render model vertex
  • Ctrl+J: Saves current camera position
  • Ctrl+K: Loads last camera position
  • Ctrl+L: Teleports player to camera position
  • Ctrl+6: Toggles texture cache usage
  • Shift+6: Toggles texture cache debug mip
  • Ctrl+7: Toggles texture cache status
  • Shift+7: Toggles texture cache graph
  • Ctrl+8: Toggles geometry cache status
  • Shift+8: Toggles geometry cache graph
  • =: Increase game speed by 0.10 units
  • -: Decrease game speed by 0.10 units
  • Shift+=: Increase game speed by 1.00 units
  • Shift+-: Decrease game speed by 0.50 units

Camera Perspective

  • Backslash: While controlling a unit, press this key to posses the closest unit.
  • Right Parenthesis While controlling a unit, press this key to switch to through any existing units.

Debug director flying controls

To use the debug freecam press Backspace until you are in flying camera mode. Movement of the camera is a little different than in Sapien. You do not hold the middle mouse button and the camera moves in the direction it's pointed rather than its vertical movement being controlled exclusively with buttons.

  • Backspace: Cycle camera modes (1st person, 3rd person, flying)
  • Use the mouse to aim
  • Move with W, A, S, and D
  • Go up with R and down with F (camera relative, not world relative)
  • Increase/decrease camera speed by scrolling down/up
  • Temporarily boost camera speed by holding Ctrl
  • Toggle biped control without switching the camera back to first person by pressing the middle mouse button.

Object spawning

You can quickly spawn a variety of objects for testing:

  • Spawn all vehicles by entering cheat_all_vehicles into the console.
  • Spawn all weapons by by entering cheat_all_weapons into the console.

Known issues

  • Sound doesn't work.
  • Not all maps can be loaded using the UI, see #Usage for a workaround.
  • Levels that make use of the script function soft_ceiling_enable will cause scripts to fail to compile due to post processing not done by standalone. You can fix this by setting the script function scenario_load_all_tags to true. The only level known to be affected by this is 110_hc otherwise known as the singleplayer level named Cortana

Acknowledgements

Thanks to the following individuals for their research or contributions to this topic:

  • AKlinth (Pointing out that the debug menu is undocumented.)