IS:Session

From Lavish Software Wiki
Revision as of 10:27, 20 February 2012 by Lax (Talk | contribs)

(diff) ←Older revision | view current revision (diff) | Newer revision→ (diff)
Jump to: navigation, search

Introduction

An Inner Space session is created by running your game via the Uplink.

Startup Sequences

Startup sequences provide a permanent method of configuration through automatic issuing of commands. Startup sequences are divided into two major portions -- Pre-Startup, and Startup. Pre-Startup is performed immediately when the game is launched, before the game is allowed to perform any initialization. Startup is performed after the session successfully contacts the uplink and the game begins processing.

Note - Pre-Startup and Startup are executed for every executable in the launch chain. If your game runs a launcher before running the main executable, it will run for that launcher as well. If your startup scripts are starting extensions, login processes, etc, this may cause problems. The following is an example of how to avoid this:
EVE Online launches via "eve.exe" which launches "ExeFile.exe". Any scripts called by Startup/Pre-Startup sequence have the following at the top of the script.

if !${LavishScript.Executable.Find["ExeFile.exe"](exists)}
{
   Script:End
}

Display

Inner Space sessions hook into a game's Direct3D8, Direct3D9, or OpenGL graphics engine. It borrows the display to provide an integrated user interface, and to drive the bulk of Inner Space's functionality -- automation and such is performed during the time the display is rendered.

File Redirection

Inner Space sessions hook into file input and output for the purpose of allowing redirection and monitoring of file usage. Redirection is when access to a file such as "user.dat" are redirected to instead use, for example, "user1.dat".

Input

Inner Space sessions hook into a game's DirectInput or Win32 input systems. It borrows the input systems to provide interaction with Inner Space, and the ability to emulate input as well. Support for "software cursor" (the term to describe when a game uses its own representation of the cursor, instead of the Windows cursor location) is available by creating an extension that provides Inner Space with information about cursor positioning.

Stealth

Inner Space does not employ advanced stealth techniques hide itself from its host process. Many popular anti-cheat detection systems such as Punkbuster, VAC, VAC2, and Blizzard's Warden (used in World of Warcraft) do not consider Inner Space itself to be a cheat. Game companies recognize the importance of transparency, and do not block software simply for its ability to be modified; after all, that would preclude all use of open source software.

Window

Inner Space sessions hook into a game's Window system. The main window title can be changed independently of what the game thinks it can be, and the window can be customized in any fashion through available commands. Many games can also be forced into playing in a window, though some games have ill effects from doing so.

LavishScript Extensions

Inner Space adds various commands, objects, and data types to the LavishScript language. The following are additions solely from sessions. Because sessions also use the Inner Space Kernel, all additions from the Kernel are also available in sessions (and the uplink too).

Session Specific Commands

Enable locking of Processor Affinity, to prevent the game from changing it
Enable locking of Gamma, to prevent the game from changing it
Configure custom selectable video modes or emulate a different display mode

File System

Redirect game's file i/o from one file to another (for example, make a game use USER1.DAT instead of USER.DAT)
Redirect game's .ini file i/o from one file to another and/or one section to another and/or one value to another (for example, use an alternate setting or alternate .ini file)

Inter-process (uplink and other sessions)

Execute a command on the uplink, such as Name or Relay

Video Capture

Begins video capture
Ends video capture

Window

Supersedes many of the other Window commands below, WindowCharacteristics can adjust many different window characteristics simultaneously
Configures mouse clipping to the window (preventing the cursor from leaving the window)
Configures behavior of clicking to focus a window -- whether that click is "eaten" by the focus mechanic, or additionally used by the game
Enable or disable "foreground lock" which makes the game think it is always the foreground, active window
Adjust the window frame (border)
Adjust the window position
Adjust the window scale (e.g. set to 80% of current size)
Adjust the window size
Enable or disable a system tray icon, and minimize to tray, for this session
Adjust the window text (title)
Adjust the window visibility and/or Z-Order

Session Specific Top-Level Objects

Inter-Process

See Also