-- NEW UPDATE 1.0.1 -- Added Keybinds -- Added Support For More Executors! -- Load Fluent local ok, Fluent = pcall(function() return loadstring(game:HttpGet("https://github.com/dawid-scripts/Fluent/releases/latest/download/main.lua"))() end) if not ok or not Fluent then warn("Failed to load Fluent library. Aborting UI creation.") return end -- Create Window local Window = Fluent:CreateWindow({ Title = "Undetected", SubTitle = "By Casual", TabWidth = 160, Size = UDim2.fromOffset(600, 600), Acrylic = true, Theme = "Dark", }) local SpeedTab = Window:AddTab({ Title = "Speed", Icon = "zap" }) local FallTab = Window:AddTab({Title = "Anti-Fall", Icon = "arrow-down"}) local VisualTab = Window:AddTab({Title="Visuals", Icon="eye"}) local ACFlaggerTab = Window:AddTab({Title="Anti-Cheat", Icon="shield"}) -- ==================== NEW KEYBINDS TAB ==================== local KeybindsTab = Window:AddTab({ Title = "Keybinds", Icon = "keyboard" }) local SpeedEnabled = false local SpeedValue = 50 local JumpEnabled = false local JumpBoost = 50 local NoclipEnabled = false local AntiFallEnabled = false local FallThreshold = -50 local safeHeight = 5 local liftHeight = 10 -- === CUSTOMIZABLE KEYBINDS REFERENCES === local SpeedToggleUI, JumpToggleUI, NoclipToggleUI, AntiFallToggleUI -- ==================== SPEED TAB ==================== SpeedToggleUI = SpeedTab:AddToggle("SpeedToggle", { Title = "Smooth CFrame Speed", Default = false }) SpeedToggleUI:OnChanged(function(v) SpeedEnabled = v end) SpeedTab:AddSlider("SpeedSlider", { Title = "Speed Amount", Description = "Recommended: 2 - 6 for legit", Default = 50, Min = 1, Max = 250, Rounding = 1 }):OnChanged(function(v) SpeedValue = v end) JumpToggleUI = SpeedTab:AddToggle("JumpToggle", { Title = "Smooth Jump Boost", Default = false }) JumpToggleUI:OnChanged(function(v) JumpEnabled = v end) SpeedTab:AddSlider("JumpSlider", { Title = "Jump Boost Amount", Description = "Recommended: 2 - 10 for legit", Default = 50, Min = 1, Max = 1000, Rounding = 1 }):OnChanged(function(v) JumpBoost = v end) NoclipToggleUI = SpeedTab:AddToggle("NoclipToggle", { Title = "Enable Undetectable Noclip", Default = false }) NoclipToggleUI:OnChanged(function(v) NoclipEnabled = v end) -- ==================== ANTI-FALL TAB ==================== AntiFallToggleUI = FallTab:AddToggle("AntiFallToggle", { Title = "Enable Anti-Fall", Default = false }) AntiFallToggleUI:OnChanged(function(v) AntiFallEnabled = v end) FallTab:AddSlider("FallThresholdSlider", { Title = "Fall Velocity Threshold", Description = "Velocity at which Anti-Fall triggers", Default = -50, Min = -200, Max = -10, Rounding = 1 }):OnChanged(function(v) FallThreshold = v end) FallTab:AddSlider("SafeHeightSlider", { Title = "Safe Height", Description = "Distance to ground before Anti-Fall triggers", Default = 5, Min = 1, Max = 20, Rounding = 1 }):OnChanged(function(v) safeHeight = v end) FallTab:AddSlider("LiftHeightSlider", { Title = "Lift Height", Description = "How much you lift when Anti-Fall triggers", Default = 10, Min = 5, Max = 30, Rounding = 1 }):OnChanged(function(v) liftHeight = v end) -- ==================== VISUALS TAB ==================== local Lighting = game:GetService("Lighting") local function EnsureEffect(className) local obj = Lighting:FindFirstChildOfClass(className) if not obj then obj = Instance.new(className) obj.Parent = Lighting end return obj end local SunRays = EnsureEffect("SunRaysEffect") local Bloom = EnsureEffect("BloomEffect") local CC = EnsureEffect("ColorCorrectionEffect") local Atmos = EnsureEffect("Atmosphere") local function ResetVisualDefaults() Lighting.Brightness = 2 Lighting.TimeOfDay = "14:00:00" Lighting.FogStart = 0 Lighting.FogEnd = 100000 Lighting.FogColor = Color3.fromRGB(255,255,255) SunRays.Enabled = true Bloom.Enabled = false CC.Brightness = 0 CC.Contrast = 0 CC.Saturation = 0 Atmos.Density = 0.3 Atmos.Haze = 1 end ResetVisualDefaults() VisualTab:AddSlider("BrightnessSlider", { Title = "Brightness", Default = Lighting.Brightness, Min = 0, Max = 10, Rounding = 1 }):OnChanged(function(v) Lighting.Brightness = v end) local LockedTime = tonumber(Lighting.TimeOfDay:sub(1,2)) VisualTab:AddSlider("TimeOfDaySlider", { Title = "Time of Day", Description = "Set world time", Default = LockedTime, Min = 0, Max = 24, Rounding = 0 }):OnChanged(function(v) LockedTime = v Lighting.TimeOfDay = string.format("%02d:00:00", v) end) game:GetService("RunService").RenderStepped:Connect(function() Lighting.TimeOfDay = string.format("%02d:00:00", LockedTime) end) VisualTab:AddToggle("RemoveSunrays", { Title = "Disable SunRays", Default = false }):OnChanged(function(v) SunRays.Enabled = not v end) VisualTab:AddToggle("BloomToggle", { Title = "Bloom", Default = Bloom.Enabled }):OnChanged(function(v) Bloom.Enabled = v end) VisualTab:AddSlider("BloomIntensity", { Title = "Bloom Intensity", Default = Bloom.Intensity, Min = 0, Max = 10, Rounding = 1 }):OnChanged(function(v) Bloom.Intensity = v end) VisualTab:AddSlider("BloomThreshold", { Title = "Bloom Threshold", Default = Bloom.Threshold, Min = 0, Max = 10, Rounding = 1 }):OnChanged(function(v) Bloom.Threshold = v end) VisualTab:AddSlider("BloomSize", { Title = "Bloom Size", Default = Bloom.Size, Min = 0, Max = 100, Rounding = 0 }):OnChanged(function(v) Bloom.Size = v end) VisualTab:AddSlider("CCBrightness", { Title = "CC Brightness", Default = CC.Brightness, Min = -1, Max = 1, Rounding = 2 }):OnChanged(function(v) CC.Brightness = v end) VisualTab:AddSlider("CCContrast", { Title = "CC Contrast", Default = CC.Contrast, Min = -1, Max = 1, Rounding = 2 }):OnChanged(function(v) CC.Contrast = v end) VisualTab:AddSlider("CCSaturation", { Title = "CC Saturation", Default = CC.Saturation, Min = -1, Max = 1, Rounding = 2 }):OnChanged(function(v) CC.Saturation = v end) VisualTab:AddSlider("AtmosDensity", { Title = "Atmosphere Density", Default = Atmos.Density, Min = 0, Max = 1, Rounding = 2 }):OnChanged(function(v) Atmos.Density = v end) VisualTab:AddSlider("AtmosHaze", { Title = "Atmosphere Haze", Default = Atmos.Haze, Min = 0, Max = 10, Rounding = 1 }):OnChanged(function(v) Atmos.Haze = v end) VisualTab:AddToggle("FogToggle", { Title = "Enable Fog", Default = false }):OnChanged(function(v) if v then Lighting.FogStart = 0 Lighting.FogEnd = 200 else Lighting.FogStart = 0 Lighting.FogEnd = 100000 end end) VisualTab:AddSlider("FogRed", { Title = "Fog Red", Default = Lighting.FogColor.R * 255, Min = 0, Max = 255, Rounding = 0 }):OnChanged(function(v) local c = Lighting.FogColor Lighting.FogColor = Color3.fromRGB(v, c.G * 255, c.B * 255) end) VisualTab:AddSlider("FogGreen", { Title = "Fog Green", Default = Lighting.FogColor.G * 255, Min = 0, Max = 255, Rounding = 0 }):OnChanged(function(v) local c = Lighting.FogColor Lighting.FogColor = Color3.fromRGB(c.R * 255, v, c.B * 255) end) VisualTab:AddSlider("FogBlue", { Title = "Fog Blue", Default = Lighting.FogColor.B * 255, Min = 0, Max = 255, Rounding = 0 }):OnChanged(function(v) local c = Lighting.FogColor Lighting.FogColor = Color3.fromRGB(c.R * 255, c.G * 255, v) end) -- ==================== ANTI-CHEAT TAB ==================== local ACFlaggerEnabled = false local GlobalACFlagger = false local UltraSafeEnabled = false local acMessages = { "Server corrected your position", "Suspicious movement detected", "Speed anomaly detected", "Jump anomaly detected", "Noclip attempt noticed", "Possible exploit detected" } ACFlaggerTab:AddToggle("ACFlaggerToggle", { Title="Enable AC Flagger", Default=false }):OnChanged(function(v) ACFlaggerEnabled = v Fluent:Notify({ Title = "Anti-Cheat Flagger", Content = ACFlaggerEnabled and "Enabled" or "Disabled", Duration = 3 }) end) ACFlaggerTab:AddToggle("GlobalACFlaggerToggle", { Title="Global AC Flagger", Default=false }):OnChanged(function(v) GlobalACFlagger = v Fluent:Notify({ Title = "Global AC Flagger", Content = GlobalACFlagger and "Enabled" or "Disabled", Duration = 3 }) end) ACFlaggerTab:AddToggle("UltraSafeToggle", { Title = "Ultra Safe Bypass (Recommended)", Default = false }):OnChanged(function(v) UltraSafeEnabled = v Fluent:Notify({ Title = "Ultra Safe Bypass", Content = UltraSafeEnabled and "Enabled" or "Disabled", Duration = 3 }) end) -- ==================== KEYBINDS TAB (All keybinds moved here + new menu toggle) ==================== KeybindsTab:AddKeybind("MenuToggle", { Title = "Toggle Menu (Open / Close UI)", Default = "Insert", Mode = "Toggle", Callback = function() Window:Minimize() -- Fluent's built-in method to open/close the entire menu end }) KeybindsTab:AddKeybind("SpeedKeybind", { Title = "Toggle Speed", Default = "RightControl", Mode = "Toggle", Callback = function(Value) if SpeedToggleUI and SpeedToggleUI.SetValue then SpeedToggleUI:SetValue(Value) end Fluent:Notify({Title = "Keybind", Content = Value and "Enabled Speed" or "Disabled Speed", Duration = 1.5}) end }) KeybindsTab:AddKeybind("NoclipKeybind", { Title = "Toggle Noclip", Default = "V", Mode = "Toggle", Callback = function(Value) if NoclipToggleUI and NoclipToggleUI.SetValue then NoclipToggleUI:SetValue(Value) end Fluent:Notify({Title = "Keybind", Content = Value and "Enabled Noclip" or "Disabled Noclip", Duration = 1.5}) end }) KeybindsTab:AddKeybind("JumpKeybind", { Title = "Toggle Jump Boost", Default = "J", Mode = "Toggle", Callback = function(Value) if JumpToggleUI and JumpToggleUI.SetValue then JumpToggleUI:SetValue(Value) end Fluent:Notify({Title = "Keybind", Content = Value and "Enabled Jump Boost" or "Disabled Jump Boost", Duration = 1.5}) end }) KeybindsTab:AddKeybind("AntiFallKeybind", { Title = "Toggle Anti-Fall", Default = "H", Mode = "Toggle", Callback = function(Value) if AntiFallToggleUI and AntiFallToggleUI.SetValue then AntiFallToggleUI:SetValue(Value) end Fluent:Notify({Title = "Keybind", Content = Value and "Enabled Anti-Fall" or "Disabled Anti-Fall", Duration = 1.5}) end }) -- ==================== MOVEMENT / LOGIC ==================== local Players = game:GetService("Players") local UIS = game:GetService("UserInputService") local RunService = game:GetService("RunService") local Workspace = game:GetService("Workspace") local player = Players.LocalPlayer local hrp = player.Character and player.Character:FindFirstChild("HumanoidRootPart") or nil local hum = player.Character and player.Character:FindFirstChild("Humanoid") or nil player.CharacterAdded:Connect(function(char) hrp = char:WaitForChild("HumanoidRootPart") hum = char:WaitForChild("Humanoid") end) local keys = {W=false,A=false,S=false,D=false} UIS.InputBegan:Connect(function(input,gp) if gp then return end if input.KeyCode then local name = input.KeyCode.Name if keys[name] ~= nil then keys[name] = true end end end) UIS.InputEnded:Connect(function(input) if input.KeyCode then local name = input.KeyCode.Name if keys[name] ~= nil then keys[name] = false end end end) local lastPositions = {} local globalCooldowns = {} local function trackPlayer(p) if p.Character and p.Character:FindFirstChild("HumanoidRootPart") then lastPositions[p] = p.Character.HumanoidRootPart.Position globalCooldowns[p] = 0 p.CharacterAdded:Connect(function(c) local hrpP = c:WaitForChild("HumanoidRootPart") lastPositions[p] = hrpP.Position globalCooldowns[p] = 0 end) else p.CharacterAdded:Connect(function(c) local hrpP = c:WaitForChild("HumanoidRootPart") lastPositions[p] = hrpP.Position globalCooldowns[p] = 0 end) end end for _, p in pairs(Players:GetPlayers()) do trackPlayer(p) end Players.PlayerAdded:Connect(trackPlayer) Players.PlayerRemoving:Connect(function(p) lastPositions[p] = nil globalCooldowns[p] = nil end) RunService.Heartbeat:Connect(function() local now = tick() for p, lastPos in pairs(lastPositions) do if p and p.Character and p.Character:FindFirstChild("HumanoidRootPart") then local hrpP = p.Character.HumanoidRootPart local dist = (hrpP.Position - lastPos).Magnitude if ACFlaggerEnabled and p == player and dist > 5 then local msg = acMessages[math.random(1, #acMessages)] Fluent:Notify({Title="Anti-Cheat Flag Detected!", Content=msg, Duration=2}) end if GlobalACFlagger and dist > 5 and now - (globalCooldowns[p] or 0) >= 1 then local msg = acMessages[math.random(1, #acMessages)] Fluent:Notify({ Title = "Anti-Cheat flagged: "..p.Name, Content = "Reason: "..msg, Duration = 2 }) globalCooldowns[p] = now end lastPositions[p] = hrpP.Position end end end) local ghostPos = nil local lastSafe = nil local serverMaxDelta = 1.45 local velClamp = 18 local stateCooldown = 0 local function clampVector(v, max) local m = v.Magnitude if m > max and m > 0 then return v.Unit * max end return v end local legalStates = { [Enum.HumanoidStateType.Running] = true, [Enum.HumanoidStateType.RunningNoPhysics] = true, [Enum.HumanoidStateType.Climbing] = true, [Enum.HumanoidStateType.Jumping] = true, [Enum.HumanoidStateType.Freefall] = true, [Enum.HumanoidStateType.Landed] = true, [Enum.HumanoidStateType.GettingUp] = true } local function stabilizeState() if not hum then return end if stateCooldown > tick() then return end local st = hum:GetState() if not legalStates[st] then pcall(function() hum:ChangeState(Enum.HumanoidStateType.RunningNoPhysics) end) end stateCooldown = tick() + 0.15 end RunService.Heartbeat:Connect(function() if UltraSafeEnabled and hrp then if not ghostPos then ghostPos = hrp.Position lastSafe = ghostPos end lastSafe = ghostPos end end) local noclipParts = {"HumanoidRootPart","LeftLowerLeg","RightLowerLeg","LeftUpperLeg","RightUpperLeg","Torso","Head"} local lastMoveTime = 0 RunService.RenderStepped:Connect(function(dt) if not hrp or not hrp.Parent then return end if hum and hum.Sit then return end if UltraSafeEnabled then ghostPos = ghostPos or hrp.Position lastSafe = lastSafe or hrp.Position pcall(function() hrp.Velocity = clampVector(hrp.Velocity, velClamp) hrp.AssemblyLinearVelocity = Vector3.zero end) local intendedDelta = hrp.Position - ghostPos local safeDelta = clampVector(intendedDelta, serverMaxDelta) ghostPos += safeDelta pcall(function() hrp.CFrame = CFrame.new(ghostPos) * CFrame.new(hrp.Position - ghostPos) end) stabilizeState() end if NoclipEnabled and UIS:GetFocusedTextBox() == nil then local moving = keys.W or keys.A or keys.S or keys.D local now = tick() local safeToClip = moving or now - lastMoveTime < 0.15 for _, partName in pairs(noclipParts) do local part = hrp.Parent:FindFirstChild(partName) if part and part:IsA("BasePart") then part.CanCollide = safeToClip end end if safeToClip then lastMoveTime = now end end if SpeedEnabled then local dir = Vector3.zero if keys.W then dir += hrp.CFrame.LookVector end if keys.S then dir -= hrp.CFrame.LookVector end if keys.A then dir -= hrp.CFrame.RightVector end if keys.D then dir += hrp.CFrame.RightVector end if dir.Magnitude > 0 then dir = dir.Unit local move = dir * SpeedValue * dt hrp.CFrame = hrp.CFrame + move end end end) local jumping = false local rayParams = RaycastParams.new() rayParams.FilterType = Enum.RaycastFilterType.Blacklist local function IsGrounded() rayParams.FilterDescendantsInstances = {player.Character} local result = workspace:Raycast( hrp.Position, Vector3.new(0, -4, 0), rayParams ) return result ~= nil end UIS.JumpRequest:Connect(function() if not JumpEnabled or not hrp or jumping then return end if not IsGrounded() then return end jumping = true local bv = Instance.new("BodyVelocity") bv.MaxForce = Vector3.new(0, math.huge, 0) bv.Velocity = Vector3.new(0, JumpBoost, 0) bv.Parent = hrp task.delay(0.15, function() bv:Destroy() jumping = false end) end) local fallCooldown = false RunService.RenderStepped:Connect(function(dt) if not AntiFallEnabled or not hrp or not hrp.Parent then return end if fallCooldown then return end local ray = Ray.new(hrp.Position, Vector3.new(0,-50,0)) local part,pos = Workspace:FindPartOnRay(ray, player.Character) local distance = part and (hrp.Position - pos).Magnitude or 50 local velY = hrp.Velocity.Y if distance <= safeHeight and velY < FallThreshold then fallCooldown = true task.spawn(function() local target = hrp.Position + Vector3.new(0,liftHeight,0) local steps = 10 for i=1,steps do hrp.CFrame = CFrame.new(hrp.Position:Lerp(target, i/steps)) task.wait(0.02) end fallCooldown = false end) end end)