Hood Rivals Script – Vodka Hub silent aim (Aimbot, Keyless) - Verified script for Hood Rivals
Key Required

Hood Rivals Script – Vodka Hub silent aim (Aimbot, Keyless)

Hood RivalsZYM_1ZYM_1 2K views 7.9K executesUpdated Oct 22, 2026
Unrated
00
Lua Script•613 lines (33919 chars)
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local HttpService = game:GetService("HttpService")

local LocalPlayer = Players.LocalPlayer
local Camera = workspace.CurrentCamera
local PlayerGui = LocalPlayer:WaitForChild("PlayerGui")

if PlayerGui:FindFirstChild("VodkaHubCast") then PlayerGui.VodkaHubCast:Destroy() end

local Theme = {
    Primary = Color3.fromRGB(255, 140, 0),
    Background = Color3.fromRGB(12, 12, 15),
    TopBar = Color3.fromRGB(18, 18, 24),
    Text = Color3.fromRGB(240, 240, 240),
    SubText = Color3.fromRGB(150, 150, 160),
    ElementBg = Color3.fromRGB(30, 30, 35),
    OffColor = Color3.fromRGB(60, 30, 30)
}

local Settings = {
    UI_Rainbow = false, AccentColor = Theme.Primary,
    AimbotEnabled = true, FOVRadius = 267, FOVMode = "Mobile",
    SkeletonESP = false, ESP_Box = false, ESP_Health = false, ESP_Tracker = false, ESP_Name = false, ESP_Distance = false, MaxESPDistance = 500,
    SpeedEnabled = false, SpeedValue = 20, SpinEnabled = false, SpinSpeed = 30,
    InfJumpEnabled = false, NoClipEnabled = false,
    HitboxEnabled = false, HitboxSize = 5,
}

local RainbowUI = { Texts = {}, Toggles = {}, Sliders = {}, Tabs = {} }

local ConfigFile = "HoodRivalsConfig.json"
local function SaveConfig()
    if writefile then
        pcall(function()
            writefile(ConfigFile, HttpService:JSONEncode(Settings))
        end)
    end
end

local function LoadConfig()
    if isfile and isfile(ConfigFile) then
        pcall(function()
            local data = HttpService:JSONDecode(readfile(ConfigFile))
            for k, v in pairs(data) do
                if Settings[k] ~= nil then Settings[k] = v end
            end
        end)
    end
end
LoadConfig()

local cast = nil
pcall(function() cast = require(game.ReplicatedStorage:WaitForChild("SimpleCast")) end)

local FOVCircle
pcall(function()
    FOVCircle = Drawing.new("Circle")
    FOVCircle.Thickness = 1.5; FOVCircle.Color = Settings.AccentColor; FOVCircle.Filled = false; FOVCircle.Transparency = 1; FOVCircle.Visible = true
end)

local function GetFOVCenter()
    if Settings.FOVMode == "PC" then return UserInputService:GetMouseLocation()
    else return Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2) end
end

local AutoTarget = nil
local function GetClosestEnemy()
    local char = LocalPlayer.Character
    if not char or not char:FindFirstChild("HumanoidRootPart") then return nil end
    
    local center = GetFOVCenter()
    local closest, shortest = nil, Settings.FOVRadius
    
    for _, plr in ipairs(Players:GetPlayers()) do
        if plr ~= LocalPlayer and plr.Character and plr.Character:FindFirstChild("HumanoidRootPart") then
            local hum = plr.Character:FindFirstChildOfClass("Humanoid")
            if hum and hum.Health > 0 and plr.Team ~= LocalPlayer.Team then
                local screenPos, onScreen = Camera:WorldToViewportPoint(plr.Character.HumanoidRootPart.Position)
                if onScreen then
                    local dist = (Vector2.new(screenPos.X, screenPos.Y) - center).Magnitude
                    if dist < shortest then shortest = dist; closest = plr end
                end
            end
        end
    end
    return closest
end

if cast and cast.Fire then
    local origFire = cast.Fire
    cast.Fire = function(self, origin, direction, speed, data)
        if Settings.AimbotEnabled and AutoTarget and AutoTarget.Character then
            local targetRoot = AutoTarget.Character:FindFirstChild("HumanoidRootPart")
            if targetRoot then
                local v = targetRoot.Position - origin
                if v.Magnitude > 0.001 then direction = v.Unit end
            end
        end
        return origFire(self, origin, direction, speed, data)
    end
end

UserInputService.JumpRequest:Connect(function()
    if Settings.InfJumpEnabled then
        local char = LocalPlayer.Character
        if char then
            local hum = char:FindFirstChildOfClass("Humanoid")
            if hum then
                hum:ChangeState(Enum.HumanoidStateType.Jumping)
            end
        end
    end
end)

RunService.Stepped:Connect(function()
    if Settings.NoClipEnabled and LocalPlayer.Character then
        for _, v in pairs(LocalPlayer.Character:GetDescendants()) do
            if v:IsA("BasePart") and v.CanCollide then
                v.CanCollide = false
            end
        end
    end
end)

