Skip to content

TastelessVoid/Bot-Shock

Repository files navigation

Bot Shock

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.

Features

  • 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

Quick Start

Using Docker (Recommended)

  1. 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
  2. Generate an encryption key:

    docker run --rm python:3.12-slim python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())"
  3. Edit docker-compose.yml with your Discord bot token and encryption key.

  4. Start the bot:

    docker compose up -d
  5. View logs:

    docker compose logs -f

Building from Source

  1. Clone the repository:

    git clone https://github.com/TastelessVoid/Bot-Shock.git
    cd Bot-Shock
  2. Create and activate a virtual environment:

    python3 -m venv venv
    source venv/bin/activate
  3. Install the bot:

    pip install -e .
  4. Generate an encryption key:

    botshock-keygen
  5. Create a .env file:

    DISCORD_TOKEN=your_discord_bot_token
    ENCRYPTION_KEY=your_generated_key
    
  6. Run the bot:

    botshock

Basic Usage

For OpenShock Users

  1. Register your account: /openshock setup
  2. Add your devices (auto-fetched from API)
  3. Grant permissions to controllers: /controllers add
  4. Send shocks: /shock

For PiShock Users

  1. Register your account: /pishock setup
  2. Add your devices using share codes: /pishock add
  3. Grant permissions to controllers: /controllers add
  4. Send shocks: /shock

Common Commands

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

Documentation

For detailed information, see the docs directory:

Requirements

  • Python 3.10 or higher
  • Discord bot with message content intent enabled
  • OpenShock account with API token, or PiShock account with API key

Privacy and Terms

License

This project is licensed under the MIT License. See the LICENSE file for details.

Safety Notice

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.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages