Developer Mode: Difference between revisions

From OniGalore
Jump to navigation Jump to search
(→‎Hotkeys: I don't think those camera keys are right for Macs, but let's just do this for now)
(→‎Hotkeys: table fixes, more Mac test results, and they *did* change the cam controls!; breaking those out into better format of table)
Line 166: Line 166:
|Ctrl+Shift+o
|Ctrl+Shift+o
|
|
|Draw No-Occlusion Quads (only makes console screens disappear)
|Draw no-occlusion quads (only makes console screens disappear)
|
|
|
|
Line 172: Line 172:
|Ctrl+Shift+i
|Ctrl+Shift+i
|
|
|Draw Invisible Quads
|Draw invisible quads
|
|
|
|
Line 178: Line 178:
|Ctrl+Shift+y
|Ctrl+Shift+y
|Ctrl+Shift+z
|Ctrl+Shift+z
|Performance Display (includes FPS)
|Performance display (includes FPS)
|<center>{{ckblue}}</center>
|<center>{{ckblue}}</center>
|<center>{{ckblue}}</center>
|<center>{{ckblue}}</center>
Line 184: Line 184:
|Ctrl+Shift+t
|Ctrl+Shift+t
|
|
|Draw Character Collision
|Draw character collision
|
|
|
|
Line 190: Line 190:
|Ctrl+Shift+r
|Ctrl+Shift+r
|
|
|Draw Object Collision
|Draw object collision
|
|
|
|
Line 202: Line 202:
|Ctrl+Shift+g
|Ctrl+Shift+g
|
|
|Draw every frame
|Draw Every Frame Mode
|<center>{{ckblue}}</center>
|<center>{{ckblue}}</center>
|<center>'''(1)'''</center>
|<center>'''(1)'''</center>
Line 226: Line 226:
|Ctrl+Shift+Ins
|Ctrl+Shift+Ins
|
|
|Add Flag
|Add flag
|<center>{{ckblue}}</center>
|<center>{{ckblue}}</center>
|
|<center>'''(2)'''</center>
|-
|-
|Ctrl+Shift+Del
|Ctrl+Shift+Del
|
|
|Delete Flag
|Delete flag
|<center>{{ckblue}}</center>
|<center>{{ckblue}}</center>
|<center>{{ckblue}}</center>
|<center>{{ckblue}}</center>
Line 244: Line 244:
|Ctrl+Shift+n
|Ctrl+Shift+n
|
|
|Camera Record
|Camera recording start
|
|
|
|
Line 250: Line 250:
|Ctrl+Shift+m
|Ctrl+Shift+m
|
|
|Camera Stop
|Camera recording stop
|
|
|
|
Line 256: Line 256:
|Ctrl+Shift+,
|Ctrl+Shift+,
|
|
|Camera Playback
|Camera recording playback
|
|
|
|
Line 262: Line 262:
|?
|?
|
|
|Place Quad
|Place quad
|<center>?</center>
|<center>?</center>
|<center>?</center>
|<center>?</center>
Line 268: Line 268:
|?
|?
|
|
|Place Quad Mode
|Place quad mode
|<center>?</center>
|<center>?</center>
|<center>?</center>
|<center>?</center>
Line 274: Line 274:
|Ctrl+Shift+\
|Ctrl+Shift+\
|Ctrl+Shift+#
|Ctrl+Shift+#
|Profile Toggle (doesn't seem to have any effect)
|Profile toggle (doesn't seem to have any effect)
|<center>{{ckblue}}</center>
|<center>{{ckblue}}</center>
|
|
Line 316: Line 316:
|/
|/
| -
| -
|Single Step (when in Single Step Mode)
|Advance one step (when in Single Step Mode)
|<center>{{ckblue}}</center>
|<center>{{ckblue}}</center>
|<center>{{ckblue}}</center>
|<center>{{ckblue}}</center>
|-
|-
|.+/
|.+-
|Exit Single Step Mode (press keys simultaneously)
|<center>{{ckblue}}</center>
|
|
| Ctrl+Shift+.+-
| Exit Single Step Mode
|<center>{{ckblue}}</center>
|-
|-
|Ctrl+Shift+Home
|Ctrl+Shift+Home
|
|
|Change Active Camera
|Cycle active camera
|
|
|
|
Line 339: Line 340:
|Ctrl+Shift+k
|Ctrl+Shift+k
|
|
|Kill Particles
|Kill particles
|
|
|
|
Line 345: Line 346:
|Backspace
|Backspace
|
|
|Enter AI Debugger
|Enter AI debugger
|
|
|
|
Line 375: Line 376:
|Ctrl+Shift+j
|Ctrl+Shift+j
|
|
|Reset Particles
|Reset particles
|
|
|
|
Line 381: Line 382:
|Ctrl+Shift+w
|Ctrl+Shift+w
|
|
|Drop Flag and Add Waypoint
|Drop flag and add waypoint
|
|
|
|
Line 394: Line 395:
|
|
|Freeze (now causes camera drift while on;<br>stopping Freeze mode teleports to camera location)
|Freeze (now causes camera drift while on;<br>stopping Freeze mode teleports to camera location)
|
|<center>{{ckblue}}</center>
|<center>?</center>
|<center>{{ckblue}}</center>
|-
|-
|[
|[
|
|
|Frame Advance (now renders Konoko at camera location)
|Frame Advance (now renders Konoko at camera location)
|
|<center>{{ckblue}}</center>
|<center>?</center>
|<center>{{ckblue}}</center>
|-
|-
|Ctrl+Shift+s
|Ctrl+Shift+s
Line 407: Line 408:
|Highlight furniture (turns their textures red)
|Highlight furniture (turns their textures red)
|<center>{{ckblue}}</center>
|<center>{{ckblue}}</center>
|<center>?</center>
|
|-
|-
|F8, Shift+F8
|F8, Shift+F8
Line 417: Line 418:
|Ctrl+Shift+p
|Ctrl+Shift+p
|
|
|Perf Particle
|Display particle performance
|
|
|
|<center>?</center>
|-
|-
|Ctrl+Shift+;
|Ctrl+Shift+;
|
|
|Perf Particle Lock
|Lock particle performance display
|
|
|
|<center>?</center>
|-
|-
|=
|=
Line 431: Line 432:
|Screenshot
|Screenshot
|<center>?</center>
|<center>?</center>
|<center>?</center>
|
|-
|-
|F2
|F2
Line 447: Line 448:
|F6
|F6
|
|
|Kill All AIs
|Kill all AIs
|<center>{{ckblue}}</center>
|<center>{{ckblue}}</center>
|<center>{{ckblue}}</center>
|<center>{{ckblue}}</center>
Line 489: Line 490:
|Return/Enter
|Return/Enter
|
|
|Cycle Camera Modes:<br>
|Cycle camera modes (see table below for camera controls):<br>1. Normal<br>2. Detached A - mouse still controls character aim<br>3. Detached B - mouse aims camera
Normal<br>
Detached 1-mouse controls aim<br>
Detached 2-mouse controls camera<br>When in a detached mode, the following keys move the camera:
|<center>{{ckblue}}</center>
|<center>{{ckblue}}</center>
|<center>{{ckblue}}</center>
|<center>{{ckblue}}</center>
|}
'''(1)''' On Macs, Draw Every Frame Mode speeds up the game almost to the extent of Fast Mode, but with glitchy animations.
'''(2)''' Please see talk page section "Insert key on Macs".
====Camera controls====
Note that the camera controls have default mappings, given below, but unlike the developer hotkeys, they are '''custom-bindable'''. In fact, on Macs, the default numpad bindings ''need'' to be customized or they won't work at all. See note [[Customizing/Binding#Detached camera controls|HERE]] about how to bind these keys and fix the Mac numpad controls. Also, the definitions of panning left and right seem to be reversed, as NumPad4 will simulate the act of turning your head to the left, but its action is called "man_cam_pan_right", and vice versa for NumPad6....
{|class="wikitable" style="margin-left:auto; margin-right:auto;"
|align="center"|'''Windows'''
{|class="wikitable" style="margin-left:auto; margin-right:auto;"
!Key
!Result
|-
|-
|<ul><li>NumPad1</li></ul>
|NumPad 1/3
|
|Move camera left/right
|Move camera left
|<center>{{ckblue}}</center>
|<center>'''(2)'''</center>
|-
|-
|<ul><li>NumPad3</li></ul>
|NumPad 8/5
|
|Move camera forward/backward
|Move camera right
|<center>{{ckblue}}</center>
|<center>'''(2)'''</center>
|-
|-
|<ul><li>NumPad8</li></ul>
|NumPad -/+
|
|Move camera up/down
|Move camera forward
|<center>{{ckblue}}</center>
|<center>'''(2)'''</center>
|-
|-
|<ul><li>NumPad5</li></ul>
|NumPad 6/4
|
|Pan camera left/right
|Move camera backward
|<center>{{ckblue}}</center>
|<center>'''(2)'''</center>
|-
|-
|<ul><li>NumPad-</li></ul>
|Up/Down Arrow
|
|Pan camera up/down
|Move camera up
|}
|<center>{{ckblue}}</center>
|align="center"|'''Mac'''
|<center>'''(2)'''</center>
{|class="wikitable" style="margin-left:auto; margin-right:auto;"
!Key
!Result
|-
|-
|<ul><li>NumPad+</li></ul>
|Left/Right Arrow
|
|Move camera left/right
|Move camera down
|<center>{{ckblue}}</center>
|<center>'''(2)'''</center>
|-
|-
|<ul><li>NumPad6</li></ul>
|Up/Down Arrow
|
|Move camera forward/backward
|Pan camera left
|<center>{{ckblue}}</center>
|<center>'''(2)'''</center>
|-
|-
|<ul><li>NumPad4</li></ul>
|Page Up/Down
|
|Move camera up/down
|Pan camera right
|<center>{{ckblue}}</center>
|<center>'''(2)'''</center>
|-
|-
|<ul><li>Up Arrow</li></ul>
|NumPad 6/4
|
|Pan camera left/right
|Pan camera up
|<center>{{ckblue}}</center>
|<center>{{ckblue}}</center>
|-
|-
|<ul><li>Down Arrow</li></ul>
|NumPad 8/2
|
|Pan camera up/down
|Pan camera down
|}
|<center>{{ckblue}}</center>
|<center>{{ckblue}}</center>
|}
|}
'''(1)''' On Macs, Draw Every Frame mode speeds up the game almost to the extent of Fast mode, but with glitchy animations.
'''(2)''' On Macs, these keys will not work without custom key bindings. See note [[Customizing/Binding#Detached camera controls|HERE]] about how to bind these keys.


====Runtime scripting====
====Runtime scripting====

Revision as of 02:03, 7 May 2013

Found on a crate in
Syndicate Warehouse

Developer Mode is a bundle of features created by Bungie West to help them develop Oni -- a console, camera controls, and various debugging features -- that was associated with the cheat code thedayismine (see picture above for related Easter egg). This cheat code did not work upon Oni's release, and it was long believed that Developer Mode had been cut from retail versions of Oni; it had only been observed to work in the Mac beta that was leaked during Oni's beta testing. However, this mode is actually present in all available versions of Oni (except PS2). It just needs to be unlocked, as the community learned back in 2006.

Below you will find download links, unlocking instructions, and finally an overview of the Developer Mode's features.

Getting it to work

Download it...

In Windows, you can install the Daodan DLL to unlock Developer Mode. On the Mac, the Intel build already has Dev Mode unlocked; it can be found HERE.

Using it

First check

Cheats are normally unlocked when you finish the full version of the game. For unlocking cheats "manually" (especially necessary with the demos), see HERE

Let's say cheats are enabled and Developer Mode has been made available via the thedayismine cheatcode (or simply x with Daodan DLL or Mac Intel build).

Just type the Developer Mode cheat and watch for the confirmation message. However, you may not notice anything special when you get back to the game (although there should be occasional console messages appearing at the bottom-left).

The quickest way to tell whether Dev Mode definitely works, right after you get the confirmation message, is to exit the Diary screen and to press End. That should teleport you to where the camera is (usually back and up, possibly through walls and ceilings).

Here's another quick test, meant to see if the Control and Alt keys work fine (on Mac, use the Option key instead of Alt): Ctrl+Shift+U and Ctrl+Alt+U should both perform the "unstick" action; Konoko will shift forward by a small amount.

Console output

In Developer Mode, Oni prints debug messages about in-game events along the bottom-left of the screen. Past messages scroll up across the screen and fade. In some situations, messages don't fade (e.g. if character debugging is enabled or you are currently using the console line).

The easiest way to check whether that output works at all is to press F8: the character class change is acknowledged with a console message.

If you don't see anything, that means console output is unfortunately disabled in your version of Oni. If you're on PC retail, you may have applied Ian's patch (aka XP patch), which disables console output. On PC demo, both console output and console input are invisible (i.e. you can enter script commands, but you're "blindfolded").

Console input

U.S. QWERTY: By default, Oni auto-binds the "console" toggle to the key which on U.S. keyboards has a grave accent, `, in the lowercase position and a tilde, ~, in the uppercase position. It is usually called the "tilde key" by users, and perhaps even elsewhere on this wiki; however, you would have to hold Shift to type a tilde, and the console is activated by just pressing the key without Shift, thus it is actually the "grave accent key" which activates the console. On non-U.S. keyboards, that key may not be recognized. Just add a line like "bind leftalt to console" to key_config.txt in your Oni folder and you'll be able to open the console with that key. In some cases, this bound key will not close the console; however, pressing the grave accent key, oddly enough, may work.

German QWERTZ: By default, Oni uses the circumflex accent key, ^, for console access. On Windows, when playing Oni in windowed mode, you should use "rightalt" as your alternative console binding because "leftalt" activates the window's menu, stealing Oni's controls.


Usage

Hotkeys

Below are Oni's hardcoded mappings for Developer Mode functions. The Alt key (Option key on Macs) can be used in placed of Ctrl. Alternate mappings are welcome if you have another version of Oni that you would like to have listed below.

The QWERTY column is for the English release of Oni, for U.S. QWERTY keyboards. The QWERTZ column is for German Oni and only lists the hotkeys that are different from QWERTY on German QWERTZ keyboards; note that on German keyboards, the "Ctrl" key is named "Strg".

Hotkey (QWERTY) Hotkey (QWERTZ) Description Windows Mac
Ctrl+Shift+o Draw no-occlusion quads (only makes console screens disappear)
Ctrl+Shift+i Draw invisible quads
Ctrl+Shift+y Ctrl+Shift+z Performance display (includes FPS)
Checkmark 16px blue.png
Checkmark 16px blue.png
Ctrl+Shift+t Draw character collision
Ctrl+Shift+r Draw object collision
Ctrl+Shift+f Fast Mode (runs Oni at up to 24x)
Checkmark 16px blue.png
Checkmark 16px blue.png
Ctrl+Shift+g Draw Every Frame Mode
Checkmark 16px blue.png
(1)
Ctrl+Shift+x Secret X / (Mac only) Show trigger volumes
Checkmark 16px blue.png
Ctrl+Shift+y Secret Y
Ctrl+Shift+z Secret Z
Ctrl+Shift+Ins Add flag
Checkmark 16px blue.png
(2)
Ctrl+Shift+Del Delete flag
Checkmark 16px blue.png
Checkmark 16px blue.png
Ctrl+Shift+u Unstick player
Checkmark 16px blue.png
Checkmark 16px blue.png
Ctrl+Shift+n Camera recording start
Ctrl+Shift+m Camera recording stop
Ctrl+Shift+, Camera recording playback
? Place quad
?
?
? Place quad mode
?
?
Ctrl+Shift+\ Ctrl+Shift+# Profile toggle (doesn't seem to have any effect)
Checkmark 16px blue.png
Ctrl+Shift+l Dumps a screenshot every frame
Checkmark 16px blue.png
Checkmark 16px blue.png
Ctrl+Shift+1 Test One
Ctrl+Shift+2 Test Two
Ctrl+Shift+3 Test Three
Ctrl+Shift+4 Test Four
. (period) Single Step Mode
Checkmark 16px blue.png
Checkmark 16px blue.png
/ - Advance one step (when in Single Step Mode)
Checkmark 16px blue.png
Checkmark 16px blue.png
.+/ .+- Exit Single Step Mode (press keys simultaneously)
Checkmark 16px blue.png
Ctrl+Shift+Home Cycle active camera
End Warp to camera
Checkmark 16px blue.png
Checkmark 16px blue.png
Ctrl+Shift+k Kill particles
Backspace Enter AI debugger
7 Explode One
8 Explode Two
9 Explode Three
0 Explode Four
Ctrl+Shift+j Reset particles
Ctrl+Shift+w Drop flag and add waypoint
Ctrl+Shift+b Shows current opponent's logic
Checkmark 16px blue.png
Checkmark 16px blue.png
] Freeze (now causes camera drift while on;
stopping Freeze mode teleports to camera location)
Checkmark 16px blue.png
Checkmark 16px blue.png
[ Frame Advance (now renders Konoko at camera location)
Checkmark 16px blue.png
Checkmark 16px blue.png
Ctrl+Shift+s Highlight furniture (turns their textures red)
Checkmark 16px blue.png
F8, Shift+F8 Cycle characters
Checkmark 16px blue.png
Checkmark 16px blue.png
Ctrl+Shift+p Display particle performance
Ctrl+Shift+; Lock particle performance display
= Screenshot
?
F2 Cutscene 1
Checkmark 16px blue.png
F3 Cutscene 2
Checkmark 16px blue.png
F6 Kill all AIs
Checkmark 16px blue.png
Checkmark 16px blue.png
Ctrl+F7 Play dead
Checkmark 16px blue.png
F7, Shift+F7 Cycle weapons (holster to get second weapon)
Checkmark 16px blue.png
Checkmark 16px blue.png
F9 Start recording
Checkmark 16px blue.png
Checkmark 16px blue.png
F10 Stop recording
Checkmark 16px blue.png
Checkmark 16px blue.png
F11 Playback recording
Checkmark 16px blue.png
Checkmark 16px blue.png
` (grave accent) Displays console
Checkmark 16px blue.png
Checkmark 16px blue.png
Return/Enter Cycle camera modes (see table below for camera controls):
1. Normal
2. Detached A - mouse still controls character aim
3. Detached B - mouse aims camera
Checkmark 16px blue.png
Checkmark 16px blue.png

(1) On Macs, Draw Every Frame Mode speeds up the game almost to the extent of Fast Mode, but with glitchy animations.

(2) Please see talk page section "Insert key on Macs".

Camera controls

Note that the camera controls have default mappings, given below, but unlike the developer hotkeys, they are custom-bindable. In fact, on Macs, the default numpad bindings need to be customized or they won't work at all. See note HERE about how to bind these keys and fix the Mac numpad controls. Also, the definitions of panning left and right seem to be reversed, as NumPad4 will simulate the act of turning your head to the left, but its action is called "man_cam_pan_right", and vice versa for NumPad6....

Windows
Key Result
NumPad 1/3 Move camera left/right
NumPad 8/5 Move camera forward/backward
NumPad -/+ Move camera up/down
NumPad 6/4 Pan camera left/right
Up/Down Arrow Pan camera up/down
Mac
Key Result
Left/Right Arrow Move camera left/right
Up/Down Arrow Move camera forward/backward
Page Up/Down Move camera up/down
NumPad 6/4 Pan camera left/right
NumPad 8/2 Pan camera up/down

Runtime scripting

Basic idea

(Almost) anything you write in scripts you can enter at runtime with the console. The only thing you can't do is register new variables and functions.

You can call existing functions, check on the values of existing variables. "Existing" means either built-in ones, or part of the original level logic, or part of your own scripts for the given level.

If a function/variable was succesfully registered by Oni during level load, you will be able to refer to them from the console.

You will even be able to browse the registered variables/functions with the Tab key, while typing at the console. Tab autocompletes the command being typed, then cycles through all available commands in (hex)alphabetical order (A...Z come before a...z). Shift+Tab lets you go back.

Previous commands can be navigated with up and down arrows. You can't insert/delete text in the middle of a command : you have to use Backspace.

The only keys that have an effect while the console is active are : Escape, Enter, Backspace, (Shift+)Tab, ASCII character keys and the arrow keys.

If you press an illegal key during console input (such as F1), the input display will freeze : hit Tab a few times to fix.

Limitations

Obviously, if you have no console output, it's a bit frustrating. Even more so if console input is invisible -- you're in for some blindfolded scripting then. Still, there are a few commands which you can type in as complements to regular cheats:

chr_nocollision 0 1 and chr_nocollision 0 0 enable/disable no-clipping. When in no-clipping mode, you can't fall down; thus, jumping makes you flail in midair, and eventually you die (so be careful about that)
give_powerup shield gives you a force shield (which you can't have with fatloot)
dump_docs prints all the registered commands/variables to a file in your Oni folder (so you know just what you can type)