events.JailPlayer.OnServerEvent:Connect(function(player, t, username) game.Players:FindFirstChild(username).TeamColor = BrickColor.new('Mulberry') game.Players:FindFirstChild(username):LoadCharacter() events.Jailing:FireClient(username, t) end)
22:37:12.751 - Unable to cast value to Object
22:37:12.759 - Stack Begin
22:37:12.761 - Script 'ServerScriptService.devARRESTServer', Line 4
22:37:12.769 - Stack End
Can someone please explain why it is doing this?
When firing the client it ask for the client you are firing :FireClient(playername, arguments) if I remember correctly
Username is returning as the name of the client I want to fire but for some reason it errors.
t returns as a number chose by the person arresting the player
You need to fire client sending player, not player name
example:
-- ServerScript local event = game.ReplicatedStorage.RemoteEvent game.Players.PlayerAdded:Connect(function(player) event:FireClient(player) end) -- LocalScript local event = game.ReplicatedStorage.RemoteEvent event.OnClientEvent:Connect(function() print("Player added!") end)
For your script only send player, you can create a variable for check if player exist and do not need to repeat game.Players:FindFirstChild(username)
Fixed script:
events.JailPlayer.OnServerEvent:Connect(function(player, t, username) local plr = game.Players:FindFirstChild(username) -- PlayerVariable if plr then -- Check if player exist plr.TeamColor = BrickColor.new('Mulberry') plr:LoadCharacter() events.Jailing:FireClient(plr, t) end end)
Hope it helped :)