Touch PiShock
Quick Project Updates:
- May 2nd: v4.5 Beta02 for Visual and Core Editions are out. Resolves prop not appearing, if Blender is not installed.
- May 8th v5 for Visual and Core Editions released. Animation/FX rebuilt. Faster, more reliable, less delay.
Overhaul, and improvements. Yet again, shouldn't break on straight importing to update; recommend deleting folder first.
Accessories Grabby and Randomizer updated for compatibility. - May 14, 2025 - New Install and Setup Video! It's clunky, but it covers the details everyone been asking for. Half the video is a bit of detail, the last half is actual install. Time stamps listed! - https://www.youtube.com/watch?v=DWyyiR6LZmA
No More Sharing Links!
When (most) everyone is just an arm length, and a touch, away?
Don't want specific people touching? Turn their Avatar Interactions off.
YOU determine the intensity*, duration and cooldown.
*Pending use of...
"Just show me how to install!" https://www.youtube.com/watch?v=DWyyiR6LZmA
Updated May 14, 2025. From Import to VRCOSCv2 PiShock Module Setup.
Gumroad will, for now, be the first store to be updated with changes (generally Beta releases).
If you're impatient and want the updates before released on Jinxxy, let me know! I'm just a tad lazy...
Requirements:
- VCC and Unity basic knowledge.
- Uploaded avatar without errors.
- VRCFury (Free!) and Poiyomi Toon (Free!)
- VRCOSC v2 (Application, Free!)
With the PiShock Module setup with your account and working.
Flexibility for Your use and style!
Doesn't matter if you have 1 PiShock, or the max of 8* PiShocks!
*Note: PiShock Hub capped at 8 Physical PiShocks
- Solo PiShock with Three Contact Points...
One Prop, One Contact Point, all the same Shocking experience! - On PiShock 00/Solo:
Optional Two additional Contact Receivers for Touch-PiShock accessories of other players to interact with. - Multiple Touch-PiShocks, one for each Physical PiShock on your person.
Or mix it up with multiple PiShocks on each individual (VRCOSC v2) PiShock Group!
Equal Props to Contact Points, each with their own control/cooldown. -
Or... Solo PiShock with multiple Contact Points! Multi-Point.
One PiShock, Multiple Contact Points.
Two tiers to pick from. Core Function only, or Function + Visual Animations.
- Core Edition is great for use with your choice of props, or no prop!
No harm to the setup for using your choice prop, or none.
Custom button? Noseboops? Frayed wiring on your robotic arm? - Visual Edition is a little different. Setup is 99% identical.
Per prop pre-setup animations and material files. (More choices to come!)
Each PiShock's Menu:
Main Menu
- Controls for either...
- Solo PiShock. Intensity, duration, toggle between shock/vibrate, Cooldown in Seconds menu, beep, and self touch activation, and toggle said PiShock on/off.
- If multiple PiShocks (2 or more), Central Command to control all PiShocks with the same setting, as well as a disable-all safe off button.
- Multi PiShocks: Select which Touch-PiShock to adjust.
Solo Touch-PiShock (Visual) Main Menu. - Becomes Sub-Menu, per Touch-PiShock, if 2+ Touch-PiShocks prefabs in use.
Secondary Menus - Selection of Touch-PiShock 00-07:
If only one (Solo) PiShock, below options are merged with the Main Menu.
- Toggle On/Off (Show/Hide). (Default: Off on avatar load)
- Toggle between Shock or Vibrate, for when touched. (Saved)
- Visual Edition: Blinks Green=Shock, Blue=Vibrate
Adjustable in Material Shader Options.
- Visual Edition: Blinks Green=Shock, Blue=Vibrate
- Cooldown Menu of 1-15seconds cooldown. (Saved)
- 1second minimum is an Animator (not me, in Unity) limitation. Any animator hops with VRC Avatar Parameter Driver, each have their own delay which I cannot reduce, though set to 0 on each.
- Touch and Beep options to confirm OSC Communication/Functionality.
- Blinker control. (Visual Edition Only) (Saved)
- Don't let the Blue/Green flashes be a distraction, freely turn them off!
- Red cooldown display will continue to show when activated and on cool down.
- Controls for Intensity and Duration of each PiShock individually.
- Bug Note: Recently found out, VRCOSC sees the default 1% of Intensity/Duration on first launch, you will have to change and return your Intensity/Duration hand radials for VRCOSC to accurately know.
I have a fix inmindtesting, but oddly mixed results.
- Bug Note: Recently found out, VRCOSC sees the default 1% of Intensity/Duration on first launch, you will have to change and return your Intensity/Duration hand radials for VRCOSC to accurately know.
Solo Touch-PiShock (Visual) as Main Menu, with Accessories sub-menu for Accessories Grabby and Randomizer.
Parameters:
- Core/Plain PiShock Edition:
- 1 (PiShock 00/Solo through 07) Synced Parameter Points!
That's Right! Other than toggles for interaction, all actions are All Local!
Per PiShock/Multi-Point Contact. Up to 8 Parameter Points for a full 8PiShock setup.
- 1 (PiShock 00/Solo through 07) Synced Parameter Points!
- Visual Editions:
- 14 (PiShock 00/Solo) or 13 (PiShock 01-07) Synced Parameter points per Touch-PiShock.
Necessary for others to see the Visual animations, in accurately synced time.
- 14 (PiShock 00/Solo) or 13 (PiShock 01-07) Synced Parameter points per Touch-PiShock.
- Note: IF you want many PiShocks on your avatar, but hitting that Parameter Count Cap?
VRCFury's Parameter Compressor Component has worked well for my avatars. Worth trying yourself. Mileage may vary.
Multi-purpose, any Avatar or Prop can be used.
Initially designed around, and suggested to use, Lolatron's PiShock model, found
https://lolatron.gumroad.com/l/PISHOCK (Also Free, but discontinued).
Edit: Lolatron is moving off Gumroad. Used .blend parts exported as (included) .fbx for this project.
- Planned:
- Push Button (Ex: Easy Button)
- Holographic "panels" to place near any prop you decide.
- Activation Particles
More props additions to come. Working on the functional concepts first.
Visual Editions!
Yes, there's a bit more than meets the eye! Anyways, visual ques to show the state of the PiShock. Either it being Shock or Vibrate, now you they can't lie which mode it's in, and a Activation/Cooldown signaling.
Familiar with Poiyomi? I can't stop you, but go crazy changing it up how you want! All texture and the material files are shared, pending supported props. At this time, only Lolatron's PiShock model is in use. Material with Poiyomi v9+ setup included, just drag onto the Lolatron PiShock and Spacer.
Better quality pictures to come. Unity render view isn't the best... Green/Blue are "held" for photo reasons, normally blink their color once every few seconds. Red only appears when activated, and fades when the cooldown clears.
Planned down the road, floating "hologram" emissions to be more compatible with what ever prop you so choose to use.
As Always: Backup your project before making changes.
Mistakes happen. Not all things that break can be explained, not all things can be as easily repaired. Backups are like game checkpoints.
I'm not responsible if somehow your avatar is broken. With or without VRCFury, these templates do not alter your avatar outside of adding more features.
Duplicate your avatar, disable the original, and import the prefabs on the cloned avatar. OR, backup your project entirely!
Installation:
Instructions included with download. Updated PDF with images to come. Video tutorials in the works.
Video: https://www.youtube.com/watch?v=DWyyiR6LZmA
Well, this is embarrassing. As soon as I released the video, VRCOSC v2 came out. Instructions are otherwise the same. No Int-Dur (or CommandCentral) menu prefab for the Solo PiShock use, CommandCentral took its place and necessary for 2-8 PiShock Setups.
Can be used anywhere on the avatar. Just...
- Import VRCFury. https://vrcfury.com/ (VCC Friendly)
I may make a non-VRCFury version in the future, setup without is otherwise simple to adapt. - Import Poiyomi Toon v9+ (Free!) (VCC Friendly)
- Import Touch-PiShock.
Then...
- Drag the preferred prefabs for your use case.
- If only one Physical PiShock - Use the SOLO prefab.
- PiShock 00 SOLO is Group 0 - If using Two or More Physical PiShocks:
- Within Subfolder "More-Than-1-Physical-PiShock", each numbered based on each VRCOSC Group.
- PiShock 00 is Group 0. PiShock 01 group 01, and so on... - Drag the "Touch-PiShock Central Command (VRCFury)" prefab to the Root of your avatar (menu management)
- This grants quicker controls to adjust 2 or more PiShocks at the same time, using the same settings across them all.
- Two preference styles of the Central Command, menu listings as Clockwise or Counter-Clockwise.
- Within Subfolder "More-Than-1-Physical-PiShock", each numbered based on each VRCOSC Group.
- If only one Physical PiShock - Use the SOLO prefab.
- Resize, shift, and rotate the prefabs as you see fit.
(Editor Note: Use the included instructions for Multiple-Point Solo Touch-PiShock, setup is different.)
Touch-PiShock Visual Solo placement, identical for Core Solo, example. In image also includes use/placement of Accessories "Grabby" and "Randomizer".
Setup to use along side VRCOSC:
VRCOSC v2 - by VolcanicArtsCommunicates OSC from VRChat, to your PiShock Hub, using the PiShock Module.
- Note: Please follow their wiki for best use. You must hit the Play button on the left bar, and again at the bottom, on VRCOSC Launch.
- Avatar not talking to VRCOSC? Follow their documentations to clear the OSC Cache in VRChat.
https://vrcosc.com/docs/faq - Credit to VRCOSC of their own menu setup. My design formed off theirs.
If you have conflicts with both VRCOSC's Menu Prefab and Touch-PiShock imported, contact me.
Resolved in Touch-Pishock V3.12.
VRCOSC PiShock Module "Sharecode":
You're not alone, some confusion with pulling the Share Code from their PiShock.com account, to place into VRCOSC v2.
- Dev note May 2025 - Does not appear to be any guide on setting up the PiShock Module in VRCOSC v2.
I'll look into making one sometime...
- Log into PiShock.com, access your PiShock share settings (1).
- Create a Code (2). Your choice of limits, VRCOSC will cap out with what you place, or, leave it open and control it in VRCOSC and the hand menus. Think of it like the volume knob on your physical speakers, as well as your PC's volume control.
- Copy the Code (3), paste the link into Notepad or otherwise, and trim it down to the last segment after "="
Example Link: https://pishock.com/#/Control?sharecode=2D49EF05555
This is what you want (EXAMPLE!): 2D49EF05555
Dev Update Feb 2025:
I'm going to keep this short, a lot...has happened over the last half a year. Major work-life change, I'm still on my feet, and still not out of the woods.
- Support is still fully available, please do keep in mind I work full time, parent, and time zones can be a pain.
- Please be patient and I'll respond to you as soon as I can (usually same day).
Side goal updates to come. I'm not going to give any ETA on anything.
Things to come, more details on the Discord server's To-Do list channel.
- New prop in the works from SirGwah. He's added in the ability for others to "pull" and set the Intensity, before shocking.
In progress: It's in, been using it myself, however the Shock_IsGrabbed and Shock_Stretch are "not working" ingame. Once these work, it's ready. - Add support for OpenShock
- Accessories: LaserTag, Russian Roulette (WiP), Hot Potato
Done: Grabby, Randomizer, Multi-Point Touch (Revising) - Video Tutorials. "In Progress".
Basic Unity install is made, released Doc 8, 2024. Limited "Out of date" shortly later after VRCOSC v2 came out. Most is still current file structure has changed. - Not to forget updating the pictures on here. Yuck...
Questions:
Most of the below will be included in a tutorial video in the near future. (In Progress)
Q: Discord?
- Yes! Now released, though excuse the dust and adjustments to bring it up to speed. I bet it's not perfect, lol.
https://discord.gg/gFARtjx2UT
Forum support is "locked" behind Role approval. Agree to Rules channel.
Q: Don't like the prop? Want to use your own? No Problem! (Core/Plain Only!)
- While within Touch-PiShock Prefab, remove the objects under "Props Here", then add what you want, and adjust as needed.
Q: The touch area, the Contact Receiver, too small/big for the new prop?
- Under the root of the Prefab, select "Touch-PiShock## (VRCFury)"
- Under "VRC Contact Receiver (Script)" adjust the Shape area as you see fit.
You will manually decide Sphere or Capsule of the "Shape Type", and adjust the floats of the Radius, Position, and Rotation. (Green Marks)
Green marks for question above, Red marks for question below. Update: Contact Receivers moved into separated Child Game Objects in the Prefab's Armature.
Q: Need other Collision Detections, besides Finger/Hand?
- I've seen people want Mouth (not easy, but possible) and Feet to activate it, you can...
- Under the Red area (image above), select the drop downs to swap, or select the area near the drop downs to then select Delete, or Add to include other areas.
Q: Prefab is on the avatar, it's displaying, but Beep/Vibrate/Shock doesn't work?
- A number of things to try. Welcome to reach out. Please first check over https://vrcosc.com/docs/faq, namely clearing your OSC Cache in VRChat.
Q: VRCFury error about one or more parameter issue?
- Remember Each Touch-PiShock require Parameters. Visual=12, Core=1.
Keep track of your parameter count. All 8 Visual Edition PiShocks can take 96 Parameter points, plus the two floats for Intensity and Duration. - Use of VRCFury's Parameter Compressor Component, placed on the root of your avatar
This has resolved uploading the NeKoob Multi-PiShock to have all 8.
Q: Radial and VRCOSC Percentages don't line up? (WARNING! Math!)
> > > Know Your Limits! < < <
I do NOT take any responsibility for your mistakes of improper limit setup. No different than the PiShock Web Interface.
- Short: If you wish the in-game radials to be more accurate, set VRCOSC (PiShock Module) Max Intensity to 100%.
Your radial dials for Intensity will line right up 1-for-1. 23% radial will then equal 23% Intensity Shock.- Comes at a risk, setting VRCOSC Max Duration and Shock to full can cause very unwanted effects if not managed ingame properly. Set your hard limits in VRCOSC, It's there for a Reason!
- The hand radials work as Percentages of what Max Allowed on VRCOSC.
- Example: Shock Intensity
If VRCOSC is set to Max 50%, and the in-game radial is set to 10%, that lands at 5% when you're shocked.
VRCOSC left menu logs what intensity and duration hit you, this will give you an idea of what you're actually hit with. - Duration, like Intensity, I would recommend keeping a low limit for your safety, please!
- Example: Shock Intensity
Q: Public test avatar?
Public Avatars going through major updates. As VRCOSC v2 is released, OSC related compatibility issues.
Below are considered Beta Use, and to expect bugs! (Detail breakdowns to come soon!)
- v5 - NeKoob Solo Touch-PiShock (VISUAL) + Accessories: https://vrchat.com/home/avatar/avtr_6073fa38-70f1-4d30-a2c9-af1b1e011337
- v5 - NeKoob Multiple Touch-PiShocks: https://vrchat.com/home/avatar/avtr_fcf48f32-8698-4d4d-ae79-9c9283de00d8
- NeKoob (Works, v4.1) Multi-Point Touch-PiShock: https://vrchat.com/home/avatar/avtr_edd400fb-f93e-4a7b-b37c-d0c6066d0d2a
Q: Both Lolatron's PiShock .unityproject file, and Touch-PiShock, are both imported, but no prop appears?
- Note April 28, 2025: The below information refers to Touch-PiShock prior to v4.5Beta01.
4.5beta01 and newer no longer refer to Lolatron's .blend (Blender) file, but an exported .fbx file of the .blend file. - I've had a few, spread out, reports of this, and an ongoing process to specifically find the cause.
- The Lolatron's "PIShock.blend" file icon, in the file explorer within Unity, will appear as a white sheet of paper or app-icon, and unable to "expand" the file.
Credit to Calico_Cas
- I've recently (April 2025) found an answer to this. Your Unity software needs Blender, version 3.3 or newer, installed on your PC. Milage may vary if Blender is installed through Steam. Restart Unity if running when Blender was installed.
- Unity will see the Lolatron PiShock.blend file as something it can expand, like a file tree, in which case the Touch-PiShock project can pull the two objects from the .blend file. Should look like a Blue Grid icon as below.
Play Safe.
Do Not Place Your Real Life PiShock Anywhere on your Real Life body that Can cause harm.
Other Notes:
Default OSC Parameters in VRCOSC v2 PiShock Module:
- VRCOSC/PiShock/Duration/*
- VRCOSC/PiShock/Intensity/*
- VRCOSC/PiShock/Shock/*
- VRCOSC/PiShock/Vibrate/*
- VRCOSC/PiShock/Beep/*
Updates:
Older update logs included in the product download pages.
- May 8, 2025 - Update v5 - The Rebuilt Update
- This update has had the Animations redone, and FX files rebuilt, mostly from scratch.
- Biggest difference? If you watch your VRCOSCv2 Log while the Touch-PiShock is activated, the Log updates Immediately now. The remainder of delay is with the internet and PiShock servers. Nothing more I can do.
...Until I make a OpenPiShock edition... - Might just be me... Upon first use after launching VRChat and VRCOSCv2, it feels like there's a longer delay of activation, and noticeably shorter delay hence after.
- On-Load OSC sync for Intensity!
Meaning, if you just logged into VRChat, and launched VRCOSCv2, the Intensity in VRCOSCv2 doesn't stay at 1% by default. When the Touch-PiShock FX first runs, it will Decrease-then-Increase 1%, forcing VRCOSCv2 to sync to your "saved" Intensity of that avatar.
No more needing to move the Intensity Radial when you first log into VRChat, just to feel something the first time someone does touch your Touch-PiShock.
(Soon, Duration will mimic the same!) - Accessories Grabby and Randomizer has been updated to follow along with the changes.
- Refer to store page for Parameter count changes. Due to improvements for activation and timing, parameter count has increased. Core edition (once released) will have a single Parameter point increase, due to two sets of Toggles, one for the Prop (technically the whole prefab), and the Contact Receiver as it disables itself during the Cooldown phase.
- Cooldown can be reduced to 0. Will activate as fast as VRCOSCv2 can respond.
>>> Careful! Anyone with multiple fingers and a fast waving hand, can spam you heavily! <<< - PiShock 00/Solo "Accessory" related Contacts are now their own toggle.
These Accessory Contacts are available for other people to create interactions. Personal projects related to this will soon to come. "Russion PiShock Roulette" has not been forgotten.
- May 2, 2025 - Update 4.5Beta02
- I apologize to all, the first beta release was not listed normally, and created some rather unwanted confusion and headaches.
- For a Clean and Headache Free Update:
- Please delete your current "Touch PiShock - Visual - LigerXT5)" folder, and reimport this.
- Importing on top shouldn't cause issues, however as changes are made and old files linger, no conflicts should come up but a visual mess.
- If you still have Lolatron's PiShock Unity Project folder in your project, this is now safe to delete.
- Beta2 has some adjustments, and cleanup of the, now considered, rush job of the last update release.
- The Lolatron FBX export is now as it's own Prefab, to simplify standardized changes across the board. One change within the prefab will carry over to the Solo and Multiple
- Quality Of Life (QOL) Change: Scale and Placement has been reset to default (0 or 1) on all Game Objects, including the Lolatron FBX Prefab, to 1, 0 placement and rotation.
>>> NOTE: This will require redoing your Rotation and Size on your avatar.
This is to simplify the arrangement of assets, including in the event a user replaced the Prefab with something else, and should not result in scaling confusion. - For this release, I've excluded the Multi-Point Touch-PiShock setup. I haven't dived in to update it yet.
- The changes made to SOLO has been replicated to the Multiple PiShocks 00-07.
Overlooked in the last update, Sorry! - Public Avatar for Solo has been updated accordingly, Multi-PiShock version of the public avatar will follow in a short while.
- ReUpload Beta02.1 - Fixed visual animations. When I moved Lolatron's Prop into a Prefab, it broke the Visual Animation. Solo and Multi-PiShock public avatars updated along side.
- April 28, 2025 - Update 4.5Beta01
- A series of updates have been made, and trial testing yet another pre-set parameter for avatar loading the correct Intensity, instead of what VRCOSC (v2) last had, or default of 1% on VRCOSC's launch. This will likely be an ongoing issue. For now, anticipate the first shock from your avatar, after avatar-load, to either be 1%, or something different from a prior avatar load.
- For a Clean and Headache Free Update:
- Please delete your current "Touch PiShock - Visual - LigerXT5)" folder, and reimport this.
- Importing on top shouldn't cause issues, however as changes are made and old files linger, no conflicts should come up but a visual mess.
- If you still have Lolatron's PiShock Unity Project folder in your project, this is now safe to delete.
- Change Log:
- Fixed the missing menus for Cooldown on PiShocks 1-7. No idea how that file didn't copy over into each. Solo/00 was unaffected.
- Related to the Cooldown menu, fixed PiShocks 1-7 (Solo/00 was unaffected, again) not having a Cooldown Status or Minimum/1second Cooldown button.
- Multi-Point side-project has been moved to Accessories. No further changes at this time, shouldn't need any changes. Updated instructions to come!
- File Structure cleanup, as well as instructions updated and reduced.
Due to a series of repeat questions and confusion, I've simplified the file structure of the import. 95% of users are using only 1 PiShock (at least, that's my observation!). Yet the SOLO named prefab wasn't utilized as intended. As well as the Central Command menu prefab when only SOLO is used. - (MAJOR) Due to issues with the .blend file from Lolatron's project (store page no longer listing a download), I've exported the two pieces of the .blend file as a .fbx file. Long time needed, been waiting for Lolatron to re-release on Jinxxy or otherwise before making any adjustments to their own asset.
Issue: If you didn't have Blender installed, the .blend file wasn't rendered, and used, in Unity. - Project updated to adapt to the change to use Lolatron's PiShock as a .fbx, including Animator file updated (prior animations still in place, will later be cleared out). Reused the same Material and Image/Texture files as nothing changed otherwise.
Refunds? None. Purely digital content. Very little is Unique/Special to warrant refunds.
Your misunderstanding of OSC is not a mistake of myself or of the project itself.
This was created with knowledge and experience, mind the learning, troubleshooting, and time spent.
I take no responsibility if this, some how, cause damage to your project, avatar, or a PiShock mishap. Backup your project, and practice safe PiShock habits.
Avatars in screenshots:
- NeKoob by Kuby: https://kuby.gumroad.com/l/Nekoob
- SqueakWarrior by Emperor of Mars - https://emperorofmars.gumroad.com/l/squeak_warrior
The PiShock Touch without the links.