local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local RunService = game:GetService("RunService") local driving = Instance.new("ScreenGui") local resolution = Instance.new("Frame") local shaker = Instance.new("Frame") local UIAspectRatioConstraint = Instance.new("UIAspectRatioConstraint") driving.Name = "driving" driving.Parent = game.Players.LocalPlayer:WaitForChild("PlayerGui") driving.IgnoreGuiInset = true driving.ZIndexBehavior = Enum.ZIndexBehavior.Sibling resolution.Name = "resolution" resolution.Parent = driving resolution.AnchorPoint = Vector2.new(0.5, 0.5) resolution.BackgroundColor3 = Color3.fromRGB(255, 255, 255) resolution.BackgroundTransparency = 1.000 resolution.BorderColor3 = Color3.fromRGB(0, 0, 0) resolution.BorderSizePixel = 0 resolution.Position = UDim2.new(0.5, 0, 0.5, 0) resolution.Size = UDim2.new(0, 850, 0, 830) UIAspectRatioConstraint.Parent = resolution shaker.Name = "shaker" shaker.Parent = resolution shaker.BackgroundColor3 = Color3.fromRGB(255, 255, 255) shaker.BackgroundTransparency = 1.000 shaker.BorderColor3 = Color3.fromRGB(0, 0, 0) shaker.BorderSizePixel = 0 shaker.Size = UDim2.new(1, 0, 1, 0) local player = Players.LocalPlayer local character = player.Character or player.CharacterAdded:Wait() local humanoid = character:WaitForChild("Humanoid") local rootPart = character:WaitForChild("HumanoidRootPart") local camera = workspace.CurrentCamera camera.FieldOfView = 120 humanoid.AutoRotate = false local playerGui = player:WaitForChild("PlayerGui") local drivingGui = playerGui:WaitForChild("driving") local resolutionFrame = drivingGui:WaitForChild("resolution") local shakerFrame = resolutionFrame:WaitForChild("shaker") local GEAR_POSITIONS = { [1] = {position = UDim2.new(0.6, 0, 0.77, 0), rotation = -20}, [3] = {position = UDim2.new(0.717, 0, 0.755, 0), rotation = 0}, [6] = {position = UDim2.new(0.8, 0, 0.77, 0), rotation = 20} } local isDriving = true local hiddenfling = true local currentSpeed = 0 local acceleration = 20 local deceleration = 30 local reverseSpeed = -20 local turnSpeed = 2 local steerSensitivity = 0.6 local steerDamping = 8 local GEAR_SPEEDS = { [1] = 50, [3] = 75, [6] = 100 } local isClicking = false local interactingWith = nil local currentGear = 1 local steerRotation = 0 local steerAttachPoint = nil local initialMousePos = nil local initialMouseAngle = 0 local initialSteerRotation = 0 local targetSteerRotation = 0 --borders local border1 = Instance.new("Frame") local border2 = Instance.new("Frame") local border3 = Instance.new("Frame") local border4 = Instance.new("Frame") border1.Name = "border1" border1.Parent = shaker border1.AnchorPoint = Vector2.new(0.5, 0.5) border1.BackgroundColor3 = Color3.fromRGB(0, 0, 0) border1.BorderColor3 = Color3.fromRGB(0, 0, 0) border1.BorderSizePixel = 0 border1.Position = UDim2.new(-1, 0, 0.5, 0) border1.Size = UDim2.new(2, 0, 2, 0) border1.ZIndex = 10 border2.Name = "border2" border2.Parent = shaker border2.AnchorPoint = Vector2.new(0.5, 0.5) border2.BackgroundColor3 = Color3.fromRGB(0, 0, 0) border2.BorderColor3 = Color3.fromRGB(0, 0, 0) border2.BorderSizePixel = 0 border2.Position = UDim2.new(2, 0, 0.5, 0) border2.Size = UDim2.new(2, 0, 2, 0) border2.ZIndex = 10 border3.Name = "border3" border3.Parent = shaker border3.AnchorPoint = Vector2.new(0.5, 0.5) border3.BackgroundColor3 = Color3.fromRGB(0, 0, 0) border3.BorderColor3 = Color3.fromRGB(0, 0, 0) border3.BorderSizePixel = 0 border3.Position = UDim2.new(0.5, 0, -1, 0) border3.Rotation = 90.000 border3.Size = UDim2.new(2, 0, 2, 0) border3.ZIndex = 10 border4.Name = "border4" border4.Parent = shaker border4.AnchorPoint = Vector2.new(0.5, 0.5) border4.BackgroundColor3 = Color3.fromRGB(0, 0, 0) border4.BorderColor3 = Color3.fromRGB(0, 0, 0) border4.BorderSizePixel = 0 border4.Position = UDim2.new(0.5, 0, 2, 0) border4.Rotation = 90.000 border4.Size = UDim2.new(2, 0, 2, 0) border4.ZIndex = 10 --interior local dashboard = Instance.new("ImageLabel") local roof = Instance.new("ImageLabel") local steer = Instance.new("ImageLabel") local mirror = Instance.new("ImageLabel") local card = Instance.new("ImageLabel") local gearshift = Instance.new("ImageLabel") local kris = Instance.new("ImageLabel") local asgore = Instance.new("ImageLabel") mirror.Name = "mirror" mirror.Parent = shaker mirror.BackgroundColor3 = Color3.fromRGB(255, 255, 255) mirror.BackgroundTransparency = 1.000 mirror.BorderColor3 = Color3.fromRGB(0, 0, 0) mirror.BorderSizePixel = 0 mirror.Position = UDim2.new(0.660000026, 0, 0, -5) mirror.Size = UDim2.new(0, 271, 0, 164) mirror.Image = "rbxassetid://108148370121980" mirror.ScaleType = Enum.ScaleType.Fit mirror.ResampleMode = Enum.ResamplerMode.Pixelated card.Name = "card" card.Parent = mirror card.BackgroundColor3 = Color3.fromRGB(255, 255, 255) card.BackgroundTransparency = 1.000 card.BorderColor3 = Color3.fromRGB(0, 0, 0) card.BorderSizePixel = 0 card.Position = UDim2.new(0, 10, 0, 160) card.Size = UDim2.new(0, 220, 0, 116) card.Image = "rbxassetid://118580044724001" card.ScaleType = Enum.ScaleType.Fit card.ResampleMode = Enum.ResamplerMode.Pixelated gearshift.Name = "gear shift" gearshift.Parent = shaker gearshift.BackgroundColor3 = Color3.fromRGB(255, 255, 255) gearshift.BackgroundTransparency = 1.000 gearshift.BorderColor3 = Color3.fromRGB(0, 0, 0) gearshift.BorderSizePixel = 0 gearshift.Position = UDim2.new(0.600000024, 0, 0.769999981, 0) gearshift.Rotation = -20.000 gearshift.Size = UDim2.new(0, 119, 0, 211) gearshift.Image = "rbxassetid://73135020398376" gearshift.ZIndex = 2 gearshift.ScaleType = Enum.ScaleType.Fit gearshift.ResampleMode = Enum.ResamplerMode.Pixelated kris.Name = "kris" kris.Parent = shaker kris.BackgroundColor3 = Color3.fromRGB(255, 255, 255) kris.BackgroundTransparency = 1.000 kris.BorderColor3 = Color3.fromRGB(0, 0, 0) kris.BorderSizePixel = 0 kris.Position = UDim2.new(0.875903606, 0, 0.532530129, 0) kris.Size = UDim2.new(0, 78, 0, 125) kris.Image = "rbxassetid://104835832385432" kris.ZIndex = 2 kris.ScaleType = Enum.ScaleType.Fit kris.ResampleMode = Enum.ResamplerMode.Pixelated local krisInitialPosition = kris.Position asgore.Name = "asgore" asgore.Parent = shaker asgore.BackgroundColor3 = Color3.fromRGB(255, 255, 255) asgore.BackgroundTransparency = 1.000 asgore.BorderColor3 = Color3.fromRGB(0, 0, 0) asgore.BorderSizePixel = 0 asgore.Position = UDim2.new(-0.0469879508, 0, 0.385542154, 0) asgore.Size = UDim2.new(0, 322, 0, 530) asgore.ZIndex = 8 asgore.Image = "rbxassetid://113112687203505" asgore.ScaleType = Enum.ScaleType.Fit asgore.ResampleMode = Enum.ResamplerMode.Pixelated local asgoreInitialPosition = asgore.Position dashboard.Name = "dashboard" dashboard.Parent = shaker dashboard.BackgroundColor3 = Color3.fromRGB(255, 255, 255) dashboard.BackgroundTransparency = 1.000 dashboard.BorderColor3 = Color3.fromRGB(0, 0, 0) dashboard.BorderSizePixel = 0 dashboard.Position = UDim2.new(-0.130120486, 0, 0.625301182, 0) dashboard.Size = UDim2.new(0, 971, 0, 350) dashboard.Image = "rbxassetid://130672484950006" dashboard.ScaleType = Enum.ScaleType.Fit dashboard.ResampleMode = Enum.ResamplerMode.Pixelated roof.Name = "roof" roof.Parent = shaker roof.BackgroundColor3 = Color3.fromRGB(255, 255, 255) roof.BackgroundTransparency = 1.000 roof.BorderColor3 = Color3.fromRGB(0, 0, 0) roof.BorderSizePixel = 0 roof.Position = UDim2.new(-0.0170000009, 0, 0, -5) roof.Size = UDim2.new(0, 550, 0, 82) roof.Image = "rbxassetid://138841128898473" roof.ScaleType = Enum.ScaleType.Fit roof.ResampleMode = Enum.ResamplerMode.Pixelated steer.Name = "steer" steer.Parent = shaker steer.BackgroundColor3 = Color3.fromRGB(255, 255, 255) steer.BackgroundTransparency = 1.000 steer.BorderColor3 = Color3.fromRGB(0, 0, 0) steer.BorderSizePixel = 0 steer.Position = UDim2.new(-0.008433735, 0, 0.702409625, 0) steer.Size = UDim2.new(0, 360, 0, 369) steer.ZIndex = 2 steer.Image = "rbxassetid://135660240933184" steer.ScaleType = Enum.ScaleType.Fit steer.ResampleMode = Enum.ResamplerMode.Pixelated local arm = Instance.new("ImageLabel") arm.Name = "Arm" arm.Parent = shakerFrame arm.Size = UDim2.new(0, 295, 0, 790) arm.Image = "rbxassetid://92773761241483" arm.ImageRectSize = Vector2.new(154, 411) arm.ImageRectOffset = Vector2.new(0, 0) arm.BackgroundTransparency = 1.0 arm.ResampleMode = Enum.ResamplerMode.Pixelated arm.ScaleType = Enum.ScaleType.Fit arm.ZIndex = 4 arm.AnchorPoint = Vector2.new(0.5, 1) --hitboxes local hitbox = Instance.new("Frame") local hitbox_2 = Instance.new("Frame") local hitbox_3 = Instance.new("Frame") local hitbox_4 = Instance.new("Frame") local hitbox_5 = Instance.new("Frame") local hitbox_6 = Instance.new("Frame") local hitbox_7 = Instance.new("Frame") local hitbox_8 = Instance.new("Frame") local hitbox_9 = Instance.new("Frame") local hitbox_10 = Instance.new("Frame") local hitbox_11 = Instance.new("Frame") local hitbox_12 = Instance.new("Frame") local hitbox_13 = Instance.new("Frame") local hitbox_14 = Instance.new("Frame") local honk = Instance.new("Frame") hitbox.Name = "hitbox" hitbox.Parent = steer hitbox.BackgroundColor3 = Color3.fromRGB(255, 255, 255) hitbox.BackgroundTransparency = 1.000 hitbox.BorderColor3 = Color3.fromRGB(0, 0, 0) hitbox.BorderSizePixel = 0 hitbox.Position = UDim2.new(0, 314, 0, 163) hitbox.Size = UDim2.new(0, 38, 0, 82) hitbox_2.Name = "hitbox" hitbox_2.Parent = steer hitbox_2.BackgroundColor3 = Color3.fromRGB(255, 255, 255) hitbox_2.BackgroundTransparency = 1.000 hitbox_2.BorderColor3 = Color3.fromRGB(0, 0, 0) hitbox_2.BorderSizePixel = 0 hitbox_2.Position = UDim2.new(0, 282, 0, 46) hitbox_2.Rotation = -40.000 hitbox_2.Size = UDim2.new(0, 38, 0, 82) hitbox_3.Name = "hitbox" hitbox_3.Parent = steer hitbox_3.BackgroundColor3 = Color3.fromRGB(255, 255, 255) hitbox_3.BackgroundTransparency = 1.000 hitbox_3.BorderColor3 = Color3.fromRGB(0, 0, 0) hitbox_3.BorderSizePixel = 0 hitbox_3.Position = UDim2.new(0, 222, 0, 0) hitbox_3.Rotation = -60.000 hitbox_3.Size = UDim2.new(0, 38, 0, 82) hitbox_4.Name = "hitbox" hitbox_4.Parent = steer hitbox_4.BackgroundColor3 = Color3.fromRGB(255, 255, 255) hitbox_4.BackgroundTransparency = 1.000 hitbox_4.BorderColor3 = Color3.fromRGB(0, 0, 0) hitbox_4.BorderSizePixel = 0 hitbox_4.Position = UDim2.new(0, 161, 0, -16) hitbox_4.Rotation = -90.000 hitbox_4.Size = UDim2.new(0, 38, 0, 82) hitbox_5.Name = "hitbox" hitbox_5.Parent = steer hitbox_5.BackgroundColor3 = Color3.fromRGB(255, 255, 255) hitbox_5.BackgroundTransparency = 1.000 hitbox_5.BorderColor3 = Color3.fromRGB(0, 0, 0) hitbox_5.BorderSizePixel = 0 hitbox_5.Position = UDim2.new(0, 90, 0, 0) hitbox_5.Rotation = 60.000 hitbox_5.Size = UDim2.new(0, 38, 0, 82) hitbox_6.Name = "hitbox" hitbox_6.Parent = steer hitbox_6.BackgroundColor3 = Color3.fromRGB(255, 255, 255) hitbox_6.BackgroundTransparency = 1.000 hitbox_6.BorderColor3 = Color3.fromRGB(0, 0, 0) hitbox_6.BorderSizePixel = 0 hitbox_6.Position = UDim2.new(0, 307, 0, 92) hitbox_6.Rotation = -20.000 hitbox_6.Size = UDim2.new(0, 38, 0, 82) hitbox_7.Name = "hitbox" hitbox_7.Parent = steer hitbox_7.BackgroundColor3 = Color3.fromRGB(255, 255, 255) hitbox_7.BackgroundTransparency = 1.000 hitbox_7.BorderColor3 = Color3.fromRGB(0, 0, 0) hitbox_7.BorderSizePixel = 0 hitbox_7.Position = UDim2.new(0, 39, 0, 46) hitbox_7.Rotation = 40.000 hitbox_7.Size = UDim2.new(0, 38, 0, 82) hitbox_8.Name = "hitbox" hitbox_8.Parent = steer hitbox_8.BackgroundColor3 = Color3.fromRGB(255, 255, 255) hitbox_8.BackgroundTransparency = 1.000 hitbox_8.BorderColor3 = Color3.fromRGB(0, 0, 0) hitbox_8.BorderSizePixel = 0 hitbox_8.Position = UDim2.new(0, 13, 0, 92) hitbox_8.Rotation = 20.000 hitbox_8.Size = UDim2.new(0, 38, 0, 82) hitbox_9.Name = "hitbox" hitbox_9.Parent = steer hitbox_9.BackgroundColor3 = Color3.fromRGB(255, 255, 255) hitbox_9.BackgroundTransparency = 1.000 hitbox_9.BorderColor3 = Color3.fromRGB(0, 0, 0) hitbox_9.BorderSizePixel = 0 hitbox_9.Position = UDim2.new(0, 7, 0, 167) hitbox_9.Size = UDim2.new(0, 38, 0, 82) hitbox_10.Name = "hitbox" hitbox_10.Parent = steer hitbox_10.BackgroundColor3 = Color3.fromRGB(255, 255, 255) hitbox_10.BackgroundTransparency = 1.000 hitbox_10.BorderColor3 = Color3.fromRGB(0, 0, 0) hitbox_10.BorderSizePixel = 0 hitbox_10.Position = UDim2.new(0, 25, 0, 231) hitbox_10.Rotation = -20.000 hitbox_10.Size = UDim2.new(0, 38, 0, 82) hitbox_11.Name = "hitbox" hitbox_11.Parent = steer hitbox_11.BackgroundColor3 = Color3.fromRGB(255, 255, 255) hitbox_11.BackgroundTransparency = 1.000 hitbox_11.BorderColor3 = Color3.fromRGB(0, 0, 0) hitbox_11.BorderSizePixel = 0 hitbox_11.Position = UDim2.new(0, 63, 0, 270) hitbox_11.Rotation = -50.000 hitbox_11.Size = UDim2.new(0, 38, 0, 82) hitbox_12.Name = "hitbox" hitbox_12.Parent = steer hitbox_12.BackgroundColor3 = Color3.fromRGB(255, 255, 255) hitbox_12.BackgroundTransparency = 1.000 hitbox_12.BorderColor3 = Color3.fromRGB(0, 0, 0) hitbox_12.BorderSizePixel = 0 hitbox_12.Position = UDim2.new(0, 269, 0, 270) hitbox_12.Rotation = 50.000 hitbox_12.Size = UDim2.new(0, 38, 0, 82) hitbox_13.Name = "hitbox" hitbox_13.Parent = steer hitbox_13.BackgroundColor3 = Color3.fromRGB(255, 255, 255) hitbox_13.BackgroundTransparency = 1.000 hitbox_13.BorderColor3 = Color3.fromRGB(0, 0, 0) hitbox_13.BorderSizePixel = 0 hitbox_13.Position = UDim2.new(0, 299, 0, 217) hitbox_13.Rotation = 20.000 hitbox_13.Size = UDim2.new(0, 38, 0, 82) hitbox_14.Name = "hitbox" hitbox_14.Parent = steer hitbox_14.BackgroundColor3 = Color3.fromRGB(255, 255, 255) hitbox_14.BackgroundTransparency = 1.000 hitbox_14.BorderColor3 = Color3.fromRGB(0, 0, 0) hitbox_14.BorderSizePixel = 0 hitbox_14.Position = UDim2.new(0, 161, 0, 270) hitbox_14.Rotation = 90.000 hitbox_14.Size = UDim2.new(0, 38, 0, 148) honk.Name = "honk" honk.Parent = steer honk.BackgroundColor3 = Color3.fromRGB(255, 255, 255) honk.BackgroundTransparency = 1.000 honk.BorderColor3 = Color3.fromRGB(0, 0, 0) honk.BorderSizePixel = 0 honk.Position = UDim2.new(0, 130, 0, 138) honk.Size = UDim2.new(0, 99, 0, 93) local CONTROLS = Instance.new("ImageLabel") -- there was supposed to be a full on lil introduction but didnt get to it CONTROLS.Name = "CONTROLS" CONTROLS.Parent = driving CONTROLS.BackgroundColor3 = Color3.fromRGB(0, 0, 0) CONTROLS.BackgroundTransparency = 1.000 CONTROLS.BorderColor3 = Color3.fromRGB(0, 0, 0) CONTROLS.BorderSizePixel = 0 CONTROLS.Size = UDim2.new(1, 0, 1, 0) CONTROLS.Image = "rbxassetid://134259058221068" CONTROLS.ImageTransparency = 1.000 CONTROLS.ScaleType = Enum.ScaleType.Fit CONTROLS.ResampleMode = Enum.ResamplerMode.Pixelated local honkSound = Instance.new("Sound") honkSound.SoundId = "rbxassetid://70558473239102" honkSound.Parent = shakerFrame honkSound.Volume = 10 local music = Instance.new("Sound") local equalizer1 = Instance.new("EqualizerSoundEffect") local equalizer2 = Instance.new("EqualizerSoundEffect") local distortionEffect = Instance.new("DistortionSoundEffect") music.SoundId = "rbxassetid://124785694045206" music.Volume = 10 music.PlaybackSpeed = 0.1 music.Looped = true music.Parent = shakerFrame equalizer1.HighGain = 0 equalizer1.LowGain = 100 equalizer1.MidGain = 0 equalizer1.Priority = 1 equalizer1.Parent = music equalizer2.HighGain = 0 equalizer2.LowGain = 100 equalizer2.MidGain = 0 equalizer2.Priority = 1 equalizer2.Parent = music distortionEffect.Level = 0.4 distortionEffect.Priority = 2 distortionEffect.Parent = music music:Play() local steerImg = shakerFrame:WaitForChild("steer") local gearImg = shakerFrame:WaitForChild("gear shift") local honkFrame = steerImg:WaitForChild("honk") local mirrorImg = shakerFrame:WaitForChild("mirror") local currentBounceOffset = 0 local bounceDecay = 0.5 local bounceMultiplier = 0.01 local loudnessThreshold = 5555 local function getMousePosition() local mousePos = UserInputService:GetMouseLocation() local screenSize = resolutionFrame.AbsoluteSize local screenPos = resolutionFrame.AbsolutePosition return Vector2.new(mousePos.X - screenPos.X, mousePos.Y - screenPos.Y) end local function isMouseOverGuiObject(guiObject) local mouse = getMousePosition() local absPos = guiObject.AbsolutePosition - resolutionFrame.AbsolutePosition local absSize = guiObject.AbsoluteSize return mouse.X >= absPos.X and mouse.X <= absPos.X + absSize.X and mouse.Y >= absPos.Y and mouse.Y <= absPos.Y + absSize.Y end local function getNearestHitbox(mousePos) local nearestHitbox = nil local nearestDistance = math.huge for _, child in pairs(steerImg:GetChildren()) do if child.Name == "hitbox" and child:IsA("Frame") then local hitboxCenter = child.AbsolutePosition + child.AbsoluteSize / 2 - resolutionFrame.AbsolutePosition local distance = (Vector2.new(hitboxCenter.X, hitboxCenter.Y) - mousePos).Magnitude if distance < nearestDistance then nearestDistance = distance nearestHitbox = child end end end return nearestHitbox end local function getGearFromMouseX(mouseX) local screenWidth = resolutionFrame.AbsoluteSize.X local relativeX = mouseX / screenWidth if relativeX < 0.65 then return 1 elseif relativeX > 0.75 then return 6 else return 3 end end local function updateArm() local mousePos = getMousePosition() local screenHeight = resolutionFrame.AbsoluteSize.Y if screenHeight > 0 then local mouseYRatio = math.clamp(mousePos.Y / screenHeight, 0, 1) local yOffset = (mouseYRatio - 0.5) * 20 asgore.Position = UDim2.new(asgoreInitialPosition.X.Scale, asgoreInitialPosition.X.Offset, asgoreInitialPosition.Y.Scale, asgoreInitialPosition.Y.Offset + yOffset) end local screenSize = resolutionFrame.AbsoluteSize local target = Vector2.new(mousePos.X, mousePos.Y) if interactingWith == "steer" and steerAttachPoint then local steerCenter = steerImg.AbsolutePosition + steerImg.AbsoluteSize / 2 - resolutionFrame.AbsolutePosition local currentMouseAngle = math.atan2(mousePos.Y - steerCenter.Y, mousePos.X - steerCenter.X) local angleDelta = currentMouseAngle - initialMouseAngle if angleDelta > math.pi then angleDelta = angleDelta - (2 * math.pi) elseif angleDelta < -math.pi then angleDelta = angleDelta + (2 * math.pi) end targetSteerRotation = initialSteerRotation + math.deg(angleDelta) * steerSensitivity targetSteerRotation = math.clamp(targetSteerRotation, -70, 90) local hitboxCenter = steerAttachPoint.AbsolutePosition + steerAttachPoint.AbsoluteSize / 2 - resolutionFrame.AbsolutePosition local radius = (Vector2.new(hitboxCenter.X, hitboxCenter.Y) - Vector2.new(steerCenter.X, steerCenter.Y)).Magnitude local initialHitboxAngle = math.atan2(hitboxCenter.Y - steerCenter.Y, hitboxCenter.X - steerCenter.X) local currentHitboxAngle = initialHitboxAngle + math.rad(steerRotation) target = Vector2.new(steerCenter.X + math.cos(currentHitboxAngle) * radius, steerCenter.Y + math.sin(currentHitboxAngle) * radius) elseif interactingWith == "gearshift" then currentGear = getGearFromMouseX(mousePos.X) local gearData = GEAR_POSITIONS[currentGear] target = mousePos gearImg.Position = gearData.position gearImg.Rotation = gearData.rotation end local centerScreen = screenSize / 2 local pivotBasePosition = Vector2.new(centerScreen.X, screenSize.Y * 1.2) local mouseOffset = mousePos - centerScreen local pivotPoint = pivotBasePosition + Vector2.new(mouseOffset.X * 0.85, mouseOffset.Y * 1) local gearshiftYOffset = interactingWith == "gearshift" and -150 or 0 local steerYOffset = interactingWith == "steer" and -150 or 0 local targetWithOffset = Vector2.new(target.X, target.Y + (gearshiftYOffset + steerYOffset)) local vectorToTarget = targetWithOffset - pivotPoint local angleToTarget = math.atan2(vectorToTarget.Y, vectorToTarget.X) arm.Rotation = math.deg(angleToTarget) + 90 arm.Position = UDim2.new(0, pivotPoint.X, 0, pivotPoint.Y) arm.Size = UDim2.new(0, 295, 0, 790) end RunService.Stepped:Connect(function() for _, otherPlayer in pairs(Players:GetPlayers()) do if otherPlayer ~= player and otherPlayer.Character then for _, part in pairs(otherPlayer.Character:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = false end end end end end) UserInputService.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then isClicking = true initialMousePos = getMousePosition() arm.ImageRectOffset = Vector2.new(154, 0) local mousePos = getMousePosition() if isMouseOverGuiObject(honkFrame) then honkSound:Play() elseif isMouseOverGuiObject(steerImg) then interactingWith = "steer" steerAttachPoint = getNearestHitbox(mousePos) if steerAttachPoint then local steerCenter = steerImg.AbsolutePosition + steerImg.AbsoluteSize / 2 - resolutionFrame.AbsolutePosition initialMouseAngle = math.atan2(mousePos.Y - steerCenter.Y, mousePos.X - steerCenter.X) initialSteerRotation = steerRotation end elseif isMouseOverGuiObject(gearImg) then interactingWith = "gearshift" end end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then isClicking = false initialMousePos = nil arm.ImageRectOffset = Vector2.new(0, 0) if interactingWith == "steer" then targetSteerRotation = 0 end interactingWith = nil steerAttachPoint = nil end end) local function onRenderStepped(dt) updateArm() local loudness = music.PlaybackLoudness currentBounceOffset = currentBounceOffset * bounceDecay if loudness > loudnessThreshold then local newBounce = (loudness - loudnessThreshold) * bounceMultiplier if newBounce > currentBounceOffset then currentBounceOffset = newBounce end end local targetPosition = UDim2.new(krisInitialPosition.X.Scale, krisInitialPosition.X.Offset, krisInitialPosition.Y.Scale, krisInitialPosition.Y.Offset - currentBounceOffset) kris.Position = targetPosition local musicSway = 0 if currentBounceOffset > 0.005 then local swayFrequency = 8 local swayAmplitude = currentBounceOffset * 3 musicSway = math.sin(tick() * swayFrequency) * swayAmplitude end if not isDriving then return end steerRotation = steerRotation + (targetSteerRotation - steerRotation) * steerDamping * dt steerImg.Rotation = steerRotation shakerFrame.Rotation = steerRotation * 0.05 camera.CameraType = Enum.CameraType.Scriptable UserInputService.MouseBehavior = Enum.MouseBehavior.Default local head = character:FindFirstChild("Head") if head then camera.CFrame = CFrame.new(head.Position, head.Position + rootPart.CFrame.LookVector) end local maxSpeed = GEAR_SPEEDS[currentGear] or 50 local moveDirection = 0 if UserInputService:IsKeyDown(Enum.KeyCode.W) then moveDirection = 1 elseif UserInputService:IsKeyDown(Enum.KeyCode.S) then moveDirection = -1 end if moveDirection == 1 then currentSpeed = math.min(maxSpeed, currentSpeed + acceleration * dt) elseif moveDirection == -1 then currentSpeed = math.max(reverseSpeed, currentSpeed - acceleration * dt) else if currentSpeed > 0 then currentSpeed = math.max(0, currentSpeed - deceleration * dt) else currentSpeed = math.min(0, currentSpeed + deceleration * dt) end end local turn = 0 if steerRotation ~= 0 then turn = -steerRotation / 45 * turnSpeed * (currentSpeed / maxSpeed) end local steerSway = turn * 2.5 local asgoreTargetRotation = -steerSway local mirrorrot = steerSway mirrorImg.Rotation = mirrorImg.Rotation + (mirrorrot - mirrorImg.Rotation) * 7 * dt kris.Rotation = kris.Rotation + (musicSway - kris.Rotation) * 7 * dt asgore.Rotation = asgore.Rotation + (asgoreTargetRotation - asgore.Rotation) * 7 * dt if currentSpeed ~= 0 then rootPart.CFrame = rootPart.CFrame * CFrame.Angles(0, math.rad(turn) * dt * 60, 0) rootPart.Velocity = rootPart.CFrame.LookVector * currentSpeed else rootPart.Velocity = Vector3.new(0,0,0) end end RunService.RenderStepped:Connect(onRenderStepped) RunService.Heartbeat:Connect(function() if hiddenfling then local c = Players.LocalPlayer.Character if c and c.Parent then local hrp = c:FindFirstChild("HumanoidRootPart") if hrp then local vel = hrp.Velocity hrp.Velocity = hrp.Velocity.Unit * Vector3.new(100000066612410000, 0, 1000000004444455000) + Vector3.new(0, 250004444000046640000, 0) RunService.RenderStepped:Wait() if c and c.Parent and hrp and hrp.Parent then hrp.Velocity = vel end end end end end)