Basically the script is selecting a random seats position that isnt occupied and moveing the humanoid to it.
local PathfindingService = game:GetService("PathfindingService")
local humanoid = script.Parent:WaitForChild("Humanoid")
local torso = script.Parent:WaitForChild("Torso")
local seats = game.Workspace.Seats
local seatsAvailable = {}
for _, seat in pairs(seats:GetChildren()) do
local occupied = seat:GetAttribute("Occupied")
if occupied == false then
table.insert(seatsAvailable, seat.Position)
print("Seat Position: "..tostring(seat.Position))
end
end
print("Table: ".. tostring(seatsAvailable))
local seatSelected = seatsAvailable[math.random(1, #seatsAvailable)]
print("Random Seats Position Selected: ".. tostring(seatSelected))
local path = PathfindingService:CreatePath()
path:ComputeAsync(torso.Position, seatSelected)
local waypoints = path:GetWaypoints()
for i, waypoint in pairs(waypoints) do
humanoid:MoveTo(waypoint.Position)
humanoid.MoveToFinished:Wait(2)
end