Skip to main content

Technical Specifications & Known Limitations

This page describes the current behavior of Real Sweat System v2.0.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​

ItemSweat Base ModuleSweat Effects ModuleFull Pack
Skin sweat (Anime / Realistic) and running surface dropletsYes—Yes
Body sweat material and Rest dataYes—Yes
Droplet Depth (Tess / No Tess) and Remote Low LoadYes—Yes
Spawn Mask, final Display Mask, Hide Skin Sweat, and surface mirror qualityYes—Yes
Multiple Body Elements and additional skinned targets (experimental)Yes—Yes
Falling Drops, splash, and Floor Stains—YesYes
2D or optional 3D Breath, Falling Drops, and Body Steam—YesYes
Custom Steam and optional shared intensity radial—YesYes
Manual ModeYesYesYes
Auto Mode on a compatible rigYesYesYes
Changes Body material, Body mesh, or Rest mappingYesNoThrough 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 Droplet Depth configuration.

Supported environment​

  • Windows for the Unity editor (purchase activation works only on Windows)
  • Unity 2022.3
  • VRChat Avatars SDK 3.10.3 or later (checked up to 3.10.6)
  • Modular Avatar (tested with NDMF 1.14.0 / Modular Avatar 1.17.1 and NDMF 1.14.8 / Modular Avatar 1.18.7)
  • PC VRChat (Direct3D 11)

This product is for PC VRChat. On Quest the sweat is not visible (safe Hidden fallback).

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 SkinnedMeshRenderer provides the scale and default Effects emission reference.
  • Multiple material Elements in that Body can be configured.
  • Separate SkinnedMeshRenderer targets 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 with Humanoid Auto Mode and the standard optional toggles installed, including Only Visible to Me. Setup omits parameters for missing modules, disabled effects, and unavailable features, so the actual cost can be lower.

ConfigurationStandard sync cost (max)With Body Steam & Breath Intensity
Base / No Tess21 bitsNot applicable
Base / with Droplet Depth (Tess)22 bitsNot applicable
Effects23 bits31 bits
Full Pack / No Tess26 bits34 bits
Full Pack / with Droplet Depth (Tess)27 bits35 bits

v2.0.0 removed the VRC Light Volumes menu toggle and its synchronized parameter (1 bit). The optional saved synchronized Body Steam & Breath Intensity Float adds 8 bits to Effects-only and Full installations; Base-only is unchanged. The Base and Full Pack values include the 1-bit Wet Skin Film toggle, which Setup installs only when Wet Skin Gloss is on.

Breath reuses the existing Cooki/SweatAmount Float, so it adds no synchronized Float parameter. Internal exercise, body heat, drop activity, and skin wetness signals are NotSynced and add no parameter cost. The menu gauge updates in 1% steps; remote Float synchronization has approximately 1/127 (0.8%) precision.

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 settingMaterials per configured targetDrawn per configured target
Droplet Depth not installedOne No Tess material (RealSweatSystem No Tessellation)1
Droplet Depth installedTess + No Tess, two materials1
Effects-onlyNo Body sweat material added0

Installing Droplet Depth 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.

  • The shader names are RealSweatSystem No Tessellation and RealSweatSystem. Sweat at a render queue other than 2350 uses the shaders with (Late Queue) added to the name.
  • An avatar uses only the shader of its own sweat style.
  • The splash adds 2 particle systems and 2 material slots.

PhysBones and colliders​

ItemCreated by Setup
Auto Mode VRCPhysBone1 on a compatible rig; 0 in a Manual-only setup
VRCPhysBoneCollider0

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.

If an existing PhysBone stops moving

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

The new look draws sweat only where the Rest data is valid. It no longer falls back to a UV pattern. Setup bakes the Rest data for you, so you normally don't need to think about it.

  • A material that is not installed yet, or a mesh that changed after the bake, may show no sweat in the Scene view. The Rest Data cell at the top of the material inspector and the Tuning's Mesh and Rest Data Diagnostics tell you when this happens. If the mesh changed, the next build (upload) bakes again from the final mesh.
  • The up direction comes from the humanoid bones (Hips→Head), and it is right even when the body stands along a negative axis of the mesh. Avatars without humanoid bones take it from the mesh shape (its longest axis).
  • 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.
  • 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.

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.

Droplet size and pattern​

  • Droplet size follows the avatar's body size automatically. It is measured from the humanoid bone lengths of the spine and the legs, so hair, hats, the pose, and the mesh units (cm/m) do not affect it, and a droplet is the same size relative to the body on every avatar. No bounding box is used.
  • Other meshes such as a face get the body's droplet size, and scaling the avatar scales the droplets with it. Avatars without humanoid bones use the view position (eye height). To change the size further, use Droplet Size.
  • Setup picks a pattern number once per avatar, stores it in Tuning, and writes it to all of that avatar's sweat materials (other meshes included). So two copies of the same avatar do not sweat in the same places. Installing again keeps the number.
  • A new install after uninstalling gets a new number. A duplicated avatar also gets one when Setup makes a new generated folder for it.
  • Droplets last 10-25 seconds, and a trail dries within 2-5 seconds after its droplet stops.

