-- gui rebuild v10 (rakoof hitbox expander) -- toggle: RightShift, the "-" button, or the round button on the left local env = (getgenv and getgenv()) or _G if env.EvaCleanup then pcall(env.EvaCleanup) end local conns = {} local alive = true local function track(c) table.insert(conns, c) return c end local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UIS = game:GetService("UserInputService") local RS = game:GetService("ReplicatedStorage") local WS = game:GetService("Workspace") local TS = game:GetService("TweenService") local LP = Players.LocalPlayer -- shared state (declared up top so every section and cleanup can reach it) local aiPauseUntil = 0 local standDist = 7 local dropsOn, tpDrop, aiOn, pickupOn, candyOn, speedOn, aimOn = false, false, false, false, false, false, false local stopFly = function() end local removePlatform = function() end local stopAim = function() end local restoreHitbox = function() end -- runs a block safely so one broken feature can't stop the gui local function section(name, fn) local ok, err = pcall(fn) if not ok then warn("[gui] '" .. name .. "' failed: " .. tostring(err)) end end -- ============ THEME ============ local C = { bg = Color3.fromRGB(14, 14, 20), panel = Color3.fromRGB(20, 20, 29), row = Color3.fromRGB(26, 26, 38), rowHi = Color3.fromRGB(36, 36, 52), off = Color3.fromRGB(48, 48, 66), text = Color3.fromRGB(230, 230, 245), dim = Color3.fromRGB(130, 130, 160), a1 = Color3.fromRGB(150, 100, 255), a2 = Color3.fromRGB(70, 180, 255), red = Color3.fromRGB(255, 90, 110), } local function new(class, props, parent) local o = Instance.new(class) for k, v in pairs(props) do o[k] = v end if parent then o.Parent = parent end return o end local function corner(o, r) return new("UICorner", {CornerRadius = UDim.new(0, r)}, o) end local function gradient(o, rot) return new("UIGradient", { Color = ColorSequence.new(C.a1, C.a2), Rotation = rot or 0, }, o) end local function tween(o, t, props) TS:Create(o, TweenInfo.new(t, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), props):Play() end -- ============ SAFE MOUNT ============ local function mount(g) if syn and syn.protect_gui then pcall(syn.protect_gui, g) end local targets = {} if gethui then table.insert(targets, function() return gethui() end) end table.insert(targets, function() return game:GetService("CoreGui") end) table.insert(targets, function() return LP:WaitForChild("PlayerGui", 5) end) for _, fn in ipairs(targets) do local ok, p = pcall(fn) if ok and p then local ok2 = pcall(function() g.Parent = p end) if ok2 and g.Parent == p then return p end end end return nil end -- ============ DRAG ============ local function drag(frame, grip) grip.Active = true local dragging, start, startPos = false, nil, nil track(grip.InputBegan:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then dragging, start, startPos = true, i.Position, frame.Position end end)) track(UIS.InputChanged:Connect(function(i) if not dragging then return end if i.UserInputType == Enum.UserInputType.MouseMovement or i.UserInputType == Enum.UserInputType.Touch then local d = i.Position - start frame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + d.X, startPos.Y.Scale, startPos.Y.Offset + d.Y) end end)) track(UIS.InputEnded:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then dragging = false end end)) end -- ============ WINDOW ============ local gui = new("ScreenGui", { Name = tostring(math.random(100000, 999999)), ResetOnSpawn = false, IgnoreGuiInset = true, Enabled = true, ZIndexBehavior = Enum.ZIndexBehavior.Sibling, DisplayOrder = 999, }) local mountedIn = mount(gui) if not mountedIn then warn("[gui] could not find a place to parent the gui") return end print("[gui] mounted in: " .. mountedIn:GetFullName()) env.EvaGui = gui -- size the window to the screen so it can never end up off screen local cam = WS.CurrentCamera local vp = cam and cam.ViewportSize or Vector2.new(800, 600) if vp.X < 100 or vp.Y < 100 then vp = Vector2.new(800, 600) end local WIN_W = math.floor(math.min(320, vp.X - 24)) local WIN_H = math.floor(math.min(460, vp.Y - 40)) local main = new("Frame", { AnchorPoint = Vector2.new(0.5, 0.5), Size = UDim2.new(0, WIN_W, 0, WIN_H), Position = UDim2.new(0.5, 0, 0.5, 0), BackgroundColor3 = C.bg, BorderSizePixel = 0, Visible = true, }, gui) corner(main, 14) local scale = new("UIScale", {Scale = 1}, main) local outline = new("UIStroke", {Thickness = 1.5, Color = Color3.new(1, 1, 1)}, main) gradient(outline, 45) -- header (drag area, no title text) local header = new("Frame", { Size = UDim2.new(1, 0, 0, 40), BackgroundColor3 = C.panel, BorderSizePixel = 0, }, main) corner(header, 14) new("Frame", { -- squares off the bottom corners of the header Size = UDim2.new(1, 0, 0, 14), Position = UDim2.new(0, 0, 1, -14), BackgroundColor3 = C.panel, BorderSizePixel = 0, }, header) local line = new("Frame", { Size = UDim2.new(1, 0, 0, 2), Position = UDim2.new(0, 0, 1, -2), BackgroundColor3 = Color3.new(1, 1, 1), BorderSizePixel = 0, }, header) gradient(line, 0) drag(main, header) -- decorative dots for n = 1, 3 do local d = new("Frame", { Size = UDim2.new(0, 8, 0, 8), Position = UDim2.new(0, 14 + (n - 1) * 14, 0.5, -4), BackgroundColor3 = Color3.new(1, 1, 1), BorderSizePixel = 0, }, header) corner(d, 4) gradient(d, 45 * n) end local closeBtn = new("TextButton", { Size = UDim2.new(0, 26, 0, 26), Position = UDim2.new(1, -34, 0.5, -13), BackgroundColor3 = C.row, Text = "x", TextColor3 = C.red, Font = Enum.Font.GothamBold, TextSize = 14, AutoButtonColor = false, BorderSizePixel = 0, }, header) corner(closeBtn, 8) local hideBtn = new("TextButton", { Size = UDim2.new(0, 26, 0, 26), Position = UDim2.new(1, -66, 0.5, -13), BackgroundColor3 = C.row, Text = "-", TextColor3 = C.text, Font = Enum.Font.GothamBold, TextSize = 16, AutoButtonColor = false, BorderSizePixel = 0, }, header) corner(hideBtn, 8) -- hp bar local hpFrame = new("Frame", { Size = UDim2.new(1, -24, 0, 18), Position = UDim2.new(0, 12, 0, 50), BackgroundColor3 = C.row, BorderSizePixel = 0, }, main) corner(hpFrame, 9) local hpFill = new("Frame", { Size = UDim2.new(1, 0, 1, 0), BackgroundColor3 = Color3.fromRGB(80, 220, 140), BorderSizePixel = 0, }, hpFrame) corner(hpFill, 9) local hpText = new("TextLabel", { Size = UDim2.new(1, 0, 1, 0), BackgroundTransparency = 1, Text = "-- / --", TextColor3 = Color3.new(1, 1, 1), Font = Enum.Font.GothamBold, TextSize = 11, ZIndex = 3, }, hpFrame) track(RunService.Heartbeat:Connect(function() local char = LP.Character local hum = char and char:FindFirstChildOfClass("Humanoid") if not hum or hum.MaxHealth <= 0 then return end local pct = math.clamp(hum.Health / hum.MaxHealth, 0, 1) hpFill.Size = UDim2.new(pct, 0, 1, 0) hpFill.BackgroundColor3 = Color3.fromRGB(math.floor(255 * (1 - pct)), math.floor(220 * pct), 120) hpText.Text = math.floor(hum.Health) .. " / " .. math.floor(hum.MaxHealth) end)) -- ============ TOAST (small pop-up messages) ============ local toast = new("TextLabel", { AnchorPoint = Vector2.new(0.5, 1), Position = UDim2.new(0.5, 0, 1, -10), Size = UDim2.new(1, -40, 0, 28), BackgroundColor3 = C.panel, BackgroundTransparency = 1, TextTransparency = 1, Text = "", TextColor3 = C.text, Font = Enum.Font.GothamMedium, TextSize = 11, BorderSizePixel = 0, ZIndex = 8, }, main) corner(toast, 8) local toastId = 0 local function notify(msg) toastId = toastId + 1 local id = toastId toast.Text = msg tween(toast, 0.15, {BackgroundTransparency = 0.05, TextTransparency = 0}) task.delay(2.2, function() if toastId == id then tween(toast, 0.3, {BackgroundTransparency = 1, TextTransparency = 1}) end end) end -- ============ TABS ============ local tabBar = new("Frame", { Size = UDim2.new(1, -24, 0, 30), Position = UDim2.new(0, 12, 0, 76), BackgroundTransparency = 1, }, main) new("UIListLayout", { FillDirection = Enum.FillDirection.Horizontal, Padding = UDim.new(0, 6), }, tabBar) local content = new("Frame", { Size = UDim2.new(1, -24, 1, -120), Position = UDim2.new(0, 12, 0, 112), BackgroundTransparency = 1, }, main) local tabs, pages = {}, {} local function selectTab(name) for n, page in pairs(pages) do page.Visible = (n == name) local b = tabs[n] tween(b, 0.15, {BackgroundColor3 = (n == name) and C.rowHi or C.row, TextColor3 = (n == name) and C.text or C.dim}) end end local function addTab(name, count) local b = new("TextButton", { Size = UDim2.new(1 / count, -4, 1, 0), BackgroundColor3 = C.row, Text = name, TextColor3 = C.dim, Font = Enum.Font.GothamBold, TextSize = 12, AutoButtonColor = false, BorderSizePixel = 0, }, tabBar) corner(b, 8) local page = new("ScrollingFrame", { Size = UDim2.new(1, 0, 1, 0), BackgroundTransparency = 1, BorderSizePixel = 0, ScrollBarThickness = 3, ScrollBarImageColor3 = C.a1, CanvasSize = UDim2.new(0, 0, 0, 0), AutomaticCanvasSize = Enum.AutomaticSize.Y, Visible = false, }, content) new("UIListLayout", {Padding = UDim.new(0, 6)}, page) new("UIPadding", {PaddingRight = UDim.new(0, 6), PaddingBottom = UDim.new(0, 34)}, page) tabs[name], pages[name] = b, page track(b.MouseButton1Click:Connect(function() selectTab(name) end)) return page end -- ============ WIDGETS ============ local function hover(b, base, hi) track(b.MouseEnter:Connect(function() tween(b, 0.12, {BackgroundColor3 = hi}) end)) track(b.MouseLeave:Connect(function() tween(b, 0.12, {BackgroundColor3 = base}) end)) end hover(closeBtn, C.row, C.rowHi) hover(hideBtn, C.row, C.rowHi) local function label(page, text) new("TextLabel", { Size = UDim2.new(1, 0, 0, 18), BackgroundTransparency = 1, Text = string.upper(text), TextColor3 = C.dim, Font = Enum.Font.GothamBold, TextSize = 10, TextXAlignment = Enum.TextXAlignment.Left, }, page) end local function button(page, text, cb) local b = new("TextButton", { Size = UDim2.new(1, 0, 0, 36), BackgroundColor3 = C.row, Text = text, TextColor3 = C.text, Font = Enum.Font.GothamMedium, TextSize = 12, AutoButtonColor = false, BorderSizePixel = 0, }, page) corner(b, 8) hover(b, C.row, C.rowHi) track(b.MouseButton1Click:Connect(function() local ok, err = pcall(cb) if not ok then warn("[gui] " .. tostring(err)) end end)) return b end local function toggle(page, text, cb) local row = new("TextButton", { Size = UDim2.new(1, 0, 0, 36), BackgroundColor3 = C.row, Text = "", AutoButtonColor = false, BorderSizePixel = 0, }, page) corner(row, 8) hover(row, C.row, C.rowHi) local rowStroke = new("UIStroke", {Thickness = 1, Color = C.a1, Transparency = 1}, row) new("TextLabel", { Size = UDim2.new(1, -64, 1, 0), Position = UDim2.new(0, 12, 0, 0), BackgroundTransparency = 1, Text = text, TextColor3 = C.text, Font = Enum.Font.GothamMedium, TextSize = 12, TextXAlignment = Enum.TextXAlignment.Left, }, row) local sw = new("Frame", { Size = UDim2.new(0, 38, 0, 20), Position = UDim2.new(1, -50, 0.5, -10), BackgroundColor3 = C.off, BorderSizePixel = 0, }, row) corner(sw, 10) local sg = gradient(sw, 0) sg.Enabled = false local knob = new("Frame", { Size = UDim2.new(0, 14, 0, 14), Position = UDim2.new(0, 3, 0.5, -7), BackgroundColor3 = Color3.new(1, 1, 1), BorderSizePixel = 0, }, sw) corner(knob, 7) local state = false local function set(v, silent) state = v sg.Enabled = v if not v then tween(sw, 0.15, {BackgroundColor3 = C.off}) else sw.BackgroundColor3 = Color3.new(1, 1, 1) end tween(rowStroke, 0.15, {Transparency = v and 0.3 or 1}) tween(knob, 0.15, {Position = v and UDim2.new(1, -17, 0.5, -7) or UDim2.new(0, 3, 0.5, -7)}) if not silent then local ok, err = pcall(cb, v) if not ok then warn("[gui] " .. tostring(err)) end end end track(row.MouseButton1Click:Connect(function() set(not state) end)) return set end local function slider(page, text, mn, mx, def, cb) local f = new("Frame", { Size = UDim2.new(1, 0, 0, 50), BackgroundColor3 = C.row, BorderSizePixel = 0, }, page) corner(f, 8) new("TextLabel", { Size = UDim2.new(1, -70, 0, 18), Position = UDim2.new(0, 12, 0, 6), BackgroundTransparency = 1, Text = text, TextColor3 = C.text, Font = Enum.Font.GothamMedium, TextSize = 12, TextXAlignment = Enum.TextXAlignment.Left, }, f) local val = new("TextLabel", { Size = UDim2.new(0, 50, 0, 18), Position = UDim2.new(1, -62, 0, 6), BackgroundTransparency = 1, Text = tostring(def), TextColor3 = C.a2, Font = Enum.Font.GothamBold, TextSize = 12, TextXAlignment = Enum.TextXAlignment.Right, }, f) local bar = new("Frame", { Size = UDim2.new(1, -24, 0, 6), Position = UDim2.new(0, 12, 0, 34), BackgroundColor3 = C.off, BorderSizePixel = 0, }, f) corner(bar, 3) local startA = (def - mn) / (mx - mn) local fill = new("Frame", { Size = UDim2.new(startA, 0, 1, 0), BackgroundColor3 = Color3.new(1, 1, 1), BorderSizePixel = 0, }, bar) corner(fill, 3) gradient(fill, 0) local knob = new("Frame", { AnchorPoint = Vector2.new(0.5, 0.5), Position = UDim2.new(startA, 0, 0.5, 0), Size = UDim2.new(0, 12, 0, 12), BackgroundColor3 = Color3.new(1, 1, 1), BorderSizePixel = 0, ZIndex = 2, }, bar) corner(knob, 6) local hit = new("TextButton", { Size = UDim2.new(1, 0, 0, 26), Position = UDim2.new(0, 0, 0.5, -13), BackgroundTransparency = 1, Text = "", }, bar) local dragging = false local function setFromX(x) local a = math.clamp((x - bar.AbsolutePosition.X) / math.max(bar.AbsoluteSize.X, 1), 0, 1) local v = math.floor(mn + (mx - mn) * a + 0.5) fill.Size = UDim2.new(a, 0, 1, 0) knob.Position = UDim2.new(a, 0, 0.5, 0) val.Text = tostring(v) pcall(cb, v) end track(hit.InputBegan:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then dragging = true setFromX(i.Position.X) end end)) track(UIS.InputChanged:Connect(function(i) if dragging and (i.UserInputType == Enum.UserInputType.MouseMovement or i.UserInputType == Enum.UserInputType.Touch) then setFromX(i.Position.X) end end)) track(UIS.InputEnded:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then dragging = false end end)) end -- ============ HELPERS ============ local function getRoot() local c = LP.Character return c and c:FindFirstChild("HumanoidRootPart"), c and c:FindFirstChildOfClass("Humanoid") end local function isRemote(d) return d:IsA("RemoteEvent") or d:IsA("RemoteFunction") or d:IsA("BindableEvent") end local function findRemote(names) local pool = {} for _, n in ipairs(names) do local hit = RS:FindFirstChild(n, true) or WS:FindFirstChild(n, true) if hit then table.insert(pool, hit) end end local rake = WS:FindFirstChild("the_rake", true) if rake then for _, d in ipairs(rake:GetDescendants()) do if isRemote(d) then table.insert(pool, d) end end end for _, d in ipairs(RS:GetDescendants()) do if isRemote(d) and d.Name:lower():find("startmode") then table.insert(pool, d) end end return pool end -- ============ PAGES ============ local pMove = addTab("Move", 3) local pCombat = addTab("Combat", 3) local pMisc = addTab("Misc", 3) selectTab("Move") -- ============ REMOVE CONFIRM (are you sure?) ============ local confirm = new("Frame", { Size = UDim2.new(1, 0, 1, 0), BackgroundColor3 = Color3.new(0, 0, 0), BackgroundTransparency = 0.4, Visible = false, ZIndex = 50, Active = true, }, main) corner(confirm, 14) local card = new("Frame", { AnchorPoint = Vector2.new(0.5, 0.5), Position = UDim2.new(0.5, 0, 0.5, 0), Size = UDim2.new(1, -48, 0, 138), BackgroundColor3 = C.panel, BorderSizePixel = 0, }, confirm) corner(card, 12) gradient(new("UIStroke", {Thickness = 1.5, Color = Color3.new(1, 1, 1)}, card), 45) local cardScale = new("UIScale", {Scale = 1}, card) new("TextLabel", { Size = UDim2.new(1, -24, 0, 24), Position = UDim2.new(0, 12, 0, 14), BackgroundTransparency = 1, Text = "Remove script?", TextColor3 = C.text, Font = Enum.Font.GothamBold, TextSize = 15, }, card) new("TextLabel", { Size = UDim2.new(1, -24, 0, 36), Position = UDim2.new(0, 12, 0, 42), BackgroundTransparency = 1, Text = "Are you sure you want to remove it?", TextColor3 = C.dim, Font = Enum.Font.GothamMedium, TextSize = 12, TextWrapped = true, }, card) local noBtn = new("TextButton", { Size = UDim2.new(0.5, -18, 0, 34), Position = UDim2.new(0, 12, 1, -46), BackgroundColor3 = C.row, Text = "Cancel", TextColor3 = C.text, Font = Enum.Font.GothamBold, TextSize = 12, AutoButtonColor = false, BorderSizePixel = 0, }, card) corner(noBtn, 8) hover(noBtn, C.row, C.rowHi) local yesBtn = new("TextButton", { Size = UDim2.new(0.5, -18, 0, 34), Position = UDim2.new(0.5, 6, 1, -46), BackgroundColor3 = C.red, Text = "Yes, remove", TextColor3 = Color3.new(1, 1, 1), Font = Enum.Font.GothamBold, TextSize = 12, AutoButtonColor = false, BorderSizePixel = 0, }, card) corner(yesBtn, 8) local function askRemove() confirm.Visible = true cardScale.Scale = 0.9 tween(cardScale, 0.15, {Scale = 1}) end track(noBtn.MouseButton1Click:Connect(function() confirm.Visible = false end)) track(yesBtn.MouseButton1Click:Connect(function() if env.EvaCleanup then env.EvaCleanup() end end)) -- ============ TOGGLE (pill + RightShift) - built early so the gui is always usable ============ local pill = new("TextButton", { Size = UDim2.new(0, 42, 0, 42), Position = UDim2.new(0, 16, 0.5, -21), BackgroundColor3 = C.panel, Text = "", AutoButtonColor = false, BorderSizePixel = 0, ZIndex = 5, }, gui) corner(pill, 21) local ps = new("UIStroke", {Thickness = 2, Color = Color3.new(1, 1, 1)}, pill) gradient(ps, 45) local pd = new("Frame", { Size = UDim2.new(0, 14, 0, 14), Position = UDim2.new(0.5, -7, 0.5, -7), BackgroundColor3 = Color3.new(1, 1, 1), BorderSizePixel = 0, ZIndex = 6, }, pill) corner(pd, 7) gradient(pd, 45) -- separate dragging so a drag doesn't also count as a click local pillMoved = false do local dragging, start, startPos = false, nil, nil track(pill.InputBegan:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then dragging, start, startPos = true, i.Position, pill.Position pillMoved = false end end)) track(UIS.InputChanged:Connect(function(i) if not dragging then return end if i.UserInputType == Enum.UserInputType.MouseMovement or i.UserInputType == Enum.UserInputType.Touch then local d = i.Position - start if d.Magnitude > 5 then pillMoved = true end if pillMoved then pill.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + d.X, startPos.Y.Scale, startPos.Y.Offset + d.Y) end end end)) track(UIS.InputEnded:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then dragging = false end end)) end local isVisible = true local function setVisible(v) isVisible = v if v then main.Visible = true scale.Scale = 0.9 tween(scale, 0.18, {Scale = 1}) else tween(scale, 0.15, {Scale = 0.9}) task.delay(0.16, function() if not isVisible and main.Parent then main.Visible = false end end) end end track(pill.MouseButton1Click:Connect(function() if pillMoved then return end setVisible(not isVisible) end)) track(hideBtn.MouseButton1Click:Connect(function() setVisible(false) end)) track(closeBtn.MouseButton1Click:Connect(askRemove)) -- X now asks first track(UIS.InputBegan:Connect(function(i) if i.KeyCode ~= Enum.KeyCode.RightShift then return end if UIS:GetFocusedTextBox() then return end setVisible(not isVisible) end)) -- ============ CLEANUP (also built early) ============ env.EvaCleanup = function() alive = false pickupOn = false candyOn = false speedOn = false dropsOn = false tpDrop = false aiOn = false pcall(stopFly) pcall(stopAim) pcall(restoreHitbox) pcall(removePlatform) for _, c in ipairs(conns) do pcall(function() c:Disconnect() end) end pcall(function() gui:Destroy() end) env.EvaCleanup = nil end -- watchdog: if the game removes the gui, put it back task.spawn(function() while alive do task.wait(2) if alive and not gui.Parent then mount(gui) end end end) -- ============ MOVE TAB ============ section("move", function() -- ---- FLY ---- local flyOn, flyCon, flyBV, flyBG = false, nil, nil, nil stopFly = function() flyOn = false if flyCon then flyCon:Disconnect(); flyCon = nil end if flyBV then flyBV:Destroy(); flyBV = nil end if flyBG then flyBG:Destroy(); flyBG = nil end end local setFlyUI local function startFly() local root = getRoot() if not root then return false end flyOn = true flyBV = new("BodyVelocity", {MaxForce = Vector3.new(1e5, 1e5, 1e5), Velocity = Vector3.zero}, root) flyBG = new("BodyGyro", {MaxTorque = Vector3.new(1e5, 1e5, 1e5), P = 1000, CFrame = root.CFrame}, root) flyCon = RunService.Heartbeat:Connect(function() local r = getRoot() local cm = WS.CurrentCamera if not r or not cm or not flyOn then return end local dir = Vector3.zero if UIS:IsKeyDown(Enum.KeyCode.W) then dir = dir + cm.CFrame.LookVector end if UIS:IsKeyDown(Enum.KeyCode.S) then dir = dir - cm.CFrame.LookVector end if UIS:IsKeyDown(Enum.KeyCode.A) then dir = dir - cm.CFrame.RightVector end if UIS:IsKeyDown(Enum.KeyCode.D) then dir = dir + cm.CFrame.RightVector end if UIS:IsKeyDown(Enum.KeyCode.Space) then dir = dir + Vector3.new(0, 1, 0) end if UIS:IsKeyDown(Enum.KeyCode.LeftShift) then dir = dir - Vector3.new(0, 1, 0) end if dir.Magnitude > 0 then dir = dir.Unit * 60 end if flyBV then flyBV.Velocity = dir end if flyBG then flyBG.CFrame = cm.CFrame end end) track(flyCon) return true end label(pMove, "Movement") setFlyUI = toggle(pMove, "Fly (WASD / Space / Shift)", function(v) if v then if not startFly() then setFlyUI(false, true) end else stopFly() end end) track(LP.CharacterAdded:Connect(function() stopFly() setFlyUI(false, true) end)) -- ---- SPEED ---- local speedVal = 50 toggle(pMove, "Walk Speed", function(v) speedOn = v if not v then local _, hum = getRoot() if hum then hum.WalkSpeed = 16 end end end) slider(pMove, "Speed Amount", 16, 200, speedVal, function(v) speedVal = v end) track(RunService.Heartbeat:Connect(function() if not speedOn then return end local _, hum = getRoot() if hum then hum.WalkSpeed = speedVal end end)) -- ---- INFINITE STAMINA ---- label(pMove, "Player") local staminaCon = nil local function getStaminaRemote() local pr = RS:FindFirstChild("PlayerRemotes") return pr and pr:FindFirstChild("SetStaminaValues") end local function fireStamina() local Event = getStaminaRemote() if not Event then return false end firesignal(Event.OnClientEvent, 100, 15, 42, 999999 ) return true end local setStaminaUI setStaminaUI = toggle(pMove, "Infinite Stamina", function(v) if not v then if staminaCon then staminaCon:Disconnect(); staminaCon = nil end return end if not firesignal then notify("Your executor has no firesignal") setStaminaUI(false, true) return end if not getStaminaRemote() then notify("SetStaminaValues not loaded yet") setStaminaUI(false, true) return end staminaCon = RunService.RenderStepped:Connect(function() pcall(fireStamina) end) track(staminaCon) end) button(pMove, "Refill Stamina (once)", function() if not firesignal then notify("Your executor has no firesignal") return end if not fireStamina() then notify("SetStaminaValues not loaded yet") end end) end) -- ============ SKY PLATFORM ============ section("sky", function() label(pMove, "Sky") local skyHeight = 500 local skyPlatform = nil local skyReturnCF = nil removePlatform = function() if skyPlatform then pcall(function() skyPlatform:Destroy() end) skyPlatform = nil end end local function makePlatform(cf) removePlatform() local p = new("Part", { Name = tostring(math.random(100000, 999999)), Size = Vector3.new(60, 2, 60), Anchored = true, CanCollide = true, Material = Enum.Material.Neon, Color = C.a1, Transparency = 0.35, TopSurface = Enum.SurfaceType.Smooth, BottomSurface = Enum.SurfaceType.Smooth, CFrame = cf, }, WS) new("SelectionBox", { Adornee = p, LineThickness = 0.08, Color3 = C.a2, SurfaceTransparency = 1, }, p) new("PointLight", {Color = C.a2, Range = 30, Brightness = 2}, p) -- slow pulse so it looks alive TS:Create(p, TweenInfo.new(1.5, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut, -1, true), {Transparency = 0.6}):Play() skyPlatform = p end slider(pMove, "Sky Height", 50, 2000, skyHeight, function(v) skyHeight = v end) button(pMove, "Teleport to Sky", function() local root = getRoot() if not root then return end if not skyReturnCF then skyReturnCF = root.CFrame end local base = skyReturnCF.Position local pos = Vector3.new(base.X, base.Y + skyHeight, base.Z) makePlatform(CFrame.new(pos - Vector3.new(0, 4, 0))) root.CFrame = CFrame.new(pos) root.AssemblyLinearVelocity = Vector3.zero end) button(pMove, "Return From Sky", function() local root = getRoot() if root and skyReturnCF then root.CFrame = skyReturnCF + Vector3.new(0, 3, 0) root.AssemblyLinearVelocity = Vector3.zero end skyReturnCF = nil removePlatform() end) end) -- ============ COMBAT TAB ============ section("combat", function() -- ---- DROPS DATA ---- -- add more drops here. "id" is the debug id from your snippet; debug ids -- change between sessions, so if the exact id isn't found it falls back -- to the first nil instance with that name. local DROPS = { {name = "Coin", id = "1_200886"}, {name = "TrainerCap", id = "1_239393"}, } local dropChance = 25 local function getNil(name, debugId) if not getnilinstances then return nil end for _, o in ipairs(getnilinstances()) do if o.Name == name then if not debugId or o:GetDebugId() == debugId then return o end end end end local nilCache = {} local function resolveDrop(d) if nilCache[d.name] then return nilCache[d.name] end local inst = getNil(d.name, d.id) or getNil(d.name) nilCache[d.name] = inst return inst end local function posOf(o) if typeof(o) ~= "Instance" then return nil end local ok, p = pcall(function() if o:IsA("BasePart") then return o.Position end if o:IsA("Model") then return o:GetPivot().Position end if o:IsA("Tool") then local h = o:FindFirstChild("Handle") return h and h.Position end end) return ok and p or nil end local function tpTo(p, fromDrop) local root = getRoot() if root and p then root.CFrame = CFrame.new(p + Vector3.new(0, 3, 0)) if fromDrop then aiPauseUntil = tick() + 1.5 end end end -- fires the SpawnDrop signal with the nil instance, like your snippets local function spawnDrop(d) local ev = RS:FindFirstChild("SpawnDrop") if not ev then notify("SpawnDrop remote not found") return false end if not firesignal then notify("Your executor has no firesignal") return false end local inst = resolveDrop(d) if not inst then notify("Couldn't find '" .. d.name .. "' (needs getnilinstances)") return false end firesignal(ev.OnClientEvent, inst) return true end -- picks a random drop, fires it, then teleports to where it appeared local function rollDrop(fallbackPos) local d = DROPS[math.random(#DROPS)] local found local c = WS.DescendantAdded:Connect(function(o) if o.Name == d.name then found = o end end) local ok = spawnDrop(d) task.wait(0.3) c:Disconnect() if ok and tpDrop then tpTo(posOf(found) or fallbackPos, true) end end -- teleport to drops the game spawns by itself local dropConn = nil local function bindDropListener() if dropConn then return true end local ev = RS:FindFirstChild("SpawnDrop") if not ev then return false end dropConn = ev.OnClientEvent:Connect(function(obj) if not tpDrop then return end if typeof(obj) ~= "Instance" or not obj:IsDescendantOf(WS) then return end task.wait(0.1) tpTo(posOf(obj), true) end) track(dropConn) return true end -- watches enemies and rolls a drop when one dies local hooked = setmetatable({}, {__mode = "k"}) local function hookEnemy(m, hum) if hooked[m] then return end hooked[m] = true if hum.Health <= 0 then return end track(hum.Died:Connect(function() if not dropsOn then return end if math.random() * 100 > dropChance then return end local ok, pos = pcall(function() return m:GetPivot().Position end) task.spawn(rollDrop, ok and pos or nil) end)) end task.spawn(function() while alive do task.wait(1) if dropsOn then for _, m in ipairs(WS:GetChildren()) do if m:IsA("Model") and m ~= LP.Character and Players:GetPlayerFromCharacter(m) == nil then local mh = m:FindFirstChildOfClass("Humanoid") if mh then hookEnemy(m, mh) end end end end end end) -- ---- TARGETING (shared by Auto Rakoof, Aim Lock, Hitbox, Teleport to Rakoof) ---- local aiTeleport, limitRange, hitRange, preferRakoof = true, false, 60, true local function validTarget(m) if not m or not m.Parent then return false end local h = m:FindFirstChildOfClass("Humanoid") if h and h.Health <= 0 then return false end return true end local function partOf(m) return m:FindFirstChild("HumanoidRootPart") or m.PrimaryPart or m:FindFirstChildWhichIsA("BasePart", true) end -- looks through a list for a model named like "rakoof" -- (falls back to a living "rake" model with a Humanoid, e.g. the_rake) local function scan(list) local fallback for _, d in ipairs(list) do if d:IsA("Model") and not Players:GetPlayerFromCharacter(d) then local h = d:FindFirstChildOfClass("Humanoid") if not h or h.Health > 0 then local n = d.Name:lower() if n:find("rakoof") then return d elseif not fallback and h and n:find("rake") then fallback = d end end end end return fallback end local rakoofCache, lastDeep = nil, 0 local function getRakoof() if validTarget(rakoofCache) then return rakoofCache end rakoofCache = scan(WS:GetChildren()) if not rakoofCache and tick() - lastDeep > 2 then lastDeep = tick() rakoofCache = scan(WS:GetDescendants()) end return rakoofCache end local function nearestEnemy(root, useLimit) local best, bestPart, bestD = nil, nil, math.huge for _, m in ipairs(WS:GetChildren()) do if m:IsA("Model") and m ~= LP.Character then local mh = m:FindFirstChildOfClass("Humanoid") local mr = m:FindFirstChild("HumanoidRootPart") if mh and mr and mh.Health > 0 and Players:GetPlayerFromCharacter(m) == nil then local d = (mr.Position - root.Position).Magnitude if (not useLimit or d <= hitRange) and d < bestD then bestD, best, bestPart = d, m, mr end end end end return best, bestPart end local function pickTarget(root, useLimit) if preferRakoof then local rk = getRakoof() local rp = rk and partOf(rk) if rp and (not useLimit or (rp.Position - root.Position).Magnitude <= hitRange) then return rk, rp end end return nearestEnemy(root, useLimit) end -- ---- AUTO RAKOOF ---- label(pCombat, "Auto Rakoof") local aiCon = nil toggle(pCombat, "Auto Rakoof", function(v) aiOn = v if aiCon then aiCon:Disconnect(); aiCon = nil end if not v then return end aiCon = RunService.RenderStepped:Connect(function() if tick() < aiPauseUntil then return end local char = LP.Character local root = char and char:FindFirstChild("HumanoidRootPart") if not root then return end local m, mr = pickTarget(root, limitRange) if not m or not mr then return end if aiTeleport then local target = mr.Position + (mr.CFrame.LookVector * -1) * standDist + Vector3.new(0, 2, 0) root.CFrame = CFrame.new(target, mr.Position) end local tool = char:FindFirstChildOfClass("Tool") if tool then pcall(function() tool:Activate() end) end end) track(aiCon) end) local setRF = toggle(pCombat, "Rakoof First", function(v) preferRakoof = v end) setRF(true) local setTPEnemy = toggle(pCombat, "Teleport to Enemy", function(v) aiTeleport = v end) setTPEnemy(true) toggle(pCombat, "Limit Hit Range", function(v) limitRange = v end) slider(pCombat, "Hit Range (studs)", 5, 500, hitRange, function(v) hitRange = v end) slider(pCombat, "Stand Distance", 3, 20, standDist, function(v) standDist = v end) -- ---- RAKOOF HITBOX ---- label(pCombat, "Rakoof Hitbox") local hbOn, hbAll, hbShow, hbSize = false, false, true, 25 local hbOriginal = {} -- [part] = original properties local hbModel = nil local function hbRestore() for part, o in pairs(hbOriginal) do if part and part.Parent then pcall(function() part.Size = o.Size part.Transparency = o.Transparency part.CanCollide = o.CanCollide part.Massless = o.Massless end) end end hbOriginal = {} hbModel = nil end restoreHitbox = hbRestore local function hbApply(part) if not hbOriginal[part] then hbOriginal[part] = { Size = part.Size, Transparency = part.Transparency, CanCollide = part.CanCollide, Massless = part.Massless, } end local o = hbOriginal[part] local want = o.Size + Vector3.new(hbSize, hbSize, hbSize) if part.Size ~= want then part.Size = want end part.CanCollide = false part.Massless = true part.Transparency = hbShow and math.max(0.55, o.Transparency) or o.Transparency end task.spawn(function() while alive do task.wait(0.25) if hbOn then local m = getRakoof() if m then if hbModel ~= m then hbRestore() hbModel = m end if hbAll then for _, p in ipairs(m:GetDescendants()) do if p:IsA("BasePart") then pcall(hbApply, p) end end else local rp = partOf(m) if rp then pcall(hbApply, rp) end end elseif hbModel then hbRestore() -- Rakoof is gone end end end end) toggle(pCombat, "Expand Rakoof Hitbox", function(v) hbOn = v if not v then hbRestore() return end if not getRakoof() then notify("Rakoof not found yet - will apply when he spawns") end end) slider(pCombat, "Hitbox Size", 1, 100, hbSize, function(v) hbSize = v end) local setHbShow = toggle(pCombat, "Show Hitbox", function(v) hbShow = v if hbOn then hbRestore() end -- reapplies with the new look next tick end) setHbShow(true) toggle(pCombat, "All Parts", function(v) hbAll = v if hbOn then hbRestore() end -- reapplies for the new mode next tick end) -- ---- AIM LOCK ---- label(pCombat, "Aim Lock") local aimStrength, aimHead = 100, false local aimTarget, aimPart, aimAt = nil, nil, 0 local AIM_BIND = "eva_aim_" .. tostring(math.random(1000, 9999)) local function aimStep() local cm = WS.CurrentCamera local root = getRoot() if not cm or not root then return end -- re-pick the target a few times a second instead of every frame if tick() - aimAt > 0.25 or not (aimPart and aimPart.Parent) then aimAt = tick() aimTarget, aimPart = pickTarget(root, false) end if not aimPart then return end local pos = aimPart.Position if aimHead and aimTarget then local h = aimTarget:FindFirstChild("Head") if h and h:IsA("BasePart") then pos = h.Position end end local goal = CFrame.new(cm.CFrame.Position, pos) local a = aimStrength / 100 cm.CFrame = (a >= 1) and goal or cm.CFrame:Lerp(goal, a) end stopAim = function() aimOn = false pcall(function() RunService:UnbindFromRenderStep(AIM_BIND) end) end toggle(pCombat, "Aim Lock (Rakoof)", function(v) stopAim() if not v then return end aimOn = true aimAt = 0 local ok = pcall(function() RunService:BindToRenderStep(AIM_BIND, Enum.RenderPriority.Camera.Value + 1, aimStep) end) if ok then notify("Aim lock on") else aimOn = false notify("Aim lock failed to start") end end) slider(pCombat, "Lock Strength", 5, 100, aimStrength, function(v) aimStrength = v end) toggle(pCombat, "Aim at Head", function(v) aimHead = v end) -- ---- TELEPORT ---- label(pCombat, "Teleport") button(pCombat, "Teleport to Rakoof", function() local m = getRakoof() if not m then notify("Rakoof not found") return end local root = getRoot() if not root then return end local ok, cf = pcall(function() return m:GetPivot() end) if not ok then notify("Couldn't read Rakoof's position") return end local target = cf.Position + (cf.LookVector * -1) * standDist + Vector3.new(0, 2, 0) root.CFrame = CFrame.new(target, cf.Position) root.AssemblyLinearVelocity = Vector3.zero aiPauseUntil = tick() + 1.5 end) -- ---- DROPS UI ---- label(pCombat, "Drops") toggle(pCombat, "Enemy Drops", function(v) dropsOn = v end) slider(pCombat, "Drop Chance %", 0, 100, dropChance, function(v) dropChance = v end) toggle(pCombat, "Teleport to Drops", function(v) tpDrop = v if v and not bindDropListener() then notify("SpawnDrop not found - only enemy drops teleport") end end) button(pCombat, "Spawn Random Drop Now", function() local root = getRoot() task.spawn(rollDrop, root and root.Position or nil) end) -- ---- AUTO PICKUP + AUTO CANDY ---- label(pCombat, "Automation") local function touch(root, part) if firetouchinterest then pcall(firetouchinterest, root, part, 0) pcall(firetouchinterest, root, part, 1) elseif not part.Anchored then pcall(function() part.CFrame = root.CFrame end) end end -- picks up tools plus parts named drop / coin / item toggle(pCombat, "Auto Pickup", function(v) pickupOn = v if not v then return end task.spawn(function() while pickupOn and alive do local root = getRoot() if root then for _, o in ipairs(WS:GetDescendants()) do if not pickupOn then break end local part if o:IsA("Tool") then part = o:FindFirstChild("Handle") elseif o:IsA("BasePart") then local n = o.Name:lower() if n:find("drop") or n:find("coin") or n:find("item") then part = o end end if part and part:IsA("BasePart") and (part.Position - root.Position).Magnitude < 60 then touch(root, part) end end end task.wait(0.4) end end) end) -- teleports to candy corn / buckets / packs and touches them toggle(pCombat, "Auto Candy", function(v) candyOn = v if not v then return end task.spawn(function() while candyOn and alive do local root = getRoot() if root then for _, o in ipairs(WS:GetDescendants()) do if not candyOn then break end local n = o.Name:lower() if n:find("candycorn") or n:find("candybucket") or n:find("candypack") then local part = o:IsA("BasePart") and o or o:FindFirstChild("Handle") or o:FindFirstChildWhichIsA("BasePart") if part then aiPauseUntil = tick() + 0.6 -- keep Auto Rakoof from pulling you away root.CFrame = part.CFrame + Vector3.new(0, 2, 0) touch(root, part) task.wait(0.3) end end end end task.wait(0.5) end end) end) -- ---- ACTIONS ---- label(pCombat, "Actions") button(pCombat, "Trigger StartMode", function() local hits = findRemote({"StartMode", "startmode", "StartModeRemote"}) if #hits == 0 then notify("No StartMode remote found") return end for _, r in ipairs(hits) do pcall(function() if r:IsA("RemoteEvent") then r:FireServer("HellsAwakening") r:FireServer("HellsAwakeningMain") elseif r:IsA("RemoteFunction") then r:InvokeServer("HellsAwakening") elseif r:IsA("BindableEvent") then r:Fire("HellsAwakening") end end) end end) button(pCombat, "Force Drop Item", function() local hits = findRemote({"SpawnItem", "spawnitem", "SpawnItemRemote"}) if #hits == 0 then notify("No SpawnItem remote found") return end local char = LP.Character local tool = char and char:FindFirstChildOfClass("Tool") local root = char and char:FindFirstChild("HumanoidRootPart") if not tool or not root then notify("Equip a tool first") return end for _, r in ipairs(hits) do pcall(function() if r:IsA("RemoteEvent") then r:FireServer(tool.Name, root.Position) elseif r:IsA("RemoteFunction") then r:InvokeServer(tool.Name, root.Position) end end) end end) end) -- ============ MISC TAB ============ section("misc", function() label(pMisc, "Window") button(pMisc, "Hide Window (RightShift)", function() setVisible(false) end) button(pMisc, "Remove Script", askRemove) end) print("[gui] loaded - RightShift, the '-' button, or the round button toggles the window")