
CraftAudit Overview – Block and Entity Audit Logger & Rollback Tool
CraftAudit is a server-side modification for Minecraft Forge that meticulously tracks all world modifications - both those initiated by players and those caused by environmental factors. The collected data can be accessed directly within the game, enabling spatiotemporal queries, action reversals and object restoration with support for data storage in SQLite or MySQL databases.
Core Functionality
Block Change Monitoring
- Recording player-placed and destroyed blocks (with optional state and NBT data storage)
- Tracking natural destruction from explosions, fluids and gravity effects
Interaction Logging
- Container operations: item placement and removal
- Sign editing with text content preservation
- Ignition events: campfires, candles, TNT, fire
- Redstone component interactions: buttons, levers, doors
- Item frame and painting manipulations
- Bucket usage: filling, emptying, catching
- Kill events: detailed recording of killer, victim, cause, weapon, distance and other parameters
Query Capabilities
- In audit mode, accessing logs for specific coordinates via left or right mouse clicks
- Spatiotemporal searches using the
near
command
Rollback and Recovery Features
- Reversing specific player block placements/destructions within defined radius and timeframe (
rollback
command) - Restoring all destruction events (player and environment triggered) or filtered by type via
restore
- Entity revival: respawning non-player entities at logged positions
- Undoing recent rollback/restore operations with
undo
command
Data Storage System
- SQLite (default) and MySQL database support
- Configurable file locations and MySQL connection parameters
Additional Features
- Localized names for items and blocks
- Audit mode excludes auditor actions from logging to prevent recursion
Commands and Options
All /craftaudit
commands have a /ca
alias. Operator level 2 permissions required for all commands.
Basic Commands
/craftaudit status
- display database and mode status/craftaudit inspect
(or/ca i
) - toggle audit mode/craftaudit log [page]
- view interaction logs for last inspected block/craftaudit blocklog [page]
- view block change logs for last inspected block
Area Queries
/craftaudit near <radius> <time> [page]
- search records near player by radius and timeTime format: Ns/Nm/Nh/Nd (e.g., 30m, 12h, 5d)
Rollback and Recovery Functions
/craftaudit rollback <player> <time> [radius=10]
- revert player block placements/destructions/craftaudit restore <time> [radius=10] [type]
- restore various event types:- No type specified - all destructions
break
- only player destructionsnatural
ornatural_break
- only environmental destructionsexplosion
/fluid
/gravity
- destructions from specific causeskill
orkill:<entity_id>
- revival of killed entities
/craftaudit undo
- undo last rollback/restore operation/craftaudit purge <time>
- remove records older than specified time
Time Format Examples
30s, 15m, 12h, 7d
Installation
- Place mod file in your Forge server's
mods
folder - Requires Java 17 (for Minecraft versions 1.19+)
- Configuration file generates on first run
Database Configuration
- SQLite: default location
gameDir/craftaudit/craftaudit.db
- MySQL: configurable connection parameters including host, port, database name, user, password, SSL settings
Data Usage Policy
- Only essential event information, coordinates and object identifiers are stored
- BlockEntity NBT is stored compressed, size-limited for supported block types
- Regular use of
purge
recommended for old record cleanup
Build Requirements
- Requires JDK 17 and Forge MDK
- Import Gradle project
- Sync dependencies
- Build JAR file
Development Participation
- Bug reports, feature requests and pull requests welcomed
Licensing
Licensed under Creative Commons Attribution 4.0 International (CC BY 4.0)