• Hey! Guest! The 40th (!!!) GMC Jam will take place between February 25th, 12:00 UTC to March 1st 12:00 UTC. Why not join in this very special anniversary jam! Click here to find out more!

GMS 2.3+ Perma death?

Neptune

Member
If I have a perma death mode. People could copy their entire save file (say before fighting a boss) and the just revert to it (if they happened to die) rendering the perma death code useless.
Are there any sneaky ways to prevent the 99%, without server-side saving stuff?

Any info appreciated!
 

kburkhart84

Firehammer Games
I doubt there is an easy way to handle it. The only thing that comes to mind is having multiple files, one that is the save(which looks like a save, which they would likely copy), and another that looks like its an internal file to the game and has nothing to do with saves. That file would store whether the first save is valid(in a list or something), and then if they try to load an invalid save, just delete it and warn them.

The catch here, just like with DRM, is that they will find a way to hack it. So anything beyond trivial measures are probably not worth it. Something trivial will stop 90% of the cheaters, and the last 10% won't be stopped without massive effort, so I'd say to go for the low hanging fruit and leave it at that.
 

Neptune

Member
Yeah, might have to leave this one to rest :L

I'll leave it unsolved for a bit, and we'll see if any clever ideas pop up...
 
The real problem is that it only takes one person to figure out your trick, and then it's absolutely worthless. That 90% that wouldn't bother cheating because they couldn't figure it out? Now they don't have to because that 10% did the hard work for them.

What might I do? Take an MD5 checksum of the save data. Store it in a seemingly unrelated system file. If the game detects an incorrect checksum, silently (this is the important part) log that they cheated. I remember you talking about having some sort of leaderboards as being the reason for doing this. Have 2 sets of leaderboards: one with just legit players, and one that also includes cheaters. When the cheater tries uploading to the leaderboards, divert it to the cheater board. Display the cheater leaderboard highscores with every cheater other than the current user removed. This way it's extremely difficult for the cheater to even tell that there are two separate leaderboards.

One major problem to take into consideration: you've just asked this question on the internet in a public forum. Everyone will see this. Savvy cheaters will look up your previous history on the internet, find every suggestion you've taken on "security"/anti-cheat, and test it out until they find the implementation you used so they can break the system. This makes any of our suggestions beyond pointless. And now? People know that there even are anti-cheat measures in the first place, which is the first step into figuring out how to defeat said anti-cheat. To be at their most effective, these kinds of questions are better-left asked privately, through email or Discord, to individual devs well-versed on this specific topic.
 

kburkhart84

Firehammer Games
The real problem is that it only takes one person to figure out your trick, and then it's absolutely worthless. That 90% that wouldn't bother cheating because they couldn't figure it out? Now they don't have to because that 10% did the hard work for them.

What might I do? Take an MD5 checksum of the save data. Store it in a seemingly unrelated system file. If the game detects an incorrect checksum, silently (this is the important part) log that they cheated. I remember you talking about having some sort of leaderboards as being the reason for doing this. Have 2 sets of leaderboards: one with just legit players, and one that also includes cheaters. When the cheater tries uploading to the leaderboards, divert it to the cheater board. Display the cheater leaderboard highscores with every cheater other than the current user removed. This way it's extremely difficult for the cheater to even tell that there are two separate leaderboards.

One major problem to take into consideration: you've just asked this question on the internet in a public forum. Everyone will see this. Savvy cheaters will look up your previous history on the internet, find every suggestion you've taken on "security"/anti-cheat, and test it out until they find the implementation you used so they can break the system. This makes any of our suggestions beyond pointless. And now? People know that there even are anti-cheat measures in the first place, which is the first step into figuring out how to defeat said anti-cheat. These kinds of questions are better-left asked privately, through email or Discord, to individual devs well-versed on this specific topic.
LOL, you aren't wrong though. I still think its worth doing that minimum effort at the least. There are plenty of people out there that won't cheat if it isn't easy. Sure, some of them will apply the cheat once the 10% figure it out, but some won't. But anti-cheat, just like DRM, is ultimately a losing effort, that is generally not worth it in most cases.
 

Neptune

Member
Isn't GM "sandboxed" or whatever, that won't allow me to hide a file outside of the "default directory"? If I can hide a little file somewhere, then I at least have something to work with...

Basically right now, they'll just copy paste their whole game folder, and it's a viable perma-death loophole.
 
Isn't GM "sandboxed" or whatever, that won't allow me to hide a file outside of the "default directory"? If I can hide a little file somewhere, then I at least have something to work with...

Basically right now, they'll just copy paste their whole game folder, and it's a viable perma-death loophole.
You could disable it. I meant a game file, not a Windows file, lol. Something like a level data file or a dialogue file. Yes, they could just c/p the whole game folder. However, how long would it take them to know to do that if there's separate subdirectory called "saves"? My guess would be an embarrassingly long time.
 

kburkhart84

Firehammer Games
Isn't GM "sandboxed" or whatever, that won't allow me to hide a file outside of the "default directory"? If I can hide a little file somewhere, then I at least have something to work with...

Basically right now, they'll just copy paste their whole game folder, and it's a viable perma-death loophole.
You could disable it. I meant a game file, not a Windows file, lol. Something like a level data file or a dialogue file. Yes, they could just c/p the whole game folder. However, how long would it take them to know to do that if there's separate subdirectory called "saves"? My guess would be an embarrassingly long time.
This is why when I mentioned the two file method, that one be an obvious save file, and the other one look like it is NOT a save file. Note that the one that is not a save file could have a list of valid save files, and then when you load one, you delete the one you loaded off the list, so that even if they attempt to reload it because its in the save file side, you at that point know they cheated and can do whatever you want to counter it(maybe silently like nacho_chicken suggests). You could in fact name the file like options(hell, even save it with your actual options if you wanted). Sure, they can monitor the file and know it changed when you saved a savegame, but they may or may not connect it, which is like I said, a simple thing to get around 90% of cheaters, that won't stop the 10% anyway.

This doesn't require breaking out of the sandbox, since both files can be within the working_directory if you want. But as of a few versions ago you can turn off the sandbox which gives you much more access(though some places they still choose to block regardless).
 

Neptune

Member
Well my save area is already looking what you're describing. So I suppose I'll call it good for now 🤔
 
Top