BirdBot is an automated player for BombParty on jklm.fun, designed to help players improve their skills through practice and analysis.
- Practice: Train against a consistent, high-performance opponent
- Progress Tracking: Keep track of your records
- Research Tools: Access word research tools for specific categories
- Custom Game Modes: Experience unique game modes beyond classic BombParty
-
Clone the repository
git clone <repository_url> birdbot cd birdbot
-
Configure Environment
cp .env.example .env # Edit .env with your configuration -
Launch with Docker
./prod.sh
| Component | Technology |
|---|---|
| Database | PostgreSQL |
| API | Fastify (TypeScript) + Prisma |
| Website | Next.js (TypeScript) |
| Bot | TypeScript + Socket.IO + Rust |
| Runtime | Docker + Node.js 23.7 (Alpine) |
For development:
- Docker
- Node.js v23.7+
- Rust 1.86+
For production:
- Docker
- Start Development Database (Required)
./launch-open-db.sh- Run Individual Modules
To run the API module:
# Go to the API directory
cd api
# Create environment file (Configure as you wish)
cp .env.example .env
# Install dependencies locally
npm install
# Start the API with nodemon in watch mode
npm run devTo run the Website module:
# Go to the website directory
cd website
# Create environment file (Configure as you wish)
cp .env.example .env
# Install dependencies locally
npm install
# Start the Next.js website in development mode
npm run devTo run the Bot module:
# Go to the bot directory
cd bot
# Create environment file (Configure as you wish)
cp .env.example .env
# Build the BirdBot powerhouse for dictionary metadata generation
./build_birdbot_powerhouse.sh
# Create the bot starting script
# index.unstable.ts is gitignored to prevent versioning unstable bot starting scripts in development
cp src/index.ts src/index.unstable.ts
# Run the unstable bot starting script
npm run uNote that, contrary to the API and website modules, you must fully restart the script everytime you make a change to the code.
admins.txt: one jklmauth.idper line for admin commands- Optional
JKLM_AUTH_TOKEN/JKLM_AUTH_USERNAMEfor a logged-in jklm account (guest hosting works without them) API_URL/API_KEYmust match the API service used for profiles, credits, VIP, milestones, and moderation- Optional moderation toggles and definitions socket overrides are documented in
bot/.env.example - Parity contract and intentional divergences:
bot/BBV7_PARITY.md
The older Croco.games bot archive lives under archive/BBV7 for historical reference only.
/reconnect— reconnect the current room sockets/health— room + API status/givecredits,/givexp,/setxp,/suppress,/getid,/creatorid/broadcast,/rooms,/destroyallrooms,/diag
Destructive BBV7 reload/cache-wipe and profile-file delete flows are intentionally not ported.
Made with ❤️ for the BombParty community