Difference between revisions of "IS:Kernel"

From Lavish Software Wiki
Jump to navigation Jump to search
(38 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
== Introduction ==
 
== Introduction ==
An [[Inner Space]] '''session''' is created by running your game via the [[IS:Uplink|Uplink]].
+
The [[Inner Space]] Kernel is the backbone of the [[Inner Space]] platform.  The Kernel loads [[LavishGUI]], [[LavishScript]], and extensions.  
  
 
== In-Game Console ==
 
== In-Game Console ==
Line 6: Line 6:
 
[[Image:IS_Console.jpg|right|300px|thumb| The Inner Space In-game Console]]
 
[[Image:IS_Console.jpg|right|300px|thumb| The Inner Space In-game Console]]
  
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 features
+
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 features.  The system used is called LavishScript.  See [[LavishScript:Syntax|LavishScript Syntax]] for a complete technical reference of entering commands via LavishScript.
  
 
== Binds (hotkeys) ==
 
== Binds (hotkeys) ==
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 commands.  Even the key to bring up the console uses a bind, and can be configured using the [[ISSession:Bind (Command)|Bind command]].
+
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 commands.  Even the key to bring up the console uses a bind, and can be configured using the [[ISKernel:Bind (Command)|Bind command]].
  
 
== Global Binds (global hotkeys) ==
 
== Global Binds (global hotkeys) ==
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 foreground.  This is done using a global bind, and can be configured using the [[ISSession:GlobalBind (Command)|GlobalBind command]].
+
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 foreground.  This is done using a global bind, and can be configured using the [[ISKernel:GlobalBind (Command)|GlobalBind command]].
 
 
== Command Files ==
 
Command files are sequences of commands that you simply do not want to type each time.  For complete information on command files and their usage, see [[LavishScript:Command Files|LavishScript Command Files]].  Inner Space command file uses the file extension ".ice" and should be placed in either the "Scripts" folder (although command files are ''not'' scripts) or the main Inner Space folder.
 
 
 
=== Automatically Executed Command Files ===
 
* PreInit.ice
 
: Executed immediately when a session begins
 
* AutoExec.ice
 
: Executed after a session begins and its main display window is created
 
 
 
== Scripts ==
 
Scripts are decision-making programs.  For complete information on scripts, script usage and script development, see [[LavishScript:Scripts|LavishScript Scripts]].  Inner Space scripts use the file extension ".iss" and should be placed in the "Scripts" folder.
 
 
 
=== Automatically Executed Scripts ===
 
* PreInit.iss
 
: Executed immediately when a session begins
 
* AutoExec.iss
 
: Executed after a session begins and its main display window is created
 
  
 
== Inner Space Extensions ==
 
== Inner Space Extensions ==
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 itself.  Inner 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 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 itself.  Inner 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]. Install extensions by placing the .dll file into the Inner Space/Extensions directory.
  
 
== User Interface ==
 
== User Interface ==
The Inner Space User Interface (ISUI) 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 [[ISUI]] for full ISUI usage information.  Types of ISUI elements can be created through extensions using the [[ISXDK]].
+
The Lavish Graphical User Interface (LavishGUI, or 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]].
 
 
== LavishScript Extensions ==
 
Inner Space adds various commands, objects, and data types to the LavishScript language.
 
 
 
=== Commands ===
 
==== Misc ====
 
*[[ISSession:Version (Command)|Version]]
 
: Shows the current Inner Space version number
 
*[[ISSession:Exit (Command)|Exit]]
 
: Instantly close this session
 
==== Console ====
 
*[[ISSession:ConsoleClear (Command)|ConsoleClear]]
 
: Clear the console
 
*[[ISSession:Console (Command)|Console]]
 
: Toggle, resize, or change the font size of the console
 
*[[ISSession:Squelch (Command)|Squelch]]
 
: Quietly execute a command (nothing shows up in console)
 
*[[ISSession:Echo (Command)|Echo]]
 
: Output text (to the console)
 
*[[ISSession:Log (Command)|Log]]
 
: Log all console output
 
 
 
==== Display ====
 
*[[ISSession:Wireframe (Command)|Wireframe]]
 
: Toggle "wireframe" mode (does NOT improve performance)
 
*[[ISSession:FPS (Command)|FPS]]
 
: Display current framerate
 
*[[ISSession:MaxFPS (Command)|MaxFPS]]
 
: Display or set framerate/CPU limiter settings
 
*[[ISSession:DisplayInfo (Command)|DisplayInfo]]
 
: Display information about the window and the game's display mode (can show amount of image distortion, etc)
 
*[[ISSession:Gamma (Command)|Gamma]]
 
: Sets, stores, restores, resets, or displays the current gamma level
 
 
 
==== Events ====
 
*[[ISSession:Events (Command)|Events]]
 
: List, set, remove, or execute named events
 
 
 
==== File System ====
 
*[[ISSession:FileRedirect (Command)|FileRedirect]]
 
: Redirect game's file i/o from one file to another (for example, make a game use USER1.DAT instead of USER.DAT)
 
