For one of my previous projects, I had to set a debounce in the player’s game data every time I loaded or saved the player’s data, so that they couldn’t leave and immediately rejoin the server to duplicate an item (trading an item to say, an alt, and then immediately rejoining after trading the item [this was done and worked with Mining Simulator before they patched it with this method]). iirc, people that would duplicate items would have a program that allowed them to open 2+ Roblox clients at once, making their rejoin very fast. Because of this, when the player rejoined, chances are that the server would get the data from before the trade because the :SetAsync() wouldn’t have taken effect yet.
Is there a cleaner, better way to combat this? Or should I stick with my previous method?