NOTE: This has an adventure game thing by default. To play, press L, type /start, then enter a name when asked for an input. NOTE ALSO: This ISN'T the real (1.4) project. No mesh here; for that look at the original. This is just a remix changed to work with 3.0 (it is annoying how list contents don't wrap). Also the list thingy and so on could probably be simpler. Oh well. Also, this wasn't the original intention but I suppose you could connect it to the real life web if you wanted (with an external program to which you connect Scratch 1.4). Use left/right arrow keys to highlight a link. Press space to follow a link. You can try this online with Scratch 3 (as though there were only one host), but this is actually for Scratch 1.4 with Mesh. It probably only works reliably with two hosts ATM. I don't like the "local?" hack (ideally, it would just check if sender & recipient are the same, but the special case is probably necessary). Mesh should mean that any host can simply grab a page from any other (thanks to broadcasts). Not tested with more than two. Paths are arbitrary (unique) strings. Press N to add a page. Press D to delete a given page, or to delete everything and start afresh. The syntax for links (on the recipient side) is <path label> On the sender side, the page can be interpolated with an RPN thing. The language isn't Turing-complete. It can just do math and some other things that enable stuff like the game (a multiplayer game would probably be possible too). Here's an example page (the "2" means two parameters from the client/recipient): /polar2rect 2 {par1}e^({par2}i) = {par1 par2 cos *} + {par1 par2 sin *}i end /rect2polar (not gonna work in all quadrants) 2 {par1} + {par2}i = {par1 par1 * par2 par2 * + 0.5 ^}e^({par2 par1 / atan}i) end SERVER SIDE TEMPLATE REFERENCE: Use {braces} as shown above. Most things manipulate a stack, hence reverse Polish notation (RPN) works e.g. 3 4 * is 12 (it was just the easiest to code) ' Quotes par1 Webpage parameter 1 par2 Webpage parameter 2 hostid The variable hostid (arbitrary string or number) loudness reset-timer timer Sensing get Get a persistent variable set Set a persistent variable (var comes 2nd) join Pop two values & concatenate < = + * - / ^ Arithmetic sin cos atan Trigonometry ln Natural logarithm