A Discord bot designed for harmless trolling with voice channel features, built with Node.js and Bun.
- Random voice channel kidnapping with random sound effects
- Targeted voice channel kidnapping
- Punishment system that locks users in a specific voice channel
- Support for multiple audio formats (MP3, WAV, OGG)
- Bun installed on your system (for local development)
- A Discord bot token from the Discord Developer Portal
- Docker and Docker Compose (for containerized deployment)
- Install dependencies:
bun install
- Create a
.env
file with your Discord bot token:
DISCORD_TOKEN=your_bot_token_here
COMMAND_PREFIX=!
-
Add sound files to the
sounds
directory:- Supported formats:
.mp3
,.wav
,.ogg
- The bot will randomly select one of these sounds each time
- You can add or remove sounds while the bot is running
- Supported formats:
-
Run the bot:
# Development mode with auto-reload
bun dev
# Production mode
bun start
- Create a
.env
file with your Discord bot token - Add your sound files to the
sounds
directory - Build and run the container:
docker-compose up -d
- Build the image:
docker build -t troll-bot .
- Run the container:
docker run -d \
--name troll-bot \
--restart unless-stopped \
-v $(pwd)/sounds:/app/sounds \
--env-file .env \
troll-bot
-
In your Coolify dashboard:
- Create a new service
- Select "Docker Compose"
- Connect your GitHub repository
- Set the following environment variables:
DISCORD_TOKEN
: Your bot tokenCOMMAND_PREFIX
: Command prefix (default: !)
- Deploy the service
-
After deployment:
- Create a
sounds
directory in the container - Upload your sound files (MP3, WAV, or OGG) to the sounds directory
- The bot will automatically use any new sounds you add
- The bot will automatically restart when configuration changes
- Create a
!kidnap @user
- Kidnap a specific user, play a random sound, and return them!randomkidnap
- Randomly kidnap someone from your current voice channel!punish @user
- Force a user to stay in the punishment channel!unpunish @user
- Remove punishment from a user
- Place your sound files in the
sounds
directory - Supported formats:
.mp3
,.wav
,.ogg
- Files can be added/removed while the bot is running
- The bot will randomly select one sound for each kidnapping
- No specific naming convention required
- View Channels
- Send Messages
- Read Message History
- Connect to Voice Channels
- Speak in Voice Channels
- Move Members
- Manage Channels
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.