Hello, I have script in GUI which giving hat but only person which clicks this button can see this hat. Also script is in local script.
this is this script
local player = game:GetService("Players").LocalPlayer script.Parent.MouseButton1Click:connect(function() if player.Character:findFirstChild("Humanoid") ~= nil and player.Character:findFirstChild("Head6") == nil then local g = game.ReplicatedStorage.Berets.ZANDARMERIA.Head6:clone() g.Parent = player.Character local C = g:GetChildren() for i=1, #C do if C[i].className == "Part" or C[i].className == "UnionOperation" then local W = Instance.new("Weld") W.Part0 = g.Middle W.Part1 = C[i] local CJ = CFrame.new(g.Middle.Position) local C0 = g.Middle.CFrame:inverse()*CJ local C1 = C[i].CFrame:inverse()*CJ W.C0 = C0 W.C1 = C1 W.Parent = g.Middle end local Y = Instance.new("Weld") Y.Part0 = player.Character["Head"] Y.Part1 = g.Middle Y.C0 = CFrame.new(0, 0, 0) Y.Parent = Y.Part0 end local h = g:GetChildren() for i = 1, # h do h[i].Anchored = false h[i].CanCollide = false end elseif player.Character:findFirstChild("Humanoid") ~= nil and player.Character:findFirstChild("Head6") then player.Character.Head6:remove() end end)
You need to use remote events to fire the server whenever the player equips a hat. Then in a sever script make it so that it puts the hat on the player from there instead of from your local script. This will allow all players to be able to see the hat.