``` ███████╗██╗ ██╗██████╗ ██████╗ ██╗ ██╗ ╚══███╔╝╚██╗ ██╔╝██╔══██╗██╔═══██╗╚██╗██╔╝ ███╔╝ ╚████╔╝ ██████╔╝██║ ██║ ╚███╔╝ ███╔╝ ╚██╔╝ ██╔══██╗██║ ██║ ██╔██╗ ███████╗ ██║ ██║ ██║╚██████╔╝██╔╝ ██╗ ╚══════╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ ```

ZyroX Bot — Python Discord Bot + FastAPI Backend

--- ## ✦ Overview This folder contains the ZyroX Discord bot built on `discord.py v2` alongside a `FastAPI` backend that powers the web dashboard. Everything runs from a single `python CodeX.py` command. ``` bot/ ├── api/ FastAPI backend (routes, schemas, db manager) │ └── routes/ /bot /guilds /admin ├── cogs/ │ ├── antinuke/ Antinuke protection event listeners │ ├── automod/ Automod enforcement event listeners │ ├── commands/ All slash & prefix command modules │ ├── events/ General Discord event listeners │ ├── moderation/ Moderation action modules │ └── zyrox/ Core ZyroX feature cogs ├── core/ Bot client, context, cog base classes ├── games/ Standalone game logic + button views ├── utils/ Emoji, tools, sync, Cloudflare tunnel ├── assets/ Fonts, backgrounds, GIFs └── CodeX.py Entry point ``` --- ## ✦ Features
**🛡️ Antinuke** - Mass ban, kick, channel & role flood detection - Webhook abuse, bot add, prune protection - Anti-member update - Whitelist / unwhitelist system - Emergency lockdown mode **🤖 Automod** - Anti-spam, anti-caps, anti-links - Anti-invites, mass mention, emoji spam - Fully configurable per server - Works alongside Discord's native automod
**🎵 Music** - Lavalink v4 powered playback - YouTube, SoundCloud, JioSaavn support - Queue, loop, shuffle, autoplay - Seek, rewind, forward controls **⚙️ Moderation** - Ban, kick, mute, warn, lock, jail - Snipe, message management - Full logging system - Reaction roles, vanity roles, invite tracker
**🎉 Engagement** - Leveling & XP with leaderboard - Birthday tracker - Counting, AFK, autorole, autoresponder - Sticky messages, booster perks, giveaways **🎮 Games** - Chess, Battleship, Connect Four - Wordle, Typeracer, 2048, Memory - Reaction test, RPS, Tic-tac-toe - Country guess, Number slider, Lights out
**🌐 API Backend** - FastAPI with API key auth - SlowAPI rate limiting - Structured JSON request logging - CORS configured for your dashboard domain - `CORS_ORIGINS` env var for extra domains **🔧 Developer** - Jishaku eval support - Application emoji auto-sync - Slash + prefix commands - Cloudflare Tunnel via pycloudflared — zero system installs, unlimited traffic - Single `OWNER_IDS` env var controls all permission checks - CodeX Devs watermark on every source file
--- ## ✦ Prerequisites | Requirement | Notes | |---|---| | Python 3.10+ | — | | Lavalink v4 node | for music features | | Discord bot token | from Developer Portal | | Cloudflare account (free) | for HTTPS tunnel — browser setup only | --- ## ✦ Setup ### 1 — Install dependencies ```bash python -m venv .venv # Windows .venv\Scripts\activate # Linux / macOS source .venv/bin/activate pip install -r requirements.txt ``` ### 2 — Configure environment Create a `.env` file (copy from `.env.example`): ```env # ── Core ────────────────────────────────────────────────────────── TOKEN = your_discord_bot_token brand_name = 'ZyroX' # ── Owner IDs (comma-separated — no code changes needed) ────────── OWNER_IDS = 870179991462236170,767979794411028491 # ── Lavalink ────────────────────────────────────────────────────── LAVALINK_HOST = "your-lavalink-host" LAVALINK_PASSWORD = "your_password" LAVALINK_SECURE = "true" LAVALINK_PORT = "" # ── Emoji Sync ──────────────────────────────────────────────────── EMOJI_SYNC = "true" # ── API / Dashboard Backend ─────────────────────────────────────── API_ENABLED = "true" API_PORT = "8000" DASHBOARD_API_KEY = "change_this_to_a_strong_secret" CORS_ORIGINS = "" # ── Cloudflare Tunnel ───────────────────────────────────────────── TUNNEL_ENABLED = "true" CF_TUNNEL_TOKEN = "your_tunnel_token" CF_TUNNEL_URL = "https://api.yourdomain.com" # ── Webhooks ────────────────────────────────────────────────────── WEBHOOK_URL = "https://discord.com/api/webhooks/..." ``` ### 3 — Run ```bash python CodeX.py ``` --- ## ✦ Environment Reference | Variable | Default | Description | |---|---|---| | `TOKEN` | — | Discord bot token | | `OWNER_IDS` | — | Comma-separated owner Discord user IDs | | `LAVALINK_HOST` | — | Lavalink server hostname (no protocol) | | `LAVALINK_PASSWORD` | — | Lavalink password | | `LAVALINK_SECURE` | `true` | `true` = HTTPS, `false` = HTTP | | `LAVALINK_PORT` | _(empty)_ | Port — only when `LAVALINK_SECURE=false` | | `EMOJI_SYNC` | `true` | Auto-sync application emojis on startup | | `API_ENABLED` | `true` | Start the FastAPI dashboard backend | | `API_PORT` | `8000` | Port the backend listens on | | `DASHBOARD_API_KEY` | — | Shared secret between bot API and dashboard | | `CORS_ORIGINS` | _(empty)_ | Extra CORS-allowed origins, comma-separated | | `WEBHOOK_URL` | — | Discord webhook for command logs | | `TUNNEL_ENABLED` | `true` | Expose API over HTTPS via Cloudflare Tunnel | | `CF_TUNNEL_TOKEN` | — | Token from Cloudflare Zero Trust dashboard | | `CF_TUNNEL_URL` | — | Your permanent public URL | --- ## ✦ HTTPS Tunnel (Cloudflare) Uses **pycloudflared** — downloads the `cloudflared` binary automatically on first run. No system installs, no CLI, works on Pterodactyl and any Python host. **Why Cloudflare over ngrok:** | | Cloudflare Tunnel | ngrok free | |---|---|---| | Bandwidth | Unlimited | 1 GB/month | | Requests | Unlimited | 10k/month | | URL stability | Permanent | Permanent (1 domain) | | System install | ❌ Not needed | ❌ Not needed | | Cost | Free | Free | **Setup (browser only — no CLI needed):** 1. Go to [one.dash.cloudflare.com](https://one.dash.cloudflare.com) → **Networks → Tunnels → Create a tunnel** 2. Choose **Cloudflared**, name it (e.g. `zyrox-api`), save 3. On **Install connector**, copy the token from the command shown: ``` cloudflared tunnel run --token ``` 4. On **Public Hostname** tab → add a hostname: - Subdomain: `api` · Domain: `yourdomain.com` · Service: `http://localhost:8000` 5. Add to `.env`: ```env CF_TUNNEL_TOKEN = "eyJhIjoiXXXX..." CF_TUNNEL_URL = "https://api.yourdomain.com" ``` On every startup the console prints: ``` ◈ Tunnel: cloudflared binary ready — starting tunnel on port 8000… ◈ Tunnel: API is live at https://api.yourdomain.com ↳ NEXT_PUBLIC_API_URL = https://api.yourdomain.com/api/v1 ``` Set `TUNNEL_ENABLED=false` to disable. --- ## ✦ Emoji Sync When `EMOJI_SYNC=true`, the bot syncs application emojis on every startup: | Event | Action | |---|---| | New emoji found | Uploaded to application, ID written to `emoji.py` | | Stale ID detected | `emoji.py` patched automatically | | No changes | Sync completes instantly, no restart | | After any patch | Bot restarts so fresh IDs are live | --- ## ✦ Deployment Upload the entire `bot/` folder to your host and set the start command to: ```bash python CodeX.py ``` `pycloudflared` downloads the binary on first run — no extra steps on any host. > Recommended free hosts: Render · Railway · Fly.io · Pterodactyl > > ⭐ **[NexioHost](https://nexiohost.in)** — Premium bot hosting, built for Discord bots. Fast, reliable, and affordable. --- ## ✦ Troubleshooting | Problem | Fix | |---|---| | Bot fails to start | Check `TOKEN` and gateway intents in Developer Portal | | Music not working | Verify `LAVALINK_HOST`, `LAVALINK_SECURE`, `LAVALINK_PORT` | | Dashboard can't reach API | Check `API_ENABLED=true` and `NEXT_PUBLIC_API_URL` in dashboard | | CORS errors | Add your Vercel URL to `CORS_ORIGINS` in `.env` | | Emojis showing as plain text | Run once with `EMOJI_SYNC=true` to upload and patch IDs | | Tunnel not starting | Check `CF_TUNNEL_TOKEN` is valid and `pycloudflared` is installed | | Want to add an owner | Add their ID to `OWNER_IDS` in `.env` — no code changes needed | ---
## ✦ CodeX Devs *Built for protection. Designed for style.* CodeX Development Discord Server

© 2026 CodeX Devs — MIT License