local player = game.Players.LocalPlayer local character = player.Character or player.CharacterAdded:Wait() local humanoid = character.Humanoid workspace.Plane.Seat:Sit(humanoid) local UIS = game:GetService("UserInputService") local RunService = game:GetService("RunService") local plane = workspace.Plane local body = plane local speed = 0 local maxSpeed = 300 local throttlePower = 10 local turnSpeed = 1 local cf = CFrame.new() local wasntTouching = 0 UIS.InputBegan:Connect(function(input, processed) if processed then return end if input.KeyCode == Enum.KeyCode.W then speed += throttlePower elseif input.KeyCode == Enum.KeyCode.S then speed -= throttlePower end speed = math.clamp(speed, 0, maxSpeed) end) RunService.Heartbeat:Connect(function(dt) if UIS:IsKeyDown(Enum.KeyCode.A) then cf *= CFrame.Angles(0, turnSpeed * dt, 0) end if UIS:IsKeyDown(Enum.KeyCode.D) then cf *= CFrame.Angles(0, -turnSpeed * dt, 0) end if UIS:IsKeyDown(Enum.KeyCode.Up) then cf *= CFrame.Angles(-turnSpeed * dt, 0, 0) end if UIS:IsKeyDown(Enum.KeyCode.Down) then cf *= CFrame.Angles(turnSpeed * dt, 0, 0) end if UIS:IsKeyDown(Enum.KeyCode.Left) then cf *= CFrame.Angles(0, 0, turnSpeed * dt) end if UIS:IsKeyDown(Enum.KeyCode.Right) then cf *= CFrame.Angles(0, 0, -turnSpeed * dt) end body.AlignOrientation.CFrame = cf local g = Vector3.new(0, -700 / (speed + 1), 0) body.LinearVelocity.VectorVelocity = body.CFrame.LookVector * speed + g if #body:GetTouchingParts() > 4 then if wasntTouching > 60 then local velocity = body.AssemblyLinearVelocity.Magnitude if velocity > 35 then local exp = game:GetService("ReplicatedStorage").Explosion:Clone() exp.Parent = workspace exp.Position = plane.Position plane:Destroy() end end wasntTouching = 0 else wasntTouching += 1 end end)
save