This is a complete reference for all Bot Shock commands. All commands use Discord's slash command system.
- OpenShock Commands
- PiShock Commands
- Shock Command
- Controller Management
- Reminders
- Triggers
- Preferences
- Action Logs
- Server Settings
Commands for managing your OpenShock account and devices.
Register your OpenShock account with the bot.
A form will appear asking for your API token. The bot validates the token and lets you select which devices to add.
How to get your API token:
- Log in to openshock.app
- Go to Settings, then API Tokens
- Create a new token or copy an existing one
Add devices from your OpenShock account.
The bot fetches your available shockers and shows them in a selection menu. Choose which ones to add to this server.
View your registered devices.
Shows all devices you have added to this server, along with their IDs and names.
Remove a device from the bot.
Parameters:
device_id: The ID of the device to remove
Toggle whether you are wearing your device.
When set to not wearing, controllers cannot send shock commands to you. This is a quick safety measure that does not remove any permissions.
Check your current device status.
Shows whether you are currently set to wearing or not wearing.
Remove your account and all data from the bot.
This is permanent. All your devices, reminders, triggers, and controller permissions will be deleted.
Commands for managing your PiShock account and devices.
Register your PiShock account with the bot.
A form will appear asking for your username and API key. Find these in your PiShock account settings.
After registering, you need to add your devices manually using share codes.
Add a device using a share code.
A form will appear asking for your share code and an optional name. You can paste either the share code directly or the full PiShock share URL.
How to get a share code:
- Open the PiShock app
- Select the shocker you want to use
- Go to Share and create a new code
- Copy the code or the share URL and paste it here
View your registered devices.
Shows all share codes you have added to this server.
Remove a device from the bot.
Parameters:
share_code: The share code to remove
Remove your account and all data from the bot.
This is permanent. All your devices, reminders, triggers, and controller permissions will be deleted.
Send a shock, vibration, or sound to a device.
This command works with both OpenShock and PiShock devices. The bot automatically uses the correct API based on the target user's registered platform.
Requirements:
- The target must be wearing their device
- You must have permission to control the target
- The target must have at least one device registered
Parameters:
user(optional): Who to shock. Auto-selected if you only control one person.intensity(optional): 1 to 100. Uses your defaults if not specified.duration(optional): 300 to 65535 milliseconds. Uses your defaults if not specified.action(optional): Shock, Vibrate, or Sound. Uses your defaults if not specified.shocker_id(optional): Which device. Auto-selected if the target has only one.
The bot remembers your last-used settings and applies them when you do not specify values.
Common error messages:
- "User is not wearing their device" means the target disabled their device status
- "No permission to control this user" means you need to be added as a controller
- "User has no shockers registered" means the target needs to add devices
Examples:
/shock user:@Alice intensity:50 duration:1000 action:Shock
/shock user:@Alice
/shock intensity:30 duration:500 action:Vibrate
Controllers are users or roles with permission to control your devices. You must explicitly grant this permission.
Give control permission to users or roles.
Opens an interactive menu where you can select users, roles, or both. Review your selections and confirm to grant access.
Revoke control permission.
Parameters:
user(optional): The user to removerole(optional): The role to remove
Specify either a user or a role, not both.
Examples:
/controllers remove user:@JohnDoe
/controllers remove role:@SomeRole
View everyone who can control your device.
Shows individual users, roles, and when each permission was granted.
Reminders are scheduled shock commands that execute automatically.
Create a new reminder.
Parameters:
time: When to triggerintensity: 1 to 100duration: 300 to 65535 millisecondsaction: Shock, Vibrate, or Soundrecurrence(optional): Pattern for repeatinguser(optional): Target user, defaults to yourself
Time format examples:
in 5 minutesin 2 hourstomorrow at 3pm2024-12-25 14:30next monday at 9am
Recurrence format examples:
every dayevery 2 hoursevery weekdayevery monday at 10amevery 30 minutes
View your active reminders.
Parameters:
page(optional): Page number for pagination
Cancel a reminder.
Parameters:
reminder_id: The ID of the reminder to cancel
Get details about a specific reminder.
Parameters:
reminder_id: The ID of the reminder
Triggers activate automatically when someone sends a message matching a pattern.
Create a new trigger.
Opens a form where you enter the trigger name (optional) and the pattern to match.
Parameters:
intensity: 1 to 100duration: 300 to 65535 millisecondsaction: Shock, Vibrate, or Soundcooldown: Seconds before the trigger can activate again (0 to 3600)user(optional): Target user, defaults to yourself
Pattern examples:
bad wordmatches that exact phrasebad word|naughty phrasematches either phrase\bstupid\bmatches the whole word "stupid"oops|whoops|mistakematches any of these
View active triggers.
Parameters:
user(optional): Filter by target userpage(optional): Page number
Delete a trigger.
Parameters:
trigger_id: The ID of the trigger to delete
Enable or disable a trigger without deleting it.
Parameters:
trigger_id: The ID of the triggerenabled: True or False
Get details about a trigger.
Parameters:
trigger_id: The ID of the trigger
Set your default shock parameters.
When you use /shock without specifying all values, these defaults are used.
Parameters:
intensity: Default intensity (1 to 100)duration: Default duration (300 to 65535 milliseconds)action: Default type (Shock, Vibrate, or Sound)target_user(optional): Set different defaults for a specific user
View your current preferences.
Parameters:
target_user(optional): View preferences for a specific user
Reset preferences to default values.
Parameters:
target_user(optional): Reset preferences for a specific user only
View the history of shock commands.
Parameters:
days(optional): How many days to look back (1 to 90, default is 7)page(optional): Page number
Shows who sent the command, when, target, shock parameters, and source (manual, reminder, or trigger).
Download logs as a CSV file.
Parameters:
days(optional): How many days to export (1 to 90, default is 30)
These commands require the Manage Roles permission in Discord.
Configure administrative roles for the server.
Bot Shock uses consent-based permissions. Control roles are for administrative purposes only. Users must still grant permission through /controllers add before anyone can control their devices.
/openshock setupto register- Select devices during setup, or use
/openshock addlater /controllers addto grant permissions to others/shockto send commands
/pishock setupto register/pishock addto add share codes/controllers addto grant permissions to others/shockto send commands
/openshock device_statusor check your platform's equivalent to toggle wearing status/openshock check_deviceto see current status/controllers removeto revoke access/openshock unregisteror/pishock unregisterto remove all data