local FLIGHT_HEIGHT = 50 local HOVER_SPEED = 500 local HOVER_DISTANCE = 700 local W_KEY_HOLD = true local ACTIVATION_KEY = Enum.KeyCode.F if not game:IsLoaded() then game.Loaded:Wait() end local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local RunService = game:GetService("RunService") local TweenService = game:GetService("TweenService") local VirtualInputManager = game:GetService("VirtualInputManager") repeat task.wait() until Players.LocalPlayer local player = Players.LocalPlayer local username = player.Name print("=== Car Hover Flight System ===") print("User: " .. username) print("Press " .. tostring(ACTIVATION_KEY) .. " to toggle flight mode") -- Variables local isFlying = false local currentVehicle = nil local originalPosition = nil local hoverConnection = nil local wKeyHeld = false local hoverDirection = 1 -- 1 for forward, -1 for backward -- Function to find player's owned car function findPlayerCar() local carsFolder = workspace:FindFirstChild("Cars") if not carsFolder then warn(" Cars folder not found") return nil end print(" Searching for car owned by: " .. username) for _, carModel in pairs(carsFolder:GetChildren()) do if carModel:IsA("Model") then -- Check Owner value (string username) local ownerValue = carModel:FindFirstChild("Owner") if ownerValue and type(ownerValue.Value) == "string" then if ownerValue.Value == username then print(" Found car by Owner: " .. carModel.Name) return carModel end end -- Check CurrentDriver as fallback (string username) local currentDriver = carModel:FindFirstChild("CurrentDriver") if currentDriver and type(currentDriver.Value) == "string" then if currentDriver.Value == username then print(" Found car by CurrentDriver: " .. carModel.Name) return carModel end end end end warn(" No owned car found for: " .. username) return nil end -- Function to get player's current vehicle function getPlayerVehicle() local character = player.Character if not character then return nil, nil end local humanoid = character:FindFirstChild("Humanoid") if not humanoid then return nil, nil end if humanoid.SeatPart then local seat = humanoid.SeatPart -- Handle Seats folder if seat.Parent and seat.Parent.Name == "Seats" then local carModel = seat.Parent.Parent if carModel and carModel:IsA("Model") then return carModel, seat end end local vehicleModel = seat:FindFirstAncestorOfClass("Model") if vehicleModel then return vehicleModel, seat end return seat, seat end return nil, nil end -- Function to hold W key function holdWKey() if not W_KEY_HOLD then return end wKeyHeld = true pcall(function() VirtualInputManager:SendKeyEvent(true, Enum.KeyCode.W, false, nil) print(" Holding W key...") end) end -- Function to release W key function releaseWKey() if not W_KEY_HOLD or not wKeyHeld then return end wKeyHeld = false pcall(function() VirtualInputManager:SendKeyEvent(false, Enum.KeyCode.W, false, nil) print(" Released W key") end) end -- Function to start hover animation function startHover(vehicle) if not vehicle or not vehicle:IsA("Model") then return end local primaryPart = vehicle.PrimaryPart if not primaryPart then warn(" Vehicle has no PrimaryPart") return end -- Save original position originalPosition = primaryPart.Position -- Lift vehicle into air local targetPosition = Vector3.new( originalPosition.X, originalPosition.Y + FLIGHT_HEIGHT, originalPosition.Z ) -- Create tween to lift vehicle local liftTweenInfo = TweenInfo.new(1.5, Enum.EasingStyle.Quad, Enum.EasingDirection.Out) local liftTween = TweenService:Create(primaryPart, liftTweenInfo, {Position = targetPosition}) liftTween:Play() liftTween.Completed:Wait() print(" Car lifted to height: " .. FLIGHT_HEIGHT) -- Hold W key if enabled holdWKey() -- Start back/forth hover animation local startPos = primaryPart.Position hoverConnection = RunService.Heartbeat:Connect(function(deltaTime) if not vehicle or not vehicle.PrimaryPart then if hoverConnection then hoverConnection:Disconnect() end return end -- Calculate oscillation local time = tick() * HOVER_SPEED local oscillation = math.sin(time) * HOVER_DISTANCE -- Move vehicle back/forth local newPosition = Vector3.new( startPos.X + (oscillation * hoverDirection), startPos.Y + (math.sin(time * 0.5) * 2), -- Small vertical bob startPos.Z ) vehicle:PivotTo(CFrame.new(newPosition) * CFrame.Angles(0, math.rad(oscillation * 0.5), 0)) end) print(" Hover animation started") end -- Function to stop hover animation function stopHover(vehicle) if hoverConnection then hoverConnection:Disconnect() hoverConnection = nil end -- Release W key releaseWKey() if vehicle and vehicle:IsA("Model") and vehicle.PrimaryPart then -- Return to original position if originalPosition then local returnTweenInfo = TweenInfo.new(1.5, Enum.EasingStyle.Quad, Enum.EasingDirection.InOut) local returnTween = TweenService:Create(vehicle.PrimaryPart, returnTweenInfo, {Position = originalPosition}) returnTween:Play() returnTween.Completed:Wait() -- Reset rotation vehicle:PivotTo(CFrame.new(originalPosition)) end print(" Car returned to ground") end end -- Main toggle function function toggleFlight() -- First check for owned car local ownedCar = findPlayerCar() -- Then check current vehicle local currentVehicle, seat = getPlayerVehicle() local vehicleToUse = ownedCar or currentVehicle if not vehicleToUse then warn(" No vehicle found! Get in a car or own one") return end if not isFlying then -- Start flying print(" Starting hover flight...") print("Vehicle: " .. vehicleToUse.Name) print("Owner: " .. username) isFlying = true currentVehicle = vehicleToUse startHover(vehicleToUse) return true else -- Stop flying print(" Stopping hover flight...") isFlying = false stopHover(currentVehicle) currentVehicle = nil return false end end -- Create futuristic UI function createFlightUI() local screenGui = Instance.new("ScreenGui") screenGui.Name = "featherhub" screenGui.ResetOnSpawn = false screenGui.Parent = game:GetService("CoreGui") -- Main container with glass morphism effect local mainFrame = Instance.new("Frame") mainFrame.Name = "MainFrame" mainFrame.Size = UDim2.new(0, 380, 0, 260) mainFrame.Position = UDim2.new(0.5, -190, 0.5, -130) mainFrame.BackgroundColor3 = Color3.fromRGB(10, 15, 25) mainFrame.BackgroundTransparency = 0.2 mainFrame.BorderSizePixel = 0 -- Glass effect local backgroundBlur = Instance.new("BlurEffect") backgroundBlur.Size = 10 backgroundBlur.Parent = mainFrame -- Corner rounding with multiple layers local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 16) corner.Parent = mainFrame -- Glowing border local glowStroke = Instance.new("UIStroke") glowStroke.Color = Color3.fromRGB(0, 200, 255) glowStroke.Thickness = 2 glowStroke.Transparency = 0.7 glowStroke.Parent = mainFrame -- Animated gradient effect local gradient = Instance.new("UIGradient") gradient.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(0, 100, 255)), ColorSequenceKeypoint.new(0.5, Color3.fromRGB(0, 200, 255)), ColorSequenceKeypoint.new(1, Color3.fromRGB(100, 0, 255)) }) gradient.Rotation = 45 gradient.Parent = glowStroke -- Header with logo local header = Instance.new("Frame") header.Name = "Header" header.Size = UDim2.new(1, 0, 0, 70) header.Position = UDim2.new(0, 0, 0, 0) header.BackgroundColor3 = Color3.fromRGB(15, 20, 35) header.BackgroundTransparency = 0.3 header.BorderSizePixel = 0 local headerCorner = Instance.new("UICorner") headerCorner.CornerRadius = UDim.new(0, 16) headerCorner.Parent = header -- Logo/Title local logo = Instance.new("TextLabel") logo.Name = "Logo" logo.Text = "Feather hub" logo.Size = UDim2.new(1, 0, 0, 40) logo.Position = UDim2.new(0, 0, 0, 15) logo.BackgroundTransparency = 1 logo.TextColor3 = Color3.fromRGB(255, 255, 255) logo.Font = Enum.Font.GothamBlack logo.TextSize = 24 logo.TextStrokeColor3 = Color3.fromRGB(0, 150, 255) logo.TextStrokeTransparency = 0.3 -- Subtitle local subtitle = Instance.new("TextLabel") subtitle.Name = "Subtitle" subtitle.Text = "" subtitle.Size = UDim2.new(1, 0, 0, 20) subtitle.Position = UDim2.new(0, 0, 0, 45) subtitle.BackgroundTransparency = 1 subtitle.TextColor3 = Color3.fromRGB(150, 200, 255) subtitle.Font = Enum.Font.GothamMedium subtitle.TextSize = 12 subtitle.TextTransparency = 0.3 -- User info card local userCard = Instance.new("Frame") userCard.Name = "UserCard" userCard.Size = UDim2.new(0.9, 0, 0, 40) userCard.Position = UDim2.new(0.05, 0, 0, 75) userCard.BackgroundColor3 = Color3.fromRGB(20, 25, 40) userCard.BackgroundTransparency = 0.5 userCard.BorderSizePixel = 0 local userCorner = Instance.new("UICorner") userCorner.CornerRadius = UDim.new(0, 10) userCorner.Parent = userCard local userIcon = Instance.new("TextLabel") userIcon.Text = "" userIcon.Size = UDim2.new(0, 30, 1, 0) userIcon.Position = UDim2.new(0, 10, 0, 0) userIcon.BackgroundTransparency = 1 userIcon.TextColor3 = Color3.fromRGB(0, 200, 255) userIcon.Font = Enum.Font.GothamBold userIcon.TextSize = 18 local userName = Instance.new("TextLabel") userName.Text = "User: " .. username userName.Size = UDim2.new(1, -50, 1, 0) userName.Position = UDim2.new(0, 40, 0, 0) userName.BackgroundTransparency = 1 userName.TextColor3 = Color3.fromRGB(220, 220, 255) userName.Font = Enum.Font.Gotham userName.TextSize = 14 userName.TextXAlignment = Enum.TextXAlignment.Left -- Status indicator with pulse animation local statusContainer = Instance.new("Frame") statusContainer.Name = "StatusContainer" statusContainer.Size = UDim2.new(0.9, 0, 0, 50) statusContainer.Position = UDim2.new(0.05, 0, 0, 125) statusContainer.BackgroundColor3 = Color3.fromRGB(20, 25, 40) statusContainer.BackgroundTransparency = 0.5 statusContainer.BorderSizePixel = 0 local statusCorner = Instance.new("UICorner") statusCorner.CornerRadius = UDim.new(0, 12) statusCorner.Parent = statusContainer local statusIcon = Instance.new("TextLabel") statusIcon.Name = "StatusIcon" statusIcon.Size = UDim2.new(0, 30, 1, 0) statusIcon.Position = UDim2.new(0, 15, 0, 0) statusIcon.BackgroundTransparency = 1 statusIcon.Text = "" statusIcon.TextColor3 = Color3.fromRGB(255, 100, 100) statusIcon.Font = Enum.Font.GothamBold statusIcon.TextSize = 20 local statusLabel = Instance.new("TextLabel") statusLabel.Name = "StatusLabel" statusLabel.Text = "SYSTEM: STANDBY" statusLabel.Size = UDim2.new(1, -60, 1, 0) statusLabel.Position = UDim2.new(0, 50, 0, 0) statusLabel.BackgroundTransparency = 1 statusLabel.TextColor3 = Color3.fromRGB(255, 100, 100) statusLabel.Font = Enum.Font.GothamBold statusLabel.TextSize = 16 statusLabel.TextXAlignment = Enum.TextXAlignment.Left local statusSub = Instance.new("TextLabel") statusSub.Name = "StatusSub" statusSub.Text = "" statusSub.Size = UDim2.new(1, -60, 0, 15) statusSub.Position = UDim2.new(0, 50, 0.5, -2) statusSub.BackgroundTransparency = 1 statusSub.TextColor3 = Color3.fromRGB(150, 150, 180) statusSub.Font = Enum.Font.Gotham statusSub.TextSize = 10 statusSub.TextXAlignment = Enum.TextXAlignment.Left -- Flight toggle button (futuristic) local flightButton = Instance.new("TextButton") flightButton.Name = "FlightButton" flightButton.Text = "" flightButton.Size = UDim2.new(0.9, 0, 0, 55) flightButton.Position = UDim2.new(0.05, 0, 0, 185) flightButton.BackgroundColor3 = Color3.fromRGB(0, 120, 215) flightButton.AutoButtonColor = false flightButton.ClipsDescendants = true local buttonCorner = Instance.new("UICorner") buttonCorner.CornerRadius = UDim.new(0, 12) buttonCorner.Parent = flightButton -- Button gradient local buttonGradient = Instance.new("UIGradient") buttonGradient.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(0, 150, 255)), ColorSequenceKeypoint.new(1, Color3.fromRGB(0, 100, 200)) }) buttonGradient.Parent = flightButton -- Button inner glow local buttonGlow = Instance.new("Frame") buttonGlow.Size = UDim2.new(1, 0, 0, 4) buttonGlow.Position = UDim2.new(0, 0, 0, 0) buttonGlow.BackgroundColor3 = Color3.fromRGB(255, 255, 255) buttonGlow.BackgroundTransparency = 0.8 buttonGlow.BorderSizePixel = 0 buttonGlow.ZIndex = 2 local glowCorner = Instance.new("UICorner") glowCorner.CornerRadius = UDim.new(0, 12) glowCorner.Parent = buttonGlow -- Button text local buttonText = Instance.new("TextLabel") buttonText.Name = "ButtonText" buttonText.Size = UDim2.new(1, 0, 1, 0) buttonText.BackgroundTransparency = 1 buttonText.TextColor3 = Color3.fromRGB(255, 255, 255) buttonText.Font = Enum.Font.GothamBlack buttonText.TextSize = 18 buttonText.TextStrokeColor3 = Color3.fromRGB(0, 0, 0) buttonText.TextStrokeTransparency = 0.3 -- Button subtext local buttonSubText = Instance.new("TextLabel") buttonSubText.Name = "ButtonSubText" buttonSubText.Size = UDim2.new(1, 0, 0, 15) buttonSubText.Position = UDim2.new(0, 0, 0.7, 0) buttonSubText.BackgroundTransparency = 1 buttonSubText.TextColor3 = Color3.fromRGB(200, 230, 255) buttonSubText.Font = Enum.Font.Gotham buttonSubText.TextSize = 10 buttonSubText.TextTransparency = 0.3 -- Settings bar at bottom local settingsBar = Instance.new("Frame") settingsBar.Name = "SettingsBar" settingsBar.Size = UDim2.new(1, 0, 0, 30) settingsBar.Position = UDim2.new(0, 0, 1, -30) settingsBar.BackgroundColor3 = Color3.fromRGB(15, 20, 35) settingsBar.BackgroundTransparency = 0.5 settingsBar.BorderSizePixel = 0 local settingsCorner = Instance.new("UICorner") settingsCorner.CornerRadius = UDim.new(0, 0, 0, 16) settingsCorner.Parent = settingsBar local settingsText = Instance.new("TextLabel") settingsText.Name = "SettingsText" settingsText.Text = "ALT: " .. FLIGHT_HEIGHT .. "m | SPD: " .. HOVER_SPEED .. " | DIS: " .. HOVER_DISTANCE .. "m" settingsText.Size = UDim2.new(1, -20, 1, 0) settingsText.Position = UDim2.new(0, 10, 0, 0) settingsText.BackgroundTransparency = 1 settingsText.TextColor3 = Color3.fromRGB(150, 200, 255) settingsText.Font = Enum.Font.GothamMedium settingsText.TextSize = 11 settingsText.TextXAlignment = Enum.TextXAlignment.Left -- Parent all elements mainFrame.Parent = screenGui header.Parent = mainFrame logo.Parent = header subtitle.Parent = header userCard.Parent = mainFrame userIcon.Parent = userCard userName.Parent = userCard statusContainer.Parent = mainFrame statusIcon.Parent = statusContainer statusLabel.Parent = statusContainer statusSub.Parent = statusContainer flightButton.Parent = mainFrame buttonGlow.Parent = flightButton buttonText.Parent = flightButton buttonSubText.Parent = flightButton settingsBar.Parent = mainFrame settingsText.Parent = settingsBar -- Update status function with animations local function updateStatus() if isFlying then statusIcon.Text = "🟢" statusIcon.TextColor3 = Color3.fromRGB(0, 255, 150) statusLabel.Text = "SYSTEM: ACTIVE" statusLabel.TextColor3 = Color3.fromRGB(0, 255, 150) statusSub.Text = "" buttonText.Text = "DISENGAGE" buttonSubText.Text = "" buttonGradient.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 80, 80)), ColorSequenceKeypoint.new(1, Color3.fromRGB(200, 0, 50)) }) -- Animate status icon pulse task.spawn(function() while isFlying do for i = 0, 1, 0.1 do statusIcon.TextTransparency = i * 0.5 task.wait(0.05) end for i = 1, 0, -0.1 do statusIcon.TextTransparency = i * 0.5 task.wait(0.05) end end end) else statusIcon.Text = "" statusIcon.TextColor3 = Color3.fromRGB(255, 100, 100) statusLabel.Text = "SYSTEM: STANDBY" statusLabel.TextColor3 = Color3.fromRGB(255, 100, 100) statusSub.Text = "" buttonText.Text = "ENGAGE FLIGHT" buttonSubText.Text = "" buttonGradient.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(0, 150, 255)), ColorSequenceKeypoint.new(1, Color3.fromRGB(0, 100, 200)) }) end end -- Button hover effects flightButton.MouseEnter:Connect(function() if not isFlying then buttonGradient.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(0, 180, 255)), ColorSequenceKeypoint.new(1, Color3.fromRGB(0, 130, 220)) }) else buttonGradient.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 100, 100)), ColorSequenceKeypoint.new(1, Color3.fromRGB(220, 20, 60)) }) end end) flightButton.MouseLeave:Connect(function() updateStatus() end) -- Button click event with animation flightButton.MouseButton1Click:Connect(function() local success = toggleFlight() if success ~= nil then -- Click animation flightButton.BackgroundTransparency = 0.5 task.wait(0.1) flightButton.BackgroundTransparency = 0 updateStatus() end end) -- Initial update updateStatus() -- Make frame draggable with better interaction local dragging = false local dragInput, dragStart, startPos header.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true dragStart = input.Position startPos = mainFrame.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) header.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement and dragging then local delta = input.Position - dragStart mainFrame.Position = UDim2.new( startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y ) end end) -- Minimize button local minimizeButton = Instance.new("TextButton") minimizeButton.Text = "" minimizeButton.Size = UDim2.new(0, 25, 0, 25) minimizeButton.Position = UDim2.new(1, -60, 0, 10) minimizeButton.BackgroundColor3 = Color3.fromRGB(40, 45, 60) minimizeButton.TextColor3 = Color3.fromRGB(200, 200, 200) minimizeButton.Font = Enum.Font.GothamBold minimizeButton.TextSize = 14 minimizeButton.AutoButtonColor = false local minimizeCorner = Instance.new("UICorner") minimizeCorner.CornerRadius = UDim.new(0, 8) minimizeCorner.Parent = minimizeButton local minimized = false minimizeButton.MouseButton1Click:Connect(function() minimized = not minimized if minimized then mainFrame:TweenSize(UDim2.new(0, 380, 0, 70), "Out", "Quad", 0.3, true) minimizeButton.Text = "" minimizeButton.BackgroundColor3 = Color3.fromRGB(60, 65, 80) else mainFrame:TweenSize(UDim2.new(0, 380, 0, 260), "Out", "Quad", 0.3, true) minimizeButton.Text = "" minimizeButton.BackgroundColor3 = Color3.fromRGB(40, 45, 60) end end) minimizeButton.Parent = header -- Close button local closeButton = Instance.new("TextButton") closeButton.Text = "" closeButton.Size = UDim2.new(0, 25, 0, 25) closeButton.Position = UDim2.new(1, -30, 0, 10) closeButton.BackgroundColor3 = Color3.fromRGB(60, 40, 40) closeButton.TextColor3 = Color3.fromRGB(255, 150, 150) closeButton.Font = Enum.Font.GothamBold closeButton.TextSize = 14 closeButton.AutoButtonColor = false local closeCorner = Instance.new("UICorner") closeCorner.CornerRadius = UDim.new(0, 8) closeCorner.Parent = closeButton closeButton.MouseEnter:Connect(function() closeButton.BackgroundColor3 = Color3.fromRGB(80, 50, 50) end) closeButton.MouseLeave:Connect(function() closeButton.BackgroundColor3 = Color3.fromRGB(60, 40, 40) end) closeButton.MouseButton1Click:Connect(function() screenGui:Destroy() print("UI closed") end) closeButton.Parent = header -- Animate border gradient task.spawn(function() while screenGui.Parent do gradient.Rotation = gradient.Rotation + 0.5 task.wait() end end) return screenGui end -- Key binding for activation UserInputService.InputBegan:Connect(function(input, processed) if not processed and input.KeyCode == ACTIVATION_KEY then local success = toggleFlight() if success ~= nil then print(isFlying and "Flight activated" or "Flight deactivated") end end end) -- Auto-create UI local flightUI = createFlightUI()