Documentation menu

Docs/Plugins/Games

Games

A per-server economy - earnable currency, casino games, a role shop, and rank-card flair.

Requires the GAMES feature.

A full economy for your server. Members earn a currency you name yourself, gamble it on button-driven casino games, pay each other, and spend it on roles and rank-card cosmetics you put up for sale. Every game runs in a single message that updates in place - no channel spam.

plugins:
  games:
    currency_name: Doubloons        # what your money is called
    currency_emoji: "<:gold:1234567890>"   # optional custom emote
    starting_balance: 100           # seeded on a member's first use
    games_channels: [674638268135047186]   # empty = games anywhere
    daily:
      amount: 200                   # base daily payout
      streak_bonus: 25              # extra per consecutive day
    slots: { min_bet: 10, max_bet: 5000 }
    blackjack: { enabled: true }
    rob: { enabled: false }         # off unless you turn it on
    shop:
      roles:
        674638268135047186: { price: 5000, description: Gold name color }
    public_leaderboard: true

The dashboard's Setup → Games page edits all of this with pickers and per-game cards, and saving it is what enables the plugin. Everything has a sane default - an empty games: {} block is a complete setup.

Currency and earning

Every member has a wallet, checked with balance and topped up by:

  • daily - once per day (UTC), with a streak bonus that grows every consecutive day and one-time milestone bonuses (days 7, 30, and 100 by default).
  • work - a safe payout on a cooldown (an hour by default).
  • crime - a bigger payout, but with a real chance of being fined instead.
  • rob - steal from another member, with a penalty for getting caught. Off by default; a server has to opt in. Members can buy a shield (shield buy) that blocks one rob attempt each, and servers can also price a permanent shield (shield buy permanent) that blocks every attempt forever. Robbing up the wealth ladder is harder by default: the richer the target is compared to the robber, the lower the odds (every 10x gap cuts them further - turn this off with wealth_scaling: false). You can also list protected roles on the dashboard Games page - members holding one can never be robbed at all, which keeps staff and shop sellers out of the crossfire. For a bit of fun there is also grave robbing (grave_robbing: true, off by default): a heist against someone who has left the server or been banned always succeeds - they are not around to catch anyone. Their wallet still has to meet the minimum balance, and shields still block the attempt.
  • Level-up rewards - with level_up_reward enabled, members earn currency every time they level up (see the Autolevel plugin).
  • fish - a calm collection loop: cast on a cooldown, log every species you have ever caught (17 in the standard pond, junk through mythic), and sell the surplus with fish sell - selling keeps one of every species, so holding a fish IS having collected it. fish sell all sells your collection copies too if you really want the money. fish collection shows your log.
  • Expanded pond - flip fishing.expanded_catalog: true (also on the dashboard Games page) and the catalog grows about five times over, with more species in every tier plus a mythic top end whose catches sell for thousands at truly tiny odds.
  • The HepTrout Prime - the rarest fish in any pond. Catch one and you earn the global golden-fish HepTrout badge, which shows on your rank card in every server.
  • Coin drops - when enabled (off by default), a pouch of currency occasionally drops in active chat with a single Grab button; first click keeps it. Configure the amounts, pace, and channels - each listed channel drops on its own timer with a little added jitter, so multiple channels never drop in lockstep, and delete_after_seconds can sweep resolved drop messages out of chat automatically.

pay sends currency to another member. Transfers can carry an optional tax that is removed from the economy, and an optional per-day send cap - both useful if your server prints too much money or you worry about alt farming.

richest shows the wealthiest members on an interactive board: page through with arrows, or flip between all-time balances and who EARNED the most this week or month.

With happy_hour configured, daily/work/crime payouts multiply during recurring weekly windows you schedule (in your own timezone) - a reliable way to concentrate activity.

Games

Eight games, each with its own enable switch, bet limits, and cooldown. Bets accept plain numbers plus 2k, half, and all. A bet is taken the moment a game starts and paid back on the result - if the bot ever restarts mid-game, the stake is refunded automatically.

