"Dual booting" Client scripts into External Web Windows


2016.10.15: Updated Client script URLs to latest gist version.

For the brave… here is an experimental way to “dual boot” existing Client scripts (including the Editor) using external web windows:

WARNING: This is a pure scripting solution, but seems to hit a threading issue during initial load that can occasionally crash Interface. So be aware of that.

And also be sure to switch back to your vanilla scripts before forgetting (and certainly before reproducing/filing any bug reports against other scripts you try loading this way!).

Dual booting “defaultScripts”

First stop the built-in defaultScripts, then load from this link to boot them back again in external web window mode:

Most stuff won’t work completely… and the Toolwindow for editor is totally faked right now (using an extra WebWindow and some buttons to represent tabs).

If windows don’t seem to open or buttons (tabs) are missing from the Toolwindow – try reloading rewebwindow.js from the Running Scripts dialog.

Dual booting “metaverse chat”

Dual booting other Client scripts…

To make your own dual boot link – just take one of the above and replace everything after the hash (#) with a different target script URL.

Technical Stuff:

This is a “passive” approach that doesn’t require the targeted Client scripts to change.

A thin bootstrapping layer is used to “upgrade” the immediate scripting context’s OverlayWebWindow (using my WebWindowEx emulation layer) so that external windows get used instead.

Ultimately a simple Script.include is used to bring in whatever other script was specified after the hash tag in the original url.

Since each top-level Client script uses its own scripting context, this is a pretty well-isolated approach (ie: only affects that one, new scripting context and the subsequent include it loads).

Stopping “rewebwindow.js” should be sufficient to end both the affected script and any overriding windowing effects.

Why bother?

Need some kind of VR IDE to pick up the pace – WebWindow's offer a generative building block.