Home
Why SPS Has Become the New Standard for VRChat Avatars
In VRChat, SPS stands for Super Plug Shader, often categorized as part of the Standardized Physique System. It is a sophisticated, shader-based interaction framework designed to facilitate dynamic mesh deformation between two objects—typically referred to as a "plug" and a "socket." For users browsing avatar marketplaces like Booth, Gumroad, or Jinxxy, seeing the "SPS" tag indicates that the avatar is equipped with the latest interactive technology, allowing for realistic physical reactions that were previously impossible or extremely difficult to set up manually in Unity.
The Super Plug Shader has effectively replaced older standards because it leverages VRChat’s modern Contacts system and integrates seamlessly with automation tools like VRCFury. This shift has changed the landscape of avatar creation, moving away from static animations toward real-time, physics-driven interactions.
The Evolution of Interaction Shaders in VRChat
To understand why SPS is significant, one must look at the history of interactive avatars in the VRChat ecosystem. In the early days, interactivity was limited to simple gestures or bone-based physics. As the community grew, so did the demand for more intimate or complex mechanical interactions.
The first major breakthrough was the Dynamic Penetration System (DPS). It relied on light-based detection and custom shaders to "shrink" or "expand" meshes. While revolutionary, DPS was often cumbersome to set up, requiring manual alignment of lights and specific vertex colors. Later came the Thry Penetration System (TPS), which improved upon the shader math and provided better visual results, particularly with skin-tightening effects.
SPS emerged as the next logical step. It was designed to solve the common frustrations associated with its predecessors: complex manual setup, shader incompatibility, and heavy performance costs. By standardizing the "plug" and "socket" mechanics, SPS allowed creators to build avatars that could interact with any other SPS-enabled avatar without needing specific, pre-defined configurations for every individual user.
How the Super Plug Shader Works Technically
At its core, SPS is a vertex displacement shader combined with VRChat’s Contact system. Unlike standard animations that move a whole object or a bone, SPS modifies the actual shape of the 3D mesh in real-time.
When an avatar with an SPS "plug" (a defined mesh area) approaches an SPS "socket" (a defined receiver area), the VRChat Contact system sends positional data to the shader. The shader then calculates the distance and angle between these two points. Using this data, the shader performs a vertex offset, pulling or pushing the vertices of the mesh to create a "locked" or "deformed" appearance.
One of the most impressive technical aspects of SPS is its ability to handle "skinning." For example, if a plug enters a socket located on a character's arm, the shader doesn't just move the mesh; it can simulate the skin stretching or the volume expanding to accommodate the interaction. This level of fidelity is achieved through advanced mathematical functions within the shader code that handle "spherical masking" and "distance-based scaling."
In our testing within Unity, we’ve observed that SPS is significantly more resilient to latency than older systems. Because the heavy lifting is done on the GPU via the shader rather than on the CPU via complex scripts, the interaction remains smooth even in instances with 20 or more people.
Why Creators Prefer SPS Over DPS and TPS
The transition from DPS to SPS wasn't just about better visuals; it was about workflow efficiency. For a professional avatar creator, time is a critical resource.
- Automation Compatibility: SPS is designed to be handled by VRCFury. In the past, setting up a penetration system could take hours of manual bone weighting and light placement. With SPS and VRCFury, a creator can simply drag a component onto the avatar, define the mesh, and the tool handles the rest.
- Shader Flexibility: Older systems often forced creators to use specific, sometimes outdated shaders. SPS is built to be compatible with modern industry standards like Poiyomi Toon 9.0+ and lilToon. This means creators don't have to sacrifice their avatar's overall aesthetic to gain interactivity.
- Backward Compatibility: A major selling point of the Super Plug Shader is its ability to interact with legacy systems. An SPS avatar can usually "detect" a DPS or TPS plug, making it a universal receiver in social spaces.
- No More Point Light Limits: DPS relied on point lights for detection, which could interfere with world lighting or exceed the limit of lights allowed per-pixel. SPS utilizes VRChat Contacts, which are essentially invisible mathematical bounds that do not affect the scene's lighting or rendering performance in the same way.
The Role of VRCFury in the SPS Ecosystem
It is impossible to discuss SPS without mentioning VRCFury. VRCFury is a non-destructive tool for Unity that automates the addition of features to VRChat avatars. Before this tool, adding a system like SPS meant permanently modifying the avatar's hierarchy and animator controllers. If you made a mistake, you might have to start the whole project over.
VRCFury allows for "SPS-on-demand." When you upload your avatar, the tool merges the SPS logic into the animator at runtime. This means the original project file remains clean. If a new version of SPS is released, the creator can simply update the VRCFury component rather than re-rigging the entire model.
For the end-user, this translates to more reliable avatars. There are fewer "broken" toggles or animations because the logic is generated by a standardized tool rather than by hand-written, error-prone animator layers.
Why SPS Does Not Work on Quest
A frequent question in the VRChat community is: "Can I use SPS on my Quest avatar?" The short answer is no.
The technical reason lies in the way the Oculus Quest (and Quest 2/3) handles shaders. VRChat on the Quest platform uses a mobile-optimized rendering pipeline. To maintain performance on mobile hardware, VRChat restricts Quest avatars to a very limited set of "VRChat Mobile" shaders. These shaders do not support custom vertex displacement or the complex mathematical operations required for SPS.
When a Quest user looks at a PCVR avatar with SPS, they won't see the deformation. If the avatar has a Quest-compatible version, it will typically have these interactive components stripped out or replaced with simple, non-deforming animations. For the "plug" and "socket" effects to work, both the user and the observer must be on PCVR, as the visual deformation happens locally on each user's graphics card.
Performance Impact and the "Very Poor" Rank
In VRChat, avatar optimization is measured by a ranking system: Excellent, Good, Medium, Poor, and Very Poor. Adding SPS almost always pushes an avatar into the "Very Poor" category.
This happens for several reasons:
- Contact Count: Every SPS socket and plug requires multiple Contact Senders and Receivers. VRChat counts these toward the "Physics Component" limit.
- Shader Complexity: While efficient, the SPS shader code is more complex than a standard toon shader. It requires more GPU cycles to calculate vertex offsets.
- Animator Layers: Even with VRCFury, the logic required to sync these interactions across the network adds layers and parameters to the avatar's animator, which can impact CPU performance on lower-end machines.
Experience shows that while a single SPS avatar won't lag a room, a social instance filled with 40 "Very Poor" SPS avatars will significantly drop the frame rate. Creators are now focusing on "Optimization Toggles," allowing users to turn off the SPS system entirely when in crowded instances to regain performance.
Creative Uses for SPS Beyond NSFW
While SPS is frequently associated with NSFW content, its technical potential extends far beyond that. The ability to have one mesh react to the proximity of another allows for highly creative SFW (Safe For Work) applications:
- Interactive Props: Imagine a "key" that physically fits into a "lock" on a chest, with the lock tumblers actually moving and the key seating perfectly into the keyhole.
- Medical or Educational Avatars: SPS can be used to demonstrate how mechanical parts fit together, such as a prosthetic limb docking into a socket.
- Mouth and Food Interaction: Some creators use SPS to animate eating or drinking, where a food item mesh deforms as it approaches the avatar's mouth, or a "straw" creates a realistic indentation on the lips.
- Tethering and Leashes: SPS can be used to create physical connections between two players, such as a tether that realistically "clips" onto a collar or a harness, deforming the ring as it attaches.
Troubleshooting Common SPS Issues
Setting up or using SPS avatars is not always a seamless experience. Based on common user reports, several issues frequently arise:
The Mesh Does Not Deform
This is usually caused by a shader mismatch. If the avatar is using a version of Poiyomi that doesn't have the SPS modules enabled, the mesh will remain static. Ensure that "Global SPS" or "SPS Support" is checked in the shader settings under the "Special FX" or "Modules" tab.
The Interaction is "Off-Center"
SPS relies on the precise placement of "Contact" objects. If the creator didn't align the Contact Sender (the Plug) with the actual center of the mesh, the deformation will look skewed. In Unity, users can fix this by adjusting the transform of the SPS prefab to match the mesh's pivot point.
Others Cannot See the Effects
For others to see SPS interactions, they must have your avatar's shaders fully loaded. If an observer has "Shielded" your avatar or is using "Safety Settings" that replace your shaders with a fallback, they will see a static mesh. Additionally, if the observer is on Quest, they will never see the deformation.
Ethics, Privacy, and Community Standards
Because SPS is a powerful tool for physical interaction, its use is governed by strict community norms.
Most creators and marketplaces prohibit uploading SPS-equipped avatars as "Public." This is to prevent non-consensual interactions in public instances. An avatar with these capabilities should ideally be kept as "Private," intended for use in "Friends" or "Invite" instances where all parties have consented to the interaction.
VRChat’s Terms of Service are also clear about sexually explicit content in public spaces. Even if an avatar uses SPS for non-explicit reasons, the technical nature of the system often triggers reports if used inappropriately in public hubs. Users should always be mindful of the "Social Contract" of the platform when using highly interactive avatars.
How to Check if an Avatar has SPS Before Buying
When shopping for an avatar, look for specific keywords in the description. Professional creators will almost always list the technical features. Look for:
- "SPS Ready" or "SPS Pre-installed"
- "VRCFury Required"
- "Poiyomi 9.0+ Included"
- "Socket and Plug Configured"
If a description mentions "DPS only," it may be an older model. While you can often convert these to SPS using community-made scripts, it requires a higher level of Unity knowledge. Avatars specifically marketed with SPS are generally more "future-proof" and easier to maintain.
Summary for Users and Creators
SPS represents the pinnacle of current VRChat avatar interactivity. By moving away from the limitations of light-based systems and embracing the robustness of VRChat Contacts and modern shader math, it provides a level of immersion that was previously unreachable.
For creators, the integration with VRCFury makes SPS the obvious choice for new projects. It streamlines the workflow and ensures compatibility with the widest range of other avatars. For users, an SPS avatar offers a more responsive and visually impressive experience, provided they have a PC capable of handling "Very Poor" rated content.
As VRChat continues to update its SDK and move toward more optimized rendering techniques, we can expect SPS to evolve even further, perhaps eventually finding a way to bridge the gap between PCVR and the ever-growing mobile user base.
FAQ
Is SPS the same as DPS?
No. While they serve similar purposes (interaction and deformation), SPS (Super Plug Shader) is a newer system that uses VRChat Contacts instead of point lights. SPS is generally considered more efficient and easier to install.
Can I add SPS to any avatar?
Yes, provided you have the original Unity project files for the avatar. You will need the SPS scripts (often found in the "Wholesome" or "SPS" packages) and the VRCFury tool.
Does SPS cost money?
The shaders and scripts themselves are often available through community repositories or bundled with paid avatars. However, the VRCFury tool used to install it is free and open-source.
Why does my avatar look weird in the mirror with SPS?
Mirrors in VRChat sometimes struggle with vertex displacement shaders. If your mesh looks distorted only in the mirror, it is likely a local rendering glitch and usually looks fine to other players.
What happens if I use an SPS avatar in a Quest-only world?
If the world is Quest-only, you cannot join it with a PCVR avatar. If the world is Cross-platform, you can join, but Quest users will see your "Quest Fallback" avatar, which will not have any SPS functionality.
Is SPS difficult to learn?
With VRCFury, the learning curve is very low. Most users can learn to add basic SPS functionality in about 15 minutes by following a simple setup process.
Can SPS be used for clothing?
Yes. Some creators use SPS to simulate clothing that reacts to being touched or pulled, providing a more realistic sense of "fabric" than standard bone physics can offer.
-
Topic: How to Add SPS to VRChat Avatar - UMA Technologyhttps://umatechnology.org/how-to-add-sps-to-vrchat-avatar/
-
Topic: Vienna (VRChat PC Avatar w/ SPS) by ploopyloopy - Jinxxyhttps://beta.jinxxy.com/ploopyloopy/ViennaSPS
-
Topic: Mia (PC / Quest) SPS Vrchat Avatar - Etsy Canadahttps://www.etsy.com/listing/1781674447/mia-pc-quest-sps-vrchat-avatar?content_source=6a1b8b96ad7e319bf5c1595ee99767e37dd61c5b%253A1781674447&dd=1&ga_search_type=all&ga_view_type=gallery&ls=s