• Hi Guest!

    We are extremely excited to announce the release of our first Beta1.1 and the first release of our Public AddonKit!
    To participate in the Beta, a subscription to the Entertainer or Creator Tier is required. For access to the Public AddonKit you must be a Creator tier member. Once subscribed, download instructions can be found here.

    Click here for information and guides regarding the VaM2 beta. Join our Discord server for more announcements and community discussion about VaM2.
  • Hi Guest!

    VaM2 Resource Categories have now been added to the Hub! For information on posting VaM2 resources and details about VaM2 related changes to our Community Forums, please see our official announcement here.
TouchSFX

Plugins + Scripts TouchSFX

Download [<1 MB]
Plugin core overview
It automates touch sounds and allows for detailed configuration.

-Background for creating the plugin-
To simplify touch-sound work when building scenes.
And to slightly reduce save size and alleviate CPU bottlenecks.


audio router

There are 8 zones in total.
You can assign an asset bundle containing audio to each zone.
A ‘track’ is identified by its folder—on Unity 2018, if you place a pack of audio files into one folder, that folder counts as a single track.

To save performance, if the asset bundle isn’t loaded or the zone’s label toggle is unchecked, that zone won’t be routed to the bus.
It only works when both conditions are met: the zone label toggle is on and an asset bundle is attached.
This prevents wasting resources for no reason.

As for other options—gain, pitch control, spatial audio, and so on—I won’t explain them here; you’ll understand once you try them.


trigger router

Per-Zone Sensitivity (Thresholds)

[Mouth] / [Genitals] / [Anus] / [Breasts] / [Belly] / [Hip] / [Head] / [Etc] Min Threshold

The minimum speed/intensity required for each zone to “count” a hit.
Higher values make it harder to trigger. Creates 8 sliders.

GA Preference — "prefer-genitals" | "prefer-anus" | "first-hit"
When the same object stimulates Genitals and Anus at the same time, chooses which zone gets priority/ownership.
Default: prefer-genitals.

BB Preference — "prefer-breasts" | "prefer-belly" | "first-hit"
Priority rule when Breasts and Belly are stimulated simultaneously.
Default: prefer-breasts.

Breasts ↔ Belly pref lock (ms)
After the BB priority is decided, locks the winner for the specified time (ms).
Default: 200 ms.

Mouth/Labia, Anus → Head/Hip lock (ms)
When exiting Mouth/Labia/Anus, temporarily blocks transitions to Head or Hip to prevent “popping” cross-hits.
Default: 1000 ms.

(Breasts/Hip/Belly) → ETC lock (ms)
While Breasts/Hip/Belly are being stimulated, blocks leaks to the ETC zone for a set duration.
Default: 600 ms.

Global Cooldown (ms)
Minimum interval between hits across all zones.
Default: 80 ms.
Too low → spammy playback; too high → tightly spaced hits get merged.

Pair Cooldown (ms)
Extra cooldown for the same “aggressor ↔ zone” pair.
Useful to suppress self-contact spam (e.g., hands).
Default: 300 ms.

Min Speed
Minimum relative speed to recognize a hit. Anything below is ignored.
Default: 0.10.

Speed Gain
Multiplier when converting detected speed into intensity.
Globally increases or decreases response strength.
Default: 1.0.

Scan Inactive Objects
Whether to include inactive objects (or disabled colliders) in scanning.
Default: Off.

Trigger Only On Enter
Fire hits only on Enter; prevents repeated triggers during Stay.
Default: On.

Ignore Self Hits
Ignore contacts from your own colliders (within the same atom, etc.).
Default: On.

Allow Self-Hand Hits
Optionally allow self-contacts like “hand.”
Default: On. (Use with Pair Cooldown to curb spam if needed)

Rebind (Mouth/Labia + Profile) (Button & Action)
Re-binds Mouth/Labia triggers and the profile (use after scene changes/repositioning).
Also callable via an external action with the same name.

Debug Log
Prints internal routing/locks/assignment logs to the console for troubleshooting.
Default: Off.

*I mainly add rigidbodies to the profile for the ETC zone.
Hand interactions are treated as exceptions—for example, during penetration, if a hand strikes the Hip, it bypasses the lock and plays the audio from the asset bundle attached to the Hip.


blacklist


I won’t go into the blacklist—it’s really straightforward.
Once you try it, you’ll see it’s as simple as a kid’s puzzle.




I’d like to thank
ToumeiHitsuji, MacGruber, CheesyFX,
everlaster, and Skynet, AcidBubbles
for generously providing substantial resources for the development of this plugin.


The plugin’s overall core functionality is directly based on ToumeiHitsuji 'SlapStuff'.
referenced CheesyFX 'BodyLanguage' plugin for the collider list profiles and the bus-related ideas.
Needless to say, 'MacGruber Utils' are indispensable—an absolute must-have plugin.
directly referenced everlaster 'SoundFromAssetBundle' for the asset-bundle audio functionality.
referenced Skynet 'Orifice Dynamics' for the pattern where the plugin listens for and applies active triggers—such as the mouth trigger.
Using AcidBubbles ‘Collider Editor,’ I was able to create more detailed collider list names.
React to this content...

Share this resource

More resources from bqbq

Back
Top Bottom