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

VersionWhat’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.3Improved syncing scheduling and stopping behavior for overlay animations (plays/stops either .OBS or other extensions depending on what is worn).
v109.2Fixed listening to the Obsidian HUD at distances greater than 5 meters and improved syncing scheduling.
v109.1Fixed issue where a previous animation with an .OBS suffix could bleed into the next animation that had no .OBS suffix.
v109LEGACY API and LEGACY Plugin scripts available to creators.
v108Added support for variable speed animations (+/- animation name suffixes).
- Auto synchronization of all animation suffixes.
v107The 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>.OBS or <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 (since v110).

    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.6 face suffix animations can be toggled on/off via the [ADJUST] menu.
    • .hands
      • Since v110 hands suffix animations can be toggled on/off via the [ADJUST] menu.
    • .extra
    • .OBS or .obs specifically for Obsidian creator animations.
  • Plays the syncreset animation before resyncing all animations if found (since v110).

  • 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.
  • 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/.obs overlay animations, there is no fallback.

Content

When you unpack Obsidian, the / dev folder will contain the following:

  • */ aeros / AVsitter v[VERSION] / sitter (required)
    • To generate / sitter 1 script, drop the original one into the furniture content. Second Life will automatically append 1 to 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 / sitter script as it functions as a master controller for automatic synchronization.
  • */ 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 / AVsitter prefix 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 (since v110). This script replaces the [DUMP] and [DUMP S0] dialog buttons.

You do not need the */ aeros / API script 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: .OBS and .obs. If both exist, .OBS takes 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] / sitter into the content of the furniture.
    • To generate / sitter 1 for sitter 1, drop the same script into the furniture content again. Second Life will automatically append 1 to the name.
      • Repeat the same with the original / sitter script until you reach the needed amount of sitters.
      • Erase unnecessary sitter scripts if you do not need them, but DO NOT ERASE the original / sitter script.
    • If you are using an older version of the plugin, you may find pre-created sitter 0, sitter 1, etc. scripts.

New AVsitter Plugin does not require main */ aeros / API script.

  • 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/.obs overlay animations.
  • “Angles” - disable/enable restoring “angles” data.
  • “Face Animations” - disable/enable .face overlay animations.
  • “Hands” - disable/enable .hands overlay animations.

There is only one [ADJUST] setting per AVpos notecard. 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|-7279995

Please update the plugin to v110 or 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 æ Anims can be customized to your liking.

There is only one [ADJUST] setting per AVpos notecard. More pairs going into the [ADJUST] menu should be delimited by |, according to the instructions.

”Angles”

This option is available since v109.6 of 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 (æ) Face can be customized to your liking.

”Face Animations” (.face)

This option is available since v109.6 of 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 (æ) Face can be customized to your liking.

”Hands Animations” (.hands)

This option is available since v110 of 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 (æ) Hands can be customized to your liking.

aeros / API script

The AVsitter plugin does not require the aeros / API script.

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] / dump script into the furniture (added in v110). The script will output the “angles” data accumulated for all the sitters in local chat.

    Before v110 the 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 import script 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 / AVsitter or
    • named as the LEGACY Plugin notecard,

    will all be processed one by one according to the regular naming order.

Now Import

  • Now drop the */ aeros / AVsitter v[VERSION] / import into 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 NotecardNotecard Obsidian StageNotecard LEGACY Aeros
0 00 00 0
0.333 1
0.667 11 0.6671 1
1 22 12 2

This means that the Obsidian’s 0.333 stage 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/.obs overlay, 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.

Footnotes

  1. LSD — abbreviation for Linkset Data. 2 3 4 5 6