<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://isboxer2.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Lax</id>
		<title>ISBoxer 2 - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://isboxer2.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Lax"/>
		<link rel="alternate" type="text/html" href="https://isboxer2.com/wiki/Special:Contributions/Lax"/>
		<updated>2026-04-07T12:07:29Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>https://isboxer2.com/w/index.php?title=Main_Page&amp;diff=123</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://isboxer2.com/w/index.php?title=Main_Page&amp;diff=123"/>
				<updated>2023-02-06T18:55:44Z</updated>
		
		<summary type="html">&lt;p&gt;Lax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;The ISBoxer 2 Wiki is under construction!&amp;#039;&amp;#039;&amp;#039; ISBoxer 2 has been refreshed, please bear with us while we update the wiki content for the updated ISBoxer 2 release!&lt;br /&gt;
&lt;br /&gt;
== What is ISBoxer 2 ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;ISBoxer 2 is free, open source multiboxing software&amp;#039;&amp;#039;&amp;#039; for [https://www.lavishsoft.com Lavish Software]&amp;#039;s Inner Space platform. ISBoxer 2 is [https://github.com/isboxer2/ISBoxer-2 available on github], but can be installed directly via Inner Space.&lt;br /&gt;
&lt;br /&gt;
=== What&amp;#039;s New? ===&lt;br /&gt;
ISBoxer 2 offers many new features not previously available in ISBoxer:&lt;br /&gt;
* No separate &amp;quot;ISBoxer Toolkit&amp;quot; program required!&lt;br /&gt;
* No &amp;quot;Export to Inner Space&amp;quot; required, it&amp;#039;s all handled when you launch your [[ISB2:Team|Team]]!&lt;br /&gt;
* New skinnable GUI system with fancy new features like [[Action:animation|animations]]&lt;br /&gt;
* New in-game debugging capabilities allow in-depth tracing, right down to the individual Actions that fire&lt;br /&gt;
* Support for [[ISB2:MIDI|MIDI]] input devices, allowing you to rock out with your multibox out! MIDI devices often have more buttons and features at a lower cost than USB keyboard/keypad devices.&lt;br /&gt;
* Support for editing multiple [[ISB2:Profile|profiles]]&lt;br /&gt;
* Split editing mode allows quick editing of multiple sections of the same profile&lt;br /&gt;
* The &amp;quot;configuration style&amp;quot; options seen in the [[ISB2:Quick Setup|Quick Setup]] &amp;#039;&amp;#039;literally&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;literally!&amp;#039;&amp;#039;&amp;#039;) go into your team, with the same options available for editing any time&lt;br /&gt;
* A fun new [[ISB2:Achievements|Achievements]] system helps you track your personal progress with ISBoxer!&lt;br /&gt;
* New profile features such as [[ISB2:Configuration Builder|Configuration Builders]] (which add options to the [[ISB2:Quick Setup|Quick Setup]]!), [[ISB2:Variable|Variables]], [[ISB2:Trigger|Triggers]]&lt;br /&gt;
* Many new Action types including &amp;quot;[[Action:if|if]]&amp;quot; and &amp;quot;[[Action:random|random]]&amp;quot;&lt;br /&gt;
* Lots more!&lt;br /&gt;
&lt;br /&gt;
ISBoxer 2 can also [[ISB2:Import|import your existing ISBoxer 1 profiles]]!&lt;br /&gt;
&lt;br /&gt;
== ISBoxer 2 Open Alpha ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;ISBoxer 2&amp;#039;s Alpha phase is nearly complete!&amp;#039;&amp;#039;&amp;#039; Alpha testing is now open to all Inner Space subscribers.&lt;br /&gt;
&lt;br /&gt;
To install ISBoxer 2:&lt;br /&gt;
&lt;br /&gt;
# Update Inner Space to build 7093 or later&lt;br /&gt;
#* As of this edit, build 7093 is the development build of Inner Space. To update to this build, right click Inner Space and select &amp;lt;code&amp;gt;Patcher&amp;lt;/code&amp;gt;, click the &amp;lt;code&amp;gt;Development&amp;lt;/code&amp;gt; tab, click &amp;lt;code&amp;gt;Check for Updates&amp;lt;/code&amp;gt; if needed, and then &amp;lt;code&amp;gt;Install Now&amp;lt;/code&amp;gt; to actually install it&lt;br /&gt;
# Click &amp;lt;code&amp;gt;Install / Uninstall Agents&amp;lt;/code&amp;gt; in the Agents window (in the bottom right corner of Inner Space)&lt;br /&gt;
# Click &amp;lt;code&amp;gt;Install latest&amp;lt;/code&amp;gt; in the Agent Install window (you may need to move the Patcher window out of the way)&lt;br /&gt;
# Tick the &amp;lt;code&amp;gt;ISBoxer 2&amp;lt;/code&amp;gt; box in the Agents window to load ISBoxer 2&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;That&amp;#039;s it!&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Explore ISBoxer 2 ==&lt;br /&gt;
&lt;br /&gt;
{{ISB2Profile}}&lt;br /&gt;
&lt;br /&gt;
{{ISB2Actions}}&lt;/div&gt;</summary>
		<author><name>Lax</name></author>	</entry>

	<entry>
		<id>https://isboxer2.com/w/index.php?title=Template:ISB2Profile&amp;diff=122</id>
		<title>Template:ISB2Profile</title>
		<link rel="alternate" type="text/html" href="https://isboxer2.com/w/index.php?title=Template:ISB2Profile&amp;diff=122"/>
				<updated>2023-02-06T18:52:36Z</updated>
		
		<summary type="html">&lt;p&gt;Lax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Section|1=ISBoxer 2 Profile Parts|2=&lt;br /&gt;
[[ISB2:Profile|Profile]]&lt;br /&gt;
&lt;br /&gt;
; Team make-up&lt;br /&gt;
: [[ISB2:Character|Character]]&lt;br /&gt;
: [[ISB2:Team|Team]] (Character Set)&lt;br /&gt;
&lt;br /&gt;
; Basic features&lt;br /&gt;
: [[ISB2:Click Bar|Click Bar]] (Click Bar, Menu)&lt;br /&gt;
:: [[ISB2:Click Bar Button Layout|Click Bar Button Layout]] (Menu Button Set)&lt;br /&gt;
:: [[ISB2:Click Bar Template|Click Bar Template]] (Menu Template)&lt;br /&gt;
:: [[ISB2:Image Sheet|Image Sheet]] (Click Bar Images)&lt;br /&gt;
: [[ISB2:Hotkey Sheet|Hotkey Sheet]] (Key Map)&lt;br /&gt;
: [[ISB2:Mappable Sheet|Mappable Sheet]] (Key Map)&lt;br /&gt;
: [[ISB2:Window Layout|Window Layout]]&lt;br /&gt;
: [[ISB2:Broadcast Profile|Broadcast Profile]] (Repeater Profile)&lt;br /&gt;
: [[ISB2:VFX Sheet|VFX Sheet]]&lt;br /&gt;
: [[ISB2:Virtual File|Virtual File]]&lt;br /&gt;
: [[ISB2:Game Macro Sheet|Game Macro Sheet]] (WoW Macro Set, Cryptic Macro Set)&lt;br /&gt;
&lt;br /&gt;
; Advanced Builder Stuff&lt;br /&gt;
: [[ISB2:Configuration Builder|Configuration Builder]] - [[ISB2:Variable|Variable]] - [[ISB2:Trigger|Trigger]]&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Lax</name></author>	</entry>

	<entry>
		<id>https://isboxer2.com/w/index.php?title=Main_Page&amp;diff=121</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://isboxer2.com/w/index.php?title=Main_Page&amp;diff=121"/>
				<updated>2023-02-06T18:47:46Z</updated>
		
		<summary type="html">&lt;p&gt;Lax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;The ISBoxer 2 Wiki is under construction!&amp;#039;&amp;#039;&amp;#039; ISBoxer 2 has been refreshed, please bear with us while we update the wiki content for the updated ISBoxer 2 release!&lt;br /&gt;
&lt;br /&gt;
== What is ISBoxer 2 ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;ISBoxer 2 is free, open source multiboxing software&amp;#039;&amp;#039;&amp;#039; for [https://www.lavishsoft.com Lavish Software]&amp;#039;s Inner Space platform. ISBoxer 2 is [https://github.com/isboxer2/ISBoxer-2 available on github], but can be installed directly via Inner Space.&lt;br /&gt;
&lt;br /&gt;
=== What&amp;#039;s New? ===&lt;br /&gt;
ISBoxer 2 offers many new features not previously available in ISBoxer:&lt;br /&gt;
* No separate &amp;quot;ISBoxer Toolkit&amp;quot; program required!&lt;br /&gt;
* No &amp;quot;Export to Inner Space&amp;quot; required, it&amp;#039;s all handled when you launch your [[ISB2:Team|Team]]!&lt;br /&gt;
* New skinnable GUI system with fancy new features like [[Action:animation|animations]]&lt;br /&gt;
* New in-game debugging capabilities allow in-depth tracing, right down to the individual Actions that fire&lt;br /&gt;
* Support for [[ISB2:MIDI|MIDI]] input devices, allowing you to rock out with your multibox out! MIDI devices often have more buttons and features at a lower cost than USB keyboard/keypad devices.&lt;br /&gt;
* Support for editing multiple [[ISB2:Profile|profiles]]&lt;br /&gt;
* Split editing mode allows quick editing of multiple sections of the same profile&lt;br /&gt;
* The &amp;quot;configuration style&amp;quot; options seen in the [[ISB2:Quick Setup|Quick Setup]] &amp;#039;&amp;#039;literally&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;literally!&amp;#039;&amp;#039;&amp;#039;) go into your team, with the same options available for editing any time&lt;br /&gt;
* A fun new [[ISB2:Achievements|Achievements]] system helps you track your personal progress with ISBoxer!&lt;br /&gt;
* New profile features such as [[ISB2:Configuration Builder|Configuration Builders]] (which add options to the [[ISB2:Quick Setup|Quick Setup]]!), [[ISB2:Variable|Variables]], [[ISB2:Trigger|Triggers]]&lt;br /&gt;
* Many new Action types including &amp;quot;[[Action:if|if]]&amp;quot; and &amp;quot;[[Action:random|random]]&amp;quot;&lt;br /&gt;
* Lots more!&lt;br /&gt;
&lt;br /&gt;
== ISBoxer 2 Open Alpha ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;ISBoxer 2&amp;#039;s Alpha phase is nearly complete!&amp;#039;&amp;#039;&amp;#039; Alpha testing is now open to all Inner Space subscribers.&lt;br /&gt;
&lt;br /&gt;
To install ISBoxer 2:&lt;br /&gt;
&lt;br /&gt;
# Update Inner Space to build 7093 or later&lt;br /&gt;
#* As of this edit, build 7093 is the development build of Inner Space. To update to this build, right click Inner Space and select &amp;lt;code&amp;gt;Patcher&amp;lt;/code&amp;gt;, click the &amp;lt;code&amp;gt;Development&amp;lt;/code&amp;gt; tab, click &amp;lt;code&amp;gt;Check for Updates&amp;lt;/code&amp;gt; if needed, and then &amp;lt;code&amp;gt;Install Now&amp;lt;/code&amp;gt; to actually install it&lt;br /&gt;
# Click &amp;lt;code&amp;gt;Install / Uninstall Agents&amp;lt;/code&amp;gt; in the Agents window (in the bottom right corner of Inner Space)&lt;br /&gt;
# Click &amp;lt;code&amp;gt;Install latest&amp;lt;/code&amp;gt; in the Agent Install window (you may need to move the Patcher window out of the way)&lt;br /&gt;
# Tick the &amp;lt;code&amp;gt;ISBoxer 2&amp;lt;/code&amp;gt; box in the Agents window to load ISBoxer 2&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;That&amp;#039;s it!&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Explore ISBoxer 2 ==&lt;br /&gt;
&lt;br /&gt;
{{ISB2Profile}}&lt;br /&gt;
&lt;br /&gt;
{{ISB2Actions}}&lt;/div&gt;</summary>
		<author><name>Lax</name></author>	</entry>

	<entry>
		<id>https://isboxer2.com/w/index.php?title=Main_Page&amp;diff=120</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://isboxer2.com/w/index.php?title=Main_Page&amp;diff=120"/>
				<updated>2023-02-06T18:43:32Z</updated>
		
		<summary type="html">&lt;p&gt;Lax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;The ISBoxer 2 Wiki is under construction!&amp;#039;&amp;#039;&amp;#039; ISBoxer 2 has been refreshed, please bear with us while we update the wiki content for the updated ISBoxer 2 release!&lt;br /&gt;
