I'm trying to use remote events to communicate between scripts (server to client), but I get this error saying "Unable to cast value on object". The error is referring to the event on line 8 of the server script. Any suggestions on how I could fix this?
--server script local event = Instance.new("RemoteEvent",game.ReplicatedStorage) event.Name = "lever touched" script.Parent.Touched:connect(function(hit) if game.Players:GetPlayerFromCharacter(hit.Parent) then event:FireClient(hit.Parent.Name) end end)
--local script local player = game.Players.LocalPlayer local event = game.ReplicatedStorage:WaitForChild("lever touched") event.OnClientEvent:connect(function(name) if name == player.Name then print(name) end end)
FireClient takes a Player as the first argument
Instead, your code should look a bit like this:
--server script local event = Instance.new("RemoteEvent",game.ReplicatedStorage) event.Name = "lever touched" script.Parent.Touched:connect(function(hit) if game.Players:GetPlayerFromCharacter(hit.Parent) then event:FireClient(game.Players:GetPlayerFromCharacter(hit.Parent),hit.Parent.Name) end end)
It's also worth noting that the Name will definitely be the Player's name.