Inner Space Releases

Inner Space version 1.19 Build 7260
Released: 2024-04-11
1.19 Build 7260
  • Stability fixes
  • Fixed an intermittent crash during startup in some DirectX 11 games
  • Updated DxNothing game detection
  • New Virtual Input:
    • Fixed an issue with mouse button release in Direct Input games (e.g. EverQuest)
    • Fixed an issue with multi-PC mouse control
    • Joystick API is now disabled by default
    • Improved handling of input device unplugging/re-plugging
    • Fixed handling of data from some input devices
    • Added native device support for Razer Tartarus Pro, iBuffalo Classic USB Gamepad (SNES)
    • Added linux API support (various /dev endpoints)
    • Fixed an issue with double inputs in City of Heroes
  • LavishScript:
    • Fixed an issue with weakref initialization when making inter-script script-defined member/method calls

Inner Space version 1.19 Build 7248
Released: 2024-02-09
  • Path of Exile compatibility update
  • EVE Online Launcher compatibility update
  • Stability fixes
  • WindowCharacteristics command no longer accepts 0x0 as a valid size
  • Fixed an issue with Direct3D 11-12 monitor selection
  • New Virtual Input:
    • Fixed an issue with mouse cursor locking in Direct Input games (e.g. EverQuest)
    • Fixed platform-out handling of MIDI inputs
    • Improved handling of input device unplugging/re-plugging