Render Queue and shadows​

  • Automatic Render Order (Recommended) draws the primary Body Sweat at render queue 2350.
  • Body materials (opaque or cutout) at 2350 or later: [Install / Update] asks once whether to lower them to 2349 and restores them on uninstall. Keep As Is draws the sweat at the highest such queue + 1, never past 2459.
  • Additional targets use max(body sweat render queue (usually 2350), selected material render queue + 1).
  • A manual queue is available when automatic order cannot be used, but values of 2501 or higher are affected by Transparent sorting.
  • Sweat at a render queue other than 2350 uses the RealSweatSystem (Late Queue) shaders, which take their own screen copy when drawn.
  • When Follow Body Shadow Strength is enabled, [Install / Update] or Apply to FX copies the target Body material's _ShadowStrength into the sweat material.

See Compatibility for details and exceptions.

Technical behavior of Droplet Depth, Remote Low Load, and Effects​

Droplet Depth (Tessellation)​

Droplet Depth is an optional Base Module feature. When it is on, droplets and running droplets really rise from the skin up close and look round from the side, in both sweat styles. It costs more GPU up close; at the default precision (Simplified) it draws the same as without Droplet Depth from about 0.7 m away. When it is not installed, only one No Tess material is uploaded.

Remote Low Load​

Remote Low Load is available when Base is installed.

  • Skin sweat: other users' screens draw No Tess without the small pore droplets, and at Low Load and Lightweight also without the residual beads and Anime's thin film lines, with less work where two surface directions meet (about 4-8% less GPU time for them at Low Load, 23-29% at Standard).
  • Droplet Depth does not rise under Remote Low Load.
  • Local view: keeps the locally selected quality and Droplet Depth state.
  • Body steam: remote Body/Custom Steam keeps its puffs at 0.6× density (3D body steam: 25% of the puffs).
  • 3D particles: halves remote Falling Drop emission and disables remote strong-motion fling.
  • Simultaneous draw: one sweat material per configured target.

Mirrors and lighting​

  • High-Quality Sweat in Mirrors is optional and off by default. While it is off, mirrors leave out the small pore droplets and Droplet Depth does not rise there. When it is on, mirrors draw the same as the normal view.
  • Body Steam mirror modes are Full, Low, and Hidden. 2D Low draws the steam in mirrors at 0.8× the density of Full without reducing particle count. 3D Low currently uses the same appearance and cost as Full.
  • The skin sweat uses Unity light probes (SH) only for ambient light. VRC Light Volumes support was removed in v2.0.0.
  • When Light Limit Changer changes the avatar's brightness, the skin sweat follows with the same ratio (lilToon or Poiyomi body skin).

Effects​

The Effects Module uses particles for Falling Drops, the splash, Floor Stains, Breath, and Body Steam. The lightweight 2D mode is the default; optional high-load 3D Particles change 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.

  • Falling drops and the splash follow the sweat style; with only the Effects Module they use the Realistic look (an avatar already installed with 2.0.0 keeps the look it has). Drop Particle Limit (Per System) defaults to 12, and the strong-movement drops use two thirds of it (8).
  • 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 and Body Steam are generated only when the required Head and Chest anchors can be resolved.
  • Body steam: the maximum particle count at the default sliders is 131 for 12 steam spots and 95 for the 7 spots of a default install.
  • 3D body steam and breath: a default install's Mesh Particle Active Polys are 92.
  • 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 press [Install / Update] 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.

Known limitations​

  • No sweat is drawn without valid Rest data, for example on a material before Setup or on a mesh changed after the bake (until the next build bakes again).
  • Droplet Depth costs more GPU up close and remains a high-load option.
  • Sweat 0% and Sweat Display off are not completely free: the screen copy for refraction (GrabPass, about +0.05 ms) remains. Only Hide Skin Sweat costs nothing.
  • Remote Low Load: where two surface directions meet (the sides of the torso and the arms, for example), a droplet can look cut straight at its lower edge on other players' screens. It is rare and small.
  • Realistic: in folds (above the navel, for example) a small droplet can look split in two, and droplets do not really merge. Its Lightweight places droplets a little differently from its Low Load and Standard.
  • RealRain's own realistic raindrops on clothes come with a RealRain update. The rain RealRain puts on the skin already follows the sweat style.
  • 2.0.0 does not include the old look. To keep it, stay on v1.1.3.