Skip to main content

SE Extension

Overview

The SE Extension (SA_A2XL_R18.prefab) is an R18 expansion part added non-destructively via Modular Avatar. Adding it to the base avatar enables the following features.


Automatically integrated into the top menu by MA Menu Installer.

R18 Menu
├─ PubicHair (ON/OFF)
├─ Clitoris (Radial)
├─ Nipple_L (Radial)
├─ Nipple_R (Radial)
└─ Pussy_Open (Radial)
PubicHairPubicHairToggles pubic hair visibility. The setting is saved (saved: true).
ClitorisClitorisDisplays clitoral contact intensity in real time. Synced during the session only (saved: false).
Nipple_LNipple_LDisplays left nipple contact intensity in real time. Synced during the session only (saved: false).
Nipple_RNipple_RDisplays right nipple contact intensity in real time. Synced during the session only (saved: false).
Pussy_OpenPussy_OpenManually adjusts the open/close state. Synced during the session only (saved: false).

Contact Detection System (ContactReceiver)

VRChat's ContactReceiver component detects contact from other players and the avatar itself.

SensorDetection AreaAccepted TagsDetection Radius
Sen_ClitClitorisFoot / Finger0.02m
L_Sen_NippleLeft nippleFoot / Finger0.025m
R_Sen_NippleRight nippleFoot / Finger0.025m

Common settings for all sensors:

  • allowSelf: true — detects contact from the avatar itself
  • allowOthers: true — detects contact from other players
  • minVelocity: 0.05 — minimum velocity filter (prevents false positives)

Parameter Structure

The contact detection system operates by combining two types of parameters: Bool and Float.

ParameterTypeRole
Clitoris_ContactBoolWhether contact is currently occurring (written directly by ContactReceiver)
Nipple_L_ContactBoolLeft nipple contact flag
Nipple_R_ContactBoolRight nipple contact flag
ClitorisFloatAccumulated clitoral contact intensity (0.0–1.0)
Nipple_LFloatAccumulated left nipple contact intensity (0.0–1.0)
Nipple_RFloatAccumulated right nipple contact intensity (0.0–1.0)

The _Contact Bool parameters represent real-time "currently touching" state, while the Float parameters accumulate as a running total of contact history. Float parameters are synced: true / saved: false — synced during the session only, and reset on logout.

Value Increase/Decrease Logic

While contact is active (_Contact = true), the corresponding Float value increases at +0.02/tick. When contact ends, the SYS_NSFW_Contact_Subtract layer activates and gradually decreases the value at -0.02/tick as long as it is 0.2 or above. This creates a natural lingering sensation after contact ends.

When the Float value exceeds 0.99, a transition to a special state occurs:

AreaThresholdDestination State
ClitorisClitoris > 0.99CLITORIS_ORGASM
Left nippleNipple_L > 0.99LACTATION_L
Right nippleNipple_R > 0.99LACTATION_R

Animator Layer Structure

The R18FX Controller is structured with independent layers for each function.

LayerRole
SYS_NSFW_Contact_SubtractSystem that automatically decreases Float values when contact ends
FX_CLITORIS_CONTACTIncrements Clitoris during contact and transitions to orgasm at the upper limit
FX_NIPPLE_L_CONTACTIncrements Nipple_L during contact and transitions to lactation at the upper limit
FX_NIPPLE_R_CONTACTIncrements Nipple_R during contact and transitions to lactation at the upper limit
FX_CLITORIS_ERECTIONDrives the LocalScale of the Clit bone based on the Clitoris value
FX_NIPPLE_L_ERECTIONDrives the LocalPosition of the Nipple.L bone based on the Nipple_L value
FX_NIPPLE_R_ERECTIONDrives the LocalPosition of the Nipple.R bone based on the Nipple_R value
FX_PUSSY_OPENControls SPS act_(i)_open and the urination emitter via Pussy_Open
Note When Modifying

The IDLE state of the FX_PUSSY_OPEN layer has a transition condition of CostumeBody = 2 (undressed state). If the default costume is removed, this condition will not be met and PUSSY_OPEN will not function.

Solutions:

  • Delete the CostumeBody parameter from SA_A2XL_SE R18FX and also remove the condition from the IDLE state of the FX_PUSSY_OPEN layer.
  • Alternatively, assign CostumeBody = 2 to the undressed state of your custom costume.

Animation Drive Method

ERECTION layers use m_TimeParameterActive: true to directly control the animation playback position (Time) with the Float parameter value. This means "value 0.0 = default shape / value 1.0 = maximum deformation" is reflected in real time in proportion to the Float value.

AnimationControl TargetMethod
CLITORIS_ERECTIONArmature/Hips/ClitChanges bone LocalScale
NIPPLE_L_ERECTIONArmature/.../Nipple.LChanges bone LocalPosition
NIPPLE_R_ERECTIONArmature/.../Nipple.RChanges bone LocalPosition
PUSSY_OPENBasebody / Peeing_SystemSPS act_(i)_open + IsActive of urination emitter

SPS (VRCFury Sexual Penetration System)

A penetration depth detection system using VRCFury v1.1174.0. Operates independently of ContactReceiver.

ObjectSPS NameCorresponding BlendShape
Pussyおまんこact_(i)_push / open_half1 / open_half2
Anusあなるact_*_push / open_half1 / open_half2

BlendShapes are driven automatically in proportion to penetration depth. Automatic detection is enabled via enableAuto: true.

Non-destructive integration into the base avatar's bone hierarchy is achieved via ArmatureLink (linkMode: 4).


PhysBone (Physics)

AreaimmobilelimitTypemaxAngleXmaxAngleZ
Clitoris1.0Angle10°45°
Labia ×21.0Angle10°45°

Parameter List

ParameterTypesavedsyncedDescription
PubicHairBoolPubic hair visibility
ClitorisFloatClitoral contact intensity
Nipple_LFloatLeft nipple contact intensity
Nipple_RFloatRight nipple contact intensity
Pussy_OpenFloatOpen/close state