diff --git a/README.md b/README.md index a6bfbc7..0055a16 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,94 @@ -Blackjack, Slots, Mini Roulette, Coin Flip, Towers, Baccarat β€” all-in-one Discord bot. +# 🎰 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: -## Quick start (Docker) ```bash cp .env.example .env -# edit .env and paste your DISCORD_TOKEN +# 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. +