local r15Bones = {{"Head", "UpperTorso"}, {"UpperTorso", "LowerTorso"}, {"UpperTorso", "LeftUpperArm"}, {"LeftUpperArm", "LeftLowerArm"}, {"UpperTorso", "RightUpperArm"}, {"RightUpperArm", "RightLowerArm"}, {"LowerTorso", "LeftUpperLeg"}, {"LeftUpperLeg", "LeftLowerLeg"}, {"LowerTorso", "RightUpperLeg"}, {"RightUpperLeg", "RightLowerLeg"}}
local r6Bones = {{"Head", "Torso"}, {"Torso", "Left Arm"}, {"Torso", "Right Arm"}, {"Torso", "Left Leg"}, {"Torso", "Right Leg"}}
local espCache = {}
local originalHitboxSizes = {}

local function CreateESP(plr)
    if plr == LocalPlayer or espCache[plr] then return end
    local skeletonLines = {}
    for i = 1, 15 do local line = Drawing.new("Line"); line.Thickness = 1.5; line.Color = Settings.AccentColor; line.Transparency = 1; line.Visible = false; table.insert(skeletonLines, line) end
    
    local boxLines = {}
    for i = 1, 8 do 
        local line = Drawing.new("Line"); line.Thickness = 1.5; line.Color = Settings.AccentColor; line.Visible = false; table.insert(boxLines, line) 
    end
    
    local healthBg = Drawing.new("Line"); healthBg.Thickness = 3; healthBg.Color = Color3.fromRGB(0, 0, 0); healthBg.Visible = false
    local healthBar = Drawing.new("Line"); healthBar.Thickness = 3; healthBar.Color = Color3.fromRGB(0, 255, 0); healthBar.Visible = false
    local tracker = Drawing.new("Line"); tracker.Thickness = 1.5; tracker.Color = Settings.AccentColor; tracker.Visible = false
    
    local nameText = Drawing.new("Text"); nameText.Size = 14; nameText.Center = true; nameText.Outline = true; nameText.Color = Color3.fromRGB(255, 255, 255); nameText.Visible = false
    local distText = Drawing.new("Text"); distText.Size = 12; distText.Center = true; distText.Outline = true; distText.Color = Settings.AccentColor; distText.Visible = false

    espCache[plr] = {Skeleton = skeletonLines, Box = boxLines, HealthBg = healthBg, Health = healthBar, Tracker = tracker, NameTxt = nameText, DistTxt = distText}
end

local function RemoveESP(plr)
    if espCache[plr] then
        for _, line in pairs(espCache[plr].Skeleton) do line:Remove() end
        for _, line in pairs(espCache[plr].Box) do line:Remove() end
        espCache[plr].HealthBg:Remove(); espCache[plr].Health:Remove(); espCache[plr].Tracker:Remove()
        espCache[plr].NameTxt:Remove(); espCache[plr].DistTxt:Remove()
        espCache[plr] = nil
    end
end

for _, p in pairs(Players:GetPlayers()) do CreateESP(p) end
Players.PlayerAdded:Connect(CreateESP)
Players.PlayerRemoving:Connect(RemoveESP)

local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "VodkaHubCast"; ScreenGui.Parent = PlayerGui; ScreenGui.ResetOnSpawn = false; ScreenGui.IgnoreGuiInset = true; ScreenGui.DisplayOrder = 999

local ToggleBtn = Instance.new("TextButton")
ToggleBtn.Parent = ScreenGui; ToggleBtn.Size = UDim2.new(0, 45, 0, 45); ToggleBtn.Position = UDim2.new(0, 20, 0, 200)
ToggleBtn.Text = "VH"; ToggleBtn.TextColor3 = Settings.AccentColor; ToggleBtn.BackgroundColor3 = Theme.Background; ToggleBtn.Font = Enum.Font.GothamBold; ToggleBtn.TextSize = 18; ToggleBtn.BorderSizePixel = 0
local TCorner = Instance.new("UICorner"); TCorner.Parent = ToggleBtn; TCorner.CornerRadius = UDim.new(1, 0)
local TStroke = Instance.new("UIStroke"); TStroke.Color = Settings.AccentColor; TStroke.Thickness = 2; TStroke.Parent = ToggleBtn

local Glow = Instance.new("Frame"); Glow.Parent = ScreenGui; Glow.Size = UDim2.new(0, 520, 0, 330); Glow.Position = UDim2.new(0.5, -260, 0.5, -165)
Glow.BackgroundColor3 = Settings.AccentColor; Glow.BackgroundTransparency = 0.85; Glow.BorderSizePixel = 0; Glow.ZIndex = 1; Glow.Visible = false
local GlowCorner = Instance.new("UICorner"); GlowCorner.CornerRadius = UDim.new(0, 16); GlowCorner.Parent = Glow

