- ========================================================= -- NEVERLOSE MM2 - FINAL -- ========================================================= -- ===================== PART 1: CORE ===================== local Serv = {} for _, n in ipairs({"CoreGui","TweenService","RunService","Players","Lighting","UserInputService","HttpService","VirtualInputManager"}) do local ok, s = pcall(function() return game:GetService(n) end) if ok then Serv[n] = s end end local CoreGui, TweenService, RunService, Players, Lighting, UIS, HttpService, VIM = Serv.CoreGui, Serv.TweenService, Serv.RunService, Serv.Players, Serv.Lighting, Serv.UserInputService, Serv.HttpService, Serv.VirtualInputManager local LP = Players.LocalPlayer if not (TweenService and RunService and Players and Lighting and UIS and LP) then return end local function getGuiParent() if gethui then local ok, h = pcall(gethui) if ok and h then return h end end if CoreGui then return CoreGui end return LP:WaitForChild("PlayerGui") end local GP = getGuiParent() if not GP then return end for _, c in ipairs(GP:GetChildren()) do if c.Name == "NeverloseMM2" or c.Name == "NL_Splash" or c.Name == "NL_Arrows" or c.Name == "NL_DamageNumbers" then pcall(function() c:Destroy() end) end end local P = { bg = Color3.fromRGB(14,18,27), bgAlt = Color3.fromRGB(22,29,44), panel = Color3.fromRGB(30,40,58), border = Color3.fromRGB(52,84,132), accent = Color3.fromRGB(88,178,255), accentSoft = Color3.fromRGB(130,200,255), text = Color3.fromRGB(235,245,255), textDim = Color3.fromRGB(145,175,215), green = Color3.fromRGB(80,220,160), red = Color3.fromRGB(255,100,100), yellow = Color3.fromRGB(255,200,90), purple = Color3.fromRGB(180,140,255), } local BRAND = "rbxassetid://93412270895990" local BRAND_ALT = "rbxthumb://type=Asset&id=93412270895990&w=420&h=420" local MASCOT_IMG = "rbxassetid://14511738665" local VISUALS_ICON = "rbxassetid://10891594364" local function corner(i, r) local c = Instance.new("UICorner") c.CornerRadius = UDim.new(0, r or 6) c.Parent = i return c end local function stroke(i, col, th, tr) local s = Instance.new("UIStroke") s.Color = col or P.border s.Thickness = th or 1 s.Transparency = tr or 0.4 s.ApplyStrokeMode = Enum.ApplyStrokeMode.Border s.Parent = i return s end local C = { chinaHat = false, chinaHatSize = 3, trail = false, jumpRing = false, jumpRingSize = 12, swastika = false, swastikaSize = 80, swastikaSpeed = 120, hideMouse = false, espAll = false, espSheriff = false, espMurder = false, espGunDrop = false, tracers = false, nametags = false, bulletTrail = false, bulletTrailRange = 3000, hitsound = false, hitsoundVolume = 1.5, hitsoundChoice = "NeverLose", arrows = false, arrowsMaxDist = 300, arrowsRadius = 90, arrowsSize = 60, targetEsp = false, targetEspMode = "Crosshair", targetEspRadius = 250, stretch = false, stretchAmount = 110, uiScale = 0.9, worldColorEnabled = false, worldColorR = 90, worldColorG = 180, worldColorB = 255, fog = false, fogDensity = 500, boostFPS = false, debug = false, aimbot = false, autoShoot = false, autoShootDelay = 0.15, silentAim = false, silentTarget = "All", silentAimPart = "Head", silentFOV = 150, silentDrawFOV = false, silentPingComp = true, silentPredSpeed = 500, spinbot = false, spinbotSpeed = 1000, antiaim = false, aaDirection = "Back", antiaimAngle = 180, headTilt = false, headTiltAngle = 0, triggerBot = false, triggerTarget = "All", triggerDelay = 0.1, flashPeek = false, flashPeekSpeed = 45, strafe = false, strafePower = 50, antiFling = false, autoGrabGun = false, damageNumbers = true, damageNumbersColor = "Role", damageNumbersSize = 26, damageNumbersLife = 1.2, damageNumbersOffset = 3.0, mascot = true, bindMenu = Enum.KeyCode.RightControl, bindAimbot = Enum.KeyCode.V, bindAutoShoot = Enum.KeyCode.T, bindTrigger = Enum.KeyCode.R, bindSwastika = Enum.KeyCode.H, bindGetPistol = Enum.KeyCode.G, bindFlashPeek = Enum.KeyCode.F, bindHitsound = Enum.KeyCode.B, bindAutoGrab = Enum.KeyCode.X, bindSilent = Enum.KeyCode.C, } -- ROLE DETECTION local roleCache = {} local function isKnifeName(n) if not n then return false end n = string.lower(n) return n == "knife" or n:find("knife") ~= nil end local function isGunName(n) if not n then return false end n = string.lower(n) return n == "gun" or n == "revolver" or n == "pistol" or n:find("gun") ~= nil end local function scanForRole(container) if not container then return nil end for _, obj in ipairs(container:GetChildren()) do if obj:IsA("Tool") then if isKnifeName(obj.Name) then return "Murder" end if isGunName(obj.Name) then return "Sheriff" end end end return nil end local function getRole(player) if not player then return nil end local ch = player.Character if not ch then return nil end local c = roleCache[player] if c and c.char == ch and tick() - c.time < 0.2 then return c.role end local role = nil local ok1, attr = pcall(function() return player:GetAttribute("IsMurderer") end) if ok1 and attr == true then role = "Murder" end local ok2, attr2 = pcall(function() return player:GetAttribute("Role") end) if not role and ok2 and type(attr2) == "string" then local l = string.lower(attr2) if l:find("murder") then role = "Murder" elseif l:find("sheriff") then role = "Sheriff" end end if not role then role = scanForRole(ch) end if not role then local bp = player:FindFirstChild("Backpack") if bp then role = scanForRole(bp) end end if not role then for _, obj in ipairs(ch:GetChildren()) do if obj:IsA("Tool") then if isKnifeName(obj.Name) then role = "Murder" break end if isGunName(obj.Name) then role = "Sheriff" break end end end end if not role then role = "Innocent" end roleCache[player] = {char = ch, role = role, time = tick()} return role end local function findMurderAny() for _, plr in ipairs(Players:GetPlayers()) do if plr ~= LP and plr.Character and getRole(plr) == "Murder" then return plr end end for _, plr in ipairs(Players:GetPlayers()) do if plr ~= LP and plr.Character then for _, t in ipairs(plr.Character:GetChildren()) do if t:IsA("Tool") and isKnifeName(t.Name) then return plr end end end end for _, plr in ipairs(Players:GetPlayers()) do if plr ~= LP then local bp = plr:FindFirstChild("Backpack") if bp then for _, t in ipairs(bp:GetChildren()) do if t:IsA("Tool") and isKnifeName(t.Name) then return plr end end end end end return nil end local gunCache = {gun = nil, time = 0} local function getGun() local now = tick() if now - gunCache.time < 0.2 then return gunCache.gun end local c = LP.Character gunCache.time = now gunCache.gun = nil if not c then return nil end for _, ch in ipairs(c:GetChildren()) do if ch:IsA("Tool") and (ch.Name == "Gun" or ch.Name == "Revolver" or ch.Name == "Pistol") then gunCache.gun = ch return ch end end return nil end -- SPLASH local splashGui = Instance.new("ScreenGui") splashGui.Name = "NL_Splash" splashGui.Parent = GP splashGui.DisplayOrder = 2147483647 splashGui.IgnoreGuiInset = true splashGui.ResetOnSpawn = false local splashImg = Instance.new("ImageLabel") splashImg.Parent = splashGui splashImg.Size = UDim2.new(1,0,1,0) splashImg.BackgroundTransparency = 1 splashImg.Image = BRAND splashImg.ImageTransparency = 1 splashImg.ScaleType = Enum.ScaleType.Crop local splashSound = Instance.new("Sound") splashSound.Name = "NL_SplashSound" splashSound.SoundId = "rbxassetid://1129332284" splashSound.Volume = 2 splashSound.Parent = splashGui -- ARROWS GUI local arrowGui = Instance.new("ScreenGui") arrowGui.Name = "NL_Arrows" arrowGui.Parent = GP arrowGui.ResetOnSpawn = false arrowGui.IgnoreGuiInset = true arrowGui.DisplayOrder = 1000000 arrowGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling -- MAIN GUI local GUI = Instance.new("ScreenGui") GUI.Name = "NeverloseMM2" GUI.Parent = GP GUI.ResetOnSpawn = false GUI.IgnoreGuiInset = true GUI.DisplayOrder = 999999 GUI.ZIndexBehavior = Enum.ZIndexBehavior.Sibling -- MASCOT local mascot = Instance.new("ImageLabel") mascot.Name = "NL_Mascot" mascot.Parent = GUI mascot.BackgroundTransparency = 1 mascot.AnchorPoint = Vector2.new(1, 0) mascot.Position = UDim2.new(1, -10, 0, 10) mascot.Size = UDim2.new(0, 320, 0, 420) mascot.Image = MASCOT_IMG mascot.ScaleType = Enum.ScaleType.Fit mascot.ZIndex = 4999 mascot.Visible = true -- TARGET ESP local targetEsp = Instance.new("Frame") targetEsp.Name = "NL_TargetEsp" targetEsp.Parent = GUI targetEsp.BackgroundColor3 = P.bgAlt targetEsp.BackgroundTransparency = 0.15 targetEsp.BorderSizePixel = 0 targetEsp.AnchorPoint = Vector2.new(1, 0.5) targetEsp.Position = UDim2.new(1, -20, 0.6, 0) targetEsp.Size = UDim2.new(0, 280, 0, 84) targetEsp.ZIndex = 8000 targetEsp.Visible = false corner(targetEsp, 12) local targetStroke = stroke(targetEsp, P.accent, 1.5, 0.2) local teGrad = Instance.new("UIGradient") teGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(24,34,52)), ColorSequenceKeypoint.new(1, Color3.fromRGB(14,22,36)), }) teGrad.Rotation = 90 teGrad.Parent = targetEsp local teAvatar = Instance.new("ImageLabel") teAvatar.Parent = targetEsp teAvatar.BackgroundColor3 = P.bg teAvatar.BorderSizePixel = 0 teAvatar.Position = UDim2.new(0, 10, 0.5, 0) teAvatar.AnchorPoint = Vector2.new(0, 0.5) teAvatar.Size = UDim2.new(0, 64, 0, 64) teAvatar.ZIndex = 8002 teAvatar.Image = "" corner(teAvatar, 32) local avatarStroke = stroke(teAvatar, P.accent, 2, 0) local teName = Instance.new("TextLabel") teName.Parent = targetEsp teName.BackgroundTransparency = 1 teName.Position = UDim2.new(0, 84, 0, 8) teName.Size = UDim2.new(1, -94, 0, 20) teName.Font = Enum.Font.GothamBold teName.Text = "Player" teName.TextColor3 = P.text teName.TextSize = 15 teName.TextXAlignment = Enum.TextXAlignment.Left teName.ZIndex = 8002 local teRole = Instance.new("TextLabel") teRole.Parent = targetEsp teRole.BackgroundTransparency = 1 teRole.Position = UDim2.new(0, 84, 0, 26) teRole.Size = UDim2.new(0, 100, 0, 14) teRole.Font = Enum.Font.GothamSemibold teRole.Text = "Innocent" teRole.TextColor3 = P.textDim teRole.TextSize = 11 teRole.TextXAlignment = Enum.TextXAlignment.Left teRole.ZIndex = 8002 local teHpLabel = Instance.new("TextLabel") teHpLabel.Parent = targetEsp teHpLabel.BackgroundTransparency = 1 teHpLabel.AnchorPoint = Vector2.new(1, 0) teHpLabel.Position = UDim2.new(1, -10, 0, 12) teHpLabel.Size = UDim2.new(0, 80, 0, 16) teHpLabel.Font = Enum.Font.GothamBold teHpLabel.Text = "HP: 100" teHpLabel.TextColor3 = P.green teHpLabel.TextSize = 12 teHpLabel.TextXAlignment = Enum.TextXAlignment.Right teHpLabel.ZIndex = 8002 local teHpBarBg = Instance.new("Frame") teHpBarBg.Parent = targetEsp teHpBarBg.BackgroundColor3 = P.bg teHpBarBg.BackgroundTransparency = 0.3 teHpBarBg.BorderSizePixel = 0 teHpBarBg.Position = UDim2.new(0, 84, 1, -22) teHpBarBg.Size = UDim2.new(1, -94, 0, 10) teHpBarBg.ZIndex = 8002 corner(teHpBarBg, 5) local teHpFill = Instance.new("Frame") teHpFill.Parent = teHpBarBg teHpFill.BackgroundColor3 = P.green teHpFill.BorderSizePixel = 0 teHpFill.Size = UDim2.new(1, 0, 1, 0) teHpFill.ZIndex = 8003 corner(teHpFill, 5) local teHpFillGrad = Instance.new("UIGradient") teHpFillGrad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(120,255,180)), ColorSequenceKeypoint.new(1, Color3.fromRGB(40,180,120)), }) teHpFillGrad.Parent = teHpFill local teParticles = {} local particleContainer = Instance.new("Frame") particleContainer.Parent = GUI particleContainer.BackgroundTransparency = 1 particleContainer.AnchorPoint = Vector2.new(1, 0.5) particleContainer.Position = UDim2.new(1, -20, 0.6, 0) particleContainer.Size = UDim2.new(0, 280, 0, 84) particleContainer.ZIndex = 7999 particleContainer.Visible = false for i = 1, 8 do local dot = Instance.new("Frame") dot.Parent = particleContainer dot.BackgroundColor3 = P.accent dot.BorderSizePixel = 0 dot.AnchorPoint = Vector2.new(0.5, 0.5) dot.Size = UDim2.new(0, 4, 0, 4) dot.ZIndex = 7998 corner(dot, 2) local s = Instance.new("UIStroke") s.Color = P.accent s.Thickness = 1 s.Transparency = 0.4 s.Parent = dot table.insert(teParticles, dot) end -- WATERMARK local wm = Instance.new("Frame") wm.Parent = GUI wm.BackgroundColor3 = P.bgAlt wm.BackgroundTransparency = 0.1 wm.BorderSizePixel = 0 wm.Position = UDim2.new(0,8,0,8) wm.Size = UDim2.new(0,320,0,24) wm.ZIndex = 10000 corner(wm, 7) stroke(wm, P.accent, 1, 0.35) local wmLabel = Instance.new("TextLabel") wmLabel.Parent = wm wmLabel.BackgroundTransparency = 1 wmLabel.Size = UDim2.new(1,-12,1,0) wmLabel.Position = UDim2.new(0,8,0,0) wmLabel.Font = Enum.Font.GothamSemibold wmLabel.Text = "NeverLose.cc | 0 FPS | 0 ms | Roblox" wmLabel.TextColor3 = P.text wmLabel.TextSize = 11 wmLabel.TextXAlignment = Enum.TextXAlignment.Left local fps, frames, fpsT = 0, 0, tick() RunService.RenderStepped:Connect(function() frames = frames + 1 local now = tick() if now - fpsT >= 1 then fps = frames frames = 0 fpsT = now end end) task.spawn(function() while task.wait(0.5) do local ping = 0 pcall(function() ping = math.floor((LP:GetNetworkPing() or 0) * 1000) end) local gn = game.Name if not gn or gn == "" then gn = "Roblox" end if #gn > 18 then gn = gn:Sub(1,15) .. "..." end wmLabel.Text = string.format("NeverLose.cc | %d FPS | %d ms | %s", fps, ping, gn) end end) -- NOTIFICATIONS local nContainer = Instance.new("Frame") nContainer.Parent = GUI nContainer.BackgroundTransparency = 1 nContainer.AnchorPoint = Vector2.new(1,0) nContainer.Position = UDim2.new(1,-15,0,15) nContainer.Size = UDim2.new(0,260,0,500) nContainer.ZIndex = 9000 local nLayout = Instance.new("UIListLayout") nLayout.Parent = nContainer nLayout.SortOrder = Enum.SortOrder.LayoutOrder nLayout.Padding = UDim.new(0,6) nLayout.HorizontalAlignment = Enum.HorizontalAlignment.Right local function notify(text, color) color = color or P.accent local f = Instance.new("Frame") f.Parent = nContainer f.BackgroundColor3 = P.bgAlt f.BackgroundTransparency = 1 f.Size = UDim2.new(1,0,0,34) corner(f, 8) local s = stroke(f, color, 1, 0.2) s.Transparency = 1 local acc = Instance.new("Frame") acc.Parent = f acc.BackgroundColor3 = color acc.Size = UDim2.new(0,3,1,0) corner(acc, 8) local l = Instance.new("TextLabel") l.Parent = f l.BackgroundTransparency = 1 l.Position = UDim2.new(0,12,0,0) l.Size = UDim2.new(1,-12,1,0) l.Font = Enum.Font.GothamSemibold l.Text = text l.TextColor3 = P.text l.TextSize = 12 l.TextXAlignment = Enum.TextXAlignment.Left l.TextTransparency = 1 TweenService:Create(f, TweenInfo.new(0.25), {BackgroundTransparency = 0.3}):Play() TweenService:Create(s, TweenInfo.new(0.25), {Transparency = 0.2}):Play() TweenService:Create(l, TweenInfo.new(0.25), {TextTransparency = 0}):Play() task.delay(2.5, function() TweenService:Create(f, TweenInfo.new(0.4), {BackgroundTransparency = 1}):Play() TweenService:Create(s, TweenInfo.new(0.4), {Transparency = 1}):Play() local t = TweenService:Create(l, TweenInfo.new(0.4), {TextTransparency = 1}) t:Play() t.Completed:Connect(function() f:Destroy() end) end) end -- STRETCH local origFOV = workspace.CurrentCamera and workspace.CurrentCamera.FieldOfView or 70 local stretchGuiScale = nil local function applyStretch() local cam = workspace.CurrentCamera if not cam then return end if C.stretch then cam.FieldOfView = C.stretchAmount if not stretchGuiScale then stretchGuiScale = Instance.new("UIScale") stretchGuiScale.Parent = GUI end stretchGuiScale.Scale = C.uiScale else cam.FieldOfView = origFOV if stretchGuiScale then stretchGuiScale.Scale = 1 end end end workspace:GetPropertyChangedSignal("CurrentCamera"):Connect(function() task.wait(0.1) if workspace.CurrentCamera then origFOV = workspace.CurrentCamera.FieldOfView end end) task.spawn(function() local lastKey = "" while task.wait(0.1) do local key = tostring(C.stretch) .. C.stretchAmount .. C.uiScale .. tostring(origFOV) if key ~= lastKey then lastKey = key applyStretch() end end end) -- BOOST FPS local boostState = { active = false, materials = {}, textures = {}, effects = {}, lighting = {}, conn = nil } local function enableBoostFPS() if boostState.active then return end boostState.active = true boostState.lighting = { GlobalShadows = Lighting.GlobalShadows, EnvironmentDiffuseScale = Lighting.EnvironmentDiffuseScale, EnvironmentSpecularScale = Lighting.EnvironmentSpecularScale, Brightness = Lighting.Brightness, OutdoorAmbient = Lighting.OutdoorAmbient, FogEnd = Lighting.FogEnd, FogStart = Lighting.FogStart, } Lighting.GlobalShadows = false Lighting.EnvironmentDiffuseScale = 0 Lighting.EnvironmentSpecularScale = 0 Lighting.Brightness = 2 Lighting.OutdoorAmbient = Color3.fromRGB(128,128,128) Lighting.FogEnd = 100000 Lighting.FogStart = 100000 for _, v in ipairs(Lighting:GetChildren()) do pcall(function() if v:IsA("PostEffect") or v:IsA("Atmosphere") then boostState.effects[v] = v.Enabled v.Enabled = false end end) end for _, v in ipairs(workspace:GetDescendants()) do pcall(function() if v:IsA("BasePart") then boostState.materials[v] = v.Material v.Material = Enum.Material.SmoothPlastic v.CastShadow = false elseif v:IsA("Texture") or v:IsA("Decal") then boostState.textures[v] = v.Transparency v.Transparency = 1 elseif v:IsA("ParticleEmitter") or v:IsA("Smoke") or v:IsA("Fire") or v:IsA("Sparkles") then v.Enabled = false elseif v:IsA("MeshPart") then v.TextureID = "" elseif v:IsA("Trail") or v:IsA("Beam") then v.Enabled = false end end) end boostState.conn = workspace.DescendantAdded:Connect(function(v) if not boostState.active then return end pcall(function() if v:IsA("BasePart") then boostState.materials[v] = v.Material v.Material = Enum.Material.SmoothPlastic v.CastShadow = false elseif v:IsA("Texture") or v:IsA("Decal") then boostState.textures[v] = v.Transparency v.Transparency = 1 elseif v:IsA("ParticleEmitter") or v:IsA("Smoke") or v:IsA("Fire") or v:IsA("Sparkles") then v.Enabled = false end end) end) notify("Boost FPS: ON", P.green) end local function disableBoostFPS() if not boostState.active then return end boostState.active = false if boostState.conn then boostState.conn:Disconnect() boostState.conn = nil end for k, v in pairs(boostState.lighting) do pcall(function() Lighting[k] = v end) end boostState.lighting = {} for effect, state in pairs(boostState.effects) do if effect and effect.Parent then pcall(function() effect.Enabled = state end) end end boostState.effects = {} for part, mat in pairs(boostState.materials) do if part and part.Parent then pcall(function() part.Material = mat part.CastShadow = true end) end end boostState.materials = {} for tex, trans in pairs(boostState.textures) do if tex and tex.Parent then pcall(function() tex.Transparency = trans end) end end boostState.textures = {} notify("Boost FPS: OFF", P.yellow) end -- CHINA HAT local chinaPart = nil local function ensureChinaHat() if chinaPart and chinaPart.Parent then return chinaPart end chinaPart = Instance.new("Part") chinaPart.Name = "NL_ChinaHat" chinaPart.Size = Vector3.new(1,1,1) chinaPart.Anchored = true chinaPart.CanCollide = false chinaPart.CanQuery = false chinaPart.CanTouch = false chinaPart.CastShadow = false chinaPart.Material = Enum.Material.Neon chinaPart.Transparency = 0.15 local m = Instance.new("SpecialMesh") m.MeshType = Enum.MeshType.FileMesh m.MeshId = "rbxassetid://1033714" m.Parent = chinaPart chinaPart.Parent = workspace return chinaPart end RunService.RenderStepped:Connect(function(dt) local char = LP.Character local head = char and char:FindFirstChild("Head") if C.chinaHat and head then local hat = ensureChinaHat() local mesh = hat:FindFirstChildOfClass("SpecialMesh") local s = C.chinaHatSize local w, h = s * 1.8, s * 0.85 if mesh then mesh.Scale = Vector3.new(w, h, w) end hat.CFrame = CFrame.new(head.Position + Vector3.new(0, head.Size.Y*0.5 + h*0.5 + 0.15, 0)) * CFrame.Angles(0, tick() * 2, 0) local hue = (math.sin(tick() * 1.5) + 1) / 2 hat.Color = Color3.new(0, 0.5 + hue * 0.5, 1) elseif chinaPart and chinaPart.Parent then chinaPart:Destroy() chinaPart = nil end end) -- TRAIL local trailObj, trailAtts = nil, {} local function destroyTrail() if trailObj and trailObj.Parent then trailObj:Destroy() end for _, a in ipairs(trailAtts) do if a and a.Parent then a:Destroy() end end trailObj, trailAtts = nil, {} end local function createTrail() local char = LP.Character if not char then return end local torso = char:FindFirstChild("UpperTorso") or char:FindFirstChild("Torso") if not torso then return end destroyTrail() local a0 = Instance.new("Attachment") a0.Position = Vector3.new(0, 0.5, 0) a0.Parent = torso local a1 = Instance.new("Attachment") a1.Position = Vector3.new(0, -0.5, 0) a1.Parent = torso local t = Instance.new("Trail") t.Attachment0 = a0 t.Attachment1 = a1 t.Lifetime = 0.4 t.MinLength = 0.1 t.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0, 0.2), NumberSequenceKeypoint.new(1, 1)}) t.Color = ColorSequence.new({ColorSequenceKeypoint.new(0, Color3.fromRGB(80,170,255)), ColorSequenceKeypoint.new(1, Color3.fromRGB(0,220,255))}) t.LightEmission = 1 t.Parent = torso trailObj = t trailAtts = {a0, a1} end LP.CharacterAdded:Connect(function() task.wait(1) if C.trail then createTrail() end end) -- JUMP RING local jumpRing = nil local lastAir = false RunService.RenderStepped:Connect(function() local char = LP.Character if not char then return end local hrp = char:FindFirstChild("HumanoidRootPart") local hum = char:FindFirstChildOfClass("Humanoid") if not hrp or not hum then return end local state = hum:GetState() local inAir = (state == Enum.HumanoidStateType.Freefall or state == Enum.HumanoidStateType.Jumping) if C.jumpRing and inAir and not lastAir then if jumpRing then jumpRing:Destroy() jumpRing = nil end local params = RaycastParams.new() params.FilterDescendantsInstances = {char} params.FilterType = Enum.RaycastFilterType.Exclude local res = workspace:Raycast(hrp.Position, Vector3.new(0,-15,0), params) local ground = res and res.Position or (hrp.Position - Vector3.new(0,3,0)) local p = Instance.new("Part") p.Size = Vector3.new(1,1,1) p.Transparency = 0.15 p.Color = Color3.fromRGB(80,220,255) p.Anchored = true p.CanCollide = false p.CanQuery = false p.CanTouch = false p.Material = Enum.Material.Neon local m = Instance.new("SpecialMesh") m.MeshType = Enum.MeshType.FileMesh m.MeshId = "rbxassetid://168892432" m.Parent = p p.CFrame = CFrame.new(ground + Vector3.new(0, 0.15, 0)) p.Parent = workspace jumpRing = p local sz = C.jumpRingSize m.Scale = Vector3.new(1, 0.10, 1) TweenService:Create(m, TweenInfo.new(0.45, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Scale = Vector3.new(sz, sz*0.10, sz)}):Play() end if C.jumpRing and not inAir and lastAir and jumpRing then local r = jumpRing jumpRing = nil local m = r:FindFirstChildOfClass("SpecialMesh") if m then TweenService:Create(m, TweenInfo.new(0.3), {Scale = Vector3.new(C.jumpRingSize*1.15, C.jumpRingSize*0.11, C.jumpRingSize*1.15)}):Play() end local t = TweenService:Create(r, TweenInfo.new(0.3), {Transparency = 1}) t:Play() t.Completed:Connect(function() if r then r:Destroy() end end) end lastAir = inAir end) -- SWASTIKA local swastikaParts = {} local swastikaFrame = nil local function destroySwastika() if swastikaFrame then swastikaFrame:Destroy() swastikaFrame = nil end swastikaParts = {} end local function createSwastika() destroySwastika() local container = Instance.new("Frame") container.Parent = GUI container.AnchorPoint = Vector2.new(0.5,0.5) container.Position = UDim2.new(0.5,0,0.5,0) container.Size = UDim2.new(0, C.swastikaSize, 0, C.swastikaSize) container.BackgroundTransparency = 1 container.ZIndex = 5 for i = 0, 3 do local arm = Instance.new("Frame") arm.Parent = container arm.BackgroundTransparency = 1 arm.AnchorPoint = Vector2.new(0.5,0.5) arm.Position = UDim2.new(0.5,0,0.5,0) arm.Size = UDim2.new(1,0,1,0) arm.Rotation = i * 90 arm.ZIndex = 5 local vBar = Instance.new("Frame") vBar.Parent = arm vBar.BackgroundColor3 = Color3.new(1,1,1) vBar.Position = UDim2.new(0.46,0,0.1,0) vBar.Size = UDim2.new(0.08,0,0.4,0) vBar.ZIndex = 5 table.insert(swastikaParts, vBar) local hook = Instance.new("Frame") hook.Parent = arm hook.BackgroundColor3 = Color3.new(1,1,1) hook.Position = UDim2.new(0.46,0,0.1,0) hook.Size = UDim2.new(0.35,0,0.08,0) hook.ZIndex = 5 table.insert(swastikaParts, hook) end swastikaFrame = container end local swastikaRot, swastikaHue = 0, 0 RunService.RenderStepped:Connect(function(dt) if not C.swastika or not swastikaFrame then return end swastikaRot = (swastikaRot + dt * C.swastikaSpeed) % 360 swastikaFrame.Rotation = swastikaRot swastikaHue = (swastikaHue + dt * 0.5) % 1 local col = Color3.fromHSV(swastikaHue, 0.9, 1) for _, p in ipairs(swastikaParts) do if p and p.Parent then p.BackgroundColor3 = col end end end) -- BULLET TRAIL UIS.InputBegan:Connect(function(input, gp) if gp then return end if input.UserInputType ~= Enum.UserInputType.MouseButton1 then return end if not C.bulletTrail then return end local gun = getGun() if not gun then return end local handle = gun:FindFirstChild("Handle") if not handle then return end local cam = workspace.CurrentCamera if not cam then return end local char = LP.Character if not char then return end local startPos = handle.Position local look = cam.CFrame.LookVector local excludeList = {char} for _, plr in ipairs(Players:GetPlayers()) do if plr.Character then table.insert(excludeList, plr.Character) end end local params = RaycastParams.new() params.FilterType = Enum.RaycastFilterType.Exclude params.FilterDescendantsInstances = excludeList params.IgnoreWater = true local range = C.bulletTrailRange or 3000 local res = workspace:Raycast(cam.CFrame.Position, look * range, params) local endPos = res and res.Position or (cam.CFrame.Position + look * range) local pp0 = Instance.new("Part") pp0.Anchored = true pp0.CanCollide = false pp0.CanQuery = false pp0.CanTouch = false pp0.CastShadow = false pp0.Transparency = 1 pp0.Size = Vector3.new(0.1,0.1,0.1) pp0.CFrame = CFrame.new(startPos) pp0.Parent = workspace local pp1 = Instance.new("Part") pp1.Anchored = true pp1.CanCollide = false pp1.CanQuery = false pp1.CanTouch = false pp1.CastShadow = false pp1.Transparency = 1 pp1.Size = Vector3.new(0.1,0.1,0.1) pp1.CFrame = CFrame.new(endPos) pp1.Parent = workspace local a0 = Instance.new("Attachment") a0.Parent = pp0 local a1 = Instance.new("Attachment") a1.Parent = pp1 local beam = Instance.new("Beam") beam.Attachment0 = a0 beam.Attachment1 = a1 beam.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 20, 147)), ColorSequenceKeypoint.new(0.5, Color3.fromRGB(255, 105, 180)), ColorSequenceKeypoint.new(1, Color3.fromRGB(255, 20, 147)), }) beam.Width0 = 0.35 beam.Width1 = 0.15 beam.LightEmission = 1 beam.LightInfluence = 0 beam.FaceCamera = true beam.Transparency = NumberSequence.new(0) beam.Parent = workspace task.delay(3, function() if beam and beam.Parent then beam:Destroy() end if pp0 and pp0.Parent then pp0:Destroy() end if pp1 and pp1.Parent then pp1:Destroy() end end) end) -- HITSOUND local HITSOUNDS = { ["NeverLose"] = "rbxassetid://8679627751", ["Uwu"] = "rbxassetid://8323804973", ["Crit"] = "rbxassetid://84477681009186", } local hitsoundObj = nil local lastShotTime = 0 local recentHP = {} local muteState = { active = false, saved = {}, conn = nil } local function isHitsound(s) return s and (s.Name == "NL_Hitsound" or s == hitsoundObj or s.Name == "NL_SplashSound") end local function muteAllSounds() if muteState.active then return end muteState.active = true for _, s in ipairs(workspace:GetDescendants()) do if s:IsA("Sound") and not isHitsound(s) then pcall(function() if not muteState.saved[s] then muteState.saved[s] = s.Volume s.Volume = 0 end end) end end local SS = game:GetService("SoundService") for _, s in ipairs(SS:GetDescendants()) do if s:IsA("Sound") and not isHitsound(s) then pcall(function() if not muteState.saved[s] then muteState.saved[s] = s.Volume s.Volume = 0 end end) end end muteState.conn = workspace.DescendantAdded:Connect(function(d) if not muteState.active then return end if d:IsA("Sound") and not isHitsound(d) then task.wait(0.05) if not muteState.active then return end pcall(function() if not muteState.saved[d] and d.Parent then muteState.saved[d] = d.Volume d.Volume = 0 end end) end end) end local function unmuteAllSounds() if not muteState.active then return end muteState.active = false if muteState.conn then muteState.conn:Disconnect() muteState.conn = nil end for s, v in pairs(muteState.saved) do pcall(function() if s and s.Parent and s.Volume == 0 then s.Volume = v end end) end muteState.saved = {} end local function getHitsoundID() return HITSOUNDS[C.hitsoundChoice] or HITSOUNDS["NeverLose"] end local function ensureHitsound() if hitsoundObj and hitsoundObj.Parent then local want = getHitsoundID() if hitsoundObj.SoundId ~= want then hitsoundObj.SoundId = want end return hitsoundObj end hitsoundObj = Instance.new("Sound") hitsoundObj.Name = "NL_Hitsound" hitsoundObj.SoundId = getHitsoundID() hitsoundObj.Volume = C.hitsoundVolume or 1.5 hitsoundObj.Parent = (LP.Character and LP.Character:FindFirstChild("HumanoidRootPart")) or workspace hitsoundObj.Ended:Connect(function() unmuteAllSounds() end) return hitsoundObj end local function playHit() if not C.hitsound then return end local snd = ensureHitsound() if snd then snd.SoundId = getHitsoundID() snd.Volume = C.hitsoundVolume or 1.5 snd.TimePosition = 0 muteAllSounds() snd:Play() task.delay(3, function() if muteState.active then unmuteAllSounds() end end) end end LP.CharacterAdded:Connect(function() task.wait(0.5) hitsoundObj = nil if C.hitsound then ensureHitsound() end end) UIS.InputBegan:Connect(function(input, gp) if gp then return end if not C.hitsound then return end if input.UserInputType ~= Enum.UserInputType.MouseButton1 then return end if not getGun() then return end lastShotTime = tick() end) local function hookChar(plr) if not plr or plr == LP then return end local char = plr.Character if not char then return end local hum = char:FindFirstChildOfClass("Humanoid") if not hum then return end if hum:GetAttribute("NL_Hooked") then return end hum:SetAttribute("NL_Hooked", true) recentHP[plr] = hum.Health hum.HealthChanged:Connect(function(newHP) local oldHP = recentHP[plr] or newHP recentHP[plr] = newHP if newHP < oldHP and C.hitsound then if tick() - lastShotTime < 0.8 then if getGun() then playHit() lastShotTime = 0 end end end end) end local function scanAllChars() for _, plr in ipairs(Players:GetPlayers()) do hookChar(plr) end end task.spawn(function() scanAllChars() while task.wait(1) do scanAllChars() end end) Players.PlayerAdded:Connect(function(plr) plr.CharacterAdded:Connect(function() task.wait(0.5) hookChar(plr) end) end) for _, plr in ipairs(Players:GetPlayers()) do if plr ~= LP then plr.CharacterAdded:Connect(function() task.wait(0.5) hookChar(plr) end) end end -- ARROWS local arrowCache = {} local function makeArrow(plr) local holder = Instance.new("Frame") holder.Name = "NL_Arrow_" .. plr.Name holder.Parent = arrowGui holder.BackgroundTransparency = 1 holder.AnchorPoint = Vector2.new(0.5, 0.5) holder.Size = UDim2.new(0, C.arrowsSize, 0, C.arrowsSize) holder.ZIndex = 100 holder.Visible = false local glow = Instance.new("TextLabel") glow.Name = "Glow" glow.Parent = holder glow.BackgroundTransparency = 1 glow.AnchorPoint = Vector2.new(0.5, 0.5) glow.Position = UDim2.new(0.5, 0, 0.5, 0) glow.Size = UDim2.new(1.7, 0, 1.7, 0) glow.Font = Enum.Font.GothamBlack glow.Text = "▲" glow.TextSize = 100 glow.TextColor3 = Color3.new(1,1,1) glow.TextTransparency = 0.5 glow.TextXAlignment = Enum.TextXAlignment.Center glow.TextYAlignment = Enum.TextYAlignment.Center glow.ZIndex = 99 local img = Instance.new("TextLabel") img.Name = "Arrow" img.Parent = holder img.BackgroundTransparency = 1 img.AnchorPoint = Vector2.new(0.5, 0.5) img.Position = UDim2.new(0.5, 0, 0.5, 0) img.Size = UDim2.new(1, 0, 1, 0) img.Font = Enum.Font.GothamBlack img.Text = "▲" img.TextSize = 100 img.TextColor3 = Color3.new(1,1,1) img.TextStrokeTransparency = 0 img.TextStrokeColor3 = Color3.fromRGB(0,0,0) img.TextXAlignment = Enum.TextXAlignment.Center img.TextYAlignment = Enum.TextYAlignment.Center img.ZIndex = 101 local grad = Instance.new("UIGradient") grad.Color = ColorSequence.new(Color3.new(1,1,1)) grad.Rotation = 90 grad.Parent = img arrowCache[plr] = {holder = holder, img = img, glow = glow, grad = grad} return arrowCache[plr] end local function getArrow(plr) if arrowCache[plr] and arrowCache[plr].holder.Parent then return arrowCache[plr] end return makeArrow(plr) end Players.PlayerRemoving:Connect(function(plr) local a = arrowCache[plr] if a and a.holder then a.holder:Destroy() end arrowCache[plr] = nil end) task.spawn(function() while task.wait(2) do for plr, a in pairs(arrowCache) do if not plr.Parent or (a.holder and not a.holder.Parent) then if a.holder then a.holder:Destroy() end arrowCache[plr] = nil end end end end) task.spawn(function() while task.wait(0.03) do local cam = workspace.CurrentCamera if not cam then continue end local vp = cam.ViewportSize local center = Vector2.new(vp.X/2, vp.Y/2) local myChar = LP.Character local myHRP = myChar and myChar:FindFirstChild("HumanoidRootPart") for _, a in pairs(arrowCache) do if a.holder.Parent then a.holder.Visible = false end end if C.arrows and myHRP then local radius = C.arrowsRadius local ts = math.max(20, math.floor(C.arrowsSize * 1.4)) for _, plr in ipairs(Players:GetPlayers()) do if plr ~= LP and plr.Character then local hrp = plr.Character:FindFirstChild("HumanoidRootPart") local hum = plr.Character:FindFirstChildOfClass("Humanoid") if hrp and hum and hum.Health > 0 then local rel = hrp.Position - cam.CFrame.Position local dist = rel.Magnitude if dist <= C.arrowsMaxDist then local arrow = getArrow(plr) local x = rel:Dot(cam.CFrame.RightVector) local y = rel:Dot(cam.CFrame.UpVector) local behind = rel:Dot(cam.CFrame.LookVector) < 0 if behind then x = -x y = -y end local ang = math.atan2(y, x) local px = center.X + math.cos(ang) * radius local py = center.Y - math.sin(ang) * radius arrow.holder.Position = UDim2.new(0, px, 0, py) arrow.holder.Size = UDim2.new(0, C.arrowsSize, 0, C.arrowsSize) arrow.holder.Rotation = -math.deg(ang) + 90 arrow.img.TextSize = ts arrow.glow.TextSize = math.floor(ts * 1.7) local role = getRole(plr) local col, col2 if role == "Murder" then col = P.red; col2 = Color3.fromRGB(255, 200, 200) elseif role == "Sheriff" then col = P.accent; col2 = Color3.fromRGB(210, 240, 255) else col = P.green; col2 = Color3.fromRGB(210, 255, 225) end arrow.img.TextColor3 = col arrow.img.TextStrokeColor3 = col:Lerp(Color3.new(0,0,0), 0.7) arrow.glow.TextColor3 = col arrow.grad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, col2), ColorSequenceKeypoint.new(0.5, col), ColorSequenceKeypoint.new(1, col:Lerp(Color3.new(0,0,0), 0.3)), }) arrow.holder.Visible = true end end end end end end end) -- ===================== PART 2: ESP / RAGE / MOVEMENT ===================== local nametagCache = {} local tracersCache = {} local function getOrCreateNametag(plr) if nametagCache[plr] and nametagCache[plr].Parent then return nametagCache[plr] end if not plr.Character then return nil end local head = plr.Character:FindFirstChild("Head") if not head then return nil end local bb = Instance.new("BillboardGui") bb.Name = "NL_Nametag" bb.Size = UDim2.new(0, 200, 0, 40) bb.StudsOffset = Vector3.new(0, 2.5, 0) bb.AlwaysOnTop = true bb.Parent = head local lbl = Instance.new("TextLabel") lbl.Parent = bb lbl.BackgroundTransparency = 1 lbl.Size = UDim2.new(1, 0, 1, 0) lbl.Font = Enum.Font.GothamBold lbl.TextColor3 = P.text lbl.TextSize = 12 lbl.TextStrokeTransparency = 0.3 lbl.TextStrokeColor3 = Color3.new(0,0,0) nametagCache[plr] = bb return bb end task.spawn(function() while task.wait(0.08) do local cam = workspace.CurrentCamera if not cam then continue end local vpX, vpY = cam.ViewportSize.X, cam.ViewportSize.Y for _, plr in ipairs(Players:GetPlayers()) do if plr ~= LP and plr.Character then local role = getRole(plr) local col = P.green if role == "Murder" then col = P.red elseif role == "Sheriff" then col = P.accent end local hl = plr.Character:FindFirstChild("NL_ESP") local draw = false if role == "Murder" and (C.espMurder or C.espAll) then draw = true elseif role == "Sheriff" and (C.espSheriff or C.espAll) then draw = true elseif role == "Innocent" and C.espAll then draw = true end if draw then if not hl then hl = Instance.new("Highlight") hl.Name = "NL_ESP" hl.Parent = plr.Character hl.Adornee = plr.Character hl.FillTransparency = 0.6 hl.OutlineTransparency = 0 end hl.FillColor = col hl.OutlineColor = col hl.Enabled = true elseif hl then hl.Enabled = false end if C.nametags then local bb = getOrCreateNametag(plr) if bb then local lbl = bb:FindFirstChildOfClass("TextLabel") local root = plr.Character:FindFirstChild("HumanoidRootPart") local myRoot = LP.Character and LP.Character:FindFirstChild("HumanoidRootPart") local dist = 0 if root and myRoot then dist = math.floor((root.Position - myRoot.Position).Magnitude) end if lbl then lbl.Text = plr.Name .. " [" .. (role or "?") .. "] " .. dist .. "m" lbl.TextColor3 = col end bb.Enabled = true end else local bb = nametagCache[plr] if bb then bb.Enabled = false end end local tracerFrame = tracersCache[plr] if C.tracers then local hrp = plr.Character:FindFirstChild("HumanoidRootPart") if hrp then local pos, on = cam:WorldToViewportPoint(hrp.Position) if on then local fromX = vpX / 2 local fromY = vpY local toX, toY = pos.X, pos.Y local dX, dY = toX - fromX, toY - fromY local dist2D = math.sqrt(dX*dX + dY*dY) local angle = math.deg(math.atan2(dY, dX)) local midX = (fromX + toX) / 2 local midY = (fromY + toY) / 2 if not tracerFrame then tracerFrame = Instance.new("Frame") tracerFrame.Parent = GUI tracerFrame.BorderSizePixel = 0 tracerFrame.AnchorPoint = Vector2.new(0.5, 0.5) tracerFrame.ZIndex = 3 tracerFrame.BackgroundTransparency = 0.4 tracersCache[plr] = tracerFrame end tracerFrame.Position = UDim2.new(0, midX, 0, midY) tracerFrame.Size = UDim2.new(0, dist2D, 0, 1) tracerFrame.Rotation = angle tracerFrame.BackgroundColor3 = col tracerFrame.Visible = true else if tracerFrame then tracerFrame.Visible = false end end end else if tracerFrame then tracerFrame.Visible = false end end end end for plr, bb in pairs(nametagCache) do if not plr.Parent or not plr.Character then if bb and bb.Parent then bb:Destroy() end nametagCache[plr] = nil end end for plr, fr in pairs(tracersCache) do if not plr.Parent then if fr and fr.Parent then fr:Destroy() end tracersCache[plr] = nil end end end end) local gunDropCache = {part = nil, time = 0} task.spawn(function() while task.wait(0.5) do if not C.espGunDrop then continue end local now = tick() if not gunDropCache.part or not gunDropCache.part.Parent or now - gunDropCache.time > 1 then gunDropCache.time = now gunDropCache.part = nil for _, obj in ipairs(workspace:GetChildren()) do if obj:IsA("Model") and obj.Name == "Normal" then local gd = obj:FindFirstChild("GunDrop") if gd then gunDropCache.part = gd break end end end if not gunDropCache.part then for _, obj in ipairs(workspace:GetChildren()) do if obj:IsA("BasePart") and obj.Name == "GunDrop" then gunDropCache.part = obj break end end end end local gunDrop = gunDropCache.part if gunDrop and gunDrop.Parent then local hl = gunDrop:FindFirstChild("NL_ESP_GunDrop") if not hl then hl = Instance.new("Highlight") hl.Name = "NL_ESP_GunDrop" hl.Parent = gunDrop hl.Adornee = gunDrop hl.FillColor = Color3.fromRGB(255,220,90) hl.OutlineColor = Color3.fromRGB(255,220,90) hl.FillTransparency = 0.5 hl.OutlineTransparency = 0 end hl.Enabled = true end end end) -- TARGET ESP LOOP local targetEspShowTime = 0 local avatarCache = {} local function getAvatar(player) if avatarCache[player] then return avatarCache[player] end local url = "" pcall(function() url = Players:GetUserThumbnailAsync(player.UserId, Enum.ThumbnailType.HeadShot, Enum.ThumbnailSize.Size150x150) end) avatarCache[player] = url return url end task.spawn(function() while task.wait(0.1) do if not C.targetEsp then if targetEsp.Visible then TweenService:Create(targetEsp, TweenInfo.new(0.2), {BackgroundTransparency = 1}):Play() particleContainer.Visible = false targetEspShowTime = tick() end task.wait(0.25) targetEsp.Visible = false continue end local cam = workspace.CurrentCamera if not cam then continue end local target = nil if C.targetEspMode == "Crosshair" then local center = Vector2.new(cam.ViewportSize.X/2, cam.ViewportSize.Y/2) local best, bestD = nil, math.huge for _, plr in ipairs(Players:GetPlayers()) do if plr ~= LP and plr.Character then local hum = plr.Character:FindFirstChildOfClass("Humanoid") if hum and hum.Health > 0 then local hrp = plr.Character:FindFirstChild("HumanoidRootPart") if hrp then local pos, on = cam:WorldToViewportPoint(hrp.Position) if on then local d = (Vector2.new(pos.X,pos.Y) - center).Magnitude if d < C.targetEspRadius and d < bestD then best, bestD = plr, d end end end end end end target = best else local myChar = LP.Character local myHRP = myChar and myChar:FindFirstChild("HumanoidRootPart") if myHRP then local best, bestD = nil, math.huge for _, plr in ipairs(Players:GetPlayers()) do if plr ~= LP and plr.Character then local hum = plr.Character:FindFirstChildOfClass("Humanoid") if hum and hum.Health > 0 then local hrp = plr.Character:FindFirstChild("HumanoidRootPart") if hrp then local d = (hrp.Position - myHRP.Position).Magnitude if d < bestD and d < C.targetEspRadius then best, bestD = plr, d end end end end end target = best end end if target and target.Character then local hum = target.Character:FindFirstChildOfClass("Humanoid") if hum then local role = getRole(target) or "Innocent" local col = P.green if role == "Murder" then col = P.red elseif role == "Sheriff" then col = P.accent end teName.Text = target.Name teRole.Text = role teRole.TextColor3 = col teHpLabel.Text = "HP: " .. math.floor(hum.Health) teHpLabel.TextColor3 = col local hp = math.clamp(hum.Health / math.max(hum.MaxHealth, 1), 0, 1) TweenService:Create(teHpFill, TweenInfo.new(0.15), {Size = UDim2.new(hp, 0, 1, 0)}):Play() local avatarImg = getAvatar(target) if avatarImg ~= "" then teAvatar.Image = avatarImg end targetStroke.Color = col avatarStroke.Color = col local t = tick() local W = 280 local H = 84 for i, dot in ipairs(teParticles) do local phase = (t * 1.2 + (i-1) * 0.8) % 1 local angle = phase * math.pi * 2 local rx = math.cos(angle) * (W/2) local ry = math.sin(angle) * (H/2) dot.Position = UDim2.new(0.5, rx, 0.5, ry) dot.BackgroundTransparency = 1 - math.sin(phase * math.pi) dot.BackgroundColor3 = col end if not targetEsp.Visible then targetEsp.Visible = true targetEsp.BackgroundTransparency = 1 TweenService:Create(targetEsp, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {BackgroundTransparency = 0.15}):Play() particleContainer.Visible = true end targetEspShowTime = tick() end else if targetEsp.Visible and (tick() - targetEspShowTime) > 0.15 then TweenService:Create(targetEsp, TweenInfo.new(0.25), {BackgroundTransparency = 1}):Play() particleContainer.Visible = false task.wait(0.28) targetEsp.Visible = false end end end end) local origLight = { ClockTime = Lighting.ClockTime, Brightness = Lighting.Brightness, OutdoorAmbient = Lighting.OutdoorAmbient, Ambient = Lighting.Ambient, ColorShift_Bottom = Lighting.ColorShift_Bottom, ColorShift_Top = Lighting.ColorShift_Top, FogColor = Lighting.FogColor, FogEnd = Lighting.FogEnd, FogStart = Lighting.FogStart, } local lastWorldKey = "" RunService.Heartbeat:Connect(function() local key = tostring(C.worldColorEnabled) .. C.worldColorR .. "_" .. C.worldColorG .. "_" .. C.worldColorB .. "_" .. tostring(C.fog) .. C.fogDensity if key == lastWorldKey then return end lastWorldKey = key if C.worldColorEnabled then local col = Color3.fromRGB(C.worldColorR, C.worldColorG, C.worldColorB) Lighting.Ambient = col Lighting.OutdoorAmbient = col Lighting.ColorShift_Bottom = col Lighting.ColorShift_Top = col elseif not C.fog then Lighting.Ambient = origLight.Ambient Lighting.OutdoorAmbient = origLight.OutdoorAmbient Lighting.ColorShift_Bottom = origLight.ColorShift_Bottom Lighting.ColorShift_Top = origLight.ColorShift_Top end if C.fog then if C.worldColorEnabled then Lighting.FogColor = Color3.fromRGB(C.worldColorR, C.worldColorG, C.worldColorB) else Lighting.FogColor = origLight.FogColor end Lighting.FogStart = 0 Lighting.FogEnd = C.fogDensity else Lighting.FogEnd = origLight.FogEnd Lighting.FogStart = origLight.FogStart Lighting.FogColor = origLight.FogColor end end) -- MOVEMENT LOOP local baseWalkSpeed = nil local strafeSaved = nil local strafeWasAir = false local lastMoveDir = Vector3.new(0,0,0) local spinAccum = 0 RunService.RenderStepped:Connect(function(dt) local char = LP.Character if not char then baseWalkSpeed = nil strafeWasAir = false return end local hum = char:FindFirstChildOfClass("Humanoid") local hrp = char:FindFirstChild("HumanoidRootPart") local head = char:FindFirstChild("Head") if not hum or not hrp then return end local state = hum:GetState() local inAir = (state == Enum.HumanoidStateType.Freefall or state == Enum.HumanoidStateType.Jumping) hum.AutoRotate = not (C.spinbot or C.antiaim) if C.flashPeek then if not baseWalkSpeed then baseWalkSpeed = hum.WalkSpeed end hum.WalkSpeed = inAir and C.flashPeekSpeed or (baseWalkSpeed or 16) else if baseWalkSpeed then hum.WalkSpeed = baseWalkSpeed baseWalkSpeed = nil end end if C.strafe and inAir then local vel = hrp.AssemblyLinearVelocity local md = hum.MoveDirection if not strafeWasAir then strafeSaved = Vector3.new(vel.X, 0, vel.Z) end strafeWasAir = true local speed = strafeSaved and strafeSaved.Magnitude or 30 if speed < 15 then speed = 30 end if md.Magnitude > 0.1 then local u = md.Unit local dot = lastMoveDir.Magnitude > 0.1 and u:Dot(lastMoveDir.Unit) or 0 if dot < 0.5 then hrp.AssemblyLinearVelocity = Vector3.new(u.X * C.strafePower, vel.Y, u.Z * C.strafePower) strafeSaved = Vector3.new(u.X * C.strafePower, 0, u.Z * C.strafePower) else local nx = strafeSaved.X + u.X * C.strafePower * 0.06 local nz = strafeSaved.Z + u.Z * C.strafePower * 0.06 local nm = math.sqrt(nx*nx + nz*nz) if nm > 0.01 then strafeSaved = Vector3.new(nx/nm*speed, 0, nz/nm*speed) end hrp.AssemblyLinearVelocity = Vector3.new(strafeSaved.X, vel.Y, strafeSaved.Z) end lastMoveDir = md else lastMoveDir = Vector3.new(0,0,0) end else strafeWasAir = false lastMoveDir = Vector3.new(0,0,0) end if C.spinbot then spinAccum = (spinAccum + dt * C.spinbotSpeed * 6) % 360 local pos = hrp.Position local v = hrp.AssemblyLinearVelocity local av = hrp.AssemblyAngularVelocity hrp.CFrame = CFrame.new(pos) * CFrame.Angles(0, math.rad(spinAccum), 0) hrp.AssemblyLinearVelocity = v hrp.AssemblyAngularVelocity = av end if C.antiaim and not C.spinbot then local refDir = hum.MoveDirection if refDir.Magnitude < 0.1 then local cam = workspace.CurrentCamera if cam then refDir = cam.CFrame.LookVector end end local baseYaw = math.atan2(-refDir.X, -refDir.Z) local offset if C.aaDirection == "Back" then offset = math.pi elseif C.aaDirection == "Left" then offset = math.pi / 2 elseif C.aaDirection == "Right" then offset = -math.pi / 2 elseif C.aaDirection == "Custom" then offset = math.rad(C.antiaimAngle) else offset = math.pi end local yaw = baseYaw + offset local pos = hrp.Position local v = hrp.AssemblyLinearVelocity local av = hrp.AssemblyAngularVelocity hrp.CFrame = CFrame.new(pos) * CFrame.Angles(0, yaw, 0) hrp.AssemblyLinearVelocity = v hrp.AssemblyAngularVelocity = av end if head then local neck = head:FindFirstChild("Neck") if neck and neck:IsA("Motor6D") then if C.headTilt then if not neck:FindFirstChild("NL_OrigC0") then local v = Instance.new("CFrameValue") v.Name = "NL_OrigC0" v.Value = neck.C0 v.Parent = neck end neck.C0 = neck.NL_OrigC0.Value * CFrame.Angles(0, 0, math.rad(C.headTiltAngle)) elseif neck:FindFirstChild("NL_OrigC0") then neck.C0 = neck.NL_OrigC0.Value neck.NL_OrigC0:Destroy() end end end end) -- ANTI-FLING local lastFlingCheck = 0 RunService.Heartbeat:Connect(function() if not C.antiFling then return end local now = tick() if now - lastFlingCheck < 0.05 then return end lastFlingCheck = now local char = LP.Character if not char then return end local hrp = char:FindFirstChild("HumanoidRootPart") if not hrp then return end for _, o in ipairs(char:GetDescendants()) do if o:IsA("BodyVelocity") or o:IsA("BodyGyro") or o:IsA("BodyForce") or o:IsA("BodyThrust") or o:IsA("BodyAngularVelocity") or o:IsA("LinearVelocity") or o:IsA("AlignPosition") or o:IsA("AlignOrientation") or o:IsA("VectorForce") then if not o.Name:find("NL_") then pcall(function() o:Destroy() end) end end end if hrp.AssemblyLinearVelocity.Magnitude > 500 then hrp.AssemblyLinearVelocity = Vector3.new(0,0,0) hrp.AssemblyAngularVelocity = Vector3.new(0,0,0) end end) -- AIM PREDICTION (built-in, 500 studs/sec) local AIM_BULLET_SPEED = 500 local AIM_PING_COMP = true local function aimPredict(targetPart) if not targetPart or not targetPart.Parent then return nil end local cam = workspace.CurrentCamera if not cam then return targetPart.Position end local origin = cam.CFrame.Position local tPos = targetPart.Position local tVel = Vector3.new(0,0,0) local okV, v = pcall(function() return targetPart.AssemblyLinearVelocity end) if okV and typeof(v) == "Vector3" then tVel = v end local speed = AIM_BULLET_SPEED local rel = tPos - origin local a = tVel:Dot(tVel) - speed*speed local b = 2 * rel:Dot(tVel) local c = rel:Dot(rel) local travelTime if math.abs(a) > 1e-6 then local disc = b*b - 4*a*c if disc >= 0 then local sq = math.sqrt(disc) local t1 = (-b + sq) / (2*a) local t2 = (-b - sq) / (2*a) if t1 > 0 and t2 > 0 then travelTime = math.min(t1, t2) else travelTime = math.max(t1, t2) end end end if not travelTime or travelTime < 0 then travelTime = rel.Magnitude / speed end if AIM_PING_COMP then local ping = 0 pcall(function() ping = LP:GetNetworkPing() or 0 end) travelTime = travelTime + ping end if travelTime > 1.5 then travelTime = 1.5 end local predicted = tPos + tVel * travelTime if typeof(predicted) ~= "Vector3" then return tPos end if predicted.X ~= predicted.X then return tPos end if predicted.Y ~= predicted.Y then return tPos end if predicted.Z ~= predicted.Z then return tPos end return predicted end pcall(function() RunService:UnbindFromRenderStep("NL_Aimbot") end) RunService:BindToRenderStep("NL_Aimbot", Enum.RenderPriority.Camera.Value + 1, function() if not C.aimbot then return end local cam = workspace.CurrentCamera if not cam then return end local murder = findMurderAny() if not murder or not murder.Character then return end local h = murder.Character:FindFirstChild("Head") or murder.Character:FindFirstChild("UpperTorso") or murder.Character:FindFirstChild("HumanoidRootPart") if not h then return end local aimPos = aimPredict(h) or h.Position if (aimPos - cam.CFrame.Position).Magnitude > 0.5 then cam.CFrame = CFrame.new(cam.CFrame.Position, aimPos) end end) -- AUTO SHOOT local lastAutoShoot = 0 RunService.Heartbeat:Connect(function() if not C.autoShoot then return end local now = tick() if now - lastAutoShoot < C.autoShootDelay then return end if not getGun() then return end local murder = findMurderAny() if not murder or not murder.Character then return end local th = murder.Character:FindFirstChild("Head") if not th then return end local cam = workspace.CurrentCamera if not cam then return end local aimPos = aimPredict(th) or th.Position local sp, on = cam:WorldToScreenPoint(aimPos) if not on then return end lastAutoShoot = now if VIM then pcall(function() VIM:SendMouseButtonEvent(sp.X, sp.Y, 0, true, game, 1) task.wait(0.005) VIM:SendMouseButtonEvent(sp.X, sp.Y, 0, false, game, 1) end) end end) -- TRIGGER BOT local lastTrigger = 0 RunService.Heartbeat:Connect(function() if not C.triggerBot then return end if not getGun() then return end local char = LP.Character if not char or not char:FindFirstChild("Head") then return end local cam = workspace.CurrentCamera if not cam then return end local params = RaycastParams.new() params.FilterType = Enum.RaycastFilterType.Exclude params.FilterDescendantsInstances = {char} params.IgnoreWater = true local res = workspace:Raycast(cam.CFrame.Position, cam.CFrame.LookVector * 500, params) if not res or not res.Instance then return end local model = res.Instance:FindFirstAncestorOfClass("Model") if not model then return end local target = nil for _, plr in ipairs(Players:GetPlayers()) do if plr.Character == model then target = plr break end end if not target or target == LP then return end local role = getRole(target) local ok = false if C.triggerTarget == "All" then ok = role ~= nil elseif C.triggerTarget == "Only Murder" then ok = role == "Murder" elseif C.triggerTarget == "Only Sheriff" then ok = role == "Sheriff" end if not ok then return end local now = tick() if now - lastTrigger < C.triggerDelay then return end lastTrigger = now if VIM then local vp = cam.ViewportSize pcall(function() VIM:SendMouseButtonEvent(vp.X/2, vp.Y/2, 0, true, game, 1) task.wait(0.01) VIM:SendMouseButtonEvent(vp.X/2, vp.Y/2, 0, false, game, 1) end) end end) -- FLING local flingTarget = nil local flingConn = nil local function stopFling() if flingConn then flingConn:Disconnect() flingConn = nil end flingTarget = nil end local function startFling(plr) if not plr or not plr.Character then notify("Игрок не найден", P.red) return end stopFling() flingTarget = plr flingConn = RunService.Heartbeat:Connect(function() local char = flingTarget and flingTarget.Character if not char then return end local hrp = char:FindFirstChild("HumanoidRootPart") if not hrp then return end for _, p in ipairs(char:GetDescendants()) do if p:IsA("BasePart") and not p:GetAttribute("NL_Fake") then p.CanCollide = false end end local bv = hrp:FindFirstChild("NL_FlingBV") if not bv then bv = Instance.new("BodyVelocity") bv.Name = "NL_FlingBV" bv.MaxForce = Vector3.new(math.huge, math.huge, math.huge) bv.Parent = hrp end local bav = hrp:FindFirstChild("NL_FlingBAV") if not bav then bav = Instance.new("BodyAngularVelocity") bav.Name = "NL_FlingBAV" bav.MaxTorque = Vector3.new(math.huge, math.huge, math.huge) bav.Parent = hrp end bv.Velocity = Vector3.new(math.random(-500,500), math.random(500,1500), math.random(-500,500)) bav.AngularVelocity = Vector3.new(math.random(-100,100), math.random(-100,100), math.random(-100,100)) end) notify("Fling: " .. plr.Name, P.red) end -- GET PISTOL local function GetPistol() local char = LP.Character if not char then notify("Нет персонажа", P.red) return end local hrp = char:FindFirstChild("HumanoidRootPart") if not hrp then notify("Нет HRP", P.red) return end local drop = nil for _, o in ipairs(workspace:GetChildren()) do if o:IsA("Model") and o.Name == "Normal" then local gd = o:FindFirstChild("GunDrop") if gd then drop = gd break end end end if not drop then for _, o in ipairs(workspace:GetDescendants()) do if o:IsA("BasePart") and o.Name:lower():find("gundrop") then drop = o break end end end if not drop then notify("Пистолет не найден", P.red) return end pcall(function() drop.CFrame = hrp.CFrame * CFrame.new(0,2,-2) end) if firetouchinterest then pcall(function() firetouchinterest(drop, hrp, 0) task.wait(0.05) firetouchinterest(drop, hrp, 1) end) end task.wait(0.1) pcall(function() local cf = hrp.CFrame hrp.CFrame = drop.CFrame task.wait(0.05) hrp.CFrame = cf end) notify("Get Pistol", P.green) end -- AUTO GRAB GUN local lastGrabTime = 0 local grabbedParts = {} task.spawn(function() while task.wait(0.1) do if not C.autoGrabGun then continue end local char = LP.Character if not char then continue end local hrp = char:FindFirstChild("HumanoidRootPart") if not hrp then continue end local now = tick() if now - lastGrabTime < 0.5 then continue end local drop = nil for _, o in ipairs(workspace:GetChildren()) do if o:IsA("Model") and o.Name == "Normal" then local gd = o:FindFirstChild("GunDrop") if gd and gd:IsA("BasePart") then drop = gd break end end end if not drop then for _, o in ipairs(workspace:GetDescendants()) do if o:IsA("BasePart") and o.Name:lower():find("gundrop") then drop = o break end end end if drop then if grabbedParts[drop] and now - grabbedParts[drop] < 3 then continue end lastGrabTime = now grabbedParts[drop] = now pcall(function() drop.CFrame = hrp.CFrame * CFrame.new(0, 2, 0) drop.Velocity = Vector3.new(0,0,0) drop.AssemblyLinearVelocity = Vector3.new(0,0,0) end) if firetouchinterest then pcall(function() firetouchinterest(drop, hrp, 0) task.wait(0.03) firetouchinterest(drop, hrp, 1) end) end task.wait(0.05) if drop and drop.Parent and hrp and hrp.Parent then pcall(function() drop.CFrame = hrp.CFrame task.wait(0.02) end) end notify("Auto Grab: " .. drop.Name, P.green) end for part, t in pairs(grabbedParts) do if not part.Parent or now - t > 10 then grabbedParts[part] = nil end end end end) local function setTimeDay() Lighting.ClockTime = 14 Lighting.Brightness = origLight.Brightness Lighting.OutdoorAmbient = origLight.OutdoorAmbient Lighting.Ambient = origLight.Ambient end local function setTimeNight() Lighting.ClockTime = 0 Lighting.Brightness = 0.5 Lighting.OutdoorAmbient = Color3.fromRGB(20,20,35) Lighting.Ambient = Color3.fromRGB(15,15,25) end local function setTimeReset() Lighting.ClockTime = origLight.ClockTime Lighting.Brightness = origLight.Brightness Lighting.OutdoorAmbient = origLight.OutdoorAmbient Lighting.Ambient = origLight.Ambient Lighting.ColorShift_Bottom = origLight.ColorShift_Bottom Lighting.ColorShift_Top = origLight.ColorShift_Top Lighting.FogColor = origLight.FogColor Lighting.FogEnd = origLight.FogEnd Lighting.FogStart = origLight.FogStart end -- ===================== PART 3: UI ===================== local function buildUI() local W, H = 660, 520 local Main = Instance.new("Frame") Main.Parent = GUI Main.BackgroundColor3 = P.bg Main.BackgroundTransparency = 0.25 Main.BorderSizePixel = 0 Main.AnchorPoint = Vector2.new(0.5, 0.5) Main.Position = UDim2.new(0.5, 0, 0.5, 0) Main.Size = UDim2.new(0, W, 0, H) Main.Active = true Main.Draggable = true Main.Visible = false Main.ZIndex = 5000 corner(Main, 12) stroke(Main, P.border, 1, 0.35) local grad = Instance.new("UIGradient") grad.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.fromRGB(22,28,42)), ColorSequenceKeypoint.new(0.5, Color3.fromRGB(16,21,32)), ColorSequenceKeypoint.new(1, Color3.fromRGB(11,15,22)), }) grad.Rotation = 90 grad.Parent = Main local function openMenu() Main.Visible = true Main.Size = UDim2.new(0, 0, 0, 0) Main.BackgroundTransparency = 1 local ti = TweenInfo.new(0.4, Enum.EasingStyle.Back, Enum.EasingDirection.Out) TweenService:Create(Main, ti, { Size = UDim2.new(0, W, 0, H), BackgroundTransparency = 0.25, }):Play() end local function closeMenu() local ti = TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.In) local t = TweenService:Create(Main, ti, { Size = UDim2.new(0, 0, 0, 0), BackgroundTransparency = 1, }) t:Play() t.Completed:Connect(function() Main.Visible = false Main.Size = UDim2.new(0, W, 0, H) Main.BackgroundTransparency = 0.25 end) end local icon = Instance.new("ImageLabel") icon.Parent = Main icon.BackgroundTransparency = 1 icon.Position = UDim2.new(0, 14, 0, 3) icon.Size = UDim2.new(0, 40, 0, 40) icon.Image = BRAND icon.ScaleType = Enum.ScaleType.Fit icon.ZIndex = 5003 local title = Instance.new("TextLabel") title.Parent = Main title.BackgroundTransparency = 1 title.Position = UDim2.new(0, 62, 0, 10) title.Size = UDim2.new(0, 250, 0, 22) title.Font = Enum.Font.GothamBold title.Text = "NeverLose.cc" title.TextColor3 = P.text title.TextSize = 17 title.TextXAlignment = Enum.TextXAlignment.Left title.ZIndex = 5003 local closeBtn = Instance.new("TextButton") closeBtn.Parent = Main closeBtn.AnchorPoint = Vector2.new(1,0) closeBtn.BackgroundColor3 = P.panel closeBtn.BackgroundTransparency = 0.65 closeBtn.BorderSizePixel = 0 closeBtn.Position = UDim2.new(1, -12, 0, 10) closeBtn.Size = UDim2.new(0, 26, 0, 26) closeBtn.Text = "" closeBtn.AutoButtonColor = false closeBtn.ZIndex = 5003 corner(closeBtn, 6) local closeStroke = stroke(closeBtn, P.border, 1, 0.7) local x1 = Instance.new("Frame") x1.Parent = closeBtn x1.BackgroundColor3 = P.textDim x1.BorderSizePixel = 0 x1.AnchorPoint = Vector2.new(0.5, 0.5) x1.Position = UDim2.new(0.5, 0, 0.5, 0) x1.Size = UDim2.new(0, 12, 0, 2) x1.Rotation = 45 x1.ZIndex = 5004 corner(x1, 1) local x2 = Instance.new("Frame") x2.Parent = closeBtn x2.BackgroundColor3 = P.textDim x2.BorderSizePixel = 0 x2.AnchorPoint = Vector2.new(0.5, 0.5) x2.Position = UDim2.new(0.5, 0, 0.5, 0) x2.Size = UDim2.new(0, 12, 0, 2) x2.Rotation = -45 x2.ZIndex = 5004 corner(x2, 1) closeBtn.MouseEnter:Connect(function() TweenService:Create(x1, TweenInfo.new(0.15), {BackgroundColor3 = P.red}):Play() TweenService:Create(x2, TweenInfo.new(0.15), {BackgroundColor3 = P.red}):Play() TweenService:Create(closeStroke, TweenInfo.new(0.15), {Color = P.red, Transparency = 0.2}):Play() end) closeBtn.MouseLeave:Connect(function() TweenService:Create(x1, TweenInfo.new(0.15), {BackgroundColor3 = P.textDim}):Play() TweenService:Create(x2, TweenInfo.new(0.15), {BackgroundColor3 = P.textDim}):Play() TweenService:Create(closeStroke, TweenInfo.new(0.15), {Color = P.border, Transparency = 0.7}):Play() end) closeBtn.MouseButton1Click:Connect(closeMenu) local tabContainer = Instance.new("Frame") tabContainer.Parent = Main tabContainer.BackgroundTransparency = 1 tabContainer.Position = UDim2.new(0, 14, 0, 52) tabContainer.Size = UDim2.new(0, 130, 1, -66) tabContainer.ZIndex = 5001 local tabLayout = Instance.new("UIListLayout") tabLayout.Parent = tabContainer tabLayout.SortOrder = Enum.SortOrder.LayoutOrder tabLayout.Padding = UDim.new(0, 5) local pages = Instance.new("Folder") pages.Parent = Main local function createPage(name) local page = Instance.new("ScrollingFrame") page.Name = name page.Parent = pages page.BackgroundTransparency = 1 page.BorderSizePixel = 0 page.Position = UDim2.new(0, 156, 0, 52) page.Size = UDim2.new(1, -168, 1, -66) page.CanvasSize = UDim2.new(0, 0, 0, 0) page.ScrollBarThickness = 3 page.ScrollBarImageColor3 = P.accent page.ScrollingDirection = Enum.ScrollingDirection.Y page.Visible = false page.ZIndex = 5001 local lay = Instance.new("UIListLayout") lay.Parent = page lay.SortOrder = Enum.SortOrder.LayoutOrder lay.Padding = UDim.new(0, 6) lay:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function() page.CanvasSize = UDim2.new(0, 0, 0, lay.AbsoluteContentSize.Y + 20) end) return page end local visualsPage = createPage("Visuals") local worldPage = createPage("World") local ragePage = createPage("Rage") local aaPage = createPage("Anti-Aim") local flingPage = createPage("Fling") local legitPage = createPage("Legit") local miscPage = createPage("Misc") local hitsoundPage = createPage("Hitsound") local cfgPage = createPage("Config") visualsPage.Visible = true local tabButtons = {} local function createTab(name, page, iconUrl) local btn = Instance.new("TextButton") btn.Parent = tabContainer btn.BackgroundColor3 = P.bgAlt btn.BackgroundTransparency = 0.65 btn.BorderSizePixel = 0 btn.Size = UDim2.new(1, 0, 0, 34) btn.Text = "" btn.AutoButtonColor = false btn.ZIndex = 5002 corner(btn, 6) local s = stroke(btn, P.border, 1, 0.7) local line = Instance.new("Frame") line.Parent = btn line.BackgroundColor3 = P.accent line.BorderSizePixel = 0 line.Position = UDim2.new(0, 0, 0.2, 0) line.Size = UDim2.new(0, 3, 0.6, 0) line.Visible = false corner(line, 4) local txt = Instance.new("TextLabel") txt.Parent = btn txt.BackgroundTransparency = 1 txt.Font = Enum.Font.GothamSemibold txt.Text = name txt.TextColor3 = P.textDim txt.TextSize = 12 txt.ZIndex = 5003 if iconUrl then txt.Position = UDim2.new(0, 40, 0, 0) txt.Size = UDim2.new(1, -44, 1, 0) txt.TextXAlignment = Enum.TextXAlignment.Left else txt.Position = UDim2.new(0, 0, 0, 0) txt.Size = UDim2.new(1, 0, 1, 0) txt.TextXAlignment = Enum.TextXAlignment.Center end local iconLbl = nil if iconUrl then iconLbl = Instance.new("ImageLabel") iconLbl.Parent = btn iconLbl.BackgroundTransparency = 1 iconLbl.AnchorPoint = Vector2.new(0, 0.5) iconLbl.Position = UDim2.new(0, 12, 0.5, 0) iconLbl.Size = UDim2.new(0, 18, 0, 18) iconLbl.Image = iconUrl iconLbl.ImageColor3 = P.textDim iconLbl.ScaleType = Enum.ScaleType.Fit iconLbl.ZIndex = 5003 end btn.MouseButton1Click:Connect(function() for _, p in ipairs(pages:GetChildren()) do p.Visible = false end for _, b in ipairs(tabButtons) do b.txt.TextColor3 = P.textDim b.accent.Visible = false b.stroke.Color = P.border if b.icon then b.icon.ImageColor3 = P.textDim end end page.Visible = true line.Visible = true s.Color = P.accent txt.TextColor3 = P.accent if iconLbl then iconLbl.ImageColor3 = P.accent end if page == cfgPage and _G.refreshCfgList then _G.refreshCfgList() end end) table.insert(tabButtons, {btn = btn, accent = line, stroke = s, txt = txt, icon = iconLbl}) end createTab("Visuals", visualsPage, VISUALS_ICON) createTab("World", worldPage) createTab("Rage", ragePage) createTab("Anti-Aim", aaPage) createTab("Fling", flingPage) createTab("Legit", legitPage) createTab("Misc", miscPage) createTab("Hitsound", hitsoundPage) createTab("Config", cfgPage) tabButtons[1].txt.TextColor3 = P.accent tabButtons[1].accent.Visible = true tabButtons[1].stroke.Color = P.accent if tabButtons[1].icon then tabButtons[1].icon.ImageColor3 = P.accent end local allBinds = {} local toggleRefs = {} local function section(parent, titleTxt) local HH = 30 local sec = Instance.new("Frame") sec.Parent = parent sec.BackgroundTransparency = 1 sec.Size = UDim2.new(1, -10, 0, HH) sec.ClipsDescendants = true sec.ZIndex = 5001 local hBtn = Instance.new("TextButton") hBtn.Parent = sec hBtn.BackgroundTransparency = 1 hBtn.Size = UDim2.new(1, 0, 0, HH) hBtn.Text = "" hBtn.ZIndex = 5002 hBtn.AutoButtonColor = false local line = Instance.new("Frame") line.Parent = hBtn line.BackgroundColor3 = P.accent line.BackgroundTransparency = 0.7 line.Position = UDim2.new(0, 0, 1, -1) line.Size = UDim2.new(1, 0, 0, 1) line.ZIndex = 5002 local lbl = Instance.new("TextLabel") lbl.Parent = hBtn lbl.BackgroundTransparency = 1 lbl.Position = UDim2.new(0, 4, 0, 0) lbl.Size = UDim2.new(1, -20, 1, 0) lbl.Font = Enum.Font.GothamBold lbl.Text = "> " .. titleTxt lbl.TextColor3 = P.accent lbl.TextSize = 12 lbl.TextXAlignment = Enum.TextXAlignment.Left lbl.ZIndex = 5003 local arrow = Instance.new("TextLabel") arrow.Parent = hBtn arrow.AnchorPoint = Vector2.new(1, 0.5) arrow.Position = UDim2.new(1, -6, 0.5, 0) arrow.Size = UDim2.new(0, 18, 0, 18) arrow.BackgroundTransparency = 1 arrow.Font = Enum.Font.GothamBold arrow.Text = "v" arrow.TextColor3 = P.accent arrow.TextSize = 13 arrow.ZIndex = 5003 local content = Instance.new("Frame") content.Parent = sec content.BackgroundTransparency = 1 content.Position = UDim2.new(0, 0, 0, HH) content.Size = UDim2.new(1, 0, 0, 0) content.ZIndex = 5001 local lay = Instance.new("UIListLayout") lay.Parent = content lay.SortOrder = Enum.SortOrder.LayoutOrder lay.Padding = UDim.new(0, 6) local isOpen = false local function upd() local ch = isOpen and lay.AbsoluteContentSize.Y or 0 TweenService:Create(sec, TweenInfo.new(0.3), {Size = UDim2.new(1, -10, 0, HH + ch)}):Play() TweenService:Create(content, TweenInfo.new(0.3), {Size = UDim2.new(1, 0, 0, ch)}):Play() TweenService:Create(arrow, TweenInfo.new(0.3), {Rotation = isOpen and 180 or 0}):Play() end lay:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function() if isOpen then local ch = lay.AbsoluteContentSize.Y sec.Size = UDim2.new(1, -10, 0, HH + ch) content.Size = UDim2.new(1, 0, 0, ch) end end) hBtn.MouseButton1Click:Connect(function() isOpen = not isOpen upd() end) task.defer(upd) return content end local function toggle(parent, text, callback, bindKey) local holder = Instance.new("Frame") holder.Parent = parent holder.BackgroundTransparency = 1 holder.Size = UDim2.new(1, -10, 0, 34) holder.ZIndex = 5001 local btn = Instance.new("TextButton") btn.Parent = holder btn.BackgroundColor3 = P.bgAlt btn.BackgroundTransparency = 0.65 btn.BorderSizePixel = 0 btn.Size = UDim2.new(1, bindKey and -36 or 0, 1, 0) btn.AutoButtonColor = false btn.Font = Enum.Font.GothamSemibold btn.Text = " " .. text btn.TextColor3 = P.text btn.TextSize = 12 btn.TextXAlignment = Enum.TextXAlignment.Left btn.ZIndex = 5002 corner(btn, 6) local s = stroke(btn, P.border, 1, 0.7) local box = Instance.new("Frame") box.Parent = btn box.AnchorPoint = Vector2.new(1, 0.5) box.BackgroundColor3 = P.panel box.Position = UDim2.new(1, -12, 0.5, 0) box.Size = UDim2.new(0, 18, 0, 18) box.ZIndex = 5003 corner(box, 4) local chk = Instance.new("TextLabel") chk.Parent = box chk.BackgroundTransparency = 1 chk.Size = UDim2.new(1, 0, 1, 0) chk.Font = Enum.Font.GothamBold chk.Text = "v" chk.TextColor3 = Color3.new(1,1,1) chk.TextSize = 12 chk.TextTransparency = 1 chk.ZIndex = 5004 local enabled = false local function toggleFn() enabled = not enabled TweenService:Create(box, TweenInfo.new(0.2), {BackgroundColor3 = enabled and P.accent or P.panel}):Play() TweenService:Create(chk, TweenInfo.new(0.2), {TextTransparency = enabled and 0 or 1}):Play() s.Color = enabled and P.accent or P.border callback(enabled) end btn.MouseButton1Click:Connect(toggleFn) if bindKey then local bBtn = Instance.new("TextButton") bBtn.Parent = holder bBtn.AnchorPoint = Vector2.new(1, 0.5) bBtn.BackgroundColor3 = P.bgAlt bBtn.BackgroundTransparency = 0.65 bBtn.BorderSizePixel = 0 bBtn.Position = UDim2.new(1, 0, 0.5, 0) bBtn.Size = UDim2.new(0, 32, 0, 32) bBtn.Font = Enum.Font.GothamBold bBtn.Text = C[bindKey] and C[bindKey].Name:sub(1,3) or "+" bBtn.TextColor3 = P.textDim bBtn.TextSize = 11 bBtn.AutoButtonColor = false bBtn.ZIndex = 5002 corner(bBtn, 6) allBinds[bindKey] = { setBind = function(k) C[bindKey] = k bBtn.Text = k.Name:sub(1,3) end, btn = bBtn, } bBtn.MouseButton1Click:Connect(function() allBinds[bindKey].waiting = true bBtn.Text = "..." end) toggleRefs[bindKey] = toggleFn end return {toggle = toggleFn} end local function slider(parent, text, mn, mx, def, step, callback) local holder = Instance.new("Frame") holder.Parent = parent holder.BackgroundTransparency = 1 holder.Size = UDim2.new(1, -10, 0, 48) holder.ZIndex = 5001 local label = Instance.new("TextLabel") label.Parent = holder label.BackgroundTransparency = 1 label.Position = UDim2.new(0, 4, 0, 0) label.Size = UDim2.new(1, -60, 0, 16) label.Font = Enum.Font.GothamSemibold label.Text = text label.TextColor3 = P.text label.TextSize = 12 label.TextXAlignment = Enum.TextXAlignment.Left label.ZIndex = 5002 local val = Instance.new("TextLabel") val.Parent = holder val.AnchorPoint = Vector2.new(1, 0) val.Position = UDim2.new(1, -4, 0, 0) val.BackgroundTransparency = 1 val.Size = UDim2.new(0, 50, 0, 16) val.Font = Enum.Font.GothamBold val.Text = tostring(def) val.TextColor3 = P.accent val.TextSize = 12 val.TextXAlignment = Enum.TextXAlignment.Right val.ZIndex = 5002 local bar = Instance.new("Frame") bar.Parent = holder bar.BackgroundColor3 = P.panel bar.BackgroundTransparency = 0.2 bar.BorderSizePixel = 0 bar.Position = UDim2.new(0, 4, 0, 22) bar.Size = UDim2.new(1, -8, 0, 14) bar.ZIndex = 5002 corner(bar, 4) stroke(bar, P.border, 1, 0.6) local fill = Instance.new("Frame") fill.Parent = bar fill.BackgroundColor3 = P.accent fill.BorderSizePixel = 0 fill.Size = UDim2.new(math.clamp((def - mn) / (mx - mn), 0, 1), 0, 1, 0) fill.ZIndex = 5003 corner(fill, 4) local knob = Instance.new("Frame") knob.Parent = bar knob.AnchorPoint = Vector2.new(0.5, 0.5) knob.BackgroundColor3 = Color3.new(1,1,1) knob.BorderSizePixel = 0 knob.Position = UDim2.new(math.clamp((def - mn) / (mx - mn), 0, 1), 0, 0.5, 0) knob.Size = UDim2.new(0, 8, 0, 18) knob.ZIndex = 5004 corner(knob, 3) local dragging = false local function update(rel) local w = bar.AbsoluteSize.X if w <= 0 then return end local pct = math.clamp(rel / w, 0, 1) fill.Size = UDim2.new(pct, 0, 1, 0) knob.Position = UDim2.new(pct, 0, 0.5, 0) local raw = mn + pct * (mx - mn) local cur = math.clamp(math.floor(raw / step + 0.5) * step, mn, mx) cur = math.floor(cur * 100) / 100 val.Text = tostring(cur) callback(cur) end bar.InputBegan:Connect(function(inp) if inp.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true update(UIS:GetMouseLocation().X - bar.AbsolutePosition.X) end end) UIS.InputEnded:Connect(function(inp) if inp.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end end) UIS.InputChanged:Connect(function(inp) if dragging and inp.UserInputType == Enum.UserInputType.MouseMovement then update(UIS:GetMouseLocation().X - bar.AbsolutePosition.X) end end) end local function cycle(parent, text, options, def, callback) local holder = Instance.new("Frame") holder.Parent = parent holder.BackgroundTransparency = 1 holder.Size = UDim2.new(1, -10, 0, 34) holder.ZIndex = 5001 local btn = Instance.new("TextButton") btn.Parent = holder btn.BackgroundColor3 = P.bgAlt btn.BackgroundTransparency = 0.65 btn.BorderSizePixel = 0 btn.Size = UDim2.new(1, 0, 1, 0) btn.AutoButtonColor = false btn.Font = Enum.Font.GothamSemibold btn.Text = " " .. text .. ": " .. def btn.TextColor3 = P.text btn.TextSize = 12 btn.TextXAlignment = Enum.TextXAlignment.Left btn.ZIndex = 5002 corner(btn, 6) stroke(btn, P.border, 1, 0.7) local idx = 1 for i, v in ipairs(options) do if v == def then idx = i break end end btn.MouseButton1Click:Connect(function() idx = idx + 1 if idx > #options then idx = 1 end btn.Text = " " .. text .. ": " .. options[idx] callback(options[idx]) end) end local function button(parent, text, callback, color) color = color or P.accent local b = Instance.new("TextButton") b.Parent = parent b.BackgroundColor3 = P.bgAlt b.BackgroundTransparency = 0.65 b.BorderSizePixel = 0 b.Size = UDim2.new(1, -10, 0, 36) b.Font = Enum.Font.GothamBold b.Text = text b.TextColor3 = color b.TextSize = 12 b.AutoButtonColor = false b.ZIndex = 5002 corner(b, 6) stroke(b, color, 1, 0.5) b.MouseButton1Click:Connect(callback) return b end local function buttonBind(parent, text, callback, color, bindKey) color = color or P.accent local holder = Instance.new("Frame") holder.Parent = parent holder.BackgroundTransparency = 1 holder.Size = UDim2.new(1, -10, 0, 36) holder.ZIndex = 5001 local b = Instance.new("TextButton") b.Parent = holder b.BackgroundColor3 = P.bgAlt b.BackgroundTransparency = 0.65 b.BorderSizePixel = 0 b.Size = UDim2.new(1, -36, 1, 0) b.Font = Enum.Font.GothamBold b.Text = text b.TextColor3 = color b.TextSize = 12 b.AutoButtonColor = false b.ZIndex = 5002 corner(b, 6) stroke(b, color, 1, 0.5) b.MouseButton1Click:Connect(callback) local bBtn = Instance.new("TextButton") bBtn.Parent = holder bBtn.AnchorPoint = Vector2.new(1, 0) bBtn.BackgroundColor3 = P.bgAlt bBtn.BackgroundTransparency = 0.65 bBtn.BorderSizePixel = 0 bBtn.Position = UDim2.new(1, 0, 0, 0) bBtn.Size = UDim2.new(0, 32, 1, 0) bBtn.Font = Enum.Font.GothamBold bBtn.Text = C[bindKey] and C[bindKey].Name:sub(1,3) or "+" bBtn.TextColor3 = P.textDim bBtn.TextSize = 11 bBtn.AutoButtonColor = false bBtn.ZIndex = 5002 corner(bBtn, 6) allBinds[bindKey] = { setBind = function(k) C[bindKey] = k bBtn.Text = k.Name:sub(1,3) end, btn = bBtn, } bBtn.MouseButton1Click:Connect(function() allBinds[bindKey].waiting = true bBtn.Text = "..." end) return b end -- VISUALS local secPlayer = section(visualsPage, "PLAYER") toggle(secPlayer, "China Hat", function(s) C.chinaHat = s end) slider(secPlayer, "Hat Size", 1, 6, 3, 0.1, function(v) C.chinaHatSize = v end) toggle(secPlayer, "Trail", function(s) C.trail = s if s then createTrail() else destroyTrail() end end) toggle(secPlayer, "Jumps Circle", function(s) C.jumpRing = s end) slider(secPlayer, "Ring Size", 3, 25, 12, 0.5, function(v) C.jumpRingSize = v end) local secCross = section(visualsPage, "CROSSHAIR") toggle(secCross, "Swastika Crosshair", function(s) C.swastika = s if s then createSwastika() notify("Swastika: ON", P.green) else destroySwastika() notify("Swastika: OFF", P.yellow) end end, "bindSwastika") slider(secCross, "Size", 40, 200, 80, 1, function(v) C.swastikaSize = v if C.swastika and swastikaFrame then swastikaFrame.Size = UDim2.new(0, v, 0, v) end end) slider(secCross, "Spin Speed", 0, 720, 120, 5, function(v) C.swastikaSpeed = v end) toggle(secCross, "Hide Mouse", function(s) C.hideMouse = s UIS.MouseIconEnabled = not s end) local secStretch = section(visualsPage, "STRETCH") toggle(secStretch, "Enable Stretch", function(s) C.stretch = s end) slider(secStretch, "FOV Amount", 70, 140, 110, 1, function(v) C.stretchAmount = v end) slider(secStretch, "UI Scale", 0.5, 1.2, 0.9, 0.01, function(v) C.uiScale = v end) local secEsp = section(visualsPage, "ESP") toggle(secEsp, "ESP All", function(s) C.espAll = s end) toggle(secEsp, "ESP Sheriff", function(s) C.espSheriff = s end) toggle(secEsp, "ESP Murder", function(s) C.espMurder = s end) toggle(secEsp, "ESP GunDrop", function(s) C.espGunDrop = s end) local secTargetEsp = section(visualsPage, "TARGET ESP") toggle(secTargetEsp, "Enable Target ESP", function(s) C.targetEsp = s notify(s and "Target ESP: ON" or "Target ESP: OFF", s and P.green or P.yellow) end) cycle(secTargetEsp, "Mode", {"Crosshair", "Nearest"}, "Crosshair", function(v) C.targetEspMode = v end) slider(secTargetEsp, "Radius", 50, 800, 250, 10, function(v) C.targetEspRadius = v end) local secExtra = section(visualsPage, "EXTRA") toggle(secExtra, "Tracers", function(s) C.tracers = s end) toggle(secExtra, "Nametags", function(s) C.nametags = s end) toggle(secExtra, "Bullet Trail", function(s) C.bulletTrail = s end) slider(secExtra, "Trail Range", 500, 5000, 3000, 100, function(v) C.bulletTrailRange = v end) local secDmg = section(visualsPage, "DAMAGE NUMBERS") toggle(secDmg, "Enable Damage Numbers", function(s) C.damageNumbers = s notify(s and "Damage Numbers: ON" or "Damage Numbers: OFF", s and P.green or P.yellow) end) cycle(secDmg, "Color", {"Role", "Yellow", "Red", "White"}, "Role", function(v) C.damageNumbersColor = v end) slider(secDmg, "Text Size", 14, 60, 26, 1, function(v) C.damageNumbersSize = v end) slider(secDmg, "Lifetime (s)", 0.5, 3, 1.2, 0.1, function(v) C.damageNumbersLife = v end) slider(secDmg, "Rise Distance", 0.5, 10, 3.0, 0.5, function(v) C.damageNumbersOffset = v end) local secArrows = section(visualsPage, "ARROWS") toggle(secArrows, "Enable Arrows", function(s) C.arrows = s end) slider(secArrows, "Max Distance (m)", 10, 1000, 300, 10, function(v) C.arrowsMaxDist = v end) slider(secArrows, "Radius (px)", 30, 300, 90, 5, function(v) C.arrowsRadius = v end) slider(secArrows, "Arrow Size", 20, 150, 60, 2, function(v) C.arrowsSize = v end) local secTime = section(visualsPage, "TIME") button(secTime, "Day", function() setTimeDay() notify("Day", P.yellow) end, P.yellow) button(secTime, "Night", function() setTimeNight() notify("Night", P.accent) end, P.accent) button(secTime, "Reset", function() setTimeReset() notify("Reset", P.red) end, P.red) -- WORLD local secBoost = section(worldPage, "PERFORMANCE") toggle(secBoost, "Boost FPS", function(s) C.boostFPS = s if s then enableBoostFPS() else disableBoostFPS() end end) local secWorldColor = section(worldPage, "WORLD COLOR") toggle(secWorldColor, "Enable World Color", function(s) C.worldColorEnabled = s end) slider(secWorldColor, "Red", 0, 255, 90, 1, function(v) C.worldColorR = v end) slider(secWorldColor, "Green", 0, 255, 180, 1, function(v) C.worldColorG = v end) slider(secWorldColor, "Blue", 0, 255, 255, 1, function(v) C.worldColorB = v end) local secFog = section(worldPage, "FOG") toggle(secFog, "Enable Fog", function(s) C.fog = s end) slider(secFog, "Fog Density", 10, 2000, 500, 10, function(v) C.fogDensity = v end) -- RAGE: SILENT AIM local secSilent = section(ragePage, "SILENT AIM") toggle(secSilent, "Enable Silent Aim", function(s) C.silentAim = s notify(s and "Silent Aim: ON" or "Silent Aim: OFF", s and P.green or P.yellow) end, "bindSilent") cycle(secSilent, "Target", {"All", "Only Murder", "Only Sheriff"}, "All", function(v) C.silentTarget = v end) cycle(secSilent, "Aim Part", {"Head", "Torso", "HRP"}, "Head", function(v) C.silentAimPart = v end) slider(secSilent, "FOV", 30, 800, 150, 5, function(v) C.silentFOV = v end) toggle(secSilent, "Draw FOV", function(s) C.silentDrawFOV = s end) toggle(secSilent, "Ping Compensation", function(s) C.silentPingComp = s end) slider(secSilent, "Bullet Speed", 100, 3000, 500, 50, function(v) C.silentPredSpeed = v end) -- RAGE: AIMBOT local secAimbot = section(ragePage, "AIMBOT") toggle(secAimbot, "Aimbot Murder", function(s) C.aimbot = s notify(s and "Aimbot: ON" or "Aimbot: OFF", s and P.green or P.yellow) end, "bindAimbot") toggle(secAimbot, "Auto Shoot (Murder)", function(s) C.autoShoot = s notify(s and "Auto Shoot: ON" or "Auto Shoot: OFF", s and P.green or P.yellow) end, "bindAutoShoot") slider(secAimbot, "Auto Shoot Delay", 0.05, 1, 0.15, 0.05, function(v) C.autoShootDelay = v end) -- ANTI-AIM local secSpin = section(aaPage, "SPINBOT") toggle(secSpin, "Spinbot", function(s) C.spinbot = s notify(s and "Spinbot: ON" or "Spinbot: OFF", s and P.green or P.yellow) end) slider(secSpin, "Speed (RPM)", 100, 1000, 1000, 50, function(v) C.spinbotSpeed = v end) local secAA = section(aaPage, "ANTI-AIM") toggle(secAA, "Anti-aim", function(s) C.antiaim = s notify(s and "Anti-aim: ON" or "Anti-aim: OFF", s and P.green or P.yellow) end) cycle(secAA, "Direction", {"Back", "Left", "Right", "Custom"}, "Back", function(v) C.aaDirection = v end) slider(secAA, "Custom Angle", 0, 360, 180, 5, function(v) C.antiaimAngle = v end) local secTilt = section(aaPage, "HEAD TILT") toggle(secTilt, "Head Tilt", function(s) C.headTilt = s end) slider(secTilt, "Tilt Angle", -90, 90, 0, 5, function(v) C.headTiltAngle = v end) -- FLING local secFling = section(flingPage, "FLING TARGET") local flingListOpen = false local selectedFlingPlayer = nil local toggleList = Instance.new("TextButton") toggleList.Parent = secFling toggleList.BackgroundColor3 = P.bgAlt toggleList.BackgroundTransparency = 0.65 toggleList.BorderSizePixel = 0 toggleList.Size = UDim2.new(1, -10, 0, 36) toggleList.Font = Enum.Font.GothamBold toggleList.Text = "SHOW PLAYERS v" toggleList.TextColor3 = P.accent toggleList.TextSize = 12 toggleList.AutoButtonColor = false toggleList.ZIndex = 5002 corner(toggleList, 6) stroke(toggleList, P.accent, 1, 0.5) local listFrame = Instance.new("Frame") listFrame.Parent = secFling listFrame.BackgroundColor3 = P.bgAlt listFrame.BackgroundTransparency = 0.65 listFrame.BorderSizePixel = 0 listFrame.Size = UDim2.new(1, -10, 0, 0) listFrame.ClipsDescendants = true listFrame.ZIndex = 5001 corner(listFrame, 6) local listLay = Instance.new("UIListLayout") listLay.Parent = listFrame listLay.SortOrder = Enum.SortOrder.LayoutOrder listLay.Padding = UDim.new(0, 4) local listPad = Instance.new("UIPadding") listPad.Parent = listFrame listPad.PaddingTop = UDim.new(0, 6) listPad.PaddingBottom = UDim.new(0, 6) listPad.PaddingLeft = UDim.new(0, 6) listPad.PaddingRight = UDim.new(0, 6) local flingBtn = button(flingPage, "FLING", function() if selectedFlingPlayer then startFling(selectedFlingPlayer) else notify("Выбери игрока", P.yellow) end end, P.red) flingBtn.Visible = false local function refreshPlayerList() for _, c in ipairs(listFrame:GetChildren()) do if c:IsA("TextButton") or c:IsA("TextLabel") then c:Destroy() end end local has = false for _, plr in ipairs(Players:GetPlayers()) do if plr ~= LP and plr.Character then has = true local role = getRole(plr) or "Innocent" local col = P.green if role == "Murder" then col = P.red elseif role == "Sheriff" then col = P.accent end local row = Instance.new("TextButton") row.Parent = listFrame row.BackgroundColor3 = P.bgAlt row.BackgroundTransparency = 0.65 row.BorderSizePixel = 0 row.Size = UDim2.new(1, 0, 0, 32) row.Font = Enum.Font.GothamSemibold row.Text = " " .. plr.Name .. " [" .. role .. "]" row.TextColor3 = col row.TextSize = 12 row.TextXAlignment = Enum.TextXAlignment.Left row.AutoButtonColor = false row.ZIndex = 5002 corner(row, 5) row.MouseButton1Click:Connect(function() selectedFlingPlayer = plr for _, r in ipairs(listFrame:GetChildren()) do if r:IsA("TextButton") then r.BackgroundTransparency = 0.65 end end row.BackgroundTransparency = 0.05 row.TextColor3 = P.accent flingBtn.Visible = true notify("Selected: " .. plr.Name, P.accent) end) end end if not has then local e = Instance.new("TextLabel") e.Parent = listFrame e.BackgroundTransparency = 1 e.Size = UDim2.new(1, -12, 0, 30) e.Font = Enum.Font.Gotham e.Text = "Нет игроков" e.TextColor3 = P.textDim e.TextSize = 12 e.TextXAlignment = Enum.TextXAlignment.Center end end toggleList.MouseButton1Click:Connect(function() flingListOpen = not flingListOpen if flingListOpen then refreshPlayerList() toggleList.Text = "HIDE PLAYERS ^" local count = 0 for _, c in ipairs(listFrame:GetChildren()) do if c:IsA("TextButton") or c:IsA("TextLabel") then count = count + 1 end end local h = math.max(40, count * 36 + 12) TweenService:Create(listFrame, TweenInfo.new(0.3), {Size = UDim2.new(1, -10, 0, h)}):Play() else toggleList.Text = "SHOW PLAYERS v" TweenService:Create(listFrame, TweenInfo.new(0.3), {Size = UDim2.new(1, -10, 0, 0)}):Play() end end) -- LEGIT local secTB = section(legitPage, "TRIGGER BOT") toggle(secTB, "Trigger Bot", function(s) C.triggerBot = s notify(s and "Trigger: ON" or "Trigger: OFF", s and P.green or P.yellow) end, "bindTrigger") cycle(secTB, "Priority", {"All", "Only Murder", "Only Sheriff"}, "All", function(v) C.triggerTarget = v end) slider(secTB, "Trigger Delay", 0.01, 1, 0.1, 0.01, function(v) C.triggerDelay = v end) -- MISC local secMisc = section(miscPage, "MISC") toggle(secMisc, "Flash Peek", function(s) C.flashPeek = s end, "bindFlashPeek") slider(secMisc, "Flash Peek Speed", 20, 150, 45, 1, function(v) C.flashPeekSpeed = v end) toggle(secMisc, "Air Strafe Snap", function(s) C.strafe = s end) slider(secMisc, "Snap Power", 20, 200, 50, 1, function(v) C.strafePower = v end) toggle(secMisc, "Anti-Fling", function(s) C.antiFling = s end) toggle(secMisc, "Auto Grab Gun", function(s) C.autoGrabGun = s notify(s and "Auto Grab: ON" or "Auto Grab: OFF", s and P.green or P.yellow) end, "bindAutoGrab") local secMascot = section(miscPage, "MASCOT") toggle(secMascot, "Show Mascot", function(s) C.mascot = s mascot.Visible = s end) slider(secMascot, "Mascot Size", 100, 600, 320, 10, function(v) mascot.Size = UDim2.new(0, v, 0, math.floor(v * 1.31)) end) local secItems = section(miscPage, "ITEMS") buttonBind(secItems, "GET PISTOL", function() GetPistol() end, P.green, "bindGetPistol") -- HITSOUND local secHS = section(hitsoundPage, "HITSOUND") toggle(secHS, "Enable Hitsound", function(s) C.hitsound = s if s then ensureHitsound() notify("Hitsound: ON", P.green) else if hitsoundObj and hitsoundObj.Parent then hitsoundObj:Stop() hitsoundObj:Destroy() hitsoundObj = nil end notify("Hitsound: OFF", P.yellow) end end, "bindHitsound") cycle(secHS, "Sound", {"NeverLose", "Uwu", "Crit"}, "NeverLose", function(v) C.hitsoundChoice = v if hitsoundObj and hitsoundObj.Parent then hitsoundObj.SoundId = getHitsoundID() end notify("Sound: " .. v, P.accent) end) slider(secHS, "Volume", 0.1, 5, 1.5, 0.1, function(v) C.hitsoundVolume = v if hitsoundObj then hitsoundObj.Volume = v end end) button(secHS, "TEST SOUND", function() local snd = ensureHitsound() if snd then snd.SoundId = getHitsoundID() snd.Volume = C.hitsoundVolume or 1.5 snd.TimePosition = 0 snd:Play() notify("Playing: " .. C.hitsoundChoice, P.purple) end end, P.purple) -- CONFIG local nameBox = Instance.new("TextBox") nameBox.Parent = cfgPage nameBox.BackgroundColor3 = P.bgAlt nameBox.BackgroundTransparency = 0.65 nameBox.BorderSizePixel = 0 nameBox.Size = UDim2.new(1, -10, 0, 34) nameBox.Font = Enum.Font.GothamSemibold nameBox.Text = "default" nameBox.PlaceholderText = "Config name..." nameBox.TextColor3 = P.text nameBox.TextSize = 12 nameBox.ClearTextOnFocus = false nameBox.ZIndex = 5002 corner(nameBox, 6) stroke(nameBox, P.border, 1, 0.7) local row = Instance.new("Frame") row.Parent = cfgPage row.BackgroundTransparency = 1 row.Size = UDim2.new(1, -10, 0, 36) local function miniBtn(parent, text, w, color, cb) local b = Instance.new("TextButton") b.Parent = parent b.BackgroundColor3 = P.bgAlt b.BackgroundTransparency = 0.65 b.BorderSizePixel = 0 b.Size = UDim2.new(w, -3, 1, 0) b.Font = Enum.Font.GothamBold b.Text = text b.TextColor3 = color b.TextSize = 12 b.AutoButtonColor = false b.ZIndex = 5002 corner(b, 6) stroke(b, color, 1, 0.5) b.MouseButton1Click:Connect(cb) return b end local CFG_FOLDER = "NeverloseMM2_Configs" local function getCfgPath(n) return CFG_FOLDER .. "/" .. n .. ".json" end local function saveCfg(n) if not writefile then notify("writefile недоступен", P.red) return end local data = {} for k, v in pairs(C) do if typeof(v) == "EnumItem" then data[k] = v.Name else data[k] = v end end pcall(function() if not isfolder(CFG_FOLDER) then makefolder(CFG_FOLDER) end writefile(getCfgPath(n), HttpService:JSONEncode(data)) notify("Saved: " .. n, P.green) end) end local function loadCfg(n) if not readfile then return end local p = getCfgPath(n) if not isfile(p) then return end pcall(function() local data = HttpService:JSONDecode(readfile(p)) for k, v in pairs(data) do if C[k] ~= nil then if typeof(C[k]) == "EnumItem" then local ok, e = pcall(function() return Enum.KeyCode[v] end) if ok then C[k] = e end else C[k] = v end end end end) end local function delCfg(n) if not delfile then return end local p = getCfgPath(n) if not isfile(p) then return end pcall(function() delfile(p) notify("Deleted: " .. n, P.yellow) end) end local function listCfgs() if not listfiles or not isfolder then return {} end if not isfolder(CFG_FOLDER) then pcall(function() makefolder(CFG_FOLDER) end) return {} end local f = {} pcall(function() for _, x in ipairs(listfiles(CFG_FOLDER)) do local n = x:match("([^/\\]+)%.json$") if n then table.insert(f, n) end end end) return f end local function applyAll() for bindKey, d in pairs(allBinds) do if C[bindKey] and d.btn then d.btn.Text = C[bindKey].Name:sub(1, 3) end end if C.swastika then createSwastika() else destroySwastika() end if C.trail then createTrail() else destroyTrail() end UIS.MouseIconEnabled = not C.hideMouse mascot.Visible = C.mascot if C.boostFPS then enableBoostFPS() else disableBoostFPS() end applyStretch() if hitsoundObj and hitsoundObj.Parent then hitsoundObj.SoundId = getHitsoundID() end end miniBtn(row, "Save", 0.33, P.green, function() saveCfg(nameBox.Text) if _G.refreshCfgList then _G.refreshCfgList() end end) local loadBtn = miniBtn(row, "Load", 0.33, P.accent, function() loadCfg(nameBox.Text) applyAll() end) loadBtn.Position = UDim2.new(0.335, 0, 0, 0) local refBtn = miniBtn(row, "Refresh", 0.33, P.yellow, function() if _G.refreshCfgList then _G.refreshCfgList() end end) refBtn.Position = UDim2.new(0.67, 0, 0, 0) local cfgList = Instance.new("ScrollingFrame") cfgList.Parent = cfgPage cfgList.BackgroundColor3 = P.bgAlt cfgList.BackgroundTransparency = 0.65 cfgList.BorderSizePixel = 0 cfgList.Size = UDim2.new(1, -10, 0, 180) cfgList.CanvasSize = UDim2.new(0, 0, 0, 0) cfgList.ScrollBarThickness = 3 cfgList.ScrollBarImageColor3 = P.accent cfgList.ScrollingDirection = Enum.ScrollingDirection.Y corner(cfgList, 6) local clLay = Instance.new("UIListLayout") clLay.Parent = cfgList clLay.SortOrder = Enum.SortOrder.LayoutOrder clLay.Padding = UDim.new(0, 4) clLay:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function() cfgList.CanvasSize = UDim2.new(0, 0, 0, clLay.AbsoluteContentSize.Y + 8) end) local function refreshCfgList() for _, c in ipairs(cfgList:GetChildren()) do if c:IsA("TextButton") or c:IsA("Frame") then c:Destroy() end end local cfgs = listCfgs() if #cfgs == 0 then local e = Instance.new("TextLabel") e.Parent = cfgList e.BackgroundTransparency = 1 e.Size = UDim2.new(1, -12, 0, 30) e.Font = Enum.Font.Gotham e.Text = "Нет сохранённых конфигов" e.TextColor3 = P.textDim e.TextSize = 11 return end for _, n in ipairs(cfgs) do local r = Instance.new("Frame") r.Parent = cfgList r.BackgroundColor3 = P.bgAlt r.BackgroundTransparency = 0.65 r.Size = UDim2.new(1, 0, 0, 30) corner(r, 5) local sb = Instance.new("TextButton") sb.Parent = r sb.BackgroundTransparency = 1 sb.Size = UDim2.new(1, -34, 1, 0) sb.Font = Enum.Font.GothamSemibold sb.Text = " " .. n sb.TextColor3 = P.text sb.TextSize = 12 sb.TextXAlignment = Enum.TextXAlignment.Left sb.MouseButton1Click:Connect(function() nameBox.Text = n loadCfg(n) applyAll() end) local db = Instance.new("TextButton") db.Parent = r db.AnchorPoint = Vector2.new(1, 0.5) db.Position = UDim2.new(1, -3, 0.5, 0) db.Size = UDim2.new(0, 26, 0, 26) db.BackgroundColor3 = P.bgAlt db.BackgroundTransparency = 0.65 db.Font = Enum.Font.GothamBold db.Text = "X" db.TextColor3 = P.textDim db.TextSize = 13 corner(db, 5) db.MouseButton1Click:Connect(function() delCfg(n) refreshCfgList() end) end end _G.refreshCfgList = refreshCfgList refreshCfgList() local rebinding = nil UIS.InputBegan:Connect(function(input, gp) if gp then return end if rebinding then if allBinds[rebinding] and allBinds[rebinding].setBind then allBinds[rebinding].setBind(input.KeyCode) end rebinding = nil return end for name, d in pairs(allBinds) do if d.waiting then rebinding = name return end end local focused = UIS:GetFocusedTextBox() if focused then return end for name, d in pairs(allBinds) do if C[name] and input.KeyCode == C[name] and toggleRefs[name] then toggleRefs[name]() end end if input.KeyCode == C.bindMenu then if Main.Visible then closeMenu() else openMenu() end end if input.KeyCode == C.bindGetPistol then GetPistol() end end) task.spawn(function() local t0 = tick() while tick() - t0 < 3 do if splashImg.IsLoaded then break end task.wait(0.05) end if not splashImg.IsLoaded then splashImg.Image = BRAND_ALT local t1 = tick() while tick() - t1 < 1.5 do if splashImg.IsLoaded then break end task.wait(0.05) end end pcall(function() splashSound.TimePosition = 0 splashSound:Play() end) local fi = TweenService:Create(splashImg, TweenInfo.new(0.35, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {ImageTransparency = 0}) fi:Play() local maxWait = 15 local t1 = tick() while splashSound.IsPlaying and (tick() - t1) < maxWait do task.wait(0.05) end task.wait(0.5) local fo = TweenService:Create(splashImg, TweenInfo.new(1.1), {ImageTransparency = 1}) fo:Play() fo.Completed:Wait() splashGui:Destroy() pcall(function() loadCfg("default") end) applyAll() openMenu() end) end buildUI() -- ===================== PART 4: ORBIT PARTICLES ===================== local ORBIT_COUNT = 12 local ORBIT_BASE_SIZE = 1.2 local ORBIT_RADIUS = 3.4 local ORBIT_SPEED = 2.2 local ORBIT_HEIGHT = 2.0 local ORBIT_TRAIL = true local orbitFolder = Instance.new("Folder") orbitFolder.Name = "NL_OrbitParticles" orbitFolder.Parent = workspace local orbitParts = {} local function buildOrbitParts() for _, p in ipairs(orbitParts) do if p and p.Parent then p:Destroy() end end orbitParts = {} for i = 1, ORBIT_COUNT do local p = Instance.new("Part") p.Name = "NL_OrbitPart" p.Shape = Enum.PartType.Ball p.Size = Vector3.new(ORBIT_BASE_SIZE, ORBIT_BASE_SIZE, ORBIT_BASE_SIZE) p.Anchored = true p.CanCollide = false p.CanQuery = false p.CanTouch = false p.CastShadow = false p.Material = Enum.Material.Neon p.Transparency = 0.05 p.Parent = orbitFolder local light = Instance.new("PointLight") light.Name = "NL_Glow" light.Brightness = 2 light.Range = 6 light.Color = Color3.fromRGB(255,255,255) light.Parent = p if ORBIT_TRAIL then local a0 = Instance.new("Attachment") a0.Position = Vector3.new(0, 0, 0) a0.Parent = p local trail = Instance.new("Trail") trail.Attachment0 = a0 trail.Lifetime = 0.35 trail.MinLength = 0.05 trail.LightEmission = 1 trail.LightInfluence = 0 trail.Transparency = NumberSequence.new({ NumberSequenceKeypoint.new(0, 0.1), NumberSequenceKeypoint.new(1, 1), }) trail.WidthScale = NumberSequence.new({ NumberSequenceKeypoint.new(0, 1), NumberSequenceKeypoint.new(1, 0), }) trail.Parent = p end table.insert(orbitParts, p) end end local function hideOrbit() for _, p in ipairs(orbitParts) do if p and p.Parent then p.Transparency = 1 local l = p:FindFirstChild("NL_Glow") if l then l.Enabled = false end for _, c in ipairs(p:GetChildren()) do if c:IsA("Trail") then c.Enabled = false end end end end end local function showOrbit() for _, p in ipairs(orbitParts) do if p and p.Parent then p.Transparency = 0.05 local l = p:FindFirstChild("NL_Glow") if l then l.Enabled = true end for _, c in ipairs(p:GetChildren()) do if c:IsA("Trail") then c.Enabled = true end end end end end local function pickOrbitTarget() local cam = workspace.CurrentCamera if not cam then return nil end if C.targetEspMode == "Crosshair" then local center = Vector2.new(cam.ViewportSize.X/2, cam.ViewportSize.Y/2) local best, bestD = nil, math.huge for _, plr in ipairs(Players:GetPlayers()) do if plr ~= LP and plr.Character then local hum = plr.Character:FindFirstChildOfClass("Humanoid") if hum and hum.Health > 0 then local hrp = plr.Character:FindFirstChild("HumanoidRootPart") if hrp then local pos, on = cam:WorldToViewportPoint(hrp.Position) if on then local d = (Vector2.new(pos.X, pos.Y) - center).Magnitude if d < C.targetEspRadius and d < bestD then best, bestD = plr, d end end end end end end return best else local myChar = LP.Character local myHRP = myChar and myChar:FindFirstChild("HumanoidRootPart") if not myHRP then return nil end local best, bestD = nil, math.huge for _, plr in ipairs(Players:GetPlayers()) do if plr ~= LP and plr.Character then local hum = plr.Character:FindFirstChildOfClass("Humanoid") if hum and hum.Health > 0 then local hrp = plr.Character:FindFirstChild("HumanoidRootPart") if hrp then local d = (hrp.Position - myHRP.Position).Magnitude if d < C.targetEspRadius and d < bestD then best, bestD = plr, d end end end end end return best end end buildOrbitParts() hideOrbit() local orbitTime = 0 RunService.RenderStepped:Connect(function(dt) orbitTime = orbitTime + dt if not C.targetEsp then hideOrbit() return end local target = pickOrbitTarget() if not target or not target.Character then hideOrbit() return end local hrp = target.Character:FindFirstChild("HumanoidRootPart") if not hrp then hideOrbit() return end showOrbit() local role = getRole(target) or "Innocent" local col = P.green if role == "Murder" then col = P.red elseif role == "Sheriff" then col = P.accent end local basePos = hrp.Position for i, p in ipairs(orbitParts) do if p and p.Parent then local idx = i - 1 local phase = orbitTime * ORBIT_SPEED + idx * (math.pi * 2 / ORBIT_COUNT) local radius = ORBIT_RADIUS + math.sin(orbitTime * 3 + idx) * 0.35 local x = math.cos(phase) * radius local z = math.sin(phase) * radius local y = math.sin(orbitTime * 4 + idx * 1.7) * ORBIT_HEIGHT p.CFrame = CFrame.new(basePos + Vector3.new(x, y, z)) local sz = ORBIT_BASE_SIZE + math.sin(orbitTime * 6 + idx * 2) * 0.35 p.Size = Vector3.new(sz, sz, sz) p.Color = col local light = p:FindFirstChild("NL_Glow") if light then light.Color = col light.Brightness = 1.5 + math.sin(orbitTime * 5 + idx) * 0.8 end local trail = p:FindFirstChildOfClass("Trail") if trail then trail.Color = ColorSequence.new(col) end end end end) -- ===================== PART 5: DAMAGE NUMBERS ===================== local dmgGui = Instance.new("ScreenGui") dmgGui.Name = "NL_DamageNumbers" dmgGui.Parent = GP dmgGui.ResetOnSpawn = false dmgGui.IgnoreGuiInset = true dmgGui.DisplayOrder = 999998 dmgGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling local function myRole() local char = LP.Character if not char then return nil end local bp = LP:FindFirstChild("Backpack") if char:FindFirstChild("Knife") or (bp and bp:FindFirstChild("Knife")) then return "Murder" end if char:FindFirstChild("Gun") or (bp and bp:FindFirstChild("Gun")) then return "Sheriff" end return "Innocent" end local function pickColor(dmg, isKill) local mode = C.damageNumbersColor if mode == "Red" then return Color3.fromRGB(255, 80, 80) end if mode == "Yellow" then return Color3.fromRGB(255, 230, 100) end if mode == "White" then return Color3.fromRGB(240, 240, 255) end if isKill then return Color3.fromRGB(255, 70, 70) end if dmg >= 60 then return Color3.fromRGB(255, 140, 60) end if dmg >= 30 then return Color3.fromRGB(255, 210, 90) end return Color3.fromRGB(255, 255, 220) end local function spawnDamageNumber(worldPos, amount, isKill) if not C.damageNumbers then return end local anchor = Instance.new("Part") anchor.Name = "NL_DmgAnchor" anchor.Anchored = true anchor.CanCollide = false anchor.CanQuery = false anchor.CanTouch = false anchor.CastShadow = false anchor.Transparency = 1 anchor.Size = Vector3.new(0.1, 0.1, 0.1) local off = Vector3.new( math.random(-15, 15) / 20, math.random(0, 10) / 20, math.random(-15, 15) / 20 ) local startPos = worldPos + off anchor.CFrame = CFrame.new(startPos) anchor.Parent = workspace local bb = Instance.new("BillboardGui") bb.Adornee = anchor bb.Size = UDim2.new(0, 120, 0, 60) bb.AlwaysOnTop = true bb.LightInfluence = 0 bb.Parent = anchor local lbl = Instance.new("TextLabel") lbl.Parent = bb lbl.BackgroundTransparency = 1 lbl.Size = UDim2.new(1, 0, 1, 0) lbl.Font = Enum.Font.GothamBlack lbl.Text = "-" .. math.floor(amount + 0.5) lbl.TextColor3 = pickColor(amount, isKill) local baseSize = C.damageNumbersSize or 26 if isKill then baseSize = baseSize + 6 end lbl.TextSize = baseSize lbl.TextStrokeTransparency = 0 lbl.TextStrokeColor3 = Color3.new(0, 0, 0) lbl.TextXAlignment = Enum.TextXAlignment.Center lbl.TextYAlignment = Enum.TextYAlignment.Center local duration = C.damageNumbersLife or 1.2 local riseDist = C.damageNumbersOffset or 3.0 task.spawn(function() local t0 = tick() while tick() - t0 < duration do local a = (tick() - t0) / duration local ease = 1 - (1 - a) * (1 - a) local y = startPos.Y + ease * riseDist anchor.CFrame = CFrame.new(Vector3.new(startPos.X, y, startPos.Z)) if a < 0.18 then local k = a / 0.18 lbl.TextSize = baseSize * (0.5 + k * 0.7) elseif a < 0.30 then local k = (a - 0.18) / 0.12 lbl.TextSize = baseSize * (1.2 - k * 0.2) else lbl.TextSize = baseSize end if a > 0.6 then local f = (a - 0.6) / 0.4 lbl.TextTransparency = f lbl.TextStrokeTransparency = f end RunService.RenderStepped:Wait() end if anchor and anchor.Parent then anchor:Destroy() end end) end local lastAttackTime = 0 local meleeTargets = {} UIS.InputBegan:Connect(function(input, gp) if gp then return end if input.UserInputType ~= Enum.UserInputType.MouseButton1 then return end local role = myRole() if role ~= "Murder" and role ~= "Sheriff" then return end lastAttackTime = tick() if role == "Murder" then local char = LP.Character local myHRP = char and char:FindFirstChild("HumanoidRootPart") if myHRP then for _, plr in ipairs(Players:GetPlayers()) do if plr ~= LP and plr.Character then local h = plr.Character:FindFirstChild("HumanoidRootPart") if h and (h.Position - myHRP.Position).Magnitude < 12 then meleeTargets[plr] = tick() end end end end end end) local lastPosCache = {} task.spawn(function() while task.wait(0.1) do for _, plr in ipairs(Players:GetPlayers()) do if plr ~= LP and plr.Character then local hrp = plr.Character:FindFirstChild("HumanoidRootPart") if hrp then lastPosCache[plr] = hrp.Position end end end end end) local dmgTracked = {} local function hookPlayerHealth(plr) if not plr or plr == LP then return end local char = plr.Character if not char then return end local hum = char:FindFirstChildOfClass("Humanoid") if not hum then return end if dmgTracked[plr] == hum then return end dmgTracked[plr] = hum local lastHP = hum.Health hum.HealthChanged:Connect(function(newHP) local oldHP = lastHP lastHP = newHP if newHP >= oldHP then return end local dmg = oldHP - newHP if dmg <= 0 then return end local role = myRole() if role ~= "Murder" and role ~= "Sheriff" then return end if tick() - lastAttackTime > 0.8 then return end if role == "Murder" then local t = meleeTargets[plr] if not t or tick() - t > 0.8 then return end end local pos local hrp = char:FindFirstChild("HumanoidRootPart") if hrp then pos = hrp.Position + Vector3.new(0, 2.5, 0) elseif lastPosCache[plr] then pos = lastPosCache[plr] + Vector3.new(0, 2.5, 0) else return end local isKill = newHP <= 0 spawnDamageNumber(pos, dmg, isKill) end) end local function scanDamageTargets() for _, plr in ipairs(Players:GetPlayers()) do if plr ~= LP then local char = plr.Character local hum = char and char:FindFirstChildOfClass("Humanoid") if hum and dmgTracked[plr] ~= hum then hookPlayerHealth(plr) end end end end task.spawn(function() while task.wait(0.5) do scanDamageTargets() end end) Players.PlayerAdded:Connect(function(plr) plr.CharacterAdded:Connect(function() task.wait(0.4) dmgTracked[plr] = nil hookPlayerHealth(plr) end) end) for _, plr in ipairs(Players:GetPlayers()) do if plr ~= LP then plr.CharacterAdded:Connect(function() task.wait(0.4) dmgTracked[plr] = nil hookPlayerHealth(plr) end) end end LP.CharacterAdded:Connect(function() task.wait(0.4) dmgTracked = {} meleeTargets = {} end) -- ===================== PART 6: SILENT AIM + FOV ===================== local fovCircle = Instance.new("Frame") fovCircle.Parent = GUI fovCircle.AnchorPoint = Vector2.new(0.5, 0.5) fovCircle.Position = UDim2.new(0.5, 0, 0.5, 0) fovCircle.BackgroundTransparency = 1 fovCircle.ZIndex = 9000 fovCircle.Visible = false local fovCorner = Instance.new("UICorner") fovCorner.CornerRadius = UDim.new(1, 0) fovCorner.Parent = fovCircle local fovStroke = Instance.new("UIStroke") fovStroke.Color = P.accent fovStroke.Thickness = 1.5 fovStroke.Transparency = 0.2 fovStroke.Parent = fovCircle RunService.RenderStepped:Connect(function() if not C.silentAim or not C.silentDrawFOV then if fovCircle.Visible then fovCircle.Visible = false end return end fovCircle.Visible = true fovCircle.Size = UDim2.new(0, C.silentFOV * 2, 0, C.silentFOV * 2) end) local function pickSilentPart(plr) local ch = plr.Character if not ch then return nil end local mode = C.silentAimPart if mode == "Head" then return ch:FindFirstChild("Head") end if mode == "Torso" then return ch:FindFirstChild("UpperTorso") or ch:FindFirstChild("Torso") end return ch:FindFirstChild("HumanoidRootPart") or ch:FindFirstChild("Head") end local silentTarget = nil local silentAimPos = nil RunService.Heartbeat:Connect(function() if not C.silentAim then silentTarget = nil silentAimPos = nil return end local cam = workspace.CurrentCamera if not cam then silentTarget = nil silentAimPos = nil return end local center = Vector2.new(cam.ViewportSize.X/2, cam.ViewportSize.Y/2) local best, bestD, bestPart = nil, math.huge, nil for _, plr in ipairs(Players:GetPlayers()) do if plr ~= LP and plr.Character then local hum = plr.Character:FindFirstChildOfClass("Humanoid") if hum and hum.Health > 0 then local role = getRole(plr) local ok = false if C.silentTarget == "All" then ok = true elseif C.silentTarget == "Only Murder" and role == "Murder" then ok = true elseif C.silentTarget == "Only Sheriff" and role == "Sheriff" then ok = true end if ok then local part = pickSilentPart(plr) if part then local pos, on = cam:WorldToViewportPoint(part.Position) if on then local d = (Vector2.new(pos.X, pos.Y) - center).Magnitude if d <= C.silentFOV and d < bestD then best, bestD, bestPart = plr, d, part end end end end end end end silentTarget = best if bestPart then local pos = bestPart.Position local vel = Vector3.new(0, 0, 0) local okV, v = pcall(function() return bestPart.AssemblyLinearVelocity end) if okV and typeof(v) == "Vector3" then vel = v end local origin = cam.CFrame.Position local rel = pos - origin local speed = C.silentPredSpeed local a = vel:Dot(vel) - speed * speed local b = 2 * rel:Dot(vel) local c = rel:Dot(rel) local t if math.abs(a) > 1e-6 then local disc = b * b - 4 * a * c if disc >= 0 then local sq = math.sqrt(disc) local t1 = (-b + sq) / (2 * a) local t2 = (-b - sq) / (2 * a) if t1 > 0 and t2 > 0 then t = math.min(t1, t2) else t = math.max(t1, t2) end end end if not t or t < 0 then t = rel.Magnitude / speed end if C.silentPingComp then local p = 0 pcall(function() p = LP:GetNetworkPing() or 0 end) t = t + p end if t > 1.5 then t = 1.5 end silentAimPos = pos + vel * t else silentAimPos = nil end end) local silentHooked = false local function installSilentHook() if silentHooked then return end if not getrawmetatable or not setreadonly then return end local ok, mt = pcall(getrawmetatable, game) if not ok or not mt or not mt.__namecall then return end local oldNamecall = mt.__namecall pcall(setreadonly, mt, false) mt.__namecall = newcclosure(function(self, ...) local method = getnamecallmethod() if method == "FireServer" and C.silentAim and silentAimPos then local okN, name = pcall(function() return self.Name end) local okC, cls = pcall(function() return self.ClassName end) if okN and okC and cls == "RemoteEvent" then local args = {...} local hasCFrame = false for _, v in ipairs(args) do if typeof(v) == "CFrame" then hasCFrame = true break end end local isGunRemote = (name == "GunFired" or name == "FireGun" or name == "Shoot" or name == "GunFire") if isGunRemote or (hasCFrame and getGun()) then local gun = getGun() if gun then local aimPos = silentAimPos local char = LP.Character local hrp = char and char:FindFirstChild("HumanoidRootPart") local cam = workspace.CurrentCamera local handle = gun:FindFirstChild("Handle") local savedHRP, savedCam, savedHandle if hrp then savedHRP = hrp.CFrame local flat = Vector3.new(aimPos.X, hrp.Position.Y, aimPos.Z) if (flat - hrp.Position).Magnitude > 0.1 then hrp.CFrame = CFrame.lookAt(hrp.Position, flat) end end if cam then savedCam = cam.CFrame cam.CFrame = CFrame.lookAt(cam.CFrame.Position, aimPos) end if handle then savedHandle = handle.CFrame handle.CFrame = CFrame.lookAt(handle.Position, aimPos) end for i, v in ipairs(args) do if typeof(v) == "CFrame" then args[i] = CFrame.lookAt(v.Position, aimPos) end end local result = oldNamecall(self, table.unpack(args)) if savedHRP then hrp.CFrame = savedHRP end if savedCam then cam.CFrame = savedCam end if savedHandle and handle then handle.CFrame = savedHandle end return result end end end end return oldNamecall(self, ...) end) pcall(setreadonly, mt, true) silentHooked = true print("[NL] Silent aim hook installed") end pcall(installSilentHook) print("[NL] NeverLose MM2 loaded - final")