Someone just saved over a working config. Now what?
Every host knows the ticket: "my server broke after I edited server.properties, can you fix it?" Without a full backup from before the edit, that config is gone.
File Snapshots captures the previous version of a file every time it is saved in the panel editor or deleted through the file manager - automatically, invisibly, with zero user action. Users see their file's history right on the editor page and restore any version in one click.
What users get
What admins get
How it works (the clean way)
No core files are patched and no panel controller is overwritten. The extension wraps the panel's Wings file repository through Laravel's service container, so every panel code path that writes or deletes a file is covered - and panel updates don't break it. Snapshots are stored gzip-compressed on the panel machine (
Permissions & safety
Heads-up: SFTP transfers and direct uploads bypass the panel by design and cannot be captured. This is version history for panel edits, not a replacement for full backups.
Installation
Running the panel in Docker? Restart the panel container after installing so the database migrations apply (standard Blueprint-in-Docker behavior).
Requires the free Blueprint extension framework (blueprintframe.work). Game-agnostic - works with any egg.
Every host knows the ticket: "my server broke after I edited server.properties, can you fix it?" Without a full backup from before the edit, that config is gone.
File Snapshots captures the previous version of a file every time it is saved in the panel editor or deleted through the file manager - automatically, invisibly, with zero user action. Users see their file's history right on the editor page and restore any version in one click.
What users get
- A history strip on the file editor: every saved version with timestamp, size and author
- A File History page per server listing all captured versions, including files that were deleted
- View any text snapshot in a dialog before restoring it
- One-click restore - the current contents are snapshotted first, so a restore can always be undone
- Search across snapshots by file path
What admins get
- Master enable/disable switch
- Max file size to capture (default 1 MB), versions kept per file (default 10), retention window in days (default 30, auto-pruned daily)
- Ignore list by file extension (logs, archives, jars... preconfigured)
- Storage stats: snapshot count, servers covered, compressed disk usage
How it works (the clean way)
No core files are patched and no panel controller is overwritten. The extension wraps the panel's Wings file repository through Laravel's service container, so every panel code path that writes or deletes a file is covered - and panel updates don't break it. Snapshots are stored gzip-compressed on the panel machine (
storage/app/filesnapshots); they never consume game server disk or backup slots.Permissions & safety
- Listing requires
file.read, viewing contentsfile.read-content, restoringfile.update- fully integrated with Pterodactyl subuser permissions - Restores are written to the server activity log
- Snapshot capture is best-effort by design: a Wings hiccup can never block or slow down a user's save
- Folder deletions capture at most 10 contained files to keep daemon traffic bounded
Heads-up: SFTP transfers and direct uploads bypass the panel by design and cannot be captured. This is version history for panel edits, not a replacement for full backups.
Installation
Code:
blueprint -install filesnapshots
Requires the free Blueprint extension framework (blueprintframe.work). Game-agnostic - works with any egg.