*[[ISSession:IniRedirect (Command)|IniRedirect]]
 
: 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)
 
==== Input ====
 
*[[ISSession:Bind (Command)|Bind]]
 
: Add, list, or remove a hotkey
 
*[[ISSession:Press (Command)|Press]]
 
: Emulate a single key press and/or release
 
*[[ISSession:Type (Command)|Type]]
 
: Emulate typing some text
 
*[[ISSession:MouseTo (Command)|MouseTo]]
 
: Moves the mouse to a specified location
 
*[[ISSession:MouseClick (Command)|MouseClick]]
 
: Emulate a mouse button press and/or release
 
*[[ISSession:DIMouse (Command)|DIMouse]]
 
: Used for DirectInput mouse handlers (such as EQ1) to "release" or "capture" the mouse
 
*[[ISSession:GlobalBind (Command)|GlobalBind]]
 
: Add, list, or remove a global hotkey, usable from anywhere in Windows
 
==== Inter-process (uplink and other sessions) ====
 
*[[ISSession:Uplink (Command)|Uplink]]
 
: Execute a command on the uplink, such as [[ISUplink:Name (Command)|Name]] or [[ISUplink:Relay (Command)|Relay]]
 
==== Navigation ====
 
*[[ISSession:NavPath (Command)|NavPath]]
 
: Retrieve the shortest path from point A to point B in a given world
 
*[[ISSession:Navigation (Command)|Navigation]]
 
: Load or unload a navigation file containing worlds and connected points within them
 
*[[ISSession:NavPoint (Command)|NavPoint]]
 
: Add, list or remove a navigation point
 
==== Extensions ====
 
*[[ISSession:Extension (Command)|Extension]]
 
: Load, list or unload an extension
 
*[[ISSession:Services (Command)|Services]]
 
: Lists available services and the number of clients attached to each
 
 
 
==== Settings ====
 
*[[ISSession:Game (Command)|Game]]
 
: Manipulate settings for a specific game
 
*[[ISSession:Games (Command)|Games]]
 
: Add, list or remove games
 
*[[ISSession:Profile (Command)|Profile]]
 
: Manipulate settings for a specific profile
 
*[[ISSession:Profiles (Command)|Profiles]]
 
: Add, list or remove profiles
 
*[[ISSession:XMLSetting (Command)|XMLSetting]]
 
: Add, list or remove XML settings (similar to .INI)
 
==== Triggers ====
 
*[[ISSession:AddTrigger (Command)|AddTrigger]]
 
: Add a text trigger for event-based scripts
 
*[[ISSession:RemoveTrigger (Command)|RemoveTrigger]]
 
: Removes a text trigger previously added with AddTrigger
 
*[[ISSession:WaitFor (Command)|WaitFor]]
 
: Used in scripts, pauses execution until given text is found or a specified amount of time passes
 
 
 
==== User Interface ====
 
*[[ISSession:HUD (Command)|HUD]]
 
: Add, removes, or lists elements in the [[ISSession:HUD|heads-up display]]
 
*[[ISSession:HUDGroup (Command)|HUDGroup]]
 
: Hides or shows a group of HUD elements
 
*[[ISSession:HUDSet (Command)|HUDSet]]
 
: Modify an element in the [[ISSession:HUD|heads-up display]]
 
*[[ISSession:UI (Command)|UI]]
 
: Unloads all UI elements, or loads a set of UI elements from XML
 
*[[ISSession:UIElement (Command)|UIElement]]
 
: Lists, hides, shows, or kills top-level UI elements
 
 
 
==== Video Capture ====
 
*[[ISSession:Record (Command)|Record]]
 
: Begins video capture
 
*[[ISSession:EndRecord (Command)|EndRecord]]
 
: Ends video capture
 
==== Window ====
 
*[[ISSession:WindowPos (Command)|WindowPos]]
 
: Set or display window position
 
*[[ISSession:WindowSize (Command)|WindowSize]]
 
: Set or display window size
 
*[[ISSession:WindowScale (Command)|WindowScale]]
 
: Set window size based on the game's set resolution
 
*[[ISSession:WindowFrame (Command)|WindowFrame]]
 
: Set window frame style (and therefore ability to drag to resize the window as well)
 
*[[ISSession:WindowText (Command)|WindowText]]
 
: Set window title
 
*[[ISSession:WindowVisibility (Command)|WindowVisibility]]
 
: Move window above or below others, or "always on top"
 
*[[ISSession:WindowTaskbar (Command)|WindowTaskbar]]
 
: Adds an icon to the system tray for this game
 
*[[ISSession:ClipMouse (Command)|ClipMouse]]
 
: Used to prevent the mouse from leaving the window (not used for DirectInput systems such as EQ1)
 
 
 
=== Data Types ===
 
==== Display ====
 
*[[ISSession:display (Data Type)|display]]
 
*[[ISSession:hudelement (Data Type)|hudelement]]
 
==== Input ====
 
*[[ISSession:bind (Data Type)|bind]]
 
