Technical Specifications & Known Limitations
This page describes the current behavior of Real Sweat System v1.1.0. The menus, parameters, and objects generated by Setup depend on the installed modules, avatar rig, selected Elements/targets, and enabled options.
Technical scope by module
| Item | Sweat Base Module | Sweat Effects Module | Full Pack |
|---|---|---|---|
| Skin sweat and flowing surface droplets | Yes | — | Yes |
| Body sweat material and Rest data | Yes | — | Yes |
| Tess / No Tess and Remote Low Load | Yes | — | Yes |
| Spawn Mask, final Display Mask, Light Volumes toggle, and surface mirror quality | Yes | — | Yes |
| Multiple Body Elements and additional skinned targets (experimental) | Yes | — | Yes |
| Falling Drops and Floor Stains | — | Yes | Yes |
| 2D or optional 3D Breath, Falling Drops, and Body Steam | — | Yes | Yes |
| Custom Steam and optional shared intensity radial | — | Yes | Yes |
| Manual Mode | Yes | Yes | Yes |
| Auto Mode on a compatible rig | Yes | Yes | Yes |
| Changes Body material, Body mesh, or Rest mapping | Yes | No | Through Base only |
An Effects-only setup still needs a Body Mesh as the particle emission source. It does not change the Body material, Body mesh, Rest Vertex Data, or tessellation configuration.
Supported environment
- Unity 2022.3
- VRChat Avatars SDK3
- Modular Avatar
- PC VRChat (Direct3D 11)
This product is for PC VRChat. Quest standalone is not supported.
Humanoid avatars are the primary supported target. A Humanoid rig that can create the Motion Pendulum can use both Manual Mode and Auto Mode. A Non-Humanoid avatar, or a setup where the required bone data cannot be resolved, falls back to Manual Mode. See Compatibility for the rig-dependent feature matrix.
Current officially supported scope
- One primary Body
SkinnedMeshRendererprovides the scale and default Effects emission reference. - Multiple material Elements in that Body can be configured.
- Separate
SkinnedMeshRenderertargets such as a Face are supported as an experimental feature with their own Rest data, masks, material, and draw cost. - Automatic handling of every switchable Body arrangement is not guaranteed; targets must be configured explicitly.
- Compatibility with every combination of third-party optimizer, mesh merger, material merger, or build-time converter is not guaranteed.
Experimental Face targets must be tested with the avatar's BlendShapes, expressions, and face-tracking setup. Tess around eyes or lips is not recommended.
Synced parameters
The following values are maximums for a compatible Auto Mode setup with every relevant optional effect installed. Setup omits parameters for missing modules, disabled effects, and unavailable features, so the actual cost may be lower.
| Configuration | Standard sync cost (max) | With Steam & Breath Intensity |
|---|---|---|
| Base / No Tess | 21 bits | Not applicable |
| Base / Tess Support | 22 bits | Not applicable |
| Effects | 23 bits | 31 bits |
| Full Pack / No Tess | 26 bits | 34 bits |
| Full Pack / Tess Support | 27 bits | 35 bits |
The standard maximum includes Sweat %, Auto Mode, Sweat Display, visibility/load controls, and module-dependent effect controls. Installing all four individual Effects controls—Falling Drops, Floor Stains, Breath Puffs, and Steam—adds up to four synchronized Bool parameters. Tessellation support adds one synchronized Bool. The optional saved synchronized Steam & Breath Intensity Float adds 8 bits.
Internal exercise, body heat, drop activity, and skin wetness signals are NotSynced and add no parameter cost. Breath reuses synchronized Sweat %.
Sweat materials and simultaneous draws
These material counts refer only to the Body sweat-surface materials managed by Base. Particle materials used by Effects are not included.
| Base installation setting | Materials per configured target | Drawn per configured target |
|---|---|---|
| 3D Feature not installed | One No Tess material | 1 |
| 3D Feature installed | Tess + No Tess, two materials | 1 |
| Effects-only | No Body sweat material added | 0 |
Installing the 3D Feature does not draw Tess and No Tess together. The system swaps each configured slot between them. Multiple selected Body Elements and additional Renderers can therefore draw multiple sweat materials at the same time.
PhysBones and colliders
| Item | Created by Setup |
|---|---|
Auto Mode VRCPhysBone | 1 on a compatible rig; 0 in a Manual-only setup |
VRCPhysBoneCollider | 0 |
The Auto Mode PhysBone is created on a dedicated Motion Pendulum under RealSweat. Real Sweat System does not intentionally edit existing avatar PhysBones or colliders used by the chest, hair, clothing, or other systems.
The standard Real Sweat Setup does not edit existing PhysBones. Check the final Play Mode build for another tool that merges bones or components, avatar constraints, or other build-time changes.
Rest Vertex Data
The Base Module creates three per-vertex Rest data textures for each configured display mesh:
- Rest Position
- Rest Normal
- Rest Tangent
Rest Vertex Data Baker reads the mesh and assigns the generated textures to the target sweat material. It does not directly modify the source FBX, sharedMesh, UVs, blend shapes, or other materials. Rest data matches a specific mesh layout, so a generated sweat material and Rest data must not be shared across different targets.
Rest data is per mesh, not per material Element. Multiple selected Elements on one Renderer use the same mesh mapping. A separate Renderer/mesh receives its own Rest data.
Replacing the Body mesh, changing its vertex layout, or merging submeshes after Setup can invalidate the mapping between the Rest data and the final display mesh.
Render Queue and shadows
- Automatic render order sets the sweat material Render Queue to exactly 2455.
- Keep the selected Body material at 2454 or lower.
- Additional targets use
max(2455, selected source material queue + 1). - A manual queue is available when automatic order cannot be used, but values of 2501 or higher are affected by Transparent sorting.
- When Follow Body Shadow Strength is enabled, Setup or Apply to FX copies the target Body material's
_ShadowStrengthinto the sweat material.
See Compatibility for details and exceptions.
Technical behavior of Tess, Remote Low Load, and Effects
Tessellation
Tessellation is an optional Base Module feature. It adds smoother silhouettes and three-dimensional droplet displacement than No Tess, at a higher GPU cost. When it is not installed, only one No Tess material is uploaded.
Remote Low Load
Remote Low Load is available when Base is installed. When enabled, the sweat shown to other users switches to the built-in Lite path on No Tess.
- With Tess Support: other users receive No Tess + the Lite path
- Without Tess Support: the same No Tess material uses its Lite path
- Local view: keeps the locally selected Tess / No Tess state
- 3D Effects: halves remote Falling Drop emission, disables remote strong-motion fling, and reduces remote Body/Custom Steam emission to 25%
- Simultaneous draw: one sweat material per configured target
Mirrors and Light Volumes
- Full-Quality Body Sweat in Mirrors is optional and off by default. It restores surface density, optics, Light Volumes, and Tess/No Tess quality in mirror cameras.
- Body Steam mirror modes are Full, Low, and Hidden. In 2D mode, Low skips blur without reducing particle count. In 3D mode, Low currently uses the same appearance and cost as Full.
- VRC Light Volumes influence can be disabled from the in-game Reduce Load menu and defaults to on.
Effects
The Effects Module uses particles for Falling Drops, Floor Stains, Breath Puffs, and Steam. The lightweight 2D mode is the default; optional high-load 3D quality changes Breath, Falling Drops, and Body Steam to mesh-particle rendering. Only effects selected during Setup add their controls and parameters, and each can be disabled in game.
Floor Stains are collision sub-effects of Falling Drops and are available only while Falling Drops is enabled. Collision uses world Default and Environment layers; avatar/player layers are excluded, so an incompatible world floor collider or layer can produce no stain. Breath Puffs and Steam are generated only when the required Head and Chest anchors can be resolved.
Up to four Custom Steam slots can be active, with a mirrored pair using two. More than ten combined built-in/custom emitters triggers a mirror-cost warning; twelve is the hard total limit. Combined rate weight above 4.0 is normalized proportionally.
Generated-target integrity and build blocking
Setup records the expected generated material and Renderer slot for each experimental additional target. Missing, cleared, moved, replaced, or merged generated slots are treated as installation damage.
- Tuning shows Repair Required.
- Avatar build stops instead of falling back to another material slot or silently omitting the target.
- Use Manage Targets... or Open Setup to Repair..., then run the full Setup to repair or remove it.
Tools that modify the mesh during build
If sweat looks correct in the Unity Editor but its position, shape, or visibility breaks only in VRChat, another build-time tool may be changing one of the following:
- The target Body Renderer or mesh
- Vertex or submesh layout
- Material-slot order
- The final display mesh referenced by Rest data
If that tool has an exclusion list, exclude the Body Renderer used by Real Sweat from optimization or merging. If it has no feature for excluding a Body Renderer, compatibility with that tool cannot be guaranteed.
In workflows where mesh changes can be finalized first, run Real Sweat System Setup after producing the final mesh. If the mesh changes only during build, compatibility with the final result must be verified for that configuration.