Description
Not every script lives up to the hype, but this one for Rivals delivers what it promises. Featuring Aimbot and Fly among other tools, it’s worth trying if you want to get more out of your sessions. no key needed.
What This Script Can Do
- Aimbot: Assists your targeting so your shots or attacks land more consistently, which is useful in fast-paced Rivals rounds.
- Fly: Allows your character to fly freely around the Rivals map, making navigation and exploration much easier.
- Speed Hack: Boosts your character’s movement speed so you can get around Rivals’s map much faster than normal.
- Triggerbot: Adds Triggerbot functionality to your Rivals setup, helpful for both new and experienced players.
- Access: No key system or Linkvertise redirect needed — just paste and run.
- Executor Compatibility: Works great on Delta, Codex, Hydrogen, Wave, and most mobile and PC executors.
Features
Compatible Executors
Script
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")
local LocalPlayer = Players.LocalPlayer
if not LocalPlayer then
LocalPlayer = Players:WaitForChild("LocalPlayer", 10)
end
local waitFn = (typeof ~= nil and task ~= nil and task.wait) or wait
local function clamp(v, a, b)
if v b then return b end
return v
end
local function showError(msg)
pcall(function()
local sg = Instance.new("ScreenGui")
sg.ResetOnSpawn = false
sg.Parent = game:GetService("CoreGui")
local f = Instance.new("Frame")
f.Size = UDim2.new(0, 460, 0, 240)
f.Position = UDim2.new(0.5, -230, 0.5, -120)
f.BackgroundColor3 = Color3.fromRGB(45, 0, 0)
f.BorderSizePixel = 0
f.Parent = sg
local t = Instance.new("TextLabel")
t.Size = UDim2.new(1, -16, 1, -16)
t.Position = UDim2.new(0, 8, 0, 8)
t.BackgroundTransparency = 1
t.TextColor3 = Color3.fromRGB(255, 255, 255)
t.TextSize = 14
t.TextWrapped = true
t.Font = Enum.Font.Code
t.Text = "SCRIPT ERROR:n" .. tostring(msg)
t.Parent = f
end)
end
-- ============================================================
-- HITBOXES MODULE (inline, self-contained for easy sharing)
-- ============================================================
local Hitboxes = (function()
local H = {}
local P = game:GetService("Players")
local LP = P.LocalPlayer
H.Config = { Enabled = true, TeamCheck = false, Size = 1.6,
Color = Color3.fromRGB(170, 0, 255), Transparency = 0.4 }
local visual, connections = {}, {}
local BASE = Vector3.new(4, 6, 2)
local function gc(p) return p and p.Character end
local function isEnemy(p)
if p == LP then return false end
if H.Config.TeamCheck and p.Team and LP.Team and p.Team == LP.Team then return false end
local c = gc(p); return c and c:FindFirstChild("Humanoid") ~= nil
end
local function create(p)
local c = gc(p); if not c then return end
local root = c:FindFirstChild("HumanoidRootPart"); if not root then return end
local sz = BASE * H.Config.Size
local vis = Instance.new("Part")
vis.Name = "HitboxESP"; vis.CanCollide = false; vis.Anchored = false; vis.Massless = true
vis.Transparency = H.Config.Transparency; vis.Color = H.Config.Color
vis.Material = Enum.Material.ForceField; vis.Size = sz; vis.Parent = c
local w1 = Instance.new("WeldConstraint"); w1.Part0 = root; w1.Part1 = vis; w1.Parent = vis
visual[p] = vis
end
local function remove(p)
if visual[p] then visual[p]:Destroy(); visual[p] = nil end
end
function H:Refresh()
for _, p in ipairs(P:GetPlayers()) do
if self.Config.Enabled and isEnemy(p) then
local c = gc(p)
local root = c and c:FindFirstChild("HumanoidRootPart")
if root then
local sz = BASE * self.Config.Size
if not visual[p] then
create(p)
else
if visual[p] then visual[p].Size = sz end
end
end
else remove(p) end
end
end
function H:SetEnabled(s) self.Config.Enabled = s; self:Refresh() end
local function onChar(p, c)
c:WaitForChild("HumanoidRootPart", 5)
if H.Config.Enabled and isEnemy(p) then waitFn(0.3); create(p) end
end
local function bind(p)
if connections[p] then return end
connections[p] = p.CharacterAdded:Connect(function(c) onChar(p, c) end)
if p.Character then onChar(p, p.Character) end
end
for _, p in ipairs(P:GetPlayers()) do bind(p) end
P.PlayerAdded:Connect(bind)
P.PlayerRemoving:Connect(function(p)
if connections[p] then connections[p]:Disconnect(); connections[p] = nil end
remove(p)
end)
return H
end)()
local function RUN()
if not Hitboxes then
error("Hitboxes module failed to initialize.")
end
-- ============================================================
-- AIMBOT (mouse mode, smoothed)
-- ============================================================
local Aimbot = {
Enabled = false,
HoldToAim = true,
FOV = 250,
Speed = 0.35,
AimHead = true,
TeamCheck = false,
}
local aiming = false
local canMouse = (typeof(mousemoverel) == "function")
local function sameTeam(pl)
return Aimbot.TeamCheck
and pl.Team and LocalPlayer.Team
and pl.Team == LocalPlayer.Team
end
local function getTarget()
local cam = workspace.CurrentCamera
if not cam then return nil end
local center = Vector2.new(cam.ViewportSize.X / 2, cam.ViewportSize.Y / 2)
local best, bestDist = nil, Aimbot.FOV
for _, pl in ipairs(Players:GetPlayers()) do
if pl ~= LocalPlayer and not sameTeam(pl) then
local char = pl.Character
if char and char:FindFirstChild("Humanoid") then
local part = (Aimbot.AimHead and char:FindFirstChild("Head"))
or char:FindFirstChild("HumanoidRootPart")
if part and part.Parent then
local sp, vis = cam:WorldToViewportPoint(part.Position)
if vis then
local d = (Vector2.new(sp.X, sp.Y) - center).Magnitude
if d < bestDist then bestDist = d; best = part end
end
end
end
end
end
return best
end
RunService.RenderStepped:Connect(function()
pcall(function()
if not Aimbot.Enabled then return end
if Aimbot.HoldToAim and not aiming then return end
if not canMouse then return end
local cam = workspace.CurrentCamera
if not cam then return end
local target = getTarget()
if not target then return end
local sp, vis = cam:WorldToViewportPoint(target.Position)
local vs = cam.ViewportSize
if not vis or sp.X vs.X or sp.Y vs.Y then return end
local mp = UserInputService:GetMouseLocation()
local dx = sp.X - mp.X
local dy = sp.Y - mp.Y
local f = clamp(Aimbot.Speed, 0.05, 1)
mousemoverel(math.round(dx * f), math.round(dy * f))
end)
end)
-- ============================================================
-- MOVEMENT: FLY + SPEED (rebindable via settings)
-- ============================================================
local Binds = { Menu = "P", Aimbot = "MouseButton2", Fly = "F", Speed = "G" }
local Fly = { Enabled = false, Speed = 50 }
local Speed = { Enabled = false, Value = 32 }
local speedHum
local flyBV, flyConn
local function setFly(on)
Fly.Enabled = on
local char = LocalPlayer.Character
if not char then return end
local hrp = char:FindFirstChild("HumanoidRootPart") or char:WaitForChild("HumanoidRootPart", 5)
if not hrp then return end
if on then
if flyBV then pcall(function() flyBV:Destroy() end) end
flyBV = Instance.new("BodyVelocity")
flyBV.MaxForce = Vector3.new(1e5, 1e5, 1e5)
flyBV.Velocity = Vector3.new()
flyBV.Parent = hrp
if flyConn then flyConn:Disconnect() end
flyConn = RunService.RenderStepped:Connect(function()
if not flyBV or not flyBV.Parent then return end
local cam = workspace.CurrentCamera
if not cam then return end
local dir = Vector3.new()
local U = UserInputService
if U:IsKeyDown(Enum.KeyCode.W) then dir = dir + cam.CFrame.LookVector end
if U:IsKeyDown(Enum.KeyCode.S) then dir = dir - cam.CFrame.LookVector end
if U:IsKeyDown(Enum.KeyCode.A) then dir = dir - cam.CFrame.RightVector end
if U:IsKeyDown(Enum.KeyCode.D) then dir = dir + cam.CFrame.RightVector end
if U:IsKeyDown(Enum.KeyCode.Space) then dir = dir + Vector3.new(0, 1, 0) end
if U:IsKeyDown(Enum.KeyCode.LeftControl) or U:IsKeyDown(Enum.KeyCode.LeftShift) then dir = dir - Vector3.new(0, 1, 0) end
if dir.Magnitude > 0 then dir = dir.Unit end
flyBV.Velocity = dir * Fly.Speed
end)
else
if flyBV then pcall(function() flyBV:Destroy() end); flyBV = nil end
if flyConn then flyConn:Disconnect(); flyConn = nil end
end
end
local function applySpeed()
if Speed.Enabled and speedHum then
speedHum.WalkSpeed = Speed.Value
end
end
local function bindSpeedHum(hum)
speedHum = hum
applySpeed()
hum:GetPropertyChangedSignal("WalkSpeed"):Connect(function()
if Speed.Enabled and hum.WalkSpeed ~= Speed.Value then
hum.WalkSpeed = Speed.Value
end
end)
end
local function setSpeed(on)
Speed.Enabled = on
applySpeed()
end
do
local c = LocalPlayer.Character
local h = c and c:FindFirstChild("Humanoid")
if h then bindSpeedHum(h) end
end
RunService.Stepped:Connect(function()
if Speed.Enabled and speedHum and speedHum.WalkSpeed ~= Speed.Value then
speedHum.WalkSpeed = Speed.Value
end
end)
LocalPlayer.CharacterAdded:Connect(function(c)
waitFn(0.2)
local hum = c:FindFirstChild("Humanoid") or c:WaitForChild("Humanoid", 5)
if hum then bindSpeedHum(hum) end
if Fly.Enabled then
local hrp = c:WaitForChild("HumanoidRootPart", 5)
if hrp then setFly(true) end
end
end)
-- ============================================================
-- TRIGGERBOT (auto-fires when crosshair lands on an enemy)
-- ============================================================
local Triggerbot = { Enabled = false }
local canClick = (typeof(mouse1press) == "function")
local triggerDown = false
local function triggerTarget()
local cam = workspace.CurrentCamera
if not cam then return false end
local params = RaycastParams.new()
params.FilterType = Enum.RaycastFilterType.Blacklist
params.FilterDescendantsInstances = { LocalPlayer.Character or workspace }
local res = workspace:Raycast(cam.CFrame.Position, cam.CFrame.LookVector * 1000, params)
if res and res.Instance then
local m = res.Instance:FindFirstAncestorOfClass("Model")
if m then
local pl = Players:GetPlayerFromCharacter(m)
if pl and pl ~= LocalPlayer and not sameTeam(pl) then
return true
end
end
end
return false
end
RunService.RenderStepped:Connect(function()
if not Triggerbot.Enabled or not canClick then
if triggerDown then pcall(function() mouse1release() end); triggerDown = false end
return
end
local hit = triggerTarget()
if hit and not triggerDown then
pcall(function() mouse1press() end); triggerDown = true
elseif not hit and triggerDown then
pcall(function() mouse1release() end); triggerDown = false
end
end)
-- ============================================================
-- ARRAYLIST (live player list panel, top-right)
-- ============================================================
local ArrayList = { Enabled = true, MaxRows = 30 }
-- ============================================================
-- TRACERS (2D lines from screen bottom to each enemy)
-- ============================================================
local Tracers = { Enabled = true }
-- ============================================================
-- CLEAN PURPLE INTERFACE
-- ============================================================
local PlayerGui = LocalPlayer:WaitForChild("PlayerGui")
local PURPLE = Color3.fromRGB(176, 38, 255)
local PURPLE_D = Color3.fromRGB(138, 43, 226)
local BG_A = Color3.fromRGB(28, 14, 48)
local BG_B = Color3.fromRGB(18, 9, 33)
local CARD = Color3.fromRGB(38, 20, 60)
local TXT = Color3.fromRGB(232, 222, 248)
local SUB = Color3.fromRGB(150, 130, 175)
local IDLE = Color3.fromRGB(58, 42, 79)
local gui = Instance.new("ScreenGui")
gui.Name = "RivalsUI"
gui.ResetOnSpawn = false
gui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
gui.DisplayOrder = 2147483647
gui.IgnoreGuiInset = true
pcall(function() gui.Parent = PlayerGui end)
local main = Instance.new("Frame")
main.Size = UDim2.new(0, 300, 0, 860)
main.Position = UDim2.new(0.5, -150, 0.5, -430)
main.BackgroundColor3 = BG_B
main.BorderSizePixel = 0
main.Active = true
main.ClipsDescendants = true
main.Parent = gui
local mc = Instance.new("UICorner"); mc.CornerRadius = UDim.new(0, 14); mc.Parent = main
local mg = Instance.new("UIGradient")
mg.Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, BG_A),
ColorSequenceKeypoint.new(1, BG_B),
})
mg.Parent = main
-- Title bar
local title = Instance.new("TextButton")
title.Size = UDim2.new(1, 0, 0, 50)
title.BackgroundColor3 = PURPLE_D
title.BorderSizePixel = 0
title.Text = "Penith Hub"
title.TextColor3 = Color3.fromRGB(255, 255, 255)
title.Font = Enum.Font.GothamBold
title.TextSize = 15
title.AutoButtonColor = false
title.Parent = main
local tcor = Instance.new("UICorner"); tcor.CornerRadius = UDim.new(0, 14); tcor.Parent = title
local tfix = Instance.new("Frame")
tfix.Size = UDim2.new(1, 0, 0, 14)
tfix.Position = UDim2.new(0, 0, 1, -14)
tfix.BackgroundColor3 = PURPLE_D
tfix.BorderSizePixel = 0
tfix.Parent = title
local minBtn = Instance.new("TextButton")
minBtn.Size = UDim2.new(0, 32, 0, 32)
minBtn.Position = UDim2.new(1, -38, 0, 9)
minBtn.BackgroundColor3 = Color3.fromRGB(255, 80, 160)
minBtn.Text = "-"
minBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
minBtn.Font = Enum.Font.GothamBold
minBtn.TextSize = 20
minBtn.AutoButtonColor = false
minBtn.Parent = title
local mcor = Instance.new("UICorner"); mcor.CornerRadius = UDim.new(0, 8); mcor.Parent = minBtn
local setBtn = Instance.new("TextButton")
setBtn.Size = UDim2.new(0, 32, 0, 32)
setBtn.Position = UDim2.new(1, -72, 0, 9)
setBtn.BackgroundColor3 = Color3.fromRGB(90, 70, 140)
setBtn.Text = "SET"
setBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
setBtn.Font = Enum.Font.GothamBold
setBtn.TextSize = 13
setBtn.AutoButtonColor = false
setBtn.Parent = title
local sc2 = Instance.new("UICorner"); sc2.CornerRadius = UDim.new(0, 8); sc2.Parent = setBtn
local body = Instance.new("Frame")
body.Size = UDim2.new(1, 0, 1, -50)
body.Position = UDim2.new(0, 0, 0, 50)
body.BackgroundTransparency = 1
body.Parent = main
-- Draggable
local dragging, dragStart, startPos
title.InputBegan:Connect(function(i)
if i.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = true
dragStart = i.Position
startPos = main.Position
end
end)
UserInputService.InputEnded:Connect(function(i)
if i.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end
end)
UserInputService.InputChanged:Connect(function(i)
if dragging and i.UserInputType == Enum.UserInputType.MouseMovement then
local d = i.Position - dragStart
main.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + d.X,
startPos.Y.Scale, startPos.Y.Offset + d.Y)
end
end)
-- Card helper
local function makeCard(parent, yPos, height, titleText)
local card = Instance.new("Frame")
card.Size = UDim2.new(0, 276, 0, height)
card.Position = UDim2.new(0, 12, 0, yPos)
card.BackgroundColor3 = CARD
card.BorderSizePixel = 0
card.Parent = parent
local cc = Instance.new("UICorner"); cc.CornerRadius = UDim.new(0, 10); cc.Parent = card
local hdr = Instance.new("TextLabel")
hdr.Size = UDim2.new(1, -24, 0, 22)
hdr.Position = UDim2.new(0, 12, 0, 8)
hdr.BackgroundTransparency = 1
hdr.Text = titleText
hdr.TextColor3 = PURPLE
hdr.Font = Enum.Font.GothamBold
hdr.TextSize = 13
hdr.TextXAlignment = Enum.TextXAlignment.Left
hdr.Parent = card
local line = Instance.new("Frame")
line.Size = UDim2.new(1, -24, 0, 2)
line.Position = UDim2.new(0, 12, 0, 32)
line.BackgroundColor3 = PURPLE
line.BorderSizePixel = 0
line.Parent = card
return card
end
local function makeToggle(parent, y, text, default, cb)
local row = Instance.new("Frame")
row.Size = UDim2.new(1, -24, 0, 36)
row.Position = UDim2.new(0, 12, 0, y)
row.BackgroundTransparency = 1
row.Parent = parent
local label = Instance.new("TextLabel")
label.Size = UDim2.new(1, -64, 1, 0)
label.BackgroundTransparency = 1
label.Text = text
label.TextColor3 = TXT
label.Font = Enum.Font.Gotham
label.TextSize = 13
label.TextXAlignment = Enum.TextXAlignment.Left
label.Parent = row
local sw = Instance.new("TextButton")
sw.Size = UDim2.new(0, 46, 0, 24)
sw.Position = UDim2.new(1, -46, 0.5, -12)
sw.BackgroundColor3 = IDLE
sw.AutoButtonColor = false
sw.Text = ""
sw.Parent = row
local sc = Instance.new("UICorner"); sc.CornerRadius = UDim.new(1, 0); sc.Parent = sw
local knob = Instance.new("Frame")
knob.Size = UDim2.new(0, 20, 0, 20)
knob.Position = UDim2.new(0, 2, 0.5, -10)
knob.BackgroundColor3 = Color3.fromRGB(235, 225, 250)
knob.Parent = sw
local kc = Instance.new("UICorner"); kc.CornerRadius = UDim.new(1, 0); kc.Parent = knob
local state = default
local function set(v)
state = v
sw.BackgroundColor3 = v and PURPLE or IDLE
TweenService:Create(knob, TweenInfo.new(0.15, Enum.EasingStyle.Quad), {
Position = v and UDim2.new(0, 24, 0.5, -10) or UDim2.new(0, 2, 0.5, -10)
}):Play()
cb(v)
end
sw.MouseButton1Click:Connect(function() set(not state) end)
set(state)
end
local function makeSlider(parent, y, text, min, max, default, cb)
local row = Instance.new("Frame")
row.Size = UDim2.new(1, -24, 0, 44)
row.Position = UDim2.new(0, 12, 0, y)
row.BackgroundTransparency = 1
row.Parent = parent
local top = Instance.new("Frame")
top.Size = UDim2.new(1, 0, 0, 18)
top.BackgroundTransparency = 1
top.Parent = row
local label = Instance.new("TextLabel")
label.Size = UDim2.new(1, -50, 1, 0)
label.BackgroundTransparency = 1
label.Text = text
label.TextColor3 = TXT
label.Font = Enum.Font.Gotham
label.TextSize = 13
label.TextXAlignment = Enum.TextXAlignment.Left
label.Parent = top
local val = Instance.new("TextLabel")
val.Size = UDim2.new(0, 50, 1, 0)
val.Position = UDim2.new(1, -50, 0, 0)
val.BackgroundTransparency = 1
val.Text = tostring(default)
val.TextColor3 = PURPLE
val.Font = Enum.Font.GothamBold
val.TextSize = 13
val.TextXAlignment = Enum.TextXAlignment.Right
val.Parent = top
local bar = Instance.new("Frame")
bar.Size = UDim2.new(1, 0, 0, 6)
bar.Position = UDim2.new(0, 0, 1, -10)
bar.BackgroundColor3 = IDLE
bar.Parent = row
local bc = Instance.new("UICorner"); bc.CornerRadius = UDim.new(1, 0); bc.Parent = bar
local fill = Instance.new("Frame")
fill.Size = UDim2.new(0, 0, 1, 0)
fill.BackgroundColor3 = PURPLE
fill.Parent = bar
local fc = Instance.new("UICorner"); fc.CornerRadius = UDim.new(1, 0); fc.Parent = fill
local knob = Instance.new("Frame")
knob.Size = UDim2.new(0, 14, 0, 14)
knob.BackgroundColor3 = Color3.fromRGB(240, 230, 255)
knob.Parent = bar
local kc = Instance.new("UICorner"); kc.CornerRadius = UDim.new(1, 0); kc.Parent = knob
local value = default
local function setValue(v)
value = clamp(v, min, max)
local t = (value - min) / (max - min)
fill.Size = UDim2.new(t, 0, 1, 0)
knob.Position = UDim2.new(t, -7, 0.5, -7)
val.Text = string.format("%.1f", value)
cb(value)
end
local sliding
bar.InputBegan:Connect(function(i)
if i.UserInputType == Enum.UserInputType.MouseButton1 then
sliding = true
local rel = (i.Position.X - bar.AbsolutePosition.X) / bar.AbsoluteSize.X
setValue(min + rel * (max - min))
end
end)
UserInputService.InputEnded:Connect(function(i)
if i.UserInputType == Enum.UserInputType.MouseButton1 then sliding = false end
end)
UserInputService.InputChanged:Connect(function(i)
if sliding and i.UserInputType == Enum.UserInputType.MouseMovement then
local rel = (i.Position.X - bar.AbsolutePosition.X) / bar.AbsoluteSize.X
setValue(min + rel * (max - min))
end
end)
setValue(default)
end
-- Two views: MAIN and SETTINGS
local viewMain = Instance.new("Frame")
viewMain.Size = UDim2.new(1, 0, 1, 0)
viewMain.BackgroundTransparency = 1
viewMain.Parent = body
local viewSettings = Instance.new("Frame")
viewSettings.Size = UDim2.new(1, 0, 1, 0)
viewSettings.BackgroundTransparency = 1
viewSettings.Visible = false
viewSettings.Parent = body
local listening, bindButtons = nil, {}
-- MAIN view
local esp = makeCard(viewMain, 10, 268, "VISUAL - HITBOX ESP")
makeToggle(esp, 44, "Show Boxes", true, function(v) Hitboxes:SetEnabled(v) end)
makeToggle(esp, 86, "Team Check", false, function(v)
Hitboxes.Config.TeamCheck = v; Hitboxes:Refresh(); Aimbot.TeamCheck = v
end)
makeToggle(esp, 128, "Tracers", true, function(v) Tracers.Enabled = v end)
makeSlider(esp, 170, "Box Size", 1, 5, 1.6, function(v) Hitboxes.Config.Size = v; Hitboxes:Refresh() end)
makeToggle(esp, 218, "ArrayList", true, function(v) ArrayList.Enabled = v end)
local mv = makeCard(viewMain, 246, 130, "MOVEMENT - FLY / SPEED")
makeToggle(mv, 44, "Fly", false, function(v) setFly(v) end)
makeToggle(mv, 86, "Speed", false, function(v) setSpeed(v) end)
local aim = makeCard(viewMain, 386, 276, "COMBAT - AIMBOT")
makeToggle(aim, 44, "Enabled", false, function(v) Aimbot.Enabled = v end)
makeToggle(aim, 86, "Hold RMB", true, function(v) Aimbot.HoldToAim = v end)
makeToggle(aim, 128, "Aim Head", true, function(v) Aimbot.AimHead = v end)
makeSlider(aim, 172, "FOV", 30, 400, 250, function(v) Aimbot.FOV = v end)
makeSlider(aim, 222, "Smoothness", 0.05, 1, 0.35, function(v) Aimbot.Speed = v end)
local trig = makeCard(viewMain, 672, 130, "COMBAT - TRIGGERBOT")
makeToggle(trig, 44, "Enabled", false, function(v) Triggerbot.Enabled = v end)
-- SETTINGS view
local function makeBind(parent, y, text, key)
local row = Instance.new("Frame")
row.Size = UDim2.new(1, -24, 0, 36)
row.Position = UDim2.new(0, 12, 0, y)
row.BackgroundTransparency = 1
row.Parent = parent
local label = Instance.new("TextLabel")
label.Size = UDim2.new(1, -80, 1, 0)
label.BackgroundTransparency = 1
label.Text = text
label.TextColor3 = TXT
label.Font = Enum.Font.Gotham
label.TextSize = 13
label.TextXAlignment = Enum.TextXAlignment.Left
label.Parent = row
local btn = Instance.new("TextButton")
btn.Size = UDim2.new(0, 76, 0, 28)
btn.Position = UDim2.new(1, -76, 0.5, -14)
btn.BackgroundColor3 = IDLE
btn.AutoButtonColor = false
btn.Text = Binds[key]
btn.TextColor3 = Color3.fromRGB(240, 230, 255)
btn.Font = Enum.Font.GothamBold
btn.TextSize = 12
btn.Parent = row
local bc = Instance.new("UICorner"); bc.CornerRadius = UDim.new(0, 8); bc.Parent = btn
btn.MouseButton1Click:Connect(function()
listening = key
btn.Text = "..."
end)
bindButtons[key] = btn
end
local kb = makeCard(viewSettings, 10, 212, "SETTINGS - KEYBINDS")
makeBind(kb, 44, "Menu (show/hide)", "Menu")
makeBind(kb, 84, "Aimbot", "Aimbot")
makeBind(kb, 124, "Fly", "Fly")
makeBind(kb, 164, "Speed", "Speed")
local mvset = makeCard(viewSettings, 234, 150, "SETTINGS - MOVEMENT")
makeSlider(mvset, 44, "Fly Speed", 10, 150, 50, function(v) Fly.Speed = v end)
makeSlider(mvset, 96, "Walk Speed", 16, 100, 32, function(v) Speed.Value = v end)
local hint = Instance.new("TextLabel")
hint.Size = UDim2.new(1, -24, 0, 22)
hint.Position = UDim2.new(0, 12, 1, -30)
hint.BackgroundTransparency = 1
hint.Text = "click a key, then press a new one"
hint.TextColor3 = SUB
hint.Font = Enum.Font.Gotham
hint.TextSize = 11
hint.Parent = viewSettings
-- Settings toggle
local inSettings = false
setBtn.MouseButton1Click:Connect(function()
inSettings = not inSettings
viewSettings.Visible = inSettings
viewMain.Visible = not inSettings
setBtn.Text = inSettings and "BACK" or "SET"
end)
local foot = Instance.new("TextLabel")
foot.Size = UDim2.new(1, 0, 0, 22)
foot.Position = UDim2.new(0, 0, 1, -22)
foot.BackgroundTransparency = 1
foot.Text = "press P to hide / show"
foot.TextColor3 = SUB
foot.Font = Enum.Font.Gotham
foot.TextSize = 11
foot.Parent = main
-- ============================================================
-- ARRAYLIST PANEL
-- ============================================================
local arrayGui = Instance.new("ScreenGui")
arrayGui.Name = "RivalsArrayList"
arrayGui.ResetOnSpawn = false
arrayGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
arrayGui.DisplayOrder = 2147483646
arrayGui.IgnoreGuiInset = true
pcall(function() arrayGui.Parent = PlayerGui end)
local arrayFrame = Instance.new("Frame")
arrayFrame.Size = UDim2.new(0, 210, 0, 40)
arrayFrame.Position = UDim2.new(1, -220, 0, 10)
arrayFrame.BackgroundColor3 = CARD
arrayFrame.BorderSizePixel = 0
arrayFrame.ClipsDescendants = true
arrayFrame.Parent = arrayGui
local ac = Instance.new("UICorner"); ac.CornerRadius = UDim.new(0, 10); ac.Parent = arrayFrame
local aHdr = Instance.new("TextLabel")
aHdr.Size = UDim2.new(1, -16, 0, 26)
aHdr.Position = UDim2.new(0, 8, 0, 6)
aHdr.BackgroundTransparency = 1
aHdr.Text = "PLAYERS"
aHdr.TextColor3 = PURPLE
aHdr.Font = Enum.Font.GothamBold
aHdr.TextSize = 13
aHdr.TextXAlignment = Enum.TextXAlignment.Left
aHdr.Parent = arrayFrame
local arrayRows = {}
local function ensureRows(n)
while #arrayRows < n do
local i = #arrayRows + 1
local row = Instance.new("Frame")
row.Size = UDim2.new(1, -16, 0, 22)
row.Position = UDim2.new(0, 8, 0, 38 + (i - 1) * 24)
row.BackgroundTransparency = 1
row.Parent = arrayFrame
local dot = Instance.new("Frame")
dot.Size = UDim2.new(0, 10, 0, 10)
dot.Position = UDim2.new(0, 0, 0.5, -5)
dot.BackgroundColor3 = PURPLE
dot.BorderSizePixel = 0
dot.Parent = row
local dc = Instance.new("UICorner"); dc.CornerRadius = UDim.new(1, 0); dc.Parent = dot
local nm = Instance.new("TextLabel")
nm.Size = UDim2.new(1, -18, 1, 0)
nm.Position = UDim2.new(0, 16, 0, 0)
nm.BackgroundTransparency = 1
nm.Text = ""
nm.TextColor3 = TXT
nm.Font = Enum.Font.Gotham
nm.TextSize = 12
nm.TextXAlignment = Enum.TextXAlignment.Left
nm.Parent = row
arrayRows[i] = { row = row, dot = dot, nm = nm }
end
end
local ArrayListModules = {
{ "Hitbox ESP", function() return Hitboxes.Config.Enabled end },
{ "Team Check", function() return Hitboxes.Config.TeamCheck end },
{ "Tracers", function() return Tracers.Enabled end },
{ "Fly", function() return Fly.Enabled end },
{ "Speed", function() return Speed.Enabled end },
{ "Aimbot", function() return Aimbot.Enabled end },
{ "Triggerbot", function() return Triggerbot.Enabled end },
}
local modHdr = Instance.new("TextLabel")
modHdr.Size = UDim2.new(1, -16, 0, 22)
modHdr.Position = UDim2.new(0, 8, 0, 40)
modHdr.BackgroundTransparency = 1
modHdr.Text = "MODULES"
modHdr.TextColor3 = PURPLE
modHdr.Font = Enum.Font.GothamBold
modHdr.TextSize = 13
modHdr.TextXAlignment = Enum.TextXAlignment.Left
modHdr.Parent = arrayFrame
local modRows = {}
for i, m in ipairs(ArrayListModules) do
local row = Instance.new("Frame")
row.Size = UDim2.new(1, -16, 0, 22)
row.BackgroundTransparency = 1
row.Parent = arrayFrame
local dot = Instance.new("Frame")
dot.Size = UDim2.new(0, 10, 0, 10)
dot.Position = UDim2.new(0, 0, 0.5, -5)
dot.BackgroundColor3 = IDLE
dot.BorderSizePixel = 0
dot.Parent = row
local dc = Instance.new("UICorner"); dc.CornerRadius = UDim.new(1, 0); dc.Parent = dot
local nm = Instance.new("TextLabel")
nm.Size = UDim2.new(1, -18, 1, 0)
nm.Position = UDim2.new(0, 16, 0, 0)
nm.BackgroundTransparency = 1
nm.Text = m[1]
nm.TextColor3 = SUB
nm.Font = Enum.Font.Gotham
nm.TextSize = 12
nm.TextXAlignment = Enum.TextXAlignment.Left
nm.Parent = row
modRows[i] = { row = row, dot = dot, nm = nm, get = m[2] }
end
local arrayT = 0
RunService.RenderStepped:Connect(function(dt)
if not ArrayList.Enabled then arrayGui.Enabled = false; return end
arrayGui.Enabled = true
arrayT = arrayT + dt
if arrayT < 0.25 then return end
arrayT = 0
local lp = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart")
local list = {}
for _, pl in ipairs(Players:GetPlayers()) do
if pl ~= LocalPlayer and pl.Character and pl.Character:FindFirstChild("HumanoidRootPart") then
local root = pl.Character.HumanoidRootPart
local dist = lp and (root.Position - lp.Position).Magnitude or 0
local enemy = not (Aimbot.TeamCheck and pl.Team and LocalPlayer.Team and pl.Team == LocalPlayer.Team)
table.insert(list, { pl = pl, dist = dist, enemy = enemy })
end
end
table.sort(list, function(a, b) return a.dist < b.dist end)
local shown = math.min(#list, ArrayList.MaxRows)
ensureRows(shown)
for i = 1, #arrayRows do
local r = arrayRows[i]
if i = 0 and sp.X = 0 and sp.Y <= vs.Y then
if not l then
l = DrawingLib.new("Line")
l.Thickness = 1.5
l.Transparency = 1
tracerLines[pl] = l
end
l.Visible = true
l.Color = enemy and Color3.fromRGB(170, 0, 255) or Color3.fromRGB(120, 200, 120)
l.From = from
l.To = Vector2.new(sp.X, sp.Y)
elseif l then
l.Visible = false
end
elseif l then
l.Visible = false
end
end
end
end)
end)
local minimized = false
minBtn.MouseButton1Click:Connect(function()
minimized = not minimized
TweenService:Create(main, TweenInfo.new(0.2, Enum.EasingStyle.Quad), {
Size = minimized and UDim2.new(0, 300, 0, 50) or UDim2.new(0, 300, 0, 860)
}):Play()
minBtn.Text = minimized and "+" or "-"
end)
local function matchBind(bindName, i)
if bindName == "MouseButton1" or bindName == "MouseButton2" or bindName == "MouseButton3" then
local map = { MouseButton1 = Enum.UserInputType.MouseButton1,
MouseButton2 = Enum.UserInputType.MouseButton2,
MouseButton3 = Enum.UserInputType.MouseButton3 }
return i.UserInputType == map[bindName]
end
return i.KeyCode.Name == bindName
end
UserInputService.InputBegan:Connect(function(i, gp)
if listening then
if i.KeyCode == Enum.KeyCode.Escape then
if bindButtons[listening] then bindButtons[listening].Text = Binds[listening] end
listening = nil
return
end
local nm
if i.UserInputType == Enum.UserInputType.MouseButton2 then nm = "MouseButton2"
elseif i.UserInputType == Enum.UserInputType.MouseButton3 then nm = "MouseButton3"
elseif i.KeyCode and i.KeyCode ~= Enum.KeyCode.Unknown then nm = i.KeyCode.Name
else nm = nil end
if nm and nm ~= "MouseButton1" then
Binds[listening] = nm
if bindButtons[listening] then bindButtons[listening].Text = nm end
listening = nil
end
return
end
if matchBind(Binds.Aimbot, i) then aiming = true; return end
if gp and (i.UserInputType == Enum.UserInputType.MouseButton1
or i.UserInputType == Enum.UserInputType.MouseButton2
or i.UserInputType == Enum.UserInputType.MouseButton3) then
return
end
if matchBind(Binds.Menu, i) then gui.Enabled = not gui.Enabled; return end
if matchBind(Binds.Fly, i) then setFly(not Fly.Enabled); return end
if matchBind(Binds.Speed, i) then setSpeed(not Speed.Enabled); return end
end)
UserInputService.InputEnded:Connect(function(i, gp)
if matchBind(Binds.Aimbot, i) then aiming = false end
end)
end
xpcall(RUN, showError)
No comments yet. Be the first!