local MainFrame = Instance.new("Frame")
MainFrame.Parent = ScreenGui; MainFrame.Size = UDim2.new(0, 500, 0, 310); MainFrame.Position = UDim2.new(0.5, -250, 0.5, -155)
MainFrame.BackgroundColor3 = Theme.Background; MainFrame.BorderSizePixel = 0; MainFrame.Visible = false; MainFrame.Active = true; MainFrame.ZIndex = 2
local MCorner = Instance.new("UICorner"); MCorner.Parent = MainFrame; MCorner.CornerRadius = UDim.new(0, 10)
local MStroke = Instance.new("UIStroke"); MStroke.Color = Color3.fromRGB(45, 45, 55); MStroke.Thickness = 1.5; MStroke.Parent = MainFrame

ToggleBtn.MouseButton1Click:Connect(function() MainFrame.Visible = not MainFrame.Visible; Glow.Visible = MainFrame.Visible end)

local TopBar = Instance.new("Frame")
TopBar.Parent = MainFrame; TopBar.Size = UDim2.new(1, 0, 0, 40); TopBar.BackgroundColor3 = Theme.TopBar; TopBar.BorderSizePixel = 0; TopBar.ZIndex = 10
local TopCorner = Instance.new("UICorner"); TopCorner.Parent = TopBar; TopCorner.CornerRadius = UDim.new(0, 10)

local TitleLabel = Instance.new("TextLabel")
TitleLabel.Parent = TopBar; TitleLabel.Size = UDim2.new(0, 100, 1, 0); TitleLabel.Position = UDim2.new(0, 15, 0, 0)
TitleLabel.Text = "VODKA HUB"; TitleLabel.TextColor3 = Settings.AccentColor; TitleLabel.BackgroundTransparency = 1; TitleLabel.Font = Enum.Font.GothamBlack; TitleLabel.TextSize = 14; TitleLabel.TextXAlignment = Enum.TextXAlignment.Left; TitleLabel.ZIndex = 11
table.insert(RainbowUI.Texts, TitleLabel)

local dragging, dragStart, startPos
TopBar.InputBegan:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
        dragging = true; dragStart = input.Position; startPos = MainFrame.Position
    end
end)
UserInputService.InputChanged:Connect(function(input)
    if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
        local delta = input.Position - dragStart
        MainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
        Glow.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X - 10, startPos.Y.Scale, startPos.Y.Offset + delta.Y - 10)
    end
end)
UserInputService.InputEnded:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = false end
end)

local TabContainer = Instance.new("Frame")
TabContainer.Parent = TopBar; TabContainer.Size = UDim2.new(0, 300, 1, 0); TabContainer.Position = UDim2.new(0, 130, 0, 0); TabContainer.BackgroundTransparency = 1; TabContainer.ZIndex = 11
local TabLayout = Instance.new("UIListLayout")
TabLayout.Parent = TabContainer; TabLayout.FillDirection = Enum.FillDirection.Horizontal; TabLayout.SortOrder = Enum.SortOrder.LayoutOrder; TabLayout.Padding = UDim.new(0, 15); TabLayout.VerticalAlignment = Enum.VerticalAlignment.Center

local function CreateTopTab(name, order)
    local btn = Instance.new("TextButton")
    btn.Parent = TabContainer; btn.Size = UDim2.new(0, 50, 1, 0); btn.Text = name; btn.TextColor3 = Theme.SubText; btn.BackgroundTransparency = 1; btn.Font = Enum.Font.GothamBold; btn.TextSize = 12; btn.LayoutOrder = order; btn.ZIndex = 12
    table.insert(RainbowUI.Tabs, btn)
    return btn
end

local TabCombat = CreateTopTab("Combat", 1)
local TabVisuals = CreateTopTab("Visuals", 2)
local TabPlayer = CreateTopTab("Player", 3)
local TabHitbox = CreateTopTab("Hitbox", 4)
local TabSettings = CreateTopTab("Settings", 5)

local CloseBtn = Instance.new("TextButton")
CloseBtn.Parent = TopBar; CloseBtn.Size = UDim2.new(0, 40, 1, 0); CloseBtn.Position = UDim2.new(1, -40, 0, 0); CloseBtn.Text = "X"; CloseBtn.TextColor3 = Color3.fromRGB(255, 80, 80); CloseBtn.BackgroundTransparency = 1; CloseBtn.Font = Enum.Font.GothamBold; CloseBtn.TextSize = 14; CloseBtn.ZIndex = 12
CloseBtn.MouseButton1Click:Connect(function() MainFrame.Visible = false; Glow.Visible = false end)

local function CreateColumn(parent, xPos)
    local scroll = Instance.new("ScrollingFrame")
    scroll.Parent = parent; scroll.Size = UDim2.new(0.5, -15, 1, -15); scroll.Position = UDim2.new(0, xPos, 0, 10); scroll.BackgroundTransparency = 1; scroll.BorderSizePixel = 0; scroll.ScrollBarThickness = 2; scroll.ScrollBarImageColor3 = Settings.AccentColor; scroll.CanvasSize = UDim2.new(0, 0, 0, 0); scroll.ZIndex = 5
    local layout = Instance.new("UIListLayout"); layout.Parent = scroll; layout.SortOrder = Enum.SortOrder.LayoutOrder; layout.Padding = UDim.new(0, 8)
    layout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function() scroll.CanvasSize = UDim2.new(0, 0, 0, layout.AbsoluteContentSize.Y + 10) end)
    return scroll
