Complete admin automation system for COD and Battlefield servers
| Supported Games: | Call of Duty series, Battlefield series, Urban Terror |
| Language: | Python 2.7 (legacy) or Python 3.x (BigBrotherBot 2.0+) |
| Database: | MySQL or SQLite for stats/bans/warnings |
| Communication: | RCON protocol to game server |
| Web Interface: | Optional XLRSTATS/ECHELON integration |
| Latest Version: | B3 1.12+ or BigBrotherBot 2.0+ |
| Website: | bigbrotherbot.net |
B3 (Big Brother Bot) is a cross-platform, cross-game administration tool for game servers. It provides automated player warnings, kick/ban management, statistics tracking, and extensive customization through plugins.
| Game Series | Specific Titles | Parser |
|---|---|---|
| Call of Duty | COD2, COD4, MW2, MW3, Black Ops | cod, cod4, cod7, etc. |
| Battlefield | BF2, BF2142, BF3, BF4, BFH | bf3, bf4, bfh |
| Urban Terror | Urban Terror 4.x | iourt42 |
| Smokin' Guns | Smokin' Guns | smg |
# Install Python 3 and pip
sudo apt-get update
sudo apt-get install python3 python3-pip git
# Install B3 via pip (BigBrotherBot 2.0+)
pip3 install bigbrotherbot
# Or install from GitHub (development version)
git clone https://github.com/BigBrotherBot/big-brother-bot.git
cd big-brother-bot
pip3 install -r requirements.txt
python3 setup.py install
# Install Python 2.7 (for older B3 1.x)
sudo apt-get install python2.7 python-pip
# Download B3 1.x
wget https://github.com/BigBrotherBot/big-brother-bot/archive/v1.12.0.tar.gz
tar -xzf v1.12.0.tar.gz
cd big-brother-bot-1.12.0
# Install dependencies
pip install -r requirements.txt
# Download and install Python 3.9+ from python.org
# Ensure "Add Python to PATH" is checked during installation
# Open Command Prompt and install B3
pip install bigbrotherbot
# Or download pre-built B3 package from bigbrotherbot.net
# Extract to C:\B3\
b3/
├── b3.exe (Windows) or b3_run.py (Linux)
├── b3.xml (main configuration)
├── conf/
│ ├── b3.xml (main config)
│ ├── plugin_admin.ini (admin plugin config)
│ ├── plugin_spamcontrol.ini
│ └── ... (other plugin configs)
├── extplugins/
│ └── (custom plugins)
└── logs/
└── b3.log
# Login to MySQL
mysql -u root -p
# Create database
CREATE DATABASE b3 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
# Create user
CREATE USER 'b3'@'localhost' IDENTIFIED BY 'your_secure_password';
GRANT ALL PRIVILEGES ON b3.* TO 'b3'@'localhost';
FLUSH PRIVILEGES;
# B3 will auto-create tables on first run
# Or manually import schema:
mysql -u b3 -p b3 < sql/b3.sql
# Key tables created:
# - clients (player records)
# - penalties (bans, warnings, kicks)
# - aliases (player name history)
# - ipaliases (IP address tracking)
# SQLite doesn't require separate installation
# B3 will create b3.db file automatically
# Database file location: b3/b3.db
# No manual setup required
# Just configure b3.xml to use SQLite
<configuration>
<settings name="settings">
<set name="database">mysql://b3:your_password@localhost/b3</set>
</settings>
</configuration>
<configuration>
<settings name="settings">
<set name="database">sqlite://b3/b3.db</set>
</settings>
</configuration>
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- Settings Section -->
<settings name="settings">
<!-- Database connection -->
<set name="database">mysql://b3:password@localhost/b3</set>
<!-- Parser (game type) -->
<set name="parser">cod4</set>
<!-- Timezone -->
<set name="time_zone">America/New_York</set>
<!-- Logging level (0-22, higher = more verbose) -->
<set name="log_level">9</set>
<!-- Log file -->
<set name="logfile">b3.log</set>
</settings>
<!-- B3 Server Section -->
<settings name="server">
<!-- Public IP and Port -->
<set name="public_ip">123.456.789.0</set>
<set name="port">28960</set>
<!-- RCON Configuration -->
<set name="rcon_ip">127.0.0.1</set>
<set name="rcon_port">28960</set>
<set name="rcon_password">your_rcon_password</set>
<!-- Game log file location -->
<set name="game_log">games_mp.log</set>
</settings>
<!-- Plugins Section -->
<plugins>
<plugin name="admin" config="@conf/plugin_admin.ini"/>
<plugin name="adv" config="@conf/plugin_adv.xml"/>
<plugin name="spamcontrol" config="@conf/plugin_spamcontrol.ini"/>
<plugin name="status" config="@conf/plugin_status.ini"/>
<plugin name="welcome" config="@conf/plugin_welcome.ini"/>
</plugins>
</configuration>
| Game | Parser Value |
|---|---|
| Call of Duty 4 | cod4 |
| Call of Duty 7 (Black Ops) | cod7 |
| Battlefield 3 | bf3 |
| Battlefield 4 | bf4 |
| Urban Terror 4.2 | iourt42 |
Core admin commands: kick, ban, warn, tempban
; plugin_admin.ini
[settings]
; Minimum level for kick command
command_kick_level: 40
; Minimum level for ban command
command_ban_level: 60
; Minimum level for tempban command
command_tempban_level: 40
[commands]
kick: 40
ban: 60
tempban: 40
unban: 60
Prevents chat spam and flooding
; plugin_spamcontrol.ini
[settings]
; Maximum messages per timeframe
max_messages: 5
; Timeframe in seconds
timeframe: 10
; Action: warn, kick, ban
action: warn
Welcomes players on join, shows rules
; plugin_welcome.ini
[settings]
; Welcome message
welcome_msg: ^2Welcome ^7%s^2! Visit our website at example.com
; Show player count
show_playercount: yes
; Show server rules
newb_connections: 15
Player info and statistics
; Commands: !status, !xlrstats
; Shows player level, kills, deaths, skill
# Download plugin (example: xlrstats)
cd b3/extplugins
wget https://example.com/xlrstats.py
# Add to b3.xml
<plugin name="xlrstats" config="@b3/extplugins/conf/xlrstats.ini"/>
# Create plugin config
cp xlrstats.ini.sample xlrstats.ini
nano xlrstats.ini
# Restart B3
| Level | Title | Permissions |
|---|---|---|
| 0 | User | No permissions |
| 1 | Regular | Basic commands (!help, !rules) |
| 20 | Moderator | !warn, !kick (lower levels) |
| 40 | Admin | !kick, !tempban, !ban (temporary) |
| 60 | Full Admin | !ban (permanent), !unban |
| 80 | Senior Admin | !maprotate, !maprestart, !lookup |
| 100 | Super Admin | All commands, !putgroup, !leveltest |
# Add admin level 40 (Admin)
!putgroup PlayerName admin
# Add admin level 60 (Full Admin)
!putgroup PlayerName fulladmin
# Add admin level 100 (Super Admin)
!putgroup PlayerName superadmin
# Remove admin
!putgroup PlayerName user
# Direct database method
mysql -u b3 -p
USE b3;
# Find player's ID
SELECT id, name FROM clients WHERE name LIKE '%PlayerName%';
# Update player group (level 60 = Full Admin)
UPDATE clients SET group_bits = 60 WHERE id = PLAYER_ID;
# Player management
!kick PlayerName [reason]
!ban PlayerName [reason]
!tempban PlayerName 1h [reason] # 1 hour temp ban
!unban PlayerName
# Warnings
!warn PlayerName [reason]
!warntest PlayerName # Check warn count
# Server management
!maprotate # Change to next map
!maprestart # Restart current map
!map de_dust2 # Change to specific map
# Information
!help # Show available commands
!leveltest PlayerName # Check player's admin level
!lookup PlayerName # Player info and history
Advanced statistics tracking plugin
# Install XLRstats plugin
cd b3/extplugins
# Download xlrstats.py and xlrstats.ini
# Add to b3.xml
<plugin name="xlrstats" config="@b3/extplugins/conf/xlrstats.ini"/>
# Commands:
!xlrstats # Show your stats
!xlrtopstats # Show top players
!xlrstats PlayerName # Show another player's stats
Web-based B3 management interface
<!-- COD4 b3.xml example -->
<set name="parser">cod4</set>
<set name="rcon_port">28960</set>
<set name="game_log">/path/to/cod4/main/games_mp.log</set>
# Enable log file in COD4 server.cfg:
set g_log "games_mp.log"
set g_logsync "1" # Real-time logging
set rcon_password "your_rcon_password"
<!-- BF4 b3.xml example -->
<set name="parser">bf4</set>
<set name="rcon_port">47200</set>
# BF4 uses different RCON protocol
# Requires BF4 parser-specific settings
<!-- Urban Terror b3.xml example -->
<set name="parser">iourt42</set>
<set name="rcon_port">27960</set>
<set name="game_log">/path/to/urbanterror/q3ut4/games.log</set>
# Check RCON password in b3.xml matches server
# Test RCON manually:
# COD4 example:
rcon_ip:port password status
# Verify game log file path is correct
tail -f /path/to/games_mp.log
# Check B3 log for connection errors
tail -f b3/logs/b3.log | grep ERROR
# MySQL connection test
mysql -h 127.0.0.1 -u b3 -p b3
# Check database URL format in b3.xml:
mysql://username:password@host/database
# or
sqlite://path/to/b3.db
# Verify MySQL is running
systemctl status mysql