Long story short, I've an app that for seeing a certain result it may take let's say an average of 5 or 6 weeks, maybe even more, when it's achieved I've to check some things so to make sure that the user hasn't modified things from any of the app related files, so he gets the result, although it's possible to do that also during the whole time.

"Punishment" needs to be that the user loses everything done in that particular aspect. Even though they have been caught as cheaters I expect a good amount of cheating users to enter rage mode because of this and maybe even uninstalling my app.

If I give "punishment" before I think there may be some security issues with people, as cheaters would be more likely to start again this time checking how to cheat, bypassing my protection.

When would it be good to give the "punishment"? Or maybe am I overthinking the quantity of people that would do that? If at the end I don't include the "punishment", I would say the difficulty for cheating would be medium. I don't really expect people without computer science studies to be able to cheat even if they wished to without a reference to do so, but for people with those studies I guess it would be a middle effort.

  • 1
    Who loses out when a user cheats, other users or only the cheater? Commented Oct 13, 2018 at 17:05
  • @MichaelHogan, another user would be cheated with the cheating. Commented Oct 13, 2018 at 22:37
  • Make sure to have an undo if you create a way to delete progress. It’s likely that someday legitimate use will be mistakenly handled as cheating & it’ll be necessary to undo the punishment. Commented Oct 16, 2018 at 6:03

3 Answers 3


I can apply your description to games. I’ve seen games with built in protection to detect tampering of files, cheating, etc. I’m not sure exactly how it works, but you might have to update the definition of such protections for every new cheating tactic you find. It might become expensive overtime.

Another example is the CleanMyMac app, which detects cracked versions and offers the user the option to buy the app at 50% off.

Long story short, punishing hackers is fine since you have to maintain and control your community of users (think how multiplayer game communities rot due to cheating players making the game unplayable).

If you want to reduce the user’s rage, you can provide a followup to the punishing decision. Such as outlining what the system detected, or only deleting the progress they made with the cheat (not their entire profile) and ways for them to contact you (for cases where lawful users were punished unjustifiably... such as their accounts being hacked).


Cheating-punishment system is like a law in an app regulation. And I think in your case it's similar to an error-handling mechanism while Low Error Rate and Error Tolerance is an attribute of usability. As the former answers also mentioned some,

  • Users should be taught clearly in every related scenario about the rule and how will they be punished if they cheat. So that they know the consequence for sure and have the expectation in mind.

  • If the punishment is too harsh, what about making it more progressive, e.g., warning and freezing the account for a week or some time at the first time cheating, then clearing everything if cheat again.

  • All related evidence needs to be offered to prove that one user indeed cheated and deserve the punishment.

  • It's required that the modification system is designed well enough to prevent users from cheating. Less cheat, better experience for all the users and better reputation for your app :)


There are different ways to answer this question but as usual most of the time it depends on your design rationale and whether it matches with the user behaviour (keeping in mind that it can change).

The community punishes the users cheating

You could ask whether you should be the one punishing a cheater user since the other users suffer the consequence of someone cheating the system, and therefore you can build in a system for the community to 'punish' that user. The way StackExchange forums work is a good example but it mixes rewards with punishments and moderation.

You punish the users

If you want to be the one 'punishing' the users then you have to make sure that the expectations are very clear so that you don't lose users due to unfair application of the rules, which isn't always easy to make absolutely clear and unambiguous.

The cheating users punish themselves

It could also be that the system is well designed enough that the users cheating 'punish' themselves (knowingly or unknowingly) so that they are discouraged from such behaviour as it prevents them from reaching their objectives. But once again you may need to be explicit about how this is done to make sure people are clear, or you might want to make it less clear so people don't deliberately try to bend the rules.

So as you can see, it is not easy to design around or for human behaviour because there is so much variation you need to take into account, plus the behaviour individually or as a group can also evolve over time.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.