end

local function CreateSectionLabel(parent, text)
    local lbl = Instance.new("TextLabel"); lbl.Parent = parent; lbl.Size = UDim2.new(1, 0, 0, 20); lbl.Text = text; lbl.TextColor3 = Settings.AccentColor; lbl.BackgroundTransparency = 1; lbl.Font = Enum.Font.GothamBold; lbl.TextSize = 11; lbl.TextXAlignment = Enum.TextXAlignment.Left; lbl.ZIndex = 6
    table.insert(RainbowUI.Texts, lbl)
    return lbl
end

local function CreateToggle(parent, text, default, callback)
    local frame = Instance.new("Frame"); frame.Parent = parent; frame.Size = UDim2.new(1, 0, 0, 32); frame.BackgroundTransparency = 1; frame.ZIndex = 6
    local label = Instance.new("TextLabel"); label.Parent = frame; label.Size = UDim2.new(0.7, 0, 1, 0); label.Text = text; label.TextColor3 = Theme.Text; label.BackgroundTransparency = 1; label.Font = Enum.Font.GothamSemibold; label.TextSize = 13; label.TextXAlignment = Enum.TextXAlignment.Left; label.ZIndex = 6
    
    local btn = Instance.new("TextButton"); btn.Parent = frame; btn.Size = UDim2.new(0, 45, 0, 22); btn.Position = UDim2.new(1, -45, 0, 5); btn.Text = default and "ON" or "OFF"; btn.BackgroundColor3 = default and Settings.AccentColor or Theme.OffColor; btn.TextColor3 = Color3.new(1,1,1); btn.Font = Enum.Font.GothamBold; btn.TextSize = 11; btn.BorderSizePixel = 0; btn.ZIndex = 7
    local corner = Instance.new("UICorner"); corner.CornerRadius = UDim.new(0, 6); corner.Parent = btn
    
    table.insert(RainbowUI.Toggles, {btn = btn})
    local state = default
    btn.MouseButton1Click:Connect(function() 
        state = not state; btn.Text = state and "ON" or "OFF"
        if not Settings.UI_Rainbow then btn.BackgroundColor3 = state and Settings.AccentColor or Theme.OffColor end
        if callback then callback(state) end 
        SaveConfig()
    end)
    return frame
end

local function CreateSlider(parent, text, min, max, default, callback)
    local frame = Instance.new("Frame"); frame.Parent = parent; frame.Size = UDim2.new(1, 0, 0, 42); frame.BackgroundTransparency = 1; frame.ZIndex = 6
    local label = Instance.new("TextLabel"); label.Parent = frame; label.Size = UDim2.new(1, 0, 0, 18); label.Text = text .. ": " .. tostring(default); label.TextColor3 = Theme.Text; label.BackgroundTransparency = 1; label.Font = Enum.Font.GothamSemibold; label.TextSize = 12; label.TextXAlignment = Enum.TextXAlignment.Left; label.ZIndex = 6
    
    local bar = Instance.new("Frame"); bar.Parent = frame; bar.Size = UDim2.new(1, -5, 0, 6); bar.Position = UDim2.new(0, 0, 0, 26); bar.BackgroundColor3 = Theme.ElementBg; bar.BorderSizePixel = 0; bar.ZIndex = 6
    local barCorner = Instance.new("UICorner"); barCorner.CornerRadius = UDim.new(1, 0); barCorner.Parent = bar
    
    local fill = Instance.new("Frame"); fill.Parent = bar; fill.Size = UDim2.new((default-min)/(max-min), 0, 1, 0); fill.BackgroundColor3 = Settings.AccentColor; fill.BorderSizePixel = 0; fill.ZIndex = 7
    local fillCorner = Instance.new("UICorner"); fillCorner.CornerRadius = UDim.new(1, 0); fillCorner.Parent = fill
    
    table.insert(RainbowUI.Sliders, fill)
    local draggingSlider = false
    local function update(input)
        local pos = math.clamp((input.Position.X - bar.AbsolutePosition.X) / bar.AbsoluteSize.X, 0, 1)
        local val = math.floor(min + ((max - min) * pos))
        fill.Size = UDim2.new(pos, 0, 1, 0); label.Text = text .. ": " .. tostring(val)
        if callback then callback(val) end
        SaveConfig()
    end
    bar.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then draggingSlider = true end end)
    UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then draggingSlider = false end end)
    UserInputService.InputChanged:Connect(function(input) if draggingSlider and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then update(input) end end)
    return frame
end

local function CreateActionBtn(parent, text, callback)
    local btn = Instance.new("TextButton"); btn.Parent = parent; btn.Size = UDim2.new(1, 0, 0, 28); btn.Text = text
    btn.BackgroundColor3 = Theme.ElementBg; btn.TextColor3 = Settings.AccentColor; btn.Font = Enum.Font.GothamBold; btn.TextSize = 12; btn.BorderSizePixel = 0; btn.ZIndex = 6
    local corner = Instance.new("UICorner"); corner.CornerRadius = UDim.new(0, 6); corner.Parent = btn
    btn.MouseButton1Click:Connect(callback)
    return btn
