Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
✓ ANSWER ACCEPTED

Unable to cast value to Object?

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

1 comment

0

first argument of FireClient is the player object you're firing to. the username variable is a string. make a variable like: local newPlayer = game.Players:FindFirstChild(username), and use that in place of it

1 answer

✓ Accepted answer

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)

#Wiki pages:

FireClient

Hope it helped :)

This discussion is preserved as it was. New answers, comments, and votes are closed.