19,587
edits
m (→Using the console: wording; also, "leftalt" was never a good recommendation for a key binding) |
m (link fix) |
||
(12 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
[[Image:TheDayIsMine crate.png|frame|Developer Mode's cheat code on [[Easter eggs# | [[Image:TheDayIsMine crate.png|frame|Developer Mode's cheat code on [[Easter eggs#OMM|a special crate]] in Syndicate Warehouse.]] | ||
{{UpdatedForOniX|1.0.0}} | {{UpdatedForOniX|1.0.0}} | ||
{{TOCfloat|limit=3}} | {{TOCfloat|limit=3}} | ||
Line 101: | Line 101: | ||
;Cheat lookup table | ;Cheat lookup table | ||
:When you type characters | :When you type characters on the [[Data Comlink]] screen, the text you enter is progressively compared with all the strings in the cheat table. | ||
:When and if there is a match, the corresponding confirmation message is displayed for | :When and if there is a match, the corresponding confirmation message is displayed – for activation, for recognition (when the cheat is not an on/off state but an action to perform), or for deactivation if the cheat was already on – and the cheat event takes effect when the Data Comlink is closed. | ||
:In full, each row of the cheat table consists of: | :In full, each row of the cheat table consists of: | ||
:*a pointer to the cheat code string | :*a pointer to the cheat code string | ||
Line 125: | Line 125: | ||
where the ## are joker characters (wildcard bytes). Once you've found that data (make sure it occurs only once in the file), replace the '''14''' with a '''0B'''. | where the ## are joker characters (wildcard bytes). Once you've found that data (make sure it occurs only once in the file), replace the '''14''' with a '''0B'''. | ||
Developer Mode will now be enabled/disabled every time you type '''killmequick''' | Developer Mode will now be enabled/disabled every time you type '''killmequick''' on the Data Comlink (pause) screen; you'll get "Ultra Mode Enabled" and "Ultra Mode Disabled" as confirmation messages. | ||
{{Divhide|end}} | {{Divhide|end}} | ||
Line 133: | Line 133: | ||
===Enter the cheat code=== | ===Enter the cheat code=== | ||
Enter the | Enter the [[Data Comlink]] ({{KeySmall|F1}} by default) and look for a confirmation message after typing the Developer Mode cheat '''thedayismine''' (or '''killmequick''' if you followed the DIY tutorial above). You can also just type '''x''' when the Daodan DLL or Mac Intel build is being used. | ||
==Using the console== | ==Using the console== | ||
{|border=1 cellspacing=0 cellpadding=2 style="float:right; border-color:#dddddd;" | {|border=1 cellspacing=0 cellpadding=2 style="float:right; border-color:#dddddd;" | ||
| | |{{KeyLarge|top_char=~|top_scale=117|bot_char=`|bot_scale=133}} | ||
| | |{{KeyLarge|top_char=§|bot_char=½}} | ||
| | |{{KeyLarge|top_char=°|bot_char=^}} | ||
| | |{{KeyLarge|top_char= |bot_char=2}} | ||
|- | |- | ||
|align=center style="border-width:0px"|U.S.<br>QWERTY | |align=center style="border-width:0px"|U.S.<br>QWERTY | ||
Line 149: | Line 149: | ||
By default, Oni auto-binds the "console" toggle to the key to the left of the numeric row. On U.S. QWERTY keyboards, this is the key with a grave accent, `, in the lowercase position and a tilde, ~, in the uppercase position. It is usually called the "tilde key" by users even though it's really the "grave accent key". | By default, Oni auto-binds the "console" toggle to the key to the left of the numeric row. On U.S. QWERTY keyboards, this is the key with a grave accent, `, in the lowercase position and a tilde, ~, in the uppercase position. It is usually called the "tilde key" by users even though it's really the "grave accent key". | ||
On non-U.S. keyboards, that key may not be present. The default key for | On non-U.S. keyboards, that key may not be present. The default key for some layouts is depicted to the right: | ||
:Danish QWERTY: The ½ key to the left of the numeric row. | :Danish QWERTY: The ½ key to the left of the numeric row. | ||
:German QWERTZ: The circumflex accent key, ^. | :German QWERTZ: The circumflex accent key, ^. | ||
Line 161: | Line 161: | ||
The easiest way to check whether console output works at all is to press '''F8''': the character class change is acknowledged with a console message. | The easiest way to check whether console output works at all is to press '''F8''': the character class change is acknowledged with a console message. | ||
If you don't see anything, console output is broken in your version of Oni. The old WinXP patch (no longer offered because it | If you don't see anything, console output is broken in your version of Oni. The [[IanPatt|old WinXP patch]] (no longer offered for download as an EXE because it was superseded by the Daodan DLL) was known to disable console output. In Windows demo Oni, both console output and console input are invisible (i.e. you can enter script commands, but you're "blindfolded"). | ||
==Features== | ==Features== | ||
Line 167: | Line 167: | ||
===Hotkeys=== | ===Hotkeys=== | ||
Below are Oni's hardcoded mappings for Developer Mode functions. | Below are Oni's hardcoded mappings for Developer Mode functions. Wherever you see {{KeySmall|Ctrl}}, {{KeySmall|Alt}} ({{KeySmall|Option}} on Macs) can be used instead. | ||
The "U.S. QWERTY" column gives the standard hotkeys (the keys intended by the American developers to be pressed). In the "German QWERTZ" and "French AZERTY" columns, the hotkeys differing from U.S. QWERTY are shown. If you have another type of keyboard that you would like to have incorporated into the table, feel free to add a column (or ask for it on the talk page). | The "U.S. QWERTY" column gives the standard hotkeys (the keys intended by the American developers to be pressed). In the "German QWERTZ" and "French AZERTY" columns, the hotkeys differing from U.S. QWERTY are shown. If you have another type of keyboard that you would like to have incorporated into the table, feel free to add a column (or ask for it on the talk page). | ||
If a hotkey's functionality has been restored in Windows using the Daodan DLL, it will be | If a hotkey's functionality is not present in vanilla Oni but has been restored in Windows using the Daodan DLL or on the Mac via the Feral Intel build, it will be signified with a green checkmark. Stuff that doesn't work has been grouped at the end of the table. | ||
{|class="wikitable" style="margin-left:auto; margin-right:auto;" | {|class="wikitable" style="margin-left:auto; margin-right:auto;" | ||
!U.S. QWERTY | !width=150|U.S. QWERTY | ||
!German QWERTZ | !German QWERTZ | ||
!French AZERTY | !French AZERTY | ||
Line 181: | Line 181: | ||
!width=75|Mac | !width=75|Mac | ||
|- | |- | ||
|` | |align=center|{{KeySmall|~|`}} | ||
|bgcolor=silver|^ | |align=center bgcolor=silver|{{KeySmall|°|^}} | ||
|bgcolor=silver| | |align=center bgcolor=silver|{{KeySmall| |2}} | ||
|Displays console | |Displays console | ||
|align=center|{{ckblue}} | |align=center|{{ckblue}} | ||
|align=center|{{ckblue}} | |align=center|{{ckblue}} | ||
|- | |- | ||
|colspan=3|Ctrl+Shift+O | |colspan=3 align=center|{{KeySmall|Ctrl}}+{{KeySmall|Shift}}+{{KeySmall|O}} | ||
|Hide non-(visually-)occluding quads '''(1)''' | |Hide non-(visually-)occluding quads '''(1)''' | ||
| | | | ||
|align=center|{{ | |align=center|{{ckgreen}} | ||
|- | |- | ||
|colspan=3|Ctrl+Shift+S | |colspan=3 align=center|{{KeySmall|Ctrl}}+{{KeySmall|Shift}}+{{KeySmall|S}} | ||
|Hide non-sound-occluding quads '''(2)''' | |Hide non-sound-occluding quads '''(2)''' | ||
| | | | ||
|align=center|{{ | |align=center|{{ckgreen}} | ||
|- | |- | ||
|colspan=3|Ctrl+Shift+ | |colspan=3 align=center|{{KeySmall|Ctrl}}+{{KeySmall|Shift}}+{{KeySmall|I}} | ||
|Draw invisible quads | |Draw invisible quads | ||
| | | | ||
|align=center|{{ | |align=center|{{ckgreen}} | ||
|- | |- | ||
|Ctrl+Shift+Y | |align=center|{{KeySmall|Ctrl}}+{{KeySmall|Shift}}+{{KeySmall|Y}} | ||
|bgcolor=silver| | |align=center bgcolor=silver|…+{{KeySmall|Z}} | ||
| | |align=center|…+{{KeySmall|Y}} | ||
|Performance display (includes FPS) | |Performance display (includes FPS) | ||
|align=center|{{ckblue}} | |align=center|{{ckblue}} | ||
|align=center|{{ckblue}} | |align=center|{{ckblue}} | ||
|- | |- | ||
|colspan=3|Ctrl+Shift+T | |colspan=3 align=center|{{KeySmall|Ctrl}}+{{KeySmall|Shift}}+{{KeySmall|T}} | ||
|Draw only character-colliding geometry | |Draw only character-colliding geometry | ||
| | | | ||
|align=center|{{ | |align=center|{{ckgreen}} | ||
|- | |- | ||
|colspan=3|Ctrl+Shift+R | |colspan=3 align=center|{{KeySmall|Ctrl}}+{{KeySmall|Shift}}+{{KeySmall|R}} | ||
|Draw only object-colliding geometry | |Draw only object-colliding geometry | ||
| | | | ||
|align=center|{{ | |align=center|{{ckgreen}} | ||
|- | |- | ||
|colspan=3|Ctrl+Shift+F | |colspan=3 align=center|{{KeySmall|Ctrl}}+{{KeySmall|Shift}}+{{KeySmall|F}} | ||
|Fast Mode (runs Oni at up to 24x) | |Fast Mode (runs Oni at up to 24x) | ||
|align=center|{{ckblue}} | |align=center|{{ckblue}} | ||
|align=center|{{ckblue}} | |align=center|{{ckblue}} | ||
|- | |- | ||
|colspan=3|Ctrl+Shift+G | |colspan=3 align=center|{{KeySmall|Ctrl}}+{{KeySmall|Shift}}+{{KeySmall|G}} | ||
|Draw Every Frame Mode | |Draw Every Frame Mode | ||
|align=center|{{ckblue}} | |align=center|{{ckblue}} | ||
|align=center|'''(3)''' | |align=center|'''(3)''' | ||
|- | |- | ||
|colspan=3|Ctrl+Shift+X | |colspan=3 align=center|{{KeySmall|Ctrl}}+{{KeySmall|Shift}}+{{KeySmall|X}} | ||
|Toggle show trigger volumes | |Toggle show trigger volumes | ||
|align=center|{{ | |align=center|{{ckgreen}} | ||
|align=center|{{ | |align=center|{{ckgreen}} | ||
|- | |- | ||
|colspan=3|Ctrl+Shift+Ins | |colspan=3 align=center|{{KeySmall|Ctrl}}+{{KeySmall|Shift}}+{{KeySmall|Ins}} | ||
|Add flag | |Add flag | ||
|align=center|{{ckblue}} | |align=center|{{ckblue}} | ||
|align=center|'''(4)''' | |align=center|'''(4)''' | ||
|- | |- | ||
|colspan=3|Ctrl+Shift+Del | |colspan=3 align=center|{{KeySmall|Ctrl}}+{{KeySmall|Shift}}+{{KeySmall|Del}} | ||
|Delete flag | |Delete flag | ||
|align=center|{{ckblue}} | |align=center|{{ckblue}} | ||
|align=center|{{ckblue}} | |align=center|{{ckblue}} | ||
|- | |- | ||
|colspan=3|Ctrl+Shift+U | |colspan=3 align=center|{{KeySmall|Ctrl}}+{{KeySmall|Shift}}+{{KeySmall|U}} | ||
|Unstick player | |Unstick player | ||
|align=center|{{ckblue}} | |align=center|{{ckblue}} | ||
|align=center|{{ckblue}} | |align=center|{{ckblue}} | ||
|- | |- | ||
|Ctrl+Shift+\ | |align=center|{{KeySmall|Ctrl}}+{{KeySmall|Shift}}+{{KeySmall|\}} | ||
|bgcolor=silver| | |align=center bgcolor=silver|…+{{KeySmall|‌#}} | ||
|bgcolor=silver| | |align=center bgcolor=silver|…+{{KeySmall|‌*}} | ||
| | |Engages profiler if present '''(5)''' | ||
|align=center|{{ckblue}} | |align=center|{{ckblue}} | ||
| | | | ||
|- | |- | ||
|colspan=3|Ctrl+Shift+L | |colspan=3 align=center|{{KeySmall|Ctrl}}+{{KeySmall|Shift}}+{{KeySmall|L}} | ||
|Dumps a screenshot every frame | |Dumps a screenshot every frame | ||
|align=center|{{ckblue}} | |align=center|{{ckblue}} | ||
|align=center|{{ckblue}} | |align=center|{{ckblue}} | ||
|- | |- | ||
|colspan=2|. | |colspan=2 align=center|{{KeySmall|.}} | ||
|bgcolor=silver|: | |align=center bgcolor=silver|{{KeySmall|‌:}} | ||
|Single Step Mode | |Single Step Mode | ||
|align=center|{{ckblue}} | |align=center|{{ckblue}} | ||
|align=center|{{ckblue}} | |align=center|{{ckblue}} | ||
|- | |- | ||
|/ | |align=center|{{KeySmall|/}} | ||
|bgcolor=silver| - | |align=center bgcolor=silver|{{KeySmall|-}} | ||
|bgcolor=silver|! | |align=center bgcolor=silver|{{KeySmall|!}} | ||
|Advance one step (when in Single Step Mode) | |Advance one step (when in Single Step Mode) | ||
|align=center|{{ckblue}} | |align=center|{{ckblue}} | ||
|align=center|{{ckblue}} | |align=center|{{ckblue}} | ||
|- | |- | ||
|.+/ | |align=center|{{KeySmall|.}}+{{KeySmall|/}} | ||
|bgcolor=silver|.+- | |bgcolor=silver align=center|{{KeySmall|.}}+{{KeySmall|-}} | ||
|bgcolor=silver|:+! | |bgcolor=silver align=center|{{KeySmall|‌:}}+{{KeySmall|!}} | ||
|Exit Single Step Mode (press keys simultaneously) | |Exit Single Step Mode (press keys simultaneously) | ||
|align=center|{{ckblue}} | |align=center|{{ckblue}} | ||
|align=center|{{ckblue}} | |align=center|{{ckblue}} | ||
|- | |- | ||
|colspan=3|Ctrl+Shift+Home | |colspan=3 align=center|{{KeySmall|Ctrl}}+{{KeySmall|Shift}}+{{KeySmall|Home}} | ||
|Cycle active camera | |Cycle active camera | ||
| | | | ||
|align=center|{{ckblue}} | |align=center|{{ckblue}} | ||
|- | |- | ||
|colspan=3|End | |colspan=3 align=center|{{KeySmall|End}} | ||
|Warp to camera | |Warp to camera | ||
|align=center|{{ckblue}} | |align=center|{{ckblue}} | ||
|align=center|{{ckblue}} | |align=center|{{ckblue}} | ||
|- | |- | ||
|colspan=3|Ctrl+Shift+B | |colspan=3 align=center|{{KeySmall|Ctrl}}+{{KeySmall|Shift}}+{{KeySmall|B}} | ||
|Shows current opponent's logic | |Shows current opponent's logic | ||
|align=center|{{ckblue}} | |align=center|{{ckblue}} | ||
|align=center|{{ckblue}} | |align=center|{{ckblue}} | ||
|- | |- | ||
|] | |align=center|{{KeySmall|]}} | ||
|bgcolor=silver| + | |align=center bgcolor=silver|{{KeySmall|+}} | ||
|bgcolor=silver|$ | |align=center bgcolor=silver|{{KeySmall|$}} | ||
|Freeze animation frame '''(6)''' | |Freeze animation frame '''(6)''' | ||
|align=center|{{ckblue}} | |align=center|{{ckblue}} | ||
|align=center|{{ckblue}} | |align=center|{{ckblue}} | ||
|- | |- | ||
|[ | |align=center|{{KeySmall|[}} | ||
|bgcolor=silver|Ü | |align=center bgcolor=silver|{{KeySmall|Ü}} | ||
|bgcolor=silver|^ | |align=center bgcolor=silver|{{KeySmall|^}} | ||
|Advance animation frame '''(6)''' | |Advance animation frame '''(6)''' | ||
|align=center|{{ckblue}} | |align=center|{{ckblue}} | ||
|align=center|{{ckblue}} | |align=center|{{ckblue}} | ||
|- | |- | ||
|colspan=3|F2 | |colspan=3 align=center|{{KeySmall|F2}} | ||
|Cutscene Animation 1 | |Cutscene Animation 1 | ||
|align=center|{{ckblue}} | |align=center|{{ckblue}} | ||
|align=center|{{ckblue}} | |align=center|{{ckblue}} | ||
|- | |- | ||
|colspan=3|F3 | |colspan=3 align=center|{{KeySmall|F3}} | ||
|Cutscene Animation 2 | |Cutscene Animation 2 | ||
|align=center|{{ckblue}} | |align=center|{{ckblue}} | ||
|align=center|{{ckblue}} | |align=center|{{ckblue}} | ||
|- | |- | ||
|colspan=3|F6 | |colspan=3 align=center|{{KeySmall|F6}} | ||
|Kill all AIs | |Kill all AIs | ||
|align=center|{{ckblue}} | |align=center|{{ckblue}} | ||
|align=center|{{ckblue}} | |align=center|{{ckblue}} | ||
|- | |- | ||
|colspan=3|Ctrl+F7 | |colspan=3 align=center|{{KeySmall|Ctrl}}+{{KeySmall|F7}} | ||
|Play dead | |Play dead | ||
|align=center|{{ckblue}} | |align=center|{{ckblue}} | ||
|align=center|{{ckblue}} | |align=center|{{ckblue}} | ||
|- | |- | ||
|colspan=3|F7, Shift+F7 | |colspan=3 align=center|{{KeySmall|F7}}, {{KeySmall|Shift}}+{{KeySmall|F7}} | ||
|Cycle weapons (holster to get second weapon) | |Cycle weapons (holster to get second weapon) | ||
|align=center|{{ckblue}} | |align=center|{{ckblue}} | ||
|align=center|{{ckblue}} | |align=center|{{ckblue}} | ||
|- | |- | ||
|colspan=3|F8, Shift+F8 | |colspan=3 align=center|{{KeySmall|F8}}, {{KeySmall|Shift}}+{{KeySmall|F8}} | ||
|Cycle characters | |Cycle characters | ||
|align=center|{{ckblue}} | |align=center|{{ckblue}} | ||
|align=center|{{ckblue}} | |align=center|{{ckblue}} | ||
|- | |- | ||
|colspan=3|F9 | |colspan=3 align=center|{{KeySmall|F9}} | ||
|Start recording | |Start film recording | ||
|align=center|{{ckblue}} | |align=center|{{ckblue}} | ||
|align=center|{{ckblue}} | |align=center|{{ckblue}} | ||
|- | |- | ||
|colspan=3|F10 | |colspan=3 align=center|{{KeySmall|F10}} | ||
|Stop recording | |Stop film recording | ||
|align=center|{{ckblue}} | |align=center|{{ckblue}} | ||
|align=center|{{ckblue}} | |align=center|{{ckblue}} | ||
|- | |- | ||
|colspan=3|F11 | |colspan=3 align=center|{{KeySmall|F11}} | ||
| | |Play back film recording | ||
|align=center|{{ckblue}} | |align=center|{{ckblue}} | ||
|align=center|{{ckblue}} | |align=center|{{ckblue}} | ||
|- | |- | ||
|colspan=3|Return | |colspan=3 align=center|{{KeySmall|Return}} | ||
|Cycle camera modes (see | |Cycle camera modes (see {{SectionLink||Camera controls}} for details) | ||
|align=center|{{ckblue}} | |align=center|{{ckblue}} | ||
|align=center|{{ckblue}} | |align=center|{{ckblue}} | ||
Line 368: | Line 368: | ||
!width=75|Mac | !width=75|Mac | ||
|- | |- | ||
|Ctrl+Shift+Y | |align=center|{{KeySmall|Ctrl}}+{{KeySmall|Shift}}+{{KeySmall|Y}} | ||
|bgcolor=silver| | |bgcolor=silver align=center|…+{{KeySmall|Z}} | ||
| | |align=center|…+{{KeySmall|Y}} | ||
|Secret Y '''( | |Secret Y '''(7)''' | ||
| | | | ||
| | | | ||
|- | |- | ||
|Ctrl+Shift+Z | |align=center|{{KeySmall|Ctrl}}+{{KeySmall|Shift}}+{{KeySmall|Z}} | ||
|bgcolor=silver| | |bgcolor=silver align=center|…+{{KeySmall|Y}} | ||
| | |align=center|…+{{KeySmall|Z}} | ||
|Secret Z '''( | |Secret Z '''(7)''' | ||
| | | | ||
| | | | ||
|- | |- | ||
|colspan=3|Ctrl+Shift+N | |colspan=3 align=center|{{KeySmall|Ctrl}}+{{KeySmall|Shift}}+{{KeySmall|N}} | ||
|Camera recording start | |Camera recording start | ||
| | | | ||
| | | | ||
|- | |- | ||
|colspan=2|Ctrl+Shift+M | |colspan=2 align=center|{{KeySmall|Ctrl}}+{{KeySmall|Shift}}+{{KeySmall|M}} | ||
|bgcolor=silver| | |bgcolor=silver align=center|…+{{KeySmall|,}} | ||
|Camera recording stop | |Camera recording stop | ||
| | | | ||
| | | | ||
|- | |- | ||
|colspan=2|Ctrl+Shift+, | |colspan=2 align=center|{{KeySmall|Ctrl}}+{{KeySmall|Shift}}+{{KeySmall|,}} | ||
|bgcolor=silver| | |bgcolor=silver align=center|…+{{KeySmall|‌;}} | ||
|Camera recording playback | |Camera recording playback | ||
| | | | ||
Line 409: | Line 409: | ||
| | | | ||
|- | |- | ||
|colspan=2|Ctrl+Shift+1 | |colspan=2 align=center|{{KeySmall|Ctrl}}+{{KeySmall|Shift}}+{{KeySmall|1}} | ||
|bgcolor=silver| | |bgcolor=silver align=center|…+{{KeySmall|&}} | ||
|Test One | |Test One | ||
| | | | ||
| | | | ||
|- | |- | ||
|colspan=2|Ctrl+Shift+2 | |colspan=2 align=center|{{KeySmall|Ctrl}}+{{KeySmall|Shift}}+{{KeySmall|2}} | ||
|bgcolor=silver| | |bgcolor=silver align=center|…+{{KeySmall|é}} | ||
|Test Two | |Test Two | ||
| | | | ||
| | | | ||
|- | |- | ||
|colspan=2|Ctrl+Shift+3 | |colspan=2 align=center|{{KeySmall|Ctrl}}+{{KeySmall|Shift}}+{{KeySmall|3}} | ||
|bgcolor=silver| | |bgcolor=silver align=center|…+{{KeySmall|"}} | ||
|Test Three | |Test Three | ||
| | | | ||
| | | | ||
|- | |- | ||
|colspan=2|Ctrl+Shift+4 | |colspan=2 align=center|{{KeySmall|Ctrl}}+{{KeySmall|Shift}}+{{KeySmall|4}} | ||
|bgcolor=silver| | |bgcolor=silver align=center|…+{{KeySmall|'}} | ||
|Test Four | |Test Four | ||
| | | | ||
| | | | ||
|- | |- | ||
|colspan=3|Ctrl+Shift+K | |colspan=3 align=center|{{KeySmall|Ctrl}}+{{KeySmall|Shift}}+{{KeySmall|K}} | ||
|Kill particles | |Kill particles | ||
| | | | ||
| | | | ||
|- | |- | ||
|colspan=3|Backspace | |colspan=3 align=center|{{KeySmall|Backspace}} | ||
|Enter AI debugger | |Enter AI debugger | ||
| | | | ||
| | | | ||
|- | |- | ||
|colspan=2|7 | |colspan=2 align=center|{{KeySmall|7}} | ||
|bgcolor=silver|è | |bgcolor=silver align=center|{{KeySmall|è}} | ||
|Explode One | |Explode One | ||
| | | | ||
| | | | ||
|- | |- | ||
|colspan=2|8 | |colspan=2 align=center|{{KeySmall|8}} | ||
|bgcolor=silver|_ | |bgcolor=silver align=center|{{KeySmall|_}} | ||
|Explode Two | |Explode Two | ||
| | | | ||
| | | | ||
|- | |- | ||
|colspan=2|9 | |colspan=2 align=center|{{KeySmall|9}} | ||
|bgcolor=silver|ç | |bgcolor=silver align=center|{{KeySmall|ç}} | ||
|Explode Three | |Explode Three | ||
| | | | ||
| | | | ||
|- | |- | ||
|colspan=2|0 | |colspan=2 align=center|{{KeySmall|0}} | ||
|bgcolor=silver|@ | |bgcolor=silver align=center|{{KeySmall|@}} | ||
|Explode Four | |Explode Four | ||
| | | | ||
| | | | ||
|- | |- | ||
|colspan=3|Ctrl+Shift+J | |colspan=3 align=center|{{KeySmall|Ctrl}}+{{KeySmall|Shift}}+{{KeySmall|J}} | ||
|Reset particles | |Reset particles | ||
| | | | ||
| | | | ||
|- | |- | ||
|Ctrl+Shift+W | |align=center|{{KeySmall|Ctrl}}+{{KeySmall|Shift}}+{{KeySmall|W}} | ||
|bgcolor=silver| | |bgcolor=silver align=center|…+{{KeySmall|Z}} | ||
| | |align=center|…+{{KeySmall|W}} | ||
|Drop flag and add waypoint | |Drop flag and add waypoint | ||
| | | | ||
| | | | ||
|- | |- | ||
|colspan=3|Ctrl+Shift+P | |colspan=3 align=center|{{KeySmall|Ctrl}}+{{KeySmall|Shift}}+{{KeySmall|P}} | ||
|Display particle performance | |Display particle performance | ||
| | | | ||
| | | | ||
|- | |- | ||
|Ctrl+Shift+; | |align=center|{{KeySmall|Ctrl}}+{{KeySmall|Shift}}+{{KeySmall|‌;}} | ||
|bgcolor=silver| | |bgcolor=silver align=center|…+{{KeySmall|Ö}} | ||
|bgcolor=silver| | |bgcolor=silver align=center|…+{{KeySmall|M}} | ||
|Lock particle performance display | |Lock particle performance display | ||
| | | | ||
Line 499: | Line 499: | ||
'''(3)''' On Macs, Draw Every Frame Mode speeds up the game almost to the extent of Fast Mode, but with glitchy animations. | '''(3)''' On Macs, Draw Every Frame Mode speeds up the game almost to the extent of Fast Mode, but with glitchy animations. | ||
'''(4)''' Please see | '''(4)''' Please see {{SectionLink|Talk:Developer Mode|Insert key on Macs}}. | ||
'''(5)''' | '''(5)''' The profiler is an external library that may be placed next to Oni.exe: Intel's vtuneapi.dll in Windows, Metrowerks' Profiler Carbon.lib on Classic Macs. | ||
'''(6)''' "Animation freezing" | '''(6)''' "Animation freezing" operates upon the main character and means two things: | ||
:a) The character's position and pose remain exactly the same as they were at the time of freezing, along with collision shapes (spheres and body parts) and other stuff. | :a) The character's position and pose remain exactly the same as they were at the time of freezing, along with collision shapes (spheres and body parts) and other stuff. | ||
:b) The actual character, unless "pinned" with <tt>[[chr_pin_character]]=1</tt>, will keep moving with the same velocity as at the time of freezing. | :b) The actual character, unless "pinned" with <tt>[[chr_pin_character]]=1</tt>, will keep moving with the same velocity as at the time of freezing. | ||
:*For regular (grounded) animations, the vertical velocity is zero and the horizontal velocity is determined by the animation frame that was playing at the time of freezing. | :*For regular (grounded) animations, the vertical velocity is zero and the horizontal velocity is determined by the animation frame that was playing at the time of freezing. | ||
:*If airborne (jumping or falling) the current airborne velocity (both vertical and horizontal) at the time of freezing is maintained. | :*If airborne (jumping or falling), the current airborne velocity (both vertical and horizontal) at the time of freezing is maintained. | ||
:*Wall collision is disabled, as well as gravity acceleration and the "air" timer (so you can't die from falling for too long while frozen). | :*Wall collision is disabled, as well as gravity acceleration and the "in-air" timer (so you can't die from falling for too long while frozen). | ||
:*Floor collision still works, as well as the "off" timer that starts when you step off a ledge, and the downward velocity that is applied then (see [[ONCC]] for details on this downward velocity). | :*Floor collision still works, as well as the "off" timer that starts when you step off a ledge, and the downward velocity that is applied then (see [[ONCC]] for details on this downward velocity). | ||
:If one sets <tt> | :If one sets <tt>chr_pin_character=1</tt>, then animation debugging works exactly as intended: there is no drifting, and one can conveniently advance through the frames of the current animation. | ||
:If one does not set <tt> | :If one does not set <tt>chr_pin_character=1</tt>, then the frame-freezing functionality does not allow one to study animations, and instead provides a powerful (and risky) teleporting gimmick. | ||
'''(7)''' The bindings for Secret X/Y conflict with the binding for the performance display, but this doesn't matter because the Secret X/Y/Z keys are either not implemented in Oni or were removed during development. | |||
===Camera controls=== | ===Camera controls=== | ||
Note that the camera controls have default mappings, given below, but unlike the developer hotkeys, they are | Press {{KeySmall|Enter}} to cycle through three camera modes:<br> | ||
1. Normal – camera attached to Konoko<br> | |||
2. Detached A – mouse still controls character aim<br> | |||
3. Detached B – mouse aims camera | |||
After detaching the camera with {{KeySmall|Enter}} and flying it away from Konoko, {{KeySmall|End}} teleports Konoko to the camera position and attaches the camera to her position again. If you turn off collision with "chr_nocollision 0 1" before teleporting, Konoko will not fall out of the air when teleported to a camera position that is in mid-air (just don't jump with collision off...). | |||
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 are reversed, as NumPad4 will turn the camera 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;" | {|class="wikitable" style="margin-left:auto; margin-right:auto;" | ||
|align="center"|'''Windows''' | |align="center"|'''Windows''' | ||
Line 561: | Line 569: | ||
===Runtime scripting=== | ===Runtime scripting=== | ||
Almost anything that you can write in a [[BSL]] script you can enter at runtime with the console. One major thing you can't do is register new variables and functions. You can only call existing functions and get/set the values of existing variables. "Existing" means either built-in ones (see [[BSL:Functions]] and [[BSL:Variables]]), or ones found in the level scripts, or ones defined by scripts you may have added to the current level or to [[IGMD/global]]. You can also run an external file of BSL commands by entering "+" and then the path to a file (relative or absolute). | |||
You can call existing functions | |||
While typing on the console line, you'll see a suggested autocompletion for the command you're typing; {{KeySmall|Tab}} accepts the autocomplete, and then {{KeySmall|Tab}} or {{KeySmall|Shift}}-{{KeySmall|Tab}} will cycle forward/backward through adjacent commands in ASCIIbetical order (A…Z comes before a…z). Previous commands from the current session can be retrieved with the up/down arrows. You can't insert/delete text in the middle of a command; you have to backspace to the point you want to change. Copy and paste functions are not available either. | |||
If you press an illegal key during console input (such as F1), the input display will freeze; hit | If you press an illegal key during console input (such as F1), the input display will freeze; hit Tab a few times to fix. | ||
=== | ===Cheating=== | ||
There are a few commands which you can type in as equivalents to regular cheat codes, and more that you can't do with cheats: | |||
*"chr_nocollision 0 1" and "chr_nocollision 0 0" enable/disable no-clip, allowing you to walk through walls. When in no-clip mode, you can't fall; thus, jumping makes you flail in midair, and eventually you die (so try not to jump). | |||
*"give_powerup shield" gives you a force shield (which you can't get with '''fatloot'''). | |||
*See [[Cheats]] for the BSL equivalents to various other cheats. | |||
[[Category:Engine docs]][[Category:OniX-affected articles]] | [[Category:Engine docs]][[Category:OniX-affected articles]] |