So I’ve read that an exploiter can exploit any thing about a local script?
Or well client side stuff.
In my GUI I made. I detect a mouse click, and then I have a remote event client → server that checks if the player can do a condition, and then if he can since I can’t do GUI changes in the server script. I then send a server → client event back to the same local script which then runs a function changing parts of the GUI.
My question is, can’t the exploiter just call this function anytime they want? So there is basically no point in having these remote events if it all comes back to the local script?
If this makes sense, I can word it a bit better if you need. Thanks.
Like imagine my GUI shows a quest status. Like you’ve collected: 0/15 rocks
I guess no matter what the exploiter could change what is displayed. I just need to make sure that nothing is rewarded unless some values on server are met?
1 Like
Hi!
It shouldn’t matter if the exploiter client pops up a GUI for themself. You do all the checks on the server anyway. 
Edit: I would personally use remotes if the GUI opens a shop that is located somewhere in the game (in workspace)
2 Likes
Right, I guess that would be important for like a game such as Phantom Forces. I’m making a zombie game so no PvP (at least not yet) but I’ll keep that in mind.
I was def going about this all wrong, I was doing all these server checks for the GUI and realized that no matter what I do for me to change the GUI has to be through local scripts, so the cheaters could change the visuals no matter what. But I just need to secure the values when they’re changing. Thanks!
1 Like
Np! Feel free to return if you got any further questions.
2 Likes
Ay one more question, if I have an intvalue, string value etc inside a GUI does that mean it’s local? Where should I store values like that?
Hi! The IntValue/StringValue can be seen, read & modified from the server, if you created them from the server(in a serverscript). 
Creating stuff while in studio, is equivalent to creating stuff from the server.
Ok so it’s fine that it’s inside a GUI or even a child of a local script? Just to be clear
Yes, just as long as you from the serverscript, can get the location of the Int/StringValue.
If you insert a IntValue into your localscript, that is located in a GUI in StarterGUI. Then try and testplay, go into “Players”, go into your players name, go into PlayerGUI. Then the IntValue should be located where ever you placed it. :)’
1 Like