local player = game.Players.LocalPlayer local UIS = game:GetService("UserInputService") local runService = game:GetService("RunService") local camera = workspace.CurrentCamera -- STATES local states = { AimAssist = false, Fly = false, Speed = false, UIOpen = true } -- SETTINGS local settings = { AimSmoothness = 0.15, SpeedAmount = 50, FlyPower = 50 } -- GUI SETUP local gui = Instance.new("ScreenGui") gui.Name = "NoobGenieHub" gui.Parent = player:WaitForChild("PlayerGui") local frame = Instance.new("Frame", gui) frame.Size = UDim2.new(0, 260, 0, 320) frame.Position = UDim2.new(0, 20, 0.5, -160) frame.BackgroundColor3 = Color3.fromRGB(25,25,25) -- DRAGGING local dragging, dragInput, dragStart, startPos frame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true dragStart = input.Position startPos = frame.Position end end) frame.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end end) UIS.InputChanged:Connect(function(input) if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then local delta = input.Position - dragStart frame.Position = UDim2.new( startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y ) end end) -- TITLE local title = Instance.new("TextLabel", frame) title.Size = UDim2.new(1,0,0,40) title.Text = "NoobGenie Hub" title.BackgroundColor3 = Color3.fromRGB(40,40,40) title.TextColor3 = Color3.new(1,1,1) -- TABS local mainTab = Instance.new("Frame", frame) mainTab.Size = UDim2.new(1,0,1,-70) mainTab.Position = UDim2.new(0,0,0,70) local settingsTab = Instance.new("Frame", frame) settingsTab.Size = mainTab.Size settingsTab.Position = mainTab.Position settingsTab.Visible = false -- TAB BUTTONS local mainBtn = Instance.new("TextButton", frame) mainBtn.Size = UDim2.new(0.5,0,0,30) mainBtn.Position = UDim2.new(0,0,0,40) mainBtn.Text = "Main" local settingsBtn = Instance.new("TextButton", frame) settingsBtn.Size = UDim2.new(0.5,0,0,30) settingsBtn.Position = UDim2.new(0.5,0,0,40) settingsBtn.Text = "Settings" mainBtn.MouseButton1Click:Connect(function() mainTab.Visible = true settingsTab.Visible = false end) settingsBtn.MouseButton1Click:Connect(function() mainTab.Visible = false settingsTab.Visible = true end) -- BUTTON CREATOR local function makeButton(parent, text, y) local btn = Instance.new("TextButton", parent) btn.Size = UDim2.new(1, -20, 0, 40) btn.Position = UDim2.new(0, 10, 0, y) btn.Text = text btn.BackgroundColor3 = Color3.fromRGB(60,60,60) btn.TextColor3 = Color3.new(1,1,1) return btn end -- MAIN BUTTONS local aimBtn = makeButton(mainTab, "Aim Assist: OFF", 10) local flyBtn = makeButton(mainTab, "Fly: OFF", 60) local speedBtn = makeButton(mainTab, "Speed: OFF", 110) -- SETTINGS UI local function makeSetting(parent, text, y) local label = Instance.new("TextLabel", parent) label.Size = UDim2.new(1, -20, 0, 30) label.Position = UDim2.new(0, 10, 0, y) label.Text = text label.TextColor3 = Color3.new(1,1,1) label.BackgroundTransparency = 1 local minus = Instance.new("TextButton", parent) minus.Size = UDim2.new(0, 40, 0, 30) minus.Position = UDim2.new(0, 10, 0, y+30) minus.Text = "-" local plus = Instance.new("TextButton", parent) plus.Size = UDim2.new(0, 40, 0, 30) plus.Position = UDim2.new(0, 60, 0, y+30) plus.Text = "+" return label, minus, plus end local aimLabel, aimMinus, aimPlus = makeSetting(settingsTab, "", 10) local speedLabel, speedMinus, speedPlus = makeSetting(settingsTab, "", 90) local flyLabel, flyMinus, flyPlus = makeSetting(settingsTab, "", 170) -- UPDATE LABELS local function updateLabels() aimLabel.Text = "Aim Smoothness: "..settings.AimSmoothness speedLabel.Text = "Speed: "..settings.SpeedAmount flyLabel.Text = "Fly Power: "..settings.FlyPower end updateLabels() -- SETTINGS LOGIC aimMinus.MouseButton1Click:Connect(function() settings.AimSmoothness = math.max(0.05, settings.AimSmoothness - 0.05) updateLabels() end) aimPlus.MouseButton1Click:Connect(function() settings.AimSmoothness += 0.05 updateLabels() end) speedMinus.MouseButton1Click:Connect(function() settings.SpeedAmount = math.max(16, settings.SpeedAmount - 5) updateLabels() end) speedPlus.MouseButton1Click:Connect(function() settings.SpeedAmount += 5 updateLabels() end) flyMinus.MouseButton1Click:Connect(function() settings.FlyPower = math.max(10, settings.FlyPower - 5) updateLabels() end) flyPlus.MouseButton1Click:Connect(function() settings.FlyPower += 5 updateLabels() end) -- TOGGLES local function toggleAim() states.AimAssist = not states.AimAssist aimBtn.Text = "Aim Assist: " .. (states.AimAssist and "ON" or "OFF") end local function toggleFly() states.Fly = not states.Fly flyBtn.Text = "Fly: " .. (states.Fly and "ON" or "OFF") end local function toggleSpeed() states.Speed = not states.Speed local char = player.Character if char and char:FindFirstChild("Humanoid") then char.Humanoid.WalkSpeed = states.Speed and settings.SpeedAmount or 16 end speedBtn.Text = "Speed: " .. (states.Speed and "ON" or "OFF") end -- BUTTON EVENTS aimBtn.MouseButton1Click:Connect(toggleAim) flyBtn.MouseButton1Click:Connect(toggleFly) speedBtn.MouseButton1Click:Connect(toggleSpeed) -- KEYBINDS UIS.InputBegan:Connect(function(input, gpe) if gpe then return end if input.KeyCode == Enum.KeyCode.E then toggleAim() end if input.KeyCode == Enum.KeyCode.F then toggleFly() end if input.KeyCode == Enum.KeyCode.LeftShift then toggleSpeed() end if input.KeyCode == Enum.KeyCode.RightControl then states.UIOpen = not states.UIOpen gui.Enabled = states.UIOpen end end) -- AIM FUNCTION local function getClosestTarget() local closest, shortest = nil, math.huge for _, plr in pairs(game.Players:GetPlayers()) do if plr ~= player and plr.Character and plr.Character:FindFirstChild("Head") then local head = plr.Character.Head local pos, onScreen = camera:WorldToViewportPoint(head.Position) if onScreen then local dist = (Vector2.new(pos.X, pos.Y) - Vector2.new(camera.ViewportSize.X/2, camera.ViewportSize.Y/2)).Magnitude if dist < shortest then shortest = dist closest = head end end end end return closest end -- MAIN LOOP runService.RenderStepped:Connect(function() -- AIM if states.AimAssist then local target = getClosestTarget() if target then camera.CFrame = camera.CFrame:Lerp( CFrame.new(camera.CFrame.Position, target.Position), settings.AimSmoothness ) end end -- FLY local char = player.Character if char and char:FindFirstChild("HumanoidRootPart") then local hrp = char.HumanoidRootPart if states.Fly then if not hrp:FindFirstChild("FlyForce") then local bv = Instance.new("BodyVelocity") bv.Name = "FlyForce" bv.MaxForce = Vector3.new(99999,99999,99999) bv.Parent = hrp end hrp.FlyForce.Velocity = Vector3.new(0, settings.FlyPower, 0) else if hrp:FindFirstChild("FlyForce") then hrp.FlyForce:Destroy() end end end end)