-- Main Script Kayen Hub | Prison Life local Players = game:GetService("Players") local player = Players.LocalPlayer local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local Lighting = game:GetService("Lighting") local HttpService = game:GetService("HttpService") local player = Players.LocalPlayer while not player do task.wait() player = Players.LocalPlayer end local playerGui = player:WaitForChild("PlayerGui") local camera = workspace.CurrentCamera local defaultCameraFOV = camera.FieldOfView local mouse = player:GetMouse() -- ============ SETTINGS ============ getgenv().SilentAimSettings = { Enabled = true, ForceFieldCheck = true, TargetPart = "HumanoidRootPart", Method = "Raycast", VisibleCheck = true, TeamCheck = true, Smoothing = 0, HitChance = 100, FOVEnabled = true, FOVRadius = 100, FOVColor = Color3.fromRGB(255, 255, 255), FOVThickness = 1, FriendCheck = true, SpinbotSpeed = 0, ESPEnabled = false, ESPNamesEnabled = true, ESPTargetColor = Color3.fromRGB(255, 182, 255), TargetTeams = { Inmates = true, Guards = true, Criminals = true }, HostileCheck = false, TrespassCheck = false, TracerColor = Color3.fromRGB(255, 182, 255), TracerThickness = 0.1, TracerESPEnabled = false, TracerTargetOnly = false, Autoshoot = false, SilentAimRange = 500, CameraFOVEnabled = false, CameraFOV = 70, NoclipEnabled = false, InfiniteJumpEnabled = false, InvisibleEnabled = false, AntiInvisibleEnabled = false, TargetOnPlayer = {}, IgnoreTargets = {}, AimMode = "FOV", GunModEnabled = false, AutoFire = false, FastFirerateEnabled = false, FireRateValue = 0.01, AutoReloadEnabled = false, KillEffectEnabled = false, KillEffectColor = Color3.fromRGB(255, 255, 255), KillEffectFadeDuration = 0.25, KillLogsEnabled = false, HitLogsEnabled = false, HitboxExpanderEnabled = false, HitboxTeamCheck = true, GetWeaponsList = {}, AutoGetWeapons = false, InfiniteStamina = false, HitboxSize = 1, HitboxTransparency = 0.5, HitboxShape = "Box", GunSwitchList = {}, GunSwitchDelay = 0.01, GunSwitchEnabled = false, GunSwitchCycleAll = false, AntiSitEnabled = false, ESPTextColor = Color3.fromRGB(255, 255, 255), ESPTargetTextColor = Color3.fromRGB(255, 182, 255), ESPTargetNameEnabled = false, TargetCustomText = "Target", ESPNameTextSize = 12, ESPTargetNameTextSize = 12, } local Settings = getgenv().SilentAimSettings local currentSkybox = nil local smoothedTargetPosition = nil local currentTarget = nil local lastTargetPlayer = nil local shootRemote = nil -- ============ FOV ============ local screenGui = Instance.new("ScreenGui") screenGui.Name = "FOVGui" screenGui.ResetOnSpawn = false screenGui.Parent = playerGui local fovCircle = Instance.new("Frame", screenGui) fovCircle.Size = UDim2.new(0, Settings.FOVRadius * 2, 0, Settings.FOVRadius * 2) fovCircle.AnchorPoint = Vector2.new(0.5, 0.5) fovCircle.Position = UDim2.new(0.5, 0, 0.5, 0) fovCircle.BackgroundColor3 = Color3.fromRGB(0, 0, 0) fovCircle.BackgroundTransparency = 1 fovCircle.BorderSizePixel = 0 Instance.new("UICorner", fovCircle).CornerRadius = UDim.new(1, 0) Instance.new("UIStroke", fovCircle).Color = Settings.FOVColor fovCircle.UIStroke.Thickness = Settings.FOVThickness fovCircle.Visible = Settings.Enabled and Settings.FOVEnabled function toggleFOVCircle(hide) local stroke = fovCircle:FindFirstChild("UIStroke") if stroke then stroke.Enabled = not hide end end -- ============ FORCEFIELD CHECK ============ function toggleForceFieldCheck(enabled) Settings.ForceFieldCheck = enabled end -- ============ TRACER BEAM SYSTEM ============ local tracerBeams = {} local function removeTracerBeam(plr) local data = tracerBeams[plr] if data then if data.Beam then data.Beam:Destroy() end if data.Start then data.Start:Destroy() end if data.End then data.End:Destroy() end tracerBeams[plr] = nil end end local function removeAllTracerBeams() for plr, _ in pairs(tracerBeams) do removeTracerBeam(plr) end end local function getPlayerTracerColor(plr) if currentTarget and currentTarget.Parent and plr.Character and currentTarget.Parent == plr.Character then return Settings.TracerColor end if plr.TeamColor then return plr.TeamColor.Color elseif plr.Team and plr.Team.TeamColor then return plr.Team.TeamColor.Color end return Settings.TracerColor end local function updateTracerBeam(plr) local char = plr.Character local localChar = player.Character local localHRP = localChar and localChar:FindFirstChild("HumanoidRootPart") local targetHRP = char and char:FindFirstChild("HumanoidRootPart") if not char or not localHRP or not targetHRP then removeTracerBeam(plr) return end local data = tracerBeams[plr] if data then if data.Start.Parent ~= localHRP or data.End.Parent ~= targetHRP then removeTracerBeam(plr) data = nil end end if not data then local attachment0 = Instance.new("Attachment") attachment0.Parent = localHRP local attachment1 = Instance.new("Attachment") attachment1.Parent = targetHRP local beam = Instance.new("Beam") beam.Name = "TracerBeam" beam.Attachment0 = attachment0 beam.Attachment1 = attachment1 beam.FaceCamera = true beam.Parent = targetHRP data = { Beam = beam, Start = attachment0, End = attachment1 } tracerBeams[plr] = data end local color = getPlayerTracerColor(plr) data.Beam.Color = ColorSequence.new(color) data.Beam.Width0 = Settings.TracerThickness data.Beam.Width1 = Settings.TracerThickness data.Beam.Enabled = true end local function getCurrentTargetPlayer() if Settings.Enabled and currentTarget and currentTarget.Parent then local targetChar = currentTarget.Parent if targetChar:IsA("Model") then return Players:GetPlayerFromCharacter(targetChar) end end return nil end local function updateAllTracerBeams() if not Settings.ESPEnabled or not Settings.TracerESPEnabled then removeAllTracerBeams() return end if Settings.TracerTargetOnly then local targetPlayer = getCurrentTargetPlayer() for _, plr in ipairs(Players:GetPlayers()) do if plr ~= player then if plr == targetPlayer then local char = plr.Character local hum = char and char:FindFirstChildOfClass("Humanoid") if char and hum and hum.Health > 0 then updateTracerBeam(plr) else removeTracerBeam(plr) end else removeTracerBeam(plr) end end end return end for _, plr in ipairs(Players:GetPlayers()) do if plr ~= player then local char = plr.Character local hum = char and char:FindFirstChildOfClass("Humanoid") if char and hum and hum.Health > 0 then updateTracerBeam(plr) else removeTracerBeam(plr) end end end for plr, _ in pairs(tracerBeams) do if not plr.Parent or plr == player then removeTracerBeam(plr) end end end -- ============ FOV POSITION ============ local GuiService = game:GetService("GuiService") local function getAdjustedMousePosition() local mousePos = UserInputService:GetMouseLocation() local inset = GuiService:GetGuiInset() return Vector2.new(mousePos.X - inset.X, mousePos.Y - inset.Y) end local function updateFOVPosition() if not fovCircle then return end fovCircle.AnchorPoint = Vector2.new(0.5, 0.5) local usingTouch = UserInputService:GetLastInputType() == Enum.UserInputType.Touch if usingTouch then fovCircle.Position = UDim2.new(0.5, 0, 0.5, 0) else local adjustedMousePos = getAdjustedMousePosition() fovCircle.Position = UDim2.new(0, adjustedMousePos.X, 0, adjustedMousePos.Y) end end -- ============ MAIN FUNCTIONS ============ local function isVisible(targetCharacter) if not targetCharacter then return false end local targetHRP = targetCharacter:FindFirstChild("HumanoidRootPart") if not targetHRP then return false end local localChar = player.Character local localHRP = localChar and localChar:FindFirstChild("HumanoidRootPart") if not localHRP then return false end local origin = targetHRP.Position local direction = localHRP.Position - origin local params = RaycastParams.new() params.FilterType = Enum.RaycastFilterType.Blacklist params.FilterDescendantsInstances = {player.Character, targetCharacter} local result = workspace:Raycast(origin, direction, params) return result == nil end local function isValidTarget(plr) if not plr or plr == player then return false end if not plr.Character then return false end if Settings.IgnoreTargets and #Settings.IgnoreTargets > 0 then for _, name in ipairs(Settings.IgnoreTargets) do if plr.Name == name then return false end end end local hum = plr.Character:FindFirstChildOfClass("Humanoid") local hrp = plr.Character:FindFirstChild("HumanoidRootPart") if not hum or hum.Health <= 0 or not hrp then return false end if Settings.FriendCheck and player:IsFriendsWith(plr.UserId) then return false end if Settings.TeamCheck then if player.Team and plr.Team == player.Team then return false end end if plr.Team and Settings.TargetTeams and not Settings.TargetTeams[plr.Team.Name] then return false end if Settings.SilentAimRange then local localRoot = player.Character and player.Character:FindFirstChild("HumanoidRootPart") if localRoot then local dist = (hrp.Position - localRoot.Position).Magnitude if dist > Settings.SilentAimRange then return false end end end if Settings.VisibleCheck then if not isVisible(plr.Character) then return false end end if Settings.ForceFieldCheck then if plr.Character:FindFirstChildOfClass("ForceField") then return false end end if Settings.HostileCheck or Settings.TrespassCheck then local localTeam = player.Team and player.Team.Name local targetTeam = plr.Team and plr.Team.Name local isGuardOrCriminal = (localTeam == "Guards" or localTeam == "Criminals") local isInmate = (targetTeam == "Inmates") if isGuardOrCriminal and isInmate then local hostile = plr.Character:GetAttribute("Hostile") local trespass = plr.Character:GetAttribute("Trespassing") if Settings.HostileCheck and Settings.TrespassCheck then if not hostile and not trespass then return false end elseif Settings.HostileCheck then if not hostile then return false end elseif Settings.TrespassCheck then if not trespass then return false end end end end return true end -- ============ RANDOM TARGET PART ============ local RandomPartNames = {"Head", "Torso", "Left Arm", "Right Arm", "Left Leg", "Right Leg", "HumanoidRootPart"} local CurrentRandomPart = "HumanoidRootPart" task.spawn(function() while true do if Settings.TargetPart == "Random" then CurrentRandomPart = RandomPartNames[math.random(1, #RandomPartNames)] end task.wait(0.5) end end) local function getEffectiveTargetPart() if Settings.TargetPart == "Random" then return CurrentRandomPart end return Settings.TargetPart end local function getClosestTarget() if Settings.TargetOnPlayer and #Settings.TargetOnPlayer > 0 then local closestTargetPart = nil local closestTargetDist = math.huge for _, targetName in ipairs(Settings.TargetOnPlayer) do local targetPlr = Players:FindFirstChild(targetName) if targetPlr and isValidTarget(targetPlr) then local part = targetPlr.Character:FindFirstChild(getEffectiveTargetPart()) or targetPlr.Character:FindFirstChild("HumanoidRootPart") if part then local screenPos, onScreen = camera:WorldToViewportPoint(part.Position) if onScreen then local screenCenter = Vector2.new(camera.ViewportSize.X/2, camera.ViewportSize.Y/2) local mousePos = getAdjustedMousePosition() local useMouse = not UserInputService.TouchEnabled local screenDist if useMouse then screenDist = (Vector2.new(screenPos.X, screenPos.Y) - Vector2.new(mousePos.X, mousePos.Y)).Magnitude else screenDist = (Vector2.new(screenPos.X, screenPos.Y) - screenCenter).Magnitude end if screenDist < closestTargetDist then closestTargetPart = part closestTargetDist = screenDist end end end end end if closestTargetPart then return closestTargetPart end return nil end local localRoot = player.Character and player.Character:FindFirstChild("HumanoidRootPart") if not localRoot then return nil end local screenCenter = Vector2.new(camera.ViewportSize.X/2, camera.ViewportSize.Y/2) local mousePos = getAdjustedMousePosition() local useMouse = not UserInputService.TouchEnabled local closest = nil local shortestDistance = math.huge if Settings.AimMode == "Distance" then for _, plr in ipairs(Players:GetPlayers()) do if isValidTarget(plr) then local part = plr.Character:FindFirstChild(getEffectiveTargetPart()) or plr.Character:FindFirstChild("HumanoidRootPart") if part then local worldDist = (part.Position - localRoot.Position).Magnitude if worldDist < shortestDistance then closest = part shortestDistance = worldDist end end end end return closest end for _, plr in ipairs(Players:GetPlayers()) do if isValidTarget(plr) then local part = plr.Character:FindFirstChild(getEffectiveTargetPart()) or plr.Character:FindFirstChild("HumanoidRootPart") if part then local screenPos, onScreen = camera:WorldToViewportPoint(part.Position) if onScreen then local screenDist if useMouse then screenDist = (Vector2.new(screenPos.X, screenPos.Y) - Vector2.new(mousePos.X, mousePos.Y)).Magnitude else screenDist = (Vector2.new(screenPos.X, screenPos.Y) - screenCenter).Magnitude end if screenDist <= Settings.FOVRadius then local worldDist = (part.Position - localRoot.Position).Magnitude if worldDist < shortestDistance then closest = part shortestDistance = worldDist end end end end end end return closest end -- ============ SILENT AIM HOOK ============ -- Silent Aim Method by 7zz local ExpectedArguments = { FindPartOnRayWithIgnoreList = { ArgCountRequired = 3, Args = { "Instance", "Ray", "table", "boolean", "boolean" } }, FindPartOnRayWithWhitelist = { ArgCountRequired = 3, Args = { "Instance", "Ray", "table", "boolean" } }, FindPartOnRay = { ArgCountRequired = 2, Args = { "Instance", "Ray", "Instance", "boolean", "boolean" } }, Raycast = { ArgCountRequired = 3, Args = { "Instance", "Vector3", "Vector3", "RaycastParams" } } } local function CalculateChance(Percentage) Percentage = math.floor(Percentage) local chance = math.floor(Random.new().NextNumber(Random.new(), 0, 1) * 100) / 100 return chance <= Percentage / 100 end local function ValidateArguments(Args, RayMethod) local Matches = 0 if #Args < RayMethod.ArgCountRequired then return false end for Pos, Argument in next, Args do if typeof(Argument) == RayMethod.Args[Pos] then Matches = Matches + 1 end end return Matches >= RayMethod.ArgCountRequired end local function getSpreadDirection(Origin, OriginalDirection, HitPart) if typeof(HitPart) ~= "Instance" or not HitPart.Parent then return OriginalDirection end local OriginalDistance = OriginalDirection.Magnitude if OriginalDistance == 0 then OriginalDistance = 1000 end local PartSize = HitPart.Size local SpreadX = (math.random() - 0.5) * (PartSize.X + 2) * 0.2 local SpreadY = (math.random() - 0.5) * (PartSize.Y + 2) * 0.2 local SpreadZ = (math.random() - 0.5) * (PartSize.Z + 2) * 0.2 local RandomOffset = Vector3.new(SpreadX, SpreadY, SpreadZ) if RandomOffset.Magnitude == 0 then RandomOffset = Vector3.new(0.1, 0.1, 0.1) end local BasePosition = smoothedTargetPosition or HitPart.Position local TargetPosition = BasePosition + RandomOffset local NewDirection = (TargetPosition - Origin) local NewDistance = NewDirection.Magnitude if NewDistance == 0 then return OriginalDirection end local FinalDistance = math.max(OriginalDistance, NewDistance) return NewDirection.Unit * FinalDistance end local function getRedirectedDirection(Origin, OriginalDirection) if currentTarget and currentTarget.Parent then return getSpreadDirection(Origin, OriginalDirection, currentTarget) end return nil end -- ============ HIT LOGS ============ local function registerHit(result) if not result then return end local hitPart if typeof(result) == "Instance" then hitPart = result elseif typeof(result) == "table" and result.Instance then hitPart = result.Instance end if not hitPart or not hitPart:IsA("BasePart") then return end local char = hitPart:FindFirstAncestorOfClass("Model") if not char then return end local hitPlayer = Players:GetPlayerFromCharacter(char) if not hitPlayer or hitPlayer == player then return end if Settings.HitLogsEnabled then Library:Notify({ Title = "Hit Logs", Description = "You hit " .. hitPlayer.Name, Time = 3, }) end playHitSound() end local function isLocalPlayerShooting(Arguments, Method, Origin, OriginalDirection) local LocalChar = player.Character if not LocalChar then return false end local rayLength = OriginalDirection and OriginalDirection.Magnitude or 0 if Origin and (Origin - camera.CFrame.Position).Magnitude <= 2 then if rayLength < 30 then return false end end local ignoreList = nil if Method == "Raycast" then local params = Arguments[4] if typeof(params) == "RaycastParams" then ignoreList = params.FilterDescendantsInstances end elseif Method == "FindPartOnRayWithIgnoreList" then if typeof(Arguments[3]) == "table" then ignoreList = Arguments[3] end elseif Method == "FindPartOnRay" or Method == "findPartOnRay" then if typeof(Arguments[3]) == "table" then ignoreList = Arguments[3] elseif typeof(Arguments[4]) == "table" then ignoreList = Arguments[4] end end if ignoreList then for _, inst in next, ignoreList do if inst == LocalChar then return true end end end if Origin and (Origin - camera.CFrame.Position).Magnitude <= 2 then return true end return false end local function tryGetOriginDirection(Method, Arguments) if Method == "FindPartOnRayWithIgnoreList" or Method == "FindPartOnRayWithWhitelist" or Method == "FindPartOnRay" or Method == "findPartOnRay" then local A_Ray = Arguments[2] if typeof(A_Ray) == "Ray" then return A_Ray.Origin, A_Ray.Direction end elseif Method == "Raycast" then local A_Origin = Arguments[2] local A_Direction = Arguments[3] if typeof(A_Origin) == "Vector3" and typeof(A_Direction) == "Vector3" then return A_Origin, A_Direction end end return nil, nil end local oldNamecall oldNamecall = hookmetamethod(game, "__namecall", newcclosure(function(...) local Method = getnamecallmethod() local Arguments = {...} local self = Arguments[1] if Method == "Play" and self.ClassName == "Sound" and not checkcaller() then local tool = self.Parent and self.Parent.Parent local localChar = player.Character if localChar and tool and tool.Parent == localChar and tool.ClassName == "Tool" and tool:GetAttribute("ToolType") == "Gun" then local soundClone = self:Clone() soundClone.Parent = camera soundClone.Playing = true task.delay(5, soundClone.Destroy, soundClone) return end end if shootRemote and self == shootRemote and Method == "FireServer" then local bulletData = Arguments[2] local firstPellet = type(bulletData) == "table" and bulletData[1] or nil local hitInstance = firstPellet and firstPellet[3] or nil task.defer(function() local success, validInstance = pcall(function() return hitInstance and typeof(hitInstance) == "Instance" and hitInstance.Parent and hitInstance.Name ~= "" and hitInstance end) if success and validInstance then registerHit(validInstance) end end) end if self == workspace and not checkcaller() then local Origin, Direction = tryGetOriginDirection(Method, Arguments) if Origin and Direction and isLocalPlayerShooting(Arguments, Method, Origin, Direction) then if Settings.Enabled and Settings.Method:lower() == Method:lower() and not AutoShootRaycastInProgress then local chance = CalculateChance(Settings.HitChance) if chance == true then if Method == "FindPartOnRayWithIgnoreList" and ValidateArguments(Arguments, ExpectedArguments.FindPartOnRayWithIgnoreList) then local NewDir = getRedirectedDirection(Origin, Direction) if NewDir then Arguments[2] = Ray.new(Origin, NewDir) end elseif Method == "FindPartOnRayWithWhitelist" and ValidateArguments(Arguments, ExpectedArguments.FindPartOnRayWithWhitelist) then local NewDir = getRedirectedDirection(Origin, Direction) if NewDir then Arguments[2] = Ray.new(Origin, NewDir) end elseif (Method == "FindPartOnRay" or Method == "findPartOnRay") and ValidateArguments(Arguments, ExpectedArguments.FindPartOnRay) then local NewDir = getRedirectedDirection(Origin, Direction) if NewDir then Arguments[2] = Ray.new(Origin, NewDir) end elseif Method == "Raycast" and ValidateArguments(Arguments, ExpectedArguments.Raycast) then local NewDir = getRedirectedDirection(Origin, Direction) if NewDir then Arguments[3] = NewDir end end end end local rets = table.pack(oldNamecall(unpack(Arguments))) return table.unpack(rets, 1, rets.n) end end return oldNamecall(...) end)) -- ============ MAIN LOOP ============ task.spawn(function() while task.wait(0.1) do if Settings.Enabled then currentTarget = getClosestTarget() else currentTarget = nil end end end) local MaxSmoothTime = 1.5 RunService.RenderStepped:Connect(function(deltaTime) if workspace.CurrentCamera then if Settings.CameraFOVEnabled and Settings.CameraFOV then workspace.CurrentCamera.FieldOfView = Settings.CameraFOV else workspace.CurrentCamera.FieldOfView = defaultCameraFOV end end updateFOVPosition() if fovCircle then fovCircle.Visible = Settings.Enabled and Settings.FOVEnabled fovCircle.Size = UDim2.new(0, Settings.FOVRadius * 2, 0, Settings.FOVRadius * 2) if fovCircle:FindFirstChild("UIStroke") then fovCircle.UIStroke.Thickness = Settings.FOVThickness end end if Settings.Enabled and currentTarget and currentTarget.Parent then if not smoothedTargetPosition then smoothedTargetPosition = currentTarget.Position else local tau = Settings.Smoothing * MaxSmoothTime local alpha = 1 if tau > 0.0001 then alpha = 1 - math.exp(-deltaTime / tau) end smoothedTargetPosition = smoothedTargetPosition:Lerp(currentTarget.Position, alpha) end else smoothedTargetPosition = nil end updateAllTracerBeams() end) local function resetAllHighlights() for _, plr in ipairs(Players:GetPlayers()) do if plr ~= player and plr.Character then local highlight = plr.Character:FindFirstChild("ESPHighlight") if highlight and highlight:IsA("Highlight") then local teamColor = Color3.fromRGB(255, 0, 0) if plr.TeamColor then teamColor = plr.TeamColor.Color elseif plr.Team and plr.Team.TeamColor then teamColor = plr.Team.TeamColor.Color end highlight.FillColor = teamColor highlight.OutlineColor = teamColor highlight.FillTransparency = 0.85 highlight.OutlineTransparency = 0 end local head = plr.Character:FindFirstChild("Head") if head then local billboard = head:FindFirstChild("ESPNameTag") if billboard then local label = billboard:FindFirstChild("NameLabel") or billboard:FindFirstChildOfClass("TextLabel") if label then label.TextColor3 = Settings.ESPTextColor or Color3.fromRGB(255, 255, 255) label.TextSize = Settings.ESPNameTextSize or 12 label.TextStrokeColor3 = Color3.fromRGB(0, 0, 0) end end end end end end local function highlightTarget(targetPlayer) if not targetPlayer or not targetPlayer.Character then return end local targetColor = Settings.ESPTargetColor or Color3.fromRGB(255, 182, 255) local highlight = targetPlayer.Character:FindFirstChild("ESPHighlight") if highlight and highlight:IsA("Highlight") then highlight.FillColor = targetColor highlight.OutlineColor = targetColor highlight.FillTransparency = 0.65 highlight.OutlineTransparency = 0 end end local function ensureTargetNameTag(head) local billboard = head:FindFirstChild("ESPTargetNameTag") if not billboard then billboard = Instance.new("BillboardGui") billboard.Name = "ESPTargetNameTag" billboard.Size = UDim2.new(0, 200, 0, 30) billboard.StudsOffset = Vector3.new(0, 1.5, 0) billboard.AlwaysOnTop = true billboard.Parent = head local label = Instance.new("TextLabel") label.Name = "TargetLabel" label.BackgroundTransparency = 1 label.Size = UDim2.new(1, 0, 1, 0) label.Text = Settings.TargetCustomText or "Target" label.Font = Enum.Font.GothamBold label.TextStrokeTransparency = 0 label.TextStrokeColor3 = Color3.fromRGB(0, 0, 0) label.Parent = billboard end return billboard end local function updateTargetNameTag(targetPlayer) if lastTargetPlayer and lastTargetPlayer ~= targetPlayer and lastTargetPlayer.Character then local oldHead = lastTargetPlayer.Character:FindFirstChild("Head") if oldHead then local oldBillboard = oldHead:FindFirstChild("ESPTargetNameTag") if oldBillboard then oldBillboard:Destroy() end end end if not targetPlayer or not targetPlayer.Character then return end local head = targetPlayer.Character:FindFirstChild("Head") if not head then return end if Settings.ESPTargetNameEnabled then local billboard = ensureTargetNameTag(head) local label = billboard:FindFirstChild("TargetLabel") if label then label.TextColor3 = Settings.ESPTargetTextColor or Color3.fromRGB(255, 182, 255) label.TextSize = Settings.ESPTargetNameTextSize or 12 label.Text = Settings.TargetCustomText or "Target" end else local billboard = head:FindFirstChild("ESPTargetNameTag") if billboard then billboard:Destroy() end end end getgenv().SetTargetCustomText = function(text) if not text or text == "" then text = "Target" end Settings.TargetCustomText = text for _, plr in ipairs(Players:GetPlayers()) do if plr.Character then local head = plr.Character:FindFirstChild("Head") if head then local billboard = head:FindFirstChild("ESPTargetNameTag") if billboard then local label = billboard:FindFirstChild("TargetLabel") if label then label.Text = text end end end end end end local function updateESPSync() if not Settings.ESPEnabled then return end resetAllHighlights() local targetPlayer = getCurrentTargetPlayer() if targetPlayer and targetPlayer.Character then highlightTarget(targetPlayer) end updateTargetNameTag(targetPlayer) lastTargetPlayer = targetPlayer end RunService.RenderStepped:Connect(function() if Settings.ESPEnabled then updateESPSync() end end) -- ============ ESP AUTO REFRESH ============ task.spawn(function() while task.wait(0.5) do if Settings.ESPEnabled then for _, plr in ipairs(Players:GetPlayers()) do if plr ~= player and plr.Character then local hum = plr.Character:FindFirstChildOfClass("Humanoid") if hum and hum.Health > 0 then applyESP(plr) else removeESP(plr) end end end end end end) -- ============ SPINBOT ============ RunService.RenderStepped:Connect(function() if Settings.SpinbotSpeed > 0 then local char = player.Character local hrp = char and char:FindFirstChild("HumanoidRootPart") if hrp then hrp.CFrame = hrp.CFrame * CFrame.Angles(0, math.rad(Settings.SpinbotSpeed), 0) end end end) -- ============ NOCLIP ============ pcall(function() local hook = newcclosure(function() end) for _, obj in next, getgc(false) do if typeof(obj) == "function" then local ok, source = pcall(debug.info, obj, "s") if ok and source and source:find("CharacterCollision") then pcall(hookfunction, obj, hook) end end end end) local noclipConnection = nil local function noclipStep() local char = player.Character if not char then return end for _, part in ipairs(char:GetDescendants()) do if part:IsA("BasePart") and part.CanCollide then part.CanCollide = false end end end local function startNoclip() if noclipConnection then return end noclipConnection = RunService.Stepped:Connect(noclipStep) end local function stopNoclip() if noclipConnection then noclipConnection:Disconnect() noclipConnection = nil end end getgenv().SetNoclipEnabled = function(v) Settings.NoclipEnabled = v == true if Settings.NoclipEnabled then startNoclip() else stopNoclip() end end -- ============ INFINITE JUMP ============ UserInputService.JumpRequest:Connect(function() if Settings.InfiniteJumpEnabled then local char = player.Character local humanoid = char and char:FindFirstChildOfClass("Humanoid") if humanoid then humanoid:ChangeState(Enum.HumanoidStateType.Jumping) end end end) getgenv().SetInfiniteJumpEnabled = function(v) Settings.InfiniteJumpEnabled = v == true end -- ============ INVISIBLE ============ -- Method by A2Flacko local InvisibleRealCFrame = nil local InvisibleAnimationTrack = nil local InvisibleRenderKey = "PrecisionInvisibleRender" local InvisibleOriginalTransparency = {} local InvisibleOriginalCanCollide = {} local function loadInvisibleAnimation(character) local humanoid = character:FindFirstChildOfClass("Humanoid") if not humanoid then return nil end local animator = humanoid:FindFirstChildOfClass("Animator") if not animator then return nil end local isR15 = humanoid.RigType == Enum.HumanoidRigType.R15 local animation = Instance.new("Animation") animation.AnimationId = isR15 and "rbxassetid://18665825805" or "rbxassetid://215384594" local track = animator:LoadAnimation(animation) track.Priority = Enum.AnimationPriority.Action4 track:Play(0, 0.001, 0) animation:Destroy() task.delay(0, function() track.TimePosition = isR15 and 1.95 or 0.4 end) return track end local function stopInvisible() pcall(function() RunService:UnbindFromRenderStep(InvisibleRenderKey) end) if InvisibleAnimationTrack then InvisibleAnimationTrack:Stop() InvisibleAnimationTrack:Destroy() InvisibleAnimationTrack = nil end local character = player.Character local rootPart = character and character:FindFirstChild("HumanoidRootPart") if rootPart and InvisibleRealCFrame then rootPart.CFrame = InvisibleRealCFrame local currentVelocity = rootPart.AssemblyLinearVelocity rootPart.AssemblyLinearVelocity = Vector3.new(currentVelocity.X, 0, currentVelocity.Z) end InvisibleRealCFrame = nil if character then for _, part in ipairs(character:GetDescendants()) do if part:IsA("BasePart") and part ~= rootPart then if InvisibleOriginalTransparency[part] ~= nil then part.Transparency = InvisibleOriginalTransparency[part] end if InvisibleOriginalCanCollide[part] ~= nil then part.CanCollide = InvisibleOriginalCanCollide[part] end end end if rootPart then rootPart.Transparency = 1 end end table.clear(InvisibleOriginalTransparency) table.clear(InvisibleOriginalCanCollide) end local function startInvisible() local character = player.Character if not character then return end local humanoid = character:FindFirstChildOfClass("Humanoid") local rootPart = character:FindFirstChild("HumanoidRootPart") if not humanoid or not rootPart then return end InvisibleAnimationTrack = loadInvisibleAnimation(character) InvisibleRealCFrame = nil table.clear(InvisibleOriginalTransparency) table.clear(InvisibleOriginalCanCollide) for _, part in ipairs(character:GetDescendants()) do if part:IsA("BasePart") and part ~= rootPart then InvisibleOriginalTransparency[part] = part.Transparency InvisibleOriginalCanCollide[part] = part.CanCollide part.Transparency = 0.5 part.CanCollide = false end end rootPart.Transparency = 1 pcall(function() RunService:UnbindFromRenderStep(InvisibleRenderKey) end) RunService:BindToRenderStep(InvisibleRenderKey, Enum.RenderPriority.Camera.Value - 1, function() if Settings.InvisibleEnabled and InvisibleRealCFrame and rootPart.Parent then rootPart.CFrame = InvisibleRealCFrame if InvisibleAnimationTrack then InvisibleAnimationTrack:AdjustWeight(0.001) end end end) end RunService.Heartbeat:Connect(function() if not Settings.InvisibleEnabled then return end local character = player.Character local humanoid = character and character:FindFirstChildOfClass("Humanoid") local rootPart = character and character:FindFirstChild("HumanoidRootPart") if not humanoid or not rootPart then return end local isR15 = humanoid.RigType == Enum.HumanoidRigType.R15 local dropOffset = humanoid.HipHeight + (rootPart.Size.Y / 2) - 1 InvisibleRealCFrame = rootPart.CFrame rootPart.CFrame = (rootPart.CFrame - Vector3.new(0, dropOffset, 0)) * CFrame.Angles(math.rad(isR15 and 180 or 90), 0, 0) local currentVelocity = rootPart.AssemblyLinearVelocity rootPart.AssemblyLinearVelocity = Vector3.new(currentVelocity.X, 0, currentVelocity.Z) if InvisibleAnimationTrack then InvisibleAnimationTrack:AdjustWeight(100) end end) player.CharacterAdded:Connect(function(character) if Settings.InvisibleEnabled then task.wait(0.5) startInvisible() end end) getgenv().SetInvisibleEnabled = function(v) Settings.InvisibleEnabled = v == true if Settings.InvisibleEnabled then startInvisible() else stopInvisible() end end local AntiInvisibleThreads = {} local AntiInvisibleConnections = {} local AntiInvisibleWhitelist = { ["http://www.roblox.com/asset/?id=125750702"] = true, ["http://www.roblox.com/asset/?id=128777973"] = true, ["http://www.roblox.com/asset/?id=128853357"] = true, ["http://www.roblox.com/asset/?id=129423030"] = true, ["http://www.roblox.com/asset/?id=129423131"] = true, ["http://www.roblox.com/asset/?id=129967390"] = true, ["http://www.roblox.com/asset/?id=129967478"] = true, ["http://www.roblox.com/asset/?id=178130996"] = true, ["http://www.roblox.com/asset/?id=180426354"] = true, ["http://www.roblox.com/asset/?id=180435571"] = true, ["http://www.roblox.com/asset/?id=180435792"] = true, ["http://www.roblox.com/asset/?id=180436148"] = true, ["http://www.roblox.com/asset/?id=180436334"] = true, ["http://www.roblox.com/asset/?id=182393478"] = true, ["http://www.roblox.com/asset/?id=182435998"] = true, ["http://www.roblox.com/asset/?id=182436842"] = true, ["http://www.roblox.com/asset/?id=182436935"] = true, ["http://www.roblox.com/asset/?id=182491037"] = true, ["http://www.roblox.com/asset/?id=182491065"] = true, ["http://www.roblox.com/asset/?id=182491248"] = true, ["http://www.roblox.com/asset/?id=182491277"] = true, ["http://www.roblox.com/asset/?id=182491368"] = true, ["http://www.roblox.com/asset/?id=182491423"] = true, ["rbxassetid://279227693"] = true, ["rbxassetid://279229192"] = true, ["rbxassetid://287112271"] = true, ["rbxassetid://388723916"] = true, ["rbxassetid://388726667"] = true, ["rbxassetid://389472570"] = true, ["rbxassetid://405194080"] = true, ["rbxassetid://405212265"] = true, ["rbxassetid://481088553"] = true, ["rbxassetid://481089053"] = true, ["rbxassetid://484200742"] = true, ["rbxassetid://484926359"] = true, ["rbxassetid://83690472549256"] = true, ["rbxassetid://107176344504758"] = true, ["rbxassetid://111090572475133"] = true, ["rbxassetid://113267949064300"] = true, ["rbxassetid://131326339350805"] = true, ["rbxassetid://18665825805"] = true, ["rbxassetid://215384594"] = true, } pcall(function() for _, animation in ipairs(game:GetService("ReplicatedStorage"):GetDescendants()) do if animation:IsA("Animation") then AntiInvisibleWhitelist[animation.AnimationId] = true end end end) local function watchAnimationTrack(track) local animationId = track.Animation and track.Animation.AnimationId if not animationId or AntiInvisibleWhitelist[animationId] then return end if AntiInvisibleThreads[track] then task.cancel(AntiInvisibleThreads[track]) end AntiInvisibleThreads[track] = task.spawn(function() repeat track:AdjustWeight(0, 0) task.wait() until not (track.IsPlaying and Settings.AntiInvisibleEnabled) AntiInvisibleThreads[track] = nil end) end local function hookCharacterAnimations(character) local humanoid = character:WaitForChild("Humanoid", 5) if not humanoid then return end local animator = humanoid:WaitForChild("Animator", 5) if not animator then return end local connection = animator.AnimationPlayed:Connect(function(track) if Settings.AntiInvisibleEnabled then watchAnimationTrack(track) end end) AntiInvisibleConnections[character] = connection for _, track in ipairs(animator:GetPlayingAnimationTracks()) do if Settings.AntiInvisibleEnabled then watchAnimationTrack(track) end end end local function hookPlayerAnimations(plr) if plr == player then return end if plr.Character then task.spawn(hookCharacterAnimations, plr.Character) end plr.CharacterAdded:Connect(function(character) task.spawn(hookCharacterAnimations, character) end) end for _, plr in ipairs(Players:GetPlayers()) do hookPlayerAnimations(plr) end Players.PlayerAdded:Connect(hookPlayerAnimations) getgenv().SetAntiInvisibleEnabled = function(v) Settings.AntiInvisibleEnabled = v == true end local HeadlessMeshId = "rbxassetid://1095708" local KorbloxMeshId = "rbxassetid://101851696" local KorbloxTextureId = "rbxassetid://101851254" local function applyHeadless(character) local head = character:FindFirstChild("Head") if not head then return end head.Transparency = 1 head.CanCollide = false local face = head:FindFirstChildOfClass("Decal") if face then face:Destroy() end for _, v in ipairs(head:GetChildren()) do if v:IsA("SpecialMesh") or v:IsA("CharacterMesh") then v:Destroy() end end local mesh = Instance.new("SpecialMesh") mesh.MeshType = Enum.MeshType.FileMesh mesh.MeshId = HeadlessMeshId mesh.Scale = Vector3.new(0.001, 0.001, 0.001) mesh.Parent = head end local function applyKorblox(character) local rightLeg = character:FindFirstChild("Right Leg") if not rightLeg then return end for _, v in ipairs(rightLeg:GetChildren()) do if v:IsA("SpecialMesh") or v:IsA("CharacterMesh") then v:Destroy() end end local mesh = Instance.new("SpecialMesh") mesh.MeshType = Enum.MeshType.FileMesh mesh.MeshId = KorbloxMeshId mesh.TextureId = KorbloxTextureId mesh.Scale = Vector3.new(1, 1, 1) mesh.Parent = rightLeg end getgenv().SetHeadlessEnabled = function(v) Settings.HeadlessEnabled = v == true if Settings.HeadlessEnabled and player.Character then applyHeadless(player.Character) end end getgenv().SetKorbloxEnabled = function(v) Settings.KorbloxEnabled = v == true if Settings.KorbloxEnabled and player.Character then applyKorblox(player.Character) end end player.CharacterAdded:Connect(function(character) task.wait(1) if Settings.HeadlessEnabled then applyHeadless(character) end if Settings.KorbloxEnabled then applyKorblox(character) end end) -- ============ ANTI SIT ============ local antiSitConnections = {} local function disconnectAntiSit() for _, connection in antiSitConnections do connection:Disconnect() end antiSitConnections = {} end local function hookAntiSit(char) disconnectAntiSit() local humanoid = char:WaitForChild("Humanoid", 5) if not humanoid then return end table.insert(antiSitConnections, humanoid.Seated:Connect(function(active, seatPart) if not Settings.AntiSitEnabled then return end if active and seatPart and not seatPart:IsA("VehicleSeat") then humanoid.Jump = true humanoid.Sit = false end end)) end hookAntiSit(player.Character) player.CharacterAdded:Connect(hookAntiSit) getgenv().SetAntiSitEnabled = function(v) Settings.AntiSitEnabled = v == true end -- ============ ANTI-TASE ============ -- Method by IsaTheNoob local antiTaseEnabled = false local antiTaseConnection = nil local function startAntiTase() if antiTaseConnection then antiTaseConnection:Disconnect() antiTaseConnection = nil end antiTaseConnection = task.spawn(function() local remote = nil pcall(function() remote = ReplicatedStorage:WaitForChild("GunRemotes", 5):WaitForChild("PlayerTased", 5) end) while antiTaseEnabled do if remote then local ok, connections = pcall(getconnections, remote.OnClientEvent) if ok then for _, conn in connections do conn:Disable() end end end task.wait(0.5) end end) end local function stopAntiTase() antiTaseEnabled = false if antiTaseConnection then antiTaseConnection:Disconnect() antiTaseConnection = nil end pcall(function() local remote = ReplicatedStorage:WaitForChild("GunRemotes", 5):WaitForChild("PlayerTased", 5) local ok, connections = pcall(getconnections, remote.OnClientEvent) if ok then for _, conn in connections do conn:Enable() end end end) end function setAntiTaseEnabled(enabled) antiTaseEnabled = enabled if enabled then startAntiTase() else stopAntiTase() end end -- ============ GUN SWITCHER ============ local gunSwitchConnection = nil local GunSwitchWeaponNames = {"M9", "Revolver", "MP5", "AK-47", "M4A1", "FAL", "Remington 870", "M700"} local cycleAllWeaponList = {} local cycleAllConnections = {} local function refreshCycleAllList() local newList = {} local backpack = player:FindFirstChild("Backpack") if backpack then for _, tool in ipairs(backpack:GetChildren()) do if tool:IsA("Tool") and table.find(GunSwitchWeaponNames, tool.Name) then table.insert(newList, tool.Name) end end end local char = player.Character local equipped = char and char:FindFirstChildOfClass("Tool") if equipped and table.find(GunSwitchWeaponNames, equipped.Name) and not table.find(newList, equipped.Name) then table.insert(newList, equipped.Name) end cycleAllWeaponList = newList end local function disconnectCycleAllConnections() for _, conn in ipairs(cycleAllConnections) do conn:Disconnect() end cycleAllConnections = {} end local function hookCycleAllContainers(char) disconnectCycleAllConnections() local backpack = player:FindFirstChild("Backpack") if backpack then table.insert(cycleAllConnections, backpack.ChildAdded:Connect(function(child) if child:IsA("Tool") then refreshCycleAllList() end end)) table.insert(cycleAllConnections, backpack.ChildRemoved:Connect(function(child) if child:IsA("Tool") then refreshCycleAllList() end end)) end if char then table.insert(cycleAllConnections, char.ChildAdded:Connect(function(child) if child:IsA("Tool") then refreshCycleAllList() end end)) table.insert(cycleAllConnections, char.ChildRemoved:Connect(function(child) if child:IsA("Tool") then refreshCycleAllList() end end)) end refreshCycleAllList() end hookCycleAllContainers(player.Character) player.CharacterAdded:Connect(function(char) task.wait(0.1) hookCycleAllContainers(char) end) local function startGunSwitch() if gunSwitchConnection then pcall(task.cancel, gunSwitchConnection) gunSwitchConnection = nil end gunSwitchConnection = task.spawn(function() while Settings.GunSwitchEnabled do local char = player.Character if not char or not char:FindFirstChild("Humanoid") or char.Humanoid.Health <= 0 then task.wait() continue end local humanoid = char.Humanoid local weaponList = Settings.GunSwitchCycleAll and cycleAllWeaponList or Settings.GunSwitchList if not weaponList or #weaponList == 0 then task.wait() continue end for _, weaponName in ipairs(weaponList) do if not Settings.GunSwitchEnabled then break end local weapon = player.Backpack:FindFirstChild(weaponName) if weapon then pcall(function() humanoid:EquipTool(weapon) end) end task.wait(Settings.GunSwitchDelay) end end end) end getgenv().ToggleGunSwitch = function(enabled) Settings.GunSwitchEnabled = enabled == true if Settings.GunSwitchEnabled then startGunSwitch() else if gunSwitchConnection then pcall(task.cancel, gunSwitchConnection) gunSwitchConnection = nil end local char = player.Character local humanoid = char and char:FindFirstChildOfClass("Humanoid") if humanoid then humanoid:UnequipTools() end end end player.CharacterAdded:Connect(function() if Settings.GunSwitchEnabled then task.wait(0.1) startGunSwitch() end end) -- ============ HITBOX EXPANDER ============ local hitboxModified = {} local function resetHitbox(hrp) if not hrp or not hrp.Parent then return end hrp.Size = Vector3.new(2, 2, 1) hrp.Transparency = 1 hrp.CanCollide = false hrp.Material = Enum.Material.Plastic hrp.Shape = Enum.PartType.Block end local function applyHitbox(plr) if plr == player then return end local char = plr.Character if not char then return end local hrp = char:FindFirstChild("HumanoidRootPart") if not hrp then return end local humanoid = char:FindFirstChildOfClass("Humanoid") local isSeated = humanoid and (humanoid.Sit or humanoid.SeatPart ~= nil) if isSeated then if hitboxModified[hrp] then resetHitbox(hrp) hitboxModified[hrp] = nil end return end if Settings.HitboxTeamCheck and player.Team and plr.Team == player.Team then if hitboxModified[hrp] then resetHitbox(hrp) hitboxModified[hrp] = nil end return end local size = Settings.HitboxSize or 1 hrp.Size = Vector3.new(size, size, size) hrp.Transparency = Settings.HitboxTransparency or 0.5 hrp.CanCollide = false hrp.Material = Enum.Material.ForceField hrp.Shape = (Settings.HitboxShape == "Ball") and Enum.PartType.Ball or Enum.PartType.Block hitboxModified[hrp] = true end RunService.Heartbeat:Connect(function() if not Settings.HitboxExpanderEnabled then for hrp in pairs(hitboxModified) do resetHitbox(hrp) end table.clear(hitboxModified) return end for _, plr in ipairs(Players:GetPlayers()) do if plr ~= player and plr.Character then applyHitbox(plr) end end end) Players.PlayerRemoving:Connect(function(plr) if plr.Character then local hrp = plr.Character:FindFirstChild("HumanoidRootPart") if hrp then hitboxModified[hrp] = nil end end end) local gettingWeapon = false local OriginalGetWeaponsPosition = nil local function getWeapon(ToolName) if gettingWeapon then return end gettingWeapon = true local Char = player.Character local Root = Char and Char:FindFirstChild("HumanoidRootPart") if not (Char and Root) then gettingWeapon = false return end if Char:FindFirstChild("ForceField") then gettingWeapon = false return end if player.Backpack:FindFirstChild(ToolName) or Char:FindFirstChild(ToolName) then gettingWeapon = false return end local Giver for _, v in ipairs(workspace:GetDescendants()) do if v.Name == "TouchGiver" and v:GetAttribute("ToolName") == ToolName then Giver = v:FindFirstChildWhichIsA("BasePart") break end end if not Giver then gettingWeapon = false return end game:GetService("StarterGui"):SetCore("SendNotification", { Title = "Get Weapons", Text = "Trying to get " .. ToolName .. "...", Duration = 3, }) local OriginalGiverCFrame = Giver.CFrame local UndergroundCFrame = OriginalGiverCFrame - Vector3.new(0, 15.5, 0) Giver.CanTouch = true Giver.CFrame = UndergroundCFrame Root.Anchored = true Char:PivotTo(UndergroundCFrame + Vector3.new(0, 5, 0)) task.wait(0.25) firetouchinterest(Giver, Root, 0) task.wait(0.3) firetouchinterest(Giver, Root, 1) if Giver and Giver.Parent then Giver.CFrame = OriginalGiverCFrame end local function HasWeapon() Char = player.Character return player.Backpack:FindFirstChild(ToolName) ~= nil or (Char and Char:FindFirstChild(ToolName) ~= nil) end local Obtained = false local Elapsed = 0 while Elapsed < 3 do if HasWeapon() then Obtained = true break end task.wait(0.1) Elapsed = Elapsed + 0.1 end if not Obtained then Elapsed = 0 while Elapsed < 2.5 do if HasWeapon() then Obtained = true break end task.wait(0.1) Elapsed = Elapsed + 0.1 end end if Obtained then game:GetService("StarterGui"):SetCore("SendNotification", { Title = "Get Weapons", Text = "Successfully got " .. ToolName .. "!", Duration = 3, }) else game:GetService("StarterGui"):SetCore("SendNotification", { Title = "Get Weapons", Text = "Failed to get " .. ToolName .. ".", Duration = 3, }) end Root.Anchored = false gettingWeapon = false end getgenv().GetWeapons = function() task.spawn(function() local Char = player.Character local Root = Char and Char:FindFirstChild("HumanoidRootPart") if Root then OriginalGetWeaponsPosition = Root.CFrame end for _, ToolName in ipairs(Settings.GetWeaponsList) do getWeapon(ToolName) end Char = player.Character if Char and OriginalGetWeaponsPosition then Char:PivotTo(OriginalGetWeaponsPosition) end end) end player.CharacterAdded:Connect(function(Character) if not Settings.AutoGetWeapons then return end task.spawn(function() Character:WaitForChild("HumanoidRootPart", 5) local StartTime = tick() while Character:FindFirstChild("ForceField") and tick() - StartTime < 10 do task.wait(0.25) end task.wait(0.5) if player.Character == Character then getgenv().GetWeapons() end end) end) -- ============ INFINITE STAMINA ============ RunService.Heartbeat:Connect(function() local char = player.Character if not char then return end local antiJump = char:FindFirstChild("AntiJump") if antiJump then antiJump.Disabled = Settings.InfiniteStamina end end) -- ============ VEHICLE MOD ============ local carContainer = workspace:WaitForChild("CarContainer") local listcars = {} local carNameLookup = {} local function refreshCarList() listcars = {} carNameLookup = {} for _, car in ipairs(carContainer:GetChildren()) do local seat = car:FindFirstChild("VehicleSeat", true) if seat and car:FindFirstChild("Wheels") and not seat.Occupant then table.insert(listcars, car.Name) carNameLookup[car.Name] = car end end end local currentCar = nil local seatConnection = nil local function getCarFromSeat(seat) local model = seat local iterations = 0 while model and model.Parent and model.Parent ~= carContainer do model = model.Parent iterations += 1 if iterations > 20 then return nil end end if model and model.Parent == carContainer then return model end return nil end local function updateCurrentCar(_, seatPart) if seatPart and seatPart:IsA("VehicleSeat") then currentCar = getCarFromSeat(seatPart) else currentCar = nil end end local function hookCharacterSeat(char) task.spawn(function() local humanoid = char:WaitForChild("Humanoid", 5) if not humanoid or not char.Parent then return end if seatConnection then seatConnection:Disconnect() seatConnection = nil end currentCar = nil seatConnection = humanoid.Seated:Connect(updateCurrentCar) end) end if player.Character then hookCharacterSeat(player.Character) end player.CharacterAdded:Connect(hookCharacterSeat) local function findLocalCar() return currentCar end local function flipCarVertical() local car = findLocalCar() if not car then return end local main = car:FindFirstChild("Body") and car.Body:FindFirstChild("Main") if not main then return end car.PrimaryPart = main local curCF = main.CFrame local x, y, z = curCF:ToEulerAnglesYXZ() local flipped = CFrame.new(curCF.Position) * CFrame.Angles(x + math.pi, y, z) car:PivotTo(flipped) end local function teleportCarToMe(carName) local car = carNameLookup[carName] if not car or not car:IsA("Model") then return false end local character = player.Character local humanoidRootPart = character and character:FindFirstChild("HumanoidRootPart") if not humanoidRootPart then return false end local body = car:FindFirstChild("Body") local main = body and body:FindFirstChild("Main") if not main then return false end local vehicleSeat = car:FindFirstChild("VehicleSeat", true) if not vehicleSeat then return false end local targetPos = humanoidRootPart.Position + Vector3.new(0, 3, 0) local curCF = main.CFrame local x, y, z = curCF:ToEulerAnglesYXZ() local targetCFrame = CFrame.new(targetPos) * CFrame.Angles(x, y, z) local partData = {} for _, v in ipairs(car:GetDescendants()) do if v:IsA("BasePart") then table.insert(partData, { part = v, wasAnchored = v.Anchored, wasCanCollide = v.CanCollide }) v.Anchored = true v.CanCollide = false end end car.PrimaryPart = main local characterParts = {} for _, v in ipairs(character:GetDescendants()) do if v:IsA("BasePart") then table.insert(characterParts, { part = v, wasCanCollide = v.CanCollide }) v.CanCollide = false end end local success = false for attempt = 1, 20 do pcall(function() car:PivotTo(targetCFrame) end) task.wait() local distance = (main.Position - targetPos).Magnitude if distance < 5 then success = true break end if attempt % 5 == 0 then targetCFrame = CFrame.new(targetPos + Vector3.new(math.random(-2, 2), 0, math.random(-2, 2))) * CFrame.Angles(x, y, z) end end task.spawn(function() for attempt = 1, 20 do if not character or not character:FindFirstChild("HumanoidRootPart") then break end pcall(function() character:PivotTo(vehicleSeat.CFrame + Vector3.new(0, 1, 0)) end) task.wait() local hrp = character:FindFirstChild("HumanoidRootPart") if hrp and (hrp.Position - vehicleSeat.Position).Magnitude < 3 then break end end end) task.wait(0.2) local restoreConnection restoreConnection = RunService.RenderStepped:Connect(function() restoreConnection:Disconnect() for _, data in ipairs(characterParts) do if data.part and data.part.Parent then data.part.CanCollide = data.wasCanCollide end end for _, data in ipairs(partData) do if data.part and data.part.Parent then data.part.Anchored = data.wasAnchored data.part.CanCollide = data.wasCanCollide end end end) return success end getgenv().FlipVehicle = function() flipCarVertical() end getgenv().RefreshCarList = function() refreshCarList() return listcars end getgenv().BringCar = function(carName) if carName then teleportCarToMe(carName) end end getgenv().TeleportToCar = function(carName) local car = carNameLookup[carName] if car then local vehicleseat = car:FindFirstChild("VehicleSeat", true) if vehicleseat and player.Character then player.Character:MoveTo(vehicleseat.Position) end end end -- ============ VEHICLE FLY ============ task.spawn(function() local MOVE_STEP = 1 local TOL = 0.1 local baseY, targetY, lastSlider = nil, nil, nil while true do task.wait() if not Settings.VehicleFlyEnabled then baseY, targetY, lastSlider = nil, nil, nil if workspace:FindFirstChild("CarPart") then workspace.CarPart:Destroy() end continue end local car = findLocalCar() if not car then if workspace:FindFirstChild("CarPart") then workspace.CarPart:Destroy() end baseY, targetY, lastSlider = nil, nil, nil continue end local main = car:FindFirstChild("Body") and car.Body:FindFirstChild("Main") if not main then continue end car.PrimaryPart = main local curCF = main.CFrame local curPos = curCF.Position local sliderVal = Settings.VehicleFlyHeight or 0 if not workspace:FindFirstChild("CarPart") then local p = Instance.new("Part") p.Size = Vector3.new(100, 1, 100) p.Name = "CarPart" p.Anchored = true p.CanCollide = true p.Material = Enum.Material.SmoothPlastic p.Color = Color3.fromRGB(100, 100, 100) p.Transparency = 1 p.Parent = workspace end if not baseY then baseY = curPos.Y targetY = baseY + sliderVal lastSlider = sliderVal elseif sliderVal ~= lastSlider then targetY = baseY + sliderVal lastSlider = sliderVal end if curPos.Y < targetY - TOL then local x, y, z = curCF:ToEulerAnglesYXZ() local newY = math.min(curPos.Y + MOVE_STEP, targetY) car:PivotTo(CFrame.new(Vector3.new(curPos.X, newY, curPos.Z)) * CFrame.Angles(x, y, z)) elseif curPos.Y > targetY + TOL then local x, y, z = curCF:ToEulerAnglesYXZ() local newY = math.max(curPos.Y - MOVE_STEP, targetY) car:PivotTo(CFrame.new(Vector3.new(curPos.X, newY, curPos.Z)) * CFrame.Angles(x, y, z)) end end end) RunService.Heartbeat:Connect(function() pcall(function() local carPart = workspace:FindFirstChild("CarPart") if not carPart then return end local car = findLocalCar() if not car or not car:FindFirstChild("Wheels") then return end local wheel = car.Wheels:FindFirstChildWhichIsA("BasePart") if not wheel then return end carPart.Position = Vector3.new(wheel.Position.X, wheel.Position.Y - 1.3, wheel.Position.Z) end) end) -- ============ VEHICLE SPEED ============ local VehicleTorqueDefault = 5 local VehicleTurnSpeedDefault = 5 RunService.RenderStepped:Connect(function() local car = findLocalCar() if car then local rwd = car:FindFirstChild("RWD") local lw = car:FindFirstChild("LW") and car.LW:FindFirstChild("VS") local rw = car:FindFirstChild("RW") and car.RW:FindFirstChild("VS") local vehicleseat = car:FindFirstChild("Body") and car.Body:FindFirstChild("VehicleSeat") if rwd and lw and rw and vehicleseat then if Settings.VehicleMaxSpeedEnabled then local maxSpeed = Settings.VehicleMaxSpeed or 110 rwd.MaxSpeed = maxSpeed lw.MaxSpeed = maxSpeed rw.MaxSpeed = maxSpeed vehicleseat.MaxSpeed = maxSpeed rwd.Torque = VehicleTorqueDefault lw.Torque = VehicleTorqueDefault rw.Torque = VehicleTorqueDefault vehicleseat.Torque = VehicleTorqueDefault rwd.TurnSpeed = VehicleTurnSpeedDefault lw.TurnSpeed = VehicleTurnSpeedDefault rw.TurnSpeed = VehicleTurnSpeedDefault vehicleseat.TurnSpeed = VehicleTurnSpeedDefault else rwd.TurnSpeed = 1 lw.TurnSpeed = 1 rw.TurnSpeed = 1 vehicleseat.TurnSpeed = 1 end end end end) -- ============ AUTOSHOOT ============ local ReplicatedStorage = game:GetService("ReplicatedStorage") pcall(function() local gunRemotes = ReplicatedStorage:WaitForChild("GunRemotes", 5) if gunRemotes then shootRemote = gunRemotes:WaitForChild("ShootEvent", 5) end end) local AutoShootGunTracers = nil pcall(function() local sharedModules = ReplicatedStorage:WaitForChild("SharedModules", 5) local tracersModule = sharedModules and sharedModules:WaitForChild("GunTracers", 5) if tracersModule then AutoShootGunTracers = require(tracersModule) end end) local function getEquippedWeapon() local char = player.Character if not char then return nil end for _, child in ipairs(char:GetChildren()) do if child:IsA("Tool") then return child end end return nil end local autoShootParams = RaycastParams.new() autoShootParams.FilterType = Enum.RaycastFilterType.Exclude autoShootParams.CollisionGroup = "ClientBullet" local lastAutoShotByWeapon = {} local AutoShootRaycastInProgress = false local function updateAmmoLabel(weapon, currentAmmo) local ok, gunFrame = pcall(function() return player.PlayerGui:WaitForChild("Home", 3) :WaitForChild("hud", 3) :WaitForChild("BottomRightFrame", 3) :WaitForChild("GunFrame", 3) end) if not ok or not gunFrame then return end local bulletsLabel = gunFrame:FindFirstChild("BulletsLabel") if not bulletsLabel then return end local behavior = weapon:GetAttribute("Behavior") if behavior == "Sniper" then local stored = weapon:GetAttribute("StoredAmmo") or 0 bulletsLabel.Text = currentAmmo .. " | " .. stored else local maxAmmo = weapon:GetAttribute("MaxAmmo") or currentAmmo bulletsLabel.Text = currentAmmo .. "/" .. maxAmmo end end local function castPelletRay(weapon, origin, aimPoint, spreadRadius) local roll = math.random() local behavior = weapon:GetAttribute("Behavior") if behavior == "Sniper" or behavior == "Shotgun" then roll = math.sqrt(roll) end local range = weapon:GetAttribute("Range") or 1000 local lookCFrame = CFrame.new(origin, aimPoint) local rollAngle = 360 - 720 * math.random() local direction = (lookCFrame * CFrame.Angles(0, 0, math.rad(rollAngle)) * CFrame.Angles(0, roll * spreadRadius, 0)).LookVector * range AutoShootRaycastInProgress = true local result = workspace:Raycast(origin, direction, autoShootParams) AutoShootRaycastInProgress = false local hitInstance = result and result.Instance or nil local hitPosition = result and result.Position or (origin + direction) return hitInstance, hitPosition end local function performAutoShot(weapon) if not weapon or not shootRemote then return end if not currentTarget or not currentTarget.Parent then return end local behavior = weapon:GetAttribute("Behavior") local reloadSession = weapon:GetAttribute("Local_ReloadSession") or 0 local currentAmmo = weapon:GetAttribute("Local_CurrentAmmo") or 0 if reloadSession ~= 0 then return end if currentAmmo <= 0 then return end local char = player.Character local head = char and char:FindFirstChild("Head") if not head then return end local origin = head.Position autoShootParams.FilterDescendantsInstances = { char } local aimPoint = currentTarget.Position local redirected = getRedirectedDirection(origin, aimPoint - origin) if redirected then aimPoint = origin + redirected end local projectileCount = weapon:GetAttribute("ProjectileCount") or 1 local spreadRadius = weapon:GetAttribute("SpreadRadius") or 0 local muzzle = weapon:FindFirstChild("Muzzle") local muzzlePos = muzzle and muzzle.Position or origin local bulletData = {} for i = 1, projectileCount do local hitInstance, hitPosition = castPelletRay(weapon, origin, aimPoint, spreadRadius) table.insert(bulletData, { origin, hitPosition, hitInstance }) if AutoShootGunTracers then pcall(function() if behavior == "Sniper" then AutoShootGunTracers.createSniper(muzzlePos, hitPosition) elseif behavior == "Taser" then AutoShootGunTracers.createTaser(muzzlePos, hitPosition) else AutoShootGunTracers.createBullet(muzzlePos, hitPosition) end end) end end shootRemote:FireServer(bulletData) local newAmmo = currentAmmo - 1 weapon:SetAttribute("Local_CurrentAmmo", newAmmo) updateAmmoLabel(weapon, newAmmo) pcall(function() local handle = weapon:FindFirstChild("Handle") if handle then local shootSound = handle:FindFirstChild("ShootSound") if shootSound then local cloned = shootSound:Clone() cloned.Parent = handle cloned:Play() game:GetService("Debris"):AddItem(cloned, 5) end local flare = handle:FindFirstChild("Flare") if flare then flare.Enabled = true task.delay(0.05, function() if flare then flare.Enabled = false end end) end end end) end RunService.Heartbeat:Connect(function() if not shootRemote then return end if not Settings.Enabled or not Settings.Autoshoot then return end if not currentTarget or not currentTarget.Parent then return end local char = player.Character local myHumanoid = char and char:FindFirstChildOfClass("Humanoid") if not myHumanoid or myHumanoid.Health <= 0 then return end local weapon = getEquippedWeapon() if not weapon then return end local fireRate = weapon:GetAttribute("FireRate") or 0.1 local weaponAutoFireAttr = weapon:GetAttribute("AutoFire") if not weaponAutoFireAttr then fireRate = fireRate * 1.5 end if weapon.Name == "Remington 870" then fireRate = 0.45 end local lastShotTime = lastAutoShotByWeapon[weapon.Name] or 0 if (tick() - lastShotTime) < fireRate then return end lastAutoShotByWeapon[weapon.Name] = tick() performAutoShot(weapon) end) -- ============ KEYBINDS ============ UserInputService.InputBegan:Connect(function(input, processed) if processed then return end if Settings.FastSwitchKeyCode and input.KeyCode == Settings.FastSwitchKeyCode then return end if Settings.VehicleFlyKeyCode and input.KeyCode == Settings.VehicleFlyKeyCode then Settings.VehicleFlyEnabled = not Settings.VehicleFlyEnabled return end if input.KeyCode == Enum.KeyCode.E or input.KeyCode == Enum.KeyCode.LeftControl then Settings.Enabled = not Settings.Enabled if fovCircle then fovCircle.Visible = Settings.Enabled and Settings.FOVEnabled end if not Settings.Enabled then currentTarget = nil smoothedTargetPosition = nil end end end) player.CharacterAdded:Connect(function() camera.CameraType = Enum.CameraType.Custom if Settings.ESPEnabled then task.wait(0.5) updateESP() end end) -- ============ SKYBOXES ============ local skyboxes = { ["Gray Skybox"] = { SkyboxBk = "rbxassetid://154987705", SkyboxDn = "rbxassetid://154987705", SkyboxFt = "rbxassetid://154987705", SkyboxLf = "rbxassetid://154987705", SkyboxRt = "rbxassetid://154987705", SkyboxUp = "rbxassetid://154987705" }, ["2knw & Donk666 Skybox"] = { SkyboxBk = "rbxassetid://121222457209872", SkyboxDn = "rbxassetid://121222457209872", SkyboxFt = "rbxassetid://121222457209872", SkyboxLf = "rbxassetid://121222457209872", SkyboxRt = "rbxassetid://121222457209872", SkyboxUp = "rbxassetid://121222457209872" }, ["Snow Skybox"] = { SkyboxBk = "rbxassetid://155657655", SkyboxDn = "rbxassetid://155674246", SkyboxFt = "rbxassetid://155657609", SkyboxLf = "rbxassetid://155657671", SkyboxRt = "rbxassetid://155657619", SkyboxUp = "rbxassetid://155674931" }, ["Cartoon Skybox"] = { SkyboxBk = "rbxassetid://15114954171", SkyboxDn = "rbxassetid://15114958869", SkyboxFt = "rbxassetid://15114963740", SkyboxLf = "rbxassetid://15114957947", SkyboxRt = "rbxassetid://15114955238", SkyboxUp = "rbxassetid://15114948718" }, ["Lince Skybox"] = { SkyboxBk = "rbxassetid://102112718813044", SkyboxDn = "rbxassetid://102112718813044", SkyboxFt = "rbxassetid://102112718813044", SkyboxLf = "rbxassetid://102112718813044", SkyboxRt = "rbxassetid://102112718813044", SkyboxUp = "rbxassetid://102112718813044" }, ["Red Skybox"] = { SkyboxBk = "rbxassetid://401664839", SkyboxDn = "rbxassetid://401664862", SkyboxFt = "rbxassetid://401664960", SkyboxLf = "rbxassetid://401664881", SkyboxRt = "rbxassetid://401664901", SkyboxUp = "rbxassetid://401664936" }, ["Slam Skybox"] = { SkyboxBk = "rbxassetid://111576755001670", SkyboxDn = "rbxassetid://111576755001670", SkyboxFt = "rbxassetid://111576755001670", SkyboxLf = "rbxassetid://111576755001670", SkyboxRt = "rbxassetid://111576755001670", SkyboxUp = "rbxassetid://111576755001670" }, ["Green Eyeball Skybox"] = { SkyboxBk = "rbxassetid://113857258921684", SkyboxDn = "rbxassetid://131099902234134", SkyboxFt = "rbxassetid://98342317659302", SkyboxLf = "rbxassetid://130914716725043", SkyboxRt = "rbxassetid://93970360759256", SkyboxUp = "rbxassetid://135000456639127" }, ["Morioh Skybox"] = { SkyboxBk = "rbxassetid://414118015", SkyboxDn = "rbxassetid://414117901", SkyboxFt = "rbxassetid://414117817", SkyboxLf = "rbxassetid://414118150", SkyboxRt = "rbxassetid://414118255", SkyboxUp = "rbxassetid://414118438" }, ["Rainy Skybox"] = { SkyboxBk = "rbxassetid://4498828382", SkyboxDn = "rbxassetid://4498828812", SkyboxFt = "rbxassetid://4498829917", SkyboxLf = "rbxassetid://4498830911", SkyboxRt = "rbxassetid://4498830417", SkyboxUp = "rbxassetid://4498831746" }, ["Rusk1ddski Skybox"] = { SkyboxBk = "rbxassetid://139878758241374", SkyboxDn = "rbxassetid://139878758241374", SkyboxFt = "rbxassetid://139878758241374", SkyboxLf = "rbxassetid://139878758241374", SkyboxRt = "rbxassetid://139878758241374", SkyboxUp = "rbxassetid://139878758241374" } } function setSkybox(name) if currentSkybox then pcall(function() if Lighting:FindFirstChild(currentSkybox) then Lighting[currentSkybox]:Destroy() end end) currentSkybox = nil end if name == "None" then return end local data = skyboxes[name] if not data then return end local sky = Instance.new("Sky", Lighting) sky.Name = name for prop, value in pairs(data) do sky[prop] = value end currentSkybox = name end -- ============ CUSTOM BULLET COLOR ============ local CustomBulletColorEnabled = false local CustomBulletColor = Color3.fromRGB(255, 255, 0) function setCustomBulletColorEnabled(enabled) CustomBulletColorEnabled = enabled end function setBulletColorRGB(color) CustomBulletColor = color end local ReplicatedStorage_Tracers = game:GetService("ReplicatedStorage") local BulletDebris = game:GetService("Debris") local BulletTweenService = game:GetService("TweenService") local TaserFadeTween = TweenInfo.new(0.8, Enum.EasingStyle.Quad, Enum.EasingDirection.In) local SniperFadeTween = TweenInfo.new(2.8, Enum.EasingStyle.Quad, Enum.EasingDirection.In) pcall(function() local sharedModules = ReplicatedStorage_Tracers:WaitForChild("SharedModules", 5) if not sharedModules then return end local GunTracersModule = sharedModules:WaitForChild("GunTracers", 5) if not GunTracersModule then return end local GunTracers = require(GunTracersModule) function GunTracers.createTaser(p8, p9) local dist = (p8 - p9).magnitude local mid = (p8 + p9) / 2 local part = Instance.new("Part") part.Name = "RayPart" part.Material = Enum.Material.Neon part.Anchored = true part.Transparency = 0.5 part.formFactor = Enum.FormFactor.Custom part.Size = Vector3.new(0.2, 0.2, dist) part.CFrame = CFrame.new(mid, p9) part.CanCollide = false part.CanQuery = false part.CanTouch = false if CustomBulletColorEnabled then part.Color = CustomBulletColor else part.BrickColor = BrickColor.new("Cyan") end BulletDebris:AddItem(part, 2) local light = Instance.new("SurfaceLight", part) light.Color = CustomBulletColorEnabled and CustomBulletColor or Color3.fromRGB(0, 234, 255) light.Range = 7 light.Face = "Bottom" light.Brightness = 5 light.Angle = 180 BulletTweenService:Create(part, TaserFadeTween, { Transparency = 1 }):Play() BulletTweenService:Create(light, TaserFadeTween, { Brightness = 0 }):Play() part.Parent = workspace.CurrentCamera end function GunTracers.createSniper(p16, p17) local dist = (p16 - p17).magnitude local mid = (p16 + p17) / 2 local part = Instance.new("Part") part.Name = "RayPart" part.Material = Enum.Material.Neon part.Anchored = true part.Transparency = 0.5 part.formFactor = Enum.FormFactor.Custom part.Size = Vector3.new(0.17, 0.17, dist) part.CFrame = CFrame.new(mid, p17) part.CanCollide = false part.CanQuery = false part.CanTouch = false if CustomBulletColorEnabled then part.Color = CustomBulletColor else part.BrickColor = BrickColor.new("Medium stone grey") end BulletDebris:AddItem(part, 4) BulletTweenService:Create(part, SniperFadeTween, { Transparency = 1 }):Play() part.Parent = workspace.CurrentCamera end function GunTracers.createBullet(p21, p22) local dist = (p21 - p22).magnitude local mid = (p21 + p22) / 2 local part = Instance.new("Part") part.Name = "RayPart" part.Material = Enum.Material.Neon part.Anchored = true part.Transparency = 0.5 part.formFactor = Enum.FormFactor.Custom part.Size = Vector3.new(0.1, 0.1, dist) part.CFrame = CFrame.new(mid, p22) part.CanCollide = false part.CanQuery = false part.CanTouch = false if CustomBulletColorEnabled then part.Color = CustomBulletColor else part.BrickColor = BrickColor.Yellow() end BulletDebris:AddItem(part, 0.05) part.Parent = workspace.CurrentCamera end end) -- ============ WEAPON MOD (GUN MOD) ============ local ToolPropertiesFolder = nil pcall(function() ToolPropertiesFolder = game:GetService("ReplicatedStorage"):WaitForChild("SharedModules", 5):WaitForChild("ToolProperties", 5) end) local gunModNames = {"AK-47", "Remington 870", "M9", "M700", "M4A1", "FAL", "MP5", "Revolver"} local function applyGunMod(tool) if not tool or not tool:IsA("Tool") then return end if not table.find(gunModNames, tool.Name) then return end if not Settings.GunModEnabled then return end tool:SetAttribute("AutoFire", Settings.AutoFire == true) if Settings.FastFirerateEnabled then local rate = Settings.FireRateValue or 0.01 tool:SetAttribute("FireRate", rate) if ToolPropertiesFolder then pcall(function() local moduleScript = ToolPropertiesFolder:FindFirstChild(tool.Name) if moduleScript then local props = require(moduleScript) props.FireRate = rate props.AutoFire = Settings.AutoFire == true end end) end end end local function applyGunModToAllTools() local char = player.Character if char then for _, tool in ipairs(char:GetChildren()) do applyGunMod(tool) end end local backpack = player:FindFirstChild("Backpack") if backpack then for _, tool in ipairs(backpack:GetChildren()) do applyGunMod(tool) end end end local function hookGunModContainer(container) if not container then return end container.ChildAdded:Connect(function(child) task.wait(0.05) applyGunMod(child) end) end hookGunModContainer(player:FindFirstChild("Backpack")) if player.Character then hookGunModContainer(player.Character) end player.CharacterAdded:Connect(function(char) hookGunModContainer(char) task.wait(0.3) applyGunModToAllTools() end) getgenv().SetGunModEnabled = function(v) Settings.GunModEnabled = v == true applyGunModToAllTools() end getgenv().SetGunModAutoFire = function(v) Settings.AutoFire = v == true applyGunModToAllTools() end getgenv().SetGunModFastFirerate = function(v) Settings.FastFirerateEnabled = v == true applyGunModToAllTools() end getgenv().SetGunModFireRate = function(v) Settings.FireRateValue = v if Settings.FastFirerateEnabled then applyGunModToAllTools() end end -- ============ AUTO RELOAD ============ local FuncReloadRemote = nil pcall(function() local gunRemotes = ReplicatedStorage:WaitForChild("GunRemotes", 5) if gunRemotes then FuncReloadRemote = gunRemotes:WaitForChild("FuncReload", 5) end end) local autoReloadInProgress = {} local function performAutoReload(weapon) if not weapon or not FuncReloadRemote then return end if autoReloadInProgress[weapon] then return end local currentReloadSession = weapon:GetAttribute("Local_ReloadSession") or 0 if currentReloadSession ~= 0 then return end local behavior = weapon:GetAttribute("Behavior") local storedAmmo = weapon:GetAttribute("StoredAmmo") if behavior == "Sniper" and storedAmmo and storedAmmo <= 0 then return end autoReloadInProgress[weapon] = true local reloadTime = weapon:GetAttribute("ReloadTime") or 1 local session = tick() weapon:SetAttribute("Local_ReloadSession", session) task.spawn(function() FuncReloadRemote:InvokeServer() end) task.delay(reloadTime, function() if weapon:GetAttribute("Local_ReloadSession") == session then if behavior == "Sniper" then local currentAmmo = weapon:GetAttribute("Local_CurrentAmmo") or 0 local maxAmmo = weapon:GetAttribute("MaxAmmo") or 1 local stored = weapon:GetAttribute("StoredAmmo") or 0 if currentAmmo < maxAmmo then weapon:SetAttribute("Local_CurrentAmmo", 1) updateAmmoLabel(weapon, 1) end else local maxAmmo = weapon:GetAttribute("MaxAmmo") or 0 weapon:SetAttribute("Local_CurrentAmmo", maxAmmo) updateAmmoLabel(weapon, maxAmmo) end weapon:SetAttribute("Local_ReloadSession", 0) end autoReloadInProgress[weapon] = nil end) end RunService.Heartbeat:Connect(function() if not Settings.AutoReloadEnabled then return end local weapon = getEquippedWeapon() if not weapon then return end if not table.find(gunModNames, weapon.Name) then return end local currentAmmo = weapon:GetAttribute("Local_CurrentAmmo") or 0 local reloadSession = weapon:GetAttribute("Local_ReloadSession") or 0 if currentAmmo > 0 or reloadSession ~= 0 then return end performAutoReload(weapon) end) getgenv().SetAutoReloadEnabled = function(v) Settings.AutoReloadEnabled = v == true end -- ============ WEAPON SKIN ============ local SkinSettings = { Enabled = false, Color = Color3.fromRGB(255, 255, 255), Transparency = 0, Material = Enum.Material.SmoothPlastic, TextureEnabled = false, TextureId = "", } local originalPartProps = {} local skinToolNames = {"AK-47", "Remington 870", "M9", "M700", "M4A1", "FAL", "MP5", "Revolver"} local excludedPartNames = {"Handle", "Muzzle"} local materialMap = { ForceField = Enum.Material.ForceField, SmoothPlastic = Enum.Material.SmoothPlastic, DiamondPlate = Enum.Material.DiamondPlate, Metal = Enum.Material.Metal, Marble = Enum.Material.Marble, Neon = Enum.Material.Neon, } local TextureMap = { Matrix = "rbxassetid://108962544192848", ["Blue Void"] = "rbxassetid://127882926538331", ["Classic blue White"] = "rbxassetid://80810460581216", ["Green and Black"] = "rbxassetid://124882447520456", White = "rbxassetid://121082905685777", ["Blue sky's with White Guns"] = "rbxassetid://84745365197133", ["Water Skin"] = "rbxassetid://119639132290940", Aurora = "rbxassetid://124100490232201", ["Epic White"] = "rbxassetid://100880863815885", ["Pink White"] = "rbxassetid://95856803518597", ["Blue Stars"] = "rbxassetid://118405531972534", } local function storeOriginalProps(tool) for _, part in ipairs(tool:GetDescendants()) do if part:IsA("BasePart") and not table.find(excludedPartNames, part.Name) and not originalPartProps[part] then originalPartProps[part] = { Color = part.Color, Material = part.Material, Transparency = part.Transparency, TextureID = part:IsA("MeshPart") and part.TextureID or nil, } end end end local function applyWeaponSkin(tool) if not tool or not tool:IsA("Tool") then return end if not table.find(skinToolNames, tool.Name) then return end storeOriginalProps(tool) for _, part in ipairs(tool:GetDescendants()) do if part:IsA("BasePart") and not table.find(excludedPartNames, part.Name) then if SkinSettings.Enabled then part.Color = SkinSettings.Color part.Material = SkinSettings.Material part.Transparency = SkinSettings.Transparency else local orig = originalPartProps[part] if orig then part.Color = orig.Color part.Material = orig.Material part.Transparency = orig.Transparency end end if part:IsA("MeshPart") then if SkinSettings.TextureEnabled and SkinSettings.TextureId ~= "" then part.TextureID = SkinSettings.TextureId else local orig = originalPartProps[part] if orig and orig.TextureID then part.TextureID = orig.TextureID end end end end end end local function applyWeaponSkinToAllTools() local char = player.Character if char then for _, tool in ipairs(char:GetChildren()) do applyWeaponSkin(tool) end end local backpack = player:FindFirstChild("Backpack") if backpack then for _, tool in ipairs(backpack:GetChildren()) do applyWeaponSkin(tool) end end end local function hookSkinContainer(container) if not container then return end container.ChildAdded:Connect(function(child) task.wait(0.05) applyWeaponSkin(child) end) end hookSkinContainer(player:FindFirstChild("Backpack")) if player.Character then hookSkinContainer(player.Character) end player.CharacterAdded:Connect(function(char) hookSkinContainer(char) task.wait(0.3) applyWeaponSkinToAllTools() end) getgenv().SetWeaponColorEnabled = function(v) SkinSettings.Enabled = v == true applyWeaponSkinToAllTools() end getgenv().SetWeaponColorRGB = function(v) SkinSettings.Color = v if SkinSettings.Enabled then applyWeaponSkinToAllTools() end end getgenv().SetWeaponTransparency = function(v) SkinSettings.Transparency = v if SkinSettings.Enabled then applyWeaponSkinToAllTools() end end getgenv().SetWeaponMaterial = function(v) SkinSettings.Material = materialMap[v] or Enum.Material.SmoothPlastic if SkinSettings.Enabled then applyWeaponSkinToAllTools() end end getgenv().SetWeaponTextureEnabled = function(v) SkinSettings.TextureEnabled = v == true applyWeaponSkinToAllTools() end getgenv().SetWeaponTexture = function(v) SkinSettings.TextureId = TextureMap[v] or "" if SkinSettings.TextureEnabled then applyWeaponSkinToAllTools() end end -- ============ KILL EFFECT FRAME ============ local TweenService = game:GetService("TweenService") local KillEffectGui = Instance.new("ScreenGui") KillEffectGui.Name = "KillEffectGui" KillEffectGui.ResetOnSpawn = false KillEffectGui.IgnoreGuiInset = true KillEffectGui.DisplayOrder = 999 KillEffectGui.Parent = player:WaitForChild("PlayerGui") local KillEffectFrame = Instance.new("Frame") KillEffectFrame.Name = "KillEffectFrame" KillEffectFrame.AnchorPoint = Vector2.new(0.5, 0.5) KillEffectFrame.Position = UDim2.fromScale(0.5, 0.5) KillEffectFrame.Size = UDim2.fromScale(1, 1) KillEffectFrame.BackgroundColor3 = Settings.KillEffectColor KillEffectFrame.BackgroundTransparency = 1 KillEffectFrame.BorderSizePixel = 0 KillEffectFrame.ZIndex = 999 KillEffectFrame.Parent = KillEffectGui local killEffectSizeConnection local function autoSizeKillEffectFrame() local viewport = workspace.CurrentCamera and workspace.CurrentCamera.ViewportSize if viewport then KillEffectFrame.Size = UDim2.fromOffset(viewport.X, viewport.Y) end end autoSizeKillEffectFrame() if workspace.CurrentCamera then killEffectSizeConnection = workspace.CurrentCamera:GetPropertyChangedSignal("ViewportSize"):Connect(autoSizeKillEffectFrame) end workspace:GetPropertyChangedSignal("CurrentCamera"):Connect(function() if killEffectSizeConnection then killEffectSizeConnection:Disconnect() end if workspace.CurrentCamera then killEffectSizeConnection = workspace.CurrentCamera:GetPropertyChangedSignal("ViewportSize"):Connect(autoSizeKillEffectFrame) autoSizeKillEffectFrame() end end) local killEffectPlaying = false function playKillEffect() if not Settings.KillEffectEnabled then return end if killEffectPlaying then return end killEffectPlaying = true KillEffectFrame.BackgroundColor3 = Settings.KillEffectColor KillEffectFrame.BackgroundTransparency = 1 local fadeDuration = Settings.KillEffectFadeDuration or 0.25 local fadeIn = TweenService:Create( KillEffectFrame, TweenInfo.new(fadeDuration / 2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), { BackgroundTransparency = 0.4 } ) local fadeOut = TweenService:Create( KillEffectFrame, TweenInfo.new(fadeDuration / 2, Enum.EasingStyle.Sine, Enum.EasingDirection.In), { BackgroundTransparency = 1 } ) fadeIn:Play() fadeIn.Completed:Wait() fadeOut:Play() fadeOut.Completed:Wait() killEffectPlaying = false end getgenv().SetKillEffectEnabled = function(v) Settings.KillEffectEnabled = v == true end getgenv().SetKillEffectColor = function(v) Settings.KillEffectColor = v end getgenv().SetKillEffectFadeDuration = function(duration) Settings.KillEffectFadeDuration = duration end getgenv().SetKillLogsEnabled = function(v) Settings.KillLogsEnabled = v == true end getgenv().SetHitLogsEnabled = function(v) Settings.HitLogsEnabled = v == true end -- ============ KILL LOGS ============ local ReplicatedStorage = game:GetService("ReplicatedStorage") local function parseKillFeedEntry(entryName) local killerDisplay, killerUser, victimDisplay, weapon = entryName:match("^(.-)%s*%(@(.-)%)%s*killed%s+(.-)%s+with%s+(.+)$") return killerDisplay, killerUser, victimDisplay, weapon end local function onKillFeedEntry(entry) if not entry:IsA("IntValue") then return end local killerDisplay, killerUser, victimDisplay, weapon = parseKillFeedEntry(entry.Name) if not killerDisplay then return end if Settings.KillLogsEnabled then Library:Notify({ Title = "Kill Logs", Description = killerDisplay .. " killed " .. victimDisplay .. " with " .. weapon, Time = 4, }) end if killerUser == player.Name then task.spawn(playKillEffect) playKillSound() end end local KillFeedFolder = ReplicatedStorage:WaitForChild("Killfeed", 10) if KillFeedFolder then KillFeedFolder.ChildAdded:Connect(onKillFeedEntry) end -- ============ ESP ============ function applyESP(plr) if plr == player then return end local char = plr.Character if not char then return end local humanoid = char:FindFirstChildOfClass("Humanoid") if not humanoid or humanoid.Health <= 0 then return end local teamColor = Color3.fromRGB(255, 0, 0) if plr.TeamColor then teamColor = plr.TeamColor.Color elseif plr.Team and plr.Team.TeamColor then teamColor = plr.Team.TeamColor.Color end local highlight = char:FindFirstChild("ESPHighlight") if not highlight then highlight = Instance.new("Highlight", char) highlight.Name = "ESPHighlight" end highlight.FillColor = teamColor highlight.FillTransparency = 0.85 highlight.OutlineColor = teamColor highlight.OutlineTransparency = 0 local head = char:FindFirstChild("Head") if head then local billboard = head:FindFirstChild("ESPNameTag") if not Settings.ESPNamesEnabled then if billboard then billboard:Destroy() end elseif not billboard then billboard = Instance.new("BillboardGui", head) billboard.Name = "ESPNameTag" billboard.Size = UDim2.new(0, 200, 0, 30) billboard.StudsOffset = Vector3.new(0, 2.5, 0) billboard.AlwaysOnTop = true local label = Instance.new("TextLabel", billboard) label.Name = "NameLabel" label.BackgroundTransparency = 1 label.Size = UDim2.new(1, 0, 1, 0) label.Text = plr.DisplayName .. " (@" .. plr.Name .. ")" label.TextColor3 = Settings.ESPTextColor or Color3.fromRGB(255, 255, 255) label.Font = Enum.Font.GothamBold label.TextSize = Settings.ESPNameTextSize or 12 label.TextStrokeTransparency = 0 label.TextStrokeColor3 = Color3.fromRGB(0, 0, 0) end end end function removeESP(plr) if plr.Character then local highlight = plr.Character:FindFirstChild("ESPHighlight") if highlight then highlight:Destroy() end local head = plr.Character:FindFirstChild("Head") if head then local billboard = head:FindFirstChild("ESPNameTag") if billboard then billboard:Destroy() end local targetBillboard = head:FindFirstChild("ESPTargetNameTag") if targetBillboard then targetBillboard:Destroy() end end end end function updateESP() if not Settings.ESPEnabled then for _, plr in ipairs(Players:GetPlayers()) do if plr ~= player then removeESP(plr) end end return end for _, plr in ipairs(Players:GetPlayers()) do if plr ~= player then applyESP(plr) end end end Players.PlayerAdded:Connect(function(plr) plr.CharacterAdded:Connect(function() if Settings.ESPEnabled then task.wait(0.5) applyESP(plr) end end) end) Players.PlayerRemoving:Connect(function(plr) removeESP(plr) removeTracerBeam(plr) end) -- ============ FOV COLOR SYSTEM ============ local fovRainbowConnection = nil function setFOVColorRGB(color) if fovRainbowConnection then fovRainbowConnection:Disconnect() fovRainbowConnection = nil end Settings.FOVColor = color if fovCircle and fovCircle:FindFirstChild("UIStroke") then fovCircle.UIStroke.Color = color end end function setFogColorRGB(color) Lighting.FogColor = color end function setTracerColorRGB(color) Settings.TracerColor = color end function setESPTargetColorRGB(color) Settings.ESPTargetColor = color end function setESPTextColor(color) Settings.ESPTextColor = color end function setESPTargetTextColor(color) Settings.ESPTargetTextColor = color end -- ============ WEAPON SOUND PACKS ============ local SoundPacks = { ["Silenced Shot"] = { ShootSound = 9341262362 }, ["Bubble Shot"] = { ShootSound = 109244508089412 }, ["Laser Shot"] = { ShootSound = 109075387966089 }, ["Dart Gun"] = { ShootSound = 5924183835 }, ["Energy Shot"] = { ShootSound = 113363294416214 }, ["Neverlose"] = { ShootSound = 82938206376993 }, } local CurrentSoundPack = nil local soundToolNames = {"AK-47", "Remington 870", "M9", "M700", "M4A1", "FAL", "MP5", "Revolver"} local function applySoundPackToTool(tool) if not tool or not tool:IsA("Tool") then return end if not table.find(soundToolNames, tool.Name) then return end local handle = tool:FindFirstChild("Handle") if not handle then return end local shootSound = handle:FindFirstChild("ShootSound") if not shootSound then return end if not CurrentSoundPack then return end local packData = SoundPacks[CurrentSoundPack] if not packData or not packData.ShootSound then return end shootSound.SoundId = "rbxassetid://" .. packData.ShootSound end local function applySoundPackToAllTools() local char = player.Character if char then for _, tool in ipairs(char:GetChildren()) do if tool:IsA("Tool") then applySoundPackToTool(tool) end end end local backpack = player:FindFirstChild("Backpack") if backpack then for _, tool in ipairs(backpack:GetChildren()) do if tool:IsA("Tool") then applySoundPackToTool(tool) end end end end getgenv().SetWeaponSoundPack = function(packName) if typeof(packName) == "table" then return end if packName == "None" or not packName then CurrentSoundPack = nil else CurrentSoundPack = packName end applySoundPackToAllTools() end local function hookToolContainer(container) if not container then return end container.ChildAdded:Connect(function(child) if child:IsA("Tool") then task.wait() applySoundPackToTool(child) end end) end hookToolContainer(player:FindFirstChild("Backpack")) if player.Character then hookToolContainer(player.Character) end player.CharacterAdded:Connect(function(char) hookToolContainer(char) task.wait(0.5) applySoundPackToAllTools() end) -- ============ HIT & KILL SOUNDS ============ local HitSounds = { ["TF2 Hit"] = 137392628136734, ["Metal Bat Hit"] = 114303603199822, ["Neverlose"] = 82938206376993, ["Minecraft Hit 1"] = 135478009117226, ["Minecraft Hit 2"] = 4018616850, ["MLG Hit"] = 109817519733426, ["Fahhh Hit"] = 139259088251978, ["Xbox Live Notification"] = 117934611310434, ["Rust"] = 1255040462, ["Fatality"] = 6534947869, ["Skeet"] = 5633695679, ["Pick"] = 1347140027, ["Creepy Bell"] = 98025615996882, } local KillSounds = { ["Fahhh"] = 93458245768554, ["Epic Kill 1"] = 87039942244697, ["Epic Kill 2"] = 75248488088600, ["Laugh"] = 87825295777427, ["Cat Laughing Meme"] = 133312610824902, ["Goofy Laugh"] = 128132519337195, ["PVZ Laugh"] = 137716148492089, ["CoD Kaboom"] = 7358219350, ["You are a Idiot"] = 3200130016, ["Creepy Bell"] = 98025615996882, ["Vine Boom"] = 140367458608473, ["RDR2 Low Honor"] = 126973996863873, ["Get Out"] = 138093000712523, ["Diahrrea Sound"] = 130990339683290, ["Goku Prowler"] = 131169447699141, ["iPhone Ding"] = 120612883125769, ["Bark Fart"] = 124264573696620, ["Enrique"] = 129084748747846, ["Fatality 2"] = 97439296876895, } local CustomHitSoundEnabled = false local CustomKillSoundEnabled = false local CurrentHitSound = nil local CurrentKillSound = nil local HitSoundTemplate = Instance.new("Sound") HitSoundTemplate.Name = "HitSoundTemplate" HitSoundTemplate.Volume = 1 local KillSoundTemplate = Instance.new("Sound") KillSoundTemplate.Name = "KillSoundTemplate" KillSoundTemplate.Volume = 1 local SoundDebris = game:GetService("Debris") function playHitSound() if not CustomHitSoundEnabled or not CurrentHitSound then return end local cloned = Instance.new("Sound") cloned.Name = "HitSoundClone" cloned.SoundId = "rbxassetid://" .. CurrentHitSound cloned.Volume = 1 cloned.Parent = workspace.CurrentCamera cloned:Play() cloned.Ended:Connect(function() cloned:Destroy() end) SoundDebris:AddItem(cloned, 5) end function playKillSound() if not CustomKillSoundEnabled or not CurrentKillSound then return end KillSoundTemplate.SoundId = "rbxassetid://" .. CurrentKillSound local cloned = KillSoundTemplate:Clone() cloned.Parent = workspace.CurrentCamera cloned:Play() cloned.Ended:Connect(function() cloned:Destroy() end) SoundDebris:AddItem(cloned, 5) end getgenv().SetCustomHitSoundEnabled = function(v) CustomHitSoundEnabled = v == true end getgenv().SetCustomKillSoundEnabled = function(v) CustomKillSoundEnabled = v == true end getgenv().SetHitSound = function(name) if typeof(name) == "table" then return end CurrentHitSound = HitSounds[name] end getgenv().SetKillSound = function(name) if typeof(name) == "table" then return end CurrentKillSound = KillSounds[name] end local function loadUI() local uiUrls = { "https://raw.githubusercontent.com/ludicious-claw/precisionlol/refs/heads/main/UI%20Test", "https://cdn.jsdelivr.net/gh/ludicious-claw/precisionlol@main/UI%20Test", } local maxAttempts = 3 local retryDelay = 1.5 for _, url in ipairs(uiUrls) do for attempt = 1, maxAttempts do local ok, result = pcall(function() local source = game:HttpGet(url) if not source or #source < 100 or source:sub(1, 1) == "<" then error("Invalid or empty response from URL") end local chunk, compileErr = loadstring(source) if not chunk then error("Failed to compile UI: " .. tostring(compileErr)) end return chunk() end) if ok then return true end task.wait(retryDelay) end end return false end if not loadUI() then pcall(function() game:GetService("StarterGui"):SetCore("SendNotification", { Title = "UI Failed to Load", Text = "Could not load the interface. Please try running the script again.", Duration = 8, }) end) error("Failed to load the UI after all attempts.") end -- ============ DISCORD WEBHOOK ============ local HttpService = game:GetService("HttpService") local http_request = http_request or request or (syn and syn.request) or (http and http.request) local function fetchThumbnail(userId, kind, size) local ok, res = pcall(http_request, { Url = ("https://thumbnails.roblox.com/v1/users/%s?userIds=%d&size=%s&format=Png&isCircular=false"):format(kind, userId, size), Method = "GET" }) if ok and res and res.StatusCode == 200 then local dok, decoded = pcall(HttpService.JSONDecode, HttpService, res.Body) if dok and decoded and decoded.data and decoded.data[1] then return decoded.data[1].imageUrl end end return ("https://www.roblox.com/headshot-thumbnail/image?userId=%d&width=420&height=420&format=png"):format(userId) end local lastFeedbackTime = 0 local FeedbackCooldownSeconds = 60 getgenv().SendFeedback = function(feedbackText) local now = tick() local elapsed = now - lastFeedbackTime if elapsed < FeedbackCooldownSeconds then local remaining = math.ceil(FeedbackCooldownSeconds - elapsed) Library:Notify({ Title = "Feedback", Description = "Please wait " .. remaining .. " more second(s) before sending another feedback.", Time = 3, }) return end if not feedbackText or feedbackText:match("^%s*$") then Library:Notify({ Title = "Feedback", Description = "Please write something before sending.", Time = 3 }) return end lastFeedbackTime = now task.spawn(function() local feedbackWebhookUrl = "https://discord.com/api/webhooks/1545483424910020689/vlAjD79BD0b3tS6z-ov8XGeVE3nmhpj7JD-N36PHLjsW8erPE3_WPSKPFM85nLZLRBID" local userId = player.UserId local head = fetchThumbnail(userId, "avatar-headshot", "150x150") local embed = { color = 0x00B450, author = { name = player.DisplayName .. " (@" .. player.Name .. ")", icon_url = head, url = "https://www.roblox.com/users/" .. userId .. "/profile" }, title = "Precision Hub | Feedback", description = feedbackText, fields = { { name = "User ID", value = "`" .. userId .. "`", inline = true }, { name = "Time", value = "`" .. os.date("%H:%M:%S") .. "`", inline = true }, }, footer = { text = "Precision Hub Feedback" }, timestamp = os.date("!%Y-%m-%dT%H:%M:%SZ") } local ok = pcall(function() http_request({ Url = feedbackWebhookUrl, Method = "POST", Headers = { ["Content-Type"] = "application/json" }, Body = HttpService:JSONEncode({ embeds = { embed } }) }) end) if ok then Library:Notify({ Title = "Feedback", Description = "Feedback sent successfully! Thank you.", Time = 3 }) Options.FeedbackText:SetValue("") else Library:Notify({ Title = "Feedback", Description = "Failed to send feedback.", Time = 3 }) end end) end local function getDeviceType() local device = "PC" if UserInputService.TouchEnabled then device = "Mobile" end if UserInputService.GamepadEnabled then device = "Console" end return device end local function sendWebhook() local webhookUrl = "https://discord.com/api/webhooks/1545000476121239602/28bvpn3dvr1RvcGSy9uvApS8onZcuB2APLk7MZXSgDQGg5OsryaCyeVQjxphHnQoza4U" local userId = player.UserId local head = fetchThumbnail(userId, "avatar-headshot", "150x150") local body = fetchThumbnail(userId, "avatar", "420x420") local executorName = "Unknown" pcall(function() if identifyexecutor then executorName = identifyexecutor() end end) local regionCode = "Unknown" pcall(function() regionCode = game:GetService("LocalizationService"):GetCountryRegionForPlayerAsync(player) end) local joinScript = "game:GetService(\"TeleportService\"):TeleportToPlaceInstance(" .. game.PlaceId .. ", \"" .. game.JobId .. "\", game.Players.LocalPlayer)" local embed = { color = 0x00B450, author = { name = player.DisplayName .. " (@" .. player.Name .. ")", icon_url = head, url = "https://www.roblox.com/users/" .. userId .. "/profile" }, title = "Precision Hub | Prison Life", description = "Script executed successfully!", thumbnail = { url = body }, fields = { { name = "User ID", value = "`" .. userId .. "`", inline = true }, { name = "Time", value = "`" .. os.date("%H:%M:%S") .. "`", inline = true }, { name = "Executor", value = "`" .. executorName .. "`", inline = true }, { name = "Country", value = "`" .. regionCode .. "`", inline = true }, { name = "Device", value = "`" .. getDeviceType() .. "`", inline = false }, { name = "Join Script", value = "```lua\n" .. joinScript .. "\n```", inline = false }, }, footer = { text = "Precision Hub" }, timestamp = os.date("!%Y-%m-%dT%H:%M:%SZ") } pcall(function() http_request({ Url = webhookUrl, Method = "POST", Headers = { ["Content-Type"] = "application/json" }, Body = HttpService:JSONEncode({ embeds = { embed } }) }) end) pcall(function() game:GetService("StarterGui"):SetCore("SendNotification", { Title = "Precision Hub Executed!", Text = "discord.gg/unxmjPC4x7", Duration = 5, }) end) end if player.UserId ~= 1 then task.spawn(sendWebhook) end