Question is in the title.
What I want is to store attributes in a frame in player gui. So can an exploiter access those attributes and change them, since the attributes are very crucial and important.
Question is in the title.
What I want is to store attributes in a frame in player gui. So can an exploiter access those attributes and change them, since the attributes are very crucial and important.
If you can access something from a local script, it can also be accessed by an exploiter.
Exploiters can read and change attributes just like any other client. It will not replicate to the server.
So does that mean If I need to store anything important with attributes I should do it in the server?
Yes, as long as you don’t have any remote events that can change the values because any exploiter can easily just
game.ReplicatedStorage.ChangeValues:FireServer(9999)
--serverscript
game.ReplicatedStorage.ChangeValues.OnServerEvent:Connect(function(amount)
local attValue = Attirbutethinghere:GetAttribute("AttributeName")
Attirbutethinghere:SetAttribute("AttributeName", attValue + amount)
end)
It depends what “important” means there. If a client shouldn’t have access to a piece of information, like if it’s a secret key or something, then don’t put it in an attribute, since it will replicate.
But if it’s just something that the client shouldn’t be able to change on the server, like a speed value or something, then an attribute should be fine since an exploiter changing that value will not replicate.
Ok thanks for helping!
So I have a price and seller player id for a trading game in attributes. So if an exploiter changes the value like the price and changes the seller player id to themselves it wouldn’t be a problem since it doesn replicate, right?