Repository navigation
Database
El_Pepe edited this page Oct 27, 2026
·
1 revision
FPP uses a database for persistence, session tracking, and network features.
-
File:
plugins/FakePlayerPlugin/data/fpp.db - Use case: Single-server setups
- Pros: No setup required, zero configuration
- Cons: Not shared across servers
- Use case: Multi-server proxy networks
- Pros: Shared bot registry, cross-server placeholders, config sync
- Cons: Requires MySQL server setup
database:
enabled: true
mode: "LOCAL"
mysql-enabled: falseNo additional setup required.
- Create Database:
CREATE DATABASE fpp CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'fpp_user'@'%' IDENTIFIED BY 'secure_password';
GRANT ALL PRIVILEGES ON fpp.* TO 'fpp_user'@'%';
FLUSH PRIVILEGES;- Configure FPP:
database:
enabled: true
mode: "NETWORK" # or "LOCAL" for single-server MySQL
server-id: "survival" # Unique per backend (required for NETWORK mode)
mysql-enabled: true
mysql:
host: "localhost"
port: 3306
database: "fpp"
username: "fpp_user"
password: "secure_password"
use-ssl: false
pool-size: 5
connection-timeout: 30000-
Restart Server
- FPP auto-creates tables on startup
- Schema version: 25 (latest)
-
fpp_sessions- Bot spawn/death session history -
fpp_bot_data- Persistent bot settings (XP, inventory, tasks) -
fpp_rental_auto- per-bot rental auto-renew choice (hours), survives restarts -
fpp_skin_cache- legacy skin cache (dormant - skins are now cached indata/skin-cache.yml)
-
fpp_network_bots- Live bot registry across all backends -
fpp_server_heartbeat- Server liveness tracking (pruned after 60s stale) -
fpp_network_tasks- Cross-server task persistence
When persistence.enabled: true:
- Bot positions saved on shutdown
- Tasks (mine/use/place) restored on restart
- Inventories and XP preserved
- Rolled pool skins preserved (a bot keeps its skin across restarts)
There is no longer a /fpp migrate command. Config-file and database-schema migrations run automatically on startup (ConfigMigrator, DatabaseManager schema versioning), each creating a backup first via BackupManager. Manual SQLite ↔ MySQL export/backup/restore is not currently exposed via any command.
- Verify MySQL credentials and firewall rules
- Ensure MySQL user has CREATE/ALTER permissions (needed for schema migrations)
- Check
use-sslmatches your MySQL configuration
- Ensure no other process is accessing
fpp.db - Check file permissions on
data/folder
- Check logs for specific SQL errors
- Ensure MySQL version is 8.0+ (older versions may lack required features)
- Backup before manual schema changes
- Use connection pooling (default: 5 connections)
- Increase
pool-sizefor high-traffic networks (10-20 recommended) - Set
connection-timeoutto 30000ms or higher for slow networks - Run database operations async (FPP does this by default)