Logic problem: Cheque system and 'cheaters'

Lets say a game has a cheque system - every 5 minutes the player is rewarded with a cheque which they must ‘cash out’ in order to claim. The server will stop rewarding cash until it knows the player has confirmed the cheque:

This system at face value stops people earning cash whilst inactive; if they leave the game for longer than 5 minutes, then they will not receive any more cash until they confirm their current cheque.

Here’s the problem: players have the ability to use programs such as ‘Auto Clicker’ and ‘Ghost Control’: Auto Clicker allows the player to confirm the cheque whilst away, while ‘Ghost Control’ allows them to move about and copy behaviours normal players would exhibit.

To counter the problem, you generate a random code which the player must then ‘submit’ to cash out the cheque. The problem is though, this ‘code’ becomes repetitive after some time, and your ‘good’ players begin to get annoyed:

The challenge:
How do you go about effectively separating the cheaters (i.e people with Auto Click, Ghost Mode, etc) from the non-cheaters, so you only have to display the code verification to those that are cheating?

Best solutions currently:

  1. Detecting unusual behaviours, such as not moving or chatting within a time-frame
  2. Introducing a ‘hunger’ system, which if empty after a certain amount of time prompts the code

You don’t. I can think of several games with these “ghost” players around, Runescape and Wizard101 come to mind. It’s really not worth the energy past your “Cash Out” button. The code is an awful idea because it punishes your legitimate players, and it almost feels punishing.


If you have players using this method over night, every night, your leaderboard systems become pointless. So yes, it is worth the energy.

1 Like

Exactly, that’s why we need to distinguish between the two.

Sounds to me the issue is that your system incentivizes idling. Try thinking of a better system, such as the money you get in the checks being proportionate to your gameplay such that idling/walking around nets you nothing.


That’s practically impossible though.

If anything it does the opposite - without this system even more players would be idle

The only way to do it is like you already have implemented, but everyone else will get sick of it.

1 Like

It’s very difficult. You’re gonna need a captcha type system. The problem about this is you’re gonna need to make it easy for humans to read but hard to automated machines to read.

It’s virtually impossible and a _ cash per _ is a difficult thing to do. My only way to combat the idle player is check if they do any userinput. If the user has not input in for 5 seconds it will count you as idle.

You could build up a count of ‘unusual’ behaviors, then once the players hit a certain limit, display the message. This is one of my ideas, but not fully developed.

You could possibly do some basic math questions like

“What’s 1+3”

It’s quick and I doubt any players will take the time to make a bot to figure out the question.

And if anyone gets frustrated it’s because they don’t know simple maths.

What do you define as unusual though? As that could be the norm for someone.

I’m not worried about people getting past the code, I’m more focused on who to display the code to.

It’s a pointless effort. User input can be FULLY mirrored by (exploit/external) scripts on the client, too. Your current system, as Kamf said, incentivices idling, which is the underlying issue that makes you think you need the code/captcha style system.


0 movement, no chatting, etc - but as @ANSI_C mentioned, these can all be mirrored by clever cheaters.

That’s probably the best method. Use image labels not text labels as the client can read text labels.

1 Like

Even better ;o

On top of that if a cheater takes the step to make an AI to automatically read the answers make the text change colors or size overtime.

Unless you’re patching words together and even then have some obscure way of getting a random image and having the server know the right answer to it, this won’t work. Letters/words can easily be linked to the Image id, too. Speaking a bit more on the exploiting side and a bit less on simple automated things like autoclick.

1 Like