Safety controls
MultiShock can send commands on its own, from flows and plugins, so it is worth knowing how to stop it and how to limit what it can do before you turn on anything that shocks. Read this page before running your first flow.
Stop everything
Stop everything is the emergency stop. Use any of these:
- The red Stop everything button at the bottom of the sidebar. When flows are running it also shows how many, for example "1 running".
- Shift+Esc, which works even while you are typing in a field, but only when the MultiShock window is focused. It is not a system-wide hotkey, so it won't reach MultiShock while a game or VR app has focus.
- Stop everything in the command palette (Ctrl+K).
It does not ask for confirmation. It immediately:
- clears every command waiting on every loaded shocker, cuts off the one that is playing, and sends a stop to each device, and
- stops every running flow.
A message confirms what was stopped. If some output could not be stopped, for example because the connection to PiShock is down, you'll see "Emergency stop partly failed". Check the connection and the logs.
Afterwards, flows stay stopped, even if you restart MultiShock. Start the ones you want again with Run on the Home page or in the flow editor. Plugins are not turned off: a plugin that sends commands by itself, such as the Twitch Integration pages, can send new commands straight away.
Limits for each shocker
Each shocker on the Devices page has its own limits. Changes apply when you click Save changes. Plugins go through the same limits as flows.
- The shocker's checkbox controls whether MultiShock uses it at all. Turning a device off turns off all of its shockers.
- Allow shocks: when off, shocks are sent as vibrations with the same intensity and duration. Vibrate and beep are unaffected.
- Power limit scales the intensity of every command (shock, vibrate, and beep). It is a percentage, not a maximum: at 50%, a flow that asks for 80 sends 40, and one that asks for 20 sends 10. Duration is unchanged.
- Cooldown keeps the shocker from firing again too soon. After each command, the shocker waits for the command's duration plus the cooldown length. Set During cooldown to Discard extra commands to throw away anything sent in that time, or to Queue them up to play it once the cooldown ends. Cooldowns apply to shock, vibrate, and beep.
Even without a cooldown, each shocker plays one command at a time. Commands that overlap play back to back rather than together, and up to 128 can wait in line.
New shockers start fully enabled
MultiShock syncs your devices from your PiShock account each time it starts and each time you sign in. Shockers it hasn't seen before are added turned on, with Allow shocks on, Power limit at 100%, and no cooldown. After adding a new device to your PiShock account, open the Devices page and set its limits.
Shared shockers
For shockers someone shared with you, MultiShock also follows the owner's settings:
- If the owner doesn't allow shocks, shocks are sent as vibrations. If they don't allow vibrations either, those commands are dropped.
- If the owner doesn't allow beeps, beeps are dropped.
- Durations are cut to the owner's maximum duration.
The owner's maximum intensity only sets how far the Power limit slider goes. MultiShock does not cut intensity down to it, and a newly loaded share starts at 100%. Newly loaded shares become active the next time you save or restart MultiShock.
Testing a shocker
The Test button on the Devices page and the Home page sends a one second vibrate at full intensity, scaled by the saved Power limit. It skips ahead of any waiting commands, and only works once the shocker is turned on and saved.
When building a flow, test it with a Vibrate node and a Manual Trigger before switching to Shock.
Limits in flows
- The Shock and Vibrate nodes keep intensity between 1 and 100 and duration between 0.1 and 15 seconds.
- An Intensity or Duration input of 0, or one that isn't connected, uses the node's own setting. 0 does not mean off.
- To limit how often a flow can fire, use Throttle or a shocker cooldown. To limit when it can fire, use Time Window Gate.
- The Stop node currently has no effect. Use Stop everything to cut output.
- Stopping a single flow doesn't cancel commands it has already sent to a shocker. Only Stop everything does that.
When you're signed out or offline
- While you're signed out, no shockers are loaded, so device commands from flows and plugins go nowhere.
- Signing out erases your device and shocker settings, including Power limit, Allow shocks, and cooldowns. Check them again after signing back in.
- If the connection to PiShock drops, commands sent in the meantime are dropped, not saved for later. The sidebar shows Reconnecting until it is back. Hubs plugged in by USB are reached over USB first.