Issues with "Quest Data" and Exploiters

the attached image is my best attempt at demonstrating how my code works, since i want to make the “QuestData[player.UserId]” module save when you leave and rejoin, it needs to be on the server. i cant really think of sanity checks to apply here… is the only solution handling the quest text on the server? is that even possible?? again im pretty bad at explaining things through text, so i hope the image summarizes it. my objective is to get info from the client onto the server without exploiters being able to fire they’re own data and cheating through quests.

Indeed there are some things that might help you.

Server-side quest logic:
Generally it might be safer to handle the critical parts of quests on the server not on the client, so that the client only sends minimal info to the server.

Server-side validation:
Let’s say the client fires a remote event saying that he will now give “ThirstyDude” a drink. On the server, validate if this makes sense. Check if the player currently is onto this quest. Check that the player is close to “ThirstyDude” and especially check if the player has a drink in his inventory that he can give.
You can also get like a minimum time, to prevent extreme autofarming. For example if you realize that a player completed the quest in 2 seconds, though you have to travel through the whole map, that might be suspicious.

Hope this works somehow. Generally it sounds to me you are doing too much on the client, you might want to make it more server-sided.

1 Like