Developer Mode

From OniGalore
Revision as of 12:50, 27 April 2013 by Iritscen (talk | contribs) (→‎Getting it to work: hiding this since few people are going to need it and it takes up a lot of space)
Jump to navigation Jump to search
"thedayismine", "Dev Mode" and "DevMode" all redirect here. See also Daodan DLL, Oni engine patches (Win), Oni engine patches (Mac), and The Tale of Dev Mode.


Aged parchment-60px.jpg

This page contains information that is out of date.
Please update this information to reflect where the community is at today.

Label on a crate in
Syndicate Warehouse
(an Easter egg)
TheDayIsMine.png TheDayIsMine0.png

Developer Mode is a bundle of features (a console, camera controls, and some debugging features) that was available via the thedayismine cheat code. Until 2006, it was believed that Developer Mode had been cut from retail versions of Oni; it had only been observed to work in the Mac beta 4 that was leaked around the time of Oni's beta testing. However, the this mode is actually present in all available versions of Oni (except PS2). It just needs to be unlocked.

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 need to install the Daodan DLL to unlock Developer Mode. On the Mac, using the community-patched game application serves the same purpose; 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 the developer mode has been made available via the thedayismine cheatcode (or killmequick or x or whatever).

Just type the developer mode cheat and watch for the confirmation message. However, it is likely that you won't notice anything special when you get back to the game. Below are a few quick ways to test the developer mode's functionality.

Hotkeys

The quickest way to tell whether it works at all, right after you get the confirmation message, is to exit the pausescreen; to press End. That should teleport you to where the camera is (usually back and up, possibly through walls and ceilings).

End is one of the many hotkeys available in Developer Mode. You can also try Enter. A full list is provided below.

Here's another quick test, meant to see if the Control and Alt buttons work fine (on Mac, they should be replaced with "Apple" and "Option", respectively). Ctrl+Shift+U and Ctrl+Alt+U should both perform the "unstick" action : the player makes a small no-clipping step forward (overriding collision).

Console output

In developer mode, Oni prints debug messages about ingame events along the bottom line 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).

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

You can also run around one of the original levels with developer mode on : you're guaranteed to see debug messages dumped to the console output.

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"). No can do.
Mac, console input is visible, output is invisible

Console input

By default, Oni auto-binds the "console" event to the "tilde" key ("~", usually located below Escape). On non-US keyboards, that key may not be recognized. Just add the line "bind leftalt to console" (or "bind leftoption to console") to key_config.txt in your Oni folder.

Features

Hotkeys

Hotkey Description PC Mac Retail/Demo Mac OS X
Fkey2 Cutscene 1
*
Fkey3 Cutscene 2
*
Fkey6 Kill All AI
*
*
*
Ctrl+Fkey7 Play dead
*
*
*
Fkey7, Shift+Fkey7 Cycle weapons (holster to get second weapon)
*
*
*
Fkey8, Shift+Fkey8 Cycle characters
*
*
*
Fkey9 Start recording
*
*
*
Fkey10 Stop recording
*
*
*
Fkey11 Playback recording
*
*
*
` (tilde) Displays console
*
*
Cntl+Shift+b Shows current opponent's logic
*
*
*
Cntl+Shift+s furnitures' textures (turns red)
*
?
?
Cntl+Shift+f Fast Mode
*
*
*
Cntl+Shift+g Slow motion
*
*
*
Cntl+Shift+y Displays FPS
*
?
?
Cntl+Shift+o Makes console screens disappear
*
?
?
Cntl+Shift+l Dumps a screenshot every frame
*
*
*
Cntl+Shift+u Unstick player
*
*
*
Cntl+Shift+HOME Freeze raycasting
*
*
*
END Warp to camera
*
*
*
ENTER Camera Control 3 modes
Normal, Detached 1-mouse controls aim
Detached 2-mouse controls camera
(When activated the following applies)
*
*
*
  • NumPad1
Move camera left
*
*
see note HERE
  • NumPad3
Move camera right
*
*
"
  • NumPad4
Pan camera right
*
*
"
  • NumPad5
Move camera backward
*
*
"
  • NumPad6
Pan camera left
*
*
"
  • NumPad8
Move camera forward
*
*
"
  • NumPad-
Move camera up
*
*
"
  • NumPad+
Move camera down
*
*
"
  • Up Arrow
Pan camera up
*
*
"
  • Down Arrow
Pan camera down
*
*
"
  • Feature available (There may be more hotkeys, please add)

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, you can't fall down : 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)
other stuff...

Also, the available scripting commands may be limited in your version. The most commands are on PC retail, or on beta 4 and earlier. On Mac, the functionality is much more limited (see HERE for details).