Bot Shock is a Discord bot that connects to OpenShock and PiShock devices. It lets you control shock collars through Discord, schedule automated reminders, set up word triggers, and give trusted people permission to control your devices.
This project is still a work in progress.
- OpenShock and PiShock Support: Works with both platforms using their respective APIs
- User Registration: Link your OpenShock or PiShock account to Discord
- Controller System: Grant specific users or roles permission to control your devices
- Scheduled Reminders: Set up one-time or recurring shock reminders
- Word Triggers: Create patterns that automatically trigger shocks when you say certain words
- Action Logging: Complete history of all device actions for transparency and safety
-
Create a directory and download the compose file:
mkdir botshock && cd botshock curl -O https://raw.githubusercontent.com/TastelessVoid/Bot-Shock/main/docker-compose.yml
-
Generate an encryption key:
docker run --rm python:3.12-slim python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())" -
Edit
docker-compose.ymlwith your Discord bot token and encryption key. -
Start the bot:
docker compose up -d
-
View logs:
docker compose logs -f
-
Clone the repository:
git clone https://github.com/TastelessVoid/Bot-Shock.git cd Bot-Shock -
Create and activate a virtual environment:
python3 -m venv venv source venv/bin/activate -
Install the bot:
pip install -e . -
Generate an encryption key:
botshock-keygen
-
Create a
.envfile:DISCORD_TOKEN=your_discord_bot_token ENCRYPTION_KEY=your_generated_key -
Run the bot:
botshock
- Register your account:
/openshock setup - Add your devices (auto-fetched from API)
- Grant permissions to controllers:
/controllers add - Send shocks:
/shock
- Register your account:
/pishock setup - Add your devices using share codes:
/pishock add - Grant permissions to controllers:
/controllers add - Send shocks:
/shock
| Command | Description |
|---|---|
/shock |
Send a shock, vibration, or sound |
/controllers add |
Grant someone permission to control you |
/controllers list |
See who can control you |
/remind set |
Create a scheduled reminder |
/trigger add |
Create a word trigger |
/logs view |
View action history |
For detailed information, see the docs directory:
- Installation Guide - Complete setup instructions
- Configuration Guide - All available settings
- Command Reference - Full list of commands
- User Guide - How to use the bot
- Troubleshooting - Common problems and solutions
- Python 3.10 or higher
- Discord bot with message content intent enabled
- OpenShock account with API token, or PiShock account with API key
- Privacy Policy - How your data is handled
- Terms of Service - Rules for using this software
This project is licensed under the MIT License. See the LICENSE file for details.
This bot controls devices that can cause physical sensations. Always:
- Get clear consent from everyone involved
- Start with low intensity settings
- Have a way to stop the device quickly
- Establish boundaries and safewords outside of Discord
- Only give controller access to people you trust completely
Use this software responsibly and consensually.