How to fix FireClient: player argument must be a Player object

Hello!
So I have this problem, the event fires there is always this message: FireClient: player argument must be a Player object idk how to fix it I have tried different methods and they dont work.
Here is the script:

game.Workspace.TouchPlate.Touched:Connect(function(OnHit)
				
				local hum = OnHit.Parent:FindFirstChild("Humanoid")
				local Player = 
                game.Players:GetPlayerFromCharacter(OnHit.Parent)
				
				game.ReplicatedStorage.RemoteEvent:FireClient(Player)
				
end)

any help is appreciated!

workspace.TouchPlate.Touched:Connect(function(OnHit)
				
				local hum = OnHit.Parent:FindFirstChild("Humanoid")
				local Player = 
                game.Players:GetPlayerFromCharacter(OnHit.Parent)
				if Player then
				game.ReplicatedStorage.RemoteEvent:FireClient(Player)
				end
end)

What happens with these touched parts is it will react off anything touching it. Most every time it will not be part of the player that can be directly used as the character reference. So, you do something like this. Here I am checking if the parent of the touching part has a Humanoid child. This will make sure it is a character. Next I’m using a debounce technique to make sure even that isn’t going to fire mutable times Ending with a pause then resetting the debounce. It also double checks Player as a valid OnHit.Parent …

local db=true
local rst=game:GetService("ReplicatedStorage")
game.Workspace.TouchPlate.Touched:Connect(function(OnHit)
	local hum=OnHit.Parent:FindFirstChild("Humanoid")
	if hum and db then db=false
		local Player=game.Players:GetPlayerFromCharacter(OnHit.Parent)
		if Player then rst.RemoteEvent:FireClient(Player)
		end task.wait(3) db=true
	end
end)

It may seem a bit over done. But it is almost bulletproof. May need to ask a bit more of it if you have NPCs that may also come in contact with the touch part.

As suggested by @MrOnlyKemal, you should check if the player, and the humanoid exists.

Also, instead of:

game.ReplicatedStorage

you should do:

game:GetService("ReplicatedStorage")

Try doing this instead:

workspace.TouchPlate.Touched:Connect(function(OnHit)
				
   local hum = OnHit.Parent:FindFirstChild("Humanoid")
   if hum then
      local Player = game.Players:GetPlayerFromCharacter(OnHit.Parent)
      if Player then			
         game.ReplicatedStorage.RemoteEvent:FireClient(Player)
      end
   end		
end)