birdvirus-bot — a discord.py hybrid command bot with economy, jobs, voice, AI chat, and moderation.
ECONOMY
/pure chance
Double-or-nothing coinflip.
/pure blackjack
Interactive blackjack with hit/stand buttons, dealer AI, 1.5x natural.
/pure slots
3-reel slots with 7 symbols (🍒🍋🍇🔔💎7️⃣), up to 15x payout.
/pure roulette
Color/range (2x) or exact number (36x), animated spin sequence.
/pure insaneroll
d20 with escalating stakes — 1 = lose 5x, 20 = win 20x. Can drain bank on
critical failure.
/pure birdvirus
Detective minigame: 5 birds, some infected. Inspect each bird's location
history and diet, then guess how many are infected. 5x multiplier.
/pure plinko
8-row plinko board with animated ball path. Slots: 15x, 5x, 2x, 0.5x, 2x,
5x, 15x.
/pure horse
Pick from 5 horses with different odds (2x-5x). Each has min/max roll per
tick. Animated progress bar race with stumble/sprint mechanics.
/beg
90% success rate, earns 1-15 coins. 30s cooldown.
/fish
Weighted loot table: 60% common (5-15), 25% blowfish (20-40), 5% shark
(100-200), 10% old boot (0). 45s cooldown.
/balance [user]
Shows holding balance, bank balance, and total. Bank earns interest.
/deposit
Move coins from holding to bank.
/withdraw
Move coins from bank to holding.
/eatbomb
Spend 10 coins. 30% chance to digest (+25), 70% chance to explode (-20).
JOBS
6 jobs, each with a unique interactive minigame, level system (XP = level * 100),
random events (15% chance per shift), and speed-based pay multiplier (0.1x-3x).
janitor — free, 5m cd — find the poop emoji among 9 tiles
chef — 1500, 10m cd — order recipe ingredients from shuffled list
developer — 2500, 15m cd — pick correct code snippet from 4 options
hacker — 5000, 30m cd — crack 3-digit PIN with mastermind feedback
miner — 3500, 20m cd — 5x5 grid, find 💎 avoid 🔥, 3 picks
thief — 4000, 20m cd — push-your-luck through 4 stages, escalating risk
Commands:
/job list — show all jobs with pay, requirements, descriptions
/job info — show your current job, level, XP, title, shifts
/job apply — apply for a job (pays license fee)
/job work — start your shift (launches minigame)
/job quit — quit your current job
/job beg — 35% to skip cooldown early (120s cd, may extend break)
VOICE / AUDIO
/vc join — join your current voice channel
/vc leave — leave (joiner, admin, or bot dev only)
/vc stop — stop playback and clear queue
/vc bird — play bird virus sound instantly
/vc droid — queue droid.mp3
/stop — alias for /vc stop
/play [link] [file] — play from YouTube, direct URL, or uploaded file
/bad apple [max] — queue Bad Apple (60 coins normal, 1000 for max volume)
/tts
- Custom per-guild FIFO audio queue
- PCMVolumeTransformer at 0.60 volume (1.0 for badapple_max)
- voice announcer: background loop every 15s, 80% chance to play bird sounds
in all connected VCs
- "67" trigger: any message containing "67" while bot is in VC has 50%
chance to queue a bird sound
================================================================================
AI / UTILITY
================================================================================
/chat
Gemini 3.1 Flash Lite. Persona: casual lowercase Discord girl named birdvirus,
no punctuation, hates LARPers. Reads last 10 messages for context. Has an
"ignore" function call to stay silent.
/chat_reset
Wipes AI context for the channel.
/ping — pong :p
/version — shows bot version + host
/gif — random GIF from curated list (can reply to replace a message)
/say
Makes the bot say a message. Logged in say_logs. Trigger message deleted.
/internet search
Headless Chromium screenshots DuckDuckGo results, sends to Gemini for
a casual summary.
/numbairy <encode|decode>
- Dual ban system: both file-based (banned_users.txt) and DB-based, checked at
prefix commands, slash commands, and on_message
- Nightly/dev bot mode: ht! prefix, separate DB, bypasses economy balance checks
- DM fallback: ctx.send and ctx.reply monkeypatched to auto-fallback to DMs
on discord.Forbidden
- AutoShardedBot with custom activity ("{prefix} • hosted by {host}")
- SQLite3 with all DB calls wrapped in asyncio.to_thread
- is_admin() decorator checks hardcoded owner IDs + DB admin_ids config +
guild administrator permission
- Bot devs: 8 hardcoded owner IDs