# ๐ŸŽฐ SupaCasino Discord Bot All-in-one casino bot for a Discord server โ€” **Blackjack**, **Slots**, **Mini Roulette**, **Coin Flip**, **Towers**, and **Baccarat** --- ## โœจ 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 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). --- ## ๐Ÿงญ 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` |