Categories > Coding > Lua >

How could i make my person get into the car?

New Reply

Posts: 4

Threads: 2

Joined: Jul, 2025

Reputation: 0

Posted

local TweenService = game:GetService("TweenService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")

local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local hrp = character:WaitForChild("HumanoidRootPart")
local humanoid = character:WaitForChild("Humanoid")

-- Only consider cars named "Jeep" or "Camaro" with VehicleSeats
local function isCar(model)
    local name = model.Name:lower()
    if (name == "jeep" or name == "camaro") and (model:FindFirstChild("VehicleSeat") or model:FindFirstChildWhichIsA("VehicleSeat") or model:FindFirstChild("_Packet") or model:FindFirstChild("CameraVehicleSeat")) then
        return true
    end
    return false
end

-- Find the closest Jeep or Camaro
local function getClosestCar()
    local closestCar = nil
    local shortestDistance = math.huge

    for _, obj in ipairs(workspace:GetDescendants()) do
        if obj:IsA("Model") and isCar(obj) then
            local carPrimaryPart = obj.PrimaryPart or obj:FindFirstChild("PrimaryPart") or obj:FindFirstChildWhichIsA("BasePart")
            if carPrimaryPart then
                local distance = (hrp.Position - carPrimaryPart.Position).Magnitude
                if distance < shortestDistance then
                    shortestDistance = distance
                    closestCar = obj
                end
            end
        end
    end

    return closestCar
end

local function trySitInSeat(carModel)
    local seat = carModel:FindFirstChild("_Packet") or carModel:FindFirstChild("CameraVehicleSeat") or carModel:FindFirstChild("VehicleSeat") or carModel:FindFirstChildWhichIsA("VehicleSeat")
    if not seat or not seat:IsA("VehicleSeat") then
        warn("No valid vehicle seat found.")
        return false
    end

    -- Move character above seat
    hrp.CFrame = seat.CFrame * CFrame.new(0, 3, 0)
    wait(0.1)

    -- Try to sit in seat
    seat:Sit(humanoid)
    wait(0.2)  -- small wait to let sit happen

    -- Check if sitting succeeded
    if humanoid.SeatPart == seat then
        print("Successfully sat in the seat!")
        return true
    else
        warn("Failed to sit in the seat.")
        return false
    end
end

local function moveUpThenHorizThenDown(targetPos)
    local currentPos = hrp.Position

    -- Tween up (raise Y by 10 studs)
    local upGoal = {CFrame = CFrame.new(currentPos.X, currentPos.Y + 10, currentPos.Z)}
    local upTween = TweenService:Create(hrp, TweenInfo.new(0.5, Enum.EasingStyle.Quad), upGoal)
    upTween:Play()
    upTween.Completed:Wait()

    -- Tween horizontally (move X,Z to target, keep Y high)
    local horizGoal = {CFrame = CFrame.new(targetPos.X, currentPos.Y + 10, targetPos.Z)}
    local horizTween = TweenService:Create(hrp, TweenInfo.new(1, Enum.EasingStyle.Quad), horizGoal)
    horizTween:Play()
    horizTween.Completed:Wait()

    -- Tween down (lower Y to target Y)
    local downGoal = {CFrame = CFrame.new(targetPos.X, targetPos.Y, targetPos.Z)}
    local downTween = TweenService:Create(hrp, TweenInfo.new(0.5, Enum.EasingStyle.Quad), downGoal)
    downTween:Play()
    downTween.Completed:Wait()
end

local function spawnCamaro()
    local args = {
        [1] = "Chassis";
        [2] = "Camaro";
    }
    local remote = ReplicatedStorage:WaitForChild("GarageSpawnVehicle", 9e9)
    print("Spawning Camaro via remote event...")
    remote:FireServer(unpack(args))
end

