Can exploiters change GUI colors

So I’m just wondering if exploiters could change the color of gui? I don’t know a-lot of information of what they can do.

They can change the color of their client gui. Not sure why you would be worried about that though.

They can change anything they have access to locally (Won’t replicate to other players or the server).

The answer is no, because exploit only works on the client side.

I have a GUI that allows the player to select from a variety of colors(which is the background color of the text button) that then get passed through and put onto there hat.

I’m assuming to prevent exploitation I could make the script on the other side check if the color that has come through is one of the valid colors I’ve set then if so apply it, would that work?

If your script is on the server side, then you have no problems with exploitation, if it is on your client side, then you have to do something about it (I hope I helped you).

GUIs are client sided though. Wdym.

The script server runs on gui as well as on local script.

Guis are client sided lol, don’t know where you got that info from.

Just try inserting a server script into the gui and it will work.

The gui is still client sided. Do you know what client sided means?

That’s a bad practice, never do it. :grimacing:

Yes, but if your script server is in gui then exploitation has no effect on it, I hope you understand me.

Yes, but only on their computer(s)/client.

Gui’s should be ran locally, but they can still be managed by the server if you really wanted to, through Player.PlayerGui. Of course, these changes will still only replicate to the specific player and can’t be seen by any one else. My point is it is possible to use a server script for guis, it’s just a terrible practice.

And yes, exploiters can change anything their client has access to, so make sure to have server checks to make sure the colors are valid.

If I were you in this situation, I would create a list of colors on the server.

local hatColors = {
--Insert Color3 or BrickColor values here (comma seperated)
}

Place the same list in the client script, then when the player selects the color, rather than send the color through a remoteEvent/remoteFunction, just send the index of the color they selected, that way the player has no direct control over the final color, they are at the most basic level of abstraction, choosing a number which they will send to the server. Obviously, in practice, you would create a GUI with colored buttons or whatever, but the buttons would send the index of their color, not their actual BackgroundColor3.

1 Like

Even though its server sided, Tools for example can have a “server” inside of it. This consists of a Remote, Server Script and Local Script. In a way your wrong.

Tools can have a server and client side because they exist in both. You’re right about that. This is as a result of the tools being owned on the network by the client, the players character is this same way. This means, any changes the client makes replicate and can therefore be seen by the server. Most other things in the game are owned on the network by the server. This means things the server change replicate to the client, but not the other way around. The player GUI are owned by the server. This may not make sense, but what it means is that changes made by the player do not replicate to the server. This means the server could not register a button press, or a GUI change made by an exploiter. However, the server could make changes to the GUI, and the player would see it.

Well No server can register a button press as that relies on client input, Your right about the server being able to make changes to the gui as everything can see whats inside each player but ofcourse no server ould be able to tell whether or not a player has done an input due to the fact that HAS to be on the clients side.

What? When did I talk about tools being server sided? I’m saying that GUIs are client sided, meaning that any changes of it only replicate to their client.