A comprehensive Old School RuneScape (OSRS) bingo tracking system that integrates:
- ๐ฏ Bingo Board Management - Track team progress on custom bingo tiles
- ๐ฑ Discord Webhooks - Real-time notifications for drops and completions
- ๐ Wise Old Man Integration - Automatic experience and achievement tracking
- ๐ฅ Team Competition - Multi-team leaderboards and statistics
- ๐ฎ RuneLite Plugin - In-game drop detection and tile tracking
- Create custom bingo boards with configurable tiles
- Track tile completion per team
- Support for item drops, experience goals, boss kills, and more
- Proof submission with image URLs
- Real-time board updates
- Automatic drop notifications with rich embeds
- Tile completion announcements
- Team leaderboard updates
- Configurable webhook URLs for different channels
- Automatic tracking of experience gains
- Boss kill count monitoring
- Achievement detection
- Competition tracking
- Scheduled player updates
- In-game drop detection
- Automatic screenshot capture
- Configurable drop filters (rarity, value)
- Whitelist/blacklist support
- Direct integration with backend server
- Multi-team competition support
- Team-specific tracking and leaderboards
- Individual player contributions
- Points system with configurable values
BINGOTRACKER/
โโโ backend/ # Python Flask API server
โ โโโ enhanced_server.py # Main server with all integrations
โ โโโ discord_webhook.py # Discord webhook handler
โ โโโ wise_old_man.py # Wise Old Man API client
โ โโโ requirements.txt # Python dependencies
โ โโโ .env.example # Environment configuration template
โ
โโโ frontend/ # React web application
โ โโโ src/
โ โ โโโ components/ # React components
โ โ โ โโโ Dashboard.js # Main dashboard with stats
โ โ โ โโโ BoardView.js # Bingo board display
โ โ โ โโโ BoardTile.js # Individual tile component
โ โ โ โโโ Teams.js # Team management
โ โ โโโ routes/
โ โ โโโ bingo.jsx # Bingo board route
โ โโโ package.json # Node dependencies
โ โโโ .env.example # Frontend configuration
โ
โโโ runelite-plugin/ # RuneLite plugin for OSRS
โ โโโ src/main/java/com/bingotracker/
โ โ โโโ BingoTrackerPlugin.java # Main plugin class
โ โ โโโ BingoTrackerConfig.java # Plugin configuration
โ โโโ build.gradle # Gradle build file
โ โโโ runelite-plugin.properties # Plugin metadata
โ
โโโ docs/ # Documentation
โโโ SETUP.md # Setup instructions
โโโ API.md # API documentation
โโโ CONFIGURATION.md # Configuration guide
- Python 3.8+
- Node.js 14+
- Java 11+ (for RuneLite plugin)
- MongoDB (optional, for persistent storage)
- Navigate to the backend directory:
cd backend- Install Python dependencies:
pip install -r requirements.txt- Copy and configure environment variables:
cp .env.example .env
# Edit .env with your Discord webhooks, WOM group ID, etc.- Run the server:
python enhanced_server.pyThe server will start on http://localhost:5000
- Navigate to the frontend directory:
cd frontend- Install Node dependencies:
npm install- Copy and configure environment variables:
cp .env.example .env
# Edit .env with your API URL- Start the development server:
npm startThe frontend will open at http://localhost:3000
- Navigate to the plugin directory:
cd runelite-plugin- Build the plugin:
./gradlew build-
Install in RuneLite:
- Open RuneLite
- Go to Plugin Hub or External Plugins
- Load the built JAR file from
build/libs/
-
Configure the plugin:
- Set your server URL
- Enter your board name and team name
- Add Discord webhook URLs (optional)
- Configure drop filters
Create Discord webhooks for your channels:
- Go to Server Settings โ Integrations โ Webhooks
- Create New Webhook
- Copy the webhook URL
- Add to
.envfile in backend
- Create a group on Wise Old Man
- Add your clan members to the group
- Copy your group ID from the URL
- Add to
.envfile:WOM_GROUP_ID=your_id
For clan events functionality:
- Create a Google Sheets API key
- Create a public spreadsheet with event data
- Add credentials to
.envfile
POST /api/boards- Create a new bingo boardGET /api/boards/<name>- Get board dataPUT /api/boards/<name>/tiles/<row>/<col>- Update tile
POST /api/drops- Record a player dropGET /api/stats/drops- Get drop statistics
GET /api/players/<username>/stats- Get player stats from WOMGET /api/players/<username>/gains- Get player gainsPOST /api/players/<username>/update- Update player stats
GET /api/leaderboard/<board_name>- Get team leaderboard
See docs/API.md for full API documentation.
- Bingo board UI components
- Tile management system
- Team tracking interface
- React component library
- Drop detection logic
- Discord webhook formatting
- Screenshot capture
- Rarity/value filtering
- Event management framework
- Google Sheets connectivity
- Competition tracking
- Member roster management
- PattyRich - Bingo board UI and tracking system
- BossHuso - Discord drop notification framework
- cmsu224 - Clan events and competition management
- Wise Old Man - Player statistics API
- RuneLite - OSRS client and plugin framework