All posts by Yummy

Create of the Artiste System

Message Board

Message Board v4.0

Message Board v4.0 can now fadein/fadeout and hide and show

Examples:
/8 1%This is line 1
/8 2%This is line 2
/8 3%This is line 3
/8 4%This is line 4

/8 5 (this clears all lines)

/8 mbshow – instantly shows the message board
/8 mbhide – instantly hides the message board
/8 mbfadein – slowly fades IN the message board based on FadeToShowTime
/8 mbfadeout – slowly fades OUT the message board based on FadeToHideTime

Also multiple lines per command line are allowed

Example:

/8 1%This is line 1$2% and this is line 2$3% and this is line 3

the *channel nc has fadein/fadeout times but are currently not noticeably effective due to the number of prims.

 

*******************

For owners of the Artiste Performance or Performer System

channel in MessageBoard must match ChannelForMessageBoard in Director

Only works for person logged into the Director (v4.9 or later) when from HUD (autofx)

*autofx example
1,r=s%mbshow
2,r=s%mbhide

Async Trainer

Async Trainer, while not required, is EXTREMELY convenient in preparing and testing Async Commands.  The alternative is typing the commands in local chat.

Buttons

The StopAsync button is very handy for interrupting a looping type command.

The ChatRaw button is the work-horse button.  It opens up a textbox where you enter your command.  The command includes a channel and then the command string.  Multiple commands can be entered that execute in succession. You can use the DELAY command to space out and more precisely execute multiple commands.

Optionally, an abbreviated form is offered to you which starts with a period (.).  This will insert the channel and /A/T/targetname/ before your entered text to save you some typing

As shown below, you can enter any channel and command.  It is not limited to the Async command family.


RepeatLast

This is such a handy button, which is the button I use the 2nd most often. It simply repeats the last command entered.


ReHome

Upon reset, the Async script saves the position and rotation.  ReHome will send the Async object back to this saved position and rotation from anywhere in the region.

ComeHome

Not sure if this will be needed often, if ever, but it will return the item to where the avatar is standing or sitting if it is within 96meters. Otherwise it works like ReHome


NewTarget

The initial default target is entered and will be retrieved upon RESET to the default target specified in the *trainer notecard inside the Async Trainer. See below. The default target is called Pyramid in this example:

*trainer
AsyncTarget,Pyramid
AsyncChannel,-369
END

The NewTarget allows you to override /change the Default Target after RESET.

Commands

This lists all the available commands (type/command).  It is only a suggestive list to serve as quick reminders after you have already studied its format from the official help page ==>Async – StoryTeller


ResetTrainer

Use this button when ever you change any of the notecards inside this Async Trainer


ResetAsync

This is a convenient way t reset the target containing the Async Script and/or GlowFader script. Reset the Async Object whenever you change its  Async Notecard, OR, rename the TRACE_ON, TRACE_OFF object, OR, need to change the initial position and rotation.


Archives

This button allows you to retrieve often used working commands. It will execute it. You do not paste it anywhere. It is up to you to choose category names and which commands you want to put into that category.  It comes with a default category called Test1.

Create the categories in the *archives notecard.  The 1st category listed will correspond to the *archives1 notecard.  The 2nd category will correspond to the *archives2 notecard.  Etcetera.

You do not enter a channel or command.  Archives use the default channel and default target.  See examples below:

