mirror of
https://github.com/Drop-OSS/drop.git
synced 2026-07-24 20:05:39 -04:00
[GH-ISSUE #274] FR: Achievement System #144
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @UnholyVision on GitHub (Oct 31, 2025).
Original GitHub issue: https://github.com/Drop-OSS/drop/issues/274
A system similar to RetroAchievements in Retroarch, this system looks for memory calls. enabling administrators to generate their own achievements by retrieving points from memory. Next, a way to share these accomplishments with other Drop users by exporting them in a file format such as JSON format. Along with a import system. This would allow for a local accomplishment system that allows Drop users to share their creations that may be included in the official version through community sharing or just downloaded and imported into their own local instances of Drop. Images would not be included in this. Unless properly licensed images were created, otherwise the images are user-sourced on their own instance.
This would necessitate lower level readings of the system's memory via the client as well as a server backend and is not a high priority request. But it would be a great complement to Drop. Making it even more like Steam, Epic, or GOG with an achievement system, but local.
@riku55 commented on GitHub (Nov 7, 2025):
I think the way of reading memory would only work for emulated contents. For (older) consoles, there are mostly few to no options to alter the way the game is putting content into RAM, since hardware and software are almost always identical,making it possible to use it for achievement logic.
For PC gaming, just using different hardware or graphics settings can cause that to completely change.
I'd love to have some way of having an independent achievement system for PC gaming though. Maybe, if drop had some achievement api of its own, the community could create mods for games to support it. Obviously a lot of work though, both backend and frontend wise.
@UnholyVision commented on GitHub (Nov 9, 2025):
I was considering something similar to how Cheat Engine or other tools read memory and processes. A user can utilize the same cheat file or whatever it's called, resulting in the same outcome. This would, of course, require delving into low-level ring processes and monitoring the game's operations. I envisioned that a similar approach could be applied to achievements. I understand that emulation and non-emulation would differ in this context. However, couldn't you identify specific key values and link them to achievements? I've never ran into a cheat list or whatever it's referred as that doesn't work on other PC's as I've carried one across two different machines once. To have the same key values carry over. I didn't setup these cheats or make them myself so I can't comment on what was done.
I've only used Cheat Engine a couple of times in my life. Once to make a game more challenging and another time to replay a game I've already completed about ten times in a different way. So, if I'm completely off base, I suppose an API, as you mentioned, could be the answer. But that would imply modding a game to integrate it into other games. Which would make a much higher barrier to entry for the community I would imagine. Not to say making the cheats and finding the results needed is easy, but from my understanding Cheat-Engine makes it easier to find those said values. Verse modding a game in whole. Which sadly would make this harder for some to setup and even share.
@D3B453R commented on GitHub (Nov 20, 2025):
I don't know how the GoG-API works but that would also be a great feature if possible. Every time the game requests an achievement unlock via the GoG-/Galaxy-API the Request gets recognized via the Drop-Launcher/Client 🤔
@DecDuck commented on GitHub (Nov 21, 2025):
We're planning several integrations into the existing APIs that games use to register achievements, like the Steamworks library or GOG Galaxy (or whatever their platform is called). That's probably the route to go on this issue, but definitely planned.
@Elite-Alien commented on GitHub (Nov 23, 2025):
Nice I made a FR a while ago for GOG features using Comet here: https://github.com/Drop-OSS/drop-app/issues/142
Though good to see something like it is at least confirmed. Not sure if you will piggyback off Comet. Though good to see a form of answer to this.
@DecDuck commented on GitHub (Nov 23, 2025):
We'd probably use the same protocol files as them, so we don't have to do that reverse engineering, but we're unlikely to use their core directly because it's designed to be standalone.
FR: Achievement Systemto [GH-ISSUE #274] FR: Achievement System@BitSneezer commented on GitHub (Nov 20, 2025):
I don't know how the GoG-API works but that would also be a great feature if possible. Every time the game requests an achievement unlock via the GoG-/Galaxy-API the Request gets recognized via the Drop-Launcher/Client 🤔
@Elite-Alien commented on GitHub (Mar 13, 2026):
I am not sure how you feel about this, but I have been playing around with GBE/GSE stuff lately. I even created my own software to generate the stuff and did my first ever project in Rust (which was annoying, as I don't code much and well you you know Rust being not set in stone so headaches. Anyway...). That let's me grab the achievement data from within a game I put into drop even and monitor the progress and keep track of progress even if a game is removed later.
https://github.com/Elite-Alien/Achievement-Viewer/blob/main/screenshots/aw2.png?raw=true (I can edit my post and remove this and mentions of this if it's a problem. It's basically a stop gap to use for me until maybe Drop gets something similar maybe.)
I've found that a good handful of games you buy from Itch.io, EGS, GOG, and a few other places can sometimes be forced to use the Steam achievements. Not always but sometimes, it's a coin flip honestly, and some games even without a Steamworks folder can have them, so long as the game is making the calls for the Steam achievements.
All that being said, it's a grayish area, but would and could that be a possibility to have drop track the achievements.json files if you import a game with them in it? or is this like something you would prefer for the future when plugins are a thing?
Because how I could envision it would be like it loads what is already there and pulls the images that are already there. Then track the progress through the JSON's that already exist. Then Drop could just have a achievements like page for each version on the Library page and/or store page. While giving the user a score system similar to what I did with counting the amount of achievements you obtained. Allowing the users to keep everything in Drop, specially for those with say kids that don't want them on like Steam or other stores. Anyway...
@DecDuck commented on GitHub (Mar 20, 2026):
I'd prefer achievements are imported with the game, through the whole metadata import system. Eventually you'll be able to mix and match metadata imports, to get it just right, and that'd fit into this.
Achievements could be pulled from local files, sure, but also Steam or GOG if they have APIs available.
@Elite-Alien commented on GitHub (Mar 20, 2026):
I mean, if you're building that system to capture the API calls and have the achievements local sure. Though, if a game doesn't functionally work with a system that has the ability to unlock them. You then just have a page with achievements that do nothing that was pulled from the metadata provider. Stack that with the fact maybe one version has achievements and another doesn't and you have a global achievement page that does nothing. Plus now you have confusion for the users as to why achievements are not working for that game in another way.
So like if the user ties an account and the game is in there Steam/GOG/Epic account? Because if not the achievements wouldn't work for everyone. And you would be having to deal with accounts for services, tapping into Galaxy, Steam, Epic, and all these services through account systems. That sounds more like a headache than having something local as you now need API keys and other things to get that going.
Anyway... I just like the GSE/GBE approach I have right now for the time being. As it lets anyone mess around with the achievements. Regardless of having it in their account or not on another service. Since I am not sharing my games with everyone and only family and a close friend. No explaining to them that they need to link an account or anything. Just press the keybind and off to the races.