Player argument must be a player object

I’m using the Touched event on a hitbox for my car to detect when it hits an obstacle (i.e. a post). When the hitbox hits the post, the post is meant to fling away, as if it has been hit by a car. But I get this error:
FireClient: player argument must be a Player object - Server - CollisionHandler:6

-- ServerScript
local Event = game.ReplicatedStorage.Events.FireCollision
local Seat = script.Parent.Parent.Parent.DriveSeat

script.Parent.Touched:Connect(function(touchedPart)
	if touchedPart.Parent == workspace.CollisionModels and Seat.Occupant then
		Event:FireClient(Seat.Occupant, touchedPart)
	end
end)
-- LocalScript
local EventsFolder = game.ReplicatedStorage.Events
local FireCollision = EventsFolder.FireCollision

FireCollision.OnClientEvent:Connect(function(player, touchedPart)
    if touchedPart.Parent == workspace.CollisionModels then
        touchedPart.Velocity = touchedPart.Velocity + Vector3.new(0,50,100)
    end
end)

Ignore touchedPart.Velocity for the time being, I’m still working on that.

‘player argument must be a Player object’ The first argument to :FireClient() is the player you want to send the information to.

The issue is that Seat.Occupant is the Humanoid of the players character not the player itself.
so replacing Seat.Occupant with Players:GetPlayerFromCharacter(Seat.Occupant.Parent) should fix your issue.

But in doing that you’ll run into another one

FireCollision.OnClientEvent:Connect(function(player, touchedPart)

player will be touchedPart and touchedPart will be nil which is a problem so just remove the player argument.