v7 beta documentation in progress. v7 beta documentation may be incomplete or inaccurate.
v7 functions and features may be significantly different from previous ACS versions.
These instructions are not valid for current v6+ ACS!
ACS uses internal link messages on channels between 150 and 1600. To avoid conflicts with your own scripts, you may prefer to use link message channels outside of this range when adding in systems that co-habitate a linkset.
I'm going to be documenting a selection of ACS internal link messages here for easier integration with other scripts (as time permits) and will provide example scripts to help you make add-ons.
If you add a script to the linkset, it can listen for certain link messages (such as ignition on/off) which you then can assign to functions in your own script.
This list will grow over time as I can get to it.
See also: ACS API commands.
Link messages to intercept:
Yes: indicates the message is sent out to the entire linkset (LINK_SET)
Root: indicates the message is only heard in the root prim (LINK_ROOT)
version: the earliest ACS version the commands will work with
whatever: means you can send this message from any script in the linkset and the rest will pick it up and respond.
Channel | Message | Key | Info | Linkset | Note | version |
---|---|---|---|---|---|---|
175 | any | (blank) | Pass message to connected HUD | Yes | Message sent to Driver HUD LINK_SET | v7.0 |
230 | "1" | (blank) | Over water | Yes | Sent from Amphibian Sensor | v7 beta |
230 | "0" | (blank) | Over land | Yes | Sent from Amphibian Sensor | v7 beta |
317 | (blank) | (blank) | Previous Park Animation | Root | whatever | v5 |
318 | (blank) | (blank) | Next Park Animation | Root | whatever | v5 |
489 | Gear # | (blank) | Current gear # | Yes | reverse gear is 0 | v7.0 |
576 | "0" | NULL_KEY | Passenger Stood | Yes | Sent from Passenger Prim | v6 |
576 | "1" | UUID | Passenger Sat | Yes | Sent from Passenger Prim | v6 |
578 | "0" | (blank) | Headlights OFF | Yes | whatever | v5 |
578 | "1" | (blank) | Headlights ON | Yes | whatever | v5 |
581 | (blank) | UUID | Unauthorized sit attempt on locked vehicle | Root | Sent from Engine | v5 |
582 | (blank) | (blank) | Alarm Triggered | Yes | whatever | v5 |
583 | (blank) | (blank) | Alarm Stopped | Yes | whatever | v5 |
659 | (blank) | (blank) | Engine OFF | Yes | whatever | v4 |
660 | (blank) | (blank) | Engine ON | Yes | whatever | v4 |
661 | (blank) | (blank) | Burnout OFF | Yes | wheels and sound | v4 |
662 | (blank) | (blank) | Burnout ON | Yes | wheels and sound | v4 |
663 | (blank) | (blank) | Burnout Particles OFF | Root | v7 Received by ParticleSystem | v4 |
664 | (blank) | (blank) | Burnout Particles ON | Root | v7 Received by ParticleSystem | v4 |
675 | (blank) | (blank) | Eject Passengers | Yes | whatever | v4 |
676 | "0" | (blank) | Group Access Disabled | Yes | whatever | v6 |
676 | "1" | (blank) | Group Access Enabled | Yes | whatever | v6 |
686 | "0" | (blank) | Unlocked | Yes | whatever | v6 |
686 | "1" | (blank) | Locked | Yes | whatever | v6 |
689 | (blank) | (blank) | Flight Mode ON | Yes | whatever | v4 |
696 | "0" | (blank) | In reverse | Yes | Sent from Engine | v5 |
696 | "1" | (blank) | In forward gear | Yes | Sent from Engine | v5 |
789 | (blank) | (blank) | Flight Mode OFF | Yes | whatever | v4 |
876 | "0" | NULL_KEY | Driver Stood | Yes | Sent from Engine | v6 |
876 | "1" | UUID | Driver Sat (with StartParked OFF) | Root | Sent from Engine | v6 |
876 | "2" | UUID | Driver Sat (with StartParked ON) | Root | Sent from Engine | v6 |
888 | (blank) | (blank) | Turned Left | Yes | Sent from Engine | v4 |
889 | (blank) | (blank) | Turned Right | Yes | Sent from Engine | v4 |
890 | (blank) | (blank) | Turned Straight | Yes | Sent from Engine | v4 |
Link messages to send to issue commands to ACS:
Linkset Yes: indicates the message is sent out to the entire linkset (LINK_SET)
Root: indicates the message is only directed at the root prim (LINK_ROOT)
Channel | Message | Key | Info | Linkset |
---|---|---|---|---|
200 | (blank) | user uuid | Call vehicle menu | No |
Additional Link Message Commands
You can also send any of the v7 Driver HUD & Gesture API Commands from your own scripts as link messages to control vehicle systems. See the v7 Driver HUD & Gesture API Commands page.
Example of using the engine on/off link messages to do something in a script:
default
{
link_message(integer sender_num, integer num, string message, key id)
{
if (num == 660)
{
llOwnerSay("Engine on!");
}
else
if (num == 659)
{
llOwnerSay("Engine off!");
}
}
}
Example of detecting a passenger sitting:
//Place in root prim. Sends greeting to a passenger when they sit on a passenger prim
default
{
link_message(integer sender_num, integer num, string message, key id)
{
if (num == 576)
{
if (message=="1")
{
llInstantMessage(id,"Hello "+llKey2Name(id));
}
}
}
}
Example of triggering a different sound for every gear:
//Triggers a different sound for every gear change
//add a sound for each gear, add as many as you need. make sure no comma after the last sound in the list!!
list soundlist = [
"2601191f-c7f7-14be-7206-7aa999ef3d44", //reverse
"18d06e87-8398-c8b9-450d-534446f8db84", //gear 1
"0e4e1351-cc51-7fec-1d98-4997b8d3f041", //gear 2
"69052600-8383-bb04-6091-cec2af82ae0e", //gear 3
"487b3309-cd5d-b86d-418f-27de9118eac1", //gear 4
"8803fe82-e99f-ccb1-cd41-eb4aa2ad9bd6", //gear 5
"c18ca004-b06a-a145-bad8-6a7671f9cbaf", //gear 6
"7b1e46d5-4cdf-a41b-88af-f803a7bd2c78", //gear 7
"ae998638-bfaf-90e2-360e-1e8874b25804" //gear 8 etc - make sure no comma after the last sound!!
];
float volume = 1.0; //volume between 0.0 and 1.0
default
{
link_message(integer sender_num, integer num, string message, key id)
{
if (num == 489)
{
if ((integer)message<llGetListLength(soundlist))
{
llTriggerSound(llList2Key(soundlist,(integer)message),volume);
}
}
}
}
Example of making a passenger prim visible only when sat on:
This does not use the ACS link messages.
//Place in passenger prim along with a sit script.
//This script does not add a llSitTarget() of its own and will not work without a passenger sit.
default
{
changed(integer change)
{
if(change & CHANGED_LINK)
{
key Avatar = llAvatarOnLinkSitTarget(LINK_THIS);
if (Avatar)
{
llSetAlpha(1.0,ALL_SIDES);
}
else
{
llSetAlpha(0.0, ALL_SIDES);
}
}
}
}
Example of vehicle that can only be rezzed under a certain group tag:
This does not use the ACS link messages.
// Members Only Rez
// Kills an object on rezzing if not rezzed under the group key specified.
// Object must be no-modify to prevent removal of this script by the object owner
// Owner must rez the object with the group tag active, if not in the group the object will vanish/llDie().
// Owner must not have "Always rez objects under land group if possible" enabled in their viewer so the object will rez under the correct group.
// (In Firestorm this is under Preferences/Firestorm/General)
// - karyn vaher
key groupkey = "e20dc953-1b32-0880-28ff-9d845f40e52e"; //set the group key here!
default
{
on_rez(integer x)
{
if (llList2Key(llGetObjectDetails(llGetKey(), [OBJECT_GROUP]),0)!=groupkey)
{
//put stuff here to happen if not in the group
llDie();
}
}
}
[v7 Main]