Description
About This Script Rivals Lock - OP Aimbot by kaisan_lover ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ WHAT IT DOES An instant head-lock aimbot for RIVALS. When you hold [E], your camera instantly snaps to the nearest enemy's head inside your FOV. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ FEATURES • Instant Head Lock - no smoothness, no delay • Hold [E] to activate • FOV Circle indicator • Adjustable FOV (50 - 600 px) • Lightweight, no lag • No crash, no freeze • Works with any weapon • Config via Rayfield UI ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ HOW TO USE 1. Execute the script in your executor 2. Rayfield UI opens 3. Toggle "Enable Aimbot" 4. In-game: hold [E] 5. Camera locks onto enemy head 6. Release [E] to stop ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ TUNING Small FOV (100) → less obvious, safer Big FOV (400) → OP, more kick risk ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ WARNING • RIVALS has strong anti-cheat • Instant lock • Use on alt accounts only • Permanent ban possible • Author is not responsible for bans ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ CREDITS Author: kaisan_lover UI: Rayfield Method: BindToRenderStep (Last priority) Executor: Tested on Nexomia , Volt , Xeno and etc. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ VERSION v1.0 - Initial release
Script source Luau
-- [[ BloxScripts Risk Notice ]]
-- This script has not been verified by BloxScripts.fun. Deal with caution.
--
-- Stay safe:
-- • Never log in on unofficial Roblox sites or lookalike domains.
-- • Real Roblox links use roblox.com (check the .com ending).
-- • Treat fake Roblox login / "claim reward" pages as phishing.
-- [[ End BloxScripts Risk Notice ]]
--[[
RIVALS ESP + AIMBOT - RAYFIELD UI
=====================================
Author: kaisan_lover
- ESP (Box + NameTag + Highlight)
- Aimbot (Instant Head Lock)
- Rayfield UI
- Hold [E] for aimbot
]]
local Rayfield = loadstring(game:HttpGet('https://sirius.menu/rayfield'))()
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local CoreGui = game:GetService("CoreGui")
local Workspace = game:GetService("Workspace")
local LocalPlayer = Players.LocalPlayer
local Camera = Workspace.CurrentCamera
--==========================================================
-- STATE
--==========================================================
local State = {
-- ESP
ESPEnabled = true,
ESPBox = true,
ESPNameTag = true,
ESPHighlight = true,
UseTeamColor = true,
FriendColor = Color3.fromRGB(0, 0, 255),
EnemyColor = Color3.fromRGB(255, 0, 0),
-- Aimbot
AimbotEnabled = false,
AimbotKey = Enum.KeyCode.E,
AimbotHeld = false,
FOV = 250,
FOVCircle = nil,
}
--==========================================================
-- ESP STORAGE
--==========================================================
local Holder = Instance.new("Folder", CoreGui)
Holder.Name = "ESP_" .. tostring(math.random(1000, 9999))
local BoxTemplate = Instance.new("BoxHandleAdornment")
BoxTemplate.Name = "nilBox"
BoxTemplate.Size = Vector3.new(1, 2, 1)
BoxTemplate.Color3 = Color3.new(100/255, 100/255, 100/255)
BoxTemplate.Transparency = 0.7
BoxTemplate.ZIndex = 0
BoxTemplate.AlwaysOnTop = false
BoxTemplate.Visible = false
local NameTagTemplate = Instance.new("BillboardGui")
NameTagTemplate.Name = "nilNameTag"
NameTagTemplate.Enabled = false
NameTagTemplate.Size = UDim2.new(0, 200, 0, 50)
NameTagTemplate.AlwaysOnTop = true
NameTagTemplate.StudsOffset = Vector3.new(0, 1.8, 0)
local TagTemplate = Instance.new("TextLabel", NameTagTemplate)
TagTemplate.Name = "Tag"
TagTemplate.BackgroundTransparency = 1
TagTemplate.Position = UDim2.new(0, -50, 0, 0)
TagTemplate.Size = UDim2.new(0, 300, 0, 20)
TagTemplate.TextSize = 15
TagTemplate.TextColor3 = Color3.new(100/255, 100/255, 100/255)
TagTemplate.TextStrokeColor3 = Color3.new(0, 0, 0)
TagTemplate.TextStrokeTransparency = 0.4
TagTemplate.Text = "nil"
TagTemplate.Font = Enum.Font.SourceSansBold
TagTemplate.TextScaled = false
--==========================================================
-- ESP FUNCTIONS
--==========================================================
local ESPData = {} -- [player] = { box = ..., nametag = ..., highlight = ... }
local function LoadCharacter(v)
if not v or not v.Character then return end
repeat task.wait() until v.Character ~= nil
v.Character:WaitForChild("Humanoid", 5)
local vHolder = Holder:FindFirstChild(v.Name)
if not vHolder then
vHolder = Instance.new("Folder", Holder)
vHolder.Name = v.Name
end
vHolder:ClearAllChildren()
ESPData[v] = ESPData[v] or {}
-- Box
if State.ESPBox then
local b = BoxTemplate:Clone()
b.Name = v.Name .. "Box"
b.Adornee = v.Character
b.Visible = true
b.Parent = vHolder
ESPData[v].box = b
end
-- NameTag
if State.ESPNameTag then
local head = v.Character:WaitForChild("Head", 5)
if head then
local t = NameTagTemplate:Clone()
t.Name = v.Name .. "NameTag"
t.Enabled = true
t.Parent = vHolder
t.Adornee = head
t.Tag.Text = v.Name
ESPData[v].nametag = t
end
end
-- Highlight
if State.ESPHighlight then
local hl = v.Character:FindFirstChild("KaisanHighlight")
if not hl then
hl = Instance.new("Highlight")
hl.Name = "KaisanHighlight"
hl.Adornee = v.Character
hl.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
hl.FillTransparency = 0.7
hl.OutlineTransparency = 0
hl.Parent = v.Character
end
ESPData[v].highlight = hl
end
-- Colors
local color = State.UseTeamColor and v.TeamColor.Color or
((LocalPlayer.TeamColor == v.TeamColor) and State.FriendColor or State.EnemyColor)
if ESPData[v].box then ESPData[v].box.Color3 = color end
if ESPData[v].nametag then ESPData[v].nametag.Tag.TextColor3 = color end
if ESPData[v].highlight then
ESPData[v].highlight.FillColor = color
ESPData[v].highlight.OutlineColor = color
end
end
local function UnloadCharacter(v)
local vHolder = Holder:FindFirstChild(v.Name)
if vHolder then
vHolder:ClearAllChildren()
end
if v.Character then
local hl = v.Character:FindFirstChild("KaisanHighlight")
if hl then hl:Destroy() end
end
ESPData[v] = nil
end
local function LoadPlayer(v)
local vHolder = Instance.new("Folder", Holder)
vHolder.Name = v.Name
v.CharacterAdded:Connect(function()
task.wait(0.2)
pcall(LoadCharacter, v)
end)
v.CharacterRemoving:Connect(function()
pcall(UnloadCharacter, v)
end)
v.Changed:Connect(function(prop)
if prop == "TeamColor" then
UnloadCharacter(v)
task.wait()
LoadCharacter(v)
end
end)
if v.Character then
pcall(LoadCharacter, v)
end
end
local function UnloadPlayer(v)
UnloadCharacter(v)
local vHolder = Holder:FindFirstChild(v.Name)
if vHolder then
vHolder:Destroy()
end
end
--==========================================================
-- ESP COLOR UPDATE LOOP (background, non-blocking)
--==========================================================
task.spawn(function()
while task.wait(0.5) do
if not State.ESPEnabled then continue end
for _, v in pairs(Players:GetPlayers()) do
if v ~= LocalPlayer and v.Character then
local data = ESPData[v]
if data then
local color = State.UseTeamColor and v.TeamColor.Color or
((LocalPlayer.TeamColor == v.TeamColor) and State.FriendColor or State.EnemyColor)
if data.box and data.box.Parent then
data.box.Color3 = color
end
if data.nametag and data.nametag.Parent then
data.nametag.Tag.TextColor3 = color
end
if data.highlight and data.highlight.Parent then
data.highlight.FillColor = color
data.highlight.OutlineColor = color
end
end
end
end
end
end)
--==========================================================
-- FOV CIRCLE
--==========================================================
local FOVGui = Instance.new("ScreenGui")
FOVGui.Name = "AimbotFOV_kaisan"
FOVGui.ResetOnSpawn = false
FOVGui.IgnoreGuiInset = true
FOVGui.Parent = CoreGui
local circle = Instance.new("Frame")
circle.AnchorPoint = Vector2.new(0.5, 0.5)
circle.Position = UDim2.new(0.5, 0, 0.5, 0)
circle.Size = UDim2.fromOffset(State.FOV * 2, State.FOV * 2)
circle.BackgroundTransparency = 1
circle.BorderSizePixel = 0
circle.Parent = FOVGui
local circleCorner = Instance.new("UICorner")
circleCorner.CornerRadius = UDim.new(1, 0)
circleCorner.Parent = circle
local circleStroke = Instance.new("UIStroke")
circleStroke.Color = Color3.fromRGB(255, 80, 80)
circleStroke.Thickness = 1.5
circleStroke.Transparency = 0.4
circleStroke.Parent = circle
State.FOVCircle = circle
--==========================================================
-- AIMBOT FUNCTIONS
--==========================================================
local function IsAlive(plr)
if not plr or not plr.Character then return false end
local hum = plr.Character:FindFirstChildOfClass("Humanoid")
return hum and hum.Health > 0
end
local function GetTarget()
local closest, closestDist = nil, State.FOV
local center = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2)
for _, plr in ipairs(Players:GetPlayers()) do
if plr ~= LocalPlayer and IsAlive(plr) then
local head = plr.Character:FindFirstChild("Head")
if head then
local screenPos, onScreen = Camera:WorldToViewportPoint(head.Position)
if onScreen then
local dist = (Vector2.new(screenPos.X, screenPos.Y) - center).Magnitude
if dist < closestDist then
closest, closestDist = plr, dist
end
end
end
end
end
return closest
end
local function AimbotStep()
if not (State.AimbotEnabled and State.AimbotHeld) then return end
local target = GetTarget()
if not target or not target.Character then return end
local head = target.Character:FindFirstChild("Head")
if not head then return end
Camera.CFrame = CFrame.new(Camera.CFrame.Position, head.Position)
end
RunService:BindToRenderStep("KaisanAimbot", Enum.RenderPriority.Last.Value, AimbotStep)
RunService:BindToRenderStep("KaisanFOV", Enum.RenderPriority.Camera.Value, function()
if State.FOVCircle then
State.FOVCircle.Visible = State.AimbotEnabled
State.FOVCircle.Size = UDim2.fromOffset(State.FOV * 2, State.FOV * 2)
end
end)
--==========================================================
-- INITIAL ESP LOAD
--==========================================================
for _, v in ipairs(Players:GetPlayers()) do
task.spawn(function() pcall(LoadPlayer, v) end)
end
Players.PlayerAdded:Connect(function(v)
pcall(LoadPlayer, v)
end)
Players.PlayerRemoving:Connect(function(v)
pcall(UnloadPlayer, v)
end)
LocalPlayer.NameDisplayDistance = 0
--==========================================================
-- RAYFIELD UI
--==========================================================
local Window = Rayfield:CreateWindow({
Name = "Rivals ESP + Aimbot",
LoadingTitle = "Loading...",
LoadingSubtitle = "by kaisan_lover",
ConfigurationSaving = { Enabled = false },
KeySystem = false,
})
--==================== ESP TAB ====================
local ESPTab = Window:CreateTab("ESP", 4483362458)
ESPTab:CreateSection("ESP Elements")
ESPTab:CreateToggle({
Name = "Enable ESP",
CurrentValue = true,
Flag = "ESPEnabled",
Callback = function(v)
State.ESPEnabled = v
Holder.Parent = v and CoreGui or nil
if not v then
for _, v2 in ipairs(Players:GetPlayers()) do
pcall(UnloadCharacter, v2)
end
else
for _, v2 in ipairs(Players:GetPlayers()) do
if v2 ~= LocalPlayer then
task.spawn(function() pcall(LoadCharacter, v2) end)
end
end
end
end,
})
ESPTab:CreateToggle({
Name = "Box",
CurrentValue = true,
Flag = "ESPBox",
Callback = function(v)
State.ESPBox = v
for _, v2 in ipairs(Players:GetPlayers()) do
if v2 ~= LocalPlayer then
task.spawn(function() pcall(UnloadCharacter, v2); pcall(LoadCharacter, v2) end)
end
end
end,
})
ESPTab:CreateToggle({
Name = "Name Tag",
CurrentValue = true,
Flag = "ESPNameTag",
Callback = function(v)
State.ESPNameTag = v
for _, v2 in ipairs(Players:GetPlayers()) do
if v2 ~= LocalPlayer then
task.spawn(function() pcall(UnloadCharacter, v2); pcall(LoadCharacter, v2) end)
end
end
end,
})
ESPTab:CreateToggle({
Name = "Highlight",
CurrentValue = true,
Flag = "ESPHighlight",
Callback = function(v)
State.ESPHighlight = v
for _, v2 in ipairs(Players:GetPlayers()) do
if v2 ~= LocalPlayer then
task.spawn(function() pcall(UnloadCharacter, v2); pcall(LoadCharacter, v2) end)
end
end
end,
})
ESPTab:CreateSection("Colors")
ESPTab:CreateToggle({
Name = "Use Team Color",
CurrentValue = true,
Flag = "UseTeamColor",
Callback = function(v) State.UseTeamColor = v end,
})
ESPTab:CreateColorPicker({
Name = "Friend Color",
Color = Color3.fromRGB(0, 0, 255),
Flag = "FriendColor",
Callback = function(c) State.FriendColor = c end,
})
ESPTab:CreateColorPicker({
Name = "Enemy Color",
Color = Color3.fromRGB(255, 0, 0),
Flag = "EnemyColor",
Callback = function(c) State.EnemyColor = c end,
})
--==================== AIMBOT TAB ====================
local AimbotTab = Window:CreateTab("Aimbot", 4483362458)
AimbotTab:CreateSection("Aimbot")
AimbotTab:CreateToggle({
Name = "Enable Aimbot",
CurrentValue = false,
Flag = "AimbotEnabled",
Callback = function(v) State.AimbotEnabled = v end,
})
AimbotTab:CreateParagraph({
Title = "Controls",
Content = "Hold [E] to INSTANT lock onto head.",
})
AimbotTab:CreateSlider({
Name = "FOV",
Range = {50, 600},
Increment = 10,
Suffix = "px",
CurrentValue = 250,
Flag = "FOV",
Callback = function(v) State.FOV = v end,
})
--==================== SETTINGS TAB ====================
local SettingsTab = Window:CreateTab("Settings", 4483362458)
SettingsTab:CreateButton({
Name = "Close UI",
Callback = function()
State.AimbotEnabled = false
State.AimbotHeld = false
pcall(function()
RunService:UnbindFromRenderStep("KaisanAimbot")
RunService:UnbindFromRenderStep("KaisanFOV")
end)
Rayfield:Destroy()
if FOVGui then FOVGui:Destroy() end
if Holder then Holder:Destroy() end
end,
})
--==========================================================
-- INPUT
--==========================================================
UserInputService.InputBegan:Connect(function(input, gpe)
if gpe then return end
if input.KeyCode == State.AimbotKey then
State.AimbotHeld = true
end
end)
UserInputService.InputEnded:Connect(function(input)
if input.KeyCode == State.AimbotKey then
State.AimbotHeld = false
end
end)
--==========================================================
-- NOTIFY
--==========================================================
Rayfield:Notify({
Title = "Rivals ESP + Aimbot",
Content = "Loaded. ESP on. Hold [E] for aimbot.",
Duration = 6,
})
print("[Rivals ESP + Aimbot] Loaded. by kaisan_lover")Review the source before using it. Executions count successful copies, capped at 10 per user and network per script in 24 hours.


Your community, in one place