A slow connection makes the game send a purchase twice and charge twice
When an answer gets lost, the game asks again, and the server cannot tell a retry from a second purchase. Here is how every request carries a mark, what the server remembers about it, and why that memory has to be saved with the player.
Why this works
When an answer is lost, the sender cannot know whether the action happened, so it asks again. Giving each intended action one fixed label, and replying to a repeat with the first answer, makes asking again harmless instead of doubling the charge.
When not to use it
Unnecessary for actions that give the same result however often they run, like setting a name to a value. It also does not help if the player really means to buy two swords; that must be two separate taps with two labels.
In the full entry
- What to build, step by step
- Starting values and the reason for each
- 3 common mistakes and the fix
- A diagram of every state
- 14 lines of example code with 4 checks that pass
- How your AI shows you that it works
Say this to your AI
Use the Spielerando entry "A slow connection makes the game send a purchase twice and charge twice" (read_entry retried-request-does-not-pay-twice) in my game. Build it step by step, and show me how you checked that it works.Or skip this and connect the MCP: your AI then finds all of this by itself.Connect the MCP