A fully-featured Pokemon Discord bot with catching, battling, trading, quests, and more! Catch Pokemon that spawn in your server, train them through battles, complete daily quests, and challenge gym leaders.
- Random Pokemon Spawning - Pokemon appear in designated channels with smart spawn timing
- Type
ballto Catch - First person to type it catches the Pokemon - Wild Trainer Encounters - 15% chance a trainer challenges you when catching (battle to claim the Pokemon!)
- Gen 1 Pokemon - All 151 original Pokemon including legendaries
- PvP Battles (
/battle) - Challenge other players with your Pokemon - Trainer Battles (
/trainer) - Train your Pokemon against NPCs (3 per hour, earn XP) - Gym Leaders (
/gym) - Challenge all 8 Kanto Gym Leaders and earn badges - Type Effectiveness - Full Pokemon type chart with STAB bonuses
- Level System - Pokemon gain XP and level up through battles (100 XP per level)
- Turn-Based Combat - Strategic battles with moves, critical hits, and damage calculation
- Daily Quests (
/quests) - Complete 3 daily quests to earn Pokedollars - Pokedex (
/pokedex) - View your collection and progress - Pokemon Stats (
/stats) - Detailed stats including level, XP, win/loss record - Badge Collection (
/badges) - Track your 8 gym badges - Leaderboards (
/leaderboard) - Compete with other trainers in your server
- Pokedollars Currency - Earn from catching, quests, and battles
- Shop (
/shop) - Buy Pokemon packs with different rarities and odds - Packs (
/pack) - Open packs to get multiple Pokemon at once - Trading (
/trade) - Trade Pokemon with other players - Selling (
/sell) - Sell duplicate Pokemon for Pokedollars
- Pokemon Wiki (
/wiki) - View lore, Pokedex entries, and Pokemon information - Multi-Server Support - Each Discord server has independent data
- Admin Controls - Setup spawn channels, force spawns, clear channels
- Setup Instructions - Complete installation and deployment guide
- Invite the bot to your Discord server
- Run
/setup #channelto configure where Pokemon spawn - Start catching! Type
ballwhen a Pokemon appears - Complete quests and battle trainers to level up your Pokemon
- Pokemon spawn randomly in configured channels (3-10 minute intervals)
- Type
ballto catch - first person gets it - 15% chance a wild trainer appears and challenges you
- Win the trainer battle to claim the Pokemon
- Earn Pokedollars for each catch (5-15, more for legendaries)
- Species-Based Levels - All your Charizards share the same level
- 100 XP per Level - No level cap
- Battle Rewards:
- PvP Win: 75 XP
- Trainer Battle Win: 50 XP
- Trainer Battle Loss: 10 XP
- Gym Victory: 100 XP
- Type Effectiveness - Super effective (2x), not very effective (0.5x), immune (0x)
- STAB Bonus - 1.5x damage when move type matches Pokemon type
- 3 new quests every day at midnight
- Quest types: catching, battles, trading, packs, economy, badges
- Rewards: 20-250 Pokedollars depending on difficulty
- Complete all 3 for bonus notification
- Challenge all 8 Kanto Gym Leaders in order
- Each gym has a type specialty (Brock = Rock, Misty = Water, etc.)
- Earn badges to prove your skill
- Re-challenge after beating all 8 gyms
- Basic Pack (₽100) - 3-5 Pokemon, 0.01% shiny chance
- Booster Pack (₽250) - 5-8 Pokemon, better odds
- Premium Pack (₽500) - 8-12 Pokemon, guaranteed rare
- Elite Trainer Pack (₽1000) - 12-18 Pokemon, 3 guaranteed rares
- Master Collection (₽2500) - 20-25 Pokemon, guaranteed shiny or legendaries
- Discord.py - Discord bot framework with slash commands and UI components
- PostgreSQL - Persistent database storage (asyncpg)
- PokeAPI - Pokemon data, stats, types, moves, and sprites
- Python 3.8+ - Core programming language
The bot uses PostgreSQL with the following main tables:
guilds- Server configurations and spawn channelscatches- All Pokemon catches with timestampspokemon_species_stats- Pokemon levels, XP, and battle recordsbattle_history- PvP and trainer battle logsdaily_quests- User quest progress and completionuser_currency- Pokedollar balances and transaction historyuser_packs- Pack inventoryshop_items- Available items and pack configurationsgym_badges- Badge collection trackingtrainer_cooldowns- Trainer battle cooldowns (3 per hour)
This bot is designed to be easily deployed on:
- Render.com (recommended - free tier available)
- Heroku
- Railway
- VPS/Self-hosted
See the Setup Guide for detailed deployment instructions.
For a full list of commands, type /help in Discord. Key commands include:
- Catching:
ball,/pokedex,/stats - Battles:
/battle,/trainer,/gym - Economy:
/shop,/buy,/pack,/balance,/trade,/sell - Progress:
/quests,/badges,/leaderboard,/wiki - Admin:
/setup,/spawn,/clear
Feel free to fork this project and submit pull requests! The bot is actively developed with new features added regularly.
Feel free to use and modify this bot for your own Discord server!
- Created by DoughnutDev
- Built with Claude Code by Anthropic
- Pokemon data from PokeAPI
- Built with discord.py
Questions or issues? Check the Setup Guide or open an issue on GitHub!