&lt;br /&gt;
== What is ISBoxer 2 ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;ISBoxer 2 is free, open source multiboxing software&amp;#039;&amp;#039;&amp;#039; for [https://www.lavishsoft.com Lavish Software]&amp;#039;s Inner Space platform. ISBoxer 2 is [https://github.com/isboxer2/ISBoxer-2 available on github], but can be installed directly via Inner Space.&lt;br /&gt;
&lt;br /&gt;
=== What&amp;#039;s New? ===&lt;br /&gt;
ISBoxer 2 offers many new features not previously available in ISBoxer:&lt;br /&gt;
* No separate &amp;quot;ISBoxer Toolkit&amp;quot; program required!&lt;br /&gt;
* No &amp;quot;Export to Inner Space&amp;quot; required, it&amp;#039;s all handled when you launch your team!&lt;br /&gt;
* New skinnable GUI system with fancy new features like animations&lt;br /&gt;
* New in-game debugging capabilities allow in-depth tracing, down to the Actions&lt;br /&gt;
* Support for MIDI input devices, allowing you to rock out with your multibox out! MIDI devices often have more buttons and features at a lower cost than USB keyboard/keypad devices.&lt;br /&gt;
* Support for editing multiple profiles&lt;br /&gt;
* Split editing mode allows quick editing of multiple sections of the same profile&lt;br /&gt;
* The &amp;quot;configuration style&amp;quot; options seen in the Quick Setup &amp;#039;&amp;#039;literally&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;literally!&amp;#039;&amp;#039;&amp;#039;) go into your team, with the same options available for editing any time&lt;br /&gt;
* A fun new Achievements system helps you track your personal progress with ISBoxer!&lt;br /&gt;
* New profile features such as Configuration Builders (which add options to the Quick Setup!), Variables, Triggers&lt;br /&gt;
* Many new Action types including &amp;quot;if&amp;quot; and &amp;quot;random&amp;quot;&lt;br /&gt;
* Lots more!&lt;br /&gt;
&lt;br /&gt;
== ISBoxer 2 Open Alpha ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;ISBoxer 2&amp;#039;s Alpha phase is nearly complete!&amp;#039;&amp;#039;&amp;#039; Alpha testing is now open to all Inner Space subscribers.&lt;br /&gt;
&lt;br /&gt;
To install ISBoxer 2:&lt;br /&gt;
&lt;br /&gt;
# Update Inner Space to build 7093 or later&lt;br /&gt;
#* As of this edit, build 7093 is the development build of Inner Space. To update to this build, right click Inner Space and select &amp;lt;code&amp;gt;Patcher&amp;lt;/code&amp;gt;, click the &amp;lt;code&amp;gt;Development&amp;lt;/code&amp;gt; tab, click &amp;lt;code&amp;gt;Check for Updates&amp;lt;/code&amp;gt; if needed, and then &amp;lt;code&amp;gt;Install Now&amp;lt;/code&amp;gt; to actually install it&lt;br /&gt;
# Click &amp;lt;code&amp;gt;Install / Uninstall Agents&amp;lt;/code&amp;gt; in the Agents window (in the bottom right corner of Inner Space)&lt;br /&gt;
# Click &amp;lt;code&amp;gt;Install latest&amp;lt;/code&amp;gt; in the Agent Install window (you may need to move the Patcher window out of the way)&lt;br /&gt;
# Tick the &amp;lt;code&amp;gt;ISBoxer 2&amp;lt;/code&amp;gt; box in the Agents window to load ISBoxer 2&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;That&amp;#039;s it!&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Explore ISBoxer 2 ==&lt;br /&gt;
&lt;br /&gt;
{{ISB2Profile}}&lt;br /&gt;
&lt;br /&gt;
{{ISB2Actions}}&lt;/div&gt;</summary>
		<author><name>Lax</name></author>	</entry>

	<entry>
		<id>https://isboxer2.com/w/index.php?title=Template:ISB2Actions&amp;diff=119</id>
		<title>Template:ISB2Actions</title>
		<link rel="alternate" type="text/html" href="https://isboxer2.com/w/index.php?title=Template:ISB2Actions&amp;diff=119"/>
				<updated>2023-02-06T18:42:49Z</updated>
		
		<summary type="html">&lt;p&gt;Lax: Created page with &amp;quot;{{Section|1=ISBoxer 2 Actions|2= ; Input... : Action:keystroke| - Action:keystring| - Action:game key binding| - Action:game macro| - Action:sync cursor| -...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Section|1=ISBoxer 2 Actions|2=&lt;br /&gt;
; Input...&lt;br /&gt;
: [[Action:keystroke|keystroke]] - [[Action:keystring|keystring]] - [[Action:game key binding|game key binding]] - [[Action:game macro|game macro]] - [[Action:sync cursor|sync cursor]] - [[Action:send next click|send next click]]&lt;br /&gt;
; Window...&lt;br /&gt;
: [[Action:window focus|window focus]] - [[Action:window close|window close]] - [[Action:window style|window style]] - [[Action:window state|window state]]&lt;br /&gt;
; VFX...&lt;br /&gt;
: [[Action:vfx|vfx]] - [[Action:vfx sheet state|vfx sheet state]]&lt;br /&gt;
; Hotkeys and Input Mappings...&lt;br /&gt;
: [[Action:|set game key binding]] - [[Action:|hotkey sheet state]] - [[Action:|input mapping]] - [[Action:|set input mapping]] - [[Action:|input device key set]]&lt;br /&gt;
; Mappables...&lt;br /&gt;
: [[Action:mappable|mappable]] - [[Action:mappable step|mappable step]] - [[Action:mappable step state|mappable step state]] - [[Action:mappable sheet state|mappable sheet state]] - [[Action:virtualize mappable|virtualize mappable]] - [[Action:|key map state]]&lt;br /&gt;
; Click Bars...&lt;br /&gt;
: [[Action:click bar state|click bar state]] - [[Action:click bar style|click bar style]] - [[Action:click bar hotkey sheet|click bar hotkey sheet]] - [[Action:set click bar button|set click bar button]]&lt;br /&gt;
; Triggers...&lt;br /&gt;
: [[Action:add trigger|add trigger]] - [[Action:remove trigger|remove trigger]] - [[Action:trigger|trigger]]&lt;br /&gt;
; Broadcast Mode...&lt;br /&gt;
: [[Action:broadcast state|broadcast state]] - [[Action:broadcast target|broadcast target]] - [[Action:broadcast list|broadcast list]]&lt;br /&gt;
; Variables and Conditionals...&lt;br /&gt;
: [[Action:|set variable]] - [[Action:if|if]] - [[Action:switch|switch]] - [[Action:|random]]&lt;br /&gt;
; Audio/Visual Notifications and GUI...&lt;br /&gt;
: [[Action:|popup text]] - [[Action:|style]] - [[Action:|animate]] - [[Action:|stop animation]] - [[Action:|sound]] - [[Action:|light]] - [[Action:|volume]]&lt;br /&gt;
; Other...&lt;br /&gt;
: [[Action:|target group]] - [[Action:|screenshot]] - [[Action:|timer pool]] - [[Action:|region sheet state]] - [[Action:|actions]]&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Lax</name></author>	</entry>

	<entry>
		<id>https://isboxer2.com/w/index.php?title=Template:ISB2Profile&amp;diff=118</id>
		<title>Template:ISB2Profile</title>
		<link rel="alternate" type="text/html" href="https://isboxer2.com/w/index.php?title=Template:ISB2Profile&amp;diff=118"/>
				<updated>2023-02-06T18:25:57Z</updated>
		
		<summary type="html">&lt;p&gt;Lax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Section|1=ISBoxer 2 Profile Parts|2=&lt;br /&gt;
[[ISB2:Profile|Profile]]&lt;br /&gt;
&lt;br /&gt;
; Team make-up&lt;br /&gt;
: [[ISB2:Character|Character]]&lt;br /&gt;
: [[ISB2:Team|Team]] (Character Set)&lt;br /&gt;
&lt;br /&gt;
; Basic features&lt;br /&gt;
: [[ISB2:Click Bar|Click Bar]] (Click Bar, Menu)&lt;br /&gt;
:: [[ISB2:Click Bar Button Layout|Click Bar Button Layout]] (Menu Button Set)&lt;br /&gt;
:: [[ISB2:Click Bar Template|Click Bar Template]] (Menu Template)&lt;br /&gt;
: [[ISB2:Hotkey Sheet|Hotkey Sheet]] (Key Map)&lt;br /&gt;
: [[ISB2:Mappable Sheet|Mappable Sheet]] (Key Map)&lt;br /&gt;
: [[ISB2:Window Layout|Window Layout]]&lt;br /&gt;
: [[ISB2:Broadcast Profile|Broadcast Profile]] (Repeater Profile)&lt;br /&gt;
: [[ISB2:Image Sheet|Image Sheet]] (Click Bar Images)&lt;br /&gt;
: [[ISB2:VFX Sheet|VFX Sheet]]&lt;br /&gt;
: [[ISB2:Virtual File|Virtual File]]&lt;br /&gt;
: [[ISB2:Game Macro Sheet|Game Macro Sheet]] (WoW Macro Set, Cryptic Macro Set)&lt;br /&gt;
&lt;br /&gt;
; Advanced Builder Stuff&lt;br /&gt;
: [[ISB2:Configuration Builder|Configuration Builder]] - [[ISB2:Variable|Variable]] - [[ISB2:Trigger|Trigger]]&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Lax</name></author>	</entry>

	<entry>
		<id>https://isboxer2.com/w/index.php?title=Main_Page&amp;diff=117</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://isboxer2.com/w/index.php?title=Main_Page&amp;diff=117"/>
				<updated>2023-02-06T18:24:02Z</updated>
		
		<summary type="html">&lt;p&gt;Lax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;The ISBoxer 2 Wiki is under construction!&amp;#039;&amp;#039;&amp;#039; ISBoxer 2 has been refreshed, please bear with us while we update the wiki content for the updated ISBoxer 2 release!&lt;br /&gt;
&lt;br /&gt;
== What is ISBoxer 2 ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;ISBoxer 2 is free, open source multiboxing software&amp;#039;&amp;#039;&amp;#039; for [https://www.lavishsoft.com Lavish Software]&amp;#039;s Inner Space platform. ISBoxer 2 is [https://github.com/isboxer2/ISBoxer-2 available on github], but can be installed directly via Inner Space.&lt;br /&gt;
&lt;br /&gt;
=== What&amp;#039;s New? ===&lt;br /&gt;
ISBoxer 2 offers many new features not previously available in ISBoxer:&lt;br /&gt;
* No separate &amp;quot;ISBoxer Toolkit&amp;quot; program required!&lt;br /&gt;
* No &amp;quot;Export to Inner Space&amp;quot; required, it&amp;#039;s all handled when you launch your team!&lt;br /&gt;
* New skinnable GUI system with fancy new features like animations&lt;br /&gt;
* New in-game debugging capabilities allow in-depth tracing, down to the Actions&lt;br /&gt;
* Support for MIDI input devices, allowing you to rock out with your multibox out! MIDI devices often have more buttons and features at a lower cost than USB keyboard/keypad devices.&lt;br /&gt;
* Support for editing multiple profiles&lt;br /&gt;
* Split editing mode allows quick editing of multiple sections of the same profile&lt;br /&gt;
* The &amp;quot;configuration style&amp;quot; options seen in the Quick Setup &amp;#039;&amp;#039;literally&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;literally!&amp;#039;&amp;#039;&amp;#039;) go into your team, with the same options available for editing any time&lt;br /&gt;
* A fun new Achievements system helps you track your personal progress with ISBoxer!&lt;br /&gt;
* New profile features such as Configuration Builders (which add options to the Quick Setup!), Variables, Triggers&lt;br /&gt;
* Many new Action types including &amp;quot;if&amp;quot; and &amp;quot;random&amp;quot;&lt;br /&gt;
* Lots more!&lt;br /&gt;
&lt;br /&gt;
== ISBoxer 2 Open Alpha ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;ISBoxer 2&amp;#039;s Alpha phase is nearly complete!&amp;#039;&amp;#039;&amp;#039; Alpha testing is now open to all Inner Space subscribers.&lt;br /&gt;
&lt;br /&gt;
To install ISBoxer 2:&lt;br /&gt;
&lt;br /&gt;
# Update Inner Space to build 7093 or later&lt;br /&gt;
#* As of this edit, build 7093 is the development build of Inner Space. To update to this build, right click Inner Space and select &amp;lt;code&amp;gt;Patcher&amp;lt;/code&amp;gt;, click the &amp;lt;code&amp;gt;Development&amp;lt;/code&amp;gt; tab, click &amp;lt;code&amp;gt;Check for Updates&amp;lt;/code&amp;gt; if needed, and then &amp;lt;code&amp;gt;Install Now&amp;lt;/code&amp;gt; to actually install it&lt;br /&gt;
# Click &amp;lt;code&amp;gt;Install / Uninstall Agents&amp;lt;/code&amp;gt; in the Agents window (in the bottom right corner of Inner Space)&lt;br /&gt;
# Click &amp;lt;code&amp;gt;Install latest&amp;lt;/code&amp;gt; in the Agent Install window (you may need to move the Patcher window out of the way)&lt;br /&gt;
# Tick the &amp;lt;code&amp;gt;ISBoxer 2&amp;lt;/code&amp;gt; box in the Agents window to load ISBoxer 2&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;That&amp;#039;s it!&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{ISB2Profile}}&lt;/div&gt;</summary>
		<author><name>Lax</name></author>	</entry>

	<entry>
		<id>https://isboxer2.com/w/index.php?title=Template:ISB2Profile&amp;diff=116</id>
		<title>Template:ISB2Profile</title>
		<link rel="alternate" type="text/html" href="https://isboxer2.com/w/index.php?title=Template:ISB2Profile&amp;diff=116"/>
				<updated>2023-02-06T18:23:41Z</updated>
		
		<summary type="html">&lt;p&gt;Lax: Created page with &amp;quot;{{Section|1=ISBoxer 2 Profile Parts|2= ; Team make-up : ISB2:Character| : ISB2:Team| (Character Set)  ; Basic features : ISB2:Click Bar| (Click Bar, Menu) :: ISB...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Section|1=ISBoxer 2 Profile Parts|2=&lt;br /&gt;
; Team make-up&lt;br /&gt;
: [[ISB2:Character|Character]]&lt;br /&gt;
: [[ISB2:Team|Team]] (Character Set)&lt;br /&gt;
&lt;br /&gt;
; Basic features&lt;br /&gt;
: [[ISB2:Click Bar|Click Bar]] (Click Bar, Menu)&lt;br /&gt;
:: [[ISB2:Click Bar Button Layout|Click Bar Button Layout]] (Menu Button Set)&lt;br /&gt;
:: [[ISB2:Click Bar Template|Click Bar Template]] (Menu Template)&lt;br /&gt;
: [[ISB2:Hotkey Sheet|Hotkey Sheet]] (Key Map)&lt;br /&gt;
: [[ISB2:Mappable Sheet|Mappable Sheet]] (Key Map)&lt;br /&gt;
: [[ISB2:Window Layout|Window Layout]]&lt;br /&gt;
: [[ISB2:Broadcast Profile|Broadcast Profile]] (Repeater Profile)&lt;br /&gt;
: [[ISB2:Image Sheet|Image Sheet]] (Click Bar Images)&lt;br /&gt;
: [[ISB2:VFX Sheet|VFX Sheet]]&lt;br /&gt;
: [[ISB2:Virtual File|Virtual File]]&lt;br /&gt;
: [[ISB2:Game Macro Sheet|Game Macro Sheet]] (WoW Macro Set, Cryptic Macro Set)&lt;br /&gt;
&lt;br /&gt;
; Advanced Builder Stuff&lt;br /&gt;
: [[ISB2:Configuration Builder|Configuration Builder]] - [[ISB2:Variable|Variable]] - [[ISB2:Trigger|Trigger]]&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Lax</name></author>	</entry>

	<entry>
		<id>https://isboxer2.com/w/index.php?title=Main_Page&amp;diff=115</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://isboxer2.com/w/index.php?title=Main_Page&amp;diff=115"/>
				<updated>2023-02-06T18:06:29Z</updated>
		
		<summary type="html">&lt;p&gt;Lax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;The ISBoxer 2 Wiki is under construction!&amp;#039;&amp;#039;&amp;#039; ISBoxer 2 has been refreshed, please bear with us while we update the wiki content for the updated ISBoxer 2 release!&lt;br /&gt;
&lt;br /&gt;
== What is ISBoxer 2 ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;ISBoxer 2 is free, open source multiboxing software&amp;#039;&amp;#039;&amp;#039; for [https://www.lavishsoft.com Lavish Software]&amp;#039;s Inner Space platform. ISBoxer 2 is [https://github.com/isboxer2/ISBoxer-2 available on github], but can be installed directly via Inner Space.&lt;br /&gt;
&lt;br /&gt;
=== What&amp;#039;s New? ===&lt;br /&gt;
ISBoxer 2 offers many new features not previously available in ISBoxer:&lt;br /&gt;
* No separate &amp;quot;ISBoxer Toolkit&amp;quot; program required!&lt;br /&gt;
* No &amp;quot;Export to Inner Space&amp;quot; required, it&amp;#039;s all handled when you launch your team!&lt;br /&gt;
* New skinnable GUI system with fancy new features like animations&lt;br /&gt;
* New in-game debugging capabilities allow in-depth tracing, down to the Actions&lt;br /&gt;
* Support for MIDI input devices, allowing you to rock out with your multibox out! MIDI devices often have more buttons and features at a lower cost than USB keyboard/keypad devices.&lt;br /&gt;
* Support for editing multiple profiles&lt;br /&gt;
* Split editing mode allows quick editing of multiple sections of the same profile&lt;br /&gt;
* The &amp;quot;configuration style&amp;quot; options seen in the Quick Setup &amp;#039;&amp;#039;literally&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;literally!&amp;#039;&amp;#039;&amp;#039;) go into your team, with the same options available for editing any time&lt;br /&gt;
* A fun new Achievements system helps you track your personal progress with ISBoxer!&lt;br /&gt;
* New profile features such as Configuration Builders (which add options to the Quick Setup!), Variables, Triggers&lt;br /&gt;
* Many new Action types including &amp;quot;if&amp;quot; and &amp;quot;random&amp;quot;&lt;br /&gt;
* Lots more!&lt;br /&gt;
&lt;br /&gt;
== ISBoxer 2 Open Alpha ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;ISBoxer 2&amp;#039;s Alpha phase is nearly complete!&amp;#039;&amp;#039;&amp;#039; Alpha testing is now open to all Inner Space subscribers.&lt;br /&gt;
&lt;br /&gt;
To install ISBoxer 2:&lt;br /&gt;
&lt;br /&gt;
# Update Inner Space to build 7093 or later&lt;br /&gt;
#* As of this edit, build 7093 is the development build of Inner Space. To update to this build, right click Inner Space and select &amp;lt;code&amp;gt;Patcher&amp;lt;/code&amp;gt;, click the &amp;lt;code&amp;gt;Development&amp;lt;/code&amp;gt; tab, click &amp;lt;code&amp;gt;Check for Updates&amp;lt;/code&amp;gt; if needed, and then &amp;lt;code&amp;gt;Install Now&amp;lt;/code&amp;gt; to actually install it&lt;br /&gt;
# Click &amp;lt;code&amp;gt;Install / Uninstall Agents&amp;lt;/code&amp;gt; in the Agents window (in the bottom right corner of Inner Space)&lt;br /&gt;
# Click &amp;lt;code&amp;gt;Install latest&amp;lt;/code&amp;gt; in the Agent Install window (you may need to move the Patcher window out of the way)&lt;br /&gt;
# Tick the &amp;lt;code&amp;gt;ISBoxer 2&amp;lt;/code&amp;gt; box in the Agents window to load ISBoxer 2&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;That&amp;#039;s it!&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>Lax</name></author>	</entry>

	<entry>
		<id>https://isboxer2.com/w/index.php?title=ISBoxer_2_Button&amp;diff=114</id>
		<title>ISBoxer 2 Button</title>
		<link rel="alternate" type="text/html" href="https://isboxer2.com/w/index.php?title=ISBoxer_2_Button&amp;diff=114"/>
				<updated>2019-09-01T19:33:30Z</updated>
		
		<summary type="html">&lt;p&gt;Lax: Created page with &amp;quot;The ISBoxer 2 Button is a handy ISBoxer 2 access point, with a right-click menu to access commonly needed items such as ISBoxer 2 Settings or GUI Edit Mode. File...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[ISBoxer 2 Button]] is a handy ISBoxer 2 access point, with a right-click menu to access commonly needed items such as [[ISBoxer 2 Settings]] or [[GUI Edit Mode]].&lt;br /&gt;
[[File:ISBoxer 2 Button Menu.png|right|thumb|400px|The [[ISBoxer 2 Button]]&amp;#039;s right-click menu]]&lt;br /&gt;
&lt;br /&gt;
The Button can be enabled via the [[Module:Core|Core Module]], and can be dragged to a convenient position on-screen. Save its placement to the [[GUI Profile]] (and &amp;quot;Push&amp;quot; it real good) to keep its placement permanently.&lt;/div&gt;</summary>
		<author><name>Lax</name></author>	</entry>

	<entry>
		<id>https://isboxer2.com/w/index.php?title=ISBoxer_2_Settings&amp;diff=113</id>
		<title>ISBoxer 2 Settings</title>
		<link rel="alternate" type="text/html" href="https://isboxer2.com/w/index.php?title=ISBoxer_2_Settings&amp;diff=113"/>
				<updated>2019-09-01T19:28:37Z</updated>
		
		<summary type="html">&lt;p&gt;Lax: Created page with &amp;quot;The GUI tab in the in-client ISBoxer 2 Settings window The in-client ISBoxer 2 Settings window provides access to -- ge...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:GUI Profile settings.png|right|thumb|400px|The GUI tab in the in-client ISBoxer 2 Settings window]]&lt;br /&gt;
The in-client [[ISBoxer 2 Settings]] window provides access to -- get this -- ISBoxer 2 Settings!&lt;br /&gt;
&lt;br /&gt;
To access this window, right click the [[ISBoxer 2 Button]] and click Settings.&lt;br /&gt;
[[File:ISBoxer 2 Button Menu.png|right|thumb|400px|The [[ISBoxer 2 Button]] menu]]&lt;/div&gt;</summary>
		<author><name>Lax</name></author>	</entry>

	<entry>
		<id>https://isboxer2.com/w/index.php?title=File:ISBoxer_2_Button_Menu.png&amp;diff=112</id>
		<title>File:ISBoxer 2 Button Menu.png</title>
		<link rel="alternate" type="text/html" href="https://isboxer2.com/w/index.php?title=File:ISBoxer_2_Button_Menu.png&amp;diff=112"/>
				<updated>2019-09-01T19:26:32Z</updated>
		
		<summary type="html">&lt;p&gt;Lax: The right-click menu from the ISBoxer 2 Button&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The right-click menu from the [[ISBoxer 2 Button]]&lt;/div&gt;</summary>
		<author><name>Lax</name></author>	</entry>

	<entry>
		<id>https://isboxer2.com/w/index.php?title=GUI_Profile&amp;diff=111</id>
		<title>GUI Profile</title>
		<link rel="alternate" type="text/html" href="https://isboxer2.com/w/index.php?title=GUI_Profile&amp;diff=111"/>
				<updated>2019-09-01T18:24:29Z</updated>
		
		<summary type="html">&lt;p&gt;Lax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Save Placement.png|right|thumb|400px|Saving window placement]]&lt;br /&gt;
[[File:GUI Profile settings.png|right|thumb|400px|The GUI tab in the in-client ISBoxer 2 Settings window]]&lt;br /&gt;
An ISBoxer 2 [[GUI Profile]] can store placement and related metadata about your in-client ISBoxer 2 windows.&lt;br /&gt;
&lt;br /&gt;
By default, an GUI Profile called &amp;quot;Default&amp;quot; is assigned and remains empty until placement data is saved into it. &lt;br /&gt;
&lt;br /&gt;
To save the position of a GUI window, right click the ISBoxer 2 icon in its title bar and select &amp;quot;Save Placement&amp;quot;. This will store the placement into that client&amp;#039;s version of the GUI Profile. &lt;br /&gt;
&lt;br /&gt;
The GUI Profile may then be Pushed via the in-client [[ISBoxer 2 Settings]] window, to be permanently saved for later, and will also then be applied to any other running clients that are assigned to the same GUI Profile.&lt;/div&gt;</summary>
		<author><name>Lax</name></author>	</entry>

	<entry>
		<id>https://isboxer2.com/w/index.php?title=GUI_Profile&amp;diff=110</id>
		<title>GUI Profile</title>
		<link rel="alternate" type="text/html" href="https://isboxer2.com/w/index.php?title=GUI_Profile&amp;diff=110"/>
				<updated>2019-09-01T18:23:36Z</updated>
		
		<summary type="html">&lt;p&gt;Lax: Created page with &amp;quot;Saving window placement [[File:GUI Profile settings.png|right|thumb|400px|The GUI tab in the in-client ISBoxer 2 Settings window]...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Save Placement.png|right|thumb|400px|Saving window placement]]&lt;br /&gt;