*[[ISSession:keyboard (Data Type)|keyboard]]
 
*[[ISSession:mouse (Data Type)|mouse]]
 
==== Misc ====
 
*[[ISSession:console (Data Type)|console]]
 
*[[ISSession:extension (Data Type)|extension]]
 
==== Navigation ====
 
*[[ISSession:navigation (Data Type)|navigation]]
 
*[[ISSession:navpath (Data Type)|navpath]]
 
*[[ISSession:navpoint (Data Type)|navpoint]]
 
*[[ISSession:navworld (Data Type)|navworld]]
 
==== Settings ====
 
*[[ISSession:dataset (Data Type)|dataset]]
 
*[[ISSession:settingxml (Data Type)|settingxml]]
 
 
 
=== Top-Level Objects ===
 
==== Display ====
 
*[[ISSession:Display (Top-Level Object)|Display]]
 
*Removed: [[ISSession:FPS (Top-Level Object)|FPS]]
 
 
 
==== Input ====
 
*[[ISSession:Keyboard (Top-Level Object)|Keyboard]]
 
*[[ISSession:Mouse (Top-Level Object)|Mouse]]
 
  
==== Inter-Process ====
+
== Access via LavishScript ==
*[[ISSession:Session (Top-Level Object)|Session]]
+
* [[ISKernel:Commands|Commands]]
*[[ISSession:Sessions (Top-Level Object)|Sessions]]
+
* [[ISKernel:Object Types|Object Types]]
==== Misc ====
+
* [[ISKernel:Top-Level Objects|Top-Level Objects]]
*[[ISSession:Console (Top-Level Object)|Console]]
+
* [[ISKernel:Events|Events]]
*[[ISSession:Extension (Top-Level Object)|Extension]]
 
*[[ISSession:WaitFor (Top-Level Object)|WaitFor]]
 
==== Navigation ====
 
*[[ISSession:Navigation (Top-Level Object)|Navigation]]
 
*[[ISSession:NavPath (Top-Level Object)|NavPath]]
 
==== Settings ====
 
*[[ISSession:Game (Top-Level Object)|Game]]
 
*[[ISSession:Profile (Top-Level Object)|Profile]]
 
*Removed: [[ISSession:XMLSetting (Top-Level Object)|XMLSetting]]
 
*[[ISSession:SettingXML (Top-Level Object)|SettingXML]]
 
  
== Services ==
+
== Extension Services ==
*[[ISSession:Console (Service)|Console]]
+
*[[ISKernel:Console (Service)|Console]]
*[[ISSession:Events (Service)|Events]]
+
*[[ISKernel:Events (Service)|Events]]
*[[ISSession:Extensions (Service)|Extensions]]
+
*[[ISKernel:Extensions (Service)|Extensions]]
*[[ISSession:Files (Service)|Files]]
+
*[[ISKernel:Files (Service)|Files]]
*[[ISSession:HTTP (Service)|HTTP]]
+
*[[ISKernel:HTTP (Service)|HTTP]]
*[[ISSession:Memory (Service)|Memory]]
+
*[[ISKernel:Memory (Service)|Memory]]
*[[ISSession:Process Frame (Service)|Process Frame]]
+
*[[ISKernel:Process Frame (Service)|Process Frame]]
*[[ISSession:Pulse (Service)|Pulse]]
+
*[[ISKernel:Pulse (Service)|Pulse]]
*[[ISSession:Services (Service)|Services]]
+
*[[ISKernel:Services (Service)|Services]]
*[[ISSession:Triggers (Service)|Triggers]]
+
*[[ISKernel:Triggers (Service)|Triggers]]
  
 
== See Also ==
 
== See Also ==
 
* [[LavishScript]]
 
* [[LavishScript]]
 +
* [[LavishGUI]]
 +
* [[Inner Space]]
 
* [[IS:Uplink|Inner Space Uplink]] (main program)
 
* [[IS:Uplink|Inner Space Uplink]] (main program)
 +
 
[[Category:Inner Space]]
 
[[Category:Inner Space]]
 +
[[Category:Inner Space Kernel]]

Revision as of 04:24, 14 May 2006

Introduction

The Inner Space Kernel is the backbone of the Inner Space platform. The Kernel loads LavishGUI, LavishScript, and extensions.

In-Game Console

The Inner Space In-game Console

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 features. The system used is called LavishScript. See LavishScript Syntax for a complete technical reference of entering commands via LavishScript.

Binds (hotkeys)

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 commands. Even the key to bring up the console uses a bind, and can be configured using the Bind command.

Global Binds (global hotkeys)

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 foreground. This is done using a global bind, and can be configured using the GlobalBind command.

Inner Space Extensions

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 itself. Inner Space extensions (and scripts) can be found at ISMods, and are generally documented in the ISMods Wiki. Install extensions by placing the .dll file into the Inner Space/Extensions directory.

User Interface

The Lavish Graphical User Interface (LavishGUI, or 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.

Access via LavishScript

Extension Services

See Also