local function main()
    local carModel = getClosestCar()

    if carModel then
        print("Found a car: " .. carModel.Name)
        local primaryPart = carModel.PrimaryPart or carModel:FindFirstChild("PrimaryPart") or carModel:FindFirstChildWhichIsA("BasePart")
        if primaryPart then
            -- Move character up/horiz/down near the car
            moveUpThenHorizThenDown(primaryPart.Position + Vector3.new(0, 3, 0))

            -- Try to sit in seat
            if trySitInSeat(carModel) then
                return -- success, stop here
            else
                warn("Could not sit in the car seat, spawning Camaro instead.")
            end
        else
            warn("Car has no primary part, spawning Camaro instead.")
        end
    else
        warn("No suitable car found, spawning Camaro.")
    end

    -- Spawn Camaro if no suitable car found or sitting failed
    spawnCamaro()
end

main()
 
this is jailbreak
 

 

  • 0

  • Comment

Posts: 6

Threads: 0

Joined: Jun, 2023

Reputation: 0

Replied

local TweenService = game:GetService("TweenService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
 
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local hrp = character:WaitForChild("HumanoidRootPart")
local humanoid = character:WaitForChild("Humanoid")
 
-- Helpers
 
local function isCar(model)
local name = model.Name:lower()
if (name == "jeep" or name == "camaro") and (
model:FindFirstChild("VehicleSeat") or
model:FindFirstChildWhichIsA("VehicleSeat") or
model:FindFirstChild("_Packet") or
model:FindFirstChild("CameraVehicleSeat")
) then
return true
end
return false
end
 
local function getClosestCar()
local closestCar, shortestDistance = nil, math.huge
for _, obj in ipairs(workspace:GetDescendants()) do
if obj:IsA("Model") and isCar(obj) then
local primary = obj.PrimaryPart or obj:FindFirstChild("PrimaryPart") or obj:FindFirstChildWhichIsA("BasePart")
if primary then
local dist = (hrp.Position - primary.Position).Magnitude
if dist < shortestDistance then
shortestDistance = dist
closestCar = obj
end
end
end
end
return closestCar
end
 
local function moveToSeatAndSit(seat)
if not seat or not seat:IsA("VehicleSeat") then return false end
print("Walking to seat...")
 
local reached = false
local connection
 
humanoid:MoveTo(seat.Position + Vector3.new(0, 0.5, 0))
 
connection = humanoid.MoveToFinished:Connect(function(success)
reached = success
connection:Disconnect()
end)
 
local timeout = 3
local t = 0
while t < timeout do
if humanoid.SeatPart == seat then return true end
wait(0.1)
t += 0.1
end
 
-- Try touching the seat if not already seated
firetouchinterest(hrp, seat, 0)
wait(0.1)
firetouchinterest(hrp, seat, 1)
wait(0.5)
 
return humanoid.SeatPart == seat
end
 
local function trySitInSeat(carModel)
local seat = carModel:FindFirstChild("_Packet") or carModel:FindFirstChild("CameraVehicleSeat") or carModel:FindFirstChild("VehicleSeat") or carModel:FindFirstChildWhichIsA("VehicleSeat")
if not seat then
warn("No valid seat found.")
return false
end
return moveToSeatAndSit(seat)
end
 
local function spawnCamaro()
local args = {
[1] = "Chassis";
[2] = "Camaro";
}
local remote = ReplicatedStorage:WaitForChild("GarageSpawnVehicle", 9e9)
print("Spawning Camaro...")
remote:FireServer(unpack(args))
end
 
local function main()
local car = getClosestCar()
if car then
print("Found nearby car:", car.Name)
local primary = car.PrimaryPart or car:FindFirstChild("PrimaryPart") or car:FindFirstChildWhichIsA("BasePart")
if primary then
if trySitInSeat(car) then
print("Successfully entered the car!")
return
else
warn("Failed to sit in car. Spawning Camaro...")
end
else
warn("Car has no primary part. Spawning Camaro...")
end
else
warn("No suitable car found, spawning Camaro.")
end
 
spawnCamaro()
end
 
main()

 

  • 0

  • Comment

Posts: 4

Threads: 2

Joined: Jul, 2025

Reputation: 0

Replied

is there also a way to find closest car near me and tp to it using tween? objects are in the way and it lags me back

  • 0

  • Comment

Posts: 6

Threads: 0

Joined: Jun, 2023

Reputation: 0

Replied

local TweenService = game:GetService("TweenService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
 
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local hrp = character:WaitForChild("HumanoidRootPart")
local humanoid = character:WaitForChild("Humanoid")
 
-- Find Jeep or Camaro
local function isCar(model)
local name = model.Name:lower()
return (name == "jeep" or name == "camaro") and (
model:FindFirstChild("VehicleSeat") or
model:FindFirstChildWhichIsA("VehicleSeat") or
model:FindFirstChild("_Packet") or
model:FindFirstChild("CameraVehicleSeat")
)
end
 
local function getClosestCar()
local closest, shortest = nil, math.huge
for _, obj in ipairs(workspace:GetDescendants()) do
if obj:IsA("Model") and isCar(obj) then
local part = obj.PrimaryPart or obj:FindFirstChild("PrimaryPart") or obj:FindFirstChildWhichIsA("BasePart")
if part then
local dist = (hrp.Position - part.Position).Magnitude
if dist < shortest then
shortest = dist
closest = obj
end
end
end
end
return closest
end
 
-- Disable collisions temporarily
local function setNoCollision(state)
for _, part in ipairs(character:GetDescendants()) do
if part:IsA("BasePart") then
part.CanCollide = not state
end
end
end
 
--Tween character up -> across -> down
local function tweenToCar(carModel)
local targetPart = carModel.PrimaryPart or carModel:FindFirstChild("PrimaryPart") or carModel:FindFirstChildWhichIsA("BasePart")
if not targetPart then return end
 
setNoCollision(true)
 
local current = hrp.Position
local midY = 25
 
-- Up
local upTween = TweenService:Create(hrp, TweenInfo.new(0.4), {CFrame = CFrame.new(current.X, current.Y + midY, current.Z)})
upTween:Play()
upTween.Completed:Wait()
 
-- Horizontally over car
local horizTween = TweenService:Create(hrp, TweenInfo.new(1), {CFrame = CFrame.new(targetPart.Position.X, current.Y + midY, targetPart.Position.Z)})
horizTween:Play()
horizTween.Completed:Wait()
 
-- Down above car
local downTween = TweenService:Create(hrp, TweenInfo.new(0.4), {CFrame = CFrame.new(targetPart.Position.X, targetPart.Position.Y + 4, targetPart.Position.Z)})
downTween:Play()
downTween.Completed:Wait()
 
setNoCollision(false)
end
 
--Touch seat to try to sit
local function tryTouchSeat(carModel)
local seat = carModel:FindFirstChild("_Packet") or carModel:FindFirstChild("CameraVehicleSeat") or carModel:FindFirstChild("VehicleSeat") or carModel:FindFirstChildWhichIsA("VehicleSeat")
if not seat then
warn("No seat found in car.")
return false
end
 
firetouchinterest(hrp, seat, 0)
wait(0.1)
firetouchinterest(hrp, seat, 1)
wait(0.5)
 
if humanoid.SeatPart == seat then
print("Successfully entered car!")
return true
else
warn("Failed to sit in seat.")
return false
end
end
 
--Spawn Camaro fallback
local function spawnCamaro()
local remote = ReplicatedStorage:WaitForChild("GarageSpawnVehicle", 9e9)
remote:FireServer("Chassis", "Camaro")
end
 
--Main
local function enterClosestCar()
local car = getClosestCar()
if car then
print("Found car:", car.Name)
tweenToCar(car)
if not tryTouchSeat(car) then
warn("Couldn't get in car. Spawning Camaro.")
spawnCamaro()
end
else
warn("No car found. Spawning Camaro.")
spawnCamaro()
end
end
 
enterClosestCar()

 

  • 0

  • Comment

Login to unlock the reply editor

Add your reply

Users viewing this thread:

( Members: 0, Guests: 1, Total: 1 )