PlayerLogger
PlayerLogger logs player joins, quits, commands, playtime, and online status to a SQLite or MySQL database and provides admin commands for statistics and management.
📖About PlayerLogger
PlayerLogger – Advanced Playtime & Command Logging
PlayerLogger is a lightweight yet powerful Paper plugin that logs player activity to a database, including joins, quits, commands, total playtime, and online status.
Designed for server administrators who need accurate tracking, moderation insights, or statistical data.
Supports SQLite and MySQL out of the box.
What Does PlayerLogger Track?
- Player Join & Quit Events
- Total Playtime (with live session calculation)
- Online / Offline Status
- Command Execution Logs
- First Seen & Last Seen timestamps
- Historical Session Data
All data is stored efficiently in a database with optimized indexing for performance.
Features
⚡ Optimized for Paper 1.21+
💾 SQLite (default) or MySQL support
🔄 Real-time playtime calculation
🌍 Multi-language support (English & German)
📃 Configurable command filtering (e.g., ignore /login, /register)
🧵 Async database handling (non-blocking)
🧹 Automatic offline correction after crashes
📈 Top 10 playtime ranking
✒️ Admin tools for adjusting or deleting data
Commands
/plog stats
/plog stats <player>
/plog top
/plog reload
/plog delete <player>
/plog add <player> <time>
Permissions included for each subcommand.
Permissions
Player Permissions
| Permission | Description |
|---|---|
| playerlogger.stats | Allows viewing own playtime |
| playerlogger.stats.other | Allows viewing other players' playtime |
| playerlogger.top | Allows viewing the top ranking |
Admin Permissions
| Permission | Description |
|---|---|
| playerlogger.Admin.reload | Allows reloading the plugin |
| playerlogger.Admin.delete | Allows deleting stored player data |
| playerlogger.Admin.add | Allows viewing the top ranking |
Database Structure
Tables:
player
sessions
command_logs
- UPSERT support (MySQL + SQLite)
- Indexed queries
- Foreign keys
- Optimized schema for large servers
Configuration
- SQLite or MySQL
- Command logging toggle
- Join/Quit logging toggle
- Command blacklist filter
- Language selection
database:
type: SQLITE # SQLITE or MYSQL
sqlite-file: playerlogger.db
mysql:
host: localhost
port: 3306
database: minecraft
user: minecraft
password: ""
language: de #de or en
language-auto: false
logging:
join-quit: true
commands: true
command-filter:
enabled: true
deny-prefixes:
- "/login"
- "/register"
- "/changepassword"
Use Cases
- Staff activity monitoring
- Player engagement tracking
- Server statistics
- Moderation investigation
- Playtime-based rewards
- Admin auditing
Performance
- Uses a dedicated async database thread
- No main-thread blocking queries
- Safe shutdown handling
- Scales well for medium to large servers
Compatibility
- Paper 1.21+
- Java 21
- Works on Windows, Linux, and hosting providers
- Compatible with MySQL & MariaDB
Why Choose PlayerLogger?
Unlike simple playtime plugins, PlayerLogger provides:
- Command history logging
- Persistent session tracking
- Database-level integrity
- Clean and structured codebase
- Multilingual support
If you're looking for a reliable, database-driven player tracking solution for Paper servers — PlayerLogger delivers.