Customizing/Binding
How to bind (from OniCentral)
When you want to add your own controls, make sure you do it underneath the heading "unbindall" and above "# default controls" in "key_config.txt".
You can delete binds from "# default controls", but make sure the bind is in the "unbindall" area. Edit the controls in "# misc" freely.
The bind command is structured the following way:
bind *key* to *action*
So if you would want to bind "kick" to / you would type:
bind slash to kick
N.B. Bindings that can't be changed are F8 (bound to shapeshifter) and Esc (exits to Main Menu and resumes).
Bindable keys
Key description | Syntax |
---|---|
Mouse/joystick/gamepad horizontal/vertical/other axis | mousexaxis, mouseyaxis, mousezaxis |
0 ... 9, A ... Z | 0 ... 9, a ... z (lowercase) |
F1 ... F12 ... F15 | fkey1 ... fkey12 ... fkey15 |
Up/Down/Left/Right Arrow | uparrow, downarrow, leftarrow, rightarrow |
Space, Backspace, Tab, Enter | space, backspace, tab, enter |
Num Pad 0 ... Num Pad 9 | numpad0 ... numpad9 |
Num Pad * / + - . | multiply, divide, add, substract, decimal |
Num Pad Enter, Num Pad = | numpadenter, numpadequals |
Print Screen, Pause, Insert, Delete | printscreen, pause, insert, delete |
Page Up/Down, Home, End | pageup, pagedown, home, end |
Caps Lock, Num Lock, Scroll Lock | capslock, numlock, scrolllock |
, . ; ' | comma, period, semicolon, apostrophe |
[ ] / \ | rightbracket, leftbracket, slash, backslash |
Left/Right Shift | leftshift/rightshift |
Left/Right Control | leftcontrol/rightcontrol |
Left/Right Alt | leftalt/rightalt |
(Mac only) Left/Right Option | leftoption/rightoption |
(PC only) Left/Right Windows | leftwindows/rightwindows |
Bindable events
Event description | Syntax | lock_keys group |
---|---|---|
Horizontal/Vertical Aiming | aim_lr/aim_LR, aim_ud/aim_UD | NOT AFFECTED |
Forward, Backward, Strafe Left/Right | forward, backward, stepleft, stepright | keys_movement |
Turn Left/Right (DOOM-style) | turnleft/turnright | keys_all |
Jump, Crouch, Walk | jump, crouch, walk | keys_jump, keys_crouch, keys_walk |
Draw/Holster Weapon, Pick Up | swap | keys_inventory |
Drop Weapon | drop | keys_inventory |
Reload Weapon | reload | keys_reload |
Punch, Kick, Fire1 ... Fire3 | punch, kick, fire1 ... fire3 (1) | keys_attack |
Use Hypo | hypo | keys_hypo |
Use Console/Door, Talk, Taunt, | action | keys_action |
Escape/Resume | escape | NOT AFFECTED |
Pause Screen | pausescreen | keys_pause |
Look Mode | lookmode | keys_all |
Screenshot | screenshot | NOT AFFECTED |
Start/Stop/Play Record | start_record, stop_record, play_record | keys_all |
Custom Animations 1 and 2 | cutscene1, cutscene2 | keys_all |
fire1, fire2, fire3
- fire1 fires your gun's primary ammunition when available (if your gun isn't empty), and doubles as punch otherwise
- fire2 fires your gun's secondary ammunition when available (only for the Wave Motion Cannon) and doubles as kick otherwise
- fire3 fires your gun's ternary ammunition when available (never) and doubles as crouch otherwise
walk
While you hold this key, your character walks (or sashays in the case of Konoko :D ) instead of running.
lookmode
- While you hold this key, the body facing can't be changed with the horizontal aiming input (such as mousexaxis).
- The facing direction is then "locked" (you can still turn with the turnleft and turnright keys)
- Your horizontal aiming input then lets you look a full 90 degrees right and left (45 degrees when aiming with some weapons).
- When you release the lookmode key, your "lookspring" relaxes, so that you're facing straight ahead again. Unless, that is, you've chr_focused to an AI.
screenshot
- This stores a screenshot in uncompressed BMP format in Oni's folder, with the generic name screen_shot#####.bmp
- The resolution is normally the one specified in Options, but you can set the runtime variable gs_screen_shot_reduce to downsample the bitmap by a factor of 2 to that power.
Thus, if you play Oni in 640x480, the bitmaps you'll get will be :- 640x480 if gs_screen_shot_reduce= 0 (default)
- 320x240 if gs_screen_shot_reduce= 1
- 160x120 if gs_screen_shot_reduce= 2...
start_record, stop_record, play_record
This is a development feature Bungie used to author cutscene character animations.
- When you press the start_record key, Oni stores the authored character's position, body facing and aiming direction,
then keeps recording all input events (keyboard and mouse) in a buffer until you press the stop_record key. - When you press the play_record key, the initial conditions stored at start_record-time are applied to the authored character,
then the event buffer is read from, and the events are applied to your character as if you were providing the recorded input.
You actual input is ignored until the "movie" is done "playing". - The buffer has a limited size (quite big, about half an hour of non-stop action). Overflow thereof makes Oni crash.
- The contents of the event buffer is dumped in generic binary files called saved_film###.dat in Oni's folder.
Those dumped event buffers can't be read from and applied to custom characters via scripting : they served for cutscene authoring during Oni's development.
cutscene1, cutscene2
This is another feature of the cutscene authoring process detailed above
- The 2 runtime variables sc_bind_f2 and sc_bind_f3 can be set to hold the names of 2 arbitrary animations, say :
sc_bind_f2= "KONCOMsuper_kick"; sc_bind_f3= "KONOK0endpowerup";
- Those two animations can then be applied to the authored character at any time during the authoring, by the pressing the cutscene1 or cutscene2 key.
- The custom animation's name is stored in the event buffer, so the authored animations will appear during playback even if sc_bind_f2 and sc_bind_f3 are reset in the meantime.
"Secret" events
- secretx, secrety, secretz
- f4, f5, f6, f7, f8, f12
- console, block, profile_toggle, unstick
- camera_record, camera_stop, camera_play
- addflag, deleteflag, record_screen, place_quad, place_quad_mode
- man_cam_move_up, man_cam_move_down, man_cam_move_left, man_cam_move_right, man_cam_move_forward, man_cam_move_backward
- man_cam_pan_up, man_cam_pan_down, man_cam_pan_left, man_cam_pan_right
Those were just as poorly documented as the other ones, the only difference is that we can't seem to get them to work.
There are, however, a few guesses for a few of those, so some day, maybe...
Related issues
- the lock_keys scripting command.
- the "keyboard event bitset" of a character, listed in the box displayed with chr_debug_characters= 1.