Inner Space Releases

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