78 lines
3.2 KiB
Markdown
78 lines
3.2 KiB
Markdown
# 🎰 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 <amount>`, `!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` |
|