Hacking Blaxxun multiuser VRML for offline use

From Flashpoint Database
Revision as of 07:06, 18 March 2021 by Sgeo (talk | contribs)
Jump to: navigation, search

VRML worlds designed for Blaxxun Contact were often intended to be used in a multiuser context. Without the Blaxxun server running, some things might not work as expected. Light switches might not toggle, minigames might not work properly, pool covers might not open. In their original context, the buttons to trigger these would send off events to the server, which would send a message back to everyone connected to the world at the time (or sometimes later), including the original person.

This page will hopefully explain how to hack VRML that uses Blaxxun multiuser features to work properly while offline.

Any world that uses Blaxxun multiuser features will have a node named SharedZone, and hence have DEF SharedZone somewhere. The SharedZone will usually contain one or more SharedEvents. While this is not strictly necessary, it is the case most of the time, and anything outside of that is out-of-scope for this document.

Worlds will often define on their own what a SharedEvent is, using code copied-and-pasted. The definition begins with PROTO SharedZone.

If the definition defines local, you're in luck, and you just need to change it as follows

PROTO SharedEvent [
field SFBool local FALSE
field SFBool debug FALSE

change local FALSE to local TRUE, so it reads as follows:

PROTO SharedEvent [
field SFBool local TRUE
field SFBool debug FALSE

and make sure the SharedZone doesn't have local FALSE in its SharedEvent usages.

If the SharedEvent doesn't contain local, you will need to add it yourself.