/* Assumed prepend of channel/Async/A/T/(asyncTarget) for command
1-FadeHide,/E/fadehide/15^ALL
2-FadeShow,/E/fadeshow/25^ALL
3-Hide&Show,/E/fadehide/25^ALL/D/D/3/E/fadeshow/15^ALL/
END

 

Help

Contains most if the information listed here.

 

Relay (Follower-Relay)

RLV Relay aka Follower-Relay

These are the current features available while wearing the Relay assuming it is configured properly and enabled.  Commands are case insensitive.

Sit-On-Link  –  this feature allows a forced sit on a particular link

AdornSwapX –  detaches from “s”, attaches from “t”

AdornSwapY – detaches from “t”, attaches from “s”

AdornRemoveS – detaches from “s”

AdornRemoveT – detaches from “t”

DefaultBoth – applies the same animation to both DefaultSit and DefaultStand

DefaultSit – applies the animation to the DefaultSit

DefaultStand – applies the animation to DefaultStand

ForceSit forces the avatar to sit on the designated object with the designated key

GetKey or Sit2Sit forces the avatar to sit on the designated object with the designated object-name.  This works region-wide.

UnSit – forces the avatar wearing the relay to stand-up.

Wear – Attaches all of the items in the specified folder to the assumed or specified attach-point WITHOUT removing any existing items attached to the attach-point

UnWear – Detaches all of the items in the specified folder to the assumed or specified attach-point WITHOUT removing any existing items attached to the attach-point

Replace – Attaches/Wears all of the items in the designated folder onto the assumed or specified attach-point, removing any and all existing items.

Adorn – This command uses the 1st character of the folder name to  direct its actions.
a = attach
= detach
r = replace

” removes everything from the specified folder prepended by a or AND anything in the !RemoveDetach folder.  The !RemoveDetach folder was created to allow you to remove, usually, a single item from an attach-point that has multiple items attached.

Teleport – Teleports the avatar to the specified location

ADORNING (Attach, Detach, Replace)

This topic is so important and so pervasive across all the key Artiste Suite of tools that it deserves its own post.  BK08 – The Artiste – Book – Adorning v1.0  has outdated and incomplete information as well as some errors in command syntax. This post will solve a whole host of issues.

Adorn is a term we chose to encapsulate adding, removing, and replacing items to an avatar. It was created as a way to strip items of clothing from an avatar while performing in a strip show. It has since evolved into so much more.

NOTE: ADORN is often a term referring to items in inventory to be added, removed, or replaced, or auto-swapped while ATTACH,DETACH is often restricted to defining objects IN-WORLD that will be attached/detached to an avatar.

When we wear clothes in SL we are provide with a host of many places to connect the clothes to our avatar.  These are called attach-points.  Each one is represented by a unique number.  We can have more than 1 item of clothing attached to the same attach-point.

We have the choice to WEAR or ADD a given item of clothing.  There are default attach points assigned by the creator of the clothing.  We can override these attach-points at the time we wear or add the item.

WEARING an item replaces (removes all existing) items on that given attach-point and adds our new item of clothing.

ADDING an item adds the new item of clothing to all existing items attached to that given attach-point WITHOUT disturbing any existing worn items for that attach-point.

Clicking on a worn item and selecting DETACH will remove that item without disturbing other items on that given attach-point.


So what the suite of Artiste Tools does is replicate these main functions so you can recreate them at show time at given points along a timeline by issuing commands that either Add, Replace, or Detach one or more items to or from a supplied or assumed attach-point.

We ATTACH and DETACH items to an AVATAR.
We LINK and DELINK items to an ANIMESH

We will focus our attention on avatars for now.


Items that can be attached to an avatar can live in 2 places prior to being attached.

1 – They can reside in an avatars INVENTORY.

2 – They can reside INWORLD either suspended in mid air or on the ground. They can even be in motion.  One stipulation is that in-world objects meant to attach must reside in the same region/sim as the target-avatar.

RLV stands for Restrained Love Viewer.  It is a protocol used restrict or force certain behaviors on an avatar that wears a special RELAY AND gives explicit control to other selected avatars and/or devices.

You must enable RLV in the Firestorm viewer. If it is NOT enabled, when you DO enable it (check the box), then you must RESTART your viewer.

We have a book on RLV called BK03 – The Artiste – Book – Guide to RLV v1.0.  Most if not all of it still applies.  It shows how to set up RLV folders which is a prerequisite to being able to attach, detach, and replace items from ones INVENTORY.

You do NOT NEED RLV enabled nor set up RLV folders IF….the objects you wish to attach/detach are INWORLD.

Wearing an RLV aware HUD is required when using inventory. We have 2 ways to do this.

1 – Wearing the Artiste Performance HUD. This is reserved for the dance leader.

2 – Wearing the Follower-RELAY HUD.  This is for the other dancers but can also be worn by the dance leader.

You can also wear both at the same time.

Commands from *autofx ONLY  talk to the RELAY HUD when you use the RELAY format,

(i.e. RELAY=F%AdornSwapX%JointPOOFER).

There are  commands that talk directly  to the HUD itself in order to attach/detach.

But first lets briefly introduce all the major tools and what they are best known for.

1 – The Performance HUD  – this was the 1st tool created.  It did everything. It is now best used when you need precision timing of external events like emitting particles since, out of the 4 tools listed here, it is the most time-tested and accurate tool when it comes to precise timing of activities.  It could be seen as the “mother ship” that triggers the other 3 tools to activate.

2 – The Artiste Palette – the palette was created to extend the reach of the Performance HUD in terms of capabilities.   People kept asking for  special scripts to do this and special scripts to do that so I decided to create ONE repository that could hold most of the special needs that people WERE asking for as well as trying to predict needs that people WOULD ask for.

This tool is BEST used when you need to move and/or rotate an avatar more than 1 move but it does a LOT of other things. It is also  best used when you need to combine features.  See the State of Shock Video==>  State of Shock We combined a mover, light, and animated-texture to work at the same time.  As of this date, it has 9 scripts, and 4 to 5 notecards.

3 – The Artiste SmartDancer – this tool emanated from the Performance HUD. It is now the preferred way to animate multiple dancers in sync.  It can also mix animesh with avatars and dance them in sync as well as move them in fixed and custom formations.  So its main use is dancing and formations in 2d or 3D.  But it can also to fancy moves like Junes and Canons.  And it can also group animations into up to 4 groups.  It can also group formations into 1 or 2 groups. And it can do effects to like glow and color change.  A nice example of its abilities can better be expressed by a video. ==>SmartDancer Demo

4 – The Artiste Async this is 1 script with an optional notecard that can be inserted into any modifiable object.   It has many functions.  See this linke for a current list of its functions with syntax. ==> ASYNC  Reference Post

Think of it as “palette light“.  It has many of the same functions, some enhanced.  It was initially created to control Animesh from the “thrower” function of the Artiste Palette, and have features/functions go off and do their own thing on their own time line.

But it can also be used to do simple but common tasks like hiding and showing an object or specific link of an object. It can also fade-in or fade-out an object or link.  It can also move and/or animate an animesh.  It can move, rotate, spin an object.  It can do fancy stuff like a poor-mans ‘thrower’.

It is called Async because the script has its own internal time-line that operates on its own, asynchronously , irrespective of any timeline that started it off.

I suggest always considering this tool 1st as a solution. Then if it cannot do the task, then consider stepping up to the Artiste Palette.


Under the new 2021 direction, each of the 4 major tools can not talk to all of the others. Talk, meaning control or start in motion or action.

————————————–

So I will attempt to give working examples of the Adorns for each tool.  This can be one place where you can quickly come to discover the command and syntax for attach/detach.  I will provide quick-and-dirty snapshots of what the inventory folder structure looks like.  We will use a simple top hat and experiment attaching and detaching it as well as swapping it from hand to head and back again from head to hand. It will be up to you to find and play an accompanying animation at the right time.  This is just about the basic commands and syntax for the basic adorning.

#RLV\!Adorn\aHat  contains our hat. You can use any hat.

********************************************
Performance HUD

*autofx
1,WARN=Event1-AttachHat$Outfit2Adorn=aHat$ADORN=$
END

1,WARN=Event1-DetachHat$Outfit2Adorn=-Hat$ADORN=$
END

1,WARN=Event1-ReplaceHat$Outfit2Adorn=rHat$ADORN=$
END

NOTICE that  in the above examples, you do NOT NEED the Follower-Relay because the Performance HUD acts as the RLV relay.

Notice that mesh can take much longer to attach than non-mesh.  Also note that Replace replaces everything previously attached to a given attach point so if you had a HAIR and attached to SKULL and added a WHITE HAT also attached to that SKULL then you try and Replace it with a RED HAT to that SKULL, it will replace the previous WHITE HAT AND HAIR and you will be unexpectedly bald with a RED HAT.

AdornSwapX, AdornSwapY, AdornRemoveS, and AdornRemoveT are NOT enabled for the  Performance HUD but CAN be sent via *autofx to a worn Follower-Relay.

IMPORTANT:  The Relay MUST WORN AND  ENABLED
#RLV\!Adorn\sHat
#RLV\!Adorn\tHat
It is assumed the hats will be attached to different attach-points.  That’s the whole point of the swap

AdornSwap is just a tighter auto-implementation of a detach followed quickly by an attach. 

*autofx
1,WARN=SwapInPoof$RELAY=F%AdornSwapX%Hat$
END

1,WARN=SwapOutPoof$RELAY=F%AdornSwapY%Hat$
END

1,WARN=DetachS$RELAY=F%AdornRemoveS%Hat$
END

1,WARN=DetachT$RELAY=F%AdornRemoveT%Hat$
END

************************************
ArtistePalette

Copy the palette scripts into the object you want to attach. In this case we put it into a palette called TopHat.  The hat is simply laying on the ground at about 20 meters. In this example I laid the hat on the ground, then I went up to my lab, 3,022 meters high.  I executed the instruction from the Performance HUD.  Remember, no RELAY was needed. Even though the HUD is also a relay, we can and will execute this same statement later from other tools without any HUD.  The had must be previously attached manually so the Attach process will know the position and rotation it will use for placement.

*autofx
1,WARN=AttachFromInworld$r=p%TopHat%Attach%2$
END

Notice  that, below, using 0 as an attach-point is how we simply use the PREVIOUS attach-point, which in this case is 2 for SKULL

1,WARN=AttachFromInworld$r=p%TopHat%Attach%0$
END

Also, notice, below, that Detaching an object will move the obj3ect back in your inventory since that is where it had to originate from at some point.

1,WARN=AttachFromInworld$r=p%TopHat%Detach$
END


Now, a little hidden gem of the Palette stems from the Action feature.  We can execute an Attach/Detach matched to a given move step.  You can have 1 action for each move. The example below executes an action at the beginning of move #3.   The 0 is an optional DELAY time prior to the action happening.  The me says apply the action to THIS palette. The other option is to specify a different palette name to apply the action to.  THIS palette will be faster since the action really applies to the inventory as this action will be sent to a required attached FOLLOWER-RELAY. The name of the action is adorn. The folder name includes the adorn type. In this case it is a or – for attach/detach (aTopHat).  The zero (0) says to use the previously assigned attach-point

Action,3%0%me%adorn%aTopHat@0
Action,3%0%me
%adorn%TopHat@0

*******************************************
SmartDancer (SD)

Be sure you are wearing the Follower-Relay, that it is ENABLED and that you are in the right GROUP and all the other matching requirements like ID and defaultauthorizedsender

The format for Adorning  in the SmartDancer is tricky to understand.

1 – Only 3 commas are used. Any more or less and the command will FAIL.
2 – a single percent sign MUST (%) follow the ID o the command will FAIL.
3 – All succeeding parameters MUST delimited by the carat (^) a

*sequence1

ElapsedOrDuration,elapsed
1,Chat,-1231,F%Adorn^aHat
END

1 is the line descriptor
Chat is the command to send the following command to a device ready to receive on channel -1231. In this case it is the Follower-Relay which must be worn and enabled.
-1231 is the channel identified in the:
FollowerRelay, inside the notecard called
*avatarrelaychannels in an entry named
DefaultAvatarRelayChannel,-1231
F
is the IDof Relays that are to execute the command and must match the ID in the FollowerRelay
Adornis the command.
aHat is the subfolder in the  path that the object you wish to attach or detach or replace is in under #RLV\!Adorn\

It would be -Hat if you wanted to detach the item in a folder called Hat. Note that there IS NO FOLDER labeled -Hat. It is JUST the format that says to detach instead of attach.

It would be rHat if you wanted to replace

AdornSwap DOES work on the SmartDancer, just not for Action in the Palette.

ElapsedOrDuration,elapsed
1,Chat,-1231,F%AdornSwapX^Hat | 1
END

Notice that the same formatting rules apply as for Adorn  except that for AdornSwap folder there is no prefix.  It is the sub-folder name without the ‘s’ or ‘t’.

ElapsedOrDuration,elapsed
1,Chat,-1231,F%AdornSwapY^Hat | 1
END

ElapsedOrDuration,elapsed
1,Chat,-1231,F%AdornRemoveS^Hat | 1
END

ElapsedOrDuration,elapsed
1,Chat,-1231,F%AdornRemoveT^Hat | 1
END

********************************************
Async (StoryTeller)

Be sure you are wearing the Follower-Relay, that it is ENABLED and that you are in the right GROUP and all the other matching requirements like ID and defaultauthorizedsender

The format for Adorning  in the Async is tricky to understand.

1 – Only 3 commas are used. Any more or less and the command will FAIL.
2 – a single percent sign MUST (%) follow the ID o the command will FAIL.
3 – All succeeding parameters MUST be delimited by the carat (^) a|

Ok so the format is different here due to how Async works.

The whole command with IT’s parameters goes in the Command field which is the 2nd field:    Type, Command, Parms

The type isC” for Chat
The Command passed the Relay is: F%Adorn^aHat
The Parameter for Chat is the channel to the Relay which is -1231.

-369,Async/A/Target/AT2/C/F%Adorn^aHat/-1231

-369,Async/A/Target/AT2/C/F%Adorn^-aHat/-1231

-369,Async/A/Target/AT2/C/F%AdornSwapX^Hhat/-1231

-369,Async/A/Target/AT2/C/F%AdornSwapY^Hat/-1231

-369,Async/A/Target/AT2/C/F%AdornRemoveS^Hat/-1231

-369,Async/A/Target/AT2/C/F%AdornRemoveT^Hat/-1231

 

 

 

 

The UnAttended Controller

This device controls stand-alone unattended performances.

It can control the:

Artiste Performance HUD
OR
Artiste SmartDancer
OR
an external vendors scheduling tool

It can regularly schedule a device to run periodically, like once every hour
OR
It can schedule a  device to run when there are at least a certain number of people nearby.

It is VERY EASY to use.

You specify some parameters in a notecard.

Then you press either the  SCAN or INTERVAL button.

That’s IT?

********************

Commands for our Performance HUD are:

HUD
*********
We use the EXT_TO_HUD entry for channel

Commands to start, stop, and reset are below.
You will need the latest HUD version  v12.32 – v8.03 or later

PLAY_HUD
STOP_HUD
RESET_HUD

********************
*unattended notecard sample

/* Style = scan or interval
Style,scan
UnAttendedToHudOrSDChannel,-934232107
StartCommand,PLAY_HUD
StopCommand,STOP_HUD
ResetCommand,RESET_HUD
/*Intermission – this happens (optionally) after the repeats
Intermission,yes
IntermissionDuration,30
ResetOnIntermission,yes
/* Repeats
Repeats,2
PauseBetweenRepeats,10
/* Scan
Rate,10.0
Range,24
ScanMinimumPresent,1
/* Interval – (in seconds)
Interval,30
IntervalMinimumPresent,2
ClockTime,0
END

*****************
Explanations:

*****************
Style entry is either scan or interval (lowercase)

Choose scan if the performance is based on 1 or more avatars being present.

Choose interval if you want to performance to run periodically regardless of who is nearby.

*****************
UnAttendedToHudOrSDChannel
This the channel that the Stop,Start, and Reset commands will be sent over. For the Artiste Performance HUD, it must match the EXT_TO_HUD entry in the *config nc

The channel from the Artiste SmartDancer Controller is in the *channels nc called ChannelForFromArtisteHUD

*****************
StartCommand
This is the command that the UnAttended Controller will send over the UnAttendedToHudOrSDChannel when the Start button is pressed.

*****************
StopCommand
This is the command that the UnAttended Controller will send over the UnAttendedToHudOrSDChannel when the Stop button is pressed.

*****************
ResetCommand
This is the command that the UnAttended Controller will send over the UnAttendedToHudOrSDChannel when the Reset button is pressed.

*****************
Intermission
This is ‘yes‘ or ‘no‘.
If ‘yes‘ then there will be an intermission or pause for the number of seconds on the IntermissionDuration entry that follows all of the repeats.  This allows for an optional reset of the HUD or SD or external processor.

*****************
IntermissionDuration
This is how long, in seconds, that the intermission will last, assuming Intermission,yes  exists

*****************
ResetOnIntermission,yes
If ‘yes‘ then a Reset command will be sent over the UnAttendedToHudOrSDChannel channel

*****************
Repeats,2
If style is scan then this is the number of times the routine will repeat before it scans again for the minimum number of people that need to be present to run again.

*****************
PauseBetweenRepeats,15
This is the amount of time in seconds between repeats.  The routine will pause for this amount of time.

*****************
Rate,10
When style is scan, this is how often the area will be scanned for tje minimum amount of people that need to be present in order for the routine to kick off

*****************
Range,24
When style is scan, this value can be a value between 1 and 96.  This is the distance from the center of the controller that is scanned for the minimum number of avatars nearby that need to be present in order for the routine to kick off.

*****************
ScanMinimumPresent,1
When style is scan, this is the MINIMUM amount of people that must be nearby, within the range specified, in order for the routine to kick off.

*****************
Interval,3600
When style is interval, this is how much time, in seconds, regularly  passes, in between performances.

*****************
ClockTime,0
When style is interval,  this is how many minutes  after the hour that a routine runs.  If Interval is zero then,  ClockTime is used. A Zero value for ClockTime would be once on the hour. i.e. 1:00pm, 2:00pm, 3:00pm etc.  If 15 then 1:15pm, 2:15pm, 3:15pm etc.

*****************
IntervalMinimumPresent,1
When style is interval this is the MINIMUM amount of people that must be nearby, within the the scan range specified, in order for the routine to kick off.  If not enough people are present then it will wait for the next interval before trying to run again.   So  if you want a routine to run once every hour on the hour then 60 seconds times 60 minutes = 3600 seconds.  If this value is zero then the interval-ed routine will ALWAYS run whether anyone is near by or not.  People who arrive after it begins will catch the  routine in the middle.

 

Artiste MasterRezzer – TIPS

I have found this method of operation useful for basic operations.

1 – Add new entry in *set? nc inside the master rezzer for the proper set you are working on.

2 – RELOAD the MasterRezzer

3 – ADD *setchild nc into the new object to rez

4 – INSURE the SETID is set to proper set.

5 – INSURE InitialShowHide is set to transparency you wish to appear upon rez.

6 – ADD TPT – ChildRezzer v8.18 script. (Note: There may be a more recent version when you read this). Adding this script will send the needed information from the Child to the MasterRezzer.  There is no need to Reset.

7 – Copy (or Replace) the Child Object into the MasterRezzer.

8 – Test Rez your changes.

If you need to move and/or rotate the Child OR make changes to the *setchild nc then you can simply press ReloadChild button on the child.

Be sure to FREEZE the MasterRezzer, if you find that you have to RESET a Child. You do NOT have to FREEZE the MasterRezzer if you simply RELOAD the Child

*************************

You may very likely need to increase the RezDelay time for certain Children.  The rotation can take extra time, enough that the rotation might not complete after you try your rez at the show-venue, even though it worked at your staging/development platform. The item may not have needed a rotation there but will require one at the show-venue. So be prepared to increase the delay time.  There is a *rezdelays nc that i use. Simply add the name of the Child followed by a comma followed by the RezDelay desired in seconds.

**************************

Rezzing just ONE object from:
Chat, SD, Async, etc.

468,setrezr/Rezz2/Fireplace

468 is the configurable chat channel for the ArtisteMasterRezzer
setrezr(or set_rezr) is the command
Rezz? is the action  and set the object to rez belongs to, in the example it is 2
Fireplace is the name of the object to rez and must be in the MasterRezzer

The objects need to have gone thru the process of prepared in a set and stored in the MasterRezzer prior to using this method

**************************

Highlighting prevents child from hiding when hide all or fading set to hide is invoked

ChannelForMaster2Child,-722322179

Trainer:

-722322179,Highlight/Crow
-722322179,UnHighlight/Crow

**************************
Selective Kill on Object

Requires Async

-369,Async/A/Target/Mermaid&Tank/E/KILL_MESH/

**************************

DefaultSitAnim

Wear the Artiste DefaultSit Attachment v1.0
Add default sit animation entries into *defaultsitanims nc

*defaultsitanims nc
ScriptDesk,0315.Stand and Read-F-A

Send command in chat:  
-987987,DefaultSitAnim,(abbrev name of defaultSitAnim)
Ex:
-987987,DefaultSitAnim,ScriptDesk

 

 

PALETTE REFERENCE – 36 – THROWER – PART 32 – Bible Reference

 

Incomplete as of 3/29/2021

#1 – AutoReturn – Triggered by throw1, throw2, or throw3
Only applies if:
greater than zero
IS Throwable:
NOT FollowSpotable
and NOT Attachable
Changes to NON-PHYS
happens in Receiver script

#2 – Boomerang – Triggered by throw1, throw2, or throw3
Ricochet must be OFF
1st Target is always ThrowerObjectTargetName1
2nd Target is always ThrowerObjectTargetName2
Collision Post Actions are Ignored
Reverses any Spin
Stops Angular Vel.
Attaches IF AttachOnRange and Attachable

#3 – BoomHoverDelay – How long a Boomerang hovers in place after reaching target1

#4 – CollisionPostActions – Cause the “Posts Collision” parameters to be examined and performed upon collision.

#5 – CollisionPostActions2 – Same as CollisionPostActions but uses ApplyImpulse2 and AngularVelocity2 instead

#6 – CollisionPostActions3 – Same as CollisionPostActions but uses ApplyImpulse3 and AngularVelocity3 instead

#7 – IgnoreFirstCollision – bypasses “Posts Collision” parameters.
Rezzing a Palette in same position as
rezzer can cause a premature collision which we want to ignore
NEW for 2021! Automatically ignores collisions within 1 meter of rezzer so no need for Ingnore unless there
IS a collision down the way that you want to ignore.

#8 – RangePostActions,off – this must be on in order to process “Posts Range” parameters when thrower is “in range” of target

#9 – Receiver – When NOT ZERO, the thrower will attach to a secondary person. This allows someone other than the thrower to “catch” a thrown Palette. The secondary person must touch Palette and grant ATTACH permission. The body part is the number following Receiver

#10 – RemoveFolder – If not BLANK then the script will sleep for RemoveFolderDelay seconds then remove the full contents of the RLV RemoveFolder. This name must be fully qualified and be located
under #RLV and RLV must be enabled. The folder must be WORN prior in order to activate it.

#11 – RemoveFolderDelay – Number of seconds after throw before contents of RemoveFolder are removed. Ignored if RemoveFolder is BLANK.

#12 – RezMe – Use this when you want to rez the inner Palette PERMANENTLY when RezObjectName has a value and (Thrower0123OnRez must be 1,2, or 3 OR Boomerang is on). A rezzable Palette must have either RezMe or TempRezMe on, otherwise the inner rezzable Palette will not rez.

#13 – Ricochet – Used to control a target1 AND a target2. Works same as Boomerang but there is no auto-attach at end.
1st Target is always ThrowerObjectTargetName1
2nd Target is always ThrowerObjectTargetName2
It only responds to 2 targets maximum.
RangePost Actions must be enabled since Ricochet expects to use targeting.
Attaching is disabled.

#14 – ShowInMidFlightAfter – if this is not zero then maximum visibility is delayed the amount of seconds entered on the nc. Of course the success of this assumes that it is thrown with visibility off (at MinAlpha).
It shows just before Matrix and RemoveFolder

#15 – ThrowOnCollide – this will cause this Palette to execute a throw upon colliding with another object…An example is the 3-hat-carom demo video. The value must be 1, 2, or 3 to tell the thrower which throw (ApplyImpulse and AngularVelocity) to execute

/*Rezzer section
These are the important parameters you will need in order to make a rezzer. Its why they are grouped together. Rezzers are used to simulate an attached-throw. as in someone holding a Palette and throwing or dropping it.

#16 – Rezzer,on – This must be ON and when on causes the RezObjectName to automatically become a candidate for a rezzed throw. This makes this Palette the “rezzer Palette”.

#17 – RezObjectName,HatTemp – this is the name of a Palette that must be inside the ‘rezzers’ inventory and will be propelled using its own parameters of how it is to be thrown.

#18 – RezSource,HatSource – the name of an object that will be used to tell the rezzed object where to rez and what rotation it should have. The Rez Velocity matches the ApplyImpulse value.

#19 – Thrower0123OnRez,1 – This tells the rezzer what value to pass to the rezzed Palette so it knows which ApplyImpulse/AngularVelocity pair to use. It will automatically throw upon rezzing if this parameter has a value.

/*Targets Section – this is where you specify target names. They are used to
1) either to guide a throw using SetMoveToTarget,on AND/OR
2) used for controlling the Post Target disposition.

#20 – DirectionalVector,Local – I have only used “Local” but the other value is “World“. World might be easier to work with if your practice site is the same location as your show-time site. When specifying rotational vectors, its important that you go in to EDIT on the Palette and make sure the reference matches. Local if Local and World if World

#21 – ThrowerTarget,(off/Both/Avatar/Object) – If this is off then the next 3 fields are ignored.
if Both, then ThrowerObjectTargetName1 and ThrowerObjectTargetName2
must exist and are used for 2-phase throwing.
If Object then only ThrowerObjectTargetName1 is required If Avatar then only ThrowerAvatarTargetName is required
Ricochet and Boomerang require Both

#22 – ThrowerObjectTargetName1,HatTarget1 – name of the target1. Required when ThrowerTarget is Both or Object
#23 – ThrowerObjectTargetName2,HatTarget2 – name of the target2. Only required when .ThrowerTarget is Both
#24 – ThrowerAvatarTargetName,Lat Lovenkraft – name of an avatar that is to be target when ThrowerTarget is Avatar

/*Motions Section – only one usually
This section has choices for the motion and propulsion method of the throw. Usually you will choose either

#25 – ApplyImpulse or MoveToTarget

#26 – SetApplyImpulse,off – if this is off then the 3 ApplyImpulses are ignored. If on then all may be in play depending on the throw (i.e. throw1, throw2, and throw3)

#27 – ApplyImpulse,<x,y,z> – If SetApplyImpulse is on and a throw1 is executed then this becomes the instantaneous impulse. This will decay over time assuming there is some gravity and the Palette will fall to the ground. This is the motion-method I use most often. It reacts to mass(density) and applies 1 newton of force of acceleration equal to 1kg thrust one meter and lasting 1 second, per unit of xyz, velocity in the direction xyz and for a magnitude of (xyz) (effective inertial velocity) . Using it will force the Palette to go physical. It is center-of-mass based so be careful with link-sets. The velocity caps are dependent on the energy, a topic for another discussion but keep in mind 202 meters/sec as a yardstick for very fast impulses.

#28 – ApplyImpulse2,<x,y,z> – same as ApplyImpulse only it is used in place of ApplyImpulse when a throw2 action is taken

#29 – ApplyImpulse3,<x,y,z> – same as ApplyImpulse only it is used in place of ApplyImpulse when a throw3 action is taken

#30 – SetMoveToTarget,off – when off, then MoveToTargetTau and AtTargetRange, are ignored
when on , this Palette behaves like a heat-seeking-missile IF a thrower-target has been specified(not off). Depending on other conditions, the Palette will move towards the target upon a throw and stop when it gets at or near the target. The flightpath will curve upward or downward to meet the target AGAINST the normal gravitational forces that are most likely in play.

#31 – SetVelocity,off – when on will apply an instantaneous impulse the same as ApplyImpulse only “mass” is not taken into consideration. The direction and magnitude is dependent upon the velocity vector as specified by Velocity

#32 – SetAngularVelocity,off – when on the appropriate AngularVelocity (rotation) is applied dependent on whether the throw is a throw1, throw2, or throw3

#33 – AngularVelocity,<x,y,z> – used if a throw1 and SetAngularVelocity is on. Applies a rotational force ( 1 radian – about 1/6th of a full-rotation) per second that causes the Palette to rotate in the xyz direction and with a force-magnitude of xyz and usually applied in combination with ApplyImpulse to create a tumble or Frisbee type throw. It will slow down over time but acts as if there is no mass. The Palette will turn physical and angular-velocity stops if and when the Palette turns non-physical

#34 – AngularVelocity2,<x,y,z> – same as AngularVelocity only this applies only for a throw2

#35 – AngularVelocity3,<x,y,z> – same as AngularVelocity only this applies only for a throw3

#36 – SetTargetOmega,off – when on then TargetOmega will execute a spin on the client using the 1st parameter as a axis-spin direction. This never decays over time so use post-actions to stop spins.

#37 – TargetOmega,<1.0,0.0,0.0>,6.283185,2.0> – this example spins around the x-axis at 2 x 2PI-radians) per second. Thats  2 rotations per second (using 2.0 as gain…and it says the spin-rate is 2-pi (6.283185) radians which is 1 full rotation)

/*Posts Collision – This section dictates the disposition of a Palette upon collision. For these to be effective, there must be CollisionPostActions1, CollisionPostActions2, or CollisionPostActions3. Either one or multiple ones will always cause all the post-actions to occur if on.

#38 – DamageFinishOnCollide,off,-55,Blood On,1.0,Animate,ArtistePalette_04_B,Spin Fall,10,Crawl,5,KILL_MESH
This newly added feature in 2021 is a combination of events. Shoot, affect, animation1, animation2, kill/die.
It has delays that apply to the previous parameter.  It has no effect if off.  This choice happens when there is a collision.

#39 – DamageFinishOnRange,off,-55,Blood On,1.0,Animate,ArtistePalette_04_B,Spin Fall,10,Crawl,5,KILL_MESH
This newly added feature in 2021 is a combination of events. Shoot, affect, animation1, animation2, kill/die.
It has delays that apply to the previous parameter.  It has no effect if off.  This choice happens when thrower is in range of target.

#40-AttachOnCollide,off,5

/*ControlOnCollide,on,SoccerBall4,Hide,ALL,3.0
ChatOnCollide,off
ChatOffCollide,off
ControlOnCollide,off,SoccerBall4,detach
ControlOnCollideDelay
DieOnCollide,off,1.5
MakePhysAfterPost,0
MaterialsOnCollide,off,0.2,10,10,0.1
SetMatchPosOnCollide,off
SetMatchRotOnCollide,off
SetStopSpinOnCollide,off
SetNonPhysOnCollide,off

/*Posts Target
AttachOnRange,on,5
SetMatchPosAtTarget,off
SetMatchRotAtTarget,off
SetStopSpinAtTarget,off
SetNonPhysAtTarget,off

ASYNC – (StoryTeller)

New for 2021!

Async is a multi-command script containing a subset of trimmed-down Palette like commands that has its own independent time-line. 

Async can be considered asynchronous because it could be called from SmartDancer or  Performance HUD *autofx or another Palette or external vendor device AND it has its own time line by making use of ‘delays’.

Script is named: !!Animesh Async v?.??

Async can NOW be called from a simple script but the format is different than being called from the *thrower nc.

The “@”  (ampersand) used in the following documentation only,  to show multiple options for a command or parameter .

IMPORTANT: There are now 2 formats for commands. 1 format is used for those using the Thrower option of the Palette.  The other format is for “everyone/everything else” including: local chat command, external event schedulers, Artiste Trainer, Artiste SmartDancer, Artiste Performance HUD via *autofx.  You should usually see 2 types of examples for each command. One uses commas as separators, the other uses the slash.

Notice that we use the slash “/” for non-palette sending formats instead of comma “,” which is used for Palette-based commands in the *thrower nc.

The receiving channel for Async, defaults to  -369, but can be overwritten using the *async notecard.

Notice also that we use a SINGLE pound-sign “#” in place of the comma when it comes to specifying vectors and rotations.

The general example below has just 2 entries.  A (animation target) and R (rez).  Also be aware that the Target command is now strongly recommended as the FIRST command in an Async command line.

And finally, we now use the carat “^”  to separate multiple parameters, as in, more than one.

Example:  
-369,Async/A/Target/AT/REZ/rezball/<1#1#1>^<0#0#0#1>^<2#0#2.66>^1^0^0^5  

NOTE: The Async script and its notecard (*async – REQUIRED) must go inside the ROOT prim of a link set.

Async executes a string of sets-of-3 commands. Limit is 255 characters on 1 line.  Async was initially designed for monster battles but can now  be used for anything else that could apply.

After specifying a channel, you must follow  the channel by a comma and then the word Async followed by 1 or more sets of 3 element instructions.  Optionally you can specify the number of times you want all the following commands to execute. You can have more than one type/command on a line.

The GlowFader script is required when you choose:
GF,GL,RL, LEV, TIP, or IMP, or you want to be able to stop animations after a StopAsync or HALT.

? = means nothing is required normally so it can be empty OR have something there.>>BUT when using the Archives yyou MUST have at least 1 dummy character there.

************************$$$$$$$$$
LOOPING

You can loop a whole control line by using the Async## format.

Example:   -369,Async4/A/T/ball/A/Start/Howl/D/D/2 /A/Stop/Howl/D/D/3 this will perform the Howl animation as well as the following commands 4 times in succession.

i.e.  Start; Delay; Stop; Delay; Start; Delay; Stop; Delay; etc.

Example:  -369,Async/    will execute all of the following commands ONCE.

Example: -369,Async5/ will execute all of the following commands FIVE  times.

Show Video: ==> Looping Video Demo

************************* $$$$$$$$
ANIMATE and TARGET

Specify name of an animated mesh object intended to receive a Start, Stop, or Target.

Stops or Starts an animation or specifies a target for subsequent commands.  When using the Start or Stop command, the animation-name is the ACTUAL animation name, unlike the “M” command that uses the nickname from the *async nc.

Be sure Animated Mesh box is checked on the Features tab when attempting to start or stop an animation in an animated object.

Note that some animations are created as one-shot while others are created to loop.

For looped animations, use a Delay “D” command followed by an A/Stop/animation-name command to do timed animations.

Also note that Start and not start is required. Stop and not stop is required.

Be sure to include the animations in the object containing the Async script

A
,(Start@Stop@Target),animation-name
A/(Start@Stop@Target)/animation-name

A/Target/ObjectName
A/Stop/AnimationName
A/Start/AnimationName 

NEW!  Target can now be abbreviated

Example
A,T,Katana,

A/T/Katana/

Instead of:
A,Target,Katana,

A/Target/Katana/

************************* $$$$$$$$a
ANIMATE ON COLLISION

Animates actual animation-name upon collision, when on, after any delay has been expired. Automatically stops a previously ran animation.

AOC,(on@off),actual-animation-name^delay-before-animating
AOC/(on@off)/actual-animation-name^delay-before-animating

Examples:
AOC/on/Monster Howl^3.7
AOC/off/?

************************* $$$$$$$$
ATTACH

Attaches itself to the body part indicated, after a collision and after accepting permissions to attach. Rez the object containing the Async script prior to using it so that it asks for ATTACH Permissions.

Show Video ==> Attach/Detach

Wearing the Follower-Relay is required.

ATT,,(bodypartnumber)
ATT//(bodypartnumber)

Example:

ATT/?/5

************************* $$$$$$$$
CHAT

Sends a chat message on channel (usually the command AND parms).

WARNING:  You cannot send a chat message to yourself (same object as Async script that’s sending

C,Channel,messagetosend 
C/Channel/messagetosend

Example:

C/-1234/particleson

****** $$$$$$$$
DELAY

Delay in seconds (between commands)

Show Video ==>Delay

D,D,delay-time(decimal) 
D/D/delay-time(decimal)

IMPORTANT !!!!

Commands that MOVE and use CONVEX HULL  and precede a DELAY must be handled carefully.  The DELAY happens at the same time as the MOVE because the MOVE is asynchronous so you will need to adjust the DELAY up enough to compensate for the time the MOVE takes then add additional DELAY time.

As of this writing, commands that require CONVEX HULL are:

1 – IMPULSE
2 – LEVITATE
3 – RAISE/LOWER
4 – TIP

************************* $$$$$$$$
DETACH

Detach object that the Async script is in from the avatar wearing it.

Show Video ==> Attach/Detach

Requires:  Attach,on in the *async nc

DET,,
DET/?/

************************* $$$$$$$$
ENDING DISPOSITION
|
This Type (E) contains commands that are useful for ENDING a sequence (i.e. fading out (fadehide) a monster then deleting  (KILL_MESH) it);

Show Video ==>Show/Hide
Show Video ==>Show/Hide Link
Show Video ==>ShowHideLink Delay
Show Video ==>FadeShowHide
Show Video ==>FadeShowHide Link

E,(Ending disposition),
E/(Ending disposition)/

E,(fadehide@fadeshow@hide@show@KILL_MESH),(duration for fades)^(linkName/linkno/ALL) — Ending disposition
E/(fadehide@fadeshow@hide@show@KILL_MESH)/(duration for fades)/(linkName@linkno@ALL)Ending disposition

fadehide,duration,linkname@linkno@ALL
fadeshow,duration,linkname@linkno@ALL
hide,linkname@linkno@ALL
show,linkname@linkno@ALL

fadehide/duration/linkname@linkno@ALL
fadeshow/duration/linkname@linkno@ALL
hide/linkname@linkno@ALL
show/linkname@linkno@ALL

Examples:

E/show/ALL
E/hide/ALL
E/show/nose
E/hide/nose

E/fadehide/100^nose
E/fadeshow/100^ALL

************************* $$$$$$$$
GLOWFADER SCRIPT CONTROL

Allows the stop, start, or deletion of the GlowFader script.

GFC/0/?  – Stops the GlowFader Script from running
GFC/1/?  – Starts the GlowFader Script from running
GFC/2/?  – Deletes the GlowFader Script

************************* $$$$$$$$
GLOW-FADER

Glows or fades or glows AND Fades (GlowAndFade) one or ALL links within a specified glow-amount range (GlowMin & GlowMax) for a given amount of time (GlowTotalTime) or a given number of recurring times (GlowOccurances)  using a specified increment (GlowIncrement),  AND from a given start (GlowStartAmount) and final amount (GlowFinal) with an intervening delay between cycles(GlowCycleDelay).

Show Video ==>GlowFader

Requires addition of the GlowFader script;

GF/(ALL@linkno@link-name)/(see below) 
^GlowStartAmount   ;  Initial glow amount at start of each cycle. 0.0  to 1.0 -1 means use default values or values previously set
^fGlowMin  ; 0.0  to 1.0: This value, when  reached causes an end of cycle
^fGlowMax ; 0.0  to 1.0: This value, when  reached causes end of cycle
^fGlowFinal ; 0.0  to 1.0: Forced final glow amount value after all occurrences
^fGlowCycleDelay: Time in seconds between each increment
^fGlowIncrement: Amount of Glow that increments or decrements each Cycle-Delay
^iGlowOccurances  : Number of times a maxxed/minned out completed cycle repeats
^iGlowTotalTime : Maximum time in seconds before all occurrence(s) end

 NOTE: If  both GlowOccurances and TotalTime are zero then the glow/fade is continuous, as in  forever.

^GlowUpAndDown : 1 means yes, glow cycle will repeat forward and backward. If 1, then extra cycle happens in reverse after Glow-Max reached and cycles back down to Glow-Min or vice-versa.
^GlowAndFade : 1 = Glow Only;  2 = GlowAndFade;  3 =  Fade Only – if GlowAndFade or FadeOnly then fade values mirror glow values.
ZERO (0) Glow value equals 1 Transparency (or opaque)
A ONE (1)  Glow value equals 0 Transparency (or invisible)

Example:

-369,Async/A/T/AZ/GF/rezball/0^0^1^0^1.0^0.1^3^9^1^2

GlowLinks: 2
StartAmount: 0.000000
GlowMin: 0.000000
GlowMax: 1.000000
GlowFinal: 0.000000
GlowCycleDelay: 1.000000
GlowIncrement: 0.100000
GlowOccurances: 3
GlowTotalTime: 9.000000
GlowUpAndDown: 1
GlowAndFader: 2

************************* $$$$$$$$
GLOW

Glow specified link(s) and Duration of glow…returns to 0 amount after duration ends.

Show Vide ==> Glow

GL
,ALL(link-name@linkNo),glow-amount
^glowDuration
GL/ALL(link-name@linkNo)/glow-amount
^glowDuration 

Examples:
GL,ALL,0.3^5.0   – 5 second duration of glow amount 0.3 then back to 0

GL/earth/0.3^5  – 5 second duration of glow amount 0.3 then back to 0

************************* $$$$$$$$
GROW/SHRINK

Grows (or Shrinks) an object by increasing or decreasing its scale by a given amount in specified increments over a specified time.

Show Video==>Grow

Experiment with settings. You probably always want repositionZ to be any non-zero value else the rescaling will submerge half the object into the ground in the case of values 1.0 or greater…or hover into the air for values less than 1.0.

Please note that times are approximate and will vary with extreme number of steps.  Also note that repositioningZ approximately doubles the amount of time it will take.  

GR,scaleAmount,time^steps^repositionZ
GR/scaleAmount/time^steps^repositionZ

Examples:

GR/3.0/10^20^ (Grows)

GR/0.4/10^20^1 (Shrinks)

************************* $$$$$$$$
IMPULSE

Applies a 1 second push to a “physical” object  specified  by xyz coordinates for xyz magnitudes or force.  This particular command can respond to collisions.

REQUIRES the GlowFader script

Show Video==>Impulse

Must be Convex Hull

IMP/(1@0)/<x#y#z>,<x#y#z>,3,10,0.2
IMP/(1@0)/{x*y*z}
^{x*y*z}^collisionvalues^fadeduration^glowamount

The 1 or 0 specifies coordinate system. 1 = local.  0 = world.  It is recommended that you usually use local.

x, y, and z  values specify direction and magnitude of the 1 second force.

x, y, and z  values specify direction and magnitude of the angular velocity or visible rotation

Be sure your rotation orientation is the same between tries.

AVOID resting object on a large flat surface. Give it a small fake (invisible) surface underneath it.

The following new Async Menu is meant to help expedite certain features related to IMPulse..

There is a 10-second default Auto-Return that can be overridden in the *async n.

RESET saves the current position and rotation so that a ReHome will return to that default.  Auto-Return also returns to the saved position and rotation AS WELL as setting the static to Non-PHYSICAL.

ZeroRotation is recommended in-between tries as it resets the rotation to ZERO. (This assumes that your object started out with a zero rotation which is recommended if possible).  It also sets the object to Non-PHYSICAL.

When Impulse is executed, it now AUTOMATICALLY sets the status to PHYSICAL just prior to firing.  

On your 1st attempts it might be wise to turn on Ten-Meters. This prevents your object from going beyond 10 meters but you will get an error if it does. Not a big deal. Once you are comfortable then select SimRestrict. This negates the Ten-Meter restriction but does implore a return should the object try to fly out of the sim.

CAUTION:  Specifying a Ten-Meter limit will interfere with Collisions and only work the first time.  You would have to do a RESET after your 1st try which would be successful.

Example:

IMP/1/{0*2.66*4.8}^{1*0*0}^3^10^0.2

The 3  indicates  that you want to turn the impulsed object non-physical (stop it) and also have it fade to invisible. (1+2  = 3)

The 10  indicates  time of any fade specified.  The 0.2 after it represents the glow value, if any.

0 or 1 — 1 – OnCollisionNonPhys — 1 is NON-PHYS
0 or 1 — 2 – OnCollisionFadeToHide —  1 fades out to invisible
0 or 1 — 4 – OnCollisonChat –chats on predefined chan & cmd
0 or 1 — 8 – OnCollisionGlow — 1 is  glow
0 or 1 — 16 – OnCollisionShow — show on rez
0 or 1 — 32 – OnCollisionHide — hide on rez
0 or 1 — 64 – OnCollisionFadeToShow — fadein on rez
0 or 1 — 128 – IgnoreFirstCollision
0 or 1 — 256 – OnCollisionTemporary — sets status to temporary
0 or 1 — 512 – OnCollisionAttach — attaches to default
0 or 1 — 1024 – OnCollisionDie — 1 deletes/kills object

ONLY 1,2,8,128,256,512, and 1024 are really useful for IMP (applied impulse) or REZ

************************* $$$$$$$$
COLOR

 Colors specified links using faces

Show Video ==> Color

K,(ALL@linkName@linkNo)/color-vector^colorDuration before white^faces (-1 == ALL_FACES) 
Example:
-369,Async/A/Target/ArtistePalette_04_Z/K/3/{1*0*1}^5^-1

NOTE: When duration is 0, or less than 0, the color change is permanent and does not revert back to white. For ALL you can also specify 0 if only one link.

************************* >>>><<<<
LEVITATE

Start or Stop  or Pause a Levitation or Movement
Levitates/Moves an object along one or more specified axises continuously when Start-ed until a Stop command is encountered. Can optionally also reverse direction.

Show Video: ==> Levitation Demo Video

Requires Shape type of CONVEX_HULL

Position & Rotation

Requires addition of the GlowFader script;

LEV/(Start@Pause@Stop@Play)/Vector^Mode(D@F@L@P@R)^POSx^POSy^POSz^ROTx^ROTy^ROTz^DurationU^(DurationD@duration for 1 rotation for vector time 3)^DelayU^DelayD 
U = stands for Up
D = stands for Down
POS = Position
ROT = Rotation
Duration(
U or D) = how long the the complex keyframed movement will last going in one direction
Delay(
U or D) = how much time passes in seconds before the next motion reverses itself
Mode = D=Up and Down; F =Forward; R=Reverse; P=PingPong; L=Loop;
Vector = 1, 2, or 3; 1 = 1 vector; 2 = 2 vectors for Up and Down – the 2nd vector is created from the current POSITION and ROTATION; 3 = a special vector intended for a LOOPED rotation

10-24-21
POSx^POSy^POSz^ROTx^ROTy^ROTz  <== these values are now obtained after moving your object where you want it to go then pressing the ConvexHull button on the movable object.  Copy and paste them into the LEV command.  Since it has to be ConvexHull in order for it to levitate, then no harm-done. (I was out of buttons)

Some values (durations, delays) are decimal(i.e.   2.7)

Example:

LEV/Start/1^F^192^ 160^3023^0^270^0^10
LEV/Start/1
^L^192^ 160^3023^0^270^0^10
LEV/Start/1
^P^192^ 160^3023^0^270^0^10
LEV/Start/1
^R^192^ 160^3023^0^270^0^10

LEV/Start/2^D^192^160^3023^0^270^0^10^3^5^1
(the 10 is duration up; the 3 is duration down; the 5 is delay before coming down. the 1 is delay before going back up)

LEV/Start/3^F^192^ 160^3023^0^270^0^1.1^0.5
(a loop will happen for the Y axis after 1.1 seconds have passed with a each 2*PI radians taking 0.5 seconds) 2*Pi radions = 360 degrees so 1 revolution takes 0.5 seconds)

LEV/Pause/
LEV/Stop/
LEV/Play/

************************* >>>><<<<
LINK/SPIN

Causes a link to rotate on from 1 to 3 axis at a given rotation speed.  Example, Below: rotation speed is 3.5 and link No is 6. Axis x,y,z is 1,0,3.

Example: Values of 1,0,3 means the Z axis rotates 3 times faster than the x axis.

Show Video==> LinkSpin

LS,3.5,1,0,3,6
LS/3.5/1^0^3^6

To STOP the link, use 0 for speed:

LS,0,1,0,3,6
LS/0/1^0^3^6

This is a client-side rotation. It is suggested that you use the RO command described further below, instead of LS, if you want to rotate a full linkset. But you could use a link value of -1 for LinkSpin to spin the full linkset.

CAVEAT:  You CANNOT spin ONLY the ROOT PRIM (i.e. Prim #1).

Example:

-369,Async/A/T/Laptop/LS/1.0/0^0^1^2

************************* $$$$$$$$
PALETTE

Sends palette commands and its associated parameters to embedded palette scripts in same object

P,palette-command,params — limited to the inner-actions list currently

************************* $$$$$$$$
REZ

REZZES an embedded object in same object as the Async script  to a position offset from rezzer and rotation offset from rezzer with a specified velocity .  After velocity is start-param.   It is optional and is special-use-case only.

Show Video==>Rez

Set rezzable object to PHYSICAL.  (For ease of handling, set  rezzable object to LOCKED AFTER setting it to PHYSICAL).

Adjust gravity down of REZZABLE object to increase loftiness

REZ,name-of-object-to-rez,params

Example:
REZ,rezball,<1#1#1>^<0#0#0#1>^<2#0#2.66>^123
REZ/rezball/{1*1*1}^{0*0*0*1}^{2*0*2.66}^123

0 or 1 — 1 – OnCollisionNonPhys — 1 is NON-PHYS
0 or 1 — 2 – OnCollisionFadeToHide —  1 fades out to invisible
0 or 1 — 4 – OnCollisonChat –chats on predefined chan & cmd
0 or 1 — 8 – OnCollisionGlow — 1 is  glow
0 or 1 — 16 – OnCollisionShow — show on rez
0 or 1 — 32 – OnCollisionHide — hide on rez
0 or 1 — 64 – OnCollisionFadeToShow — fadein on rez
0 or 1 — 128 – IgnoreFirstCollision
0 or 1 — 256 – OnCollisionTemporary — sets status to temporary
0 or 1 — 512 – OnCollisionAttach — attaches to default
0 or 1 — 1024 – OnCollisionDie — 1 deletes/kills object

ONLY 1,2,8,128,256,512, and 1024 are really useful for IMP (applied impulse) or REZ

************************* >>>><<<<
RAISE/LOWER

MOVES an object a set distance UP or DOWN over time on a the  world  Z -axis  based on command of up or dn.  Meant for simple Raises and Lowers.

Show Video ==>Raise/Lower

REQUIRES the GlowFader script


IMPORTANT: Requires  ConvexHull

RL,(up@dn),time,distance,axis

Example:

-369,Async/A/Target/StageWall/RL/up/5.0^10^z

This moves a wall called StageWall up 10 meters taking 5 seconds for the move assuming z axis is up/down. StageWall would contain the Async script.

Using an axis of “x” or “y” has not been guaranteed to work in the direction you might expect.  Experiment at your own risk, for now.

************************* >>>><<<<
ROTATE

Rotate continuously around specified non-zero axis with  a specified speed.

CLIENT-SIDE execution.

Show Video ==>Rotate

RO/?/0.5^0^1^1

Notice the double / (forward slash as there is no command)
0.5 is speed (gain)   0^1^1 is x,y,z axis of rotations

Example:

To start:

Async,A,T,HudTest,RO,,F

To stop:

Async/A/T/HudTest/RO//0.0^0^1^1

*************************$$$$$$$$
SIT-2-SIT

Requires RLV be enabled in your viewer.  Forces the avatar to SIT on the Target. Sit2Sit uses object-name. UUID uses the key of the  object, useful for when there are multiple objects of the same name. Be aware that the key (UUID) changes each time a copyable object is rezzed. You must be the owner of the object you are trying to sit on.

Show Video: ==> Sit-2-Sit 

Wearing the Follower-Relay is required.

S2S,(sit2sit@uuid),Target(object-name or UUID)
S2S/(sit2sit@uuid)/Target(object-name or UUID)

Enter the key of the person or owner of the object that the controlling sender is sending the command to the object holding the Async script.

You need to enter a new authorizing agent into the *async notecard (changed from *monsteranims)


I have enabled sit-2-sit feature in the new Async script.  The  Async script, you can think of as a watered down palette with the most useful features of the Palette. It has one optional notecard.

I discovered that you don’t need to be sitting on a palette in order to sit at a target.  You just need to be the owner of the device sending the sit-2-sit to you.  i.e. just a cube with the  single Async script in it and also be the owner of the target, as an example.

Give the name or UUID of the target.

I expanded the sensor and sit-to range from 30m to 96m. Note: a target beyond 8 meters will require the target be primed with a 1-line script that assigns a sit-target to the target. See me for it.  Also, technically, knowing the UUID, you can sit-2-sit region-wide. I just tested it.  I went from 20m to over 3000m.  Also, see me if this is something you need.

************************* >>>><<<<
SPIN

Spins around the Z axis at a given speed which is Spin Speed times PI. PI is half a revolution, so 2*PI (2 times PI) is a full revolution.  So a value of 2 would mean one revolution every second.  A value of 1 would mean one revolution every 2 seconds.

Show Video ==> Spin

SP,(start@stop),SpinSpeed/
SP/(start@stop)/SpinSpeed/

Examples:

SP/start/1
SP/stop/?/

stop requires 2 slashes

************************* $$$$$$$$
 STATUS (OBJECT)

Sets Object Status to PHYSICAL or NON PHYSICAL.
Sets Prim Property to TEMP or NON_TEMP.
Sets Prim Shape to CONVEX HULL.

WARNING: Will not set TEMPORARY if object is not COPIABLE by OWNER.

STA,(PHYS@TEMP@CONV),(0@1)
STA
/(PHYS@TEMP@CONV)/(0@1)

Examples:

STA/PHYS/0
STA/CONV/?
STA/TEMP/1

************************* $$$$$$$$
STOPME (both scripts)

Set the 1 or 2 scripts  to NOT RUNNING

In rare cases you may want to stop a target in its tracks, stopping its scripts WITHOUT any type of resetting.  After this function, the only way to reuse the target is by MANUALLY setting the scripts to RUNNING.

StopMe/?/?

************************* $$$$$$$$
TEMPORARY ON COLLISION

  This command turns object temporary such that it auto-deletes itself upon collision.   This could also be done using a delay and KILL_MESH.  TOC is cleaner, shorter, and more precise.

TOC,,
TOC/?
/?

************************* >>>><<<<
TIP

Rotates around the  supplied axis in the command location for a specific time in secondsforturn thru the specified angle.  Use a minus sign in front of the axis for a revere axis tip.

Show Video==>Tip


Requires  Convex Hull

TIP,(x@y@z),angle,secondsforturn
TIP/(x@y@z)/angle^secondsforturn/

Example:

-369,Async/A/T/AZ/TIP/z/90^5/

************************* $$$$$$$$
TEXTURE

Paints the specified texture-name or texture-UUID onto the link and face specified.  You must own the texture.

Show Video ==> Texture

TXR,texturename@textureUUID),(linkName@LinkNo@ALL)^faceno (-1 = ALL FACES)

TXR/(texturename@textureUUID)/(linkName@LinkNo@ALL)^faceno (-1 = ALL FACES)

If texture-name is used then the texture must be loaded into the object that contains the Async script

TXR/fancyt/ALL^-1

************************* $$$$$$$$
TARGET SHORTCUT for PALETTE

Shortcut target specification when target is a standard Palette Name (i.e. ArtistePalette_03_B)

T,T,03_B 
T/T/03_B

******************************************
******************************************
******************************************

*async notecard entries

************
Attach

Attach,(on@off)

This is required if you plan to attach (ATT) or detach (DET) an object that exists in-world as opposed to inside ones inventory. Wearing the RELAY is NOT required for attach/detach

************
AuthorizedLeaderAndControllerRegistrant

AuthorizedLeaderAndControllerRegistrant,(owner UUID of desired target)

This will be your UUID that is in your profile. This is only required when you are using the Sit2Sit feature. It helps insure that when validating an object to sit on twhen there multiple objects of the same name, that the there is only on object of the required sit target and that it belongs to you. If you want to sit on another persons object then use their UUID instead. Make sure only object, belonging to them of the same name, exists.

************
AutoReturn

AutoReturn,(time in seconds)

The default is 10 seconds. This etnry/value only has meaning when you are using the Impulse feature. It will return the propelled object after THAT number of seconds. Use 0 if you do NOT want the object to AutoReturn to its launch point.

************
AsyncChannel

AsyncChannel,(channel to channel between command and ASYNC’ed object)

The default is -369. Channel numbers must match. The AsyncChannel in the *async notecard must match either:

1 – The channel type in a LOCAL chat command
2 – Default channel (AsyncChannel) in the *trainer nc if command sent from TRAINER
3 – Channle specified in the command sent via a SCHEDULER

Different ASYNC’ed objects can have DIFFERENT channels but only ONE channel is valid for any one given sent of commands for a given command line.

************
ChatOnCollision

COC,channel,on-command,off-command,duration of on-command

Example: COC,77,blood on,blood off,1

This command usually would go into an object to be rezzed. It is used because we cannot pass all this information from the rezzer to the rezzed object. The on-command will be sent upon collision-detection for the duration after which the off-command will be executed. Both on and off commands use the same channel.

************
IgnoreCollisions

IgnoreCollisions,(on@off)

Sometimes an object to rez will trigger a premature-collision as it collides with the inside of the rezzer or other nearby object. This allows the collision-detection process to IGNORE the 1st collision but RECOGNIZED the NEXT collision. This entry is only valid inside the object to be rezzed.

************
IgnoreCollisionIfDistanceLessThan

IgnoreCollisionIfDistanceLessThan,(distance in meters)

The default value is an arbitray 2 meters. Use this entry when you want to (usually) reduce the DISTANCE used to determine if a valid collision has occurred.

DISTANCE is calculated as the difference between home position (position on reset of rezzed object) and the distance of the collided object.

A value if 0 means to ignore this check. Any distance will be valid.

************
Standing1

Standing1,animation name

If used, this animation must exist inside an ANIMESH type object. It will be played upon reset.

**************
**************
Attach,on
AuthorizedLeaderAndControllerRegistrant,870aa9f5-02b8-4195-a159-ac15cfbd8db9
AutoReturn,5
AsyncChannel,-370
COC,77,blood on,blood off,1
IgnoreCollisions,on
IgnoreCollisionIfDistanceLessThan,0
Standing1,standing
***************

******************************************
******************************************
******************************************

*** FOR  PALETTE OWNERS ONLY ***

Async is normally triggered based on a collision or at-range condition from a thrower.  It bears repeating that a collision between 2 items must contain at least 1 physical object.

INSIDE the *thrower notecard for those owning the Artiste Palette|
/*Posts Target
/* AsyncOn
/*Type : A=Animate, C=Chat, D=Delay, E=End, P=Pal
/*Command : Start, Stop, Target, Delay, chat-command, KILL_MESH, Hide, FadeIn, FadeOut
/*Parm : animation-name, channel, seconds, animesh-name 

Example Below (The following example is the format from the *thrower notecard. Notice it uses COMMAS and NOT SLASHES)

AsyncOnRange,on,C,blood on,-51,D,Delay,1.0,A,Target,ArtistePalette_04_B,A,Start,Spin Fall,D,Delay,7,A,Start,Dead1,D,Delay,8,C,blood off,-51,D,Delay,2,E,Hide,””
This was used in a Boomerang

AsyncOnCollide,off,C,blood on,-51,D,Delay,1.0,A,Target,ArtistePalette_04_B,A,Start,Spin Fall,D,Delay,7,A,Start,Dead1,D,Delay,8,C,blood off,-51,D,Delay,2,E,Hide,””

This feature example combines hitting, consequence (blood spurt), animation(s),  delays, and disposition (hide blood and then hide  animesh)  to an Animesh via an entry on the *thrower nc and a new script added to the Animesh.
*** FOR PALETTE OWNERS ONLY ***

*************************
FOLLOWING  M and I have been deprecated and implementation suspended until further notice

Execute animations listed in the *async

M,Start@Stop,stand1— does animation Standing1
M,Start@Stop,stand2 — does animation Standing2
M,Start@Stop,
howl— does animation Howl
M,Start@Stop,attack— does animation Attack
M,Start@Stop,fall— does animation Fall
M,Start@Stop,crawl— does animation Crawl
M,Start@Stop,pushed— does animation Pushed
M,Start@Stop,menace— does animation Menace
M,Start@Stop,dance1— does animation Dance1
M,Start@Stop,dance2— does animation Dance2
M,Start@Stop,hover— does animation Hover
M,Start@Stop,other— does animation Other
M,Start@Stop,Idler — randomly animates the idled animations

M/(Start@Stop)/attack

Example:

M/Start/attack

Example of *async nc:

Standing1,MDHUlycanstandMC1x
Standing2,MDHUlycanstand1MC1x
Howl,Monster Howl
Jump,Monster Jump
Attack,Monster Attack
Fall,Spin Fall
Crawl,Dead1
Pushed,
Menace
Dance1,idle
Dance2
Hover
Other
Idle,

END

Idled animations execute randomly for the specified amount of time  when Started

Idle,anim1,10
Idle,anim2,10
Idle,anim3,10

 


Idler  – Ability to Stop or Start the Idler

I,I,(Stop@Start)
I/I/(Stop@Start)

The idler randomizes a set of animations that you choose.
You will need to Stop the Idler before trying to animate a new animation.

NOTE: The new StopIdler button on Trainer will use the TargetPalette  entry indicated in the *trainer nc in the Trainer.

 

PALETTE REFERENCE – 34 – THROWER – PART 30 – Ricochet

Ricochet

Abilities:

Thrower,on

This thrower function requires that on *thrower nc the following entries be made:

Boomerang,off
Ricochet,on

Gravity,0.01 (on Palette) – you can try slightly higher values but 0.10 is too much

It has predefined in-palette behavior in order to short-cut and simplify its operation.  It propels a throwable Palette using MoveToTarget,on only, both trips.  The only difference  between it and Boomerang is that it hasno (boom)  delay time and it does no automatic attach since its intent is to end up in the ‘world‘ somewhere.

It requires 2 contraption objects defined in the throwing object using:

ThrowerTarget,Both
ThrowerObjectTargetName1,HatTargetB1
ThrowerObjectTargetName2,HatTargetB2

Rotation can be specified using either AngularVelocity, or TargetOmegaTargetOmega causes a spurious change in spin direction if that is the effect you want.

It will automatically attach to the Palette owner upon return flight using AttachOnRange,off,5 body-part, REGARDLESS as to whether AttachOnRange is on or off.

NOTE: Best effect is to use this in a rezzer with a throw-animation. 

PALETTE REFERENCE – 33 – THROWER – PART 29 – Boomerang

Boomerang

 

IMPORTANT: Wait for ALL these message upon Reset or your rezzable will float, having not found a target:
[09:33:52] rezboom: [LDR] 14 – Artiste PALETTE is READY !!!
[09:34:07] rezboom: [ASS] 13 – Artiste Assets ->rezboom<- 71 lines read
[09:34:07] rezboom: [ASS] Found Thrower Target Object1: AlienTarget1
[09:34:07] rezboom: [ASS] Found Thrower Target Object2: ArtistePalette_03_D

Pre Attach Rezzable to Hand and adjust, prior to placing in Rezzer

Blue entries go in the rezzer palette, only
Green entries, below, go in the rezzable (embedded) palette, only
Orange entries are required in both rezzer and rezzable palettes.

Abilities:
Thrower, on
Attachable,on
Moveable,on — needed if using AutoReturn

This thrower function requires that on *thrower nc the following entries be made in the embedded rezzable palette and the rezzer palette:

Boomerang,on  ––  Rezzable palette
BoomHoverDelay,1.0 — Rezzable palette

Gravity,0.01 (on Palette in the Rezzable palette) – you can try slightly higher values but 0.10 is too much

It has predefined in-palette behavior in order to short-cut and simplify its operation.  It propels a throwable Palette using MoveToTarget,on only, both trips. ApplyImpulse is not available to it.

Rezzer
Rezzer,on

RezObjectName,rezboom
RezSource,BoomSource

Rezzable
IgnoreFirstCollision,off — as needed
RangePostActions,on

It requires 2 contraption objects defined in the
throwing object (rezzer palette) using:

ThrowerTarget,Both
ThrowerObjectTargetName1,TargetToReach
ThrowerObjectTargetName2,ReturnTarget near hand

Rotation can be specified using either AngularVelocity, or TargetOmegaTargetOmega causes a spurious change in spin direction if that is the effect you want.

MoveToTargetTau,2
/* Make MoveToTargetTau smaller for faster 
targeting
AtTargetRange,0.5 — how close before RangePost  is valid

SetAngularVelocity,on
AngularVelocity,<0.0,0.0,7.0>  — speed of rotation
AngularVelocity2,<0.0,0.0,0.0>
AngularVelocity3,<0.0,0.0,0.0>

RezMe,on
/*TempRezMe,on — (use instead of RezMe optional)
RangePostActions,on
ShowInMidFlightAfter,0.25

It will automatically attach to the Palette owner upon return flight using AttachOnRange,on,5 body-part, REGARDLESS as to whether AttachOnRange is on or off.

NOTE: Best effect is to use this in a rezzer with a throw-animation AND a catch-animation in a player-palette.