Difference between revisions of "IS:Session"

From Lavish Software Wiki
Jump to navigation Jump to search
 
(8 intermediate revisions by 2 users not shown)
Line 2: Line 2:
 
An [[Inner Space]] '''session''' is created by running your game via the [[IS:Uplink|Uplink]].
 
An [[Inner Space]] '''session''' is created by running your game via the [[IS:Uplink|Uplink]].
  
== In-Game Console ==
+
== 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.
  
[[Image:IS_Console.jpg|right|300px|thumb| The Inner Space In-game Console]]
+
: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:
  
The Inner Space console provides a method of executing commands similar to first-person shooter consoles, but in a style similar to standard command shells (e.g. DOS or Linux shells). It takes only a moment to learn, and provides access to all of Inner Space's featuresThe system used is called LavishScript.  See [[LavishScript:Syntax|LavishScript Syntax]] for a complete technical reference of entering commands via LavishScript.
+
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
 +
}
  
== Binds (hotkeys) ==
+
== Display ==
Inner Space provides a system of "binds" that allow you to "bind" a key combination to an action.  This could be remapping one key to another directly, running a script, sending commands to other sessions, or literally anything that can be done through Inner Space commandsEven the key to bring up the console uses a bind, and can be configured using the [[ISKernel:Bind (Command)|Bind command]].
+
Inner Space sessions hook into a game's Direct3D8, Direct3D9, or OpenGL graphics engineIt 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.
  
== Global Binds (global hotkeys) ==
+
== File Redirection ==
Global binds are just like regular binds, but perform an action in a given session when the key combination is pressed, no matter what you are doing on your computer.  For example, the key combination Ctrl+Alt+1 will bring up the first Inner Space session immediately, regardless of what you are doing at the time, or what window is currently in the foregroundThis is done using a global bind, and can be configured using the [[ISKernel:GlobalBind (Command)|GlobalBind command]].
+
Inner Space sessions hook into file input and output for the purpose of allowing redirection and monitoring of file usageRedirection is when access to a file such as "user.dat" are redirected to instead use, for example, "user1.dat".
  
== Inner Space Extensions ==
+
== Input ==
Inner Space extensions are programs created with the Inner Space Extension Development Kit ([[ISXDK]])Extensions can do pretty much anything, from adding game-specific scripting functionality to interacting with other programs or adding UI elements to the game or Inner Space itselfInner Space extensions (and scripts) can be found at [http://www.ismods.com ISMods], and are generally documented in the [http://www.ismods.com/wiki ISMods Wiki].
+
Inner Space sessions hook into a game's DirectInput or Win32 input systemsIt borrows the input systems to provide interaction with Inner Space, and the ability to emulate input as wellSupport 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.
  
== User Interface ==
+
== Stealth ==
The Lavish Graphical User Interface (LGUI) is a complete user interface system for use inside games.  The UI is defined in one or more XML files, each of which can be loaded independently.  Each XML file contains a list of top-level UI elements (usually windows)See [[LavishGUI]] for full LGUI usage information.  Types of LGUI elements can be created through extensions using the [[ISXDK]].
+
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 commandsMany games can also be forced into playing in a window, though some games have ill effects from doing so.
  
 
== LavishScript Extensions ==
 
== LavishScript Extensions ==
Inner Space adds various commands, objects, and data types to the LavishScript language.
+
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 ===
 
=== Session Specific Commands ===
 +
*[[ISSession:ProcLock (Command)|ProcLock]]
 +
: Enable locking of Processor Affinity, to prevent the game from changing it
 +
*[[ISSession:GammaLock (Command)|GammaLock]]
 +
: Enable locking of Gamma, to prevent the game from changing it
 +
*[[ISSession:VideoMode (Command)|VideoMode]]
 +
: Configure custom selectable video modes or emulate a different display mode
 +
 
==== File System ====
 
==== File System ====
 
*[[ISSession:FileRedirect (Command)|FileRedirect]]
 
*[[ISSession:FileRedirect (Command)|FileRedirect]]
Line 37: Line 53:
 
*[[ISSession:EndRecord (Command)|EndRecord]]
 
*[[ISSession:EndRecord (Command)|EndRecord]]
 
: Ends video capture
 
: Ends video capture
 +
 +
==== Window ====
 +
* [[ISSession:WindowCharacteristics (Command)|WindowCharacteristics]]
 +
: Supersedes many of the other Window commands below, WindowCharacteristics can adjust many different window characteristics simultaneously
 +
 +
* [[ISSession:ClipMouse (Command)|ClipMouse]]
 +
: Configures mouse clipping to the window (preventing the cursor from leaving the window)
 +
 +
* [[ISSession:FocusClick (Command)|FocusClick]]
 +
: Configures behavior of clicking to focus a window -- whether that click is "eaten" by the focus mechanic, or additionally used by the game
 +
* [[ISSession:LockForeground (Command)|LockForeground]]
 +
: Enable or disable "foreground lock" which makes the game think it is always the foreground, active window
 +
* [[ISSession:WindowFrame (Command)|WindowFrame]]
 +
: Adjust the window frame (border)
 +
* [[ISSession:WindowPosition (Command)|WindowPosition]]
 +
: Adjust the window position
 +
* [[ISSession:WindowScale (Command)|WindowScale]]
 +
: Adjust the window scale (e.g. set to 80% of current size)
 +
* [[ISSession:WindowSize (Command)|WindowSize]]
 +
: Adjust the window size
 +
* [[ISSession:WindowTaskbar (Command)|WindowTaskbar]]
 +
: Enable or disable a system tray icon, and minimize to tray, for this session
 +
* [[ISSession:WindowText (Command)|WindowText]]
 +
: Adjust the window text (title)
 +
* [[ISSession:WindowVisibility (Command)|WindowVisibility]]
 +
: Adjust the window visibility and/or Z-Order
 +
 
=== Session Specific Top-Level Objects ===
 
=== Session Specific Top-Level Objects ===
 +
*[[ISSession:LogReader (Top-Level Object)|LogReader]]
 +
*[[ISSession:VideoFeed (Top-Level Object)|VideoFeed]]
 +
 
==== Inter-Process ====
 
==== Inter-Process ====
 
*[[ISSession:Session (Top-Level Object)|Session]]
 
*[[ISSession:Session (Top-Level Object)|Session]]
 
*[[ISSession:Sessions (Top-Level Object)|Sessions]]
 
*[[ISSession:Sessions (Top-Level Object)|Sessions]]
 +
 
== See Also ==
 
== See Also ==
 
* [[LavishScript]]
 
* [[LavishScript]]

Latest revision as of 15:27, 20 February 2012

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