-- Kartohas Fly GUI (With Custom Speed Input) local Players = game:GetService("Players") local RunService = game:GetService("RunService") local CoreGui = game:GetService("CoreGui") local LocalPlayer = Players.LocalPlayer local Camera = workspace.CurrentCamera -- UI Setup local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "KartohasFlyGUI_V3" ScreenGui.ResetOnSpawn = false if syn and syn.protect_gui then syn.protect_gui(ScreenGui) end ScreenGui.Parent = CoreGui -- Main Panel local MainFrame = Instance.new("Frame") MainFrame.Size = UDim2.new(0, 220, 0, 250) MainFrame.Position = UDim2.new(0.5, -110, 0.4, -125) MainFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 20) MainFrame.BorderSizePixel = 1 MainFrame.BorderColor3 = Color3.fromRGB(80, 80, 80) MainFrame.Active = true MainFrame.Draggable = true MainFrame.Parent = ScreenGui -- Title local Title = Instance.new("TextLabel") Title.Size = UDim2.new(1, 0, 0, 35) Title.BackgroundColor3 = Color3.fromRGB(30, 30, 30) Title.BorderSizePixel = 1 Title.BorderColor3 = Color3.fromRGB(80, 80, 80) Title.Text = "Kartohas Fly GUI" Title.TextColor3 = Color3.fromRGB(255, 255, 255) Title.Font = Enum.Font.Code Title.TextSize = 14 Title.Parent = MainFrame -- State Variables local flying = false local noclip = false local flySpeed = 50 local bVelo = nil local bGyro = nil -- Helper function for standard pixel buttons local function createButton(text, yPos, callback) local btn = Instance.new("TextButton") btn.Size = UDim2.new(0, 180, 0, 35) btn.Position = UDim2.new(0.5, -90, 0, yPos) btn.BackgroundColor3 = Color3.fromRGB(40, 40, 40) btn.BorderSizePixel = 1 btn.BorderColor3 = Color3.fromRGB(70, 70, 70) btn.Text = text btn.TextColor3 = Color3.fromRGB(230, 230, 230) btn.Font = Enum.Font.Code btn.TextSize = 14 btn.Parent = MainFrame btn.MouseButton1Click:Connect(callback) return btn end -- Fly Functionality local function cleanFlyForces() if bVelo then bVelo:Destroy() bVelo = nil end if bGyro then bGyro:Destroy() bGyro = nil end end local FlyBtn = createButton("Fly: OFF", 55, function() flying = not flying if flying then FlyBtn.Text = "Fly: ON" FlyBtn.BackgroundColor3 = Color3.fromRGB(35, 130, 80) else FlyBtn.Text = "Fly: OFF" FlyBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 40) cleanFlyForces() local char = LocalPlayer.Character local hum = char and char:FindFirstChildOfClass("Humanoid") if hum then hum:ChangeState(Enum.HumanoidStateType.GettingUp) end end end) -- Noclip Functionality local NoclipBtn = createButton("Noclip: OFF", 105, function() noclip = not noclip if noclip then NoclipBtn.Text = "Noclip: ON" NoclipBtn.BackgroundColor3 = Color3.fromRGB(35, 130, 80) else NoclipBtn.Text = "Noclip: OFF" NoclipBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 40) end end) -- Speed Label Setup local SpeedLabel = Instance.new("TextLabel") SpeedLabel.Size = UDim2.new(0, 180, 0, 20) SpeedLabel.Position = UDim2.new(0.5, -90, 0, 155) SpeedLabel.BackgroundTransparency = 1 SpeedLabel.Text = "Set Fly Speed:" SpeedLabel.TextColor3 = Color3.fromRGB(200, 200, 200) SpeedLabel.Font = Enum.Font.Code SpeedLabel.TextSize = 14 SpeedLabel.Parent = MainFrame -- Custom Speed Input Box (Type any speed here!) local SpeedInput = Instance.new("TextBox") SpeedInput.Size = UDim2.new(0, 180, 0, 35) SpeedInput.Position = UDim2.new(0.5, -90, 0, 185) SpeedInput.BackgroundColor3 = Color3.fromRGB(40, 40, 40) SpeedInput.BorderSizePixel = 1 SpeedInput.BorderColor3 = Color3.fromRGB(70, 70, 70) SpeedInput.Text = tostring(flySpeed) SpeedInput.TextColor3 = Color3.fromRGB(255, 255, 255) SpeedInput.Font = Enum.Font.Code SpeedInput.TextSize = 14 SpeedInput.ClipsDescendants = true SpeedInput.Parent = MainFrame -- Update speed when user finishes typing SpeedInput.FocusLost:Connect(function(enterPressed) local numericValue = tonumber(SpeedInput.Text) if numericValue and numericValue > 0 then flySpeed = numericValue SpeedInput.Text = tostring(flySpeed) else -- Reset to current speed if input is invalid text SpeedInput.Text = tostring(flySpeed) end end) -- Main Dynamic Run Loop RunService.Stepped:Connect(function() local Character = LocalPlayer.Character if not Character then return end -- Noclip Execution if noclip then for _, part in pairs(Character:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = false end end end local RootPart = Character:FindFirstChild("HumanoidRootPart") local Humanoid = Character:FindFirstChildOfClass("Humanoid") if not RootPart or not Humanoid then return end -- Flight Engine if flying then if not bVelo or bVelo.Parent ~= RootPart then cleanFlyForces() bVelo = Instance.new("BodyVelocity") bVelo.MaxForce = Vector3.new(1e5, 1e5, 1e5) bVelo.Velocity = Vector3.new(0, 0, 0) bVelo.Parent = RootPart bGyro = Instance.new("BodyGyro") bGyro.MaxTorque = Vector3.new(1e5, 1e5, 1e5) bGyro.CFrame = RootPart.CFrame bGyro.Parent = RootPart end bGyro.CFrame = Camera.CFrame local dir = Humanoid.MoveDirection if dir.Magnitude > 0 then local targetVelocity = Camera.CFrame:VectorToWorldSpace(Vector3.new(dir.X, 0, dir.Z)) if dir.Z ~= 0 then targetVelocity = targetVelocity + Vector3.new(0, Camera.CFrame.LookVector.Y * -dir.Z, 0) end bVelo.Velocity = targetVelocity.Unit * flySpeed else bVelo.Velocity = Vector3.new(0, 0, 0) end Humanoid:ChangeState(Enum.HumanoidStateType.Physics) else cleanFlyForces() end end)