This page contains detailed reference information for the Obsidian AVsitter Plugin (non-LEGACY).
The Quick Start guide covers all scripts included in the DevKit | AVsitter Plugin, including LEGACY options.
Changelog
| Version | What’s new |
|---|---|
v110 | * Add .hands toggle to [ADJUST] menu.* Make neutral_* prefixes to play when avatar sits/swaps.* Play syncreset animation before resyncing animations.* Separate DUMP operation into a self-deleting / dump script. |
v109.6 | [ADJUST] options to disable .face animations and “angles” restoration. |
v109.5 | * LEGACY AVsitter plugin [2025.1] no longer whispers instructions — see the LEGACY website for docs.* Significantly improved animation syncing for sitters and .OBS/.obs suffix animations.* Requires the main / sitter script as the master syncing script; other sitter scripts are created via auto-renaming (keep the / sitter script and remove unnecessary sitter scripts).* Restore support for .obs extension for backward compatibility. |
v109.4 | (This change has been reverted in v109.5: Deprecated the .obs animation extension. |
v109.3 | Improved syncing scheduling and stopping behavior for overlay animations (plays/stops either .OBS or other extensions depending on what is worn). |
v109.2 | Fixed listening to the Obsidian HUD at distances greater than 5 meters and improved syncing scheduling. |
v109.1 | Fixed issue where a previous animation with an .OBS suffix could bleed into the next animation that had no .OBS suffix. |
v109 | LEGACY API and LEGACY Plugin scripts available to creators. |
v108 | Added support for variable speed animations (+/- animation name suffixes).- Auto synchronization of all animation suffixes. |
v107 | The 107 release of Obsidian internally supports the LEGACY Plugin commands coming from existing furniture. |
Objectives
Obsidian AVsitter Plugin does the following:
-
Plays overlay animations (
<anim_name>.OBSor<anim_name>.obs) in parallel with the<anim_name>animation — if located — and if Obsidian is worn by the corresponding sitter.- The Plugin can be instructed to temporarily disable overlay animations by the user who sits on the furniture.
-
Plays all animations with the
neutral_prefix when the avatar sits on the furniture or swaps the sits (sincev110).These animations should be low priority, looped animations, designed to bring the hands, face or other avatar joints to a neutral state which also helps to avoid the “jerking” affect.
-
Forces automatic synchronization of all animations with the following suffixes (since
v108):.face- Since
v109.6face suffix animations can be toggled on/off via the[ADJUST]menu.
- Since
.hands- Since
v110hands suffix animations can be toggled on/off via the[ADJUST]menu.
- Since
.extra.OBSor.obsspecifically for Obsidian creator animations.
-
Plays the
syncresetanimation before resyncing all animations if found (sincev110). -
Records and restores the “angles” data, namely:
- Stage of hardness (
s). - Vertical angle (
v). - Horizontal angle (
h).
Data is saved in the LSD1 storage, helping to reduce the amount of scripts.
- Data can be dumped to local chat and saved in a notecard in a format backward compatible with the LEGACY Plugin.
- Data can be imported back into the LSD1 storage as described further below.
- Stage of hardness (
-
The Plugin supports variable speed animations since
v108.- If no data found for
+/-variants, the plugin will fallback to the “angles” data without the+/-suffix. - For the
.OBS/.obsoverlay animations, there is no fallback.
- If no data found for
Content
When you unpack Obsidian, the / dev folder will contain the following:
*/ aeros / AVsitter v[VERSION] / sitter(required)- To generate
/ sitter 1script, drop the original one into the furniture content. Second Life will automatically append1to the name. Repeat until you reach the needed amount of sitters. - If you do need to support a particular sitter, you may remove unnecessary sitter scripts, but DO NOT REMOVE the original
/ sitterscript as it functions as a master controller for automatic synchronization.
- To generate
*/ aeros / AVsitter v[VERSION] / import- this is a script that can be dropped into the furniture to import notecard data produced by both the LEGACY Plugin and the new Plugin. It reads from*/ aeros / AVsitterprefix notecards in addition to the LEGACY Plugin notecard name.*/ aeros / AVsitter v[VERSION] / dump- this is a script that can be dropped into the furniture to export accumulated “angles” data (sincev110). This script replaces the[DUMP]and[DUMP S0]dialog buttons.
You do not need the
*/ aeros / APIscript for the AVsitter Plugin to operate.
In addition to the above scripts, the DevKit | AVsitter Plugin also comes with the reverse engineered LEGACY AVsitter Plugin script. The DevKit is updated independently of the main Obsidian releases.
Usage
This section dives deep into how to use the Obsidian AVsitter Plugin.
If you own the DevKit | AVsitter Plugin, consider the Quick Start guide that covers different paths to take if your product has no need to support specific to the Obsidian features.
Start by determining which sitters will be using “angle” recordings and playing .OBS/.obs overlay animations.
The plugin supports two animation suffixes:
.OBSand.obs. If both exist,.OBStakes precedence per animation name.The animations do not need to be split into separate files, but the scripts have no way to know how the animation files are structured, so the Plugin simply attempts to find the appropriate files.
- Drop
*/ aeros / AVsitter v[VERSION] / sitterinto the content of the furniture.- To generate
/ sitter 1for sitter 1, drop the same script into the furniture content again. Second Life will automatically append1to the name.- Repeat the same with the original
/ sitterscript until you reach the needed amount of sitters. - Erase unnecessary sitter scripts if you do not need them, but DO NOT ERASE the original
/ sitterscript.
- Repeat the same with the original
- If you are using an older version of the plugin, you may find pre-created
sitter 0,sitter 1, etc. scripts.
- To generate
New AVsitter Plugin does not require main
*/ aeros / APIscript.
- Switch to the sitter that requires recording and replaying of the “angles”.
- Begin tapping rapidly on the Stop button on the Obsidian HUD.
- After 5 clicks you will see a dialog window. Enable
[☒ RECORDING]and[☒ LOG]. - Now the recording begins. There is more details further down.
Dialog
[☒ RECORDING]checkbox lets you select if the recording should happen.[☒ LOG]checkbox lets you select if the log should be shown of every action in local chat.[REFRESH]helps to see up-to-date information in the dialog. (Dialogs in Second Life become stale quickly.)- If there is a record, a
Delete 1 Rec.button will appear.It will delete the record of the animation at the moment of clicking Delete. Make sure to
[REFRESH]before deleting if you switched between animations after the dialog was shown.
The dialog is issued separately for each sitter, and settings are also separate. You can enable
[☒ RECORDING]and[☒ LOG]for one sitter while keeping settings disabled for another.
Recording the “angles”
- Ensure
[☒ RECORDING]is enabled for the sitter using the dialog as described above. - Navigate to the animation.
- Make any changes using the Obsidian HUD.
- The script will record this information into LSD1 memory. A report of the action will appear in local chat if
[☒ LOG]is enabled.
Recording Permissions
If you are:
- a furniture creator and the mesh was created by you.
- an owner of a furniture piece with modify permissions.
then the plugin will work out of the box and will allow all the actions outlined above.
However, if you are an established furniture creator and need to relax this requirement, please contact Pi Rain with your request via a notecard.
Publishing
If you would like to distribute your product with the AVsitter plugin scripts, you may leave their permissions unchanged.
User Settings
There are three optional settings that you may add to your AVpos notecard to allow users to temporarily disable certain features:
- Animations
- Angles
- Face Animations
Allow Users to Temporarily Disable Features
- “Creator Animations” - disable/enable
.OBS/.obsoverlay animations. - “Angles” - disable/enable restoring “angles” data.
- “Face Animations” - disable/enable
.faceoverlay animations. - “Hands” - disable/enable
.handsoverlay animations.
There is only one
[ADJUST]setting perAVposnotecard. More pairs going into the[ADJUST]menu should be delimited by|, according to the instructions.For example:
ADJUST (æ) Anims|-7279993|(æ) Angles|-7279992|(æ) Face|-7279994|(æ) Hands|-7279995Please update the plugin to
v110or later to support all options.
”Creator Animations” (.OBS/.obs)
If you have .OBS/.obs overlay animations in your product, you may find it useful to add a command to your ADJUST menu in the AVpos notecard that allows to temporarily disable Creator Animations that are recorded in the .OBS/.obs animations. It is only effective for the user who clicks the menu; they can enable it back any time. The Plugin resyncs all animations after this action. As soon as another user takes the same seat, the setting resets to enabled state.
ADJUST æ Anims|-7279993
The name
æ Animscan be customized to your liking.
There is only one
[ADJUST]setting perAVposnotecard. More pairs going into the[ADJUST]menu should be delimited by|, according to the instructions.
”Angles”
This option is available since
v109.6of the plugin.
Some users may not wish to have their “angles” restored. You may add a command to your ADJUST menu in the AVpos notecard that allows to temporarily disable this feature for the user who sits on the furniture. It is only effective for the user who clicks the menu; they can enable it back any time. The Plugin resyncs all animations after this action. As soon as another user takes the same seat, the setting resets to enabled state.
ADJUST (æ) Angles|-7279992
The name
(æ) Facecan be customized to your liking.
”Face Animations” (.face)
This option is available since
v109.6of the plugin.
Some animations may come with the .face overlay animation. In this case the users might want not to play those. The following setting comes to the rescue:
ADJUST (æ) Face|-7279994
The name
(æ) Facecan be customized to your liking.
”Hands Animations” (.hands)
This option is available since
v110of the plugin.
Some animations may come with the .face overlay animation. In this case the users might want not to play those. The following setting comes to the rescue:
ADJUST (æ) Hands|-7279995
The name
(æ) Handscan be customized to your liking.
aeros / API script
The AVsitter plugin does not require the
aeros / APIscript.
Initial Settings
Both RECORDING and LOG are automatically toggled off when the script changes the owner.
Import & Export
Depending on your workflow and setup, you may want to export accumulated “angles” data into the LEGACY Plugin notecard. First of all this adds compatibility for the pre-2025 Aeros products. This can also be used for backup purposes or to transfer data between different furniture pieces.
Export from Source
- Drop the
*/ aeros / AVsitter v[VERSION] / dumpscript into the furniture (added inv110). The script will output the “angles” data accumulated for all the sitters in local chat.Before
v110the equivalent was to use the Plugin dialog and choose[DUMP ALL](or[DUMP S0],S1, etc. for each sitter individually). - Copy and paste the output into either a LEGACY Plugin notecard or a notecard that the new
importscript will recognize, as outlined below.
The data that the new Plugin outputs is compatible with both the pre-2025, the LEGACY Plugin and the new plugin.
Import to Destination
Erase If Necessary
If you desire, use the dialogs to pre-erase any existing data ([PURGE ALL] or [PURGE S0], etc.).
The import script does not erase any existing data; it only overwrites the records that match the following: sitter, menu name, animation name (and +/- speed variation).
Prepare Notecard
-
Drop the notecard(s) containing exported data into the furniture. All notecards which names:
- begin with
*/ aeros / AVsitteror - named as the LEGACY Plugin notecard,
will all be processed one by one according to the regular naming order.
- begin with
Now Import
- Now drop the
*/ aeros / AVsitter v[VERSION] / importinto the furniture to get the data imported. The script will report its progress and delete itself.The LEGACY Plugin only reads the LEGACY notecard name.
It appears that the LEGACY Plugin does not recognize
+/-speed variants, so it restores the "angles" data from the default speed recording, which should be fine for the older versions.
Optionally Erase
Since the LEGACY Plugin will also import data from its notecard, both plugins will replay the “angles” and be detected by the Obsidian.
This should not be a big problem, especially because internally the Obsidian devices filters out exact application of data when it comes from the LEGACY channel.
Alternatively, you may choose to Purge data from the new Plugin after importing it using the [PURGE ALL] dialog.
Ranges Difference
There are ranges difference in the horizontal and vertical angles that the models support with Obsidian supporting a wider range. All Aeros devices clamp the values to the ranges they can support.
Three stages vs Four stages
The Obsidian supports 4 stages of hardness while the LEGACY Aeros products only support 3 stages. Here’s the mapping of how the extra stage is handled:
| Obsidian Stage → Notecard | Notecard → Obsidian Stage | Notecard → LEGACY Aeros |
|---|---|---|
0 → 0 | 0 → 0 | 0 → 0 |
0.333 → 1 | — | — |
0.667 → 1 | 1 → 0.667 | 1 → 1 |
1 → 2 | 2 → 1 | 2 → 2 |
This means that the Obsidian’s
0.333stage will never be restored with neither the LEGACY nor new plugin. We consider this as reasonable trade off.
Updating Scripts
The plugin keeps data in the LSD1 storage so you can simply replace the scripts without losing existing data. For backup purposes, you may want to dump the data before updating.
Technical Details
- Data is stored under the
~obs|and~oBs|prefixes in the LSD1 storage without encryption (except for the setting to temporarily disable.OBS/.obsoverlay, because it has the user’s UUID in it).
LSD1 data is attached to the root prim in the linkset. When merging two linksets, both with linkset data, the new root’s data is preserved and the simulator makes an effort to move as many of the key value pairs from the old root to the new.
Obsidian