I, (HypedZykro / Zykro), am not held responsible by how this is used.
This shall not be used for any purpose besides educational purposes.
The user should be aware that this is against Discord's TOS.
This repository contains two Discord bot scripts:
main.py- Server nuke bot (kicks members, deletes roles and channels)massdm.py- Mass DM bot with advanced features
- Python 3.8 or higher
- Discord bot token (Get one here)
- Required Python packages
-
Clone the repository
git clone https://github.com/Inv-Wolve/Server-Nuke-Bot.git cd Server-Nuke-Bot -
Install dependencies
pip install -r requirements.txt
-
Configure environment variables
Copy
.env.exampleto.env:copy .env.example .env
Edit
.envand add your bot token:DISCORD_TOKEN=your_actual_bot_token_here -
Configure mass DM settings
Copy
config.example.jsontoconfig.json:copy config.example.json config.json
Edit
config.jsonwith your settings (see Configuration section below). -
Configure server nuke settings
Copy
nuke_config.example.jsontonuke_config.json:copy nuke_config.example.json nuke_config.json
Edit
nuke_config.jsonwith your settings (see Configuration section below).
The config.json file contains all settings:
{
"guild_id": 123456789, // Your Discord server ID
"opt_in_role": null, // Role name to target (null = all members)
"exclude_ids": [123, 456], // User IDs to exclude
"message": {
"content": "Hello {display_name}!", // Message content
"use_embed": false, // Use embed instead of plain text
"embed": { // Embed configuration (if use_embed = true)
"title": "Announcement",
"description": "Hello {display_name}!",
"color": 5793266,
"footer": "Server Team"
}
},
"rate_limiting": {
"sleep_between_dms": 2.5, // Seconds between each DM
"max_retries": 6, // Max retry attempts per user
"daily_limit": 200, // Max DMs per run
"batch_size": 50 // Batch size for processing
},
"safety": {
"dry_run": false, // Test mode (doesn't send DMs)
"require_confirmation": true, // Ask for confirmation before sending
"enable_checkpoints": true // Save progress periodically
},
"logging": {
"level": "INFO", // Log level (DEBUG, INFO, WARNING, ERROR)
"save_to_file": true, // Save logs to file
"log_file": "massdm.log" // Log file name
}
}You can use these variables in your message content:
{display_name}- User's display name{username}- User's username{mention}- User mention (@user){id}- User ID{discriminator}- User discriminator (legacy)
The nuke_config.json file contains all settings:
{
"guild_id": 123456789, // Your Discord server ID
"operations": {
"kick_members": true, // Kick all non-exempt members
"delete_roles": true, // Delete all non-exempt roles
"delete_channels": true, // Delete all non-exempt channels
"delete_emojis": false, // Delete all emojis
"ban_instead_of_kick": false // Ban instead of kick
},
"exempt": {
"user_ids": [123, 456], // User IDs to protect
"role_names": ["@everyone"], // Role names to protect
"channel_names": [] // Channel names to protect
},
"rate_limiting": {
"kick_delay": 0.5, // Seconds between kicks
"role_delete_delay": 0.3, // Seconds between role deletions
"channel_delete_delay": 0.3, // Seconds between channel deletions
"batch_size": 10, // Operations per batch
"batch_delay": 2.0 // Delay between batches
},
"safety": {
"dry_run": false, // Test mode (doesn't perform operations)
"require_confirmation": true, // Multi-step confirmation
"require_server_name": true, // Require typing server name
"cooldown_seconds": 10, // Cooldown before execution
"create_backup": true // Create server structure backup
},
"logging": {
"level": "INFO", // Log level
"save_to_file": true, // Save logs to file
"log_file": "nuke.log" // Log filename
}
}-
Configure your settings in
config.json -
Test with dry run (recommended first time):
"safety": { "dry_run": true, ... }
-
Run the bot:
python massdm.py
-
Confirm the operation when prompted (unless disabled)
-
Monitor progress in console and log file
-
Check results in
results/directory
-
Configure your settings in
nuke_config.json -
Choose operations to perform:
"operations": { "kick_members": true, "delete_roles": true, "delete_channels": true, "delete_emojis": false, "ban_instead_of_kick": false }
-
Set exempt lists to protect specific users/roles/channels:
"exempt": { "user_ids": [123456789], "role_names": ["@everyone", "Admin"], "channel_names": ["important-channel"] }
-
Test with dry run (HIGHLY recommended):
"safety": { "dry_run": true, ... }
-
Run the bot:
python main.py
-
Follow multi-step confirmation:
- Type "I UNDERSTAND THE RISKS"
- Type the exact server name
- Wait through cooldown period
-
Monitor progress in console and log file
-
Check results in
nuke_results/directory -
Review backup in
backups/directory (if enabled)
- β Environment variable support - Secure token storage
- β JSON configuration - Flexible settings management
- β Progress tracking - Real-time progress bar and statistics
- β Error handling - Comprehensive retry logic with exponential backoff
- β Rate limiting - Configurable delays and daily limits
- β Dry run mode - Test without sending actual DMs
- β Confirmation prompts - Prevent accidental mass DMs
- β Checkpoint system - Resume from last position on failure
- β Result exports - Detailed JSON reports with success/failure data
- β Embed support - Send rich embedded messages
- β Message personalization - Multiple variable substitutions
- β Comprehensive logging - File and console logging with levels
- β Role-based targeting - Target specific roles or all members
- β User exclusion - Exclude specific user IDs
- β Environment variable support - Secure token storage
- β JSON configuration - Flexible settings management
- β Selective operations - Choose what to nuke (members/roles/channels/emojis)
- β Exempt lists - Protect specific users, roles, and channels
- β Multi-step confirmation - Prevent accidental destruction
- β Server name verification - Must type exact server name to confirm
- β Cooldown period - Time to cancel before execution
- β Dry-run mode - Test without performing actual operations
- β Automatic backups - Save server structure before nuking
- β Progress tracking - Real-time progress bars for each operation type
- β Error handling - Comprehensive retry logic and detailed logging
- β Rate limiting - Configurable delays between operations
- β Result exports - Detailed JSON reports with success/failure data
- β Ban option - Choose to ban instead of kick
- β Batch processing - Process operations in configurable batches
- β Comprehensive logging - File and console logging with levels
==================================================
Discord Mass DM Bot
==================================================
β οΈ WARNING: For educational purposes only!
β οΈ Mass DMing may violate Discord's Terms of Service.
==================================================
[2025-12-04 20:00:00] INFO: Configuration validated successfully
[2025-12-04 20:00:01] INFO: Bot ready as BotName#1234
[2025-12-04 20:00:01] INFO: Connected to guild: ServerName (id=123456789)
[2025-12-04 20:00:01] INFO: Total targets: 150
Progress: 10/150 [ββββββββββββββββ] 6.7% | Sent: 9, Failed: 1, Success Rate: 90.0%
Progress: 20/150 [ββββββββββββββββ] 13.3% | Sent: 19, Failed: 1, Success Rate: 95.0%
...
Results are saved to results/massdm_results_TIMESTAMP.json:
{
"summary": {
"total_targets": 150,
"sent": 145,
"failed": 5,
"skipped": 0,
"success_rate": "96.67%",
"total_time": "375.50s",
"avg_time_per_dm": "2.50s"
},
"failed_users": [
{
"user_id": 123456789,
"username": "User#1234",
"reason": "DMs disabled or bot blocked",
"timestamp": "2025-12-04T20:06:15"
}
],
"timestamp": "2025-12-04T20:06:15"
}- Discord ToS Violation: Mass DMing and server nuking violate Discord's Terms of Service
- Account Risk: Your bot account may be banned
- Legal Responsibility: Use at your own risk
- Educational Only: This is for learning purposes only
- Rate Limits: Discord has strict rate limits - respect them
- User Privacy: Always respect user privacy and consent
The mass DM bot includes several safety features:
- Confirmation prompts before sending
- Dry run mode for testing
- Daily limits to prevent abuse
- Rate limiting to avoid API bans
- Checkpoint system to resume on failure
- Detailed logging for audit trails
- Make sure you created
.envfile - Check that the token is correctly set
- No quotes needed around the token
- Check
config.jsonsyntax (valid JSON) - Ensure
guild_idis a number, not a string - Verify all required fields are present
- Verify the guild ID is correct
- Ensure the bot is in the server
- Check bot has proper permissions
- User has DMs disabled
- User has blocked the bot
- This is normal and tracked in failed_users
This project is provided as-is for educational purposes only. No warranty or support is provided.
HypedZykro / Zykro
- GitHub: @Inv-Wolve
By using this software, you acknowledge that:
- This is for educational purposes only
- You understand the risks involved
- You take full responsibility for your actions
- The author is not liable for any consequences
- You will not use this maliciously
Use responsibly and ethically.