end

local function CreateColorPalette(parent)
    local paletteFrame = Instance.new("Frame"); paletteFrame.Parent = parent; paletteFrame.Size = UDim2.new(1, 0, 0, 80); paletteFrame.BackgroundColor3 = Theme.ElementBg; paletteFrame.BorderSizePixel = 0; paletteFrame.ZIndex = 6
    local pCorner = Instance.new("UICorner"); pCorner.CornerRadius = UDim.new(0, 6); pCorner.Parent = paletteFrame
    local grid = Instance.new("UIGridLayout"); grid.Parent = paletteFrame; grid.CellSize = UDim2.new(0, 24, 0, 24); grid.CellPadding = UDim2.new(0, 6, 0, 6)

    local colors = {
        Color3.fromRGB(255, 50, 50), Color3.fromRGB(255, 140, 0), Color3.fromRGB(255, 220, 0), Color3.fromRGB(50, 255, 50),
        Color3.fromRGB(0, 150, 255), Color3.fromRGB(150, 0, 255), Color3.fromRGB(255, 50, 150), Color3.fromRGB(255, 255, 255)
    }

    for _, color in ipairs(colors) do
        local btn = Instance.new("TextButton"); btn.Parent = paletteFrame; btn.BackgroundColor3 = color; btn.BorderSizePixel = 0; btn.Text = ""; btn.ZIndex = 7
        local corner = Instance.new("UICorner"); corner.CornerRadius = UDim.new(0, 4); corner.Parent = btn
        btn.MouseButton1Click:Connect(function() 
            Settings.UI_Rainbow = false 
            Settings.AccentColor = color
        end)
    end
end

local function CreatePage()
    local page = Instance.new("Frame"); page.Parent = MainFrame; page.Size = UDim2.new(1, -20, 1, -50); page.Position = UDim2.new(0, 10, 0, 45); page.BackgroundTransparency = 1; page.Visible = false
    return page
end

local PageCombat = CreatePage()
local PageVisuals = CreatePage()
local PagePlayer = CreatePage()
local PageHitbox = CreatePage()
local PageSettings = CreatePage()

local Pages = {
    [TabCombat] = PageCombat, [TabVisuals] = PageVisuals, [TabPlayer] = PagePlayer, 
    [TabHitbox] = PageHitbox, [TabSettings] = PageSettings
}

local function SwitchTab(clickedTab)
    for _, page in pairs(Pages) do page.Visible = false end
    for tab, _ in pairs(Pages) do tab.TextColor3 = Theme.SubText end
    if Pages[clickedTab] then
        Pages[clickedTab].Visible = true
        clickedTab.TextColor3 = Settings.AccentColor
    end
end

for tab, _ in pairs(Pages) do
    tab.MouseButton1Click:Connect(function() SwitchTab(tab) end)
end
SwitchTab(TabCombat)

local CombatCol1 = CreateColumn(PageCombat, 0)
local CombatCol2 = CreateColumn(PageCombat, 260)

CreateSectionLabel(CombatCol1, "SILENT AIM")
CreateToggle(CombatCol1, "Silent Aim", Settings.AimbotEnabled, function(state) 
    Settings.AimbotEnabled = state
end)
CreateSlider(CombatCol1, "FOV Radius", 50, 800, Settings.FOVRadius, function(val) 
    Settings.FOVRadius = val
end)

local FOVModeBtn
FOVModeBtn = CreateActionBtn(CombatCol2, "FOV Mode: " .. Settings.FOVMode, function() 
    if Settings.FOVMode == "Mobile" then Settings.FOVMode = "PC"; FOVModeBtn.Text = "FOV Mode: PC"
    else Settings.FOVMode = "Mobile"; FOVModeBtn.Text = "FOV Mode: Mobile" end
    SaveConfig()
end)

local VisualsCol1 = CreateColumn(PageVisuals, 0)
local VisualsCol2 = CreateColumn(PageVisuals, 260)

CreateSectionLabel(VisualsCol1, "ESP TYPES")
CreateToggle(VisualsCol1, "Skeleton ESP", Settings.SkeletonESP, function(state) 
    Settings.SkeletonESP = state
end)
CreateToggle(VisualsCol1, "Box ESP", Settings.ESP_Box, function(state) 
    Settings.ESP_Box = state
end)
CreateToggle(VisualsCol1, "Health Bar", Settings.ESP_Health, function(state) 
    Settings.ESP_Health = state
end)
CreateToggle(VisualsCol1, "Tracker Line", Settings.ESP_Tracker, function(state) 
    Settings.ESP_Tracker = state
end)

