-- ReefHub Key System -- Main script is compiled/executed only after a correctly formatted key is entered. local MAIN_SCRIPT = [=[if not game:IsLoaded() then game.Loaded:Wait() end if getgenv and getgenv().ReefHubUnload then pcall(getgenv().ReefHubUnload) end local Players = game:GetService("Players") local Workspace = game:GetService("Workspace") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local ContextActionService = game:GetService("ContextActionService") local TweenService = game:GetService("TweenService") local ReplicatedStorage = game:GetService("ReplicatedStorage") local HttpService = game:GetService("HttpService") local TeleportService = game:GetService("TeleportService") local Lighting = game:GetService("Lighting") local SoundService = game:GetService("SoundService") local CoreGui = game:GetService("CoreGui") local PathfindingService = game:GetService("PathfindingService") local LocalPlayer = Players.LocalPlayer local Camera = Workspace.CurrentCamera local isRunning = true local activeConnections = {} local cleanUpInstances = {} local originalNamecall = nil local originalUtilityRaycast = nil local function hideFromStack(fn) if typeof(fn) == "function" and setstackhidden then pcall(setstackhidden, fn, true) end end local autoReinjectScript = [[ task.spawn(function() repeat task.wait(0.5) until game:IsLoaded() local Players = game:GetService("Players") local lp = Players.LocalPlayer or Players:GetPropertyChangedSignal("LocalPlayer"):Wait() repeat task.wait(0.5) until lp.Character and lp.Character:FindFirstChild("HumanoidRootPart") task.wait(1.5) local success, err = pcall(function() if loadfile then local f = loadfile("rivals.luau") or loadfile("Rivals.luau") if f then f() end end end) end) ]] if queue_on_teleport then pcall(function() queue_on_teleport(autoReinjectScript) end) elseif syn and syn.queue_on_teleport then pcall(function() syn.queue_on_teleport(autoReinjectScript) end) end LocalPlayer.OnTeleport:Connect(function(state) if state == Enum.TeleportState.Started or state == Enum.TeleportState.InProgress then if queue_on_teleport then pcall(function() queue_on_teleport(autoReinjectScript) end) elseif syn and syn.queue_on_teleport then pcall(function() syn.queue_on_teleport(autoReinjectScript) end) end end end) local Config = { Aimbot = false, TeamCheck = true, AimbotKey = Enum.UserInputType.MouseButton2, AimbotKeyMode = "Hold", AimbotPart = "Closest", AimbotSmoothing = 0.28, AimbotFOV = 120, AimbotVisibleOnly = true, AimbotScopeOnly = false, AimbotDisableReloading = true, ContinuousTargeting = true, InstantCameraLock = false, TrackThroughWalls = true, CorrectLockedShots = true, SilentAim = true, SilentKey = Enum.KeyCode.C, SilentKeyMode = "Always", SilentTargetPart = "Head", SilentFOV = 242, SilentHitChance = 78, SilentHeadChance = 59, SilentVisibleOnly = true, SilentVulnerableOnly = true, SilentIgnoreDeflecting = true, SilentIgnoreShielded = true, Ragebot = false, RagebotAutoShoot = false, RagebotTargetStrafe = false, TargetStrafeRadius = 14, TargetStrafeSpeed = 6, Autoplay = false, AutoplayDistance = 18, RagebotTargetPriority = "Distance", RagebotWallbang = true, AutoRespawn = false, AutoQueue = false, QueueMode = "1v1", AutoVoteMaps = false, MapPriority = "Arena, Onyx, Crossroads", AutoBanWeapons = false, WeaponBanPriority = "Grenade Launcher, Minigun, RPG", SecondBanPriority = "Grenade Launcher, Minigun, RPG", AutoLoadout = true, LoadoutOnlySelected = false, EnabledMaps = "Arena, Crossroads", AntiAim = false, AntiAimMode = "Jitter", AntiAimSpeed = 10, HackerDetector = true, NotifyHackers = true, HackerAutoLoad = true, HackerProfile = "rage", SpeedThreshold = 180, SpeedDuration = 0.75, ModDetector = true, NotifyMods = true, MinGroupRank = 200, ModUsernames = "name1, name2", ModFriendList = "name1, name2", AutoPickup = false, PickupRadius = 25, ESP_Master = true, ESP_EnemyOnly = true, ESP_Lobby = true, ESP_MaxDistance = 500, ESP_Boxes = true, ESP_Names = true, ESP_Distance = true, ESP_HealthBar = true, ESP_Weapon = true, ESP_Tracers = false, ESP_Chams = false, ESP_Skeleton = true, ESP_HeadDot = true, ESP_Tripmines = true, ESP_FOV = true, TargetVisualizer = true, TargetVisualizerHUD = true, TargetVisualizerPath = true, VisualizerArrowSpacing = 10, VisualizerArrowSpeed = 14, SpeedHack = false, SpeedValue = 49, FlyHack = false, FlySpeed = 50, InfiniteJump = false, BunnyHop = false, Noclip = false, NoRecoil = true, NoSpread = true, FastReload = false, RapidFire = false, InstantEquip = false, AutomaticGuns = false, InfiniteAmmo = false, UnlockAllSkins = false, SelectedCategory = "Primary", SelectedWeapon = "Assault Rifle", SelectedWrap = "Liquid Gold", SelectedCharm = "Dice", SelectedFinisher = "Gingerbreadify", RainbowGunSkin = false, WeaponChams = false, CustomViewModelFOV = false, ViewModelFOVValue = 70, ViewModelXOffset = 0, ViewModelYOffset = 0, ViewModelZOffset = 0, HideViewModel = false, Fullbright = false, NoFog = true, CustomFOV = false, FOVValue = 90, BulletTracers = false, HitSound = "Skeet", ThirdPerson = false, ThirdPersonDist = 12, Freecam = false, FreecamSpeed = 40, MenuKey = Enum.KeyCode.RightControl, MobileToggle = false } local Theme = { OuterBorder = Color3.fromRGB(215, 106, 141), BorderPink = Color3.fromRGB(215, 106, 141), BorderPinkDark = Color3.fromRGB(150, 60, 92), WindowBg = Color3.fromRGB(22, 17, 21), WindowBgTop = Color3.fromRGB(28, 20, 26), WindowBgBottom = Color3.fromRGB(16, 12, 15), InnerCanvasBg = Color3.fromRGB(20, 15, 19), HeaderBg = Color3.fromRGB(24, 18, 23), CardBg = Color3.fromRGB(33, 24, 30), CardBgTop = Color3.fromRGB(44, 32, 41), CardBgBottom = Color3.fromRGB(22, 16, 20), BorderDark = Color3.fromRGB(56, 40, 52), BorderCard = Color3.fromRGB(64, 46, 59), AccentPink = Color3.fromRGB(226, 120, 152), AccentPinkLight = Color3.fromRGB(245, 152, 182), AccentPinkDark = Color3.fromRGB(180, 72, 108), AccentPinkDim = Color3.fromRGB(120, 42, 70), TextWhite = Color3.fromRGB(242, 240, 243), TextMuted = Color3.fromRGB(152, 132, 144), TextDark = Color3.fromRGB(105, 88, 100), ControlBg = Color3.fromRGB(15, 11, 14), ButtonBg = Color3.fromRGB(32, 23, 29), ButtonHoverBg = Color3.fromRGB(48, 34, 44), ButtonBorder = Color3.fromRGB(68, 48, 62), Red = Color3.fromRGB(235, 75, 75), Yellow = Color3.fromRGB(245, 195, 65), AccentGreen = Color3.fromRGB(226, 120, 152), AccentGreenLight= Color3.fromRGB(245, 152, 182), AccentGreenDark = Color3.fromRGB(180, 72, 108), AccentGreenDim = Color3.fromRGB(120, 42, 70) } local MainFont = Enum.Font.RobotoMono local LOBBY_CENTER = Vector3.new(109, -680, 1184) local function isInLobby() local char = LocalPlayer.Character local root = char and char:FindFirstChild("HumanoidRootPart") if not root then return false end return (root.Position - LOBBY_CENTER).Magnitude < 450 end local function isTeammate(p) if not p then return false end if p == LocalPlayer then return true end if Config.TeamCheck == false then return false end local pl = nil if typeof(p) == "Instance" then if p:IsA("Player") then pl = p elseif LocalPlayer.Character and (p == LocalPlayer.Character or p:IsDescendantOf(LocalPlayer.Character)) then return true else pl = Players:GetPlayerFromCharacter(p:IsA("Model") and p or p:FindFirstAncestorOfClass("Model")) end end if pl and LocalPlayer.Team and pl.Team and LocalPlayer.Team == pl.Team then return true end if pl then local myT = LocalPlayer:GetAttribute("TeamID") or LocalPlayer:GetAttribute("Team") local theirT = pl:GetAttribute("TeamID") or pl:GetAttribute("Team") if myT ~= nil and theirT ~= nil and myT == theirT then return true end end local pChar = pl and pl.Character or (typeof(p) == "Instance" and (p:IsA("Model") and p or p:FindFirstAncestorOfClass("Model"))) local myChar = LocalPlayer.Character if pChar and myChar then local myCT = myChar:GetAttribute("TeamID") or myChar:GetAttribute("Team") local theirCT = pChar:GetAttribute("TeamID") or pChar:GetAttribute("Team") if myCT ~= nil and theirCT ~= nil and myCT == theirCT then return true end if pChar:FindFirstChild("TeammateLabel", true) or pChar:FindFirstChild("AllyLabel", true) then return true end end return false end hideFromStack(isTeammate) local function isEnemyPlayer(p) if not p or p == LocalPlayer then return false end if isInLobby() then return Config.ESP_Lobby == true end if isTeammate(p) then return false end if Config.ESP_EnemyOnly and LocalPlayer.Team and p.Team and LocalPlayer.Team == p.Team then return false end return true end hideFromStack(isEnemyPlayer) local function getGuiParent() if gethui then local ok, h = pcall(gethui) if ok and h then return h end end local ok, gui = pcall(function() return CoreGui end) if ok and gui then return gui end return LocalPlayer:WaitForChild("PlayerGui", 5) or LocalPlayer:FindFirstChild("PlayerGui") end local screenGui = Instance.new("ScreenGui") screenGui.Name = "ReefHubUI" screenGui.ResetOnSpawn = false screenGui.IgnoreGuiInset = true screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling screenGui.DisplayOrder = 999 screenGui.Parent = getGuiParent() table.insert(cleanUpInstances, screenGui) local function UnloadScript() isRunning = false for _, conn in ipairs(activeConnections) do pcall(function() conn:Disconnect() end) end table.clear(activeConnections) for _, inst in ipairs(cleanUpInstances) do pcall(function() inst:Destroy() end) end table.clear(cleanUpInstances) if originalUtilityRaycast then pcall(function() local util = require(ReplicatedStorage.Modules.Utility) util.Raycast = originalUtilityRaycast end) end pcall(function() ContextActionService:UnbindAction("ParagonMenuFreeze") end) pcall(function() local ps = LocalPlayer:FindFirstChild("PlayerScripts") local pm = ps and ps:FindFirstChild("PlayerModule") if pm then local controls = require(pm):GetControls() if controls then controls:Enable() end end end) pcall(function() UserInputService.MouseBehavior = Enum.MouseBehavior.Default if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then LocalPlayer.Character.HumanoidRootPart.Anchored = false end end) if getgenv then getgenv().ReefHubUnload = nil end end if getgenv then getgenv().ReefHubUnload = UnloadScript end local originalWeaponStats = {} local function ApplyWeaponModifications() if not isRunning then return end pcall(function() local rep = game:GetService("ReplicatedStorage") local itemModule = rep:FindFirstChild("Modules") and rep.Modules:FindFirstChild("ItemLibrary") if not itemModule then return end local itemLib = require(itemModule) if itemLib and itemLib.Items then for name, item in pairs(itemLib.Items) do if type(item) == "table" and item.ShootRecoil ~= nil then if not originalWeaponStats[name] then originalWeaponStats[name] = { ShootRecoil = item.ShootRecoil, ShootSpread = item.ShootSpread, AimSpreadMultiplier = item.AimSpreadMultiplier, ShootSpreadPerVelocityUnit = item.ShootSpreadPerVelocityUnit, ShootSpreadPerVelocityLimit = item.ShootSpreadPerVelocityLimit, EquipCooldown = item.EquipCooldown, ReloadLength = item.ReloadLength, EmptyReloadLength = item.EmptyReloadLength, ReloadActionTimestamp = item.ReloadActionTimestamp, EmptyReloadActionTimestamp = item.EmptyReloadActionTimestamp, ShootCooldown = item.ShootCooldown, MaxAmmo = item.MaxAmmo, MaxAmmoReserve = item.MaxAmmoReserve } end local orig = originalWeaponStats[name] item.ShootRecoil = Config.NoRecoil and 0 or orig.ShootRecoil item.ShootSpread = Config.NoSpread and 0 or orig.ShootSpread item.AimSpreadMultiplier = Config.NoSpread and 0 or orig.AimSpreadMultiplier item.ShootSpreadPerVelocityUnit = Config.NoSpread and 0 or orig.ShootSpreadPerVelocityUnit item.ShootSpreadPerVelocityLimit = Config.NoSpread and 0 or orig.ShootSpreadPerVelocityLimit item.EquipCooldown = Config.InstantEquip and 0.01 or orig.EquipCooldown item.ReloadLength = Config.FastReload and 0.05 or orig.ReloadLength item.EmptyReloadLength = Config.FastReload and 0.05 or orig.EmptyReloadLength item.ReloadActionTimestamp = Config.FastReload and 0.01 or orig.ReloadActionTimestamp item.EmptyReloadActionTimestamp = Config.FastReload and 0.01 or orig.EmptyReloadActionTimestamp item.ShootCooldown = Config.RapidFire and (orig.ShootCooldown * 0.4) or orig.ShootCooldown if orig.MaxAmmo then item.MaxAmmo = Config.InfiniteAmmo and 9999 or orig.MaxAmmo end if orig.MaxAmmoReserve then item.MaxAmmoReserve = Config.InfiniteAmmo and 9999 or orig.MaxAmmoReserve end end end end end) end local function UnlockAllCosmeticsClientSide() pcall(function() local rep = game:GetService("ReplicatedStorage") local pdCtrl = require(LocalPlayer.PlayerScripts.Controllers.PlayerDataController) local cosmeticLib = require(rep.Modules.CosmeticLibrary) local itemLib = require(rep.Modules.ItemLibrary) if pdCtrl and pdCtrl.CurrentData and pdCtrl.CurrentData.Data then local cosmInv = pdCtrl.CurrentData.Data.CosmeticInventory or {} local rawWeapInv = pdCtrl.CurrentData.Data.WeaponInventory or {} if cosmeticLib and cosmeticLib.Cosmetics then for name, _ in pairs(cosmeticLib.Cosmetics) do cosmInv[name] = true end end local weapInv = {} local existing = {} if typeof(rawWeapInv) == "table" then for _, item in pairs(rawWeapInv) do if typeof(item) == "table" and item.Name then table.insert(weapInv, item) existing[item.Name] = true end end end if itemLib and itemLib.Items then for name, _ in pairs(itemLib.Items) do if not existing[name] then table.insert(weapInv, { Name = name, Level = 100, Prestige = 5, XP = 99999, IsFavorited = false }) existing[name] = true end end end pdCtrl.CurrentData.Data.CosmeticInventory = cosmInv pdCtrl.CurrentData.Data.WeaponInventory = weapInv end end) end local function ApplySelectedCosmeticsClientSide(weaponName, wrapName, charmName, finisherName) pcall(function() local rep = game:GetService("ReplicatedStorage") local pdCtrl = require(LocalPlayer.PlayerScripts.Controllers.PlayerDataController) if pdCtrl and pdCtrl.CurrentData and pdCtrl.CurrentData.Data then local weapInv = pdCtrl.CurrentData.Data.WeaponInventory if typeof(weapInv) == "table" then for _, weapon in ipairs(weapInv) do if typeof(weapon) == "table" and (weapon.Name == weaponName or weaponName == "All") then if wrapName and wrapName ~= "Default" and wrapName ~= "None" then weapon.Wrap = { Name = wrapName, Inverted = false } elseif wrapName == "Default" or wrapName == "None" then weapon.Wrap = nil end if charmName and charmName ~= "None" then weapon.Charm = { Name = charmName } elseif charmName == "None" then weapon.Charm = nil end if finisherName and finisherName ~= "None" then weapon.Finisher = { Name = finisherName } elseif finisherName == "None" then weapon.Finisher = nil end end end end end local rem = rep:FindFirstChild("Remotes") local dataRem = rem and rem:FindFirstChild("Data") local equipCosm = dataRem and dataRem:FindFirstChild("EquipCosmetic") if equipCosm and weaponName ~= "All" then if wrapName and wrapName ~= "Default" and wrapName ~= "None" then equipCosm:FireServer(weaponName, "Wrap", wrapName) end if charmName and charmName ~= "None" then equipCosm:FireServer(weaponName, "Charm", charmName) end if finisherName and finisherName ~= "None" then equipCosm:FireServer(weaponName, "Finisher", finisherName) end end end) end local dropdownOverlay = Instance.new("Frame") dropdownOverlay.Name = "DropdownOverlay" dropdownOverlay.Size = UDim2.new(1, 0, 1, 0) dropdownOverlay.BackgroundTransparency = 1 dropdownOverlay.ZIndex = 1000 dropdownOverlay.Parent = screenGui table.insert(cleanUpInstances, dropdownOverlay) local activeDropdownClose = nil UserInputService.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then if activeDropdownClose then activeDropdownClose(input.Position) end end end) local watermarkFrame = Instance.new("Frame") watermarkFrame.Name = "ParagonWatermark" watermarkFrame.Size = UDim2.new(0, 275, 0, 22) watermarkFrame.Position = UDim2.new(1, -285, 0, 8) watermarkFrame.BackgroundColor3 = Theme.CardBg watermarkFrame.BorderSizePixel = 0 watermarkFrame.ZIndex = 90 watermarkFrame.Parent = screenGui table.insert(cleanUpInstances, watermarkFrame) local wmGrad = Instance.new("UIGradient") wmGrad.Rotation = 90 wmGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Theme.CardBgTop), ColorSequenceKeypoint.new(1, Theme.CardBgBottom) }) wmGrad.Parent = watermarkFrame local wmStroke = Instance.new("UIStroke") wmStroke.Color = Theme.BorderCard wmStroke.Thickness = 1 wmStroke.Parent = watermarkFrame local wmTopLine = Instance.new("Frame") wmTopLine.Size = UDim2.new(1, 0, 0, 1.5) wmTopLine.BackgroundColor3 = Theme.AccentPink wmTopLine.BorderSizePixel = 0 wmTopLine.ZIndex = 91 wmTopLine.Parent = watermarkFrame local wmLineGrad = Instance.new("UIGradient") wmLineGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Theme.AccentPinkLight), ColorSequenceKeypoint.new(1, Theme.AccentPinkDark) }) wmLineGrad.Parent = wmTopLine local wmLbl = Instance.new("TextLabel") wmLbl.Size = UDim2.new(1, -12, 1, -2) wmLbl.Position = UDim2.new(0, 8, 0, 2) wmLbl.BackgroundTransparency = 1 wmLbl.Font = MainFont wmLbl.RichText = true wmLbl.Text = 'P | reefhub | 60 fps | 0 ms' wmLbl.TextColor3 = Theme.TextWhite wmLbl.TextSize = 10.5 wmLbl.TextXAlignment = Enum.TextXAlignment.Left wmLbl.ZIndex = 92 wmLbl.Parent = watermarkFrame local notifContainer = Instance.new("Frame") notifContainer.Name = "NotifContainer" notifContainer.Size = UDim2.new(0, 260, 1, -40) notifContainer.Position = UDim2.new(1, -275, 0, 36) notifContainer.BackgroundTransparency = 1 notifContainer.ZIndex = 100 notifContainer.Parent = screenGui table.insert(cleanUpInstances, notifContainer) local notifLayout = Instance.new("UIListLayout") notifLayout.SortOrder = Enum.SortOrder.LayoutOrder notifLayout.VerticalAlignment = Enum.VerticalAlignment.Bottom notifLayout.Padding = UDim.new(0, 5) notifLayout.Parent = notifContainer local function ShowNotification(title, message, notifType, duration) if not isRunning then return end pcall(function() if not notifContainer or not notifContainer.Parent then return end duration = duration or 3.5 notifType = notifType or "INFO" local barColor = Theme.AccentGreen if notifType == "SUCCESS" then barColor = Theme.AccentGreenLight elseif notifType == "WARN" then barColor = Theme.Yellow elseif notifType == "ERROR" then barColor = Theme.Red end local card = Instance.new("Frame") card.Size = UDim2.new(1, 0, 0, 0) card.BackgroundColor3 = Theme.CardBg card.BorderSizePixel = 0 card.ClipsDescendants = true card.ZIndex = 101 card.Parent = notifContainer local stroke = Instance.new("UIStroke") stroke.Color = Theme.BorderDark stroke.Thickness = 1 stroke.Parent = card local topAcc = Instance.new("Frame") topAcc.Size = UDim2.new(1, 0, 0, 1.5) topAcc.BackgroundColor3 = barColor topAcc.BorderSizePixel = 0 topAcc.ZIndex = 102 topAcc.Parent = card local tLbl = Instance.new("TextLabel") tLbl.Size = UDim2.new(1, -14, 0, 15) tLbl.Position = UDim2.new(0, 8, 0, 3) tLbl.BackgroundTransparency = 1 tLbl.Font = MainFont tLbl.Text = title tLbl.TextColor3 = Theme.AccentGreen tLbl.TextSize = 11.5 tLbl.TextXAlignment = Enum.TextXAlignment.Left tLbl.ZIndex = 102 tLbl.Parent = card local mLbl = Instance.new("TextLabel") mLbl.Size = UDim2.new(1, -14, 0, 22) mLbl.Position = UDim2.new(0, 8, 0, 18) mLbl.BackgroundTransparency = 1 mLbl.Font = MainFont mLbl.Text = message mLbl.TextColor3 = Theme.TextWhite mLbl.TextSize = 10 mLbl.TextWrapped = true mLbl.TextXAlignment = Enum.TextXAlignment.Left mLbl.ZIndex = 102 mLbl.Parent = card TweenService:Create(card, TweenInfo.new(0.2, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {Size = UDim2.new(1, 0, 0, 46)}):Play() task.delay(duration, function() if card and card.Parent then local tw = TweenService:Create(card, TweenInfo.new(0.18, Enum.EasingStyle.Quart, Enum.EasingDirection.In), {Size = UDim2.new(1, 0, 0, 0)}) tw:Play() tw.Completed:Connect(function() card:Destroy() end) end end) end) end local TargetVis = { hudFrame = nil, hudTitle = nil, hudAvatar = nil, hudName = nil, hudHpFill = nil, visualizerFolder = nil, poolLines = {}, poolChevrons = {}, cachedWaypoints = {}, autoplayWpIndex = 1, lastAutoplayStuckTime = 0, lastAutoplayPos = nil, lastTargetUserId = nil, activeRoot = nil, activeChar = nil, activeHum = nil, activePlayer = nil, cachedEnemies = {}, lastEnemyUpdateTime = 0, targetCache = {}, staticRayParams = nil, lastFullbrightCheck = 0, lastNoFogCheck = 0, lastPathMyPos = nil, lastPathActPos = nil, } local function initTargetVisualizer() local hud = Instance.new("Frame") hud.Name = "TargetHUD" hud.Size = UDim2.new(0, 310, 0, 72) hud.Position = UDim2.new(0.5, -155, 1, -125) hud.BackgroundColor3 = Color3.fromRGB(15, 18, 15) hud.BorderSizePixel = 0 hud.Visible = false hud.ZIndex = 80 hud.Parent = screenGui table.insert(cleanUpInstances, hud) TargetVis.hudFrame = hud local stroke = Instance.new("UIStroke") stroke.Color = Color3.fromRGB(45, 55, 45) stroke.Thickness = 1.2 stroke.Parent = hud local topLine = Instance.new("Frame") topLine.Size = UDim2.new(1, 0, 0, 2.5) topLine.BackgroundColor3 = Color3.fromRGB(195, 255, 30) topLine.BorderSizePixel = 0 topLine.ZIndex = 81 topLine.Parent = hud local title = Instance.new("TextLabel") title.Size = UDim2.new(1, -20, 0, 18) title.Position = UDim2.new(0, 10, 0, 4) title.BackgroundTransparency = 1 title.Font = MainFont title.Text = "Target - 150/150" title.TextColor3 = Theme.TextWhite title.TextSize = 14 title.TextXAlignment = Enum.TextXAlignment.Left title.ZIndex = 82 title.Parent = hud TargetVis.hudTitle = title local avatar = Instance.new("ImageLabel") avatar.Size = UDim2.new(0, 42, 0, 42) avatar.Position = UDim2.new(0, 10, 0, 24) avatar.BackgroundColor3 = Color3.fromRGB(20, 24, 20) avatar.BorderSizePixel = 0 avatar.ZIndex = 82 avatar.Parent = hud TargetVis.hudAvatar = avatar local avStroke = Instance.new("UIStroke") avStroke.Color = Color3.fromRGB(195, 255, 30) avStroke.Thickness = 1.2 avStroke.Parent = avatar local nameLbl = Instance.new("TextLabel") nameLbl.Size = UDim2.new(1, -68, 0, 18) nameLbl.Position = UDim2.new(0, 60, 0, 24) nameLbl.BackgroundTransparency = 1 nameLbl.Font = MainFont nameLbl.Text = "Player (@username)" nameLbl.TextColor3 = Theme.TextWhite nameLbl.TextSize = 13 nameLbl.TextXAlignment = Enum.TextXAlignment.Left nameLbl.TextTruncate = Enum.TextTruncate.AtEnd nameLbl.ZIndex = 82 nameLbl.Parent = hud TargetVis.hudName = nameLbl local hpBg = Instance.new("Frame") hpBg.Size = UDim2.new(1, -68, 0, 8) hpBg.Position = UDim2.new(0, 60, 0, 48) hpBg.BackgroundColor3 = Color3.fromRGB(28, 34, 28) hpBg.BorderSizePixel = 0 hpBg.ZIndex = 82 hpBg.Parent = hud local hpCorner = Instance.new("UICorner") hpCorner.CornerRadius = UDim.new(0, 2) hpCorner.Parent = hpBg local hpFill = Instance.new("Frame") hpFill.Size = UDim2.new(1, 0, 1, 0) hpFill.BackgroundColor3 = Color3.fromRGB(195, 255, 30) hpFill.BorderSizePixel = 0 hpFill.ZIndex = 83 hpFill.Parent = hpBg TargetVis.hudHpFill = hpFill local hpFillCorner = Instance.new("UICorner") hpFillCorner.CornerRadius = UDim.new(0, 2) hpFillCorner.Parent = hpFill local vFolder = Instance.new("Folder") vFolder.Name = "ParagonTargetVisualizer" vFolder.Parent = Workspace table.insert(cleanUpInstances, vFolder) TargetVis.visualizerFolder = vFolder for i = 1, 40 do local p = Instance.new("Part") p.Name = "VisLine_" .. i p.Anchored = true p.CanCollide = false p.CanTouch = false p.CanQuery = false p.CastShadow = false p.Material = Enum.Material.Neon p.Color = Color3.fromRGB(195, 255, 30) p.Transparency = 1 p.Size = Vector3.new(0.18, 0.06, 1) p.Parent = vFolder table.insert(TargetVis.poolLines, p) end for i = 1, 30 do local wingL = Instance.new("Part") wingL.Name = "ChevL_" .. i wingL.Anchored = true wingL.CanCollide = false wingL.CanTouch = false wingL.CanQuery = false wingL.CastShadow = false wingL.Material = Enum.Material.Neon wingL.Color = Color3.fromRGB(195, 255, 30) wingL.Transparency = 1 wingL.Size = Vector3.new(0.22, 0.08, 1.2) wingL.Parent = vFolder local wingR = Instance.new("Part") wingR.Name = "ChevR_" .. i wingR.Anchored = true wingR.CanCollide = false wingR.CanTouch = false wingR.CanQuery = false wingR.CastShadow = false wingR.Material = Enum.Material.Neon wingR.Color = Color3.fromRGB(195, 255, 30) wingR.Transparency = 1 wingR.Size = Vector3.new(0.22, 0.08, 1.2) wingR.Parent = vFolder table.insert(TargetVis.poolChevrons, { Left = wingL, Right = wingR }) end end initTargetVisualizer() local mainWindow = Instance.new("Frame") mainWindow.Name = "MainWindow" mainWindow.Size = UDim2.new(0, 480, 0, 500) mainWindow.Position = UDim2.new(0.5, -240, 0.5, -250) mainWindow.BackgroundColor3 = Theme.WindowBg mainWindow.BorderSizePixel = 0 mainWindow.ClipsDescendants = false mainWindow.Active = true mainWindow.ZIndex = 10 mainWindow.Parent = screenGui table.insert(cleanUpInstances, mainWindow) local frozenCameraCFrame = nil local frozenCameraFOV = nil local FreecamState = { enabled = false, rotX = 0, rotY = 0, pos = Vector3.zero } local sPing = nil local lastBhopJumpTime = 0 local lastRageAutoShootTime = 0 local lastAutoShootTime = 0 local isTargetStrafing = false local function hasWeaponEquipped() local char = LocalPlayer.Character if not char then return false end for _, c in ipairs(char:GetChildren()) do if c:IsA("Tool") then return true end end local vm = Workspace:FindFirstChild("ViewModels") local fp = vm and vm:FindFirstChild("FirstPerson") if fp and #fp:GetChildren() > 0 then for _, c in ipairs(fp:GetChildren()) do if c:IsA("Model") or c:IsA("BasePart") then return true end end end return false end local function setPlayerControlsEnabled(enabled) pcall(function() local ps = LocalPlayer:FindFirstChild("PlayerScripts") local pm = ps and ps:FindFirstChild("PlayerModule") if pm then local controls = require(pm):GetControls() if controls then if enabled then controls:Enable() else controls:Disable() end end end end) end local function setMenuVisible(visible) mainWindow.Visible = visible if visible then frozenCameraCFrame = Camera.CFrame frozenCameraFOV = Camera.FieldOfView UserInputService.MouseBehavior = Enum.MouseBehavior.Default UserInputService.MouseIconEnabled = true setPlayerControlsEnabled(false) local char = LocalPlayer.Character local root = char and char:FindFirstChild("HumanoidRootPart") if root then root.AssemblyLinearVelocity = Vector3.new(0, math.min(root.AssemblyLinearVelocity.Y, 0), 0) end pcall(function() ContextActionService:BindActionAtPriority( "ParagonMenuFreeze", function() return Enum.ContextActionResult.Sink end, false, Enum.ContextActionPriority.High.Value + 5000, Enum.UserInputType.MouseMovement, Enum.UserInputType.Touch, Enum.KeyCode.W, Enum.KeyCode.A, Enum.KeyCode.S, Enum.KeyCode.D, Enum.KeyCode.Space, Enum.KeyCode.LeftShift, Enum.KeyCode.LeftControl, Enum.KeyCode.Up, Enum.KeyCode.Down, Enum.KeyCode.Left, Enum.KeyCode.Right ) end) else frozenCameraCFrame = nil frozenCameraFOV = nil setPlayerControlsEnabled(true) pcall(function() ContextActionService:UnbindAction("ParagonMenuFreeze") end) end end local windowStroke = Instance.new("UIStroke") windowStroke.Color = Theme.OuterBorder windowStroke.Thickness = 1 windowStroke.Parent = mainWindow local windowGrad = Instance.new("UIGradient") windowGrad.Rotation = 90 windowGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Theme.WindowBgTop), ColorSequenceKeypoint.new(1, Theme.WindowBgBottom) }) windowGrad.Parent = mainWindow local topBar = Instance.new("Frame") topBar.Name = "TopBar" topBar.Size = UDim2.new(1, 0, 0, 32) topBar.BackgroundColor3 = Theme.HeaderBg topBar.BorderSizePixel = 0 topBar.ZIndex = 11 topBar.Parent = mainWindow local isDragging = false local dragStart, startPos topBar.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then isDragging = true dragStart = input.Position startPos = mainWindow.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then isDragging = false end end) end end) UserInputService.InputChanged:Connect(function(input) if isDragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then local delta = input.Position - dragStart mainWindow.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) end end) local logoFrame = Instance.new("Frame") logoFrame.Name = "ParagonLogo" logoFrame.Size = UDim2.new(0, 16, 0, 18) logoFrame.Position = UDim2.new(0, 10, 0.5, -9) logoFrame.BackgroundTransparency = 1 logoFrame.ZIndex = 12 logoFrame.Parent = topBar local pStem = Instance.new("Frame") pStem.Size = UDim2.new(0, 5, 0, 17) pStem.Position = UDim2.new(0, 0, 0, 0.5) pStem.BackgroundColor3 = Theme.AccentPinkDark pStem.BorderSizePixel = 0 pStem.ZIndex = 13 pStem.Parent = logoFrame local pTop = Instance.new("Frame") pTop.Size = UDim2.new(0, 11, 0, 5) pTop.Position = UDim2.new(0, 5, 0, 0.5) pTop.BackgroundColor3 = Theme.AccentPinkLight pTop.BorderSizePixel = 0 pTop.ZIndex = 14 pTop.Parent = logoFrame local pRight = Instance.new("Frame") pRight.Size = UDim2.new(0, 5, 0, 6) pRight.Position = UDim2.new(0, 11, 0, 4.5) pRight.BackgroundColor3 = Theme.AccentPink pRight.BorderSizePixel = 0 pRight.ZIndex = 14 pRight.Parent = logoFrame local pMid = Instance.new("Frame") pMid.Size = UDim2.new(0, 7, 0, 4) pMid.Position = UDim2.new(0, 5, 0, 9.5) pMid.BackgroundColor3 = Theme.AccentPink pMid.BorderSizePixel = 0 pMid.ZIndex = 14 pMid.Parent = logoFrame local titleLbl = Instance.new("TextLabel") titleLbl.Size = UDim2.new(0, 220, 1, 0) titleLbl.Position = UDim2.new(0, 34, 0, 0) titleLbl.BackgroundTransparency = 1 titleLbl.Font = MainFont titleLbl.RichText = true titleLbl.Text = 'ReefHub.ripped' titleLbl.TextSize = 14 titleLbl.TextXAlignment = Enum.TextXAlignment.Left titleLbl.ZIndex = 13 titleLbl.Parent = topBar local searchBox = Instance.new("TextBox") searchBox.Size = UDim2.new(0, 105, 0, 19) searchBox.Position = UDim2.new(1, -135, 0.5, -9.5) searchBox.BackgroundColor3 = Theme.ControlBg searchBox.BorderSizePixel = 0 searchBox.Font = MainFont searchBox.PlaceholderText = "Search..." searchBox.PlaceholderColor3 = Theme.TextDark searchBox.Text = "" searchBox.TextColor3 = Theme.TextWhite searchBox.TextSize = 11 searchBox.ZIndex = 12 searchBox.Parent = topBar local pad = Instance.new("UIPadding") pad.PaddingLeft = UDim.new(0, 6) pad.Parent = searchBox local sbStroke = Instance.new("UIStroke") sbStroke.Color = Theme.BorderDark sbStroke.Thickness = 1 sbStroke.Parent = searchBox searchBox.Focused:Connect(function() sbStroke.Color = Theme.BorderPink end) searchBox.FocusLost:Connect(function() sbStroke.Color = Theme.BorderDark end) local closeBtn = Instance.new("TextButton") closeBtn.Name = "CloseButton" closeBtn.Size = UDim2.new(0, 20, 0, 19) closeBtn.Position = UDim2.new(1, -26, 0.5, -9.5) closeBtn.BackgroundColor3 = Theme.ControlBg closeBtn.BorderSizePixel = 0 closeBtn.Font = MainFont closeBtn.Text = "×" closeBtn.TextColor3 = Theme.TextMuted closeBtn.TextSize = 14 closeBtn.ZIndex = 12 closeBtn.Parent = topBar local cbStroke = Instance.new("UIStroke") cbStroke.Color = Theme.BorderDark cbStroke.Thickness = 1 cbStroke.Parent = closeBtn closeBtn.MouseEnter:Connect(function() closeBtn.TextColor3 = Theme.AccentPinkLight cbStroke.Color = Theme.BorderPink end) closeBtn.MouseLeave:Connect(function() closeBtn.TextColor3 = Theme.TextMuted cbStroke.Color = Theme.BorderDark end) closeBtn.MouseButton1Click:Connect(function() setMenuVisible(false) end) local innerCanvas = Instance.new("Frame") innerCanvas.Name = "InnerCanvas" innerCanvas.Size = UDim2.new(1, -14, 1, -40) innerCanvas.Position = UDim2.new(0, 7, 0, 33) innerCanvas.BackgroundColor3 = Theme.InnerCanvasBg innerCanvas.BorderSizePixel = 0 innerCanvas.ZIndex = 11 innerCanvas.Parent = mainWindow local innerStroke = Instance.new("UIStroke") innerStroke.Color = Theme.BorderDark innerStroke.Thickness = 1 innerStroke.Parent = innerCanvas local tabNavFrame = Instance.new("Frame") tabNavFrame.Name = "TabNavFrame" tabNavFrame.Size = UDim2.new(1, -12, 0, 22) tabNavFrame.Position = UDim2.new(0, 6, 0, 4) tabNavFrame.BackgroundTransparency = 1 tabNavFrame.ZIndex = 12 tabNavFrame.Parent = innerCanvas local tabNavLayout = Instance.new("UIListLayout") tabNavLayout.FillDirection = Enum.FillDirection.Horizontal tabNavLayout.HorizontalAlignment = Enum.HorizontalAlignment.Left tabNavLayout.VerticalAlignment = Enum.VerticalAlignment.Center tabNavLayout.SortOrder = Enum.SortOrder.LayoutOrder tabNavLayout.Padding = UDim.new(0, 8) tabNavLayout.Parent = tabNavFrame local tabNavPad = Instance.new("UIPadding") tabNavPad.PaddingLeft = UDim.new(0, 4) tabNavPad.Parent = tabNavFrame local tabContentFrame = Instance.new("Frame") tabContentFrame.Name = "TabContentFrame" tabContentFrame.Size = UDim2.new(1, -12, 1, -54) tabContentFrame.Position = UDim2.new(0, 6, 0, 30) tabContentFrame.BackgroundTransparency = 1 tabContentFrame.ZIndex = 12 tabContentFrame.Parent = innerCanvas local statusBar = Instance.new("Frame") statusBar.Name = "StatusBar" statusBar.Size = UDim2.new(1, -12, 0, 18) statusBar.Position = UDim2.new(0, 6, 1, -20) statusBar.BackgroundTransparency = 1 statusBar.ZIndex = 12 statusBar.Parent = innerCanvas local statusLine = Instance.new("Frame") statusLine.Size = UDim2.new(1, 0, 0, 1) statusLine.Position = UDim2.new(0, 0, 0, 0) statusLine.BackgroundColor3 = Theme.BorderDark statusLine.BorderSizePixel = 0 statusLine.ZIndex = 12 statusLine.Parent = statusBar local statusLeft = Instance.new("TextLabel") statusLeft.Size = UDim2.new(0.6, 0, 1, -2) statusLeft.Position = UDim2.new(0, 2, 0, 2) statusLeft.BackgroundTransparency = 1 statusLeft.Font = MainFont statusLeft.RichText = true statusLeft.Text = 'welcome back, ' .. LocalPlayer.DisplayName .. '' statusLeft.TextColor3 = Theme.TextMuted statusLeft.TextSize = 10.5 statusLeft.TextXAlignment = Enum.TextXAlignment.Left statusLeft.ZIndex = 13 statusLeft.Parent = statusBar local statusRight = Instance.new("TextLabel") statusRight.Size = UDim2.new(0.4, -2, 1, -2) statusRight.Position = UDim2.new(0.6, 0, 0, 2) statusRight.BackgroundTransparency = 1 statusRight.Font = MainFont statusRight.RichText = true statusRight.Text = '[ rivals ]' statusRight.TextColor3 = Theme.TextMuted statusRight.TextSize = 10.5 statusRight.TextXAlignment = Enum.TextXAlignment.Right statusRight.ZIndex = 13 statusRight.Parent = statusBar local tabList = {"home", "aim", "auto", "esp", "move", "guns", "skins", "world", "view", "config"} local tabPages = {} local tabButtons = {} local currentTab = "home" local function switchTab(tabName) currentTab = tabName for tName, page in pairs(tabPages) do page.Visible = (tName == tabName) end for _, btnData in ipairs(tabButtons) do local isSelf = (btnData.name == tabName) btnData.btn.TextColor3 = isSelf and Theme.AccentPinkLight or Theme.TextMuted if btnData.indicator then btnData.indicator.Visible = isSelf end end end for idx, tabName in ipairs(tabList) do local btn = Instance.new("TextButton") btn.Name = "TabBtn_" .. tabName btn.LayoutOrder = idx btn.Size = UDim2.new(0, 0, 1, 0) btn.AutomaticSize = Enum.AutomaticSize.X btn.BackgroundTransparency = 1 btn.Font = MainFont btn.Text = tabName:sub(1, 1):upper() .. tabName:sub(2) btn.TextColor3 = (tabName == currentTab) and Theme.AccentPinkLight or Theme.TextMuted btn.TextSize = 12 btn.AutoButtonColor = false btn.ZIndex = 13 btn.Parent = tabNavFrame local padBtn = Instance.new("UIPadding") padBtn.PaddingLeft = UDim.new(0, 4) padBtn.PaddingRight = UDim.new(0, 4) padBtn.Parent = btn local indicator = Instance.new("Frame") indicator.Size = UDim2.new(1, -4, 0, 1.5) indicator.Position = UDim2.new(0, 2, 1, -1) indicator.BackgroundColor3 = Theme.AccentPink indicator.BorderSizePixel = 0 indicator.Visible = (tabName == currentTab) indicator.ZIndex = 14 indicator.Parent = btn local indGrad = Instance.new("UIGradient") indGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Theme.AccentPinkLight), ColorSequenceKeypoint.new(1, Theme.AccentPinkDark) }) indGrad.Parent = indicator btn.MouseEnter:Connect(function() if tabName ~= currentTab then btn.TextColor3 = Theme.TextWhite end end) btn.MouseLeave:Connect(function() if tabName ~= currentTab then btn.TextColor3 = Theme.TextMuted end end) btn.MouseButton1Click:Connect(function() switchTab(tabName) end) table.insert(tabButtons, {name = tabName, btn = btn, indicator = indicator}) local page = Instance.new("Frame") page.Name = "Page_" .. tabName page.Size = UDim2.new(1, 0, 1, 0) page.BackgroundTransparency = 1 page.Visible = (tabName == currentTab) page.ZIndex = 13 page.Parent = tabContentFrame local leftCol = Instance.new("ScrollingFrame") leftCol.Name = "LeftCol" leftCol.Size = UDim2.new(0.49, 0, 1, 0) leftCol.Position = UDim2.new(0, 0, 0, 0) leftCol.BackgroundTransparency = 1 leftCol.BorderSizePixel = 0 leftCol.ScrollBarThickness = 0 leftCol.AutomaticCanvasSize = Enum.AutomaticSize.Y leftCol.ZIndex = 14 leftCol.Parent = page local lLayout = Instance.new("UIListLayout") lLayout.Padding = UDim.new(0, 7) lLayout.Parent = leftCol local rightCol = Instance.new("ScrollingFrame") rightCol.Name = "RightCol" rightCol.Size = UDim2.new(0.49, 0, 1, 0) rightCol.Position = UDim2.new(0.51, 0, 0, 0) rightCol.BackgroundTransparency = 1 rightCol.BorderSizePixel = 0 rightCol.ScrollBarThickness = 0 rightCol.AutomaticCanvasSize = Enum.AutomaticSize.Y rightCol.ZIndex = 14 rightCol.Parent = page local rLayout = Instance.new("UIListLayout") rLayout.Padding = UDim.new(0, 7) rLayout.Parent = rightCol tabPages[tabName] = page end local function createGroupbox(parent, title, desc, bottomNote) local card = Instance.new("Frame") card.Size = UDim2.new(1, -2, 0, 0) card.AutomaticSize = Enum.AutomaticSize.Y card.BackgroundColor3 = Theme.CardBg card.BorderSizePixel = 0 card.ZIndex = 15 card.Parent = parent local cGrad = Instance.new("UIGradient") cGrad.Rotation = 90 cGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Theme.CardBgTop), ColorSequenceKeypoint.new(1, Theme.CardBgBottom) }) cGrad.Parent = card local stroke = Instance.new("UIStroke") stroke.Color = Theme.BorderCard stroke.Thickness = 1 stroke.Parent = card local topPinkLine = Instance.new("Frame") topPinkLine.Name = "TopAccentLine" topPinkLine.Size = UDim2.new(1, 0, 0, 1.5) topPinkLine.Position = UDim2.new(0, 0, 0, 0) topPinkLine.BackgroundColor3 = Theme.AccentPink topPinkLine.BorderSizePixel = 0 topPinkLine.ZIndex = 16 topPinkLine.Parent = card local lGrad = Instance.new("UIGradient") lGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Theme.AccentPinkLight), ColorSequenceKeypoint.new(1, Theme.AccentPinkDark) }) lGrad.Parent = topPinkLine local header = Instance.new("Frame") header.Name = "Header" header.Size = UDim2.new(1, 0, 0, desc and 32 or 20) header.Position = UDim2.new(0, 0, 0, 1) header.BackgroundTransparency = 1 header.ZIndex = 16 header.Parent = card local titleLbl = Instance.new("TextLabel") titleLbl.Name = "TitleLabel" titleLbl.Size = UDim2.new(1, -12, 0, 16) titleLbl.Position = UDim2.new(0, 6, 0, 2) titleLbl.BackgroundTransparency = 1 titleLbl.Font = MainFont titleLbl.Text = title titleLbl.TextColor3 = Theme.TextWhite titleLbl.TextSize = 12.5 titleLbl.TextXAlignment = Enum.TextXAlignment.Left titleLbl.ZIndex = 17 titleLbl.Parent = header if desc then local descLbl = Instance.new("TextLabel") descLbl.Size = UDim2.new(1, -12, 0, 14) descLbl.Position = UDim2.new(0, 6, 0, 17) descLbl.BackgroundTransparency = 1 descLbl.Font = MainFont descLbl.Text = desc descLbl.TextColor3 = Theme.TextMuted descLbl.TextSize = 10.5 descLbl.TextWrapped = true descLbl.TextXAlignment = Enum.TextXAlignment.Left descLbl.ZIndex = 17 descLbl.Parent = header end local content = Instance.new("Frame") content.Name = "Content" content.Size = UDim2.new(1, -12, 0, 0) content.Position = UDim2.new(0, 6, 0, desc and 34 or 22) content.AutomaticSize = Enum.AutomaticSize.Y content.BackgroundTransparency = 1 content.ZIndex = 16 content.Parent = card local cLayout = Instance.new("UIListLayout") cLayout.Padding = UDim.new(0, 6) cLayout.Parent = content local cPad = Instance.new("UIPadding") cPad.PaddingBottom = UDim.new(0, bottomNote and 3 or 7) cPad.Parent = content if bottomNote then local noteLbl = Instance.new("TextLabel") noteLbl.Size = UDim2.new(1, 0, 0, 22) noteLbl.BackgroundTransparency = 1 noteLbl.Font = MainFont noteLbl.Text = bottomNote noteLbl.TextColor3 = Theme.TextDark noteLbl.TextSize = 10 noteLbl.TextWrapped = true noteLbl.TextXAlignment = Enum.TextXAlignment.Left noteLbl.ZIndex = 17 noteLbl.Parent = content end return content end local function addCheckbox(parent, labelText, defaultVal, callback) local state = defaultVal or false local row = Instance.new("Frame") row.Size = UDim2.new(1, 0, 0, 16) row.BackgroundTransparency = 1 row.ZIndex = 16 row.Parent = parent local box = Instance.new("TextButton") box.Size = UDim2.new(0, 13, 0, 13) box.Position = UDim2.new(0, 0, 0.5, -6.5) box.BackgroundColor3 = state and Theme.AccentPink or Theme.ControlBg box.BorderSizePixel = 0 box.Text = "" box.ZIndex = 17 box.Parent = row local bStroke = Instance.new("UIStroke") bStroke.Color = state and Theme.AccentPinkLight or Theme.BorderDark bStroke.Thickness = 1 bStroke.Parent = box local lbl = Instance.new("TextLabel") lbl.Size = UDim2.new(1, -20, 1, 0) lbl.Position = UDim2.new(0, 20, 0, 0) lbl.BackgroundTransparency = 1 lbl.Font = MainFont lbl.Text = labelText lbl.TextColor3 = Theme.TextWhite lbl.TextSize = 12 lbl.TextXAlignment = Enum.TextXAlignment.Left lbl.ZIndex = 17 lbl.Parent = row local function updateState(newVal) state = newVal box.BackgroundColor3 = state and Theme.AccentPink or Theme.ControlBg bStroke.Color = state and Theme.AccentPinkLight or Theme.BorderDark if type(callback) == "function" then callback(state) end end box.MouseButton1Click:Connect(function() updateState(not state) end) return { Set = updateState, Get = function() return state end } end local function addSlider(parent, labelText, minVal, maxVal, defaultVal, displayTemplate, callback) local curVal = defaultVal or minVal local container = Instance.new("Frame") container.Size = UDim2.new(1, 0, 0, 28) container.BackgroundTransparency = 1 container.ZIndex = 16 container.Parent = parent local lbl = Instance.new("TextLabel") lbl.Size = UDim2.new(1, 0, 0, 12) lbl.BackgroundTransparency = 1 lbl.Font = MainFont lbl.Text = labelText lbl.TextColor3 = Theme.TextMuted lbl.TextSize = 11.5 lbl.TextXAlignment = Enum.TextXAlignment.Left lbl.ZIndex = 17 lbl.Parent = container local track = Instance.new("TextButton") track.Size = UDim2.new(1, 0, 0, 14) track.Position = UDim2.new(0, 0, 0, 13) track.BackgroundColor3 = Theme.ControlBg track.BorderSizePixel = 0 track.Text = "" track.AutoButtonColor = false track.ZIndex = 17 track.Parent = container local tStroke = Instance.new("UIStroke") tStroke.Color = Theme.BorderDark tStroke.Thickness = 1 tStroke.Parent = track local fill = Instance.new("Frame") local pct = math.clamp((curVal - minVal) / (maxVal - minVal), 0, 1) fill.Size = UDim2.new(pct, 0, 1, 0) fill.BackgroundColor3 = Theme.AccentPink fill.BorderSizePixel = 0 fill.ZIndex = 18 fill.Parent = track local fGrad = Instance.new("UIGradient") fGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Theme.AccentPinkLight), ColorSequenceKeypoint.new(1, Theme.AccentPinkDark) }) fGrad.Parent = fill local decimals = 0 if displayTemplate then local d = displayTemplate:match("%%%.(%d+)f") if d then decimals = tonumber(d) elseif displayTemplate:find("%%f") then decimals = 2 end elseif (minVal % 1 ~= 0) or (maxVal % 1 ~= 0) or (curVal % 1 ~= 0) then decimals = 2 end local function roundVal(raw) if decimals > 0 then local mult = 10 ^ decimals return math.clamp(math.floor(raw * mult + 0.5) / mult, minVal, maxVal) else return math.clamp(math.floor(raw + 0.5), minVal, maxVal) end end local function getDisplay(v) if displayTemplate then return string.format(displayTemplate, v, maxVal) end return tostring(v) end local valLbl = Instance.new("TextLabel") valLbl.Size = UDim2.new(1, 0, 1, 0) valLbl.BackgroundTransparency = 1 valLbl.Font = MainFont valLbl.Text = getDisplay(curVal) valLbl.TextColor3 = Theme.TextWhite valLbl.TextStrokeColor3 = Color3.fromRGB(0, 0, 0) valLbl.TextStrokeTransparency = 0.3 valLbl.TextSize = 10.5 valLbl.ZIndex = 19 valLbl.Parent = track local isSliding = false local function updateFromInput(input) local relX = math.clamp((input.Position.X - track.AbsolutePosition.X) / track.AbsoluteSize.X, 0, 1) local raw = minVal + (maxVal - minVal) * relX curVal = roundVal(raw) local visualPct = math.clamp((curVal - minVal) / (maxVal - minVal), 0, 1) fill.Size = UDim2.new(visualPct, 0, 1, 0) valLbl.Text = getDisplay(curVal) if type(callback) == "function" then callback(curVal) end end track.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then isSliding = true updateFromInput(input) end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then isSliding = false end end) UserInputService.InputChanged:Connect(function(input) if isSliding and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then updateFromInput(input) end end) return { Set = function(v) local num = tonumber(v) or curVal curVal = roundVal(num) local p = math.clamp((curVal - minVal) / (maxVal - minVal), 0, 1) fill.Size = UDim2.new(p, 0, 1, 0) valLbl.Text = getDisplay(curVal) if type(callback) == "function" then callback(curVal) end end } end local function addDropdown(parent, labelText, options, defaultIdx, callback) local selectedIdx = defaultIdx or 1 local isOpen = false local container = Instance.new("Frame") container.Size = UDim2.new(1, 0, 0, 34) container.BackgroundTransparency = 1 container.ZIndex = 16 container.Parent = parent local lbl = Instance.new("TextLabel") lbl.Size = UDim2.new(1, 0, 0, 13) lbl.BackgroundTransparency = 1 lbl.Font = MainFont lbl.Text = labelText lbl.TextColor3 = Theme.TextMuted lbl.TextSize = 11.5 lbl.TextXAlignment = Enum.TextXAlignment.Left lbl.ZIndex = 17 lbl.Parent = container local box = Instance.new("TextButton") box.Size = UDim2.new(1, 0, 0, 20) box.Position = UDim2.new(0, 0, 0, 14) box.BackgroundColor3 = Theme.ControlBg box.BorderSizePixel = 0 box.Font = MainFont box.Text = " " .. options[selectedIdx] box.TextColor3 = Theme.TextWhite box.TextSize = 11.5 box.TextXAlignment = Enum.TextXAlignment.Left box.ZIndex = 17 box.Parent = container local bStroke = Instance.new("UIStroke") bStroke.Color = Theme.BorderDark bStroke.Thickness = 1 bStroke.Parent = box local chevron = Instance.new("TextLabel") chevron.Size = UDim2.new(0, 14, 1, 0) chevron.Position = UDim2.new(1, -16, 0, 0) chevron.BackgroundTransparency = 1 chevron.Font = Enum.Font.GothamBold chevron.Text = "▼" chevron.TextColor3 = Theme.AccentPink chevron.TextSize = 8.5 chevron.ZIndex = 18 chevron.Parent = box local listFrame = Instance.new("ScrollingFrame") listFrame.Name = "DropdownMenu_" .. labelText:gsub("%s+", "") listFrame.BackgroundColor3 = Theme.CardBg listFrame.BorderSizePixel = 0 listFrame.ScrollBarThickness = 2.5 listFrame.ScrollBarImageColor3 = Theme.AccentPink listFrame.AutomaticCanvasSize = Enum.AutomaticSize.Y listFrame.ZIndex = 1001 listFrame.Visible = false listFrame.Parent = dropdownOverlay local lStroke = Instance.new("UIStroke") lStroke.Color = Theme.BorderPinkDark lStroke.Thickness = 1 lStroke.Parent = listFrame local lGrad = Instance.new("UIGradient") lGrad.Rotation = 90 lGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Theme.CardBgTop), ColorSequenceKeypoint.new(1, Theme.CardBgBottom) }) lGrad.Parent = listFrame local optLayout = Instance.new("UIListLayout") optLayout.Padding = UDim.new(0, 1) optLayout.Parent = listFrame local function closeDropdown() isOpen = false listFrame.Visible = false chevron.Text = "▼" bStroke.Color = Theme.BorderDark if activeDropdownClose == closeDropdown then activeDropdownClose = nil end end local function refreshOptions() for _, child in ipairs(listFrame:GetChildren()) do if child:IsA("TextButton") then child:Destroy() end end for idx, optName in ipairs(options) do local optBtn = Instance.new("TextButton") optBtn.Size = UDim2.new(1, 0, 0, 20) optBtn.BackgroundColor3 = (idx == selectedIdx) and Theme.ButtonBg or Color3.fromRGB(0, 0, 0) optBtn.BackgroundTransparency = (idx == selectedIdx) and 0 or 1 optBtn.BorderSizePixel = 0 optBtn.Font = MainFont optBtn.Text = " " .. optName optBtn.TextColor3 = (idx == selectedIdx) and Theme.AccentPinkLight or Theme.TextWhite optBtn.TextSize = 11.5 optBtn.TextXAlignment = Enum.TextXAlignment.Left optBtn.ZIndex = 1002 optBtn.Parent = listFrame optBtn.MouseEnter:Connect(function() if idx ~= selectedIdx then optBtn.BackgroundTransparency = 0.5 optBtn.BackgroundColor3 = Theme.ButtonHoverBg end end) optBtn.MouseLeave:Connect(function() if idx ~= selectedIdx then optBtn.BackgroundTransparency = 1 end end) optBtn.MouseButton1Click:Connect(function() selectedIdx = idx box.Text = " " .. optName closeDropdown() if type(callback) == "function" then callback(optName, idx) end end) end end local function openDropdown() if activeDropdownClose and activeDropdownClose ~= closeDropdown then activeDropdownClose() end refreshOptions() local boxPos = box.AbsolutePosition local boxSize = box.AbsoluteSize local menuHeight = math.min(#options * 21, 140) listFrame.Position = UDim2.new(0, boxPos.X, 0, boxPos.Y + boxSize.Y + 2) listFrame.Size = UDim2.new(0, boxSize.X, 0, menuHeight) listFrame.Visible = true isOpen = true chevron.Text = "▲" bStroke.Color = Theme.BorderPink activeDropdownClose = function(clickPos) if clickPos then local menuPos = listFrame.AbsolutePosition local menuSize = listFrame.AbsoluteSize local inMenu = clickPos.X >= menuPos.X and clickPos.X <= (menuPos.X + menuSize.X) and clickPos.Y >= menuPos.Y and clickPos.Y <= (menuPos.Y + menuSize.Y) local inBox = clickPos.X >= boxPos.X and clickPos.X <= (boxPos.X + boxSize.X) and clickPos.Y >= boxPos.Y and clickPos.Y <= (boxPos.Y + boxSize.Y) if not inMenu and not inBox then closeDropdown() end else closeDropdown() end end end box.MouseButton1Click:Connect(function() if isOpen then closeDropdown() else openDropdown() end end) return { Set = function(valOrIdx) local targetIdx = 1 if type(valOrIdx) == "number" then targetIdx = math.clamp(valOrIdx, 1, #options) elseif type(valOrIdx) == "string" then for i, name in ipairs(options) do if name == valOrIdx then targetIdx = i break end end end selectedIdx = targetIdx box.Text = " " .. options[selectedIdx] if type(callback) == "function" then callback(options[selectedIdx], selectedIdx) end end, SetOptions = function(newOptions, newSelected) options = newOptions local targetIdx = 1 if type(newSelected) == "number" then targetIdx = math.clamp(newSelected, 1, #options) elseif type(newSelected) == "string" then for i, name in ipairs(options) do if name == newSelected then targetIdx = i break end end end selectedIdx = targetIdx box.Text = " " .. (options[selectedIdx] or "None") end, Get = function() return options[selectedIdx] end } end local function addTextbox(parent, labelText, defaultVal, placeholder, callback) local container = Instance.new("Frame") container.Size = UDim2.new(1, 0, 0, 33) container.BackgroundTransparency = 1 container.ZIndex = 16 container.Parent = parent local lbl = Instance.new("TextLabel") lbl.Size = UDim2.new(1, 0, 0, 12) lbl.BackgroundTransparency = 1 lbl.Font = MainFont lbl.Text = labelText lbl.TextColor3 = Theme.TextMuted lbl.TextSize = 11.5 lbl.TextXAlignment = Enum.TextXAlignment.Left lbl.ZIndex = 17 lbl.Parent = container local tb = Instance.new("TextBox") tb.Size = UDim2.new(1, 0, 0, 19) tb.Position = UDim2.new(0, 0, 0, 13) tb.BackgroundColor3 = Theme.ControlBg tb.BorderSizePixel = 0 tb.Font = MainFont tb.PlaceholderText = placeholder or "" tb.PlaceholderColor3 = Theme.TextDark tb.Text = defaultVal or "" tb.TextColor3 = Theme.TextWhite tb.TextSize = 12 tb.TextXAlignment = Enum.TextXAlignment.Left tb.ZIndex = 17 tb.Parent = container local tPad = Instance.new("UIPadding") tPad.PaddingLeft = UDim.new(0, 6) tPad.Parent = tb local tbStroke = Instance.new("UIStroke") tbStroke.Color = Theme.BorderDark tbStroke.Thickness = 1 tbStroke.Parent = tb tb.Focused:Connect(function() tbStroke.Color = Theme.BorderPink end) tb.FocusLost:Connect(function() tbStroke.Color = Theme.BorderDark if type(callback) == "function" then callback(tb.Text) end end) return { Set = function(txt) tb.Text = tostring(txt) if type(callback) == "function" then callback(tb.Text) end end, Get = function() return tb.Text end } end local function clickWeapon() if mouse1click then pcall(mouse1click) return end if mouse1press and mouse1release then pcall(function() mouse1press() task.wait(0.01) mouse1release() end) return end local vim = game:GetService("VirtualInputManager") if vim then local vp = Camera and Camera.ViewportSize or Vector2.new(1280, 720) local cx = math.floor(vp.X * 0.5) local cy = math.floor(vp.Y * 0.5) if UserInputService.TouchEnabled and not UserInputService.MouseEnabled and vim.SendTouchEvent then pcall(function() vim:SendTouchEvent(0, 0, cx, cy) task.wait(0.01) vim:SendTouchEvent(0, 2, cx, cy) end) return end if vim.SendMouseButtonEvent then pcall(function() vim:SendMouseButtonEvent(cx, cy, 0, true, Workspace, 0) task.wait(0.01) vim:SendMouseButtonEvent(cx, cy, 0, false, Workspace, 0) end) return end end end hideFromStack(clickWeapon) local uiRegistry = {} local isSyncingTeamCheck = false local function updateTeamCheck(v) if isSyncingTeamCheck then return end isSyncingTeamCheck = true Config.TeamCheck = v for _, name in ipairs({"AimbotTeamCheck", "SilentTeamCheck", "RagebotTeamCheck"}) do if uiRegistry[name] and uiRegistry[name].Set and uiRegistry[name].Get() ~= v then pcall(function() uiRegistry[name].Set(v) end) end end isSyncingTeamCheck = false end hideFromStack(updateTeamCheck) local function addButton(parent, btnText, callback) local btn = Instance.new("TextButton") btn.Size = UDim2.new(1, 0, 0, 22) btn.BackgroundColor3 = Theme.ButtonBg btn.BorderSizePixel = 0 btn.Font = MainFont btn.Text = btnText btn.TextColor3 = Theme.TextWhite btn.TextSize = 12 btn.AutoButtonColor = false btn.ZIndex = 17 btn.Parent = parent local bStroke = Instance.new("UIStroke") bStroke.Color = Theme.ButtonBorder bStroke.Thickness = 1 bStroke.Parent = btn btn.MouseEnter:Connect(function() btn.BackgroundColor3 = Theme.ButtonHoverBg bStroke.Color = Theme.BorderPinkDark end) btn.MouseLeave:Connect(function() btn.BackgroundColor3 = Theme.ButtonBg bStroke.Color = Theme.ButtonBorder end) btn.MouseButton1Click:Connect(function() if type(callback) == "function" then callback() end end) return btn end local function getEnemyPlayers() local now = tick() if (now - TargetVis.lastEnemyUpdateTime < 0.15) and (#TargetVis.cachedEnemies > 0) then return TargetVis.cachedEnemies end table.clear(TargetVis.cachedEnemies) local inLobby = isInLobby() for _, p in ipairs(Players:GetPlayers()) do if p ~= LocalPlayer and p.Character then if inLobby then if Config.ESP_Lobby or Config.TargetVisualizer then table.insert(TargetVis.cachedEnemies, p) end else if isEnemyPlayer(p) then table.insert(TargetVis.cachedEnemies, p) end end end end TargetVis.lastEnemyUpdateTime = now return TargetVis.cachedEnemies end local function getClosestTarget(maxFOV, checkVisible, partMode, targetPriority) local now = tick() local cacheKey = tostring(maxFOV) .. "_" .. tostring(checkVisible) .. "_" .. tostring(partMode) .. "_" .. tostring(targetPriority) local cached = TargetVis.targetCache[cacheKey] if cached and (now - cached.time < 0.06) and cached.target and cached.target.Parent then return cached.target end if not TargetVis.staticRayParams then local p = RaycastParams.new() p.FilterType = Enum.RaycastFilterType.Exclude p.IgnoreWater = true TargetVis.staticRayParams = p end local closest, closestScore = nil, math.huge local mousePos = UserInputService:GetMouseLocation() local myChar = LocalPlayer.Character local myRoot = myChar and myChar:FindFirstChild("HumanoidRootPart") local camPos = Camera.CFrame.Position local camLook = Camera.CFrame.LookVector local is360 = (maxFOV == nil) or (maxFOV >= 999) TargetVis.staticRayParams.FilterDescendantsInstances = {myChar, Camera} for _, p in ipairs(getEnemyPlayers()) do local char = p.Character local hum = char and char:FindFirstChildOfClass("Humanoid") local rootPart = char and char:FindFirstChild("HumanoidRootPart") if char and hum and hum.Health > 0 and rootPart then local toRoot = rootPart.Position - camPos if is360 or toRoot:Dot(camLook) > -5 then local isDeflecting = char:GetAttribute("Deflecting") or char:FindFirstChild("Deflect") or char:FindFirstChild("KatanaDeflect") local isShielded = char:GetAttribute("Shielded") or char:FindFirstChild("Shield") or char:FindFirstChild("EnergyShield") local isProtected = char:GetAttribute("SpawnImmunity") or char:FindFirstChildOfClass("ForceField") local skip = false if isTeammate(p) or isTeammate(char) then skip = true end if Config.SilentIgnoreDeflecting and isDeflecting then skip = true end if Config.SilentIgnoreShielded and isShielded then skip = true end if Config.SilentVulnerableOnly and isProtected then skip = true end if not skip then local headCandidate = char:FindFirstChild("Head") or char:FindFirstChild("HitboxHead") local bodyCandidate = char:FindFirstChild("UpperTorso") or rootPart local hitPart = nil if partMode == "Head" then hitPart = headCandidate or bodyCandidate elseif partMode == "Body" then hitPart = bodyCandidate or headCandidate elseif partMode == "Closest" then if headCandidate and bodyCandidate then local hScr, hOn = Camera:WorldToViewportPoint(headCandidate.Position) local bScr, bOn = Camera:WorldToViewportPoint(bodyCandidate.Position) if hOn and bOn then local hDist = (Vector2.new(hScr.X, hScr.Y) - mousePos).Magnitude local bDist = (Vector2.new(bScr.X, bScr.Y) - mousePos).Magnitude hitPart = (hDist <= bDist) and headCandidate or bodyCandidate elseif hOn then hitPart = headCandidate elseif bOn then hitPart = bodyCandidate else hitPart = headCandidate end else hitPart = headCandidate or bodyCandidate end else hitPart = headCandidate or bodyCandidate end if hitPart then local inRange = false local score = math.huge if is360 then local worldDist = myRoot and (hitPart.Position - myRoot.Position).Magnitude or (hitPart.Position - camPos).Magnitude if worldDist <= (maxFOV or math.huge) then inRange = true if targetPriority == "Health" then score = hum.Health else score = worldDist end end else local scrPos, onScreen = Camera:WorldToViewportPoint(hitPart.Position) if onScreen and scrPos.Z > 0 then local fovDist = (Vector2.new(scrPos.X, scrPos.Y) - mousePos).Magnitude if fovDist <= (maxFOV or math.huge) then inRange = true if targetPriority == "Health" then score = hum.Health elseif targetPriority == "Distance" and myRoot then score = (hitPart.Position - myRoot.Position).Magnitude else score = fovDist end end end end if inRange and score < closestScore then if checkVisible then local dir = hitPart.Position - camPos local res = Workspace:Raycast(camPos, dir, TargetVis.staticRayParams) if not res or res.Instance:IsDescendantOf(char) then closest = hitPart closestScore = score end else closest = hitPart closestScore = score end end end end end end end TargetVis.targetCache[cacheKey] = { target = closest, time = now } return closest end local pageHome = tabPages["home"] local homeLeft = pageHome:FindFirstChild("LeftCol") local homeRight = pageHome:FindFirstChild("RightCol") local gbAccount = createGroupbox(homeLeft, "Account") local aUser = Instance.new("TextLabel") aUser.Size = UDim2.new(1, 0, 0, 16) aUser.BackgroundTransparency = 1 aUser.Font = MainFont aUser.Text = LocalPlayer.Name aUser.TextColor3 = Theme.TextWhite aUser.TextSize = 12.5 aUser.TextXAlignment = Enum.TextXAlignment.Left aUser.ZIndex = 17 aUser.Parent = gbAccount local aDisplay = Instance.new("TextLabel") aDisplay.Size = UDim2.new(1, 0, 0, 16) aDisplay.BackgroundTransparency = 1 aDisplay.Font = MainFont aDisplay.Text = "(@" .. LocalPlayer.DisplayName .. ")" aDisplay.TextColor3 = Theme.TextMuted aDisplay.TextSize = 12 aDisplay.TextXAlignment = Enum.TextXAlignment.Left aDisplay.ZIndex = 17 aDisplay.Parent = gbAccount local gbBuild = createGroupbox(homeLeft, "Build") local bLbl = Instance.new("TextLabel") bLbl.Size = UDim2.new(1, 0, 0, 16) bLbl.BackgroundTransparency = 1 bLbl.Font = MainFont bLbl.Text = "ReefHub P1003 build" bLbl.TextColor3 = Theme.TextWhite bLbl.TextSize = 12.5 bLbl.TextXAlignment = Enum.TextXAlignment.Left bLbl.ZIndex = 17 bLbl.Parent = gbBuild local gbSessionInfo = createGroupbox(homeRight, "Current Session") local sPlayer = Instance.new("TextLabel") sPlayer.Size = UDim2.new(1, 0, 0, 16) sPlayer.BackgroundTransparency = 1 sPlayer.Font = MainFont sPlayer.Text = "Player: " .. LocalPlayer.Name sPlayer.TextColor3 = Theme.TextWhite sPlayer.TextSize = 12.5 sPlayer.TextXAlignment = Enum.TextXAlignment.Left sPlayer.ZIndex = 17 sPlayer.Parent = gbSessionInfo sPing = Instance.new("TextLabel") sPing.Size = UDim2.new(1, 0, 0, 16) sPing.BackgroundTransparency = 1 sPing.Font = MainFont sPing.Text = "0 ms - " .. #Players:GetPlayers() .. " players" sPing.TextColor3 = Theme.TextWhite sPing.TextSize = 12.5 sPing.TextXAlignment = Enum.TextXAlignment.Left sPing.ZIndex = 17 sPing.Parent = gbSessionInfo local gbSessionActions = createGroupbox(homeRight, "Session") addButton(gbSessionActions, "Rejoin server", function() ShowNotification("ReefHub", "Reconnecting to experience...", "INFO", 3) task.spawn(function() task.wait(0.5) pcall(function() TeleportService:Teleport(17625359962, LocalPlayer) end) end) end) addButton(gbSessionActions, "Join lowest-ping server", function() ShowNotification("ReefHub", "Searching for lowest-ping public server...", "INFO", 3) task.spawn(function() local placeId = 17625359962 local HttpService = game:GetService("HttpService") local url = string.format("https://games.roblox.com/v1/games/%d/servers/0?sortOrder=2&excludeFullGames=true&limit=25", placeId) local success, res = pcall(function() return game:HttpGet(url) end) local targetServer = nil if success and res then local sDec, data = pcall(function() return HttpService:JSONDecode(res) end) if sDec and data and data.data then for _, s in ipairs(data.data) do if s.id ~= game.JobId and s.playing and s.maxPlayers and (s.playing < s.maxPlayers) then if not targetServer or (s.ping and targetServer.ping and s.ping < targetServer.ping) or (s.ping and not targetServer.ping) then targetServer = s end end end end end if targetServer then ShowNotification("ReefHub", string.format("Joining server (%d ms ping)...", targetServer.ping or 0), "SUCCESS", 3) task.wait(0.5) pcall(function() TeleportService:TeleportToPlaceInstance(placeId, targetServer.id, LocalPlayer) end) else ShowNotification("ReefHub", "Connecting to optimal regional server...", "INFO", 3) task.wait(0.5) pcall(function() TeleportService:Teleport(placeId, LocalPlayer) end) end end) end) local pageAuto = tabPages["auto"] local autoLeft = pageAuto:FindFirstChild("LeftCol") local autoRight = pageAuto:FindFirstChild("RightCol") local gbRagebot = createGroupbox(autoLeft, "Ragebot", "Automatically targets and shoots\nenemies.") uiRegistry["Ragebot"] = addCheckbox(gbRagebot, "Enable ragebot", Config.Ragebot, function(v) Config.Ragebot = v end) uiRegistry["RagebotTeamCheck"] = addCheckbox(gbRagebot, "Team check", Config.TeamCheck, function(v) updateTeamCheck(v) end) uiRegistry["RagebotAutoShoot"] = addCheckbox(gbRagebot, "Auto shoot", Config.RagebotAutoShoot, function(v) Config.RagebotAutoShoot = v end) uiRegistry["RagebotTargetStrafe"] = addCheckbox(gbRagebot, "Target strafe", Config.RagebotTargetStrafe, function(v) Config.RagebotTargetStrafe = v end) uiRegistry["TargetStrafeRadius"] = addSlider(gbRagebot, "Strafe radius", 6, 30, Config.TargetStrafeRadius, "%d studs", function(v) Config.TargetStrafeRadius = v end) uiRegistry["TargetStrafeSpeed"] = addSlider(gbRagebot, "Strafe speed", 2, 15, Config.TargetStrafeSpeed, "%d spd", function(v) Config.TargetStrafeSpeed = v end) uiRegistry["Autoplay"] = addCheckbox(gbRagebot, "Autoplay", Config.Autoplay, function(v) Config.Autoplay = v end) uiRegistry["AutoplayDistance"] = addSlider(gbRagebot, "Autoplay stop distance", 8, 40, Config.AutoplayDistance, "%d studs", function(v) Config.AutoplayDistance = v end) local gbMatch = createGroupbox(autoLeft, "Match Automation") uiRegistry["AutoRespawn"] = addCheckbox(gbMatch, "Auto respawn", Config.AutoRespawn, function(v) Config.AutoRespawn = v end) uiRegistry["AutoQueue"] = addCheckbox(gbMatch, "Auto queue", Config.AutoQueue, function(v) Config.AutoQueue = v end) uiRegistry["QueueMode"] = addDropdown(gbMatch, "Queue", {"1v1", "2v2", "3v3", "4v4", "5v5"}, 1, function(v) Config.QueueMode = v end) local gbVote = createGroupbox(autoLeft, "Automatic Voting") uiRegistry["AutoVoteMaps"] = addCheckbox(gbVote, "Auto vote maps", Config.AutoVoteMaps, function(v) Config.AutoVoteMaps = v end) uiRegistry["MapPriority"] = addDropdown(gbVote, "Map priority", {"Arena, Onyx, Crossroads", "Onyx, Arena, Crossroads", "Crossroads, Arena, Onyx"}, 1, function(v) Config.MapPriority = v end) uiRegistry["AutoBanWeapons"] = addCheckbox(gbVote, "Auto ban weapons", Config.AutoBanWeapons, function(v) Config.AutoBanWeapons = v end) uiRegistry["WeaponBanPriority"] = addDropdown(gbVote, "Weapon ban priority", {"Grenade Launcher, Minigun, RPG", "RPG, Grenade Launcher, Sniper", "Minigun, RPG, Shotgun"}, 1, function(v) Config.WeaponBanPriority = v end) uiRegistry["SecondBanPriority"] = addDropdown(gbVote, "Second ban priority", {"Grenade Launcher, Minigun, RPG", "Sniper, Katana, Bow"}, 1, function(v) Config.SecondBanPriority = v end) local gbLoadout = createGroupbox(autoLeft, "Automatic Loadout") uiRegistry["AutoLoadout"] = addCheckbox(gbLoadout, "Auto loadout", Config.AutoLoadout, function(v) Config.AutoLoadout = v end) uiRegistry["LoadoutOnlySelected"] = addCheckbox(gbLoadout, "Only on selected maps", Config.LoadoutOnlySelected, function(v) Config.LoadoutOnlySelected = v end) uiRegistry["EnabledMaps"] = addDropdown(gbLoadout, "Enabled maps", {"Arena, Crossroads", "Onyx, Crossroads", "All Maps"}, 1, function(v) Config.EnabledMaps = v end) local gbAntiAim = createGroupbox(autoRight, "Anti-Aim", "Changes the replicated pose only;\nyour camera and aim stay normal.") uiRegistry["AntiAim"] = addCheckbox(gbAntiAim, "Enable anti-aim", Config.AntiAim, function(v) Config.AntiAim = v end) uiRegistry["AntiAimMode"] = addDropdown(gbAntiAim, "Mode", {"Spin", "Jitter", "Backwards"}, 1, function(v) Config.AntiAimMode = v end) uiRegistry["AntiAimSpeed"] = addSlider(gbAntiAim, "Spin speed", 10, 100, Config.AntiAimSpeed, "%d spd", function(v) Config.AntiAimSpeed = v end) local gbDetectors = createGroupbox(autoRight, "Detectors", nil, "Ragebot's hacker priority consumes this detector and\ngame-provided Hacker attributes.") uiRegistry["HackerDetector"] = addCheckbox(gbDetectors, "Hacker detector", Config.HackerDetector, function(v) Config.HackerDetector = v end) uiRegistry["NotifyHackers"] = addCheckbox(gbDetectors, "Notify detected hackers", Config.NotifyHackers, function(v) Config.NotifyHackers = v end) uiRegistry["HackerAutoLoad"] = addCheckbox(gbDetectors, "Auto load config on detect", Config.HackerAutoLoad, function(v) Config.HackerAutoLoad = v end) uiRegistry["HackerProfile"] = addTextbox(gbDetectors, "Profile to auto load", Config.HackerProfile, "profile name (e.g. rage)", function(v) Config.HackerProfile = v end) uiRegistry["SpeedThreshold"] = addSlider(gbDetectors, "Speed threshold", 50, 400, Config.SpeedThreshold, "%d studs/s/%d studs/s", function(v) Config.SpeedThreshold = v end) uiRegistry["SpeedDuration"] = addSlider(gbDetectors, "Required duration", 0.1, 3, Config.SpeedDuration, "%.2f s/%.0f s", function(v) Config.SpeedDuration = v end) uiRegistry["ModDetector"] = addCheckbox(gbDetectors, "Moderator detector", Config.ModDetector, function(v) Config.ModDetector = v end) uiRegistry["NotifyMods"] = addCheckbox(gbDetectors, "Notify moderators", Config.NotifyMods, function(v) Config.NotifyMods = v end) uiRegistry["MinGroupRank"] = addSlider(gbDetectors, "Minimum group rank", 1, 255, Config.MinGroupRank, "%d/%d", function(v) Config.MinGroupRank = v end) uiRegistry["ModUsernames"] = addTextbox(gbDetectors, "Moderator usernames", Config.ModUsernames, "name1, name2", function(v) Config.ModUsernames = v end) uiRegistry["ModFriendList"] = addTextbox(gbDetectors, "Moderator friend list", Config.ModFriendList, "name1, name2", function(v) Config.ModFriendList = v end) local gbPickups = createGroupbox(autoRight, "Pickups & Tripmines") uiRegistry["AutoPickup"] = addCheckbox(gbPickups, "Auto pickup nearby drops", Config.AutoPickup, function(v) Config.AutoPickup = v end) uiRegistry["PickupRadius"] = addSlider(gbPickups, "Pickup radius", 10, 60, Config.PickupRadius, "%d studs/%d studs", function(v) Config.PickupRadius = v end) local pageAim = tabPages["aim"] local aimLeft = pageAim:FindFirstChild("LeftCol") local aimRight = pageAim:FindFirstChild("RightCol") local gbAimbot = createGroupbox(aimLeft, "Aimbot") uiRegistry["Aimbot"] = addCheckbox(gbAimbot, "Enable aimbot", Config.Aimbot, function(v) Config.Aimbot = v end) uiRegistry["AimbotTeamCheck"] = addCheckbox(gbAimbot, "Team check", Config.TeamCheck, function(v) updateTeamCheck(v) end) uiRegistry["ContinuousTargeting"] = addCheckbox(gbAimbot, "Continuous targeting", Config.ContinuousTargeting, function(v) Config.ContinuousTargeting = v end) uiRegistry["AimbotKeyMode"] = addDropdown(gbAimbot, "Key mode", {"Hold", "Toggle", "Always"}, 1, function(v) Config.AimbotKeyMode = v end) uiRegistry["AimbotScopeOnly"] = addCheckbox(gbAimbot, "Scope only", Config.AimbotScopeOnly, function(v) Config.AimbotScopeOnly = v end) uiRegistry["AimbotDisableReloading"] = addCheckbox(gbAimbot, "Disable while reloading", Config.AimbotDisableReloading, function(v) Config.AimbotDisableReloading = v end) uiRegistry["AimbotSmoothing"] = addSlider(gbAimbot, "Smoothing speed", 0.05, 1, Config.AimbotSmoothing, "%.2f", function(v) Config.AimbotSmoothing = v end) uiRegistry["InstantCameraLock"] = addCheckbox(gbAimbot, "Instant camera lock", Config.InstantCameraLock, function(v) Config.InstantCameraLock = v end) uiRegistry["TrackThroughWalls"] = addCheckbox(gbAimbot, "Track lock through walls", Config.TrackThroughWalls, function(v) Config.TrackThroughWalls = v end) uiRegistry["AimbotPart"] = addDropdown(gbAimbot, "Persistent lock part", {"Head", "Body", "Closest"}, 1, function(v) Config.AimbotPart = v end) uiRegistry["CorrectLockedShots"] = addCheckbox(gbAimbot, "Correct locked shots", Config.CorrectLockedShots, function(v) Config.CorrectLockedShots = v end) local gbSilent = createGroupbox(aimRight, "Silent Aim", "Redirects valid gun shots inside the FOV without moving your camera.") uiRegistry["SilentAim"] = addCheckbox(gbSilent, "Enable silent aim", Config.SilentAim, function(v) Config.SilentAim = v end) uiRegistry["SilentTeamCheck"] = addCheckbox(gbSilent, "Team check", Config.TeamCheck, function(v) updateTeamCheck(v) end) uiRegistry["SilentKeyMode"] = addDropdown(gbSilent, "Key mode", {"Always", "Hold", "Toggle"}, 1, function(v) Config.SilentKeyMode = v end) uiRegistry["SilentVisibleOnly"] = addCheckbox(gbSilent, "Visible targets only", Config.SilentVisibleOnly, function(v) Config.SilentVisibleOnly = v end) uiRegistry["SilentVulnerableOnly"] = addCheckbox(gbSilent, "Vulnerable targets only", Config.SilentVulnerableOnly, function(v) Config.SilentVulnerableOnly = v end) uiRegistry["SilentIgnoreDeflecting"] = addCheckbox(gbSilent, "Ignore deflecting", Config.SilentIgnoreDeflecting, function(v) Config.SilentIgnoreDeflecting = v end) uiRegistry["SilentIgnoreShielded"] = addCheckbox(gbSilent, "Ignore shielded", Config.SilentIgnoreShielded, function(v) Config.SilentIgnoreShielded = v end) uiRegistry["SilentTargetPart"] = addDropdown(gbSilent, "Target part", {"Head", "Body", "Closest"}, 1, function(v) Config.SilentTargetPart = v end) uiRegistry["SilentHeadChance"] = addSlider(gbSilent, "Random head percentage", 0, 100, Config.SilentHeadChance, "%d%%", function(v) Config.SilentHeadChance = v end) uiRegistry["SilentHitChance"] = addSlider(gbSilent, "Hit chance", 0, 100, Config.SilentHitChance, "%d%%", function(v) Config.SilentHitChance = v end) uiRegistry["SilentFOV"] = addSlider(gbSilent, "FOV Radius", 30, 400, Config.SilentFOV, "%d px", function(v) Config.SilentFOV = v end) local pageEsp = tabPages["esp"] local espLeft = pageEsp:FindFirstChild("LeftCol") local espRight = pageEsp:FindFirstChild("RightCol") local gbEspMain = createGroupbox(espLeft, "Player ESP") uiRegistry["ESP_Master"] = addCheckbox(gbEspMain, "Enable ESP", Config.ESP_Master, function(v) Config.ESP_Master = v end) uiRegistry["ESP_EnemyOnly"] = addCheckbox(gbEspMain, "Enemy only", Config.ESP_EnemyOnly, function(v) Config.ESP_EnemyOnly = v end) uiRegistry["ESP_Lobby"] = addCheckbox(gbEspMain, "Show in lobby", Config.ESP_Lobby, function(v) Config.ESP_Lobby = v end) uiRegistry["ESP_MaxDistance"] = addSlider(gbEspMain, "Max distance", 100, 1000, Config.ESP_MaxDistance, "%d studs", function(v) Config.ESP_MaxDistance = v end) uiRegistry["ESP_Boxes"] = addCheckbox(gbEspMain, "Box ESP", Config.ESP_Boxes, function(v) Config.ESP_Boxes = v end) uiRegistry["ESP_Names"] = addCheckbox(gbEspMain, "Name ESP", Config.ESP_Names, function(v) Config.ESP_Names = v end) uiRegistry["ESP_HealthBar"] = addCheckbox(gbEspMain, "Health bar", Config.ESP_HealthBar, function(v) Config.ESP_HealthBar = v end) uiRegistry["ESP_Distance"] = addCheckbox(gbEspMain, "Distance ESP", Config.ESP_Distance, function(v) Config.ESP_Distance = v end) uiRegistry["ESP_Weapon"] = addCheckbox(gbEspMain, "Weapon ESP", Config.ESP_Weapon, function(v) Config.ESP_Weapon = v end) local gbEspExtra = createGroupbox(espRight, "Render & Chams") uiRegistry["ESP_Chams"] = addCheckbox(gbEspExtra, "Chams / Highlight", Config.ESP_Chams, function(v) Config.ESP_Chams = v end) uiRegistry["ESP_HeadDot"] = addCheckbox(gbEspExtra, "Head dot", Config.ESP_HeadDot, function(v) Config.ESP_HeadDot = v end) uiRegistry["ESP_Tracers"] = addCheckbox(gbEspExtra, "Tracers", Config.ESP_Tracers, function(v) Config.ESP_Tracers = v end) uiRegistry["ESP_Skeleton"] = addCheckbox(gbEspExtra, "Skeleton ESP", Config.ESP_Skeleton, function(v) Config.ESP_Skeleton = v end) uiRegistry["ESP_Tripmines"] = addCheckbox(gbEspExtra, "Tripmines ESP", Config.ESP_Tripmines, function(v) Config.ESP_Tripmines = v end) uiRegistry["ESP_FOV"] = addCheckbox(gbEspExtra, "Draw FOV Circle", Config.ESP_FOV, function(v) Config.ESP_FOV = v end) local gbTargetVis = createGroupbox(espRight, "Target Visualizer", "Renders an animated ground path and\nlive HUD card for active target.") uiRegistry["TargetVisualizer"] = addCheckbox(gbTargetVis, "Enable target visualizer", Config.TargetVisualizer, function(v) Config.TargetVisualizer = v end) uiRegistry["TargetVisualizerHUD"] = addCheckbox(gbTargetVis, "Target HUD card", Config.TargetVisualizerHUD, function(v) Config.TargetVisualizerHUD = v end) uiRegistry["TargetVisualizerPath"] = addCheckbox(gbTargetVis, "Ground path & arrows", Config.TargetVisualizerPath, function(v) Config.TargetVisualizerPath = v end) uiRegistry["VisualizerArrowSpacing"] = addSlider(gbTargetVis, "Arrow spacing", 5, 25, Config.VisualizerArrowSpacing, "%d studs", function(v) Config.VisualizerArrowSpacing = v end) uiRegistry["VisualizerArrowSpeed"] = addSlider(gbTargetVis, "Arrow speed", 5, 30, Config.VisualizerArrowSpeed, "%d spd", function(v) Config.VisualizerArrowSpeed = v end) local pageMove = tabPages["move"] local moveLeft = pageMove:FindFirstChild("LeftCol") local moveRight = pageMove:FindFirstChild("RightCol") local gbMovement = createGroupbox(moveLeft, "Ground Movement") uiRegistry["SpeedHack"] = addCheckbox(gbMovement, "Speed hack", Config.SpeedHack, function(v) Config.SpeedHack = v end) uiRegistry["SpeedValue"] = addSlider(gbMovement, "WalkSpeed", 16, 120, Config.SpeedValue, "%d ws", function(v) Config.SpeedValue = v end) uiRegistry["InfiniteJump"] = addCheckbox(gbMovement, "Infinite jump", Config.InfiniteJump, function(v) Config.InfiniteJump = v end) uiRegistry["BunnyHop"] = addCheckbox(gbMovement, "Bunny hop", Config.BunnyHop, function(v) Config.BunnyHop = v end) local gbAirMovement = createGroupbox(moveRight, "Flight & Collision") uiRegistry["FlyHack"] = addCheckbox(gbAirMovement, "Fly hack", Config.FlyHack, function(v) Config.FlyHack = v end) uiRegistry["FlySpeed"] = addSlider(gbAirMovement, "Fly speed", 20, 150, Config.FlySpeed, "%d spd", function(v) Config.FlySpeed = v end) uiRegistry["Noclip"] = addCheckbox(gbAirMovement, "Noclip", Config.Noclip, function(v) Config.Noclip = v end) local pageGuns = tabPages["guns"] local gunsLeft = pageGuns:FindFirstChild("LeftCol") local gunsRight = pageGuns:FindFirstChild("RightCol") local gbGunMods = createGroupbox(gunsLeft, "Weapon Mechanics") uiRegistry["NoRecoil"] = addCheckbox(gbGunMods, "No recoil", Config.NoRecoil, function(v) Config.NoRecoil = v ApplyWeaponModifications() end) uiRegistry["NoSpread"] = addCheckbox(gbGunMods, "No spread", Config.NoSpread, function(v) Config.NoSpread = v ApplyWeaponModifications() end) uiRegistry["FastReload"] = addCheckbox(gbGunMods, "Fast reload", Config.FastReload, function(v) Config.FastReload = v ApplyWeaponModifications() end) uiRegistry["RapidFire"] = addCheckbox(gbGunMods, "Rapid fire", Config.RapidFire, function(v) Config.RapidFire = v ApplyWeaponModifications() end) uiRegistry["InstantEquip"] = addCheckbox(gbGunMods, "Instant weapon equip", Config.InstantEquip, function(v) Config.InstantEquip = v ApplyWeaponModifications() end) local gbGunExtras = createGroupbox(gunsRight, "Weapon Features") uiRegistry["AutomaticGuns"] = addCheckbox(gbGunExtras, "Automatic mode", Config.AutomaticGuns, function(v) Config.AutomaticGuns = v end) uiRegistry["InfiniteAmmo"] = addCheckbox(gbGunExtras, "Infinite ammo", Config.InfiniteAmmo, function(v) Config.InfiniteAmmo = v ApplyWeaponModifications() end) local noteGunLbl = Instance.new("TextLabel") noteGunLbl.Size = UDim2.new(1, 0, 0, 32) noteGunLbl.BackgroundTransparency = 1 noteGunLbl.Font = MainFont noteGunLbl.Text = "Note: Fast reload, automatic mode, & infinite ammo are client-sided and may be clamped by server authority in ranked matches." noteGunLbl.TextColor3 = Theme.TextMuted noteGunLbl.TextSize = 10 noteGunLbl.TextWrapped = true noteGunLbl.TextXAlignment = Enum.TextXAlignment.Left noteGunLbl.ZIndex = 17 noteGunLbl.Parent = gbGunExtras local pageSkins = tabPages["skins"] local skinsLeft = pageSkins:FindFirstChild("LeftCol") local skinsRight = pageSkins:FindFirstChild("RightCol") local gbSkins = createGroupbox(skinsLeft, "Weapon Customizer") uiRegistry["UnlockAllSkins"] = addCheckbox(gbSkins, "Unlock all skins (Client)", Config.UnlockAllSkins, function(v) Config.UnlockAllSkins = v if v then UnlockAllCosmeticsClientSide() ShowNotification("ReefHub", "All 1,249 skins & cosmetics unlocked client-side.", "SUCCESS", 3) end end) uiRegistry["SelectedCategory"] = addDropdown(gbSkins, "Category", {"Primary", "Secondary", "Melee", "Utility"}, 1, function(v) Config.SelectedCategory = v end) uiRegistry["SelectedWeapon"] = addDropdown(gbSkins, "Weapon", { "Assault Rifle", "Sniper", "Shotgun", "Katana", "Revolver", "RPG", "Submachine Gun", "Hand Gun", "Minigun", "Grenade Launcher", "Energy Rifle", "Bow" }, 1, function(v) Config.SelectedWeapon = v end) uiRegistry["SelectedWrap"] = addDropdown(gbSkins, "Equipped Wrap", { "Liquid Gold", "Mainframe", "Obsidian", "Scribble", "Vexed", "Igneous", "Candy Apple", "Red Rubber", "Tidal", "Purple", "Popsicle", "Lighthouse", "Celtic", "Empress", "PixelBlight", "Sunset", "Money", "Portal", "Venom", "Default" }, 1, function(v) Config.SelectedWrap = v end) uiRegistry["SelectedCharm"] = addDropdown(gbSkins, "Equipped Charm", { "Dice", "Kashy", "Jolly Hat", "Devious Pumpkin", "Chibi Grenade", "Lucky Horseshoe", "Bat Daggers", "Pirate Hook", "Mini Present", "None" }, 1, function(v) Config.SelectedCharm = v end) uiRegistry["SelectedFinisher"] = addDropdown(gbSkins, "Equipped Finisher", { "Flop", "Rising Star", "Gingerbreadify", "Warp Sickness", "Freeze", "Batsplosion", "Northern Light Show", "Supernova", "Orbital Strike", "Disintegrate", "None" }, 1, function(v) Config.SelectedFinisher = v end) addButton(gbSkins, "Apply Skin to Weapon", function() UnlockAllCosmeticsClientSide() ApplySelectedCosmeticsClientSide(Config.SelectedWeapon, Config.SelectedWrap, Config.SelectedCharm, Config.SelectedFinisher) ShowNotification("ReefHub", "Equipped " .. tostring(Config.SelectedWrap) .. " on " .. tostring(Config.SelectedWeapon), "SUCCESS", 2.5) end) addButton(gbSkins, "Apply Skin to ALL Weapons", function() UnlockAllCosmeticsClientSide() ApplySelectedCosmeticsClientSide("All", Config.SelectedWrap, Config.SelectedCharm, Config.SelectedFinisher) ShowNotification("ReefHub", "Equipped " .. tostring(Config.SelectedWrap) .. " on ALL weapons!", "SUCCESS", 2.5) end) local gbViewModel = createGroupbox(skinsRight, "Viewmodel & Render") uiRegistry["RainbowGunSkin"] = addCheckbox(gbViewModel, "Rainbow gun skin", Config.RainbowGunSkin, function(v) Config.RainbowGunSkin = v end) uiRegistry["WeaponChams"] = addCheckbox(gbViewModel, "Weapon chams & glow", Config.WeaponChams, function(v) Config.WeaponChams = v end) uiRegistry["CustomViewModelFOV"] = addCheckbox(gbViewModel, "Custom Viewmodel FOV", Config.CustomViewModelFOV, function(v) Config.CustomViewModelFOV = v end) uiRegistry["ViewModelFOVValue"] = addSlider(gbViewModel, "Viewmodel FOV", 50, 110, Config.ViewModelFOVValue, "%d°", function(v) Config.ViewModelFOVValue = v end) uiRegistry["ViewModelXOffset"] = addSlider(gbViewModel, "Viewmodel X offset", -30, 30, Config.ViewModelXOffset, "%d/30", function(v) Config.ViewModelXOffset = v end) uiRegistry["ViewModelYOffset"] = addSlider(gbViewModel, "Viewmodel Y offset", -30, 30, Config.ViewModelYOffset, "%d/30", function(v) Config.ViewModelYOffset = v end) uiRegistry["ViewModelZOffset"] = addSlider(gbViewModel, "Viewmodel Z offset", -30, 30, Config.ViewModelZOffset, "%d/30", function(v) Config.ViewModelZOffset = v end) uiRegistry["HideViewModel"] = addCheckbox(gbViewModel, "Hide viewmodel", Config.HideViewModel, function(v) Config.HideViewModel = v end) local pageWorld = tabPages["world"] local worldLeft = pageWorld:FindFirstChild("LeftCol") local worldRight = pageWorld:FindFirstChild("RightCol") local gbWorldMods = createGroupbox(worldLeft, "World & Visuals") uiRegistry["Fullbright"] = addCheckbox(gbWorldMods, "Fullbright", Config.Fullbright, function(v) Config.Fullbright = v if v then Lighting.Brightness = 2 Lighting.ClockTime = 14 Lighting.GlobalShadows = false Lighting.OutdoorAmbient = Color3.fromRGB(150, 150, 150) else Lighting.Brightness = 1 Lighting.GlobalShadows = true end end) uiRegistry["NoFog"] = addCheckbox(gbWorldMods, "No fog", Config.NoFog, function(v) Config.NoFog = v if v then Lighting.FogEnd = 1000000 else Lighting.FogEnd = 1000 end end) uiRegistry["CustomFOV"] = addCheckbox(gbWorldMods, "Custom FOV", Config.CustomFOV, function(v) Config.CustomFOV = v if v then Camera.FieldOfView = Config.FOVValue end end) uiRegistry["FOVValue"] = addSlider(gbWorldMods, "FOV Angle", 70, 120, Config.FOVValue, "%d°", function(v) Config.FOVValue = v if Config.CustomFOV then Camera.FieldOfView = v end end) local gbWorldAudio = createGroupbox(worldRight, "Effects & Sounds") uiRegistry["BulletTracers"] = addCheckbox(gbWorldAudio, "Bullet tracers", Config.BulletTracers, function(v) Config.BulletTracers = v end) uiRegistry["HitSound"] = addDropdown(gbWorldAudio, "Hit sound", {"Skeet", "Rust", "Ding"}, 1, function(v) Config.HitSound = v end) local pageView = tabPages["view"] local viewLeft = pageView:FindFirstChild("LeftCol") local viewRight = pageView:FindFirstChild("RightCol") local gbView = createGroupbox(viewLeft, "Third-Person") uiRegistry["ThirdPerson"] = addCheckbox(gbView, "Third-person mode", Config.ThirdPerson, function(v) Config.ThirdPerson = v end) uiRegistry["ThirdPersonDist"] = addSlider(gbView, "Third-person distance", 5, 30, Config.ThirdPersonDist, "%d studs", function(v) Config.ThirdPersonDist = v end) local gbFreecam = createGroupbox(viewRight, "Freecam") uiRegistry["Freecam"] = addCheckbox(gbFreecam, "Freecam mode", Config.Freecam, function(v) Config.Freecam = v end) uiRegistry["FreecamSpeed"] = addSlider(gbFreecam, "Freecam speed", 10, 100, Config.FreecamSpeed, "%d spd", function(v) Config.FreecamSpeed = v end) local function SerializeConfig() local tbl = {} for k, v in pairs(Config) do if typeof(v) == "EnumItem" then tbl[k] = { __type = "EnumItem", enumType = tostring(v.EnumType), name = v.Name } elseif typeof(v) == "Color3" then tbl[k] = { __type = "Color3", r = v.R, g = v.G, b = v.B } elseif typeof(v) == "Vector3" then tbl[k] = { __type = "Vector3", x = v.X, y = v.Y, z = v.Z } else tbl[k] = v end end return tbl end local function DeserializeConfig(data) local res = {} for k, v in pairs(data) do if type(v) == "table" and v.__type == "EnumItem" then local grp = Enum[v.enumType] if grp and grp[v.name] then res[k] = grp[v.name] end elseif type(v) == "table" and v.__type == "Color3" then res[k] = Color3.new(v.r, v.g, v.b) elseif type(v) == "table" and v.__type == "Vector3" then res[k] = Vector3.new(v.x, v.y, v.z) else res[k] = v end end return res end local ProfileSystem = { current = "default", autoload = "default", names = { "default", "rage" }, profiles = {}, nameInput = nil, dropdown = nil, autoLoadLabel = nil, defaultProfiles = { ["default"] = { Aimbot = false, TeamCheck = true, AimbotDisableReloading = true, AimbotFOV = 120, AimbotKey = Enum.UserInputType.MouseButton2, AimbotKeyMode = "Hold", AimbotPart = "Closest", AimbotScopeOnly = false, AimbotSmoothing = 0.28, AimbotVisibleOnly = true, AntiAim = false, AntiAimMode = "Jitter", AntiAimSpeed = 10, AutoBanWeapons = false, AutoLoadout = true, AutoPickup = false, AutoQueue = false, AutoRespawn = false, AutoVoteMaps = false, AutomaticGuns = false, Autoplay = false, AutoplayDistance = 18, BulletTracers = false, BunnyHop = false, CorrectLockedShots = true, ContinuousTargeting = true, CustomFOV = false, CustomViewModelFOV = false, ESP_Boxes = true, ESP_Chams = false, ESP_Distance = true, ESP_EnemyOnly = true, ESP_FOV = true, ESP_HeadDot = true, ESP_HealthBar = true, ESP_Lobby = true, ESP_Master = true, ESP_MaxDistance = 500, ESP_Names = true, ESP_Skeleton = true, ESP_Tracers = false, ESP_Tripmines = true, ESP_Weapon = true, EnabledMaps = "Arena, Crossroads", FastReload = false, FlyHack = false, FlySpeed = 50, FOVValue = 90, Freecam = false, FreecamSpeed = 40, Fullbright = false, HackerAutoLoad = true, HackerDetector = true, HackerProfile = "rage", HideViewModel = false, HitSound = "Skeet", InfiniteAmmo = false, InfiniteJump = false, InstantCameraLock = false, InstantEquip = false, LoadoutOnlySelected = false, MapPriority = "Arena, Onyx, Crossroads", MenuKey = Enum.KeyCode.RightControl, MinGroupRank = 200, ModDetector = true, ModFriendList = "name1, name2", ModUsernames = "name1, name2", NoFog = true, NoRecoil = true, NoSpread = true, Noclip = false, NotifyHackers = true, NotifyMods = true, PickupRadius = 25, QueueMode = "1v1", Ragebot = false, RagebotAutoShoot = false, RagebotTargetPriority = "Distance", RagebotTargetStrafe = false, RagebotWallbang = true, RainbowGunSkin = false, RapidFire = false, SecondBanPriority = "Grenade Launcher, Minigun, RPG", SelectedCategory = "Primary", SelectedCharm = "Dice", SelectedFinisher = "Gingerbreadify", SelectedWeapon = "Assault Rifle", SelectedWrap = "Liquid Gold", SilentAim = true, SilentFOV = 242, SilentHeadChance = 59, SilentHitChance = 78, SilentIgnoreDeflecting = true, SilentIgnoreShielded = true, SilentKey = Enum.KeyCode.C, SilentKeyMode = "Always", SilentTargetPart = "Head", SilentVisibleOnly = true, SilentVulnerableOnly = true, SpeedDuration = 0.75, SpeedHack = false, SpeedThreshold = 180, SpeedValue = 49, TargetStrafeRadius = 14, TargetStrafeSpeed = 6, TargetVisualizer = true, TargetVisualizerHUD = true, TargetVisualizerPath = true, ThirdPerson = false, ThirdPersonDist = 12, TrackThroughWalls = true, UnlockAllSkins = false, ViewModelFOVValue = 70, ViewModelXOffset = 0, ViewModelYOffset = 0, ViewModelZOffset = 0, VisualizerArrowSpacing = 10, VisualizerArrowSpeed = 14, WeaponBanPriority = "Grenade Launcher, Minigun, RPG", WeaponChams = false, }, ["rage"] = { Aimbot = false, TeamCheck = true, AimbotDisableReloading = true, AimbotFOV = 120, AimbotKey = Enum.UserInputType.MouseButton2, AimbotKeyMode = "Hold", AimbotPart = "Closest", AimbotScopeOnly = false, AimbotSmoothing = 0.28, AimbotVisibleOnly = true, AntiAim = false, AntiAimMode = "Jitter", AntiAimSpeed = 10, AutoBanWeapons = false, AutoLoadout = false, AutoPickup = false, AutoQueue = false, AutoRespawn = false, AutoVoteMaps = false, AutomaticGuns = false, Autoplay = true, AutoplayDistance = 18, BulletTracers = true, BunnyHop = true, CorrectLockedShots = true, ContinuousTargeting = true, CustomFOV = false, CustomViewModelFOV = false, ESP_Boxes = true, ESP_Chams = true, ESP_Distance = true, ESP_EnemyOnly = true, ESP_FOV = true, ESP_HeadDot = true, ESP_HealthBar = true, ESP_Lobby = true, ESP_Master = true, ESP_MaxDistance = 500, ESP_Names = true, ESP_Skeleton = true, ESP_Tracers = false, ESP_Tripmines = true, ESP_Weapon = true, EnabledMaps = "Arena, Crossroads", FastReload = false, FlyHack = false, FlySpeed = 50, FOVValue = 90, Freecam = false, FreecamSpeed = 40, Fullbright = false, HackerAutoLoad = true, HackerDetector = true, HackerProfile = "rage", HideViewModel = false, HitSound = "Skeet", InfiniteAmmo = false, InfiniteJump = false, InstantCameraLock = false, InstantEquip = false, LoadoutOnlySelected = false, MapPriority = "Arena, Onyx, Crossroads", MenuKey = Enum.KeyCode.RightControl, MinGroupRank = 200, ModDetector = true, ModFriendList = "name1, name2", ModUsernames = "name1, name2", NoFog = true, NoRecoil = true, NoSpread = true, Noclip = false, NotifyHackers = true, NotifyMods = true, PickupRadius = 25, QueueMode = "1v1", Ragebot = true, RagebotAutoShoot = true, RagebotTargetPriority = "Distance", RagebotTargetStrafe = true, RagebotWallbang = true, RainbowGunSkin = false, RapidFire = false, SecondBanPriority = "Grenade Launcher, Minigun, RPG", SelectedCategory = "Primary", SelectedCharm = "Dice", SelectedFinisher = "Gingerbreadify", SelectedWeapon = "Assault Rifle", SelectedWrap = "Liquid Gold", SilentAim = true, SilentFOV = 400, SilentHeadChance = 100, SilentHitChance = 100, SilentIgnoreDeflecting = true, SilentIgnoreShielded = true, SilentKey = Enum.KeyCode.C, SilentKeyMode = "Always", SilentTargetPart = "Head", SilentVisibleOnly = true, SilentVulnerableOnly = true, SpeedDuration = 0.75, SpeedHack = true, SpeedThreshold = 180, SpeedValue = 49, TargetStrafeRadius = 14, TargetStrafeSpeed = 6, TargetVisualizer = true, TargetVisualizerHUD = true, TargetVisualizerPath = true, ThirdPerson = false, ThirdPersonDist = 12, TrackThroughWalls = true, UnlockAllSkins = false, ViewModelFOVValue = 70, ViewModelXOffset = 0, ViewModelYOffset = 0, ViewModelZOffset = 0, VisualizerArrowSpacing = 10, VisualizerArrowSpeed = 14, WeaponBanPriority = "Grenade Launcher, Minigun, RPG", WeaponChams = false, } } } function ProfileSystem.readStore() local ok, res = pcall(function() if readfile and isfile and isfile("reefhub_config.json") then local raw = readfile("reefhub_config.json") return HttpService:JSONDecode(raw) end return nil end) if ok and type(res) == "table" then if type(res.profiles) == "table" then ProfileSystem.profiles = res.profiles ProfileSystem.autoload = tostring(res.autoload or "default") else ProfileSystem.profiles = { ["default"] = res } ProfileSystem.autoload = "default" end else ProfileSystem.profiles = {} ProfileSystem.autoload = "default" end for pName, pData in pairs(ProfileSystem.defaultProfiles) do if not ProfileSystem.profiles[pName] then local copy = {} for k, v in pairs(pData) do copy[k] = v end ProfileSystem.profiles[pName] = copy end end local list = {} for name, _ in pairs(ProfileSystem.profiles) do table.insert(list, tostring(name)) end table.sort(list) if #list == 0 then list = { "default", "rage" } end ProfileSystem.names = list local found = false for _, name in ipairs(ProfileSystem.names) do if name == ProfileSystem.autoload then found = true break end end if not found then ProfileSystem.autoload = "default" end ProfileSystem.current = ProfileSystem.autoload if not (isfile and isfile("reefhub_config.json")) then ProfileSystem.writeStore() end end function ProfileSystem.writeStore() if not writefile then return false end local store = { autoload = ProfileSystem.autoload or "default", profiles = ProfileSystem.profiles } local ok = pcall(function() local json = HttpService:JSONEncode(store) writefile("reefhub_config.json", json) end) return ok end function ProfileSystem.applyProfile(pName, notify) pName = tostring(pName or ProfileSystem.current or "default") local data = ProfileSystem.profiles[pName] if not data then if notify then ShowNotification("ReefHub", "Profile not found: " .. pName, "WARN", 2.5) end return false end local res = DeserializeConfig(data) for k, v in pairs(res) do Config[k] = v if uiRegistry[k] and uiRegistry[k].Set then pcall(function() uiRegistry[k].Set(v) end) end end ApplyWeaponModifications() if Config.UnlockAllSkins then UnlockAllCosmeticsClientSide() end ProfileSystem.current = pName if ProfileSystem.nameInput and ProfileSystem.nameInput.Set then ProfileSystem.nameInput.Set(pName) end if ProfileSystem.dropdown and ProfileSystem.dropdown.Set then ProfileSystem.dropdown.Set(pName) end if notify then ShowNotification("ReefHub", "Loaded profile: " .. pName, "SUCCESS", 2.5) end return true end function ProfileSystem.saveProfile(pName) local rawName = pName or (ProfileSystem.nameInput and ProfileSystem.nameInput.Get and ProfileSystem.nameInput.Get()) if not rawName or rawName:gsub("%s+", "") == "" then rawName = ProfileSystem.current or "default" end local cleanName = rawName:match("^%s*(.-)%s*$") ProfileSystem.profiles[cleanName] = SerializeConfig() ProfileSystem.current = cleanName local list = {} for name, _ in pairs(ProfileSystem.profiles) do table.insert(list, tostring(name)) end table.sort(list) ProfileSystem.names = list ProfileSystem.writeStore() if ProfileSystem.dropdown and ProfileSystem.dropdown.SetOptions then ProfileSystem.dropdown.SetOptions(ProfileSystem.names, cleanName) end if ProfileSystem.nameInput and ProfileSystem.nameInput.Set then ProfileSystem.nameInput.Set(cleanName) end ShowNotification("ReefHub", "Saved profile: " .. cleanName, "SUCCESS", 2.5) end function ProfileSystem.setAutoload(pName) local target = pName or ProfileSystem.current or "default" if not ProfileSystem.profiles[target] then ProfileSystem.profiles[target] = SerializeConfig() end ProfileSystem.autoload = target ProfileSystem.writeStore() if ProfileSystem.autoLoadLabel then ProfileSystem.autoLoadLabel.Text = "Auto-load on start: " .. target end ShowNotification("ReefHub", "Auto-load set to: " .. target, "SUCCESS", 2.5) end function ProfileSystem.deleteProfile(pName) local target = pName or ProfileSystem.current if #ProfileSystem.names <= 1 then ShowNotification("ReefHub", "Cannot delete only remaining profile.", "WARN", 2.5) return end ProfileSystem.profiles[target] = nil local list = {} for name, _ in pairs(ProfileSystem.profiles) do table.insert(list, tostring(name)) end table.sort(list) ProfileSystem.names = list if ProfileSystem.autoload == target then ProfileSystem.autoload = ProfileSystem.names[1] end ProfileSystem.current = ProfileSystem.names[1] ProfileSystem.writeStore() if ProfileSystem.dropdown and ProfileSystem.dropdown.SetOptions then ProfileSystem.dropdown.SetOptions(ProfileSystem.names, ProfileSystem.current) end if ProfileSystem.nameInput and ProfileSystem.nameInput.Set then ProfileSystem.nameInput.Set(ProfileSystem.current) end if ProfileSystem.autoLoadLabel then ProfileSystem.autoLoadLabel.Text = "Auto-load on start: " .. ProfileSystem.autoload end ProfileSystem.applyProfile(ProfileSystem.current, false) ShowNotification("ReefHub", "Deleted profile: " .. target, "INFO", 2.5) end ProfileSystem.readStore() local pageConfig = tabPages["config"] local cfgLeft = pageConfig:FindFirstChild("LeftCol") local cfgRight = pageConfig:FindFirstChild("RightCol") local gbConfig = createGroupbox(cfgLeft, "Profiles") ProfileSystem.nameInput = addTextbox(gbConfig, "Profile name", ProfileSystem.current, "Profile name...", function(txt) ProfileSystem.current = txt end) ProfileSystem.dropdown = addDropdown(gbConfig, "Select profile", ProfileSystem.names, 1, function(selected) ProfileSystem.current = selected if ProfileSystem.nameInput and ProfileSystem.nameInput.Set then ProfileSystem.nameInput.Set(selected) end end) addButton(gbConfig, "Save profile", function() ProfileSystem.saveProfile() end) addButton(gbConfig, "Load profile", function() ProfileSystem.applyProfile(ProfileSystem.current, true) end) addButton(gbConfig, "Set as auto-load", function() ProfileSystem.setAutoload(ProfileSystem.current) end) addButton(gbConfig, "Delete profile", function() ProfileSystem.deleteProfile(ProfileSystem.current) end) ProfileSystem.autoLoadLabel = Instance.new("TextLabel") ProfileSystem.autoLoadLabel.Size = UDim2.new(1, 0, 0, 16) ProfileSystem.autoLoadLabel.BackgroundTransparency = 1 ProfileSystem.autoLoadLabel.Font = MainFont ProfileSystem.autoLoadLabel.Text = "Auto-load on start: " .. ProfileSystem.autoload ProfileSystem.autoLoadLabel.TextColor3 = Theme.AccentPinkLight ProfileSystem.autoLoadLabel.TextSize = 11.5 ProfileSystem.autoLoadLabel.TextXAlignment = Enum.TextXAlignment.Left ProfileSystem.autoLoadLabel.ZIndex = 17 ProfileSystem.autoLoadLabel.Parent = gbConfig addButton(gbConfig, "Unload script", UnloadScript) local gbShortcuts = createGroupbox(cfgRight, "Keybinds & Info") local kbMenu = Instance.new("TextLabel") kbMenu.Size = UDim2.new(1, 0, 0, 16) kbMenu.BackgroundTransparency = 1 kbMenu.Font = MainFont kbMenu.Text = "Menu Toggle: RightControl" kbMenu.TextColor3 = Theme.TextWhite kbMenu.TextSize = 12 kbMenu.TextXAlignment = Enum.TextXAlignment.Left kbMenu.ZIndex = 17 kbMenu.Parent = gbShortcuts uiRegistry["MobileToggle"] = addCheckbox(gbShortcuts, "Mobile toggle button", Config.MobileToggle, function(v) Config.MobileToggle = v local mBtn = screenGui:FindFirstChild("ParagonMobileToggle") if mBtn then mBtn.Visible = v end end) pcall(function() ProfileSystem.applyProfile(ProfileSystem.autoload, false) end) local function setupSearch() local searchItems = {} for tName, page in pairs(tabPages) do for _, colName in ipairs({"LeftCol", "RightCol"}) do local col = page:FindFirstChild(colName) if col then for _, card in ipairs(col:GetChildren()) do if card:IsA("Frame") then local header = card:FindFirstChild("Header") local titleLbl = header and (header:FindFirstChild("TitleLabel") or header:FindFirstChildWhichIsA("TextLabel")) local cardTitle = titleLbl and titleLbl.Text or "" local content = card:FindFirstChild("Content") local controls = {} if content then for _, ctrl in ipairs(content:GetChildren()) do if ctrl:IsA("Frame") or ctrl:IsA("TextButton") then local lbl = ctrl:FindFirstChildWhichIsA("TextLabel") or (ctrl:IsA("TextButton") and ctrl) local ctrlName = lbl and lbl.Text or "" if ctrlName ~= "" then table.insert(controls, { element = ctrl, name = ctrlName }) end end end end table.insert(searchItems, { tab = tName, page = page, card = card, cardTitle = cardTitle, controls = controls }) end end end end end local searchDropdown = Instance.new("ScrollingFrame") searchDropdown.Name = "SearchDropdown" searchDropdown.Size = UDim2.new(0, 180, 0, 0) searchDropdown.Position = UDim2.new(1, -210, 0, 26) searchDropdown.BackgroundColor3 = Theme.CardBg searchDropdown.BorderSizePixel = 0 searchDropdown.ScrollBarThickness = 2 searchDropdown.ScrollBarImageColor3 = Theme.AccentPink searchDropdown.AutomaticCanvasSize = Enum.AutomaticSize.Y searchDropdown.ZIndex = 1005 searchDropdown.Visible = false searchDropdown.Parent = dropdownOverlay local sdStroke = Instance.new("UIStroke") sdStroke.Color = Theme.BorderPink sdStroke.Thickness = 1 sdStroke.Parent = searchDropdown local sdLayout = Instance.new("UIListLayout") sdLayout.Padding = UDim.new(0, 1) sdLayout.Parent = searchDropdown local function filterUI(query) query = query:lower():match("^%s*(.-)%s*$") if not query or query == "" then searchDropdown.Visible = false for _, item in ipairs(searchItems) do item.card.Visible = true for _, ctrl in ipairs(item.controls) do ctrl.element.Visible = true end end for _, btnData in ipairs(tabButtons) do local isSelf = (btnData.name == currentTab) btnData.btn.TextColor3 = isSelf and Theme.AccentPinkLight or Theme.TextMuted end return end for _, child in ipairs(searchDropdown:GetChildren()) do if child:IsA("TextButton") then child:Destroy() end end local matchingTabs = {} local dropdownMatches = 0 for _, item in ipairs(searchItems) do local cardMatches = item.cardTitle:lower():find(query, 1, true) ~= nil local anyCtrlMatch = false for _, ctrl in ipairs(item.controls) do local cMatch = cardMatches or (ctrl.name:lower():find(query, 1, true) ~= nil) ctrl.element.Visible = cMatch if cMatch then anyCtrlMatch = true if dropdownMatches < 8 and (ctrl.name:lower():find(query, 1, true) ~= nil) then dropdownMatches = dropdownMatches + 1 local btn = Instance.new("TextButton") btn.Size = UDim2.new(1, 0, 0, 22) btn.BackgroundColor3 = Theme.ControlBg btn.BackgroundTransparency = 0.5 btn.BorderSizePixel = 0 btn.Font = MainFont btn.Text = " " .. ctrl.name .. " [" .. item.tab:upper() .. "]" btn.TextColor3 = Theme.TextWhite btn.TextSize = 10.5 btn.TextXAlignment = Enum.TextXAlignment.Left btn.ZIndex = 1006 btn.Parent = searchDropdown btn.MouseEnter:Connect(function() btn.BackgroundColor3 = Theme.ButtonHoverBg btn.TextColor3 = Theme.AccentPinkLight end) btn.MouseLeave:Connect(function() btn.BackgroundColor3 = Theme.ControlBg btn.TextColor3 = Theme.TextWhite end) btn.MouseButton1Click:Connect(function() switchTab(item.tab) searchDropdown.Visible = false end) end end end item.card.Visible = cardMatches or anyCtrlMatch if cardMatches or anyCtrlMatch then matchingTabs[item.tab] = true end end for _, btnData in ipairs(tabButtons) do if matchingTabs[btnData.name] then btnData.btn.TextColor3 = Theme.AccentPinkLight else btnData.btn.TextColor3 = Color3.fromRGB(60, 60, 65) end end if not matchingTabs[currentTab] then for _, tName in ipairs(tabList) do if matchingTabs[tName] then switchTab(tName) break end end end if dropdownMatches > 0 then local boxPos = searchBox.AbsolutePosition local boxSize = searchBox.AbsoluteSize searchDropdown.Position = UDim2.new(0, boxPos.X - 50, 0, boxPos.Y + boxSize.Y + 3) searchDropdown.Size = UDim2.new(0, 210, 0, math.min(dropdownMatches * 23, 140)) searchDropdown.Visible = true else searchDropdown.Visible = false end end searchBox:GetPropertyChangedSignal("Text"):Connect(function() filterUI(searchBox.Text) end) end setupSearch() local cornerGrip = Instance.new("Frame") cornerGrip.Name = "CornerGrip" cornerGrip.Size = UDim2.new(0, 14, 0, 14) cornerGrip.Position = UDim2.new(1, -15, 1, -15) cornerGrip.BackgroundTransparency = 1 cornerGrip.BorderSizePixel = 0 cornerGrip.ZIndex = 25 cornerGrip.Parent = mainWindow for i = 1, 14 do local slice = Instance.new("Frame") slice.Name = "Slice_" .. i slice.Size = UDim2.new(0, 1, 0, i) slice.Position = UDim2.new(0, i - 1, 1, -i) slice.BackgroundColor3 = Theme.AccentGreen slice.BorderSizePixel = 0 slice.ZIndex = 26 slice.Parent = cornerGrip end local fovCircleGui = Instance.new("Frame") fovCircleGui.Name = "FOVCircle" fovCircleGui.Size = UDim2.new(0, Config.SilentFOV * 2, 0, Config.SilentFOV * 2) fovCircleGui.Position = UDim2.new(0.5, -Config.SilentFOV, 0.5, -Config.SilentFOV) fovCircleGui.BackgroundTransparency = 1 fovCircleGui.Visible = Config.ESP_FOV fovCircleGui.ZIndex = 1 fovCircleGui.Parent = screenGui table.insert(cleanUpInstances, fovCircleGui) Instance.new("UICorner", fovCircleGui).CornerRadius = UDim.new(1, 0) local fovStroke = Instance.new("UIStroke") fovStroke.Color = Theme.AccentGreen fovStroke.Transparency = 0.5 fovStroke.Thickness = 1.2 fovStroke.Parent = fovCircleGui do local mBtn = Instance.new("TextButton") mBtn.Name = "ParagonMobileToggle" mBtn.Size = UDim2.new(0, 36, 0, 36) mBtn.Position = UDim2.new(0, 16, 0, 50) mBtn.BackgroundColor3 = Theme.ButtonBg mBtn.BorderSizePixel = 0 mBtn.Font = MainFont mBtn.Text = "P" mBtn.TextColor3 = Theme.AccentPinkLight mBtn.TextSize = 16 mBtn.ZIndex = 50 mBtn.Visible = (Config.MobileToggle == true or (Config.MobileToggle == nil and UserInputService.TouchEnabled)) mBtn.Parent = screenGui table.insert(cleanUpInstances, mBtn) Instance.new("UICorner", mBtn).CornerRadius = UDim.new(0, 8) local mStroke = Instance.new("UIStroke") mStroke.Color = Theme.AccentPink mStroke.Thickness = 1.2 mStroke.Parent = mBtn local mDragging = false local mDragStart, mStartPos mBtn.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then mDragging = true mDragStart = input.Position mStartPos = mBtn.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then mDragging = false end end) end end) UserInputService.InputChanged:Connect(function(input) if mDragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then local delta = input.Position - mDragStart mBtn.Position = UDim2.new(mStartPos.X.Scale, mStartPos.X.Offset + delta.X, mStartPos.Y.Scale, mStartPos.Y.Offset + delta.Y) end end) mBtn.MouseButton1Click:Connect(function() setMenuVisible(not mainWindow.Visible) end) end local isSilentKeyDown = false local function performSilentAimRedirect(origin, defaultTargetPos, maxDist) if not isRunning or not Config.SilentAim then return defaultTargetPos end if Config.SilentKeyMode == "Hold" and not isSilentKeyDown then return defaultTargetPos end local target = getClosestTarget(Config.SilentFOV, Config.SilentVisibleOnly, Config.SilentTargetPart) if target then if isTeammate(target) then return defaultTargetPos end local hitRoll = math.random(1, 100) if hitRoll <= Config.SilentHitChance then local aimPos = target.Position if math.random(1, 100) <= Config.SilentHeadChance then local tChar = target:IsA("Model") and target or target:FindFirstAncestorOfClass("Model") local head = tChar and (tChar:FindFirstChild("Head") or tChar:FindFirstChild("HitboxHead")) if head then aimPos = head.Position end end return aimPos end end return defaultTargetPos end local hitSoundIds = { Skeet = "rbxassetid://4817809188", Rust = "rbxassetid://1255040462", Ding = "rbxassetid://9114223175" } local lastHitSoundTime = 0 local function PlayHitSound() local now = tick() if now - lastHitSoundTime < 0.04 then return end lastHitSoundTime = now pcall(function() local sndId = hitSoundIds[Config.HitSound] or hitSoundIds.Skeet local snd = Instance.new("Sound") snd.SoundId = sndId snd.Volume = 1.2 snd.Parent = SoundService snd:Play() local deb = game:GetService("Debris") if deb then deb:AddItem(snd, 1.5) else task.delay(1.5, function() if snd and snd.Parent then snd:Destroy() end end) end end) end local function CreateBulletTracer(origin, targetPos) if not Config.BulletTracers or not isRunning then return end pcall(function() if typeof(origin) ~= "Vector3" or typeof(targetPos) ~= "Vector3" then return end local diff = targetPos - origin local dist = diff.Magnitude if dist < 3 or dist > 1500 then return end local a0 = Instance.new("Attachment") a0.Position = origin a0.Parent = Workspace.Terrain local a1 = Instance.new("Attachment") a1.Position = targetPos a1.Parent = Workspace.Terrain local beam = Instance.new("Beam") beam.Name = "ParagonBulletTracer" beam.Attachment0 = a0 beam.Attachment1 = a1 beam.Width0 = 0.06 beam.Width1 = 0.06 beam.FaceCamera = true beam.LightEmission = 1 beam.LightInfluence = 0 beam.Color = ColorSequence.new(Theme.AccentPinkLight) beam.Transparency = NumberSequence.new(0) beam.Parent = Workspace.Terrain table.insert(cleanUpInstances, a0) table.insert(cleanUpInstances, a1) table.insert(cleanUpInstances, beam) task.spawn(function() local d = 0.35 local t0 = tick() while isRunning and (tick() - t0 < d) do local alpha = math.clamp((tick() - t0) / d, 0, 1) beam.Transparency = NumberSequence.new(alpha) task.wait(0.03) end if a0.Parent then a0:Destroy() end if a1.Parent then a1:Destroy() end if beam.Parent then beam:Destroy() end end) end) end pcall(function() local crc = LocalPlayer.PlayerScripts:FindFirstChild("Modules") and LocalPlayer.PlayerScripts.Modules:FindFirstChild("ClientReplicatedClasses") local cf = crc and crc:FindFirstChild("ClientFighter") local ciMod = cf and cf:FindFirstChild("ClientItem") if ciMod then local ci = require(ciMod) if ci and type(ci._PlayHitmarkerQueue) == "function" then local origHitmarker = ci._PlayHitmarkerQueue ci._PlayHitmarkerQueue = function(self, ...) pcall(function() local fighter = self and (self.Fighter or self._fighter or self.Player) local isLocal = (fighter == LocalPlayer) or (self and self.Character == LocalPlayer.Character) if isLocal then PlayHitSound() end end) return origHitmarker(self, ...) end end local ii = ciMod:FindFirstChild("ItemInterface") local mMod = ii and ii:FindFirstChild("Mouse") local mcMod = mMod and mMod:FindFirstChild("MouseCrosshair") if mcMod then local mc = require(mcMod) if mc and type(mc.DamageEffect) == "function" then local origDamageEffect = mc.DamageEffect mc.DamageEffect = function(self, ...) pcall(PlayHitSound) return origDamageEffect(self, ...) end end end end end) pcall(function() local gunModule = LocalPlayer.PlayerScripts:FindFirstChild("Modules") and LocalPlayer.PlayerScripts.Modules:FindFirstChild("ItemTypes") and LocalPlayer.PlayerScripts.Modules.ItemTypes:FindFirstChild("Gun") if gunModule then local gun = require(gunModule) if gun and type(gun._LocalTracers) == "function" then local origLocalTracers = gun._LocalTracers gun._LocalTracers = function(self, ...) if Config.BulletTracers and isRunning then pcall(function() local cam = Workspace.CurrentCamera local mPos = UserInputService:GetMouseLocation() local ray = cam:ViewportPointToRay(mPos.X, mPos.Y) local origin = cam.CFrame.Position - Vector3.new(0, 0.4, 0) local hitPos = origin + (ray.Direction * 350) local rp = RaycastParams.new() rp.FilterType = Enum.RaycastFilterType.Exclude rp.FilterDescendantsInstances = {LocalPlayer.Character, cam} local res = Workspace:Raycast(origin, ray.Direction * 350, rp) if res then hitPos = res.Position end CreateBulletTracer(origin, hitPos) end) end return origLocalTracers(self, ...) end end end end) pcall(function() local utilModule = ReplicatedStorage:FindFirstChild("Modules") and ReplicatedStorage.Modules:FindFirstChild("Utility") if utilModule then local util = require(utilModule) if util and type(util.Raycast) == "function" then originalUtilityRaycast = util.Raycast util.Raycast = function(...) local n = select("#", ...) local args = {...} local offset = 0 if typeof(args[1]) == "table" or typeof(args[1]) == "Instance" then offset = 1 end local originVec = args[offset + 1] local targetPos = args[offset + 2] local maxDist = args[offset + 3] if isRunning and Config.SilentAim then pcall(function() if typeof(originVec) == "Vector3" and typeof(targetPos) == "Vector3" then local redirectedPos = performSilentAimRedirect(originVec, targetPos, maxDist) if redirectedPos and typeof(redirectedPos) == "Vector3" and redirectedPos ~= targetPos then local diff = redirectedPos - originVec if diff.Magnitude > 0.05 then local dir = diff.Unit * (maxDist or 1000) args[offset + 2] = originVec + dir end end end end) end return originalUtilityRaycast(unpack(args, 1, n)) end end end end) if hookmetamethod and newcclosure and checkcaller then originalNamecall = hookmetamethod(game, "__namecall", newcclosure(function(self, ...) local method = getnamecallmethod() if not isRunning or checkcaller() or not method then if setnamecallmethod then setnamecallmethod(method) end return originalNamecall(self, ...) end local m = method:lower() if m ~= "fireserver" and m ~= "invokeserver" then if setnamecallmethod then setnamecallmethod(method) end return originalNamecall(self, ...) end local args = {...} if Config.SilentAim and typeof(self) == "Instance" and (self.Name == "UseItem" or self.Name == "UseItemFeedback" or self.Name == "SnowballThrow") then local target = getClosestTarget(Config.SilentFOV, Config.SilentVisibleOnly, Config.SilentTargetPart) if target and not isTeammate(target) then local hitRoll = math.random(1, 100) if hitRoll <= Config.SilentHitChance then local aimPos = target.Position if math.random(1, 100) <= Config.SilentHeadChance then local tChar = target:IsA("Model") and target or target:FindFirstAncestorOfClass("Model") local head = tChar and (tChar:FindFirstChild("Head") or tChar:FindFirstChild("HitboxHead")) if head then aimPos = head.Position end end if #args >= 2 and typeof(args[2]) == "Vector3" then args[2] = aimPos elseif #args >= 1 and typeof(args[1]) == "Vector3" then args[1] = aimPos end if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then CreateBulletTracer(LocalPlayer.Character.HumanoidRootPart.Position, aimPos) end if setnamecallmethod then setnamecallmethod(method) end return originalNamecall(self, unpack(args)) end end end if m == "invokeserver" and typeof(self) == "Instance" and self.ClassName == "RemoteFunction" then return self.InvokeServer(self, ...) end if setnamecallmethod then setnamecallmethod(method) end return originalNamecall(self, ...) end)) end pcall(function() local lp = Players.LocalPlayer local ctrl = lp.PlayerScripts:FindFirstChild("Controllers") if ctrl then local tc = ctrl:FindFirstChild("TimerController") if tc then local tcm = require(tc) if tcm and type(tcm.SetTimeRemaining) == "function" then local origSet = tcm.SetTimeRemaining tcm.SetTimeRemaining = function(self, name, duration, ...) if typeof(duration) ~= "number" then if typeof(name) == "number" then duration = name name = "Timer" else return end end return origSet(self, name, duration, ...) end end end local fc = ctrl:FindFirstChild("FFlagController") if fc then local fcm = require(fc) if fcm and type(fcm._Fetch) == "function" then fcm._Fetch = function(self, ...) local res pcall(function() res = ReplicatedStorage.Remotes.Misc.RequestFFlags:InvokeServer() end) if typeof(res) == "table" then for i, v in pairs(res) do pcall(function() self:SetFFlag(i, v) end) end end end end end end end) local SKELETON_CONNECTIONS_R15 = { { "Head", "UpperTorso" }, { "UpperTorso", "LowerTorso" }, { "UpperTorso", "LeftUpperArm" }, { "LeftUpperArm", "LeftLowerArm" }, { "LeftLowerArm", "LeftHand" }, { "UpperTorso", "RightUpperArm" }, { "RightUpperArm", "RightLowerArm" }, { "RightLowerArm", "RightHand" }, { "LowerTorso", "LeftUpperLeg" }, { "LeftUpperLeg", "LeftLowerLeg" }, { "LeftLowerLeg", "LeftFoot" }, { "LowerTorso", "RightUpperLeg" }, { "RightUpperLeg", "RightLowerLeg" }, { "RightLowerLeg", "RightFoot" } } local SKELETON_CONNECTIONS_R6 = { { "Head", "Torso" }, { "Torso", "Left Arm" }, { "Torso", "Right Arm" }, { "Torso", "Left Leg" }, { "Torso", "Right Leg" } } local function createGuiLine(parent, zIndex) local line = Instance.new("Frame") line.BorderSizePixel = 0 line.BackgroundColor3 = Theme.AccentPinkLight line.AnchorPoint = Vector2.new(0.5, 0.5) line.Visible = false line.ZIndex = zIndex or 2 line.Parent = parent return line end local function updateGuiLine(line, p1, p2, thickness, color) local diff = p2 - p1 local dist = diff.Magnitude if dist < 1 then line.Visible = false return end line.Size = UDim2.new(0, dist, 0, thickness or 1.2) line.Position = UDim2.new(0, (p1.X + p2.X) * 0.5, 0, (p1.Y + p2.Y) * 0.5) line.Rotation = math.deg(math.atan2(diff.Y, diff.X)) if color then line.BackgroundColor3 = color end line.Visible = true end local espObjects = {} local function createESPForPlayer(p) local holder = Instance.new("Folder") holder.Name = "ESP_" .. p.Name holder.Parent = screenGui table.insert(cleanUpInstances, holder) local box = Instance.new("Frame") box.BackgroundTransparency = 1 box.BorderSizePixel = 0 box.Visible = false box.ZIndex = 2 box.Parent = holder local bStroke = Instance.new("UIStroke") bStroke.Color = Theme.AccentPink bStroke.Thickness = 1.2 bStroke.Parent = box local nameLbl = Instance.new("TextLabel") nameLbl.Size = UDim2.new(0, 120, 0, 14) nameLbl.BackgroundTransparency = 1 nameLbl.Font = MainFont nameLbl.Text = p.DisplayName nameLbl.TextColor3 = Theme.TextWhite nameLbl.TextSize = 11.5 nameLbl.Visible = false nameLbl.ZIndex = 3 nameLbl.Parent = holder local distLbl = Instance.new("TextLabel") distLbl.Size = UDim2.new(0, 60, 0, 14) distLbl.BackgroundTransparency = 1 distLbl.Font = MainFont distLbl.Text = "0m" distLbl.TextColor3 = Theme.AccentPinkLight distLbl.TextSize = 10.5 distLbl.Visible = false distLbl.ZIndex = 3 distLbl.Parent = holder local healthBg = Instance.new("Frame") healthBg.Size = UDim2.new(0, 2, 1, 0) healthBg.Position = UDim2.new(0, -6, 0, 0) healthBg.BackgroundColor3 = Theme.ControlBg healthBg.BorderSizePixel = 0 healthBg.Visible = false healthBg.ZIndex = 3 healthBg.Parent = box local healthFill = Instance.new("Frame") healthFill.Size = UDim2.new(1, 0, 1, 0) healthFill.Position = UDim2.new(0, 0, 1, 0) healthFill.AnchorPoint = Vector2.new(0, 1) healthFill.BackgroundColor3 = Theme.AccentPink healthFill.BorderSizePixel = 0 healthFill.ZIndex = 4 healthFill.Parent = healthBg local headDot = Instance.new("Frame") headDot.Size = UDim2.new(0, 4, 0, 4) headDot.AnchorPoint = Vector2.new(0.5, 0.5) headDot.BackgroundColor3 = Theme.AccentPinkLight headDot.BorderSizePixel = 0 headDot.Visible = false headDot.ZIndex = 5 headDot.Parent = holder Instance.new("UICorner", headDot).CornerRadius = UDim.new(1, 0) local chamsHighlight = Instance.new("Highlight") chamsHighlight.Name = "ParagonHighlight" chamsHighlight.FillColor = Theme.AccentPink chamsHighlight.FillTransparency = 0.6 chamsHighlight.OutlineColor = Theme.AccentPinkLight chamsHighlight.OutlineTransparency = 0.1 chamsHighlight.Enabled = false local weapLbl = Instance.new("TextLabel") weapLbl.Size = UDim2.new(0, 120, 0, 14) weapLbl.BackgroundTransparency = 1 weapLbl.Font = MainFont weapLbl.Text = "Weapon" weapLbl.TextColor3 = Theme.AccentPinkLight weapLbl.TextSize = 10.5 weapLbl.Visible = false weapLbl.ZIndex = 3 weapLbl.Parent = holder local skeletonLines = {} for i = 1, #SKELETON_CONNECTIONS_R15 do table.insert(skeletonLines, createGuiLine(holder, 2)) end local tracerLine = createGuiLine(holder, 2) espObjects[p] = { holder = holder, box = box, nameLbl = nameLbl, distLbl = distLbl, weapLbl = weapLbl, healthBg = healthBg, healthFill = healthFill, headDot = headDot, highlight = chamsHighlight, skeletonLines = skeletonLines, tracerLine = tracerLine, isShown = false } end local function hideESP(esp) if esp.isShown then esp.isShown = false esp.box.Visible = false esp.nameLbl.Visible = false esp.distLbl.Visible = false esp.headDot.Visible = false esp.healthBg.Visible = false if esp.weapLbl then esp.weapLbl.Visible = false end if esp.highlight then esp.highlight.Enabled = false end if esp.skeletonLines then for _, line in ipairs(esp.skeletonLines) do line.Visible = false end end if esp.tracerLine then esp.tracerLine.Visible = false end end end local playerWeaponCache = {} local function getPlayerWeapon(pChar) if not pChar then return "Unarmed" end local now = tick() local cached = playerWeaponCache[pChar] if cached and (now - cached.time < 0.5) then return cached.name end local foundName = "Fighter" for _, child in ipairs(pChar:GetChildren()) do if child:IsA("Tool") then foundName = child.Name break end end if foundName == "Fighter" then local rHand = pChar:FindFirstChild("RightHand") or pChar:FindFirstChild("Right Arm") if rHand then for _, w in ipairs(rHand:GetChildren()) do if (w:IsA("Weld") or w:IsA("Motor6D")) and w.Part1 and w.Part1.Parent and w.Part1.Parent ~= pChar and w.Part1.Parent ~= Workspace then foundName = w.Part1.Parent.Name break end end end end playerWeaponCache[pChar] = { name = foundName, time = now } return foundName end for _, p in ipairs(Players:GetPlayers()) do if p ~= LocalPlayer then createESPForPlayer(p) end end Players.PlayerAdded:Connect(function(p) if p ~= LocalPlayer then createESPForPlayer(p) end end) Players.PlayerRemoving:Connect(function(p) if espObjects[p] then espObjects[p].holder:Destroy() espObjects[p] = nil end end) local isAimbotKeyDown = false table.insert(activeConnections, UserInputService.InputBegan:Connect(function(input, gpe) if input.KeyCode == Config.MenuKey then setMenuVisible(not mainWindow.Visible) return end if gpe then return end if input.UserInputType == Config.AimbotKey or input.KeyCode == Config.AimbotKey then isAimbotKeyDown = true elseif input.KeyCode == Config.SilentKey then if Config.SilentKeyMode == "Toggle" then Config.SilentAim = not Config.SilentAim ShowNotification("ReefHub", "Silent Aim: " .. (Config.SilentAim and "ON" or "OFF"), "INFO", 1.5) elseif Config.SilentKeyMode == "Hold" then isSilentKeyDown = true end end end)) local lastInfJumpTime = 0 table.insert(activeConnections, UserInputService.JumpRequest:Connect(function() if isRunning and not mainWindow.Visible then if Config.InfiniteJump then local now = tick() if now - lastInfJumpTime >= 0.25 then lastInfJumpTime = now local char = LocalPlayer.Character local hum = char and char:FindFirstChildOfClass("Humanoid") if hum then hum:ChangeState(Enum.HumanoidStateType.Jumping) end end end end end)) table.insert(activeConnections, UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Config.AimbotKey or input.KeyCode == Config.AimbotKey then isAimbotKeyDown = false elseif input.KeyCode == Config.SilentKey then if Config.SilentKeyMode == "Hold" then isSilentKeyDown = false end end end)) task.spawn(function() local navPath = PathfindingService:CreatePath({ AgentRadius = 2.0, AgentHeight = 5.0, AgentCanJump = true, WaypointSpacing = 3.5 }) local groundRayParams = RaycastParams.new() groundRayParams.FilterType = Enum.RaycastFilterType.Exclude groundRayParams.IgnoreWater = true while isRunning do task.wait(0.28) local c = LocalPlayer.Character local r = c and c:FindFirstChild("HumanoidRootPart") local actRoot = TargetVis.activeRoot if ((Config.TargetVisualizer and Config.TargetVisualizerPath) or Config.Autoplay) and r and actRoot then local rPos = r.Position local aPos = actRoot.Position if TargetVis.lastPathMyPos and TargetVis.lastPathActPos and #TargetVis.cachedWaypoints >= 2 then if (rPos - TargetVis.lastPathMyPos).Magnitude < 3.5 and (aPos - TargetVis.lastPathActPos).Magnitude < 3.5 then continue end end TargetVis.lastPathMyPos = rPos TargetVis.lastPathActPos = aPos pcall(function() groundRayParams.FilterDescendantsInstances = {c, TargetVis.visualizerFolder} local success = pcall(function() navPath:ComputeAsync(rPos, aPos) end) if success and navPath.Status == Enum.PathStatus.Success then local rawWps = navPath:GetWaypoints() local clamped = {} for _, wp in ipairs(rawWps) do local ray = Workspace:Raycast(wp.Position + Vector3.new(0, 3, 0), Vector3.new(0, -12, 0), groundRayParams) local groundY = ray and (ray.Position.Y + 0.1) or (wp.Position.Y - 2.4) table.insert(clamped, { Position = Vector3.new(wp.Position.X, groundY, wp.Position.Z), Action = wp.Action }) end if #clamped >= 2 then TargetVis.cachedWaypoints = clamped if TargetVis.autoplayWpIndex > #clamped then TargetVis.autoplayWpIndex = 1 end end else local rayL = Workspace:Raycast(r.Position + Vector3.new(0, 3, 0), Vector3.new(0, -8, 0), groundRayParams) local rayT = Workspace:Raycast(actRoot.Position + Vector3.new(0, 3, 0), Vector3.new(0, -8, 0), groundRayParams) local posL = rayL and (rayL.Position + Vector3.new(0, 0.1, 0)) or (r.Position - Vector3.new(0, 2.4, 0)) local posT = rayT and (rayT.Position + Vector3.new(0, 0.1, 0)) or (actRoot.Position - Vector3.new(0, 2.4, 0)) TargetVis.cachedWaypoints = { { Position = posL, Action = Enum.PathWaypointAction.Custom }, { Position = posT, Action = Enum.PathWaypointAction.Custom } } TargetVis.autoplayWpIndex = 1 end end) else if not actRoot then TargetVis.cachedWaypoints = {} TargetVis.autoplayWpIndex = 1 end end end end) local flyBV, flyBG local fpsFrameCount = 0 local lastFpsSampleTime = tick() local liveFps = 60 local livePing = 0 table.insert(activeConnections, RunService.RenderStepped:Connect(function(dt) if not isRunning then return end if mainWindow.Visible then UserInputService.MouseBehavior = Enum.MouseBehavior.Default UserInputService.MouseIconEnabled = true if frozenCameraCFrame then Camera.CFrame = frozenCameraCFrame else frozenCameraCFrame = Camera.CFrame end if frozenCameraFOV then Camera.FieldOfView = frozenCameraFOV else frozenCameraFOV = Camera.FieldOfView end local c = LocalPlayer.Character local r = c and c:FindFirstChild("HumanoidRootPart") if r then r.AssemblyLinearVelocity = Vector3.new(0, math.min(r.AssemblyLinearVelocity.Y, 0), 0) end end fpsFrameCount = fpsFrameCount + 1 local curTime = tick() if curTime - lastFpsSampleTime >= 0.25 then liveFps = math.floor(fpsFrameCount / (curTime - lastFpsSampleTime) + 0.5) fpsFrameCount = 0 lastFpsSampleTime = curTime pcall(function() if LocalPlayer and LocalPlayer.GetNetworkPing then livePing = math.floor(LocalPlayer:GetNetworkPing() * 1000 + 0.5) else local stats = game:GetService("Stats") local net = stats and stats:FindFirstChild("Network") local sStats = net and net:FindFirstChild("ServerStatsItem") local pingItem = sStats and sStats:FindFirstChild("Data Ping") if pingItem then livePing = math.floor(pingItem:GetValue() + 0.5) end end end) if wmLbl and wmLbl.Parent then wmLbl.Text = 'P | reefhub | ' .. tostring(liveFps) .. ' fps | ' .. tostring(livePing) .. ' ms' end if sPing and sPing.Parent then sPing.Text = tostring(livePing) .. " ms - " .. tostring(#Players:GetPlayers()) .. " players" end end local char = LocalPlayer.Character local root = char and char:FindFirstChild("HumanoidRootPart") local hum = char and char:FindFirstChildOfClass("Humanoid") local cam = Workspace.CurrentCamera if Config.ESP_FOV then fovCircleGui.Visible = true fovCircleGui.Size = UDim2.new(0, Config.SilentFOV * 2, 0, Config.SilentFOV * 2) local mPos = UserInputService:GetMouseLocation() fovCircleGui.Position = UDim2.new(0, mPos.X - Config.SilentFOV, 0, mPos.Y - Config.SilentFOV) else fovCircleGui.Visible = false end if Config.SpeedHack and root and hum and not mainWindow.Visible then hum.WalkSpeed = tonumber(Config.SpeedValue) or 32 local moveDir = hum.MoveDirection if moveDir.Magnitude > 0 then local baseSpeed = 16 local targetSpeed = tonumber(Config.SpeedValue) or 32 local extraSpeed = math.max(0, targetSpeed - baseSpeed) if extraSpeed > 0 then root.CFrame = root.CFrame + (moveDir.Unit * (extraSpeed * dt)) end end end if Config.FlyHack and root and hum and cam then if not flyBV or flyBV.Parent ~= root then if flyBV then flyBV:Destroy() end flyBV = Instance.new("BodyVelocity") flyBV.Velocity = Vector3.zero flyBV.MaxForce = Vector3.new(9e9, 9e9, 9e9) flyBV.Parent = root table.insert(cleanUpInstances, flyBV) end if not flyBG or flyBG.Parent ~= root then if flyBG then flyBG:Destroy() end flyBG = Instance.new("BodyGyro") flyBG.MaxTorque = Vector3.new(9e9, 9e9, 9e9) flyBG.Parent = root table.insert(cleanUpInstances, flyBG) end local camCF = cam.CFrame local dir = Vector3.zero if UserInputService:IsKeyDown(Enum.KeyCode.W) then dir = dir + camCF.LookVector end if UserInputService:IsKeyDown(Enum.KeyCode.S) then dir = dir - camCF.LookVector end if UserInputService:IsKeyDown(Enum.KeyCode.A) then dir = dir - camCF.RightVector end if UserInputService:IsKeyDown(Enum.KeyCode.D) then dir = dir + camCF.RightVector end if UserInputService:IsKeyDown(Enum.KeyCode.Space) then dir = dir + Vector3.new(0, 1, 0) end if UserInputService:IsKeyDown(Enum.KeyCode.LeftShift) then dir = dir - Vector3.new(0, 1, 0) end flyBG.CFrame = camCF flyBV.Velocity = (dir.Magnitude > 0) and (dir.Unit * Config.FlySpeed) or Vector3.zero else if flyBV then flyBV:Destroy(); flyBV = nil end if flyBG then flyBG:Destroy(); flyBG = nil end end if Config.Fullbright and (tick() - (TargetVis.lastFullbrightCheck or 0) >= 1) then TargetVis.lastFullbrightCheck = tick() Lighting.Brightness = 2 Lighting.ClockTime = 14 Lighting.GlobalShadows = false Lighting.OutdoorAmbient = Color3.fromRGB(128, 128, 128) end if Config.NoFog and (tick() - (TargetVis.lastNoFogCheck or 0) >= 1) then TargetVis.lastNoFogCheck = tick() pcall(function() Lighting.FogEnd = 100000 for _, eff in ipairs(Lighting:GetChildren()) do if eff:IsA("Atmosphere") then eff.Density = 0 elseif eff:IsA("PostEffect") then if not eff.Name:find("Teleporting") then eff.Enabled = false end end end end) end if Config.CustomFOV and cam and not (Config.AimbotScopeOnly and UserInputService:IsMouseButtonPressed(Enum.UserInputType.MouseButton2)) then cam.FieldOfView = tonumber(Config.FOVValue) or 90 end if Config.BunnyHop and hum and root and not mainWindow.Visible then if UserInputService:IsKeyDown(Enum.KeyCode.Space) then if hum.FloorMaterial ~= Enum.Material.Air then local now = tick() if now - lastBhopJumpTime > 0.08 then lastBhopJumpTime = now hum.Jump = true end end end end if (Config.ThirdPerson or Config.Freecam) and cam then if char then for _, p in ipairs(char:GetDescendants()) do if p:IsA("BasePart") then p.LocalTransparencyModifier = 0 end end end end if Config.ThirdPerson and root and hum and not Config.Freecam then local head = char:FindFirstChild("Head") or root local headPos = head.Position + Vector3.new(0, 0.5, 0) local targetDist = tonumber(Config.ThirdPersonDist) or 12 local backDir = -cam.CFrame.LookVector * targetDist local hitParams = RaycastParams.new() hitParams.FilterDescendantsInstances = {char, cam} hitParams.FilterType = Enum.RaycastFilterType.Exclude local rayRes = Workspace:Raycast(headPos, backDir, hitParams) local camPos = rayRes and (rayRes.Position + rayRes.Normal * 0.4) or (headPos + backDir) cam.CFrame = CFrame.lookAt(camPos, headPos + cam.CFrame.LookVector * 100) end if Config.Freecam and cam then if not FreecamState.enabled then FreecamState.enabled = true local rx, ry = cam.CFrame:ToOrientation() FreecamState.rotX = rx FreecamState.rotY = ry FreecamState.pos = cam.CFrame.Position end if root then root.Anchored = true root.AssemblyLinearVelocity = Vector3.zero root.AssemblyAngularVelocity = Vector3.zero end if not mainWindow.Visible then UserInputService.MouseBehavior = Enum.MouseBehavior.LockCurrentPosition local delta = UserInputService:GetMouseDelta() if delta.Magnitude > 0 then FreecamState.rotY = FreecamState.rotY - math.rad(delta.X * 0.25) FreecamState.rotX = math.clamp(FreecamState.rotX - math.rad(delta.Y * 0.25), math.rad(-89), math.rad(89)) end else UserInputService.MouseBehavior = Enum.MouseBehavior.Default end local camRot = CFrame.Angles(0, FreecamState.rotY, 0) * CFrame.Angles(FreecamState.rotX, 0, 0) local moveDir = Vector3.zero if UserInputService:IsKeyDown(Enum.KeyCode.W) then moveDir = moveDir + camRot.LookVector end if UserInputService:IsKeyDown(Enum.KeyCode.S) then moveDir = moveDir - camRot.LookVector end if UserInputService:IsKeyDown(Enum.KeyCode.A) then moveDir = moveDir - camRot.RightVector end if UserInputService:IsKeyDown(Enum.KeyCode.D) then moveDir = moveDir + camRot.RightVector end if UserInputService:IsKeyDown(Enum.KeyCode.Space) then moveDir = moveDir + Vector3.new(0, 1, 0) end if UserInputService:IsKeyDown(Enum.KeyCode.LeftShift) then moveDir = moveDir - Vector3.new(0, 1, 0) end if moveDir.Magnitude > 0 then FreecamState.pos = FreecamState.pos + (moveDir.Unit * (Config.FreecamSpeed or 40) * dt) end cam.CFrame = CFrame.new(FreecamState.pos) * camRot else if FreecamState.enabled then FreecamState.enabled = false UserInputService.MouseBehavior = Enum.MouseBehavior.Default if root then root.Anchored = false end end end if Config.AntiAim and root then if Config.AntiAimMode == "Spin" then root.CFrame = root.CFrame * CFrame.Angles(0, math.rad(math.min(Config.AntiAimSpeed, 35) * dt * 60), 0) elseif Config.AntiAimMode == "Jitter" then root.CFrame = root.CFrame * CFrame.Angles(0, math.rad(math.random(-45, 45)), 0) elseif Config.AntiAimMode == "Backwards" then root.CFrame = CFrame.lookAt(root.Position, root.Position - cam.CFrame.LookVector) end end if Config.Aimbot and (Config.AimbotKeyMode == "Always" or isAimbotKeyDown) and not mainWindow.Visible then local isScoped = UserInputService:IsMouseButtonPressed(Enum.UserInputType.MouseButton2) or cam.FieldOfView < 70 local isReloading = char and char:GetAttribute("Reloading") if (not Config.AimbotScopeOnly or isScoped) and (not Config.AimbotDisableReloading or not isReloading) then local checkVis = Config.AimbotVisibleOnly and not Config.TrackThroughWalls local target = getClosestTarget(Config.AimbotFOV, checkVis, Config.AimbotPart) if target and cam then local targetPos = target.Position if Config.InstantCameraLock then cam.CFrame = CFrame.lookAt(cam.CFrame.Position, targetPos) else local scrPos, onScreen = cam:WorldToViewportPoint(targetPos) if onScreen and scrPos.Z > 0 then local mPos = UserInputService:GetMouseLocation() local deltaX = scrPos.X - mPos.X local deltaY = scrPos.Y - mPos.Y local smooth = math.clamp(tonumber(Config.AimbotSmoothing) or 0.28, 0.02, 1) if mousemoverel then mousemoverel(deltaX * smooth, deltaY * smooth) elseif typeof(mouse_move) == "function" then mouse_move(deltaX * smooth, deltaY * smooth) else local curCF = cam.CFrame local goalCF = CFrame.lookAt(curCF.Position, targetPos) cam.CFrame = curCF:Lerp(goalCF, math.clamp(smooth * 45 * dt, 0.05, 1)) end else local curCF = cam.CFrame local goalCF = CFrame.lookAt(curCF.Position, targetPos) cam.CFrame = curCF:Lerp(goalCF, math.clamp(Config.AimbotSmoothing * 45 * dt, 0.05, 1)) end end end end end local rageTarget = nil if Config.Ragebot and root and not mainWindow.Visible and hasWeaponEquipped() then rageTarget = getClosestTarget(1000, true, "Head", Config.RagebotTargetPriority) end local candidateTarget = rageTarget if not candidateTarget then if Config.TargetVisualizer or (not isInLobby() and hasWeaponEquipped()) then candidateTarget = getClosestTarget(1000, false, "Head", "Distance") end end if candidateTarget and candidateTarget.Parent then local tChar = candidateTarget.Parent local tHum = tChar:FindFirstChildOfClass("Humanoid") local tRoot = tChar:FindFirstChild("HumanoidRootPart") if tHum and tHum.Health > 0 and tRoot then TargetVis.activeChar = tChar TargetVis.activeHum = tHum TargetVis.activeRoot = tRoot TargetVis.activePlayer = Players:GetPlayerFromCharacter(tChar) else TargetVis.activeChar = nil TargetVis.activeHum = nil TargetVis.activeRoot = nil TargetVis.activePlayer = nil end else TargetVis.activeChar = nil TargetVis.activeHum = nil TargetVis.activeRoot = nil TargetVis.activePlayer = nil end if Config.TargetVisualizer and Config.TargetVisualizerHUD and TargetVis.activePlayer and TargetVis.activeHum and TargetVis.activeHum.Health > 0 then if TargetVis.hudTitle then TargetVis.hudTitle.Text = string.format("Target - %d/%d", math.floor(TargetVis.activeHum.Health), math.floor(TargetVis.activeHum.MaxHealth)) end if TargetVis.lastTargetUserId ~= TargetVis.activePlayer.UserId then TargetVis.lastTargetUserId = TargetVis.activePlayer.UserId if TargetVis.hudAvatar then TargetVis.hudAvatar.Image = "rbxthumb://type=AvatarHeadShot&id=" .. TargetVis.activePlayer.UserId .. "&w=100&h=100" end if TargetVis.hudName then TargetVis.hudName.Text = TargetVis.activePlayer.DisplayName .. " (@" .. TargetVis.activePlayer.Name .. ")" end end if TargetVis.hudHpFill then local hpPct = math.clamp(TargetVis.activeHum.Health / math.max(TargetVis.activeHum.MaxHealth, 1), 0, 1) TargetVis.hudHpFill.Size = UDim2.new(hpPct, 0, 1, 0) end if TargetVis.hudFrame then TargetVis.hudFrame.Visible = true end else if TargetVis.hudFrame then TargetVis.hudFrame.Visible = false end end if Config.TargetVisualizer and Config.TargetVisualizerPath and TargetVis.activeRoot and #TargetVis.cachedWaypoints >= 2 then local wps = TargetVis.cachedWaypoints local numSegments = #wps - 1 local lineCount = math.min(numSegments, #TargetVis.poolLines) for i = 1, lineCount do local pA = wps[i].Position local pB = wps[i + 1].Position local diff = pB - pA local dist = diff.Magnitude local part = TargetVis.poolLines[i] if dist > 0.1 then part.Size = Vector3.new(0.18, 0.06, dist) part.CFrame = CFrame.lookAt((pA + pB) * 0.5, pB) part.Transparency = 0 else part.Transparency = 1 end end for i = lineCount + 1, #TargetVis.poolLines do TargetVis.poolLines[i].Transparency = 1 end local segDists = {} local totalLength = 0 for i = 1, numSegments do local d = (wps[i + 1].Position - wps[i].Position).Magnitude table.insert(segDists, d) totalLength = totalLength + d end local spacing = math.max(tonumber(Config.VisualizerArrowSpacing) or 10, 5) local speed = math.max(tonumber(Config.VisualizerArrowSpeed) or 14, 2) local travelOffset = (tick() * speed) % spacing local numChevrons = math.min(math.floor(totalLength / spacing) + 1, 16, #TargetVis.poolChevrons) local wingLen = 1.1 local curSeg = 1 local curAcc = 0 for cIdx = 1, numChevrons do local distOnPath = (cIdx - 1) * spacing + travelOffset if distOnPath <= totalLength and distOnPath >= 0.5 then while curSeg < numSegments and (curAcc + segDists[curSeg]) < distOnPath do curAcc = curAcc + segDists[curSeg] curSeg = curSeg + 1 end local segLen = segDists[curSeg] or 1 local t = segLen > 0 and ((distOnPath - curAcc) / segLen) or 0 local pos = wps[curSeg].Position:Lerp(wps[curSeg + 1].Position, math.clamp(t, 0, 1)) local fwd = (wps[curSeg + 1].Position - wps[curSeg].Position).Unit local chev = TargetVis.poolChevrons[cIdx] local baseCF = CFrame.lookAt(pos, pos + fwd) chev.Left.CFrame = baseCF * CFrame.Angles(0, math.rad(-140), 0) * CFrame.new(0, 0, wingLen * 0.5) chev.Left.Size = Vector3.new(0.2, 0.08, wingLen) chev.Left.Transparency = 0 chev.Right.CFrame = baseCF * CFrame.Angles(0, math.rad(140), 0) * CFrame.new(0, 0, wingLen * 0.5) chev.Right.Size = Vector3.new(0.2, 0.08, wingLen) chev.Right.Transparency = 0 else TargetVis.poolChevrons[cIdx].Left.Transparency = 1 TargetVis.poolChevrons[cIdx].Right.Transparency = 1 end end for cIdx = numChevrons + 1, #TargetVis.poolChevrons do TargetVis.poolChevrons[cIdx].Left.Transparency = 1 TargetVis.poolChevrons[cIdx].Right.Transparency = 1 end else for _, p in ipairs(TargetVis.poolLines) do p.Transparency = 1 end for _, c in ipairs(TargetVis.poolChevrons) do c.Left.Transparency = 1 c.Right.Transparency = 1 end end if Config.Ragebot and root and not mainWindow.Visible and hasWeaponEquipped() then local target = rageTarget if target and target.Parent and cam then cam.CFrame = CFrame.lookAt(cam.CFrame.Position, target.Position) if Config.RagebotTargetStrafe and hum and root then isTargetStrafing = true local tPos = target.Position local currentAngle = tick() * (tonumber(Config.TargetStrafeSpeed) or 6) local rad = tonumber(Config.TargetStrafeRadius) or 14 local goalWorldPos = Vector3.new( tPos.X + math.cos(currentAngle) * rad, root.Position.Y, tPos.Z + math.sin(currentAngle) * rad ) local moveOffset = goalWorldPos - root.Position local moveDir = Vector3.new(moveOffset.X, 0, moveOffset.Z) if moveDir.Magnitude > 0.5 then hum:Move(moveDir.Unit, false) else hum:Move(Vector3.zero, false) end elseif isTargetStrafing and hum and not Config.Autoplay then isTargetStrafing = false hum:Move(Vector3.zero, false) end if Config.RagebotAutoShoot then local now = tick() if now - lastRageAutoShootTime >= 0.12 then lastRageAutoShootTime = now clickWeapon() end end else if isTargetStrafing and hum and not Config.Autoplay then isTargetStrafing = false hum:Move(Vector3.zero, false) end end else if isTargetStrafing and hum and not Config.Autoplay then isTargetStrafing = false hum:Move(Vector3.zero, false) end end if Config.Autoplay and root and hum and not mainWindow.Visible and hasWeaponEquipped() then if TargetVis.activeRoot and TargetVis.activeHum and TargetVis.activeHum.Health > 0 then if cam then local enemyHead = TargetVis.activeChar and (TargetVis.activeChar:FindFirstChild("Head") or TargetVis.activeChar:FindFirstChild("HitboxHead")) local aimPoint = enemyHead and enemyHead.Position or (TargetVis.activeRoot.Position + Vector3.new(0, 1.5, 0)) cam.CFrame = CFrame.lookAt(cam.CFrame.Position, aimPoint) if Config.RagebotAutoShoot then local dir = aimPoint - cam.CFrame.Position local res = Workspace:Raycast(cam.CFrame.Position, dir, TargetVis.staticRayParams) if not res or (TargetVis.activeChar and res.Instance:IsDescendantOf(TargetVis.activeChar)) then local now = tick() if now - lastRageAutoShootTime >= 0.12 then lastRageAutoShootTime = now pcall(function() if mouse1click then mouse1click() elseif mouse1press and mouse1release then mouse1press() task.wait(0.01) mouse1release() end end) end end end end local tDist = (TargetVis.activeRoot.Position - root.Position).Magnitude local stopDist = tonumber(Config.AutoplayDistance) or 18 if TargetVis.cachedWaypoints and #TargetVis.cachedWaypoints >= 2 then local curWp = TargetVis.cachedWaypoints[TargetVis.autoplayWpIndex] if curWp then local wpDist = (Vector3.new(curWp.Position.X, root.Position.Y, curWp.Position.Z) - root.Position).Magnitude if wpDist < 4.5 and TargetVis.autoplayWpIndex < #TargetVis.cachedWaypoints then TargetVis.autoplayWpIndex = TargetVis.autoplayWpIndex + 1 curWp = TargetVis.cachedWaypoints[TargetVis.autoplayWpIndex] end end if tDist > stopDist and curWp then local moveVec = Vector3.new(curWp.Position.X - root.Position.X, 0, curWp.Position.Z - root.Position.Z) if moveVec.Magnitude > 0.5 then hum:Move(moveVec.Unit, false) end if curWp.Action == Enum.PathWaypointAction.Jump then hum.Jump = true end if TargetVis.lastAutoplayPos and (root.Position - TargetVis.lastAutoplayPos).Magnitude < 0.6 then TargetVis.lastAutoplayStuckTime = TargetVis.lastAutoplayStuckTime + dt if TargetVis.lastAutoplayStuckTime > 0.35 then hum.Jump = true TargetVis.lastAutoplayStuckTime = 0 end else TargetVis.lastAutoplayStuckTime = 0 end TargetVis.lastAutoplayPos = root.Position else if not Config.RagebotTargetStrafe then hum:Move(Vector3.zero, false) end end else local toEnemy = Vector3.new(TargetVis.activeRoot.Position.X - root.Position.X, 0, TargetVis.activeRoot.Position.Z - root.Position.Z) if toEnemy.Magnitude > stopDist then hum:Move(toEnemy.Unit, false) else if not Config.RagebotTargetStrafe then hum:Move(Vector3.zero, false) end end end else if not Config.RagebotTargetStrafe then hum:Move(Vector3.zero, false) end end end if Config.AutomaticGuns and UserInputService:IsMouseButtonPressed(Enum.UserInputType.MouseButton1) and not mainWindow.Visible and hasWeaponEquipped() then local now = tick() if now - lastAutoShootTime >= 0.08 then lastAutoShootTime = now clickWeapon() end end local vmFolder = Workspace:FindFirstChild("ViewModels") or cam if vmFolder and (Config.RainbowGunSkin or Config.HideViewModel or Config.WeaponChams or Config.CustomViewModelFOV or Config.ViewModelXOffset ~= 0 or Config.ViewModelYOffset ~= 0 or Config.ViewModelZOffset ~= 0) then local fpModel = vmFolder:FindFirstChild("FirstPerson") or vmFolder local hue = (tick() * 0.4) % 1 local rainbowColor = Color3.fromHSV(hue, 0.8, 1) for _, part in ipairs(fpModel:GetDescendants()) do if part:IsA("BasePart") then if Config.HideViewModel then part.Transparency = 1 else if Config.RainbowGunSkin and part.Transparency < 1 then part.Color = rainbowColor end if Config.WeaponChams and part.Transparency < 1 then part.Material = Enum.Material.Neon part.Color = Theme.AccentPink end end end end end pcall(function() if not Config.ESP_Master then for _, esp in pairs(espObjects) do hideESP(esp) end return end local camCF = Camera.CFrame local camPos = camCF.Position local camLook = camCF.LookVector local maxDist = tonumber(Config.ESP_MaxDistance) or 500 if isInLobby() then maxDist = math.min(maxDist, 160) end local visibleSkeletonsCount = 0 local maxSkeletons = isInLobby() and 2 or 4 local maxSkeletonDist = isInLobby() and 60 or 120 for p, esp in pairs(espObjects) do local pChar = p.Character local pHum = pChar and pChar:FindFirstChildOfClass("Humanoid") local pRoot = pChar and pChar:FindFirstChild("HumanoidRootPart") local pHead = pChar and (pChar:FindFirstChild("Head") or pChar:FindFirstChild("HitboxHead") or pChar:FindFirstChild("HitboxHeadSmall")) if isEnemyPlayer(p) and pChar and pHum and pRoot and pHead and pHum.Health > 0 then local toRoot = pRoot.Position - camPos local distStuds = toRoot.Magnitude local inFront = toRoot:Dot(camLook) > 0 if (not inFront) or (distStuds > maxDist) then hideESP(esp) else local top3D = pHead.Position + Vector3.new(0, 0.8, 0) local bot3D = pRoot.Position - Vector3.new(0, 2.85, 0) local top2D, tOn = Camera:WorldToViewportPoint(top3D) local bot2D, bOn = Camera:WorldToViewportPoint(bot3D) local head2D, hOn = Camera:WorldToViewportPoint(pHead.Position) local root2D = Camera:WorldToViewportPoint(pRoot.Position) if tOn and bOn and top2D.Z > 0 and bot2D.Z > 0 then esp.isShown = true local boxHeight = math.abs(bot2D.Y - top2D.Y) local boxWidth = boxHeight * 0.65 local boxTopY = top2D.Y local boxLeftX = root2D.X - (boxWidth / 2) if Config.ESP_Boxes then esp.box.Visible = true esp.box.Size = UDim2.new(0, boxWidth, 0, boxHeight) esp.box.Position = UDim2.new(0, boxLeftX, 0, boxTopY) else esp.box.Visible = false end if Config.ESP_Names then esp.nameLbl.Visible = true esp.nameLbl.Position = UDim2.new(0, root2D.X - 60, 0, boxTopY - 16) esp.nameLbl.Size = UDim2.new(0, 120, 0, 14) else esp.nameLbl.Visible = false end if Config.ESP_Distance then local dist = math.floor(distStuds * 0.28) esp.distLbl.Visible = true esp.distLbl.Text = tostring(dist) .. "m" esp.distLbl.Position = UDim2.new(0, root2D.X - 30, 0, bot2D.Y + 2) esp.distLbl.Size = UDim2.new(0, 60, 0, 14) else esp.distLbl.Visible = false end if Config.ESP_Weapon and esp.weapLbl then esp.weapLbl.Visible = true esp.weapLbl.Text = getPlayerWeapon(pChar) esp.weapLbl.Position = UDim2.new(0, root2D.X - 60, 0, (Config.ESP_Distance and (bot2D.Y + 16) or (bot2D.Y + 2))) elseif esp.weapLbl then esp.weapLbl.Visible = false end if Config.ESP_HealthBar then esp.healthBg.Visible = true local hpPct = math.clamp(pHum.Health / pHum.MaxHealth, 0, 1) esp.healthFill.Size = UDim2.new(1, 0, hpPct, 0) else esp.healthBg.Visible = false end if Config.ESP_HeadDot and hOn and head2D.Z > 0 then esp.headDot.Visible = true esp.headDot.Position = UDim2.new(0, head2D.X, 0, head2D.Y) else esp.headDot.Visible = false end if Config.ESP_Chams then esp.highlight.Enabled = true esp.highlight.Adornee = pChar else esp.highlight.Enabled = false end else hideESP(esp) end if Config.ESP_Skeleton and esp.skeletonLines and distStuds <= maxSkeletonDist and tOn and bOn and visibleSkeletonsCount < maxSkeletons then visibleSkeletonsCount = visibleSkeletonsCount + 1 local isR15 = pChar:FindFirstChild("UpperTorso") ~= nil local connections = isR15 and SKELETON_CONNECTIONS_R15 or SKELETON_CONNECTIONS_R6 for i, bonePair in ipairs(connections) do local line = esp.skeletonLines[i] local partA = pChar:FindFirstChild(bonePair[1]) local partB = pChar:FindFirstChild(bonePair[2]) if partA and partB and line then local posA, onA = Camera:WorldToViewportPoint(partA.Position) local posB, onB = Camera:WorldToViewportPoint(partB.Position) if (onA or onB) and posA.Z > 0 and posB.Z > 0 then updateGuiLine(line, Vector2.new(posA.X, posA.Y), Vector2.new(posB.X, posB.Y), 1.2, Theme.AccentPinkLight) else line.Visible = false end elseif line then line.Visible = false end end for i = #connections + 1, #esp.skeletonLines do if esp.skeletonLines[i] then esp.skeletonLines[i].Visible = false end end elseif esp.skeletonLines then for _, line in ipairs(esp.skeletonLines) do line.Visible = false end end if Config.ESP_Tracers and esp.tracerLine and distStuds <= 350 and bot2D and bot2D.Z > 0 and bOn then local vpSize = Camera.ViewportSize local origin2D = Vector2.new(vpSize.X * 0.5, vpSize.Y) local target2D = Vector2.new(root2D.X, bot2D.Y) updateGuiLine(esp.tracerLine, origin2D, target2D, 1.2, Theme.AccentPink) elseif esp.tracerLine then esp.tracerLine.Visible = false end end else hideESP(esp) end end end) end)) table.insert(activeConnections, RunService.Stepped:Connect(function() if not isRunning then return end local char = LocalPlayer.Character if Config.Noclip and char then for _, part in ipairs(char:GetDescendants()) do if part:IsA("BasePart") and part.CanCollide then part.CanCollide = false end end end end)) task.spawn(function() local hackerDetectionTimestamps = {} local hackerNotifiedTimestamps = {} local modNotifiedCache = {} ApplyWeaponModifications() while isRunning do pcall(function() local rem = ReplicatedStorage:FindFirstChild("Remotes") local duels = rem and rem:FindFirstChild("Duels") local matchmaking = rem and rem:FindFirstChild("Matchmaking") if Config.AutoRespawn and duels and duels:FindFirstChild("RespawnNow") then duels.RespawnNow:FireServer() end if Config.AutoQueue and matchmaking and matchmaking:FindFirstChild("JoinQueue") then local targetQueue = Config.QueueMode or "1v1" task.spawn(function() pcall(function() matchmaking.JoinQueue:InvokeServer(targetQueue) end) end) end if (Config.AutoVoteMaps or Config.AutoBanWeapons) then if duels and duels:FindFirstChild("Vote") then if Config.AutoVoteMaps then local topMap = string.split(Config.MapPriority or "Arena", ",")[1]:match("^%s*(.-)%s*$") pcall(function() duels.Vote:FireServer("Map", topMap or "Arena") end) pcall(function() duels.Vote:FireServer(topMap or "Arena") end) end if Config.AutoBanWeapons then local topBan = string.split(Config.WeaponBanPriority or "Grenade Launcher", ",")[1]:match("^%s*(.-)%s*$") pcall(function() duels.Vote:FireServer("Weapon", topBan or "Grenade Launcher") end) pcall(function() duels.Vote:FireServer(topBan or "Grenade Launcher") end) end end pcall(function() local pages = LocalPlayer.PlayerScripts:FindFirstChild("Modules") and LocalPlayer.PlayerScripts.Modules:FindFirstChild("Pages") local pwMod = pages and pages:FindFirstChild("PickWeapons") if pwMod then local pw = require(pwMod) if pw and pw._is_open then if Config.AutoVoteMaps and pw.MapFrame then for _, d in ipairs(pw.MapFrame:GetDescendants()) do if (d:IsA("TextButton") or d:IsA("ImageButton")) and getconnections then for _, c in ipairs(getconnections(d.MouseButton1Click) or {}) do c:Fire() end end end end if Config.AutoBanWeapons and pw._ban_frames then for _, frame in pairs(pw._ban_frames) do if typeof(frame) == "Instance" then for _, btn in ipairs(frame:GetDescendants()) do if (btn:IsA("TextButton") or btn:IsA("ImageButton")) and getconnections then for _, c in ipairs(getconnections(btn.MouseButton1Click) or {}) do c:Fire() end end end end end end end end end) end if Config.AutoLoadout and duels and duels:FindFirstChild("PickWeaponsAheadOfTime") then duels.PickWeaponsAheadOfTime:FireServer() end if Config.HackerDetector then local threshold = tonumber(Config.SpeedThreshold) or 180 local duration = tonumber(Config.SpeedDuration) or 0.75 for _, p in ipairs(Players:GetPlayers()) do if p ~= LocalPlayer and p.Character then local pRoot = p.Character:FindFirstChild("HumanoidRootPart") if pRoot then local vel = pRoot.AssemblyLinearVelocity.Magnitude if vel > threshold then if not hackerDetectionTimestamps[p] then hackerDetectionTimestamps[p] = tick() elseif tick() - hackerDetectionTimestamps[p] >= duration then if not hackerNotifiedTimestamps[p] or tick() - hackerNotifiedTimestamps[p] > 12 then hackerNotifiedTimestamps[p] = tick() if Config.NotifyHackers then ShowNotification("ReefHub", "Hacker Flag: " .. p.DisplayName .. " (" .. math.floor(vel) .. " studs/s)", "WARN", 3.5) end if Config.HackerAutoLoad and Config.HackerProfile and Config.HackerProfile ~= "" then local targetProfile = Config.HackerProfile:match("^%s*(.-)%s*$") if ProfileSystem and ProfileSystem.current ~= targetProfile then local loaded = ProfileSystem.applyProfile(targetProfile, false) if loaded then ShowNotification("ReefHub", "Hacker detected! Loaded profile: " .. targetProfile, "SUCCESS", 3.5) end end end end end else hackerDetectionTimestamps[p] = nil end end end end end if Config.ModDetector then local minRank = tonumber(Config.MinGroupRank) or 200 for _, p in ipairs(Players:GetPlayers()) do if p ~= LocalPlayer and not modNotifiedCache[p] then local isMod = false local rank = p:GetAttribute("GroupRank") if not rank then pcall(function() rank = p:GetRankInGroup(game.CreatorId > 0 and game.CreatorId or 16124806) end) end if rank and rank >= minRank then isMod = true end if not isMod and Config.ModUsernames and Config.ModUsernames ~= "" then for uName in Config.ModUsernames:gmatch("[^,%s]+") do if p.Name:lower() == uName:lower() or p.DisplayName:lower() == uName:lower() then isMod = true break end end end if isMod then modNotifiedCache[p] = true if Config.NotifyMods then ShowNotification("ReefHub", "STAFF / MOD DETECTED: " .. p.DisplayName .. " (Rank: " .. tostring(rank or "Staff") .. ")", "ERROR", 5) end end end end end if Config.AutoPickup then local char = LocalPlayer.Character local root = char and char:FindFirstChild("HumanoidRootPart") if root then for _, obj in ipairs(Workspace:GetChildren()) do if obj.Name:find("Drop") or obj.Name:find("Tripmine") or obj.Name:find("Ammo") then local part = obj:IsA("BasePart") and obj or obj:FindFirstChildWhichIsA("BasePart") if part and (part.Position - root.Position).Magnitude <= Config.PickupRadius then if firetouchinterest then firetouchinterest(root, part, false) firetouchinterest(root, part, true) end end end end end end end) task.wait(1) end end) setMenuVisible(true) ShowNotification("ReefHub", "Loaded ReefHub successfully.", "SUCCESS", 4)]=] local function getGuiParent() if gethui then local ok, h = pcall(gethui) if ok and h then return h end end local ok, cg = pcall(function() return game:GetService("CoreGui") end) if ok and cg then return cg end local players = game:GetService("Players") return players.LocalPlayer:WaitForChild("PlayerGui") end local guiParent = getGuiParent() -- Remove only an older ReefHub key UI if the loader was executed again. pcall(function() local old = guiParent:FindFirstChild("ReefHubKeySystem") if old then old:Destroy() end end) local keyGui = Instance.new("ScreenGui") keyGui.Name = "ReefHubKeySystem" keyGui.ResetOnSpawn = false keyGui.IgnoreGuiInset = true keyGui.ZIndexBehavior = Enum.ZIndexBehavior.Global keyGui.DisplayOrder = 100000 keyGui.Parent = guiParent local function make(className, props, parent) local obj = Instance.new(className) for k, v in pairs(props) do obj[k] = v end obj.Parent = parent return obj end local overlay = make("Frame", { Size = UDim2.fromScale(1, 1), BackgroundColor3 = Color3.fromRGB(0, 0, 0), BackgroundTransparency = 0.35, BorderSizePixel = 0, Active = true, ZIndex = 1 }, keyGui) local panel = make("Frame", { Size = UDim2.fromOffset(460, 380), Position = UDim2.fromScale(0.5, 0.5), AnchorPoint = Vector2.new(0.5, 0.5), BackgroundColor3 = Color3.fromRGB(20, 17, 21), BorderSizePixel = 0, Active = true, ZIndex = 2 }, overlay) make("UICorner", {CornerRadius = UDim.new(0, 8)}, panel) make("UIStroke", { Color = Color3.fromRGB(215, 106, 141), Thickness = 1.2, Transparency = 0.15 }, panel) local topLine = make("Frame", { Size = UDim2.new(1, 0, 0, 3), BackgroundColor3 = Color3.fromRGB(226, 120, 152), BorderSizePixel = 0, ZIndex = 3 }, panel) make("UICorner", {CornerRadius = UDim.new(0, 8)}, topLine) make("TextLabel", { Size = UDim2.new(1, -40, 0, 34), Position = UDim2.fromOffset(20, 22), BackgroundTransparency = 1, Font = Enum.Font.GothamBold, Text = "REEFHUB", TextColor3 = Color3.fromRGB(245, 152, 182), TextSize = 22, TextXAlignment = Enum.TextXAlignment.Left, ZIndex = 3 }, panel) make("TextLabel", { Size = UDim2.new(1, -40, 0, 24), Position = UDim2.fromOffset(20, 55), BackgroundTransparency = 1, Font = Enum.Font.GothamMedium, Text = "ReefHub Key System", TextColor3 = Color3.fromRGB(242, 240, 243), TextSize = 16, TextXAlignment = Enum.TextXAlignment.Left, ZIndex = 3 }, panel) make("TextLabel", { Size = UDim2.new(1, -40, 0, 42), Position = UDim2.fromOffset(20, 87), BackgroundTransparency = 1, Font = Enum.Font.Gotham, Text = "Enter your key to continue.", TextColor3 = Color3.fromRGB(152, 132, 144), TextSize = 12, TextWrapped = true, TextXAlignment = Enum.TextXAlignment.Left, ZIndex = 3 }, panel) local keyBox = make("TextBox", { Size = UDim2.new(1, -40, 0, 48), Position = UDim2.fromOffset(20, 137), BackgroundColor3 = Color3.fromRGB(12, 10, 13), BorderSizePixel = 0, ClearTextOnFocus = false, Font = Enum.Font.GothamMedium, PlaceholderText = "XXXX-XXXX-XXXX", PlaceholderColor3 = Color3.fromRGB(105, 88, 100), Text = "", TextColor3 = Color3.fromRGB(242, 240, 243), TextSize = 14, TextXAlignment = Enum.TextXAlignment.Left, ZIndex = 3 }, panel) make("UICorner", {CornerRadius = UDim.new(0, 6)}, keyBox) local boxStroke = make("UIStroke", { Color = Color3.fromRGB(64, 46, 59), Thickness = 1 }, keyBox) make("UIPadding", { PaddingLeft = UDim.new(0, 14), PaddingRight = UDim.new(0, 14) }, keyBox) local status = make("TextLabel", { Size = UDim2.new(1, -40, 0, 22), Position = UDim2.fromOffset(20, 190), BackgroundTransparency = 1, Font = Enum.Font.Gotham, Text = "", TextColor3 = Color3.fromRGB(235, 75, 75), TextSize = 11, TextXAlignment = Enum.TextXAlignment.Left, ZIndex = 3 }, panel) local getButton = make("TextButton", { Size = UDim2.new(1, -40, 0, 44), Position = UDim2.fromOffset(20, 220), BackgroundColor3 = Color3.fromRGB(226, 120, 152), BorderSizePixel = 0, AutoButtonColor = false, Font = Enum.Font.GothamBold, Text = "Get Key", TextColor3 = Color3.fromRGB(255, 255, 255), TextSize = 13, ZIndex = 3 }, panel) make("UICorner", {CornerRadius = UDim.new(0, 6)}, getButton) local discordButton = make("TextButton", { Size = UDim2.new(1, -40, 0, 40), Position = UDim2.fromOffset(20, 272), BackgroundColor3 = Color3.fromRGB(32, 23, 29), BorderSizePixel = 0, AutoButtonColor = false, Font = Enum.Font.GothamMedium, Text = "Join Discord", TextColor3 = Color3.fromRGB(242, 240, 243), TextSize = 12, ZIndex = 3 }, panel) make("UICorner", {CornerRadius = UDim.new(0, 6)}, discordButton) make("UIStroke", { Color = Color3.fromRGB(68, 48, 62), Thickness = 1 }, discordButton) make("TextLabel", { Size = UDim2.new(1, -40, 0, 22), Position = UDim2.fromOffset(20, 332), BackgroundTransparency = 1, Font = Enum.Font.Gotham, Text = "Format: XXXX-XXXX-XXXX", TextColor3 = Color3.fromRGB(105, 88, 100), TextSize = 10, TextXAlignment = Enum.TextXAlignment.Center, ZIndex = 3 }, panel) local function copyText(value) if setclipboard then return pcall(setclipboard, value) elseif toclipboard then return pcall(toclipboard, value) elseif syn and syn.set_clipboard then return pcall(syn.set_clipboard, value) end return false end local function validKeyFormat(value) return type(value) == "string" and #value == 14 and value:match("^%w+%-%w+%-%w+$") ~= nil and value:match("^%w+$") ~= nil and #({value:match("^(%w+)%-(%w+)%-(%w+)$")}) == 3 end local function exactKeyFormat(value) if type(value) ~= "string" then return false end local a, b, c = value:match("^([A-Za-z0-9]+)%-([A-Za-z0-9]+)%-([A-Za-z0-9]+)$") return a ~= nil and #a == 4 and #b == 4 and #c == 4 end local function normalizeKeyBox() local raw = keyBox.Text or "" raw = raw:gsub("%s+", "") if #raw > 14 then raw = raw:sub(1, 14) end keyBox.Text = raw end keyBox.Focused:Connect(function() boxStroke.Color = Color3.fromRGB(215, 106, 141) end) keyBox.FocusLost:Connect(function() boxStroke.Color = Color3.fromRGB(64, 46, 59) normalizeKeyBox() end) keyBox:GetPropertyChangedSignal("Text"):Connect(function() normalizeKeyBox() getButton.Text = (#keyBox.Text > 0) and "Check Key" or "Get Key" status.Text = "" end) discordButton.MouseButton1Click:Connect(function() local ok = copyText("https://discord.gg/BeXJBSE9Fn") status.TextColor3 = ok and Color3.fromRGB(120, 220, 150) or Color3.fromRGB(235, 75, 75) status.Text = ok and "Discord invite copied." or "Clipboard is not supported by this executor." end) getButton.MouseButton1Click:Connect(function() normalizeKeyBox() if keyBox.Text == "" then local ok = copyText("https://work.ink/2Z3w/keydestination") status.TextColor3 = ok and Color3.fromRGB(120, 220, 150) or Color3.fromRGB(235, 75, 75) status.Text = ok and "Key link copied to clipboard." or "Clipboard is not supported by this executor." return end if not exactKeyFormat(keyBox.Text) then status.TextColor3 = Color3.fromRGB(235, 75, 75) status.Text = "Invalid format. Use XXXX-XXXX-XXXX." return end getButton.Text = "Loading..." getButton.Active = false status.TextColor3 = Color3.fromRGB(120, 220, 150) status.Text = "Key accepted. Loading ReefHub..." task.spawn(function() local compiler = loadstring or load if not compiler then status.TextColor3 = Color3.fromRGB(235, 75, 75) status.Text = "Executor does not support loadstring/load." getButton.Text = "Check Key" getButton.Active = true return end local okCompile, mainChunk = pcall(compiler, MAIN_SCRIPT, "@ReefHub") if not okCompile or type(mainChunk) ~= "function" then status.TextColor3 = Color3.fromRGB(235, 75, 75) status.Text = "ReefHub failed to compile." getButton.Text = "Check Key" getButton.Active = true return end -- Keep the key UI alive while the main script initializes. local okRun, err = pcall(mainChunk) if not okRun then status.TextColor3 = Color3.fromRGB(235, 75, 75) status.Text = "ReefHub failed to load: " .. tostring(err) getButton.Text = "Check Key" getButton.Active = true return end -- Main script initialized successfully; remove the gate. task.delay(0.5, function() pcall(function() if keyGui and keyGui.Parent then keyGui:Destroy() end end) end) end) end)