Cooldowns are short anti-spam gaps (a few seconds by default, tunable per game on the Games page), tracked per member, per game, per server. Playing too soon tells you exactly how long is left, and an early click never resets the timer - the window keeps running from the last real play.

  • Slots (slots <bet>) - a three-reel machine with a fixed, honest paytable that returns about 88% over time. Spin again from a button on the same message. A share of every losing bet feeds a progressive jackpot shown quietly on the machine - triple 💎 wins the whole pot on top of the 200x.
  • Blackjack (blackjack <bet>) - hit, stand, or double with buttons. Blackjack pays 3:2, and the dealer has to keep drawing while your hand beats theirs - they catch you or bust trying. Going idle stands automatically.
  • Coinflip (coinflip <bet> <heads|tails>) - solo flips pay 1.95x on a win. Name an opponent to challenge them instead: they accept or decline with a button, and the winner takes the whole pot - member duels are zero-sum, the house takes nothing.
  • Higher or Lower (highlow <bet>) - guess whether the next card is higher or lower (ties lose). Each correct guess climbs a multiplier ladder up to 4.8x; cash out any time after your first win, or bust and lose it all.
  • Roulette (roulette <bet>) - a European single-zero wheel on one board of buttons: red/black, even/odd, and dozens pay 2x and 3x, and the brave can ride the green zero for 36x. Every bet carries the same honest edge.
  • Dice (dice <bet> <over|under|seven>) - two six-sided dice against the house. Over (8-12) and under (2-6) pay 2.3x on a 15-in-36 chance; calling exactly seven pays 5.5x on 6-in-36. Roll again from the buttons on the same board - every payout is printed on the buttons themselves.
  • Horse Race (horserace <bet>) - back one of six horses and watch the race play out on the board. The favorite pays 3x, the longshot 15x, and every horse carries the same honest edge - longshots just swing harder. Staff can rename the six horses under Setup - Games on the dashboard; names are cosmetic, so each lane keeps its odds and payout no matter what you call it.
  • Rock Paper Scissors (rps <bet> <member>) - challenge another member for an equal stake. Your stake is held when you post the challenge, theirs when they accept; then both of you throw in secret, ties replay for the same pot, and the winner takes both stakes. Member-vs-member is zero-sum - the house takes nothing. Walking away without throwing forfeits.

games_channels fences the game commands into specific channels (threads under an allowed channel count as that channel); earning and wallet commands work everywhere. Game activity is public - other members see your daily claims, work shifts, crime runs, catches and fish sell hauls, the game boards, rob, pay, richest, and server bets, so the games feel alive in the channel. Personal browsing stays private: balance, fish collection, the shop and flair browsing and buying, and shields reply only to you - and so does every error, receipt, cooldown note, and the "games are only allowed in ..." nudge, so a mistyped command never clutters the channel.

Server bets

Authorized members (moderators, plus any roles you configure) can open a prediction pool with bet create Who wins tonight? | Red team | Blue team - up to 8 options. The bet posts as a live board: members click an option, type an amount, and the board updates with each side's pool, share, and what it currently pays. Wagers pool together like a prediction market: when the bet is resolved (bet resolve <id> <option>), everyone who backed the winner splits the WHOLE pot in proportion to their stake. You can add to your wager any time while the bet is open, but never switch sides.

bet lock <id> freezes wagering while the result plays out, and bet cancel <id> refunds every wager. If nobody backed the winning option, everyone is refunded too. Resolutions and cancellations land in the mod log with who did them.

Role shop

Price any of your roles in the config (or on the dashboard) and members buy them with shop buy. Run shop buy with no role and the bot replies with a menu of everything actually for sale - each option shows the price and your description, and picking one starts the same confirmed purchase as naming the role directly. The bot checks it can actually hand the role out before any money moves, and refunds automatically if Discord refuses the role afterwards. The bot can only assign roles below its own highest role.

Rank-card flair