CreateSectionLabel(VisualsCol2, "TEXT INFO")
CreateToggle(VisualsCol2, "Name ESP", Settings.ESP_Name, function(state) 
    Settings.ESP_Name = state
end)
CreateToggle(VisualsCol2, "Distance ESP", Settings.ESP_Distance, function(state) 
    Settings.ESP_Distance = state
end)
CreateSlider(VisualsCol2, "Max ESP Distance", 50, 1500, Settings.MaxESPDistance, function(val) 
    Settings.MaxESPDistance = val
end)

local PlayerCol1 = CreateColumn(PagePlayer, 0)
local PlayerCol2 = CreateColumn(PagePlayer, 260)

CreateSectionLabel(PlayerCol1, "MOVEMENT")
CreateToggle(PlayerCol1, "Stealth Speed", Settings.SpeedEnabled, function(state) 
    Settings.SpeedEnabled = state
end)
CreateSlider(PlayerCol1, "Speed Value (Max 30)", 16, 30, Settings.SpeedValue, function(val) 
    Settings.SpeedValue = val
end)

CreateSectionLabel(PlayerCol2, "SPIN")
CreateToggle(PlayerCol2, "Spinbot", Settings.SpinEnabled, function(state) 
    Settings.SpinEnabled = state
end)
CreateSlider(PlayerCol2, "Spin Speed (0-65)", 0, 65, Settings.SpinSpeed, function(val) 
    Settings.SpinSpeed = val
end)

CreateSectionLabel(PlayerCol1, "EXPLOITS")
CreateToggle(PlayerCol1, "Infinite Jump", Settings.InfJumpEnabled, function(state)
    Settings.InfJumpEnabled = state
end)
local JumpWarning = Instance.new("TextLabel"); JumpWarning.Parent = PlayerCol1; JumpWarning.Size = UDim2.new(1, 0, 0, 30); JumpWarning.BackgroundTransparency = 1; JumpWarning.TextColor3 = Color3.fromRGB(200, 100, 100); JumpWarning.Font = Enum.Font.GothamSemibold; JumpWarning.TextSize = 10; JumpWarning.TextXAlignment = Enum.TextXAlignment.Left; JumpWarning.TextWrapped = true; JumpWarning.Text = "⚠️ WARNING: If you go too high it will bring you back down. Don't abuse it too much."; JumpWarning.ZIndex = 6
CreateToggle(PlayerCol1, "No Clip", Settings.NoClipEnabled, function(state)
    Settings.NoClipEnabled = state
end)

local HitboxCol1 = CreateColumn(PageHitbox, 0)
CreateSectionLabel(HitboxCol1, "HITBOX EXPANDER")

local WarningLabel = Instance.new("TextLabel"); WarningLabel.Parent = HitboxCol1; WarningLabel.Size = UDim2.new(1, 0, 0, 50); WarningLabel.BackgroundColor3 = Theme.OffColor; WarningLabel.TextColor3 = Color3.fromRGB(255, 100, 100); WarningLabel.Font = Enum.Font.GothamBold; WarningLabel.TextSize = 11; WarningLabel.TextWrapped = true; WarningLabel.Text = "⚠️ WARNING: It could take 3 to 4 taps to kill somebody because it is very strong. DOES NOT hit through walls (Character must be visible)."; WarningLabel.ZIndex = 6
local wCorner = Instance.new("UICorner"); wCorner.CornerRadius = UDim.new(0, 6); wCorner.Parent = WarningLabel

CreateToggle(HitboxCol1, "Hitbox Expander", Settings.HitboxEnabled, function(state) 
    Settings.HitboxEnabled = state
end)
CreateSlider(HitboxCol1, "Hitbox Size", 0, 30, Settings.HitboxSize, function(val) 
    Settings.HitboxSize = val
end)

local SettingsCol1 = CreateColumn(PageSettings, 0)
local SettingsCol2 = CreateColumn(PageSettings, 260)

CreateSectionLabel(SettingsCol1, "UI COLOR")
CreateColorPalette(SettingsCol1)
CreateToggle(SettingsCol1, "Rainbow UI", Settings.UI_Rainbow, function(state) 
    Settings.UI_Rainbow = state 
end)

CreateSectionLabel(SettingsCol2, "CONFIG")
CreateActionBtn(SettingsCol2, "Save Config", function() 
    SaveConfig()
end)
CreateActionBtn(SettingsCol2, "Unload Hub", function() 
    ScreenGui:Destroy() 
end)

