so I'm making a script where if you have a badge it makes a certain brick's can collide property set to false only for the client, here's my script that won't work 100%
i have a number value and a script that changes the number depending on what badge you have, the local script reads it
regular script that's in the brick:
local repStorage = game:GetService("ReplicatedStorage") local remote = repStorage:WaitForChild("Remote") remote.OnClientEvent:Connect(function(player) script.Parent.CanCollide = false end)
here's the local script in the playergui and its a child of the numbervalue:
local repStorage = game:GetService("ReplicatedStorage") local remote = repStorage:WaitForChild("Remote") if script.Parent.Value == 1 then remote:FireClient() end
I don't think im using the remote right can someone tell me how i can fix it?
Just use a local script, theres no need to use :FireClient when it is as easy as having it change the properties on the local side since it wont replicate to the server
Like you can do
script.Parent.Changed:Connect() if script.Parent.Value == 1 then script.Parent.CanCollide = false end end)
It will save bandwith and doest use a while wait() do like other script that can cause lag. basically when the value changes it checks it and runs the script. hope this helped you out.