OpenShock
Created 16 Jan 2026·Updated 31 Jul 2026
Control OpenShock devices in response to alert triggers. Supports shock, vibrate, and beep operations with advanced customization including dynamic intensity curves, randomization, and warning vibrations.
What You Need
- An OpenShock account connected in TipLink (Platforms page → OpenShock)
- At least one OpenShock device configured in your account
- Your device must be online and accessible
Quick Start
- Create or edit an alert
- Add the OpenShock action
- Select your OpenShock account(s)
- Select your device(s)
- Choose operation mode (Shock/Vibrate/Beep)
- Set intensity and duration
- Save and test
Configuration Options
Device Selection
Select OpenShock Account(s)
- Choose which OpenShock account(s) to use
- Can select multiple accounts if you have several configured
Select OpenShock Device(s)
- Choose which device(s) to trigger
- All selected devices use the same settings
- Only shows devices from selected accounts
Operation Settings
Select Action
- Shock: Delivers an electric shock
- Vibrate: Vibrates the device
- Beep: Makes a beeping sound
Start with low intensity values (1-10%) when testing shock operations. Always test on yourself before using during a live stream.
Intensity (1-100%)
- Controls the strength of the operation
- Applies to shock, vibrate, and beep modes
- Hidden when using random or dynamic intensity
Duration (0.3-65 seconds)
- How long the operation lasts
- Adjustable in steps of 0.1 seconds, with a minimum of 0.3 seconds
- Maximum 65 seconds (longer than PiShock's 15 second limit)
- Hidden when using random or dynamic duration
Random Settings
Enable Random Intensity
- Randomly varies intensity for each trigger
- Cannot be used with dynamic intensity
Random Intensity Range
- Set min/max values (e.g., 25%-50%)
- Each trigger picks a random value in this range
Enable Random Duration
- Randomly varies duration for each trigger
- Cannot be used with dynamic duration
Random Duration Range
- Set min/max values (e.g., 5-15 seconds)
- Each trigger picks a random value in this range
- Max of 65 seconds
Dynamic Curves
Enable Dynamic Intensity
- Scales intensity based on event values (e.g., tip amount)
- Cannot be used with random intensity
Dynamic Intensity Curve
- Graph editor for mapping event values to intensity
- Example: $1 tip = 10% intensity, $50 tip = 100% intensity
- Linear interpolation between points
Enable Dynamic Duration
- Scales duration based on event values
- Cannot be used with random duration
Dynamic Duration Curve
- Graph editor for mapping event values to duration
- Example: $1 tip = 5 seconds, $50 tip = 30 seconds
- Linear interpolation between points
- Y-axis supports up to 65 seconds
Advanced Options
Enable Duplicate Shocks
- Repeats the operation multiple times for one trigger
- Useful for creating patterns or extended actions
Number of Duplicate Shocks
- How many times to repeat (minimum 1)
Delay Between Duplicate Shocks
- Pause between repeats in seconds
- Can be set to 0 for immediate successive operations
Enable Warning Vibrate
- Vibrates the device before the main operation
- Gives the wearer a heads-up
Warning Intensity (1-100%)
- Strength of the warning vibration
- Independent of main operation intensity
Warning Duration (0.3-65 seconds)
- How long the warning vibration lasts
- Occurs before the main operation
Setup Guide
Basic Setup
-
Connect OpenShock Account
- Open the Platforms page and add OpenShock
- Enter your API token
- Save and test connection
-
Create Alert
- Navigate to Alerts section
- Create new alert or edit existing
- Set your trigger conditions
-
Add OpenShock Action
- In Actions section, click "Add Action"
- Select "OpenShock"
-
Configure Device
- Select your OpenShock account
- Choose device(s) from dropdown
- Pick operation mode
-
Set Intensity & Duration
- Start with low values (e.g., 5% intensity, 2 seconds)
- Test before going live
- Adjust as needed
Dynamic Intensity Setup
For tips that scale with donation amount:
- Enable Dynamic Intensity
- In the curve editor:
- Set low-end: $1 → 10% intensity
- Set mid-range: $10 → 35% intensity
- Set high-end: $50 → 75% intensity
- Test with various tip amounts
OpenShock allows longer durations (65s vs PiShock's 15s), making it better for extended dynamic duration curves.
Long Duration Setup
For extended operations:
- Set duration to 30-60 seconds
- Use lower intensity (10-25%) for comfort
- Enable warning vibrate for transparency
- Test thoroughly before production use
Common Use Cases
Tip-Scaled Shock
- Use dynamic intensity curve
- Map tip amounts to shock strength
- Small tips = light shock, big tips = stronger
Random Surprise
- Enable random intensity (25-75%)
- Enable random duration (5-20 seconds)
- Each trigger is unpredictable
Extended Vibration
- Mode: Vibrate
- Duration: 45 seconds
- Intensity: 30%
- Great for passive feedback
Pattern Shocks
- Enable duplicate shocks (5 repeats)
- Set 2 second delay between
- Creates a multi-pulse pattern
Gentle Warning System
- Enable warning vibrate
- Set warning: 30% intensity, 5 seconds
- Main shock: 50% intensity, 3 seconds
Troubleshooting
Devices not showing up
- Verify OpenShock account is connected in Settings
- Check that devices are online in OpenShock app
- Refresh TipLink and check again
Nothing happens when triggered
- Test device directly in OpenShock app first
- Check device battery/connection status
- Verify API token is correct
- Look at TipLink logs for error messages
Intensity too weak/strong
- OpenShock devices vary by model and firmware
- Skin conductivity affects sensation
- Start low and gradually increase
- Test on yourself first
Random/Dynamic not working
- Cannot use both random and dynamic at the same time
- Check that you've disabled one if using the other
- Verify curve has valid points (dynamic mode)
Warning vibrate not triggering
- Check warning is enabled
- Verify warning duration > 0
- Main operation executes after warning completes
Long durations cutting off
- Verify duration is within 1-65 second range
- Check device firmware supports extended durations
- Test with shorter durations first
Safety & Best Practices
- Always test on yourself before using on others
- Start with low values (1-10% intensity)
- Know your device limits - different models have different strengths
- Use warning vibrations for transparency
- Set reasonable maximums - don't exceed 75% without careful testing
- Monitor usage - take breaks between sessions
- Longer durations = lower intensity - use reduced intensity for extended operations
Recommended Starting Values:
- Intensity: 5-10%
- Duration: 1-3 seconds
- Warning intensity: 20-30%
- Warning duration: 2-3 seconds
Extended Duration Guidelines:
- 30-45s duration: max 25% intensity
- 45-65s duration: max 15% intensity
Testing Checklist:
- ✅ Test device directly in OpenShock app
- ✅ Test with low intensity (5%) in TipLink
- ✅ Verify correct device is triggering
- ✅ Test all operation modes (shock/vibrate/beep)
- ✅ Test dynamic/random settings if used
- ✅ Verify warning vibrate works
- ✅ Test extended durations at low intensity
Technical Reference
API Limits:
- Max intensity: 100%
- Duration range: 0.3 to 65 seconds (vs PiShock's 15 seconds)
- Operations are queued if triggered rapidly
Value Ranges:
- Intensity: 1-100 (percentage)
- Duration: 0.3-65 (seconds, in steps of 0.1)
- Duplicate count: 1+ (no upper limit)
- Duplicate delay: 0+ seconds (no upper limit)
Dynamic Curve Interpolation:
- Uses linear interpolation between defined points
- Values outside defined range use nearest endpoint
- Curve values are clamped to valid ranges (1-100% intensity, 0.3-65s duration)
Differences from PiShock:
- Longer max duration: 65s vs 15s
- Beep vs Sound: OpenShock calls it "Beep" instead of "Sound"
- API implementation: Uses OpenShock API instead of PiShock API
- Default curve values: Higher duration ranges in default dynamic curves