RunService.RenderStepped:Connect(function()
    if FOVCircle then
        FOVCircle.Position = GetFOVCenter()
        FOVCircle.Radius = Settings.FOVRadius
        FOVCircle.Visible = Settings.AimbotEnabled
    end

    AutoTarget = GetClosestEnemy()

    local char = LocalPlayer.Character
    local hum = char and char:FindFirstChildOfClass("Humanoid")
    local hrp = char and char:FindFirstChild("HumanoidRootPart")
    
    if hum and hrp then
        if Settings.SpeedEnabled then hum.WalkSpeed = Settings.SpeedValue end
        if Settings.SpinEnabled then hrp.CFrame = hrp.CFrame * CFrame.Angles(0, math.rad(Settings.SpinSpeed), 0) end
    end

    for plr, cache in pairs(espCache) do
        local pChar = plr.Character
        local pHrp = pChar and pChar:FindFirstChild("HumanoidRootPart")
        local pHead = pChar and pChar:FindFirstChild("Head")
        local pHum = pChar and pChar:FindFirstChildOfClass("Humanoid")
        
        if pChar and pHrp and pHead and pHum and pHum.Health > 0 and plr ~= LocalPlayer then
            local dist = (Camera.CFrame.Position - pHrp.Position).Magnitude
            if dist <= Settings.MaxESPDistance then
                local screenPos, onScreen = Camera:WorldToViewportPoint(pHrp.Position)
                local headPos, headOnScreen = Camera:WorldToViewportPoint(pHead.Position)
                
                if onScreen and headOnScreen then
                    local height = math.abs(headPos.Y - screenPos.Y) + 15
                    local width = height / 1.5
                    local topLeft = Vector2.new(screenPos.X - (width / 2), headPos.Y - 10)
                    local topRight = Vector2.new(screenPos.X + (width / 2), headPos.Y - 10)
                    local bottomLeft = Vector2.new(screenPos.X - (width / 2), screenPos.Y + 5)
                    local bottomRight = Vector2.new(screenPos.X + (width / 2), screenPos.Y + 5)
                    local cx = width * 0.2; local cy = height * 0.2

                    if Settings.ESP_Box then
                        cache.Box[1].From = topLeft; cache.Box[1].To = Vector2.new(topLeft.X + cx, topLeft.Y)
                        cache.Box[2].From = topLeft; cache.Box[2].To = Vector2.new(topLeft.X, topLeft.Y + cy)
                        cache.Box[3].From = topRight; cache.Box[3].To = Vector2.new(topRight.X - cx, topRight.Y)
                        cache.Box[4].From = topRight; cache.Box[4].To = Vector2.new(topRight.X, topRight.Y + cy)
                        cache.Box[5].From = bottomLeft; cache.Box[5].To = Vector2.new(bottomLeft.X + cx, bottomLeft.Y)
                        cache.Box[6].From = bottomLeft; cache.Box[6].To = Vector2.new(bottomLeft.X, bottomLeft.Y - cy)
                        cache.Box[7].From = bottomRight; cache.Box[7].To = Vector2.new(bottomRight.X - cx, bottomRight.Y)
                        cache.Box[8].From = bottomRight; cache.Box[8].To = Vector2.new(bottomRight.X, bottomRight.Y - cy)
                        for _, line in pairs(cache.Box) do line.Visible = true end
                    else
                        for _, line in pairs(cache.Box) do line.Visible = false end
                    end

                    if Settings.SkeletonESP then
                        local bones = pChar:FindFirstChild("UpperTorso") and r15Bones or r6Bones
                        for i, bone in ipairs(bones) do
                            local p1 = pChar:FindFirstChild(bone[1])
                            local p2 = pChar:FindFirstChild(bone[2])
                            if p1 and p2 and cache.Skeleton[i] then
                                local s1, on1 = Camera:WorldToViewportPoint(p1.Position)
                                local s2, on2 = Camera:WorldToViewportPoint(p2.Position)
                                if on1 and on2 then
                                    cache.Skeleton[i].From = Vector2.new(s1.X, s1.Y)
                                    cache.Skeleton[i].To = Vector2.new(s2.X, s2.Y)
                                    cache.Skeleton[i].Visible = true
                                else cache.Skeleton[i].Visible = false end
                            elseif cache.Skeleton[i] then cache.Skeleton[i].Visible = false end
                        end
                    else
                        for _, line in pairs(cache.Skeleton) do line.Visible = false end
                    end

                    if Settings.ESP_Health then
                        local healthPct = pHum.Health / pHum.MaxHealth
                        local barX = topLeft.X - 6
                        cache.HealthBg.From = Vector2.new(barX, topLeft.Y); cache.HealthBg.To = Vector2.new(barX, bottomLeft.Y); cache.HealthBg.Visible = true
                        local currentEndY = bottomLeft.Y - (height * healthPct)
                        cache.Health.From = Vector2.new(barX, bottomLeft.Y); cache.Health.To = Vector2.new(barX, currentEndY); cache.Health.Visible = true
                        cache.Health.Color = Color3.fromRGB(255 * (1 - healthPct), 255 * healthPct, 0)
                    else
                        cache.HealthBg.Visible = false; cache.Health.Visible = false
                    end

                    if Settings.ESP_Name then
                        cache.NameTxt.Text = plr.Name; cache.NameTxt.Position = Vector2.new(screenPos.X, headPos.Y - 25); cache.NameTxt.Visible = true
                    else cache.NameTxt.Visible = false end
                    
                    if Settings.ESP_Distance then
                        cache.DistTxt.Text = math.floor(dist) .. "m"; cache.DistTxt.Position = Vector2.new(screenPos.X, screenPos.Y + 10); cache.DistTxt.Visible = true
                    else cache.DistTxt.Visible = false end
                    
                    if Settings.ESP_Tracker then
                        cache.Tracker.From = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2)
                        cache.Tracker.To = Vector2.new(headPos.X, headPos.Y)
                        cache.Tracker.Visible = true
                    else cache.Tracker.Visible = false end

                else
                    for _, line in pairs(cache.Box) do line.Visible = false end
                    for _, line in pairs(cache.Skeleton) do line.Visible = false end
                    cache.HealthBg.Visible = false; cache.Health.Visible = false; cache.NameTxt.Visible = false; cache.DistTxt.Visible = false; cache.Tracker.Visible = false
                end
            else
                for _, line in pairs(cache.Box) do line.Visible = false end
                for _, line in pairs(cache.Skeleton) do line.Visible = false end
                cache.HealthBg.Visible = false; cache.Health.Visible = false; cache.NameTxt.Visible = false; cache.DistTxt.Visible = false; cache.Tracker.Visible = false
            end
        else
            for _, line in pairs(cache.Box) do line.Visible = false end
            for _, line in pairs(cache.Skeleton) do line.Visible = false end
            cache.HealthBg.Visible = false; cache.Health.Visible = false; cache.NameTxt.Visible = false; cache.DistTxt.Visible = false; cache.Tracker.Visible = false
        end
    end

    local currentColor = Settings.AccentColor
    if Settings.UI_Rainbow then
        local hue = (tick() * 0.2) % 1
        currentColor = Color3.fromHSV(hue, 1, 1)
        Settings.AccentColor = currentColor
    end

    TitleLabel.TextColor3 = currentColor
    ToggleBtn.TextColor3 = currentColor
    TStroke.Color = currentColor
    Glow.BackgroundColor3 = currentColor
    if FOVCircle then FOVCircle.Color = currentColor end
    
    for _, txt in pairs(RainbowUI.Texts) do txt.TextColor3 = currentColor end
    for _, data in pairs(RainbowUI.Toggles) do if data.btn.Text == "ON" then data.btn.BackgroundColor3 = currentColor end end
    for _, fill in pairs(RainbowUI.Sliders) do fill.BackgroundColor3 = currentColor end

    if PageCombat.Visible then TabCombat.TextColor3 = currentColor 
    elseif PageVisuals.Visible then TabVisuals.TextColor3 = currentColor 
    elseif PagePlayer.Visible then TabPlayer.TextColor3 = currentColor
    elseif PageHitbox.Visible then TabHitbox.TextColor3 = currentColor
    elseif PageSettings.Visible then TabSettings.TextColor3 = currentColor end
