# 🎰 SupaCasino Discord Bot A cozy, all-in-one casino bot for a Discord server β€” **Blackjack**, **Slots**, **Mini Roulette**, **Coin Flip**, **Towers**, and **Baccarat** β€” with a shared wallet, daily bonuses, and slick button/modals UX. > fun, fast rounds, fair defaults, and simple controls. --- ## ✨ Features * **One wallet across all games** (SQLite; persists on disk) * **Modern UI** with buttons & modals (Set Bet, 2Γ—, Β½, Spin/Deal, etc.) * **Launcher:** `!casino` opens a clean game picker * **Economy:** `!daily`, `!topup`, `!tip @user `, `!balance`, `!leaderboard` * **Rules:** `!rules` brings in-game payout tables & guides * **Docker-ready** (one command to run) * **Extensible** (each game is a cog; easy to add more) --- ## πŸš€ Quick Start ### Option A β€” Docker (recommended) 1. Copy the environment template and fill in your token: ```bash cp .env.example .env # open .env and paste your DISCORD_TOKEN ``` 2. Build & run: ```bash docker compose up -d --build ``` > SQLite database is stored at `./data/blackjack.db` (mounted into the container). ### Option B β€” Local Python ```bash python -m venv .venv . .venv/bin/activate # Windows: .venv\Scripts\activate pip install -r requirements.txt cp .env.example .env # add your DISCORD_TOKEN python -m src.bot ``` --- ## 🧭 Commands * **Hub** * `!casino` β€” open game launcher (self-cleans on click) * `!rules` β€” open rules menu * **Economy** * `!balance` / `!bal` β€” your stats (W/L per game, nets, spins) * `!leaderboard` / `!lb` β€” top cash * `!daily` β€” claim daily bonus (cash + free spins) * `!topup` β€” faucet every 5 minutes * `!tip @user 500` β€” send cash to a friend * **Games** (also available from `!casino`) * `!blackjack` β€” panel with **Set Bet Β· 2Γ— Β· Β½ Β· Deal** then **Hit/Stand/Double/Split** * `!slots` β€” **Set Bet** + **Lines (1/3/5/8)** + **Spin Again** ⭐ acts as wildcard for exactly β€œ2 of a kind + 1 ⭐”; ⭐⭐⭐ on middle row gives bonus spins. * `!roulette` β€” mini roulette with bet builder & spin again * `!coin` β€” coin flip with Set Bet + Heads/Tails (repeatable) * `!towers` β€” 9 tiers, 5 difficulties, pick tiles, cash out or risk it * `!baccarat` β€” Player/Tie/Banker bet modals + Deal (5% banker commission) --- ## βš™οΈ Configuration Tunables live in **`src/utils/constants.py`** (can be overwritten in `.env`): | Setting (env / constant) | What it does | Default | | ---------------------------------------- | ------------------------------------------ | ------------------------ | | `DISCORD_TOKEN` (env) | Your bot token | – | | `DB_PATH` (env) | SQLite path (inside container) | `/app/data/blackjack.db` | | `DAILY_CASH`, `DAILY_FREE_SPINS` | Daily bonus values | `10000`, `3` | | `TOPUP_AMOUNT`, `TOPUP_COOLDOWN_MINUTES` | Faucet amount & cooldown | `100`, `5` | | Slots: `SLOTS_MIN_BET`, `SLOTS_MAX_BET` | Bet limits | sensible defaults | | Slots: `PAYOUTS`, `WEIGHTS` | 3-in-a-row payouts and symbol rarity | tuned | | Slots: `WILDCARD_FACTOR` | ⭐ wildcard payout scale (reduced) | `0.x` | | Towers: `TOWERS_EDGE_PER_STEP` | per-step house edge applied to multipliers | small | | Baccarat: `BANKER_COMMISSION` | Banker commission | `0.05` | > Change safely, restart the bot, and you’re set.