Difference between revisions of "Bot Playground"

From SmartBots Developers Docs
Jump to: navigation, search
 
(14 intermediate revisions by 2 users not shown)
Line 1: Line 1:
SmartBots Bot Playground is a dedicated sandbox to run your own programs which control your bot. This section is still in development!
+
{{DISPLAYTITLE:SmartBots Bots Playground}}
 +
SmartBots Bots Playground is a JavaScript sandbox to run your own programs to control your Second Life bot.
  
== Language ==
+
The Bots Playground is available here: [https://play.mysmartbots.com/ play.mysmartbots.com/]
  
Playground runs programs written JavaScript. The pure javascript: with callbacks, functions, arrays and objects. The underlying javascript engine is NodeJS (V8).
+
== Controlling bots with JavaScript==
 +
 
 +
[[Image:Bots Playground screenshot-2.png|link=|center|800px]]
 +
Playground runs programs written JavaScript. The pure javascript: with callbacks, functions, arrays and objects. The underlying javascript engine is NodeJS.
  
 
There are some limitations applied yet:
 
There are some limitations applied yet:
  
 
* We do not support ECMAScript 6
 
* We do not support ECMAScript 6
* import/export is not supported yet
+
* import/export is disabled
 
* you can't include one script into another (yet)
 
* you can't include one script into another (yet)
  
 
== Interacting with your bot ==
 
== Interacting with your bot ==
  
Your program sends commands to the bot. Events come from the bots to your program.
+
Your program runs in a sandbox and sends commands to the bot. Events come from the bots to your program.
  
 
This two-way communication is tied directly into javascript program routines:
 
This two-way communication is tied directly into javascript program routines:
Line 20: Line 24:
 
* [[/Events|events]] are callback functions you specify
 
* [[/Events|events]] are callback functions you specify
  
Refer to [[Playground Examples]] page for more info.
+
Refer to [[/Examples|Examples]] page for more info.
 
+
== Limitations ==
+
 
+
Yes, there are still some:
+
 
+
# '''Scripts stop when Bots Playground server gets restarted.''' This is just an early-stage limitation, it will be removed very soon.
+
# '''Bots "forget" the event handlers when bot server get restarted.''' Also the very early-stage limitation.
+
 
+
In few words: bot scripts do work, reliably start and stop. Just don't expect it to run for ''weeks'' yet.
+
 
+
== Safety ==
+
 
+
; Is my bot password safe? : Yes. We do not store bot and SmartBots account passwords on a sandbox server at all.
+
; Can scripts read files? : No. The scripts are sandboxed and can't access world outside the sandbox. However, check the "Bug Hunter" program below.
+
; Can I crash the server? : Yes, easily. Just write the script which starts a dead loop. During the beta test we don't track and kill such scripts (we will later). So... just act wisely.
+
 
+
== Bug Hunter program ==
+
  
Playground scripts run in their own sandboxes. Well, they are supposed to be sandboxes... we appreciate if you report the security holes within [[Bot Playground/Bug Hunter program|Bug Hunter program]].
+
== Read more ==
  
 +
* [[/Faq|Playground FAQ]]
 +
* [[/Bug Hunter program|Bug Hunter program]]
 +
* [[/Store|Create and sell Playground scripts]]
  
 
{{NavMenu}}
 
{{NavMenu}}
 +
__NOTOC__

Latest revision as of 20:21, 19 January 2024

SmartBots Bots Playground is a JavaScript sandbox to run your own programs to control your Second Life bot.

The Bots Playground is available here: play.mysmartbots.com/

Controlling bots with JavaScript

Bots Playground screenshot-2.png

Playground runs programs written JavaScript. The pure javascript: with callbacks, functions, arrays and objects. The underlying javascript engine is NodeJS.

There are some limitations applied yet:

  • We do not support ECMAScript 6
  • import/export is disabled
  • you can't include one script into another (yet)

Interacting with your bot

Your program runs in a sandbox and sends commands to the bot. Events come from the bots to your program.

This two-way communication is tied directly into javascript program routines:

Refer to Examples page for more info.

Read more