
THE RAKOOF KILL TEST Script – Auto Kill Rakoof or More
-- 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")How to Execute THE RAKOOF KILL TEST Script – Auto Kill Rakoof or More
Step 1: Copy Code: Click the Copy Code button in the viewer above to grab the clean Lua loadstring.
Step 2: Launch Executor: Open a compatible, unpatched executor. If you need one, check our Roblox Executors Directory.
Step 3: Join Experience: Launch Roblox and join THE RAKOOF KILL TEST.
Step 4: Attach & Run: Attach/inject your executor into the Roblox process, paste the code into the script tab, and press Execute.
Created By
View Author ProfileFeatures & Information
Script Changelog (1)
Community Comments (0)
No comments yet for this script.
Frequently Asked Questions
How do I execute THE RAKOOF KILL TEST Script – Auto Kill Rakoof or More in Roblox?
To run THE RAKOOF KILL TEST Script – Auto Kill Rakoof or More, copy the Lua loadstring from the code viewer above, launch Roblox and join THE RAKOOF KILL TEST, attach a working executor (such as Potassium, Solara, or Delta from our Executors directory), paste the code into your executor console, and click Execute.
Is THE RAKOOF KILL TEST Script – Auto Kill Rakoof or More keyless or does it require an access key?
THE RAKOOF KILL TEST Script – Auto Kill Rakoof or More requires an access key. You can retrieve the official key directly using the Get Script Key link provided above.
Is THE RAKOOF KILL TEST Script – Auto Kill Rakoof or More currently safe and working?
This script is active and operational. Always test scripts using a secondary (alt) Roblox account to safeguard your main profile against anti-cheat bans.