Inner Space version 1.19 Build 7242
Released: 2024-01-25
  • EverQuest 1: Fixed some graphics related issues
  • Fixed a framerate issue in some Direct3D11-12 games (notably EverQuest 1's new Direct3D11 engine)
  • New Virtual Input:
    • Fixed a mouselook issue with low Windows mouse speed settings
    • Windows mouse speed and precision setting changes now take effect immediately
    • Improved handling of high resolution mouse input
  • Old Virtual Input:
    • Fixed modifiers getting stuck when switching windows

Inner Space version 1.19 Build 7233
Released: 2024-01-18
  • Stability fixes
  • Removed automatic Diablo 3 Client profile creation
  • New Virtual Input:
    • Added Stream Deck XL support
    • Fixed an issue with Lord of the Rings Online showing blank key names
    • Improved performance
    • Fixed an issue with "stuck" modifier keys when switching windows
    • Fixed incorrect mouse position after moving game client window
    • Fixed some issues with mouselook
    • Added settings file NUVI.Settings.json, soon to also have configuration GUI
    • Input devices and APIs can be disabled via settings, when necessary for stability or performance
    • Improved default behavior for various devices
    • Improved startup times
  • LavishScript:
    • audio:AddStream[string name,wavetable,string ldiopatchName,float wavetableDuration,float bufferDuration,bool repeating]
  • Lavish Device I/O Framework:
    • New patch types pattern-sequencer, pattern-sequencer-view, wavetable, wavepanel, audio-wave

Inner Space version 1.19 Build 7217
Released: 2023-09-27
  • Fixed Add Game window scaling
  • Fixed compatibility with QT5 applications (e.g. some game launchers)
  • New Virtual Input:
    • Fixed jittery mouse movement in some cases (e.g. EVE Online dragging windows)
    • Fixed an issue with left/right modifier states
    • Fixed Num Lock in Direct Input games (e.g. EverQuest 1)
    • Fixed SWGEmu GetDeviceData error
    • Improved default handling of device input reports
  • LavishScript:
    • bool input.TrackInputReports
    • input:SetTrackInputReports[bool newValue]
    • ldio:LoadPackageFile[string filename, <string commandOnComplete>]
    • ldio:UnloadPackageFile[string filename, <string commandOnComplete>]
    • ldio:LoadPackage[jsonvalueref joPackage, <string commandOnComplete>]
    • ldio:UnloadPackage[jsonvalueref joPackage, <string commandOnComplete>]

Inner Space version 1.19 Build 7213
Released: 2023-09-21
  • New Virtual Input fixes:
    • Fixed Right Alt, Right Control and Pause keys in Direct Input games (e.g. EverQuest 1)
    • Fixed an issue with held modifiers in some games (e.g. EverQuest 2)
    • Fixed a freeze issue

Inner Space version 1.19 Build 7208
Released: 2023-09-18
  • New Virtual Input fixes:
    • Double-click fixed
    • Fixed Windows "Swap Mouse Buttons" behavior
  • Stability fixes
  • Fixed next/previous session ordering
  • WindowSize and WindowCharacteristics command -fullscreen options now use the size of the screen the window is currently on

Inner Space version 1.19 Build 7204
Released: 2023-09-15
  • New setting "Disable New Virtual Input"
    • Disabling New Virtual Input will cause Inner Space to use its old Virtual Input system. If using this setting to work around issues, please make sure the issue gets reported!
  • EVE Launcher: Fixed loading settings
  • EVE Launcher Beta: Compatibility fixes
  • EVE: Fixed a crash affecting DirectX 12 mode
  • Steam game compatibility fixes
  • Onigiri compatibility fixes
  • Dungeon Defenders 2 compatibility fixes
  • .NET compatibility fixes
  • Diablo 4 compatibility fixes
  • Fixed a crash with Direct3D 12 and NVIDIA Optical Flow (including "Frame Generation" setting in Diablo 4)
  • Star Wars: The Old Republic compatibility update
  • Compatibility fix for some input devices
  • Add Game Window should now appear correctly with display scaling
  • Fixed an issue with Inner Space audio output crashes
  • Added XInput API support, including native support for XBox One controllers
  • Lavish Dynamic I/O framework provides high-level mechanisms for routing and modulating device I/O
  • Improved Uplink rendering performance
  • LavishGUI 2
    • New element "scalepanel" element, based on panel but which can visually scale its contents
    • midipatch is now ldiopatch
  • LavishScript:
    • New LavishScript type ldio (Lavish Dynamic I/O), split from midi
    • New LavishScript types ldioevent, lgui2scalepanel
    • midipatch is now ldiopatch
    • midiscene is now ldioscene
    • lgui2midipatch is now lgui2ldiopatch
    • Removed all MIDI-specific types, and MIDI top-level object
    • ldiopatch ldiopatch.Feedback
    • ldiopatch:SetFeedback[patch]
    • ldiopatch display.Listener
    • ldiopatch display:SetListener[string name]
    • jsonarray display.CaptureDevices
    • ldiopatch display.CaptureListener[string deviceName]
    • display:SetCaptureListener[string deviceName,ldiopatch,bool verticalFlip]
    • jsonarray audio.CaptureDevices
    • string audio.Listener[string deviceName]
    • audio:SetListener[string deviceName, string patchName]
    • float audiovoice.FrequencyRatio
    • audiovoice:SetFrequencyRatio[float newValue]
    • static jsonarray audiovoice.List
    • static audiovoice audiovoice.Get[string name]
    • static audiovoice audiovoice.Get[int id]
    • static audiovoice audiovoice.New[string name]
    • static audiovoice:ForEach[string command,<jsonvalueref joFilter>]
    • static jsonarray audiostream.List
    • static audiostream audiostream.Get[string name]
    • static audiostream audiostream.Get[int id]
    • static audiostream:ForEach[string command,<jsonvalueref joFilter>]
    • ldiopatch keyboard.OutPatch
    • ldiopatch keyboard.InPatch
    • ldiopatch keyboard.Listener
    • ldiopatch keyboard.BackgroundListener
    • ldiopatch keyboard:SetBackgroundListener[string name]
    • keyboard:SetListener[name]
    • keyboard:SetInPatch[name]
    • ldiopatch mouse.OutPatch
    • ldiopatch mouse.InPatch
    • ldiopatch mouse.Listener
    • ldiopatch mouse.BackgroundListener
    • ldiopatch mouse:SetBackgroundListener[string name]
    • mouse:SetListener[name]
    • mouse:SetInPatch[name]
    • ldiopatch inputdevice.InPatch
    • ldiopatch inputdevice.Listener
    • ldiopatch inputdevice.BackgroundListener
    • bool inputdevice.Retain
    • inputdevice:SetRetain
    • inputdevice:SetBackgroundListener[string name]
    • inputdevice:SetListener[name]
    • inputdevice:SetInPatch[name]
    • fixed inputdevice statics .List, .Get, :ForEach
    • innerspace:ConnectHost
    • innerspace:HostRelay
    • innerspace:HostRelayByRef
    • jsonarray webrequest.Headers
    • jsonobject direct3d11.MemoryInfo
    • int64 direct3d11.GPUMemoryBudgetOverride
    • int64 direct3d11.SharedMemoryBudgetOverride
    • direct3d11:SetGPUMemoryBudgetOverride[int64 newValue]
    • direct3d11:SetGPUMemoryReservation[int64 newValue]
    • direct3d11:SetSharedMemoryBudgetOverride[int64 newValue]
    • direct3d11:SetSharedMemoryReservation[int64 newValue]

Inner Space version 1.19 Build 7111
Released: 2023-03-24
  • Diablo 4 compatibility update
  • Battle.net compatibility update
  • Fixed an issue with Direct3D 12 performance and memory usage on some systems
  • Diablo Immortal: Fixed support for various gamepads (e.g. XBox One Controller and similar)
  • Uplink window now accepts drag-and-dropped files
  • Fixed Reshade compatibility on Direct3D12
  • Fixed an issue where the Patcher window allowed clicking Install while sessions were running
  • Inner Space main window now has an Agents window with controls to start or stop them
  • Agent provider system now supports github release listings
  • Fixed an issue with uplink windowing commands via the new relay system
  • LavishGUI 2
    • New element type "dynamic" is a content container whose content is usually provided by a contentBinding
    • New element type "autocompletebox" pairs a textbox with auto-complete functionality
    • New element type "midipatch" is a content container with its Context tied to a MIDI patch
    • Added a relatively easy to use "confirmationWindow" template
    • Fixed a bug where natively supported programmable mouse buttons were not treated as mouse buttons
    • Fixed a bug where the screen element would sometimes not size properly to the window
    • Fixed a bug with skins where templates retrieved from the base skin would not use further templates from the new skin
    • Fixed a bug where global brushes could get modified by applying styles to an element
    • Fixed a bug where brushes were not refreshing correctly after being modified (e.g. when setting an image)
    • Fixed a bug with videofeed/broadcaster elements improperly activating Focus Follows Mouse
    • Fixed input bugs with videofeed/broadcaster elements
    • Fixed a bug with videofeed elements sometimes not automatically refreshing
    • Fixed a bug with clicking checkboxes with "useIndeterminate"
    • Fixed a bug where tooltips were constantly destroyed and re-created while active
    • Fixed a bug where a tooltip would remain visible from an element that gets detached
    • Fixed a bug where context menus would remain open
    • Fixed a bug with dragger element allowing movement while allowMove is false
    • Fixed a bug with scrollviewer stealing mouse focus while "acceptsMouseFocus" is false
    • Fixed bugs with scrollviewer sizing, scroll bars and mouse wheel
    • Fixed bugs with objectview "propertyViewTemplate" and per-property overrides
    • Fixed bugs with onXXXPress/onXXXRelease events
    • Fixed bugs with dragging to resize aligned elements (e.g. a centered winow)
    • Animations defined as part of an element no longer automatically start unless they have "autoStart" set to true
    • textblock now waits for refresh before resolving LavishScript portions of "text"
    • Locate system now supports an element ID as the elementName value string, e.g. "elementName":"123"
    • "task" eventHandlers now use the "default" Task Manager if not specified
    • Fixed input bugs with videofeed, videofeedsource, and broadcaster elements
    • Scrollviewer horizontalScroll and verticalScroll now also accept "fitparent"
    • wrappanel correctly accounts for child margins
    • Elements now support "useOutputTexture" boolean, which defaults to false except for window, canvas, popup
    • itemlist selectedItemBinding no longer off by one when not using selectedItemBindingProperty
    • itemlist items selected prior to view creation now apply "onSelected"
    • listbox items are now selected on release instead of press
    • listbox now supports a boolean "reorderable" property, to reorder via click and drag
    • New listbox event "onReorderCompleted"
    • "method" event handler now properly uses its owner element context, and not the source element context
    • fixed possible infinite loop in "value" animation
    • "value" animation now supports color strings
    • pagecontrol element improvements including page validation and a Finish button
    • Improved overlay element behaviors
    • checkbox now also accepts "pushAsBool" to push checkedBinding as TRUE/FALSE/NULL instead of 1/0/-1
    • contextBinding now always pulls immediately when set
    • Improved itemlist itemsBinding efficiency
    • imagebox now supports "imageBinding"
    • lgui2databinding now supports "pullRequest", a webrequest definition
  • LavishScript
    • New types "autocomplete", "midipatch", "midiscene"
    • Now supporting objectdef(global) and objectdef(script)
    • Fixed a bug with objectdef-owned static variables not shutting down properly in some cases
    • New flags for jsonarray.Has and jsonobject.Has: -notnull, -object, -array, -string
    • Added shorthand op "!=0" to Select queries to test for non-zero
    • Select queries that have "member" or "eval" specified, but no "with" or "op", now have an implied "op" of "!=0"
    • Fixed crashes with jsonobject.SelectValues and jsonarray.SelectValues
    • LavishScript now creates a "default" Task Manager
    • static taskmanager taskmanager.Default
    • int64 string.FindFrom[uint position,string needle]
    • int64 jsonarray.Contains[jsonvalue val]
    • int64 jsonarray.ContainsReference[jsonvalueref val]
    • bool jsonarray.Equal[jsonvalueref other]
    • bool jsonvaluecontainer.Equal[jsonvalueref other]
    • bool jsonobject.Equal[jsonvalueref other]
    • jsonobject jsonobject.Diff[jsonvalueref joOther]
    • bool jsonobject.MatchesSchema[jsonvalueref joSchema]
    • jsonobject jsonobject.GetMatchingSchema[jsonvalueref joSchema]
    • jsonarray.Get[-init,jsonvalue newValue,key]
    • jsonobject.Get[-init,jsonvalue newValue,key]
    • bool lavishscript.SelectEvaluate[weakref testValue,jsonvalueref joSelect]
    • jsonobject lgui2eventargs.AsJSON
    • string lgui2eventargs.Event
    • lgui2element lgui2eventargs.Element
    • elgui2scrollbar.fitparent
    • jsonarray lgui2element.Animations
    • jsonarray lgui2element.InputHooks
    • jsonarray lgui2element.Styles
    • jsonarray lgui2element.Triggers
    • lgui2element:Animate[jsonvalueref joAnimation,bool start]
    • jsonarray lgui2itemlist.ItemsSource
    • lgui2itemlist:SetItemsSource[jsonvalueref ja]
    • lgui2itemlist:RefreshItems
    • lgui2listbox:SetReorderable[bool newValue]
    • bool lgui2listbox.Reorderable
    • lgui2brush:SetImage[weakref binary, uint transparencyColor=0
    • jsonobject lgui2databinding.PullRequest
    • lgui2databinding:SetPullRequest[jsonvalueref joRequest]
    • lgui2databinding lgui2imagebox.ImageBinding
    • lgui2imagebox:PullImageBinding
    • agent:Uninstall
    • agentlisting agentprovider.NewestListing
    • jsonobject agentprovider.AsJSON
    • static agentprovider agentprovider.New[string filename,<jsonvalueref joProvider>]
    • static agentprovider agentprovider.Get[string name]
    • static agentprovider agentprovider.Get[uint id]
    • static agentprovider:ForEach[string command,<jsonvalueref filterQuery>]
    • innerspace:LoadAgentProviderPackage[jsonvalueref jo]
    • static jsonarray lgui2remotecontrol.Senders
    • static bool lgui2remotecontrol.RemoteControlAllowed
    • static lgui2remotecontrol:SetRemoteControlAllowed[bool newValue]
    • static monitor monitor.Get
    • static monitor monitor.Get[uint num]
    • static monitor monitor.Get[string name]
    • static jsonarray monitor.List
    • static monitor:ForEach
    • monitor display.Monitor[string name]
    • jsonobject button.AsJSON
    • static jsonarray button.List
    • static button button.Get[string name]
    • static button button.Get[-id, uint id]
    • static button:ForEach[string command,<jsonvalueref joQuery>]
    • jsonobject axis.AsJSON
    • static jsonarray axis.List
    • static axis axis.Get[string name]
    • static axis:ForEach[string command,<jsonvalueref joQuery>]
    • jsonobject dpad.AsJSON
    • static jsonarray dpad.List
    • static dpad dpad.Get[string name]
    • static dpad:ForEach[string command,<jsonvalueref joQuery>]
    • jsonobject inputdevice.AsJSON
    • static jsonarray inputdevice.List
    • static inputdevice inputdevice.Get[string name]
    • static inputdevice inputdevice.Get[uint id]
    • static inputdevice:ForEach[string command,<jsonvalueref joQuery>]
    • jsonobject bind.AsJSON
    • static jsonarray bind.List
    • static bind bind.Get[string name]
    • static bind:ForEach[string command,<jsonvalueref joQuery>]
    • static jsonarray midiindevice.List
    • static midiindevice midiindevice.Get[uint ID]
    • static midiindevice midiindevice.Get[string name]
    • static midiindevice:ForEach[string command,<jsonvalueref filterQuery>]
    • static jsonarray midioutdevice.List
    • static midioutdevice midioutdevice.Get[uint ID]
    • static midioutdevice midioutdevice.Get[string name]
    • static midioutdevice:ForEach[string command,<jsonvalueref filterQuery>]
    • midioutdevice:SendJSON[jsonvalueref arrayOrObject]
    • midipatch midiindevice.Output
    • midiindevice:SetOutput[weakref patch]
    • midiindevice:SetOutput[string patchName]
    • midiindevice:SetOutput[uint patchID]
    • midiindevice:InsertOutput[weakref patch]
    • midiindevice:InsertOutput[string patchName]
    • midiindevice:InsertOutput[uint patchID]
    • midipatch midiindevice.Feedback
    • midiindevice:SetFeedback[string patchName]
    • midiindevice:SetFeedback[uint patchID]
    • bool midiindevice.Muted
    • jsonobject midiindevice.Metadata
    • midiindevice:SetMute[bool newValue]
    • midiindevice midi.InDevice[string name,uint instance]
    • static midiindevice.Get[string name, uint instance]
    • midioutdevice midi.OutDevice[string name,uint instance]
    • jsonarray midi.PatchTypes
    • jsonarray midi.Patches
    • midipatch midi.Patch[string name]
    • midipatch midi.Patch[uint id]
    • midi:LoadPackageFile[string filename]
    • midi:UnloadPackageFile[string filename]
    • midi:LoadPackage[jsonvalueref joPackage]
    • midi:UnloadPackage[jsonvalueref joPackage]
    • bool filepath.IsDirectory[<string appendFilename>]
    • bool mutablefilepath.IsDirectory[<string appendFilename>]
    • static filepath filepath.Get[string filePath]
    • settingset:ImportJSON[-ref,jsonvalueref jo]
    • (uplink) videofeed:RegisterOtherWindowSource
    • variable type.Create[<scope>, ...]
    • variable scriptobjecttype.Create[<scope>, ...]
    • variable variablescope.Create[string typeName, ... args]
    • int64 variablescope.Used
    • jsonobject webrequest.AsJSON

Inner Space version 1.19 Build 7047
Released: 2022-11-07
  • LavishGUI 2
    • Fixed dockpanel border composition
    • Enabling broadcaster or videofeed element "useLocalBindings" now properly flags the inputs
    • Brushes handle "imageBrush" better when applying styles
  • LavishScript
    • Fixed an issue with static members of several LavishScript types (mainly value types)
    • Fixed an issue where static enum.List always required a parameter
    • Fixed jsonobject.Duplicate and jsonarray.Duplicate
    • Fixed jsonobject:Merge
    • string.ReplaceSubstring now ignores an empty needle (as found in a haystack) parameter
    • Generated atom names used by script object definition members/methods are now more helpful when debugging
    • static type type.Get[string name]
    • static jsonarray type.List[<jsonvalueref filterQuery>]
    • static type:ForEach[string command,<jsonvalueref filterQuery>]
    • lgui2element:ForEachChild[<"logical"|"visual">,string command,<jsonvalueref filterQuery>]
    • jsonarray lgui2.Layers
    • jsonarray lgui2.ElementTypes
    • jsonarray lgui2.AnimationTypes
    • jsonarray lgui2.Skins
    • static jsonarray lgui2layer.List
    • static lgui2layer lgui2layer.Get[<string name>]
    • static lgui2layer:ForEach[string command,<jsonvalueref filterQuery>]
    • static jsonarray lgui2skin.List
    • static lgui2skin lgui2skin.Get[<string name>]
    • static lgui2skin:ForEach[string command,<jsonvalueref filterQuery>]
    • static jsonarray lgui2elementtype.List
    • static lgui2elementtype lgui2elementtype.Get[string name]
    • static lgui2elementtype:ForEach[string command,<jsonvalueref filterQuery>]
    • static jsonarray lgui2animationtype.List
    • static lgui2animationtype lgui2animationtype.Get[string name]
    • static lgui2animationtype:ForEach[string command,<jsonvalueref filterQuery>]
    • static lgui2element lgui2element.Get[int64 id]
    • static lgui2element lgui2element.Get[string name]
    • static lgui2element:ForEach[string command,<jsonvalueref filterQuery>]
    • static lgui2element:ForEachGlobal[string command,<jsonvalueref filterQuery>]
    • jsonobject lgui2skin.AsJSON
    • jsonobject lgui2skin.Templates
    • jsonobject lgui2skin.Brushes
    • float float.Div[#]
    • float float.Mul[#]
    • float:Mul[#]
    • float:Div[#]
    • float64 float64.Div[#]
    • float64 float64.Mul[#]
    • float64:Mul[#]
    • float64:Div[#]
    • uint uint.Div[#]
    • uint uint.Mul[#]
    • uint:Mul[#]
    • uint:Div[#]
    • int int.Div[#]
    • int int.Mul[#]
    • int:Mul[#]
    • int:Div[#]
    • int64 int64.Div[#]
    • int64 int64.Mul[#]
    • int64:Mul[#]
    • int64:Div[#]

Inner Space version 1.19 Build 7038
Released: 2022-10-21
  • Direct3D 9 compatibility update
  • Star Wars The Old Republic new launcher compatibility update
  • Fixed an issue with EVE Online popping up cmd.exe windows
  • Fixed an issue with some .NET 5.0+ executables
  • Fixed a bug that prevented LavishGUI 2 from rendering on Direct3D 9 with multisampling enabled
  • LavishGUI 2
    • Updated pagecontrol layout and templates
    • Fixed a bug with inputpicker when pointed at a distributedvalue
    • Fixed a bug with onLogicalDetached/onVisualDetached events not firing
    • New element event "onDestroy" fires separately from detached events, and only in destructive cases
    • textbox "textBindingUsesFocus" now also triggers when mouse focus is lost
    • New element type: filepicker
    • itemlist (e.g. listbox) now supports "multiselect" property
    • Most LavishGUI 2 enum types now have lower case values, matching the JSON properties
    • bool lgui2itemlist.IsMultiselect
    • lgui2itemlist:SetMultiselect[bool newValue]
  • LavishScript 1.105
    • LavishScript's SetRoot now expands environment strings (e.g. %USERPROFILE%) and resolves ../ ./ etc
    • Implemented a new JSON-based query system we'll refer to as LavishScript Select
    • Scripts now support enum definitions
    • Types are now accessible as Top-Level Objects, e.g. ${lavishscript} is the same as ${Type[lavishscript]}
    • Implemented static Member/Method support
    • Types can now be specified as static, meaning that their existing Members/Methods also work as static Members/Methods
    • Most types that have operated as static types have been marked static
    • objectdefs can define static Members, Methods and Variables by indicating "static" prior to "member", "method", or "variable" e.g. static member:int SomeMember()
    • objectdefs can now be marked as static, which will prevent objects (such as variables) of this type from being created
    • objectdefs now execute a static method Initialize, and a static method Shutdown when created/destroyed
    • jsonvalueref initialization/SetReference now also accepts a JSON array or object
    • Enum value type initialization no longer breaks from an empty string (no value given), instead initializing to 0
    • jsonvalueref SetReference can now refer to itself (or its members)
    • :ForEach methods now optionally accept an additional jsonvalueref Select query
    • Mumeric types now have static .Min and .Max
    • New type: joystick
    • New type: sessionlauncher (Uplink only)
    • New type: slotobserver (Uplink only)
    • axis:SetPosition[float newValue]
    • dpad:SetPosition[float newValue]
    • jsonarray type.StaticMembers
    • jsonarray type.StaticMethods
    • bool type.Static
    • jsonarray scriptobjecttype.StaticMembers
    • jsonarray scriptobjecttype.StaticMethods
    • variablescope scriptobjecttype.VariableScope
    • bool scriptobjecttype.Static
    • scriptobjecttype script.ObjectDef[string name]
    • anonevent script.OnExit
    • string script.LastError
    • script:SetLastError[<string value="">]
    • static string script.LastError
    • static script:SetLastError[<string value="">]
    • static anonevent script.OnScriptStarted
    • static anonevent script.OnScriptStopped
    • static script script.New[string full_filename,... args]
    • static script script.Get[string short_filename]
    • static jsonarray script.List[<jsonvalueref filterQuery>]
    • static script:ForEach[string command,<jsonvalueref filterQuery>]
    • string lavishscript.LastError
    • lavishscript:SetLastError[string value]
    • anonevent lavishscript.OnSetLastError
    • bool lavishscript.LastErrorSpam
    • lavishscript:SetLastErrorSpam[bool value]
    • anonevent script.OnSetLastError
    • bool script.LastErrorSpam
    • script:SetLastErrorSpam[bool value]
    • static distributedscope distributedscope.Get[string name]
    • static distributedscope distributedscope.Get[uint id]
    • static distributedscope distributedscope.New[json]
    • static anonevent distributedscope.OnScopeAdded
    • static anonevent distributedscope.OnScopeRemoved
    • jsonarray distributedscope.Values[<jsonvalueref filterQuery>]
    • jsonarray distributedscope.Keys[<jsonvalueref filterQuery>]
    • static jsonarray distributedscope.List[<jsonvalueref filterQuery>]
    • static distributedscope:ForEach[string command,<jsonvalueref filterQuery>]
    • int64 string.Find[... string possible_needles]
    • jsonobject string.FindAnyOf[... string possible_needles]
    • jsonobject string.FindAnyOfArray[jsonvalueref arrayOfStrings]
    • jsonarray string.Split[string splitter,<bool includeEmpty=TRUE>]
    • static bool string.Equal[string a,string b]
    • static bool string.IsNULLOrEmpty[string value]
    • static bool string.IsNULLOrWhitespace[string value]
    • unistring filepath.FilenameOnly
    • unistring filepath.PathOnly
    • string mutablefilepath.FilenameOnly
    • string mutablefilepath.PathOnly
    • static agent agent.New[json]
    • static agent agent.Get[uint id]
    • static agent agent.Get[string name]
    • static anonevent agent.OnAgentAdded
    • static anonevent agent.OnAgentRemoved
    • anonevent agent.OnAgentEvent, OnPulse, OnShutdown, OnStartup, OnPlatformPreStartup, OnPlatformStartup, OnReload
    • static jsonarray agent.List[<jsonvalueref filterQuery>]
    • static agent:ForEach[string command,<jsonvalueref filterQuery>]
    • jsonvaluecontainer jsonobject.GetContainer[...]
    • jsonvaluecontainer jsonarray.GetContainer[...]
    • jsonobject jsonobject.Duplicate
    • jsonarray jsonarray.Duplicate
    • jsonarray jsonarray.Reverse
    • jsonarray:Reverse
    • jsonarray:Swap[int64 keyA, int64 keyB]
    • jsonarray:Insert[<-lazy>,int64 key,jsonvalue value,...]
    • jsonarray:InsertString[int64 key, string value]
    • jsonarray:InsertInteger[int64 key, int64 value]
    • jsonarray:InsertBool[int64 key, bool value]
    • jsonarray:InsertNumber[int64 key, float64 value]
    • jsonarray:InsertNULL[int64 key]
    • jsonarray:InsertByRef[int65 key, jsonvalueref ref]
    • int64 jsonarray.SelectKey[jsonvalueref query]
    • string jsonobject.SelectKey[jsonvalueref query]
    • jsonarray jsonarray.SelectKeys[jsonvalueref query]
    • jsonarray jsonobject.SelectKeys[jsonvalueref query]
    • jsonarray index.SelectKeys[jsonvalueref query]
    • jsonarray collection.SelectKeys[jsonvalueref query]
    • ... jsonarray.SelectValue[jsonvalueref query]
    • ... jsonobject.SelectValue[jsonvalueref query]
    • ... index.SelectValue[jsonvalueref query]
    • ... collection.SelectValue[jsonvalueref query]
    • jsonarray jsonarray.SelectValues[jsonvalueref query]
    • jsonarray jsonobject.SelectValues[jsonvalueref query]
    • jsonarray collection.Keys[<jsonvalueref filterQuery>]
    • jsonarray jsonobject.Keys[<jsonvalueref filterQuery>]
    • jsonarray jsonobject.Values[<jsonvalueref filterQuery>]
    • static jsonvalue jsonvalue.New[<-lazy>,string json]
    • static jsonvalue jsonvalue.ParseFile[filepath json]
    • static jsonobject jsonobject.New[<string json="{}">]
    • static jsonobject jsonobject.ParseFile[filepath json]
    • static jsonarray jsonarray.New[<string json="[]">]
    • jsonarray enumtype.Values
    • jsonarray enumtype.Names
    • static enum enumtype.New[jsonvalueref jo]
    • static enum enumtype.Get[string name]
    • static jsonarray enumtype.List[<jsonvalueref filterQuery>]
    • static enumtype:ForEach[string command,<jsonvalueref filterQuery>]
    • enumtype enumvaluetype.Type
    • enum value types now explicitly inherit from int64
    • enum value types now have a static member for each named value
    • static enumvaluetype enumvaluetype.Get[string name]
    • static enumvaluetype enumvaluetype.Get[int64 value]
    • static jsonarray enumvaluetype.List[<jsonvalueref filterQuery>]
    • static jsonobject enumvaluetype.EnumAsJSON
    • static enumvaluetype:ForEach[string command,<jsonvalueref filterQuery>]
    • static time time.Now
    • static event event.New[string name]
    • static event event.Get[string name]
    • static jsonarray event.List[<jsonvalueref filterQuery>]
    • static event:ForEach[string command,<jsonvalueref filterQuery>]
    • static taskmanager taskmanager.New[string name]
    • static taskmanager taskmanager.Get[uint id]
    • static taskmanager taskmanager.Get[string name]
    • static task task.Get[int64 id]
    • ... variablescope.Get[name]
    • jsonobject variablescope.AsJSON
    • jsonarray variablescope.Keys[<jsonvalueref filterQuery>]
    • string variablescope.SelectKey[jsonvalueref query]
    • jsonarray variablescope.SelectKeys[jsonvalueref filterQuery]
    • ... variablescope.SelectValue[jsonvalueref query]
    • variablescope:ForEach[string command,<jsonvalueref filterQuery>]
    • static relaygroup.New[string name] (Uplink only)
    • static relaygroup.Get[string name] (Uplink only)
    • static relaygroup.List (Uplink only)
    • static relaygroup.List[jsonvalueref filterQuery] (Uplink only)
    • static relaygroup:ForEach[string command,<jsonvalueref filterQuery>] (Uplink only)
    • anonevent innerspacesession.OnPreStartup (Session only)
    • anonevent innerspacesession.OnStartup (Session only)
    • anonevent innerspacesession.OnPreStartupCompleted (Session only)
    • anonevent innerspacesession.OnStartupCompleted (Session only)
    • anonevent innerspacesession.OnWindowCaptured (Session only)
    • anonevent innerspacesession.OnFocused (Session only)
    • jsonobject innerspacesession.Metadata (Session only)
    • int64 innerspacesession.Slot (Session only)
    • bool innerspacesession.IsLauncher (Session only)
    • innerspacesession:SetLauncher[bool newValue] (Session only)
    • static session session.Get[name] (Uplink only)
    • static jsonarray session.List[<jsonvalueref filterQuery>] (Uplink only)
    • static event session.OnSessionAdded (Uplink only)
    • static event session.OnSessionRemoved (Uplink only)
    • static event session.OnSessionRenamed (Uplink only)
    • static session:ForEach[string command,<jsonvalueref filterQuery>] (Uplink only)
    • Fixed jsonarray script.ObjectDefs
    • Fixed Attach command
    • Fixed bool distributedscope.Has[key]

Inner Space version 1.19 Build 6988
Released: 2022-09-11
  • Stability update
  • MapleStory compatibility update

Inner Space version 1.19 Build 6984
Released: 2022-09-08
  • General compatibility fixes
  • DirectX 11/12 compatibility update

Inner Space version 1.19 Build 6982
Released: 2022-09-08
  • General compatibility fixes
  • Guild Wars 2 compatibility update
  • LavishGUI 2
    • Added element event "onActualSizeChanged", fired when a calculated element size changes
    • Fixed a bug with inputpicker elements disappearing when in combo mode
    • Fixed key repeat in videofeed and broadcaster elements
  • LavishScript
    • innerspace:Minidump[uint processID, string filename="auto.dmp"]
    • bool innerspacesession.FocusFollowsMouse
    • innerspacesession:SetFocusFollowsMouse[bool newValue]

Inner Space version 1.19 Build 6969
Released: 2022-08-16
  • Inner Space now has a "Run as Administrator" setting. Note that disabling Run as Administrator may restrict various functionality.
  • Diablo Immortal compatibility update
  • Direct3D 12 compatibility update
  • Dark Age of Camelot disappearing cursor fix
  • Fixed global binds added via the Uplink
  • Fixed a new issue with certain virtual files
  • Fixed a freeze issue with Champions Online, Star Trek Online and related games
  • Inner Space now has a setting to "Auto-start all Agents by default"
  • LavishGUI 2
    • Improved screen resizing behavior
    • Fixed window element sizing when minimized
  • LavishScript:
    • New types: xmlreader, xmlnode
    • A weakref can now refer to itself within weakref:SetReference, e.g. MyRef:SetReference[MyRef.Next]
    • innerspace:Relay[target,object,method,... args]
    • innerspace:Relay[target,command]
    • innerspace:Relay[string json]
  • Expects a JSON object containing "target' and "cmd" strings, with optional boolean "redirect" (false if not given) e.g. {"target":"all","cmd":"echo hi mom"}
  • Alternative to "cmd", also accepts "object" and "method" strings with optional "args" array of strings, to execute an object method. For script-defined objects, the full JSON object is also provided via Context in this case, including any additional properties. e.g. {"target":"all","object":"LavishScript","method":"Echo","args":["hi mom"]}
    • innerspace:RelayByRef[jsonvalueref jo]
    • innerspace:LocalExec[target,object,method,... args]
    • innerspace:LocalExec[target,command]
    • innerspace:LocalExec[string json]
    • innerspace:LocalExecByRef[jsonvalueref jo]
    • lavishscript:Echo[...]
    • system:DebugBreak
    • system:ShowMessageBox[string text,string caption]
    • system:DebugOutput[string text]
    • innerspace:SetAutoDebug[bool]
    • innerspace:SetAutoDebug[bool, string logfilename]
    • bool innerspace.AutoDebug
    • gdiwindow display.ForegroundWindow
    • string jsonarray.GetType[...]
    • string jsonobject.GetType[...]
    • uint jsonobject.Used
    • uint jsonobject.Size
    • jsonarray:AddString[string]
    • jsonarray:AddInteger[int64]
    • jsonarray:AddBool[bool]
    • jsonarray:AddNumber[float]
    • jsonarray:AddNULL
    • string type.Method[uint id]
    • uint type.Method[string name]
    • type type.Inherits
    • jsonarray type.Members
    • jsonarray type.Methods
    • type type.VariableType
    • jsonobject type.AsJSON
    • string scriptobjecttype.Inherits
    • string scriptobjecttype.PersistentClass
    • bool scriptobjecttype.Member[string name]
    • bool scriptobjecttype.Method[string name]
    • bool scriptobjecttype.Function[string name]
    • jsonarray scriptobjecttype.Members[bool followIncludes=TRUE]
    • jsonarray scriptobjecttype.Methods[bool followIncludes=TRUE]
    • jsonarray scriptobjecttype.Functions[bool followIncludes=TRUE]
    • jsonobject scriptobjecttype.AsJSON[bool followIncludes=TRUE]
    • jsonarray lavishscript.Aliases
    • jsonarray lavishscript.Commands
    • jsonarray lavishscript.Events
    • jsonarray lavishscript.Scripts
    • jsonarray lavishscript.TopLevelObjects
    • jsonarray lavishscript.Types
    • function script.Function[name]
    • jsonarray script.Functions
    • jsonarray script.Atoms
    • jsonarray script.ObjectDefs
    • jsonobject script.AsJSON

Inner Space version 1.19 Build 6947
Released: 2022-07-27
  • Diablo Immortal compatibility update
  • Direct3D 11 stability update
  • EverQuest 2 compatibility fix
  • .NET compatibility fix
  • Started Agents now propagate to new processes
  • Fixed an issue with video feeds flickering in background
  • JSON parser now supports reading JSON5 format including comments
  • LavishGUI 1
    • Tree Node Handles are now int64, to fix an issue with Tree controls in 64-bit
  • LavishGUI 2
    • New element types: map, mapitemview
    • New LavishScript types: lgui2map, lgui2mapitemview
    • New brushes: map.backgroundBrush, map.borderBrush
    • New templates: map, map.content, map.contentContainer, mapitemview
    • Fixed a potential crash with onLogicalDetached and onVisualDetached events
    • Fixed an issue with scrollviewer not rendering in some cases
    • Fixed lgui2layer:SetReference when used with a variable
    • Fixed usage of LavishScript enum types
    • Added 'pushNumeric' boolean value to Data Bindings, which forces the value to numeric format (e.g. 12345, -0.12345, etc) prior to pushing
    • bool lgui2databinding.IsPushNumeric
    • lgui2databinding:SetPushNumeric[bool newValue]
  • LavishScript:
    • New type "anonevent" implements an anonymous event
    • New types: distributedscope, distributedvalue
    • distributedscope innerspace.AddDistributedScope[json definition]
    • innerspace:AddDistributedScope[json definition]
    • jsonarray innerspace.DistributedScopes
    • distributedscope innerspace.DistributedScope[string name]
    • jsonvalueref is less picky about accepting initial values
    • jsonarray mutablefilepath.GetFiles[string wildcard]
    • jsonarray mutablefilepath.GetDirectories[string wildcard]
    • jsonarray collection.Keys
    • set:Erase[string key]
    • collection:NativefromJSON[...,json]
    • index:NativefromJSON[...,json]
    • Fixed set:ForEach
    • Fixed issues with recently added .Inc and .Dec members of numeric types
    • system:LoadDLL[filename, optional flags]

Inner Space version 1.19 Build 6921
Released: 2022-04-04
  • Fixed context menu appearance with DPI scaling
  • Windows 7 compatibility fix
  • Fixed window positioning commands for maximized windows
  • Fixed a window resizing issue
  • New processOptions.json property "useDpiAwareness" can be set to false to keep a game as DPI unaware
  • LavishGUI 2
    • Fixed a bug where clicking a button would not apply keyboard focus changes
    • Data Binding/Trigger preprocessor now correctly handles multiple replacements in the same line
    • textbox now applies horizontalContentAlignment and verticalContentAlignment
    • lgui2databinding lgui2element.ContextBinding
    • lgui2element:PullContextBinding
    • lgui2databinding lgui2objectview.ObjectBinding
    • lgui2objectview:PullObjectBinding
    • elgui2horizontalalignment lgui2scrollviewer.HorizontalContentAlignment
    • elgui2verticalalignment lgui2scrollviewer.VerticalContentAlignment
    • lgui2scrollviewer:SetHorizontalContentAlignment[value]
    • lgui2scrollviewer:SetVerticalContentAlignment[value]
    • New Element property "contextBinding"
    • scrollviewer now has horizontalContentAlignment and verticalContentAlignment
  • LavishScript
    • innerspacesession:DisableDPIAwareness - can be used during Pre-Startup
    • Fixed jsonobject:SetString, :SetInteger, :SetNumber, :SetNULL, :SetBool
    • jsonobject:SetByRef[key,jsonvalueref]
    • jsonarray:SetByRef[key,jsonvalueref]
    • jsonarray:AddByRef[jsonvalueref]
    • jsonobject:Merge[string json,bool replace = TRUE]
    • jsonobject:Merge[jsonvalueref json,bool replace = TRUE]
    • Types with :Inc and :Dec now have .Inc and .Dec (which return a new value, but do not change the original)
    • jsonvalue.Type for true/false now gives "boolean"
    • int64 jsonarray.GetInteger[...]
    • float64 jsonarray.GetNumber[...]
    • bool jsonarray.GetBool[...]
    • int64 jsonobject.GetInteger[...]
    • float64 jsonobject.GetNumber[...]
    • bool jsonobject.GetBool[...]
    • gdiwindow:SetForegroundWindow

Inner Space version 1.19 Build 6901
Released: 2022-03-18
  • Fixed EverQuest Launchpad
  • Fixed a window resizing issue

Inner Space version 1.19 Build 6900
Released: 2022-03-17
  • Nice update
  • EverQuest 1 windowing fixes
  • Compatibility fixes
  • Launched games are now treated as per-monitor high DPI aware...
  • Improved minimized game window behavior
  • Star Trek Online compatibility update
  • Implemented new Agent Installer API, which can download and install (or update) agents
  • Fixed DotNet command crash in 64-bit processes
  • New uplink command "Launch" works like "Open" but takes Path, Executable, Parameters as first 3 params
  • Fixed FileRedirect -remove
  • LavishGUI2:
    • Cursor position now moves after pasting in a text box
    • Added "template" Item View Generator type, which takes just a "template" parameter
    • Fixed itemlist itemsBinding not working properly when bound to a jsonvalueref or a jsonvalue variable
    • LavishScript "method" calls (event handlers, bindings, etc) can now resolve 'This'
    • Data Bindings and Triggers can now resolve 'This'
    • Preprocessor added to simplify common Data Binding and Trigger code. For example, LGUI2.DataBindingContext.Locate[\"\",itemview,ancestor].Item.Data.Get[xyz] can now be expressed as _CONTEXTITEMDATA_.Get[xyz]
    • Input binding definitions now alternatively accept a simple combined "combo" property, essentially combining modifiers with a single control
    • Fixed LGUI2.Bindings
    • "jsonTemplate" can now explicitly specify a skin name in the format "skinName:templateName"
    • Drag and Drop support
    • New element type "dragin" ("lgui2dragin" LavishScript type) is a great place to drag things in to (although other elements will do)
    • lgui2element:SetDragDropItem[json object]
    • lgui2element:UnsetDragDropItem
    • jsonobject lgui2layer.DragDropItem
    • lgui2item lgui2hud.DragDropIcon
    • New element event "onDragDrop"
    • New screen event "onDragDropItemChanged"
    • New default skin template "dragdropitem"
    • lgui2window:SetTitle[json lgui2element definition]
    • window "title" now works with Styles
    • Added "comboMode" to inputpicker control
    • Added overlay element type, lgui2overlay LS1 type
    • expander now supports 'header' in styles
    • Fixed border element's maintainAspectRatio behavior
    • Fixed Data Binding pre-processing for Push format
    • textboxes now have "textBindingUsesFocus" option, true by default
    • inputpicker control now requires keyboard focus
    • bool lgui2textbox.TextBindingUsesFocus
    • lgui2textbox:SetTextBindingUsesFocus[bool]
    • weakref lgui2element.Context[self|logical|visual]
    • weakref lgui2element.Context - same as Context[logical]
    • lgui2element:SetContext[weakref]
    • lgui2element lgui.LoadReference[weakref]
    • lgui:LoadReference[weakref]
  • LavishScript:
    • LavishScript preprocessor now allows (ignores) #comment #region #endregion #pragma
    • New object types: agentprovider, agentlisting, eqplaynice, dotnet
    • New Top-Level Objects: EQPlayNice, DotNet
    • Return values should no longer be improperly truncated in most cases
    • Fixed jsonvalueref.Reference when there is no valid reference
    • New event "EQPlayNice.ShouldRenderFrame" (EQ1 only)
    • New event "OnSessionsUpdated"
  • New LavishScript object type members/methods:
    • jsonobject ismenuitem.AsJSON
    • ... ismenu.AddfromJSON[json object]
    • ismenu:AddFromJSON[json array or object]
    • uint session.Slot
    • jsonobject session.AsJSON
    • session innerspaceuplink.Session[name]
    • session innerspaceuplink.Session[-pid,#]
    • jsonarray innerspaceuplink.Sessions
    • jsonarray innerspaceuplink.Resolve[relay targets]
    • jsonarray innerspace.AgentProviders
    • agentprovider innerspace.AgentProvider[name]
    • innerspace:AddAgentProvider[filename,optional json object]
    • system:CreateShortcut[json object]
    • agent:Reload
    • uint display.ForegroundMaxFPS
    • bool display.ForegroundMaxFPSCalculate
    • uint display.BackgroundMaxFPS
    • bool display.BackgroundMaxFPSCalculate
    • uint display.CurrentMaxFPS
    • bool display.CurrentMaxFPSCalculate
    • display:SetForegroundMaxFPS[uint]
    • display:SetForegroundMaxFPSCalculate[bool]
    • display:SetBackgroundMaxFPS[uint]
    • display:SetBackgroundMaxFPSCalculate[bool]
    • unistring system.EnvironmentVariable[name]
    • jsonobject system.EnvironmentVariables
    • string system.ExpandEnvironmentStrings[haystack]
    • system:SetEnvironmentVariable[name]
    • system:SetEnvironmentVariable[name,value]
    • jsonarray/object methods :SetString[key,value], :SetBool[key,value], :SetInteger[key,value], :SetNumber[key,value], :SetNULL[key]
  • New LavishScript object members (within Session only)
    • jsonarray videofeed.Sources
    • jsonarray videofeed.Outputs
    • jsonobject videofeedoutput.AsJSON
    • jsonobject videofeedsource.AsJSON

Inner Space version 1.18 Build 6837
Released: 2022-01-27
  • World of Warcraft compatibility update
  • EVE compatibility update
  • Diablo II Resurrected compatibility update
  • MIR4 compatibility update
  • Crowfall compatibility update
  • Tree of Savior comptatibility update
  • Audio engine is now loaded on-demand
  • Improved handling of Console menu item
  • Uplink window now fills the monitor work area
  • The Maximize button on the Uplink window now does something (still non-standard maximize/minimize behavior)
  • Fixed various keyboard/modifier state issues relating to switching windows
  • Added "foreground" to relay resolver, e.g. "relay foreground echo hi"
  • Agents
    • Agent events now use the Agent's folder as CWD
    • Agents now also include version, description, provides, conflicts, dependencies, minimumBuild
    • unistring agent.Version
    • unistring agent.Description
    • uint agent.MinimumBuild
    • jsonarray agent.Dependencies
    • jsonarray agent.Provides
    • jsonarray agent.Conflicts
    • bool agent.AutoStart
    • agent:SetAutoStart[bool]
  • LavishGUI 2
    • Numerous interaction fixes, including mouse wheel, modifier keys, clicking to focus
    • Fixed issues with videofeed and videofeedsource elements
    • Fixed a bug with combobox selection detaching the selected item
    • Fixed crashes with with self-detructive Input Hooks, itemlist, and others
    • Fixed an issue with item lists not appearing to have a highlighted item, if the item started out selected
    • Added inputpicker control and lgui2inputpicker object type
    • lgui2 object .JSON members moved to .AsJSON
    • jsonobject lgui2layer.Bindings
    • Fixed missing lgui2element.InputHook member
    • Added 'none'/'nomodifiers' and 'any'/'anymodifiers' hooks and bindings (for specifying modifiers)
    • LGUI2.Element[] no longer resolves to an element
  • LavishScript
    • New object types (uplink only): innerspaceuplink, relaygroup
    • New Top-Level Objects (uplink only): ISUplink
    • ${SomeObject[]} should now produce the same result as ${SomeObject[""]}
    • Fixed an issue with pre-parsed sequences sometimes returning a "variable" type
    • New "OnFileOpen" event
    • Add Game window now fires "GamesChanged" event
    • New LMAC task type "ls1.code"
    • The Sessions TLO, within a Session, will return a jsonarray if given "array" parameter, e.g. ${Sessions[array]}
    • bool innerspacesession.AllowFlashWindow
    • innerspacesession:SetAllowFlashWindow[bool]
    • jsonvaluecontainer:ImportINI[filename]
    • settingset:ImportINI[filename]
    • jsonobject innerspacesession.LoaderFlags

Inner Space version 1.16 Build 6700
Released: 2020-08-07
  • Lord of the Rings Online compatibility fix
  • EverQuest launcher compatibility fix
  • World of Warcraft compatibility fixes
  • Glyph compatibility fix
  • Fixed an issue with "blinking" GUI images affecting Direct3D 11 and 12
  • Wizard101 launcher crash fix
  • Logitech G602 mouse support
  • Fixed a bug with the DotNet command in 64-bit
  • Fixed cases where extensions loaded from the wrong folder. Extensions can no longer be loaded from the root Inner Space folder
  • New Audio engine built with XAudio2 can play and mix .wav, .mp3 and other common audio formats supported by Windows Media Foundation
    • https://docs.microsoft.com/en-us/windows/win32/medfound/supported-media-formats-in-media-foundation
  • LavishGUI 2
    • Fixed a bug with scrollviewer not sizing its content inside its scrollbars
    • Fixed a bug with textblock not refreshing in certain cases
    • Fixed a bug with .gifs not refreshing
    • Fixed a bug with image mirroring not applying
    • Fixed a bug with Input Bindings not always assigning a default value for "controls" strings
    • Fixed a crash when a hook removes itself
    • Expander now properly supports "headerEdge"
    • Elements used as the Items in Item Lists now properly retain relative file path information, e.g. for brush image filenames
    • LavishGUI 2 packages can now define "audioVoices" and "audioStreams"
    • Data Bindings now support a "linkedBinding"
    • New element types: objectview, propertyview
    • New Event Handler type: audio
    • Triggers now use LGUI2.TriggerContext to provide context, instead of LGUI2.DataBindingContext
  • LavishScript
    • Fixed issues with weakref (persistentref) and script-defined object types
    • Fixed an issue parsing function parameter default values
    • Fixed detection and handling of invalid math. Invalid math in if and loop conditions will now error out and prevent the script from runnin.
    • Fixed a bug with the new ~ syntax, used in the middle of a Data Sequence in certain cases
    • Fixed a bug with jsonvalueref when referencing a null value
    • LavishScript preprocessor now ignores lines beginning with #pragma
    • When creating variables, the variable itself is now fully accessible before calling FromText (or objectdef:Initialize)
    • New Object types: audiostream, audiovoice, lgui2inputhook, lgui2objectview, lgui2propertyview, lgui2property
    • New Task types: audio.setvolume, audio.playstream
    • New Enums: eaudiostreamstate
    • Added -s flag to Wait command, to accept a float number of seconds instead of integer tenths of seconds
    • float audio.EngineVolume
    • jsonarray audio.EngineVolumes
    • audio:SetEngineVolume[float,...]
    • audio:IncEngineVolume[float,...]
    • audio:AddVoice[name]
    • audio:AddStream[name,filename]
    • audio:RemoveVoice[name]
    • audio:RemoveStream[name]
    • lgui2inputhook lgui2element.InputHook[name]
    • lgui2element:AddInputHook[json]
    • jsonarray:Sort
    • jsonarray:Sort[property_name]
    • bool string.StartsWith[text]
    • bool string.EndsWith[text]
    • function script.Function

Inner Space version 1.16 Build 6651
Released: 2019-12-10
  • World of Warcraft Classic 1.13.3 compatibility update. Existing Game Profiles for WoW Classic that have been broken by 1.13.3 will automatically be fixed.
  • LavishGUI 2
    • Fixed a bug where Input Hooks inappropriately blocked inputs
    • Fixed crashes with composite animation type
    • Fixed crash with re-defined element animations
    • Fixed issues with table "cellSpacing" applying incorrectly
    • Package "animationTypes" property now an array rather than an object
  • LavishScript
    • Data Sequences now support a tilde character ~ to convert to string and Escape. For example, ${Name.Escape} can now be ${Name~}, and this works on all object types rather than just string.
    • Fixed string.Escape handling of certain characters
    • jsonvalue:WriteFile[filename] now uses the correct relative path base

Inner Space version 1.16 Build 6640
Released: 2019-11-12
  • Fixed a crash with various input devices, including certain Corsair gaming keyboards
  • LavishScript
    • New Object Type: webrequest
    • New Task type: webrequest
    • New Enums: ewebrequeststate, ewebrequestas

Inner Space version 1.16 Build 6638
Released: 2019-11-11
  • Fixed an issue with the Lavish Crash Reporter window not coming up
  • Roblox compatibility update
  • World of Warships compatibility update
  • Input control names from "alternative input devices" are now unique, now prefixed with their manufacturer and product IDs. This will not affect devices already cached in InputDevices.XML. Deleting InputDevices.XML will cause the new control names to be generated for your input devices if desired.
  • Implemented a new Agents system. An Agent handles various events.
  • MIDI
    • Input devices should now be automatically released by background windows, prioritizing the foreground window. Devices can be selectively retained by setting Retain
    • Fixed a crash with MIDI output devices
    • midi:OpenAllDevicesIn and OpenAllDevicesOut no longer require the devices to already be detected
    • bool midiindevice.Retain
    • midiindevice:SetRetain[bool]
    • midioutdevice:SendSysEx[...]
  • LavishGUI 2
    • Fixed a crash when an element is destroyed during its own onButtonMove/onMouseButtonMove hook
    • Fixed a Direct3D 9 reset bug
    • Fixed bugs with canvas re-initialization
    • Fixed canvas opacity levels
    • Fixed scrollviewer performance
    • Fixed an issue where clicking on an element, and moving the mouse away while held, would leave the element in a clicked state
    • Fixed a bug with windows warping when clicking back into an Inner Space window
    • Fixed a bug where Items could modify the wrong Item List with a forwarded event
    • Fixed a bug where events from alternative input devices always showed up as the Keyboard
    • Fixed a crash with Input Hooks adding and removing Input Hooks
    • Fixed a reference leak with lgui2item:SetSelected
    • Fixed issues with anchor to an element
    • Elements, Brushes, and Fonts should now keep usnig their original, intended Skin, even if others are in use
    • window elements accept keyboard focus by default, fixing unintended click-through
    • button elements now have onVisualPress/onVisualRelease in addition to onPress/onRelease
    • scrollviewer with 0 scrollbarsize now acts like scrollbars are disabled
    • popup elements now close if their logical parent is no longer visible
    • table element implementation rounded out. Row and Column numbering is now 1-based
    • table elements now support "autoFill" to automatically assign a row and column to child elements
    • combobox popups now anchor to the combobox
    • listbox.contentContainer split to its own template
    • Packages now support "metaScripts"
    • Data Bindings now support a "pullHook", an Event Hook which Pulls when a specified event is fired on a given element
    • New input control type "data"
    • New event on all elements "onControlData", for interpreting device feedback (including MIDI SysEx messages)
    • New event on all elements "onRefresh", e.g. for refreshing values prior to rendering
    • New events on all elements for specific keys, such as "onEnterPress"/"onEnterRelease" and a few dozen other keys
    • Skins can now explicitly specify a "base" skin name, which they inherit. If not specified, they will use "default"
    • Brushes now support an "imageBrush", the name of a Brush to use for an image
    • Brushes instantiated by Skins now keep images loaded
    • LGUI2.DataBindingContext is now also used for Triggers
    • lgui2layer now has :Unload versions of all :Load methods
    • Fixed lgui2brush:SetColor
    • lgui2:UnloadSkinFile
    • lgui2item:Remove
    • lgui2databinding:PushValue
    • lgui2databinding:PullValue
    • lgui2brush:SetImageBrushName[name]
    • unistring lgui2brush.ImageBrushName
    • float lgui2border.MaintainAspectRatio
    • lgui2border:SetMaintainAspectRatio[float]
    • int lgui2table.AutoFillFirstRow
    • int lgui2table.AutoFillLastRow
    • int lgui2table.AutoFillFirstColumn
    • int lgui2table.AutoFillLastColumn
    • lgui2table:SetAutoFillRows[int first], lgui2table:SetAutoFillRows[int first, int last]
    • lgui2table:SetAutoFillColumns[int first], lgui2table:SetAutoFillColumns[int first,int last]
  • LavishScript 1.102
    • Added Little Monsters to Script preprocessor (NOT available in DataParse/ExecuteCommand or Console command entry, etc):
  • $$> <$$ - Shrinkwrap
  • $$[ ]$$ - Shrinkwrap and Escape
    • Scripts now get an ID
    • Scripts now get a Retain flag. endscript * does not end scripts with the Retain flag
    • objectdef methods can now return a bool value, for the same behavior as built-in type methods
    • MetaScripts implemented. MetaScripts are defined in JSON and will contain both code and metadata (such as documentation)
    • mkdir command now makes all required parent directories too.
    • Fixed a crash with jsonvalueref getting set to a null jsonvalue
    • Fixed a crash issue with jsonarray:ForEach
    • New types: agent, function, metascript
    • New Top-Level Object: function Function
    • agent innerspace.Agent[#]
    • agent innerspace.Agent[name]
    • innerspace:AddAgent[json]
    • jsonarray array.AsJSON
    • jsonarray jsonobject.Keys
    • jsonarray jsonobject.Values
    • uint script.ID
    • metascript script.MetaScript
    • bool script.Retain
    • script:SetRetain[bool]
    • metascript lavishscript.MetaScript[#]
    • metascript lavishscript.MetaScript[name]
    • metascript lavishscript.LoadMetaScript[filename]
    • metascript lavishscript.LoadMetaScriptJSON[json]
    • lavishscript:LoadMetaScript[filename]
    • lavishscript:LoadMetaScriptJSON[json]
    • jsonobject type.Metadata
    • jsonobject scriptobjecttype.Metadata

Inner Space version 1.16 Build 6593
Released: 2019-10-11
  • Star Wars The Old Republic "NodeSpechCache" error fixed
  • Fixed an issue with certain Virtual Files being created as folders
  • Fixed a new issue with launching certain games since build 6583
  • LavishGUI 2
    • Fixed an issue with textblock padding
    • Fixed a crash issue with commandbox
    • Fixed a bug with selection in textbox context menus being off by one item
    • Fixed an issue where relative file paths did not work properly for some Brushes
    • Fixed an issue with switching Brushes in a style by using the string form
    • Item Lists now support new events for specific mouse clicks "onItemMouse1Press" "onItemMouse1Release" "onItemMouse1DoubleClick" up to Mouse5
    • Item Lists default Item View Generator does a better job at wrapping Elements in an itemview when used directly as Item Data
    • lgui2item lgui2itemlist.ItemByValue[json]

Inner Space version 1.16 Build 6587
Released: 2019-10-07
  • Fixed a new launching issue with World of Warcraft Launcher

Inner Space version 1.16 Build 6586
Released: 2019-10-07
  • Fixed a launching issue with ISBoxer EVE Launcher and other .NET apps

Inner Space version 1.16 Build 6585
Released: 2019-10-07
  • Fixed EverQuest 2 "DirectX 9.0c" error
  • Fixed MIDI:OpenAllDevicesIn and MIDI:OpenAllDevicesOut

Inner Space version 1.16 Build 6583
Released: 2019-10-07
  • Fixed various crashes and other issues when launching a game instance (session)
  • Fixed "invalid build" error that occurs for some people when when clicking "Install Now" in the Patcher window
  • Fixed "refresh token required" error that occurs for some people when they need to log in again, but apparently forgot their login information
  • DxNothing is now included with Inner Space
  • Lord of the Rings Online: Added a workaround for the blue display bug, which seems to be LOTRO's Direct3D 10 support calling SetDeviceGammaRamp with bad data...
  • Logitech G502 Mouse new version compatibility update
  • RSI Launcher (Star Citizen) compatibility update
  • Game detections added for Legends of Aria and Star Citizen
  • MIDI Input Device support added. MIDI devices are not enabled automatically, but can be enabled and handled purely by a script, or by LavishGUI 2.
  • LavishGUI 2
    • Package files now support "includes" and "optionalIncludes" arrays, which specify additional Package files to load prior to loading any of its own assets
    • Fixed an issue with "jsonTemplate" not applying properly when a default template was specified internally. This fixes templating "tab" and other elements
    • Fixed issues with opacity not applying correctly
    • Fixed an issue with Item Lists that do not initially specify a "defaultItemViewTemplate"
    • Fixed an issue where combobox margins incorrectly affected the size of its contents
    • Fixed an issue with clicking to activate an Inner Space window, after having previously left the window with the cursor over a LavishGUI 2 element
    • Fixed an issue with tooltips not disappearing when the owner is hidden
    • Fixed a rendering issue with negative element sizing
    • Fixed unhandled exceptions from LavishScript accesses to various data bindings, when those bindings are not set
    • Fixed several issues with scrollviewer, scrollbar ranges and rendering issues
    • Brushes now support a "canvas" property
    • Skins now have brush and font registries under "brushes" and "fonts" properties
    • Font styles now support "globalFont", to base font properties off of instead of the parent element's font
    • Item Lists now use 1-based indexing for LavishScript
    • lgui2item.Index is now 1-based
    • Item Lists now properly auto-push the selectedItemBinding
    • comboboxes now properly auto-pull the selectedItemBinding
    • Item Lists now support "itemsBinding", meant for use in changing data sources. If automatic pull is enabled, it will be restricted to "once" behavior.
    • Elements with Data Bindings now have events (such as "pullCheckedBinding" and "pushCheckedBinding") that can pull/push the bindings
    • Elements with Data Bindings now have LavishScript Members/Methods to access, pull and push the bindings
    • Window elements now implement anchor, and include anchor properties in placement storage
    • Window elements now support "resizable" "widthResizable" and "heightResizable"
    • textblock now supports "horizontalContentAlignment" and "verticalContentAlignment"
    • combobox now supports "selectedItemViewTemplate" property, to use a template other than "comboboxselection"
    • Input events and bindings now include MIDI control support, with new properties "controlChannel" and "devicePort"
    • New control type "Note" and device type "MIDI"
    • New input event on all elements "onNoteMove"
    • New Input Hooks system implemented. All elements now support "inputHooks"
    • Input binding strings now interpret a name prefixed with "MIDI:" as a MIDI control
    • New element types "canvas", "knob" (partially implemented), "sensitivebutton"
    • New LavishScript types lgui2databinding, lgui2anchored, lgui2canvas, lgui2canvasrenderer, lgui2knob, lgui2sensitivebutton
    • LavishScript types lgui2table, lgui2page, lgui2pagecontrol now implemented
    • bool lgui2window.IsHeightResizable, .IsWidthResizable
    • lgui2window:SetHeightResizable[bool], :SetWidthResizable[bool]
    • jsonvalue lgui2element.Tooltip
    • lgui2element:SetTooltip[json]
    • lgui2item:SetSelected[bool]
    • lgui2item lgui2itemlist.ItemByProperty[json]
    • lgui2item lgui2itemlist.ItemByProperty[propertyName,json]
    • lgui2itemlist:Sort, :Sort[-reverse], :Sort[propertyName], :Sort[-reverse,propertyName]
    • lgui2brush lgui2skin.Brush[name]
    • lgui2fontstyle lgui2skin.Font[name]
    • lgui2skin:SetBrush[name,json]
    • lgui2skin:SetFont[name,json]
    • lgui2canvasrenderer lgui2brush.Canvas
    • lgui2brush:SetCanvas[json]
  • LavishScript 1.101
    • string string.Trim
    • string string.ReplaceSubstring[substring,replacement]
    • mutablestring:Prepend[value]
    • bool bool.Not
    • settingsetref innerspace.Configuration, innerspace.GameConfiguration, innerspace.InputConfiguration
    • setting settingset.Get[set1,...,settingName] - Shortcut to access settings within one or more nested sub-sets
    • settingset:AddSetting[set1,...,settingName,value] - Shortcut to create sub-sets and settings
    • settingset:AddSet[set1,...] - Shortcut to create nested sub-sets
    • settingset.AsJSON and setting.AsJSON replace the previous .JSON members, and the output no longer produces extraneous commas
    • Added an optional -lazy switch to jsonvaluecontainer:SetValue, jsonvalue.Assert, jsonarray:Add, jsonarray:Set, and jsonobject:Set. When given, any json value that would otherwise produce a parsing error will be accepted as a JSON string value.
    • Added support for any number of values in jsonarray:Add, jsonarray:Set, jsonobject:Set
    • jsonobject.AsJSON output now comes in the order added
    • collection.Get[key] is now an alias for collection.Element[key]
    • unistring collection.AsJSON[multiline,array,AsJSONMemberName]
    • unistring index.AsJSON[multiline,AsJSONMemberName]
    • unistring set.AsJSON[multiline]
    • collection:FromJSON[...,json]
    • index:FromJSON[...,json]
    • persistentref is now weakref. The type is still also available as persistentref for compatibility
    • weakref now sets to NULL in cases where it previously rejected a value
    • New type jsonvalueref, works like weakref except is a strong reference to a jsonvalue
    • New :ForEach[code] method added to array, index, collection, set, jsonarray, jsonobject
    • New type keyvaluepair provides Key and Value...
    • New Top-Level Object "ForEach" provides a keyvaluepair during ForEach calls
    • New Top-Level Object "MIDI" gives access to the midi object
    • New types midi, midiindevice, midiinevent, midioutdevice

Inner Space version 1.16 Build 6535
Released: 2019-09-03
  • World of Warcraft Launcher (Battle.net) compatibility update
  • Fixed compatibility with EverQuest's LaunchPad
  • LavishGUI 2
    • Item Lists now support "selectedItemBinding" and "selectedItemBindingProperty"

Inner Space version 1.16 Build 6530
Released: 2019-09-02
  • WoWVoiceProxy.exe will be blocked from running by default, due to a number of reported performance issues
  • Fixed a bug where clicking Install Now before patch information was received would show an "invalid build" error
  • Added a button to check for updates. This can only be used once every 5 minutes, and will fade if currently unavailable.
  • XKeys XK-24 compatibiliy update
  • Heroes of the Storm compatibility update
  • LavishGUI 2
    • Most elements now support new events for specific mouse clicks "onMouse1Press" "onMouse1Release" "onMouse1DoubleClick" up to Mouse5
    • All elements now support "eventHandlers", "styles", "hooks", "triggers", and "contextMenu" in Styles
    • border elements now support "child" in Styles
    • border elements now support "horizontalContentAlignment" and "verticalContentAlignment" properties
    • expander elements now rely on "onHeaderMouseButtonMove" and "onHeaderButtonMove" to be forwarded from the header
    • combobox has been reworked as a headered content container, and now properly handles Item View Generators
    • Data Bindings now have additional properties "pullOnce", "pullReplaceNull" and "pushNullFormat"
    • Embedded LavishScript code updated:
  • Embedded code should either be a string, or an array. Cases that previously did not accept arrays, such as defining an event handler in array form, now do
  • Code arrays now accept any JSON value types
  • "code" event handlers now properly set "This" to the owner element and not the source (which is available via Context.Args.Source)
  • Objects will be embedded in-line and escaped, simplifying embedding JSON within embedded LavishScript
  • Inner arrays will concatenate the contents together to form a single string.
    • Fixed a crash with scrollviewer when it has no scrollbar defined
    • Fixed a crash with listbox when using RemoveItem during an onItemMouseButtonMove Hook
    • Fixed a crash with lgui2popup:ToggleOpen[x,y]
    • Fixed lgui2itemlist:MoveItem
    • Fixed several cases where horizontalAlignment/verticalAlignment ignored margins
    • Content container elements now support a boolean "fitContentContainer" property
    • listbox scrollviewer contentContainer now stretches its content
    • lgui2element lgui2border.Child
    • lgui2border:SetChild[json]
    • elgui2verticalalignment lgui2border.VerticalContentAlignment
    • lgui2border:SetVerticalContentAlignment[elgui2verticalalignment]
    • elgui2horizontalalignment lgui2border.HorizontalContentAlignment
    • lgui2border:SetHorizontalContentAlignment[elgui2horizontalalignment]
    • float lgui2wrappanel.ChildWidth, float lgui2wrappanel.ChildHeight
    • lgui2wrappanel:SetChildSize[#], lgui2wrappanel:SetChildSize[width,height]
    • lgui2itemlist lgui2itemview.ItemList
    • lgui2item lgui2itemview.Item
    • ... lgui2.DataBindingContext - when processing a Data Binding, this provides context (the element or object with the data binding)
    • Types updated for use with persistentref: lgui2animateargs, lgui2eventargs, lgui2itemviewgeneratorargs, lgui2eventhandler, lgui2inputbinding, lgui2radialgaugeneedle, lgui2trigger
  • LavishScript
    • New type "innerspacesession", in Inner Space Sessions only
    • New Top-Level Object: innerspacesession ISSession, in Inner Space sessions only
    • uint mouse.DoubleClickTime (in ms)
    • uint mouse.DoubleClickHeight
    • uint mouse.DoubleClickWidth
    • Added "string AsJSON" members to bool, int, int64, uint, float, float64, string
    • Fixed a bug with bool.Equal always returning NULL if its value was FALSE

Inner Space version 1.16 Build 6497
Released: 2019-08-12
  • Fixed a bug with the Uplink window freezing when there is an update notice. Sorry about that!
  • LavishGUI 2
    • Fixed Brush ability to interpret colors from "#rrggbb" strings

Inner Space version 1.16 Build 6496
Released: 2019-08-12
  • Fixed a bug with the Uplink window opening at startup. This should only happen with an update notice.
  • LavishGUI 2
    • Fixed videofeed/broadcaster elements sending Mouse2-Mouse5 to non-Inner Space windows

Inner Space version 1.16 Build 6494
Released: 2019-08-08
  • Fixed a bug that caused games to be assigned to CPU 0 for some people

Inner Space version 1.16 Build 6492
Released: 2019-08-07
1.16 Build 6492
  • Inner Space main program stability and performance improvements
  • RIFT compatibility update
  • Lord of the Rings Online detections udpdated for new launcher
  • Dungeons & Dragons Online detections updated for new launcher
  • Inner Space Patcher window replaced
  • Logitech G910 M-keys fixed
  • Wizard 101 launcher compatibility update
  • LavishGUI 2
    • InnerSpace.XML now has a User Interface/Uplink option "LavishGUI 2 Interface" which defaults to "Interface/DefaultUplinkUI.json" and specifies the interface for the Uplink to load.
    • Optimizations and performance improvements
    • broadcaster and videofeed elements now track held buttons to release when broadcasting stops
    • Elements with context menus now do a better job at eating right clicks
    • Content Containers default to border instead of panel
    • Fixed various layout sizing issues
    • Elements with borders now support a "borderRounding" property
    • "code" property in Event Handlers, Item View Generators, and Animation Types now supports array of strings
    • expander arrows now point the correct direction
    • Most elements should now pixel-align, for sharper appearance
    • New element types: table, wrappanel
    • Image filenames now resolve LavishScript
    • textblock and textbox now fire "onTextChanged" events
    • stackpanel "horizontalContentAlignment" and "verticalContentAlignment" now properly support "stretch", with identical behavior to "uniform" which will be removed
    • New Locate flag "visible" specifies that the element (and those on the path to it) must be visible
    • Data Binding system implemented
    • checkbox now includes "checkedBinding" property
    • textblock and textbox now include "textBinding" property
    • slider, progressbar, radialgauge, radialgaugeneedle, scrollbar now include "valueBinding" property
    • textbox rendering improvements
    • Fixed textblock LavishScript parsing
    • Fixed dockpanel padding size issue
    • window elements now have a "hideOnClose" property
    • scrollviewer "horizontalScroll" and "verticalScroll" can now also be set to "fit"
    • bool lgui2window.HideOnClose
    • lgui2window:SetHideOnClose[bool]
    • lgui2element:FireEventHandler[name] / lgui2element:FireEventHandler[name,json] / lgui2element:FireEventHandler[name,json,source element id]
    • lgui2element:BubbleToTop
    • lgui2element.Metadata[TRUE] will create the Metadata object if it does not exist
  • LavishScript
    • Processors command now includes -all switch
    • jsonarray:Erase[#] / jsonarray:EraseByQuery[#] / jsonarray:EraseByQuery[#,bool remove_MATCHES]
    • New events remoteControlSenderAdded, remoteControlSenderRemoved (via LGUI2 broadcaster/videofeed elements)
    • licenseserver:ApplyPatch[branch,version]
    • jsonarray innerspace.RemoteControlSenders

Inner Space version 1.16 Build 6464
Released: 2019-06-26
  • Fixed a new issue with certain DirectX 9 games not hooking properly
  • LavishGUI 2
    • Fixed a crash with hotkeys that remove other hotkeys
  • LavishScript
    • Fixed string.Token when the string begins with the specified token

Inner Space version 1.16 Build 6463
Released: 2019-06-26
  • World of Warcraft 8.2 compatibility update
  • World of Warcraft Classic and Test profiles added
  • AMD graphics drivers compatibility update
  • Lord of the Rings Online 64-bit compatibility update
  • City of Heroes compatibility update
  • Logitech G910 compatibility update
  • New Session Task session.WindowCharacteristics implements behavior similar to the LavishScript command
  • LavishGUI 2
    • New controls pagecontrol, page
    • textbox and textblock now have a boolean wrap property, which defaults to false
    • Fixed text clipping
    • radialpanel now uses tooltips from child elements for the radial items
    • Fixed combobox appearance and popup behavior
    • Improved handling of relative file paths for images and shaders
    • Implemented a Trigger system, which allows the GUI to react to LavishScript conditions
    • Fixed a bug with videofeed element leaving the view enabled after the element was destroyed
    • Fixed broadcaster element blockLocal property
    • Elements with Collapsed visibility no longer take up space during layout
    • LavishScript enum type: elgui2visibility
    • elgui2visibility lgui2element.Visibility
    • lgui2element:Setvisibility[elgui2visibility]
    • elgui2edge lgui2slider.SlideFromEdge
    • lgui2slider:SlideFromEdge[elgui2edge]
    • jsonarray lgui2remotecontrol.Clones
    • lgui2remotecontrol:AddClone[name]
    • lgui2remotecontrol:RemoveClone[name]
    • lgui2animation:SetDuration[float]
    • lgui2animation:SetDurationMS[uint]
    • lgui2animation::SetInstant[bool]
    • lgui2textbox:SetWrap[bool]
    • bool lgui2textbox.Wrap
    • lgui2textblock:SetWrap[bool]
    • bool lgui2textblock.Wrap
    • Fixed missing lgui2checkbox:SetChecked[state], lgui2itemviewgeneratorargs.View, lgui2itemviewgeneratorargs.Error
    • LavishScript object persistence implemented for most LGUI2 types

Inner Space version 1.16 Build 6423
Released: 2019-03-18
  • Added a Game Profile for World of Warcraft Client (DirectX 11 Legacy)
  • Direct3D 12 compatibility update

Inner Space version 1.16 Build 6422
Released: 2019-03-17
  • Windows 10 / Direct3D 11-12 compatibility update

Inner Space version 1.16 Build 6421
Released: 2019-03-14
  • World of Warcraft:
    • WoW 8.1.5 includes a new Direct3D 11 mode, which currently has issues with Inner Space. The new Direct3D 11 mode replaces the previous Direct3D 11 mode from 8.1.0 and earlier by default, and a new "Direct3D 11 Legacy" mode now provides the original mode.
    • To work around this problem, Inner Space now blocks the game's new Direct3D 11 mode, so the game will use the legacy mode instead. The new Direct3D 11 mode will be unblocked once it is fully supported by Inner Space.

Inner Space version 1.16 Build 6419
Released: 2019-03-11
  • Fixed a crash issue with Direct3D 11-12 on Windows 7 and 8, and unpatched Windows 10
  • Star Trek Online / Neverwinter stability update
  • Crowfall client compatibility update
  • Nodiatis compatibility update
  • Battle.net App fix for Virtual Files (fileredirect)
  • Kill command (Uplink) now alternative accepts an executable filename
  • Game Profiles now have a "Kill Before Launch" option
  • LavishGUI 2
    • Mouse no longer needs to be moved after switching windows in order to recognize the cursor position
    • Fixed a bug with hidden elements accepting mouse focus
  • New Uplink object type members:
    • jsonobject licenseserver.DevBuild
    • jsonobject licenseserver.LiveBuild
    • bool licenseserver.UseDevBuild
  • LavishScript
    • Added taskmanager.BeginTaskLibrary[name] and :BeginTaskLibrary[name] which start an entire Task Library at once under a 'parallel' task
    • iterator:First, :Last, :Next, :Previous now optionally accept 2 parameters specifying -query (or -q) and a query ID. For example, MyIterator:First[-q,12] would move to the first item that matches against query ID 12
    • lmac.NewTaskManager will now silently return an existing Task Manager by the given name instead of NULL when it already exists
    • lmac.NewTaskLibrary will now silently return an existing Task Library by the given name instead of NULL when it already exists
    • lmac.NewTaskType will now silently replace an existing Task Type by the given name instead of NULL when it already exists
    • Persistent object support added for task, tasklibrary, taskmanager, tasktype, taskpulseargs
  • LavishMachine
    • Task Types: ls1.echo, ls1.runscript, unicast, multicast

Inner Space version 1.16 Build 6394
Released: 2019-01-25
  • Star Trek Online / Neverwinter mouse fix
  • Fixed an issue with Game Profiles for Diablo III Client launching the Blizzard App
  • Fixed a bug where Inner Space incorrectly modified existing Game Profiles at startup
  • New setting "Auto-detect Games" under "General" in InnerSpace.XML can be set to 0 to disable all game scanning at startup
  • Star Wars The Old Republic compatibility fix
  • Relay now supports messages up to 64K in length, up from 8K
  • LavishGUI 2
    • Package implementation fixed
    • Added float lgui2layer.FontScale and lgui2layer:SetFontScale[float]
  • LavishScript
    • Fixed some arbitrary character length limitations
    • LMAC Package implementation fixed

Inner Space version 1.16 Build 6383
Released: 2019-01-05
  • Game Detection system replaced. GameDetection.json replaces GameDetection.XML
  • Steam compatibility update
  • Fixed a bug that caused incorrect mouse positioning to be applied when the cursor was moved over the game window's border or caption area
  • Relay Groups are no longer blocked by a session with the same name. Instead, both are included when relaying.
  • Outdated "Macro" command removed
  • LavishGUI 2:
    • Elements will now move to the front of Z-order when clicked with the mouse
    • LavishGUI 2 now includes a HUD concept, currently supporting Indicator Icons and Notification Icons
    • New "hud" element type
    • Tooltips implemented
    • stackpanels are now reversible using "reversed" property
    • "Focus" is now "KeyboardFocus" including in event names and object members and methods e.g. gotFocus is now gotKeyboardFocus
    • Layer now has "MouseFocus" instead of "MouseOver". "MouseFocus" is the element that receives mouse input. "MouseOver" is a state any element has if the cursor is placed over it, regardless of MouseFocus.
    • New element events "gotMouseFocus" and "lostMouseFocus"
    • New element property "acceptsMouseFocus" can be set to false, causing mouse input to fall through (bypass) this element. This does not affect the element's descendants, which can still accept it.
    • Fade and slide animations marked as instant now apply properly
    • Animations no longer default to instant, if neither "instant" nor "duration" is provided
    • uniform stackpanels now correctly take margins into account when uniformly sizing their children
    • The default Skin now uses a stackpanel for tabcontrol headerContainer instead of a dockpanel
    • New type members:
      • lgui2element lgui2layer.HUD, .MouseFocusElement
      • bool lgui2element.AcceptsMouseFocus, .IsMouseFocused
      • bool lgui2stackpanel.IsReversed
      • float lgui2element.Strata
      • bool lgui2dragger.AllowResize, .AllowMove
    • New type methods:
      • lgui2element:SetAcceptsMouseFocus[bool]
      • lgui2stackpanel:SetReversed[bool]
      • lgui2dragger:SetAllowResize[bool], :SetAllowMove[bool]
      • lgui2element:SetStrata[#]
      • lgui2layer:LoadPackageFile[filename], :LoadPackageJSON[json]
  • LavishScript:
    • New mouse members: float mouse.Speed, int mouse.Threshold1, .Threshold2, .Acceleration
    • New mouse methods: mouse:ResetSpeed mouse:ResetAcceleration
    • Implemented a new Task system, based on the LavishGUI 2 Animation system
    • New types: lavishmachine task tasklibrary tasktype tasktypeset taskmanager taskpulseargs
    • New Top-Level Object: lavishmachine LMAC
    • Added bool string.NotNULLOrEmpty
  • .NET API: LavishScriptAPI.LavishScript.ExecuteTimedCommand is now properly linked and working

Inner Space version 1.16 Build 6372
Released: 2018-12-15
  • Direct3D 12 Compatibility update for World of Warcraft

Inner Space version 1.16 Build 6368
Released: 2018-12-12
  • Auto-detect and fix broken World of Warcraft Game Profiles from WoW 8.1 update

Inner Space version 1.16 Build 6367
Released: 2018-12-10
  • Fallout 76 compatibility update
  • Improved cursor clipping behavior
  • Added native support for XKeys XK-80 device
  • Fixed a crash with Direct3D 12 on AMD graphics
  • Fixed a rare crash issue with the new auth system
  • Fixed GIF support in Direct3D 9
  • LavishGUI: Fixed a bug where selecting Console text could freeze
  • LavishGUI 2:
    • Added anchor, commandbox, radialgauge, radialpanel element types
    • Added Animation support
    • Added Vertex Shader support
    • Fixed Pixel Shaders in Direct3D 9
    • Implemented Opacity support
    • New Event Handler type "animation"
    • Fixed "forward" event handlers defined in a JSOn array
    • Fixed a bug with "code" event handlers defined in a JSON object
    • Improved handling of relative filenames
    • element now includes "xFactor" "yFactor" "widthFactor" "heightFactor" properties for percentage-based placement
    • lgui2fontstyle now includes "heightFactor" and "heightOffset" properties
    • imagebox now has a "scaleToFit" property
    • Added tree traversal members to lgui2element
    • textbox implements key repeat, Copy, Paste and Cut, and Select All, also available via context menu
    • Fixed textbox cursor behavior
    • Fixed "multiline" in textbox
    • textbox and textblock now include "textScanner" properties
    • Added lgui2.LoadArrayFile and lgui2:LoadArrayFile which load elements from a JSON Array in a file, instead of a single JSON Object
    • lgui2button properly supports contextMenu
    • LGUI2Layer now fires onMouseOverChanged, onFocusChanged, onMouseCaptureChanged events on its screen
    • Selecting a contextmenu item closes the context menu
    • Item View Generators now support creation from arrays and strings, like Event Handlers
    • New LavishScript types for radialgauge: Added lgui2radialgauge and lgui2radialgaugeneedle
    • New LavishScript types for radialpanel: Added lgui2radialpanel and lgui2radialitem
    • remotecontrols now include "sendForegroundOnly" property
    • Added lgui2anchor, lgui2commandbox types
    • New LavishScript types for Animations: lgui2animationtype lgui2animation lgui2animateargs
    • Added LavishScript enum types: elgui2animationframestate elgui2anchormode
    • Fixed lgui2itemviewgeneratorargs
    • Added lgui2skin:SetTemplate[name,json]
    • Added lgui2element:Clear
    • Added lgui2element:Destroy, which is a shortcut for :Clear:Detach
    • Added lgui2element.XFactor, lgui2element.YFactor, lgui2element.WidthFactor, lgui2element.HeightFactor
    • Added lgui2element:SetLocation[#,#], lgui2element:SetLocationFactor[#,#], lgui2element:SetSize[#,#], lgui2element:SetSizeFactor[#,#]
    • Added lgui2element:SetStyle[name,json] and lgui2element:RemoveStyle[name]
    • Added lgui2element:SetColor[json], lgui2element:SetFont[json]
    • Added lgui2element.Style[name]
    • Added lgui2element.Animation[name] and lgui2element:Animate[json]
    • Added lgui2fontstyle.HeightFactor and lgui2fontstyle.HeightOffset
    • Added lgui2fontstyle:SetHeightFactor[#] and lgui2fontstyle:SetHeightOffset[#]
    • Added lgui2progressbar:SetFillerBrush[json] and lgui2progressbar:SetOverlayBrush[json]
    • Added lgui2brush.VertexShader and lgui2brush:SetVertexShader[json]
    • Added lgui2:RegisterAnimationType[json] and lgui2.AnimationType[name]
    • Added lgui2:LoadTextElementTypesFile[filename], lgui2:LoadTextElementTypesJSON[json], lgui2:LoadTextElementTypeJSON[json]
    • Added bool lgui2imagebox.ScaleToFit and lgui2imagebox:ScaleToFit[bool]
    • Implemented lgui2window and lgui2scrollviewer members and methods
    • lgui2itemlist methods MoveItem, RemoveItem, SetItemSelected, ClearSelection are now properly marked as methods instead of members
    • Fixed bugs with lgui2itemlist:ClearItems
  • LavishScript:
    • JSON Object keys are now properly escaped when generating JSON output
    • Added string.Escape[bool] where string.Escape[0] (or FALSE) performs standard non-LavishScript escaping
    • Added jsonarray:Add[json]
    • Added jsonvalue:WriteFile[filename], jsonvalue:WriteFile[filename,"multiline"]
    • Added ... system.RegistryValue[hkcu/hklm,key,value], which gives a string for REG_SZ or REG_EXPAND_SZ, or a uint for REG_DWORD

Inner Space version 1.16 Build 6336
Released: 2018-10-24
  • The Activate Inner Space window now has a button to switch accounts
  • Fixed minor issues with the new auth system

Inner Space version 1.16 Build 6335
Released: 2018-10-23
1.16 Build 6335
  • Added a New Device Authorization process. To authorize a new device to use Inner Space, you will need access to your e-mail address or a mobile Authenticator
  • Patching system updated. The Patcher window will also get updated with an option to restore a previous build
    • The "Always patch" option is no longer used
  • Inner Space now appears in Add/Remove Programs, with Modify (repair) and Uninstall options
  • DirectX 12 support
  • Corsair K55 RGB Gaming Keyboard support added
  • Fixed issues with Windows Application Compatibility
  • Fixed a bug with Virtual Files breaking when multiple rules match a file
  • Windows 8 compatibility fix
  • Compatibility updates for Hearthstone, Lord of the Rings Online, Minecraft, Star Trek Online, World of Tanks and others
  • LavishGUI 2:
    • Numerous stability, layout, and other fixes/improvements
    • image element now scales the image to fit
    • videofeed element implemented, including interaction option
    • broadcaster element implemented

Inner Space version 1.16 Build 6308
Released: 2018-08-22
  • Fixed a bug that prevented some Virtual Files from working properly
  • Fixed a Direct3D 11 display sizing bug introduced in build 6305
  • Anarchy Online compatibility updates
  • Fixed an R6031 error message that could occur when launching a game

Inner Space version 1.16 Build 6305
Released: 2018-08-15
  • World of Warcraft:
    • Fixed issue with some new effects causing Inner Space UI to disappear
    • Fixed "WoW was unable to start up 3d acceleration" issue
  • Wizard101 compatibility update
  • Lord of the Rings Online compatibility update, including the legacy client
  • Virtual Files system (fileredirect) updated.
    • The new syntax uses * and ? wildcards for the filename pattern
    • The matching values are placed in {1} {2} and so on, left to right, for each wildcard.
    • Absolute file paths are now used in all cases.
    • Each matching rule applies, in the order added (i.e. top to bottom)
    • Examples:
      • fileredirect "*/core_user_*.dat" "{1}/core_user_allsamefile.dat"
      • fileredirect "*/core_user_*.dat" "{1}/core_user_{2}-isboxer.dat"
      • fileredirect "*/WTF/*" "{1}/WTF/{2}"
      • fileredirect "*/Addons.txt" "{1}/Addons-ISBoxer.txt"
    • Backwards compatibility is retained. fileredirect commands that do not contain a pattern will exhibit the original behavior. Those ending in / translate from "/folder/" "/folder-other/" to "*/folder/*" "{1}/folder-other/{2}". Those not ending in / translate from "filename.txt" "filename-other.txt" to "*filename.txt" "{1}filename-other.txt"

Inner Space version 1.16 Build 6294
Released: 2018-07-17
  • World of Warcraft: Game Profiles pointing to wow-64.exe (which no longer exists in Battle for Azeroth) now automatically launch wow.exe instead
  • The 'Use same-bit game clients' option has been removed

Inner Space version 1.16 Build 6293
Released: 2018-07-17
  • LavishGUI 2 and new Input Bindings system!
  • LavishGUI 2 runs side by side with Inner Space's previously existing LavishGUI and input systems.
  • Documentation is available on the lavishsoft.com wiki under LavishGUI 2 http://www.lavishsoft.com/wiki/index.php/LavishGUI_2
  • .gifs (including animated) are now supported in Direct3D 9 and 11 modes
  • dgVoodoo 2 compatibility update. This third-party utility can now be used with Inner Space to support games that use older graphics libraries!
  • Neverwinter and Star Trek Online mouse issue fix
  • Ragnarok Online keyboard fix
  • Runescape compatibility update
  • Final Fantasy XIV: Fix for double slash when opening chat with the slash key
  • Villagers and Heroes compatibility update
  • Archeage compatibility fix
  • Fixed an issue with Corsair ST-100 headset
  • Corsair K95 RGB Platinum Keyboard support added
  • LavishScript 1.100
    • Added support for enums
    • New Object Type: enumtype
    • New Method: lavishscript:RegisterEnum[enumType,bool isFlags] to register an enum type (including a LavishScript object type with this name)
    • New TLO: enumtype Enum[enumType]
    • Example: LavishScript:RegisterEnum[eVil] Enum[eVil]:SetValue[test,0] echo ${Int[0](eVil)} -- output is "test", the integer value 0 converted back to its name by eVil
    • Fixed various issues with the JSON parser
    • Added jsonvaluecontainer:ParseFile[filename]
    • Added jsonarray.Get[a,b,c,...] and jsonobject.Get[a,b,c,...] to conveniently retrieve values that are multiple levels deep.

Inner Space version 1.15 Build 6260
Released: 2018-03-10
  • Fixed an issue where games may freeze during launch (nothing appeared except in Task Manager)

Inner Space version 1.15 Build 6258
Released: 2018-03-07
  • Star Wars: The Old Republic launcher compatibility update
  • A new compatibility setting 'Inner Space Loader aggressiveness' is now available in the Configuration window on the General tab, as well as per Game Prfofile. This setting can potentially be decreased to reduce instability (such as freezes or crashes) or increased if Inner Space is unable to properly activate within a game. The aggressiveness level required will depend on the game.
  • The Uplink's Open command now accepts a -loader <level> parameter to control the aggressiveness of the Inner Space loader.
  • The outdated video capture built into Inner Space is now permanently removed.

Inner Space version 1.15 Build 6255
Released: 2018-02-21
  • General compatibility fixes
  • Fixed compatibility with NVIDIA Share

Inner Space version 1.15 Build 6254
Released: 2018-01-09
  • Improved compatibility with Windows Application Compatibility
  • General compatibility fixes
  • Fixed a freeze that randomly occurred when starting Inner Space

Inner Space version 1.15 Build 6247
Released: 2017-11-08
  • Fixed compatibility with Nahimic VR
  • Compatibility updates

Inner Space version 1.15 Build 6244
Released: 2017-11-06
  • Inner Space icon updated
  • Fixed an issue preventing the Inner Space tray/notification icon from working for some people. This may re-place the icon in 'Hidden icons'
  • Compatibility update for Blizzard App Beta (Battle.net Launcher)
  • Fixed compatibility with 64-bit .NET apps (A3 Mania launcher, SWGLegends)
  • Fixed compatibility with Mono (The Infinite Black)
  • Fixed compatibility with certain games on AMD systems
  • Lord of the Rings Online test server (Bullroarer) compatibility update
  • Fixed Steam initialization error with Tree of Savior
  • Fixed a bug causing a 'Failed to load required DLLs' message for some games
  • Fixed mouse X-axis issues with DirectInput
  • LavishScript now includes a JSON parser:
    • LavishScript object types:
  • jsonvalue: Base type for json values
    • jsonvaluecontainer: A mutable container for json values
    • jsonarray: An ordered array of jsonvaluecontainers
    • jsonobject: A keyed index of jsonvaluecontainers
    • jsoniterator: An iterator for a jsonarray or jsonobject
      • LavishSettings new members and methods:
  • string settingset.JSON
    • string setting.JSON
    • settingset:ExportJSON[filename]
    • settingset:ImportJSON[filename]

Inner Space version 1.15 Build 6233
Released: 2017-10-10
  • ISBoxer EVE Launcher compatibility fix

Inner Space version 1.15 Build 6232
Released: 2017-10-09
  • Compatibility fixes
  • World of Warcraft freeze when entering Shop, and for some people entering the game world fixed
  • World of Warcships compatibility update

Inner Space version 1.15 Build 6229
Released: 2017-10-03
  • SWGEmu compatibility update
  • EVE Online launcher compatibility update
  • Additional freeze issues fixed

Inner Space version 1.15 Build 6219
Released: 2017-09-29
  • Fixed game freeze issues when starting up some games e.g. with Razer software

Inner Space version 1.15 Build 6218
Released: 2017-09-28
  • Fixed various game freezing issues since build 6216

Inner Space version 1.15 Build 6216
Released: 2017-09-27
  • Compatibility fixes for various programs including Razer, Raptr and others
  • Direct3D 11 compatibility update
    • Fixed black screen issues in EVE Online and World of Warcraft
    • Fixed Trove rendering
  • Skyforge compatibility update

Inner Space version 1.15 Build 6200
Released: 2017-09-16
  • EVE Launcher compatibility update
  • Improved Lavish crash report output for new issues
  • Compatibility fixes for various programs

Inner Space version 1.15 Build 6196
Released: 2017-09-14
  • Diablo 3: Fixed new issue rendering the Inner Space GUI

Inner Space version 1.15 Build 6195
Released: 2017-09-14
  • World of Warcraft 7.3.0 compatibility update
    • This involved a MAJOR rewrite to the Inner Space loader.
    • Compatibility with other programs should generally be improved.
  • Path of Exile compatibility update
  • Minecraft compatibility update
  • EverQuest LaunchPad compatibility update
  • Glyph compatibility update
  • Aion compatibility update
  • Final Fantasy XIV: Improved Direct3D11 mode support
  • 64-bit OpenGL support added
  • LavishScript: Added uint system.ProcessID

Inner Space version 1.15 Build 6174
Released: 2017-06-04
  • Lord of the Rings Online compatibility update
  • Fixed a bug with "stuck keys" when switching windows

Inner Space version 1.15 Build 6173
Released: 2017-04-18
  • Tree of Savior compatibility update
  • Dark Age of Camelot: Fixed mouse issues related to recent game patch
  • Final Fantasy XIV Direct3D 11 compatibility update
  • Logitech G105 support added

Inner Space version 1.15 Build 6166
Released: 2017-02-22
  • Star Wars: The Old Republic compatibility upate

Inner Space version 1.15 Build 6165
Released: 2017-02-22
  • Heroes of the Storm compatibility update
  • Logitech G910 Orion Spectrum support added
  • The Elder Scrolls Online compatibility update
  • Star Trek Online compatibility update
  • Diablo III (64-bit) - Skip Launcher profile should now be created automatically
  • Diablo III 64-bit: Fixed cursor positioning issues with ISBoxer
  • Direct3D 11 renderer will now pop up a message if an invalid display is forced

Inner Space version 1.15 Build 6158
Released: 2017-01-14
  • Diablo III 64-bit client compatibility update

Inner Space version 1.15 Build 6156
Released: 2017-01-12
  • Glyph compatibility update

Inner Space version 1.15 Build 6155
Released: 2017-01-06
  • Diablo III patch 2.4.3 compatibility update
  • Dark Age of Camelot compatibility update

Inner Space version 1.15 Build 6151
Released: 2016-11-17
  • Windows 10 and Direct3D 11 compatibilty update
  • Battle.net Launcher compatibility update
  • Star Trek Online compatibility update
  • Star Wars The Old Republic compatibility update
  • Shroud of the Avatar compatibility update
  • lguitextentry:SetText now triggers the lguitextentry OnChange embedded script
  • Add Game window now does a better job of automatically providing the additional useful Game Profiles from the Game Detections list
  • Game Configuration now includes a 'Hide from Inner Space menu' option

Inner Space version 1.15 Build 6136
Released: 2016-09-11
  • LavishScript stability update
  • lguielement.Strata and lguielement:SetStrata[#] now handle negative values correctly
  • Fixed an issue with lguielement:SetStrata[#] not immediately applying, when moving an element to the bottom of the stack

Inner Space version 1.15 Build 6134
Released: 2016-09-07
  • Aion compatibility update
  • EVE Online game detection no longer includes "No Patch" profiles, because that ability is being disabled in EVE in 2 weeks

Inner Space version 1.15 Build 6133
Released: 2016-07-28
  • Dark Age of Camelot compatibility update
  • RIFT compatibility update
  • Wizard101 compatibility update
  • Corsair K95 RGB compatibility update

Inner Space version 1.15 Build 6130
Released: 2016-06-22
  • EVE Online launcher compatibility update

Inner Space version 1.15 Build 6129
Released: 2016-05-26
  • Improved Battle.net compatibility
  • Tree of Savior compatibility update
  • Glyph compatibility update

Inner Space version 1.15 Build 6126
Released: 2016-05-09
  • Inner Space Configuration panel now includes an option to use 64-bit Inner Space uplink
  • Inner Space Configuration panel now includes an option to use known same-bit game clients (e.g. 32-bit WoW for 32-bit Inner Space)
  • Added bool LavishScript.Is64Bit
  • Fixed a bug with -32bit parameter when InnerSpace.exe is already running
  • 64-bit Inner Space should now share the 32-bit registry key
  • LavishGUI:
    • Added int lguielement.Strata and lguielement:SetStrata[#]
    • lguielement.AlwaysOnTop is now only true if Strata is 127

Inner Space version 1.15 Build 6123
Released: 2016-04-02
  • 64-bit compatibility update
  • Inner Space will automatically launch its 64-bit version when on 64-bit Windows, unless given -32bit parameter
  • World of Warcraft Legion Alpha compatibility update
  • Archeage compatibility update
  • New SDK versions ISXDK 35, LSModule 22
  • LavishScript:
    • floatptr type once again provides the correct value

Inner Space version 1.14 Build 6113
Released: 2015-12-20
  • Devilian compatibility update

Inner Space version 1.14 Build 6112
Released: 2015-12-18
  • Fixed a crash some users experienced when launching Inner Space
  • WildStar compatibility update

Inner Space version 1.13 Build 6111
Released: 2015-12-14
  • Devilian compatibility update
  • 64-bit compatibility update
  • Guild Wars 2 64-bit client compatibility update
  • LavishGUI:
    • All Element types now support an integer Strata property (-128 to 127), with 127 being on top and -128 being on bottom. Default is 0, and AlwaysOnTop is the same as using Strata 127.
    • Fixed a bug where dynamically adding a new child element to a parent would cause its entire containing element tree to move to the top of the Z-order
  • When the Lavish Crash Reporter window shows, a minidump (.dmp) file is now generated in the Inner Space folder

Inner Space version 1.14 Build 6104
Released: 2015-10-14
  • Updated link to Microsoft DXWEBSETUP. The old link now redirects to Windows 10 download.

Inner Space version 1.14 Build 6103
Released: 2015-10-02
  • Windows 10 compatibility update
  • 64-bit compatibility update
  • WildStar compatibility update

Inner Space version 1.13 Build 6102
Released: 2015-09-23
  • Stability fixes

Inner Space version 1.13 Build 6101
Released: 2015-09-16
  • Fixed a bug with bindings on modifier keys (alt, control, shift) executing multiple times
  • Added Corsair M65 RGB gaming mouse native support
  • Daybreak Games (e.g. EQ1, EQ2) LaunchPad compatibility update
  • Trove
    • Fixed a bug with Alt key activating background windows
    • Improved broadcasted mouselook behavior
  • Skyforge compatibility update
  • Mouse movements can now be blocked in OnMouseMove by setting Context to FALSE (this is the same as has been implemented for OnButtonMove, etc)
  • LavishGUI:
    • uint lguitext.NumLines
    • lguifont.GetTextWidth[text]
    • uint lguitextentry.MaxLength
    • lguitextentry:SetMaxLength[#]
    • lguifont is no longer incorrectly marked as inheriting from lguielement

Inner Space version 1.13 Build 6089
Released: 2015-08-03
  • Added Corsair K95 RGB Mechanical Gaming Keyboard native support
  • Fixed a crash bug when exiting Aion
  • Fixed a crash bug with launching Marvel Heroes
  • Anarchy Online New Engine Beta compatibility update
  • Final Fantasy XIV DirectX 11 compatibility update
  • Trove
    • Fixed a bug with session numbering
    • Fixed a bug with resolution incorrectly adjusting to match scaled windows
  • Open command now supports additional parameters:
    • -nogameprofileparams: Disable any Game Profile-specified parameters to the Game Executable
    • -addparam: Append a space-separated parameter for the Game Executable
  • Added gdiwindow:SetTaskbarTabVisible[bool] which toggles visibility on the Windows taskbar

Inner Space version 1.13 Build 6082
Released: 2015-04-28
  • Fixed a bug with a jumping mouse cursor on the latest EVE Online update
  • Fixed modifier key and arrow key behaviors in Star Trek Online
  • Fixed a bug where game launches would sometimes freeze on certain Windows 7 installs
  • ATI/AMD video card driver (bug) compatibility update
  • Albion Online compatibility update
  • Villagers and Heroes compatibility update
  • Improved behavior when using a modifier (Shift, Ctrl, or Alt) alone as a key binding
  • Added Steel Series WoW Wireless MMO Mouse native support
  • Added Logitech G910 Keyboard native support
  • LavishScript:
    • Sanity check on number of #includes extended significantly
    • Fixed system.CurrentDirectory value not matching the return type

Inner Space version 1.13 Build 6066
Released: 2015-02-10
  • Added Relay target operator @, which sorts the set on its right side by name
  • Added RelayTargets command, available in the Uplink, which will resolve a Relay target and output all of the resolved target names in the given order
  • Fixed Focus -previous

Inner Space version 1.13 Build 6063
Released: 2015-02-09
  • Improved mouse cursor visibility detection on Direct3D 11 (Trove)
  • Fixed a bug where holding both Left and Right of Shift, Control or Alt caused the key to become "stuck"
  • The Focus command -next and -previous switches now use the order from the filter if provided
  • Windows 10 compatibility update
  • Battle.net Launcher compatibility update
  • Added XKeys XK-24 native support
  • Fix for certain game launch issues

Inner Space version 1.13 Build 6040
Released: 2014-12-21
  • Stability fixes
  • Fixed issues with Lord of the Rings Online additional processes

Inner Space version 1.13 Build 6038
Released: 2014-11-18
  • Fixed a crash issue affecting Aion, TERA and other games with packed executables

Inner Space version 1.13 Build 6037
Released: 2014-11-11
  • Inner Space binaries are now digitally signed. This should reduce or eliminate false positive detections from anti-virus software!
  • WAKFU compatibility update

Inner Space version 1.13 Build 6036
Released: 2014-11-08
  • Fixed a cursor detection bug in OpenGL games (Trove)
  • Fixed a bug with Forced Window mode causing error beeps when using Alt
  • Steam compatibility update (Terraria, EVE Online)
  • Lord of the Rings Online and Dungeons & Dragons Online compatibility update
  • Kill command now accepts * as a parameter to terminate all Inner Space session processes
  • LavishScript: point3f now accepts a comma-separated list of values for initialization

Inner Space version 1.13 Build 6030
Released: 2014-09-15
  • Battle.net Launcher compatibility update
  • Guild Wars 2 compatibility update
  • Elder Scrolls Online compatibility update
  • LavishScript: array type is now persistent

Inner Space version 1.13 Build 6023
Released: 2014-08-26
  • Direct3D 11: Fixed a crash bug that would happen at startup (World of Warcraft, Neverwinter)
  • Neverwinter compatibility update
  • Asheron's Call compatibility update
  • Asheron's Call 2 compatibility update
  • Swordsman Online compatibility update
  • BlackGold Online compatibility update
  • Voyage Century Online compatibility update
  • Direct3D 8: Fixed background cursor rendering
  • LavishScript: Fixed bugs with endscript and script:End being unable to locate active scripts
  • LavishGUI: Added lguiconsole:Clear

Inner Space version 1.13 Build 6016
Released: 2014-07-08
  • Glyph (RIFT) compatibility update
  • Fixed a bug with the main Inner Space context menu disappearing sometimes when mousing through multi-level submenus
  • Added audio:FadeVolume[new_volume_level,over_n_seconds]

Inner Space version 1.13 Build 6011
Released: 2014-06-12
  • Battle.net client compatibility update
  • Guild Wars 2: Fixed mouse panning again
  • LavishGUI: Fixed a bug where holding a button in a text entry control and then changing keyboard focus away from the control would continue to repeat the button in the control.

Inner Space version 1.13 Build 6007
Released: 2014-06-05
  • Marvel Heroes: Fixed input issues
  • WildStar: Fixed mouselook
  • LavishScript 2 version 0.10.20140529.1

Inner Space version 1.13 Build 6003
Released: 2014-05-26
  • Fixed an issue with World of Warcraft cinematics causing a Lavish login box in some cases
  • Added Logitech G502 Mouse ("Proteus Core") native support
  • LavishScript: lavishscript.ExecuteAtom and script.ExecuteAtom now fully support return objects

Inner Space version 1.13 Build 5999
Released: 2014-05-09
  • Fixed a bug with Steam games (e.g. EVE Online) being unable to access the Steam client

Inner Space version 1.13 Build 5998
Released: 2014-05-07
  • Fixed an issue with the new Battle.net launcher version not properly sandboxing
  • Added Elder Scrolls Online game detection
  • Fixed a bug with Elder Scrolls Online in Direct3D 11 mode

Inner Space version 1.13 Build 5994
Released: 2014-04-21
  • Fixed bugs with Ctrl and Alt in the Korean keyboard layout (and likely other asian languages)
  • Global Binds (such as the default Ctrl+Alt+# window switching keys) now do a better job of not disappearing
  • Allods Online: Fixed keyboard input issues
  • Dark Age of Camelot compatibility update
    • DAOC windows will now scale the rendered display properly
    • Fixed a bug with mouse clicks and scroll wheel not working correctly in some cases
    • Fixed an issue with modifier keys not being checked at the right time by the game

Inner Space version 1.13 Build 5987
Released: 2014-04-04
  • Battle.net client compatibility update
  • Inner Space will now automatically add the -launch parameter if launching Diablo III.exe with no parameters
  • WildStar: Fixed a graphics glitch on Windows 8.1
  • Dragon's Prophet 64-bit compatibility update
  • Direct3D10 is now supported in 64-bit mode

Inner Space version 1.13 Build 5982
Released: 2014-03-24
  • WildStar compatibility update
  • Diablo 3: Improved game launching time
  • Improved compatibility with Windows Application Compatibility
  • Inner Space now includes 64-bit binaries (found in the x64 sub-folder) and is capable of working with 64-bit games!
    • 64-bit support may have bugs not present in 32-bit mode
    • 64-bit mode uses the same Interface, Scripts, etc but requires new 64-bit versions of any Inner Space Extensions and LavishScript Modules (within the x64 sub-folder)
  • New SDK versions ISXDK 34, LSModule 21
  • Dependencies for Extensions and LavishScript Modules should now be based on the loaded DLL's folder, instead of the main Inner Space folder

Inner Space version 1.12 Build 5963
Released: 2014-03-10
  • Diablo 3: Fixed an issue where the game would sometimes stop rendering until its display was reset
  • Allods Online compatibility update
  • Istaria launcher compatibility update

Inner Space version 1.12 Build 5957
Released: 2014-03-02
  • Battle.net launcher compatibility update (Diablo 3, WoW)
  • EverQuest Next Landmark (32-bit client) compatibility update

Inner Space version 1.12 Build 5954
Released: 2014-02-04
  • EVE Online:
    • Added separate "No Patch" profiles for DirectX 9 and 11 modes
  • Improved compatibility with Anarchy Online Beta (new DirectX 9 engine)
  • Fixed a bug with extra windows when closing EverQuest Free-to-Play
  • Fixed a bug with hotkey parsing with key names that start with +
  • Added support for Logitech G930 headset buttons
  • LavishGUI:
    • TextEntry and TextEdit controls now support Tab and Shift+Tab for switching control focus
  • LavishScript:
    • New events "Fatal Error" (an error which terminates the running script) and "Data Sequence Error" (an error which is typically considered recoverable). Both events provide 2 parameters: 1. The error output sent to the console 2. The current LavishScript execution stack with CR/LF separating each line The event's Context object will be the currently-executing script

Inner Space version 1.12 Build 5944
Released: 2013-11-26
  • When a 64-bit application is launched through Inner Space, a message will pop up explaining to use the 32-bit version
  • DirectX 11 mode now works better with custom video resolutions (ISBoxer)
  • Fixed a bug with 'Forced windowed' mode where the window would reset to position 0,0

Inner Space version 1.12 Build 5939
Released: 2013-11-25
  • EVE Online:
    • DirectX 11 compatibility fix
    • Game detection updated, including a new "No Patch" profile
  • Battle.net Desktop Client compatibility update
  • TERA compatibility update
  • Terraria compatibility update
  • Path of Exile compatibility update
  • Final Fantasy XIV: Fixed a bug with cursor positioning
  • Stability fixes
  • The Uplink's "Sessions" command now lists Process ID (PID) and executable filename next to the session names
  • LavishGUI: Clicking on an element now only brings its topmost container (e.g. containing window) to the front of Z-order instead of bubbling up the control and all of its parent containers
  • New API versions for Visual Studio 2013 support. Visual Studio 2010 no longer supported
    • ISXDK 33: Extensions\ISXDK33\* is now checked for extension before Extensions\*
  • Fixed LavishSettings reverse iteration
  • audio:SetMute should no longer trigger permanent muting by Windows when the game exits
  • LavishScript SDK changes (ISXDK + LSModule DK):
    • LSOBJECTDATA is now 64-bit instead of 32-bit, and includes a constructor to initialize to 0
    • LSOBJECTDATA no longer has VarPtr and ObjectData union members. Use GetObjectData() and SetObjectData()
  • LavishScript:
    • new Top-level object: int64 Int64[#]
    • Fixed bugs with 'persistentref' object type
    • Marked LavishScript internal types as persistent:
  • all script-defined object types, variablescope, script, query, event, index, collection, stack, queue, set
    • Math.Calc and Math.Calc64 now return native float64 and int64 instead of float64ptr and int64ptr

Inner Space version 1.11 Build 5899
Released: 2013-08-16
  • Final Fantasy XIV: A Realm Reborn compatibility update
  • Improved 'Lock foreground' compatibility
  • LavishScript data type additions:
    • ... lavishgui.MouseOverElement
    • ... lavishgui.FocusedElement
    • bool lavishgui.IsAltDown
    • bool lavishgui.IsCtrlDown
    • bool lavishgui.IsShiftDown

Inner Space version 1.11 Build 5898
Released: 2013-08-16
  • General compatibility update
  • Torchlight 2 multi-instance support update
  • Added Razer Nostromo native support (requires buttons to be Joystick 1-16 and DPad to be Joystick 17-24)

Inner Space version 1.11 Build 5893
Released: 2013-08-03
  • DirectX 11 support now detects a missing Windows Update (KB 2670838) and provides a warning (and offer to help download) if this update is likely to correct a problem. This is particularly helpful for those World of Warcraft players that have been unable to use DirectX 11 support since build 5879.
  • General compatibility update
  • Marvel Heroes
    • Compatibility update for the game's new launcher
    • Added detection for new Marvel Heroes default installation

Inner Space version 1.11 Build 5884
Released: 2013-07-30
  • Fixed a Diablo 3 freezing issue
  • Fixed a bug with dragging a game window causing the window to continue moving
  • Fixed a crash issue with "DrawText"

Inner Space version 1.11 Build 5879
Released: 2013-07-24
  • Improved support for Windows 8.1 and Windows Application Compatibility
  • Final Fantasy XIV: A Realm Reborn Beta compatibility update
  • Experimental fix for Lucid MVP crashes with Direct3D11
  • Fixed a bug with Direct3D11 not honoring Inner Space monitor selection
  • Aion:
    • Fixed a bug with window sizing
    • Fixed a bug with broadcasted mouselook

Inner Space version 1.11 Build 5853
Released: 2013-05-30
  • Fixed a crash with Direct3D11 mode in Cryptic Studios games
  • Fixed a crash with custom input devices in certain games
  • Fix for loss of mouse control in Neverwinter and Star Trek Online
  • Star Trek Online compatibility update for Legacy of Romulus expansion
  • Implemented a workaround for a long-standing "DrawText" crash
  • Added Microsoft SiderWinder X4 (international SideWinder) native support
  • Fixed a mouse lag bug with Atlantica Online

Inner Space version 1.11 Build 5844
Released: 2013-05-22
  • Fixed a minor bug with virtualizing the new EVE Online launcher's Cookies file (saved usernames)
  • Fixed a rendering bug with Neverwinter and other Cryptic games
  • Fixed a bug with clicks during mouselook in EverQuest
  • Darkfall Unholy Wars compatibility update
  • Firefall Beta compatibility update

Inner Space version 1.11 Build 5838
Released: 2013-05-16
  • The 'Add Game' window now accepts files and shortcuts via drag-and-drop
  • Lord of the Rings Online fixes
    • Update 11 and new Turbine Launcher compatibility fixes
    • Direct3D 11 compatibility fixes
  • Marvel Heroes compatibility update
  • Neverwinter stability upate for Direct3D 11

Inner Space version 1.11 Build 5823
Released: 2013-05-11
  • Fixed Numpad Enter in EverQuest
  • Fixed a bug related to extraneous processes with EverQuest 1 and 2
  • Improved Virtual File support
  • Fixed input-related bugs in Minecraft and Neverwinter
  • Fixed a bug with lguilistboxitem:SetValue

Inner Space version 1.11 Build 5809
Released: 2013-04-22
  • Fixed input-related bugs in Age of Wushu
  • Fixed crashes relating to Windows 8 + Direct3D 11 (or Windows 7 with specific patches), affecting Lord of the Rings Online and others
  • Fixed a display bug with Defiance
  • Added native support for input devices:
    • Steel Series WoW Mouse Legendary Edition
    • Mad Catz S.T.R.I.K.E. 7 Keyboard

Inner Space version 1.11 Build 5799
Released: 2013-03-13
  • Fixed a crash bug with SOE's latest launcher updates for EverQuest and Vanguard, and probably others..
  • LavishGUI
    • Elements that support both Border and BorderColor will now overlay the defined Border on top of a Texture, if that Texture does not have a defined Border.
    • Textures with a Filename value of "#fill" will now be a color fill, suing the ColorMask color

Inner Space version 1.11 Build 5794
Released: 2013-03-05
  • Fixed a crash with Lord of the Rings Online on Windows XP
  • Hotkeys with ALT in them no longer cause Windows error beeps in EVE Online (and other games?)
  • Asheron's Call 2/Direct3D8 compatibility update
  • Entropia Universe compatibility update
  • Added native support for Logitech G710 keyboard
  • Logitech G11 support is no longer tied to Logitech G15 support
  • Fixed a bug with Add Game that could create a broken Game Profile
  • Fixed LavishScript:Eval
  • Eliminated several internal buffer size limits in LavishScript
  • Fixed a bug with recursively-issued timedcommands getting lost
  • Improved Relay performance
  • index:Resize no longer crashes with a negative size
  • Fixed extension.Filename and lguitexture.Filename
  • New datatype methods and members:
    • lguiframe:SetTexture[xml]
    • lguibutton:SetTexture[xml]
    • lguibutton:SetTextureHover[xml]
    • lguibutton:SetTexturePressed[xml]
    • lguibutton:SetBorder[#]
    • lguibutton:SetBorderColor[aarrggbb]
    • int lguibutton.Border
    • int lguibutton.BorderColor
    • settingset:Copy[set ID #]

Inner Space version 1.11 Build 5751
Released: 2012-12-09
  • Improved "Fullscreen Windowed" (in various games) setting behavior
  • Fixed a rendering bug with Wizardry Online (beta)
  • Fixed a bug with the left-handed mouse setting in Windows, which broke Diablo 3's click-and-hold to move functionality for left-handed players
  • PlanetSide 2 compatibility update
  • Improved support for files and folders with Unicode (international) names
  • Experimental fixes for some Direct3D-related crashes
  • Added Relay target operator #, which selects the nth element from the set on its left. This is similar in function to %, but without wrapping around.
  • Crash reports include a timestamp
  • LavishScript 2 Standard Environment version 0.9.20121123.1

Inner Space version 1.11 Build 5714
Released: 2012-10-29
  • Added native support for Microsoft Sidewinder X4 S-keys
  • Torchlight 2 compatibility update
  • Fixed a bug with some games, including World of Warcraft and Guild Wars 2, not restoring the mouse position after mouselook in certain conditions
  • Improved Guild Wars 2 mouse panning
  • Added LavishScript data type audio, and top-level object Audio
  • ismenuitem type now supports a Checked state
    • bool ismenuitem.IsChecked
    • ismenuitem:SetCheck[bool]
    • ismenu:AddCommand and ismenu.AddCommand both accept an optional 3rd parameter for Checked state
  • OSExecute command now provides information upon failure
  • LavishScript 2.0 interface (Alpha) is now available via ISXDK 32a with the ls2module SDK.
  • Added LavishScript data type method
    • lavishscript:Eval[command,index:string]
  • Evaluates the given command, directing any lines of output into an index:string
  • Added LavishScript data types lavishscript2, ls2module, ls2script
  • Added LavishScript top-level object LavishScript2
  • LavishScript 2 Standard Environment version 0.8.20121026.1

Inner Space version 1.11 Build 5670
Released: 2012-09-07
  • Fixed a bug with World of Warcraft in DirectX 9 mode, where LavishGUI textures would disappear with High quality shadows enabled
  • Guild Wars 2 compatibility update
  • Second Life compatibility update
  • Fixed upside-down background cursor in OpenGL

Inner Space version 1.11 Build 5664
Released: 2012-08-06
  • Improved Windows 8 compatibility (EVE Online will now launch correctly)
  • Improved Virtual File compatibility
  • D3D11 support now explicitly uses d3d11.dll from the Windows System folder. This corrects a problem with EverQuest 2, which currently patches in DirectX 10 and DirectX 11 files to the EverQuest 2 folder. The files EverQuest 2 is currently patching in are not intended for redistribution and are not supposed to be in the EverQuest 2 folder.
  • Added data type methods direct3d9:SetCursorColor[########] and direct3d11:SetCursorColor[########]

Inner Space version 1.11 Build 5658
Released: 2012-07-25
  • Added native support for Logitech G600 Mouse buttons
  • Added support for a supplemental non-Administrator program to pass commands to Inner Space
  • Added data type method gdiwindow:SelectMenuItem[submenu...,item] to activate a menu item
    • Example: Display.Window:SelectMenuItem[&File,&Open...]
  • Added data type method display:Screencap[-flags,filename.ext,x1,y1,x2,y2]
    • Flags and x1,y1,x2,y2 rectangle are optional
    • Flags: -directx: (Default) Perform the screencap with Direct3D-based capture; supports PNG, JPG, BMP -desktop: Perform the screencap with desktop-based capture (includes any windows on top, etc); supports BMP -clientcoords: (Default) Screencap coordinates given are based on the game client -screencoords: Screencap coordinates given are based on the desktop
    • Image encoding is automatically derived from the filename ending in .bmp, .jpg or .png; desktop capture currently supports BMP and PNG encoding
    • Examples: Display:Screencap[myscreencap.jpg] - capture game window Display:Screencap[myscreencap.jpg,100,100,164,164] - capture a 64x64 region at 100,100 Display:Screencap[-desktop,myscreencap.bmp] - capture game window plus layers on top of it Display:Screencap[-desktop,-screencoords,myscreencap.bmp,0,0,1600,900] - capture a 1600x900 desktop
  • Added data type methods direct3d9:DisableVSync and direct3d11:DisableVSync

Inner Space version 1.11 Build 5642
Released: 2012-06-12
  • Fixed a bug with Realm of the Mad God on Intel graphics

Inner Space version 1.11 Build 5637
Released: 2012-06-09
  • More cursor/resolution fixes
  • Fixed a bug with keys not working in Runes of Magic
  • Fixed a bug with Warhammer Online streaming client not working
  • Fixed a bug with with KeePass password management utility
  • Dragging a LavishGUI window completely off the screen should now be more difficult. If you really want to do it, hold Shift.
  • Added port numbers to the OnUplinkConnected and OnUplinkDisconnected events, with port equal to 0 if the connection was not made FROM this uplink:
    • OnUplinkConnected[ip address,port]
    • OnUplinkDisconnected[ip address,port,name]
  • Improved WPF compatibility
  • LavishGUI list box item "values" are now strings instead of ints.

Inner Space version 1.11 Build 5616
Released: 2012-06-08
  • Drastically improved performance of uplink networking. Multi-PC ISBoxer users will see immediate benefits
  • Fixed a bug with Alt Gr not operating correctly for some keyboard layouts
  • Dark Age of Camelot compatibility update
  • Perpetuum compatibility update
  • Text-to-Speech can now be done through the Speech object (speech type) in the Uplink
    • speech:Speak[text to speak]
    • speech:Speak[-volume,0.5,-speed,0.5,text to speak]
  • The new Speak command can also be used for Text-to-Speech in the Uplink
    • speak "text to speak"
    • speak -volume 0.5 -speed 0.5 "text to speak"
  • httpget command now supports additional parameters to perform http POST. These parameters must come before all others (-atom, -file or the URL)
    • -postparam <NAME> <VALUE>
    • -postfile <NAME> <FILENAME>
    • example: httpget -postfile screencap "MyScreenshot.jpg" http://upload.somewhere.com/screencap

Inner Space version 1.11 Build 5604
Released: 2012-05-06
  • Cursor positioning overhaul
  • Fake cursor (e.g. visible during broadcasting) should now work in many cases where it previously did not
  • Guild Wars 1 and 2 compatibility update
  • Fixed a Star Trek Online crash
  • Fixed a bug with the TERA Launcher
  • Minecraft compatibility update
  • Initial OpenGL rendering support, tested with Minecraft and World of Warcraft
    • Known issue: Fake cursor does not render correctly
    • Known issue: Text quality needs improvement
    • Known issue: ISBoxer Window Layouts with small windows + Instant Swapping look wrong
  • Fixed bugs with system:SetClipboardText and system.ClipboardText...

Inner Space version 1.11 Build 5578
Released: 2012-04-08
  • ISBoxer Users, please update to build 40.2.405.1 or later if your Window Layout stops working.
  • Improved Diablo 3 launching time
  • Fixed a bug with the Alt key in EVE Online
  • Improved fileredirect (Virtual File) compatibility
  • LavishScript
    • Fixed a bug with scripted math not short circuiting in some cases

Inner Space version 1.11 Build 5564
Released: 2012-03-30
  • Diablo 3 Beta compatibility
  • Windows 8 compatibility
  • Improved fileredirect (Virtual File) compatibility

Inner Space version 1.11 Build 5551
Released: 2012-03-14
  • Compatibility update for new EVE Online launcher
  • Fixed a crash that could happen when using Windows' Encrypted File System feature
  • LavishScript queries now accept _ToString as a field name

Inner Space version 1.11 Build 5547
Released: 2012-03-11
  • Fixed a bug with launching Aion
  • Initial support for Steam games
    • Realm of the Mad God should work via Steam
    • Terraria is also known to be working well
    • Compatibility with other Steam games currently unknown -- please report back!
    • The Steam overlay (Shift+Tab) may not yet be fully interactive and stable
  • Fixed a bug with the Alt key in Star Wars: The Old Republic
  • Fixed a bug with Star Trek Online freezing
  • Fixed issues with some input languages not working correctly
  • Real-time log parsing can now be done with the LogReader object (logreader type). This can be used to develop damage meter widgets, multiboxing chat window widgets, and more.
    • logreader:RegisterLog["filename with wildcards supporting #*?","LavishScript event name"]
    • logreader:UnregisterLog["filename with wildcards supporting #*?","LavishScript event name"]
    • The LavishScript event prototypes as: LogEvent[string filename,string action,string text] where action is one of "open" "close" or "line", and text is the logged text for the "line" action.
    • Log file lines will also be passed through the LavishScript Trigger parser
  • The dotnet command now accepts a '-disableconcurrentgc' switch. This can be used to help debug .NET applications, but may hinder performance. To use it, issue 'dotnet -disableconcurrentgc' before launching any appdomains.

Inner Space version 1.11 Build 5521
Released: 2012-02-12
  • Various compatibility updates
  • Fixed a double input issue with Megaten game
  • Fixed input stoppage in Star Trek Online
  • .NET 4.0 runtime is now supported.
    • Windows XP is limited to .NET 2.0-3.5, even if .NET 4.0 is installed

Inner Space version 1.11 Build 5511
Released: 2012-01-07
  • Star Wars: The Old Republic compatibility fixes...

Inner Space version 1.11 Build 5509
Released: 2012-01-05
  • Star Wars: The Old Republic window and cursor handling fixed, now supporting all ISBoxer Window Layout styles! Happy New Year! :)

Inner Space version 1.11 Build 5507
Released: 2012-01-01
  • Various compatibility and stability fixes
  • Pasting with Ctrl+V should now work correctly in game launchers..
  • Star Wars: The Old Republic compatibility improvements for Windows Vista
  • Basic support for OpenGL games such as City of Heroes.
    • Note that LavishGUI does not currently render text or textures under OpenGL
  • Fixed an issue with 'Game' names that include a colon... ... -.-

Inner Space version 1.11 Build 5496
Released: 2011-12-08
  • Star Wars: The Old Republic compatibility improvements
  • Fixed compatibility with EverQuest 2's new launcher
  • LavishScript
    • Many additions to the videofeed data types available in sessions

Inner Space version 1.11 Build 5475
Released: 2011-10-12
  • Fixed a crash issue with WoW 4.3 (PTR)
  • Fixed a crash issue with RIFT
  • Fixed mouse clipping related issues

Inner Space version 1.11 Build 5472
Released: 2011-09-10
  • Fixed deadlock issues in Champions Online and Star Trek Online
  • Fixed double-input issue in Runes of Magic

Inner Space version 1.11 Build 5469
Released: 2011-08-11
  • Fixed a crash relating to a recent Windows Update on Windows 7

Inner Space version 1.11 Build 5467
Released: 2011-08-04
  • Improved Pirates of the Burning Sea loading time
  • Add Game window now checks the given path to ensure that it exists
  • WindowFocus command now accepts an optional filter parameter, which can be any valid relay targets. Example: uplink focus -next dps

Inner Space version 1.11 Build 5464
Released: 2011-07-27
  • Emulated input events (e.g. those generated by ISBoxer) should now be more responsive in certain games such as Champions Online and Star Trek Online
  • Added game detection for Champions Online
  • Input devices
    • Steel Series WoW Mouse (original) is now natively supported
    • Saitek Cyborg keyboard is now natively supported
  • Fixed an issue with Inner Space recognizing the resolution selected by certain games
  • LavishGUI
    • lguilistbox:ClearItems now implicitly performs ClearSelection, generating the standard events instead of silently destroying it. This also fixes lguicombobox retaining its selected text.
  • LavishScript
    • New method index:Shift[# position,# places] will make room in an index for # places elements at # position, by shifting toward index.Size. The index will not be implicitly Resized, and elements at the end of the index may be destroyed.
    • Fixed a bug where index.Expand and index.ExpandComma were not prefixing the final element with a comma or space, when the index is full

Inner Space version 1.11 Build 5460
Released: 2011-07-06
  • Fixed an issue with incorrect cursor positioning when sending relative mouse movement to a foreground window
  • Fixed Perpetuum being laggy once entering the game
  • Added game detection for Perpetuum
  • Added game detection for Ultima Online's Enhanced (Stygian Abyss) client
  • Fixed an issue with games that use Direct Input for the keyboard (e.g. Dark Age of Camelot) where incorrect keystrokes were sometimes sent to the game
  • Fixed an issue with file redirection (virtualization) not working in certain cases
  • Fixed an issue with game launcher detection sometimes mistaking a game client with a launcher due to the folder it was in

Inner Space version 1.11 Build 5452
Released: 2011-06-27
  • Input devices
    • Steel Series Cataclysm Mouse is now natively supported
  • Compatibility updates
    • Fixed Aion crashing during launch on Windows 7
    • Star Wars Galaxies with ISBoxer will no longer pop up the 'already running' message, even though it will no longer exist 6 months from now
    • Fixed a multi-PC mouse broadcasting issue with Lord of the Rings Online
  • Fixed video recording again. Sound is no longer muted during video recording.
  • LavishScript
    • Queries now understand a NULL value type
    • Added Query operator =~ meaning value and type equality, with == still working for this as well
    • Added Query operator !~ meaning that either the value or type is not equal to the right side

Inner Space version 1.11 Build 5437
Released: 2011-06-27
  • Compatibility updates
    • Fixed an issue with the RIFT launcher sometimes crashing after clicking Play
    • Laptops equipped with NVIDIA's Optimus graphics system should now work correctly
    • Some issues with games disappearing instead of launching should now be fixed

Inner Space version 1.11 Build 5431
Released: 2011-04-26
  • Fixed an issue with fake cursor rendering not working in EVE Online

Inner Space version 1.11 Build 5430
Released: 2011-04-20
  • Fixed an issue with fake cursor rendering (cursor in non-focused windows) not working, usually exhibited with dual monitors

Inner Space version 1.11 Build 5428
Released: 2011-04-14
  • Video Feed Viewers can now be made permanent, to not disappear when the window leaves input focus
  • New data type members and methods:
  • Data Type members/methods:
    • videofeed:SetPermanentVideoFeeds[bool] - set whether ALL video feed viewers are considered permanent
    • bool videofeed.PermanentVideoFeeds
    • videofeed:RegisterOutput now includes an optional bool parameter to indicate permanence

Inner Space version 1.11 Build 5422
Released: 2011-04-09
  • Fixed a deadlock in the Uplink sometimes experienced during session launches
  • Input Devices now support multiple Key Sets. This makes it easy to expand the number of available key bindings for any given input device. This is similar to the hotkey bank switching functionality in the Logitech G-series software, which usually has 3 different hotkey banks. There is no limit to the number of Key Sets that can be used per device.
  • New data type members and methods:
    • inputdevice input.Device[string name]
    • string inputdevice.CurrentKeySet
    • inputdevice:SelectKeySet[string name]
    • bool lguielement.HitTest
    • bool lguielement.HitTest[int x,int y]
  • LavishScript
    • Fixed a bug with using continue in a do/while loop, where it sometimes skipped the first condition
    • New data type members and methods:
  • objectcollection:EraseByQuery[uint query_id] - Erases any elements in the collection matching the given Query
  • objectcollection:EraseByQuery[uint query_id,bool remove_MATCHES] - Erases any elements in the collection that either match or do not match the given query
  • index:RemoveByQuery[uint query_id] - Erases any elements in the index matching the given Query
  • index:RemoveByQuery[uint query_id,bool remove_MATCHES] - Erases any elements in the index that either match or do not match the given query
  • note that although the above methods are essentially the same between index and objectcollection, the method names are chosen to be consistent with existing index and objectcollection Erase and Remove methods

Inner Space version 1.11 Build 5402
Released: 2011-03-17
  • Fixed a window sizing issue that affected some games
  • Runes of Magic
    • Added "No Patch" profile for Runes of Magic
    • Running client.exe with parameters NoCheckVersion will now properly bypass the Runes of Magic launcher
  • Possible fix for EverQuest 1 freezing issue related to mouse broadcasting
  • Improved Logitech G13 support now includes all buttons as well as thumbstick control!
    • New buttons G13-UP, G13-DOWN, G13-LEFT and G13-RIGHT can be used as key bindings to bind to the thumbstick
    • The also thumbstick can be interpreted as a DPad control G13-POV, or as X and Y axes G13-X and G13-Y
  • LavishScript
    • New data type members and methods:
  • unistring system.ClipboardText
  • system:SetClipboardText[utf8]
  • gdiwindow:PostMessage[int msg,optional int wparam,optional int lparam]
  • gdiwindow:SendMessage[int msg,optional int wparam,optional int lparam]
  • gdiwindow:Paste[optional utf8]

Inner Space version 1.11 Build 5395
Released: 2011-03-06
  • RIFT game detection added
  • Internet Explorer 9 compatibility update
  • Entropia Universe compatibility update
  • Improved cross-PC relay throughput. This should drastically improve mouse broadcasting speeds for multi-PC ISBoxer users.
  • Added "restore" option to WindowVisibility and WindowCharacteristics commands. This removes Maximize from the window.
  • LavishScript
    • Added "Equal" members to most numeric data types

Inner Space version 1.11 Build 5378
Released: 2011-02-20
  • Logitech G510 Keyboard support added
  • Direct3D11 support! Tested on World of Warcraft and Lord of the Rings Online
  • Game Configuration
    • The "Display Selection" option that had a list of numbers has been replaced by a "Monitor Selection" option with a list of your attached monitors, by the name Windows (GDI) refers to them, e.g. \\.\DISPLAY1 and \\.\DISPLAY2. **The current build does not transfer the old setting to the new setting, so if you use this option please update your configuration.**
  • DC Universe compatibility update
  • Earthrise Beta
    • Mouse fixed
  • Lord of the Rings Online
    • Added a workaround for a LOTRO rendering size limit that caused distortion and broke ISBoxer's Instant Swap
    • "No Patch" profiles will no longer be created for LOTRO. LOTRO no longer breaks when running multiple instances from the same folder, so this is unnecessary
  • RIFT Beta compatbility update
  • World of Warcraft
    • Added DirectX9 and DirectX11 default profiles
    • Bug fix: Mouse cursor will no longer stay centered after a mouselook (meaning that clicking in the game world will no longer appear to center the cursor)
  • Relay changes:
    • Relay now accepts "uplink" as a target, meaning the uplink on the current PC
    • Relay now accepts the following operators:
    • grouping: ( and )
    • union: , or | - examples: is1|is2|is3 or is1,is2,is3
    • intersect: & - examples: healers&paladins or (is1,is2)&(is2,is3)
    • NOT: ~ - examples: ~is1 or healers&~paladins
    • modulo: % - this operator selects the Nth (1-based) window from a set, e.g. healers%1 for the first healer in the group, healers%2 for the second healer in the group, or (is1,is2,is3)%2 for the second from this set, etc. The value wraps around the size of the set.
  • LavishScript:
    • The == and != operators, when used in floating point math as opposed to Math.Calc64, now treats any two numbers within 0.00000001 of each other as equal. Note that Calc64 is a misnomer, as its purpose is to provide 64-bit integer math, whereas Math.Calc and all other calculations use 64-bit floating point math.
    • RunScript command now additionally searches in a subdirectory with the same name as the script file

Inner Space version 1.11 Build 5326
Released: 2010-10-30
  • Compatibility updates
  • Fixed compatibility with Mono, used by the Unity 3D engine
  • Dark Age of Camelot:
    • Fixed compatibility with DAOC!
    • Updated DAOC game detection, and added "DAOC No Patch" profile which launches login.dll instead of camelot.exe

Inner Space version 1.11 Build 5318
Released: 2010-10-14
  • Mouse "clipping" is now locked off by default (again?). This fixes a reported issue with Star Wars Galaxies
  • Fixed an issue with window resizing not working properly in some situations
  • Fixed various remaining mouse issues
  • Fixed some compatibility issues that may have prevented some people from launching certain (or any) games, including those related to Creative ALchemy

Inner Space version 1.11 Build 5308
Released: 2010-10-07
  • Fixed cursor positioning issues with various games
  • More updates to forced window mode
  • EverQuest 1:
    • Inner Space will now automaticaly add the patchme parameter when launching eqgame.exe directly without any parameters.
  • The Lord of the Rings Online:
    • Fixed the "No Patch" profiles. The correct way to bypass the patcher is to execute TurbineLauncher.exe with parameters -usetdm -invoker. Inner Space will now automatically add the -invoker parameter when needed (without modifying your profile).
  • Dungeons & Dragons Online:
    • All LOTRO fixes now apply to Dungeons & Dragons Online as well
    • Added auto-detection when the game is installed to the default path
  • Ryzom:
    • Fixed mouselook
    • Added auto-detection for the game
  • Updated development kits to Visual Studio 2010 libraries. Any IS Extensions or LavishScript Modules will need to be updated accordingly.
  • Fixed some possible causes of "Launcher error -22", and replaced cryptic the error message

Inner Space version 1.10 Build 5245
Released: 2010-09-14
  • Fixed cursor positioning issues in Star Wars Galaxies
  • Updates to forced window mode (when Inner Space forces a full screen mode game into a window)
    • Fixed a "black screen" issue with switching away and back to a forced window
    • Fixed cursor position issues
    • If a game attempts to launch in full screen mode and fails, Inner Space will automatically attempt forced window mode

Inner Space version 1.10 Build 5243
Released: 2010-09-08
  • Fixed a crash issue with LOTRO on Vista. This fix probably solves some other crashes as well.
  • Fixed the generated LOTRO No Patch profile

Inner Space version 1.10 Build 5241
Released: 2010-09-02
  • Compatibility update
  • Dark Age of Camelot: Fixed patcher.prod.sig error on Windows 7
  • EverQuest 2: Fixed streaming EQ2 client issues, and added EverQuest II No Patch (Streaming) profile. Launching the streaming EQ2 client without the LaunchPad requires additional parameters.
  • Vanguard: Fixed bugs discovered via ISBoxer
  • Fixed crashes with Microsoft SideWinder mouse
  • Experimental fix for process launch freezes
  • Cursor positioning issues in Aion and EVE should be fixed
  • Added a "local" flag for relay groups. The keyword should come after the optional "other" flag and before the relay group.
    • Examples: relay "other local mygroup" echo hi relay "local mygroup" echo hi

Inner Space version 1.10 Build 5170
Released: 2010-07-03
  • This release marks the end of a nearly year-long effort to rewrite the core of Inner Space, with many months of extended testing to ensure that everything continues to work after the update. If you encounter new issues after this update, please let us know as soon as possible so we can correct the problem. Thanks!
  • Compatibility fixes for other programs including Fraps, Comodo Internet Security, and Symantec Endpoint Security
  • Various stability fixes
  • Fixed game launching bugs through a massive rewrite of the related code. Please report any new issues caused by the new changes, thanks!
    • Star Wars Galaxies DirectX error worked around. The error is usually suppressed by a MS Application Compatibility fix. The bug is in Sony's swgclientsetup code, specifically a check that wants a) the DirectX version number greater than or equal to 9, and b) the DirectX version letter greater than or equal to 'c'. DirectX 10 and 11 have no version letter, causing a message to be displayed saying that DirectX 9.0c or later is required. Sony should fix the bug in their code (hint: only check for 'c' if it's DirectX 9), but for now we have worked around it by providing a letter greater than or equal to 'c'.
  • Aion now works
  • Input device support added:
    • Logitech G110
    • Microsoft SideWinder X6 Keyboard

Inner Space version 1.09 Build 5039
Released: 2010-06-27
  • Video Capture fixed
  • Fixed game launching bugs, including but not limited to:
    • Dark Age of Camelot
    • Runes of Magic
  • Added support for older DirectInput games, e.g. Dark Age of Camelot

Inner Space version 1.09 Build 5021
Released: 2009-08-05
  • Fixed a bug with UTF-8 character conversions in virtual file names
  • LavishScript
    • Math.Calc will now properly give a 64-bit result in all cases

Inner Space version 1.09 Build 5019
Released: 2009-08-05
  • Input device support added:
  • Logitech G19
  • X-Keys Desktop (newer firmware)
  • Fixed an issue with AltGr on Belgian French keyboard layout in World of Warcraft
  • Fixed an issue with string.Escape
  • New object methods:
    • bind:Press
    • bind:Release

Inner Space version 1.09 Build 5011
Released: 2009-07-15
  • Added support for Logitech G13 buttons

Inner Space version 1.09 Build 5010
Released: 2009-06-02
  • EverQuest 1 & 2
    • The voice chat software built into EverQuest will no longer count as an Inner Space session. This also fixes "Inner Space was unable to initialize the session" spam for EQ1.

Inner Space version 1.09 Build 5007
Released: 2009-06-02
  • The Lord of the Rings Online
    • Emulated full screen should now work correctly
  • Fixed an issue where input may stop responding for some amount of time. Apparently there is still an issue with this somewhere.
  • Fixed issue with minimizing windows when the window characteristics are locked (e.g. by ISBoxer)
  • "Fixed" the infamous R6034 error box that some users get with some games
  • "Fixed" an issue on Windows Vista/7 where Inner Space would appear to fail to run when UAC is enabled, and Run as Administrator is not used.
  • LavishScript
    • Math.Calc now returns float64ptr instead of float, meaning an increase in precision
    • Added float Math.Log
    • Script-defined object type changes:
  • New special member "GetFallthroughObject" may now return an object which will be used in its place if a member or method of the objectdef does not exist
  • Objectdefs are no longer limited to their host script

Inner Space version 1.09 Build 4988
Released: 2009-06-02
  • Runes of Magic game should now work properly. Added a game detection for this game in the default install location.
  • Languages that were translating incorrectly when typing should now work

Inner Space version 1.09 Build 4981
Released: 2009-04-15
  • Various Improvements to the virtual cursor. Inner Space can now be instructed to draw the cursor if the game is in the background but would otherwise normally show it.
  • mouse.Cursor now gives the state of the virtual cursor
  • New object members: bool mouse.BackgroundCursor
  • New object methods: mouse:SetBackgroundCursor[bool]
  • New commands in Sessions: proclock on|off gammalock on|off
  • Fixed an issue with the Button-based LastChance events added in 4931
  • Added new event in the Kernel:
    • OnCursorStateChanged(bool Shown)
  • File redirection now supports relative paths included in the filenames, and also supports virtualizing folders by using / as the last character in the original filename, e.g. FileRedirect "Logs/" "Logs-Other/". Subsequently, the filename in the given folder can be automatically prepended by including text after the slash, e.g. FileRedirect "Logs/" "Logs/Other-".

Inner Space version 1.09 Build 4961
Released: 2009-04-11
  • EverQuest 1:
    • Removed default profile-based file redirection for eqlsPlayerData.ini and eqclient.ini, which only served to confuse people at this point. Some people will probably complain about this change, but redirection can still be done via ISBoxer Virtual Files or through manual configuration.
    • Fixed a startup crash caused by a race condition in the game. Hint for SOE: Window resize handler appears to be accessing the device to reset it, before the device pointer is stored after CreateDevice.
  • The default startup script will now detect whether there is an AltGr key. If there is, default binds that would otherwise use Ctrl+Alt will use Shift+Alt instead (and thus not interfere with AltGr).

Inner Space version 1.09 Build 4953
Released: 2009-03-29
  • All known EverQuest 1 issues should now be eliminated
  • Fixed a few more remaining window management and mouse positioning issues
  • Fixed some issues related to "Force Windowed" option
  • LavishScript Module API version 18

Inner Space version 1.09 Build 4937
Released: 2009-03-29
  • Fixed some remaining window management and mouse positioning issues

Inner Space version 1.09 Build 4931
Released: 2009-03-29
  • ISXDK version 31
    • Extension users: Download new versions of your extensions if available
    • Extension developers: Extensions must be recompiled, with Visual Studio 2008.
  • Improved window management
    • Mouse cursor positioning issues should now be eliminated
    • Force Windowed (a Profile option in Game Configuration) should work better for some games (notably, EQ1)
  • Fixed issue with -nomodifiers in Press command when multiple modifiers should be released
  • Added new events in the Kernel:
    • OnButtonDownLastChance
    • OnButtonUpLastChance
    • OnButtonMoveLastChance
    • OnMouseWheelLastChance These events are identical to the non-LastChance, but fire only if binds and GUI (Inner Space, not game) do not consume the input.
  • Kernel input events now additionally include an unsigned timestamp parameter
  • New uplink command:
    • Kill <session name> Terminates an Inner Space session process by session name

Inner Space version 1.09 Build 4904
Released: 2009-03-29
  • Fixed issue with Mouse1 through Mouse5 not resolving in some cases for Press command
  • Fixed session numbering issue with EVE Online in the default startup script. Also added a dynamic way to fix similar issues without an Inner Space patch.
  • Improved DirectInput compatibility
  • LavishScript:
    • Fixed crash in Math processor when there's more values than operators
  • LavishGUI:
    • Fixed issue with using SetWidth and SetHeight methods on a Window element
    • Fixed lguiwindow:SetTitle
    • Frames now properly adhere to Left/Right click-through

Inner Space version 1.09 Build 4900
Released: 2009-03-25
  • File redirection now properly handles UTF-8 characters in the filenames
  • Windowtext command now properly handles UTF-8 characters

Inner Space version 1.09 Build 4896
Released: 2009-02-21
  • Lord of the Rings Online:
    • Fixed emulated keystrokes including Num keys

Inner Space version 1.09 Build 4895
Released: 2009-02-21
  • EverQuest 1:
    • Fixed mouse positioning issue that previously started at Character Select screen

Inner Space version 1.09 Build 4891
Released: 2009-02-21
  • EverQuest 1:
    • Restored full keyboard functionality (no more broken keys that started recently)

Inner Space version 1.09 Build 4889
Released: 2009-02-21
  • Lord of the Rings Online:
    • UserPreferences.ini will now be redirected properly if requested
    • International (or non-US English) keyboard layouts should no longer be broken

Inner Space version 1.09 Build 4888
Released: 2009-02-21
  • Fixed various input-related issues, including:
    • Num Lock and Num keys should now work properly (including Alt+Num keys)
    • Caps Lock should now work properly
    • AltGr key found on various international keyboards now functions properly. Be aware, however, that as the AltGr key is implemented in Windows as CTRL+ALT, any Inner Space binds using CTRL+ALT will interfere. At present, this includes (by default -- any and all of these can be removed or changed)
  • CTRL+ALT+# (1 through 0, as many sessions as you have) globally for session switching
  • CTRL+ALT+F for FPS indicator
  • CTRL+ALT+M for Memory indicator.

Inner Space version 1.09 Build 4887
Released: 2009-02-21
  • Fixed various exit-related issues (crash and "ghosting")

Inner Space version 1.09 Build 4882
Released: 2009-02-19
  • Relay groups are now automatically linked with Remote Uplinks
  • Remote Uplinks should now deny duplicate connections
  • Fixed a Remote Uplink disconnection detection issue
  • Fixed a crash on exit

Inner Space version 1.09 Build 4868
Released: 2009-02-19
  • Fixed (and re-fixed) EverQuest 1 mouse-related issues

Inner Space version 1.09 Build 4865
Released: 2009-02-14
  • File redirection will now automatically copy the original file to the new file if the file does not exist.
  • Fixed a crash in shutdown for G15 or G11 users

Inner Space version 1.09 Build 4862
Released: 2009-02-10
  • Added "all uplinks" and "all other uplinks" targets to relay command
  • Remote sessions can now join relay groups
  • Experimental support for new X-Keys input devices (xkeys.com). Older X-Keys devices are natively supported, but devices using the newer firmware needed special handling. I don't have an X-Keys device to test with, but it should work.
  • Added PlaySound command
  • Added -lock and -unlock to WindowCharacteristics command
  • New Command:
    • LockForeground <on|off>
  • LavishScript
  • script.CurrentDirectory is now correct during pre-processing

Inner Space version 1.09 Build 4839
Released: 2009-02-10
  • World of Warcraft: Fixed virtual mouse positioning issue introduced by WoW 3.0.8
  • Added additional output to bind failures
  • Added additional output to "Failed to launch" (when attempting to launch an application through Inner Space). It now either briefly describes the problem or includes an error code that can be reported.
  • Added detection for corrupt InnerSpace.XML file. If InnerSpace.XML is corrupt, a message box will pop up with the option to delete it and start fresh.
  • MouseWheelUp and MouseWheelDown are now available for the Bind and Press commands, as well as button events
  • Processor command no longer stops processing additional parameters at "only"
  • LavishSettings
  • Settings and Sets now support Attributes, which must follow XML attribute name rules
  • New object type:
    • settingattribute
  • New object members
    • settingattribute setting.FindAttribute[name]
    • settingattribute setting.FindAttribute[name,auto-create with default value]
    • settingattribute settingset.FindAttribute[name]
    • settingattribute settingset.FindAttribute[name,auto-create with default value]
  • New object methods
    • setting:AddAttribute[name,value]
    • settingset:AddAttribute[name,value]

Inner Space version 1.09 Build 4828
Released: 2008-12-20
  • Fixed issue with mouse cursor in EVE Online in background windows (e.g. with Repeater)
  • Fixed issue with cursor positioning in scaled windows

Inner Space version 1.09 Build 4818
Released: 2008-12-20
  • Fixed a crash on game exit that would happen sometimes with Windows XP
  • Fixed a bug with the new ismenu data type that prevented adding sub-menus or separators in some cases

Inner Space version 1.09 Build 4816
Released: 2008-12-20
  • Fixed issue with DirectInput sometimes not accepting input on new sessions (example: Mouse sometimes would not work in EverQuest)
  • Fixed issue with crash reporter coming up multiple times
  • Sessions will now properly automatically reconnect to the Uplink (main program) if it is closed and restarted

Inner Space version 1.09 Build 4811
Released: 2008-12-14
  • Restored Windows 2000 compatibility (fixed the message that said GetProcessId could not be located in KERNEL32.dll)
  • Improved DirectInput support. There is no longer a "mouse flickering" issue in Star Wars Galaxies
  • Custom menu items can now be added to the Inner Space menu
  • DefaultStartup.iss (the default startup script) is now additionally used by the Uplink, and now has functionality to scan new Scripts\init-uplink and Scripts\init-session folders for scripts to automatically run any time the uplink or a session is launched, respectively. The scripts in these folders should not be scripts that stay running (but can launch scripts that do) because the "init" script functionality will run each script and wait for it to end before running the next. The scripts will be run in alphabetical order.
  • Uplink
    • New data types:
  • ismenuitem
  • ismenu
  • ismenucommand
  • ismenuseparator
    • New Top-Level Objects:
  • ismenu ISMenu ... ISMenu[#] (return type is an ismenuitem-derived type)
    • Documentation for the above data types and TLOs: http://www.lavishsoft.com/wiki/index.php/IS:Uplink#Object_Types

Inner Space version 1.09 Build 4799
Released: 2008-11-26
  • Press command will now translate Mouse1 through Mouse5 to mouse clicks of that button, giving another alternative to the mouseclick command and enabling (e.g.) press ctrl+mouse1
  • Press command now accepts a -nomodifiers switch, which will release any modifiers for the duration of pressing the given combo. It may not be used with -release or -hold. Examples: press -nomodifiers 2 press -nomodifiers alt+2 press -nomodifiers ctrl+mouse1
  • Bind -delete will now accept the wildcard character '*' (asterisk) at the end of the name
  • Alias -delete will now accept the wildcard character '*' (asterisk) at the end of the name

Inner Space version 1.09 Build 4794
Released: 2008-11-23
  • Fixed Num Enter, Num 5, and Clear (Clear is Num 5 without Num Lock)

Inner Space version 1.09 Build 4791
Released: 2008-11-10
  • New object members:
    • bool gdiwindow.IsForeground (Ex: ${Display.Window.IsForeground})
    • monitor gdiwindow.Monitor

Inner Space version 1.09 Build 4790
Released: 2008-11-10
  • Fixed a recently-introduced crash in Age of Conan and probably other games
  • New commands:
    • FocusClick application|eat|click Sets focus click behavior. Default is now "application" meaning it follows the host application's default behavior (build 4786 made the default "eat", spurring some complaints). Eat means a click used to focus the window will be eaten. Click means a click used to focus the window will also be interpreted as a click in the host.
  • Support added for G11 keyboards (G-key and M-key binds; G15 keyboards were already supported). Also added support for 6 G-key G15 keyboards.
  • New object types:
    • g15 - used for querying or setting M-key lights, keyboard and LCD backlight levels. Also works for G11 keyboards.
  • New object members:
    • g15 input.G15

Inner Space version 1.09 Build 4786
Released: 2008-11-10
  • Experimental EverQuest II window sizing support (note: EQ2 doesn't make this easy, so there may be some wonky behavior)
  • Improved process launcher behavior -- now supports more games, tested to include Lord of the Rings Online. May also include D&D Online and Entropia Universe, among others.
  • Fixed display scaling issue with Lord of the Rings Online
  • Fixed FileRedirect command functionality for some cases that were not working, such as config.wtf in World of Warcraft
  • Game detection process will no longer modify existing default profiles
  • LavishScript
    • Fixed auto-destruction of global scope arrays

Inner Space version 1.09 Build 4761
Released: 2008-11-10
  • New command "WindowCharacteristics" combines WindowFrame, WindowVisibility, WindowPosition and WindowFrame commands into a single command for improved performance when setting multiple characteristics
  • Hopefully fixed issue where multiple sessions launched fast enough could think they could use the same name (e.g. 2 sessions saying is1)
  • Fixed handling of Right Control, Right Alt and Right Shift
  • New data types
    • monitor
  • Added object members
    • uint display.Monitors
  • New events
    • OnMouseWheel[Offset] - Offset is a multiple of 120, for example 120 is one click up, -120 is one click down, -240 is two clicks down
    • OnMouseEnter - Mouse has entered the display window
    • OnMouseExit - Mouse has left the display window
  • The following events now have a bool Context object (a Context object is used with many different events to provide contextual information for the event). For these events, setting the Context bool to FALSE will block the input from being processed by the game or by binds:
    • OnAxisMove
    • OnButtonDown
    • OnButtonUp
    • OnButtonMove
    • OnDPadMove
    • OnMouseWheel
  • Added new MouseWheel <Offset> command for emulating mouse wheel movement
  • Added mouse:Wheel[Offset] method for emulating mouse wheel movement
  • Added new command in Uplink, only available from sessions Syntax: RelayGroup -list|-join <name>|-leave <name> Example: Uplink relaygroup -join tanks
  • Relay command now accepts relay group names, and "other <relay group name>" (to send to all OTHER in that group)
  • Some crashes related to IS-D3D9 fixed
  • LavishScript
    • Added uint system.Processors
  • LavishGUI
    • When Left and Right clickthru are set, scroll wheel will automatically fall through as well
    • MessageBox and InputBox commands now accept a -skin parameter
  • Note: Avoid using either where possible

Inner Space version 1.09 Build 4740
Released: 2008-11-08
  • Frame locking will now always occur at the soonest opportunity
  • MouseTo command now has an optional -relative parameter
  • mouse object type
    • mouse:SetPosition now has an optional -relative parameter
    • bool mouse.Cursor is TRUE if the mouse cursor is visible
  • New events
    • OnMouseMove[ChangeInX,ChangeInY]
  • Uplink
    • New events
  • OnRemoteSessionConnected[uplink name,full session name]
  • OnRemoteSessionDisconnected[uplink name,full session name]
  • OnUplinkRenamed[ipaddress,name]
    • Updated events
  • OnUplinkDisconnected[ipaddress,name]
    • New object types
  • session
  • remoteuplink
    • New Top-Level Objects
  • session Session[#]
  • remoteuplink RemoteUplink[name]
    • Updated Top-Level Objects
  • session Session[name]

Inner Space version 1.09 Build 4711
Released: 2008-10-25
  • Added "all other" and "all other local" targets to relay command
  • Relay should be more friendly when quoting the command to send
  • LavishScript
    • Added -repeat # switch to Execute command

Inner Space version 1.09 Build 4700
Released: 2008-10-18
  • Added -stealth switch to windowframe command

Inner Space version 1.09 Build 4698
Released: 2008-10-18
  • Fixed sticky CTRL / SHIFT / ALT keys
  • Added 'GlobalKey' command which can allow specified buttons to bypass Inner Space's virtualized input states and use the global key state, for a given session. An example use for this feature is to allow game-specific voice chat keys to activate voice chat when the window is not foreground.
    • Syntax: GlobalKey -keylist|-list|-clear [key]|<key> Examples: GlobalKey ctrl GlobalKey mouse3
  • Non-3D applications will now have an emulated 30 frames per second, thusly allowing, for example, relaying commands to non-3D applications such as Notepad.exe (though they will still not have full Inner Space display and input support)
  • Fixed IS-D3D9.dll related crash on shutdown in Age of Conan and EVE
  • Fixed mouse wheel issues in Warhammer Online
  • LavishGUI
  • Added SkinPrefix attribute to SkinTemplate tag to simplify skinning a little
  • ScrollBar:
    • Skinning improved. Instead of 3 different properties per button and 2 for the slider, new templatable UpButton, DownButton and Slider tags define the actual buttons and slider.
    • Can now be created via XML
  • TabControl:
    • Skinning improved. Instead of 3 different properties per button, new templatable LeftButton and RightButton tags define the actual buttons. Some properties (size and positioning) will be overridden by the TabControl. If the new tags are not present, the old functionality will be used for compatibility.
  • TextEdit:
    • VerticalScrollBar tag is now a container for the actual scroll bar
  • Console:
    • ScrollBar tag is now a container for the actual scroll bar
  • ListBox:
    • ScrollBar tag is now a container for the actual scroll bar
  • TextEntry:
    • Now supports Texture and TextureFocused
  • Gauge:
    • Now inherits Frame, allowing BackgroundColor, etc
    • Now has a TopTexture, which will be overlayed on top of the filler. A solid filler can now appear behind a semi-transparent top layer.
  • Window:
    • Percent-based window sizes no longer add the border size to the height/width of the window
  • Added Tree control
  • LavishScript object changes:
    • Added string lavishgui.CurrentSkin - During loading a UI with a skin, this is the name of the skin. For example, in an OnLoad embedded script, this could be stored for later use.
    • Added lguitexture:Copy[lguitexture] - Copies the given texture details into this one. For example, from a cache of textures (such as a set of hidden frame elements)
    • Added optional 4th parameter to lguielement:AddChild, which if present specifies the skin to use.
    • Added lguielement.AddChild, identical to lguielement:AddChild, but returns the created element.
    • Added lguielement:SetMetadata[key,value]
    • Added lguielement:UnsetMetadata[key]
    • Added string lguielement.GetMetadata[key]
    • Added lguibutton.Texture, lguibutton.TexturePressed, lguibutton.TextureHover
    • Added lguicheckbox.Texture, lguicheckbox.TexturePressed, lguicheckbox.TextureHover, lguicheckbox.TextureChecked, lguicheckbox.TextureCheckedPressed, lguicheckbox.TextureCheckedHover
    • Added lguilistbox.Texture
    • Added lguicombobox.Texture, lguicombobox.ButtonTexture
    • Added lguitabcontrol.TabTexture, lguitabcontrol.TabSelectedTexture
    • Added lguitextentry.Texture, lguitextentry.TextureFocused, lguitextentry.TextureCaret, lguitextentry.TextureCaretOverwrite,
  • DefaultSkin.xml has been updated to reflect the LavishGUI changes
  • LavishScript
  • Implemented 'persistentref' type Members:
    • ... Reference Methods:
    • SetReference[object]
  • Implemented 'type' type members:
    • string PersistentClass

Inner Space version 1.09 Build 4676
Released: 2008-09-15
  • Reimplemented delay on emulated keypress release, which should help solve key emulation issues with games that have poorly implemented input systems (e.g. EverQuest II)
  • LavishGUI
  • OnLeftDown and OnRightDown embedded script actions are now implemented
  • OnMouseWheel event now executes instead of OnLeftClick when the mouse wheel is moved
  • lguilistbox:Sort method (and by inheritance, the same for combo boxes) now allows for an optional parameter containing the name of a global atom to be used for sort comparison. atom(global) my_custom_sort(int A, int B) { // ${This.Item[${A}]} vs ${This.Item[${B}]} // where This is the list box, A is the ID of the first item, B is the ID of the second // return -1 (less than 0) if item A should be before (above) item B (aka "A is less than B") // return 0 if item A is equal to item B // return 1 (greater than 0) if item A should be after (below) item B // ... just like string comparison functions }
  • LavishScript
  • Improved data sequence error messages, and there was much rejoicing.
  • Applied a performance optimization to query evaluation. Some (most?) queries should now run 2 to 3 times faster.
  • Implemented 'lavishscript' type members:
    • uint CreateQuery[expression] - Creates a query with the given expression -- e.g. ${LavishScript.CreateQuery[Name=="Bonkers"]}
    • string RetrieveQueryExpression[ID] - Retrieves the query expression for a previously created query
    • bool QueryEvaluate[ID,object] - Determines if the given object matches the given query
  • Implemented 'lavishscript' type methods:
    • FreeQuery[ID] - Frees a previously created query
  • Added 'inputdevice' type
  • Implemented 'input' type methods:
    • GetBindIterator
    • GetAxisIterator
    • GetDPadIterator
    • GetDeviceIterator

Inner Space version 1.09 Build 4665
Released: 2008-09-15
  • LavishScript query system memory leaks fixed
  • Graphical glitch fixed in some games

Inner Space version 1.09 Build 4653
Released: 2007-12-17
  • Warhammer Online input-related issues solved
  • Age of Conan input-related issues solved
  • .NET initialization failure code 3 now provides additional information. We are working on fixing this issue.

Inner Space version 1.09 Build 4618
Released: 2007-12-17
  • LavishScript
  • Math errors now generally show the math sequence being processed (due to certain limitations, you may see two different failure messages in a row)
  • Setting uint at declaration time now works identically to uint:Set

Inner Space version 1.09 Build 4614
Released: 2007-12-17
  • .NET 2.0
  • Most LavishScriptAPI functions that enforce explicit frame locking when requested (LavishScript.RequireExplicitFrameLock=true) now frame lock themselves when explicit frame locking is not enforced.

Inner Space version 1.09 Build 4611
Released: 2007-12-17
  • .NET 2.0
  • Fixed adding LavishScript commands
  • Relay command no longer adds an unecessary layer of escaping internally. This fixes some relay-related bugs, but MAY break some workarounds.

Inner Space version 1.09 Build 4602
Released: 2007-12-17
  • Fixed Final Fantasy XI Online keyboard and mouse issues
  • .NET 2.0
    • Fixed bug with InnerSpaceAPI.InnerSpace.Memory.WriteMemory not getting the modification protected

Inner Space version 1.09 Build 4601
Released: 2007-12-17
  • Fixed mouse functionality in Hellgate London
  • Fixed issue with "black console window" in Age of Conan (beta)
  • Improved handling and output of "DotNet" command where the given assembly could not be found, and added display of the inner exception if there is an unhandled exception in the assembly's main thread
  • Misc other fixes

Inner Space version 1.09 Build 4600
Released: 2007-12-17
  • Fixed "mouse not working" bug in EVE Online (this should also fix Final Fantasy XI Online, though it has not yet been confirmed).

Inner Space version 1.09 Build 4598
Released: 2007-12-06
  • Most of the old navigation system deprecation messages have been removed. The "navigation" command is now the only thing that will display the message in the console. The deprecation message now says: Navigation command has been deprecated since March 2006 (over a year and a half). It's really not that hard to convert to LavishNav, and we've been patiently waiting for people to do so, so that we can remove this command. So please, instead of whining that it is spamming, at least make some effort to see that the old, deprecated system does not get used anymore. It crashes anyway, and those crashes will not be fixed. Also, this is not something for regular users to worry about. If you're not creating scripts, then all you need to do is complain to the people who wrote the scripts you are using that give the message.

Inner Space version 1.09 Build 4595
Released: 2007-09-04
  • .NET Initialization failure code 3 should be fixed
  • To make it easier to convert paths to LavishNav, the old navigation system now has the ability to export loaded data (all, or individual worlds) to LavishNav-compatible XML files. Any of the export methods in the old system (navigation -dump, navigation:Export, and navworld:Export) now accept a -lavishnav switch as a parameter prior to the output filename. For example, to convert foo.xml: navigation -load foo.xml navigation -dump -lavishnav foo-lnav.xml navigation -reset

Inner Space version 1.09 Build 4594
Released: 2007-09-04
  • The "Open" command (only available in the Uplink) now accepts an optional third parameter, which is a command to be executed upon launch. The execution of the command will take place at the end of the session's Startup Sequence.
  • .NET 2.0
    • Performance of GetMember<T> / GetObject<T> where the retrieved object is one of the base 32-bit (max) LavishScript numeric types should be a bit better. Such conversion usually happens by converting to and from strings, but now has a more direct path for those instances.

Inner Space version 1.09 Build 4589
Released: 2007-09-04
  • Stability fixes, including:
    • NearestConnectedRegion in LavishNav should no longer cause crashes
    • Fixed additional session launch bugs, including the EverQuest II patcher

Inner Space version 1.09 Build 4577
Released: 2007-09-04
  • Fixed various bugs with FFXI Online (still working on a keyboard issue)
  • Lord of the Rings Online mouselook issue fixed
  • DotNetScript fixed for launching .NET scripts within games
  • Windows 2000 launch crashes fixed

Inner Space version 1.09 Build 4547
Released: 2007-09-02
  • Session launches now use a new loader. This should hopefully fix launch crashes with EVE. Sorry, this probably does not affect the win2k issues with Vanguard, that's still coming.

Inner Space version 1.09 Build 4529
Released: 2007-08-20
  • Stability fixes, including:
    • System:APICall crash should be fixed
    • Fixed EVE launch bug

Inner Space version 1.09 Build 4528
Released: 2007-08-19
  • Stability fixes, including:
    • Fixed remaining Vanguard launch crashes, hopefully
    • Fixed LavishScript crash with ... construct when not supplying all prior parameters to the function call
  • LavishNav:
    • Improved Fully-Qualified Name resolution algorithm

Inner Space version 1.09 Build 4505
Released: 2007-08-04
  • Stability fixes, including:
    • DecodePointer error messages will no longer pop up on Windows versions earlier than Windows XP w/ SP2
    • Vanguard sound-related crash on startup should be fixed

Inner Space version 1.09 Build 4501
Released: 2007-08-02
  • Stability fixes, including:
    • Fixed LavishGUI crash when a command button destroys itself in OnLeftClick (hint for Vanguard script devs: if you're using OnLeftClick, you don't need to use a command button!)
    • Hopefully fixed LavishNav-related crashes with vgcraftbot and some other Vanguard scripts
  • Fixed EVE launching under Windows Vista
  • World of Warcraft safety updates (requires new version of Warden protection)

Inner Space version 1.09 Build 4476
Released: 2007-08-01
  • Fixed .NET initialization error
  • Fixed mouselook issue with EverQuest 1, and probably other games that use certain features of DirectX for mouse control

Inner Space version 1.09 Build 4473
Released: 2007-07-17
  • When loading an extension with the Extension command, and the extension is already loaded, the message will now indicate that the extension "is already loaded", rather than "could not be loaded".
  • The DotNet command now converts relative file paths (for the "assembly name" parameter) into absolute file paths, with the Inner Space .NET Programs folder as its root. This should not change any other usage of the DotNet command, and should not adversely affect anyone.
  • Fixed graphics incompatibility with The Lord of the Rings Online, as well as other games that may have had similar graphics glitches

Inner Space version 1.09 Build 4472
Released: 2007-07-10
  • World of Warcraft can no longer be launched through Inner Space without Warden protection.

Inner Space version 1.09 Build 4466
Released: 2007-06-12
  • Stability fixes, including:
    • Fixed crashes with Warcraft III
    • Fixed .NET application random crash on unload (the infamous "LavishVM Frame Ends" crash)
    • Fixed LavishScript bug when entering a command starting with a special character
  • Added a .NET scripting engine. This engine works by reading an XML file that describes how to build a temporary assembly to execute. The XML file can be used with the RunScript command to run the script (e.g. "run myscript"). Any .NET language available on your computer can be used -- if the .NET framework is installed, this usually includes C#, C++, VB, and JScript. Additional languages may require separate installation. If an invalid language name is used, then the list of languages that are available is displayed. Documentation for this feature is available at http://www.lavishsoft.com/wiki/index.php/DotNetScript

Inner Space version 1.09 Build 4456
Released: 2007-06-03
  • Stability fixes, including but not limited to:
    • Threads (e.g. in .NET) that terminate (e.g. via an unhandled exception) while having active frame locks no longer result in a permanent frame lock
    • Fixed DEP crashes, e.g. those caused as a side effect of the World of Warcraft patch

Inner Space version 1.09 Build 4447
Released: 2007-05-02
  • Stability fixes, including but not limited to:
    • Fixed potential crashes when launching games. The crashes could happen with various malware present, such as Wine (jab jab), or other programs installed.
    • Fixed LavishSettings iterator crashes and iterator:Jump on LavishSettings iterators
    • Fixed crash in LavishScript preprocessor with empty preprocessor #macros
  • Added TLO to uplink:
    • bool Session[name]

Inner Space version 1.09 Build 4443
Released: 2007-05-02
  • Stability fixes
  • Added 3rd and 4th monitor selection to game profile configuration
  • .NET 2.0
    • LavishVMAPI.FrameLock now implements IDisposable and its Lock and Unlock members are now public, as they were meant to be. The class is actually usable now.
    • LavishNav API now properly handles the AllPointsValid flag when creating regions

Inner Space version 1.09 Build 4438
Released: 2007-05-02
  • Stability fixes
  • ISXDK 30b changes LavishScript object container classes to use virtual functions. Extensions that use these classes should be recompiled with the new ISXDK to avoid crashes when accessing them through LavishScript.
  • Numpad Enter should now work properly for games that use standard Win32 input
  • Modifier key emulation (e.g. shift, alt, ctrl) should now work properly for games that use standard Win32 input
  • Per-thread frame lock management is now implemented directly in Inner Space (in addition to the .NET API functionality previously added). Frame locks held by the application's main thread (e.g. due to locks in event execution not cleaning up) should now be automatically released to prevent deadlock, and will echo a warning to the console.
  • LavishScript
    • The global script's CWD (current working directory) is now properly set to the LavishScript base path
  • .NET 2.0
    • Command and Event handlers now count thread frame locks. If a command or event handler executes and locks without unlocking or successfully unlocks without locking (due to unlocking a lock held by the thread, but not in the command or event handler), a warning will echo to the console.
    • Fixed bug from build 4419 that caused commands added by .NET apps to be removed by garbage collection
    • InnerSpaceAPI.InnerSpace.Memory.WriteMemory now has an overload that does not require the Size of the byte array. WriteMemory and UnwriteMemory are now implemented.

Inner Space version 1.09 Build 4421
Released: 2007-04-08
  • Stability fixes including LavishNav:Clear and console resizing
    • Note to the guy with the irate message about console resizing: one crash report per day per issue is just fine. Reporting the same issue many times won't help. One person submitting tons of identical crash reports only gets that person filtered out of our crash reports. The issue is fixed because it has been around for a while, and we've gotten crash reports from several people over a period of time. Besides, you don't need a negatively sized console anyway.
  • .NET 2.0
    • LavishVMAPI
  • New class LavishVMAPI.FrameLockManager helps resolve Frame Locking issues by retaining a count of locks. Problematic operations will result in thrown exceptions (see LavishVMAPI.Exceptions). Can be instantiated, but is automatically used by the API (see below).
  • LavishVMAPI.Frame now uses a thread-static FrameLockManager (a separate FrameLockManager per thread). All user-created FrameLockManagers use LavishVMAPI.Frame.
  • New class LavishVMAPI.FrameLock wraps frame locking in a friendly, beige package. Maintains a single lock (may use a custom FrameLockManager), and automatically unlocks upon destruction.
    • LavishScriptAPI
  • LavishScriptAPI.LavishScript.Events.AttachEventTarget, DetachEventTarget and ExecuteEvent now have overloads for passing the event name as the first parameter, instead of having to use the event ID.

Inner Space version 1.09 Build 4419
Released: 2007-03-29
  • Fixed EverQuest II crash on startup after today's EQ2 patch
  • .NET 2.0
    • Various APIs have been improved
    • Direct usage of delegates as methods is no longer used. The delegates have been internalized to improve code documentation as well as provide better cross-language compatibility.
    • LavishScript events now use a standard event handler mechanism, using LSEventArgs. All event usage must be converted. Unhandled .NET exceptions during event execution will be trapped and echoed to the console. Events are automatically cleaned up for you, if not done explicitly.
    • Commands now use public delegate int CommandTarget([In] string[] args). Unhandled .NET exceptions during command execution will be trapped and echoed to the console. Commands are automatically cleaned up for you, if not done explicitly.
    • Documented all Lavish.InnerSpace.dll API
    • When the .NET functionality fails to initialize, more information is now given
  • LavishScript
    • Object query support has been added. Extensions can use ISXDK 30a (or later) for direct access to this functionality. An object query is a math formula where all variables are relative to a specific object, and results in a boolean value -- the query is either true, or it is false. Query math can compare and manipulate text, decimals, or integers (note that bool counts as an integer for this purpose) with standard math operators. Text comparisons are not case sensitive. One intended use for object queries is a uniform search mechanism, to find an object or set of objects from a larger set of objects (compare to a SQL SELECT statement, where a LavishScript object query is the WHERE clause). See http://www.lavishsoft.com/wiki/index.php/LavishScript:Object%20Queries for more info.

Inner Space version 1.09 Build 4402
Released: 2007-03-28
  • Stability fixes
  • LavishNav
    • Added lnavregion:SetBounds[] -- same parameter ordering as AddChild, starting with region-specific information (e.g. the size and position, not name or type)

Inner Space version 1.09 Build 4396
Released: 2007-03-21
  • Restored XP64 compatibility

Inner Space version 1.09 Build 4394
Released: 2007-03-19
  • Stability fixes
  • New games successfully tested
    • Final Fantasy XI Online
    • Lord of the Rings Online These games have not yet been added to auto-detection. FFXI can be added via Add Game by selecting pol.exe, and LOTR can be added by selecting TurbineInvoker.exe. The games were tested under Windows Vista. There are reports that they may not yet work with Windows XP.
  • LavishNav
    • Fixed -dynamic flag for lnavpathfinder:SelectPath
    • Added lnavpathfinder.NearestConnectedRegion
  • .NET 2.0
    • Stability updates
    • Documentation updates

Inner Space version 1.09 Build 4371
Released: 2007-03-13
  • Stability fixes
  • .NET 2.0
    • API documentation XML files are now included

Inner Space version 1.09 Build 4369
Released: 2007-02-11
  • Fixed a nasty memory leak

Inner Space version 1.09 Build 4367
Released: 2007-02-11
  • Stability fixes

Inner Space version 1.09 Build 4366
Released: 2007-02-11
  • ISXDK v30 - Stability fix involving the LavishScript index type.
  • LavishNav
    • Fixed inaccuracy in A* pathfinding algorithm
    • Fixed BestContainer algorithm when traversing backward
    • Added optional "max cost" parameter to lnavregion:SelectPath
  • LavishScript 1.96
    • LSModule v17
    • Crash fixed when executing a command with a parameter that only contains a quote, such as echo "
  • .NET 2.0
    • Fixed LavishNavAPI.Region.AddSphere and AddRadius -- they previously mixed up part of the coordinates with the radius.
    • LavishScript-related API that accepts argc,argv now translates the args to LavishScript rules (i.e. null args are translated to empty strings) -- the actual string values are not modified
    • Fixed LavishNavAPI functions returning List<Region>

Inner Space version 1.08 Build 4347
Released: 2007-02-11
  • Video capture technically works again. Sound is not confirmed to correctly record.
  • .NET 2.0
    • Added static function IsNullOrInvalid to LavishScriptObject and LavishScriptPersistentObject, equivalent to string.IsNullOrEmpty
    • Fixed crash bug in LavishScriptObject.GetPersistentIndex
  • LavishNav
    • Automatic region naming is now available when dynamically creating regions (i.e. not from permanent storage). Use "auto" as the name to have a name automatically generated.
    • .NET API now includes Add methods for regions without supplying a name, for auto-naming

Inner Space version 1.08 Build 4338
Released: 2007-02-11
  • LavishNav
    • Fixed discrepancy between lnavregion.Connect and lnavregion:Connect. Both work identically now.

Inner Space version 1.08 Build 4337
Released: 2007-02-08
  • Some stability fixes, including but not limited to:
    • LavishGUI user input boxes should no longer crash (this is usually shown as heap corruption under Windows XP, and as a crash every time under Vista)
    • LavishScript should no longer crash when cleaning up global variables of script-defined type
    • LavishSettings iterators should no longer crash when pointing to a node that was just removed
  • LavishScript
    • The default precision for the float and relative types (floatptr, float64ptr) when reduced to text is now undefined, instead of 2 decimal places. The "Centi" member of float can be used to reduce the precision to the old format for display. For example: ${Float[3.14159].Centi}. The intended effect of this is to improve overall precision in calculations -- for example, this makes it much easier to use trigonometry functions. This could fix some trig-related crashes as well.
  • LavishNav
    • Added lnavregion:AddToGroup[name] - shortcut for creating a named region group and adding the region. This is also available in the .NET API.
  • .NET 2.0
    • Added LavishScriptAPI.ExecuteCommandEx, which is a near-direct path to the command implementation -- performing no LavishScript parsing, etc.

Inner Space version 1.08 Build 4335
Released: 2007-02-08
  • LavishGUI API v11 - Extensions that provide custom GUI element types (such as radars) must be updated, or the GUI elements will not be available -- the extensions will otherwise work, however. ISXDK 29f is available for download.
  • Windows Vista stability fixes

Inner Space version 1.08 Build 4332
Released: 2007-01-29
  • .NET 2.0
    • LavishSettingsAPI added to Lavish.InnerSpace.dll (thanks to Tenshi for providing the base for the wrapper)

Inner Space version 1.08 Build 4330
Released: 2007-01-29
  • Fixed crash with LavishSettings iterator:Last on an empty set
  • Fixed some other crash issues
  • Fixed input problems in Vanguard: Saga of Heroes
  • Fixed Vanguard game detection
  • LavishNav
    • Added "prism" region type, which makes right triangular prisms -- 3 vertical rectangle sides, and 2 triangles for top and bototm. This region type works identically to the triangle region type, except that the containment behavior for the Z axis is identical to the box region type. Z1 (bottom) and Z2 (top) are defined by the first two points of the triangle, and the third point's Z is ignored (and will remain 0).

Inner Space version 1.08 Build 4317
Released: 2007-01-28
  • .NET 2.0
    • Persistent objects API added. Persistent objects are valid until something says otherwise, instead of at the end of a frame. Frame locking should still be used when accessing the objects, but the lifetime should now be less restrictive. Persistent objects are implemented as LavishScriptPersistentObject instead of LavishScriptObject. Only LavishScript types that support object persistence can be referenced as a persistent object. Persistent objects may be retrieved with GetPersistentObject, GetPersistentMember, GetPersistentIndex from the appropriate parent classes. LavishScript variables (obtained with NewObject) are still a special type of persistent LavishScriptObject.
    • GetPermanentObject is now the same as GetPersistentObject and may only be used for persistent object types
    • IsValid property is now added for both LavishScriptObject and LavishScriptPersistentObject
    • Fixed DLL search path
  • LavishNav
    • Added 2D BestContainer. Pass 2 arguments instead of 3 to ignore the Z axis for the algorithm.

Inner Space version 1.08 Build 4310
Released: 2007-01-22
  • .NET 2.0
    • Fixed LavishScript API crash issues when using Objects.GetMember/GetMethod/GetObject resulting in a LavishScriptObject of a type that supports variables
  • Added OnSessionRenamed event for sessions

Inner Space version 1.08 Build 4302
Released: 2006-12-28
  • .NET 2.0
    • Application domains now unload automatically when an application's main thread terminates
    • Exceptions should be a little bit more friendly

Inner Space version 1.08 Build 4300
Released: 2006-12-28
  • Fixed the "exit" command used in sessions not immediately terminating
  • LavishNav
    • Fixed bug with importing from LSO and overlapping existing regions

Inner Space version 1.08 Build 4299
Released: 2006-12-28
  • The "exit" command when used in the uplink will now remove the system tray icon
  • LavishScript
    • Fixed crash issue with object methods as event targets

Inner Space version 1.08 Build 4294
Released: 2006-12-28
  • .NET 2.0 ( see www.lavishsoft.com/wiki/index.php/IS:.NET )
    • Much of the API now has documentation in the assemblies
  • LavishNav
    • lnavpathfinder.SelectPath now accepts a -dynamic switch for per-connection cost checking. Without -dynamic, the return value of the given atom is assumed to be a non-zero/zero "pass/fail" (i.e. use or do not use the connection). With -dynamic, the return value of the given atom is assumed to be INFINITE for do not use, otherwise a floating point cost value (e.g. distance). Note that this is only for real-time dynamic connections. Permanent cost values can still be set for each connection by setting the "distance override".
    • Per connection dynamic cost and pass/fail is now available through the LavishNav .NET API by passing a callback to SelectPath.
    • Fixed triangle center point
    • -allpointsvalid switch now works when creating regions
    • All children of the root universe are now implicitly "unique"
    • LavishNav.NET changes:
  • AStar and Dijkstra objects should now be created with new AStar() or new Dijkstra() instead of using AStar.GetNew() or Dijkstra.GetNew()
  • new Path() should now work correctly
  • LavishScript
    • Fixed issues with function parameter default values

Inner Space version 1.08 Build 4292
Released: 2006-12-28
  • .NET 2.0 ( see www.lavishsoft.com/wiki/index.php/IS:.NET )
    • (nearly) All functions using string[] parameters now use the "params" construct
    • LavishScriptAPI.Point3f class added
    • LavishScriptAPI.LavishScriptIterator class added
    • LavishNav API is now implemented as the LavishNavAPI namespace in Lavish.LavishNav.dll
  • LavishNav
    • All pathfinders are now automatically reset when a region or connection is removed
    • Fixed potential crash issue in lnavregion.Connect
    • lnavconnection lnavregion.GetConnection[ID or FQN] is now implemented

Inner Space version 1.08 Build 4290
Released: 2006-12-16
  • .NET 2.0 ( see www.lavishsoft.com/wiki/index.php/IS:.NET )
    • Assemblies are no longer required to be placed in the Global Assembly Cache to be loaded via the DotNet command. The main Inner Space folder and the .NET Programs subfolder are searched by default. Assemblies can be loaded by path relative to the Inner Space folder.
    • LavishScriptObject class now includes a GetLSReference function, which can be used to pass a LavishScript object to methods that require an object reference, such as lnavpathfinder:SelectPath or objectcontainer:GetIterator. ex (C#): ExecuteMethod("GetIterator",new string[] {MyIteratorObject.GetLSReference()})

Inner Space version 1.08 Build 4282
Released: 2006-12-16
  • .NET 2.0 "scripting" support is now available
    • ISXDK 29d provides API for managing .Net assemblies and bootstrapping API
    • DotNet command can be used to load assemblies, list active "application domains" as well as unload application domains. Any number of assemblies can be loaded into a given application domain.

Inner Space version 1.07 Build 4252
Released: 2006-11-28
  • Default console binding is now changed to be friendlier to our international friends. is found to exist will be used as your default console key.

Inner Space version 1.07 Build 4249
Released: 2006-11-19
  • Extension crash reporting is fixed.

Inner Space version 1.07 Build 4247
Released: 2006-10-26
  • Remote sessions are no longer counted by the patcher
  • Crashes in, but not handled by an extension, should now pop up an extension error report in notepad
  • LavishScript
    • Fixed memory leak in variable cleanup
    • Fixed bug that allowed ended scripts to continue to run (and on bad memory)
  • LavishNav
    • Minor optimizations that should go unnoticed
    • GetConnectionIterator is now implemented
    • Fixed possibility of infinite loop in path generation

Inner Space version 1.07 Build 4220
Released: 2006-10-14
  • LavishScript 1.95
    • "Encountered empty [typecast/member/method]" messages fixed and functionality restored
    • variablecase fixed
    • unistring object type added
    • Added string string.URLEncode
  • LavishNav
    • lnavpathfinder:SelectPath now accepts an additional parameter for per-connection avoidance checks
    • lnavregion:Import, lnavregion:Export, lnavregion:ExportChildren now support LSO output by using -lso as first parameter, filename second. This format is smaller and faster, but not easily editable and the format is not necessarily backwards compatible, so it is advisable to keep an XML copy, and use LSO if load time is important. In the forseeable future, asynchronous Import functionality will be added as well.
  • Added event OnFrame()
  • Emulated mouse clicks and mouse wheel now pass through LavishGUI

Inner Space version 1.07 Build 4179
Released: 2006-10-07
  • LavishNav
    • Added object type methods and members uint lnavregion.ConnectionCount lnavregion:GetConnectionIterator[iterator object]
    • Fixed FullContainer behavior for rect and box
  • The Macro command makes its triumphant return (its disappearance was not intended, but nobody noticed until now)

Inner Space version 1.07 Build 4174
Released: 2006-09-03
  • Fixed bug with loading XML from a buffer (hud -add fixed)
  • Keyboard interaction should now be interpreted with UTF-8

Inner Space version 1.07 Build 4172
Released: 2006-09-03
  • LavishNav v1.02
    • Fixed bug with using BestContainer from a region that defines a coordinate system.
    • lavishnav object type now inherits lnavuniverse, a shortcut to lavishnav.Tree
  • Relay fixed up a bit. Among other things, it is now moved directly into the kernel, rather than provided by the uplink and sessions separately. The relay command also no longer shows "session not found" error messages. Its new syntax is as follows: Relay <uplink name|session name|all|all local> [-echo|-event <name>|-noredirect] <message|command>
    • -echo is essentially a shortcut for -noredirect echo
    • -noredirect is the new name for -rsp, which was ambiguously named. It should now be more obvious that the switch stops the output from going to the sender. Examples:
    • relay is1 -echo ${SomeVariable}
  • Echoes the value of SomeVariable to is1
    • relay is2 echo \${SomeVariable}
  • Echoes the value of SomeVariable on is2, to the current window
    • relay is1 -event "Some Event" Parameter to Some Event
  • Executes LavishScript event called "Some Event" on is1, with a parameter containing "Parameter to Some Event" (sorry, only 1 parameter possible. multiple parameters will be available when Lavish Virtual Transport replaces the relay system)
    • relay somecomputer.is1 -echo HELLO FROM THE OTHER COMPUTER!
  • Echoes "HELLO FROM THE OTHER COMPUTER!" in is1 on somecomputer
    • relay somecomputer.is1 press -keylist
  • Retrieves the list of available keys on somecomputer.is1, for display in the current window
    • relay is2 -noredirect press -keylist
  • Retrieves the list of available keys in is2, and displays them in is2

Inner Space version 1.07 Build 4148
Released: 2006-09-03
  • Yet another reworking of the character encodings. All known issues with UTF-8 should be fixed
  • Remote uplink disconnect detection issue should be fixed
  • Added events OnSessionConnected(string name) OnSessionDisconnected(string name) OnSessionRenamed(string oldname,string newname) OnUplinkConnected(string IPAddress) OnUplinkDisconnected(string IPAddress)

Inner Space version 1.07 Build 4126
Released: 2006-09-03
  • Keyboard state should no longer be sticky when switching applications with DirectInput games (e.g. EverQuest 1)
  • Emulated mouse positioning should now work better in the background Neither should anyone else.
  • Virtual Input now handles non-client areas of the game window. This fixes the bug with clicking on World of Warcraft's title bar or borders after patch 1.12.

Inner Space version 1.07 Build 4123
Released: 2006-08-21
  • XML files, including Settings files, now correctly use UTF-8. Any localized files previously used will need to be converted. LavishScript files are expected to be UTF-8 encoded as well. Note: If you have no idea what this means, then you probably don't need to worry about it.

Inner Space version 1.07 Build 4086
Released: 2006-08-13
  • Stability update

Inner Space version 1.07 Build 4084
Released: 2006-08-10
  • Several stability fixes
  • Added object type members: input.Pending
    • The press command should no longer get confused when pressing alternative input device buttons

Inner Space version 1.07 Build 4075
Released: 2006-07-12
  • LavishSettings update. The LavishScript objects for the LavishSettings system, to replace the present "dataset" object type, "SettingXML" object, and "XMLSetting" command, are now available and documented here: http://www.lavishsoft.com/wiki/index.php/LavishSettings The old objects and commands will soon be marked as deprecated and will begin spitting warnings about removal.
  • Virtual Input is now permanently active, regardless of input system selection. Please report any remaining input bugs.
  • The Uplink now also uses Virtual Input
  • Added object type members: bool gdiwindow.AlwaysOnTop string gdiwindow.Frame
  • Cedega users should no longer be shown the DirectX 9 update requirement box, as the detection failed.

Inner Space version 1.07 Build 4042
Released: 2006-07-02
  • The April 2006 update to DirectX 9 is now required. If this is not installed on your system, a box will pop up upon running Inner Space that will allow you to hit OK to be taken to the download, or hit Cancel to find it on your own.
  • LavishScript 1.93 - http://www.lavishsoft.com/wiki/index.php/LavishScript:Release_Notes
  • UTF-8 encoded localization strings should now stay valid instead of disappearing
  • The uplink "Focus" command now accepts a session name as a parameter
  • The "-rsp" switch now works in the session relay command

Inner Space version 1.07 Build 4009
Released: 2006-05-31
  • Fixed shift emulation issues in Virtual Input
  • Logitech G15 macro keys are now supported for binding with the Virtual Input system enabled. Note that this should not interfere with the G15's keyboard "profiler", but would work best through Inner Space with the profiler disabled. Also note that using the M1, M2 and M3 keys will not change the backlighting at this time -- however, they may of course be bound to select a new set of binds for the G1 through G18 keys.

Inner Space version 1.07 Build 4008
Released: 2006-05-16
  • LavishScript 1.92 - http://www.lavishsoft.com/wiki/index.php/LavishScript:Release_Notes
  • Fixed number pad issues
  • Mouse positioning issues with Virtual Input have been cleared up
  • EverQuest 1 screen sizing issues have been cleared up
  • LavishScript event added
    • On Window Position(bool Stealthed) (Stealthed is if -stealth is used with WindowPosition or -rescale is used with WindowSize)
  • The default startup script now automatically applies mouse scaling to EverQuest 1
  • "Targz" LavishScript module (which adds support for tar/gzip) is now included by default. This module is somewhat incomplete, but supports extraction of standard tar (with or without gzip compression) files, and is open source if anyone wants to add missing features (see http://www.lavishsoft.com/wiki/index.php/LSModule:Targz).

Inner Space version 1.07 Build 3990
Released: 2006-05-16
  • Inner Space's stealth system is now disabled by default. This should only be enabled if you feel you have something to hide, and may subject you to stricter rules in games, particularly those that detect such stealth systems (World of Warcraft is now doing so). Stealth can be enabled by game configuration option, by object method, or by extensions.
  • Added object type members: bool innerspace.Stealth
  • Added object type methods: innerspace:EnableStealth
  • Fixed issue with middle mouse button in EverQuest II

Inner Space version 1.07 Build 3983
Released: 2006-05-16
  • Added object type members: intptr mouse.TranslateX intptr mouse.TranslateY floatptr mouse.ScaleX floatptr mouse.ScaleY
  • Mouse position transformation (with the mouse.Translate* and mouse.Scale* objects described above) can now be used to fix cursor positioning issues with games that make incorrect assumptions about window sizing (such as EverQuest 1). Mouse transform is only available with the Virtual Input system.

Inner Space version 1.07 Build 3982
Released: 2006-05-16
  • LavishScript 1.91 - http://www.lavishsoft.com/wiki/index.php/LavishScript:Release_Notes
  • LavishNav 1.01
  • Alternative input devices are now supported. Any axis, directional-pad or button can be queried through the Input object, and buttons also work directly with the Inner Space bind system. For example, the Nostromo n52 Speedpad2 can be configured with a DirectInput profile to bind its keys independently of the keyboard -- the n52 doesn't have to be a simple keyboard emulator!