[[File:GUI Profile settings.png|right|thumb|400px|The GUI tab in the in-client ISBoxer 2 Settings window]]&lt;br /&gt;
An ISBoxer 2 [[GUI Profile]] can store placement and related metadata about your in-client ISBoxer 2 windows.&lt;br /&gt;
&lt;br /&gt;
By default, an GUI Profile called &amp;quot;Default&amp;quot; is assigned and remains empty until placement data is saved into it. &lt;br /&gt;
&lt;br /&gt;
To save the position of a GUI window, right click the ISBoxer 2 icon in its title bar and select &amp;quot;Save Placement&amp;quot;. This will store the placement into that client&amp;#039;s version of the GUI Profile. &lt;br /&gt;
&lt;br /&gt;
The GUI Profile may then be Pushed via the in-client ISBoxer 2 Settings window, to be permanently saved for later, and will also then be applied to any other running clients that are assigned to the same GUI Profile.&lt;/div&gt;</summary>
		<author><name>Lax</name></author>	</entry>

	<entry>
		<id>https://isboxer2.com/w/index.php?title=File:Save_Placement.png&amp;diff=109</id>
		<title>File:Save Placement.png</title>
		<link rel="alternate" type="text/html" href="https://isboxer2.com/w/index.php?title=File:Save_Placement.png&amp;diff=109"/>
				<updated>2019-09-01T18:21:33Z</updated>
		
		<summary type="html">&lt;p&gt;Lax: Saving window positioning to the GUI Profile&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Saving window positioning to the [[GUI Profile]]&lt;/div&gt;</summary>
		<author><name>Lax</name></author>	</entry>

	<entry>
		<id>https://isboxer2.com/w/index.php?title=File:GUI_Profile_settings.png&amp;diff=108</id>
		<title>File:GUI Profile settings.png</title>
		<link rel="alternate" type="text/html" href="https://isboxer2.com/w/index.php?title=File:GUI_Profile_settings.png&amp;diff=108"/>
				<updated>2019-09-01T18:19:27Z</updated>
		
		<summary type="html">&lt;p&gt;Lax: GUI Profile settings in the in-client ISBoxer 2 Settings window&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[GUI Profile]] settings in the in-client ISBoxer 2 Settings window&lt;/div&gt;</summary>
		<author><name>Lax</name></author>	</entry>

	<entry>
		<id>https://isboxer2.com/w/index.php?title=Develop:LavishScript:Getting_Started&amp;diff=107</id>
		<title>Develop:LavishScript:Getting Started</title>
		<link rel="alternate" type="text/html" href="https://isboxer2.com/w/index.php?title=Develop:LavishScript:Getting_Started&amp;diff=107"/>
				<updated>2019-08-18T16:39:21Z</updated>
		
		<summary type="html">&lt;p&gt;Lax: /* Data Sequences */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This tutorial will help bring you up to speed with LavishScript development.&lt;br /&gt;
&lt;br /&gt;
So, by now you&amp;#039;ve read [[Develop:LavishScript]] and would like to get your feet wet and hands dirty. Let&amp;#039;s go then. :)&lt;br /&gt;
&lt;br /&gt;
== Consoles ==&lt;br /&gt;
An [[Inner Space]] Console window is your first, and most handy, point of entry to LavishScript. There is a Console in the main Inner Space program (called the Uplink) available through its right-click menu, or in-game available via hotkey. LavishScript Commands can be manually entered into the Console.&lt;br /&gt;
&lt;br /&gt;
Open the Console in the main Inner Space program now. Type something in it, and press enter to see what happens. If what you&amp;#039;ve entered is not recognized as a command, the result is something like this:&lt;br /&gt;
 Unknown command &amp;#039;something&amp;#039;&lt;br /&gt;
&lt;br /&gt;
This time, type in &amp;quot;&amp;lt;tt&amp;gt;echo Hi&amp;lt;/tt&amp;gt;&amp;quot; and press enter. Now, you see the result&lt;br /&gt;
 Hi&lt;br /&gt;
&lt;br /&gt;
Isn&amp;#039;t that great? That is how a LavishScript console operates. By now, you should be feeling like an expert on the use of a LavishScript Console! ... If only you knew what to do with it. Let&amp;#039;s move on.&lt;br /&gt;
&lt;br /&gt;
== Commands ==&lt;br /&gt;
Now that you know where to enter commands, it would really be helpful for you to know how to properly form commands, and what commands are actually available.&lt;br /&gt;
&lt;br /&gt;
LavishScript commands have a fairly simple syntax. The first word is the command name, and any parameters can come after the command name, each separated by one or more spaces. If a parameter is to contain a space, it should be quoted using double quotes &amp;lt;tt&amp;gt;&amp;quot;like this&amp;quot;&amp;lt;/tt&amp;gt;. And if a parameter is to contain a double quote, it should be escaped using a \ as is generally standard.&lt;br /&gt;
&lt;br /&gt;
To help you understand how a command and its parameters are processed, LavishScript provides a &amp;quot;test&amp;quot; command which specifies each portion of the command entered. &lt;br /&gt;
&lt;br /&gt;
Enter the following command into a Console:&lt;br /&gt;
 test &amp;quot;like \&amp;quot; this&amp;quot;&lt;br /&gt;
&lt;br /&gt;
And here&amp;#039;s the output for this command:&lt;br /&gt;
 Console Command Tester&lt;br /&gt;
 Arguments: 2&lt;br /&gt;
 Argument 0: &amp;#039;Test&amp;#039;&lt;br /&gt;
 Argument 1: &amp;#039;like &amp;quot; this&amp;#039;&lt;br /&gt;
