I have a local script in ImageButton to fire server:
local button = script.Parent local requestMakeup = game.ReplicatedStorage.MakeupRequest
local function onButtonClicked() requestMakeup:FireServer("darkgalaxy") end
button.MouseButton1Click:Connect(onButtonClicked)
And a script in ServerScriptService: local requestMakeup = game.ReplicatedStorage.MakeupRequest
local items = { darkgalaxy = "rbxassetid://1376206152",
}
local function onRequestEvent(player, itemName) local itemId = items[itemName] local p = game.Players.LocalPlayer.Name if not workspace:WaitForChild(p) then return end local h = workspace:WaitForChild(p).Humanoid if (h ~= nil) then if game.Workspace:FindFirstChild(game.Players.LocalPlayer.Name) ~= nil then h.Parent.Head.face.Texture = itemId print"Face change!" end end end
requestMakeup.OnServerEvent:Connect(onRequestEvent)
I have shortened the item list to just one item but all else is same. This works fine in studio and "Face change" prints to output but will not work in game. Where have I gone wrong? Any help much appreciated. Thank you

2 comments
LocalPlayer does not work in server scripts.
Thank you :)