I've almost got it and came down to this code but for some reason it still won't work.
local seat = script.Parent
local PassID = --Gamepass ID here
function auth(plr)
return game:GetService("MarketplaceService"):PlayerOwnsAsset(plr, PassID)
end
function OnTouched(hit)
local plr = game.Players:GetPlayerFromCharacter(hit.Parent);
if plr then
if auth(plr) then
seat.Transparency = 0
else
hit.Parent.Humanoid.Health = 0
end
end
end
seat.Touched:Connect(OnTouched)

2 comments
what auth(plr) does?
Function to "authenticate" if they have the gamepass or not.