end)

task.spawn(function()
    while task.wait(0.1) do
        for _, plr in ipairs(Players:GetPlayers()) do
            if plr ~= LocalPlayer and plr.Character then
                local hb = plr.Character:FindFirstChild("HeadHitbox")
                if hb then
                    if Settings.HitboxEnabled then
                        if not originalHitboxSizes[hb] then originalHitboxSizes[hb] = hb.Size end
                        hb.Massless = true; hb.CanCollide = false; hb.CanTouch = false
                        hb.Size = originalHitboxSizes[hb] * Settings.HitboxSize
                        hb.Transparency = 0.5
                    else
                        if originalHitboxSizes[hb] then
                            hb.Size = originalHitboxSizes[hb]; hb.Transparency = 1; hb.CanCollide = true; hb.CanTouch = true; hb.Massless = false
                            originalHitboxSizes[hb] = nil
                        end
                    end
                end
            end
        end
    end
end)

How to Execute Hood Rivals Script – Vodka Hub silent aim (Aimbot, Keyless)

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 Hood Rivals.

Step 4: Attach & Run: Attach/inject your executor into the Roblox process, paste the code into the script tab, and press Execute.

Created By

ZYM_1
ZYM_1
Script User
View Author Profile

Roblox Experience

Hood Rivals
Hood Rivals
By A-Grade Productions
Active Players:1.3K
Play on Roblox

Features & Information

Execute Hood Rivals Script – Vodka Hub silent aim (Aimbot, Keyless). Key system required, created by ZYM_1, updated Oct 22, 2026. Tested and working on supported executors.

Script Changelog (4)

@ThunderModsOct 26, 2026

Update script

@ZYM_1Oct 26, 2026

Update script

@QueueSherlockOct 24, 2026

Edited during review before approval

@ZYM_1Oct 22, 2026

Create script

Community Comments (1)

Crammex67Crammex67Oct 24, 2026

good one

Frequently Asked Questions

How do I execute Hood Rivals Script – Vodka Hub silent aim (Aimbot, Keyless) in Roblox?

To run Hood Rivals Script – Vodka Hub silent aim (Aimbot, Keyless), copy the Lua loadstring from the code viewer above, launch Roblox and join Hood Rivals, 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 Hood Rivals Script – Vodka Hub silent aim (Aimbot, Keyless) keyless or does it require an access key?

Hood Rivals Script – Vodka Hub silent aim (Aimbot, Keyless) requires an access key. You can retrieve the official key directly using the Get Script Key link provided above.

Is Hood Rivals Script – Vodka Hub silent aim (Aimbot, Keyless) 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.