-- [[ Rscripts Risk Notice ]] -- This script is not verified by rscripts.net. Deal with caution. -- -- Stay safe: -- • Never log in on unofficial Roblox sites or lookalike domains. -- • Real Roblox links use roblox.com (check the .com ending). -- • Treat fake Roblox login / "claim reward" pages as phishing. -- [[ End Rscripts Risk Notice ]] local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local TweenService = game:GetService("TweenService") local CoreGui = game:GetService("CoreGui") local ReplicatedStorage = game:GetService("ReplicatedStorage") local Workspace = game:GetService("Workspace") local plr = Players.LocalPlayer local camera = Workspace.CurrentCamera -- ========================================== -- HARDCORE ANTI‑DETECTION -- ========================================== -- 1. Nuke all known anti‑cheat remotes (recursive) local function nukeRemotes(obj) for _, child in ipairs(obj:GetDescendants()) do if child:IsA("RemoteEvent") or child:IsA("RemoteFunction") then local name = child.Name:lower() local bad = {"anti", "check", "speed", "jump", "teleport", "report", "exploit", "ban"} for _, word in ipairs(bad) do if name:find(word) then pcall(function() child:Destroy() end) break end end end end end nukeRemotes(ReplicatedStorage) nukeRemotes(plr.PlayerGui) nukeRemotes(Workspace) -- Prevent new remotes from spawning local function blockNewRemotes(child) if child:IsA("RemoteEvent") or child:IsA("RemoteFunction") then pcall(function() child:Destroy() end) end end ReplicatedStorage.ChildAdded:Connect(blockNewRemotes) plr.PlayerGui.ChildAdded:Connect(blockNewRemotes) Workspace.ChildAdded:Connect(blockNewRemotes) -- 2. Override engine flags pcall(function() setfflag("CheckFastFlags", "False") setfflag("CheckMovement", "False") setfflag("CheckAntiCheat", "False") setfflag("HumanoidWalkSpeedCheck", "False") sethiddenproperty(plr, "SimulationRadius", math.huge) sethiddenproperty(plr, "MaximumSimulationRadius", math.huge) end) -- 3. Prevent CharacterAdded from resetting our hacks local oldCharacterAdded = plr.CharacterAdded plr.CharacterAdded = function() end -- override to stop internal listeners -- ========================================== -- STATE -- ========================================== local state = { speed = 16, -- CFrame speed (studs/sec) jumpPower = 50, -- Jump power catchRange = 30, fly = false, noclip = false, godmode = true, silentSpeed = true, -- always true now (CFrame based) flySpeed = 50, } local flyKeys = {W=false, A=false, S=false, D=false, Space=false, LShift=false} local isDragging = false local isResizing = false local dragOffset = Vector2.new() local resizeStart = Vector2.new() -- ========================================== -- HELPERS -- ========================================== local function getChar() return plr.Character end local function getHRP() local char = getChar() return char and char:FindFirstChild("HumanoidRootPart") end local function getHumanoid() local char = getChar() return char and char:FindFirstChild("Humanoid") end -- ========================================== -- CORE HACKS (CFrame‑based, server‑proof) -- ========================================== -- 1. CFrame Speed & Jump (works in air, water, anywhere) local lastPos = nil RunService.Stepped:Connect(function(_, step) local hrp = getHRP() local hum = getHumanoid() if not hrp or not hum then return end -- Lock WalkSpeed and JumpPower so server sees default if hum.WalkSpeed ~= 16 then hum.WalkSpeed = 16 end if hum.JumpPower ~= 50 then hum.JumpPower = 50 end -- NoClip if state.noclip then for _, part in ipairs(getChar():GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = false end end end -- Godmode (health lock + prevent death) if state.godmode then if hum.Health <= 0 then hum.Health = hum.MaxHealth end hum.Health = math.max(hum.Health, hum.MaxHealth) -- keep full -- Block BreakJoints local char = getChar() if char then char:GetPropertyChangedSignal("BreakJoints"):Connect(function() if state.godmode then char.BreakJoints = false end end) end end -- CFrame Speed (only if not flying) if not state.fly and state.speed > 0 and hum:GetState() ~= Enum.HumanoidStateType.Dead then local moveDir = hum.MoveDirection if moveDir.Magnitude > 0.01 then local newPos = hrp.Position + moveDir.Unit * state.speed * step -- Keep vertical velocity intact (gravity) local velY = hrp.Velocity.Y hrp.CFrame = CFrame.new(newPos.X, newPos.Y, newPos.Z) * hrp.CFrame.Rotation hrp.Velocity = Vector3.new(0, velY, 0) -- reset horizontal velocity to avoid detection end end -- Catch range auto‑snap (while jumping) if hum:GetState() == Enum.HumanoidStateType.Jumping and state.catchRange > 0 then local dir = camera.CFrame.LookVector local params = RaycastParams.new() params.FilterDescendantsInstances = {getChar()} params.FilterType = Enum.RaycastFilterType.Blacklist local result = Workspace:Raycast(hrp.Position, dir * state.catchRange, params) if result then local hitPos = result.Position + result.Normal * 2.5 hrp.CFrame = CFrame.new(hitPos) * CFrame.Angles(0, hrp.Orientation.Y, 0) hum:ChangeState(Enum.HumanoidStateType.Landed) -- force land to avoid fall damage end end -- Server correction override: if server teleports us back, force our position again -- (Handled by the above continuous loop – we set position every frame) end) -- 2. Fly Mode (CFrame‑based, no physics) local function toggleFly() state.fly = not state.fly local hum = getHumanoid() if hum then hum.PlatformStand = state.fly end end RunService.RenderStepped:Connect(function() if not state.fly then return end local hrp = getHRP() if not hrp then return end local forward = camera.CFrame.LookVector local right = camera.CFrame.RightVector local up = Vector3.new(0, 1, 0) local moveVec = Vector3.new() if flyKeys.W then moveVec = moveVec + forward end if flyKeys.S then moveVec = moveVec - forward end if flyKeys.A then moveVec = moveVec - right end if flyKeys.D then moveVec = moveVec + right end if flyKeys.Space then moveVec = moveVec + up end if flyKeys.LShift then moveVec = moveVec - up end if moveVec.Magnitude > 0.01 then moveVec = moveVec.Unit * state.flySpeed else moveVec = Vector3.new(0, 0, 0) end hrp.CFrame = hrp.CFrame + moveVec hrp.Velocity = Vector3.new(0, 0, 0) -- keep server velocity zero end) -- 3. Jump override (custom jump power) UserInputService.InputBegan:Connect(function(input, gpe) if gpe then return end if input.KeyCode == Enum.KeyCode.F then toggleFly() end if input.KeyCode == Enum.KeyCode.Space then local hum = getHumanoid() if hum and hum:GetState() == Enum.HumanoidStateType.Grounded then hum:ChangeState(Enum.HumanoidStateType.Jumping) -- Apply custom jump velocity local hrp = getHRP() if hrp then hrp.Velocity = Vector3.new(hrp.Velocity.X, state.jumpPower, hrp.Velocity.Z) end end end -- Fly keys if flyKeys[input.KeyCode.Name] ~= nil then flyKeys[input.KeyCode.Name] = true end end) UserInputService.InputEnded:Connect(function(input, gpe) if gpe then return end if flyKeys[input.KeyCode.Name] ~= nil then flyKeys[input.KeyCode.Name] = false end end) -- 4. Respawn override (prevent resetting our hacks) plr.CharacterAdded:Connect(function(char) task.wait(0.1) local hum = char:FindFirstChild("Humanoid") if hum then hum.WalkSpeed = 16 hum.JumpPower = 50 if state.godmode then hum.Health = hum.MaxHealth char:GetPropertyChangedSignal("BreakJoints"):Connect(function() if state.godmode then char.BreakJoints = false end end) end if state.noclip then for _, part in ipairs(char:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = false end end end if state.fly then hum.PlatformStand = true end end -- Force network ownership to client to prevent server corrections local hrp = char:FindFirstChild("HumanoidRootPart") if hrp then hrp:SetNetworkOwner(plr) end end) -- Init local char = plr.Character if char then task.wait(0.1) local hrp = char:FindFirstChild("HumanoidRootPart") if hrp then hrp:SetNetworkOwner(plr) end local hum = char:FindFirstChild("Humanoid") if hum then hum.WalkSpeed = 16 hum.JumpPower = 50 if state.godmode then hum.Health = hum.MaxHealth end end end -- ========================================== -- GUI – Premium, Draggable, Resizable -- ========================================== local screenGui = Instance.new("ScreenGui") screenGui.Name = "FE2UltraHub" screenGui.Parent = CoreGui local mainFrame = Instance.new("Frame") mainFrame.Size = UDim2.new(0, 420, 0, 500) mainFrame.Position = UDim2.new(0.5, -210, 0.5, -250) mainFrame.BackgroundColor3 = Color3.fromRGB(12, 12, 24) mainFrame.BackgroundTransparency = 0.1 mainFrame.BorderSizePixel = 0 mainFrame.ClipsDescendants = true mainFrame.Parent = screenGui local blur = Instance.new("BlurEffect") blur.Size = 10 blur.Parent = mainFrame local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 14) corner.Parent = mainFrame local stroke = Instance.new("UIStroke") stroke.Color = Color3.fromRGB(0, 200, 255) stroke.Thickness = 1.8 stroke.Transparency = 0.3 stroke.Parent = mainFrame local grad = Instance.new("UIGradient") grad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(25, 25, 45)), ColorSequenceKeypoint.new(1, Color3.fromRGB(8, 8, 18)) }) grad.Parent = mainFrame -- Title local titleBar = Instance.new("Frame") titleBar.Size = UDim2.new(1, 0, 0, 42) titleBar.BackgroundColor3 = Color3.fromRGB(0, 150, 255) titleBar.BackgroundTransparency = 0.25 titleBar.BorderSizePixel = 0 titleBar.Parent = mainFrame local titleCorner = Instance.new("UICorner") titleCorner.CornerRadius = UDim.new(0, 14) titleCorner.Parent = titleBar local titleGrad = Instance.new("UIGradient") titleGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(0, 180, 255)), ColorSequenceKeypoint.new(1, Color3.fromRGB(0, 70, 200)) }) titleGrad.Parent = titleBar local titleLabel = Instance.new("TextLabel") titleLabel.Size = UDim2.new(1, -80, 1, 0) titleLabel.Position = UDim2.new(0, 18, 0, 0) titleLabel.BackgroundTransparency = 1 titleLabel.Text = "⚡ FE2 ULTRA v3" titleLabel.TextColor3 = Color3.fromRGB(255,255,255) titleLabel.TextXAlignment = Enum.TextXAlignment.Left titleLabel.Font = Enum.Font.GothamBold titleLabel.TextSize = 20 titleLabel.Parent = titleBar local closeBtn = Instance.new("TextButton") closeBtn.Size = UDim2.new(0, 34, 0, 34) closeBtn.Position = UDim2.new(1, -42, 0, 4) closeBtn.BackgroundColor3 = Color3.fromRGB(200, 30, 30) closeBtn.BackgroundTransparency = 0.1 closeBtn.BorderSizePixel = 0 closeBtn.Text = "✕" closeBtn.TextColor3 = Color3.fromRGB(255,255,255) closeBtn.Font = Enum.Font.GothamBold closeBtn.TextSize = 18 closeBtn.Parent = titleBar local closeCorner = Instance.new("UICorner") closeCorner.CornerRadius = UDim.new(0, 8) closeCorner.Parent = closeBtn closeBtn.MouseButton1Click:Connect(function() screenGui:Destroy() end) -- Content scroll local content = Instance.new("ScrollingFrame") content.Size = UDim2.new(1, -20, 1, -60) content.Position = UDim2.new(0, 10, 0, 52) content.BackgroundTransparency = 1 content.ScrollBarThickness = 5 content.ScrollBarImageColor3 = Color3.fromRGB(0, 150, 255) content.CanvasSize = UDim2.new(0, 0, 0, 520) content.Parent = mainFrame -- ========================================== -- WIDGET BUILDERS (Animated) -- ========================================== local function createToggle(parent, labelText, default, callback) local frame = Instance.new("Frame") frame.Size = UDim2.new(1, 0, 0, 44) frame.BackgroundTransparency = 1 frame.Parent = parent local label = Instance.new("TextLabel") label.Size = UDim2.new(0.6, 0, 1, 0) label.BackgroundTransparency = 1 label.Text = labelText label.TextColor3 = Color3.fromRGB(235, 235, 245) label.TextXAlignment = Enum.TextXAlignment.Left label.Font = Enum.Font.GothamMedium label.TextSize = 15 label.Parent = frame local switchBg = Instance.new("Frame") switchBg.Size = UDim2.new(0, 50, 0, 28) switchBg.Position = UDim2.new(1, -60, 0.5, -14) switchBg.BackgroundColor3 = default and Color3.fromRGB(0, 200, 100) or Color3.fromRGB(70, 70, 85) switchBg.BorderSizePixel = 0 switchBg.Parent = frame local switchCorner = Instance.new("UICorner") switchCorner.CornerRadius = UDim.new(1, 0) switchCorner.Parent = switchBg local thumb = Instance.new("Frame") thumb.Size = UDim2.new(0, 22, 0, 22) thumb.Position = default and UDim2.new(1, -26, 0.5, -11) or UDim2.new(0, 4, 0.5, -11) thumb.BackgroundColor3 = Color3.fromRGB(255,255,255) thumb.BorderSizePixel = 0 thumb.Parent = switchBg local thumbCorner = Instance.new("UICorner") thumbCorner.CornerRadius = UDim.new(1, 0) thumbCorner.Parent = thumb local active = default local function toggle() active = not active TweenService:Create(switchBg, TweenInfo.new(0.15), { BackgroundColor3 = active and Color3.fromRGB(0, 200, 100) or Color3.fromRGB(70, 70, 85) }):Play() TweenService:Create(thumb, TweenInfo.new(0.15), { Position = active and UDim2.new(1, -26, 0.5, -11) or UDim2.new(0, 4, 0.5, -11) }):Play() callback(active) end switchBg.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then toggle() end end) return toggle end local function createSlider(parent, labelText, min, max, default, callback) local frame = Instance.new("Frame") frame.Size = UDim2.new(1, 0, 0, 56) frame.BackgroundTransparency = 1 frame.Parent = parent local label = Instance.new("TextLabel") label.Size = UDim2.new(0.6, 0, 0.4, 0) label.BackgroundTransparency = 1 label.Text = labelText label.TextColor3 = Color3.fromRGB(235, 235, 245) label.TextXAlignment = Enum.TextXAlignment.Left label.Font = Enum.Font.GothamMedium label.TextSize = 14 label.Parent = frame local valueLabel = Instance.new("TextLabel") valueLabel.Size = UDim2.new(0.3, 0, 0.4, 0) valueLabel.Position = UDim2.new(0.7, 0, 0, 0) valueLabel.BackgroundTransparency = 1 valueLabel.Text = tostring(default) valueLabel.TextColor3 = Color3.fromRGB(0, 200, 255) valueLabel.TextXAlignment = Enum.TextXAlignment.Right valueLabel.Font = Enum.Font.GothamBold valueLabel.TextSize = 15 valueLabel.Parent = frame local track = Instance.new("Frame") track.Size = UDim2.new(1, 0, 0, 6) track.Position = UDim2.new(0, 0, 0.7, 0) track.BackgroundColor3 = Color3.fromRGB(50, 50, 70) track.BorderSizePixel = 0 track.Parent = frame local trackCorner = Instance.new("UICorner") trackCorner.CornerRadius = UDim.new(0, 3) trackCorner.Parent = track local fill = Instance.new("Frame") fill.Size = UDim2.new((default-min)/(max-min), 0, 1, 0) fill.BackgroundColor3 = Color3.fromRGB(0, 180, 255) fill.BorderSizePixel = 0 fill.Parent = track local fillCorner = Instance.new("UICorner") fillCorner.CornerRadius = UDim.new(0, 3) fillCorner.Parent = fill local thumb = Instance.new("TextButton") thumb.Size = UDim2.new(0, 18, 0, 18) thumb.Position = UDim2.new((default-min)/(max-min), -9, 0.5, -9) thumb.BackgroundColor3 = Color3.fromRGB(0, 200, 255) thumb.BorderSizePixel = 0 thumb.Text = "" thumb.Parent = track local thumbCorner = Instance.new("UICorner") thumbCorner.CornerRadius = UDim.new(1, 0) thumbCorner.Parent = thumb local dragging = false local function updateSlider(input) local pos = input.Position.X - track.AbsolutePosition.X local width = track.AbsoluteSize.X local val = math.clamp(pos / width, 0, 1) local finalVal = math.round(min + val * (max - min)) fill.Size = UDim2.new(val, 0, 1, 0) thumb.Position = UDim2.new(val, -9, 0.5, -9) valueLabel.Text = tostring(finalVal) callback(finalVal) end thumb.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end end) UserInputService.InputChanged:Connect(function(input) if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then updateSlider(input) end end) track.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then updateSlider(input) end end) return frame end -- Build GUI local yOff = 0 local function addWidget(widget) widget.Position = UDim2.new(0, 0, 0, yOff) yOff = yOff + widget.Size.Y.Offset + 6 widget.Parent = content content.CanvasSize = UDim2.new(0, 0, 0, yOff + 20) end local togNoclip = createToggle(content, "🛡️ NoClip", false, function(v) state.noclip = v end) addWidget(togNoclip.Parent) local togGodmode = createToggle(content, "❤️ Godmode", true, function(v) state.godmode = v local hum = getHumanoid() if hum and v then hum.Health = hum.MaxHealth end end) addWidget(togGodmode.Parent) local togFly = createToggle(content, "✈️ Fly Mode [F]", false, function(v) if v ~= state.fly then toggleFly() end end) addWidget(togFly.Parent) local speedSlider = createSlider(content, "🚀 Speed (CFrame)", 1, 120, 16, function(v) state.speed = v end) addWidget(speedSlider) local jumpSlider = createSlider(content, "🦘 Jump Power", 1, 200, 50, function(v) state.jumpPower = v end) addWidget(jumpSlider) local catchSlider = createSlider(content, "📏 Catch Range", 5, 150, 30, function(v) state.catchRange = v end) addWidget(catchSlider) -- ========================================== -- DRAG & RESIZE -- ========================================== local function dragStart(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then isDragging = true dragOffset = Vector2.new(input.Position.X - mainFrame.AbsolutePosition.X, input.Position.Y - mainFrame.AbsolutePosition.Y) end end local function dragEnd(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then isDragging = false end end local function dragMove(input) if isDragging and input.UserInputType == Enum.UserInputType.MouseMovement then local newPos = input.Position - dragOffset local viewport = camera.ViewportSize newPos = Vector2.new(math.clamp(newPos.X, 0, viewport.X - mainFrame.AbsoluteSize.X), math.clamp(newPos.Y, 0, viewport.Y - mainFrame.AbsoluteSize.Y)) mainFrame.Position = UDim2.new(0, newPos.X, 0, newPos.Y) end end titleBar.InputBegan:Connect(dragStart) UserInputService.InputEnded:Connect(dragEnd) UserInputService.InputChanged:Connect(dragMove) local resizeGrip = Instance.new("Frame") resizeGrip.Size = UDim2.new(0, 24, 0, 24) resizeGrip.Position = UDim2.new(1, -24, 1, -24) resizeGrip.BackgroundColor3 = Color3.fromRGB(0, 180, 255) resizeGrip.BackgroundTransparency = 0.2 resizeGrip.BorderSizePixel = 0 resizeGrip.Parent = mainFrame local gripCorner = Instance.new("UICorner") gripCorner.CornerRadius = UDim.new(0, 6) gripCorner.Parent = resizeGrip local gripIcon = Instance.new("TextLabel") gripIcon.Size = UDim2.new(1, 0, 1, 0) gripIcon.BackgroundTransparency = 1 gripIcon.Text = "⤡" gripIcon.TextColor3 = Color3.fromRGB(255,255,255) gripIcon.TextSize = 20 gripIcon.Font = Enum.Font.GothamBold gripIcon.Parent = resizeGrip local function resizeStartFunc(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then isResizing = true resizeStart = Vector2.new(input.Position.X, input.Position.Y) end end local function resizeEndFunc(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then isResizing = false end end local function resizeMove(input) if isResizing and input.UserInputType == Enum.UserInputType.MouseMovement then local delta = input.Position - resizeStart local newSize = mainFrame.AbsoluteSize + Vector2.new(delta.X, delta.Y) newSize = Vector2.new(math.max(320, newSize.X), math.max(400, newSize.Y)) mainFrame.Size = UDim2.new(0, newSize.X, 0, newSize.Y) resizeStart = input.Position end end