&lt;br /&gt;
So as you can see this is represented as a series of &amp;quot;Arguments&amp;quot;, with 0 being the name of the command, and 1 being the first parameter. Each piece is surrounded by single quotes in the output, so you can identify its beginning and end very specifically. The outer quotes from the command-line itself are automatically stripped and not included as part of the actual parameter. The escaped double quote no longer appears escaped, because the \ is stripped. The double quote is now simply part of the parameter.&lt;br /&gt;
&lt;br /&gt;
Some commands, such as [https://www.lavishsoft.com/wiki/index.php/Command:Echo Echo], automatically concatenate parameters together. Try the following commands, and note the differences in output:&lt;br /&gt;
 echo One Two Three&lt;br /&gt;
 echo One  Two  Three&lt;br /&gt;
 echo &amp;quot;One  Two  Three&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Here&amp;#039;s the output for you:&lt;br /&gt;
 One Two Three&lt;br /&gt;
 One Two Three&lt;br /&gt;
 One  Two  Three&lt;br /&gt;
&lt;br /&gt;
I suspect that you guessed the output of the first and last lines, but perhaps were not sure of the middle line. In the middle line, three parameters are passed to Echo, and each are separated by &amp;quot;one or more spaces&amp;quot; as detailed above.&lt;br /&gt;
&lt;br /&gt;
The last thing you will need to know about LavishScript commands is that a semi-colon can be used as a command splitter:&lt;br /&gt;
 echo Line one;echo Line two&lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
 Line one&lt;br /&gt;
 Line two&lt;br /&gt;
&lt;br /&gt;
=== What Commands are available? ===&lt;br /&gt;
Depending on the context, such as whether you&amp;#039;re using a Console in the Inner Space main program or in a game window, different commands may be available. You can always enter &amp;quot;commands&amp;quot; in the Console for a list of currently available commands.&lt;br /&gt;
&lt;br /&gt;
; Here&amp;#039;s the most common sources of LavishScript commands&lt;br /&gt;
* [https://www.lavishsoft.com/wiki/index.php/LavishScript:Commands LavishScript Commands]&lt;br /&gt;
* [http://www.lavishsoft.com/wiki/index.php/IS:Uplink#Uplink_Specific_Commands Inner Space Uplink Commands] (main program)&lt;br /&gt;
* [http://www.lavishsoft.com/wiki/index.php/IS:Session#Session_Specific_Commands Inner Space Session Commands] (launched game client)&lt;br /&gt;
* [http://www.lavishsoft.com/wiki/index.php/ISKernel:Commands Inner Space Kernel Commands] (common between both Uplink and Session)&lt;br /&gt;
&lt;br /&gt;
== Data Sequences ==&lt;br /&gt;
LavishScript provides a mechanism called Data Sequences to pull data from an object, and emplace it into the command-line. A Data Sequence looks like &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;${This}&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039;. It begins with &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;${&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; and ends with &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;}&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039;. Between the start and end markers is a sequence of object accesses, in this case just accessing an object called &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;This&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039;. The resulting value from the Data Sequence replaces it, in place, in the command-line.&lt;br /&gt;
&lt;br /&gt;
; Data Sequences have a few supported operations:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Member&amp;#039;&amp;#039;&amp;#039;: A &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;.&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; specifies a Member access, like &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;${This.Name}&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; would access &amp;lt;tt&amp;gt;Name&amp;lt;/tt&amp;gt; from &amp;lt;tt&amp;gt;This&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Method&amp;#039;&amp;#039;&amp;#039;: A &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;:&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; specifies a Method call, like &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;${This:Clear}&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; would call &amp;lt;tt&amp;gt;Clear&amp;lt;/tt&amp;gt; on &amp;lt;tt&amp;gt;This&amp;lt;/tt&amp;gt;. In contrast to Member accesses, Method calls do not result in a new object. This means &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;${This:Clear:ChainsWork}&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; calls &amp;lt;tt&amp;gt;Clear&amp;lt;/tt&amp;gt; and then &amp;lt;tt&amp;gt;ChainsWork&amp;lt;/tt&amp;gt; on &amp;lt;tt&amp;gt;This&amp;lt;/tt&amp;gt;! And the resulting value (to be placed in the command-line) is the value of &amp;lt;tt&amp;gt;This&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Index&amp;#039;&amp;#039;&amp;#039;: Brackets &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;[&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;]&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; specify the start and end of an Index, which is essentially a comma-separated list of parameters. Top-Level Objects, Members and Methods support this syntax. &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;${This[12]}&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; would pass a parameter &amp;quot;12&amp;quot; to the Top-Level Object &amp;lt;tt&amp;gt;This&amp;lt;/tt&amp;gt;, and &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;${This.Item[12]}&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; would pass a parameter &amp;quot;12&amp;quot; to the &amp;lt;tt&amp;gt;Item&amp;lt;/tt&amp;gt; Member of &amp;lt;tt&amp;gt;This&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Type Cast&amp;#039;&amp;#039;&amp;#039;: Parentheses &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;(&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;)&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; specify the start and end of a Type Cast. This causes LavishScript to interpret an object as a different type of object, and should be used with care: types that are not compatible with each other will cause crashes. &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;${This.ItemCount(bool)}&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; is a silly example, but would treat the value of &amp;lt;tt&amp;gt;${This.ItemCount}&amp;lt;/tt&amp;gt; as a &amp;lt;tt&amp;gt;[[lavish:ObjectType:bool|bool]]&amp;lt;/tt&amp;gt; for output, producing TRUE or FALSE.&lt;br /&gt;
&lt;br /&gt;
; Data Sequences have some useful properties.&lt;br /&gt;
* The sequence is terminated, and produces a result of &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;NULL&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; if a requested object does not exist, OR if a Method call indicates that it failed. &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;${This.Name}&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; will be NULL if &amp;lt;tt&amp;gt;This&amp;lt;/tt&amp;gt; does not exist, or if the &amp;lt;tt&amp;gt;Name&amp;lt;/tt&amp;gt; Member does not exist.&lt;br /&gt;
* Because of the above, LavishScript has a type of object called &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;exists&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039;, which only produces a value of TRUE. To determine if a Method call succeeded or failed, or if a Member exists, use a Type Cast to &amp;lt;tt&amp;gt;exists&amp;lt;/tt&amp;gt;, like &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;${This:Clear(exists)}&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; -- the result will be NULL for failure, or TRUE for success. Likewise, &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;${This.Name(exists)}&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; will indicate NULL or TRUE to specify whether &amp;lt;tt&amp;gt;This.Name&amp;lt;/tt&amp;gt; produced a value.&lt;br /&gt;
&lt;br /&gt;
=== Try it out ===&lt;br /&gt;
; Enter the following command in the Inner Space console:&lt;br /&gt;
 echo ${InnerSpace.Build}&lt;br /&gt;
&lt;br /&gt;
The output will be your current Inner Space build number. :)&lt;br /&gt;
&lt;br /&gt;
; Now let&amp;#039;s try a Method. Enter the following command in the Inner Space console:&lt;br /&gt;
 echo ${System:SetClipboardText[Hello World!]}&lt;br /&gt;
&lt;br /&gt;
This time, because we&amp;#039;re using a Method, the output here is the value of System. That will be your Windows OS version, in my case it output &amp;#039;&amp;#039;&amp;#039;Windows 10 Pro&amp;#039;&amp;#039;&amp;#039;. But look, we used a Method called SetClipboardText. Press CTRL+V or use the Paste function somewhere, and see that it pastes &amp;quot;Hello World!&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Method-as-Command ===&lt;br /&gt;
In the last example, we called a Method as part of an Echo command. It probably occurs to you that if what you&amp;#039;re looking to do is set the text on the clipboard, you probably don&amp;#039;t need to echo the version of Windows at the time. LavishScript will allow you to use a Method call Data Sequence as your command itself, by &amp;#039;&amp;#039;not using&amp;#039;&amp;#039; the &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;${}&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; -- which is the code for in-place text replacement.&lt;br /&gt;
&lt;br /&gt;
; So let&amp;#039;s try this another time. Enter the following command in the Inner Space console:&lt;br /&gt;
 System:SetClipboardText[Hello World Paste 2.0!]&lt;br /&gt;
&lt;br /&gt;
This time, no output is produced, and you can press Ctrl+V (or click Paste where available) to paste &amp;quot;Hello World Paste 2.0!&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Scripts ==&lt;br /&gt;
Work in progress.&lt;br /&gt;
&lt;br /&gt;
{{Module Development}}&lt;/div&gt;</summary>
		<author><name>Lax</name></author>	</entry>

	<entry>
		<id>https://isboxer2.com/w/index.php?title=Develop:LavishScript:Getting_Started&amp;diff=106</id>
		<title>Develop:LavishScript:Getting Started</title>
		<link rel="alternate" type="text/html" href="https://isboxer2.com/w/index.php?title=Develop:LavishScript:Getting_Started&amp;diff=106"/>
				<updated>2019-08-18T16:25:16Z</updated>
		
		<summary type="html">&lt;p&gt;Lax: /* Method-as-Command */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This tutorial will help bring you up to speed with LavishScript development.&lt;br /&gt;
&lt;br /&gt;
So, by now you&amp;#039;ve read [[Develop:LavishScript]] and would like to get your feet wet and hands dirty. Let&amp;#039;s go then. :)&lt;br /&gt;
&lt;br /&gt;
== Consoles ==&lt;br /&gt;
An [[Inner Space]] Console window is your first, and most handy, point of entry to LavishScript. There is a Console in the main Inner Space program (called the Uplink) available through its right-click menu, or in-game available via hotkey. LavishScript Commands can be manually entered into the Console.&lt;br /&gt;
&lt;br /&gt;
Open the Console in the main Inner Space program now. Type something in it, and press enter to see what happens. If what you&amp;#039;ve entered is not recognized as a command, the result is something like this:&lt;br /&gt;
 Unknown command &amp;#039;something&amp;#039;&lt;br /&gt;
&lt;br /&gt;
This time, type in &amp;quot;&amp;lt;tt&amp;gt;echo Hi&amp;lt;/tt&amp;gt;&amp;quot; and press enter. Now, you see the result&lt;br /&gt;
 Hi&lt;br /&gt;
&lt;br /&gt;
Isn&amp;#039;t that great? That is how a LavishScript console operates. By now, you should be feeling like an expert on the use of a LavishScript Console! ... If only you knew what to do with it. Let&amp;#039;s move on.&lt;br /&gt;
&lt;br /&gt;
== Commands ==&lt;br /&gt;
Now that you know where to enter commands, it would really be helpful for you to know how to properly form commands, and what commands are actually available.&lt;br /&gt;
&lt;br /&gt;
LavishScript commands have a fairly simple syntax. The first word is the command name, and any parameters can come after the command name, each separated by one or more spaces. If a parameter is to contain a space, it should be quoted using double quotes &amp;lt;tt&amp;gt;&amp;quot;like this&amp;quot;&amp;lt;/tt&amp;gt;. And if a parameter is to contain a double quote, it should be escaped using a \ as is generally standard.&lt;br /&gt;
&lt;br /&gt;
To help you understand how a command and its parameters are processed, LavishScript provides a &amp;quot;test&amp;quot; command which specifies each portion of the command entered. &lt;br /&gt;
&lt;br /&gt;
Enter the following command into a Console:&lt;br /&gt;
 test &amp;quot;like \&amp;quot; this&amp;quot;&lt;br /&gt;
&lt;br /&gt;
And here&amp;#039;s the output for this command:&lt;br /&gt;
 Console Command Tester&lt;br /&gt;
 Arguments: 2&lt;br /&gt;
 Argument 0: &amp;#039;Test&amp;#039;&lt;br /&gt;
 Argument 1: &amp;#039;like &amp;quot; this&amp;#039;&lt;br /&gt;
&lt;br /&gt;
So as you can see this is represented as a series of &amp;quot;Arguments&amp;quot;, with 0 being the name of the command, and 1 being the first parameter. Each piece is surrounded by single quotes in the output, so you can identify its beginning and end very specifically. The outer quotes from the command-line itself are automatically stripped and not included as part of the actual parameter. The escaped double quote no longer appears escaped, because the \ is stripped. The double quote is now simply part of the parameter.&lt;br /&gt;
&lt;br /&gt;
Some commands, such as [https://www.lavishsoft.com/wiki/index.php/Command:Echo Echo], automatically concatenate parameters together. Try the following commands, and note the differences in output:&lt;br /&gt;
 echo One Two Three&lt;br /&gt;
 echo One  Two  Three&lt;br /&gt;
 echo &amp;quot;One  Two  Three&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Here&amp;#039;s the output for you:&lt;br /&gt;
 One Two Three&lt;br /&gt;
 One Two Three&lt;br /&gt;
 One  Two  Three&lt;br /&gt;
&lt;br /&gt;
I suspect that you guessed the output of the first and last lines, but perhaps were not sure of the middle line. In the middle line, three parameters are passed to Echo, and each are separated by &amp;quot;one or more spaces&amp;quot; as detailed above.&lt;br /&gt;
&lt;br /&gt;
The last thing you will need to know about LavishScript commands is that a semi-colon can be used as a command splitter:&lt;br /&gt;
 echo Line one;echo Line two&lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
 Line one&lt;br /&gt;
 Line two&lt;br /&gt;
&lt;br /&gt;
=== What Commands are available? ===&lt;br /&gt;
Depending on the context, such as whether you&amp;#039;re using a Console in the Inner Space main program or in a game window, different commands may be available. You can always enter &amp;quot;commands&amp;quot; in the Console for a list of currently available commands.&lt;br /&gt;
&lt;br /&gt;
; Here&amp;#039;s the most common sources of LavishScript commands&lt;br /&gt;
* [https://www.lavishsoft.com/wiki/index.php/LavishScript:Commands LavishScript Commands]&lt;br /&gt;
* [http://www.lavishsoft.com/wiki/index.php/IS:Uplink#Uplink_Specific_Commands Inner Space Uplink Commands] (main program)&lt;br /&gt;
* [http://www.lavishsoft.com/wiki/index.php/IS:Session#Session_Specific_Commands Inner Space Session Commands] (launched game client)&lt;br /&gt;
* [http://www.lavishsoft.com/wiki/index.php/ISKernel:Commands Inner Space Kernel Commands] (common between both Uplink and Session)&lt;br /&gt;
&lt;br /&gt;
== Data Sequences ==&lt;br /&gt;
LavishScript provides a mechanism called Data Sequences to pull data from an object, and emplace it into the command-line. A Data Sequence looks like &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;${This}&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039;. It begins with &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;${&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; and ends with &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;}&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039;. Between the start and end markers is a sequence of object accesses, in this case just accessing an object called &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;This&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039;. The resulting value from the Data Sequence replaces it, in place, in the command-line.&lt;br /&gt;
&lt;br /&gt;
; Data Sequences have a few supported operations:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Member&amp;#039;&amp;#039;&amp;#039;: A &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;.&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; specifies a Member access, like &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;${This.Name}&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; would access &amp;lt;tt&amp;gt;Name&amp;lt;/tt&amp;gt; from &amp;lt;tt&amp;gt;This&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Method&amp;#039;&amp;#039;&amp;#039;: A &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;:&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; specifies a Method call, like &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;${This:Clear}&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; would call &amp;lt;tt&amp;gt;Clear&amp;lt;/tt&amp;gt; on &amp;lt;tt&amp;gt;This&amp;lt;/tt&amp;gt;. In contrast to Member accesses, Method calls do not result in a new object. This means &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;${This:Clear:ChainsWork}&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; calls &amp;lt;tt&amp;gt;Clear&amp;lt;/tt&amp;gt; and then &amp;lt;tt&amp;gt;ChainsWork&amp;lt;/tt&amp;gt; on &amp;lt;tt&amp;gt;This&amp;lt;/tt&amp;gt;! And the resulting value (to be placed in the command-line) is the value of &amp;lt;tt&amp;gt;This&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Index&amp;#039;&amp;#039;&amp;#039;: Brackets &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;[&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;]&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; specify the start and end of an Index, which is essentially a comma-separated list of parameters. Top-Level Objects, Members and Methods support this syntax. &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;${This[12]}&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; would pass a parameter &amp;quot;12&amp;quot; to the Top-Level Object &amp;lt;tt&amp;gt;This&amp;lt;/tt&amp;gt;, and &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;${This.Item[12]}&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; would pass a parameter &amp;quot;12&amp;quot; to the &amp;lt;tt&amp;gt;Item&amp;lt;/tt&amp;gt; Member of &amp;lt;tt&amp;gt;This&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Type Cast&amp;#039;&amp;#039;&amp;#039;: Parentheses &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;(&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;)&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; specify the start and end of a Type Cast. This causes LavishScript to interpret an object as a different type of object, and should be used with care: types that are not compatible with each other will cause crashes. &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;${This.ItemCount(bool)}&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; is a silly example, but would treat the value of &amp;lt;tt&amp;gt;${This.ItemCount}&amp;lt;/tt&amp;gt; as a &amp;lt;tt&amp;gt;bool&amp;lt;/tt&amp;gt; for output, producing TRUE or FALSE.&lt;br /&gt;
&lt;br /&gt;
; Data Sequences have some useful properties.&lt;br /&gt;
* The sequence is terminated, and produces a result of &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;NULL&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; if a requested object does not exist, OR if a Method call indicates that it failed. &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;${This.Name}&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; will be NULL if &amp;lt;tt&amp;gt;This&amp;lt;/tt&amp;gt; does not exist, or if the &amp;lt;tt&amp;gt;Name&amp;lt;/tt&amp;gt; Member does not exist.&lt;br /&gt;
* Because of the above, LavishScript has a type of object called &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;exists&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039;, which only produces a value of TRUE. To determine if a Method call succeeded or failed, or if a Member exists, use a Type Cast to &amp;lt;tt&amp;gt;exists&amp;lt;/tt&amp;gt;, like &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;${This:Clear(exists)}&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; -- the result will be NULL for failure, or TRUE for success. Likewise, &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;${This.Name(exists)}&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; will indicate NULL or TRUE to specify whether &amp;lt;tt&amp;gt;This.Name&amp;lt;/tt&amp;gt; produced a value.&lt;br /&gt;
&lt;br /&gt;
=== Try it out ===&lt;br /&gt;
; Enter the following command in the Inner Space console:&lt;br /&gt;
 echo ${InnerSpace.Build}&lt;br /&gt;
&lt;br /&gt;
The output will be your current Inner Space build number. :)&lt;br /&gt;
&lt;br /&gt;
; Now let&amp;#039;s try a Method. Enter the following command in the Inner Space console:&lt;br /&gt;
 echo ${System:SetClipboardText[Hello World!]}&lt;br /&gt;
&lt;br /&gt;
This time, because we&amp;#039;re using a Method, the output here is the value of System. That will be your Windows OS version, in my case it output &amp;#039;&amp;#039;&amp;#039;Windows 10 Pro&amp;#039;&amp;#039;&amp;#039;. But look, we used a Method called SetClipboardText. Press CTRL+V or use the Paste function somewhere, and see that it pastes &amp;quot;Hello World!&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Method-as-Command ===&lt;br /&gt;
In the last example, we called a Method as part of an Echo command. It probably occurs to you that if what you&amp;#039;re looking to do is set the text on the clipboard, you probably don&amp;#039;t need to echo the version of Windows at the time. LavishScript will allow you to use a Method call Data Sequence as your command itself, by &amp;#039;&amp;#039;not using&amp;#039;&amp;#039; the &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;${}&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; -- which is the code for in-place text replacement.&lt;br /&gt;
&lt;br /&gt;
; So let&amp;#039;s try this another time. Enter the following command in the Inner Space console:&lt;br /&gt;
 System:SetClipboardText[Hello World Paste 2.0!]&lt;br /&gt;
&lt;br /&gt;
This time, no output is produced, and you can press Ctrl+V (or click Paste where available) to paste &amp;quot;Hello World Paste 2.0!&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Scripts ==&lt;br /&gt;
Work in progress.&lt;br /&gt;
&lt;br /&gt;
{{Module Development}}&lt;/div&gt;</summary>
		<author><name>Lax</name></author>	</entry>

	<entry>
		<id>https://isboxer2.com/w/index.php?title=Develop:LavishScript:Getting_Started&amp;diff=105</id>
		<title>Develop:LavishScript:Getting Started</title>
		<link rel="alternate" type="text/html" href="https://isboxer2.com/w/index.php?title=Develop:LavishScript:Getting_Started&amp;diff=105"/>
				<updated>2019-08-18T16:24:18Z</updated>
		
		<summary type="html">&lt;p&gt;Lax: /* Objects and Data Sequences */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This tutorial will help bring you up to speed with LavishScript development.&lt;br /&gt;
&lt;br /&gt;
So, by now you&amp;#039;ve read [[Develop:LavishScript]] and would like to get your feet wet and hands dirty. Let&amp;#039;s go then. :)&lt;br /&gt;
&lt;br /&gt;
== Consoles ==&lt;br /&gt;
An [[Inner Space]] Console window is your first, and most handy, point of entry to LavishScript. There is a Console in the main Inner Space program (called the Uplink) available through its right-click menu, or in-game available via hotkey. LavishScript Commands can be manually entered into the Console.&lt;br /&gt;
&lt;br /&gt;
Open the Console in the main Inner Space program now. Type something in it, and press enter to see what happens. If what you&amp;#039;ve entered is not recognized as a command, the result is something like this:&lt;br /&gt;
 Unknown command &amp;#039;something&amp;#039;&lt;br /&gt;
&lt;br /&gt;
This time, type in &amp;quot;&amp;lt;tt&amp;gt;echo Hi&amp;lt;/tt&amp;gt;&amp;quot; and press enter. Now, you see the result&lt;br /&gt;
 Hi&lt;br /&gt;
&lt;br /&gt;
Isn&amp;#039;t that great? That is how a LavishScript console operates. By now, you should be feeling like an expert on the use of a LavishScript Console! ... If only you knew what to do with it. Let&amp;#039;s move on.&lt;br /&gt;
&lt;br /&gt;
== Commands ==&lt;br /&gt;
Now that you know where to enter commands, it would really be helpful for you to know how to properly form commands, and what commands are actually available.&lt;br /&gt;
&lt;br /&gt;
LavishScript commands have a fairly simple syntax. The first word is the command name, and any parameters can come after the command name, each separated by one or more spaces. If a parameter is to contain a space, it should be quoted using double quotes &amp;lt;tt&amp;gt;&amp;quot;like this&amp;quot;&amp;lt;/tt&amp;gt;. And if a parameter is to contain a double quote, it should be escaped using a \ as is generally standard.&lt;br /&gt;
&lt;br /&gt;
To help you understand how a command and its parameters are processed, LavishScript provides a &amp;quot;test&amp;quot; command which specifies each portion of the command entered. &lt;br /&gt;
&lt;br /&gt;
Enter the following command into a Console:&lt;br /&gt;
 test &amp;quot;like \&amp;quot; this&amp;quot;&lt;br /&gt;
&lt;br /&gt;
And here&amp;#039;s the output for this command:&lt;br /&gt;
 Console Command Tester&lt;br /&gt;
 Arguments: 2&lt;br /&gt;
 Argument 0: &amp;#039;Test&amp;#039;&lt;br /&gt;
 Argument 1: &amp;#039;like &amp;quot; this&amp;#039;&lt;br /&gt;
&lt;br /&gt;
So as you can see this is represented as a series of &amp;quot;Arguments&amp;quot;, with 0 being the name of the command, and 1 being the first parameter. Each piece is surrounded by single quotes in the output, so you can identify its beginning and end very specifically. The outer quotes from the command-line itself are automatically stripped and not included as part of the actual parameter. The escaped double quote no longer appears escaped, because the \ is stripped. The double quote is now simply part of the parameter.&lt;br /&gt;
&lt;br /&gt;
Some commands, such as [https://www.lavishsoft.com/wiki/index.php/Command:Echo Echo], automatically concatenate parameters together. Try the following commands, and note the differences in output:&lt;br /&gt;
 echo One Two Three&lt;br /&gt;
 echo One  Two  Three&lt;br /&gt;
 echo &amp;quot;One  Two  Three&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Here&amp;#039;s the output for you:&lt;br /&gt;
 One Two Three&lt;br /&gt;
 One Two Three&lt;br /&gt;
 One  Two  Three&lt;br /&gt;
&lt;br /&gt;
I suspect that you guessed the output of the first and last lines, but perhaps were not sure of the middle line. In the middle line, three parameters are passed to Echo, and each are separated by &amp;quot;one or more spaces&amp;quot; as detailed above.&lt;br /&gt;
&lt;br /&gt;
The last thing you will need to know about LavishScript commands is that a semi-colon can be used as a command splitter:&lt;br /&gt;
 echo Line one;echo Line two&lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
 Line one&lt;br /&gt;
 Line two&lt;br /&gt;
&lt;br /&gt;
=== What Commands are available? ===&lt;br /&gt;
Depending on the context, such as whether you&amp;#039;re using a Console in the Inner Space main program or in a game window, different commands may be available. You can always enter &amp;quot;commands&amp;quot; in the Console for a list of currently available commands.&lt;br /&gt;
&lt;br /&gt;
; Here&amp;#039;s the most common sources of LavishScript commands&lt;br /&gt;
* [https://www.lavishsoft.com/wiki/index.php/LavishScript:Commands LavishScript Commands]&lt;br /&gt;
* [http://www.lavishsoft.com/wiki/index.php/IS:Uplink#Uplink_Specific_Commands Inner Space Uplink Commands] (main program)&lt;br /&gt;
* [http://www.lavishsoft.com/wiki/index.php/IS:Session#Session_Specific_Commands Inner Space Session Commands] (launched game client)&lt;br /&gt;
* [http://www.lavishsoft.com/wiki/index.php/ISKernel:Commands Inner Space Kernel Commands] (common between both Uplink and Session)&lt;br /&gt;
&lt;br /&gt;
== Data Sequences ==&lt;br /&gt;
LavishScript provides a mechanism called Data Sequences to pull data from an object, and emplace it into the command-line. A Data Sequence looks like &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;${This}&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039;. It begins with &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;${&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; and ends with &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;}&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039;. Between the start and end markers is a sequence of object accesses, in this case just accessing an object called &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;This&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039;. The resulting value from the Data Sequence replaces it, in place, in the command-line.&lt;br /&gt;
&lt;br /&gt;
; Data Sequences have a few supported operations:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Member&amp;#039;&amp;#039;&amp;#039;: A &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;.&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; specifies a Member access, like &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;${This.Name}&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; would access &amp;lt;tt&amp;gt;Name&amp;lt;/tt&amp;gt; from &amp;lt;tt&amp;gt;This&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Method&amp;#039;&amp;#039;&amp;#039;: A &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;:&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; specifies a Method call, like &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;${This:Clear}&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; would call &amp;lt;tt&amp;gt;Clear&amp;lt;/tt&amp;gt; on &amp;lt;tt&amp;gt;This&amp;lt;/tt&amp;gt;. In contrast to Member accesses, Method calls do not result in a new object. This means &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;${This:Clear:ChainsWork}&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; calls &amp;lt;tt&amp;gt;Clear&amp;lt;/tt&amp;gt; and then &amp;lt;tt&amp;gt;ChainsWork&amp;lt;/tt&amp;gt; on &amp;lt;tt&amp;gt;This&amp;lt;/tt&amp;gt;! And the resulting value (to be placed in the command-line) is the value of &amp;lt;tt&amp;gt;This&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Index&amp;#039;&amp;#039;&amp;#039;: Brackets &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;[&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;]&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; specify the start and end of an Index, which is essentially a comma-separated list of parameters. Top-Level Objects, Members and Methods support this syntax. &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;${This[12]}&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; would pass a parameter &amp;quot;12&amp;quot; to the Top-Level Object &amp;lt;tt&amp;gt;This&amp;lt;/tt&amp;gt;, and &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;${This.Item[12]}&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; would pass a parameter &amp;quot;12&amp;quot; to the &amp;lt;tt&amp;gt;Item&amp;lt;/tt&amp;gt; Member of &amp;lt;tt&amp;gt;This&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Type Cast&amp;#039;&amp;#039;&amp;#039;: Parentheses &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;(&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;)&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; specify the start and end of a Type Cast. This causes LavishScript to interpret an object as a different type of object, and should be used with care: types that are not compatible with each other will cause crashes. &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;${This.ItemCount(bool)}&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; is a silly example, but would treat the value of &amp;lt;tt&amp;gt;${This.ItemCount}&amp;lt;/tt&amp;gt; as a &amp;lt;tt&amp;gt;bool&amp;lt;/tt&amp;gt; for output, producing TRUE or FALSE.&lt;br /&gt;
&lt;br /&gt;
; Data Sequences have some useful properties.&lt;br /&gt;
* The sequence is terminated, and produces a result of &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;NULL&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; if a requested object does not exist, OR if a Method call indicates that it failed. &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;${This.Name}&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; will be NULL if &amp;lt;tt&amp;gt;This&amp;lt;/tt&amp;gt; does not exist, or if the &amp;lt;tt&amp;gt;Name&amp;lt;/tt&amp;gt; Member does not exist.&lt;br /&gt;
* Because of the above, LavishScript has a type of object called &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;exists&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039;, which only produces a value of TRUE. To determine if a Method call succeeded or failed, or if a Member exists, use a Type Cast to &amp;lt;tt&amp;gt;exists&amp;lt;/tt&amp;gt;, like &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;${This:Clear(exists)}&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; -- the result will be NULL for failure, or TRUE for success. Likewise, &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;${This.Name(exists)}&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; will indicate NULL or TRUE to specify whether &amp;lt;tt&amp;gt;This.Name&amp;lt;/tt&amp;gt; produced a value.&lt;br /&gt;
&lt;br /&gt;
=== Try it out ===&lt;br /&gt;
; Enter the following command in the Inner Space console:&lt;br /&gt;
 echo ${InnerSpace.Build}&lt;br /&gt;
&lt;br /&gt;
The output will be your current Inner Space build number. :)&lt;br /&gt;
&lt;br /&gt;
; Now let&amp;#039;s try a Method. Enter the following command in the Inner Space console:&lt;br /&gt;
 echo ${System:SetClipboardText[Hello World!]}&lt;br /&gt;
&lt;br /&gt;
This time, because we&amp;#039;re using a Method, the output here is the value of System. That will be your Windows OS version, in my case it output &amp;#039;&amp;#039;&amp;#039;Windows 10 Pro&amp;#039;&amp;#039;&amp;#039;. But look, we used a Method called SetClipboardText. Press CTRL+V or use the Paste function somewhere, and see that it pastes &amp;quot;Hello World!&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Method-as-Command ===&lt;br /&gt;
In the last example, we called a Method as part of an Echo command. It probably occurs to you that if what you&amp;#039;re looking to do is set the text on the clipboard, you probably don&amp;#039;t need to echo the version of Windows at the time. LavishScript will allow you to use a Method call Data Sequence as your command itself, by &amp;#039;&amp;#039;not using&amp;#039;&amp;#039; the &amp;#039;&amp;#039;&amp;#039;&amp;lt;tt&amp;gt;${}&amp;lt;/tt&amp;gt;&amp;#039;&amp;#039;&amp;#039; -- which is the code for in-place text replacement.&lt;br /&gt;
&lt;br /&gt;
; So let&amp;#039;s try this another time. Enter the following command in the Inner Space console:&lt;br /&gt;
 System:SetClipboardText[Hello World Paste 2.0!]&lt;br /&gt;
&lt;br /&gt;
== Scripts ==&lt;br /&gt;
Work in progress.&lt;br /&gt;
&lt;br /&gt;
{{Module Development}}&lt;/div&gt;</summary>
		<author><name>Lax</name></author>	</entry>

	<entry>
		<id>https://isboxer2.com/w/index.php?title=Develop:LavishScript&amp;diff=104</id>
		<title>Develop:LavishScript</title>
		<link rel="alternate" type="text/html" href="https://isboxer2.com/w/index.php?title=Develop:LavishScript&amp;diff=104"/>
				<updated>2019-08-17T16:00:03Z</updated>
		
		<summary type="html">&lt;p&gt;Lax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
LavishScript is the scripting engine built into [[Inner Space]], and is used for in-client features during gameplay. If you have any previous experience with programming, this page should help you get started with the LavishScript required for ISBoxer 2 Module development.&lt;br /&gt;
&lt;br /&gt;
LavishScript is primarily based on a command parser (i.e. those that might be entered into a command prompt), with in-place text replacement of &amp;quot;data sequences&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
; In the following example, the Echo command is used to print &amp;quot;Hello World!&amp;quot; to a LavishScript console.&lt;br /&gt;
&lt;br /&gt;
 function main()&lt;br /&gt;
 {&lt;br /&gt;
   echo &amp;quot;Hello World!&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
LavishScript also includes object-oriented (OO) features. ISBoxer 2 Modules are created using LavishScript object definitions (objectdefs).&lt;br /&gt;
&lt;br /&gt;
; In the following example, a LavishScript object is defined, with a constructor and destructor (Initialize and Shutdown methods), and a template for handling a Task&lt;br /&gt;
 /*&lt;br /&gt;
    Module: My First Module&lt;br /&gt;
    Version: 0.1  &lt;br /&gt;
 &lt;br /&gt;
    This file controls and defines behaviors for the Module! For use in-client.&lt;br /&gt;
 */&lt;br /&gt;
 &lt;br /&gt;
 objectdef isb2_MFM_controller inherits isboxer2module_controller&lt;br /&gt;
 { &lt;br /&gt;
 &lt;br /&gt;
 	method Initialize()&lt;br /&gt;
 	{&lt;br /&gt;
 		; Construct&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	method Shutdown()&lt;br /&gt;
 	{&lt;br /&gt;
 	    ; Destruct&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	method Task_Test()&lt;br /&gt;
 	{&lt;br /&gt;
 		switch ${Context.TaskState}&lt;br /&gt;
 		{&lt;br /&gt;
 		case Start&lt;br /&gt;
 			echo ${Context(type)} ${Context.Timestamp} ${Context.ElapsedMS} ${Context.Task} ${Context.TaskState} instant=${Context.Task.IsInstant} ${Context.Task.Args}&lt;br /&gt;
 			break&lt;br /&gt;
 		case Continue&lt;br /&gt;
 ;  			echo ${Context(type)} ${Context.Timestamp} ${Context.ElapsedMS} ${Context.Task} ${Context.TaskState} instant=${Context.Task.IsInstant} ${Context.Task.Args}&lt;br /&gt;
 			break&lt;br /&gt;
 		case Stop&lt;br /&gt;
 			echo ${Context(type)} ${Context.Timestamp} ${Context.ElapsedMS} ${Context.Task} ${Context.TaskState} instant=${Context.Task.IsInstant} ${Context.Task.Args}&lt;br /&gt;
 			break&lt;br /&gt;
 		}&lt;br /&gt;
 &lt;br /&gt;
 	}&lt;br /&gt;
 } &lt;br /&gt;
&lt;br /&gt;
The above example also contains examples of [[LavishScript:Data Sequences|Data Sequences]], such as &amp;lt;tt&amp;gt;${Context.TaskState}&amp;lt;/tt&amp;gt;. This particular sequence obtains the value of TaskState from an object called Context, placing the result in-place within the command line.&lt;br /&gt;
&lt;br /&gt;
== Tutorials and Guides ==&lt;br /&gt;
* [[Develop:LavishScript:Getting Started|Getting Started with LavishScript]]&lt;br /&gt;
&lt;br /&gt;
More coming soon... :)&lt;br /&gt;
&lt;br /&gt;
== LavishScript References ==&lt;br /&gt;
* [https://www.lavishsoft.com/wiki/index.php/LavishScript LavishScript wiki at lavishsoft.com]&lt;br /&gt;
&lt;br /&gt;
{{Module Development}}&lt;/div&gt;</summary>
		<author><name>Lax</name></author>	</entry>

	<entry>
		<id>https://isboxer2.com/w/index.php?title=Develop:LavishScript:Getting_Started&amp;diff=103</id>
		<title>Develop:LavishScript:Getting Started</title>
		<link rel="alternate" type="text/html" href="https://isboxer2.com/w/index.php?title=Develop:LavishScript:Getting_Started&amp;diff=103"/>
				<updated>2019-08-17T15:59:32Z</updated>
		
		<summary type="html">&lt;p&gt;Lax: Created page with &amp;quot;This tutorial will help bring you up to speed with LavishScript development.  So, by now you&amp;#039;ve read Develop:LavishScript and would like to get your feet wet and hands dir...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This tutorial will help bring you up to speed with LavishScript development.&lt;br /&gt;
&lt;br /&gt;
So, by now you&amp;#039;ve read [[Develop:LavishScript]] and would like to get your feet wet and hands dirty. Let&amp;#039;s go then. :)&lt;br /&gt;
&lt;br /&gt;
== Consoles ==&lt;br /&gt;
An [[Inner Space]] Console window is your first, and most handy, point of entry to LavishScript. There is a Console in the main Inner Space program (called the Uplink) available through its right-click menu, or in-game available via hotkey. LavishScript Commands can be manually entered into the Console.&lt;br /&gt;
&lt;br /&gt;
Open the Console in the main Inner Space program now. Type something in it, and press enter to see what happens. If what you&amp;#039;ve entered is not recognized as a command, the result is something like this:&lt;br /&gt;
 Unknown command &amp;#039;something&amp;#039;&lt;br /&gt;
&lt;br /&gt;
This time, type in &amp;quot;&amp;lt;tt&amp;gt;echo Hi&amp;lt;/tt&amp;gt;&amp;quot; and press enter. Now, you see the result&lt;br /&gt;
 Hi&lt;br /&gt;
&lt;br /&gt;
Isn&amp;#039;t that great? That is how a LavishScript console operates. By now, you should be feeling like an expert on the use of a LavishScript Console! ... If only you knew what to do with it. Let&amp;#039;s move on.&lt;br /&gt;
&lt;br /&gt;
== Commands ==&lt;br /&gt;
Now that you know where to enter commands, it would really be helpful for you to know how to properly form commands, and what commands are actually available.&lt;br /&gt;
&lt;br /&gt;
LavishScript commands have a fairly simple syntax. The first word is the command name, and any parameters can come after the command name, each separated by one or more spaces. If a parameter is to contain a space, it should be quoted using double quotes &amp;lt;tt&amp;gt;&amp;quot;like this&amp;quot;&amp;lt;/tt&amp;gt;. And if a parameter is to contain a double quote, it should be escaped using a \ as is generally standard.&lt;br /&gt;
&lt;br /&gt;
To help you understand how a command and its parameters are processed, LavishScript provides a &amp;quot;test&amp;quot; command which specifies each portion of the command entered. &lt;br /&gt;
&lt;br /&gt;
Enter the following command into a Console:&lt;br /&gt;
 test &amp;quot;like \&amp;quot; this&amp;quot;&lt;br /&gt;
&lt;br /&gt;
And here&amp;#039;s the output for this command:&lt;br /&gt;
 Console Command Tester&lt;br /&gt;
 Arguments: 2&lt;br /&gt;
 Argument 0: &amp;#039;Test&amp;#039;&lt;br /&gt;
 Argument 1: &amp;#039;like &amp;quot; this&amp;#039;&lt;br /&gt;
&lt;br /&gt;
So as you can see this is represented as a series of &amp;quot;Arguments&amp;quot;, with 0 being the name of the command, and 1 being the first parameter. Each piece is surrounded by single quotes in the output, so you can identify its beginning and end very specifically. The outer quotes from the command-line itself are automatically stripped and not included as part of the actual parameter. The escaped double quote no longer appears escaped, because the \ is stripped. The double quote is now simply part of the parameter.&lt;br /&gt;
&lt;br /&gt;
Some commands, such as [https://www.lavishsoft.com/wiki/index.php/Command:Echo Echo], automatically concatenate parameters together. Try the following commands, and note the differences in output:&lt;br /&gt;
 echo One Two Three&lt;br /&gt;
 echo One  Two  Three&lt;br /&gt;
 echo &amp;quot;One  Two  Three&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Here&amp;#039;s the output for you:&lt;br /&gt;
 One Two Three&lt;br /&gt;
 One Two Three&lt;br /&gt;
 One  Two  Three&lt;br /&gt;
&lt;br /&gt;
I suspect that you guessed the output of the first and last lines, but perhaps were not sure of the middle line. In the middle line, three parameters are passed to Echo, and each are separated by &amp;quot;one or more spaces&amp;quot; as detailed above.&lt;br /&gt;
&lt;br /&gt;
The last thing you will need to know about LavishScript commands is that a semi-colon can be used as a command splitter:&lt;br /&gt;
 echo Line one;echo Line two&lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
 Line one&lt;br /&gt;
 Line two&lt;br /&gt;
&lt;br /&gt;
=== What Commands are available? ===&lt;br /&gt;
Depending on the context, such as whether you&amp;#039;re using a Console in the Inner Space main program or in a game window, different commands may be available. You can always enter &amp;quot;commands&amp;quot; in the Console for a list of currently available commands.&lt;br /&gt;
&lt;br /&gt;
; Here&amp;#039;s the most common sources of LavishScript commands&lt;br /&gt;
* [https://www.lavishsoft.com/wiki/index.php/LavishScript:Commands LavishScript Commands]&lt;br /&gt;
* [http://www.lavishsoft.com/wiki/index.php/IS:Uplink#Uplink_Specific_Commands Inner Space Uplink Commands] (main program)&lt;br /&gt;
* [http://www.lavishsoft.com/wiki/index.php/IS:Session#Session_Specific_Commands Inner Space Session Commands] (launched game client)&lt;br /&gt;
* [http://www.lavishsoft.com/wiki/index.php/ISKernel:Commands Inner Space Kernel Commands] (common between both Uplink and Session)&lt;br /&gt;
&lt;br /&gt;
== Objects and Data Sequences ==&lt;br /&gt;
Work in progress.&lt;br /&gt;
&lt;br /&gt;
== Scripts ==&lt;br /&gt;
Work in progress.&lt;br /&gt;
&lt;br /&gt;
{{Module Development}}&lt;/div&gt;</summary>
		<author><name>Lax</name></author>	</entry>

	<entry>
		<id>https://isboxer2.com/w/index.php?title=Template:Module_Development&amp;diff=102</id>
		<title>Template:Module Development</title>
		<link rel="alternate" type="text/html" href="https://isboxer2.com/w/index.php?title=Template:Module_Development&amp;diff=102"/>
				<updated>2019-08-10T15:08:57Z</updated>
		
		<summary type="html">&lt;p&gt;Lax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Section|1=ISBoxer 2 [[Develop:Module|Module Development]]|2=&lt;br /&gt;
* [[Develop:LavishGUI 2|LavishGUI 2]]&lt;br /&gt;
* [[Develop:LavishScript|LavishScript]]&lt;br /&gt;
* [[Develop:Lua|Lua]]&lt;br /&gt;
* [[Develop:JSON|JSON]] - [[Develop:JSON Schema|JSON Schema]]&lt;br /&gt;
* [[Develop:XAML|XAML]]&lt;br /&gt;
* [[Develop:Tasks|Tasks]]&lt;br /&gt;
}}&lt;br /&gt;
[[Category:Module Development]]&lt;/div&gt;</summary>
		<author><name>Lax</name></author>	</entry>

	<entry>
		<id>https://isboxer2.com/w/index.php?title=Main_Page&amp;diff=101</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://isboxer2.com/w/index.php?title=Main_Page&amp;diff=101"/>
				<updated>2019-08-10T15:04:19Z</updated>
		
		<summary type="html">&lt;p&gt;Lax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#evt:&lt;br /&gt;
service=youtube&lt;br /&gt;
|id=https://www.youtube.com/watch?v=_x5M4UR9ZSA&lt;br /&gt;
|alignment=right&lt;br /&gt;
|container=frame&lt;br /&gt;
|description=Getting Started with ISBoxer 2!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;The ISBoxer 2 Wiki is under construction!&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
While we start filling in the various content, this page will pretty much just list different concepts and their pages.&lt;br /&gt;
&lt;br /&gt;
== ISBoxer 2 Alpha ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;ISBoxer 2&amp;#039;s Alpha phase is nearly complete, and we&amp;#039;re preparing to move on to Beta!&amp;#039;&amp;#039;&amp;#039;  Interested in joining? See [http://isboxer.com/wiki/ISBoxer_Beta ISBoxer Beta at the isboxer.com site] for details!&lt;br /&gt;
&lt;br /&gt;
The end of Alpha should mean that ISBoxer 2 is essentially ready for [[Modules]] to provide all of ISBoxer 1&amp;#039;s features -- and so much more! &lt;br /&gt;
&lt;br /&gt;
; Here&amp;#039;s what we expect during the ISBoxer 2 Beta phase:&lt;br /&gt;
* Most new features will come from [[Modules]]&lt;br /&gt;
* Web site work, including documentation/wiki and tutorials&lt;br /&gt;
* Lots of new videos&lt;br /&gt;
** Setup guides showing different games, and even different types of games&lt;br /&gt;
** Many videos will cover [[Module development]], these videos are intended for a developer audience and will be labelled as such. Folks not interested in development will want to avoid those videos. :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The [[ISBoxer 2 Launcher]] ==&lt;br /&gt;
ISBoxer 2 Launcher is the main ISBoxer 2 program, which is used for configuration as well as to launch your ISBoxer 2 [[Teams]].&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;In contrast to ISBoxer 1 usage, the ISBoxer 2 Launcher will stay running while you multibox&amp;#039;&amp;#039;&amp;#039;. This allows the in-game portions of ISBoxer 2 to update your configuration (for example, the [[GUI Profile]] &amp;quot;Push&amp;quot; button), and also allows the ISBoxer 2 Launcher to provide features during gameplay, such as [[Password Management]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tabs ===&lt;br /&gt;
{{Launcher Tabs}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
{{Windows}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
* [[Password Management]]&lt;br /&gt;
* [[Cloud Storage]] and [[Private Data]] (local storage)&lt;br /&gt;
&lt;br /&gt;
== Inner Space Game Windows ==&lt;br /&gt;
ISBoxer 2 provides a slew of features for games supported by Inner Space. The old in-game GUI system used by ISBoxer 1 has been replaced with a more modern, rich and beautiful -- frankly, quite awesome -- GUI system.&lt;br /&gt;
&lt;br /&gt;
* The [[ISBoxer 2 Button]] ([[Module:Core]])&lt;br /&gt;
* [[ISBoxer 2 Settings]]&lt;br /&gt;
** [[GUI Profile]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Non-Inner Space Windows ==&lt;br /&gt;
{{#evt:&lt;br /&gt;
service=youtube&lt;br /&gt;
|id=https://www.youtube.com/watch?v=ivh12S8ZnMw&lt;br /&gt;
|alignment=right&lt;br /&gt;
|container=frame&lt;br /&gt;
|description=Multiboxing Browser Games with ISBoxer 2&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
ISBoxer 2 provides the ability to multibox games -- and even programs that are not games, such as Notepad -- that are not supported by Inner Space!&lt;/div&gt;</summary>
		<author><name>Lax</name></author>	</entry>

	<entry>
		<id>https://isboxer2.com/w/index.php?title=Main_Page&amp;diff=100</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://isboxer2.com/w/index.php?title=Main_Page&amp;diff=100"/>
				<updated>2019-08-10T14:48:48Z</updated>
		
		<summary type="html">&lt;p&gt;Lax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#evt:&lt;br /&gt;
service=youtube&lt;br /&gt;
|id=https://www.youtube.com/watch?v=_x5M4UR9ZSA&lt;br /&gt;
|alignment=right&lt;br /&gt;
|container=frame&lt;br /&gt;
|description=Getting Started with ISBoxer 2!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;The ISBoxer 2 Wiki is under construction!&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
While we start filling in the various content, this page will pretty much just list different concepts and their pages.&lt;br /&gt;
&lt;br /&gt;
== ISBoxer 2 Alpha ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;ISBoxer 2&amp;#039;s Alpha phase is nearly complete, and we&amp;#039;re preparing to move on to Beta!&amp;#039;&amp;#039;&amp;#039;  Interested in joining? See [http://isboxer.com/wiki/ISBoxer_Beta ISBoxer Beta at the isboxer.com site] for details!&lt;br /&gt;
&lt;br /&gt;
The end of Alpha should mean that ISBoxer 2 is essentially ready for [[Modules]] to provide all of ISBoxer 1&amp;#039;s features -- and so much more! &lt;br /&gt;
&lt;br /&gt;
; Here&amp;#039;s what we expect during the ISBoxer 2 Beta phase:&lt;br /&gt;
* Most new features will come from [[Modules]]&lt;br /&gt;
* Web site work, including documentation/wiki and tutorials&lt;br /&gt;
* Lots of new videos&lt;br /&gt;
** Setup guides showing different games, and even different types of games&lt;br /&gt;
** Many videos will cover [[Module development]], these videos are intended for a developer audience and will be labelled as such. Folks not interested in development will want to avoid those videos. :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The [[ISBoxer 2 Launcher]] ==&lt;br /&gt;
ISBoxer 2 Launcher is the main ISBoxer 2 program, which is used for configuration as well as to launch your ISBoxer 2 [[Teams]].&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;In contrast to ISBoxer 1 usage, the ISBoxer 2 Launcher will stay running while you multibox&amp;#039;&amp;#039;&amp;#039;. This allows the in-game portions of ISBoxer 2 to update your configuration (for example, the [[GUI Profile]] &amp;quot;Push&amp;quot; button), and also allows the ISBoxer 2 Launcher to provide features during gameplay, such as [[Password Management]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tabs ===&lt;br /&gt;
{{Launcher Tabs}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
{{Windows}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
* [[Password Management]]&lt;br /&gt;
* [[Cloud Storage]] and [[Private Data]] (local storage)&lt;/div&gt;</summary>
		<author><name>Lax</name></author>	</entry>

	<entry>
		<id>https://isboxer2.com/w/index.php?title=Module_development&amp;diff=99</id>
		<title>Module development</title>
		<link rel="alternate" type="text/html" href="https://isboxer2.com/w/index.php?title=Module_development&amp;diff=99"/>
				<updated>2019-08-10T14:48:32Z</updated>
		
		<summary type="html">&lt;p&gt;Lax: Redirected page to Develop:Module&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Develop:Module]]&lt;/div&gt;</summary>
		<author><name>Lax</name></author>	</entry>

	<entry>
		<id>https://isboxer2.com/w/index.php?title=Main_Page&amp;diff=98</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://isboxer2.com/w/index.php?title=Main_Page&amp;diff=98"/>
				<updated>2019-08-10T14:46:11Z</updated>
		
		<summary type="html">&lt;p&gt;Lax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#evt:&lt;br /&gt;
service=youtube&lt;br /&gt;
|id=https://www.youtube.com/watch?v=_x5M4UR9ZSA&lt;br /&gt;
|alignment=right&lt;br /&gt;
|container=frame&lt;br /&gt;
|description=Getting Started with ISBoxer 2!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;The ISBoxer 2 Wiki is under construction!&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
While we start filling in the various content, this page will pretty much just list different concepts and their pages.&lt;br /&gt;
&lt;br /&gt;
== ISBoxer 2 Alpha ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;ISBoxer 2&amp;#039;s Alpha phase is nearly complete, and we&amp;#039;re preparing to move on to Beta!&amp;#039;&amp;#039;&amp;#039;  Interested in joining? See [http://isboxer.com/wiki/ISBoxer_Beta ISBoxer Beta at the isboxer.com site] for details!&lt;br /&gt;
&lt;br /&gt;
The end of Alpha should mean that ISBoxer 2 is essentially ready for [[Modules]] to provide all of ISBoxer 1&amp;#039;s features -- and so much more! &lt;br /&gt;
&lt;br /&gt;
; Here&amp;#039;s what we expect during the ISBoxer 2 Beta phase:&lt;br /&gt;
* Most new features will come from [[Modules]]&lt;br /&gt;
* Web site work, including documentation/wiki and tutorials&lt;br /&gt;
* Lots of new videos&lt;br /&gt;
** Setup guides showing different games, and even different types of games&lt;br /&gt;
** Many videos will cover Module development, these videos are intended for a developer audience and will be labelled as such. Folks not interested in development will want to avoid those videos. :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The [[ISBoxer 2 Launcher]] ==&lt;br /&gt;
ISBoxer 2 Launcher is the main ISBoxer 2 program, which is used for configuration as well as to launch your ISBoxer 2 [[Teams]].&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;In contrast to ISBoxer 1 usage, the ISBoxer 2 Launcher will stay running while you multibox&amp;#039;&amp;#039;&amp;#039;. This allows the in-game portions of ISBoxer 2 to update your configuration (for example, the [[GUI Profile]] &amp;quot;Push&amp;quot; button), and also allows the ISBoxer 2 Launcher to provide features during gameplay, such as [[Password Management]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tabs ===&lt;br /&gt;
{{Launcher Tabs}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
{{Windows}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
* [[Password Management]]&lt;br /&gt;
* [[Cloud Storage]] and [[Private Data]] (local storage)&lt;/div&gt;</summary>
		<author><name>Lax</name></author>	</entry>

	<entry>
		<id>https://isboxer2.com/w/index.php?title=Develop:Module&amp;diff=97</id>
		<title>Develop:Module</title>
		<link rel="alternate" type="text/html" href="https://isboxer2.com/w/index.php?title=Develop:Module&amp;diff=97"/>
				<updated>2019-08-08T05:20:14Z</updated>
		
		<summary type="html">&lt;p&gt;Lax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#evt:&lt;br /&gt;
service=youtube&lt;br /&gt;
|id=https://youtu.be/xHSkjnFMuPg&lt;br /&gt;
|alignment=right&lt;br /&gt;
|container=frame&lt;br /&gt;
|description=Getting Started with ISBoxer 2 Module development!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Module Creator Window.png|thumb|right|500px|Modules can be created via the [[Module Creator Window]], after enabling Module Developer mode in the [[Preferences tab]]]]&lt;br /&gt;
A [[Module]] is a package of features that can be added on to ISBoxer 2.&lt;br /&gt;
&lt;br /&gt;
Module development may involve the following technologies...&lt;br /&gt;
* [[Develop:LavishGUI 2|LavishGUI 2]]: In-client GUI/overlay&lt;br /&gt;
* [[Develop:LavishScript|LavishScript]]: In-client functionality&lt;br /&gt;
* [[Develop:Lua|Lua]]: [[ISBoxer 2 Launcher]] functionality&lt;br /&gt;
* [[Develop:JSON|JSON]]: A simple data storage format used for configuration&lt;br /&gt;
* [[Develop:JSON Schema|JSON Schema]]: JSON Schema is used to describe what is allowed/expected by any particular JSON, and is used to automagically set up configuration GUI for Modules, Tasks, and more. ISBoxer 2 recognizes JSON Schema, and so will the development environment for working on ISBoxer 2 Modules.&lt;br /&gt;
* [[Develop:XAML|XAML]]: ISBoxer 2 Launcher skinning, layouts, etc&lt;br /&gt;
* [[Develop:Tasks|Tasks]]: A Module may include/provide Task Libraries and Task Types&lt;br /&gt;
&lt;br /&gt;
Lavish Software provides a Visual Studio Code (or &amp;quot;VS Code&amp;quot;) extension to aid in ISBoxer 2 Module development. VS Code is available for free from [https://code.visualstudio.com/download https://code.visualstudio.com/download]&lt;br /&gt;
&lt;br /&gt;
See [http://isboxer.com/forum/viewtopic.php?f=57&amp;amp;t=9670 this forum post] or the video on this page to get started with Module development.&lt;br /&gt;
&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
&lt;br /&gt;
{{Module Development}}&lt;/div&gt;</summary>
		<author><name>Lax</name></author>	</entry>

	<entry>
		<id>https://isboxer2.com/w/index.php?title=Computer&amp;diff=96</id>
		<title>Computer</title>
		<link rel="alternate" type="text/html" href="https://isboxer2.com/w/index.php?title=Computer&amp;diff=96"/>
				<updated>2019-05-28T00:27:08Z</updated>
		
		<summary type="html">&lt;p&gt;Lax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Private data - Computers.png|thumb|right|500px]]&lt;br /&gt;
A Computer in ISBoxer 2 keeps information about attached screens, [[Game Locations]], and network contact information ([[Private Data]]) for use during play. ISBoxer 2 can manage multiple computers, including the ability to launch any [[Team Members]] on any linked Computers.&lt;br /&gt;
&lt;br /&gt;
[[Category:Configuration Items]]&lt;br /&gt;
[[Category:Private Data]]&lt;/div&gt;</summary>
		<author><name>Lax</name></author>	</entry>

	<entry>
		<id>https://isboxer2.com/w/index.php?title=File:Private_data_-_Computers.png&amp;diff=95</id>
		<title>File:Private data - Computers.png</title>
		<link rel="alternate" type="text/html" href="https://isboxer2.com/w/index.php?title=File:Private_data_-_Computers.png&amp;diff=95"/>
				<updated>2019-05-28T00:26:24Z</updated>
		
		<summary type="html">&lt;p&gt;Lax: Computers in the Private data tab&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Computers]] in the [[Private data tab]]&lt;/div&gt;</summary>
		<author><name>Lax</name></author>	</entry>

	<entry>
		<id>https://isboxer2.com/w/index.php?title=Develop:Module&amp;diff=94</id>
		<title>Develop:Module</title>
		<link rel="alternate" type="text/html" href="https://isboxer2.com/w/index.php?title=Develop:Module&amp;diff=94"/>
				<updated>2019-05-28T00:23:03Z</updated>
		
		<summary type="html">&lt;p&gt;Lax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#evt:&lt;br /&gt;
service=youtube&lt;br /&gt;
|id=https://youtu.be/xHSkjnFMuPg&lt;br /&gt;
|alignment=right&lt;br /&gt;
|container=frame&lt;br /&gt;
|description=Getting Started with ISBoxer 2 Module development!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Module Creator Window.png|thumb|right|500px|Modules can be created via the [[Module Creator Window]], after enabling Module Developer mode in the [[Preferences tab]]]]&lt;br /&gt;
A [[Module]] is a package of features that can be added on to ISBoxer 2.&lt;br /&gt;
&lt;br /&gt;
Module development may involve the following technologies...&lt;br /&gt;
* [[Develop:LavishGUI 2|LavishGUI 2]]: In-client GUI/overlay&lt;br /&gt;
* [[Develop:LavishScript|LavishScript]]: In-client functionality&lt;br /&gt;
* [[Develop:Lua|Lua]]: [[ISBoxer 2 Launcher]] functionality&lt;br /&gt;
* [[Develop:JSON|JSON]]: A simple data storage format used for configuration&lt;br /&gt;
* [[Develop:JSON Schema|JSON Schema]]: JSON Schema is used to describe what is allowed/expected by any particular JSON, and is used to automagically set up configuration GUI for Modules, Tasks, and more. ISBoxer 2 recognizes JSON Schema, and so will the development environment for working on ISBoxer 2 Modules.&lt;br /&gt;
* [[Develop:Tasks|Tasks]]: A Module may include/provide Task Libraries and Task Types&lt;br /&gt;
&lt;br /&gt;
Lavish Software provides a Visual Studio Code (or &amp;quot;VS Code&amp;quot;) extension to aid in ISBoxer 2 Module development. VS Code is available for free from [https://code.visualstudio.com/download https://code.visualstudio.com/download]&lt;br /&gt;
&lt;br /&gt;
See [http://isboxer.com/forum/viewtopic.php?f=57&amp;amp;t=9670 this forum post] or the video on this page to get started with Module development.&lt;br /&gt;
&lt;br /&gt;
[[Category:Modules]]&lt;br /&gt;
&lt;br /&gt;
{{Module Development}}&lt;/div&gt;</summary>
		<author><name>Lax</name></author>	</entry>

	<entry>
		<id>https://isboxer2.com/w/index.php?title=Tasks&amp;diff=93</id>
		<title>Tasks</title>
		<link rel="alternate" type="text/html" href="https://isboxer2.com/w/index.php?title=Tasks&amp;diff=93"/>
				<updated>2019-05-28T00:17:42Z</updated>
		
		<summary type="html">&lt;p&gt;Lax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Team - Tasks.png|thumb|right|500px]]&lt;br /&gt;
Tasks are behaviors that can be attached to Hotkeys and other activators in ISBoxer 2. &lt;br /&gt;
&lt;br /&gt;
The ISBoxer 2 Launcher can do certain types of Tasks, and Inner Space can do certain Tasks in-game. New types of Tasks can be provided by [[Modules]] (See [[Develop:Tasks]]); for example, the WoW Party Module provides Tasks to Follow or Assist your Team Members. Tasks provide a way of &amp;quot;programming&amp;quot; ISBoxer 2 without learning to code.&lt;br /&gt;
&lt;br /&gt;
[[File:Live - Tasks.png|thumb|right|500px]]&lt;br /&gt;
Tasks can be placed in Task Libraries to be recalled later by name. Tasks can also be executed on demand via the [[Live tab]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Task Types}}&lt;/div&gt;</summary>
		<author><name>Lax</name></author>	</entry>

	<entry>
		<id>https://isboxer2.com/w/index.php?title=Tab:Launch&amp;diff=92</id>
		<title>Tab:Launch</title>
		<link rel="alternate" type="text/html" href="https://isboxer2.com/w/index.php?title=Tab:Launch&amp;diff=92"/>
				<updated>2019-05-28T00:11:07Z</updated>
		
		<summary type="html">&lt;p&gt;Lax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Launch tab.png|thumb|right|500px]]&lt;br /&gt;
The [[Launch tab]] comes up by default when you start ISBoxer 2, and provides quick access to the most commonly needed tools -- selecting a Team or Team Member, a shortcut to Edit it, and a Launch button. &lt;br /&gt;
&lt;br /&gt;
The Launch tab also includes a browser window, where you can currently access this documentation. We&amp;#039;ll also provide the latest news and updates from the community!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Launcher Tabs}}&lt;/div&gt;</summary>
		<author><name>Lax</name></author>	</entry>

	<entry>
		<id>https://isboxer2.com/w/index.php?title=Launch_tab&amp;diff=91</id>
		<title>Launch tab</title>
		<link rel="alternate" type="text/html" href="https://isboxer2.com/w/index.php?title=Launch_tab&amp;diff=91"/>
				<updated>2019-05-28T00:10:28Z</updated>
		
		<summary type="html">&lt;p&gt;Lax: Redirected page to Tab:Launch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Tab:Launch]]&lt;/div&gt;</summary>
		<author><name>Lax</name></author>	</entry>

	<entry>
		<id>https://isboxer2.com/w/index.php?title=Tab:Launch&amp;diff=90</id>
		<title>Tab:Launch</title>
		<link rel="alternate" type="text/html" href="https://isboxer2.com/w/index.php?title=Tab:Launch&amp;diff=90"/>
				<updated>2019-05-28T00:10:18Z</updated>
		
		<summary type="html">&lt;p&gt;Lax: Created page with &amp;quot;500px The Launch tab comes up by default when you start ISBoxer 2, and provides quick access to the most commonly needed tools -- selec...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Launch tab.png|thumb|right|500px]]&lt;br /&gt;
The [[Launch tab]] comes up by default when you start ISBoxer 2, and provides quick access to the most commonly needed tools -- selecting a Team or Team Member, a shortcut to Edit it, and a Launch button. The Launch tab also includes a browser window, where you can currently access this documentation. We&amp;#039;ll also provide the latest news and updates from the community!&lt;br /&gt;
&lt;br /&gt;
{{Launcher Tabs}}&lt;/div&gt;</summary>
		<author><name>Lax</name></author>	</entry>

	<entry>
		<id>https://isboxer2.com/w/index.php?title=File:Launch_tab.png&amp;diff=89</id>
		<title>File:Launch tab.png</title>
		<link rel="alternate" type="text/html" href="https://isboxer2.com/w/index.php?title=File:Launch_tab.png&amp;diff=89"/>
				<updated>2019-05-27T23:59:42Z</updated>
		
		<summary type="html">&lt;p&gt;Lax: Lax uploaded a new version of File:Launch tab.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[Launch tab]]&lt;/div&gt;</summary>
		<author><name>Lax</name></author>	</entry>

	<entry>
		<id>https://isboxer2.com/w/index.php?title=File:Launch_tab.png&amp;diff=88</id>
		<title>File:Launch tab.png</title>
		<link rel="alternate" type="text/html" href="https://isboxer2.com/w/index.php?title=File:Launch_tab.png&amp;diff=88"/>
				<updated>2019-05-27T23:58:53Z</updated>
		
		<summary type="html">&lt;p&gt;Lax: The Launch tab&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[Launch tab]]&lt;/div&gt;</summary>
		<author><name>Lax</name></author>	</entry>

	<entry>
		<id>https://isboxer2.com/w/index.php?title=File:Preferences.png&amp;diff=87</id>
		<title>File:Preferences.png</title>
		<link rel="alternate" type="text/html" href="https://isboxer2.com/w/index.php?title=File:Preferences.png&amp;diff=87"/>
				<updated>2019-05-27T23:56:46Z</updated>
		
		<summary type="html">&lt;p&gt;Lax: Configuring ISBoxer 2 preferences via the Preferences tab&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Configuring ISBoxer 2 preferences via the [[Preferences tab]]&lt;/div&gt;</summary>
		<author><name>Lax</name></author>	</entry>

	<entry>
		<id>https://isboxer2.com/w/index.php?title=Team&amp;diff=86</id>
		<title>Team</title>
		<link rel="alternate" type="text/html" href="https://isboxer2.com/w/index.php?title=Team&amp;diff=86"/>
				<updated>2019-05-27T23:32:43Z</updated>
		
		<summary type="html">&lt;p&gt;Lax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Team - Team Members.png|thumb|right|500px]]&lt;br /&gt;
&lt;br /&gt;
A [[Team]] in ISBoxer 2 is essentially just a list of [[Team Members]]. Create a Team from the [[Launch Tab]] by clicking the &amp;quot;+&amp;quot; underneath the &amp;quot;Choose your team&amp;quot; drop-down box.&lt;br /&gt;
&lt;br /&gt;
Editing a [[Team]] can by done by clicking the Edit Team tab on the left, also found from the [[Launch Tab]] by clicking the Edit button underneath the &amp;quot;Choose your team&amp;quot; drop-down box.&lt;br /&gt;
&lt;br /&gt;
Various configuration can also be assigned to a Team, including Module options, Hotkeys, Game Key Bindings, and any custom Tasks.&lt;br /&gt;
&lt;br /&gt;
[[Category:Configuration Items]]&lt;/div&gt;</summary>
		<author><name>Lax</name></author>	</entry>

	<entry>
		<id>https://isboxer2.com/w/index.php?title=File:Team_-_Team_Members.png&amp;diff=85</id>
		<title>File:Team - Team Members.png</title>
		<link rel="alternate" type="text/html" href="https://isboxer2.com/w/index.php?title=File:Team_-_Team_Members.png&amp;diff=85"/>
				<updated>2019-05-27T23:32:13Z</updated>
		
		<summary type="html">&lt;p&gt;Lax: Team Members assigned to a Team&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Team Members]] assigned to a [[Team]]&lt;/div&gt;</summary>
		<author><name>Lax</name></author>	</entry>

	<entry>
		<id>https://isboxer2.com/w/index.php?title=Develop:Modules&amp;diff=84</id>
		<title>Develop:Modules</title>
		<link rel="alternate" type="text/html" href="https://isboxer2.com/w/index.php?title=Develop:Modules&amp;diff=84"/>
				<updated>2019-05-27T23:30:28Z</updated>
		
		<summary type="html">&lt;p&gt;Lax: Redirected page to Develop:Module&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Develop:Module]]&lt;/div&gt;</summary>
		<author><name>Lax</name></author>	</entry>

	<entry>
		<id>https://isboxer2.com/w/index.php?title=Tasks&amp;diff=83</id>
		<title>Tasks</title>
		<link rel="alternate" type="text/html" href="https://isboxer2.com/w/index.php?title=Tasks&amp;diff=83"/>
				<updated>2019-05-27T23:29:16Z</updated>
		
		<summary type="html">&lt;p&gt;Lax: Created page with &amp;quot;500px Tasks are behaviors that can be attached to Hotkeys and other activators in ISBoxer 2.   The ISBoxer 2 Launcher can do certain type...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Team - Tasks.png|thumb|right|500px]]&lt;br /&gt;
Tasks are behaviors that can be attached to Hotkeys and other activators in ISBoxer 2. &lt;br /&gt;
&lt;br /&gt;
The ISBoxer 2 Launcher can do certain types of Tasks, and Inner Space can do certain Tasks in-game. New types of Tasks can be provided by [[Modules]] (See [[Develop:Tasks]]); for example, the WoW Party Module provides Tasks to Follow or Assist your Team Members.&lt;br /&gt;
&lt;br /&gt;
[[File:Live - Tasks.png|thumb|right|500px]]&lt;br /&gt;
Tasks can be placed in Task Libraries to be recalled later by name. Tasks can also be executed on demand via the [[Live tab]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Task Types}}&lt;/div&gt;</summary>
		<author><name>Lax</name></author>	</entry>

	<entry>
		<id>https://isboxer2.com/w/index.php?title=File:Live_-_Tasks.png&amp;diff=82</id>
		<title>File:Live - Tasks.png</title>
		<link rel="alternate" type="text/html" href="https://isboxer2.com/w/index.php?title=File:Live_-_Tasks.png&amp;diff=82"/>
				<updated>2019-05-27T23:28:55Z</updated>
		
		<summary type="html">&lt;p&gt;Lax: Tasks can be executed via the Live tab, under Tasks&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Tasks]] can be executed via the [[Live tab]], under Tasks&lt;/div&gt;</summary>
		<author><name>Lax</name></author>	</entry>

	<entry>
		<id>https://isboxer2.com/w/index.php?title=Template:Task_Types&amp;diff=81</id>
		<title>Template:Task Types</title>
		<link rel="alternate" type="text/html" href="https://isboxer2.com/w/index.php?title=Template:Task_Types&amp;diff=81"/>
				<updated>2019-05-27T23:25:27Z</updated>
		
		<summary type="html">&lt;p&gt;Lax: Created page with &amp;quot;{{Section|1=ISBoxer 2 Task Types|2= ; ISBoxer 2 Launcher * Task:isboxer2launcher.AddClientHotkey| * Task:isboxer2launcher.SetZoomLevel| * Task:isboxer2launcher.D...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Section|1=ISBoxer 2 [[Task Types]]|2=&lt;br /&gt;
; ISBoxer 2 Launcher&lt;br /&gt;
* [[Task:isboxer2launcher.AddClientHotkey|isboxer2launcher.AddClientHotkey]]&lt;br /&gt;
* [[Task:isboxer2launcher.SetZoomLevel|isboxer2launcher.SetZoomLevel]]&lt;br /&gt;
* [[Task:isboxer2launcher.DebugTrace|isboxer2launcher.DebugTrace]]&lt;br /&gt;
* [[Task:isboxer2launcher.AddProcessDetection|isboxer2launcher.AddProcessDetection]]&lt;br /&gt;
* [[Task:isboxer2launcher.Launch|isboxer2launcher.Launch]]&lt;br /&gt;
* [[Task:isboxer2launcher.RegisterVFXSource|isboxer2launcher.RegisterVFXSource]]&lt;br /&gt;
&lt;br /&gt;
; Client&lt;br /&gt;
* [[Task:isboxer2.GameKeyBinding|isboxer2.GameKeyBinding]]&lt;br /&gt;
* [[Task:isboxer2.Keystroke|isboxer2.Keystroke]]&lt;br /&gt;
* [[Task:isboxer2.MasterHotkeyToggle|isboxer2.MasterHotkeyToggle]]&lt;br /&gt;
* [[Task:isboxer2.AddNotification|isboxer2.AddNotification]]&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Lax</name></author>	</entry>

	<entry>
		<id>https://isboxer2.com/w/index.php?title=Team_tab&amp;diff=80</id>
		<title>Team tab</title>
		<link rel="alternate" type="text/html" href="https://isboxer2.com/w/index.php?title=Team_tab&amp;diff=80"/>
				<updated>2019-05-27T23:16:49Z</updated>
		
		<summary type="html">&lt;p&gt;Lax: Redirected page to Tab:Edit Team&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Tab:Edit Team]]&lt;/div&gt;</summary>
		<author><name>Lax</name></author>	</entry>

	<entry>
		<id>https://isboxer2.com/w/index.php?title=File:Team_-_Tasks.png&amp;diff=79</id>
		<title>File:Team - Tasks.png</title>
		<link rel="alternate" type="text/html" href="https://isboxer2.com/w/index.php?title=File:Team_-_Tasks.png&amp;diff=79"/>
				<updated>2019-05-27T23:16:22Z</updated>
		
		<summary type="html">&lt;p&gt;Lax: Editing Tasks in the Team tab&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Editing [[Tasks]] in the [[Team tab]]&lt;/div&gt;</summary>
		<author><name>Lax</name></author>	</entry>

	<entry>
		<id>https://isboxer2.com/w/index.php?title=Hotkeys&amp;diff=78</id>
		<title>Hotkeys</title>
		<link rel="alternate" type="text/html" href="https://isboxer2.com/w/index.php?title=Hotkeys&amp;diff=78"/>
				<updated>2019-05-27T20:47:15Z</updated>
		
		<summary type="html">&lt;p&gt;Lax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Edit Team - Hotkeys.png|thumb|right|500px]]&lt;br /&gt;
