The gap
Achievements look simple until players lose them: a crash during saving, a renamed id after an update, an unlock made offline that never reaches Steam. Most free addons write one plain file and leave the platform part to you.
Game dev tools
Achievements for Godot 4 that players never lose: safe versioned saves, a polished popup and screen, stats that unlock by themselves, and Steam sync with an offline queue.
Coming soon
Not published on its store yet, so there is no buy or download link. PN Scripts does not take payment for it here.
The gap
Achievements look simple until players lose them: a crash during saving, a renamed id after an update, an unlock made offline that never reaches Steam. Most free addons write one plain file and leave the platform part to you.
What it is
Laurelkeep saves achievements safely and recovers them, carries them through game updates, mirrors them to Steam or your own backend through a saved offline queue, and gives you the popup, the screen and an editor dock to define and test them.
How you use it
Achievements that players never lose, with Steam sync and a finished UI, in an afternoon instead of a week.
A tested achievements layer for Godot 4 developers who ship on Steam or their own platform and want every unlock to survive crashes, updates and lost connections.
Use it when
Built for
Achievements live in one resource that you edit in the Laurelkeep dock and the Inspector. Unlock with one line, add progress that clamps to the target and never goes down, or name a stat and let Laurelkeep unlock the achievement when the stat reaches its goal. Signals tell your game what happened.
Every save carries a format version, your data version and a checksum, goes through a temporary file that is read back, and keeps a backup. A damaged file is set aside and the newest good copy is loaded. Removed achievements keep their records, renamed ones keep their progress, and migration steps upgrade old saves.
With GodotSteam in the project, Laurelkeep reads what the player already unlocked, mirrors unlocks, progress and stats, and sends stat changes at most once a minute. Without a connection, changes wait in a queue saved with the progress and go out later; a name Steam does not know is reported, not dropped. A small class connects your own server.
The unlock popup queues notices, never takes focus or taps, keeps running while the game is paused and follows reduced motion. The achievements screen shows completion, filters, progress bars and unlock dates with hidden ones masked. The editor dock checks your set, exports CSV and JSON, and unlocks or resets achievements while the game runs.
1 of 6
| Platform or runtime | Supported versions | Tested up to |
|---|---|---|
| Godot Engine | 4.5 or newer | 4.7.1 |
| GodotSteam (optional) | 4.x or newer | mock of the 4.x API |
It is finished and tested. It is not on sale yet; this page will say where to get it when it is.
Coming soon
Not published on its store yet, so there is no buy or download link. PN Scripts does not take payment for it here.