The control family splits two ways in QuickySitter. The root-prim scripts ([QS]root, [QS]root-control, [QS]root-security, [QS]root-RLV) are forked (release 1.25). The restraint / sensation protocol plugins (LockGuard, LockMeister, Xcite!) are genuinely stock AVsitter, unforked: drop them into a QS prim and they work as in a stock AVsitter prim.
Forked root-prim scripts ([QS]root*)
| Plugin | What it does |
|---|---|
[QS]root |
Root-prim touch forwarder: forwards the touch (90005) when the touched prim has no sitA/menu of its own. |
[QS]root-control |
“Allow others to control the menu”: couples controllers by name. |
[QS]root-security |
Sit/menu access gate (ALL / OWNER / GROUP); sends LinkMsg 90202 to sitA. Since 1.25 also a third Adjust ACL (OWNER / GROUP / ALL, default OWNER) set from the [SECURITY] menu and published to the qs:sec:adjust LSD key; [QS]sitB / [QS]adjuster read it to gate who may enter the adjust workflows ([HELPER] / [HELPER HUD] and owner-gated registered [ADJUST] entries). The [SECURITY] menu shows the Adjust category only while [QS]adjuster is present (qs:alive:adjuster), and the level can also be set with the owner chat shortcut /5 adjust, which works even without this plugin. Resets to OWNER on CHANGED_OWNER (both writers). |
[QS]root-RLV |
RLV capture/relay; publishes the qs:alive:rlv presence flag. |
There is no [QS]root-RLV-extra in the fork.
Genuinely stock control plugins
| Plugin | What it does |
|---|---|
[AV]LockGuard |
LockGuard restraints protocol. |
[AV]LockGuard-object |
LockGuard rezzed objects. |
[AV]LockMeister |
LockMeister restraints protocol. |
[AV]Xcite! |
Xcite! sensations. |
These (along with [AV]camera and [AV]favs) are shipped verbatim from upstream. Configuration of each plugin (channels, attachment points, RLV designations) is via the AVpos notecard or per-plugin notecards. See the upstream AVcontrol documentation.
Why the split
The restraint/sensation plugins (LockGuard, LockMeister, Xcite!) don’t read or write qs:* LSD keys and don’t gate any sitter menu, so there’s no functional benefit to forking them. QS treats them as a stable lower layer the fork cooperates with.
The root-prim scripts were forked because they sit in the QS control path: [QS]root-RLV publishes qs:alive:rlv so [QS]sitB can gate the Control... RLV menu via rlv_present() (with a [AV]root-RLV inventory probe as the stock-AVsitter fallback), and [QS]root-security reaches sitA over LinkMsg 90202. Their menu items do appear in the adjuster/options menus, which is exactly why presence gating matters.
Interactions with QS
A few QS-specific behaviors worth noting:
[QS]root-RLVLinkMsg 90014 (controller + captives broadcast) is consumed by some QS scripts unchanged. RLV-based menu reset on capture still works.[QS]root-securityLinkMsg 90006 (touch/sit register) flows through QS sitA exactly as in stock;[QS]root-securityalso reaches sitA over LinkMsg 90202 for the access gate.- Stock
[AV]selectvs[QS]select.[AV]select(stock multi-furniture select) and[QS]select(the QS fork) are interchangeable.[QS]selectadvertises presence by writing theqs:alive:selectLSD flag (re-stamped onQS_ALIVE_CENSUS90079, read on demand);[QS]sitB’sselect_present()reads that flag and falls back to an[AV]selectinventory probe for stock-AVsitter compat. (The retiredQS_SELECT_HELLOon the90088–90092band is gone since 0.9951.)
See also
- Upstream AVcontrol documentation.
- Compatibility Matrix: plugin compatibility table.
- LinkMessage Numbers.