Members can buy decorative frames - gold, neon, ember, frost, royal - that draw on their rank card in your server. Flair is bought with your server's currency and only shows in your server. There is also a Pride frame - a rainbow gradient ring and card border - that stays hidden until you turn it on: flip its "For sale" switch on the dashboard's Games page and it joins your shop like any other frame. Browse with flair, buy with flair buy, and switch with flair set. Run either without a name and the bot shows a picker menu instead (private to you on slash, and picking from it completes the purchase in the same message): flair buy lists the frames still for sale with their prices, flair set lists the frames you own plus a None option to go back to the classic look. Frames need image rank cards (the RANK_CARDS feature) to be visible.

You can also design your own frames. On the dashboard's Games page, add up to 10 custom gradient flairs: give one a name, pick its two colors, and set a price - it draws as a gradient ring and card border in exactly those colors. Members buy and equip them like any catalog frame (flair buy by name), and they list under "This server's own" in flair. Removing a custom flair from the config stops it drawing for members who bought it; add it back with the same id and it reappears.

Leaderboards

richest works in Discord with pages and weekly/monthly earned windows. With public_leaderboard: true, the server also gets a shareable web page of its richest members at /leaderboard/<server id>/games - the same opt-in model as the XP leaderboard. The dashboard's Games page links straight to it, and when both boards are public the XP and coin leaderboard pages link to each other.

Web API

With the Web API feature, GET /api/v1/guilds/<id>/economy reads the balance leaderboard and /economy/<user id> reads one member - handy for your own integrations.

Admin tools

The eco command group grants, takes, sets, and resets balances - all of it lands in the mod log. eco reset with no member wipes the whole server after a button confirmation. The dashboard's Games page shows wallet stats, the richest members, the full activity ledger, a balance adjuster, and an economy health panel: where currency was minted and burned over the last week, plus the top transfer recipients - your early-warning view for inflation and alt farming.

Limits worth setting

  • max_balance (default 1,000,000,000) - the ceiling a wallet can reach. Credits clamp here, and the excess is burned rather than banked.
  • betting.min_wager / betting.max_wager and betting.max_open (default
      • the stake range on server bets and how many can run at once.
  • fishing.cooldown_seconds (default 300) - the wait between casts.
  • fishing.expanded_catalog (default false) - the ~5x expanded pond.
  • flair.enabled_items - the opt-in list behind the "For sale" switches; rob.protected_roles is the key behind protected roles.

Commands

Command What it does
/balance Check a wallet balance.
/pay Send some of your currency to another member.
/daily Claim your daily currency (streaks pay extra).
/work Do an honest shift for some currency.
/crime Risky business: bigger payout, real chance of a fine.
/rob Attempt to rob another member. High risk, bad karma.
/richest The richest members of this server.
/slots Spin the slot machine.
/blackjack A hand of blackjack against the house.
/coinflip Flip a coin for currency - solo, or duel another member.
/highlow Higher or lower: climb the multiplier ladder or bust.
/roulette European roulette - pick red, black, dozens, or brave the zero.
/horserace Back a horse and watch the race - longshots pay big.
/rps Rock-paper-scissors duel against another member - winner takes both stakes.
/dice Two dice against the house - over, under, or lucky seven.
/bet create Open a server bet: question | option 1 | option 2 [| more]
/bet list Open server bets.
/bet lock Lock a bet (no new wagers) while the result plays out.
/bet resolve Resolve a bet - winners split the whole pot.
/bet cancel Cancel a bet and refund every wager.
/fish Cast a line - build your collection, sell the haul.
/fish collection Your fishing collection log.
/fish sell Sell your whole haul for currency.
/shield Check your rob shields.
/shield buy Buy a rob shield (blocks one rob attempt).
/shop Browse what your currency can buy here.
/shop buy Buy a role from the shop.
/flair Browse and show off rank-card flair.
/flair buy Buy a rank-card flair frame.
/flair set Equip a flair frame you own (or none).
/eco give Grant currency to a member.
/eco take Take currency from a member (floors at zero).
/eco set Set a member's balance to an exact value.
/eco reset Reset a member (or the whole server) to zero.