&lt;br /&gt;
ISBoxer 2 [[Hotkeys]] are those configured in ISBoxer 2 to do ISBoxer 2 things, like have all of your characters press a button. This is in contrast to [[Game Key Bindings]], which are those configured in-game to do in-game things -- for example, in MMORPGs, 1 through = are typically configured to do Action Bar buttons (hotbar buttons, or whatever else your game calls them).&lt;br /&gt;
&lt;br /&gt;
A Hotkey maps an input binding to a [[Task]], which defines something to do. This mapping is usually handled by a [[Module]], but can also be done by manually configuring Tasks in the [[Edit Team tab]]. See [[Develop:Hotkeys]] for details.&lt;br /&gt;
&lt;br /&gt;
Hotkeys can be configured in the [[Edit Team tab]] under Hotkeys. ISBoxer 2 Hotkeys include support for key chords (any keys together to form a combination), and advanced options for different types of input controls (d-pad, trigger, etc).&lt;/div&gt;</summary>
		<author><name>Lax</name></author>	</entry>

	<entry>
		<id>https://isboxer2.com/w/index.php?title=Hotkeys&amp;diff=77</id>
		<title>Hotkeys</title>
		<link rel="alternate" type="text/html" href="https://isboxer2.com/w/index.php?title=Hotkeys&amp;diff=77"/>
				<updated>2019-05-27T20:31:30Z</updated>
		
		<summary type="html">&lt;p&gt;Lax: Created page with &amp;quot;500px  ISBoxer 2 Hotkeys are those configured in ISBoxer 2 to do ISBoxer 2 things, like have all of your characters press a bu...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Edit Team - Hotkeys.png|thumb|right|500px]]&lt;br /&gt;
