The Interacting type lets you create dynamic livings or things of any sort! They can speak lines, accept things and give back in return, and have a bit of mind of their own!
Conversations
A basic way to let the Interacting speak some lines when a manyzen is near and says something, or hits space/ presses the action button, is to just write down a few sentences after hitting the
button – they will be picked from at random:
Hello there! Nice day isn't it? A cozy house here!
When one replies or hits action, a new line will be picked. To have the Interacting speak several lines immediately in succession, use a double space:
Hello there! Nice to meet you. Sit down please.
Want to react to a word being said? Try this:
Hears clock: Oh yeah, a nice clock on the wall there! Hears bye: See you later!
Above will work on any sentence containing the sub part "clock". Multiple words work as well:
Hears clock or time: Oh yeah, a nice clock on the wall there!
You can also add emphasis by using ** like this... it will show as if someone used caps when typing:
A **very** nice hat you're wearing!
Note the characters # / : > @ can't be used in normal sentences, but precede them with a backslash to say them anyway, like \#
Giving
What if you want the Interacting to give something in return? Use an action at the end of the line, preceded by a slash:
Hi there! Here's some gold. /gives gold
For above to work, include the item Gold with your Interacting by hitting the
button, then picking the respective item from your collection or creation panel.
If the interacting should get something first, use this, say for a soda machine:
Please insert coin. Gets coin or gold: *plonk* /gives soda
You can also give one of several items at random:
Gets coin: *plonk* /gives soda or candy bar or peanuts
To give something quietly, use:
Hi there! Here's some gold. /gives audio-free gold
Motions and Dynamics
Use the Interacting Motion type to change the appearance of the Interacting at any time. (It can be created by hitting the Change button after selecting Interacting.)
Please add the created motion item to the list by clicking the button. Then start the motion anywhere during interactions by preceding with a slash like this:
Gets ice: Yay! /jumps Gets gold: Wow! /happy gasp
You can also have multiple actions of a different type, say a motion and giving:
Gets ice: Yay! /jumps /gives gold
Just the same works for things of type Dynamic that you've made and included. For instance, if your Dynamic is named "spinning wheel", you'd start it once with /SPINNING WHEEL. If you want the Dynamic to fully replace the Interacting for the time it's running, tick the Replaces attribute when creating it.
Contexts
Want the living or thing linger on something for a while? Add further lines starting with a "-":
Want to hear about my life? - I grew up in the house to your right. - I went to school in the house to your left. - Hears school: School was fun! - Hears no or bye: Ok then, let's switch topic! >
The > above means the context will be left again. Even if a context is said, global events will be checked if the current choices don't yield a result.
If you want the list of a context to be immediately picked from after its introduction, use > like this:
Today I feel like... > - swimming. > - eating. >
Reacting
Interactings can react to a variety of things and states, and also set states:
Hears hello: Hi there! Gets apple or orange or fruit: Tasty, thanks! /is friendly Touches hammer: Ouch! /isn't friendly Sees waves or waving: Oh hi! /waves They wave: Oh hi! /waves Has apple and hasn't water: Now I need some water please. Isn't friendly: Give me fruit and I'll be your friend. Is friendly: There's treasures in the basement! Hits beach ball: *boink*
HEARS reacts to speech being said,
GETS to things given,
SEES to motions, verb typing or possession thing selecting,
THEY is synonymous to SEES here,
TOUCHES to equipment being used (or if you just uses "TOUCHES:", a non equipped action too, including the item being clicked/ selected in a holder),
HAS or HASN'T will check if the item has been given before,
IS and ISN't will check for a state,
HITS will react to an item being thrown at it, provided the Interacting has the attribute Solid ticked (use just "HITS:" to react to any item at all).
LINE-TOUCHES reacts to a Liner-line being started on it.
A match is found for word parts too, so "GETS GOLD" would also trigger when the Interacting is handed a "SATURN GOLD BAR".
(Note that important interactions will be dealt with immediately even when outside the current context, so e.g. GETS COIN on a global level will even be triggered when in a sub context. The order is that first, the interacting looks for HEARS, GETS, SEES and TOUCHES in the local context; then, for HEARS, GETS, SEES and TOUCHES globally; then for any other line in the local context, or if not currently in a context, globally.)
Note for negations using and/ or: While you can use "has salt and sugar", you can't use "hasn't salt and sugar", but need to expand to e.g. "hasn't salt and hasn't sugar" (same with "isn't..."). This clarifies whether the meaning is "has neither one of salt and sugar" or "hasn't both salt and sugar".
The following trigger upon moving towards the Interacting or entering it:
Approaches: Hi! Nears: Hi! Reaches: /bumps 270 40 Entered: /to subway Viewed: Hi!
APPROACHES can be used if you want the interaction to start when someone starts to get into medium range even if they don't stop and press controls or keyboard.
NEARS is similar to approaches, but for a shorter range, just near-by.
REACHES is similar but triggered when one overlaps the Interacting.
ENTERED (or ENTERS) triggers on a jump motion indicating one wants to take a portal or enter a door and such, useful in combination with the /to keyword for areas.
VIEWED reacts when someone stands still over an Interacting, similar to how Medium or Viewable blocks are triggered.
You can also split longer chains by using either -and- or -or-:
gets apple and orange -or- gets big orange: That'll do!
You can also provide a reaction to being touched by anything, hearing anything at all and so on:
Touches: Ouch. Hears: Hi.
You can set multiple states like this:
Gets apple: Tasty! /is friendly /is full
Interactings remember their belongings and states, except if a area hasn't been interacted in for a week. By default, "is" and "has" states are the same for everyone who's around during the interaction, but will not affect people who may stumble on the interacting at a later time. To set an "is" or "isn't" state which should only relate to one person and not the bystanders, use an underscore like this:
Gets cherry: Thanks! /_is friendly Hears go away: Oh! /_isn't friendly
Quoting item names
By default if you write e.g. GETS APPLE, partial matches will work too, so in this case if the Interacting receives an item named "Red Apple" it will match. This is useful in many cases, but can lead to issues if say you want to differentiate between getting "sugar" and "sugar glaze" (as the word "sugar" is contained in "sugar glaze"). To avoid allowing a partial match and use a full comparison, use quotes around the name:
Gets "sugar": Thanks for the sugar! Gets sugar glaze: Thanks for the sugar glaze!
Note as a special case, HEARS HI will always be considered HEARS "HI" and not allow sub matches. Special characters like "!" are excluded though and don't need to be matched even with quoted matching.
More actions
This will start and show a timer:
Hears start: Starting timer now. /timer Hears timer: The time since start is [timer]!
This will handle a 5 second countdown in editor-based areas:
REACHED: STARTED! /COUNTDOWN 5 HEARS STOP: STOPPED! /CLEARS COUNTDOWN SOMEONE AT COUNTDOWN 3: 3 SECONDS LEFT! SOMEONE FINISHES COUNTDOWN: /HARMS 100
Optionally, you can use e.g. "/countdown invisible 5" to not have the seconds be displayed. You can also add or subtract seconds by using "/countdown +10", "/countdown -5" and similar. (The Someone event may fare best in an area-global interacting.)
You can also open media from location snapshots, YouTube and SoundCloud (try the Paste dialog from the bottom left menu to test how the medium will display):
Hears show: https\:\/\/www.youtube.com\/watch?v=g0BcvjYZ3xg
To throw someone use a direction in degrees and a force from 0 to 100%:
I'll throw you over the gap. /bumps 315 70
By default the bumps value will be added to the current velocity, but if you want to use an absolute velocity, you can write:
I'll throw you over the gap. /bumps absolute 270 50
To transport someone use a direction in degrees and a distance from 0 to 100%:
I'll transport you over the gap. /transports 315 70
To transport someone to the location of the Interacting:
I'll transport you here. /transports here
To throw an item use the direction in degrees, a force from 0 to 100%, and the item name:
I'm strong, wanna see? /throws 315 70 heavy rock
You can also throw up to 10 different items at once by separating with a comma:
Catch! /throws 270 20 gold coin, 250 20 silver coin
To rumble and shake things (similar to the rumbling environment), from 1-15 seconds:
Maybe I shouldn't have pressed this button. /rumbles 5
You can also harm with a strength value of 1 to 100:
Hears I stole your gold: Oh no! /harms 25
Reversely, you can heal with a strength from 1 to 100:
I put a healing spell on you! /heals 100
To show a Writable, Readable, Medium or Holder, include it with the Interacting and use (this can also be used together with area-global Interactings):
Someone says help!: /shows help scroll
You can also lock to a specific Holder page:
Touches: /SHOWS ONLY-HOLDER-PAGE 2 CHEST
To play a Sound or Music block, add it to your object reference list and use its name (you can currently find Sound objects on the Item Repo board's Sound category):
Someone says a horse enters a bar: /plays laughter
For Music, you can also stop the playback by using:
/stops
You can also check if Music is currently playing:
HEARS TOGGLE AND CURRENTLY PLAYING: /STOPS HEARS TOGGLE AND NOT CURRENTLY PLAYING: /PLAYS SCHUMANN
In editor-list based created areas, you can do a 15 minutes (or 1 day) area lock on someone who's not an editor:
/lock 15 minutes /lock 1 day
By default, a double space between two commands or lines of texts creates a 2-seconds delay in-between. This gives actions or speech enough time. To decrease or increase this time, use the /waits command and pass a number of seconds (you can use any value from 0.25 to 60, and optionally add an "s"):
HEARS HI: WELL... /WAITS 4.5S ...HI!
For created areas, to have someone exit an area to the base areas:
Congratulations, and bye! /to elsewhere
Or to let them go back to the previous area they were in:
Bye! /to last
(Note Creator will turn /bump into /bumps and so on to help avoid issues. Also note, wearing a Wearable with the "Transport resist." attribute avoids teleports.)
Markers
Markers are added by preceding with # and can be jumped to by using > marker name (marker contexts will otherwise not be picked at random):
I'm your waiter today. How can I help you? - hears menu: Oh sure! > menu - Nice weather outside. - Great table you picked, next to the window! - hears bye: Ok, see you! > #Menu I can suggest chocolate carrots or soup. - hears soup: Excellent choice, I'm back in a minute! > - hears chocolate or carrot: Coming up, thank you! > - Hmm, we don't seem to have that...
Reacting to Someone not at arm's length
Use the Someone keyword to react to things happening nearby even if the person isn't over your Interacting. For instance:
Someone wears green hat: Our latest hat, isn't it nice? Someone mounts DeLorean: {I can pick 1955 or 2014} Someone swims: {Too cold!} /bumps 270 70 Someone consumes fries: {A coin in my fries!} /gives coin
These events will trigger the moment something begins to happen, e.g. when one isn't mounting anything, then enters the DeLorean (see below for how to check a state). The following verbs are supported:
someone | uses | [name of equipment, Liner, or actionable Dynamic, like axe] |
someone | takes | [name of holdable, like teddy bear] |
someone | throws | [name of holdable] |
someone | emits | [name of emitter, aimable or emitting Dynamic, e.g. laser gun] |
someone | mounts unmounts | [name of mountable, like car] |
someone | wears unwears | [name of wearable, like hat] |
someone | attaches unattaches | [name of attachable Dynamic, like parrot] |
someone | embodies unembodies | [name of body] |
someone | equips unequips | [name of Brain] |
someone | says | [what is being said, like hi] |
someone | shouts | [what is being said in all-caps or using a microphone item] |
someone | does | [a motion word preceded by slash, or any typed word, e.g. wave] |
someone | gathers | [name of gatherable type or item with gatherable attribute, like egg] |
someone | plays | [name of instrument, like blue piano] |
someone | plays-notes | [notes sequence] |
someone | consumes | [name of consumable, like cake] |
someone | sits on | [name of thing, like chair or *] |
someone | lies on | [name of thing, like bed or *] |
someone | hard lands on | [name of thing, like bridge or *] |
someone | reads | [name of readable or writable opened, like The Board or *] |
someone | writes | [name of writable a comment is saved to] |
someone | hits | [name of thrown or emitted item which collides with a person] |
someone | touches | [name of someone else's equipment that a person is hit by, like hammer or *.] |
someone | catches | [name of thrown item someone caught] |
someone | kills | [name of Mover-moved Body that is being killed by one's harmful equiment] |
someone | selects | [name of area possession thing that was chosen] |
someone | holder-selects | [name of thing in holder that was chosen] |
someone | crumbles | [optionally, name of crumbled thing] |
someone | finishes countdown | - |
someone | at countdown | [number of seconds, e.g. 12, that was reached] |
someone | acts* | - |
someone | climbs** | - |
someone | swims** | - |
someone | harmed** | - |
someone | transports | - |
someone | bounces | - |
someone | dies | - |
someone | jumps | - |
someone | activates*** | [name of activater, flexible, Dynamic, Multi or Happening, like red button] |
someone | arrives**** | - |
*Acts is triggered when e.g. one hits space on desktop, or presses the action button on a tablet, and no other action like throwing or mounting is triggered.
**As with other verbs, the event is only triggered once at the start, e.g. if one splashes into the water or just started climbing.
***If you want, you can draw the Activater near-invisible and tick its Silent attribute, to be used as a catch-all trigger for Interacting reactions.
****Arrives is triggered when someone is first spotted, i.e. when walking towards the broad range of the Interacting, or originally joining Manyland somewhere in its range.
Checking and setting of Mountables, Wearables & Holdables
You can check for the availability of someone's mountable, wearable or holdable using they wear, they mount, they hold and they embody, (or they don't wear and so on), followed by the object name:
someone mounts horse and they wear crown: ... someone says hi and they don't mount delorean: ... someone mounts delorean and they hold key: ... someone says abracadabra and they embody magician: ... nears and they have attached parrot: ... nears and they have equipped blue brain: ...
They have attached and they don't have attached is for Dynamics using the attributes Attached, Follows or Closely Follows. They have equipped and they don't have equipped is for checking if they're currently using a Brain. For your checks, note that both bodies and body dynamics can be brought into an area from the outside by non-editors too; wearables, mountables and holdables cannot.
You can also omit the object name like this to check against any object:
someone mounts horse and they wear *: ... someone arrives and they don't embody *: /gives body1 or body2
(Embodying is considered to be when one has put on a body outside the small and big base bodies.)
To have somebody put on a body, mountable or wearable, just use the /gives command as you would for holdable items:
/gives crown /gives glitchbody or glitchbody2 /gives teddy bear /gives monster truck
To remove these, use:
/removes wearable /removes mountable /removes holdable /removes dynamic /removes brain
To remove all, use:
/removes *
The following example has one drop an egg on every jump:
someone jumps and they hold egg: {Shaky!} /remove holdable
Another example, the Interacting character bowing when they are greeted by someone dressed as queen or king:
Hears hi and they wear crown: I'm not worthy! /bows
Or this:
Nears and they hold sword: You're dangerous! /bumps 180 70
Checking someone's states via They Are
While IS and ISN'T check the Interacting's own state, the following check the state of the person who's interacting with it:
Hears hi and they are friendly: Hi! Hears hi and they aren't friendly: Hmm...
And to set these:
Hears I Am Friendly: Gotcha! /they are friendly Hears I Am Unfriendly: Ok! /they aren't friendly
Or to set/ remove multiple states at once:
Hears hi: Hi! /they are friendly /they are smiling Hears no: Oh! /they aren't friendly /they aren't smiling
The THEY ARE checks only relate to the specific area you are in, so setting /THEY ARE FRIENDLY in area Blue Castle would still be false in area Yellow Ship. (Note states fade out if no area state has been set within the last 7 days.)
As area editor during testing, you can see your current states and remove certain ones by speaking "mystates!". You can also speak e.g. "theyare friendly!" or "theyarent friendly!" to set and unset your states.
Toggling auto-healing
By default, if one steps on a harmful, the energy will restore again over time. To disable or enable this auto-healing you can use e.g.:
Someone arrives: /they don't auto-heal Hears heal: /they auto-heal
Checking someone's movement direction
You can use the following to check in which direction someone is going – for instance, on the "reaches" event:
reaches and they move right: Going right I see! reaches and they move left: Going left I see! reaches and they move up: Going up I see! reaches and they move down: Going down I see!
Triggering someone's motions
You can trigger a body motion for someone like this:
... /they cry
This will first try to use the motion by this name in someone's motion set. If not available, the things reference list provided with your Interacting is used and looks for the motion named e.g. "cry".
Functionality
There's some functionality you can include wrapped in square brackets, like to say the name of the person:
Hi [name], nice day isn't it!
Or the name of anyone who's around
I'm picking ... [someone] for the next round!
A random number from 1 to 6:
I rolled a [number 1 6]...
A random number from 1 to 6, repeating 3 times:
I rolled a [number 1 6 3]...
A random letter:
And the letter is [letter a z]
5 random letters, each ranging from a to c:
And the letters are [letter a c 5]
A random pick from a comma-separated selection:
In my backyard there's a [random cat, dog, horse]
The current Manyland Time:
The time is [time]!
A list of 5 random items the interacting has received:
I have [list has 5].
A list of 2 random states the interacting has set:
My states are [list is 2].
The last word being told:
[heard]! Molly wants cracker!
The last item received:
Thanks for the [received]!
And a chance in percent:
Is [chance 20]: You're lucky!
To check if someone's an editor here (that is, if they may build, remove, and carry their own equipment from the side panel):
Is [editor]: Hi editor! Isn't [editor]: Hi non-editor!
To check if someone's logged in or not:
Is [account]: Hi logged-in person! Isn't [account]: Hi non-logged-in person!
The value of a number:
You have [value coins] coins.
To see if someone's currently sitting (also see the "someone sits on..." event):
Is [sitting]: Relaxing. Isn't [sitting]: Good to stand up.
To see if someone's currently lying down (also see the "someone lies on..." event):
Is [lying]: Very relaxing. Isn't [lying]: I'm not lying down.
To check the number of people around, use:
someone arrives and [people] >= 10: {Wow, [people] people here!}
To check a person's age since they first arrived in Manyland, use:
someone arrives and [age in seconds] <= 60: Hello newcomer! Hears how old am I: You are [age in days] days old!
For the name of the current area or sub-area, use e.g.:
Welcome to [area]!
If you only want show the name of the main area, even if you're in a sub-area, use:
Welcome to [main area]!
To have a door go to the currently advertised area, if any:
entered: /to [ad area]
To show the text that comes with the currently advertised area, if any:
[ad text]
Affecting an object or living below
If you tick the Affects Below attribute of Interactings, they will take effect on whichever object or living is below it. This way, you can also help Body items placed on the ground to come alive.
Area possessions
In created areas, Interactings can add to or remove from one's area possessions bar, which is found when they press down. Use "THEY POSSESS ..." and "THEY DON'T POSSESS ..." to check, and "/THEY POSSESS ..." and "/THEY DON'T POSSESS ..." to set these, like in these examples:
Hears hi and they possess black belt: Hello guru! Someone says abracadabra and they possess magic skill: /magic skill /transports 315 70 Someone kicks and they possess kick: /kick motion Hears hi and they don't possess black belt: Hello apprentice! Someone arrives and they don't possess guide book: /they possess guide book Nears and they don't possess *: Do you want any items?
You can also set or remove multiple possessions at once:
hears where's my prize: Here... /they possess crown /they possess sceptre
As usual, add the items you're handing out – and in this case, also the ones you are removing – to the object reference panel during creation (and don't delete them from your collection or creation panel later, to ensure they'll be available).
Possessions are useful for equipping more permanent skills, motions, items, awards, priced items, notes, keys and anything else you find necessary. You can also use the area-global interacting to, for instance, add a guide book readable or help forum writable for everyone upon arrival. Possessions also put emphasis on items someone may need at a later stage, while still keeping inventory management simple for everything else picked up. (Whereas states fade out in a week and are different across devices of a person, possessions are permanent and cross-device.)
You can attach custom verbs like 'push', 'use' and so on, by naming a Motion or Thing type as such. When it is now selected in the possession bar (or spoken), an interacting nearby checking THEY PUSH or SEES PUSH and so on can react (for Motions, you may want to use the 'invisible' attribute if they are not meant to have a visual effect):
They view: {This paper has the number 5 on it} They push: {This can't be pushed...}
Here's a video tutorial showing custom verbs.
When you add a possession that doesn't exist yet, one will be alerted to it by seeing the area possessions bar show, the new thing placed into it.
Note as an area editor, you can speak "dontpossess somename!" in chat to remove something by that name from the possession bar again. Speaking "dontpossess *!" will remove everything from the possession bar.
Numbers
You can set numbers like this:
hears add: Ok, adding! /+1 coins hears subtract: Ok, subtracting! /-3 coins hears multiply: Ok, multiplying! /*2 coins hears divide: Ok, dividing! /:2 coins hears set: Ok, setting! /=10 coins
These coins are the coins of the Interacting. If you want to set the number for the person who is currently interacting, you can do so in areas by using the area possession bar. First add the item, like a Thing named "coins", to the Interacting's object reference list. Then use:
hears add: Ok, adding! /+6 their coins hears subtract: Ok, subtracting! /-3 their coins hears multiply: Ok, multiplying! /*3 their coins hears divide: Ok, dividing! /:2 their coins hears set: Ok, setting! /=22 their coins
All numbers are integers and will be rounded where needed. Note you don't need to use "/they possess coins" first, as that will be automatically handled if the item wasn't already available in the possession bar. Anything you want can be a number, for instance:
/+5 their magic skill /+1 door knocks
You can chain up multiple commands without waiting time in-between. Just use them one after another:
Let's swap our money! /-2 their gold /+2 gold /+1 swapping rounds
You can check for a number like this:
hears am i rich and their coins >= 10: Yes! hears am i rich and their coins < 10: No!
The comparison operators are:
< | lower than |
<= | equal or lower than |
> | greater than |
>= | equal or greater than |
== | equal |
!= | unequal |
You can also output a value or use it in calculations:
hears how many: You own [value their coins] coins! hears make me rich: Ok! /=5 factor /+[value factor] silver
The placeholders [number ...], [people], [age in seconds], [age in days] and [ads count] can be used when assigning a number (note the double space after the first "dice"):
HEARS ROLL: ROLLING... /=[NUMBER 1 6] DICE ...a [VALUE DICE]!
By default, if one isn't moving, possession number changes result in the possession bar showing along with effects. To avoid this use the "effects-free" keyword:
hears give me: ok! /+1 effects-free their gold
You can count global events as usual by using an area-global interacting. For instance, the following adds to the diamonds value and uses self-speech to show the overall count (note there's two spaces after the "waits 0.25" command to start a new commands set):
Someone gathers diamond: /+1 their diamonds /WAITS 0.25 {[VALUE THEIR diamonds]}
By using an area global, you can also manage an area possessions stack to grab items from one by one to then be thrown or used. Note in this example, "marbles" is the drawing of several marbles as type Thing, and "marble" is the holdable item that is handed out:
Someone selects marbles and their marbles >= 1: /-1 their marbles /gives marble
If you want to, you can limit the values range a number can hold, and optionally make it disappear from the possession bar if it reaches zero or below. Use e.g. an area-global Interacting with the following command:
someone arrives: /limits their magic skill 0 10 auto-disappears /limits gold 0 20
Limits accepts the parameters item name, minimum value, maximum value, and the optional "auto-disappears" keyword. You can use several limits commands in one go.
Placing things
The Interacting can place things you added to the object reference list by using the places command:
Hears hi: /places 5.25s crate -2 0, crate -1 0
The first parameter, "5.5s", is a time in seconds from 1 to 15 for which the placement will remain. Then follows a comma-separated list each using the object name and x-y offsets. "crate -2 0", for instance, means the crate will be placed 2 to the left and 0 vertically (offsets can range from -20 to 20; negative y-values mean higher up).
By default, the placing is accompanied by sound and dust effects, but you can turn off either by using the keywords audio-free and visual-free:
Hears hi: /places audio-free visual-free 5s crate -2 0
To remove a block, use the word "nothing" as object name:
Hears hi: /places 5s nothing 0 1
If you place several of the same things, you can avoid the object name in successive placements like this:
Hears hi: /places 3s crate 1 0, 2 0, 3 0, water -2 2
Solid and Passable
You can make the Interacting be solid by ticking the "Solid" attribute after you hit the attributes "..." button. To have the path be temporarily passable again, trigger an Interacting Motion for which you picked the attribute Passable. For instance, if your Interacting Motion is named "Mechanic Door Opens", you could use:
Touches key or gets key: /mechanic door opens
You can also reverse this by making the Interacting passable but its Interacting Motion solid... for instance, to create a bridge that appears after a lever is pulled.
Self-guiding Speech
You can let someone say something to themselves as a guiding speech using curly brackets, like this:
Eat me! {I think this flower looks poisoned.}
Interactings reacting to each other
Interactings can react to motions of other Interactings in the neighborhood via the @ symbol. For example, if the king is unhappy all the advisors in the court will start to cry...
King:
Hears I ate your soup: That makes me sad! /cries
Court Advisor (note there's a double space after "waits 1.25"):
Sees @king cries: /waits 1.25 *bohooo* /cries
This will work on up to 10 other interactings.
(Note the king does not necessarily need an Interacting Motion showing for this to work, the /cries will have the effect either way.)
You can also tune in to what another Interacting says (here we quote the name as it contains a space):
Hears @"queen susan" That makes me sad: /waits 1.25 Me too!
Activaters in the world send a special message "activates", which you can react to like this:
Sees @"red button" activates: /bridge shows
Checking for current and ended motion, dynamic or music
You can use the "currently" keyword to test if the Interacting's motion or dynamic of that name is currently running – in this case, it's called "dancing":
HEARS HI AND CURRENTLY DANCING: La la la...
This also works with Music you started with /PLAYS if you use "CURRENTLY PLAYING".
Alternatively, to check if it's not running:
HEARS HI AND NOT CURRENTLY DANCING: ...
To do something at the time the motion or dynamic ends, use the "ends" event followed by the motion name, like:
ENDS DANCING: Sorry, I was busy dancing. Hi!
(Note the end event is only reacted to if the Interacting isn't currently busy executing other commands of yours, e.g. if it's not in a pause mode using the "waits" command.)
Hearing notes
The Interacting can listen for a special sequence of instrument-played notes:
HEARS-NOTES C D# G C: WHAT A NICE TUNE!
If the octave is important, you can also use:
HEARS-NOTES C3 D#3 G3 C3: /HEALS 100
To see the notes and octave labels, on desktop, right-click the opened instrument keys. (You can also open the browser console to see the current sequence.)
By default, a match is also found if one plays a longer sequence which includes the sequence you're checking for. For instance, if one plays C D E F and you check for D E F, that would be be triggered. Sequences are restricted to 15 notes maximum, and notes older than 10 seconds are fading out. For a more precise match in time, you can also use quotes around the notes sequence (though this then requires 10 seconds of silence before one plays the sequence).
Setting focus
If you want to set the camera focus, like if there's an event with a center stage where people are sitting around, you can use "/they focus here" (this will work only in editor-list based areas). An example block:
SOMEONE ARRIVES: /THEY FOCUS HERE SOMEONE SAYS START FOCUS: /THEY FOCUS HERE SOMEONE SAYS STOP FOCUS: /THEY DON'T FOCUS HERE
Area-global Interactings
A special type of Interacting is the area-global Interacting. One per area can be included in the area settings, and will then listen to SOMEONE events whereever one may be in this area. For instance, the following would add a magic spell for the whole area, whereever spoken:
Someone says Baparada: /they magic motion
In this example, specific Interactings placed in the environment could then react to this spell appropriately, but the visual effects would be consistent for the whole area.
The following would play a song whenever the player joins this area, whereever they may have been:
Someone arrives: https\:\/\/soundcloud.com\/fairless\/the-swimming-song
The following listener on the other hand area-globally tracks if someone ever picked up an item called keycard:
Someone takes keycard: /they possess keycard
Area-global Interactins can also e.g. speak and throw objects. The originating position will be above one.
Checking if in an area
You can use the following to have the Interacting check if it's in a particular area or sub-area:
Hears hi and in beachoria: Welcome to Beachoria! Hears hi and not in beachoria: Welcome to Somewhere!
By default, "in" checks for word parts too, so above would say "Welcome to Beachoria" even when the area name was "Beachoria Ship". To restrict this to a full text comparison only, you can use quotes:
Hears hi and in "room 1": Welcome to Room 1! Hears hi and in "room 10": Welcome to Room 10!
(Please note the in-check compares against the current area or sub-area name, so if you're in e.g. a Beachoria sub-area called "Cave", then a check for "in Beachoria" would return false, and it would be "in Cave".)
Adjusting area settings
You can adjust the following settings, like in an area-global Interacting (you can switch between "can" or "can't", or "don't", like "they don't always see instrument note labels"):
Someone Arrives: /they can't drown Someone arrives: /they can't open map Someone arrives: /they can't see name tags Someone arrives: /they can't paste Someone arrives: /they always see instrument note labels Someone arrives: /they can't boost Someone arrives: /they can use all boosts // enables e.g. non-editors to use Interacting boosts, default is can't Someone arrives: /they can map-transport // to allow map-transports for non-editors, default is they can't Someone arrives: /they can use any item // to allow usage of any item from the collection bar for non-editors (e.g. mountables or aimables), default is they can't Someone arrives: /they can't remove dynamic // to disallow unattaching of dynamics, default is they can Someone arrives: /they can't remove wearable // to disallow unwearing of wearables, default is they can Someone arrives: /they can't remove holdable // to disallow unholding of holdables, default is they can Someone arrives: /they can't remove mountable // to disallow unmounting of mountables, including flying mountables, default is they can Someone arrives: /they can't remove brain // to disallow unequipping of brains (this also allows down arrow catching, and won't show the dot in the name tag), default is they can Someone arrives: /they can be affected by non-logged-ins // default is can't Someone arrives: /they can be affected by non-friends // default is can't Someone arrives: /they can't be affected by friends // default is can Someone arrives: /they can be affected by brain-equippers // default is can't
Determining where relocations go
If an area exceeds its capacities, people will become relocated (at first, this covers newly arrived non-editors). The relocation may go to Elsewhere and others places by default, but you can override this setting with your own preference by using e.g.:
someone arrives: /relocations go to myareaname
... where "myareaname" is your area or sub-area name. After the relocation to the new area, relocations will go back to the default (and can't be overridden again for the remainder of the person's sessions). If you want to lower the chance the alternate area goes over capacity again, you can also define a few relocation alternatives and randomize which one is picked (see the Chance command).
Comments
If you want to add private text that won't be active, wrap it in "/* ... */" or precede it with "//":
/* This is a multi-line comment */ // This is a single-line comment
(Note "://" will be interpreted to be part of a URL, not a comment.)
Setting a special Font
You can set the Interacting's speech font using the /FONT command. For instance:
SOMEONE ARRIVES: /FONT WILD
The setting persists for the remainder of the interactions (until another /FONT command is used). You can also apply the font only once for what's currently being said using the ONCE keyword, like:
HELLO /FONT ONCE WILD HI THERE NICE TO MEET YOU
The following font names are available:
ACTION BLACK BLACKSMALL BLACKWHITE (the default) BULKY CASUAL CUTE ELEGANCE FAINT HIGH INVERTED LOW MELODIC SHAPES SMOOTH STRICT WHITE WHITESMALL WIDE WILD
Examples
A soda machine that takes a coin and lets you pick a drink
*INSERT COIN* GETS COIN: *CHOOSE MOCA MOLA, MANTA, MOUNTAIN MEW* - HEARS MOCA: *PLONK* /GIVES MOCA MOLA /SODA MACHINE SHAKING > - HEARS MANTA: *PLONK* /GIVES MANTA /SODA MACHINE SHAKING > - HEARS MOUNTAIN: *PLONK* /GIVES MOUNTAIN MEW /SODA MACHINE SHAKING > - *WE ARE OUT OF THAT*
A machine that only gives items if a button was pressed
To the left is an item dispenser machine, but it will only give you items if you activated the energy button a few steps to the right first. It will then go into a "glow" motion to indicate that it's on.
The dispenser machine:
SEES @BUTTON ON: *BRRM* /IS ACTIVE /DISPENSER MACHINE ACTIVATES SEES @BUTTON OFF: *FZZLE* /ISN'T ACTIVE ISN'T ACTIVE AND TOUCHES: *DISPENSER OFF, PLEASE ACTIVATE* IS ACTIVE AND TOUCHES: *DISPENSER ON, TAKE ITEM* /GIVES MOUNTAIN MEW
The button:
ISN'T ON: *ENERGY TURNED ON* /IS ON /ON /ENERGY WAVE IS ON: *ENERGY TURNED OFF* /ISN'T ON /OFF
A quiz bot
For instance, if you want to have an Interacting ask a group quiz questions, you could do it like this:
Hi I'm a quiz bot, I listen to "next" and "reveal"! Hears next: What's the first name of actor B. Pitt? - Hears reveal: The answer is Brad! > Hears next: What's the first name of actress T. Hedren? - Hears reveal: The answer is Tippi! > ...
(There's a 60 character limit for single sentences so try to use double space to split into several where needed.)
A door opening if it was unlocked
In the following example, a door will automatically remember if it was unlocked before by this person, and will then open when one nears it even if no key item is being held. "Open door" here is a motion set to attribute Passable, whereas the Interacting is set to Solid:
ISN'T UNLOCKED: {I NEED A KEY FOR THIS DOOR} TOUCHES KEY OR GETS KEY: /OPEN DOOR /IS UNLOCKED NEARS AND IS UNLOCKED: /OPEN DOOR
A sheep
This example comes courtesy of Godiva and shows you how to create a sheep (thanks Godiva!):
How to create a poisonous milkshake
In this tutorial by Godiva, you'll learn how to mix and blend things to create new items:
Creating a Spinning Wheel
This Interacting utilizes the Dynamic type to create a spinning wheel.
Creating a Prize Machine
A Smith forging a reward
Interactings can check whether a motion/ dynamic runs, and when it ends. Here's an example use. Let's start by what is seen when trying this:
- The Smith tells you she needs a hammer when you interact with her
- You can then grab the hammer (of type Equipment) and give to her
- She hammers on the empty Anvil – nothing happens!
- Now grab the hot iron (of type Item) and put it on the anvil
- Give the hammer to her again... she'll now be able to forge something for you!
How is this done?
1. The Smith Interacting has an associated "Hammering" Dynamic. After she's done hammering, she'll return the hammer to you (but only if you didn't pick up something else in the meantime):
TOUCHES AND THEY DON'T HOLD HAMMER: WHERE'S MY HAMMER? TOUCHES HAMMER: THANKS! /REMOVES HOLDABLE /HAMMERING ENDS HAMMERING AND THEY DON'T HOLD *: /GIVES HAMMER
2. The Anvil has a Motion called "Holding Hot Iron", which is triggered when it gets the Hot Iron (we're checking the "Long" attribute for this Motion, so that it displays for a longer time)
3. When the Anvil sees the Smith hammering, it will check if it's currently holding hot iron to hand out the reward:
GETS HOT IRON: /PLAYS HITTING METAL /HOLDING HOT IRON SEES @SMITH HAMMERING AND CURRENTLY HOLDING HOT IRON: /GIVES SWORD
Making a Body come alive with "Affects Below"
Here's an example of using the "Affects Below" attribute. First, let's say you remember a Body made by Quirky, so you'd search for "by quirky" and drop one of the results onto the ground:
Now, we'd make an Interacting with the following text, but make the drawing itself just some transparent dots:
STEP AWAY, HIT ACTION, I'LL THROW A BALL! SOMEONE ACTS: /THROWS 315 20 BEACHBALL SOMEONE ACTS: /THROWS 305 30 BEACHBALL SOMEONE CATCHES BEACHBALL: [NAME] YOU GOT IT! /LOTS OF LOVE
Next, we include a beach ball item and a "lots of love" motion into the reference list, and drop the resulting Interacting right above the Body – we can now play beach ball with this person:
Imagebot for captioning game
You can use the following to return a random image for different uses, like a captioning group game:
touched or hears help or hears ?: say "image" to get a random image! hears image: http\:\/\/mlthirdpartycontent.com\/image\/[number 1 2230].jpg
Using custom verbs in adventures
In this example, we're using the custom verbs Move and Break for puzzles (the Interactings in the area are clonable if you want to have a look).
Testing
To test an Interacting, just place it in the world and talk to it or hit the action button. To clear the memory of your interacting for a fresh start, just remove it and place it again. (Otherwise things are preserved for a day, separately remembered for each manyzen; note your removal won't clear the memory of the Interacting when it faces others.) You can also clear all belongings and states like this:
Hears forget me: Ok, forgotten! /isn't * /hasn't *
If you create an Interactive Motion or an Item belonging after having created the Interacting it is for,
please clone the Interacting by dragging it over the Create button, then
associate the motion or item via the
button and save again.
To see the parse tree that is generated for an Interacting, open the browser console with e.g. F12. Now whenever you edited and Interacting text and closed it, the tree is outputted to the console.
More...
Also check out the main introductory help and the Dynamics help. Got a question which isn't answered here, or new ideas and feedback? Have a look here please.