Anyland is a sandbox universe for VR & desktop (see Steam page), and scripts follow a straightforward syntax of
When something happens then do this
When shaken then play doorbell
Some commands contain additional tuning parameters, like
When touched then play doorbell with high-pitch 120% volume
You can also chain commands, like
When shaken then play laughter, emit bubbles
Each Thing can contain multiple Thing Parts, which in turn contain multiple States/ Cells (see glossary). For instance, if you had a bottle which when shaken should turn from blue to green, you could context-laser its body, and use "When shaken then become next in 1s", and for the second state, color it green. With this simple structure, and combined with messaging commands across Things, you can do just about anything you can imagine!
Scripts are always using auto-completion guidance, and you can click the info "i" next to each command from within Anyland to find out more.
Above video gives a general overview of scripting (if you jump to the start of the video, you'll get the general introduction to Anyland), and this page references all available commands.
This event runs whenever that part loads. For instance, if you wanted a continuous ping-pong animation between two cells, you could use
Cell 1 When starts then become next in 1s Cell 2 When starts then become next in 1s
To simplify, you can also always write "become next" instead of naming the cell number. It will then go to the next used cell, or back to the first cell if it hit the end of your used cells.
As opposed to some other events like "When touched", the "When starts" event is not always perfectly synchronized, as it triggers for different people at different times when they enter an area. It will however still be in-sync if something else (e.g. "when touched" from a previous cell) preceded its animation.
Generally, when you switch states, they'll auto-reverse after 30 seconds.
This event triggers when a part is touched by e.g. a hand, body part, a held object, or another object that is thrown or emitted. For instance, you could make a doorbell object, then use:
When touched then play doorbell
If you want to have a Thing receive touches, but not normally collide, you can select its "..." → "..." → "Can pass through" setting (and make it invisible).
When touches [thing name]...
Similar to the generic "When touched", but this command also lets you specify a name you want to watch for. E.g. a door lock could use the following tell to open a door:
When touches red key 1 then tell open
You can also have the other object's parts, in specific states, have distinct names. For instance, you could have a torch whose main body is sometimes called "flame". Use the "call me" command for that.
A Thing Part is considered triggered when it is part of a Thing that's currently held, and one presses the trigger button on the controller (see the controls setup). Ensure that the Thing is a Holdable with "Remains Held" ticked for this to work.
As an example, you could use "When triggered" to make a lighter that shows a flame when pressed:
When triggered then turn on, play fire
If you currently move a leg with that hand/ controller, the triggering will go towards that attached leg Thing instead of the holdable.
To do something when the trigger action ends, use "When trigger let go" (which also covers leg movement trigger-stopping).
Alternatively, if you want a non-held object to react on press, see "When grabbed".
This event fires when a person nears the object. Specifically, the distance is always measured from one's torso, to the center of the parent Thing creation, and everything within 3 meters is considered near. Use e.g.:
When neared then emit ceiling spear
Also see "When walked into".
When gets [name]...
This event happens when the part touches a held object; it will then take it (make it disappear). For instance, imagine a coin slot on a soda machine "getting" a coin from someone, to then emit a bottle from its bottom:
When gets coin then tell paid Other part When told paid then emit bottle
Thing Parts can send messages around to other Parts. For instance, maybe your light switch on a lamp needs to tell the light bulb to turn on:
When touched then tell pressed Other part When told pressed then turn on
"Pressed" can be any other string of your choosing (including multiple words, like "red button pressed").
Different types of tells have different reaches:
|... then tell [word]||When told [word] ...||Sends messages within that Thing only.|
|... then tell any [word]||When told by any [word] ...||Sends messages across whole area.|
|... then tell nearby [word]||When told by nearby [word] ...||By parts within 7.5m to the receiving Thing's center.|
|When told by body [word] ...||... then tell body [word]||Sends a message from body parts to other parts of this body, and holdables.|
|... then tell first of any [word]||When told by any [word] ...||Sends a message to the closest reacting other thing.|
|... then tell in front [word]||When told by any [word] ...||Sends a message to all thing parts in front, at any distance. (Parts need to be collidable and may not use "Can pass through". Parts are messaged in order from nearest to furthest.) Turn on "..." → "Show direction" to visualize the forward direction.|
|... then tell first in front [word]||When told by any [word] ...||Same as "tell in front", but stops after the first Thing Part ahead it hits (whether or not that part listens for the event).|
When using "Tell Any", you may want to ensure the tell word is sufficiently unique, as otherwise e.g. a visitor to your area may accidentally trigger it with a holdable or so.
You can also use the Twitch Chat settings to connect to a live Twitch stream chat, where every chat line people type which is preceded by a "!" will turn that string into a tell to receive via "When told by any".
Automatic "told by body" events
There's a few automated "told by body" events you can listen to (they will be sent without you having to do anything):
|When told by body ...|
|... inventory opened left then ...||When the left hand opens the backpack.|
|... inventory opened right then ...||When the right hand opens the backpack.|
|... inventory closed left then ...||When the left hand lets go of the backpack again.|
|... inventory opened left then ...||When the right hand lets go of the backpack again.|
|... hand touches left then ...||When the left hand touches something.|
|... hand touches right then ...||When the right hand touches something.|
|... ping received ...||When a friend pings you from another area.|
|... ping received from [person name]...||When a friend by that specific name pings you.|
|... ping sent ...||When you ping someone else.|
|... moving ...||When moving with the teleport laser (future support for desktop-mode moving may be added)|
|... moving fast ...||When moving over 1.5 meter with the teleport laser|
|... moving very fast ...||When moving over 3 meter with the teleport laser|
|... someone was born ...||When someone launches Anyland for the very first time, and their birthday alert is sent around the area to random loyals.|
|... someone arrived in area ...||When someone newly enters the area.|
|... hand triggered left then ...||When someone starts holding the trigger on their left hand (also see "When triggered").|
|... hand triggered right then ...||When someone starts holding the trigger on their right hand.|
|... hand trigger let go left then ...||When someone stops holding the trigger on their left hand.|
|... hand trigger let go right then ...||When someone stops holding the trigger on their right hand.|
|... both hands triggered then ...||When holding the trigger on both hands. This gets sent before the individual "left/ right triggered" body tell (for the second hand that starts the press).|
|... dialog [optional name] opened left then ...||When no dialog (a hand menu) was open and any dialog is opened at the left hand now. See dialog names.|
|... dialog [optional name] opened right then ...||When no dialog (a hand menu) was open and any dialog is opened at the right hand now. See dialog names.|
|... dialog [optional name] closed left then ...||When a dialog on the left hand is closed and no dialog is open anymore. See dialog names.|
|... dialog [optional name] closed left then ...||When a dialog on the left hand is closed and no dialog is open anymore. See dialog names.|
|... jumping ...||When someone jumps in desktop/ keyboard mode.|
|... hand touches hand ...||When your hand touches someone else's hand, like for a high-five or handshake.|
|... left hand touches hand ...||When your left hand touches someone else's (left or right) hand.|
|... right hand touches hand ...||When your right hand touches someone else's (left or right) hand.|
|... consumed ...||When you eat something, that is, your mouth touches something which triggers "when consumed".|
|... leg triggered left then ...||When someone starts holding the trigger on their left hand/ controller while moving their left leg (also see "When triggered").|
|... leg triggered right then ...||When someone starts holding the trigger on their right hand/ controller while moving their right leg.|
|... leg trigger let go left then ...||When stopping to hold the left trigger while leg moving./em>|
|... leg trigger let go right then ...||When stopping to hold the right trigger while leg moving.|
|... context laser started left ...||When one starts pressing the left hand context laser.|
|... context laser started right ...||When one starts pressing the right hand context laser.|
|... context laser ended left ...||When one stops pressing the left hand context laser.|
|... context laser ended right ...||When one stops pressing the right hand context laser.|
When using body tells to be informed of dialog opening and closing, you can use the following names, e.g. "When told by body dialog thing part attributes opened left then ...":
alert approve body area area attributes area copy credits area filters area placements areas body motions browser camera control confirm controllable create current and recent people desktop camera environment equipment find areas forum forum settings forum thread forum threadsearchresult forum threadsettings forums forums search result friends get edit tools gifts highlight things include thing included sub thing included sub things inventory inventory search words joystick keyboard main material microphone my size own profile pageable text placed sub things placement suppress profile question settings settings more slideshow control softban start sub areas subdivide thing thing attributes thing attributes more thing copy paste thing part thing part attributes thing part attributes more thing part auto continuation thing part copy paste thing part screen settings thing physics thing tags twitch chat twitch guiding twitch settings vertex mover video video control
This event triggers when something is close to the mouth, like when an apple is eaten, or someone is drinking from a glass. (Note consuming does not require the object to be held, it may also something statically placed in the area.) Use e.g.:
When consumed then play munching, add crumbles, destroy
Alternatively, you can use:
When touches face then play munching, add crumbles, destroy
It triggers exactly the same, but may be preferable if the action is not meant to be about eating or drinking.
Some edible creations (like so-called Tele-Cookies or Tele-Oranges) are using the "microphone" attribute. This will cause the voice to be heard all across the area after eating the object. (It will also pop up a dialog reading "Everyone here hears you now (you can disable that via Me dialog, or switching areas).") Note amplified speech can be disabled via "... then disallow amplified speech".
When walked into...
This triggers when someone laser-transports onto. It also triggers when one walks near it at a radius of 2 meters from one's torso to the center of the Part's parent Thing. For instance, you could script a platform on the floor which when stepped into opens a door in front (like by using a "tell" to that door). Or it could directly send the person to another area:
When walked into then send one nearby to buildtown
Also see "When neared", which triggers right after "When walked".
When pointed at...
When someone points the index finger at this part. For instance:
When pointed at then say hello
The maximum distance for this to work from finger tip to Thing part is 10 meters, and this event is checked every 0.5 seconds.
Also see "When looked at".
When looked at...
When someone looks at this part, facing their head direction towards it. E.g.:
When looked at then play voice giggle, become next in 1s
The maximum distance for this to work from head to Thing part is 10 meters. This event is checked every 0.5 seconds.
Also see "When talked to".
When taken then play horror whoosh, tell any the statue was taken
Also see "When grabbed".
This event triggers when a statically placed Thing's Part is touched and the trigger is pressed. For instance, you could use this for a door knob, which using a tell to the door hinge then opens the door Sub-Thing.
This triggers when a Holdable is wildly shaken when held. For instance, you could create a soda can that bursts open when shaken, or create a magic wand that results in particle effects upon heavy waving.
When talked from...
This event fires for any Thing Part of a head attachment when that person speaks into their microphone. This is useful for e.g. creating mouth animations, as you only want the lips to move when one speaks.
When talked to...
This happens to the object if one looks at it, then speaks something. For instance, you could have a being in the world (NPC) react to people trying to talk to it.
As with the "Looked at" event, this is checked every 0.5 seconds, at a distance of up to 10 meters.
When blown at...
This triggers when one blows at something, or technically speaking, when one makes a sound above a certain volume while the mouth is near the Part. For instance, you could use this to let someone blow out a candle, blow up a balloon, or play an instrument like a trumpet:
When blown at then turn off When blown at then play air pump short When blown at then play trumpet b 4
(The event is checked for every 0.1 seconds.)
When turned around...
This happens when a Holdable is turned upside down, e.g. someone wants to empty a bottle.
When high speed...
This triggers whenever a Holdable is held and moved at a high speed.
When let go...
This triggers when a Holdable is raised up in the air. Specifically, it looks for the hand's upwards velocity crossing a certain threshold.
Also see "When lowered".
This triggers when a Holdable is lowered. Specifically, it looks for the hand's downwards velocity crossing a certain threshold.
Also see "When raised".
When hit then...
When this part is hit by something at high speeds.
A normal "When touched" is always triggered after this event, too.
When hitting [thing name] then...
When hitting or being hit by something of that name at high speed. For instance:
When hitting metal then play lightsword hit 4
A normal "When touches [thing name]" is always triggered after this event, too.
See the "Call me" command to change a hitter part's name.
When someone in vicinity...
When a person gets in the vicinity of 7.5 meters of this part, measured from the person's torso center to the Part's parent Thing center.
Also see "When someone new in vicinity".
When someone new in vicinity...
When a person gets in the vicinity of 7.5 meters of this part for the first time during that area visit. The distance is measured from the person's torso center to the Part's parent Thing center. This command is useful to trigger something only once.
Also see "When someone in vicinity".
When touch ends...
When something stops touching. E.g. a hand just ended its tap of a table surface, or an object stops colliding with another object.
To catch the start of a touch, see "When touches".
When trigger let go...
This event fires for a held object when the trigger is let go again. Make the Holdable of the "Remains Held" type if you want to use this command.
For the trigger start even, see "When triggered".
When a Thing and its Parts end their lifetime, like a thrown mug shattering on impact.
When any part...
Using the "any part" prefix for events, like "When any part touches...", will apply the command and its results equally across all parts of the Thing (including its Sub-Things). This can save you from having to script the same command for many Parts of a Thing.
Also see "When any state".
When any state...
Using the "any state" prefix for events, like "When any state touches...", will apply the command and its results equally across all states of this current Thing Part. This can save you from having to script the same command for many States of the same Part.
Also see "When any part".
When hears [speech]...
This allows your objects to listen to speech commands, or conversation starts. For instance, a computer terminal could react to the word "restart", or an NPC to the word "Hello".
When the object is placed, this command works at a radius of 7.5 meters from a person's head towards the center of the Part's parent Thing. When the object is attached, it triggers when oneself is speaking.
This command relies on Windows speech recognition to work in Anyland. It is (unfortunately) a known issue that it won't trigger on some systems.
When enable/ disable setting...
This event fires when a certain Anyland setting is set or unset, like one deactivates the microphone. (It works both when a setting is toggled via a dialog, or via a script itself.)
The following settings are available:
When enable setting...
When disable setting...
|... microphone||Whether the microphone is active.|
|... see invisible||Whether one can see invisible as editor.|
|... touch uncollidable||Whether one can touch uncollidables as editor.|
|... lower graphics quality||Whether graphics quality is lowered to improve performance.|
|... fly||Whether one can fly as editor.|
|... findable||Whether one's current area is shown in the friends list.|
|... stop alerts||Whether during creation, angles snap.|
|... snap angles||Whether during creation, angles snap.|
|... soft snap angles||Whether during creation, angles soft snap.|
|... snap position||Whether during creation, positions snap along an axis.|
|... scale all parts||Whether during creation, all parts scale uniformly together.|
|... scale each part uniformly||Whether during creation, each individual part scales uniformly.|
|... finetune position||Whether during creation, movements are finer.|
|... symmetry sideways||Whether sideways-symmetric parts should be added.|
|... symmetry vertical||Whether vertically-symmetric parts should be added.|
|... symmetry depth||Whether depth-symmetric parts should be added.|
|... show grid||Whether a grid is shown in the area for more precise building.|
|... snap things to grid||Whether placements snap to the grid for more precise building.|
|... snap thing angles||Whether generally, placement angles snap (overriding thing settings).|
|... snap thing position||If generally, placements move on an axis (overriding thing settings).|
|... ignore thing snapping||Whether generally, placement thing snappings will be ignored.|
|... extra effects in vr||Toggles extra effects in VR (may lag; needs one to be over 1 day old).|
|... lock angles||Whether to fully have rotation locked for editing.|
|... lock position||Whether to fully have position locked for editing.|
When text was typed. Can be attached and used with the "then say [typed]" command.
When a scripting variable value changes, including when that value is initiated during area load. Use e.g. "When is somevalue >= 2 then ...". You can also combine this with other events, e.g. "When touched and is somevalue >= 2 then...".
Here are some more examples:
|somevalue >= 2||When the value named "somevalue" of this thing is equal or over 2. "Somevalue" can be any name you choose.|
|somevalue = 2||When the value named "somevalue" of this thing is equal or over 2. "=" and "==" both mean equal.|
|somevalue == 2||When the value named "somevalue" of this thing is equal or over 2. "=" and "==" both mean equal.|
|area.somevalue == 2||When the area value named "area.somevalue" reaches 2.|
|somestate||When value "somestate" is true/ not 0 (you can also use "not somestate"). "Somestate" can be an name you choose.|
|value >= 2 and state||When all of these are true.|
|value >= 2 and not state||Use "not" to check for a value being untrue.|
|value >= 2 or state||When any of these is true.|
|value != 2||A check for unequal (the same as "<>").|
|value <> 2||A check for unequal (the same as "!=").|
|value < 2||A check for "lower than".|
|value > 2||A check for "larger than".|
... then become [state]
Switches from the current to another State/ Cell. For instance, you could have two different animations state, like:
1. The cube is green and small
2. The cube is blue and big
When now using the command
Cell 1 When starts then become next in 1s Cell 2 When starts then become next in 1s
... then the cube would smoothly transition from green to blue (and small to big) and back in an endless loop in the rythm of 1 second.
You can use different options for the "become" command:
|become next in 1s||Flips to the next state in 1 second. If the end of used cells are reached, it goes back to the first again, so you can always safely use "next". Note the "s" at the end of the number is always optional.|
|become next in 5.5||Use floating point digits, like 5.5 seconds. We decided to omit the optional "s" from the number here. Note the default max state length is 30 seconds (unless you're currently editing the part and have its menu open, then it will remain). You can however tick a Part's "..." → "Persist States" option to have its state not revert (until everyone leaft the area).|
|become previous in 1s||Goes to the previous cell (or the last used one, if the current cell is already 1).|
|become next||Using no time will (almost) instantly switch to the next state|
|become 2 in 1s||Flips to the state of the provided number, like 2.|
|become untweened next in 1s||Avoids any transitioning animation. For instance, if you go from a small cube in cell 1 to a big cube in cell 2, it would not show all the intermediate sizes, but instantly jump from small to big at the provided time (like 1 second, in this case).|
|become unsoftened next in 1s||By default, all transition animations are softened at the beginning ("Ease-In tweening") and end ("Ease-Out tweening"). By using the "unsoftened" keyword, you make the animation steady instead, avoiding all easing. Outside of scripting, you can also use the setting "Unsoftened animations".|
|become soft start next in 1s||This avoids just the Ease-In for the animation tweening.|
|become soft end next in 1s||This avoids just the Ease-Out for the animation tweening.|
|become 3 via 2||The "via" command uses another intermediate state to animate with, for curvier movement. For instance, maybe you want a robot to float across the area from point A to B (cell 1 to 3), but you want it to make a bit of a curve (the curve being defined by the position of cell 2). This keyword is combinable with other options for the "become" command, but needs to be written last.|
|become current in 1s||Goes again to the current state, restarting it at the provided time. This can be used along with the "When any state" command.|
... then play
Plays a sound of the given name, e.g.
When touched then play doorbell
Optional parameters can be used with sounds, and are often combinable with each other (and in any order), like
When touched then play doorbell with echo 50% low-pitch
These are all the sound options:
|When touched then play [sound name] with||50%||Plays the sound at a given volume percentage. Appending the word "volume" is optional. You can use any number from 1-500, and can include floating point numbers like 100.5%. The "%" symbol can be omitted if you want.|
|very-low-pitch||Plays the sound at a very low pitch (of 0.5).|
|low-pitch||Plays the sound at a low pitch (of 0.75).|
|high-pitch||Plays the sound at a high pitch (of 1.5).|
|varied-pitch||Plays the sound at a slightly varying pitch (the maximum variance is 0.1).|
|very-varied-pitch||Plays the sound at a strongly varying pitch (the maximum variance is 0.3).|
|echo||Plays the sound with an echo effect.|
|low-pass||Filters the sound to only allow low frequencies.|
|high-pass||Filters the sound to only allow high frequencies.|
|stretch||Stretches the audio.|
|reversal||Plays the audio backwards. You can combine this with other options, but it will ignore pitch settings.|
|5 repeats||Repeats the sound that many times (up to 50). You can use either the word "repeat" or "repeats". "1 repeat" means the sound will be played twice altogether.|
|0.5s delay||Adds a pause of that many seconds before the sound starts. (The "s" next to the number is optional.)|
|0.5s skip||Omits this many seconds from the audio's start. (The "s" next to the number is optional.)|
|0.5s duration||Sets after how many seconds the sound is stopped. (The "s" next to the number is optional.)|
|surround||This will have the sound play at its normal volume at any distance across the area. Also see the Thing's "..." → "Surround Sound" setting. As distant objects are sometimes not showing (for optimization reasons), you may additionally want to use the Thing's "Show if far away too" setting.|
→ A full list of sounds is available. Thanks to all Creative Commons & more sound makers!
... then tell
This sends a message to another part. For instance, a light switch may message a light bulb so it can turn itself on, or a door knob may inform the door hinge to open the door upon touch. The following sends the message "pressed" (note you can use any other word) to a doorbell object which then plays a sound:
When touched then tell pressed Other part When told pressed then play doorbell
To tell something to any part in the area, and not just parts of the same thing, use:
When touched then tell any pressed Other part When told by any pressed then play doorbell
→ See the full When Told/ Then Tell reference for more.
... then send
The "send nearby" or "send all" command sends people to another area, or a specific named marker in the current or another area. For instance:
When touched then send nearby to buildtown
Note for this command to work, it needs to be called from a placed object in the area, or an attachment to the body.
The following variants are available:
|When [some event] then ...||send nearby to [area name]||Sends all people nearby to the area of a given name, e.g. "When touched then send nearby to buildtown". Nearby here means a distance of up to 2 meters from a person's head to the closest point on the surface of the Thing Part.|
|send nearby onto [thing name]||Like "send nearby to", but will transport one onto a marker in the area by that name. For instance, you could place an invisible flat cube at the ground and name it "marker1", then use the command "When touched then send nearby onto marker1". (If multiple markers of the same name exist, the closest one will be used.)|
|send nearby to [area name] onto [thing name]||Applying both "send nearby to" (to transport to an area) and "onto" (to transport onto a marker, see "send nearby onto" above).|
|send one nearby to [area name]||Similar to "send nearby to", but will only trigger for the closest person, or the person who performed the relevant action, e.g. pressed the button that caused this command.|
|send one nearby onto [thing name]||Similar to "send nearby onto", but will only trigger for the closest person, or the person who performed the relevant action, e.g. pressed the button that caused this command.|
|send all to [area name]||Transports everyone in the area to another area, e.g. "When touched then send all to buildtown".|
|send all onto [thing name]||Like "send nearby onto", but transports everyone in the area to that marker.|
|send nearby onto [thing name] at 45 degrees||Add a degrees value from -360 to 360 in steps of 45 to specify the rotation the person should get after being transported. Please note this is currently in addition to the rotation a VR user may have within their room setup, so it may unfortunately at the moment not always end up facing as wanted.|
|send [one] nearby to previous||Transports one back to the previously visited area (while skipping "via" transit areas).|
|send [one] nearby to current||Transports one to the current area, useful e.g. when combined with "via".|
|send [one] to [closest held]||Transports one to an area by the name of the closest held thing, if any. This can be used with e.g. dynamic travel ticket systems. The value for [closest held] is a placeholder which is dynamically replaced when holding the object.|
... then emit
Emits another Thing from this part, in the part's direction. For instance, a gun Holdable may use
When triggered then emit bullet
Note you don't type the word "bullet"; instead, once you selected the "emit" command, you can drag & drop an item from your inventory. This will then auto-fill its name (and possibly add a number, like "bullet 2", if there's more than one object of that name being used in the Thing already).
More options can be added. The following sets the emission speed from 0-100% (the "%" is optional)
When triggered then emit balloon with 10%
And this option (combinable with the speed setting or used on its own) makes the emitted object fly off with no gravity:
When triggered then emit vase gravity-free
You can visualize the direction of a part by choosing the Thing's "..." → "Show center + direction" setting. One Base Shape especially helpful to understand forward (and upward & sideways) directions is the one pictured, for which you can also use the "Invisible (when done)" (and "Uncollidable") setting.
... then loop [name]
This commands starts a looping sound, e.g. a waterfall in a nature scene. Up to 5 loop sounds can be used simultaneously in the area. Use for instance
When someone in vicinity then loop water
You can optionally set the volume by providing a percentage (the "%" can be omitted from the number if you want; use values of up to 500.0):
When someone in vicinity then loop water with 80%
Looped sounds can also be made heard in the whole area by either setting the Thing "..." → "Surround Sound" attribute, or using the "surround" with-keyword:
When starts then loop winter wind with surround
You can also get a mix between local 3D spatial sound + whole-area surround sound via the "half-surround" keyword. It will give some indicator of direction and distance while still being heard everywhere:
When starts then loop winter wind with half-surround
The placements distance optimizer will always ensure Surround Sound things are active.
To stop the loop again, use "end loop".
The following loop sounds are available:
air fade alarm alarm 2 - 11 birds birds 2 bubbles bubbles 2 chanting chatting crowd chatting crowd 2 computer crying voices crying voices diesel engine f plus quint fire future ambient future ambient 2 - 3 future ambient 3 glimmer heartbeat horror music hum hum 2 - 5 machine machine 2 - 7 music street ambient mystical aura mystical aura 2 noise om orchestra rain retro computer scary violins strange ambient unmusic wall of sound water water 2 wind wind 2 amazonia farm arcade air hockey auto interior freeway boat slosh bubbling fan caves ambient cheering crowd city autos city autos 2 city rain city rain 2 city voices coastal docks coastal restaurants cockpit ambience computer room construction site countryside birds desert ambient diesel train eerie ambience eerie cave eerie synth electro magnetic evening cricket exhaust buzz fair crowd ferry metal ferry rattle freightliner wagons furnace ambient hall crowd harbor seagulls heavy fan heavy interference heavy winds heavy winds 2 helicopter helicopter 2 hologram ambience industrial ambience industrial ambience 2 jet ambience jungle ambient lake waves magical water mall crowd metallic ball rolling motor drive motor drive 2 mountain sheep mountain stream multiverse interaction nature birds insects outside ambience park people park wind pedestrian street planet rumble propeller airplane propeller airplane 2 radiation planet rain on auto rain on concrete room tone sea between rocks sea between rocks 2 seaplane seaplane 2 seawash seawash heavy singing bowl singing bowl 2 steam train subway line synth ambience synth ambience 2 tank drive train station transit train transit train 2 typewriter ambience ultraviolet rays underwater ambience underwater lava vacuum suction wavering soundscape whirring ambience wind distant traffic winter city streets winter pedestrians winter wind
Note there's also global area environment/ weather settings, some coming with their own background sounds. Open the Area dialog (the mountain & sun icon) to set them. As opposed to such environment sounds, the loop command sounds will have the 3d audio source be from the Thing Part itself, the volume shrinking as one gets further away.
... then end loop
This command ends this Part's currently playing loop sound again.
... then call me
Gives a name to this Thing Part within this State. For example, when you have a sword Thing with both grip and blade Parts, you may want to use on the blade Part
When starts then call me blade
Once done, other objects could then use "When touches blade then ..." to check for blade collisions specifically (ignoring mere grip touches from this sword).
... then give haptic feedback
Provides a haptic buzz feedback for the VR controller. This can be used by arm attachments or currently held Holdables. In non-VR desktop/ keyboard mode, this results in a sound effect.
People can optionally disable any haptic pulse via the Me → "..." → More → "Lock Features" settings.
... then let go
This command drops this item if it's a currently held Holdable.
... then all parts
Use the "all parts" prefix to do something with the whole parent Thing, like:
When starts then all parts face someone
You can optionally use "stop all parts" to stop it again.
The following "all parts" commands are available:
|When [some event] then all parts ...||face someone||Rotates the whole Thing towards the head of the closest person.|
|face someone else||Rotates the whole thing towards the head of the second-closest person.|
Rotates the whole thing upwards. To best understand forward, sideways and upwards directions of a part,
you can use the specific base shape pictured.
|face empty hand||Rotates towards the closest empty hand.|
|face empty hand while held||Rotates towards the closest empty hand while being held.|
|face nearest [thing name]||Rotates towards the closest thing of that name. (Can be combined with Sub-Things to make for very interesting creations, including inverse-kinematic arms!)|
|face view||Rotates the thing towards the view of the eyes/ default camera. (This can be combined with image-textured quad base shapes for certain lightweight decorative parts of an area.)|
... then stop all parts
Undoes something you started with "then all parts", e.g. "When shaken then stop all parts face someone".
|When [some event] then stop all parts ...||face someone||Stops rotating towards closest or second-closest person.|
|face empty hand||Stops rotating towards the empty hand.|
|face up||Stops rotating the whole thing upwards.|
|face nearest||Stops rotating towards the closest thing of a name.|
|face view||Stops rotating towards the view of the eyes/ default camera.|
... then destroy
You can destroy the whole parent Thing of this part by using e.g.
When touched then destroy all parts
You can also destroy other things nearby at a given radius to their surfaces, like
When touched then destroy nearby
You can add an optional "with" parameter to destructions, like
When touched then destroy all parts with bouncy burst
The following "with" parameters are available:
|When [some event] then destroy [all parts/ nearby] with ...||burst||Destroys the thing by breaking it into parts.|
|[burst] 10 force||Applies a burst force from 0-1000.|
|[burst] gravity-free||Applies zero-gravity to the burst effect.|
|30s restore||For placements, restores the thing after the given amount of seconds (from 0.01 - 86400.0 seconds; adding an "s" to the number is optional).|
|[burst] 50 parts||Sets the maximum number of parts to break into, from 1 - 250 (the default is 30).|
|5 grow||Breaks into growing parts at a given speed from 0.01 to 100.0.|
|5 shrink||Breaks into shrinking parts at a given speed from 0.01 to 100.0.|
|10s disappear||The seconds after which burst parts start to disappear, from 0.1 to 60.0 (the default is 12.5).|
|bouncy||Makes burst parts bounce on collisions.|
|slidy||Makes burst parts slide on collisions.|
|uncollidable||Makes the burst parts pass through objects.|
|self-uncollidable||Makes the burst parts pass through each other.|
|radius||The destruction radius for the "destroy nearby" variant. Default is 2 meters.|
|max-size||The size limit at which things still get destroyed. Default is 0.2 meters.|
Use "... then reset area" to undo all deletions in the area again.
... then propel forward
When emitted or thrown, it moves the thing forward:
When starts then propel forward
You can add an optional force in percent from -100% to 100% (the default is 10%, and 0% stops):
When starts then propel forward with 50%
Also see "rotate forward".
... then rotate forward
When emitted or thrown, it rotates the thing forward-wise:
When starts then rotate forward
You can add an optional force in percent from -100% to 100% (the default is 10%, and 0% stops):
When starts then rotate forward with 50%
Also see "propel forward".
... then allow/ disallow
This command toggles certain rights in the area. This command needs to come from a placement, to verify it's wanted by someone with editor rights. For instance, you can use the following to allow any non-editor to grow to any height in your area (independent of normal default limits):
When someone new in vicinity then allow any person size
The following undoes this right again:
When someone new in vicinity then disallow any person size
The following rights commands are available:
|When [some event] then [allow/ disallow] ...||emitted climbing||Allows teleporting onto thrown or emitted things.||Default: Allowed|
|emitted transporting||Allows thrown and emitted things to send people to areas/ marker locations.||Default: Disallowed|
|invisibility||Hides one's body spheres & name tag in the area (a disclaimer will be shown, for privacy information reasons).||Default: Disallowed|
|any person size||Allows non-editors to resize like editors, up to 2500% instead of the normally allowed maximum of 150%. (The minimum shrinking size on the other hand is always the same for editors and non-editors, at 1%.)||Default: Disallowed|
|highlighting||Allows non-editors to highlight certain things via the Area Highlight dialog.||Default: Allowed|
|amplified speech||Allows speech volume amplifying (including using edible microphones).||Default: Allowed|
|any destruction||Allows placements in this area to be (temporarily) destroyed via the "destroy nearby" command.||Default: Disallowed|
|web browsing||Allows people to show web pages on screens in the area.||Default: Allowed|
|untargeted attract and repel||Allows "set attract/ repel" commands even when they don't use specific name filters (or use name filters below 3 letters).||Default: Allowed|
All current rights are shown at the back of the Area dialog (click on your ring menu, then the mountain & sun button, to open that dialog).
... then show
This command can show a variety of different things, from videos to forum threads or name tags. For instance, to display the name tags of everyone in the area again for a while, use:
When touched then show name tags
The following "show" commands are available:
|When [some event] then show ...||board [board name]||Shows an Anyland in-world forum main page of that board's name, e.g. "When touched then show hangout". (You can optionally create your own custom boards, including area guestbooks or mailboxes.) This command requires placement or attachment, and one's action (e.g. touch), to trigger.|
|thread [link]||Opens a forum/ board thread for that link. You can copy the link from the backside of thread dialogs. This command requires placement or attachment, and one's action (e.g. touch), to trigger.|
|video controls||Shows the controls dialog for the closest nearby video screen.|
|camera controls||Shows the controls dialog for the closest nearby camera.|
|slideshow controls||Shows the controls dialog for the closest nearby slideshow screen.|
|video [url]||Plays the YouTube URL pasted (you can also copy it from the video controls dialog backside). Optionally add e.g. "with 0.15%" to adjust the volume.|
Loads that URL in a browser on the nearest screen.
Note Anyland can communicate with the page using
Note for Gifs, you can use the optimized enlarger URL like http://anyland.com/gif/?url=example.com/some.gif (paste your link into the Browser dialog to have it be auto-converted, ready for copying). You may use the additional parameters "width", "height", and "top" to set pixels, and "link" to define a URL for when the image is clicked.
|web [url] with 200% zoom||Like the normal "show web [url]" command, but setting a certain zoom size in percent. The percentage can be anything from 1 - 1000, and the "%" is optional. (These with options are combinable, e.g. "with navigation-free 200% zoom.)|
|web [url] with navigation-free||Like the normal "show web [url]" command, but disallows editing the URL, paging back & forward, or switching to videos.|
|web [url] with cursor-free||Like the normal "show web [url]" command, but hides the cursor and removes the ability to click into the browser.|
|web [url] with unsynced||Like the normal "show web [url]" command, but won't synchronize URL changes between people around. For instance, if the screen starts with "example.com", and one person clicks on a link on it that changes it to "example.com/foobar" for them, then another person around will still see "example.com".|
|chat keyboard||Lets you enter a text chat line.|
|line||Shows a line from the thing's center to this part.|
|line with 0.1 width||Like "show line", but setting a line width from 0 to 10 (the default is 0.01).|
|line with 0.1 start-width||Like "show line", but setting a start point line width.|
|line with 0.1 end-width||Like "show line", but setting an end point line width.|
|line with 0 width||Setting any width to 0 removes the line again.|
|name tags||Shows people's bottom name tags again for 30 seconds.|
|name tags 100s||Shows people's bottom name tags again for that many seconds (for up to 86400 seconds).|
|areas [search]||Opens an area search results dialog for your provided keywords. This command requires placement or attachment, and one's action (e.g. touch), to trigger.|
|inventory||Opens one's inventory. This command requires placement or attachment, and one's action (e.g. touch), to trigger.|
... then do creation part/ all creation parts
Use this command to change the appearance of a creation while you're editing it. The following for instance rotates the currently selected part:
When touched then do creation part rotate local 90 0 0
To apply a command across all parts of the currently edited thing, you can use e.g.:
When touched then do all creation parts rotate local 90 0 0
The following command options are available:
|When [some event] then do creation part/ all creation parts ...||move 0.0 0.0 0.0||Moves a part's x y z coordinates relative to the world.|
|move [local/ random] 0.0 0.0 0.0||Moves a part's x-y-z coordinates. Add "local" to move relative to itself instead of the world, and/ or "random" to move randomly by that amount.|
|rotate [local/ random] 0.0 0.0 0.0||Rotates a part's x-y-z coordinates relative to the world. Add "local" to rotate relative to itself instead of the world, and/ or "random" to rotate randomly by that amount.|
|scale local [random] 0.0 0.0 0.0||Scales a part's x-y-z coordinates relative to itself. Add "random" to scale randomly by that amount.|
|color [random] 0 0 0||Adjusts the red, green and blue values from 0-255. Add "random" to randomize the color.|
|saturation 0.0||Adjusts the color saturation from 0.0 - 1.0.|
|hue [random] 0.0||Adjusts the color hue from 0.0 - 1.0. Add "random" to adjust the hue randomly.|
|lightness 0.0||Adjusts the color lightness from 0.0 - 1.0.|
|duplicate [local/ random] 0.0 0.0 0.0||Copies & moves to the x-y-z coordinates relative to the world. Add "local" to move relative to itself instead of the world, and/ or "random" to move randomly by that amount.|
|material [material name]||Sets to the material of the given name, e.g. "very metallic" or "transparent glossy". The names follow the format as listed in the Thing Format reference.|
|become 1||Sets to a given state/ cell number (if that state exists).|
|become stopped 1||Sets to a given state/ cell number (if that state exists), but won't trigger that state's "When starts" event.|
|insert state||Inserts a new cell after the current one.|
|remove state||Removes the current cell, unless it's the last remaining one. (Note you can also remove a cell by pressing delete on your controller while the part dialog for that cell is opened; you will need to confirm the delete.)|
|undo||Reverts the last action, if any.|
... then go to inventory page [number]
If the inventory is currently open, this command moves to page 1 - 100 in it. For instance:
When touched then go to inventory page 42
If you use this command on an object that you then place into the inventory, it allows you to create a custom backpack paging interface.
... then add crumbles
This command will show crumbles falling off this part, e.g. when biting into a bread, or hacking a tree with an axe:
When consumed then add crumbles
Optionally, you can have the crumbles fall off of all parts of this Thing:
When consumed then add crumbles for all parts
... then type [text]
During creation editing, this will add the given text line (written in quotes) to a part script. This allows you to automate certain script lines, or parts of lines, that you repeatedly write, e.g.:
When touched then type "When consumed then become next in 5s"
... then set speed
Sets the speed of emitted or thrown things. Numbers range from -1000 to 1000. Use a single number like this:
When starts then set speed 20.0
Or use 3 numbers for x-y-z, like:
When starts then set speed 0 50 -10.5
Also see "add speed".
... then set constant rotation
Sets an ongoing x-y-z rotation for this part in degrees per second (without the need for it to be emitted or thrown), like:
When starts then 0 -20.5 0.
The rotation only starts once the object is saved, it will remain static while you're still editing.
For this command it can help to tick "Show center + direction" in the Thing's "..." option.
... then set snap angles to
Allows you to use a custom snapping value. The command needs to be triggered from a part that's attached to your body. Use e.g.:
When touched then set snap angles to 45
The normal angle snapping (when set from the backside of the Create dialog) is 90, the soft angle snapping is 22.5. Note your custom value will reset upon changing to another area.
To reset the value again to the current default snap settings, use:
When touched then set snap angles to default
... then set camera
Sets the desktop view camera positioning method, and how it follows. Use e.g. this to set the positioning method:
When touched then set camera position to optimized view
The positioning methods are the same as in the camera settings dialog (reachable from your Me menu) and can be any of the following:
default optimized view view from behind view from further behind bird's eye looking at me left hand right hand
While "default" mirrors a VR rendering straight to the desktop, "optimized view" does some optimizations that provide a better view, more closely resembling what you in VR would see. It can be a good setting if you want to stream for others or make a recording. It does take a separate rendering, though, so may not be as fast as the "default" view.
To set the type of camera following, use e.g.:
When touched then set camera following to smoothly
The available following methods are again the same as in the camera settings dialog:
default smoothly very smoothly none
"Default" follows directly, without any smoothing, so there may be some shaking when using this in desktop recordings or streams (but it also won't require a different camera render, so it can be very fast). The "none" option makes the desktop view camera remain statically at whereever it was when you picked the setting, it won't follow at all.
... then set gravity to
Sets the area's gravity. Use 3 numbers for x-y-z (the default is 0 -9.81f 0, and each value can range from to -1000 to 1000):
When starts then set gravity to 0 -3.5 0
To reset the gravity back to the default, use:
When starts then set gravity to default
... then set area visibility to
Limits the distance at which Thing placements can be seen to this many meters, like:
When starts then set area visibility to 15m
Distance is measured from one's head to a Thing's center. The minimum value you can use is 2.5, and the "m" is optional. Things using the "Show if far away too" settings are exempt. (Note large values do not increase visibility.)
The following resets this setting again:
When starts then set area visibility to default
... then set person as authority
This makes one (the person who interacted to trigger this command) the synchronization authority. This command needs a placement or editor attachment. Use e.g.
When touched then set person as authority
By default, the sync authority is always automatically handled. It will be whoever is in the area longest, switching around as people come and go. With this command you can specify who in particular is the authority; for instance, maybe you have a pinball game where the ball is using the "Stricter physics syncing" option. For smoothest physics visuals for the current pinball player, you may then set them to be authority.
... then set quest
This handles the achieving of Quests. Quests are mini-adventures or challenges where something at the end can be achieved, and achieving it is noted in forum threads. For instance, maybe you want to hand out a sceptre at the end of a dungeon, and everyone winning it will be noted in your dungeon's forum.
Quests are always started by reading board thread-starter comments that contain the text "[quest: someareaname - somequestname]", e.g. "[quest: dungeon - king sceptre]" (including the square brackets). Now that particular area, like in this case one named "Dungeon", can have a placement with this command to achieve the quest:
When touched then achieve king sceptre
... where "king sceptre" is the name of the quest, as defined in the forum thread.
You can also set to unachieve a quest (this marks it as still running, but unachieved again), as well as to fully remove it. Use e.g. the following if the quest was named "win boss battle" (and again it's important that the command runs from a placement of the area which was defined in the forum thread):
When touched then unachieve win boss battle When touched then remove win boss battle
For some example quests, have a look at the Anyland in-world "Quests" board.
... then set attract/ repel
You can have thrown or emitted items be attracted to this part with a certain strength, from 0 - 1000 (this command does not require a placement, and also works from thrown things, body attachments, held objects and so on). Use e.g.:
When starts then attract 10
This can be useful for wind blowing from fans, magnets, force fields and much more. When using negative values, or when using "repel" instead of "attract", objects will be pushed away (the following two commands do exactly the same):
When starts then attract -20.5 When starts then repel 20.5
You can optionally use a thing name filter to determine what gets attracted and repelled. For instance, if you just want to attract things which have the word "blue" in them (like "blue marbles" or "thebluemarble"), use:
When starts then attract blue 10
Add the keyword "forward-only" to have the attraction or repelling only be applied in the forward-direction:
When starts then attract blue 10 forward-only
If you don't want people to carry holdables which attract or repel just about any thrown & emitted object in your area, you can disallow the "untargeted attract and repel" right.
... then set run speed/ jump speed/ slidiness
The following lets you set the run speed, jump speed, and slidiness for desktop-mode keyboard movement in your area (the command requires a placement to work). Run speed is when one holds shift while WASD-moving. Jump is the upwards force when pressing the Space key, and Slidiness changes how swiftly one can change velocities when moving:
When starts then set run speed 10.5 When starts then set jump speed 5 When starts then set slidiness 15
Each value can range from 0 to 100. Use the keyword "default" to reset the value back to the default, like
When starts then set run speed default
Please note these commands currently have no effect on VR mode movement.
... then set light
This command sets further light properties (some going beyond values you can normally pick by adjusting a base shape). It can only be used along with the "When starts" event, like:
When starts then set light intensity 20.5 When starts then set light range 20 When starts then set light cone size 40
Intensity can go from 0 - 100 (the default is 12.5).
Range can go from 0 - 10000.
Cone size goes from 0 - 170.
... then set voice
"Set voice" allows you to adjust further text-to-speech properties for the "say" command. This command can only be used along with the "When starts" event, like:
When starts then set voice female 50% 10 pitch 5 speed When starts then set voice -5 speed When starts then set voice male When starts then set voice 50% When starts then set voice 5 pitch
The available voices are either "male" or "female". Pitch and Speed values are relative, so "10 pitch" would mean +10. Percentages provided refer to the volume, so 50% means "half as loud as normal" (you can use from 0 - 200%, 100% being the default).
Speech output considers the Thing's "Surround Sound" setting.
... then add speed
To add to the velocity of emitted or thrown things, use e.g.:
When starts then add speed 50.5 When touched then add speed 0 50 -10.5
Numbers range from -1000 to 1000. You can use either a single number, or 3 ones in succession to mean x-y-z.
Also see "multiply speed".
... then multiply speed
This lets you multiply the velocity of emitted or thrown things. For instance, to double the speed, you could use:
When starts then multiply speed 2
The maximum number you can use is 1000, and 0 is a full brake. To slow things down to e.g. 10%, you could use:
When told by any speedup then multiply speed 0.1
You can also use 3 values to multiply each of x-y-z:
When touched then multiply speed 0 2.5 -1
Also see "add speed".
... then change head
This command attaches a head to one or several people, and the head may in turn be configured to auto-attach an accompanying body. "Change head" only changes one person's head, while the plural "change heads" applies to everyone in the area at once:
When touched then change head to [drop from inventory] When touched then change heads to [drop from inventory]
The actual head needs to be dropped from your backpack when you prepare this command. If the Thing's "..." options have "Add current body" ticked for it (or "..." → More → "Add current body, non-clearing"), it will later when worn also attach the currently worn body.
Note this command triggers an Approve/ Undo dialog that automatically opens the mirror for the person whose appearance is changed.
Heads prepared with auto-attaching bodies can also be simply touched in the Inventory to be worn.
A head using "Add current body", where the head is also a direct edit-clone of the head worn while creating it, will in addition adjust its position and rotation appropriately as per the currently worn head.
... then resize nearby
A placement in the area can resize people nearby to a different size using e.g.:
When pointed at then resize nearby to 50%
Percentages may range from 1 to 2500 (note the "%" sign is optional to use). The minimum change to the default size needs to be 10% for this command to take effect.
... then stream
The "stream" command turns the current Thing Part into a camera, and then streams to somewhere, from in-world objects to the desktop window. Use any of the following (for any event, "touched" just being an example, as usual):
When touched then stream to nearest When touched then stream to [thing name] When touched then stream to desktop When touched then stream stop
Note only objects with video surfaces will be considered for streaming onto.
... then say
To have the part speak something (using the operating system's text-to-speech voice), use the "say" command, like:
When looked at then say hello world
... then write
To change a part's text, use e.g.:
When touched then write this is cool
Placeholders are supported, for instance:
When starts then write [hour]:[minute]:[second]
... then trail
To start a trail, which is a type of line following behind the current part (useful for e.g. 3D pencils to draw into air), use e.g.:
When starts then trail start
Trails always use the current part's materials and colors. You can also define a trail lifetime duration like this (the default is 15 seconds, the maximum is 60):
When starts then trail start with 10s
To use a thick start (lets the line start at its normal width instead of sharply) or a thick end, use:
When starts then trail start with thick-start When starts then trail start with thick-end
Note these keywords are combinable in the command. To end the trail again, use
When starts then trail end
... then project
The "project" command moves the respective part onto the next surface ahead. For instance, you could build a red dot laser pointer, or have legs reach the ground. Use e.g.
When starts then project
You can adjust the distance percentage between start and the surface ahead (note these setting keywords are combinable):
When starts then project with 100% reach
You can also adjust the maximum distance in meters at which to look for surfaces, from 0.01 - 10000 (the default is 1000):
When starts then project with with 50.5 max
To determine the distance in meters to use when no surface is hit (the default is 0, the maximum is 1000), use:
When starts then project with 1000 default
The following options align the projected part to the surface direction, or away from it:
When starts then project with alignment When starts then project with counter-alignment
... then reset
The "reset" commands handles resetting of a variety of things.
For a broad area reset that resets states, Thing and area.* variables, deletions, and Movables positions, use the following ("when looked at" being just an example event, any other can be used as well). Note this requires a placement:
When looked at then reset area
The following resets person.* variables of everyone currently here (this also requires the thing containing the command to be placed):
When starts then reset persons
This resets the Thing to its original placement position or rotation, e.g. for Movables:
When starts then reset position When starts then reset rotation
The following variant removes all of one's attached body parts:
When starts then reset body
To reset the leg attachment sphere positions and the legs they carry to their universal default position and rotation, use:
When touched then reset leg to default
And to reset the legs to the body auto-equipped default position & rotation (this falls back on the universal defaults if unavailable), use the following on body-attached scripts:
When touched then reset leg to body default
... then enable/ disable setting
Use the following to enable or disable settings (note this requires the part using the command to be attached to your body):
When touched then enable microphone When touched then enable snap angles When touched then disable show grid
To show e.g. a button glow when a setting is activated, it's best to catch the "When enable/ disable setting" so that the button state keeps in sync with dialog presses and more:
Cell 1 When touched then enable lock angles When enable setting lock angles then become next in 0.2s Cell 2 When touched then disable lock angles When disable setting lock angles then become next in 0.2s
→ This is the full list of available settings with more explanations.
... then turn on/ off/ ...
The "turn" command is used to turn a Thing, Thing Part or Sub-Thing on and off, or to just toggle its visibility or collidability.
The command stats with either just "turn" (relates to the Part), "turn thing" (relates to the whole Thing), or "turn sub-thing [optional sub-thing name]" (relating to this part's Included Sub-Things):
When touched then turn off When touched then turn thing off When touched then turn sub-thing off When touched then turn sub-thing marble off
Use "turn on" and "turn off" to enable/ disable both the visibility and the collidability of the object in one go:
When touched then turn on When touched then turn off
To only enable/ disable the visibility, or only the collider, use e.g.:
When starts then turn visible When starts then turn invisible When starts then turn collidable When starts then turn uncollidable
The Me dialog's "..." settings "See invisible (as editor)" and "Touch uncollidable (as editor)" can override these behaviors. A thing is also enforced to be collidable when shown in the Inventory, so that one can always grab it.
The "is" command always relates to handling of variables. For instance, you could keep track of a gold count, and apply a variety of math calculations to it. For instance:
When touched then is gold = gold * 10 + 1
You can then check again for these values using "when is". Note whenever you change a variable value, it will automatically look again in the area for "when is" checks that relate to that variable, triggering them again when qualifying.
All numbers are set to 0 at start. Up to 50 per tick are calculated.
These are the many ways you can handle variables:
|When [some event] then is...|
|somevalue = 10 * (othervalue + 0.5)||Sets thing value "somevalue" (this persists until everyone leaves).|
|area.somevalue = 10.5||A math expression to set area number "somevalue" (this persists until everyone leaves).|
|somestate||Sets "somestate" (can be any other name you choose) to be true (which equals 1).|
|not somestate||Sets "somestate" (can be any other name you choose) to be false (which equals 0).|
|person.somevalue = 2||Sets the value for a person (who has this attached or is closest) in the context of that specific area, e.g. person.gold = 5. Person values are persisting (unless e.g. Anyland is installed on a different computer) and they are guarded to not be read or set by other areas. This means if you set person.gold = 5 in Area A, it won't affect that person's gold in Area B.|
|somevalue = random(min max)||Get a random number between the first and second parameters (inclusive). "Somevalue" is just an example variable name and can be anything.|
|somevalue = randomfloat(min max)||Get a random floating point number between first and second parameters (inclusive).|
|somevalue = absolute(value)||Gets the positive number, e.g. -17.5 turns into 17.5.|
|somevalue = round(value)||Rounds a value to the nearest integer in mathematical fashion, e.g. 5.5 turns into 6.|
|somevalue = floor(value)||Rounds the value down, e.g. 5.8 turns into 5.|
|somevalue = ceil(value)||Rounds the value up, e.g. 5.2 turns into 6.|
|somevalue = smaller(a b)||Gets the smaller of the two number parameters. E.g. smaller(15 10) would return 10.|
|somevalue = larger(a b)||Gets the larger of the two number parameters. E.g. larger(15 10) would return 15.|
|somevalue = sqrt(value)||Returns the square root.|
|somevalue = exp(value)||Returns Euler's number e raised to the specified power.|
|somevalue = sin(value)||Returns the sine of the specified angle.|
|somevalue = cos(value)||Returns the cosine of the specified angle.|
|somevalue = tan(value)||Returns the tangent of the specified angle.|
|somevalue = log(value)||Returns the natural base e logarithm of a number.|
|somevalue = mod(number divider)||Returns the remainder of number divided by divider (a modulo operation).|
|somevalue += [millisecond] - [x]||Uses available placeholder values if they return numbers.|
|somevalue += 2||Increases the number named "somevalue" by 2.|
|somevalue -= 2||Decreases the number named "somevalue" by 2.|
|somevalue *= 2||Multiplies the number named "somevalue" by 2.|
|somevalue /= 2||Divides the value by 2. Division by 0 is ignored.|
|somevalue++||Increases the number named "somevalue" by 1.|
|somevalue--||Decreases the number named "somevalue" by 1.|
|[year]||The current year, like "2019".|
|[month]||The current month, like "03" for March.|
|[month unpadded]||The current month but without a leading zero, like "3" for March.|
|[day]||The current date's day number, like "09".|
|[day unpadded]||The current date's day number but without a leading zero, like "9".|
|[hour]||The current Anyland time's hour on the 24 hours clock.|
|[hour 12]||The current Anyland time's hour on the 12 hours clock.|
|[hour unpadded]||The current Anyland time's hour on the 24 hours clock, without a leading zero.|
|[hour 12 unpadded]||The current Anyland time's hour on the 12 hours clock, without a leading zero.|
|[minute]||The current time's minutes.|
|[second]||The current time's seconds.|
|[millisecond]||The current time's milliseconds.|
|[local hour]||Same as [hour], but for one's local time zone's time.|
|[local hour 12]||Same as [hour 12], but for one's local time zone's time.|
|[local hour unpadded]||Same as [hour unpadded], but for one's local time zone's time.|
|[local hour 12 unpadded]||Same as [hour 12 unpadded], but for one's local time zone's time.|
|[person]||The name of the person who has this body part/ wearable or sticky attached.|
|[closest person]||The name of the person closest to the object using this placeholder.|
|[thing name]||The name of the Thing using this placeholder.|
|[closest held]||The name of the closest currently held Thing, if any.|
|[people names]||An alphabetically sorted list of all the people currently in the area.|
|[people count]||The number of people currently in the area.|
|[typed]||What was typed using the "t" key shortcut or "show chat keyboard" command|
|[area name]||The name of the current area.|
|[x]||The area position x coordinate of this thing.|
|[y]||The area position y coordinate of this thing.|
|[z]||The area position z coordinate of this thing.|
|[thing values]||Lists all this thing's current variable values (0's may be omitted).|
|[area values]||Lists all area.* variables (0's may be omitted). This placeholder needs placement or editor rights to show its values.|
|[person values]||Lists all person.* variables of the closest person. This placeholder needs placement or editor rights to show its values.|
|[person... values]||Lists everyone's person.* variables of this name. This placeholder needs placement or editor rights to show its values.|
|[... value]||The value of a variable by this name, e.g. [gold value] or [area.lumber value].|
|[proximity]||The distance in meters to the next thing ahead. For instance, you could make a measuring machine which tells you how far away an object pointed at is.|
An object that can be picked up (even by non-editors of the area, always creating a temporary clone in the hands). Use "..." → "Holdable" (and optionally, "Remains Held") for the Thing to set this. Some commands, like "When triggered" or "When shaken", require the object to be a held Holdable.
Useful for e.g. board games or playing cards, these objects can be moved in the area. Use the Thing's "..." → "Movable" to set this. Movables reset to their original position once everyone left the area.
The whole created object and all of its parts. New objects are created by hitting the ring button and "Create Thing". Existing things can be edited again by context-lasering them and picking "Edit" (a new version will be saved upon hitting Done, leaving old placements unaffected).
An individual base shape part of a full Thing creation. You can use up to 1000 Thing Parts per creation.
A Thing that is attached as child to a Thing Part. There are Included Sub-Things (default) or Placed Sub-Things (from the area). You can include up to 1000 Sub-Things per Thing, and up to 100 placed Sub-Things.
States (also called Cells), ranging from 1 to a maximum of 50. Each state can use different positioning, rotation, color, scripts, "call me" names and more. For instance, a cube may be red and small in state 1, and green and big in state 2. Smooth transitioning animations between cells are handled automatically.
By default, every object in Anyland can be collected if you come across it in a public area. (You can also search for public objects all across the universe in your backpack's voice/ text search.) In addition, Things which are set to be Clonable in the "..." settings (or where the creator picked Me → "..." → "All my creations are clonable") can be used to edit & inspect, and create new spin-offs.
If you ever need help on a specific item of yours, try to make it clonable, then share it in the in-world forums (by dragging it out of your inventory while writing a comment). This way everybody else can check out your code.
One of the multiple shapes you can use to make up your objects. See the Thing Structure reference for a full overview.
A Thing that's persistently placed in the area (by an editor). Some commands (where noted) require a placement to work, as it guarantees an editor approved their use in the area.
Anyland Time (also shown at the backside of the main dialog, as well as on in.anyland.com), is a global time which is the same for everyone, useful for coordinating meetups. It's the same as Universal Time (UTC).
→ Have Questions, Suggestions & Feedback? Please post in our Steam forum!
This page is in the Public Domain.