&lt;br /&gt;
ISBoxer 2 [[Hotkeys]] are those configured in ISBoxer 2 to do ISBoxer 2 things, like have all of your characters press a button. This is in contrast to [[Game Key Bindings]], which are those configured in-game to do in-game things -- for example, in MMORPGs, 1 through = are typically configured to do Action Bar buttons (hotbar buttons, or whatever else your game calls them).&lt;br /&gt;
&lt;br /&gt;
A Hotkey maps an input binding to a [[Task]], which defines something to do. This mapping is usually handled by a [[Module]], but can also be done by manually configuring Tasks in the [[Edit Team tab]]. See [[Develop:Hotkeys]] for details.&lt;br /&gt;
&lt;br /&gt;
Hotkeys can be configured in the [[Edit Team tab]] under Hotkeys.&lt;/div&gt;</summary>
		<author><name>Lax</name></author>	</entry>

	<entry>
		<id>https://isboxer2.com/w/index.php?title=File:Edit_Team_-_Hotkeys.png&amp;diff=76</id>
		<title>File:Edit Team - Hotkeys.png</title>
		<link rel="alternate" type="text/html" href="https://isboxer2.com/w/index.php?title=File:Edit_Team_-_Hotkeys.png&amp;diff=76"/>
				<updated>2019-05-27T20:30:10Z</updated>
		
		<summary type="html">&lt;p&gt;Lax: Hotkeys in the [Edit Team tab]]&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Hotkeys]] in the [Edit Team tab]]&lt;/div&gt;</summary>
		<author><name>Lax</name></author>	</entry>

	<entry>
		<id>https://isboxer2.com/w/index.php?title=Main_Page&amp;diff=75</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://isboxer2.com/w/index.php?title=Main_Page&amp;diff=75"/>
				<updated>2019-05-27T20:15:56Z</updated>
		
		<summary type="html">&lt;p&gt;Lax: /* Windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#evt:&lt;br /&gt;
service=youtube&lt;br /&gt;
|id=https://www.youtube.com/watch?v=_x5M4UR9ZSA&lt;br /&gt;
|alignment=right&lt;br /&gt;
|container=frame&lt;br /&gt;
|description=Getting Started with ISBoxer 2!&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;The ISBoxer 2 Wiki is under construction!&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
While we start filling in the various content, this page will pretty much just list different concepts and their pages.&lt;br /&gt;
&lt;br /&gt;
== ISBoxer 2 Alpha ==&lt;br /&gt;
ISBoxer 2 Alpha is underway. &lt;br /&gt;
&lt;br /&gt;
== The [[ISBoxer 2 Launcher]] ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Tabs ===&lt;br /&gt;
{{Launcher Tabs}}&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
{{Windows}}&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
* [[Password Management]]&lt;br /&gt;
* [[Cloud Storage]] and [[Private Data]] (local storage)&lt;/div&gt;</summary>
		<author><name>Lax</name></author>	</entry>

	<entry>
		<id>https://isboxer2.com/w/index.php?title=Template:Windows&amp;diff=74</id>
		<title>Template:Windows</title>
		<link rel="alternate" type="text/html" href="https://isboxer2.com/w/index.php?title=Template:Windows&amp;diff=74"/>
				<updated>2019-05-27T20:15:46Z</updated>
		
		<summary type="html">&lt;p&gt;Lax: Created page with &amp;quot;{{Section|1=ISBoxer 2 Windows|2= ; Main Window * Main Window  ; Pop-ups * Login Window - Computer Detected Window - Launch Progress Window - Update Window...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Section|1=ISBoxer 2 Windows|2=&lt;br /&gt;
; Main Window&lt;br /&gt;
* [[Main Window]]&lt;br /&gt;
&lt;br /&gt;
; Pop-ups&lt;br /&gt;
* [[Login Window]] - [[Computer Detected Window]] - [[Launch Progress Window]] - [[Update Window]]&lt;br /&gt;
&lt;br /&gt;
; Setup&lt;br /&gt;
* [[Quick Setup Window]] - [[Character Creator Window]] - [[Game Account Creator Window]] - [[Game Location Importer Window]] - [[Import from ISBoxer 1 Window]]&lt;br /&gt;
&lt;br /&gt;
; Modules&lt;br /&gt;
* [[Module Installer Window]] - [[Module Creator Window]] - [[Module Publisher Control Panel]]&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Lax</name></author>	</entry>

	</feed>