local TweenService = game:GetService("TweenService") local CORRECT_KEY = "MatchaTeaOnTop?" local KEY_FILE = "MatchaTeaKey.txt" local KEY_LINK = "https://dsc.gg/matchatea" -- Check if key is already saved if isfile and readfile then if isfile(KEY_FILE) then local savedKey = readfile(KEY_FILE) if savedKey == CORRECT_KEY then print("🍵 Matcha Key Found - Auto Verified!") keyVerified = true end end end local keyVerified = true -- Only show UI if key is not verified if not keyVerified then -- Hàm tween mượt local function smoothTween(obj, props, time) TweenService:Create(obj, TweenInfo.new(time or 0.3, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), props):Play() end -- === TẠO UI === local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "MatchaKeySystem" ScreenGui.ResetOnSpawn = false ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling ScreenGui.Parent = game.CoreGui -- Main Frame local MainFrame = Instance.new("Frame") MainFrame.Size = UDim2.new(0, 400, 0, 500) MainFrame.Position = UDim2.new(0.5, -200, 0.5, -250) MainFrame.BackgroundColor3 = Color3.fromRGB(245, 250, 240) MainFrame.BorderSizePixel = 0 MainFrame.Active = true MainFrame.Draggable = true MainFrame.Parent = ScreenGui local MainCorner = Instance.new("UICorner") MainCorner.CornerRadius = UDim.new(0, 20) MainCorner.Parent = MainFrame -- Header matcha local Header = Instance.new("Frame") Header.Size = UDim2.new(1, 0, 0, 100) Header.Position = UDim2.new(0, 0, 0, 0) Header.BackgroundColor3 = Color3.fromRGB(156, 186, 140) Header.BorderSizePixel = 0 Header.Parent = MainFrame local HeaderCorner = Instance.new("UICorner") HeaderCorner.CornerRadius = UDim.new(0, 20) HeaderCorner.Parent = Header local HeaderBottom = Instance.new("Frame") HeaderBottom.Size = UDim2.new(1, 0, 0, 20) HeaderBottom.Position = UDim2.new(0, 0, 1, -20) HeaderBottom.BackgroundColor3 = Color3.fromRGB(156, 186, 140) HeaderBottom.BorderSizePixel = 0 HeaderBottom.Parent = Header -- Icon local Icon = Instance.new("TextLabel") Icon.Size = UDim2.new(0, 50, 0, 50) Icon.Position = UDim2.new(0.5, -25, 0, 15) Icon.BackgroundTransparency = 1 Icon.Text = "🍵" Icon.TextSize = 42 Icon.Parent = Header -- Title local Title = Instance.new("TextLabel") Title.Size = UDim2.new(1, 0, 0, 25) Title.Position = UDim2.new(0, 0, 0, 70) Title.BackgroundTransparency = 1 Title.Text = "Matcha Key System" Title.TextColor3 = Color3.new(1, 1, 1) Title.TextSize = 22 Title.Font = Enum.Font.GothamBold Title.TextXAlignment = Enum.TextXAlignment.Center Title.Parent = Header -- Content local ContentFrame = Instance.new("Frame") ContentFrame.Size = UDim2.new(1, -40, 0, 350) ContentFrame.Position = UDim2.new(0, 20, 0, 120) ContentFrame.BackgroundTransparency = 1 ContentFrame.Parent = MainFrame -- Status local StatusLabel = Instance.new("TextLabel") StatusLabel.Size = UDim2.new(1, 0, 0, 50) StatusLabel.Position = UDim2.new(0, 0, 0, 0) StatusLabel.BackgroundTransparency = 1 StatusLabel.Text = "Enter the key to continue ✨" StatusLabel.TextColor3 = Color3.fromRGB(100, 120, 90) StatusLabel.TextSize = 16 StatusLabel.Font = Enum.Font.Gotham StatusLabel.TextWrapped = true StatusLabel.Parent = ContentFrame -- Input container local InputContainer = Instance.new("Frame") InputContainer.Size = UDim2.new(1, 0, 0, 45) InputContainer.Position = UDim2.new(0, 0, 0, 65) InputContainer.BackgroundColor3 = Color3.new(1, 1, 1) InputContainer.BorderSizePixel = 0 InputContainer.Parent = ContentFrame local InputCorner = Instance.new("UICorner") InputCorner.CornerRadius = UDim.new(0, 10) InputCorner.Parent = InputContainer local InputStroke = Instance.new("UIStroke") InputStroke.Color = Color3.fromRGB(156, 186, 140) InputStroke.Thickness = 2 InputStroke.Transparency = 0.6 InputStroke.Parent = InputContainer -- Key input local KeyInput = Instance.new("TextBox") KeyInput.Size = UDim2.new(1, -20, 1, -10) KeyInput.Position = UDim2.new(0, 10, 0, 5) KeyInput.BackgroundTransparency = 1 KeyInput.PlaceholderText = "Enter key..." KeyInput.PlaceholderColor3 = Color3.fromRGB(180, 180, 180) KeyInput.Text = "" KeyInput.TextColor3 = Color3.fromRGB(60, 60, 60) KeyInput.TextSize = 15 KeyInput.Font = Enum.Font.Gotham KeyInput.ClearTextOnFocus = false KeyInput.Parent = InputContainer -- Get Key button local GetKeyBtn = Instance.new("TextButton") GetKeyBtn.Size = UDim2.new(1, 0, 0, 45) GetKeyBtn.Position = UDim2.new(0, 0, 0, 130) GetKeyBtn.BackgroundColor3 = Color3.fromRGB(255, 180, 100) GetKeyBtn.Text = "🔑 Get Key" GetKeyBtn.TextColor3 = Color3.new(1, 1, 1) GetKeyBtn.TextSize = 17 GetKeyBtn.Font = Enum.Font.GothamBold GetKeyBtn.BorderSizePixel = 0 GetKeyBtn.Parent = ContentFrame local GetKeyCorner = Instance.new("UICorner") GetKeyCorner.CornerRadius = UDim.new(0, 10) GetKeyCorner.Parent = GetKeyBtn -- Verify button local VerifyBtn = Instance.new("TextButton") VerifyBtn.Size = UDim2.new(1, 0, 0, 45) VerifyBtn.Position = UDim2.new(0, 0, 0, 190) VerifyBtn.BackgroundColor3 = Color3.fromRGB(156, 186, 140) VerifyBtn.Text = "✓ Confirm" VerifyBtn.TextColor3 = Color3.new(1, 1, 1) VerifyBtn.TextSize = 17 VerifyBtn.Font = Enum.Font.GothamBold VerifyBtn.BorderSizePixel = 0 VerifyBtn.Parent = ContentFrame local VerifyCorner = Instance.new("UICorner") VerifyCorner.CornerRadius = UDim.new(0, 10) VerifyCorner.Parent = VerifyBtn -- Info label local InfoLabel = Instance.new("TextLabel") InfoLabel.Size = UDim2.new(1, 0, 0, 80) InfoLabel.Position = UDim2.new(0, 0, 0, 255) InfoLabel.BackgroundTransparency = 1 InfoLabel.Text = "💡 Tip:\n\nClick 'Get Key' to obtain your access key!" InfoLabel.TextColor3 = Color3.fromRGB(120, 140, 110) InfoLabel.TextSize = 14 InfoLabel.Font = Enum.Font.Gotham InfoLabel.TextWrapped = true InfoLabel.Parent = ContentFrame -- Close button local CloseBtn = Instance.new("TextButton") CloseBtn.Size = UDim2.new(0, 32, 0, 32) CloseBtn.Position = UDim2.new(1, -42, 0, 10) CloseBtn.BackgroundColor3 = Color3.fromRGB(255, 100, 100) CloseBtn.Text = "✕" CloseBtn.TextColor3 = Color3.new(1, 1, 1) CloseBtn.TextSize = 18 CloseBtn.Font = Enum.Font.GothamBold CloseBtn.BorderSizePixel = 0 CloseBtn.Parent = MainFrame local CloseCorner = Instance.new("UICorner") CloseCorner.CornerRadius = UDim.new(0, 8) CloseCorner.Parent = CloseBtn -- === MATCHA PARTICLES === spawn(function() local RunService = game:GetService("RunService") local particles = {} for i = 1, 25 do local particle = Instance.new("Frame") particle.Size = UDim2.new(0, math.random(3, 5), 0, math.random(3, 5)) particle.Position = UDim2.new(math.random(), 0, math.random(), 0) particle.BackgroundColor3 = Color3.fromRGB(156, 186, 140) particle.BackgroundTransparency = math.random(75, 90) / 100 particle.BorderSizePixel = 0 particle.ZIndex = 0 particle.Parent = MainFrame local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(1, 0) corner.Parent = particle table.insert(particles, { obj = particle, speed = math.random(15, 40) / 1000, angle = math.random() * math.pi * 2 }) end local conn conn = RunService.Heartbeat:Connect(function() if not MainFrame.Parent then conn:Disconnect() return end for _, p in pairs(particles) do local pos = p.obj.Position p.angle = p.angle + p.speed local newX = pos.X.Scale + math.cos(p.angle) * 0.002 local newY = pos.Y.Scale + math.sin(p.angle) * 0.002 p.obj.Position = UDim2.new(newX, 0, newY, 0) end end) end) -- === CHỨC NĂNG === -- Hover effects GetKeyBtn.MouseEnter:Connect(function() smoothTween(GetKeyBtn, {BackgroundColor3 = Color3.fromRGB(255, 160, 80)}) end) GetKeyBtn.MouseLeave:Connect(function() smoothTween(GetKeyBtn, {BackgroundColor3 = Color3.fromRGB(255, 180, 100)}) end) VerifyBtn.MouseEnter:Connect(function() smoothTween(VerifyBtn, {BackgroundColor3 = Color3.fromRGB(130, 160, 114)}) end) VerifyBtn.MouseLeave:Connect(function() smoothTween(VerifyBtn, {BackgroundColor3 = Color3.fromRGB(156, 186, 140)}) end) CloseBtn.MouseEnter:Connect(function() smoothTween(CloseBtn, {BackgroundColor3 = Color3.fromRGB(255, 70, 70)}) end) CloseBtn.MouseLeave:Connect(function() smoothTween(CloseBtn, {BackgroundColor3 = Color3.fromRGB(255, 100, 100)}) end) -- Get Key button functionality GetKeyBtn.MouseButton1Click:Connect(function() -- Copy link to clipboard if supported if setclipboard then setclipboard(KEY_LINK) -- Visual feedback local originalText = GetKeyBtn.Text GetKeyBtn.Text = "✓ Link Copied!" smoothTween(GetKeyBtn, {BackgroundColor3 = Color3.fromRGB(80, 180, 80)}) task.wait(2) GetKeyBtn.Text = originalText smoothTween(GetKeyBtn, {BackgroundColor3 = Color3.fromRGB(255, 180, 100)}) end -- Open the key link in browser (if supported by executor) pcall(function() if request then request({ Url = KEY_LINK, Method = "GET" }) end end) -- Try to open with http_request pcall(function() if http_request then http_request({ Url = KEY_LINK, Method = "GET" }) end end) -- Notify user StatusLabel.Text = "🔑 Opening key website..." StatusLabel.TextColor3 = Color3.fromRGB(255, 180, 100) task.wait(2) StatusLabel.Text = "Enter the key to continue ✨" StatusLabel.TextColor3 = Color3.fromRGB(100, 120, 90) end) -- Verify button functionality VerifyBtn.MouseButton1Click:Connect(function() local inputKey = KeyInput.Text if inputKey == CORRECT_KEY then -- ✅ KEY ĐÚNG StatusLabel.Text = "✅ Valid key! Loading..." StatusLabel.TextColor3 = Color3.fromRGB(80, 180, 80) smoothTween(VerifyBtn, {BackgroundColor3 = Color3.fromRGB(80, 180, 80)}) VerifyBtn.Text = "✓ Success" -- 💾 LƯU KEY VÀO FILE if writefile then writefile(KEY_FILE, CORRECT_KEY) end task.wait(1) -- Fade out smoothTween(MainFrame, {BackgroundTransparency = 1}, 0.5) for _, child in pairs(MainFrame:GetDescendants()) do if child:IsA("TextLabel") or child:IsA("TextButton") then smoothTween(child, {TextTransparency = 1}, 0.5) end if child:IsA("Frame") or child:IsA("TextButton") then smoothTween(child, {BackgroundTransparency = 1}, 0.5) end if child:IsA("UIStroke") then smoothTween(child, {Transparency = 1}, 0.5) end end task.wait(0.6) ScreenGui:Destroy() keyVerified = true print("✅ Matcha Key System - Verified!") else -- ❌ KEY SAI StatusLabel.Text = "❌ Incorrect key! Try again..." StatusLabel.TextColor3 = Color3.fromRGB(255, 80, 80) smoothTween(VerifyBtn, {BackgroundColor3 = Color3.fromRGB(255, 100, 100)}) -- Shake for i = 1, 3 do smoothTween(MainFrame, {Position = UDim2.new(0.5, -190, 0.5, -250)}, 0.05) task.wait(0.05) smoothTween(MainFrame, {Position = UDim2.new(0.5, -210, 0.5, -250)}, 0.05) task.wait(0.05) end MainFrame.Position = UDim2.new(0.5, -200, 0.5, -250) task.wait(1) StatusLabel.Text = "Enter the key to continue ✨" StatusLabel.TextColor3 = Color3.fromRGB(100, 120, 90) smoothTween(VerifyBtn, {BackgroundColor3 = Color3.fromRGB(156, 186, 140)}) VerifyBtn.Text = "✓ Confirm" end end) -- Enter key để verify KeyInput.FocusLost:Connect(function(enterPressed) if enterPressed then VerifyBtn.MouseButton1Click:Fire() end end) -- Close button CloseBtn.MouseButton1Click:Connect(function() smoothTween(MainFrame, {Size = UDim2.new(0, 0, 0, 0)}, 0.3) task.wait(0.3) ScreenGui:Destroy() end) -- Wait for key verification repeat task.wait(0.1) until keyVerified end local isDaHood = (game.PlaceId == 2788229376) if not game:IsLoaded() then game.Loaded:Wait() end if getnamecallmethod then loadstring(game:HttpGet("https://raw.githubusercontent.com/Pixeluted/adoniscries/main/Source.lua",true))() end coroutine.wrap(function() local success, err = pcall(function() local gamerawmetatable = getrawmetatable(game) setreadonly(gamerawmetatable, false) old__namecall1 = gamerawmetatable.__namecall gamerawmetatable.__namecall = newcclosure(function(self, ...) local args = {...} local remoteName = tostring(args[1]) local blockedRemotes = { ["TeleportDetect"] = true, ["CHECKER_1"] = true, ["CHECKER"] = true, ["GUI_CHECK"] = true, ["OneMoreTime"] = true, ["checkingSPEED"] = true, ["BANREMOTE"] = true, ["PERMAIDBAN"] = true, ["KICKREMOTE"] = true, ["BR_KICKPC"] = true, ["BR_KICKMOBILE"] = true } if blockedRemotes[remoteName] then return end return old__namecall1(self, ...) end) end) if not success then warn("[Anti-RemoteBlock] Executor not support hook metatable (__namecall). Skipped.") end warn("[+] Matcha.cc : anticheat bypassed.") end)() local repo = 'https://raw.githubusercontent.com/alebinh60/asmobile/refs/heads/main/' local Library = loadstring(game:HttpGet(repo .. 'Library.lua'))() local ThemeManager = loadstring(game:HttpGet(repo .. 'addons/ThemeManager.lua'))() local SaveManager = loadstring(game:HttpGet(repo .. 'addons/SaveManager.lua'))() local Options = Library.Options local Toggles = Library.Toggles Library.ShowToggleFrameInKeybinds = true Library.ShowCustomCursor = true Library.NotifySide = "Right" local TextChatService = game:GetService("TextChatService") local chatWindow = TextChatService:FindFirstChild("ChatWindowConfiguration") local ChatEnabled = true if ChatEnabled and chatWindow then chatWindow.Enabled = true end local Camera = workspace.CurrentCamera local Window = Library:CreateWindow({ Title = "", Footer = "matcha.cc | dsc.gg/matchatea", Icon = 241778280, NotifySide = "Right", ShowCustomCursor = false, Compact = true, AutoShow = true, MobileButtonsSide = "Left" }) local plr = game.Players.LocalPlayer local mps = game:GetService("MarketplaceService") loadstring(game:HttpGet("https://raw.githubusercontent.com/alebinh60/asmobile/refs/heads/main/anhyeuvy"))() local ownerList = { ["anhchangm5"] = true, ["Dao_Beo"] = true, ["anhchangm52"] = true, ["anhaycogihontoi"] = true, ["anhchongyeuvo"] = true, ["anhchangm53"] = true, ["PrimalSlime200560"] = true, } getgenv().premiumUsers = { ["Fkgebder"] = true, ["Newproarley"] = true, ["Bannanaman3160"] = true, } --// BYPASS USERS (NO GAMEPASS NEEDED) getgenv().bypassUsers = { ["Bannanaman3160"] = true, } local isOwner = ownerList[plr.Name] == true local function checkPremium() local owns = false pcall(function() owns = mps:UserOwnsGamePassAsync(plr.UserId, 1618296323) end) -- chỉ cần username có trong table là được return owns or getgenv().premiumUsers[plr.Name] == true end local function checkBypass() local owns = false pcall(function() owns = mps:UserOwnsGamePassAsync(plr.UserId, 1618124347) end) return owns or getgenv().bypassUsers[plr.Name] == true end local hasPremium = checkPremium() local hasBypass = checkBypass() if isOwner then Library:Notify("Owner Matcha User! Welcome " .. plr.DisplayName .. " (@" .. plr.Name .. ")", 15) end if hasBypass then Library:Notify("BypassPremium User! Welcome " .. plr.DisplayName .. " (@" .. plr.Name .. ")", 12) end if hasPremium then Library:Notify("Premium User! Welcome " .. plr.DisplayName .. " (@" .. plr.Name .. ")", 10) end if not isOwner then if not hasBypass and not hasPremium then Library:Notify("Freemium User! Welcome " .. plr.DisplayName .. " (@" .. plr.Name .. ")", 10) end end local Tabs = { Main = Window:AddTab('Main', 'target'), Player = Window:AddTab('Player', 'users'), Visual = Window:AddTab('Visual', 'eye'), Character = Window:AddTab('Character', 'user'), Misc = Window:AddTab('Misc', 'heart'), ['UI Settings'] = Window:AddTab('UI Settings', 'settings'), } local previousTargetHealth = {} local TargetAimActive = false local BuyingAmmo = false local BuyingAmmoActive = false local BuyingActive = false local AutoKillActive = false local AutoHealActive = false local AutoArmorActive = false local AutoLoadoutActive = false local BuyingSingleActive = false getgenv().Matcha = {} local matchacc = { TargetAim = { Enabled = false, Target = "None", AutoSelect = false, AutoFire = false, Strafe = false, ToggleStrafe = false, VisualizeStrafe = false, VisualizeStrafeInlineColor = Color3.fromRGB(255, 255, 255), VisualizeStrafeOutlineColor = Color3.fromRGB(255, 255, 255), StrafeMethod = "Randomize", StrafePrediction = 0.1, Highlight = false, HighlightOutlineColor = Color3.fromRGB(255, 255, 255), Tracer = false, TracerPosition = "Mouse", TracerFillColor = Color3.fromRGB(255, 255, 255), TracerOutlineColor = Color3.fromRGB(0, 0, 0), LookAt = false, SpectateTarget = false, AutoStomp = false, Prediction = 0, AutoPredict = false, PredictMode = "", HitPart = "Head", Offset = 0, JumpOffset = 0, AirPartEnabled = false, AirPart = "Head", Resolver = false, TargetStats = false, Autokill = false, DotCircle = false, Spoofer = false, }, HitEffects = { HitSounds = false, HitSoundID = "rbxassetid://6534948092", HitSoundVolume = 5, HitNotifications = false, HitNotificationsTime = 3, HitChams = { Enabled = false, Color = Color3.fromRGB(255, 255, 255), Lifetime = 3, Transparency = 0.7, Material = "Neon" }, HitEffect = { Enabled = false, Type = "Coom", Color = Color3.fromRGB(255, 255, 255), }, HitSkeleton = { Enabled = false, Color = Color3.fromRGB(255, 255, 255) }, }, Checks = { Wall = false, Forcefield = false, Alive = false, Team = false, }, KillAura = { Enabled = false, Active = false, Range = 250, Silent = false, Visualize = false, StompAura = false, Whitelist = {}, }, RapidFire = { Enabled = false, }, Wallbang = { Enabled = false, }, HitboxExpander = { Enabled = false, Visualize = false, Color = Color3.fromRGB(255, 255, 255), OutlineColor = Color3.fromRGB(255, 255, 255), FillTransparency = 0.5, OutlineTransparency = 0.3, Size = 15, }, Movement = { WalkSpeedEnabled = false, WalkSpeed = 16, -- Default Roblox walkspeed JumpPowerEnabled = false, JumpPower = 50, -- Default Roblox jumppower }, } local oldVelPos = {} --// Silent Aim Dot Circle local DotCircle = Drawing.new("Circle") DotCircle.Visible = false DotCircle.Filled = true DotCircle.Radius = 5 DotCircle.Thickness = 1.5 DotCircle.Color = Color3.fromRGB(255, 255, 255) DotCircle.Transparency = 1 --// Supported Games Table local SupportedGames = { [134466866823998] = {Name = "Hood Spirit", Arg = "UpdateMousePos", Remote = "MainEvent"}, [136445500005916] = {Name = "Da Hood Bot Aim Trainer", Arg = "MOUSE", Remote = "MAINEVENT"}, [134663378603568] = {Name = "Da Battles", Arg = "MoonUpdateMousePos", Remote = "MainEvent"}, [107421338926623] = {Name = "Mad Hood", Arg = "UpdateMousePos", Remote = "MainEvent"}, [122498301850823] = {Name = "Da Downhill", Arg = "MOUSE", Remote = "MAINEVENT"}, [91065483292550] = {Name = "Hood Bank", Arg = "MOUSE", Remote = "MAINEVENT"}, [93283444799920] = {Name = "Da Uphill", Arg = "MOUSE", Remote = "MAINEVENT"}, [134531910435633] = {Name = "Da Strike", Arg = "MOUSE", Remote = "MAINEVENT"}, [111208915794141] = {Name = "Hood Z", Arg = "UpdateMousePos", Remote = "MainEvent"} } local CurrentGame = SupportedGames[game.PlaceId] if not LPH_OBFUSCATED then LPH_JIT = function(...) return ... end LPH_NO_VIRTUALIZE = function(...) return ... end end local BodyClone = game:GetObjects("rbxassetid://8246626421")[1] BodyClone.Parent = workspace BodyClone.Humanoid:Destroy() BodyClone.Head.Face:Destroy() for _, v in pairs(BodyClone:GetDescendants()) do if v:IsA("BasePart") or v:IsA("MeshPart") then v.CanCollide = false v.Transparency = 1 end end BodyClone.HumanoidRootPart.Transparency = 1 BodyClone.HumanoidRootPart.Velocity = Vector3.zero BodyClone.HumanoidRootPart.CFrame = CFrame.new(9999, 9999, 9999) local BodyCloneHighlight = Instance.new("Highlight") BodyCloneHighlight.Enabled = false BodyCloneHighlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop BodyCloneHighlight.FillColor = Color3.fromRGB(0, 255, 0) BodyCloneHighlight.OutlineColor = Color3.fromRGB(255, 255, 255) BodyCloneHighlight.FillTransparency = 0.3 BodyCloneHighlight.OutlineTransparency = 0 BodyCloneHighlight.Adornee = BodyClone BodyCloneHighlight.Parent = BodyClone local GlowLight = Instance.new("PointLight") GlowLight.Color = Color3.fromRGB(255, 255, 255) GlowLight.Brightness = 4 GlowLight.Range = 4 GlowLight.Parent = BodyClone.HumanoidRootPart -- Desync Line local DesyncLine = Drawing.new("Line") DesyncLine.Thickness = 2 DesyncLine.Color = Color3.fromRGB(255, 255, 255) DesyncLine.Visible = false DesyncLine.Transparency = 1 -- Tracer for TargetAim local tracerOutline = Drawing.new("Line") tracerOutline.Visible = false tracerOutline.Color = matchacc.TargetAim.TracerOutlineColor tracerOutline.Thickness = 4 local tracer = Drawing.new("Line") tracer.Visible = false tracer.Color = matchacc.TargetAim.TracerFillColor tracer.Thickness = 2 -- KillAura Tracer Part local ka_tracer = Instance.new("Part") ka_tracer.Size = Vector3.new(0.2, 0.2, 0.2) ka_tracer.Material = Enum.Material.Neon ka_tracer.Color = Color3.fromRGB(255, 255, 255) ka_tracer.Transparency = 1 ka_tracer.Anchored = true ka_tracer.CanCollide = false ka_tracer.Parent = workspace local TweenService = game:GetService("TweenService") local HitChams = LPH_NO_VIRTUALIZE(function(Player) if not matchacc.HitEffects.HitChams.Enabled then return end -- Sử dụng matchacc từ script gốc if Player and Player.Character and Player.Character:FindFirstChild("HumanoidRootPart") then Player.Character.Archivable = true local Cloned = Player.Character:Clone() Cloned.Name = "Player Clone" local BodyParts = { "Head", "UpperTorso", "LowerTorso", "LeftUpperArm", "LeftLowerArm", "LeftHand", "RightUpperArm", "RightLowerArm", "RightHand", "LeftUpperLeg", "LeftLowerLeg", "LeftFoot", "RightUpperLeg", "RightLowerLeg", "RightFoot" } for _, Part in ipairs(Cloned:GetChildren()) do if Part:IsA("BasePart") then local PartValid = false for _, validPart in ipairs(BodyParts) do if Part.Name == validPart then PartValid = true break end end if not PartValid then Part:Destroy() end elseif Part:IsA("Accessory") or Part:IsA("Tool") or Part.Name == "face" or Part:IsA("Shirt") or Part:IsA("Pants") or Part:IsA("Hat") then Part:Destroy() end end if Cloned:FindFirstChild("Humanoid") then Cloned.Humanoid:Destroy() end for _, BodyPart in ipairs(Cloned:GetChildren()) do if BodyPart:IsA("BasePart") then BodyPart.CanCollide = false BodyPart.Anchored = true BodyPart.Transparency = matchacc.HitEffects.HitChams.Transparency BodyPart.Color = matchacc.HitEffects.HitChams.Color BodyPart.Material = matchacc.HitEffects.HitChams.Material end end if Cloned:FindFirstChild("Head") then local Head = Cloned.Head Head.Transparency = matchacc.HitEffects.HitChams.Transparency Head.Color = matchacc.HitEffects.HitChams.Color Head.Material = matchacc.HitEffects.HitChams.Material if Head:FindFirstChild("face") then Head.face:Destroy() end end Cloned.Parent = game.Workspace local tweenInfo = TweenInfo.new( matchacc.HitEffects.HitChams.Lifetime, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut, 0, true ) for _, BodyPart in ipairs(Cloned:GetChildren()) do if BodyPart:IsA("BasePart") then local tween = TweenService:Create(BodyPart, tweenInfo, { Transparency = 1 }) tween:Play() end end task.delay(matchacc.HitEffects.HitChams.Lifetime, function() if Cloned and Cloned.Parent then Cloned:Destroy() end end) end end) local HitChamsSkeleton = LPH_NO_VIRTUALIZE(function(Player) if not matchacc.HitEffects.HitSkeleton.Enabled then return end -- Thêm HitSkeleton vào matchacc.HitEffects if Player and Player.Character and Player.Character:FindFirstChild("HumanoidRootPart") then local bones = { {"Head", "UpperTorso"}, {"UpperTorso", "LowerTorso"}, {"UpperTorso", "RightUpperArm"}, {"RightUpperArm", "RightLowerArm"}, {"RightLowerArm", "RightHand"}, {"UpperTorso", "LeftUpperArm"}, {"LeftUpperArm", "LeftLowerArm"}, {"LeftLowerArm", "LeftHand"}, {"LowerTorso", "RightUpperLeg"}, {"RightUpperLeg", "RightLowerLeg"}, {"RightLowerLeg", "RightFoot"}, {"LowerTorso", "LeftUpperLeg"}, {"LeftUpperLeg", "LeftLowerLeg"}, {"LeftLowerLeg", "LeftFoot"} } local lines = {} for _, bonePair in ipairs(bones) do local parentBone = Player.Character:FindFirstChild(bonePair[1]) local childBone = Player.Character:FindFirstChild(bonePair[2]) if parentBone and childBone then local line = Instance.new("Part") line.Size = Vector3.new(0.02, 0.02, (parentBone.Position - childBone.Position).Magnitude) line.CFrame = CFrame.new(parentBone.Position, childBone.Position) * CFrame.new(0, 0, -line.Size.Z / 2) line.Anchored = true line.CanCollide = false line.Transparency = matchacc.HitEffects.HitChams.Transparency -- Sử dụng chung transparency line.Color = matchacc.HitEffects.HitSkeleton.Color -- Sử dụng Color mới line.Material = Enum.Material.Neon line.Parent = workspace local tweenInfo = TweenInfo.new(matchacc.HitEffects.HitChams.Lifetime / 0.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out) local tween = TweenService:Create(line, tweenInfo, {Transparency = 1}) tween:Play() table.insert(lines, line) end end task.delay(matchacc.HitEffects.HitChams.Lifetime, function() for _, line in ipairs(lines) do if line and line.Parent then line:Destroy() end end end) end end) local FOVCircleEnabled = false local FOVCircleSize = 300 local FOVInnerColor = Color3.fromRGB(255, 255, 255) local GradientFillEnabled = false local GradientColor1 = Color3.fromRGB(255, 255, 255) local GradientColor2 = Color3.fromRGB(0, 0, 0) local FillTransparency = 0.5 local InnerCircle = Drawing.new("Circle") InnerCircle.Visible = false InnerCircle.Thickness = 1 InnerCircle.NumSides = 64 InnerCircle.Filled = false InnerCircle.Color = FOVInnerColor InnerCircle.Radius = FOVCircleSize InnerCircle.ZIndex = 10001 local FillCircle = Drawing.new("Circle") FillCircle.Visible = false FillCircle.Filled = true FillCircle.Transparency = FillTransparency FillCircle.NumSides = 64 FillCircle.Radius = FOVCircleSize FillCircle.Color = GradientColor1 FillCircle.ZIndex = 10001 local players = game:GetService("Players") local Players = game:GetService("Players") local localPlayer = players.LocalPlayer local LocalPlayer = Players.LocalPlayer local RunService = game:GetService("RunService") local ReplicatedStorage = game:GetService('ReplicatedStorage') local UserInputService = game:GetService("UserInputService") local isMobile = UserInputService.TouchEnabled and not UserInputService.KeyboardEnabled local possibleRemotes = { "MAINEVENT", "MainEvent", "Remote", "Packages", "MainRemotes", "Bullets" } local function getMainRemote() if ReplicatedStorage:FindFirstChild("MainEvent") then return ReplicatedStorage.MainEvent end if ReplicatedStorage:FindFirstChild("MAINEVENT") then return ReplicatedStorage.MAINEVENT end if ReplicatedStorage:FindFirstChild("Remote") then return ReplicatedStorage.Remote end if ReplicatedStorage:FindFirstChild("Bullets") then return ReplicatedStorage.Bullets end -- MainRemotes.MainRemoteEvent local mainRemotes = ReplicatedStorage:FindFirstChild("MainRemotes") if mainRemotes and mainRemotes:FindFirstChild("MainRemoteEvent") then return mainRemotes.MainRemoteEvent end -- Packages.Knit.Services.ToolService.RE.UpdateAim local packages = ReplicatedStorage:FindFirstChild("Packages") if packages then local knit = packages:FindFirstChild("Knit") if knit and knit:FindFirstChild("Services") then local toolService = knit.Services:FindFirstChild("ToolService") if toolService and toolService:FindFirstChild("RE") then local re = toolService.RE if re:FindFirstChild("UpdateAim") then return re.UpdateAim end end end end -- fallback: không tìm thấy return nil end local MainEvent = getMainRemote() local previousPositions = {} local customVelocities = {} local lastTarget = nil local t = 0 local M1Down = false local lastHealth = nil local ka_lastHealth = {} local sounds = { Hrntai = "https://github.com/CongoOhioDog/SoundS/blob/main/Hrntai.wav?raw=true", Henta01 = "https://github.com/CongoOhioDog/SoundS/blob/main/henta01.wav?raw=true", Kitty = "https://github.com/CongoOhioDog/SoundS/blob/main/Kitty.mp3?raw=true", } local hitsounds = { ["Bubble"] = "rbxassetid://6534947588", ["Lazer"] = "rbxassetid://130791043", ["Pick"] = "rbxassetid://1347140027", ["Pop"] = "rbxassetid://198598793", ["Rust"] = "rbxassetid://1255040462", ["Sans"] = "rbxassetid://3188795283", ["Fart"] = "rbxassetid://130833677", ["Big"] = "rbxassetid://5332005053", ["Vine"] = "rbxassetid://5332680810", ["UwU"] = "rbxassetid://8679659744", ["Bruh"] = "rbxassetid://4578740568", ["Skeet"] = "rbxassetid://5633695679", ["Neverlose"] = "rbxassetid://6534948092", ["Fatality"] = "rbxassetid://6534947869", ["Bonk"] = "rbxassetid://5766898159", ["Minecraft"] = "rbxassetid://5869422451", ["Gamesense"] = "rbxassetid://4817809188", ["RIFK7"] = "rbxassetid://9102080552", ["Bamboo"] = "rbxassetid://3769434519", ["Crowbar"] = "rbxassetid://546410481", ["Weeb"] = "rbxassetid://6442965016", ["Beep"] = "rbxassetid://8177256015", ["Bambi"] = "rbxassetid://8437203821", ["Stone"] = "rbxassetid://3581383408", ["Old Fatality"] = "rbxassetid://6607142036", ["Click"] = "rbxassetid://8053704437", ["Ding"] = "rbxassetid://7149516994", ["Snow"] = "rbxassetid://6455527632", ["Laser"] = "rbxassetid://7837461331", ["Mario"] = "rbxassetid://2815207981", ["Steve"] = "rbxassetid://4965083997", ["Call of Duty"] = "rbxassetid://5952120301", ["Bat"] = "rbxassetid://3333907347", ["TF2 Critical"] = "rbxassetid://296102734", ["Saber"] = "rbxassetid://8415678813", ["Baimware"] = "rbxassetid://3124331820", ["Osu"] = "rbxassetid://7149255551", ["TF2"] = "rbxassetid://2868331684", ["Slime"] = "rbxassetid://6916371803", ["Among Us"] = "rbxassetid://5700183626", ["One"] = "rbxassetid://7380502345" } local function isAlive(plr) if not plr or not plr.Character then return false end local hum = plr.Character:FindFirstChildOfClass("Humanoid") if not hum or hum.Health <= 0 then return false end local be = plr.Character:FindFirstChild("BodyEffects") if be then local ko = be:FindFirstChild("K.O") local grabbed = be:FindFirstChild("GRABBING_CONSTRAINT") if (ko and ko.Value) or (grabbed and grabbed.Value) then return false end end return true end local function isAlive2(plr) if not plr or not plr.Character then return false end local hum = plr.Character:FindFirstChildOfClass("Humanoid") if not hum or hum.Health <= 0 then return false end return true end local function KnockCheck(plr) if plr and plr.Character and plr.Character:FindFirstChild("BodyEffects") then local ko = plr.Character.BodyEffects:FindFirstChild("K.O") return ko and ko.Value or false end return false end local function GetClosestCharacter() local closestDist = math.huge local closestPlayer = nil local mousePos if UserInputService.TouchEnabled and not UserInputService.MouseEnabled then -- Mobile: dùng tâm màn hình mousePos = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2) else -- PC dùng vị trí chuột mousePos = UserInputService:GetMouseLocation() end for _, player in pairs(players:GetPlayers()) do if player == localPlayer then continue end local char = player.Character if not char or not char:FindFirstChild("Head") or not char:FindFirstChild("HumanoidRootPart") then continue end if not isAlive(player) and matchacc.Checks.Alive then continue end if matchacc.Checks.Team and player.Team == localPlayer.Team then continue end if matchacc.Checks.Forcefield and player.Character:FindFirstChildWhichIsA("ForceField") then continue end local headPos, onScreen = Camera:WorldToViewportPoint(char.Head.Position) local screenPos = Vector2.new(headPos.X, headPos.Y) local dist = (screenPos - mousePos).Magnitude -- === FOV CHECK - CHỈ CHỌN NẾU TRONG VÒNG TRÒN FOV === if FOVCircleEnabled and dist > FOVCircleSize then continue end -- ==================================================== local isVisible = true if matchacc.Checks.Wall then local raycastParams = RaycastParams.new() raycastParams.FilterDescendantsInstances = {localPlayer.Character} raycastParams.FilterType = Enum.RaycastFilterType.Blacklist local result = workspace:Raycast(Camera.CFrame.Position, char.Head.Position - Camera.CFrame.Position, raycastParams) if result and result.Instance and not result.Instance:IsDescendantOf(char) then isVisible = false end end if onScreen and isVisible and dist < closestDist then closestDist = dist closestPlayer = player end end return closestPlayer end local function createHitSound() local sound = Instance.new("Sound") sound.Parent = localPlayer.Character.HumanoidRootPart sound.SoundId = matchacc.HitEffects.HitSoundID sound.Volume = matchacc.HitEffects.HitSoundVolume sound:Play() sound.Ended:Connect(function() sound:Destroy() end) end local function SetRigTransparency(clone, trans) for _, v in pairs(clone:GetDescendants()) do if v:IsA("BasePart") or v:IsA("MeshPart") then v.Transparency = trans end end end local function SetRigCollisionFalse(clone) for _, v in pairs(clone:GetDescendants()) do if v:IsA("BasePart") or v:IsA("MeshPart") then v.CanCollide = false end end end local function SetRigColor(clone, color) for _, v in pairs(clone:GetDescendants()) do if v:IsA("BasePart") or v:IsA("MeshPart") then v.Color = color end end end local MainTabBox = Tabs.Main:AddLeftTabbox() local TargetAimTab = MainTabBox:AddTab('Target aim') local ChecksTab = MainTabBox:AddTab('Checks') local OptionsTab = MainTabBox:AddTab('Options') TargetAimTab:AddToggle('TargetAimEnabled', { Text = 'Enabled', Default = false, Callback = function(Value) matchacc.TargetAim.Enabled = Value if not Value then matchacc.TargetAim.Target = "None" tracer.Visible = false tracerOutline.Visible = false SetRigTransparency(BodyClone, 1) DesyncLine.Visible = false BodyCloneHighlight.Enabled = false Camera.CameraSubject = localPlayer.Character.Humanoid end end }):AddKeyPicker('TargetAimKey', { Default = 'Q', Text = 'Target Aim', Mode = 'Toggle', Callback = function(Value) if not matchacc.TargetAim.Enabled then return end if Value then local target = GetClosestCharacter() if target then matchacc.TargetAim.Target = target.Name else matchacc.TargetAim.Target = "None" end else matchacc.TargetAim.Target = "None" tracer.Visible = false tracerOutline.Visible = false SetRigTransparency(BodyClone, 1) DesyncLine.Visible = false BodyCloneHighlight.Enabled = false end end }) if UserInputService.TouchEnabled then local Sigmaballs = Instance.new("ScreenGui") Sigmaballs.Name = "Sigmaballs" Sigmaballs.Parent = game.CoreGui Sigmaballs.ZIndexBehavior = Enum.ZIndexBehavior.Sibling Sigmaballs.ResetOnSpawn = false local ImageButton = Instance.new("ImageButton") ImageButton.Name = "ImageButton" ImageButton.Parent = Sigmaballs ImageButton.Active = true ImageButton.Draggable = true ImageButton.BackgroundColor3 = Color3.fromRGB(20, 20, 20) ImageButton.BackgroundTransparency = 0.5 ImageButton.Size = UDim2.new(0, 90, 0, 90) ImageButton.Image = "http://www.roblox.com/asset/?id=11351620343" ImageButton.Position = UDim2.new(0.5, -25, 0.5, -25) ImageButton.Visible = true -- Hiện nút cho mobile local Ui2corner = Instance.new("UICorner") Ui2corner.CornerRadius = UDim.new(0.2, 0) Ui2corner.Parent = ImageButton ImageButton.MouseButton1Click:Connect(function() if matchacc.TargetAim.Enabled then local target = GetClosestCharacter() -- Giả sử hàm GetClosestCharacter() tồn tại từ script gốc if target then matchacc.TargetAim.Target = target.Name else matchacc.TargetAim.Target = "None" end end end) end TargetAimTab:AddToggle('AutoSelect', { Text = 'Auto Select', Default = false, Callback = function(Value) matchacc.TargetAim.AutoSelect = Value if Value then RunService:BindToRenderStep("AutoSelect", 1, function() local target = GetClosestCharacter() if lastTarget and lastTarget ~= target and lastTarget.Character then tracer.Visible = false tracerOutline.Visible = false end if target then matchacc.TargetAim.Target = target.Name else matchacc.TargetAim.Target = "None" end lastTarget = target end) else RunService:UnbindFromRenderStep("AutoSelect") if lastTarget and lastTarget.Character then tracer.Visible = false tracerOutline.Visible = false end lastTarget = nil end end }) TargetAimTab:AddToggle('AutoFire', { Text = 'Auto Fire', Default = false, Callback = function(Value) matchacc.TargetAim.AutoFire = Value end }) local color_targethud = Color3.fromRGB(92, 232, 35) TargetAimTab:AddToggle('TargetStatsEnabled', { Text = 'Target Stats', Default = false, Callback = function(Value) matchacc.TargetAim.TargetStats = Value end }):AddColorPicker('StatsColor', { Default = color_targethud, Title = 'Stats Color', Callback = function(Value) color_targethud = Value end }) local matchacc_TargetStats = Instance.new("ScreenGui") local Background = Instance.new("Frame") local Picture = Instance.new("ImageLabel") local Top = Instance.new("Frame") local UIGradient = Instance.new("UIGradient") local UIGradient_2 = Instance.new("UIGradient") local HealthBarBackground = Instance.new("Frame") local UIGradient_3 = Instance.new("UIGradient") local HealthBar = Instance.new("Frame") local UIGradient_4 = Instance.new("UIGradient") local NameOfTarget = Instance.new("TextLabel") matchacc_TargetStats.Name = "matchacc_TargetStats" matchacc_TargetStats.Parent = game.CoreGui matchacc_TargetStats.ZIndexBehavior = Enum.ZIndexBehavior.Sibling Background.Name = "Background" Background.Parent = matchacc_TargetStats Background.BackgroundColor3 = Color3.fromRGB(255, 255, 255) Background.BorderSizePixel = 0 Background.Draggable = true Background.Active = true Background.Position = UDim2.new(0.388957828, 0, 0.700122297, 0) Background.Size = UDim2.new(0, 358, 0, 71) Background.Visible = false Picture.Name = "Picture" Picture.Parent = Background Picture.BackgroundColor3 = Color3.fromRGB(255, 255, 255) Picture.BorderSizePixel = 0 Picture.Position = UDim2.new(0.0279329624, 0, 0.0704225376, 0) Picture.Size = UDim2.new(0, 59, 0, 59) Picture.Transparency = 1 Picture.Image = "rbxasset://textures/ui/GuiImagePlaceholder.png" Top.Name = "Top" Top.Parent = Background Top.BackgroundColor3 = Color3.fromRGB(255, 255, 255) Top.BorderSizePixel = 0 Top.Position = UDim2.new(0, 0, -0.101449274, 0) Top.Size = UDim2.new(0, 358, 0, 7) UIGradient.Color = ColorSequence.new{ColorSequenceKeypoint.new(0.00, color_targethud), ColorSequenceKeypoint.new(1.00, Color3.fromRGB(120, 255, 59))} UIGradient.Rotation = 90 UIGradient.Parent = Top UIGradient_2.Color = ColorSequence.new{ColorSequenceKeypoint.new(0.00, color_targethud), ColorSequenceKeypoint.new(1.00, Color3.fromRGB(0, 0, 0))} UIGradient_2.Rotation = 90 UIGradient_2.Parent = Background HealthBarBackground.Name = "HealthBarBackground" HealthBarBackground.Parent = Background HealthBarBackground.BackgroundColor3 = Color3.fromRGB(255, 255, 255) HealthBarBackground.BorderSizePixel = 0 HealthBarBackground.Position = UDim2.new(0.215083793, 0, 0.348234326, 0) HealthBarBackground.Size = UDim2.new(0, 270, 0, 19) HealthBarBackground.Transparency = 1 UIGradient_3.Color = ColorSequence.new{ColorSequenceKeypoint.new(0.00, Color3.fromRGB(58, 58, 58)), ColorSequenceKeypoint.new(1.00, Color3.fromRGB(30, 30, 30))} UIGradient_3.Rotation = 90 UIGradient_3.Parent = HealthBarBackground HealthBar.Name = "HealthBar" HealthBar.Parent = HealthBarBackground HealthBar.BackgroundColor3 = Color3.fromRGB(255, 255, 255) HealthBar.BorderSizePixel = 0 HealthBar.Position = UDim2.new(-0.00336122862, 0, 0.164894029, 0) HealthBar.Size = UDim2.new(0, 130, 0, 19) UIGradient_4.Color = ColorSequence.new{ColorSequenceKeypoint.new(0.00, color_targethud), ColorSequenceKeypoint.new(1.00, Color3.fromRGB(120, 255, 50))} UIGradient_4.Rotation = 90 UIGradient_4.Parent = HealthBar NameOfTarget.Name = "NameOfTarget" NameOfTarget.Parent = Background NameOfTarget.BackgroundColor3 = Color3.fromRGB(255, 255, 255) NameOfTarget.BackgroundTransparency = 1.000 NameOfTarget.Position = UDim2.new(0.220670387, 0, 0.0704225376, 0) NameOfTarget.Size = UDim2.new(0, 268, 0, 19) NameOfTarget.Font = Enum.Font.Code NameOfTarget.TextColor3 = Color3.fromRGB(255, 255, 255) NameOfTarget.TextScaled = true NameOfTarget.TextSize = 14.000 NameOfTarget.TextStrokeTransparency = 0.000 NameOfTarget.TextWrapped = true -- Update logic local IsAlive = function(GetPlayer) return GetPlayer and GetPlayer.Character and GetPlayer.Character:FindFirstChild("HumanoidRootPart") ~= nil and GetPlayer.Character:FindFirstChild("Humanoid") ~= nil and GetPlayer.Character:FindFirstChild("Head") ~= nil and true or false end RunService.Heartbeat:Connect(function() if matchacc.TargetAim.TargetStats and matchacc.TargetAim.Enabled then local targetName = matchacc.TargetAim.Target local target = players:FindFirstChild(targetName) if not target or not target.Character then Background.Visible = false return end if target and IsAlive(target) then Background.Visible = true NameOfTarget.Text = tostring(target.Character.Humanoid.DisplayName).." ["..tostring(target.Name).."]" Picture.Image = "rbxthumb://type=AvatarHeadShot&id=" ..target.UserId.. "&w=420&h=420" HealthBar:TweenSize(UDim2.new(target.Character.Humanoid.Health / target.Character.Humanoid.MaxHealth, 0, 1, 0), "In", "Linear", 0.4) end else Background.Visible = false end end) TargetAimTab:AddToggle('Highlight', { Text = 'Highlight', Default = false, Callback = function(Value) matchacc.TargetAim.Highlight = Value end }):AddColorPicker('HighlightOutline', { Default = matchacc.TargetAim.HighlightOutlineColor, Title = 'Outline Color', Callback = function(Value) matchacc.TargetAim.HighlightOutlineColor = Value end }) local healthConnections = {} local function connectHealth(target) if healthConnections[target] then return end local hum = target.Character and target.Character:FindFirstChild("Humanoid") if not hum then return end healthConnections[target] = hum.HealthChanged:Connect(function(newHP) local highlight = target.Character and target.Character:FindFirstChild("MatchaHighlight") if not highlight then return end -- health dropped highlight.OutlineColor = Color3.fromRGB(255,0,0) task.delay(0.5,function() if highlight and matchacc.TargetAim.Highlight then highlight.OutlineColor = matchacc.TargetAim.HighlightOutlineColor end end) end) end RunService.Heartbeat:Connect(function() local targetName = matchacc.TargetAim.Target local target = Players:FindFirstChild(targetName) -- cleanup for all players for _, plr in ipairs(Players:GetPlayers()) do local hl = plr.Character and plr.Character:FindFirstChild("MatchaHighlight") if hl and (not target or not matchacc.TargetAim.Highlight or plr ~= target) then hl:Destroy() -- disconnect health listener if healthConnections[plr] then healthConnections[plr]:Disconnect() healthConnections[plr] = nil end end end if not matchacc.TargetAim.Highlight or not target or not target.Character then return end local hum = target.Character:FindFirstChild("Humanoid") if not hum then return end local highlight = target.Character:FindFirstChild("MatchaHighlight") if not highlight then highlight = Instance.new("Highlight") highlight.Name = "MatchaHighlight" highlight.FillTransparency = 1 highlight.OutlineColor = matchacc.TargetAim.HighlightOutlineColor highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop highlight.Adornee = target.Character highlight.Parent = target.Character connectHealth(target) end end) TargetAimTab:AddToggle('DotCircle', { Text = 'Dot Circle', Default = false, Callback = function(Value) matchacc.TargetAim.DotCircle = Value DotCircle.Visible = Value and matchacc.TargetAim.Enabled end }):AddColorPicker('DotCircleColor', { Default = Color3.fromRGB(255, 255, 255), Title = 'Dot Color', Callback = function(Value) DotCircle.Color = Value end }) TargetAimTab:AddToggle('Tracer', { Text = 'Tracer', Default = false, Callback = function(Value) matchacc.TargetAim.Tracer = Value tracer.Visible = false tracerOutline.Visible = false end }):AddColorPicker('TracerFill', { Default = matchacc.TargetAim.TracerFillColor, Title = 'Fill Color', Callback = function(Value) matchacc.TargetAim.TracerFillColor = Value tracer.Color = Value end }):AddColorPicker('TracerOutline', { Default = matchacc.TargetAim.TracerOutlineColor, Title = 'Outline Color', Callback = function(Value) matchacc.TargetAim.TracerOutlineColor = Value tracerOutline.Color = Value end }) TargetAimTab:AddDropdown('TracerPosition', { Values = {'Mouse', 'Tool'}, Default = 1, Multi = false, Text = 'Tracer Position', Callback = function(Value) matchacc.TargetAim.TracerPosition = Value end }) TargetAimTab:AddToggle('LookAt', { Text = 'Look At', Default = false, Callback = function(Value) matchacc.TargetAim.LookAt = Value end }) TargetAimTab:AddButton('Teleport to Target', function() local targetName = matchacc.TargetAim.Target -- Sử dụng target từ TargetAim if not targetName or targetName == "" or targetName == "None" then Library:Notify("Matcha.cc - No target from TargetAim!", 3) return end local targetPlayer = Players:FindFirstChild(targetName) if not targetPlayer or not targetPlayer.Character or not targetPlayer.Character:FindFirstChild("HumanoidRootPart") then Library:Notify("Matcha.cc - Target not found or no character!", 3) return end local hrp = localPlayer.Character and localPlayer.Character:FindFirstChild("HumanoidRootPart") if not hrp then Library:Notify("Matcha.cc - Your character not loaded!", 3) return end hrp.CFrame = targetPlayer.Character.HumanoidRootPart.CFrame * CFrame.new(0, 0, -3) -- đứng sau lưng target 3 stud Library:Notify("Teleported to " .. targetName, 2) end) TargetAimTab:AddToggle('AutoKillEnabled', { Text = 'AutoKill', Default = false, Callback = function(Value) matchacc.TargetAim.AutoKill = Value end }):AddKeyPicker('AutoKillKey', { Default = 'none', Text = 'Auto Kill', Mode = 'Toggle', Callback = function(Value) matchacc.TargetAim.AutoKill = Value end }) TargetAimTab:AddToggle('AutoKillEnabled', { Text = 'Spoofer (Autokill, Strafe)', Default = false, Callback = function(Value) matchacc.TargetAim.Spoofer = Value end }) TargetAimTab:AddToggle('ToggleStrafe', { Text = 'Strafe', Default = false, Callback = function(Value) matchacc.TargetAim.ToggleStrafe = Value end }):AddKeyPicker('StrafeKey', { Default = 'Z', Text = 'Strafe', Mode = 'Toggle', Callback = function(Value) if matchacc.TargetAim.ToggleStrafe then matchacc.TargetAim.Strafe = Value if Value then Library:Notify("Strafe: ON", 2) else Library:Notify("Strafe: OFF", 2) end end end }) local voldBypassEnabled = false TargetAimTab:AddToggle('VoldBypass', { Text = 'Vold Bypass (Strafe + Autokill)', Default = false, Tooltip = 'when target in void then stop strafe or autokill', Callback = function(Value) voldBypassEnabled = Value -- Chỉ set value, không connect Heartbeat end }) TargetAimTab:AddToggle('VisualizeStrafe', { Text = 'Visualize Strafe', Default = false, Callback = function(Value) matchacc.TargetAim.VisualizeStrafe = Value end }):AddColorPicker('VisInline', { Default = matchacc.TargetAim.VisualizeStrafeInlineColor, Title = 'Inline Color', Callback = function(Value) matchacc.TargetAim.VisualizeStrafeInlineColor = Value BodyCloneHighlight.FillColor = Value end }):AddColorPicker('VisOutline', { Default = matchacc.TargetAim.VisualizeStrafeOutlineColor, Title = 'Outline Color', Callback = function(Value) matchacc.TargetAim.VisualizeStrafeOutlineColor = Value BodyCloneHighlight.OutlineColor = Value end }) TargetAimTab:AddDropdown('StrafeMethod', { Values = {'Orbit', 'Randomize'}, Default = 2, Multi = false, Text = 'Strafe Method', Callback = function(Value) matchacc.TargetAim.StrafeMethod = Value end }) TargetAimTab:AddSlider('StrafePrediction', { Text = 'Strafe Prediction', Default = 0.1, Min = 0, Max = 1, Rounding = 2, Callback = function(Value) matchacc.TargetAim.StrafePrediction = Value end }) TargetAimTab:AddToggle('AutoStomp', { Text = 'Auto Stomp', Default = false, Callback = function(Value) matchacc.TargetAim.AutoStomp = Value end }) local targetAimSpectateConnection TargetAimTab:AddToggle('SpectateTarget', { Text = 'Spectate Target', Default = false, Callback = function(Value) matchacc.TargetAim.SpectateTarget = Value if Value then if matchacc.TargetAim.Target == "None" then Library:Notify( "Matcha.cc - please select a target before using 'Spectate Target'.", 3 ) Toggles.SpectateTarget.Value = false matchacc.TargetAim.SpectateTarget = false return end if targetAimSpectateConnection then targetAimSpectateConnection:Disconnect() end targetAimSpectateConnection = RunService.Heartbeat:Connect(function() local targetName = matchacc.TargetAim.Target -- nếu target bị clear if targetName == "None" then workspace.CurrentCamera.CameraSubject = localPlayer.Character and localPlayer.Character:FindFirstChild("Humanoid") Toggles.SpectateTarget.Value = false matchacc.TargetAim.SpectateTarget = false return end local targetPlayer = Players:FindFirstChild(targetName) if not targetPlayer then return end local char = targetPlayer.Character local hum = char and char:FindFirstChild("Humanoid") -- có humanoid & còn sống → spectate if hum and hum.Health > 0 then workspace.CurrentCamera.CameraSubject = hum else -- target chết → tạm trả camera về local, CHỜ respawn workspace.CurrentCamera.CameraSubject = localPlayer.Character and localPlayer.Character:FindFirstChild("Humanoid") end end) else if targetAimSpectateConnection then targetAimSpectateConnection:Disconnect() targetAimSpectateConnection = nil end workspace.CurrentCamera.CameraSubject = localPlayer.Character and localPlayer.Character:FindFirstChild("Humanoid") end end }):AddKeyPicker('SpectateKey', { Default = 'none', SyncToggleState = true, Mode = 'Toggle', Text = 'Spectate Target', Callback = function(Value) Toggles.SpectateTarget.Value = Value end }) local HitEffectsGroup = Tabs.Main:AddLeftGroupbox('Hit Effects') HitEffectsGroup:AddToggle('HitSkeleton', { Text = 'Hit Skeleton', Default = false, Callback = function(Value) matchacc.HitEffects.HitSkeleton.Enabled = Value end }):AddColorPicker('HitSkeletonColor', { Default = Color3.fromRGB(255, 255, 255), Title = 'Skeleton Color', Callback = function(Value) matchacc.HitEffects.HitSkeleton.Color = Value end }) HitEffectsGroup:AddToggle('HitChamsEnabled', { Text = 'Hit Chams', Default = false, Callback = function(Value) matchacc.HitEffects.HitChams.Enabled = Value end }):AddColorPicker('HitChamsColor', { Default = matchacc.HitEffects.HitChams.Color, Title = 'Hit Chams Color', Callback = function(Value) matchacc.HitEffects.HitChams.Color = Value end }) HitEffectsGroup:AddSlider('HitChamsLifetime', { Text = 'Hit Chams and skeleton Lifetime (sec)', Min = 1, Max = 10, Default = matchacc.HitEffects.HitChams.Lifetime, Rounding = 1, Callback = function(Value) matchacc.HitEffects.HitChams.Lifetime = Value end }) HitEffectsGroup:AddSlider('HitChamsTransparency', { Text = 'Hit Chams and skeleton Transparency', Min = 0, Max = 1, Default = matchacc.HitEffects.HitChams.Transparency, Rounding = 2, Callback = function(Value) matchacc.HitEffects.HitChams.Transparency = Value end }) HitEffectsGroup:AddDropdown('HitChamsMaterial', { Values = {'Neon', 'ForceField'}, Default = matchacc.HitEffects.HitChams.Material == "Neon" and 1 or 2, Multi = false, Text = 'Hit Chams Material', Callback = function(Value) matchacc.HitEffects.HitChams.Material = Value end }) HitEffectsGroup:AddToggle('HitEffectEnabled', { Text = 'Hit Effect', Default = false, Callback = function(Value) matchacc.HitEffects.HitEffect.Enabled = Value end }):AddColorPicker('HitEffectColor', { Default = matchacc.HitEffects.HitEffect.Color, Title = 'Effect Color', Callback = function(Value) matchacc.HitEffects.HitEffect.Color = Value end }) HitEffectsGroup:AddDropdown('HitEffectType', { Values = {"Cosmic Explosion", "Coom", "Slash", "Atomic Slash", "Thunder", "Electric", "Aura"}, Default = "Coom", Multi = false, Text = 'Effect Type', Callback = function(Value) matchacc.HitEffects.HitEffect.Type = Value end }) local Workspace = game:GetService("Workspace") -- Hàm tạo Atomic Slash Effect (tạo Part và Attachment một lần, clone khi dùng để tiết kiệm) local function CreateAtomicSlashEffect() local Part = Instance.new("Part") Part.Parent = Workspace -- Parent vào Workspace thay vì ReplicatedStorage để dễ trigger local Attachment = Instance.new("Attachment") Attachment.Parent = Part local Crescents = Instance.new("ParticleEmitter") Crescents.Name = "Crescents" Crescents.Lifetime = NumberRange.new(0.19, 0.38) Crescents.SpreadAngle = Vector2.new(-360, 360) Crescents.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0, 1), NumberSequenceKeypoint.new(0.1932907, 0), NumberSequenceKeypoint.new(0.778754, 0), NumberSequenceKeypoint.new(1, 1)}) Crescents.LightEmission = 10 Crescents.Color = ColorSequence.new(Color3.fromRGB(160, 96, 255)) Crescents.VelocitySpread = -360 Crescents.Speed = NumberRange.new(0.0826858, 0.0826858) Crescents.Brightness = 4 Crescents.Size = NumberSequence.new({NumberSequenceKeypoint.new(0, 0), NumberSequenceKeypoint.new(0.398774, 8.8026266, 2.2834616), NumberSequenceKeypoint.new(1, 11.477972, 1.860431)}) Crescents.Enabled = false Crescents.ZOffset = 0.4542207 Crescents.Rate = 50 Crescents.Texture = "rbxassetid://12509373457" Crescents.RotSpeed = NumberRange.new(800, 1000) Crescents.Rotation = NumberRange.new(-360, 360) Crescents.Orientation = Enum.ParticleOrientation.VelocityPerpendicular Crescents.Parent = Attachment local Glow = Instance.new("ParticleEmitter") Glow.Name = "Glow" Glow.Lifetime = NumberRange.new(0.16, 0.16) Glow.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0, 1), NumberSequenceKeypoint.new(0.1421725, 0.6182796), NumberSequenceKeypoint.new(1, 1)}) Glow.Color = ColorSequence.new(Color3.fromRGB(173, 82, 252)) Glow.Speed = NumberRange.new(0, 0) Glow.Brightness = 5 Glow.Size = NumberSequence.new(9.1873131, 16.5032349) Glow.Enabled = false Glow.ZOffset = -0.0565939 Glow.Rate = 50 Glow.Texture = "rbxassetid://8708637750" Glow.Parent = Attachment local Effect = Instance.new("ParticleEmitter") Effect.Name = "Effect" Effect.Lifetime = NumberRange.new(0.4, 0.7) Effect.FlipbookLayout = Enum.ParticleFlipbookLayout.Grid4x4 Effect.SpreadAngle = Vector2.new(360, -360) Effect.LockedToPart = true Effect.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0, 1), NumberSequenceKeypoint.new(0.1070999, 0.19375), NumberSequenceKeypoint.new(0.7761194, 0.88125), NumberSequenceKeypoint.new(1, 1)}) Effect.LightEmission = 1 Effect.Color = ColorSequence.new(Color3.fromRGB(173, 82, 252)) Effect.Drag = 1 Effect.VelocitySpread = 360 Effect.Speed = NumberRange.new(0.0036749, 0.0036749) Effect.Brightness = 2.0999999 Effect.Size = NumberSequence.new(6.9680691, 9.9213123) Effect.Enabled = false Effect.ZOffset = 0.4777403 Effect.Rate = 50 Effect.Texture = "rbxassetid://9484012464" Effect.RotSpeed = NumberRange.new(-150, -150) Effect.FlipbookMode = Enum.ParticleFlipbookMode.OneShot Effect.Rotation = NumberRange.new(50, 50) Effect.Orientation = Enum.ParticleOrientation.VelocityPerpendicular Effect.Parent = Attachment local Gradient1 = Instance.new("ParticleEmitter") Gradient1.Name = "Gradient1" Gradient1.Lifetime = NumberRange.new(0.3, 0.3) Gradient1.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0, 1), NumberSequenceKeypoint.new(0.15, 0.3), NumberSequenceKeypoint.new(1, 1)}) Gradient1.Color = ColorSequence.new(Color3.fromRGB(173, 82, 252)) Gradient1.Speed = NumberRange.new(0, 0) Gradient1.Brightness = 6 Gradient1.Size = NumberSequence.new(0, 11.6261358) Gradient1.Enabled = false Gradient1.ZOffset = 0.9187313 Gradient1.Rate = 50 Gradient1.Texture = "rbxassetid://8196169974" Gradient1.Parent = Attachment local Shards = Instance.new("ParticleEmitter") Shards.Name = "Shards" Shards.Lifetime = NumberRange.new(0.19, 0.7) Shards.SpreadAngle = Vector2.new(-90, 90) Shards.Color = ColorSequence.new(Color3.fromRGB(179, 145, 253)) Shards.Drag = 10 Shards.Squash = NumberSequence.new({NumberSequenceKeypoint.new(0, 1), NumberSequenceKeypoint.new(0.5705521, 0.4125001), NumberSequenceKeypoint.new(1, -0.9375)}) Shards.Speed = NumberRange.new(97.7530136, 146.9970093) Shards.Brightness = 4 Shards.Size = NumberSequence.new({NumberSequenceKeypoint.new(0, 0), NumberSequenceKeypoint.new(0.284774, 1.2389833, 0.1534118), NumberSequenceKeypoint.new(1, 0)}) Shards.Enabled = false Shards.Acceleration = Vector3.new(0, -56.961341857910156, 0) Shards.ZOffset = 0.5705321 Shards.Rate = 50 Shards.Texture = "rbxassetid://8030734851" Shards.Rotation = NumberRange.new(90, 90) Shards.Orientation = Enum.ParticleOrientation.VelocityParallel Shards.Parent = Attachment return Attachment end local function CreateAuraEffect() local Part = Instance.new("Part") Part.Parent = Workspace local Attachment = Instance.new("Attachment") Attachment.Parent = Part -- Spike Aura ------ local SPIKES = Instance.new("ParticleEmitter") SPIKES.Name = "SPIKES" SPIKES.Acceleration = Vector3.new(0, 100, 0) SPIKES.Color = ColorSequence.new(Color3.new(0, 1, 0), Color3.new(0, 1, 0)) SPIKES.Drag = 3 SPIKES.EmissionDirection = Enum.NormalId.Right SPIKES.Lifetime = NumberRange.new(0.25, 0.5) SPIKES.LightEmission = 1 SPIKES.Orientation = Enum.ParticleOrientation.VelocityParallel SPIKES.Rate = 100 SPIKES.Rotation = NumberRange.new(-90, -90) SPIKES.Size = NumberSequence.new({ NumberSequenceKeypoint.new(0, 2, 0), NumberSequenceKeypoint.new(0.25, 3, 0.25), NumberSequenceKeypoint.new(0.653846, 2.0625, 0.164957), NumberSequenceKeypoint.new(1, 0, 0) }) SPIKES.Speed = NumberRange.new(10, 25) SPIKES.SpreadAngle = Vector2.new(0, 180) SPIKES.Squash = NumberSequence.new({ NumberSequenceKeypoint.new(0, -0.25), NumberSequenceKeypoint.new(1, 0.5), NumberSequenceKeypoint.new(1, 0.25) }) SPIKES.Texture = "rbxassetid://7451697448" SPIKES.Transparency = NumberSequence.new({ NumberSequenceKeypoint.new(0, 1), NumberSequenceKeypoint.new(0.25, 0), NumberSequenceKeypoint.new(1, 1) }) SPIKES.Enabled = false SPIKES.Parent = Attachment local SPECKS = Instance.new("ParticleEmitter") SPECKS.Name = "SPECKS" SPECKS.Acceleration = Vector3.new(0, -25, 0) SPECKS.Brightness = 2 SPECKS.Color = ColorSequence.new(Color3.new(0, 1, 0), Color3.new(0, 1, 0)) SPECKS.Drag = 5 SPECKS.Lifetime = NumberRange.new(0.375, 0.625) SPECKS.LightEmission = 1 SPECKS.Rate = 100 SPECKS.RotSpeed = NumberRange.new(-45, 45) SPECKS.Rotation = NumberRange.new(-360, 360) SPECKS.Size = NumberSequence.new({ NumberSequenceKeypoint.new(0, 0.25), NumberSequenceKeypoint.new(1, 0) }) SPECKS.Speed = NumberRange.new(25, 50) SPECKS.SpreadAngle = Vector2.new(45, 45) SPECKS.Squash = NumberSequence.new({ NumberSequenceKeypoint.new(0, 0), NumberSequenceKeypoint.new(1, 1) }) SPECKS.Texture = "rbxassetid://4509687978" SPECKS.Transparency = NumberSequence.new({ NumberSequenceKeypoint.new(0, 1), NumberSequenceKeypoint.new(0.25, 0.2), NumberSequenceKeypoint.new(1, 1) }) SPECKS.Enabled = false SPECKS.Parent = Attachment local GLOW = Instance.new("ParticleEmitter") GLOW.Name = "GLOW" GLOW.Acceleration = Vector3.new(0, 5, 0) GLOW.Color = ColorSequence.new(Color3.new(0, 1, 0), Color3.new(0, 1, 0)) GLOW.Lifetime = NumberRange.new(0.5, 1) GLOW.LightEmission = 1 GLOW.Rate = 50 GLOW.Rotation = NumberRange.new(-360, 360) GLOW.Size = NumberSequence.new({ NumberSequenceKeypoint.new(0, 8), NumberSequenceKeypoint.new(1, 3) }) GLOW.Speed = NumberRange.new(10, 25) GLOW.Texture = "rbxassetid://4509687978" GLOW.Transparency = NumberSequence.new({ NumberSequenceKeypoint.new(0, 1), NumberSequenceKeypoint.new(0.5, 0.95), NumberSequenceKeypoint.new(1, 1) }) GLOW.ZOffset = -1 GLOW.Enabled = false GLOW.Parent = Attachment return Attachment end local function TriggerAura(HitPart, Color) local TempAttach = CreateAuraEffect():Clone() TempAttach.Parent = HitPart or Workspace.CurrentCamera for _, emitter in ipairs(TempAttach:GetChildren()) do if emitter:IsA("ParticleEmitter") then emitter.Color = ColorSequence.new(Color or Color3.fromRGB(160, 96, 255)) emitter.Enabled = true end end task.delay(2, function() for _, emitter in ipairs(TempAttach:GetChildren()) do emitter.Enabled = false end TempAttach:Destroy() end) end local function CreateThunderEffect() local Part = Instance.new("Part") Part.Parent = Workspace local Attachment = Instance.new("Attachment") Attachment.Parent = Part local RESIDUE = Instance.new('ParticleEmitter') RESIDUE.Name = "RESIDUE" RESIDUE.Acceleration = Vector3.new(0, -25, 0) RESIDUE.Color = ColorSequence.new{ ColorSequenceKeypoint.new(0, Color3.fromRGB(0, 105, 170)), ColorSequenceKeypoint.new(1, Color3.fromRGB(0, 105, 170)) } RESIDUE.Drag = 2 RESIDUE.Lifetime = NumberRange.new(0.25, 0.5) RESIDUE.LightEmission = 1 RESIDUE.Orientation = Enum.ParticleOrientation.VelocityParallel RESIDUE.Rate = 100 RESIDUE.Rotation = NumberRange.new(90, 90) RESIDUE.Size = NumberSequence.new{ NumberSequenceKeypoint.new(0, 2), NumberSequenceKeypoint.new(1, 0) } RESIDUE.Speed = NumberRange.new(25, 50) RESIDUE.SpreadAngle = Vector2.new(-90, 90) RESIDUE.Squash = NumberSequence.new{ NumberSequenceKeypoint.new(0, 1), NumberSequenceKeypoint.new(1, 0) } RESIDUE.Texture = "rbxassetid://4509687978" RESIDUE.Transparency = NumberSequence.new{ NumberSequenceKeypoint.new(0, 0), NumberSequenceKeypoint.new(0.25, 1), NumberSequenceKeypoint.new(1, 1) } local ELECTRIC = Instance.new('ParticleEmitter') ELECTRIC.Name = "ELECTRIC" ELECTRIC.Brightness = 3 ELECTRIC.Color = ColorSequence.new{ ColorSequenceKeypoint.new(0, Color3.fromRGB(0, 134, 199)), ColorSequenceKeypoint.new(1, Color3.fromRGB(0, 134, 199)) } ELECTRIC.FlipbookLayout = Enum.ParticleFlipbookLayout.Grid8x8 ELECTRIC.FlipbookMode = Enum.ParticleFlipbookMode.OneShot ELECTRIC.Lifetime = NumberRange.new(0.5, 1) ELECTRIC.LightEmission = 2 ELECTRIC.Orientation = Enum.ParticleOrientation.FacingCameraWorldUp ELECTRIC.Rate = 12 ELECTRIC.Size = NumberSequence.new{ NumberSequenceKeypoint.new(0, 25), NumberSequenceKeypoint.new(1, 0) } ELECTRIC.Speed = NumberRange.new(0, 0) ELECTRIC.SpreadAngle = Vector2.new(-360, 360) ELECTRIC.Texture = "rbxassetid://10547286472" ELECTRIC.Transparency = NumberSequence.new{ NumberSequenceKeypoint.new(0, 0), NumberSequenceKeypoint.new(0.25, 1), NumberSequenceKeypoint.new(1, 1) } RESIDUE.Parent = Attachment RESIDUE.Enabled = true ELECTRIC.Parent = Attachment ELECTRIC.Enabled = true local SMOKE = Instance.new("ParticleEmitter") SMOKE.Name = "SMOKE" SMOKE.Acceleration = Vector3.new(0, 5, 1) SMOKE.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, Color3.new(0.196078, 0.196078, 0.196078)), ColorSequenceKeypoint.new(1, Color3.new(0.196078, 0.196078, 0.196078)) }) SMOKE.Drag = 1 SMOKE.FlipbookFramerate = NumberRange.new(25, 25) SMOKE.FlipbookLayout = Enum.ParticleFlipbookLayout.Grid8x8 SMOKE.LightInfluence = 1 SMOKE.Rate = 10 SMOKE.RotSpeed = NumberRange.new(-15, 15) SMOKE.Rotation = NumberRange.new(-360, 360) SMOKE.Size = NumberSequence.new({ NumberSequenceKeypoint.new(0, 4, 0), NumberSequenceKeypoint.new(1, 8, 2) }) SMOKE.Speed = NumberRange.new(1, 1) SMOKE.Texture = "rbxassetid://8073306083" SMOKE.Transparency = NumberSequence.new({ NumberSequenceKeypoint.new(0, 1, 0), NumberSequenceKeypoint.new(0.5, 0.75, 0), NumberSequenceKeypoint.new(1, 1, 0) }) SMOKE.Parent = Attachment SMOKE.Enabled = false return Attachment end local function TriggerThunder(HitPart, Color) local TempAttach = CreateThunderEffect():Clone() TempAttach.Parent = HitPart or Workspace.CurrentCamera for _, emitter in ipairs(TempAttach:GetChildren()) do if emitter:IsA("ParticleEmitter") then emitter.Color = ColorSequence.new(Color or Color3.fromRGB(160, 96, 255)) emitter.Enabled = true end end task.delay(2, function() for _, emitter in ipairs(TempAttach:GetChildren()) do emitter.Enabled = false end TempAttach:Destroy() end) end -- Hàm tạo Coom Effect local function CreateCoomEffect() local Part = Instance.new("Part") Part.Parent = Workspace -- Parent vào Workspace local Attachment = Instance.new("Attachment") Attachment.Parent = Part local Foam = Instance.new("ParticleEmitter") Foam.Name = "Foam" Foam.LightInfluence = 0.5 Foam.Lifetime = NumberRange.new(1, 1) Foam.SpreadAngle = Vector2.new(360, -360) Foam.VelocitySpread = 360 Foam.Squash = NumberSequence.new(1) Foam.Speed = NumberRange.new(20, 20) Foam.Brightness = 2.5 Foam.Size = NumberSequence.new({NumberSequenceKeypoint.new(0, 0), NumberSequenceKeypoint.new(0.1016692, 0.6508875, 0.6508875), NumberSequenceKeypoint.new(0.6494689, 1.4201183, 0.4127519), NumberSequenceKeypoint.new(1, 0)}) Foam.Enabled = false Foam.Acceleration = Vector3.new(0, -66.04029846191406, 0) Foam.Rate = 100 Foam.Texture = "rbxassetid://8297030850" Foam.Rotation = NumberRange.new(-90, -90) Foam.Orientation = Enum.ParticleOrientation.VelocityParallel Foam.Parent = Attachment return Attachment end -- Trigger Atomic Slash local function TriggerAtomicSlash(HitPart, Color) local TempAttach = CreateAtomicSlashEffect():Clone() TempAttach.Parent = HitPart or Workspace.CurrentCamera for _, emitter in ipairs(TempAttach:GetChildren()) do if emitter:IsA("ParticleEmitter") then emitter.Color = ColorSequence.new(Color or Color3.fromRGB(160, 96, 255)) emitter.Enabled = true end end task.delay(2, function() for _, emitter in ipairs(TempAttach:GetChildren()) do emitter.Enabled = false end TempAttach:Destroy() end) end -- Trigger Coom local function TriggerCoom(HitPart, Color) local TempAttach = CreateCoomEffect():Clone() TempAttach.Parent = HitPart or Workspace.CurrentCamera local foam = TempAttach:FindFirstChild("Foam") if foam then foam.Color = ColorSequence.new(Color or Color3.fromRGB(255, 255, 255)) foam.Enabled = true task.delay(2, function() foam.Enabled = false TempAttach:Destroy() end) end end local function CreateCosmicExplosionEffect() local Part = Instance.new("Part") Part.Parent = Workspace local Attachment = Instance.new("Attachment") Attachment.Name = "Attachment" Attachment.Parent = Part local Glow = Instance.new("ParticleEmitter") Glow.Name = "Glow" Glow.Lifetime = NumberRange.new(0.16, 0.16) Glow.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0, 1), NumberSequenceKeypoint.new(0.1421725, 0.6182796), NumberSequenceKeypoint.new(1, 1)}) Glow.Color = ColorSequence.new(Color3.fromRGB(173, 82, 252)) Glow.Speed = NumberRange.new(0, 0) Glow.Brightness = 5 Glow.Size = NumberSequence.new(9.1873131, 16.5032349) Glow.Enabled = false Glow.ZOffset = -0.0565939 Glow.Rate = 50 Glow.Texture = "rbxassetid://8708637750" Glow.Parent = Attachment local Effect = Instance.new("ParticleEmitter") Effect.Name = "Effect" Effect.Lifetime = NumberRange.new(0.4, 0.7) Effect.FlipbookLayout = Enum.ParticleFlipbookLayout.Grid4x4 Effect.SpreadAngle = Vector2.new(360, -360) Effect.LockedToPart = true Effect.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0, 1), NumberSequenceKeypoint.new(0.1070999, 0.19375), NumberSequenceKeypoint.new(0.7761194, 0.88125), NumberSequenceKeypoint.new(1, 1)}) Effect.LightEmission = 1 Effect.Color = ColorSequence.new(Color3.fromRGB(173, 82, 252)) Effect.Drag = 1 Effect.VelocitySpread = 360 Effect.Speed = NumberRange.new(0.0036749, 0.0036749) Effect.Brightness = 2.0999999 Effect.Size = NumberSequence.new(6.9680691, 9.9213123) Effect.Enabled = false Effect.ZOffset = 0.4777403 Effect.Rate = 50 Effect.Texture = "rbxassetid://9484012464" Effect.RotSpeed = NumberRange.new(-150, -150) Effect.FlipbookMode = Enum.ParticleFlipbookMode.OneShot Effect.Rotation = NumberRange.new(50, 50) Effect.Orientation = Enum.ParticleOrientation.VelocityPerpendicular Effect.Parent = Attachment local Gradient1 = Instance.new("ParticleEmitter") Gradient1.Name = "Gradient1" Gradient1.Lifetime = NumberRange.new(0.3, 0.3) Gradient1.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0, 1), NumberSequenceKeypoint.new(0.15, 0.3), NumberSequenceKeypoint.new(1, 1)}) Gradient1.Color = ColorSequence.new(Color3.fromRGB(173, 82, 252)) Gradient1.Speed = NumberRange.new(0, 0) Gradient1.Brightness = 6 Gradient1.Size = NumberSequence.new(0, 11.6261358) Gradient1.Enabled = false Gradient1.ZOffset = 0.9187313 Gradient1.Rate = 50 Gradient1.Texture = "rbxassetid://8196169974" Gradient1.Parent = Attachment local Shards = Instance.new("ParticleEmitter") Shards.Name = "Shards" Shards.Lifetime = NumberRange.new(0.19, 0.7) Shards.SpreadAngle = Vector2.new(-90, 90) Shards.Color = ColorSequence.new(Color3.fromRGB(173, 82, 252)) Shards.Drag = 10 Shards.VelocitySpread = -90 Shards.Squash = NumberSequence.new({NumberSequenceKeypoint.new(0, 1), NumberSequenceKeypoint.new(0.5705521, 0.4125001), NumberSequenceKeypoint.new(1, -0.9375)}) Shards.Speed = NumberRange.new(97.7530136, 146.9970093) Shards.Brightness = 4 Shards.Size = NumberSequence.new({NumberSequenceKeypoint.new(0, 0), NumberSequenceKeypoint.new(0.284774, 1.2389833, 0.1534118), NumberSequenceKeypoint.new(1, 0)}) Shards.Enabled = false Shards.Acceleration = Vector3.new(0, -56.961341857910156, 0) Shards.ZOffset = 0.5705321 Shards.Rate = 50 Shards.Texture = "rbxassetid://8030734851" Shards.Rotation = NumberRange.new(90, 90) Shards.Orientation = Enum.ParticleOrientation.VelocityParallel Shards.Parent = Attachment local Crescents = Instance.new("ParticleEmitter") Crescents.Name = "Crescents" Crescents.Lifetime = NumberRange.new(0.19, 0.38) Crescents.SpreadAngle = Vector2.new(-360, 360) Crescents.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0, 1), NumberSequenceKeypoint.new(0.1932907, 0), NumberSequenceKeypoint.new(0.778754, 0), NumberSequenceKeypoint.new(1, 1)}) Crescents.LightEmission = 10 Crescents.Color = ColorSequence.new(Color3.fromRGB(160, 96, 255)) Crescents.VelocitySpread = -360 Crescents.Speed = NumberRange.new(0.0826858, 0.0826858) Crescents.Brightness = 4 Crescents.Size = NumberSequence.new({NumberSequenceKeypoint.new(0, 0), NumberSequenceKeypoint.new(0.398774, 8.8026266, 2.2834616), NumberSequenceKeypoint.new(1, 11.477972, 1.860431)}) Crescents.Enabled = false Crescents.ZOffset = 0.4542207 Crescents.Rate = 50 Crescents.Texture = "rbxassetid://12509373457" Crescents.RotSpeed = NumberRange.new(800, 1000) Crescents.Rotation = NumberRange.new(-360, 360) Crescents.Orientation = Enum.ParticleOrientation.VelocityPerpendicular Crescents.Parent = Attachment local ParticleEmitter2 = Instance.new("ParticleEmitter") ParticleEmitter2.Name = "ParticleEmitter2" ParticleEmitter2.FlipbookFramerate = NumberRange.new(20, 20) ParticleEmitter2.Lifetime = NumberRange.new(0.19, 0.38) ParticleEmitter2.FlipbookLayout = Enum.ParticleFlipbookLayout.Grid4x4 ParticleEmitter2.SpreadAngle = Vector2.new(360, 360) ParticleEmitter2.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0, 1), NumberSequenceKeypoint.new(0.209842, 0.5), NumberSequenceKeypoint.new(0.503842, 0.263333), NumberSequenceKeypoint.new(0.799842, 0.5), NumberSequenceKeypoint.new(1, 1)}) ParticleEmitter2.LightEmission = 1 ParticleEmitter2.Color = ColorSequence.new(Color3.fromRGB(173, 82, 252)) ParticleEmitter2.VelocitySpread = 360 ParticleEmitter2.Speed = NumberRange.new(0.0161231, 0.0161231) ParticleEmitter2.Size = NumberSequence.new({NumberSequenceKeypoint.new(0, 4.3125), NumberSequenceKeypoint.new(0.3985056, 7.9375), NumberSequenceKeypoint.new(1, 10)}) ParticleEmitter2.Enabled = false ParticleEmitter2.ZOffset = 0.15 ParticleEmitter2.Rate = 100 ParticleEmitter2.Texture = "http://www.roblox.com/asset/?id=12394566430" ParticleEmitter2.FlipbookMode = Enum.ParticleFlipbookMode.OneShot ParticleEmitter2.Rotation = NumberRange.new(39, 999) ParticleEmitter2.Orientation = Enum.ParticleOrientation.VelocityParallel ParticleEmitter2.Parent = Attachment Part.Parent = workspace return Attachment end local function TriggerCosmicExplosion(HitPart, Color) local TempAttach = CreateCosmicExplosionEffect():Clone() TempAttach.Parent = HitPart or Workspace.CurrentCamera for _, emitter in ipairs(TempAttach:GetChildren()) do if emitter:IsA("ParticleEmitter") then emitter.Color = ColorSequence.new(Color or Color3.fromRGB(160, 96, 255)) emitter.Enabled = true end end task.delay(2, function() for _, emitter in ipairs(TempAttach:GetChildren()) do emitter.Enabled = false end TempAttach:Destroy() end) end local function electric() local Part = Instance.new("Part") Part.Parent = Workspace local Attachment = Instance.new("Attachment") Attachment.Parent = Part local ELECTRIC1 = Instance.new('ParticleEmitter') ELECTRIC1.Name = "ELECTRIC1" ELECTRIC1.Brightness = 5 ELECTRIC1.Color = ColorSequence.new(Color3.fromRGB(0, 134, 199)) ELECTRIC1.FlipbookLayout = Enum.ParticleFlipbookLayout.Grid8x8 ELECTRIC1.FlipbookMode = Enum.ParticleFlipbookMode.OneShot ELECTRIC1.Lifetime = NumberRange.new(1) ELECTRIC1.LightEmission = 1 ELECTRIC1.Rate = 5 ELECTRIC1.Size = NumberSequence.new(2) ELECTRIC1.Speed = NumberRange.new(0) ELECTRIC1.SpreadAngle = Vector2.new(-360, 360) ELECTRIC1.Texture = "http://www.roblox.com/asset/?id=12390063093" ELECTRIC1.Transparency = NumberSequence.new(0, 1) ELECTRIC1.Enabled = false ELECTRIC1.Parent = Attachment local ELECTRIC2 = Instance.new('ParticleEmitter') ELECTRIC2.Name = "ELECTRIC2" ELECTRIC2.Color = ColorSequence.new(Color3.fromRGB(0, 134, 199)) ELECTRIC2.FlipbookLayout = Enum.ParticleFlipbookLayout.Grid8x8 ELECTRIC2.FlipbookMode = Enum.ParticleFlipbookMode.OneShot ELECTRIC2.Lifetime = NumberRange.new(0.25, 0.5) ELECTRIC2.LightEmission = 1 ELECTRIC2.Rate = 25 ELECTRIC2.Rotation = NumberRange.new(-360, 360) ELECTRIC2.Size = NumberSequence.new(2) ELECTRIC2.Speed = NumberRange.new(0) ELECTRIC2.SpreadAngle = Vector2.new(-360, 360) ELECTRIC2.Texture = "http://www.roblox.com/asset/?id=12390081661" ELECTRIC2.Transparency = NumberSequence.new(0, 1) ELECTRIC2.Enabled = false ELECTRIC2.Parent = Attachment local ELECTRIC3 = Instance.new('ParticleEmitter') ELECTRIC3.Name = "ELECTRIC3" ELECTRIC3.Color = ColorSequence.new(Color3.fromRGB(0, 134, 199)) ELECTRIC3.FlipbookLayout = Enum.ParticleFlipbookLayout.Grid8x8 ELECTRIC3.FlipbookMode = Enum.ParticleFlipbookMode.OneShot ELECTRIC3.Lifetime = NumberRange.new(0.25, 0.5) ELECTRIC3.LightEmission = 1 ELECTRIC3.Rate = 25 ELECTRIC3.Rotation = NumberRange.new(-360, 360) ELECTRIC3.Size = NumberSequence.new(2) ELECTRIC3.Speed = NumberRange.new(0) ELECTRIC3.SpreadAngle = Vector2.new(-360, 360) ELECTRIC3.Texture = "http://www.roblox.com/asset/?id=12390081661" ELECTRIC3.Transparency = NumberSequence.new(0, 1) ELECTRIC3.Enabled = false ELECTRIC3.Parent = Attachment local Wave1 = Instance.new('ParticleEmitter') Wave1.Name = "Wave1" Wave1.Brightness = 10 Wave1.Color = ColorSequence.new(Color3.fromRGB(0, 170, 255)) Wave1.Lifetime = NumberRange.new(1) Wave1.LightEmission = 0.4 Wave1.Orientation = Enum.ParticleOrientation.VelocityPerpendicular Wave1.Rate = 10 Wave1.RotSpeed = NumberRange.new(200, 400) Wave1.Rotation = NumberRange.new(-180, 180) Wave1.Size = NumberSequence.new(3) Wave1.Speed = NumberRange.new(1, 3) Wave1.SpreadAngle = Vector2.new(10, -10) Wave1.Texture = "rbxassetid://8047533775" Wave1.Transparency = NumberSequence.new(0, 1) Wave1.Enabled = false Wave1.Parent = Attachment local ELECTRIC4 = Instance.new('ParticleEmitter') ELECTRIC4.Name = "ELECTRIC4" ELECTRIC4.Color = ColorSequence.new(Color3.fromRGB(0, 134, 199)) ELECTRIC4.FlipbookLayout = Enum.ParticleFlipbookLayout.Grid8x8 ELECTRIC4.FlipbookMode = Enum.ParticleFlipbookMode.OneShot ELECTRIC4.Lifetime = NumberRange.new(0.25, 0.5) ELECTRIC4.LightEmission = 1 ELECTRIC4.Rate = 25 ELECTRIC4.Rotation = NumberRange.new(-360, 360) ELECTRIC4.Size = NumberSequence.new(2) ELECTRIC4.Speed = NumberRange.new(0) ELECTRIC4.SpreadAngle = Vector2.new(-360, 360) ELECTRIC4.Texture = "http://www.roblox.com/asset/?id=12390081661" ELECTRIC4.Transparency = NumberSequence.new(0, 1) ELECTRIC4.Enabled = false ELECTRIC4.Parent = Attachment return Attachment end local function triggerelectric(HitPart, Color) local TempAttach = electric():Clone() TempAttach.Parent = HitPart or Workspace.CurrentCamera for _, emitter in ipairs(TempAttach:GetChildren()) do if emitter:IsA("ParticleEmitter") then emitter.Color = ColorSequence.new(Color or Color3.fromRGB(160, 96, 255)) emitter.Enabled = true end end task.delay(2, function() for _, emitter in ipairs(TempAttach:GetChildren()) do emitter.Enabled = false end TempAttach:Destroy() end) end local function slash() local Part = Instance.new("Part") Part.Parent = Workspace local Attachment = Instance.new("Attachment") Attachment.Parent = Part local Crescents = Instance.new("ParticleEmitter") Crescents.Name = "Crescents" Crescents.Lifetime = NumberRange.new(0.19, 0.38) Crescents.SpreadAngle = Vector2.new(-360, 360) Crescents.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0, 1), NumberSequenceKeypoint.new(0.1932907, 0), NumberSequenceKeypoint.new(0.778754, 0), NumberSequenceKeypoint.new(1, 1)}) Crescents.LightEmission = 10 Crescents.Color = ColorSequence.new({ColorSequenceKeypoint.new(0, Color3.fromRGB(160, 96, 255)), ColorSequenceKeypoint.new(0.3160622, Color3.fromRGB(160, 96, 255)), ColorSequenceKeypoint.new(0.5146805, Color3.fromRGB(154, 82, 255)), ColorSequenceKeypoint.new(1, Color3.fromRGB(160, 96, 255))}) Crescents.VelocitySpread = -360 Crescents.Speed = NumberRange.new(0.0826858, 0.0826858) Crescents.Brightness = 4 Crescents.Size = NumberSequence.new({NumberSequenceKeypoint.new(0, 0), NumberSequenceKeypoint.new(0.398774, 8.8026266, 2.2834616), NumberSequenceKeypoint.new(1, 11.477972, 1.860431)}) Crescents.Enabled = false Crescents.ZOffset = 0.4542207 Crescents.Rate = 50 Crescents.Texture = "rbxassetid://12509373457" Crescents.RotSpeed = NumberRange.new(800, 1000) Crescents.Rotation = NumberRange.new(-360, 360) Crescents.Orientation = Enum.ParticleOrientation.VelocityPerpendicular Crescents.Parent = Attachment Part.Parent = workspace return Attachment end local function triggerslash(HitPart, Color) local TempAttach = slash():Clone() TempAttach.Parent = HitPart or Workspace.CurrentCamera for _, emitter in ipairs(TempAttach:GetChildren()) do if emitter:IsA("ParticleEmitter") then emitter.Color = ColorSequence.new(Color or Color3.fromRGB(160, 96, 255)) emitter.Enabled = true end end task.delay(2, function() for _, emitter in ipairs(TempAttach:GetChildren()) do emitter.Enabled = false end TempAttach:Destroy() end) end -- Trigger Hit Effect tổng quát (thay thế hoặc thêm vào script hiện tại, gần HitChams) local function TriggerHitEffect(Player) if not matchacc.HitEffects.HitEffect.Enabled then return end if Player and Player.Character and Player.Character:FindFirstChild("HumanoidRootPart") then local HitPart = Player.Character.HumanoidRootPart -- Hoặc matchacc.TargetAim.HitPart nếu có local EffectType = matchacc.HitEffects.HitEffect.Type local EffectColor = matchacc.HitEffects.HitEffect.Color if EffectType == "Atomic Slash" then TriggerAtomicSlash(HitPart, EffectColor) end if EffectType == "Cosmic Explosion" then TriggerCosmicExplosion(HitPart, EffectColor) end if EffectType == "Coom" then TriggerCoom(HitPart, EffectColor) end if EffectType == "Thunder" then TriggerThunder(HitPart, EffectColor) end if EffectType == "Slash" then triggerslash(HitPart, EffectColor) end if EffectType == "Aura" then TriggerAura(HitPart, EffectColor) end if EffectType == "Electric" then triggerelectric(HitPart, EffectColor) end end end local TweenService = game:GetService("TweenService") local RaycastParams = RaycastParams.new() RaycastParams.FilterType = Enum.RaycastFilterType.Blacklist RaycastParams.IgnoreWater = true -- Settings local font = Enum.Font.SourceSansBold local baseSize = 40 local distance = 10000 local animationDuration = 3 local fadeDuration = 1 local maxOffset = 20 local isDamageNumbersEnabled = false local damageColor = Color3.fromRGB(255, 255, 255) -- Previous health of the nearest player local previousHealth = {} -- Function to check if a player is behind a wall local function isPlayerVisible(player) if not player.Character or not player.Character:FindFirstChild("Head") then return false end local head = player.Character.Head local origin = Camera.CFrame.Position local direction = (head.Position - origin).Unit * (head.Position - origin).Magnitude RaycastParams.FilterDescendantsInstances = {Players.LocalPlayer.Character} local result = workspace:Raycast(origin, direction, RaycastParams) return not result or result.Instance:IsDescendantOf(player.Character) end -- Function to get the player nearest to the cursor with visibility check local function getNearestToCursor() local mouseLocation = UserInputService:GetMouseLocation() local nearestPlayer local shortestDistance = math.huge for _, player in ipairs(Players:GetPlayers()) do if player ~= Players.LocalPlayer and player.Character and player.Character:FindFirstChild("Head") then local head = player.Character.Head local screenPosition, onScreen = Camera:WorldToViewportPoint(head.Position) if onScreen then local distanceToCursor = (Vector2.new(screenPosition.X, screenPosition.Y) - mouseLocation).Magnitude if distanceToCursor < shortestDistance then shortestDistance = distanceToCursor nearestPlayer = player end end end end return nearestPlayer end -- Function to create damage number display local function createDamageDisplay(player, damageAmount) if not isDamageNumbersEnabled then return end local head = player.Character and player.Character:FindFirstChild("Head") if head then local damageContainer = head:FindFirstChild("DamageContainer") if not damageContainer then damageContainer = Instance.new("BillboardGui") damageContainer.Name = "DamageContainer" damageContainer.Parent = head damageContainer.Adornee = head damageContainer.Size = UDim2.new(0, 100, 0, 50) damageContainer.StudsOffset = Vector3.new(0, 2, 0) damageContainer.AlwaysOnTop = true damageContainer.MaxDistance = distance damageContainer.Enabled = true end -- Create the new damage number label local textLabel = Instance.new("TextLabel") textLabel.Parent = damageContainer textLabel.Text = tostring(damageAmount) textLabel.TextColor3 = damageColor textLabel.TextSize = baseSize + (damageAmount / 10) -- Scale size based on damage textLabel.Font = font textLabel.BackgroundTransparency = 1 textLabel.Size = UDim2.new(1, 0, 0, baseSize) textLabel.TextStrokeTransparency = 0.4 textLabel.Position = UDim2.new(0.5, -50 + math.random(-maxOffset, maxOffset), 0, math.random(-maxOffset, maxOffset)) -- Random offset -- Target position for the damage number to slowly move upwards local targetPosition = UDim2.new(0.5, -50, 0, -100) -- Final position for all damage numbers -- Create the upward movement tween local moveUpTween = TweenService:Create( textLabel, TweenInfo.new(animationDuration, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {Position = targetPosition} ) -- Create the fade-out tween local fadeOutTween = TweenService:Create( textLabel, TweenInfo.new(fadeDuration, Enum.EasingStyle.Sine, Enum.EasingDirection.Out), {TextTransparency = 1, TextStrokeTransparency = 1} -- Fade both text and stroke ) -- Play the move-up tween moveUpTween:Play() -- Once the move-up animation is completed, start fading out moveUpTween.Completed:Connect(function() fadeOutTween:Play() -- Destroy the label after the fade-out is complete fadeOutTween.Completed:Connect(function() textLabel:Destroy() end) end) end end -- Function to check and display damage numbers for the nearest player local function checkNearestPlayerDamage() local nearestPlayer = getNearestToCursor() if nearestPlayer and nearestPlayer.Character and nearestPlayer.Character:FindFirstChildOfClass("Humanoid") then local humanoid = nearestPlayer.Character:FindFirstChildOfClass("Humanoid") local currentHealth = humanoid.Health -- Get the previous health of the player, or set it to their current health if not tracked local prevHealth = previousHealth[nearestPlayer.UserId] or currentHealth if currentHealth < prevHealth then createDamageDisplay(nearestPlayer, math.floor(prevHealth - currentHealth)) end -- Update the player's previous health previousHealth[nearestPlayer.UserId] = currentHealth end end -- Run every frame to check the nearest player's health RunService.RenderStepped:Connect(checkNearestPlayerDamage) HitEffectsGroup:AddToggle('DamageNumbersEnabled', { Text = 'Damage Numbers', Default = false, Callback = function(Value) isDamageNumbersEnabled = Value end }):AddColorPicker('DamageColor', { Default = Color3.fromRGB(255, 255, 255), Title = 'Damage Color', Callback = function(Value) damageColor = Value end }) HitEffectsGroup:AddToggle('HitNotifications', { Text = 'Hit Notifications', Default = false, Callback = function(Value) matchacc.HitEffects.HitNotifications = Value end }) HitEffectsGroup:AddSlider('NotifyTime', { Text = 'Notify Time', Default = 3, Min = 1, Max = 10, Rounding = 0, Callback = function(Value) matchacc.HitEffects.HitNotificationsTime = Value end }) HitEffectsGroup:AddToggle('HitSounds', { Text = 'Hit Sounds', Default = false, Callback = function(Value) matchacc.HitEffects.HitSounds = Value end }) HitEffectsGroup:AddDropdown('HitSoundSelect', { Values = {"Bubble", "Lazer", "Pick", "Pop", "Rust", "Sans", "Fart", "Big", "Vine", "UwU", "Bruh", "Skeet", "Neverlose", "Fatality", "Bonk", "Minecraft", "Gamesense", "RIFK7", "Bamboo", "Crowbar", "Weeb", "Beep", "Bambi", "Stone", "Old Fatality", "Click", "Ding", "Snow", "Laser", "Mario", "Steve", "Call of Duty", "Bat", "TF2 Critical", "Saber", "Baimware", "Osu", "TF2", "Slime", "Among Us", "One"}, Default = "Neverlose", Multi = false, Text = 'Hit Sound', Callback = function(Value) matchacc.HitEffects.HitSoundID = hitsounds[Value] end }) HitEffectsGroup:AddSlider('HitSoundVolume', { Text = 'Volume', Default = 5, Min = 1, Max = 10, Rounding = 0, Callback = function(Value) matchacc.HitEffects.HitSoundVolume = Value end }) ChecksTab:AddToggle('CheckWall', { Text = 'Check Wall', Default = false, Callback = function(Value) matchacc.Checks.Wall = Value end }) ChecksTab:AddToggle('CheckForcefield', { Text = 'Check Forcefield', Default = false, Callback = function(Value) matchacc.Checks.Forcefield = Value end }) ChecksTab:AddToggle('CheckAlive', { Text = 'Check Alive', Default = false, Callback = function(Value) matchacc.Checks.Alive = Value end }) ChecksTab:AddToggle('CheckTeam', { Text = 'Check Team', Default = false, Callback = function(Value) matchacc.Checks.Team = Value end }) ChecksTab:AddToggle('FOVCircleToggle', { Text = 'FOV Circle', Default = false, Callback = function(Value) FOVCircleEnabled = Value InnerCircle.Visible = Value FillCircle.Visible = Value and GradientFillEnabled end }):AddColorPicker('FOVInnerColorPicker', { Default = Color3.fromRGB(255, 255, 255), Title = 'Inner Circle Color', Callback = function(Value) FOVInnerColor = Value InnerCircle.Color = Value end }) ChecksTab:AddSlider('FOVSizeSlider', { Text = 'FOV Size', Default = 300, Min = 100, Max = 1000, Rounding = 0, Callback = function(Value) FOVCircleSize = Value InnerCircle.Radius = Value FillCircle.Radius = Value end }) ChecksTab:AddToggle('GradientFillToggle', { Text = 'Gradient Fill FOV Circle', Default = false, Callback = function(Value) GradientFillEnabled = Value FillCircle.Visible = FOVCircleEnabled and Value end }):AddColorPicker('GradientColor1Picker', { Default = Color3.fromRGB(255, 255, 255), Title = 'Gradient Color 1', Callback = function(Value) GradientColor1 = Value end }):AddColorPicker('GradientColor2Picker', { Default = Color3.fromRGB(0, 0, 0), Title = 'Gradient Color 2', Callback = function(Value) GradientColor2 = Value end }) ChecksTab:AddSlider('FillTransparencySlider', { Text = 'Fill Transparency', Default = 0.5, Min = 0, Max = 1, Rounding = 2, Callback = function(Value) FillTransparency = Value FillCircle.Transparency = Value end }) RunService.RenderStepped:Connect(function() if FOVCircleEnabled then local pos if UserInputService.TouchEnabled then -- Mobile: tâm màn hình pos = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2) else -- PC: vị trí chuột pos = UserInputService:GetMouseLocation() end InnerCircle.Position = pos FillCircle.Position = pos if GradientFillEnabled then -- Simulate gradient xoay bằng lerp color theo sin wave (xoay màu giữa 2 color) local t = math.sin(tick() * 2) * 0.5 + 0.5 local r = GradientColor1.R + (GradientColor2.R - GradientColor1.R) * t local g = GradientColor1.G + (GradientColor2.G - GradientColor1.G) * t local b = GradientColor1.B + (GradientColor2.B - GradientColor1.B) * t FillCircle.Color = Color3.new(r, g, b) end end end) OptionsTab:AddInput('PredictionInput', { Default = '0.0000', Numeric = true, Finished = true, Text = 'Prediction', Tooltip = 'Manual prediction value', Placeholder = '0.0000', Callback = function(Value) matchacc.TargetAim.Prediction = tonumber(Value) or 0 end }) OptionsTab:AddToggle('AutoPredictToggle', { Text = 'Auto Prediction', Default = false, Callback = function(Value) matchacc.TargetAim.AutoPredict = Value end }) OptionsTab:AddDropdown('PredictModeDropdown', { Values = {'Calculate', 'Ping Sets' }, Default = 0, Multi = false, Text = 'Prediction Mode', Callback = function(Value) matchacc.TargetAim.PredictMode = Value end }) OptionsTab:AddDropdown('HitPartDropdown', { Values = { 'Head', 'HumanoidRootPart', 'UpperTorso', 'LowerTorso' }, Default = 'Head', Multi = false, Text = 'Hit Part', Callback = function(Value) matchacc.TargetAim.HitPart = Value end }) OptionsTab:AddInput('OffsetInput', { Default = '0', Numeric = true, Finished = true, Text = 'Y Offset', Placeholder = '0', Callback = function(Value) matchacc.TargetAim.Offset = tonumber(Value) or 0 end }) OptionsTab:AddInput('JumpOffsetInput', { Default = '0', Numeric = true, Finished = true, Text = 'Jump Offset', Placeholder = '0', Callback = function(Value) matchacc.TargetAim.JumpOffset = tonumber(Value) or 0 end }) OptionsTab:AddToggle('AirPartToggle', { Text = 'Airshot Part', Default = false, Callback = function(Value) matchacc.TargetAim.AirPartEnabled = Value end }) OptionsTab:AddDropdown('AirPartDropdown', { Values = { 'Head', 'HumanoidRootPart', 'UpperTorso', 'LowerTorso' }, Default = 'Head', Multi = false, Text = 'Airshot Part', Callback = function(Value) matchacc.TargetAim.AirPart = Value end }) OptionsTab:AddToggle('ResolverToggle', { Text = 'Resolver', Default = false, Callback = function(Value) matchacc.TargetAim.Resolver = Value end }) local KillAuraGroup = Tabs.Main:AddRightGroupbox('Kill Aura') KillAuraGroup:AddToggle('KillAuraEnabled', { Text = 'Enabled', Default = false, Callback = function(Value) matchacc.KillAura.Enabled = Value if not Value then matchacc.KillAura.Active = false ka_tracer.Transparency = 1 end end }):AddKeyPicker('KillAuraKey', { Default = 'K', Text = 'Kill Aura', Mode = 'Toggle', Callback = function(Value) if matchacc.KillAura.Enabled then matchacc.KillAura.Active = Value end end }) KillAuraGroup:AddSlider('KillAuraRange', { Text = 'Range', Default = 250, Min = 10, Max = 250, Rounding = 0, Callback = function(Value) matchacc.KillAura.Range = Value end }) KillAuraGroup:AddToggle('KillAuraSilent', { Text = 'Silent', Default = false, Callback = function(Value) matchacc.KillAura.Silent = Value end }) KillAuraGroup:AddToggle('KillAuraVisualize', { Text = 'Visualize', Default = false, Callback = function(Value) matchacc.KillAura.Visualize = Value end }):AddColorPicker('KAVisColor', { Default = Color3.new(1, 1, 1), Title = 'Visualizer Color', Callback = function(Value) ka_tracer.Color = Value end }) KillAuraGroup:AddToggle('StompAura', { Text = 'Stomp Aura', Default = false, Callback = function(Value) matchacc.KillAura.StompAura = Value end }) local GunModsGroup = Tabs.Main:AddRightGroupbox('Gun Mods') matchacc.EquipAllGuns = { Enabled = false, } -- Globals (sau các global vars khác) local EquipAllConnection = nil local lastEquipTime = 0 local EquipAllConnection local EquipAddedConnection -- Function equipAllGuns đã sửa local function equipAllGuns() local char = localPlayer.Character local backpack = localPlayer.Backpack if not char or not backpack then return end for _, tool in ipairs(backpack:GetChildren()) do if tool:IsA("Tool") and tool:FindFirstChild("Ammo") then tool.Parent = char end end end local function setupEquipAll() local char = localPlayer.Character local backpack = localPlayer.Backpack if not char or not backpack or not matchacc.EquipAllGuns.Enabled then return end equipAllGuns() if EquipAllConnection then EquipAllConnection:Disconnect() EquipAllConnection = nil end EquipAllConnection = char.ChildRemoved:Connect(function(child) if matchacc.EquipAllGuns.Enabled and child:IsA("Tool") and child:FindFirstChild("Ammo") and (tick() - lastEquipTime) >= 0.5 then lastEquipTime = tick() task.spawn(function() task.wait(0.1) equipAllGuns() end) end end) if EquipAddedConnection then EquipAddedConnection:Disconnect() EquipAddedConnection = nil end EquipAddedConnection = backpack.ChildAdded:Connect(function(child) if matchacc.EquipAllGuns.Enabled and child:IsA("Tool") and child:FindFirstChild("Ammo") then child.Parent = char end end) end -- Character respawn localPlayer.CharacterAdded:Connect(function() task.wait(5) if matchacc.EquipAllGuns.Enabled then setupEquipAll() end end) -- Thêm vào GunModsGroup (sau Wallbang) GunModsGroup:AddToggle('EquipAllGunsEnabled', { Text = 'Equip All Guns', Default = false, Callback = function(Value) matchacc.EquipAllGuns.Enabled = Value if Value then setupEquipAll() else if EquipAllConnection then EquipAllConnection:Disconnect() EquipAllConnection = nil end end end }):AddKeyPicker('EquipAllGunsKey', { Default = 'none', SyncToggleState = true, Mode = 'Toggle', Text = 'Equip All Guns' }) GunModsGroup:AddToggle('RapidFireEnabled', { Text = 'Rapid Fire', Default = false, Callback = function(Value) matchacc.RapidFire.Enabled = Value if not getnamecallmethod then local iter, tbl, index = ipairs(game:GetDescendants()) while true do local instance index, instance = iter(tbl, index) if index == nil then break end if instance.Name == "ShootingCooldown" and instance:IsA("ValueBase") then instance.Value = 0 end end game.DescendantAdded:Connect(function(newDescendant) if newDescendant.Name == "ShootingCooldown" and newDescendant:IsA("ValueBase") then newDescendant.Value = 0 end end) local iter2, tbl2, index2 = ipairs(game:GetDescendants()) while true do local instance2 index2, instance2 = iter2(tbl2, index2) if index2 == nil then break end if instance2.Name == "ToleranceCooldown" and instance2:IsA("ValueBase") then instance2.Value = 0 end end game.DescendantAdded:Connect(function(newDescendant2) if newDescendant2.Name == "ToleranceCooldown" and newDescendant2:IsA("ValueBase") then newDescendant2.Value = 0 end end) wait(2) game.Players.LocalPlayer.Character.Humanoid.Health = 0 end end }) GunModsGroup:AddToggle('WallbangEnabled', { Text = 'Wallbang', Default = false, Callback = function(Value) matchacc.Wallbang.Enabled = Value if getnamecallmethod then local Handler = game:FindService("ReplicatedStorage").MainModule local Module = require(Handler) if Value == true and workspace:FindFirstChild("Vehicles") then Module.Ignored = {workspace:WaitForChild("Vehicles"), workspace:WaitForChild("MAP"), workspace:WaitForChild("Ignored")} else if workspace:FindFirstChild("Vehicles") then Module.Ignored = {workspace:WaitForChild("Vehicles"), workspace:WaitForChild("Ignored")} end end else Library:Notify("Your executor does not support this feature.", 3) end end }) if isDaHood then getgenv().RemoveShootAnimationsEnabled = false getgenv().ShootAnimationIds = { ["rbxassetid://2807049953"] = true, ["rbxassetid://2809413000"] = true, ["rbxassetid://2809419094"] = true, ["rbxassetid://507768375"] = true, ["rbxassetid://507755388"] = true, ["rbxassetid://2807049953"] = true, ["rbxassetid://2877910736"] = true } getgenv().StopAnimationTracks = function(character) local humanoid = character:FindFirstChildOfClass("Humanoid") if humanoid then for _, track in ipairs(humanoid:GetPlayingAnimationTracks()) do if getgenv().ShootAnimationIds[track.Animation.AnimationId] then track:Stop() end end end end getgenv().MonitorCharacter = function(character) character.DescendantAdded:Connect(function(descendant) if descendant:IsA("AnimationTrack") and getgenv().RemoveShootAnimationsEnabled then if getgenv().ShootAnimationIds[descendant.Animation.AnimationId] then descendant:Stop() end end end) end getgenv().MonitorPlayers = function() for _, player in ipairs(game:GetService("Players"):GetPlayers()) do local character = player.Character or player.CharacterAdded:Wait() getgenv().StopAnimationTracks(character) getgenv().MonitorCharacter(character) player.CharacterAdded:Connect(function(newCharacter) getgenv().StopAnimationTracks(newCharacter) getgenv().MonitorCharacter(newCharacter) end) end game:GetService("Players").PlayerAdded:Connect(function(player) player.CharacterAdded:Connect(function(character) getgenv().StopAnimationTracks(character) getgenv().MonitorCharacter(character) end) end) end getgenv().MonitorAnimations = function() game:GetService("RunService").RenderStepped:Connect(function() if getgenv().RemoveShootAnimationsEnabled then for _, player in ipairs(game:GetService("Players"):GetPlayers()) do local character = player.Character if character then getgenv().StopAnimationTracks(character) end end end end) end GunModsGroup:AddToggle("AntiflingToggle", { Text = "remove shoot animations", Default = false, Callback = function(enabled) getgenv().RemoveShootAnimationsEnabled = enabled if enabled then getgenv().MonitorPlayers() task.spawn(getgenv().MonitorAnimations) end end }) end local HitboxGroup = Tabs.Main:AddRightGroupbox('Hitbox Expander') HitboxGroup:AddToggle('HitboxEnabled', { Text = 'Enabled', Default = false, Callback = function(Value) matchacc.HitboxExpander.Enabled = Value end }) HitboxGroup:AddToggle('HitboxVisualize', { Text = 'Visualize', Default = false, Callback = function(Value) matchacc.HitboxExpander.Visualize = Value end }):AddColorPicker('HitboxColor', { Default = matchacc.HitboxExpander.Color, Title = 'Fill Color', Callback = function(Value) matchacc.HitboxExpander.Color = Value end }):AddColorPicker('HitboxOutline', { Default = matchacc.HitboxExpander.OutlineColor, Title = 'Outline Color', Callback = function(Value) matchacc.HitboxExpander.OutlineColor = Value end }) HitboxGroup:AddSlider('HitboxFillTrans', { Text = 'Fill Transparency', Default = 0.5, Min = 0, Max = 1, Rounding = 2, Callback = function(Value) matchacc.HitboxExpander.FillTransparency = Value end }) HitboxGroup:AddSlider('HitboxOutlineTrans', { Text = 'Outline Transparency', Default = 0.3, Min = 0, Max = 1, Rounding = 2, Callback = function(Value) matchacc.HitboxExpander.OutlineTransparency = Value end }) HitboxGroup:AddSlider('HitboxSize', { Text = 'Size', Default = 15, Min = 1, Max = 37, Rounding = 0, Callback = function(Value) matchacc.HitboxExpander.Size = Value end }) getgenv().Matcha.Legit = { Aimlock = false, HitPart = "Head", Smoothing = false, SmoothingAmount = 0.1, SilentAim = false, -- Mới: Toggle cho Silent Aim SilentAimMethod = "Rival", -- Mới: Default method Prediction = 0.05, JumpOffset = 0, Offset = true, SilentFOV = 100, SilentFOVEnabled = false, Resolver = false, Triggerbot = { Enabled = false, FOV = 20, Delay = 0, -- ms OnlyTarget = false, CheckKO = false, CheckKnife = false, CheckGrab = false, CheckTeam = false, CheckFriend = false, } } getgenv().Matcha.Legit.Triggerbot.HitParts = { "Head", "HumanoidRootPart", "UpperTorso", "LowerTorso", "LeftUpperArm", "RightUpperArm", "LeftLowerArm", "RightLowerArm", "LeftHand", "RightHand", "LeftUpperLeg", "RightUpperLeg", "LeftLowerLeg", "RightLowerLeg", "LeftFoot", "RightFoot", "Torso", "Left Arm", "Right Arm", "Left Leg", "Right Leg" } -- Danh sách part được chọn (mặc định chọn hết) getgenv().Matcha.Legit.Triggerbot.SelectedHitParts = { "Head", "HumanoidRootPart", "UpperTorso", "LowerTorso", "LeftUpperArm", "RightUpperArm", "LeftLowerArm", "RightLowerArm", "LeftHand", "RightHand", "LeftUpperLeg", "RightUpperLeg", "LeftLowerLeg", "RightLowerLeg", "LeftFoot", "RightFoot", "Torso", "Left Arm", "Right Arm", "Left Leg", "Right Leg" } local LegitBox = Tabs.Main:AddRightTabbox() local AimlockBox = LegitBox:AddTab('Aimlock') local TriggerBox = LegitBox:AddTab('TriggerBot(not working)') TriggerBox:AddToggle('TriggerbotEnabled', { Text = 'Enabled', Default = false, Callback = function(v) getgenv().Matcha.Legit.Triggerbot.Enabled = v end }):AddKeyPicker('TargetAimKey', { Default = 'none', Text = 'Target Aim', Mode = 'Toggle', Callback = function(Value) getgenv().Matcha.Legit.Triggerbot.Enabled = Value end }) TriggerBox:AddToggle('TriggerbotOnlyTarget', { Text = 'Only Target', Default = false, Tooltip = 'Chỉ bắn khi target đang được aimbot lock', Callback = function(v) getgenv().Matcha.Legit.Triggerbot.OnlyTarget = v end }) TriggerBox:AddSlider('TriggerbotFOV', { Text = 'Trigger FOV', Min = 1, Max = 200, Default = 20, Rounding = 1, Callback = function(v) getgenv().Matcha.Legit.Triggerbot.FOV = v end }) TriggerBox:AddDropdown('TriggerbotHitParts', { Text = 'Hit Parts', Values = { "Head", "HumanoidRootPart", "UpperTorso", "LowerTorso", "LeftUpperArm", "RightUpperArm", "LeftLowerArm", "RightLowerArm", "LeftHand", "RightHand", "LeftUpperLeg", "RightUpperLeg", "LeftLowerLeg", "RightLowerLeg", "LeftFoot", "RightFoot", "Torso", "Left Arm", "Right Arm", "Left Leg", "Right Leg" }, Default = getgenv().Matcha.Legit.Triggerbot.HitParts, -- chọn hết mặc định Multi = true, Callback = function(selected) getgenv().Matcha.Legit.Triggerbot.SelectedHitParts = selected end }) TriggerBox:AddSlider('TriggerbotDelay', { Text = 'Trigger Delay', Min = 0, Max = 4, Default = 0, Rounding = 2, Callback = function(v) getgenv().Matcha.Legit.Triggerbot.Delay = v end }) TriggerBox:AddDropdown('TriggerbotChecks', { Text = 'Trigger Checks', Values = {"KO", "Knife", "Grab", "Team", "Friend" }, Default = {}, -- mặc định tắt hết (bạn có thể đổi thành {"Wall", "Team"} nếu muốn bật sẵn) Multi = true, Tooltip = 'Chọn các điều kiện để TriggerBot hoạt động', Callback = function(selected) getgenv().Matcha.Legit.Triggerbot.CheckKO = table.find(selected, "KO") ~= nil getgenv().Matcha.Legit.Triggerbot.CheckKnife = table.find(selected, "Knife") ~= nil getgenv().Matcha.Legit.Triggerbot.CheckGrab = table.find(selected, "Grab") ~= nil getgenv().Matcha.Legit.Triggerbot.CheckTeam = table.find(selected, "Team") ~= nil getgenv().Matcha.Legit.Triggerbot.CheckFriend = table.find(selected, "Friend") ~= nil end }) local function isKO(plr) if not plr.Character then return false end local be = plr.Character:FindFirstChild("BodyEffects") return be and be:FindFirstChild("K.O") and be["K.O"].Value end local function isGrabbed(plr) if not plr.Character then return false end local be = plr.Character:FindFirstChild("BodyEffects") return be and be:FindFirstChild("GRABBING_CONSTRAINT") and be.GRABBING_CONSTRAINT.Value end local function isHoldingKnife() local char = LocalPlayer.Character if not char then return false end local tool = char:FindFirstChildWhichIsA("Tool") if tool then local name = tool.Name:lower() return name:find("knife") or name:find("blade") or name:find("dagger") or name:find("sword") end return false end local function distToCursor(part) local screenPos, onScreen = Camera:WorldToViewportPoint(part.Position) if not onScreen then return math.huge end local mousePos = UserInputService:GetMouseLocation() return (Vector2.new(screenPos.X, screenPos.Y) - mousePos).Magnitude end local function fireTrigger() local char = LocalPlayer.Character if not char then return end local tool = char:FindFirstChildWhichIsA("Tool") local ammo = tool and tool:FindFirstChild("Ammo") if tool and ammo then pcall(function() tool:Activate() end) else -- Mobile/PC click if UserInputService.TouchEnabled then local vim = game:GetService("VirtualInputManager") local pos = UserInputService:GetMouseLocation() vim:SendTouchEvent(0, Enum.UserInputState.Begin, pos) task.wait() vim:SendTouchEvent(0, Enum.UserInputState.End, pos) else if mouse1press then mouse1press() task.wait() mouse1release() elseif mouse1click then mouse1click() end end end end local function isValidTriggerTarget(plr) if plr == LocalPlayer or not plr.Character then return false end if not plr.Character:FindFirstChild("HumanoidRootPart") then return false end if not plr.Character:FindFirstChild("Humanoid") or plr.Character.Humanoid.Health <= 0 then return false end if getgenv().Matcha.Legit.Triggerbot.OnlyTarget then if not matchacc.TargetAim.Target or plr.Name ~= matchacc.TargetAim.Target then return false end end if getgenv().Matcha.Legit.Triggerbot.CheckTeam and plr.Team == LocalPlayer.Team then return false end if getgenv().Matcha.Legit.Triggerbot.CheckFriend and LocalPlayer:IsFriendsWith(plr.UserId) then return false end if getgenv().Matcha.Legit.Triggerbot.CheckKO and isKO(plr) then return false end if getgenv().Matcha.Legit.Triggerbot.CheckGrab and isGrabbed(plr) then return false end if getgenv().Matcha.Legit.Triggerbot.CheckKnife and isHoldingKnife() then return false end return true end local function GetBestTriggerPart() local bestPart, bestDist = nil, getgenv().Matcha.Legit.Triggerbot.FOV for _, plr in Players:GetPlayers() do if isValidTriggerTarget(plr) and plr.Character then for _, partName in ipairs(getgenv().Matcha.Legit.Triggerbot.SelectedHitParts) do local part = plr.Character:FindFirstChild(partName) if part and part:IsA("BasePart") then local dist = distToCursor(part) if dist < bestDist then bestPart = part bestDist = dist end end end end end return bestPart, bestDist end RunService.RenderStepped:Connect(function() local trigCfg = getgenv().Matcha.Legit.Triggerbot if not trigCfg.Enabled then return end local part, dist = GetBestTriggerPart() if not part then return end if dist > trigCfg.FOV then return end -- Raycast local origin = Camera.CFrame.Position local direction = (part.Position - origin).Unit * 1000 -- 🔥 max distance ray local rayParams = RaycastParams.new() rayParams.FilterType = Enum.RaycastFilterType.Blacklist rayParams.FilterDescendantsInstances = {LocalPlayer.Character} local result = workspace:Raycast(origin, direction, rayParams) if not result then return end -- if hit same character → valid if result.Instance and result.Instance:IsDescendantOf(part.Parent) then task.delay(trigCfg.Delay, function() fireTrigger() end) end end) --[[local SilentBox = LegitBox:AddTab('SilentAim') SilentBox:AddToggle('SilentAimEnabled', { Text = 'Silent Aim', Default = false, Callback = function(Value) getgenv().Matcha.Legit.SilentAim = Value end }) SilentBox:AddDropdown('SilentAimMethod', { Values = {'Rival', 'Flick'}, Default = 0, Multi = false, Text = 'Silent Aim Method', Callback = function(Value) getgenv().Matcha.Legit.SilentAimMethod = Value end }) SilentBox:AddToggle('SilentAimEnabled', { Text = 'Silent Fov Enabled', Default = false, Callback = function(Value) getgenv().Matcha.Legit.SilentFOVEnabled = Value end }) SilentBox:AddSlider('SilentFOV', { Text = 'Silent Aim FOV', Default = 100, Min = 10, Max = 1000, Rounding = 0, Callback = function(Value) getgenv().Matcha.Legit.SilentFOV = Value end }) local camera = workspace.CurrentCamera if game.GameId ~= 17625359962 then local function isLobbyVisible() return localPlayer.PlayerGui.MainGui.MainFrame.Lobby.Currency.Visible == true end local function getClosestPlayerToMouse() -- Hàm closest player từ code Rival local closestPlayer = nil local shortestDistance = getgenv().Matcha.Legit.SilentFOVEnabled and getgenv().Matcha.Legit.SilentFOV or 9999 local mousePosition = UserInputService:GetMouseLocation() for _, player in ipairs(Players:GetPlayers()) do if player ~= LocalPlayer and player.Character and player.Character:FindFirstChild("Head") then local head = player.Character.Head local headPosition, onScreen = Camera:WorldToViewportPoint(head.Position) if not isAlive(player) then continue end if not isPlayerVisible(player) then continue end if onScreen then local screenPosition = Vector2.new(headPosition.X, headPosition.Y) local distance = (screenPosition - mousePosition).Magnitude if distance < shortestDistance then closestPlayer = player shortestDistance = distance end end end end return closestPlayer end local isLeftMouseDown = false local autoClickConnection = nil local function autoClick() if autoClickConnection then autoClickConnection:Disconnect() end autoClickConnection = RunService.Heartbeat:Connect(function() if isLeftMouseDown then if not isLobbyVisible() then mouse1click() end else autoClickConnection:Disconnect() end end) end UserInputService.InputBegan:Connect(function(input, isProcessed) if input.UserInputType == Enum.UserInputType.MouseButton1 and not isProcessed then if not isLeftMouseDown then isLeftMouseDown = true autoClick() end end end) UserInputService.InputEnded:Connect(function(input, isProcessed) if input.UserInputType == Enum.UserInputType.MouseButton1 and not isProcessed then isLeftMouseDown = false end end) local function lockCameraToHead(targetPlayer) if targetPlayer and targetPlayer.Character and targetPlayer.Character:FindFirstChild("Head") then local head = targetPlayer.Character.Head local headPosition = Camera:WorldToViewportPoint(head.Position) if headPosition.Z > 0 then local cameraPosition = Camera.CFrame.Position Camera.CFrame = CFrame.new(cameraPosition, head.Position) end end end -- RunService cho Rival (chạy khi method là Rival) RunService.Heartbeat:Connect(function() if getgenv().Matcha.Legit.SilentAim and getgenv().Matcha.Legit.SilentAimMethod == "Rival" and not isLobbyVisible() then local targetPlayer = getClosestPlayerToMouse() -- Closest player if targetPlayer then lockCameraToHead(targetPlayer) end end end) end spawn(function() local BulletHandler = nil local OldFire = nil local function get_closest_target(range) local closest_part, closest_distance = nil, range local mousePos = UserInputService:GetMouseLocation() for _, player in pairs(players:GetPlayers()) do if player == localPlayer or not player.Character or not player.Character:FindFirstChild("Head") then continue end local hum = player.Character:FindFirstChildOfClass("Humanoid") if not isAlive(player) then continue end if not isPlayerVisible(player) then continue end local headPos, onScreen = Camera:WorldToViewportPoint(player.Character.Head.Position) if not onScreen then continue end local dist = (Vector2.new(headPos.X, headPos.Y) - mousePos).Magnitude if dist < closest_distance then closest_distance = dist closest_part = player.Character.Head end end return closest_part end RunService.Heartbeat:Connect(function() if not getgenv().Matcha.Legit.SilentAim or getgenv().Matcha.Legit.SilentAimMethod ~= "Flick" then if BulletHandler and OldFire then BulletHandler.Fire = OldFire BulletHandler = nil OldFire = nil end return end if not BulletHandler then local success, mod = pcall(function() return require(ReplicatedStorage:FindFirstChild("ModuleScripts", true):FindFirstChild("GunModules", true).BulletHandler) end) if not success then -- gc fallback cực mạnh cho Rivals for _, v in pairs(getgc(true)) do if typeof(v) == "table" and rawget(v, "Fire") and typeof(rawget(v, "Fire")) == "function" then BulletHandler = v break end end else BulletHandler = mod end if BulletHandler and BulletHandler.Fire then OldFire = BulletHandler.Fire BulletHandler.Fire = newcclosure(function(data, ...) if not getgenv().Matcha.Legit.SilentAim then return OldFire(data, ...) end local closest = get_closest_target(getgenv().Matcha.Legit.SilentFOVEnabled and getgenv().Matcha.Legit.SilentFOV or 9999) if closest then local pred = 0 local predictedPos = closest.Position + (closest.Velocity * pred) data.Direction = (predictedPos - data.Origin).Unit data.Force = data.Force * 1000 end return OldFire(data, ...) end) end end end) end)]] AimlockBox:AddToggle('AimlockEnabled', { Text = 'Aimlock', Default = false, Callback = function(Value) getgenv().Matcha.Legit.Aimlock = Value end }) AimlockBox:AddDropdown('HitPart', { Values = {'Head', 'UpperTorso', 'HumanoidRootPart'}, Default = 1, Multi = false, Text = 'Hit Part', Callback = function(Value) getgenv().Matcha.Legit.HitPart = Value end }) AimlockBox:AddToggle('SmoothingEnabled', { Text = 'Smoothing', Default = false, Callback = function(Value) getgenv().Matcha.Legit.Smoothing = Value end }) AimlockBox:AddSlider('SmoothingAmount', { Text = 'Smoothing Amount', Default = 0.1, Min = 0, Max = 1, Rounding = 2, Callback = function(Value) getgenv().Matcha.Legit.SmoothingAmount = Value end }) AimlockBox:AddSlider('Prediction', { Text = 'Prediction', Default = 0.05, Min = 0, Max = 1, Rounding = 2, Callback = function(Value) getgenv().Matcha.Legit.Prediction = Value end }) AimlockBox:AddSlider('JumpOffset', { Text = 'Jump Offset', Default = 0, Min = -10, Max = 10, Rounding = 1, Callback = function(Value) getgenv().Matcha.Legit.JumpOffset = Value end }) AimlockBox:AddToggle('ResolverToggle', { Text = 'Resolver', Default = false, Callback = function(Value) getgenv().Matcha.Legit.Resolver = Value end }) local VelocityData = {} RunService.Heartbeat:Connect(function(dT) if dT > 0.5 then return end -- chống spike for _, plr in Players:GetPlayers() do if plr ~= LocalPlayer and plr.Character and plr.Character:FindFirstChild("HumanoidRootPart") then local hrp = plr.Character.HumanoidRootPart if not VelocityData[plr] then VelocityData[plr] = { PreviousPosition = hrp.Position, Velocity = Vector3.zero } end local data = VelocityData[plr] local displacement = hrp.Position - data.PreviousPosition data.Velocity = displacement / dT data.PreviousPosition = hrp.Position end end end) --// CLEANUP KHI PLAYER LEAVE (tùy chọn nhưng nên có) Players.PlayerRemoving:Connect(function(plr) VelocityData[plr] = nil end) --// UPDATECAMLOCK SAU KHI THÊM RESOLVER (thay toàn bộ function cũ bằng cái này) local function updateCamlock() local targetName = matchacc.TargetAim.Target if not getgenv().Matcha.Legit.Aimlock then return end local target = players:FindFirstChild(targetName) if not target or not target.Character then return end local part = target.Character:FindFirstChild(getgenv().Matcha.Legit.HitPart) if not part or not isAlive(target) or not isPlayerVisible(target) then return end --// LẤY VELOCITY (RESOLVER HOẶC DEFAULT) local velocity = part.AssemblyLinearVelocity if getgenv().Matcha.Legit.Resolver and VelocityData[target] then velocity = VelocityData[target].Velocity end local pred = getgenv().Matcha.Legit.Prediction or 0 local pos = part.Position + (velocity * pred) --// JUMP OFFSET (nếu bật và đang rơi/jump) if getgenv().Matcha.Legit.Offset and target.Character.Humanoid:GetState() == Enum.HumanoidStateType.Freefall then pos = pos + Vector3.new(0, getgenv().Matcha.Legit.JumpOffset or 0, 0) end local goal = CFrame.new(Camera.CFrame.Position, pos) if getgenv().Matcha.Legit.Smoothing then Camera.CFrame = Camera.CFrame:Lerp(goal, getgenv().Matcha.Legit.SmoothingAmount) else Camera.CFrame = goal end end RunService.RenderStepped:Connect(function() if getgenv().Matcha.Legit.Aimlock then updateCamlock() end end) local ChinaHatGroup = Tabs.Visual:AddRightGroupbox('China Hat') getgenv().ChinaHatSettings = { enabled = false, hatColor = Color3.fromRGB(255, 255, 255), lightColor = Color3.fromRGB(255, 255, 255), lightBrightness = 0, lightRange = 12, scale = Vector3.new(1.7, 1.1, 1.7), } -- Thêm Cone.Name = "ChinaHat" vào function CreateHat để dễ find và destroy local function CreateHat(Character) local Head = Character:FindFirstChild("Head") if not Head then return end local Cone = Instance.new("Part") Cone.Name = "ChinaHat" -- Thêm name để dễ quản lý Cone.Size = Vector3.new(1, 1, 1) Cone.BrickColor = BrickColor.new("Hot pink") Cone.Material = Enum.Material.Neon Cone.Transparency = 0.2 Cone.Anchored = false Cone.CanCollide = false Cone.Color = getgenv().ChinaHatSettings.hatColor local Mesh = Instance.new("SpecialMesh") Mesh.MeshType = Enum.MeshType.FileMesh Mesh.MeshId = "rbxassetid://1033714" Mesh.Scale = getgenv().ChinaHatSettings.scale Mesh.Parent = Cone local Weld = Instance.new("Weld") Weld.Part0 = Head Weld.Part1 = Cone Weld.C0 = CFrame.new(0, 0.9, 0) Weld.Parent = Cone local Light = Instance.new("PointLight") Light.Color = getgenv().ChinaHatSettings.lightColor Light.Brightness = getgenv().ChinaHatSettings.lightBrightness Light.Range = getgenv().ChinaHatSettings.lightRange Light.Shadows = true Light.Parent = Cone Cone.Parent = Character end local function OnCharacterAdded1(Character) if getgenv().ChinaHatSettings.enabled then CreateHat(Character) end end -- Kết nối sự kiện CharacterAdded localPlayer.CharacterAdded:Connect(OnCharacterAdded1) -- Nếu character đã tồn tại, áp dụng ngay if localPlayer.Character then task.wait(3) OnCharacterAdded1(localPlayer.Character) end ChinaHatGroup:AddToggle('ChinaHatEnabled', { Text = "VietNam Hat", Default = getgenv().ChinaHatSettings.enabled, Callback = function(state) getgenv().ChinaHatSettings.enabled = state if state then if localPlayer.Character then OnCharacterAdded1(localPlayer.Character) end else if localPlayer.Character then local hat = localPlayer.Character:FindFirstChild("ChinaHat") if hat then hat:Destroy() end end end end }):AddColorPicker('ChinaHatColor', { Default = getgenv().ChinaHatSettings.hatColor, Title = "Hat Color", Callback = function(color) getgenv().ChinaHatSettings.hatColor = color -- Realtime update: destroy và recreate nếu enabled if getgenv().ChinaHatSettings.enabled and localPlayer.Character then local hat = localPlayer.Character:FindFirstChild("ChinaHat") if hat then hat:Destroy() end CreateHat(localPlayer.Character) end end }):AddColorPicker('ChinaLightColor', { Default = getgenv().ChinaHatSettings.lightColor, Title = "Light Color", Callback = function(color) getgenv().ChinaHatSettings.lightColor = color if getgenv().ChinaHatSettings.enabled and localPlayer.Character then local hat = localPlayer.Character:FindFirstChild("ChinaHat") if hat then hat:Destroy() end CreateHat(localPlayer.Character) end end }) ChinaHatGroup:AddSlider('ChinaLightBrightness', { Text = "Light Brightness", Min = 0, Max = 10, Default = getgenv().ChinaHatSettings.lightBrightness, Rounding = 1, Compact = false, Callback = function(value) getgenv().ChinaHatSettings.lightBrightness = value if getgenv().ChinaHatSettings.enabled and localPlayer.Character then local hat = localPlayer.Character:FindFirstChild("ChinaHat") if hat then hat:Destroy() end CreateHat(localPlayer.Character) end end }) ChinaHatGroup:AddSlider('ChinaLightRange', { Text = "Light Range", Min = 0, Max = 50, Default = getgenv().ChinaHatSettings.lightRange, Rounding = 0, Compact = false, Callback = function(value) getgenv().ChinaHatSettings.lightRange = value if getgenv().ChinaHatSettings.enabled and localPlayer.Character then local hat = localPlayer.Character:FindFirstChild("ChinaHat") if hat then hat:Destroy() end CreateHat(localPlayer.Character) end end }) ChinaHatGroup:AddSlider('ChinaHatScaleX', { Text = "Hat Scale X", Min = 0.5, Max = 3, Default = getgenv().ChinaHatSettings.scale.X, Rounding = 2, Compact = false, Callback = function(value) getgenv().ChinaHatSettings.scale = Vector3.new(value, getgenv().ChinaHatSettings.scale.Y, getgenv().ChinaHatSettings.scale.Z) if getgenv().ChinaHatSettings.enabled and localPlayer.Character then local hat = localPlayer.Character:FindFirstChild("ChinaHat") if hat then hat:Destroy() end CreateHat(localPlayer.Character) end end }) ChinaHatGroup:AddSlider('ChinaHatScaleY', { Text = "Hat Scale Y", Min = 0.5, Max = 3, Default = getgenv().ChinaHatSettings.scale.Y, Rounding = 2, Compact = false, Callback = function(value) getgenv().ChinaHatSettings.scale = Vector3.new(getgenv().ChinaHatSettings.scale.X, value, getgenv().ChinaHatSettings.scale.Z) if getgenv().ChinaHatSettings.enabled and localPlayer.Character then local hat = localPlayer.Character:FindFirstChild("ChinaHat") if hat then hat:Destroy() end CreateHat(localPlayer.Character) end end }) ChinaHatGroup:AddSlider('ChinaHatScaleZ', { Text = "Hat Scale Z", Min = 0.5, Max = 3, Default = getgenv().ChinaHatSettings.scale.Z, Rounding = 2, Compact = false, Callback = function(value) getgenv().ChinaHatSettings.scale = Vector3.new(getgenv().ChinaHatSettings.scale.X, getgenv().ChinaHatSettings.scale.Y, value) if getgenv().ChinaHatSettings.enabled and localPlayer.Character then local hat = localPlayer.Character:FindFirstChild("ChinaHat") if hat then hat:Destroy() end CreateHat(localPlayer.Character) end end }) local MatchaEsp = loadstring(game:HttpGet('https://raw.githubusercontent.com/alebinh60/asmobile/refs/heads/main/esplib'))() local esp = MatchaEsp local ESPGroup = Tabs.Visual:AddLeftGroupbox('ESP') -- Box ESP ESPGroup:AddToggle('BoxESPToggle', { Text = 'Box ESP', Default = false, Callback = function(Value) esp.State.BoxEnabled = Value end, }):AddColorPicker('BoxColorPicker', { Default = Color3.new(0.403922, 0.349020, 0.701961), Title = 'Box Color', Callback = function(Value) esp.Config.BoxColor = Value for _, espObj in pairs(esp.Caches.BoxCache) do espObj.Box.Color = Value end end, }) -- Box Gradient Toggle ESPGroup:AddToggle('BoxGradientToggle', { Text = 'Box Gradient', Default = false, Callback = function(Value) esp.Config.BoxGradientEnabled = Value end, }):AddColorPicker('BoxGradientColor1', { Default = Color3.new(0.403922, 0.34902, 0.701961), Title = 'Gradient Color 1', Callback = function(Value) esp.Config.BoxGradientColor1 = Value for _, espObj in pairs(esp.Caches.BoxCache) do espObj.Gradient.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, esp.Config.BoxGradientColor1), ColorSequenceKeypoint.new(0.5, esp.Config.BoxGradientColor2), ColorSequenceKeypoint.new(1, esp.Config.BoxGradientColor1) }) end end, }):AddColorPicker('BoxGradientColor2', { Default = Color3.new(0.8, 0.4, 1), Title = 'Gradient Color 2', Callback = function(Value) esp.Config.BoxGradientColor2 = Value for _, espObj in pairs(esp.Caches.BoxCache) do espObj.Gradient.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, esp.Config.BoxGradientColor1), ColorSequenceKeypoint.new(0.5, esp.Config.BoxGradientColor2), ColorSequenceKeypoint.new(1, esp.Config.BoxGradientColor1) }) end end, }) ESPGroup:AddSlider('BoxFillTransparencySlider', { Text = 'Box Fill Transparency', Default = 0.5, Min = 0, Max = 1, Rounding = 2, Compact = true, Callback = function(Value) esp.Config.BoxFillTransparency = Value for _, espObj in pairs(esp.Caches.BoxCache) do espObj.FillFrame.BackgroundTransparency = Value end end, }) -- Box Outline ESPGroup:AddToggle('BoxOutlineToggle', { Text = 'Box Outline', Default = true, Callback = function(Value) esp.Config.BoxOutlineEnabled = Value for _, espObj in pairs(esp.Caches.BoxCache) do espObj.Stroke.Enabled = Value espObj.BoxOutline.Visible = Value and not esp.Config.BoxGradientEnabled end end, }):AddColorPicker('BoxOutlineColor', { Default = Color3.new(0, 0, 0), Title = 'Outline Color', Callback = function(Value) esp.Config.BoxOutlineColor = Value for _, espObj in pairs(esp.Caches.BoxCache) do espObj.Stroke.Color = Value espObj.BoxOutline.Color = Value end end, }) -- Ring ESP ESPGroup:AddToggle('RingESPToggle', { Text = 'Ring ESP', Default = false, Callback = function(Value) if Value then esp:InitiateRing(Color3.new(1, 1, 1)) else esp.State.RingEnabled = false end end, }):AddColorPicker('RingColorPicker', { Default = Color3.new(1, 1, 1), Title = 'Ring Color', Callback = function(Value) esp.Config.RingColor = Value for _, data in pairs(esp.Caches.RingCache) do data.Ring.Color3 = Value end end, }) -- Name ESP ESPGroup:AddToggle('NameESPToggle', { Text = 'Name ESP', Default = false, Callback = function(Value) esp:InitiateName(Value) end, }) -- Distance ESP ESPGroup:AddToggle('DistanceESPToggle', { Text = 'Distance ESP', Default = false, Callback = function(Value) esp:InitiateDistance(Value) end, }) -- Skeleton ESP ESPGroup:AddToggle('SkeletonESPToggle', { Text = 'Skeleton ESP', Default = false, Callback = function(Value) if Value then esp:InitiateSkeleton(Color3.new(0.403922, 0.349020, 0.701961)) else esp.State.SkeletonEnabled = false end end, }):AddColorPicker('SkeletonColorPicker', { Default = Color3.new(0.403922, 0.349020, 0.701961), Title = 'Skeleton Color', Callback = function(Value) esp.Config.SkeletonColor = Value for _, skeleton in pairs(esp.Caches.SkeletonCache) do for _, line in pairs(skeleton) do line.Color = Value end end end, }) -- Health Bar ESP ESPGroup:AddToggle('HealthBarESPToggle', { Text = 'Health Bar', Default = false, Callback = function(Value) esp.State.HealthBarEnabled = Value end, }) --[[ESPGroup:AddToggle('ArmorBarESPToggle', { Text = 'Armor Bar', Default = false, Callback = function(Value) esp.State.ArmorBarEnabled = Value end, })]] -- Health Text ESP ESPGroup:AddToggle('HealthTextESPToggle', { Text = 'Health Text', Default = false, Callback = function(Value) esp.State.HealthTextEnabled = Value end, }) -- Health Bar Lerp Speed ESPGroup:AddSlider('HealthBarLerpSpeed', { Text = 'Health Bar Smoothness', Default = 0.15, Min = 0.05, Max = 0.5, Rounding = 2, Compact = true, Callback = function(Value) esp.Config.HealthBarLerpSpeed = Value end, }) -- Tracer ESP ESPGroup:AddToggle('TracerESPToggle', { Text = 'Tracer ESP', Default = false, Callback = function(Value) if Value then esp:InitiateTracer(Color3.new(0.403922, 0.349020, 0.701961), esp.Config.TracerOrigin) else esp.State.TracerEnabled = false end end, }):AddColorPicker('TracerColorPicker', { Default = Color3.new(0.403922, 0.349020, 0.701961), Title = 'Tracer Color', Callback = function(Value) esp.Config.TracerColor = Value for _, tracer in pairs(esp.Caches.TracerCache) do tracer.Color = Value end end, }) ESPGroup:AddDropdown('TracerOriginDropdown', { Text = 'Tracer Origin', Default = 'Bottom Screen', Values = {'Bottom Screen', 'Cursor', 'Top Screen'}, Compact = true, Callback = function(Value) esp.Config.TracerOrigin = Value end, }) -- Chams ESP ESPGroup:AddToggle('ChamsToggle', { Text = 'Chams', Default = false, Callback = function(Value) if Value then esp:InitiateChams(Color3.new(0.403922, 0.34902, 0.701961)) else esp.State.ChamsEnabled = false end end, }):AddColorPicker('ChamsColorPicker', { Default = Color3.new(0.403922, 0.34902, 0.701961), Title = 'Fill Color', Callback = function(Value) esp.Config.ChamsColor = Value for _, chams in pairs(esp.Caches.ChamsCache) do chams.FillColor = Value end end, }):AddColorPicker('ChamsOutlineColorPicker', { Default = Color3.new(1, 1, 1), Title = 'Outline Color', Callback = function(Value) esp.Config.ChamsOutlineColor = Value for _, chams in pairs(esp.Caches.ChamsCache) do chams.OutlineColor = Value end end, }) ESPGroup:AddSlider('ChamFillTransparency', { Text = 'Chams Transparency', Default = 0.5, Min = 0, Max = 1, Rounding = 2, Compact = true, Callback = function(Value) esp.Config.ChamsFillTransparency = Value for _, chams in pairs(esp.Caches.ChamsCache) do chams.FillTransparency = Value end end, }) -- Team Check ESPGroup:AddToggle('TeamCheckToggle', { Text = 'Team Check', Default = true, Callback = function(Value) esp:TeamCheck(Value) end, }) -- ESP Distance ESPGroup:AddSlider('ESPDistanceSlider', { Text = 'ESP Distance', Default = 1000, Min = 100, Max = 1000, Rounding = 0, Suffix = ' studs', Compact = true, Callback = function(Value) esp:SetDistance(Value) end, }) -- Initialize ESP esp:Initialize() task.wait(1) coroutine.wrap(function() -- Màu chung cho tất cả aura local AuraColor = Color3.new(1, 1, 1) -- Default white local AuraColors = { Safe = Color3.fromRGB(255, 255, 255) } -- Function để attach Aura Safe (mới, đầy đủ thuộc tính từ XML) local function AttachAuraSafe(character) local torso = character:FindFirstChild("UpperTorso") or character:FindFirstChild("Torso") if not torso then return end -- Destroy old for _, child in ipairs(torso:GetChildren()) do if child.Name == "AuraSafe" then child:Destroy() end end local container = Instance.new("Folder") container.Name = "AuraSafe" container.Parent = torso local pointLight = Instance.new("PointLight") pointLight.Range = 5 pointLight.Brightness = 3 pointLight.Color = AuraColors.Safe pointLight.Enabled = true pointLight.Shadows = false pointLight.Parent = container local glowAttach = Instance.new("Attachment") glowAttach.Name = "Glow" glowAttach.CFrame = CFrame.new(0, 0, 0) glowAttach.Parent = container local particleGlow = Instance.new("ParticleEmitter") particleGlow.Acceleration = Vector3.new(0, 0, 0) particleGlow.Brightness = 1 particleGlow.Color = ColorSequence.new(AuraColors.Safe) particleGlow.Drag = 0 particleGlow.EmissionDirection = Enum.NormalId.Back particleGlow.Enabled = true particleGlow.FlipbookFramerate = NumberRange.new(1, 1) particleGlow.FlipbookLayout = Enum.ParticleFlipbookLayout.None particleGlow.FlipbookMode = Enum.ParticleFlipbookMode.OneShot particleGlow.Lifetime = NumberRange.new(1, 1) particleGlow.LightEmission = 1 particleGlow.LightInfluence = 1 particleGlow.LockedToPart = true particleGlow.Orientation = Enum.ParticleOrientation.FacingCamera particleGlow.Rate = 4 particleGlow.RotSpeed = NumberRange.new(0, 0) particleGlow.Rotation = NumberRange.new(0, 0) particleGlow.Shape = Enum.ParticleEmitterShape.Box particleGlow.ShapeInOut = Enum.ParticleEmitterShapeInOut.Outward particleGlow.ShapePartial = 1 particleGlow.ShapeStyle = Enum.ParticleEmitterShapeStyle.Volume particleGlow.Size = NumberSequence.new({NumberSequenceKeypoint.new(0, 4.25), NumberSequenceKeypoint.new(0.5, 0), NumberSequenceKeypoint.new(1, 3.375)}) particleGlow.Speed = NumberRange.new(0.001, 0.001) particleGlow.SpreadAngle = Vector2.new(0, 0) particleGlow.Squash = NumberSequence.new(0, 0) particleGlow.Texture = "rbxassetid://1075864321" particleGlow.TimeScale = 1 particleGlow.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0, 1), NumberSequenceKeypoint.new(0.5, 0), NumberSequenceKeypoint.new(1, 1)}) particleGlow.VelocityInheritance = 0 particleGlow.WindAffectsDrag = false particleGlow.ZOffset = -1 particleGlow.Parent = glowAttach local attach2Upper = Instance.new("Attachment") attach2Upper.Name = "2" attach2Upper.CFrame = CFrame.new(0, 2.125, 0) attach2Upper.Parent = container local attach2Lower = Instance.new("Attachment") attach2Lower.Name = "2" attach2Lower.CFrame = CFrame.new(0, -3, 0) attach2Lower.Parent = container local beamSafe1 = Instance.new("Beam") beamSafe1.Attachment0 = attach2Lower beamSafe1.Attachment1 = attach2Upper beamSafe1.Brightness = 1 beamSafe1.Color = ColorSequence.new(AuraColors.Safe) beamSafe1.CurveSize0 = 0 beamSafe1.CurveSize1 = 0 beamSafe1.Enabled = true beamSafe1.FaceCamera = true beamSafe1.LightEmission = 1 beamSafe1.LightInfluence = 1 beamSafe1.Segments = 10 beamSafe1.Texture = "rbxassetid://7673945506" beamSafe1.TextureLength = 0.3 beamSafe1.TextureMode = Enum.TextureMode.Stretch beamSafe1.TextureSpeed = 2 beamSafe1.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0, 1), NumberSequenceKeypoint.new(0.5, 0), NumberSequenceKeypoint.new(1, 1)}) beamSafe1.Width0 = 6 beamSafe1.Width1 = 6 beamSafe1.ZOffset = 1 beamSafe1.Parent = container local beamSafe2 = Instance.new("Beam") beamSafe2.Attachment0 = attach2Lower beamSafe2.Attachment1 = attach2Upper beamSafe2.Brightness = 1 beamSafe2.Color = ColorSequence.new(AuraColors.Safe) beamSafe2.CurveSize0 = 0 beamSafe2.CurveSize1 = 0 beamSafe2.Enabled = true beamSafe2.FaceCamera = true beamSafe2.LightEmission = 1 beamSafe2.LightInfluence = 1 beamSafe2.Segments = 10 beamSafe2.Texture = "http://www.roblox.com/asset/?id=6045867277" beamSafe2.TextureLength = 0.1 beamSafe2.TextureMode = Enum.TextureMode.Stretch beamSafe2.TextureSpeed = 1 beamSafe2.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0, 1), NumberSequenceKeypoint.new(0.5, 0), NumberSequenceKeypoint.new(1, 1)}) beamSafe2.Width0 = 5 beamSafe2.Width1 = 5 beamSafe2.ZOffset = 1 beamSafe2.Parent = container local beamSafe3 = Instance.new("Beam") beamSafe3.Attachment0 = attach2Lower beamSafe3.Attachment1 = attach2Upper beamSafe3.Brightness = 1 beamSafe3.Color = ColorSequence.new(AuraColors.Safe) beamSafe3.CurveSize0 = 0 beamSafe3.CurveSize1 = 0 beamSafe3.Enabled = true beamSafe3.FaceCamera = true beamSafe3.LightEmission = 1 beamSafe3.LightInfluence = 1 beamSafe3.Segments = 10 beamSafe3.Texture = "rbxassetid://1849531275" beamSafe3.TextureLength = 0.1 beamSafe3.TextureMode = Enum.TextureMode.Stretch beamSafe3.TextureSpeed = 1 beamSafe3.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0, 1), NumberSequenceKeypoint.new(0.5, 0), NumberSequenceKeypoint.new(1, 1)}) beamSafe3.Width0 = 6 beamSafe3.Width1 = 6 beamSafe3.ZOffset = 1 beamSafe3.Parent = container local topSymbolAttach = Instance.new("Attachment") topSymbolAttach.Name = "1TopSymbol" topSymbolAttach.CFrame = CFrame.new(0, 5.75001049, 1) * CFrame.fromMatrix(Vector3.zero, Vector3.new(0, 0, -1), Vector3.new(-1, 0, 0), Vector3.new(0, 1, 0)) topSymbolAttach.Parent = container local bottomSymbolAttach = Instance.new("Attachment") bottomSymbolAttach.Name = "1BottomSymbol" bottomSymbolAttach.CFrame = CFrame.new(0, -1.24998808, 1) * CFrame.fromMatrix(Vector3.zero, Vector3.new(0, 0, -1), Vector3.new(-1, 0, 0), Vector3.new(0, 1, 0)) bottomSymbolAttach.Parent = container local beamSymbol = Instance.new("Beam") beamSymbol.Attachment0 = topSymbolAttach beamSymbol.Attachment1 = bottomSymbolAttach beamSymbol.Brightness = 1 beamSymbol.Color = ColorSequence.new(AuraColors.Safe) beamSymbol.CurveSize0 = 0.5 beamSymbol.CurveSize1 = 0.5 beamSymbol.Enabled = true beamSymbol.FaceCamera = false beamSymbol.LightEmission = 1 beamSymbol.LightInfluence = 1 beamSymbol.Segments = 100 beamSymbol.Texture = "rbxassetid://8285797183" beamSymbol.TextureLength = 1 beamSymbol.TextureMode = Enum.TextureMode.Stretch beamSymbol.TextureSpeed = 0 beamSymbol.Transparency = NumberSequence.new(0, 0) beamSymbol.Width0 = 7 beamSymbol.Width1 = 7 beamSymbol.ZOffset = 0 beamSymbol.Parent = container end -- Config global cho Aura (nếu cần, nhưng mỗi aura có color riêng từ picker) local ToggledAuras = {} -- Track auras bật: {name = true} -- Function chung để attach và re-attach khi reset character (100 năm kinh nghiệm fix leak memory) local function SetupAura(character, auraName) if not character then return end local AuraColor = AuraColors[auraName] -- Lấy color từ picker if auraName == "Safe" then AttachAuraSafe(character) end end -- Listen CharacterAdded để re-attach (an toàn, không loop vô tận) local Players = game:GetService("Players") local LocalPlayer = Players.LocalPlayer LocalPlayer.CharacterAdded:Connect(function(newChar) for auraName, toggled in pairs(ToggledAuras) do if toggled then task.wait(0.5) -- Đợi char load đầy đủ (fix error nil torso) SetupAura(newChar, auraName) end end end) local AuraGroup = Tabs.Visual:AddLeftGroupbox('AuraGroup') AuraGroup:AddToggle('SafeToggle', { Text = 'Safe', Default = false, Tooltip = 'Toggle Safe Aura', Callback = function(Value) ToggledAuras["Safe"] = Value if Value then SetupAura(LocalPlayer.Character, "Safe") else local torso = LocalPlayer.Character and (LocalPlayer.Character:FindFirstChild("UpperTorso") or LocalPlayer.Character:FindFirstChild("Torso")) if torso then local aura = torso:FindFirstChild("AuraSafe") if aura then aura:Destroy() end end end end }):AddColorPicker('SafeColor', { Default = AuraColors.Safe, Title = 'Aura Color', Callback = function(Value) AuraColors.Safe = Value if ToggledAuras["Safe"] then SetupAura(LocalPlayer.Character, "Safe") end end }) -- Init nếu char đã tồn tại (fix khi inject muộn) if LocalPlayer.Character then for auraName in pairs(ToggledAuras) do SetupAura(LocalPlayer.Character, auraName) end end end)() task.wait(1) coroutine.wrap(function() local SelfGroup = Tabs.Visual:AddRightGroupbox('Self') utility = utility or {} local Settings = { Visuals = { SelfESP = { Trail = { Color = Color3.fromRGB(113, 221, 75), Color2 = Color3.fromRGB(0, 0, 0), LifeTime = 1.6, Width = 0.1 }, }, Character_Trail = { Trail_Color = Color3.fromRGB(255, 255, 255), Trail_Life = 1.6 } } } Settings.Visuals.Character_Chams = { Enabled = false, Color = Color3.fromRGB(255, 255, 255), Material = Enum.Material.ForceField } Settings.Visuals.Weapon_Chams = { Enabled = false, Color = Color3.fromRGB(255, 255, 255), Material = Enum.Material.Neon } local function applyChams(character) if Settings.Visuals.Character_Chams.Enabled and character then for i, v in pairs(character:GetDescendants()) do if (v.Parent:IsA('Tool') and (v:IsA('MeshPart') or v:IsA('BasePart'))) then continue end if v:IsA('MeshPart') then v.Material = Settings.Visuals.Character_Chams.Material v.Color = Settings.Visuals.Character_Chams.Color v.TextureID = '' end if v:IsA('BasePart') then v.Material = Settings.Visuals.Character_Chams.Material v.Color = Settings.Visuals.Character_Chams.Color end end end if Settings.Visuals.Weapon_Chams.Enabled and character then local Gun = character:FindFirstChildOfClass("Tool") if Gun then for i, v in pairs(Gun:GetChildren()) do if v:IsA('MeshPart') then v.Material = Settings.Visuals.Weapon_Chams.Material v.Color = Settings.Visuals.Weapon_Chams.Color v.TextureID = '' end if v:IsA('BasePart') then v.Material = Settings.Visuals.Weapon_Chams.Material v.Color = Settings.Visuals.Weapon_Chams.Color end end end end end local function onChamsCharacter(character) task.wait(2) applyChams(character) character.ChildAdded:Connect(function(child) if child:IsA("Tool") then applyChams(character) end end) end localPlayer.CharacterAdded:Connect(onChamsCharacter) if localPlayer.Character then onChamsCharacter(localPlayer.Character) end SelfGroup:AddToggle('WeaponChamsEnabled', { Text = 'Weapon Enabled', Default = false, Callback = function(Value) Settings.Visuals.Weapon_Chams.Enabled = Value applyChams(localPlayer.Character) end }):AddColorPicker('WeaponChamsColor', { Default = Settings.Visuals.Weapon_Chams.Color, Title = 'Weapon Color', Callback = function(Value) Settings.Visuals.Weapon_Chams.Color = Value applyChams(localPlayer.Character) end }) SelfGroup:AddDropdown('WeaponChamsType', { Values = {'Neon', 'ForceField'}, Default = 'Neon', Multi = false, Text = 'Weapon Cham Type', Callback = function(Value) if Value == 'Neon' then Settings.Visuals.Weapon_Chams.Material = Enum.Material.Neon elseif Value == 'ForceField' then Settings.Visuals.Weapon_Chams.Material = Enum.Material.ForceField end applyChams(localPlayer.Character) end }) SelfGroup:AddToggle('ClientChamsEnabled', { Text = 'Client Enabled', Default = false, Callback = function(Value) Settings.Visuals.Character_Chams.Enabled = Value applyChams(localPlayer.Character) end }):AddColorPicker('ClientChamsColor', { Default = Settings.Visuals.Character_Chams.Color, Title = 'Client Color', Callback = function(Value) Settings.Visuals.Character_Chams.Color = Value applyChams(localPlayer.Character) end }) SelfGroup:AddDropdown('ClientChamsType', { Values = {'Force Field', 'Neon'}, Default = 'Force Field', Multi = false, Text = 'Client Cham Type', Callback = function(Value) if Value == 'Force Field' then Settings.Visuals.Character_Chams.Material = Enum.Material.ForceField elseif Value == 'Neon' then Settings.Visuals.Character_Chams.Material = Enum.Material.Neon end applyChams(localPlayer.Character) end }) local function ToggleTrail(Bool) for i,v in pairs(game.Players.LocalPlayer.Character:GetChildren()) do if v:IsA("BasePart") then if Bool then local BlaBla = Instance.new("Trail", v) BlaBla.Texture = "rbxassetid://1390780157" BlaBla.Parent = v local Pointer1 = Instance.new("Attachment", v) Pointer1.Name = "Pointer1" local Pointer2 = Instance.new("Attachment", game.Players.LocalPlayer.Character.HumanoidRootPart) Pointer2.Name = "Pointer2" BlaBla.Attachment0 = Pointer1 BlaBla.Attachment1 = Pointer2 BlaBla.Color = ColorSequence.new({ColorSequenceKeypoint.new(0, Settings.Visuals.Character_Trail.Trail_Color), ColorSequenceKeypoint.new(1, Settings.Visuals.Character_Trail.Trail_Color)}); BlaBla.Lifetime = Settings.Visuals.Character_Trail.Trail_Life BlaBla.Name = "BlaBla" -- Set the name else for _, child in ipairs(v:GetChildren()) do if child:IsA("Trail") and child.Name == 'BlaBla' then -- Corrected the condition child:Destroy() end end end end end end localPlayer.CharacterAdded:Connect(function() task.wait(2) if getgenv().trailEnabled then ToggleTrail(true) end end) if localPlayer.Character then if getgenv().trailEnabled then ToggleTrail(true) end end SelfGroup:AddToggle("TrailToggle", { Text = "Trail", Default = false, Callback = function(state) getgenv().trailEnabled = state ToggleTrail(state) end }):AddColorPicker("TrailColor", { Default = Settings.Visuals.Character_Trail.Trail_Color, Title = "Trail Color", Callback = function(color) Settings.Visuals.Character_Trail.Trail_Color = color if getgenv().trailEnabled then ToggleTrail(false) ToggleTrail(true) end end }) SelfGroup:AddSlider("TrailLifetime", { Text = "Trail Lifetime", Default = 1.6, Min = 0.1, Max = 5, Rounding = 1, Callback = function(value) Settings.Visuals.Character_Trail.Trail_Life = value if getgenv().trailEnabled then ToggleTrail(false) ToggleTrail(true) end end }) utility.trail_character = function(Bool) local character = localPlayer.Character or localPlayer.CharacterAdded:Wait() local humanoidRootPart = character:WaitForChild("HumanoidRootPart") if Bool then if not humanoidRootPart:FindFirstChild("Baba") then local Baba = Instance.new("Trail", humanoidRootPart) Baba.Name = "Baba" humanoidRootPart.Material = Enum.Material.Neon local attachment0 = Instance.new("Attachment", humanoidRootPart) attachment0.Position = Vector3.new(0, 1, 0) local attachment1 = Instance.new("Attachment", humanoidRootPart) attachment1.Position = Vector3.new(0, -1, 0) Baba.Attachment0 = attachment0 Baba.Attachment1 = attachment1 Baba.Color = ColorSequence.new(Settings.Visuals.SelfESP.Trail.Color, Settings.Visuals.SelfESP.Trail.Color2) -- Gradient effect Baba.Lifetime = Settings.Visuals.SelfESP.Trail.LifeTime Baba.Transparency = NumberSequence.new(0, 0) Baba.LightEmission = 0.2 Baba.Brightness = 10 Baba.WidthScale = NumberSequence.new{ NumberSequenceKeypoint.new(0, Settings.Visuals.SelfESP.Trail.Width), NumberSequenceKeypoint.new(1, 0) } end else for _, child in ipairs(humanoidRootPart:GetChildren()) do if child:IsA("Trail") and child.Name == 'Baba' then child:Destroy() end end end end local function onCharacterAdded(character) if getgenv().trailEnabled then utility.trail_character(true) end end localPlayer.CharacterAdded:Connect(onCharacterAdded) if localPlayer.Character then onCharacterAdded(localPlayer.Character) end SelfGroup:AddToggle("TrailTogglev2", { Text = "Trailv2", Default = false, Callback = function(state) getgenv().trailEnabled = state utility.trail_character(state) end }):AddColorPicker("TrailColorv2", { Default = Settings.Visuals.SelfESP.Trail.Color, Title = "Trail Color", Callback = function(color) Settings.Visuals.SelfESP.Trail.Color = color if getgenv().trailEnabled then utility.trail_character(false) utility.trail_character(true) end end }):AddColorPicker("TrailColor2v2", { Default = Settings.Visuals.SelfESP.Trail.Color2, Title = "Trail Color 2", Callback = function(color) Settings.Visuals.SelfESP.Trail.Color2 = color if getgenv().trailEnabled then utility.trail_character(false) utility.trail_character(true) end end }) SelfGroup:AddSlider("TrailLifetimev2", { Text = "Trail Lifetime v2", Default = 1.6, Min = 0.1, Max = 5, Rounding = 1, Callback = function(value) Settings.Visuals.SelfESP.Trail.LifeTime = value if getgenv().trailEnabled then utility.trail_character(false) utility.trail_character(true) end end }) end)() task.wait(1) coroutine.wrap(function() local BulletTracerGroup = Tabs.Visual:AddLeftGroupbox('BulletTracer') matchacc.BulletTracers = { Enabled = false, TextureID = "rbxassetid://12781852245", Color = Color3.new(255, 255, 255), Size = 0.4, Transparency = 0, TimeAlive = 3, } -- // Bullet Tracers local function bullettracerlol(startPos, endPos) local startPart = Instance.new("Part") startPart.Name = "BulletStart" startPart.Anchored = true startPart.CanCollide = false startPart.Transparency = 1 startPart.Size = Vector3.new(0.2, 0.2, 0.2) startPart.Material = Enum.Material.ForceField startPart.Color = Color3.new(1, 0, 0) startPart.Transparency = 1 startPart.CanTouch = false startPart.CanQuery = false startPart.Massless = true startPart.CollisionGroupId = 0 startPart.Position = startPos startPart.Parent = workspace local endPart = Instance.new("Part") endPart.Name = "BulletEnd" endPart.Anchored = true endPart.CanCollide = false endPart.Size = Vector3.new(0.2, 0.2, 0.2) endPart.Material = Enum.Material.ForceField endPart.Color = Color3.new(1, 0, 0) endPart.Transparency = 1 endPart.CanTouch = false endPart.CanQuery = false endPart.Massless = true endPart.CollisionGroupId = 0 endPart.Position = endPos endPart.Parent = workspace local beam = Instance.new("Beam") beam.Attachment0 = Instance.new("Attachment", startPart) beam.Attachment1 = Instance.new("Attachment", endPart) beam.Parent = startPart beam.FaceCamera = true beam.Color = ColorSequence.new(matchacc.BulletTracers.Color) beam.Texture = matchacc.BulletTracers.TextureID beam.LightEmission = 1 beam.Transparency = NumberSequence.new(matchacc.BulletTracers.Transparency) beam.Width0 = matchacc.BulletTracers.Size beam.Width1 = matchacc.BulletTracers.Size task.delay(matchacc.BulletTracers.TimeAlive, function() if beam and beam.Parent then local tweenInfo = TweenInfo.new(0.3, Enum.EasingStyle.Quad, Enum.EasingDirection.Out) local tween = TweenService:Create(beam, tweenInfo, { Width0 = 0, Width1 = 0 }) tween:Play() tween.Completed:Wait() end if startPart and startPart.Parent then startPart:Destroy() end if endPart and endPart.Parent then endPart:Destroy() end if beam and beam.Parent then beam:Destroy() end end) return startPart, endPart, beam end if getnamecallmethod and MainEvent ~= nil then local mt = getrawmetatable(MainEvent) setreadonly(mt, false) local cloned_mt = table.clone(mt) local oldnamecall = cloned_mt.__namecall setrawmetatable(MainEvent, { __namecall = (function(self, ...) local args = { ... } if getnamecallmethod() == "FireServer" then if args[1] == "ShootGun" then -- Bullet Tracers if matchacc.BulletTracers.Enabled then bullettracerlol(args[3], args[4]) end end end return oldnamecall(self, unpack(args)) end), __index = cloned_mt.__index, __newindex = cloned_mt.__newindex, __call = cloned_mt.__call, __tostring = cloned_mt.__tostring, }) end BulletTracerGroup:AddToggle('BulletTracersEnabled', { Text = 'Enabled', Default = false, Callback = function(Value) matchacc.BulletTracers.Enabled = Value if not getnamecallmethod then Library:Notify("Your executor does not support this feature") end end }):AddColorPicker('BulletTracersColor', { Default = matchacc.BulletTracers.Color, Title = 'Color', Callback = function(Value) matchacc.BulletTracers.Color = Value end }) BulletTracerGroup:AddDropdown('BulletTracersTexture', { Values = {"Beam", "Lightning", "Heartrate", "Chain", "Glitch", "Swirl"}, Default = "Beam", Multi = false, Text = 'Texture', Callback = function(Value) if Value == "Beam" then matchacc.BulletTracers.TextureID = "rbxassetid://12781852245" elseif Value == "Lightning" then matchacc.BulletTracers.TextureID = "rbxassetid://446111271" elseif Value == "Heartrate" then matchacc.BulletTracers.TextureID = "rbxassetid://5830549480" elseif Value == "Chain" then matchacc.BulletTracers.TextureID = "rbxassetid://9632168658" elseif Value == "Glitch" then matchacc.BulletTracers.TextureID = "rbxassetid://8089467613" elseif Value == "Swirl" then matchacc.BulletTracers.TextureID = "rbxassetid://5638168605" end end }) BulletTracerGroup:AddSlider('BulletTracersSize', { Text = 'Size', Default = 0.4, Min = 0.1, Max = 3, Rounding = 2, Callback = function(Value) matchacc.BulletTracers.Size = Value end }) BulletTracerGroup:AddSlider('BulletTracersTransparency', { Text = 'Transparency', Default = 0, Min = 0, Max = 1, Rounding = 2, Callback = function(Value) matchacc.BulletTracers.Transparency = Value end }) BulletTracerGroup:AddSlider('BulletTracersTimeAlive', { Text = 'Time Alive', Default = 3, Min = 1, Max = 10, Rounding = 0, Callback = function(Value) matchacc.BulletTracers.TimeAlive = Value end }) local HudUi = Tabs.Visual:AddLeftGroupbox('Hud Changer') local defaultTextHP = " Health " local defaultTextArmor = " Armor" local defaultTextEnergy = "Dark Energy " local defaultColorHP = Color3.new(0.941176, 0.031373, 0.819608) local defaultColorArmor = Color3.new(0.376471, 0.031373, 0.933333) local defaultColorEnergy = Color3.new(0.768627, 0.039216, 0.952941) local textHP, textArmor, textEnergy = defaultTextHP, defaultTextArmor, defaultTextEnergy local colorHP, colorArmor, colorEnergy = defaultColorHP, defaultColorArmor, defaultColorEnergy local toggleHP, toggleArmor, toggleEnergy = false, false, false local function skibiditoilet() local player = game.Players.LocalPlayer local playerGui = player:WaitForChild("PlayerGui") local gui = playerGui:WaitForChild("MainScreenGui").Bar if toggleHP then gui.HP.TextLabel.Text = textHP gui.HP.bar.BackgroundColor3 = colorHP end if toggleArmor then gui.Armor.TextLabel.Text = textArmor gui.Armor.bar.BackgroundColor3 = colorArmor end if toggleEnergy then gui.Energy.TextLabel.Text = textEnergy gui.Energy.bar.BackgroundColor3 = colorEnergy end end HudUi:AddToggle('ToggleHP', { Text = 'Customize Health', Default = false, Callback = function(state) toggleHP = state skibiditoilet() end }):AddColorPicker('ColorHP', { Text = 'Health Color', Default = defaultColorHP, Callback = function(value) if toggleHP then colorHP = value skibiditoilet() end end }) HudUi:AddInput('TextHP', { Text = 'Health Text', Default = defaultTextHP, Callback = function(value) if toggleHP then textHP = value skibiditoilet() end end }) HudUi:AddToggle('ToggleArmor', { Text = 'Customize Armor', Default = false, Callback = function(state) toggleArmor = state skibiditoilet() end }):AddColorPicker('ColorArmor', { Text = 'Armor Color', Default = defaultColorArmor, Callback = function(value) if toggleArmor then colorArmor = value skibiditoilet() end end }) HudUi:AddInput('TextArmor', { Text = 'Armor Text', Default = defaultTextArmor, Callback = function(value) if toggleArmor then textArmor = value skibiditoilet() end end }) HudUi:AddToggle('ToggleEnergy', { Text = 'Customize Energy', Default = false, Callback = function(state) toggleEnergy = state skibiditoilet() end }):AddColorPicker('ColorEnergy', { Text = 'Energy Color', Default = defaultColorEnergy, Callback = function(value) if toggleEnergy then colorEnergy = value skibiditoilet() end end }) HudUi:AddInput('TextEnergy', { Text = 'Energy Text', Default = defaultTextEnergy, Callback = function(value) if toggleEnergy then textEnergy = value skibiditoilet() end end }) local player = game.Players.LocalPlayer player.CharacterAdded:Connect(function() if toggleHP or toggleArmor or toggleEnergy then player:WaitForChild("PlayerGui") skibiditoilet() end end) end)() local MovementGroup = Tabs.Character:AddLeftGroupbox('Movement') task.wait(1) coroutine.wrap(function() local CrosshairGroup = Tabs.Visual:AddRightGroupbox('Crosshair') local Client = players.LocalPlayer local mouse = Client:GetMouse() local RunService = game:GetService("RunService") local Camera = workspace.CurrentCamera -- Visual state storage (parameters only) local visualState = { time = 0, rotationProgress = 0, currentRotationSpeed = 0.8, smoothedRotation = 5, lines = { top = {Size = UDim2.new(0, 3, 0, 25), Position = UDim2.new(0.5, -1.5, 0, 0), Color = Color3.new(1,1,1)}, bottom = {Size = UDim2.new(0, 3, 0, 25), Position = UDim2.new(0.5, -1.5, 1, -25), Color = Color3.new(1,1,1)}, left = {Size = UDim2.new(0, 25, 0, 3), Position = UDim2.new(0, 0, 0.5, -1.5), Color = Color3.new(1,1,1)}, right = {Size = UDim2.new(0, 25, 0, 3), Position = UDim2.new(1, -25, 0.5, -1.5), Color = Color3.new(1,1,1)}, }, -- Text params text = { Text = "Matcha.cc", Position = UDim2.new(0, 0, 0, 0), Color = Color3.new(1,1,1), Font = Enum.Font.Arcade, TextScaled = true, } } local screenGui local aimContainer local topLine, bottomLine, leftLine, rightLine local textLabel local lineLength = 25 local lineThickness = 3 local baseRotationSpeed = 0.8 local pulseSpeed = 2.5 local minLength = -10 local maxLength = -30 local time = 0 local rotationProgress = 0 local currentRotationSpeed = baseRotationSpeed local smoothedRotation = 5 local isCrosshairEnabled = false local isTextEnabled = true local isRainbowEnabled = false local isFollowTargetEnabled = false local fixedColor = Color3.new(1,1,1) local targetAim = nil -- Function to get the closest target local function getClosestTarget() local closestPlayer = nil local shortestDistance = math.huge for _, player in pairs(players:GetPlayers()) do if player ~= Client and player.Character then local character = player.Character local humanoid = character:FindFirstChild("Humanoid") local upperTorso = character:FindFirstChild("UpperTorso") local torso = character:FindFirstChild("Torso") or character:FindFirstChild("HumanoidRootPart") if humanoid and humanoid.Health > 0 and (upperTorso or torso) then local targetPart = upperTorso or torso local screenPos, onScreen = Camera:WorldToScreenPoint(targetPart.Position) if onScreen then local mousePos = Vector2.new(mouse.X, mouse.Y) local targetPos = Vector2.new(screenPos.X, screenPos.Y) local distance = (mousePos - targetPos).Magnitude if distance < shortestDistance then shortestDistance = distance closestPlayer = targetPart end end end end end return closestPlayer end local function createLine(parent, size, position, color) local frame = Instance.new("Frame") frame.Size = size frame.Position = position frame.BackgroundColor3 = color frame.BorderSizePixel = 0 frame.ZIndex = 5 frame.Parent = parent local stroke = Instance.new("UIStroke") stroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border stroke.Color = Color3.new(0,0,0) stroke.Thickness = 1 stroke.Parent = frame return frame end -- Helper to create text with outline local function createTextLabel(parent, text, position, color, font, scaled) local label = Instance.new("TextLabel") label.Text = text label.Position = position label.TextColor3 = color label.Font = font label.TextScaled = scaled label.BackgroundTransparency = 1 label.Size = UDim2.new(0, 150, 0, 23) label.ZIndex = 10 label.Parent = parent local stroke = Instance.new("UIStroke") stroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Contextual stroke.Color = Color3.new(0,0,0) stroke.Thickness = 1 stroke.LineJoinMode = Enum.LineJoinMode.Round stroke.Parent = label return label end -- Clear previous GUI if exists local function clearGui() if screenGui then screenGui:Destroy() screenGui = nil end end -- Create GUI elements fresh and restore from visualState parameters local function createGui() clearGui() screenGui = Instance.new("ScreenGui") screenGui.Name = "AimSightGUI" screenGui.ResetOnSpawn = false screenGui.Parent = Client:WaitForChild("PlayerGui") aimContainer = Instance.new("Frame") aimContainer.BackgroundTransparency = 1 aimContainer.Size = UDim2.new(0, 25, 0, 25) aimContainer.AnchorPoint = Vector2.new(0.5, 0.5) aimContainer.Parent = screenGui -- Create lines with saved params topLine = createLine(aimContainer, visualState.lines.top.Size, visualState.lines.top.Position, visualState.lines.top.Color) bottomLine = createLine(aimContainer, visualState.lines.bottom.Size, visualState.lines.bottom.Position, visualState.lines.bottom.Color) leftLine = createLine(aimContainer, visualState.lines.left.Size, visualState.lines.left.Position, visualState.lines.left.Color) rightLine = createLine(aimContainer, visualState.lines.right.Size, visualState.lines.right.Position, visualState.lines.right.Color) -- Create text label with saved params textLabel = createTextLabel(screenGui, visualState.text.Text, visualState.text.Position, visualState.text.Color, visualState.text.Font, visualState.text.TextScaled) textLabel.Visible = isTextEnabled end local function saveVisualState() visualState.time = time visualState.rotationProgress = rotationProgress visualState.currentRotationSpeed = currentRotationSpeed visualState.smoothedRotation = smoothedRotation visualState.lines.top.Size = topLine.Size visualState.lines.top.Position = topLine.Position visualState.lines.top.Color = topLine.BackgroundColor3 visualState.lines.bottom.Size = bottomLine.Size visualState.lines.bottom.Position = bottomLine.Position visualState.lines.bottom.Color = bottomLine.BackgroundColor3 visualState.lines.left.Size = leftLine.Size visualState.lines.left.Position = leftLine.Position visualState.lines.left.Color = leftLine.BackgroundColor3 visualState.lines.right.Size = rightLine.Size visualState.lines.right.Position = rightLine.Position visualState.lines.right.Color = rightLine.BackgroundColor3 visualState.text.Text = textLabel.Text visualState.text.Position = textLabel.Position visualState.text.Color = textLabel.TextColor3 visualState.text.Font = textLabel.Font visualState.text.TextScaled = textLabel.TextScaled end local function restoreVisualState() if not (topLine and bottomLine and leftLine and rightLine and textLabel) then return end time = visualState.time or 0 rotationProgress = visualState.rotationProgress or 0 currentRotationSpeed = visualState.currentRotationSpeed or baseRotationSpeed smoothedRotation = visualState.smoothedRotation or 5 topLine.Size = visualState.lines.top.Size or topLine.Size topLine.Position = visualState.lines.top.Position or topLine.Position topLine.BackgroundColor3 = visualState.lines.top.Color or topLine.BackgroundColor3 bottomLine.Size = visualState.lines.bottom.Size or bottomLine.Size bottomLine.Position = visualState.lines.bottom.Position or bottomLine.Position bottomLine.BackgroundColor3 = visualState.lines.bottom.Color or bottomLine.BackgroundColor3 leftLine.Size = visualState.lines.left.Size or leftLine.Size leftLine.Position = visualState.lines.left.Position or leftLine.Position leftLine.BackgroundColor3 = visualState.lines.left.Color or leftLine.BackgroundColor3 rightLine.Size = visualState.lines.right.Size or rightLine.Size rightLine.Position = visualState.lines.right.Position or rightLine.Position rightLine.BackgroundColor3 = visualState.lines.right.Color or rightLine.BackgroundColor3 textLabel.Text = visualState.text.Text or textLabel.Text textLabel.Position = visualState.text.Position or textLabel.Position textLabel.TextColor3 = visualState.text.Color or textLabel.TextColor3 textLabel.Font = visualState.text.Font or textLabel.Font textLabel.TextScaled = visualState.text.TextScaled or textLabel.TextScaled end -- Function to get rainbow color by time local function getRainbowColor(t) local r = math.sin(t * 0.6) * 0.5 + 0.5 local g = math.sin(t * 0.6 + 2) * 0.5 + 0.5 local b = math.sin(t * 0.6 + 4) * 0.5 + 0.5 return Color3.new(r, g, b) end local function calculateRotationSpeed(progress) local slowdownStart = 0.6 local slowdownDuration = 0.35 local minSlowdownSpeed = 0.3 local baseRotationSpeedLocal = baseRotationSpeed if progress >= slowdownStart then local slowdownProgress = (progress - slowdownStart) / slowdownDuration local easedProgress = slowdownProgress * slowdownProgress local slowdownFactor = 1 - (easedProgress * (1 - minSlowdownSpeed)) return baseRotationSpeedLocal * math.max(slowdownFactor, minSlowdownSpeed) else return baseRotationSpeedLocal end end local function smoothRotation(currentRot, targetRot, smoothing) return currentRot + (targetRot - currentRot) * smoothing end local function smoothPulse(t, speed) local rawPulse = math.sin(t * speed) * 0.5 + 0.5 return rawPulse * rawPulse end -- On character added, recreate GUI and restore state local function onCharacterAdded(character) if isCrosshairEnabled then createGui() restoreVisualState() end local humanoid = character:WaitForChild("Humanoid") humanoid.Died:Connect(function() saveVisualState() end) end Client.CharacterAdded:Connect(onCharacterAdded) if Client.Character then onCharacterAdded(Client.Character) end RunService.RenderStepped:Connect(function(deltaTime) if not (aimContainer and topLine and bottomLine and leftLine and rightLine and textLabel) then return end time = time + deltaTime -- fallback mouse position always safe local mouseX = mouse.X local mouseY = mouse.Y -- default (no follow target) local targetX = mouseX local targetY = mouseY -- if following target, try override if isFollowTargetEnabled and matchacc and matchacc.TargetAim and matchacc.TargetAim.Target ~= "None" then local targetPlayer = Players:FindFirstChild(matchacc.TargetAim.Target) if targetPlayer and targetPlayer.Character then local aimPart = targetPlayer.Character:FindFirstChild("UpperTorso") or targetPlayer.Character:FindFirstChild("HumanoidRootPart") or targetPlayer.Character:FindFirstChild("Torso") if aimPart then local screenPos, onScreen = Camera:WorldToScreenPoint(aimPart.Position) if onScreen then targetX = screenPos.X targetY = screenPos.Y end end end end -- ALWAYS SAFE NOW aimContainer.Position = UDim2.new(0,targetX,0,targetY) textLabel.Position = UDim2.new(0,targetX - 70,0,targetY + 50) rotationProgress = (rotationProgress + currentRotationSpeed * deltaTime) % 1 currentRotationSpeed = calculateRotationSpeed(rotationProgress) local targetRotation = rotationProgress * 360 smoothedRotation = smoothRotation(smoothedRotation, targetRotation, 1) aimContainer.Rotation = smoothedRotation local pulse = smoothPulse(time, pulseSpeed) local currentLength = minLength + (maxLength - minLength) * pulse topLine.Size = UDim2.new(0, lineThickness, 0, currentLength) bottomLine.Size = UDim2.new(0, lineThickness, 0, currentLength) leftLine.Size = UDim2.new(0, currentLength, 0, lineThickness) rightLine.Size = UDim2.new(0, currentLength, 0, lineThickness) topLine.Position = UDim2.new(0.5, -lineThickness / 2, 0, 0) bottomLine.Position = UDim2.new(0.5, -lineThickness / 2, 1, -currentLength) leftLine.Position = UDim2.new(0, 0, 0.5, -lineThickness / 2) rightLine.Position = UDim2.new(1, -currentLength, 0.5, -lineThickness / 2) local color = isRainbowEnabled and getRainbowColor(time) or fixedColor topLine.BackgroundColor3 = color bottomLine.BackgroundColor3 = color leftLine.BackgroundColor3 = color rightLine.BackgroundColor3 = color textLabel.TextColor3 = color end) -- UI Controls CrosshairGroup:AddToggle('CrosshairEnabled', { Text = 'Enabled', Default = false, Callback = function(Value) isCrosshairEnabled = Value if Value then createGui() restoreVisualState() else clearGui() end end }):AddColorPicker('CrosshairColor', { Default = Color3.fromRGB(255, 255, 255), Title = 'Color', Callback = function(Value) fixedColor = Value if not isRainbowEnabled and topLine and bottomLine and leftLine and rightLine and textLabel then topLine.BackgroundColor3 = Value bottomLine.BackgroundColor3 = Value leftLine.BackgroundColor3 = Value rightLine.BackgroundColor3 = Value textLabel.TextColor3 = Value end end }) CrosshairGroup:AddToggle('CrosshairFollowTarget', { Text = 'Follow Target', Default = false, Tooltip = 'Crosshair will follow the closest enemy on screen', Callback = function(Value) isFollowTargetEnabled = Value end }) CrosshairGroup:AddToggle('CrosshairText', { Text = 'Text', Default = true, Callback = function(Value) isTextEnabled = Value if textLabel then textLabel.Visible = Value end end }) CrosshairGroup:AddSlider('CrosshairSpinSpeed', { Text = 'Spin Speed', Default = 0.8, Min = 0.1, Max = 2, Rounding = 2, Callback = function(Value) baseRotationSpeed = Value end }) CrosshairGroup:AddSlider('CrosshairLineLength', { Text = 'Line Length', Default = 25, Min = 5, Max = 100, Rounding = 1, Callback = function(Value) lineLength = Value -- Update initial line sizes in visualState visualState.lines.top.Size = UDim2.new(0, 3, 0, Value) visualState.lines.bottom.Size = UDim2.new(0, 3, 0, Value) visualState.lines.left.Size = UDim2.new(0, Value, 0, 3) visualState.lines.right.Size = UDim2.new(0, Value, 0, 3) -- Update the pulse range minLength = -Value * 0.4 maxLength = -Value * 1.2 end }) CrosshairGroup:AddToggle('CrosshairRainbow', { Text = 'Rainbow', Default = false, Callback = function(Value) isRainbowEnabled = Value end }) local RainGroup = Tabs.Visual:AddRightGroupbox('Rain') getgenv().RainSettings = { Enabled = false, Color = Color3.fromRGB(255, 255, 255), Lifetime = 5, Rate = 1000, Speed = 100, } getgenv().SnowSettings = { Enabled = false, Color = Color3.fromRGB(255, 255, 255), Lifetime = 100, -- Default max lifetime, min fixed at 5 as per XML Rate = 100, Speed = 10, } local rainPart = nil local rainEmitter = nil local rainConnection = nil local snowPart = nil local snowEmitter = nil local snowConnection = nil local function rainParticleEmitter() if rainPart then rainPart:Destroy() rainPart = nil rainEmitter = nil end rainPart = Instance.new("Part") rainPart.Size = Vector3.new(51.8, 0.001, 52.084) rainPart.CanCollide = false rainPart.Anchored = true rainPart.Transparency = 1 rainPart.Parent = workspace rainEmitter = Instance.new("ParticleEmitter") rainEmitter.Color = ColorSequence.new(RainSettings.Color) rainEmitter.LightEmission = 1 rainEmitter.Orientation = Enum.ParticleOrientation.FacingCameraWorldUp rainEmitter.Size = NumberSequence.new(0.4) rainEmitter.Squash = NumberSequence.new(4) rainEmitter.Texture = "rbxassetid://129110349" rainEmitter.EmissionDirection = Enum.NormalId.Bottom rainEmitter.Lifetime = NumberRange.new(RainSettings.Lifetime) rainEmitter.Rate = RainSettings.Rate rainEmitter.Speed = NumberRange.new(RainSettings.Speed) rainEmitter.LockedToPart = true rainEmitter.Enabled = true rainEmitter.Parent = rainPart end local function snowParticleEmitter() if snowPart then snowPart:Destroy() snowPart = nil snowEmitter = nil end snowPart = Instance.new("Part") snowPart.Name = "SnowEmitterPart" snowPart.Size = Vector3.new(51.8, 0.001, 52.084) snowPart.Anchored = true snowPart.CanCollide = false snowPart.CanQuery = true snowPart.CanTouch = true snowPart.CastShadow = true snowPart.CollisionGroup = "Default" snowPart.CollisionGroupId = 0 snowPart.Material = Enum.Material.Plastic snowPart.PivotOffset = CFrame.new(0,0,0) snowPart.Reflectance = 0 snowPart.RootPriority = 0 snowPart.RotVelocity = Vector3.new(0,0,0) snowPart.Transparency = 1 snowPart.Velocity = Vector3.new(0,0,0) snowPart.Parent = workspace snowEmitter = Instance.new("ParticleEmitter") snowEmitter.Acceleration = Vector3.new(0,0,0) snowEmitter.Brightness = 1 snowEmitter.Color = ColorSequence.new(SnowSettings.Color) snowEmitter.Drag = 0 snowEmitter.EmissionDirection = Enum.NormalId.Bottom snowEmitter.Enabled = true snowEmitter.FlipbookFramerate = NumberRange.new(1,1) snowEmitter.FlipbookLayout = Enum.ParticleFlipbookLayout.None snowEmitter.FlipbookMode = Enum.ParticleFlipbookMode.Loop snowEmitter.Lifetime = NumberRange.new(5, 100) -- Min 5, Max from settings snowEmitter.LightEmission = 0 snowEmitter.LightInfluence = 0 snowEmitter.LockedToPart = false snowEmitter.Orientation = Enum.ParticleOrientation.FacingCamera snowEmitter.Rate = SnowSettings.Rate snowEmitter.RotSpeed = NumberRange.new(360,360) snowEmitter.Rotation = NumberRange.new(20,20) snowEmitter.Shape = Enum.ParticleEmitterShape.Box snowEmitter.ShapeInOut = Enum.ParticleEmitterShapeInOut.Outward snowEmitter.ShapePartial = 1 snowEmitter.ShapeStyle = Enum.ParticleEmitterShapeStyle.Volume snowEmitter.Size = NumberSequence.new({ NumberSequenceKeypoint.new(0, 0.2, 0.4), -- Lúc bắt đầu hạt có size random 0.2–0.4 NumberSequenceKeypoint.new(1, 0.2, 0.4) -- Lúc kết thúc hạt cũng random 0.2–0.4 }) snowEmitter.Speed = NumberRange.new(SnowSettings.Speed) snowEmitter.SpreadAngle = Vector2.new(90,90) snowEmitter.Squash = NumberSequence.new(0) snowEmitter.Texture = "rbxassetid://129110349" snowEmitter.TimeScale = 1 snowEmitter.Transparency = NumberSequence.new({ NumberSequenceKeypoint.new(0, 0.8625), NumberSequenceKeypoint.new(0.15, 0), NumberSequenceKeypoint.new(0.196326, 0.70625), NumberSequenceKeypoint.new(1, 0), }) snowEmitter.VelocityInheritance = 0 snowEmitter.WindAffectsDrag = false snowEmitter.ZOffset = 0 snowEmitter.Parent = snowPart end RainGroup:AddToggle('RainEnabled', { Text = 'Enabled', Default = false, Callback = function(Value) RainSettings.Enabled = Value if Value then rainParticleEmitter() rainConnection = RunService.Heartbeat:Connect(function() local camPos = Camera.CFrame.Position rainPart.CFrame = CFrame.new(camPos + Vector3.new(0, 30, 0)) end) else if rainConnection then rainConnection:Disconnect() rainConnection = nil end if rainPart then rainPart:Destroy() rainPart = nil rainEmitter = nil end end end }):AddColorPicker('RainColor', { Default = RainSettings.Color, Title = 'Rain Color', Callback = function(Value) RainSettings.Color = Value if RainSettings.Enabled then rainParticleEmitter() end end }) RainGroup:AddInput('RainLifetime', { Default = tostring(RainSettings.Lifetime), Numeric = true, Finished = true, Text = 'Lifetime', Callback = function(Value) local num = tonumber(Value) if num then RainSettings.Lifetime = num if RainSettings.Enabled then rainParticleEmitter() end end end }) RainGroup:AddSlider('RainRate', { Text = 'Amount', Default = RainSettings.Rate, Min = 1, Max = 10000, Rounding = 0, Callback = function(Value) RainSettings.Rate = Value if RainSettings.Enabled then rainParticleEmitter() end end }) RainGroup:AddSlider('RainSpeed', { Text = 'Speed', Default = RainSettings.Speed, Min = 10, Max = 1000, Rounding = 0, Callback = function(Value) RainSettings.Speed = Value if RainSettings.Enabled then rainParticleEmitter() end end }) RainGroup:AddToggle('SnowEnabled', { Text = 'Snow Enabled', Default = false, Callback = function(Value) SnowSettings.Enabled = Value if Value then snowParticleEmitter() snowConnection = RunService.Heartbeat:Connect(function() local camPos = Camera.CFrame.Position snowPart.CFrame = CFrame.new(camPos + Vector3.new(0, 5, 0)) end) else if snowConnection then snowConnection:Disconnect() snowConnection = nil end if snowPart then snowPart:Destroy() snowPart = nil snowEmitter = nil end end end }):AddColorPicker('SnowColor', { Default = SnowSettings.Color, Title = 'Snow Color', Callback = function(Value) SnowSettings.Color = Value if SnowSettings.Enabled then snowParticleEmitter() end end }) RainGroup:AddSlider('SnowRate', { Text = 'Snow Amount', Default = SnowSettings.Rate, Min = 1, Max = 1000, Rounding = 0, Callback = function(Value) SnowSettings.Rate = Value if SnowSettings.Enabled then snowParticleEmitter() end end }) RainGroup:AddSlider('SnowSpeed', { Text = 'Snow Speed', Default = SnowSettings.Speed, Min = 1, Max = 1000, Rounding = 0, Callback = function(Value) SnowSettings.Speed = Value if SnowSettings.Enabled then snowParticleEmitter() end end }) matchacc.Movement = { Speed = { Enabled = false, Keybind = false, Speed = 20, }, Fly = { Enabled = false, Keybind = false, Speed = 20, }, } MovementGroup:AddToggle('SpeedEnabled', { Text = 'Speed Enabled', Default = false, Callback = function(Value) matchacc.Movement.Speed.Enabled = Value end }):AddKeyPicker('SpeedKey', { Default = 'none', SyncToggleState = true, Mode = 'Toggle', Text = 'Speed Key', Callback = function(Value) matchacc.Movement.Speed.Keybind = Value end }) MovementGroup:AddSlider('SpeedValue', { Text = 'Speed', Default = 20, Min = 1, Max = 100, Rounding = 0, Callback = function(Value) matchacc.Movement.Speed.Speed = Value end }) MovementGroup:AddToggle('FlyEnabled', { Text = 'Fly Cframe', Default = false, Callback = function(Value) matchacc.Movement.Fly.Enabled = Value end }):AddKeyPicker('FlyKey', { Default = 'none', SyncToggleState = true, Mode = 'Toggle', Text = 'Fly Key', Callback = function(Value) matchacc.Movement.Fly.Keybind = Value end }) MovementGroup:AddSlider('FlySpeed', { Text = 'Fly Speed', Default = 20, Min = 1, Max = 100, Rounding = 0, Callback = function(Value) matchacc.Movement.Fly.Speed = Value end }) getgenv().FlySpeed = 150 getgenv().FlightEnabled = false getgenv().Flying = false local IdleAnim = Instance.new("Animation") IdleAnim.AnimationId = "rbxassetid://3541114300" local IdleTrack, FlyTrack local FlyAnim = Instance.new("Animation") FlyAnim.AnimationId = "rbxassetid://3541044388" local function CreateCore() if workspace:FindFirstChild("Core") then workspace.Core:Destroy() end local Core = Instance.new("Part") Core.Name = "Core" Core.Size = Vector3.new(0.05, 0.05, 0.05) Core.CanCollide = false Core.Transparency = 1 Core.Parent = workspace local Weld = Instance.new("Weld", Core) Weld.Part0 = Core Weld.Part1 = localPlayer.Character.HumanoidRootPart Weld.C0 = CFrame.new(0, 0, 0) return Core end local currentMove = Vector3.zero -- Kiểm tra có đang di chuyển không local function IsMoving() return currentMove.Magnitude > 0.1 end local function StartFly() if getgenv().Flying or not localPlayer.Character or not localPlayer.Character:FindFirstChild("HumanoidRootPart") then return end getgenv().Flying = true local hum = localPlayer.Character:FindFirstChildOfClass("Humanoid") hum.PlatformStand = true -- Load animations IdleTrack = hum:LoadAnimation(IdleAnim) FlyTrack = hum:LoadAnimation(FlyAnim) IdleTrack:Play() local Core = CreateCore() local BV = Instance.new("BodyVelocity", Core) BV.MaxForce = Vector3.new(9e9, 9e9, 9e9) BV.Velocity = Vector3.zero local BG = Instance.new("BodyGyro", Core) BG.MaxTorque = Vector3.new(9e9, 9e9, 9e9) BG.P = 9e4 BG.CFrame = Core.CFrame local connection connection = RunService.RenderStepped:Connect(function() if not getgenv().Flying then connection:Disconnect() return end local camera = Camera currentMove = Vector3.zero if UserInputService:IsKeyDown(Enum.KeyCode.W) then currentMove += camera.CFrame.LookVector end if UserInputService:IsKeyDown(Enum.KeyCode.S) then currentMove -= camera.CFrame.LookVector end if UserInputService:IsKeyDown(Enum.KeyCode.A) then currentMove -= camera.CFrame.RightVector end if UserInputService:IsKeyDown(Enum.KeyCode.D) then currentMove += camera.CFrame.RightVector end if UserInputService:IsKeyDown(Enum.KeyCode.Space) then currentMove += Vector3.new(0, 1, 0) end if UserInputService:IsKeyDown(Enum.KeyCode.LeftControl) then currentMove -= Vector3.new(0, 1, 0) end BV.Velocity = currentMove * getgenv().FlySpeed BG.CFrame = camera.CFrame -- Animation switching if IsMoving() then if IdleTrack.IsPlaying then IdleTrack:Stop() end if not FlyTrack.IsPlaying then FlyTrack:Play() end else if FlyTrack.IsPlaying then FlyTrack:Stop() end if not IdleTrack.IsPlaying then IdleTrack:Play() end end end) end local function StopFly() if not getgenv().Flying then return end getgenv().Flying = false local hum = localPlayer.Character:FindFirstChildOfClass("Humanoid") hum.PlatformStand = false if IdleTrack then IdleTrack:Stop() end if FlyTrack then FlyTrack:Stop() end if workspace:FindFirstChild("Core") then workspace.Core:Destroy() end end -- Nút bật/tắt Fly V2 MovementGroup:AddToggle('FlightV2_Enabled', { Text = 'Fly Velocity + superhero', Default = false, Callback = function(value) getgenv().FlightEnabled = value if not value then StopFly() end end }):AddKeyPicker('FlightV2_Keybind', { Default = 'none', SyncToggleState = true, Mode = 'Toggle', Text = 'Fly V2 Keybind', Callback = function(state) if UserInputService:GetFocusedTextBox() then return end if state and getgenv().FlightEnabled then StartFly() else StopFly() end end }) -- Slider tốc độ bay MovementGroup:AddSlider('FlightV2_Speed', { Text = 'Fly Speed', Default = 150, Min = 10, Max = 1000, Rounding = 0, Callback = function(value) getgenv().FlySpeed = value end }) -- Reset khi respawn (đã có sẵn trong script gốc, chỉ cần thêm StopFly) localPlayer.CharacterAdded:Connect(function() task.wait(1) StopFly() -- Dừng bay khi respawn if getgenv().FlightEnabled then -- Tự động bật lại nếu toggle vẫn đang bật task.wait(2) if getgenv().FlightEnabled then StartFly() end end end) -- WalkSpeed MovementGroup:AddToggle('WalkSpeedToggle', { Text = 'Walk Speed', Default = false, Callback = function(Value) matchacc.Movement.WalkSpeedEnabled = Value end }):AddKeyPicker('WalkSpeedKey', { Default = 'None', SyncToggleState = true, Mode = 'Toggle', Text = 'Walk Speed' }) MovementGroup:AddSlider('WalkSpeedSlider', { Text = 'Speed', Default = 16, Min = 1, Max = 1000, Rounding = 0, Callback = function(Value) matchacc.Movement.WalkSpeed = Value end }) -- JumpPower MovementGroup:AddToggle('JumpPowerToggle', { Text = 'Jump Power', Default = false, Callback = function(Value) matchacc.Movement.JumpPowerEnabled = Value end }):AddKeyPicker('JumpPowerKey', { Default = 'None', SyncToggleState = true, Mode = 'Toggle', Text = 'Jump Power' }) MovementGroup:AddSlider('JumpPowerSlider', { Text = 'Power', Default = 50, Min = 1, Max = 1000, Rounding = 0, Callback = function(Value) matchacc.Movement.JumpPower = Value end }) getgenv().Matcha.BunnyHop = { Enabled = false, Keybind = false, Speed = 100 } MovementGroup:AddToggle('BunnyHop_Enabled', { Text = 'Bunny Hop', Default = false, Callback = function(value) getgenv().Matcha.BunnyHop.Enabled = value end }):AddKeyPicker('BunnyHop_Keybind', { Default = 'None', SyncToggleState = true, Mode = 'Toggle', Text = 'Bunny Hop Keybind', Callback = function(state) getgenv().Matcha.BunnyHop.Keybind = state end }) MovementGroup:AddSlider('BunnyHop_Speed', { Text = 'Bunny Hop Speed', Default = 100, Min = 1, Max = 200, Rounding = 0, Callback = function(value) getgenv().Matcha.BunnyHop.Speed = value end }) -- Logic Bunny Hop (chạy liên tục) RunService.RenderStepped:Connect(function() if not getgenv().Matcha.BunnyHop.Enabled or not getgenv().Matcha.BunnyHop.Keybind then return end if not localPlayer.Character or not localPlayer.Character:FindFirstChild("Humanoid") or not localPlayer.Character:FindFirstChild("HumanoidRootPart") then return end local hum = localPlayer.Character:FindFirstChildOfClass("Humanoid") local hrp = localPlayer.Character.HumanoidRootPart local camera = Camera if UserInputService:IsKeyDown(Enum.KeyCode.Space) and hum.FloorMaterial ~= Enum.Material.Air then hum.Jump = true local look = camera.CFrame.LookVector * Vector3.new(1, 0, 1) local move = Vector3.zero if UserInputService:IsKeyDown(Enum.KeyCode.W) then move += look end if UserInputService:IsKeyDown(Enum.KeyCode.S) then move -= look end if UserInputService:IsKeyDown(Enum.KeyCode.D) then move += Vector3.new(-look.Z, 0, look.X) end if UserInputService:IsKeyDown(Enum.KeyCode.A) then move += Vector3.new(look.Z, 0, -look.X) end if move.Magnitude > 0 then local speed = getgenv().Matcha.BunnyHop.Speed hrp.Velocity = Vector3.new(move.Unit.X * speed, hrp.Velocity.Y, move.Unit.Z * speed) end end end) getgenv().Matcha.SpinBot = { Enabled = false, Speed = 20 } MovementGroup:AddToggle('SpinBot_Enabled', { Text = 'SpinBot', Default = false, Callback = function(value) getgenv().Matcha.SpinBot.Enabled = value end }):AddKeyPicker('SpinBot_Keybind', { Default = 'none', SyncToggleState = true, Mode = 'Toggle', Text = 'SpinBot Keybind', }) MovementGroup:AddSlider('SpinBot_Speed', { Text = 'Spin Speed', Default = 20, Min = 1, Max = 100, Rounding = 0, Callback = function(value) getgenv().Matcha.SpinBot.Speed = value end }) local MacroGroup = Tabs.Character:AddLeftGroupbox('Fake Macro') player = game.Players.LocalPlayer character = player.Character or player.CharacterAdded:Wait() humanoid = character:WaitForChild("Humanoid") emoteId = "rbxassetid://3189777795" -- Speed variables maxSpeed = 300 baseSpeed = 16 speedIncrement = 1.75 emoteDuration = 1.6 -- Variables to track speed and state currentSpeed = baseSpeed isSpeedEnabled = false emoteTrack = nil isSpeedReady = false -- Cache the hotkey (Q) for reuse Keybind = Enum.KeyCode.Q -- Efficient use of services and enum values UserInputService = game:GetService("UserInputService") RunService = game:GetService("RunService") -- Function to initialize the character and humanoid function initializeCharacter(newCharacter) character = newCharacter or player.Character humanoid = character:WaitForChild("Humanoid") currentSpeed = baseSpeed humanoid.WalkSpeed = baseSpeed isSpeedEnabled = false isSpeedReady = false end -- Function to play the emote function playEmote() animation = Instance.new("Animation") animation.AnimationId = emoteId emoteTrack = humanoid:LoadAnimation(animation) emoteTrack:Play() -- Stop the emote after the duration from the slider task.wait(emoteDuration) if emoteTrack and emoteTrack.IsPlaying then emoteTrack:Stop() end -- After the emote ends, set isSpeedReady to true to start gradual speed increase isSpeedReady = true end -- Function to manage speed (gradual increase) function updateSpeed() if _G.ScriptEnabled and isSpeedEnabled then if isSpeedReady then currentSpeed = math.min(currentSpeed + speedIncrement, maxSpeed) humanoid.WalkSpeed = currentSpeed else humanoid.WalkSpeed = baseSpeed end elseif not isSpeedEnabled or not _G.ScriptEnabled then humanoid.WalkSpeed = baseSpeed currentSpeed = baseSpeed end end -- Toggle the speed feature function toggleSpeedFeature() if not _G.ScriptEnabled then return end isSpeedEnabled = not isSpeedEnabled if isSpeedEnabled then currentSpeed = baseSpeed humanoid.WalkSpeed = baseSpeed isSpeedReady = false playEmote() else currentSpeed = baseSpeed humanoid.WalkSpeed = baseSpeed isSpeedReady = false end end -- Reinitialize the script on character respawn player.CharacterAdded:Connect(initializeCharacter) -- Bind the hotkey (Q) to toggle the feature UserInputService.InputBegan:Connect(function(input, gameProcessed) if gameProcessed then return end if _G.ScriptEnabled and input.UserInputType == Enum.UserInputType.Keyboard and input.KeyCode == Keybind then toggleSpeedFeature() end end) -- Bind RunService Heartbeat to continuously update speed RunService.Heartbeat:Connect(updateSpeed) -- Initialize the script for the current character initializeCharacter(character) MacroGroup:AddToggle('MyToggle', { Text = 'Fake Macro', Default = false, Tooltip = 'This is a tooltip', Callback = function(Value) -- Toggle the speed feature based on the toggle value if Value then _G.ScriptEnabled = true resetCharacter() else _G.ScriptEnabled = false end end }):AddKeyPicker('KeyPicker', { Default = 'Q', -- Initial keybind (can be changed) SyncToggleState = false, Mode = 'Toggle', -- Modes: Always, Toggle, Hold Text = 'Speed Toggle Keybind', Callback = function(Value) end, ChangedCallback = function(New) Keybind = New end }) MacroGroup:AddSlider('EmoteDuration', { Text = 'Emote Duration (Seconds)', Default = 1.6, Min = 0, Max = 2.5, Rounding = 2, Compact = false, Callback = function(Value) emoteDuration = Value end }) -- Add Slider for max speed MacroGroup:AddSlider('MaxSpeed', { Text = 'Max Speed', Default = 300, Min = 16, Max = 1000, -- Adjust max limit as needed Rounding = 0, Compact = false, Callback = function(Value) print('[cb] Max Speed changed! New value:', Value) maxSpeed = Value end }) -- Add Slider for speed increment MacroGroup:AddSlider('SpeedIncrement', { Text = 'Speed Increment', Default = 1.75, Min = 0.1, Max = 10, Rounding = 2, Compact = false, Callback = function(Value) print('[cb] Speed Increment changed! New value:', Value) speedIncrement = Value end }) game.Players.LocalPlayer.Character.Humanoid.Health = 0 RunService.Heartbeat:Connect(function(dt) if not getgenv().Matcha.SpinBot.Enabled then local character = localPlayer.Character if character and character:FindFirstChild("Humanoid") then character.Humanoid.AutoRotate = true end return end local character = localPlayer.Character if not character then return end local humanoid = character:FindFirstChild("Humanoid") local hrp = character:FindFirstChild("HumanoidRootPart") if not hrp or not humanoid then return end humanoid.AutoRotate = false local spinSpeed = getgenv().Matcha.SpinBot.Speed or 300 hrp.CFrame = hrp.CFrame * CFrame.Angles(0, math.rad(spinSpeed), 0) end) -- Loop set WalkSpeed và JumpPower liên tục (thêm vào script, sau UI setup) RunService.Heartbeat:Connect(function() local hum = localPlayer.Character and localPlayer.Character:FindFirstChildOfClass("Humanoid") if hum then if matchacc.Movement.WalkSpeedEnabled then hum.WalkSpeed = matchacc.Movement.WalkSpeed end if matchacc.Movement.JumpPowerEnabled then hum.JumpPower = matchacc.Movement.JumpPower hum.UseJumpPower = true -- Đảm bảo dùng JumpPower end end end) -- Reset khi character respawn (thêm vào CharacterAdded) localPlayer.CharacterAdded:Connect(function(char) StopFly() -- Reset fly nếu đang bật task.wait(1) -- Chờ character load if matchacc.Movement.FlyEnabled then StartFly() end end) -- Integrate Movement Logic into Heartbeat RunService.Heartbeat:Connect(function(dt) -- Speed if matchacc.Movement.Speed.Enabled and matchacc.Movement.Speed.Keybind then if localPlayer and localPlayer.Character and localPlayer.Character:FindFirstChild("HumanoidRootPart") then local move_direction = localPlayer.Character.Humanoid.MoveDirection local hrp = localPlayer.Character.HumanoidRootPart hrp.CFrame = hrp.CFrame + (move_direction * dt) * matchacc.Movement.Speed.Speed * 10 end end -- Fly if matchacc.Movement.Fly.Enabled and matchacc.Movement.Fly.Keybind then if localPlayer and localPlayer.Character and localPlayer.Character:FindFirstChild("HumanoidRootPart") then local move_direction = localPlayer.Character.Humanoid.MoveDirection local hrp = localPlayer.Character.HumanoidRootPart local add = Vector3.new(0, (UserInputService:IsKeyDown(Enum.KeyCode.Space) and matchacc.Movement.Fly.Speed / 8 or UserInputService:IsKeyDown(Enum.KeyCode.LeftShift) and -matchacc.Movement.Fly.Speed / 8) or 0, 0) hrp.CFrame = hrp.CFrame + (move_direction * dt) * matchacc.Movement.Fly.Speed * 10 hrp.CFrame = hrp.CFrame + add hrp.Velocity = (hrp.Velocity * Vector3.new(1, 0, 1)) + Vector3.new(0, 1.9, 0) end end end) end)() task.wait(1) coroutine.wrap(function() local Mouse = LocalPlayer:GetMouse() local Stats = game:GetService("Stats") -- Ping Sets Table (exactly như yêu cầu) local PingPredTable = { [50] = 0.1433, [55] = 0.1412, [60] = 0.1389, [65] = 0.1367, [70] = 0.1346, [75] = 0.1324, [80] = 0.1303, [85] = 0.1282, [90] = 0.1261, [95] = 0.1240, [100] = 0.1219, [105] = 0.1198, [110] = 0.1177, [115] = 0.1157, [120] = 0.1136, [125] = 0.1116, [130] = 0.1095, [135] = 0.1075, [140] = 0.1055, [145] = 0.1035, [150] = 0.1015, [155] = 0.0995, [160] = 0.0975, [165] = 0.0956, [170] = 0.0936, [175] = 0.0917, [180] = 0.0897, [185] = 0.0878, [190] = 0.0859, [195] = 0.0840, [200] = 0.0821, [205] = 0.0802, [210] = 0.0783, [215] = 0.0765, [220] = 0.0746, [225] = 0.0728, [230] = 0.0710, [235] = 0.0692, [240] = 0.0674, [245] = 0.0656, [250] = 0.0638, [255] = 0.0620, [260] = 0.0603, [265] = 0.0585, [270] = 0.0568, [275] = 0.0551, [280] = 0.0534, [285] = 0.0517, [290] = 0.0500, } -- Current prediction variable (for Ping Sets mode) local currentPred = 0 -- Update currentPred dựa trên ping hiện tại (chạy liên tục) task.spawn(function() while true do local ping = Stats.Network.ServerStatsItem["Data Ping"]:GetValue() local closest = 100 -- fallback local minDiff = math.huge for p, _ in pairs(PingPredTable) do local diff = math.abs(p - ping) if diff < minDiff then minDiff = diff closest = p end end currentPred = PingPredTable[closest] or 0.13 task.wait(0.3) end end) -- Velocity Resolver Tracker (cực kỳ chính xác, dùng cho Calculate mode + Resolver) local VelocityTracker = {} RunService.Heartbeat:Connect(function(dt) if dt > 0.5 then return end for _, plr in Players:GetPlayers() do if plr.Character and plr.Character:FindFirstChild("HumanoidRootPart") then local hrp = plr.Character.HumanoidRootPart if not VelocityTracker[plr] then VelocityTracker[plr] = {PreviousPos = hrp.Position, PreviousTime = tick()} end local track = VelocityTracker[plr] local velocity = (hrp.Position - track.PreviousPos) / (tick() - track.PreviousTime) track.Velocity = velocity track.PreviousPos = hrp.Position track.PreviousTime = tick() end end end) RunService.Heartbeat:Connect(function(delta) if not matchacc.TargetAim.Enabled or matchacc.TargetAim.Target == "None" then DotCircle.Visible = false return end local targetPlayer = Players:FindFirstChild(matchacc.TargetAim.Target) if not targetPlayer or not targetPlayer.Character then DotCircle.Visible = false return end local hitPart = targetPlayer.Character:FindFirstChild(matchacc.TargetAim.HitPart) if not hitPart then DotCircle.Visible = false return end -- Resolver if matchacc.TargetAim.Resolver then local hrp = targetPlayer.Character:FindFirstChild("HumanoidRootPart") if hrp then local lastPos = oldVelPos[targetPlayer] if lastPos then local calculatedVel = (hrp.Position - lastPos) / delta hitPart.Velocity = calculatedVel end oldVelPos[targetPlayer] = hrp.Position end end local predictVal = matchacc.TargetAim.AutoPredict and matchacc.TargetAim.PredictMode == "Ping" and (Stats.Network.ServerStatsItem["Data Ping"]:GetValue() / 1000 + 0.035) or matchacc.TargetAim.Prediction local predictedPos = hitPart.Position + hitPart.Velocity * predictVal local screenPos, onScreen = Camera:WorldToViewportPoint(predictedPos) if onScreen and matchacc.TargetAim.DotCircle then DotCircle.Position = Vector2.new(screenPos.X, screenPos.Y) DotCircle.Visible = true else DotCircle.Visible = false end end) if CurrentGame then local remote = ReplicatedStorage:FindFirstChild(CurrentGame.Remote) local function SetupSilentAim() local char = LocalPlayer.Character if not char then return end for _, tool in pairs(char:GetChildren()) do if tool:IsA("Tool") then tool.Activated:Connect(function() if not matchacc.TargetAim.Enabled or matchacc.TargetAim.Target == "None" or not CurrentGame then return end local targetPlayer = Players:FindFirstChild(matchacc.TargetAim.Target) if not targetPlayer or not targetPlayer.Character then return end local hitPart = targetPlayer.Character:FindFirstChild(matchacc.TargetAim.HitPart) if not hitPart then return end -- Prediction giống trên local predictVal = matchacc.TargetAim.Prediction if matchacc.TargetAim.AutoPredict then if matchacc.TargetAim.PredictMode == "Ping" then predictVal = (game.Stats.Network.ServerStatsItem["Data Ping"]:GetValue() / 1000) + 0.035 elseif matchacc.TargetAim.PredictMode == "Calculate" then predictVal = (hitPart.Position - Camera.CFrame.Position).Magnitude / 1000 + 0.13 end end local predictedPos = hitPart.Position + hitPart.Velocity * predictVal if remote then remote:FireServer(CurrentGame.Arg, predictedPos) end end) end end end LocalPlayer.CharacterAdded:Connect(function(char) char.ChildAdded:Connect(function(child) if child:IsA("Tool") then child.Activated:Connect(SetupSilentAim) end end) end) if LocalPlayer.Character then SetupSilentAim() end end if getnamecallmethod and not isMobile then local Meta = getrawmetatable(game) local backupindex = Meta.__index setreadonly(Meta, false) Meta.__index = function(t, k) if t == Mouse and (k == "Hit" or k == "hit") then if matchacc.TargetAim.Enabled and matchacc.TargetAim.Target ~= "None" and LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then local TargetPlayer = Players:FindFirstChild(matchacc.TargetAim.Target) if TargetPlayer and TargetPlayer.Character and TargetPlayer.Character:FindFirstChild("Humanoid") and TargetPlayer.Character.Humanoid.Health > 0 and not TargetPlayer.Character:FindFirstChild("ForceField") then -- Team check if matchacc.Checks.Team and TargetPlayer.Team == LocalPlayer.Team then return backupindex(t, k) end -- Wall check (nếu bật) if matchacc.Checks.Wall then local rayParams = RaycastParams.new() rayParams.FilterDescendantsInstances = {LocalPlayer.Character} rayParams.FilterType = Enum.RaycastFilterType.Blacklist local result = workspace:Raycast(Camera.CFrame.Position, (TargetPlayer.Character.HumanoidRootPart.Position - Camera.CFrame.Position).Unit * 1000, rayParams) if result and result.Instance.CanCollide then return backupindex(t, k) end end -- Hitpart & Airpart logic local partName = matchacc.TargetAim.HitPart if matchacc.TargetAim.AirPartEnabled then local targetInAir = TargetPlayer.Character.Humanoid:GetState() == Enum.HumanoidStateType.Freefall or TargetPlayer.Character.Humanoid:GetState() == Enum.HumanoidStateType.Jumping local selfInAir = LocalPlayer.Character.Humanoid:GetState() == Enum.HumanoidStateType.Freefall or LocalPlayer.Character.Humanoid:GetState() == Enum.HumanoidStateType.Jumping if targetInAir or selfInAir then partName = matchacc.TargetAim.AirPart end end local targetPart = TargetPlayer.Character:FindFirstChild(partName) if targetPart then local vel = VelocityTracker[TargetPlayer] and VelocityTracker[TargetPlayer].Velocity or targetPart.Velocity -- Prediction logic local pred = matchacc.TargetAim.Prediction -- manual default if matchacc.TargetAim.AutoPredict then if matchacc.TargetAim.PredictMode == "Ping Sets" then pred = currentPred elseif matchacc.TargetAim.PredictMode == "Calculate" then local ping = Stats.Network.ServerStatsItem["Data Ping"]:GetValue() / 1000 pred = 0.0368 + ping -- sửa: constant time + ping time (seconds) end end -- Resolver (boost prediction khi bật) if matchacc.TargetAim.Resolver then pred = pred + 0.015 -- resolver boost time (seconds, có thể chỉnh) end -- Jump offset local yOffset = matchacc.TargetAim.Offset if TargetPlayer.Character.Humanoid:GetState() == Enum.HumanoidStateType.Freefall or vel.Y > 20 then yOffset = matchacc.TargetAim.JumpOffset end local predictedPos = targetPart.Position + (vel * pred) + Vector3.new(0, yOffset, 0) return CFrame.new(Camera.CFrame.Position, predictedPos) end end end end return backupindex(t, k) end end if getnamecallmethod and game.GameId == 9825515356 then local OldNamecall OldNamecall = hookmetamethod(game, "__namecall", function(self, ...) local args = {...} local method = getnamecallmethod() if method == "FireServer" and self.Name == "MainEvent" and args[1] == "Shoot" then if matchacc.TargetAim.Enabled and matchacc.TargetAim.AutoFire and matchacc.TargetAim.Target ~= "None" and localPlayer and localPlayer.Character then local TargetPlayer = players:FindFirstChild(matchacc.TargetAim.Target) if TargetPlayer and TargetPlayer.Character and TargetPlayer.Character:FindFirstChild("Head") and not TargetPlayer.Character:FindFirstChild("ForceField") then if not KnockCheck(TargetPlayer) then local TargetPart = TargetPlayer.Character.Head if TargetPart and args[2] then for _, info in pairs(args[2][1]) do info["Instance"] = TargetPart end for _, info in pairs(args[2][2]) do info["thePart"] = TargetPart info["theOffset"] = CFrame.new() end return OldNamecall(self, unpack(args)) end end end end end return OldNamecall(self, ...) end) end UserInputService.InputBegan:Connect(function(input, gameProcessed) if gameProcessed then return end if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then M1Down = true end end) UserInputService.InputEnded:Connect(function(input, gameProcessed) if gameProcessed then return end if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then M1Down = false end end) local SelectedGun = '[Rifle]' local BuyingSingle = false local ShopTable = { ["[Rifle]"] = {ShopName = "[Rifle] - $1694"}, ["[Rifle Ammo]"] = {ShopName = "5 [Rifle Ammo] - $273"}, ["[LMG]"] = {ShopName = "[LMG] - $4098"}, ["[LMG Ammo]"] = {ShopName = "200 [LMG Ammo] - $328"}, ["[AK47]"] = {ShopName = "[AK47] - $2459"}, ["[AK47 Ammo]"] = {ShopName = "90 [AK47 Ammo] - $87"}, ["[AUG]"] = {ShopName = "[AUG] - $2131"}, ["[AUG Ammo]"] = {ShopName = "90 [AUG Ammo] - $87"}, ["[AR]"] = {ShopName = "[AR] - $1093"}, ["[AR Ammo]"] = {ShopName = "60 [AR Ammo] - $82"}, ["[Double-Barrel SG]"] = {ShopName = "[Double-Barrel SG] - $1475"}, ["[Double-Barrel SG Ammo]"] = {ShopName = "18 [Double-Barrel SG Ammo] - $55"}, ["[Drum-Shotgun]"] = {ShopName = "[Drum-Shotgun] - $1202"}, ["[Drum-Shotgun Ammo]"] = {ShopName = "18 [Drum-Shotgun Ammo] - $71"}, ["[DrumGun]"] = {ShopName = "[DrumGun] - $3278"}, ["[DrumGun Ammo]"] = {ShopName = "100 [DrumGun Ammo] - $219"}, ["[Fire Armor]"] = {ShopName = "[Fire Armor] - $2623"}, ["[Glock]"] = {ShopName = "[Glock] - $546"}, ["[Glock Ammo]"] = {ShopName = "25 [Glock Ammo] - $66"}, ["[P90]"] = {ShopName = "[P90] - $1093"}, ["[P90 Ammo]"] = {ShopName = "120 [P90 Ammo] - $66"}, ["[RPG]"] = {ShopName = "[RPG] - $21855"}, ["[RPG Ammo]"] = {ShopName = "5 [RPG Ammo] - $1093"}, ["[Revolver]"] = {ShopName = "[Revolver] - $1421"}, ["[Revolver Ammo]"] = {ShopName = "12 [Revolver Ammo] - $82"}, ["[Silencer]"] = {ShopName = "[Silencer] - $601"}, ["[Silencer Ammo]"] = {ShopName = "25 [Silencer Ammo] - $55"}, ["[SilencerAR]"] = {ShopName = "[SilencerAR] - $1366"}, ["[SilencerAR Ammo]"] = {ShopName = "120 [SilencerAR Ammo] - $82"}, ["[Shotgun]"] = {ShopName = "[Shotgun] - $1366"}, ["[Shotgun Ammo]"] = {ShopName = "20 [Shotgun Ammo] - $66"}, ["[SMG]"] = {ShopName = "[SMG] - $820"}, ["[SMG Ammo]"] = {ShopName = "80 [SMG Ammo] - $66"}, ["[TacticalShotgun]"] = {ShopName = "[TacticalShotgun] - $1912"}, ["[TacticalShotgun Ammo]"] = {ShopName = "20 [TacticalShotgun Ammo] - $66"}, ["[Taser]"] = {ShopName = "[Taser] - $1093"}, ["[Grenade]"] = {ShopName = "[Grenade] - $765"}, } local headshots = {} headshots.AutoLoadout = {Enabled = false, Gun = '[Rifle]'} local pingvalue = nil local split = nil local ping = nil local PredictionValue = nil local GlobalPredictionMultiplier = 0.80 local basePredictionTable = { {ping = 130, value = 0.51}, {ping = 125, value = 0.49}, {ping = 110, value = 0.46}, {ping = 105, value = 0.38}, {ping = 90, value = 0.36}, {ping = 80, value = 0.34}, {ping = 70, value = 0.31}, {ping = 60, value = 0.229}, {ping = 50, value = 0.225}, {ping = 40, value = 0.256} } local previousKnock = false local previousDead = false local lastTargetCharacter = nil -- Thêm event PlayerRemoving (sau MainEvent = getMainRemote()) players.PlayerRemoving:Connect(function(plr) if plr.Name == matchacc.TargetAim.Target then Library:Notify(plr.Name .. " left the game", 3) matchacc.TargetAim.Target = "None" previousKnock = false previousDead = false lastTargetCharacter = nil end end) game:GetService("RunService").Stepped:Connect(function() pingvalue = game:GetService("Stats").Network.ServerStatsItem["Data Ping"]:GetValueString() split = string.split(pingvalue, '(') ping = tonumber(split[1]) for _, data in ipairs(basePredictionTable) do if ping < data.ping then PredictionValue = data.value * GlobalPredictionMultiplier break end end end) RunService.Heartbeat:Connect(function(dt) pcall(function() if getnamecallmethod and matchacc.RapidFire.Enabled then local tool = localPlayer.Character and localPlayer.Character:FindFirstChildOfClass("Tool") if tool and tool:FindFirstChild("GunScript") then for _, v in ipairs(getconnections(tool.Activated)) do local funcinfo = debug.getinfo(v.Function) for i = 1, funcinfo.nups do local c, n = debug.getupvalue(v.Function, i) if type(c) == "number" then debug.setupvalue(v.Function, i, 0) end end end end end local useDesync = matchacc.TargetAim.Strafe or matchacc.TargetAim.AutoStomp or matchacc.KillAura.StompAura or matchacc.TargetAim.AutoKill or headshots.AutoLoadout.Enabled or BuyingSingle or BuyingAmmoActive local TargetPlayer = players:FindFirstChild(matchacc.TargetAim.Target) if not TargetPlayer or not TargetPlayer.Character or not TargetPlayer.Character:FindFirstChild("Head") or not TargetPlayer.Character:FindFirstChild("HumanoidRootPart") then return end local hrp = localPlayer.Character and localPlayer.Character:FindFirstChild("HumanoidRootPart") if not hrp then return end local Tool = localPlayer.Character:FindFirstChildOfClass("Tool") local SavedPosition = hrp.CFrame if useDesync and hrp then if matchacc.TargetAim.Strafe and matchacc.TargetAim.Target ~= "None" and TargetPlayer and TargetPlayer.Character and TargetPlayer.Character:FindFirstChild("Head") and not (AutoKillActive or AutoArmorActive or AutoLoadoutActive or BuyingSingleActive or AutoHealActive) then if not TargetPlayer.Character:FindFirstChild("ForceField") then if not KnockCheck(TargetPlayer) then if voldBypassEnabled then local pos = TargetPlayer.Character.HumanoidRootPart.CFrame.Position if pos.X < -10000 or pos.X > 10000 or pos.Y < -10000 or pos.Y > 10000 or pos.Z < -10000 or pos.Z > 10000 then return end end local currentPosition = TargetPlayer.Character.Head.Position local lastPosition = previousPositions[TargetPlayer] or currentPosition local estimatedVelocity = (currentPosition - lastPosition) / dt local alpha = 0.5 customVelocities[TargetPlayer] = (customVelocities[TargetPlayer] or Vector3.zero) * alpha + estimatedVelocity * (1 - alpha) previousPositions[TargetPlayer] = currentPosition local strafeOffset if matchacc.TargetAim.StrafeMethod == "Orbit" then strafeOffset = Vector3.new(math.cos(tick()*10)*10, 0, math.sin(tick()*10)*10) elseif matchacc.TargetAim.StrafeMethod == "Randomize" then strafeOffset = Vector3.new(math.random(-15,15), math.random(-15,15), math.random(-15,15)) end local desyncPosition = currentPosition + (customVelocities[TargetPlayer] * PredictionValue) + strafeOffset hrp.CFrame = CFrame.lookAt(desyncPosition, currentPosition) if matchacc.TargetAim.Spoofer then RunService:BindToRenderStep("RestoreStrafe", 199, function() hrp.CFrame = SavedPosition RunService:UnbindFromRenderStep("RestoreStrafe") end) end if matchacc.TargetAim.VisualizeStrafe then BodyClone:SetPrimaryPartCFrame(hrp.CFrame) BodyCloneHighlight.Enabled = true SetRigTransparency(BodyClone, 0) SetRigColor(BodyClone, matchacc.TargetAim.VisualizeStrafeInlineColor) BodyCloneHighlight.FillColor = matchacc.TargetAim.VisualizeStrafeInlineColor BodyCloneHighlight.OutlineColor = matchacc.TargetAim.VisualizeStrafeOutlineColor else BodyCloneHighlight.Enabled = false BodyClone:SetPrimaryPartCFrame(CFrame.new(9999, 9999, 9999)) SetRigTransparency(BodyClone, 1) end local PredictedAimingPosition = currentPosition + (customVelocities[TargetPlayer] * PredictionValue) local args = { [1] = "ShootGun", [2] = Tool and Tool.Handle or nil, [3] = Tool and Tool.Handle.Position or Vector3.zero, [4] = PredictedAimingPosition, [5] = TargetPlayer.Character.Head, [6] = Vector3.new(0, 0, 0) } if matchacc.TargetAim.AutoFire and MainEvent then MainEvent:FireServer(unpack(args)) elseif M1Down and MainEvent then MainEvent:FireServer(unpack(args)) end end else hrp.CFrame += Vector3.new(math.random(-9e9, 9e9), math.random(0, 9e9), math.random(-9e9, 9e9)) if matchacc.TargetAim.Spoofer then RunService:BindToRenderStep("RestoreStrafe", 199, function() hrp.CFrame = SavedPosition RunService:UnbindFromRenderStep("RestoreStrafe") end) end end else BodyClone:SetPrimaryPartCFrame(CFrame.new(9999, 9999, 9999)) BodyCloneHighlight.Enabled = false DesyncLine.Visible = false end if matchacc.TargetAim.Enabled and matchacc.TargetAim.Target ~= "None" and TargetPlayer and TargetPlayer.Character and TargetPlayer.Character:FindFirstChild("Head") and not KnockCheck(TargetPlayer) then local tool = localPlayer.Character:FindFirstChildOfClass("Tool") if tool and not TargetPlayer.Character:FindFirstChild("ForceField") then if matchacc.TargetAim.AutoFire then if game.PlaceId == 9825515356 then local args = { "Shoot", { { [1] = { ["Instance"] = TargetPlayer.Character.Head, ["Normal"] = Vector3.new(0.9937344193458557, 0.10944880545139313, -0.022651424631476402), ["Position"] = Vector3.new(-141.78562927246094, 33.89368438720703, -365.6424865722656) }, [2] = { ["Instance"] = TargetPlayer.Character.Head, ["Normal"] = Vector3.new(0.9937344193458557, 0.10944880545139313, -0.022651424631476402), ["Position"] = Vector3.new(-141.78562927246094, 33.89368438720703, -365.6424865722656) }, [3] = { ["Instance"] = TargetPlayer.Character.Head, ["Normal"] = Vector3.new(0.9937343597412109, 0.10944879800081253, -0.022651422768831253), ["Position"] = TargetPlayer.Character.Head.Position }, [4] = { ["Instance"] = TargetPlayer.Character.Head, ["Normal"] = Vector3.new(0.9937344193458557, 0.10944880545139313, -0.022651424631476402), ["Position"] = TargetPlayer.Character.Head.Position }, [5] = { ["Instance"] = TargetPlayer.Character.Head, ["Normal"] = Vector3.new(0.9937344193458557, 0.10944880545139313, -0.022651424631476402), ["Position"] = Vector3.new(-141.79481506347656, 34.033607482910156, -365.369384765625) } }, { [1] = { ["thePart"] = TargetPlayer.Character.Head, ["theOffset"] = CFrame.new(0, 0, 0) }, [2] = { ["thePart"] = TargetPlayer.Character.Head, ["theOffset"] = CFrame.new(0, 0, 0) }, [3] = { ["thePart"] = TargetPlayer.Character.Head, ["theOffset"] = CFrame.new(0, 0, 0) }, [4] = { ["thePart"] = TargetPlayer.Character.Head, ["theOffset"] = CFrame.new(0, 0, 0) }, [5] = { ["thePart"] = TargetPlayer.Character.Head, ["theOffset"] = CFrame.new(0, 0, 0) } }, TargetPlayer.Character.Head.Position, TargetPlayer.Character.Head.Position, workspace:GetServerTimeNow() } } if MainEvent then MainEvent:FireServer(unpack(args)) end else local args = { [1] = "ShootGun", [2] = tool.Handle, [3] = tool.Handle.Position, [4] = TargetPlayer.Character.Head.Position, [5] = TargetPlayer.Character.Head, [6] = Vector3.new(0, 0, 0) } if MainEvent then MainEvent:FireServer(unpack(args)) end end elseif M1Down then local args = { [1] = "ShootGun", [2] = tool.Handle, [3] = tool.Handle.Position, [4] = TargetPlayer.Character.Head.Position, [5] = TargetPlayer.Character.Head, [6] = Vector3.new(0, 0, 0) } if MainEvent then MainEvent:FireServer(unpack(args)) end end end end end end) end) RunService.Heartbeat:Connect(function(dt) TargetAimActive = false BuyingActive = false AutoArmorActive = false AutoLoadoutActive = false BuyingSingleActive = false AutoHealActive = false AutoKillActive = false BuyingAmmoActive = false local hrp = localPlayer.Character and localPlayer.Character:FindFirstChild("HumanoidRootPart") local Tool = localPlayer.Character and localPlayer.Character:FindFirstChildOfClass("Tool") local SavedPosition = hrp and hrp.CFrame local useDesync = matchacc.TargetAim.Strafe or matchacc.TargetAim.AutoStomp or matchacc.KillAura.StompAura or matchacc.TargetAim.AutoKill or headshots.AutoLoadout.Enabled or BuyingSingle or BuyingAmmo abletodesync = not (AutoKillActive or TargetAimActive or AutoArmorActive or AutoLoadoutActive or BuyingSingleActive or AutoHealActive or BuyingAmmoActive) if matchacc.TargetAim.Enabled and matchacc.TargetAim.Target ~= "None" then local TargetPlayer = players:FindFirstChild(matchacc.TargetAim.Target) if TargetPlayer and TargetPlayer.Character and TargetPlayer.Character:FindFirstChild("Humanoid") then local hum = TargetPlayer.Character.Humanoid local curr = math.round(hum.Health) local prev = previousTargetHealth[TargetPlayer.Name] if prev ~= nil and curr < prev then -- Hit Sound if matchacc.HitEffects.HitSounds then createHitSound() end -- Hit Notification if matchacc.HitEffects.HitNotifications then Library:Notify("Matcha.cc - Target Hit: " .. TargetPlayer.Name .. " - Health: " .. curr, matchacc.HitEffects.HitNotificationsTime) end -- Hit Chams if matchacc.HitEffects.HitChams.Enabled then HitChams(TargetPlayer) end if matchacc.HitEffects.HitEffect.Enabled then TriggerHitEffect(TargetPlayer) end if matchacc.HitEffects.HitSkeleton.Enabled then HitChamsSkeleton(TargetPlayer) end end previousTargetHealth[TargetPlayer.Name] = curr end end local TargetPlayer = players:FindFirstChild(matchacc.TargetAim.Target) if matchacc.KillAura.Enabled then if Tool and Tool:FindFirstChild("Handle") then local closest = math.huge local ka_target = nil for _, player in pairs(players:GetPlayers()) do if player ~= localPlayer and not matchacc.KillAura.Whitelist[player.Name] and player.Character and player.Character:FindFirstChild("Head") and not player.Character:FindFirstChild("GRABBING_CONSTRAINT") then if player.Character.BodyEffects:FindFirstChild("K.O") and not player.Character.BodyEffects["K.O"].Value then local dist = (hrp.Position - player.Character.Head.Position).Magnitude if dist < closest and dist <= matchacc.KillAura.Range then closest = dist ka_target = player end end end end if ka_target and ka_target.Character and ka_target.Character:FindFirstChild("Head") then hrp.CFrame = CFrame.lookAt(hrp.Position, ka_target.Character.Head.Position) if matchacc.KillAura.Visualize then ka_tracer.Transparency = 0 ka_tracer.Size = Vector3.new(0.2, 0.2, (hrp.Position - ka_target.Character.Head.Position).Magnitude) ka_tracer.CFrame = CFrame.lookAt(hrp.Position, ka_target.Character.Head.Position) * CFrame.new(0, 0, -ka_tracer.Size.Z / 2) else ka_tracer.Transparency = 1 end local humanoid = ka_target.Character:FindFirstChild("Humanoid") if humanoid then if not ka_lastHealth[ka_target.Name] then ka_lastHealth[ka_target.Name] = humanoid.Health end if humanoid.Health < ka_lastHealth[ka_target.Name] then createHitSound() end ka_lastHealth[ka_target.Name] = humanoid.Health end local offset = matchacc.KillAura.Silent and Vector3.new(0, -12, 0) or Vector3.new(0, 0, 0) MainEvent:FireServer( "ShootGun", Tool:FindFirstChild("Handle"), Tool:FindFirstChild("Handle").CFrame.Position + offset, ka_target.Character.Head.Position + offset, ka_target.Character.Head, Vector3.new(0, 0, -1) ) else ka_tracer.Transparency = 1 end else ka_tracer.Transparency = 1 end end if matchacc.TargetAim.Enabled and matchacc.TargetAim.Target ~= "None" then local TargetPlayer = players:FindFirstChild(matchacc.TargetAim.Target) if TargetPlayer and TargetPlayer.Character and TargetPlayer.Character:FindFirstChild("Humanoid") and TargetPlayer.Character:FindFirstChild("Head") and not TargetPlayer.Character:FindFirstChild("ForceField") then local humanoid = TargetPlayer.Character:FindFirstChild("Humanoid") if humanoid then local currentHealth = math.round(humanoid.Health) if lastHealth == nil or matchacc.TargetAim.Target ~= lastTarget then lastHealth = currentHealth end if currentHealth < lastHealth then if matchacc.HitEffects.HitNotifications then Library:Notify("Matcha.cc - Target Hit: " .. TargetPlayer.Name .. " - Health: " .. currentHealth, matchacc.HitEffects.HitNotificationsTime) end if matchacc.HitEffects.HitSounds then createHitSound() end end lastHealth = currentHealth lastTarget = matchacc.TargetAim.Target end end end if matchacc.TargetAim.Enabled and matchacc.TargetAim.Target ~= "None" and TargetPlayer and TargetPlayer.Character and TargetPlayer.Character:FindFirstChild("Head") then if matchacc.TargetAim.LookAt then localPlayer.Character.Humanoid.AutoRotate = false localPlayer.Character.HumanoidRootPart.CFrame = CFrame.lookAt(localPlayer.Character.HumanoidRootPart.Position, Vector3.new(TargetPlayer.Character.HumanoidRootPart.Position.X, localPlayer.Character.HumanoidRootPart.Position.Y, TargetPlayer.Character.HumanoidRootPart.Position.Z)) else localPlayer.Character.Humanoid.AutoRotate = true end if matchacc.TargetAim.Tracer then local mouseScreenPosition = UserInputService:GetMouseLocation() local head = TargetPlayer.Character:FindFirstChild("Head") local humanoidRootPart = TargetPlayer.Character:FindFirstChild("HumanoidRootPart") if head and humanoidRootPart then local headScreenPosition, onScreen = Camera:WorldToViewportPoint(head.Position) if onScreen then local adjustedMousePosition = Vector2.new(mouseScreenPosition.X, mouseScreenPosition.Y) local tool = localPlayer.Character:FindFirstChildOfClass("Tool") if matchacc.TargetAim.TracerPosition == "Tool" and tool and tool:FindFirstChild("Handle") then local pos = Camera:WorldToViewportPoint(tool.Handle.Position) tracer.From = Vector2.new(pos.X, pos.Y) tracerOutline.From = Vector2.new(pos.X, pos.Y) else tracer.From = adjustedMousePosition tracerOutline.From = adjustedMousePosition end tracer.To = Vector2.new(headScreenPosition.X, headScreenPosition.Y) tracerOutline.To = Vector2.new(headScreenPosition.X, headScreenPosition.Y) tracerOutline.Visible = true tracer.Visible = true tracerOutline.Color = matchacc.TargetAim.TracerOutlineColor tracer.Color = matchacc.TargetAim.TracerFillColor else tracer.Visible = false tracerOutline.Visible = false end end end else LocalPlayer.Character.Humanoid.AutoRotate = true tracer.Visible = false tracerOutline.Visible = false end if matchacc.TargetAim.Target ~= "None" then local TargetPlayer = players:FindFirstChild(matchacc.TargetAim.Target) if TargetPlayer then if TargetPlayer.Character ~= lastTargetCharacter and lastTargetCharacter then previousKnock = false previousDead = false end lastTargetCharacter = TargetPlayer.Character if TargetPlayer.Character then local be = TargetPlayer.Character:FindFirstChild("BodyEffects") if be then local ko = be:FindFirstChild("K.O") local sdeath = be:FindFirstChild("SDeath") local hum = TargetPlayer.Character:FindFirstChildOfClass("Humanoid") local currentKnock = ko and ko.Value or false local currentDead = (sdeath and sdeath.Value) or (hum and hum.Health <= 0) or false if currentKnock and not previousKnock then Library:Notify(TargetPlayer.Name .. " knocked", 3) end if currentDead and not previousDead then Library:Notify(TargetPlayer.Name .. " died", 3) end previousKnock = currentKnock previousDead = currentDead end end else Library:Notify(matchacc.TargetAim.Target .. " left the game", 3) matchacc.TargetAim.Target = "None" previousKnock = false previousDead = false lastTargetCharacter = nil end end if not useDesync or hrp then BodyClone:SetPrimaryPartCFrame(CFrame.new(9999, 9999, 9999)) BodyCloneHighlight.Enabled = false DesyncLine.Visible = false end if useDesync and hrp then if matchacc.TargetAim.AutoStomp and TargetPlayer and KnockCheck(TargetPlayer) and localPlayer.Character.BodyEffects.Reload.Value == false then local bodyEffects = TargetPlayer.Character:FindFirstChild("BodyEffects") local isDead = bodyEffects and bodyEffects:FindFirstChild("SDeath") and bodyEffects.SDeath.Value if isDead == false then hrp.CFrame = CFrame.new(TargetPlayer.Character.UpperTorso.Position + Vector3.new(0, 3, 0)) RunService:BindToRenderStep("RestoreStomp", 199, function() hrp.CFrame = SavedPosition RunService:UnbindFromRenderStep("RestoreStomp") end) if matchacc.HitEffects.HitNotifications then if tick() - t >= 3 then t = tick() Library:Notify("Matcha.cc - Attempted to Stomp Target: " .. TargetPlayer.Name, matchacc.HitEffects.HitNotificationsTime) end end MainEvent:FireServer("Stomp") end elseif matchacc.KillAura.StompAura and not (AutoKillActive or TargetAimActive or AutoArmorActive or AutoLoadoutActive or BuyingSingleActive or AutoHealActive) then local shortestDistance = math.huge local stompTarget for _, player in pairs(players:GetPlayers()) do if player ~= localPlayer and player.Character and player.Character:FindFirstChild("Head") and KnockCheck(player) and not player.Character:FindFirstChild("ForceField") then local distance = (player.Character.HumanoidRootPart.Position - hrp.Position).Magnitude if distance <= matchacc.KillAura.Range and distance < shortestDistance then shortestDistance = distance stompTarget = player end end end if stompTarget then local bodyEffects = stompTarget.Character:FindFirstChild("BodyEffects") local isDead = bodyEffects and bodyEffects:FindFirstChild("SDeath") and bodyEffects.SDeath.Value if isDead == false then hrp.CFrame = CFrame.new(stompTarget.Character.UpperTorso.Position + Vector3.new(0, 3, 0)) RunService:BindToRenderStep("RestoreStompAura", 199, function() hrp.CFrame = SavedPosition RunService:UnbindFromRenderStep("RestoreStompAura") end) MainEvent:FireServer("Stomp") end end end end end) local function GetInventoryAmmo(gunName) local inv = localPlayer:FindFirstChild("DataFolder") and localPlayer.DataFolder:FindFirstChild("Inventory") if not inv then return 0 end local ammo = inv:FindFirstChild(gunName) return ammo and tonumber(ammo.Value) or 0 end RunService.Heartbeat:Connect(function() ------------------------------------------------------------ -- TARGET AIM (GIỮ NGUYÊN) ------------------------------------------------------------ if matchacc.TargetAim.Enabled and matchacc.TargetAim.Strafe and matchacc.TargetAim.Target ~= "None" and localPlayer.Character and localPlayer.Character:FindFirstChild("HumanoidRootPart") and localPlayer.Character:FindFirstChild("Humanoid") and localPlayer.Character:FindFirstChild("Head") then local target = players:FindFirstChild(matchacc.TargetAim.Target) if target and target.Character and target.Character:FindFirstChild("Head") and not target.Character:FindFirstChild("ForceField") then local body = target.Character:FindFirstChild("BodyEffects") local dead = body and body:FindFirstChild("Dead") and body.Dead.Value if ((not KnockCheck(target)) or (matchacc.TargetAim.AutoStomp and dead == false)) then TargetAimActive = true end end end ------------------------------------------------------------ -- BUY SINGLE CHECK ------------------------------------------------------------ if BuyingSingle and not localPlayer.Character:FindFirstChild(SelectedGun) and not localPlayer.Backpack:FindFirstChild(SelectedGun) then BuyingSingleActive = true end if headshots.AutoLoadout.Enabled and headshots.AutoLoadout.Gun then local gunName = headshots.AutoLoadout.Gun local hasGun = localPlayer.Character:FindFirstChild(gunName) or localPlayer.Backpack:FindFirstChild(gunName) local invAmmo = GetInventoryAmmo(gunName) if not hasGun then AutoLoadoutActive = true BuyingAmmo = false elseif invAmmo == 0 then BuyingAmmo = true AutoLoadoutActive = false else AutoLoadoutActive = false BuyingAmmo = false end end ------------------------------------------------------------ -- DESYNC CHECK ------------------------------------------------------------ abletodesync = not ( AutoKillActive or TargetAimActive or AutoArmorActive or AutoLoadoutActive or BuyingSingleActive or AutoHealActive or BuyingAmmoActive ) ------------------------------------------------------------ -- HANDLE BUY ACTIONS ------------------------------------------------------------ local char = localPlayer.Character local hrp = char and char:FindFirstChild("HumanoidRootPart") if not char or not hrp then return end pcall(function() -------------------------------------------------------- -- BUY SINGLE -------------------------------------------------------- if BuyingSingle and not char:FindFirstChild(SelectedGun) and not localPlayer.Backpack:FindFirstChild(SelectedGun) then local shop = workspace.Ignored.Shop:FindFirstChild( ShopTable[SelectedGun].ShopName ) if shop and shop:FindFirstChild("Head") then local saved = hrp.CFrame hrp.CFrame = shop.Head.CFrame RunService:BindToRenderStep("RestoreSingle", 199, function() hrp.CFrame = saved RunService:UnbindFromRenderStep("RestoreSingle") end) local tool = char:FindFirstChildOfClass("Tool") if tool then tool.Parent = localPlayer.Backpack end fireclickdetector(shop:FindFirstChildOfClass("ClickDetector")) end else BuyingSingle = false end if BuyingAmmo then BuyingAmmoActive = true local gunName = headshots.AutoLoadout.Gun -- ***chú ý: .Gun (KHÔNG phải GGun)*** if gunName and type(gunName)=="string" then local AmmoName = "[" .. gunName:sub(2, -2) .. " Ammo]" local ammoData = ShopTable[AmmoName] if ammoData then local shop = workspace.Ignored.Shop:FindFirstChild(ammoData.ShopName) if shop and shop:FindFirstChild("Head") then local tool = char:FindFirstChildOfClass("Tool") if tool then tool.Parent = localPlayer.Backpack end local saved = hrp.CFrame hrp.CFrame = shop.Head.CFrame RunService:BindToRenderStep("RestoreAmmo", 199, function() hrp.CFrame = saved RunService:UnbindFromRenderStep("RestoreAmmo") end) pcall(function() fireclickdetector(shop:FindFirstChildOfClass("ClickDetector")) end) end end end -- reset flags đúng thứ tự BuyingAmmo = false BuyingAmmoActive = false end if AutoLoadoutActive and headshots.AutoLoadout.Gun and ShopTable[headshots.AutoLoadout.Gun] and not char:FindFirstChild(headshots.AutoLoadout.Gun) and not localPlayer.Backpack:FindFirstChild(headshots.AutoLoadout.Gun) then local shop = workspace.Ignored.Shop:FindFirstChild( ShopTable[headshots.AutoLoadout.Gun].ShopName ) if shop and shop:FindFirstChild("Head") then local saved = hrp.CFrame local tool = char:FindFirstChildOfClass("Tool") if tool then tool.Parent = localPlayer.Backpack end hrp.CFrame = shop.Head.CFrame RunService:BindToRenderStep("RestoreAutoGun", 199, function() hrp.CFrame = saved RunService:UnbindFromRenderStep("RestoreAutoGun") end) fireclickdetector(shop:FindFirstChildOfClass("ClickDetector")) end end end) end) local ScreenGui = Instance.new("ScreenGui") ScreenGui.Parent = game.CoreGui local StatusLabel = Instance.new("TextLabel") StatusLabel.Size = UDim2.new(1, 0, 0, 40) StatusLabel.Position = UDim2.new(0, 0, 1, -160) StatusLabel.BackgroundColor3 = Color3.new(0, 0, 0) StatusLabel.BackgroundTransparency = 1 StatusLabel.TextColor3 = Color3.new(1, 1, 1) StatusLabel.TextSize = 16 StatusLabel.Font = Enum.Font.Code StatusLabel.Text = "" StatusLabel.Parent = ScreenGui -- Function để update status local function update_status(text) StatusLabel.Text = text end RunService.Heartbeat:Connect(function(dt) if matchacc.TargetAim.AutoKill and not (TargetAimActive or AutoArmorActive or AutoLoadoutActive or BuyingSingleActive or AutoHealActive or BuyingAmmoActive) then local targetName = matchacc.TargetAim.Target if getgenv().lastTarget ~= targetName then -- Force restore vị trí khi target thay đổi để tránh stuck từ target cũ if localPlayer.Character and localPlayer.Character:FindFirstChild("HumanoidRootPart") then RunService:BindToRenderStep("RestoreCFrame", 199, function() localPlayer.Character.HumanoidRootPart.CFrame = SavedPosition RunService:UnbindFromRenderStep("RestoreCFrame") end) end getgenv().lastTarget = targetName end if targetName ~= nil and targetName ~= "None" then -- Thêm check "None" để tránh target default local Target = players:FindFirstChild(targetName) if Target and Target.Character and localPlayer and localPlayer.Character then local humanoidRootPart = localPlayer.Character:FindFirstChild("HumanoidRootPart") local head = localPlayer.Character:FindFirstChild("Head") local tool = localPlayer.Character:FindFirstChildOfClass("Tool") local toolHandle = tool and tool:FindFirstChild("Handle") local targetHRP = Target.Character:FindFirstChild("HumanoidRootPart") local targetHead = Target.Character:FindFirstChild("Head") local targetHumanoid = Target.Character:FindFirstChild("Humanoid") local SavedPosition = localPlayer.Character.HumanoidRootPart.CFrame local displayName = Target.DisplayName local username = Target.Name local health = targetHumanoid and targetHumanoid.Health or 0 local status = "" if humanoidRootPart and head and toolHandle and targetHRP and targetHead then if not KnockCheck(Target) then AutoKillActive = true if not Target.Character:FindFirstChild("ForceField") then humanoidRootPart.CFrame = CFrame.lookAt(Target.Character.Head.Position + Vector3.new(math.random(-15,15), math.random(-15,15), math.random(-15,15)), Target.Character.Head.Position) status = "Shooting Target" MainEvent:FireServer("ShootGun", toolHandle, toolHandle.Position, Target.Character.Head.Position, targetHead, Vector3.new(0, 1, 0)) else humanoidRootPart.CFrame += Vector3.new(math.random(-7777, 7777), math.random(0, 7777), math.random(-7777, 7777)) status = "Waiting.. Target has spawn protection" MainEvent:FireServer("Reload", tool) end if matchacc.TargetAim.Spoofer then RunService:BindToRenderStep("RestoreStrafe", 199, function() humanoidRootPart.CFrame = SavedPosition RunService:UnbindFromRenderStep("RestoreStrafe") end) end else -- Handle dead targets local bodyEffects = Target.Character:FindFirstChild("BodyEffects") local isDead = bodyEffects and bodyEffects:FindFirstChild("SDeath") and bodyEffects.SDeath.Value if isDead == false then if Target.Character:FindFirstChild("UpperTorso") and Target.Character:FindFirstChild("HumanoidRootPart") and Target.Character:FindFirstChild("Humanoid") then humanoidRootPart.CFrame = CFrame.new(Target.Character.UpperTorso.Position + Vector3.new(0, 3, 0)) status = "Stomping Target" MainEvent:FireServer("Stomp") end elseif isDead == true then -- Move to safe position when target is dead humanoidRootPart.CFrame += Vector3.new(math.random(-9e9, 9e9), math.random(0, 9e9), math.random(-9e9, 9e9)) status = "Waiting.. Target is currently dead" MainEvent:FireServer("Reload", tool) end if matchacc.TargetAim.Spoofer then RunService:BindToRenderStep("RestoreStrafe", 199, function() humanoidRootPart.CFrame = SavedPosition RunService:UnbindFromRenderStep("RestoreStrafe") end) end end if voldBypassEnabled then local pos = Target.Character.HumanoidRootPart.CFrame.Position if pos.X < -10000 or pos.X > 10000 or pos.Y < -10000 or pos.Y > 10000 or pos.Z < -10000 or pos.Z > 10000 then AutoKillActive = false return end end if matchacc.TargetAim.VisualizeStrafe then BodyClone:SetPrimaryPartCFrame(humanoidRootPart.CFrame) BodyCloneHighlight.Enabled = true SetRigTransparency(BodyClone, 0) SetRigColor(BodyClone, matchacc.TargetAim.VisualizeStrafeInlineColor) BodyCloneHighlight.FillColor = matchacc.TargetAim.VisualizeStrafeInlineColor BodyCloneHighlight.OutlineColor = matchacc.TargetAim.VisualizeStrafeOutlineColor else BodyCloneHighlight.Enabled = false BodyClone:SetPrimaryPartCFrame(CFrame.new(9999, 9999, 9999)) SetRigTransparency(BodyClone, 1) end else equipAllGuns() -- Gọi hàm equipAllGuns để cầm tất cả tool status = "Auto equipping all guns with ammo" -- Sau khi equip, reload những tool ammo <= 0 for _, equippedTool in ipairs(localPlayer.Character:GetChildren()) do if equippedTool:IsA("Tool") and equippedTool:FindFirstChild("Ammo") and equippedTool.Ammo.Value <= 0 then MainEvent:FireServer("Reload", equippedTool) status = status .. " Reloading " .. equippedTool.Name end end humanoidRootPart.CFrame += Vector3.new(math.random(-9e9, 9e9), math.random(0,9e9), math.random(-9e9, 9e9)) if matchacc.TargetAim.Spoofer then RunService:BindToRenderStep("RestoreStrafe", 199, function() humanoidRootPart.CFrame = SavedPosition RunService:UnbindFromRenderStep("RestoreStrafe") end) end status = status .. " Waiting.. Equip your gun while using 'Auto Kill Target'" BodyClone:SetPrimaryPartCFrame(CFrame.new(9999, 9999, 9999)) BodyCloneHighlight.Enabled = false DesyncLine.Visible = false end update_status("Name: " .. displayName .. "(@" .. username .. ") Health: " .. health .. " Autokill status: " .. status) end end else update_status("") -- Ẩn status khi không đáp ứng điều kiện end end) if isDaHood then -- UI Setup (sửa để phù hợp với lib của bạn, giả sử sử dụng Tabs.Misc:AddLeftGroupbox('AutoBuy')) local AutoBuyGroup = Tabs.Misc:AddLeftGroupbox('AutoBuy') AutoBuyGroup:AddDropdown('SelectedGun', { Values = {'[Rifle]', '[LMG]', '[AK47]', '[AUG]', '[AR]', '[Double-Barrel SG]', '[Drum-Shotgun]', '[DrumGun]', '[Glock]', '[P90]', '[RPG]', '[Revolver]', '[Silencer]', '[SilencerAR]', '[Shotgun]', '[SMG]', '[TacticalShotgun]', '[Taser]'}, Default = '[Rifle]', Multi = false, Text = 'Select Gun', Callback = function(Value) SelectedGun = Value end }) AutoBuyGroup:AddButton('Buy Selected Gun', function() BuyingSingle = true end) AutoBuyGroup:AddToggle('AutoBuyGunAmmo', { Text = 'Autobuy Gun + Ammo', Default = false, Callback = function(Value) headshots.AutoLoadout.Enabled = Value end }) AutoBuyGroup:AddDropdown('AutoLoadoutGun', { Values = {'[Rifle]', '[LMG]', '[AK47]', '[AUG]', '[AR]', '[Double-Barrel SG]', '[Drum-Shotgun]', '[DrumGun]', '[Glock]', '[P90]', '[RPG]', '[Revolver]', '[Silencer]', '[SilencerAR]', '[Shotgun]', '[SMG]', '[TacticalShotgun]', '[Taser]'}, Default = '[Rifle]', Multi = false, Text = 'Auto Gun', Callback = function(Value) headshots.AutoLoadout.Gun = Value end }) getgenv().AutoHealEnabled = false getgenv().AutoHealThreshold = 100 -- Biến mới: Ngưỡng health để kích hoạt autoheal (default 50) getgenv().AutoArmorEnabled = false getgenv().AutoArmorThreshold = 50 AutoBuyGroup:AddToggle('AutoHeal', { Text = 'Auto Heal', Default = false, Tooltip = 'auto eat when low health', Callback = function(Value) getgenv().AutoHealEnabled = Value if Value then Library:Notify("Auto Heal enabled", 5) else Library:Notify("Auto Heal disabled", 5) end end }) -- Thêm Slider để điều chỉnh ngưỡng health AutoBuyGroup:AddSlider('AutoHealThreshold', { Text = 'Heal Threshold', Default = 99, Min = 1, Max = 99, Rounding = 0, Tooltip = 'Heal when health below this value', Callback = function(Value) getgenv().AutoHealThreshold = Value Library:Notify("Auto Heal threshold set to " .. Value, 5) end }) AutoBuyGroup:AddToggle('AutoArmor', { Text = 'Auto Armor', Default = false, Tooltip = 'auto buy armor when low', Callback = function(Value) getgenv().AutoArmorEnabled = Value if Value then Library:Notify("Auto Armor enabled", 5) else Library:Notify("Auto Armor disabled", 5) end end }) AutoBuyGroup:AddSlider('AutoArmorThreshold', { Text = 'Armor Threshold', Default = 50, Min = 0, Max = 129, Rounding = 0, Tooltip = 'Buy armor when below this value', Callback = function(Value) getgenv().AutoArmorThreshold = Value Library:Notify("Auto Armor threshold set to " .. Value, 5) end }) task.wait(1) coroutine.wrap(function() while true do task.wait() -- Thay vì task.wait(), dùng trong loop để không block pcall(function() if getgenv().AutoHealEnabled and not (AutoKillActive or TargetAimActive or AutoArmorActive or AutoLoadoutActive or BuyingSingleActive or BuyingAmmoActive) then local character = plr.Character local hrp = character.HumanoidRootPart local SavedPosition = hrp.CFrame local humanoid = character:FindFirstChildOfClass("Humanoid") if humanoid and humanoid.Health > 0 then if humanoid.Health > getgenv().AutoHealThreshold then else while humanoid.Health < 100 and getgenv().AutoHealEnabled do AutoHealActive = true character.HumanoidRootPart.CFrame = CFrame.new(game:GetService("Workspace").Ignored.Shop["[Taco] - $4"].Head.Position) * CFrame.new(0, -3.1, 0) RunService:BindToRenderStep("RestoreStrafe", 199, function() hrp.CFrame = SavedPosition RunService:UnbindFromRenderStep("RestoreStrafe") -- Unbind để tránh lặp end) local backpack = plr.Backpack if backpack:FindFirstChild("[Taco]") or character:FindFirstChild("[Taco]") then if backpack:FindFirstChild("[Taco]") then character.HumanoidRootPart.CFrame = CFrame.new(9e9, 9e9, 9e9) RunService:BindToRenderStep("RestoreStrafe", 199, function() hrp.CFrame = SavedPosition RunService:UnbindFromRenderStep("RestoreStrafe") -- Unbind để tránh lặp end) backpack:FindFirstChild("[Taco]").Parent = character -- Equip elseif character:FindFirstChild("[Taco]") then character:FindFirstChild("[Taco]"):Activate() -- Eat end else -- Buy nếu chưa có fireclickdetector(game:GetService("Workspace").Ignored.Shop["[Taco] - $4"].ClickDetector, 0) end task.wait(0) end end end end end) end end)() task.wait(1) coroutine.wrap(function() local RunService = game:GetService("RunService") while true do task.wait() pcall(function() if getgenv().AutoArmorEnabled and not (AutoKillActive or TargetAimActive or AutoHealActive or AutoLoadoutActive or BuyingSingleActive or BuyingAmmoActive) then local character = plr.Character local hrp = character.HumanoidRootPart local bodyEffects = character:FindFirstChild("BodyEffects") -- Giả sử vu178 = BodyEffects if bodyEffects and bodyEffects:FindFirstChild("Armor") then if bodyEffects.Armor.Value > getgenv().AutoArmorThreshold then -- Skip else local SavedPosition = hrp.CFrame while bodyEffects.Armor.Value < 130 and getgenv().AutoArmorEnabled do AutoArmorActive = true if bodyEffects.Armor.Value < 130 then if character:FindFirstChildWhichIsA("Tool") then character:FindFirstChildWhichIsA("Tool").Parent = plr.Backpack end hrp.CFrame = CFrame.new(game:GetService("Workspace").Ignored.Shop["[High-Medium Armor] - $2513"].Head.Position) * CFrame.new(0, -1.8, 0) RunService:BindToRenderStep("RestoreStrafe", 199, function() hrp.CFrame = SavedPosition RunService:UnbindFromRenderStep("RestoreStrafe") end) fireclickdetector(game:GetService("Workspace").Ignored.Shop["[High-Medium Armor] - $2513"].ClickDetector, 0) end task.wait(0) end AutoArmorActive = false end end end end) end end)() getgenv().AutoMaskEnabled = false getgenv().SelectedMask = "surgeon" -- Default mask AutoBuyGroup:AddToggle('AutoMask', { Text = 'Auto Mask', Default = false, Tooltip = 'auto buy and use mask when needed', Callback = function(Value) getgenv().AutoMaskEnabled = Value if Value then Library:Notify("Auto Mask enabled", 5) else Library:Notify("Auto Mask disabled", 5) end end }) -- Dropdown chọn mask AutoBuyGroup:AddDropdown('MaskSelection', { Values = {"paint", "ninja", "surgeon", "riot", "hockey", "breathing", "skull", "pumpkin"}, Default = "surgeon", Multi = false, Text = 'Select Mask', Tooltip = 'Choose mask type', Callback = function(Value) getgenv().SelectedMask = Value Library:Notify("Selected mask: " .. Value, 5) end }) coroutine.wrap(function() local RunService = game:GetService("RunService") local vu98 = { paint = "[Paintball Mask] - $66", ninja = "[Ninja Mask] - $66", surgeon = "[Surgeon Mask] - $27", riot = "[Riot Mask] - $66", hockey = "[Hockey Mask] - $66", breathing = "[Breathing Mask] - $66", skull = "[Skull Mask] - $66", pumpkin = "[Pumpkin Mask] - $66" } while true do task.wait() pcall(function() if getgenv().AutoMaskEnabled then local character = plr.Character local hrp = character.HumanoidRootPart local humanoid = character:FindFirstChildOfClass("Humanoid") if humanoid and humanoid.Health > 0 then local maskName = vu98[getgenv().SelectedMask] local maskShop = game:GetService("Workspace").Ignored.Shop:FindFirstChild(maskName) if not maskShop then return end local SavedPosition = hrp.CFrame local maskInBackpack = plr.Backpack:FindFirstChild("[Mask]") local maskInChar = character:FindFirstChild("[Mask]") local inGameMask = character:FindFirstChild("In-gameMask") if maskInBackpack or (maskInChar or inGameMask) then if (maskInBackpack or maskInChar) and not inGameMask then if maskInBackpack then maskInBackpack.Parent = character task.wait(0.3) end local maskTool = character:FindFirstChild("[Mask]") if maskTool then maskTool:Activate() task.wait(1) if character:FindFirstChild("Humanoid") and humanoid.Health > 0 and plr:FindFirstChild("Backpack") then maskTool.Parent = plr.Backpack end getgenv().AutoMaskEnabled = false -- Disable sau khi use Library:Notify("Mask used, auto logic disabled.", 5) end end else -- Buy mask hrp.CFrame = CFrame.new(maskShop.Head.Position) * CFrame.new(0, 2, 0) RunService:BindToRenderStep("RestoreStrafe", 199, function() hrp.CFrame = SavedPosition RunService:UnbindFromRenderStep("RestoreStrafe") end) fireclickdetector(maskShop.ClickDetector, 0) end end end end) end end)() end end)() task.wait(1) coroutine.wrap(function() local RS = cloneref(game:GetService("RunService")) local highlights = {} RS.RenderStepped:Connect(function() if matchacc.HitboxExpander.Enabled then for _, Player in pairs(players:GetPlayers()) do if Player == Client then continue end local HRP = Player.Character and Player.Character:WaitForChild("HumanoidRootPart") if HRP then HRP.Size = Vector3.new(matchacc.HitboxExpander.Size, matchacc.HitboxExpander.Size, matchacc.HitboxExpander.Size) HRP.CanCollide = false if matchacc.HitboxExpander.Visualize then if not highlights[Player] then local Visualize = Instance.new("Highlight") HRP.Transparency = 0.9 Visualize.Parent = HRP Visualize.FillColor = matchacc.HitboxExpander.Color Visualize.OutlineColor = matchacc.HitboxExpander.OutlineColor Visualize.FillTransparency = matchacc.HitboxExpander.FillTransparency Visualize.OutlineTransparency = matchacc.HitboxExpander.OutlineTransparency highlights[Player] = Visualize else local Visualize = highlights[Player] HRP.Transparency = 0.9 Visualize.FillColor = matchacc.HitboxExpander.Color Visualize.OutlineColor = matchacc.HitboxExpander.OutlineColor Visualize.FillTransparency = matchacc.HitboxExpander.FillTransparency Visualize.OutlineTransparency = matchacc.HitboxExpander.OutlineTransparency end else local Visualize = highlights[Player] if Visualize then Visualize:Destroy() HRP.Transparency = 1 highlights[Player] = nil end end end end end end) local CharacterModsGroup = Tabs.Character:AddRightGroupbox('Character Mods') CharacterModsGroup:AddToggle("Anti Slow",{ Text = "Anti Slow", Default = false, Callback = function(state) if not Starting then Modules:AntiSlow(state) end end }) -- No Jump Cooldown getgenv().NoJumpCooldown = false RunService.RenderStepped:Connect(function() if getgenv().NoJumpCooldown and localPlayer.Character and localPlayer.Character:FindFirstChild("Humanoid") then local hum = localPlayer.Character.Humanoid hum.UseJumpPower = not hum.UseJumpPower end end) CharacterModsGroup:AddToggle('NoJumpCooldown', { Text = 'No Jump Cooldown', Default = false, Callback = function(v) getgenv().NoJumpCooldown = v end }) -- ==================== ANIMATION (Right Side) ==================== local AnimationGroup = Tabs.Character:AddRightGroupbox('Animation') getgenv().Matcha.Dance = { Enabled = false, Playing = false, Selected = "Baby Queen - Bouncy Twirl", AnimationId = "14352343065" } local DanceList = { ["Baby Queen - Bouncy Twirl"] = "14352343065", ["Floss"] = "10714340543", ["Yungblud Happier Jump"] = "15609995579", ["Godlike"] = "10714347256", ["Mae Stephens - Dance"] = "16553163212", ["Victory Dance"] = "15505456446", ["Elton John - Heart Skip"] = "11309255148", ["Sturdy Dance - Ice Spice"] = "17746180844", ["Old Town Road Dance"] = "10714391240", ["Sidekicks"] = "10370362157", ["Baby Dance"] = "10713983178", ["Rampage"] = "139658061151500", ["Rambunctious"] = "85916053135662", ["Griddy"] = "121966805049108", ["Orange Justice"] = "78927657777256" } local danceTrack = nil local function loadDance(name) local char = localPlayer.Character if not char or not char:FindFirstChild("Humanoid") then return end if danceTrack then danceTrack:Stop() danceTrack:Destroy() danceTrack = nil end local animId = DanceList[name] if animId then local anim = Instance.new("Animation") anim.AnimationId = "rbxassetid://" .. animId danceTrack = char.Humanoid:LoadAnimation(anim) danceTrack.Priority = Enum.AnimationPriority.Action if getgenv().Matcha.Dance.Playing then danceTrack.Looped = true danceTrack:Play() end end end AnimationGroup:AddDropdown('DanceSelect', { Values = (function() local t = {} for k,_ in pairs(DanceList) do table.insert(t, k) end table.sort(t) return t end)(), Default = 0, Multi = false, Text = 'Dance Animation', Searchable = true, Callback = function(v) getgenv().Matcha.Dance.Selected = v loadDance(v) end }) AnimationGroup:AddToggle('DanceToggle', { Text = 'Play Dance', Default = false, Callback = function(v) getgenv().Matcha.Dance.Enabled = v getgenv().Matcha.Dance.Playing = v if v and danceTrack then danceTrack.Looped = true danceTrack:Play() elseif danceTrack then danceTrack:Stop() end end }):AddKeyPicker('DanceKey', { Default = 'None', SyncToggleState = true, Mode = 'Toggle', Text = 'Dance Keybind' }) local KeepOnDeath = false -- Animation hiện tại đang dùng local AnimationOptions = { ["Idle1"] = "http://www.roblox.com/asset/?id=180435571", ["Idle2"] = "http://www.roblox.com/asset/?id=180435792", ["Walk"] = "http://www.roblox.com/asset/?id=180426354", ["Run"] = "http://www.roblox.com/asset/?id=180426354", ["Jump"] = "http://www.roblox.com/asset/?id=125750702", ["Climb"] = "http://www.roblox.com/asset/?id=180436334", ["Fall"] = "http://www.roblox.com/asset/?id=180436148" } -- Danh sách animation pack local AnimationSets = { ["Default"] = { idle1 = "180435571", idle2 = "180435792", walk = "180426354", run = "180426354", jump = "125750702", climb = "180436334", fall = "180436148" }, ["Ninja"] = { idle1 = "656117400", idle2 = "656118341", walk = "656121766", run = "656118852", jump = "656117878", climb = "656114359", fall = "656115606" }, ["Superhero"] = { idle1 = "616111295", idle2 = "616113536", walk = "616122287", run = "616117076", jump = "616115533", climb = "616104706", fall = "616108001" }, ["Robot"] = { idle1 = "616088211", idle2 = "616089559", walk = "616095330", run = "616091570", jump = "616090535", climb = "616086039", fall = "616087089" }, ["Cartoon"] = { idle1 = "742637544", idle2 = "742638445", walk = "742640026", run = "742638842", jump = "742637942", climb = "742636889", fall = "742637151" }, ["Catwalk"] = { idle1 = "133806214992291", idle2 = "94970088341563", walk = "109168724482748", run = "81024476153754", jump = "116936326516985", climb = "119377220967554", fall = "92294537340807" }, ["Zombie"] = { idle1 = "616158929", idle2 = "616160636", walk = "616168032", run = "616163682", jump = "616161997", climb = "616156119", fall = "616157476" }, ["Mage"] = { idle1 = "707742142", idle2 = "707855907", walk = "707897309", run = "707861613", jump = "707853694", climb = "707826056", fall = "707829716" }, ["Pirate"] = { idle1 = "750785693", idle2 = "750782770", walk = "750785693", run = "750782770", jump = "750782770", climb = "750782770", fall = "750782770" }, ["Knight"] = { idle1 = "657595757", idle2 = "657568135", walk = "657552124", run = "657564596", jump = "657560148", climb = "657556206", fall = "657552124" }, ["Vampire"] = { idle1 = "1083465857", idle2 = "1083465857", walk = "1083465857", run = "1083465857", jump = "1083465857", climb = "1083465857", fall = "1083465857" }, ["Bubbly"] = { idle1 = "910004836", idle2 = "910009958", walk = "910034870", run = "910025107", jump = "910016857", climb = "910009958", fall = "910009958" }, ["Elder"] = { idle1 = "845386501", idle2 = "845397899", walk = "845403856", run = "845386501", jump = "845386501", climb = "845386501", fall = "845386501" }, ["Toy"] = { idle1 = "782841498", idle2 = "782841498", walk = "782841498", run = "782841498", jump = "782841498", climb = "782841498", fall = "782841498" } } -- Hàm áp dụng animation local function applyCustomAnimations(character) if not character or not character:FindFirstChild("Animate") then return end local Animate = character.Animate local Cloned = Animate:Clone() Cloned.idle.Animation1.AnimationId = AnimationOptions.Idle1 Cloned.idle.Animation2.AnimationId = AnimationOptions.Idle2 Cloned.walk.WalkAnim.AnimationId = AnimationOptions.Walk Cloned.run.RunAnim.AnimationId = AnimationOptions.Run Cloned.jump.JumpAnim.AnimationId = AnimationOptions.Jump Cloned.climb.ClimbAnim.AnimationId = AnimationOptions.Climb Cloned.fall.FallAnim.AnimationId = AnimationOptions.Fall Animate:Destroy() Cloned.Parent = character end -- Áp dụng khi respawn nếu bật Keep On Death localPlayer.CharacterAdded:Connect(function(char) if KeepOnDeath then task.wait(1.5) applyCustomAnimations(char) end end) -- Tạo danh sách tên pack local animPackNames = {} for name,_ in pairs(AnimationSets) do table.insert(animPackNames, name) end table.sort(animPackNames) -- Hàm cập nhật 1 animation riêng lẻ local function updateAnimation(key, id) AnimationOptions[key] = "http://www.roblox.com/asset/?id=" .. id if localPlayer.Character then applyCustomAnimations(localPlayer.Character) end end AnimationGroup:AddDropdown('AnimPack', { Values = animPackNames, Default = 1, Multi = false, Text = 'Animation Pack', Searchable = true, Callback = function(value) local set = AnimationSets[value] updateAnimation("Idle1", set.idle1) updateAnimation("Idle2", set.idle2) updateAnimation("Walk", set.walk) updateAnimation("Run", set.run) updateAnimation("Jump", set.jump) updateAnimation("Climb", set.climb) updateAnimation("Fall", set.fall) end }) AnimationGroup:AddDropdown('Idle1', { Values = animPackNames, Default = 1, Multi = false, Text = 'Idle Animation 1', Callback = function(v) updateAnimation("Idle1", AnimationSets[v].idle1) end }) AnimationGroup:AddDropdown('Idle2', { Values = animPackNames, Default = 1, Multi = false, Text = 'Idle Animation 2', Callback = function(v) updateAnimation("Idle2", AnimationSets[v].idle2) end }) AnimationGroup:AddDropdown('Walk', { Values = animPackNames, Default = 1, Multi = false, Text = 'Walk Animation', Callback = function(v) updateAnimation("Walk", AnimationSets[v].walk) end }) AnimationGroup:AddDropdown('Run', { Values = animPackNames, Default = 1, Multi = false, Text = 'Run Animation', Callback = function(v) updateAnimation("Run", AnimationSets[v].run) end }) AnimationGroup:AddDropdown('Jump', { Values = animPackNames, Default = 1, Multi = false, Text = 'Jump Animation', Callback = function(v) updateAnimation("Jump", AnimationSets[v].jump) end }) AnimationGroup:AddDropdown('Climb', { Values = animPackNames, Default = 1, Multi = false, Text = 'Climb Animation', Callback = function(v) updateAnimation("Climb", AnimationSets[v].climb) end }) AnimationGroup:AddDropdown('Fall', { Values = animPackNames, Default = 1, Multi = false, Text = 'Fall Animation', Callback = function(v) updateAnimation("Fall", AnimationSets[v].fall) end }) AnimationGroup:AddToggle('KeepAnimOnDeath', { Text = 'Keep On Death', Default = false, Tooltip = 'Giữ animation sau khi respawn', Callback = function(v) KeepOnDeath = v end }) getgenv().Matcha.Character = getgenv().Matcha.Character or {} getgenv().Matcha.Character.Noclip = false local NoclipConnection local function toggleNoclip(bool) getgenv().Matcha.Character.Noclip = bool if bool then NoclipConnection = RunService.Stepped:Connect(function() if localPlayer.Character then for _, v in pairs(localPlayer.Character:GetDescendants()) do if v:IsA("BasePart") and v.CanCollide then v.CanCollide = false end end end end) else if NoclipConnection then NoclipConnection:Disconnect() end end end CharacterModsGroup:AddToggle('Noclip', { Text = 'Noclip', Default = false, Callback = toggleNoclip }):AddKeyPicker('NoclipKey', { Default = 'N', SyncToggleState = true, Mode = 'Toggle', Text = 'Noclip' }) do local CollectionService = game:GetService("CollectionService") local seats = {} local function disableSeat(seat, bool) if seat and seat:IsA("Seat") then seat.Disabled = bool if bool then CollectionService:AddTag(seat, "NoSitSeat") else CollectionService:RemoveTag(seat, "NoSitSeat") end end end for _, seat in workspace:GetDescendants() do if seat:IsA("Seat") then disableSeat(seat, false) table.insert(seats, seat) end end workspace.DescendantAdded:Connect(function(obj) if obj:IsA("Seat") then table.insert(seats, obj) disableSeat(obj, getgenv().NoSeat or false) end end) CharacterModsGroup:AddToggle('NoSeat', { Text = 'No Seat', Default = false, Callback = function(v) getgenv().NoSeat = v for _, seat in seats do disableSeat(seat, v) end end }) end local Storage = { Connections = {} } local function NewConnection(signal, callback) local conn = signal:Connect(callback) table.insert(Storage.Connections, conn) return conn end -- Add to matchacc matchacc.Desync = { Enabled = false, Mode = "Custom", RandomAmount = 20, Visualize = false, Line = false, Status = false, Dot = false, CustomX = 0, CustomY = 0, CustomZ = 0 } -- Desync Clone (similar to BodyClone but for Desync) local BodyCloneDesync = game:GetObjects("rbxassetid://8246626421")[1] BodyCloneDesync.Parent = workspace BodyCloneDesync.Humanoid:Destroy() BodyCloneDesync.Head.Face:Destroy() for _, v in pairs(BodyCloneDesync:GetDescendants()) do if v:IsA("BasePart") or v:IsA("MeshPart") then v.CanCollide = false v.Transparency = 0 -- Show all parts for visualize end end BodyCloneDesync.HumanoidRootPart.Transparency = 0.5 BodyCloneDesync.HumanoidRootPart.Velocity = Vector3.zero BodyCloneDesync.HumanoidRootPart.CFrame = CFrame.new(9999, 9999, 9999) -- Highlight for visualize local BodyCloneDesyncHighlight = Instance.new("Highlight") BodyCloneDesyncHighlight.Enabled = false BodyCloneDesyncHighlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop BodyCloneDesyncHighlight.FillColor = Color3.fromRGB(0, 255, 0) BodyCloneDesyncHighlight.OutlineColor = Color3.fromRGB(255, 255, 255) BodyCloneDesyncHighlight.FillTransparency = 0.3 BodyCloneDesyncHighlight.OutlineTransparency = 0 BodyCloneDesyncHighlight.Adornee = BodyCloneDesync BodyCloneDesyncHighlight.Parent = BodyCloneDesync -- Glow local GlowLight = Instance.new("PointLight") GlowLight.Color = Color3.fromRGB(0, 255, 100) GlowLight.Brightness = 4 GlowLight.Range = 2 GlowLight.Parent = BodyCloneDesync.HumanoidRootPart -- Desync Line local DesyncLine1 = Drawing.new("Line") DesyncLine1.Thickness = 2 DesyncLine1.Color = Color3.fromRGB(0, 255, 0) DesyncLine1.Visible = false DesyncLine1.Transparency = 1 -- Desync Dot local DesyncDot = Drawing.new("Circle") DesyncDot.Radius = 6 DesyncDot.Thickness = 1.5 DesyncDot.NumSides = 16 DesyncDot.Color = Color3.fromRGB(0, 255, 100) DesyncDot.Filled = true DesyncDot.Transparency = 1 DesyncDot.Visible = false -- Desync Status Text local DesyncStatus = Drawing.new("Text") DesyncStatus.Text = "Desync: FALSE" DesyncStatus.Size = 16 DesyncStatus.Font = 2 DesyncStatus.Color = Color3.fromRGB(255, 0, 0) DesyncStatus.Outline = true DesyncStatus.OutlineColor = Color3.fromRGB(0, 0, 0) DesyncStatus.Center = false DesyncStatus.Visible = false DesyncStatus.Position = Vector2.new(100, 100) -- Reset Camera function local function resetCamera() if LocalPlayer.Character then Camera.CameraSubject = LocalPlayer.Character:FindFirstChild("Humanoid") end end local desync_setback = Instance.new("Part") desync_setback.Name = "DesyncSetback" desync_setback.Size = Vector3.new(2, 2, 1) desync_setback.CanCollide = false desync_setback.Anchored = true desync_setback.Transparency = 1 desync_setback.Parent = workspace RunService.Heartbeat:Connect(function() if not LocalPlayer.Character then BodyCloneDesync:SetPrimaryPartCFrame(CFrame.new(9999, 9999, 9999)) BodyCloneDesyncHighlight.Enabled = false DesyncLine1.Visible = false DesyncDot.Visible = false DesyncStatus.Visible = false return end local hrp = LocalPlayer.Character:FindFirstChild("HumanoidRootPart") local lowerTorso = LocalPlayer.Character:FindFirstChild("LowerTorso") -- For Da Hood desync if not hrp then DesyncDot.Visible = false return end local oldCFrame = hrp.CFrame -- Lưu CFrame đầy đủ (position + rotation) local desyncCFrame = oldCFrame -- Default là giống hrp nếu không desync -- Logic Desync (giữ nguyên như cũ, chỉ áp dụng nếu Enabled) if matchacc.Desync.Enabled then if matchacc.Desync.Mode == "Destroy Cheaters" then desyncCFrame = CFrame.new(9e9, 1, 1) * oldCFrame.Rotation -- Giữ rotation elseif matchacc.Desync.Mode == "Underground" then desyncCFrame = CFrame.new(hrp.Position - Vector3.new(0, 12, 0)) * oldCFrame.Rotation elseif matchacc.Desync.Mode == "Void Spam" then desyncCFrame = math.random(1,2) == 1 and oldCFrame or CFrame.new(math.random(10000,50000), math.random(10000,50000), math.random(10000,50000)) * oldCFrame.Rotation elseif matchacc.Desync.Mode == "Void" then desyncCFrame = oldCFrame + Vector3.new(math.random(-444444,444444), math.random(-444444,444444), math.random(-44444,44444)) desyncCFrame = desyncCFrame * oldCFrame.Rotation -- Giữ rotation elseif matchacc.Desync.Mode == "Random" then local amount = matchacc.Desync.RandomAmount local offset = Vector3.new(math.random(-amount, amount), math.random(-amount/2, amount/2), math.random(-amount, amount)) desyncCFrame = CFrame.new(oldCFrame.Position + offset) * oldCFrame.Rotation elseif matchacc.Desync.Mode == "Safe Shoot" then desyncCFrame = CFrame.new(hrp.Position - Vector3.new(0, 5, 0)) * CFrame.Angles(math.random(0, 360), math.random(0, 360), math.rad(180)) elseif matchacc.Desync.Mode == "Custom" then desyncCFrame = CFrame.new(hrp.Position - Vector3.new(matchacc.Desync.CustomX, matchacc.Desync.CustomY, matchacc.Desync.CustomZ)) * oldCFrame.Rotation end -- Apply Desync (giữ nguyên) hrp.CFrame = desyncCFrame if not matchacc.TargetAim.SpectateTarget then Camera.CameraSubject = desync_setback end RunService.RenderStepped:Wait() desync_setback.CFrame = oldCFrame * CFrame.new(0, hrp.Size.Y/2 + 0.5, 0) hrp.CFrame = oldCFrame end local visualizePosition = hrp.Position -- mặc định dùng vị trí thật local visualizeCFrame = hrp.CFrame -- mặc định dùng CFrame thật (có rotation) if matchacc.Desync.Enabled then visualizeCFrame = desyncCFrame elseif matchacc.TargetAim.AutoKill then visualizeCFrame = killpos else visualizeCFrame = hrp.CFrame end if matchacc.Desync.Visualize and matchacc.Desync.Enabled then BodyCloneDesync:SetPrimaryPartCFrame(visualizeCFrame) BodyCloneDesyncHighlight.Enabled = true else BodyCloneDesyncHighlight.Enabled = false BodyCloneDesync:SetPrimaryPartCFrame(CFrame.new(9999, 9999, 9999)) end -- Line: Từ mouse đến vị trí visualize (có thể là real / desync / saved) if matchacc.Desync.Line and matchacc.Desync.Enabled then local targetPosition = visualizeCFrame.Position local screenRoot, onScreenRoot = Camera:WorldToViewportPoint(targetPosition) local mouseLocation = UserInputService:GetMouseLocation() if onScreenRoot then DesyncLine1.From = mouseLocation DesyncLine1.To = Vector2.new(screenRoot.X, screenRoot.Y) DesyncLine1.Color = BodyCloneDesyncHighlight.FillColor or Color3.fromRGB(255, 255, 255) DesyncLine1.Visible = true else DesyncLine1.Visible = false end else DesyncLine1.Visible = false end -- Dot: Hiển thị ở vị trí visualize (real / desync / saved) if matchacc.Desync.Dot and matchacc.Desync.Enabled then local targetPosition = visualizeCFrame.Position local screenPos, onScreen = Camera:WorldToViewportPoint(targetPosition) if onScreen then DesyncDot.Position = Vector2.new(screenPos.X, screenPos.Y) DesyncDot.Visible = true else DesyncDot.Visible = false end else DesyncDot.Visible = false end if matchacc.Desync.Status then DesyncStatus.Text = "Desync: " .. (matchacc.Desync.Enabled and "TRUE" or "FALSE") DesyncStatus.Color = matchacc.Desync.Enabled and Color3.fromRGB(0, 255, 0) or Color3.fromRGB(255, 0, 0) DesyncStatus.Visible = true else DesyncStatus.Visible = false end end) -- Dragging for Status Text local dragging = false UserInputService.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 and matchacc.Desync.Status then local mousePos = UserInputService:GetMouseLocation() local textPos = DesyncStatus.Position local textSize = DesyncStatus.TextBounds if mousePos.X >= textPos.X and mousePos.X <= textPos.X + textSize.X and mousePos.Y >= textPos.Y and mousePos.Y <= textPos.Y + textSize.Y then dragging = true end end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end end) UserInputService.InputChanged:Connect(function(input) if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then DesyncStatus.Position = UserInputService:GetMouseLocation() end end) local AntiAim = Tabs.Player:AddRightTabbox() local DesyncGroup = AntiAim:AddTab('Desync') DesyncGroup:AddToggle('DesyncEnabled', { Text = 'Enabled', Default = false, Callback = function(Value) matchacc.Desync.Enabled = Value if not Value then resetCamera() end end }):AddKeyPicker('DesyncKeybind', { Default = 'None', NoUI = true, Text = 'Desync Key', Callback = function(Key) -- Toggle on key press (you can adjust) matchacc.Desync.Enabled = not matchacc.Desync.Enabled if not matchacc.Desync.Enabled then resetCamera() end end }) DesyncGroup:AddDropdown('DesyncMode', { Values = {"Destroy Cheaters", "Underground", "Void Spam", "Void", "Random", "Safe Shoot", "Custom"}, Default = 7, Multi = false, Text = 'Desync Mode', Callback = function(Value) matchacc.Desync.Mode = Value end }) DesyncGroup:AddSlider('DesyncCustomX', { Text = 'Custom X', Default = 0, Min = -10000, Max = 10000, Rounding = 0, Callback = function(Value) matchacc.Desync.CustomX = Value end }) DesyncGroup:AddSlider('DesyncCustomY', { Text = 'Custom Y', Default = 0, Min = -10000, Max = 10000, Rounding = 0, Callback = function(Value) matchacc.Desync.CustomY = Value end }) DesyncGroup:AddSlider('DesyncCustomZ', { Text = 'Custom Z', Default = 0, Min = -10000, Max = 10000, Rounding = 0, Callback = function(Value) matchacc.Desync.CustomZ = Value end }) DesyncGroup:AddSlider('DesyncRandomAmount', { Text = 'Random Amount', Default = 20, Min = 1, Max = 10000000, Suffix = '', Compact = false, Callback = function(Value) matchacc.Desync.RandomAmount = Value end }) DesyncGroup:AddToggle('DesyncVisualize', { Text = 'Visualize Desync', Default = false, Callback = function(Value) matchacc.Desync.Visualize = Value end }):AddColorPicker('DesyncVizColor', { Default = Color3.fromRGB(0, 255, 0), Title = 'Color', Callback = function(Value) BodyCloneDesyncHighlight.FillColor = Value GlowLight.Color = Value DesyncDot.Color = Value end }) DesyncGroup:AddToggle('DesyncLine', { Text = 'Line Desync', Default = false, Callback = function(Value) matchacc.Desync.Line = Value end }) DesyncGroup:AddToggle('DesyncStatus', { Text = 'Desync Status', Default = false, Callback = function(Value) matchacc.Desync.Status = Value end }) DesyncGroup:AddToggle('DesyncDot', { Text = 'Dot Desync', Default = false, Callback = function(Value) matchacc.Desync.Dot = Value end }) local FakePosGroup = AntiAim:AddTab('Fake Pos') local FakePos = { Enabled = false, Mode = "Voidless", Version = "Version 1", ReturnDelay = 0.5, Method = "Advanced", OriginalPos = nil, Active = false } -- Function lấy position theo version local function GetFakePosOffset() if FakePos.Version == "Version 1" then return CFrame.new(100000, 100000, 100000) elseif FakePos.Version == "Version 2" then return CFrame.new(50000000, 50000000, 50000000) elseif FakePos.Version == "Version 3" then return CFrame.new(9e9, 9e9, 9e9) end end -- Function apply fake position local function ApplyFakePosition() if FakePos.Active then return end local Character = game.Players.LocalPlayer.Character if not Character then return end local HRP = Character:FindFirstChild("HumanoidRootPart") if not HRP then return end FakePos.Active = true FakePos.OriginalPos = HRP.CFrame -- Disable void death temporarily local oldFallHeight = workspace.FallenPartsDestroyHeight workspace.FallenPartsDestroyHeight = -math.huge -- Apply method-specific logic if FakePos.Method == "Advanced" then pcall(function() getgenv().Desync = true setfflag("NextGenReplicatorEnabledWrite4", "True") end) end -- Teleport based on mode if FakePos.Mode == "Voidless" then local offset = GetFakePosOffset() if offset then HRP.CFrame = offset end -- Return after delay task.spawn(function() task.wait(FakePos.ReturnDelay) if HRP and FakePos.OriginalPos then HRP.CFrame = FakePos.OriginalPos end workspace.FallenPartsDestroyHeight = oldFallHeight FakePos.Active = false end) elseif FakePos.Mode == "On the spot" then -- Stay at current position but desync task.spawn(function() task.wait(FakePos.ReturnDelay) workspace.FallenPartsDestroyHeight = oldFallHeight FakePos.Active = false end) end end -- Function disable fake position local function DisableFakePosition() FakePos.Active = false workspace.FallenPartsDestroyHeight = 0/0 if FakePos.Method == "Advanced" then pcall(function() getgenv().Desync = false setfflag("NextGenReplicatorEnabledWrite4", "False") end) end end local function isSetFFlagSupported() local success, err = pcall(function() setfflag("SomeDummyFlagForTest", "0") end) if success then return true else warn("Executor not support setfflag: " .. tostring(err)) return false end end -- UI cho Fake Position FakePosGroup:AddToggle('EnableFakePos', { Text = 'Enable', Default = false, Tooltip = 'You has been scam' }):AddKeyPicker('FakePosBind', { Default = '', Mode = 'Toggle', Text = 'Fake Position', NoUI = false, SyncToggleState = false, Callback = function(value) if game:GetService("UserInputService"):GetFocusedTextBox() then return end if not isSetFFlagSupported() then Library:Notify("FakePos requires a powerful executor", 3) end if Toggles.EnableFakePos.Value then if value then ApplyFakePosition() Library:Notify("FakePos Enabled", 3) else DisableFakePosition() Library:Notify("FakePos Disabled", 3) end end end }):OnChanged(function(value) FakePos.Enabled = value if value then ApplyFakePosition() else DisableFakePosition() end end) FakePosGroup:AddDropdown('FakePosVersion', { Values = {'Version 1', 'Version 2', 'Version 3'}, Default = 1, Multi = false, Text = 'Version', Callback = function(value) FakePos.Version = value end }) FakePosGroup:AddDropdown('FakePosMode', { Values = {'Voidless', 'On the spot'}, Default = 1, Multi = false, Text = 'Mode', Callback = function(value) FakePos.Mode = value end }) FakePosGroup:AddSlider('FakePosReturn', { Text = 'Return Delay', Default = 0.5, Min = 0.1, Max = 3, Rounding = 1, Callback = function(value) FakePos.ReturnDelay = value end }) getgenv().VelocitySpoofer = false getgenv().DirectionToShoot = "Custom" getgenv().Direction = Vector3.zero getgenv().CustomVelocity = Vector3.zero local AntilockTab = AntiAim:AddTab("Antilock") -- Velocity Status Text local VelocityGui = Instance.new("ScreenGui", game.CoreGui) VelocityGui.Name = "VelocityStatusGui" VelocityGui.ResetOnSpawn = false VelocityGui.Enabled = false local VelocityText = Instance.new("TextLabel", VelocityGui) VelocityText.Size = UDim2.new(0, 200, 0, 20) VelocityText.Position = UDim2.new(0.02, 0, 0.75, 0) VelocityText.BackgroundColor3 = Color3.fromRGB(20, 20, 20) VelocityText.BackgroundTransparency = 1 VelocityText.TextScaled = true VelocityText.Font = Enum.Font.Code VelocityText.TextStrokeTransparency = 0 VelocityText.TextColor3 = Color3.fromRGB(255, 255, 255) VelocityText.Active = true VelocityText.Draggable = true VelocityText.Text = "Velocity Spoofer : false" -- Toggle AntilockTab:AddToggle("VelocitySpooferToggle", { Text = "Velocity Spoofer", Default = false, Callback = function(v) getgenv().VelocitySpoofer = v VelocityText.Text = "Velocity Spoofer : " .. tostring(v) end }):AddKeyPicker("VelocityKey", { Default = "V", Mode = "Toggle", Text = "Velocity Key", Callback = function(v) getgenv().VelocitySpoofer = v Toggles.VelocitySpooferToggle:SetValue(v) VelocityText.Text = "Velocity Spoofer : " .. tostring(v) end }) -- Mode Dropdown AntilockTab:AddDropdown("VelocityMode", { Text = "Velocity Mode", Default = "Custom", Values = { "Custom", "Behind", "ForWard", "Left", "Right", "Up", "Down", "One", "Zero" }, Callback = function(v) getgenv().DirectionToShoot = v end }) -- Custom Sliders AntilockTab:AddSlider("CustomX", { Text = "Custom X", Min = -10000, Max = 10000, Default = 0, Rounding = 0, Callback = function(v) getgenv().CustomVelocity = Vector3.new(v, getgenv().CustomVelocity.Y, getgenv().CustomVelocity.Z) end }) AntilockTab:AddSlider("CustomY", { Text = "Custom Y", Min = -10000, Max = 10000, Default = 0, Rounding = 0, Callback = function(v) getgenv().CustomVelocity = Vector3.new(getgenv().CustomVelocity.X, v, getgenv().CustomVelocity.Z) end }) AntilockTab:AddSlider("CustomZ", { Text = "Custom Z", Min = -10000, Max = 10000, Default = 0, Rounding = 0, Callback = function(v) getgenv().CustomVelocity = Vector3.new(getgenv().CustomVelocity.X, getgenv().CustomVelocity.Y, v) end }) AntilockTab:AddToggle("Statusvelo", { Text = "Status", Default = false, Callback = function(v) VelocityGui.Enabled = v end }) -- Direction Handler local function UpdateDirection() local d = getgenv().DirectionToShoot if d == "Behind" then getgenv().Direction = Vector3.new(0, 0, -1) elseif d == "Down" then getgenv().Direction = Vector3.new(0, -1, 0) elseif d == "ForWard" then getgenv().Direction = Vector3.new(0, 0, 1) elseif d == "Left" then getgenv().Direction = Vector3.new(-1, 0, 0) elseif d == "Right" then getgenv().Direction = Vector3.new(1, 0, 0) elseif d == "Up" then getgenv().Direction = Vector3.new(0, 1, 0) elseif d == "One" then getgenv().Direction = Vector3.new(1, 1, 1) elseif d == "Zero" then getgenv().Direction = Vector3.zero elseif d == "Custom" then getgenv().Direction = getgenv().CustomVelocity end end -- Velocity Spoofer Core game:GetService("RunService").Heartbeat:Connect(function() if getgenv().VelocitySpoofer then local char = game.Players.LocalPlayer.Character local hrp = char and char:FindFirstChild("HumanoidRootPart") if hrp then UpdateDirection() local old = hrp.Velocity hrp.Velocity = getgenv().Direction * (2^16) game:GetService("RunService").RenderStepped:Wait() hrp.Velocity = old end end end) local PlayerListGroup = Tabs.Player:AddLeftGroupbox('Playerlist') local selectedPlayer = nil local spectateConnection = nil PlayerListGroup:AddDropdown('AutoKillTarget', { SpecialType = 'Player', ExcludeLocalPlayer = true, Multi = false, Text = 'Target', Searchable = true, Callback = function(Value) selectedPlayer = Value end }) PlayerListGroup:AddButton('Set TargetAim', function() if selectedPlayer then matchacc.TargetAim.Target = selectedPlayer.Name Library:Notify("Target set to " .. selectedPlayer.Name) else Library:Notify("No player selected") end end) PlayerListGroup:AddToggle('SpectateToggle', { Text = 'Spectate', Default = false, Callback = function(Value) if Value then if not selectedPlayer then Library:Notify("No player selected") Toggles.SpectateToggle.Value = false return end if spectateConnection then spectateConnection:Disconnect() end spectateConnection = RunService.Heartbeat:Connect(function() -- nếu đổi selectedPlayer thì camera đổi theo if not selectedPlayer then Camera.CameraSubject = localPlayer.Character and localPlayer.Character:FindFirstChild("Humanoid") Toggles.SpectateToggle.Value = false return end local char = selectedPlayer.Character local hum = char and char:FindFirstChild("Humanoid") if hum and hum.Health > 0 then Camera.CameraSubject = hum else -- target chết → chờ respawn Camera.CameraSubject = localPlayer.Character and localPlayer.Character:FindFirstChild("Humanoid") end end) Library:Notify("Spectating " .. selectedPlayer.DisplayName) else if spectateConnection then spectateConnection:Disconnect() spectateConnection = nil end Camera.CameraSubject = localPlayer.Character and localPlayer.Character:FindFirstChild("Humanoid") end end }) PlayerListGroup:AddButton('Goto', function() if selectedPlayer and selectedPlayer.Character and selectedPlayer.Character:FindFirstChild("HumanoidRootPart") then plr.Character.HumanoidRootPart.CFrame = selectedPlayer.Character.HumanoidRootPart.CFrame Library:Notify("Teleported to " .. selectedPlayer.DisplayName) else Library:Notify("No player selected or no HRP") end end) local MainPlacesGroup = Tabs.Player:AddLeftGroupbox('Main Places') MainPlacesGroup:AddButton('Bank', function() LocalPlayer.Character:PivotTo(CFrame.new(-442, 39, -284)) end) MainPlacesGroup:AddButton('Inside Bank', function() LocalPlayer.Character:PivotTo(CFrame.new(-443, 23, -284)) end) MainPlacesGroup:AddButton('Vault', function() LocalPlayer.Character:PivotTo(CFrame.new(-658, -30, -285)) end) MainPlacesGroup:AddButton('Mid Apartment Roof', function() LocalPlayer.Character:PivotTo(CFrame.new(-323, 80, -299)) end) MainPlacesGroup:AddButton('Revolver Shop', function() LocalPlayer.Character:PivotTo(CFrame.new(-634, 21, -132)) end) MainPlacesGroup:AddButton('LMG Shop', function() LocalPlayer.Character:PivotTo(CFrame.new(-626, 23, -295)) end) MainPlacesGroup:AddButton('Swimming Pool', function() LocalPlayer.Character:PivotTo(CFrame.new(-847, 21, -279)) end) MainPlacesGroup:AddButton('Broken Fire Station', function() LocalPlayer.Character:PivotTo(CFrame.new(-1182, 28, -521)) end) MainPlacesGroup:AddButton('Downhill Gun Shop', function() LocalPlayer.Character:PivotTo(CFrame.new(-559, 8, -735)) end) MainPlacesGroup:AddButton('Uphill Gun Shop', function() LocalPlayer.Character:PivotTo(CFrame.new(481, 48, -602)) end) MainPlacesGroup:AddButton('Military Base', function() LocalPlayer.Character:PivotTo(CFrame.new(-40, 65, -926)) end) MainPlacesGroup:AddButton('Breaking Bad House', function() LocalPlayer.Character:PivotTo(CFrame.new(598, 28, -214)) end) MainPlacesGroup:AddButton('Church', function() LocalPlayer.Character:PivotTo(CFrame.new(205, 21, -124)) end) MainPlacesGroup:AddButton('Police Station', function() LocalPlayer.Character:PivotTo(CFrame.new(-264, 21, -93)) end) MainPlacesGroup:AddButton('School', function() LocalPlayer.Character:PivotTo(CFrame.new(-594, 21, 173)) end) -- Extra Places Group (từ đoạn thứ hai) local ExtraPlacesGroup = Tabs.Player:AddLeftGroupbox('Extra Places') ExtraPlacesGroup:AddButton('UFO', function() LocalPlayer.Character:PivotTo(CFrame.new(50, 138, -671)) end) ExtraPlacesGroup:AddButton('Casino', function() LocalPlayer.Character:PivotTo(CFrame.new(-866, 44, -156)) end) ExtraPlacesGroup:AddButton('Gas Station', function() LocalPlayer.Character:PivotTo(CFrame.new(537, 47, -248)) end) ExtraPlacesGroup:AddButton('Gym / Fitness', function() LocalPlayer.Character:PivotTo(CFrame.new(-77, 22, -622)) end) -- Food Stores local FoodGroup = Tabs.Player:AddLeftGroupbox('Food Stores') FoodGroup:AddButton('Food Store #1', function() LocalPlayer.Character:PivotTo(CFrame.new(-336, 23, -298)) end) FoodGroup:AddButton('Food Store #2', function() LocalPlayer.Character:PivotTo(CFrame.new(299, 49, -617)) end) FoodGroup:AddButton('Food Store #3', function() LocalPlayer.Character:PivotTo(CFrame.new(-279, 22, -807)) end) FoodGroup:AddButton('Food Store #4', function() LocalPlayer.Character:PivotTo(CFrame.new(584, 51, -477)) end) FoodGroup:AddButton('Food Store #5', function() LocalPlayer.Character:PivotTo(CFrame.new(-995, 25, -157)) end) FoodGroup:AddButton('Food Store #6', function() LocalPlayer.Character:PivotTo(CFrame.new(-903, 22, -670)) end) -- Armor Locations local ArmorGroup = Tabs.Player:AddLeftGroupbox('Armor Locations') ArmorGroup:AddButton('Armor #1 (Downhill)', function() LocalPlayer.Character:PivotTo(CFrame.new(-605, 10, -788)) end) ArmorGroup:AddButton('Armor #2 (Uphill)', function() LocalPlayer.Character:PivotTo(CFrame.new(532, 50, -637)) end) ArmorGroup:AddButton('Armor #3 (Sewer)', function() LocalPlayer.Character:PivotTo(CFrame.new(-933, -28, 565)) end) ArmorGroup:AddButton('Armor #4', function() LocalPlayer.Character:PivotTo(CFrame.new(409, 48, -50)) end) ArmorGroup:AddButton('Armor #5 (Police)', function() LocalPlayer.Character:PivotTo(CFrame.new(-257, 21, -78)) end) ArmorGroup:AddButton('Armor #6', function() LocalPlayer.Character:PivotTo(CFrame.new(97, 23, -303)) end) -- Safe Zones local SafeGroup = Tabs.Player:AddLeftGroupbox('Safe Zones') SafeGroup:AddButton('Safe Zone #1', function() LocalPlayer.Character:PivotTo(CFrame.new(-55, -58, 146)) end) SafeGroup:AddButton('Safe Zone #2', function() LocalPlayer.Character:PivotTo(CFrame.new(-124, -58, 130)) end) SafeGroup:AddButton('Safe Zone #3 (High)', function() LocalPlayer.Character:PivotTo(CFrame.new(-547, 173, -2)) end) end)() task.wait(1) coroutine.wrap(function() local LeftGroupBox = Tabs.Misc:AddLeftGroupbox('Auto Chatters') -- List of Rizz lines local Rizz = { "Are you a magician? Because whenever I look at you, everyone else disappears.", "Do you have a map? I keep getting lost in your eyes.", "Are you French? Because Eiffel for you.", "Are you a campfire? Because you’re hot and I want s’more.", "Do you have a Band-Aid? Because I just scraped my knee falling for you.", "Are you a time traveler? Because I see you in my future.", "Do you have a sunburn, or are you always this hot?", "Is your dad a boxer? Because you’re a knockout!", "Are you a snowstorm? Because you make my heart race.", "Can I follow you home? Cause my parents always told me to follow my dreams.", "Are you a camera? Because every time I look at you, I smile.", "Are you an angel? Because heaven is missing one.", "Is it hot in here or is it just you?", "Can you lend me a pencil? Because I want to draw a smile on your face.", "Do you know if there are any Wi-Fi signals around here? Because I’m feeling a connection.", "Is your name Chapstick? Because you’re da balm!", "Are you a dictionary? Because you add meaning to my life.", "Do you have a pencil? Because I want to erase your past and write our future.", "Do you have a quarter? Because I want to call my mom and tell her I met ‘The One’." } Debris = game:GetService("Debris") -- Toggle the script state _G.rizzEnabled = false LeftGroupBox:AddToggle('MyToggle', { Text = 'Rizz chatter', Default = false, -- Default value (true / false) Tooltip = 'Rizzes up the shawtys', -- Information shown when you hover over the toggle Callback = function(Value) _G.rizzEnabled = Value if _G.rizzEnabled then -- Function to send a random Rizz line local function sendRandomRizz() local message = Rizz[math.random(#Rizz)] -- Choose a random line print("Sending rizz: " .. message) -- Chat system support (new and legacy) local chat = TextChatService.ChatInputBarConfiguration.TargetTextChannel if TextChatService.ChatVersion == Enum.ChatVersion.LegacyChatService then local chatEvent = ReplicatedStorage:FindFirstChild("DefaultChatSystemChatEvents") if chatEvent then chatEvent.SayMessageRequest:FireServer(message, "All") end elseif chat then chat:SendAsync(message) else print("Chat system not available.") end end -- Set up loop to send Rizz line every 3 seconds _G.rizzLoop = task.spawn(function() while _G.rizzEnabled do sendRandomRizz() task.wait(3) -- Wait 3 seconds before sending another line end end) else -- Stop the loop if _G.rizzLoop then task.cancel(_G.rizzLoop) _G.rizzLoop = nil end end end }):AddKeyPicker('Rizzchat', { Default = 'none', SyncToggleState = true, Mode = 'Toggle', Text = 'rizzchat' }) Toxic = { "EZ", "Bro doesn't know what aimlabs is", "SO EZ", "What are you aiming at, the skybox?", "Bro doesn't have rizz", "Sigma who?", "storm trooper ahh", "Am still buffering", "Bro shooting at butterflies", "Your aim took PTO", "Skill issue deluxe edition", "Crosshair needs therapy", "Bro lagging in real life", "Movement downloaded wrong", "Rizz meter: 0%", "Sigma mode: disabled", "Bullets allergic to damage", "Your aim is camera shy", "Bro fighting shadows", "Accuracy on cooldown", "Gameplay running at 12 FPS", "Aim.exe stopped responding", "Stormtrooper firmware installed", "Bro’s crosshair wandering", "Missed in 4K", "Bro swinging at the air", "Movement lookin like wet socks", "Your aim wandered off the map", "Controller disconnected vibes", "NPC aim > your aim", "Bullets practicing pacifism", "Your aim forgot the assignment", "Bro plays like it’s a cutscene", "Accuracy experiencing turbulence", "Bro using demo version skills", "Crosshair lost its purpose", "Your aim needs a GPS", "Movement confused about reality", "Aim spiritually lost", "Bro missing like it’s tradition", "Your aim went AFK", "Bro’s WiFi powered by hope", "Lag fighting lag", "Bro aiming like he’s daydreaming", "Crosshair on vacation", "Bro’s bullets taking detours", "Movement stuck in airplane mode", "Bro playing on grandma settings", "Your aim needs calibration", "Skillpack not installed", "Accuracy in spectator mode", "Bro’s aim loaded the wrong map", "Bullets refusing to cooperate", "Bro still in warmup", "Crosshair socially anxious", "Aim drifting like a car", "Your bullets scared of commitment", "Movement having identity issues", "Bro’s aim under construction", "Aim RNG not in your favor", "Bro fighting gravity instead", "Accuracy clocked out early", "Your aim is guessing", "Stormtrooper mode: ultra", "Bro controlling recoil not aim", "Your crosshair filing taxes", "Aim forgot to spawn in", "Movement stuck on loading screen", "Bro playing on emotional ping", "Crosshair doing side quests", "Your aim needs counseling", "Bro’s bullets peaceful mode", "Aim failed to render", "Movement lagging IRL", "Bro using free trial aim", "Accuracy downgraded", "Crosshair overslept", "Your aim exploring the scenery", "Bro aiming with confidence but no direction", "Bullets wandering aimlessly", "Aim stuck in the loading zone", "Movement slippery like ice", "Bro’s aim needs patch notes", "Your aim buffering in HD", "Crosshair trying its best… maybe", "Bro swinging like a malfunctioning fan", "Your aim studying astronomy", "Aim forgot its job", "Bro hitting everything but enemies", "Accuracy in low power mode", "Crosshair vibing, not aiming", "Movement disconnected", "Bro missing like he’s sponsored by misclicks", "Your aim took a smoke break", "Bullets lost in transit", "Aim trying to escape the game", "Bro moving like WiFi on 1 bar", "Crosshair running diagnostics", "Your aim ran out of RAM", "Aim asked for tech support", "Bro’s accuracy in airplane mode", "Movement downloaded from Wish", "Bullets still loading", "Your aim politely avoiding hits", "Bro playing like the screen is optional", "Aim trying to find itself", "Crosshair doing freestyle mode", "Movement emotionally unstable", "Your aim saw the enemy and panicked", "Bro’s aim fell asleep", "Accuracy evaporated", "Aim forgot collision exists", "Bro missing like it’s a hobby", "Your aim is a hazard", "Crosshair sightseeing mid-fight", "Aim desynced from reality", "Bro fumbling the universe", "Movement delayed by 3 business days", "Your aim running on Windows 95", "Bullets refusing to participate", "Bro’s aim was not invited", "Accuracy taking a vacation", "Aim socially distancing", "Movement powered by sadness", "Bro’s crosshair practicing free will", "Your aim got stage fright", "Aim took the scenic route", "Bullets lagging behind", "Crosshair locked in confusion", "Bro playing with negative FPS", "Accuracy downgraded to demo", "Aim malfunction detected", "Bro still calibrating mid-fight", "Your aim filed for retirement", "Crosshair crashed", "Aim dehydrated", "Bro lost in the tutorial", "Accuracy not responding", "Your aim out of service", "Aim forgot to clock in", "Movement refusing commands", "Bro’s bullets questioning life", "Your aim is guessing wildly", "Accuracy in economy mode", "Bro casting invisible bullets", "Crosshair slipped", "Aim taking a coffee break", "Bro’s skill expired", "Your aim stuck in traffic", "Accuracy on lunch break", "Bro aiming with vibes only", "Bullets too shy to hit", "Movement soft-locked", "Aim in spectator mode", "Bro struggling to load accuracy", "Your aim practicing pacifism", "Crosshair confused and scared", "Aim downloading updates", "Bro playing at 2 FPS", "Accuracy got nerfed", "Your aim suffering lag spikes", "Movement doing interpretive dance", "Aim fell into the void", "Bro missing geometrically impossible shots", "Crosshair trying to escape", "Your aim is legally blind (in-game)", "Aim drifting into another timeline", "Bro using expired accuracy", "Movement skipped tutorial", "Accuracy sleeping on the job", "Aim lagging behind reality", "Bro hitting the environment only", "Your aim lost connection", "Crosshair teleported away", "Aim stunned by existence", "Bro failing aim labs IRL", "Accuracy scared of enemies", "Your aim rendered in 144p", "Aim refusing to load assets", "Bro missing the broad side of a barn", "Movement glitching", "Accuracy socially awkward", "Aim listening to music instead", "Bro’s bullets on energy saver", "Your aim daydreaming", "Crosshair on strike", "Aim running outdated firmware", "Bro aiming at the moon", "Accuracy evaporated", "Movement sideways for no reason", "Your aim soft-crashed", "Aim started lagging emotionally", "Bro throwing warning shots only", "Accuracy downgraded itself", "Your aim ghosting the enemy", "Crosshair off-task again", "Aim opening another app", "Bro’s bullets overshot the universe", "Movement experiencing burnout", "Accuracy in exile", "Aim went AFK", "Bro sightseeing mid-fight", "Your aim yawning", "Crosshair negotiating hits", "Aim too tired to function", "Bro blasting everything but enemies", "Accuracy taking personal days", "Aim studying the environment", "Your aim under review", "Crosshair needs updates", "Aim rebelling", "Bro’s aim staged a protest", "Accuracy disconnected spiritually", "Aim floating around", "Your crosshair afraid of commitment", "Bro needs aim therapy", "Aim fumbling basic tasks", "Movement directionless", "Accuracy running diagnostics", "Your aim unsure of life choices", "Crosshair recalibrating vibes", "Aim zoned out", "Bro hit the air perfectly", "Accuracy missing completely", "Aim spinning out of control", "Bro performing a magic trick instead of aiming", "Your aim procrastinating", "Crosshair confused about existence", "Aim wants to go home", "Bro misclicked his confidence", "Accuracy melting", "Aim expired", "Your aim visiting another match", "Crosshair chilling", "Aim replaying memories", "Movement daydreaming", "Bro skipped accuracy day", "Your aim still buffering", "Accuracy reconsidering its career", "Aim dizzy", "Bro misinterpreting geometry", "Your aim undecided", "Crosshair weak", "Aim practicing self-care", "Bro failing aim school", "Accuracy strolling", "Aim drifting off", "Your aim derailed", "Movement processing slowly", "Bro running Windows Vista aim", "Accuracy loading for eternity", "Aim refusing orders", "Your aim in safe mode", "Crosshair malfunctioning creatively", "Aim too shocked to aim", "Bro missed so hard it looped", "Accuracy sleeping peacefully", "Aim in airplane mode", "Your aim pretending to be blind", "Bro’s bullets hesitating", "Crosshair short-circuited", "Aim out of energy", "Accuracy submitted resignation", "Aim confused about physics", "Movement taking scenic route", "Bro applying for new aim", "Accuracy underwhelmed", "Aim scared of the target", "Your aim misplaced", "Crosshair borrowed from another game", "Aim reported missing", "Bro downloaded the wrong skill pack", "Accuracy frozen", "Aim needs therapy", "Movement overwhelmed", "Your aim lagging mentally", "Aim refusing to lock on", "Bro practicing nonviolence", "Accuracy took a sick day", "Your aim yeeted itself", "Crosshair got lost", "Aim taking shortcuts", "Bro’s aim compressed", "Accuracy corrupted", "Aim rebooting", "Your aim stunned", "Crosshair burnt out", "Aim contemplating life", "Bro invented new miss angles", "Accuracy on strike again", "Aim refusing input", "Your aim under maintenance", "Crosshair crashed", "Aim clocked out", "Bro forgot to aim", "Accuracy sneezing", "Aim trembling", "Your aim lost in translation", "Crosshair lagging spiritually", "Aim searching for peace", "Bro wandered off mentally", "Accuracy confused deeply", "Aim stuck in a loop", "Your aim smacking air", "Crosshair running late", "Aim malfunction magical edition", "Bro missed intentionally (I hope)", "Accuracy unavailable", "Aim rendering issues", "Your aim practically invisible", "Crosshair glitching stylishly", "Aim tripped", "Bro’s aim self-destructed", "Accuracy freezing up", "Aim vibing instead of aiming", "Your aim rebooting emotions", "Crosshair politely declining", "Aim fainted", "Bro confusing enemies with the map", "Accuracy fell off", "Aim snoring", "Your aim mentally absent", "Crosshair sidetracked", "Aim unfocused completely", "Bro delivering warning shots", "Accuracy in nap mode", "Aim drifting like a balloon", "Your aim hopelessly optimistic" } ChatVersion = TextChatService.ChatVersion ChatEvent = ReplicatedStorage:FindFirstChild("DefaultChatSystemChatEvents") TargetTextChannel = TextChatService.ChatInputBarConfiguration.TargetTextChannel function sendRandomToxic() message = Toxic[math.random(#Toxic)] print("Sending toxic: " .. message) if ChatVersion == Enum.ChatVersion.LegacyChatService and ChatEvent then ChatEvent.SayMessageRequest:FireServer(message, "All") elseif TargetTextChannel then TargetTextChannel:SendAsync(message) else print("Chat system not available.") end end local toxicConnection isToxicChatting = false function toggleToxicChat(enabled) _G.toxicEnabled = enabled if _G.toxicEnabled then if not toxicConnection then toxicConnection = RunService.Heartbeat:Connect(function() if isToxicChatting == false then isToxicChatting = true sendRandomToxic() task.wait(3) -- Wait for 3 seconds before sending another message isToxicChatting = false end end) end else if toxicConnection then toxicConnection:Disconnect() toxicConnection = nil end end end LeftGroupBox:AddToggle('MyToggle', { Text = 'Toxic chatter', Default = false, Tooltip = 'Sends toxic chats', Callback = toggleToxicChat }):AddKeyPicker('Toxicchat', { Default = 'none', SyncToggleState = true, Mode = 'Toggle', Text = 'toxic' }) Promo = { "Matcha.cc On Top🍵", "Matcha.cc so clean yall still losing to it..🍵", "Must be rough playing without Matcha.cc 💔🍵", "cant win a hvh? maybe try /matchahvh🍵", "🍵if u wanna stop losing hop in /matchahvh", "🍵bro if u cant win just get Matcha . cc", "how to win a hvh? step 1: get Matcha . cc🍵", "gg/Vsnz2wfjP5🍵", "Matcha.cc users eat, yall starve 🍵", "No Matcha.cc? no wins. simple. 🍵", "You crying in chat while Matcha.cc cooking 🍵", "If missing shots was a job you’d be CEO 🍵", "Matcha.cc got me winning, you got excuses 🍵", "Keep blaming lag, we know it's skill 🍵", "Matcha.cc smooth, yall movement shaky 🍵", "Matcha.cc on top, your aim on vacation 🍵", "You fighting air while Matcha.cc hitting heads 🍵", "Matcha.cc turning bots into bosses 🍵", "You need Matcha.cc more than WiFi 🍵", "Matcha.cc users glide, you slide 🍵", "Your gameplay crying, Matcha.cc thriving 🍵", "You chasing clout, Matcha.cc chasing wins 🍵", "Matcha.cc got the boost, you got excuses 🍵", "You pressing buttons, we pressing victory 🍵", "Matcha.cc users pop off, you pop up dead 🍵", "Skill issue? Matcha.cc don’t judge 🍵", "Matcha.cc keeps you calm, you keep panic 🍵", "No Matcha.cc? say hello to respawn 🍵", "Matcha.cc players flex, you stumble 🍵", "Your aim wandering, Matcha.cc laser-focused 🍵", "Matcha.cc got bars, you got tears 🍵", "Try as you might, Matcha.cc too strong 🍵", "Matcha.cc users cook, you still reading the recipe 🍵", "Your shots missing, Matcha.cc hitting 🍵", "Matcha.cc above, you below 🍵", "We slide, you collide 🍵", "Matcha.cc users shine, your screen blurry 🍵", "Matcha.cc clean, your game messy 🍵", "You talking big, we acting bigger 🍵", "Matcha.cc got moves, you got panic 🍵", "Without Matcha.cc? GG for you 🍵", "Matcha.cc making legends, you making mistakes 🍵", "You flinch, we feast 🍵", "Matcha.cc players rise, you respawn 🍵", "We dominate, you imitate 🍵", "Matcha.cc got juice, you got crumbs 🍵", "Matcha.cc never sleeps, you lag 🍵", "You chasing shadows, we chasing wins 🍵", "Matcha.cc users glide, your feet stuck 🍵", "No Matcha.cc? keep dreaming 🍵", "Matcha.cc built for pros, you built for bots 🍵", "Your keyboard crying, Matcha.cc laughing 🍵", "Matcha.cc users on top, you hitting ground 🍵", "You tap, we snap 🍵", "Matcha.cc got focus, you got panic attacks 🍵", "Keep trying, we keep winning 🍵", "Matcha.cc moving smooth, you jittery 🍵", "Matcha.cc users dominate, you spectate 🍵", "You losing fast, Matcha.cc blasting 🍵", "Matcha.cc got style, your shots messy 🍵", "You lag, we swag 🍵", "Matcha.cc players clean, you dirty 🍵", "Your moves weak, Matcha.cc strong 🍵", "Matcha.cc users laugh, you cry 🍵", "Keep missing, Matcha.cc keep scoring 🍵", "You freeze, we feast 🍵", "Matcha.cc got energy, you tired 🍵", "Matcha.cc turning noobs into legends 🍵", "You flailing, we flying 🍵", "Matcha.cc smooth operator, you panic button 🍵", "No Matcha.cc? surrender early 🍵", "Matcha.cc got tactics, you got chaos 🍵", "You panic, we execute 🍵", "Matcha.cc users calm, you screaming 🍵", "Matcha.cc gliding, you stumbling 🍵", "You pray, we slay 🍵", "Matcha.cc on top, your score low 🍵", "Your shots weak, Matcha.cc strong 🍵", "Matcha.cc always moving, you stuck 🍵", "You spinning wheels, Matcha.cc winning 🍵", "Matcha.cc users cooking, you freezing 🍵", "You panic, we dominate 🍵", "Matcha.cc turning losses into wins 🍵", "You chasing shadows, we chasing glory 🍵", "Matcha.cc got juice, your hands dry 🍵", "You flinch, we feast 🍵", "Matcha.cc players glide, you stumble 🍵", "Your aim shaky, Matcha.cc steady 🍵", "Matcha.cc above, you below 🍵", "You miss shots, we hit 🍵", "Matcha.cc users rise, you respawn 🍵", "Your tactics weak, Matcha.cc strong 🍵", "Matcha.cc got bars, you got lag 🍵", "You panic, we score 🍵", "Matcha.cc on top, you bottom 🍵", "You crying, Matcha.cc laughing 🍵", "Matcha.cc got power, you weak 🍵", "You tap, we dominate 🍵", "Matcha.cc shining, you hiding 🍵", "Your game messy, Matcha.cc clean 🍵", "You flail, we flex 🍵", "Matcha.cc cooking, you freezing 🍵", "Matcha.cc users glide, you slide 🍵", "Your aim wandering, Matcha.cc laser 🍵", "You panic, we feast 🍵", "Matcha.cc got style, your shots weak 🍵", "You losing, Matcha.cc winning 🍵", "Matcha.cc moving smooth, you jittery 🍵", "No Matcha.cc? just GG 🍵", "Matcha.cc built for winners, you built for bots 🍵", "Your keyboard crying, Matcha.cc laughing 🍵", "You spin, we glide 🍵", "Matcha.cc users on top, you bottom 🍵", "You press panic, we press victory 🍵", "Matcha.cc got juice, you dry 🍵", "You flinch, we feast 🍵", "Matcha.cc players dominate, you spectate 🍵", "You lag, we swag 🍵", "Matcha.cc got tactics, you chaos 🍵", "No Matcha.cc? just pray 🍵", "Matcha.cc smooth operator, you panic button 🍵", "Your game weak, Matcha.cc strong 🍵", "Matcha.cc users clean, you messy 🍵", "You tap, we snap 🍵", "Matcha.cc on top, your score low 🍵", "Your shots miss, Matcha.cc hits 🍵", "Matcha.cc always moving, you stuck 🍵", "You spinning wheels, we winning 🍵", "Matcha.cc cooking, you freezing 🍵", "You panic, we dominate 🍵", "Matcha.cc turning noobs into legends 🍵", "You chasing shadows, we chasing glory 🍵", "Matcha.cc got juice, your hands dry 🍵", "You flinch, we feast 🍵", "Matcha.cc players glide, you stumble 🍵" } local ChatVersion = TextChatService.ChatVersion local ChatEvent = ReplicatedStorage:FindFirstChild("DefaultChatSystemChatEvents") local TargetTextChannel = TextChatService.ChatInputBarConfiguration.TargetTextChannel local function sendRandomPromo() local message = Promo[math.random(#Promo)] print("Sending Kill Say Promo: " .. message) if ChatVersion == Enum.ChatVersion.LegacyChatService and ChatEvent then ChatEvent.SayMessageRequest:FireServer(message, "All") elseif TargetTextChannel then TargetTextChannel:SendAsync(message) else print("Chat system not available.") end end ChatVersion = TextChatService.ChatVersion ChatEvent = ReplicatedStorage:FindFirstChild("DefaultChatSystemChatEvents") TargetTextChannel = TextChatService.ChatInputBarConfiguration.TargetTextChannel function sendRandomPromo() message = Promo[math.random(#Promo)] print("Sending Promo: " .. message) if ChatVersion == Enum.ChatVersion.LegacyChatService and ChatEvent then ChatEvent.SayMessageRequest:FireServer(message, "All") elseif TargetTextChannel then TargetTextChannel:SendAsync(message) else print("Chat system not available.") end end local PromoConnection isPromoChatting = false function togglePromoChat(enabled) _G.PromoEnabled = enabled if _G.PromoEnabled then if not PromoConnection then PromoConnection = RunService.Heartbeat:Connect(function() if isPromoChatting == false then isPromoChatting = true sendRandomPromo() task.wait(5) -- Wait for 3 seconds before sending another message isPromoChatting = false end end) end else if PromoConnection then PromoConnection:Disconnect() PromoConnection = nil end end end LeftGroupBox:AddToggle('MyToggle', { Text = 'Promo chatter', Default = false, Tooltip = 'Sends Promo chats', Callback = togglePromoChat }):AddKeyPicker('Promochat', { Default = 'none', SyncToggleState = true, Mode = 'Toggle', Text = 'promochat' }) end)() task.wait(1) coroutine.wrap(function() local TrollingBox = Tabs.Misc:AddLeftGroupbox('Trolling') repeat task.wait() until game:IsLoaded() local function include(module) return loadstring(game:HttpGet("https://raw.githubusercontent.com/penguin-cmyk/legion/refs/heads/main/utils/"..module..".lua"))() end -- Inclusions local DhLibrary = include("dh_library") local Animations = DhLibrary:Animations() local Services = DhLibrary:Services() local Sounds = DhLibrary:Sounds() local Modules = {} local States = {} local Tools = {} local MainEvent = Services.MainEvent local PlaceId = game.PlaceId local TeleportService = game:GetService("TeleportService") local LightingService = game:GetService("Lighting") local UserInputService = Services.UserInputService local ReplicatedStorage = Services.ReplicatedStorage local LocalPlayer = Services.LocalPlayer local RunService = Services.RunService local Workspace = Services.Workspace local Players = Services.Players local Skins = ReplicatedStorage:WaitForChild("Bike").Skins local Camera = Workspace.CurrentCamera local Starting = true local RoadRoller = game:GetObjects("rbxassetid://85904556439762")[1] local SonicRings = game:GetObjects("rbxassetid://107016840921635")[1] local BlackHole = game:GetObjects("rbxassetid://107558636253769")[1] local Spirit = game:GetObjects("rbxassetid://89731535148122")[1] local Charm = game:GetObjects("rbxassetid://139067309930404")[1] local Thanos = game:GetObjects("rbxassetid://129891025243944")[1] local AfterSlash = game:GetObjects("rbxassetid://102168430997910")[1] local TweenService = game:GetService("TweenService") local AssetService = game:GetService("AssetService") local Train = AssetService:CreateMeshPartAsync("rbxassetid://743576537") local Aura = AssetService:CreateMeshPartAsync("http://www.roblox.com/asset/?id=1323306") Aura.Color = Color3.fromRGB(4, 175, 236) Aura.Anchored = true Aura.Parent = workspace Aura.CanCollide = false Aura.CastShadow = false Train.TextureID = "rbxassetid://743576568" Train.Anchored = true Train.Parent = workspace Train.CFrame = Train.CFrame * CFrame.Angles(0,-math.rad(90),0) ------------------------------------------------------------------------------------------------------ -- Ts shake Module was NOT made by me local ShakeModule = {} local shakeActive = false local shakeStartTime = 0 local shakeDuration = 0.8 local initialIntensity = 1 local noise = math.noise local function updateCameraShake() if not shakeActive then return end local elapsed = os.clock() - shakeStartTime if elapsed >= shakeDuration then shakeActive = false return end local progress = elapsed / shakeDuration local currentIntensity = initialIntensity * (1 - progress^2) local downwardOffset = Vector3.new(0, -0.5 * currentIntensity, 0) local bounceOffset = Vector3.new(0, 0.3 * currentIntensity * math.sin(progress * 10), 0) local timeFactor = os.clock() * 10 local shakeX = noise(timeFactor, 0) * currentIntensity * 0.1 local shakeY = noise(timeFactor, 100) * currentIntensity * 0.1 local shakeZ = noise(timeFactor, 200) * currentIntensity * 0.1 local rotX = noise(timeFactor, 300) * currentIntensity * 0.05 local rotY = noise(timeFactor, 400) * currentIntensity * 0.05 local rotZ = noise(timeFactor, 500) * currentIntensity * 0.05 local offsetPosition = downwardOffset + bounceOffset + Vector3.new(shakeX, shakeY, shakeZ) local offsetRotation = CFrame.Angles(rotX, rotY, rotZ) Camera.CFrame = Camera.CFrame * CFrame.new(offsetPosition) * offsetRotation end function ShakeModule.StartShake(intensity, duration) initialIntensity = intensity or 1 shakeDuration = duration or 0.8 shakeStartTime = os.clock() shakeActive = true end DhLibrary:AddConnection("ShakeModule", Services.RunService.Heartbeat:Connect(updateCameraShake)) ------------------------------------------------------------------------------------------------------ -- Modules do function Modules:GetChar(option: string): Instance return option ~= nil and LocalPlayer.Character:FindFirstChild(option) or LocalPlayer.Character end function Modules:Void(character: Model) local BodyPosition = character.UpperTorso:FindFirstChild("BodyPosition") if BodyPosition then BodyPosition:Destroy() end for _,part in pairs(Character:GetChildren()) do if part:IsA("BasePart") then part.Velocity = Vector3.new(9e9,9e9,9e9) end end task.wait(.1) MainEvent:FireServer("Grabbing",false) end function Modules:Modify(attribute: string, value: string | number) for _, skin in pairs(Skins:GetChildren()) do if not skin:IsA("Model") then continue end local Attribute = skin:GetAttribute(attribute) if Attribute ~= nil then skin:SetAttribute(attribute, value) end end end function Modules:Delete(parent: Instance, options: { [any]: any }) for _, instance in pairs(parent:GetDescendants()) do if table.find(options,instance.Name) then instance:Destroy() end end end function Modules:GetForwardPosition(distance: number) local HumanoidRootPart = Modules:GetChar("HumanoidRootPart") return HumanoidRootPart.Position + ( HumanoidRootPart.CFrame.LookVector * distance ) end function Modules:CFrameSpeed(state: boolean) if not state or not States.CanCFrame then DhLibrary:RemoveConnection("CFrameSpeed") return end DhLibrary:AddConnection("CFrameSpeed",Services.RunService.Heartbeat:Connect(function() if not States.CanCFrame then DhLibrary:RemoveConnection("CFrameSpeed") return end local Char: Model = Modules:GetChar() local Humanoid: Humanoid = Char:FindFirstChild("Humanoid") Char.HumanoidRootPart.CFrame = Char.HumanoidRootPart.CFrame + Humanoid.MoveDirection * States.CFrameSpeed.Speed end)) end function Modules:VehicleFly() local Vehicle: Model = DhLibrary:GetCar() if not Vehicle or States.CurrentlyVehicleFlying then States.AllowedVehicleFly = false States.CurrentlyVehicleFlying = false task.wait(.2) States.AllowedVehicleFly = true return end States.CurrentlyVehicleFlying = true local BodyPosition = DhLibrary:Create("BodyPosition",{ Parent = Vehicle, MaxForce = Vector3.new(9e9, 9e9, 9e9), Position = Vehicle.Position, }) local BodyGyro = DhLibrary:Create("BodyGyro",{ Parent = Vehicle, MaxTorque = Vector3.new(9e9, 9e9, 9e9), CFrame = Vehicle.CFrame, }) DhLibrary:AddConnection("VehicleFly",RunService.Heartbeat:Connect(function() if not States.AllowedVehicleFly then DhLibrary:RemoveConnection("VehicleFly") BodyPosition:Destroy() BodyGyro:Destroy() return end local Speed: number = States.VehicleFlySpeed or 2 local MoveDirection: Vector3 = Vector3.new( UserInputService:IsKeyDown(Enum.KeyCode.D) and 1 or ( UserInputService:IsKeyDown(Enum.KeyCode.A) and -1 or 0 ), UserInputService:IsKeyDown(Enum.KeyCode.Space) and 0.2, UserInputService:IsKeyDown(Enum.KeyCode.S) and -1 or ( UserInputService:IsKeyDown(Enum.KeyCode.W) and 1 or 0 ) ) BodyGyro.CFrame = CFrame.new(Vehicle.Position) * Camera.CFrame.Rotation BodyPosition.Position = BodyPosition.Position + (BodyGyro.CFrame.LookVector * MoveDirection.Z + BodyGyro.CFrame.RightVector * MoveDirection.X + Vector3.new(0, MoveDirection.Y, 0)) * Speed end)) end function Modules:AntiSlow(state: boolean) if not state then DhLibrary:RemoveConnection("AntiSlow") return end DhLibrary:AddConnection("AntiSlow",RunService.Heartbeat:Connect(function() local BodyEffects: Folder = Modules:GetChar("BodyEffects") Modules:Delete(BodyEffects,{ "NoWalkSpeed", "NoJumping", "ReduceWalk" }) if BodyEffects:FindFirstChild("Reload") then BodyEffects:FindFirstChild("Reload").Value = false end end)) end end -- DhLibrary playaudio fix do local FakeSound = Instance.new("Sound",Services.Workspace) function DhLibrary:StopAudio() FakeSound:Stop() Services.MainEvent:FireServer("BoomboxStop") end function DhLibrary:PlayAudio(id: number) local BoomBox = Services.LocalPlayer.Backpack:FindFirstChild("[Boombox]") if Services.LocalPlayer.Backpack:FindFirstChild("[Boombox]") then Services.LocalPlayer.Backpack:FindFirstChild("[Boombox]").RequiresHandle = false Services.LocalPlayer.Backpack:FindFirstChild("[Boombox]").Parent = Services.LocalPlayer.Character BoomBox = Services.LocalPlayer.Character:FindFirstChild("[Boombox]") Services.MainEvent:FireServer("Boombox",tonumber(id)) BoomBox.Parent = Services.LocalPlayer.Backpack task.wait(.2) Services.LocalPlayer.PlayerGui.MainScreenGui.BoomboxFrame.Visible = false Services.LocalPlayer.Character.LowerTorso:WaitForChild("BOOMBOXSOUND") task.spawn(function() repeat wait() until Services.LocalPlayer.Character.LowerTorso:WaitForChild("BOOMBOXSOUND").SoundId == "rbxassetid://"..tostring(id) task.wait(Services.LocalPlayer.Character.LowerTorso:WaitForChild("BOOMBOXSOUND").TimeLength) end) else task.spawn(function() print("Sound playing") FakeSound.SoundId = "rbxassetid://"..tostring(id) FakeSound:Play() task.wait(FakeSound.TimeLength) end) end if BoomBox then return Services.LocalPlayer.Character.LowerTorso:WaitForChild("BOOMBOXSOUND").TimeLength else return FakeSound.TimeLength end end end -- Grab Modules do -- Was too bored to rewrite InitGrab and Grab function Modules:InitGrab() DhLibrary:RemoveConnection("Grab") DhLibrary:RemoveConnection("GrabMovement") repeat task.wait() until LocalPlayer.Character:FindFirstChild("BodyEffects") ~= nil DhLibrary:AddConnection("Grab",Modules:GetChar("BodyEffects").Grabbed:GetPropertyChangedSignal("Value"):Connect(function() local GrabbedChar = Modules:GetChar("BodyEffects").Grabbed.Value if GrabbedChar ~= nil then Modules:Delete(GrabbedChar,{"BodyVelocity","BodyGyro","BodyPosition"}) Modules:Grab(GrabbedChar) DhLibrary:NoVelocity(GrabbedChar) DhLibrary:CanCollide(GrabbedChar,false) return end DhLibrary:StopAnimation(LocalPlayer.Character,3135389157) end)) end function Modules:Grab(char: Model) assert(char ~= nil,"Character is nil") if not States.Grab then DhLibrary:RemoveConnection("GrabMovement") return end States.GrabbedChar = char States.LastGrabbed = char Modules:Delete(char,{"BodyVelocity","BodyGyro","BodyPosition"}) DhLibrary:StopAnimation(Services.LocalPlayer.Character,11075367458) repeat task.wait() until char:FindFirstChild("GRABBING_CONSTRAINT") local GrabbingConstraint = char:FindFirstChild("GRABBING_CONSTRAINT") local Character = Modules:GetChar("") local UpperTorso = char:FindFirstChild("UpperTorso") if not GrabbingConstraint:FindFirstChild("H") or not Character then return end local BodyPosition = DhLibrary:Create("BodyPosition",{ D = 200, MaxForce = Vector3.new(10000, 10000, 10000), Position = Character:FindFirstChild("RightHand").Position - Vector3.new(0,1,0), Parent = UpperTorso }) local BodyGyro = DhLibrary:Create("BodyGyro",{ D = 100, MaxTorque = Vector3.new(10000, 10000, 10000), CFrame = CFrame.new(UpperTorso.Position,Character:FindFirstChild("HumanoidRootPart").Position), Parent = UpperTorso }) GrabbingConstraint.H.Length = 9e9 DhLibrary:PlayAudio(Options.CustomSound.Value or 4799902666) task.spawn(function() task.wait(LocalPlayer.Character.LowerTorso:WaitForChild("BOOMBOXSOUND").TimeLength - 0.1) DhLibrary:StopAudio() end) DhLibrary:PlayAnimation(Services.LocalPlayer.Character,3135389157,0,.1) DhLibrary:AddConnection("GrabMovement",Services.RunService.Heartbeat:Connect(function() local Character = Modules:GetChar() local UpperTorso = char:FindFirstChild("UpperTorso") if not States.Grab then DhLibrary:StopAnimation(Character,3135389157) DhLibrary:RemoveConnection("GrabMovement") return end if States.GrabbedChar ~= nil and Character ~= nil and Character:FindFirstChild("BodyEffects") and Modules:GetChar("BodyEffects").Grabbed.Value ~= nil and States.Grab and char.UpperTorso:FindFirstChild("BodyPosition") then local Position = Character:FindFirstChild("RightHand").Position - Vector3.new(0,1,0) if Options.grab_mode.Value == "Grab" then Position = Character:FindFirstChild("RightHand").Position - Vector3.new(0,1,0) if not DhLibrary:IsAnimPlaying(Character,3135389157) then DhLibrary:PlayAnimation(Character,3135389157,0,.1) end elseif Options.grab_mode.Value == "Behind" then Position = Character:FindFirstChild("HumanoidRootPart").Position - Character:FindFirstChild("HumanoidRootPart").CFrame.LookVector * 3 DhLibrary:StopAnimation(Character,3135389157) DhLibrary:StopAnimation(Character,11075367458) elseif Options.grab_mode.Value == "Infront" then Position = Modules:GetForwardPosition(3) DhLibrary:StopAnimation(Character,3135389157) DhLibrary:StopAnimation(Character,11075367458) elseif Options.grab_mode.Value == "Custom" then Position = Character:FindFirstChild("HumanoidRootPart").Position + Vector3.new(Options.xAxis.Value,Options.yAxis.Value,Options.zAxis.Value) DhLibrary:StopAnimation(Character,3135389157) DhLibrary:StopAnimation(Character,11075367458) end local Orientation = CFrame.new(UpperTorso.Position,Character:FindFirstChild("HumanoidRootPart").Position) if Options.grab_mode.Value == "Infront" then Orientation = CFrame.new(UpperTorso.Position,Character:FindFirstChild("HumanoidRootPart").Position + Character:FindFirstChild("HumanoidRootPart").CFrame.LookVector * -5) else Orientation = CFrame.new(UpperTorso.Position,Character:FindFirstChild("HumanoidRootPart").Position) end BodyGyro.CFrame = Orientation BodyPosition.Position = Position elseif Modules:GetChar("BodyEffects"):FindFirstChild("Grabbed") and Modules:GetChar("BodyEffects").Grabbed.Value == nil then DhLibrary:StopAnimation(Character,3135389157) States.GrabbedChar = nil end end)) end function Modules:DestroyTool(Text: string) local Tool: Tool = LocalPlayer.Backpack:FindFirstChild(Text) or LocalPlayer.Character:FindFirstChild(Text) if Tool then Tool:Destroy() end DhLibrary:RemoveConnection(Text.."_tool") end function Modules:GrabTool(options: { [any]: any }) local Character: Model = Modules:GetChar() local Backpack: Backpack = LocalPlayer.Backpack local tool_Callback: (...any) -> ...any = options.Callback local name: string = options.name or options.Name local description: string = options.Description local stopanimation: boolean = options.StopAnimations Tools[name] = {} local NewTool: Tool = DhLibrary:Create("Tool",{ Name = name, RequiresHandle = false, ToolTip = description }) DhLibrary:AddConnection(name.."_tool",NewTool.Activated:Connect(function() Tools[name]["State"] = true if not States.Grab or not States.GrabbedChar then return end States.Grab = false local success,err = pcall(function() local Character: Model = LocalPlayer.Character local GrabbedChar: Model = Character.BodyEffects:FindFirstChild("Grabbed").Value if Character == nil then error("Localplayers character doesn't exist wth???") end if GrabbedChar == nil then return end if stopanimation then DhLibrary:StopAnimation(Character,3135389157) DhLibrary:StopAnimation(Character,11075367458) end tool_Callback(GrabbedChar,Character) NewTool.Parent = LocalPlayer.Backpack NewTool.Parent = LocalPlayer.Character end) if not success then print(err) end end)) TrollingBox:AddToggle(name, { Text = name, Default = false, ToolTip = description, Callback = function(state) if state then NewTool.Parent = LocalPlayer.Backpack else NewTool.Parent = nil end end }) end end local lastStompTime = 0 local STOMP_COOLDOWN = 2 local STOMP_EFFECT = "Thanos" do local function boobs(targetCharacter) -- all of these came from dh modded (the idea and assets) -- I just made my own implementation of it. STOMP_EFFECT = States.StompEffect or "Spirit" local currentTime = tick() if currentTime - lastStompTime < STOMP_COOLDOWN then return end lastStompTime = currentTime if STOMP_EFFECT == "RoadRoller" then RoadRoller.Parent = workspace RoadRoller.Anchored = true RoadRoller.CFrame = targetCharacter.HumanoidRootPart.CFrame * CFrame.new(0, 40, 0) local Sound = Instance.new("Sound",workspace) Sound.SoundId = "rbxassetid://4877348549" Sound.PlayOnRemove = true Sound:Destroy() TweenService:Create( RoadRoller, TweenInfo.new(0.2), { CFrame = targetCharacter.HumanoidRootPart.CFrame * CFrame.new(0, 3, 0) * CFrame.Angles(math.rad(200), -math.rad(200), math.rad(90)) } ):Play() ShakeModule.StartShake(7, 0.5) task.wait(2) RoadRoller.CFrame = CFrame.new(20,2000,20) elseif STOMP_EFFECT == "Rings" then local Sound = Instance.new("Sound",workspace) Sound.SoundId = "rbxassetid://7456436580" Sound.PlayOnRemove = true Sound:Destroy() local FakePart = Instance.new("Part",workspace) FakePart.Transparency = 1 FakePart.Position = targetCharacter.Head.Position FakePart.Anchored = true FakePart.CanCollide = false SonicRings.Parent = FakePart task.wait(0.5) SonicRings.Parent = workspace FakePart:Destroy() elseif STOMP_EFFECT == "BlackHole" then BlackHole.Parent = workspace BlackHole.Position = targetCharacter:FindFirstChild("UpperTorso").Position + Vector3.new(0,1,0) BlackHole.open:Play() ShakeModule.StartShake(7, 0.5) for _, emitter in pairs(BlackHole:GetDescendants()) do if emitter:IsA("ParticleEmitter") or emitter:IsA("Beam") then emitter.Enabled = true end end task.wait(1.5) task.spawn(function() BlackHole.wind:Play() BlackHole.bring:Play() for _, part in pairs(targetCharacter:GetChildren()) do if not part:IsA("BasePart") then continue end TweenService:Create(part,TweenInfo.new(1.4),{ Position = BlackHole.Event.WorldPosition }):Play() end task.wait(1.5) targetCharacter:Destroy() end) task.wait(3) TweenService:Create(BlackHole.wind,TweenInfo.new(0.5),{ Volume = 0 }):Play() for _, emitter in pairs(BlackHole:GetDescendants()) do if emitter:IsA("ParticleEmitter") or emitter:IsA("Beam") then emitter.Enabled = false end end task.wait(2) BlackHole.Parent = Services.ReplicatedStorage elseif STOMP_EFFECT == "Spirit" then Spirit.Stomp:Play() Aura.Transparency = 0 Aura.Position = targetCharacter:FindFirstChild("UpperTorso").Position ShakeModule.StartShake(7, 0.5) TweenService:Create(Aura,TweenInfo.new(2),{ Position = targetCharacter:FindFirstChild("UpperTorso").Position + Vector3.new(0,50,0), Size = Vector3.new(120, 90, 120), Transparency = 1 }):Play() local Sound = Instance.new("Sound",workspace) Sound.SoundId = "rbxassetid://6290067239" Sound.PlayOnRemove = true Sound:Destroy() for _, asset in pairs(targetCharacter:GetDescendants()) do if not asset:IsA("BasePart") or not asset:IsA("Decal") then continue end TweenService:Create(asset,TweenInfo.new(0.5),{ Transparency = 1 }):Play() end elseif STOMP_EFFECT == "Charm" then local Stomp = Charm.FX.Stomp local Sound = Charm.SFX:FindFirstChild("Explosive Hit 5") local TargetPos = targetCharacter:FindFirstChild("UpperTorso").Position local Emitters = {} local PartOne = Stomp.PartOne:Clone() local Part = Stomp.Part:Clone() Charm.Parent = workspace PartOne.Position = TargetPos PartOne.Anchored = true PartOne.Parent = workspace Part.Position = TargetPos Part.Anchored = true Part.Parent = workspace for _, emitter in pairs(PartOne:GetDescendants()) do if emitter:IsA("ParticleEmitter") then table.insert(Emitters,emitter) end end for _, emitter in pairs(Part:GetDescendants()) do if emitter:IsA("ParticleEmitter") then table.insert(Emitters,emitter) end end for _, emitter in pairs(Emitters) do emitter.Enabled = true end local old_color = LightingService.FogColor Sound:Play() for _, asset in pairs(targetCharacter:GetDescendants()) do if not asset:IsA("BasePart") or not asset:IsA("Decal") then continue end TweenService:Create(asset,TweenInfo.new(0.5),{ Transparency = 1 }):Play() end TweenService:Create(LightingService,TweenInfo.new(0.5),{ FogColor = Color3.fromRGB(255, 42, 191) }):Play() task.wait(0.8) Part:Destroy() PartOne:Destroy() TweenService:Create(LightingService,TweenInfo.new(0.5),{ FogColor = old_color }):Play() Charm.Parent = Services.ReplicatedStorage elseif STOMP_EFFECT == "Thanos" then local Sound = Instance.new("Sound",workspace) Sound.SoundId = "rbxassetid://3050376525" Sound:Play() for _, part in pairs(targetCharacter:GetDescendants()) do if part:IsA("BasePart") or part:IsA("MeshPart") then local Thanos_Effect = Thanos:Clone() Thanos_Effect.Parent = part Thanos_Effect.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0, part.Color), ColorSequenceKeypoint.new(0.6, Color3.fromRGB(65, 33, 18)), ColorSequenceKeypoint.new(1, Color3.fromRGB(0, 0, 0)) }) TweenService:Create(part,TweenInfo.new(0.5),{ Transparency = 1 }):Play() task.delay(0.5,function() Thanos_Effect.Enabled = false end) task.wait(.1) end end repeat task.wait() until Sound.TimeLength == 0 Sound:Destroy() elseif STOMP_EFFECT == "Afterslash" then local AfterSlashEfx = AfterSlash:Clone() local UpperTorso = targetCharacter:FindFirstChild("UpperTorso") UpperTorso.Position = (CFrame.new(UpperTorso.Position) * CFrame.new(0,35,0)).Position local Part = AfterSlashEfx.Part Part.Position = UpperTorso.Position Part.Parent = UpperTorso Part.Size = Vector3.new(5,7,5) for _ = 1, 25 do task.wait(math.random(1,9) / 100) local Sound = Instance.new("Sound",Part) Sound.SoundId = "rbxassetid://5989945551" local DistortionSoundEffect = Instance.new("DistortionSoundEffect",Sound) Sound.PlayOnRemove = true Sound:Destroy() Part.Position = UpperTorso.Position end UpperTorso.Position = (CFrame.new(UpperTorso.Position) * CFrame.new(0, -5, 0)).Position for _, emitter in pairs(Part:GetDescendants()) do if emitter:IsA("ParticleEmitter") then emitter.Enabled = false end end task.wait(0.25) local Attachment = Instance.new("Attachment",workspace.Terrain) Attachment.WorldPosition = UpperTorso.Position local Sound = Instance.new("Sound",Part) Sound.SoundId = "rbxassetid://4471648128" Sound.PlayOnRemove = true Sound:Destroy() for _, emitter in pairs(AfterSlashEfx.Burst:GetDescendants()) do if emitter:IsA("ParticleEmitter") then emitter.Parent = Attachment emitter:Emit(emitter:GetAttribute("EmitCount")) end end for _, part in pairs(targetCharacter:GetDescendants()) do if part:IsA("BasePart") then TweenService:Create(part, TweenInfo.new(0.5, Enum.EasingStyle.Sine), { Transparency = 1 }):Play() end end end end function Modules:StompEffects(state) if not state then DhLibrary:RemoveConnection("StompEffect") return end DhLibrary:AddConnection("StompEffect", RunService.Heartbeat:Connect(function() local playerCharacter = LocalPlayer.Character if not playerCharacter or not playerCharacter:FindFirstChild("LowerTorso") or not playerCharacter:FindFirstChild("UpperTorso") then return end local rayOrigin = playerCharacter.LowerTorso.Position local rayDirection = Vector3.new(0, -playerCharacter.UpperTorso.Size.y * 4.5, 0) local whitelist = {} for _, player in ipairs(Services.Players:GetPlayers()) do if player ~= Services.LocalPlayer and player.Character and not whitelist[player.Character] then table.insert(whitelist, player.Character) end end if #whitelist > 0 then local hitPart, hitPosition, hitNormal = workspace:FindPartOnRayWithWhitelist( Ray.new(rayOrigin, rayDirection), whitelist, false, true ) if hitPart then local stompedCharacter = hitPart:FindFirstAncestorOfClass("Model") if stompedCharacter and stompedCharacter:FindFirstChild("HumanoidRootPart") and stompedCharacter:FindFirstChild("BodyEffects") and stompedCharacter.BodyEffects.SDeath.Value and DhLibrary:IsAnimPlaying(playerCharacter,2816431506) then boobs(stompedCharacter) end end end end)) end end do function Modules:ImpactFrame() local Black = DhLibrary:Create("ColorCorrectionEffect",{ TintColor = Color3.fromRGB(0,0,0), }) local White = DhLibrary:Create("Highlight",{ FillColor = Color3.fromRGB(255,255,255), FillTransparency = 0 }) task.wait(.1) Black.Parent = LightingService White.Parent = Modules:GetCharacter("") task.wait(.1) White.FillColor = Color3.fromRGB(0,0,0) Black.TintColor = Color3.fromRGB(255,255,255) Black.Brightness = 1 task.wait(.1) White:Destroy() Black:Destroy() end function Modules:CloneChar(Character) local LocalChar = Modules:GetChar("") LocalChar.Archivable = true local ClonedChar = LocalChar:Clone() ClonedChar.Parent = Services.Workspace ClonedChar.HumanoidRootPart.CFrame = LocalPlayer.Character.HumanoidRootPart.CFrame + Vector3.new(0,2,0) ClonedChar.Humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.None if ClonedChar:FindFirstChild("ForceField") then ClonedChar:FindFirstChild("ForceField"):Destroy() end local Player = Services.Players:FindFirstChild(Character.Name) if not Player then return end local HumanoidDescription = Services.Players:GetHumanoidDescriptionFromUserId(Player.UserId) ClonedChar.Humanoid:ApplyDescription(HumanoidDescription) LocalChar.Archivable = false ClonedChar.Humanoid.BodyWidthScale.Value = Character.Humanoid.BodyWidthScale.Value ClonedChar.Humanoid.BodyProportionScale.Value = Character.Humanoid.BodyProportionScale.Value ClonedChar.Humanoid.BodyDepthScale.Value = Character.Humanoid.BodyDepthScale.Value ClonedChar.Humanoid.HeadScale.Value = Character.Humanoid.HeadScale.Value for _, accessory in pairs(ClonedChar:GetDescendants()) do if accessory:IsA("Accessory") or accessory:IsA("ShirtGraphic") or accessory:IsA("Shirt") or accessory:IsA("Pants") then accessory:Destroy() end if accessory:IsA("BasePart") then accessory.Transparency = 1 end end return ClonedChar end function Modules:AlignControl(part,part1,Offset) part.AssemblyLinearVelocity = Vector3.new(0, 0, 0) part.AssemblyAngularVelocity = Vector3.new(0, 0, 0) part.Velocity = Vector3.new(0, 0, 0) part.CFrame = part1.CFrame * (Offset or CFrame.new()) part.CanCollide = false part1.CanCollide = false end end MovementGroup:AddToggle("VFly",{ Text = "Toggle Vehicle Fly", Default = false, Callback = function(state) States.AllowedVehicleFly = state end }):AddKeyPicker("Vehicle Fly",{ Text = "", Default = "F", Mode = "Toggle", SyncToggleState = false, Callback = function(key) Modules:VehicleFly() end }) MovementGroup:AddSlider("VFlySpeed",{ Text = "Vehicle Fly Speed", Default = 2, Min = 1, Max = 20, Rounding = 1, Compact = false, Callback = function(value) States.VehicleFlySpeed = value end }) local StompEffects = Tabs.Visual:AddLeftGroupbox("StompEffects") StompEffects:AddToggle("StompEffects",{ Text = "Stompeffects", Default = false, Callback = function(state) Modules:StompEffects(state) end }) StompEffects:AddDropdown("Dropdown",{ Text = "Select stomp effect", Values = { "Spirit", "RoadRoller", "Rings", "BlackHole", "Charm", "Thanos", "Afterslash" }, Default = "Thanos", Multi = false, Callback = function(value) States.StompEffect = value end }) do local Chain = DhLibrary:Create("Beam",{ Texture = "rbxassetid://12706577665", Enabled = true, Parent = Services.Workspace, Width0 = 1, Width1 = 1, TextureSpeed = 0, Segments = 10, CurveSize0 = 0, CurveSize1 = 0, TextureLength = 5, Transparency = NumberSequence.new(0), FaceCamera = true, Color = ColorSequence.new(Color3.fromRGB(170,170,170),Color3.fromRGB(170,170,170),Color3.fromRGB(170,170,170)) }) TrollingBox:AddToggle("Grab",{ Text = "Grab", Default = false, Callback = function(state) States.Grab = state if state then Tools["GrabReal"] = DhLibrary:Create("Tool",{ Parent = LocalPlayer.Backpack, RequiresHandle = false, ToolTip = "Enabled Grab", Name = "Activate" }) Tools["GrabReal"].Activated:Connect(function() MainEvent:FireServer("Grabbing",true) repeat task.wait() until LocalPlayer.Character:FindFirstChild("BodyEffects") and LocalPlayer.Character:FindFirstChild("BodyEffects").Grabbed.Value ~= nil local Character: Model = LocalPlayer.Character:FindFirstChild("BodyEffects").Grabbed.Value if Character:FindFirstChild("GRABBING_CONSTRAINT"):FindFirstChild("H") then Modules:Grab(Character) end end) else if Tools["GrabReal"] then Tools["GrabReal"]:Destroy() end end end }) TrollingBox:AddDropdown("grab_mode",{ Text = "Grab mode", Values = { "Grab", "Behind", "Infront", "Custom" }, Default = 1, Multi = false, }) TrollingBox:AddInput("CustomSound",{ Default = "Enter a sound id", Finished = true, Numeric = false, Text = 'Custom Sound id', Placeholder = "Enter sound id", }) TrollingBox:AddSlider("xAxis",{ Text = "x axis", Default = 2, Min = 0, Max = 20, Rounding = 1, }) TrollingBox:AddSlider("yAxis",{ Text = "y axis", Default = 2, Min = 0, Max = 20, Rounding = 1, }) TrollingBox:AddSlider("zAxis",{ Text = "z axis", Default = 2, Min = 0, Max = 20, Rounding = 1, }) end Modules:InitGrab() do local LocalPlayer = game:GetService("Players").LocalPlayer local RunService = game:GetService("RunService") local ReplicatedStorage = game:GetService("ReplicatedStorage") -- ===================== GLOBAL STATE ===================== local Grabbed = false local Up = false local ToolStates = { Neckgrab = false, Up = false, Air = false, Throw = false, HeavenThrow = false, Punch = false, RipInHalf = false, Void = false, Orbit = false } -- ===================== TOOL CREATION FUNCTIONS ===================== local function CreateNeckgrabTool() local tool = Instance.new("Tool") tool.RequiresHandle = false tool.Name = "Activate Neckgrab" tool.Parent = LocalPlayer.Backpack tool.Activated:Connect(function() ReplicatedStorage.MainEvent:FireServer("Grabbing", true) repeat task.wait(0.1) until LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("BodyEffects") and LocalPlayer.Character.BodyEffects:FindFirstChild("Grabbed") and LocalPlayer.Character.BodyEffects.Grabbed.Value ~= nil and LocalPlayer.Character.BodyEffects.Grabbed.Value ~= "" local targetName = tostring(LocalPlayer.Character.BodyEffects.Grabbed.Value) local targetPlayer = game.Players:FindFirstChild(targetName) if not targetPlayer or not targetPlayer.Character then return end local targetChar = targetPlayer.Character local targetTorso = targetChar:FindFirstChild("UpperTorso") if not targetTorso then return end Grabbed = true local constraint = targetChar:FindFirstChild("GRABBING_CONSTRAINT") if constraint and constraint:FindFirstChild("H") then constraint.H.Length = math.huge end for _, track in pairs(LocalPlayer.Character.Humanoid:GetPlayingAnimationTracks()) do if track.Animation.AnimationId == "rbxassetid://11075367458" then track:Stop() end end task.spawn(function() local anim = Instance.new("Animation") anim.AnimationId = "rbxassetid://3135389157" local loaded = LocalPlayer.Character.Humanoid:LoadAnimation(anim) loaded.Priority = Enum.AnimationPriority.Action loaded:Play() loaded:AdjustSpeed(0.2) wait(0.8) loaded:AdjustSpeed(0) end) if not targetTorso:FindFirstChild("BodyPosition") then local bodypos = Instance.new("BodyPosition") bodypos.Name = "BodyPosition" bodypos.D = 200 bodypos.MaxForce = Vector3.new(10000, 10000, 10000) bodypos.Parent = targetTorso end if not targetTorso:FindFirstChild("BodyGyro") then local bodygyro = Instance.new("BodyGyro") bodygyro.Name = "BodyGyro" bodygyro.D = 100 bodygyro.MaxTorque = Vector3.new(10000, 10000, 10000) bodygyro.Parent = targetTorso end RunService:BindToRenderStep("Pos", Enum.RenderPriority.Character.Value, function() local hand = LocalPlayer.Character:FindFirstChild("RightHand") local root = LocalPlayer.Character:FindFirstChild("HumanoidRootPart") if hand and root then targetTorso.BodyPosition.Position = hand.Position + Vector3.new(0, -0.7, 0) targetTorso.BodyGyro.CFrame = CFrame.new(targetTorso.Position, root.Position) end end) LocalPlayer.Character.BodyEffects.Grabbed:GetPropertyChangedSignal("Value"):Connect(function() if LocalPlayer.Character.BodyEffects.Grabbed.Value == nil or LocalPlayer.Character.BodyEffects.Grabbed.Value == "" then Grabbed = false Up = false RunService:UnbindFromRenderStep("Pos") for _, track in pairs(LocalPlayer.Character.Humanoid:GetPlayingAnimationTracks()) do local id = track.Animation.AnimationId if id == "rbxassetid://3135389157" or id == "rbxassetid://14496531574" or id == "rbxassetid://3096047107" then track:Stop() end end if targetTorso:FindFirstChild("BodyPosition") then targetTorso.BodyPosition:Destroy() end if targetTorso:FindFirstChild("BodyGyro") then targetTorso.BodyGyro:Destroy() end end end) end) end local function CreateUpTool() local tool = Instance.new("Tool") tool.RequiresHandle = false tool.Name = "Up" tool.Parent = LocalPlayer.Backpack tool.Activated:Connect(function() if Grabbed == true then if Up == false then local target = tostring(LocalPlayer.Character.BodyEffects.Grabbed.Value) Up = true for _, Track in pairs(LocalPlayer.Character:WaitForChild("Humanoid"):GetPlayingAnimationTracks()) do if Track.Animation.AnimationId == "rbxassetid://3135389157" then Track:Stop() end end spawn(function() local Animation = Instance.new("Animation") Animation.AnimationId = "rbxassetid://14496531574" local LoadAnimation = LocalPlayer.Character:FindFirstChildWhichIsA("Humanoid"):LoadAnimation(Animation) LoadAnimation.Priority = Enum.AnimationPriority.Action LoadAnimation:Play() LoadAnimation:AdjustSpeed(1) wait(1) LoadAnimation:AdjustSpeed(0) end) spawn(function() wait(0.3) RunService:UnbindFromRenderStep("Pos") wait(0.05) RunService:BindToRenderStep("Pos", 0, function() game.Players[target].Character.UpperTorso.BodyPosition.Position = LocalPlayer.Character.HumanoidRootPart.Position + LocalPlayer.Character.HumanoidRootPart.CFrame.LookVector * 8 + Vector3.new(0, 23, 0) game.Players[target].Character.UpperTorso.BodyGyro.CFrame = CFrame.new(game.Players[target].Character.UpperTorso.Position, LocalPlayer.Character.HumanoidRootPart.Position) end) game.Players[target].Character.UpperTorso.BodyPosition.D = 1200 end) else for _, Track in pairs(LocalPlayer.Character:WaitForChild("Humanoid"):GetPlayingAnimationTracks()) do if Track.Animation.AnimationId == "rbxassetid://14496531574" then Track:Stop(1) end end spawn(function() wait(0.45) local Animation = Instance.new("Animation") Animation.AnimationId = "rbxassetid://3135389157" local LoadAnimation = LocalPlayer.Character:FindFirstChildWhichIsA("Humanoid"):LoadAnimation(Animation) LoadAnimation.Priority = Enum.AnimationPriority.Action LoadAnimation:Play() LoadAnimation:AdjustSpeed(0.2) task.wait(0.8) LoadAnimation:AdjustSpeed(0) end) local target = tostring(LocalPlayer.Character.BodyEffects.Grabbed.Value) RunService:UnbindFromRenderStep("Pos") Up = false RunService:BindToRenderStep("Pos", 0, function() game.Players[target].Character.UpperTorso.BodyPosition.Position = LocalPlayer.Character.RightHand.Position + Vector3.new(0, -0.7, 0) game.Players[target].Character.UpperTorso.BodyGyro.CFrame = CFrame.new(game.Players[target].Character.UpperTorso.Position, LocalPlayer.Character.HumanoidRootPart.Position) end) wait(1) game.Players[target].Character.UpperTorso.BodyPosition.D = 200 end end end) end local function CreateAirTool() local tool = Instance.new("Tool") tool.RequiresHandle = false tool.Name = "Air" tool.Parent = LocalPlayer.Backpack tool.Activated:Connect(function() if Grabbed == true then if Up == false then local target = tostring(LocalPlayer.Character.BodyEffects.Grabbed.Value) Up = true for _, Track in pairs(LocalPlayer.Character:WaitForChild("Humanoid"):GetPlayingAnimationTracks()) do if Track.Animation.AnimationId == "rbxassetid://3135389157" then Track:Stop() end end spawn(function() local Animation = Instance.new("Animation") Animation.AnimationId = "rbxassetid://14496531574" local LoadAnimation = LocalPlayer.Character:FindFirstChildWhichIsA("Humanoid"):LoadAnimation(Animation) LoadAnimation.Priority = Enum.AnimationPriority.Action LoadAnimation:Play() LoadAnimation:AdjustSpeed(1) wait(1) LoadAnimation:AdjustSpeed(0) end) spawn(function() wait(0.3) RunService:UnbindFromRenderStep("Pos") wait(0.05) RunService:BindToRenderStep("Pos", 0, function() local char = LocalPlayer.Character local targetChar = game.Players[target].Character local behindPosition = char.HumanoidRootPart.Position - char.HumanoidRootPart.CFrame.LookVector * 5 + Vector3.new(0, 2 + 7, 0) targetChar.UpperTorso.BodyPosition.Position = behindPosition targetChar.UpperTorso.BodyGyro.CFrame = CFrame.new(targetChar.UpperTorso.Position, char.HumanoidRootPart.Position) end) game.Players[target].Character.UpperTorso.BodyPosition.D = 1200 end) else for _, Track in pairs(LocalPlayer.Character:WaitForChild("Humanoid"):GetPlayingAnimationTracks()) do if Track.Animation.AnimationId == "rbxassetid://14496531574" then Track:Stop(1) end end spawn(function() wait(0.45) local Animation = Instance.new("Animation") Animation.AnimationId = "rbxassetid://3135389157" local LoadAnimation = LocalPlayer.Character:FindFirstChildWhichIsA("Humanoid"):LoadAnimation(Animation) LoadAnimation.Priority = Enum.AnimationPriority.Action LoadAnimation:Play() LoadAnimation:AdjustSpeed(0.2) task.delay(2, function() LoadAnimation:Stop() end) task.wait(0.8) LoadAnimation:AdjustSpeed(0) end) local target = tostring(LocalPlayer.Character.BodyEffects.Grabbed.Value) RunService:UnbindFromRenderStep("Pos") Up = false RunService:BindToRenderStep("Pos", 0, function() local char = LocalPlayer.Character local targetChar = game.Players[target].Character targetChar.UpperTorso.BodyPosition.Position = char.RightHand.Position + Vector3.new(0, -0.7, 0) targetChar.UpperTorso.BodyGyro.CFrame = CFrame.new(targetChar.UpperTorso.Position, char.HumanoidRootPart.Position) end) wait(1) game.Players[target].Character.UpperTorso.BodyPosition.D = 200 end end end) end local function CreateThrowTool() local tool = Instance.new("Tool") tool.RequiresHandle = false tool.Name = "Throw" tool.Parent = LocalPlayer.Backpack tool.Activated:Connect(function() if Grabbed == true then if Up == false then local target = tostring(LocalPlayer.Character.BodyEffects.Grabbed.Value) for _, Track in pairs(LocalPlayer.Character:WaitForChild("Humanoid"):GetPlayingAnimationTracks()) do if Track.Animation.AnimationId == "rbxassetid://3135389157" then Track:Stop() end end local Animation = Instance.new("Animation") Animation.AnimationId = "rbxassetid://3096047107" local LoadAnimation = LocalPlayer.Character:FindFirstChildWhichIsA("Humanoid"):LoadAnimation(Animation) LoadAnimation.Priority = Enum.AnimationPriority.Action LoadAnimation:Play() LoadAnimation:AdjustSpeed(1) wait(0.2) game.Players[target].Character.UpperTorso.BodyPosition.D = 900 RunService:UnbindFromRenderStep("Pos") game.Players[target].Character.UpperTorso:FindFirstChild("BodyGyro"):Destroy() game.Players[target].Character.UpperTorso.BodyPosition.Position = LocalPlayer.Character.HumanoidRootPart.Position + LocalPlayer.Character.HumanoidRootPart.CFrame.LookVector * 150 + Vector3.new(0, 5, 0) wait(0.5) game.Players[target].Character.UpperTorso:FindFirstChild("BodyPosition"):Destroy() ReplicatedStorage.MainEvent:FireServer('Grabbing', false) end end end) end local function CreateHeavenThrowTool() local tool = Instance.new("Tool") tool.RequiresHandle = false tool.Name = "Heaven Throw" tool.Parent = LocalPlayer.Backpack tool.Activated:Connect(function() if Grabbed == true then if Up == false then local target = tostring(LocalPlayer.Character.BodyEffects.Grabbed.Value) for _, Track in pairs(LocalPlayer.Character:WaitForChild("Humanoid"):GetPlayingAnimationTracks()) do if Track.Animation.AnimationId == "rbxassetid://3135389157" then Track:Stop() end end local Animation = Instance.new("Animation") Animation.AnimationId = "rbxassetid://14496531574" local LoadAnimation = LocalPlayer.Character:FindFirstChildWhichIsA("Humanoid"):LoadAnimation(Animation) LoadAnimation.Priority = Enum.AnimationPriority.Action LoadAnimation:Play() LoadAnimation:AdjustSpeed(1) wait(0.4) RunService:UnbindFromRenderStep("Pos") game.Players[target].Character.UpperTorso:FindFirstChild("BodyGyro"):Destroy() wait(0.01) game.Players[target].Character.UpperTorso.BodyPosition.D = 200 game.Players[target].Character.UpperTorso.BodyPosition.Position = LocalPlayer.Character.HumanoidRootPart.Position + LocalPlayer.Character.HumanoidRootPart.CFrame.LookVector * 3 + Vector3.new(0, 3000, 0) wait(2) ReplicatedStorage.MainEvent:FireServer('Grabbing', false) end end end) end local function CreatePunchTool() local tool = Instance.new("Tool") tool.RequiresHandle = false tool.Name = "Punch" tool.Parent = LocalPlayer.Backpack tool.Activated:Connect(function() if Grabbed == true then if Up == false then local target = tostring(LocalPlayer.Character.BodyEffects.Grabbed.Value) for _, Track in pairs(LocalPlayer.Character:WaitForChild("Humanoid"):GetPlayingAnimationTracks()) do if Track.Animation.AnimationId == "rbxassetid://3135389157" then Track:Stop() end end RunService:UnbindFromRenderStep("Pos") RunService:BindToRenderStep("Pos", 0, function() game.Players[target].Character.UpperTorso.BodyGyro.CFrame = CFrame.new(game.Players[target].Character.UpperTorso.Position, LocalPlayer.Character.HumanoidRootPart.Position) end) game.Players[target].Character.UpperTorso.BodyPosition.D = 3400 game.Players[target].Character.UpperTorso.BodyPosition.Position = LocalPlayer.Character.HumanoidRootPart.Position + LocalPlayer.Character.HumanoidRootPart.CFrame.LookVector * 3 + Vector3.new(0, 1, 0) wait(3) local Animation = Instance.new("Animation") Animation.AnimationId = "rbxassetid://3354696735" local LoadAnimation = LocalPlayer.Character:FindFirstChildOfClass("Humanoid"):LoadAnimation(Animation) LoadAnimation.Priority = Enum.AnimationPriority.Action LoadAnimation:Play() wait(1) game.Players[target].Character.UpperTorso:FindFirstChild("BodyPosition"):Destroy() RunService:UnbindFromRenderStep("Pos") game.Players[target].Character.UpperTorso:FindFirstChild("BodyGyro"):Destroy() for i = 1, 2 do wait() game.Players[target].Character.UpperTorso.Velocity = Vector3.new(LocalPlayer.Character.HumanoidRootPart.CFrame.LookVector.X * 950, -200, LocalPlayer.Character.HumanoidRootPart.CFrame.LookVector.Z * 950) end end end wait(1) ReplicatedStorage.MainEvent:FireServer('Grabbing', false) end) end local function CreateRipInHalfTool() local tool = Instance.new("Tool") tool.RequiresHandle = false tool.Name = "Rip In Half" tool.Parent = LocalPlayer.Backpack tool.Activated:Connect(function() if Grabbed == true then if Up == false then local target = tostring(LocalPlayer.Character.BodyEffects.Grabbed.Value) for _, Track in pairs(LocalPlayer.Character:WaitForChild("Humanoid"):GetPlayingAnimationTracks()) do if Track.Animation.AnimationId == "rbxassetid://3135389157" then Track:Stop() end end local Animation1 = Instance.new("Animation") Animation1.AnimationId = "rbxassetid://13850666420" local LoadAnimation1 = LocalPlayer.Character:FindFirstChildOfClass("Humanoid"):LoadAnimation(Animation1) LoadAnimation1.Priority = Enum.AnimationPriority.Action LoadAnimation1:Play() local Animation2 = Instance.new("Animation") Animation2.AnimationId = "rbxassetid://13850675130" local LoadAnimation2 = LocalPlayer.Character:FindFirstChildOfClass("Humanoid"):LoadAnimation(Animation2) LoadAnimation2.Priority = Enum.AnimationPriority.Action LoadAnimation2:Play() RunService:UnbindFromRenderStep("Pos") RunService:BindToRenderStep("Pos", 0, function() game.Players[target].Character.UpperTorso.BodyGyro.CFrame = CFrame.new(game.Players[target].Character.UpperTorso.Position, LocalPlayer.Character.HumanoidRootPart.Position) game.Players[target].Character.UpperTorso.BodyPosition.Position = LocalPlayer.Character.HumanoidRootPart.Position + LocalPlayer.Character.HumanoidRootPart.CFrame.LookVector * 2 + Vector3.new(0, 0.2, 0) end) task.wait(0.2) game.Players[target].Character.LowerTorso.Position = Vector3.new(0, -1200, 0) RunService:UnbindFromRenderStep("Pos") task.wait(0.2) game.Players[target].Character.UpperTorso:FindFirstChild("BodyPosition"):Destroy() game.Players[target].Character.UpperTorso:FindFirstChild("BodyGyro"):Destroy() task.wait(0.1) game.Players[target].Character.UpperTorso.Velocity = LocalPlayer.Character.HumanoidRootPart.CFrame.RightVector * 90 game.Players[target].Character.RightUpperLeg.Velocity = LocalPlayer.Character.HumanoidRootPart.CFrame.RightVector * -90 game.Players[target].Character.LeftUpperLeg.Velocity = LocalPlayer.Character.HumanoidRootPart.CFrame.RightVector * -90 task.wait(0.3) ReplicatedStorage.MainEvent:FireServer('Grabbing', false) task.wait(0.2) LoadAnimation1:Stop(0.3) LoadAnimation2:Stop(0.3) end end end) end local function CreateVoidTool() local tool = Instance.new("Tool") tool.RequiresHandle = false tool.Name = "Void" tool.Parent = LocalPlayer.Backpack tool.Activated:Connect(function() if Grabbed == true then if Up == false then local target = tostring(LocalPlayer.Character.BodyEffects.Grabbed.Value) wait(0.3) for _, Track in pairs(LocalPlayer.Character:WaitForChild("Humanoid"):GetPlayingAnimationTracks()) do if Track.Animation.AnimationId == "rbxassetid://3135389157" then Track:Stop() end end game.Players[target].Character.UpperTorso.BodyPosition.D = 1200 RunService:UnbindFromRenderStep("Pos") RunService:BindToRenderStep("Pos", 0, function() game.Players[target].Character.UpperTorso.BodyGyro.CFrame = CFrame.new(game.Players[target].Character.UpperTorso.Position, LocalPlayer.Character.HumanoidRootPart.Position) end) game.Players[target].Character.UpperTorso.BodyPosition.Position = LocalPlayer.Character.HumanoidRootPart.Position + LocalPlayer.Character.HumanoidRootPart.CFrame.LookVector * 4 + Vector3.new(0, 1.4, 0) local Animation = Instance.new("Animation") Animation.AnimationId = "rbxassetid://14774699952" local LoadAnimation = LocalPlayer.Character:FindFirstChildWhichIsA("Humanoid"):LoadAnimation(Animation) LoadAnimation.Priority = Enum.AnimationPriority.Action LoadAnimation:Play() LoadAnimation:AdjustSpeed(0.4) wait(2) game.Players[target].Character.UpperTorso:FindFirstChild("BodyPosition"):Destroy() game.Players[target].Character.UpperTorso:FindFirstChild("BodyGyro"):Destroy() for _, v in pairs(game.Players[target].Character:GetChildren()) do if v:IsA("MeshPart") then v.Position = Vector3.new(0, -600, 0) end end wait(0.2) LoadAnimation:Stop() ReplicatedStorage.MainEvent:FireServer('Grabbing', false) end end end) end local orbiting = false local theta = 0 local orbitConnection local function CreateOrbitTool() local tool = Instance.new("Tool") tool.RequiresHandle = false tool.Name = "Orbit" tool.Parent = LocalPlayer.Backpack tool.Activated:Connect(function() if Grabbed ~= true then return end local targetName = tostring(LocalPlayer.Character.BodyEffects.Grabbed.Value) local targetPlayer = game.Players:FindFirstChild(targetName) if not targetPlayer or not targetPlayer.Character then return end local targetChar = targetPlayer.Character local targetTorso = targetChar:FindFirstChild("UpperTorso") if not targetTorso then return end if not targetTorso:FindFirstChild("BodyPosition") then local bp = Instance.new("BodyPosition") bp.Name = "BodyPosition" bp.D = 200 bp.MaxForce = Vector3.new(1e5, 1e5, 1e5) bp.Parent = targetTorso end if not targetTorso:FindFirstChild("BodyGyro") then local bg = Instance.new("BodyGyro") bg.Name = "BodyGyro" bg.D = 100 bg.MaxTorque = Vector3.new(1e5, 1e5, 1e5) bg.Parent = targetTorso end if orbiting then orbiting = false if orbitConnection then orbitConnection:Disconnect() orbitConnection = nil end RunService:BindToRenderStep("Pos", 0, function() local hand = LocalPlayer.Character:FindFirstChild("RightHand") if hand then targetTorso.BodyPosition.Position = hand.Position + Vector3.new(0, -0.7, 0) targetTorso.BodyGyro.CFrame = CFrame.new(targetTorso.Position, LocalPlayer.Character.HumanoidRootPart.Position) end end) targetTorso.BodyPosition.D = 200 else orbiting = true theta = 0 if orbitConnection then orbitConnection:Disconnect() end orbitConnection = RunService.RenderStepped:Connect(function() local root = LocalPlayer.Character:FindFirstChild("HumanoidRootPart") if not root then return end theta += 0.60 local radius = 20 local height = 3 local offset = Vector3.new(math.cos(theta) * radius, height, math.sin(theta) * radius) local orbitPos = root.Position + offset targetTorso.BodyPosition.Position = orbitPos targetTorso.BodyGyro.CFrame = CFrame.new(targetTorso.Position, root.Position) end) targetTorso.BodyPosition.D = 1200 end end) end -- ===================== TOOL REMOVAL FUNCTION ===================== local function RemoveTool(toolName) local backpack = LocalPlayer:FindFirstChild("Backpack") local character = LocalPlayer.Character if backpack then local toolInBackpack = backpack:FindFirstChild(toolName) if toolInBackpack then toolInBackpack:Destroy() end end if character then local toolInCharacter = character:FindFirstChild(toolName) if toolInCharacter then toolInCharacter:Destroy() end end end -- ===================== CHARACTER RESPAWN HANDLING ===================== LocalPlayer.CharacterAdded:Connect(function() task.wait(2) for toolName, isEnabled in pairs(ToolStates) do if isEnabled then if toolName == "Neckgrab" then CreateNeckgrabTool() elseif toolName == "Up" then CreateUpTool() elseif toolName == "Air" then CreateAirTool() elseif toolName == "Throw" then CreateThrowTool() elseif toolName == "HeavenThrow" then CreateHeavenThrowTool() elseif toolName == "Punch" then CreatePunchTool() elseif toolName == "RipInHalf" then CreateRipInHalfTool() elseif toolName == "Void" then CreateVoidTool() elseif toolName == "Orbit" then CreateOrbitTool() end end end end) -- ===================== UI SETUP ===================== TrollingBox:AddToggle("NeckgrabToggle", { Text = "Neckgrab", Default = false, Callback = function(state) ToolStates.Neckgrab = state if state then CreateNeckgrabTool() else RemoveTool("Activate Neckgrab") end end }) TrollingBox:AddToggle("UpToggle", { Text = "Up", Default = false, Callback = function(state) ToolStates.Up = state if state then CreateUpTool() else RemoveTool("Up") end end }) TrollingBox:AddToggle("AirToggle", { Text = "Air", Default = false, Callback = function(state) ToolStates.Air = state if state then CreateAirTool() else RemoveTool("Air") end end }) TrollingBox:AddToggle("ThrowToggle", { Text = "Throw", Default = false, Callback = function(state) ToolStates.Throw = state if state then CreateThrowTool() else RemoveTool("Throw") end end }) TrollingBox:AddToggle("HeavenThrowToggle", { Text = "Heaven Throw", Default = false, Callback = function(state) ToolStates.HeavenThrow = state if state then CreateHeavenThrowTool() else RemoveTool("Heaven Throw") end end }) TrollingBox:AddToggle("PunchToggle", { Text = "Punch", Default = false, Callback = function(state) ToolStates.Punch = state if state then CreatePunchTool() else RemoveTool("Punch") end end }) TrollingBox:AddToggle("RipInHalfToggle", { Text = "Rip In Half", Default = false, Callback = function(state) ToolStates.RipInHalf = state if state then CreateRipInHalfTool() else RemoveTool("Rip In Half") end end }) TrollingBox:AddToggle("VoidToggle", { Text = "Void", Default = false, Callback = function(state) ToolStates.Void = state if state then CreateVoidTool() else RemoveTool("Void") end end }) TrollingBox:AddToggle("OrbitToggle", { Text = "Orbit", Default = false, Callback = function(state) ToolStates.Orbit = state if state then CreateOrbitTool() else RemoveTool("Orbit") end end }) local vu512 = game:GetService("Players").LocalPlayer -- LocalPlayer local vu513 = {} -- Table for connections local vu527 = nil -- Cloned character local function vu517(pu514, pu515, pu516) return game:GetService("RunService").Heartbeat:Connect(function() pu514.AssemblyLinearVelocity = Vector3.new(0, 0, 0) pu514.AssemblyAngularVelocity = Vector3.new(0, 0, 0) pu514.CFrame = pu515.CFrame * (pu516 or CFrame.new()) pu514.Velocity = Vector3.new(0, 0, 0) if not pu514:FindFirstChildWhichIsA("BodyVelocity") then Instance.new("BodyVelocity", pu514) end pu514.BodyVelocity.velocity = Vector3.new(0, 0, 0) pu514.BodyVelocity.maxForce = Vector3.new(9000000000, 9000000000, 9000000000) end) end local function vu520(p518, p519) if type(p518) == "table" and p519 then p518[#p518 + 1] = p519 end end local function vu526(p521, pu522) if game:GetService("RunService")[p521] then local vu523 = nil vu523 = game:GetService("RunService")[p521]:Connect(function() local v524, v525 = pcall(pu522) if not v524 then vu523:Disconnect() warn(v525) end end) return vu523 end end function AnimStop(p528, p529) local v530, v531, v532 = pairs(vu527:WaitForChild("Humanoid"):GetPlayingAnimationTracks()) while true do local v533 v532, v533 = v530(v531, v532) if v532 == nil then break end if v533.Animation.AnimationId:match("rbxassetid://" .. p528) then if tonumber(p529) then v533:Stop(p529) else v533:Stop() end end end end local function vu541(p534, p535) local v536, v537, v538 = pairs(vu527:WaitForChild("Humanoid"):GetPlayingAnimationTracks()) while true do local v539 v538, v539 = v536(v537, v538) if v538 == nil then break end if v539.Animation.AnimationId:match("rbxassetid://" .. p534) then v539:Stop() end end local v540 = Instance.new("Animation", game:GetService("Workspace")) v540.AnimationId = "rbxassetid://" .. p534 playing = vu527.Humanoid:LoadAnimation(v540) playing:Play() if tonumber(p535) then playing:AdjustSpeed(p535) else playing:AdjustSpeed(1) end v540:Destroy() end local function vu553(p542) local v543, v544, v545 = pairs(vu512.Character.Humanoid:GetPlayingAnimationTracks()) while true do local v546 v545, v546 = v543(v544, v545) if v545 == nil then break end if v546.Animation.AnimationId:match("rbxassetid://" .. p542) then v546:Stop(0) if not vu527:FindFirstChild(p542) then local v547 = Instance.new("Animation", vu527) v547.AnimationId = "rbxassetid://" .. p542 v547.Name = "_____GYAT" playing = vu527.Humanoid:LoadAnimation(v547) playing:Play() end end end if vu527.Humanoid.MoveDirection.magnitude > 0 then AnimStop(p542) local v548 = vu527 local v549, v550, v551 = pairs(v548:GetChildren()) while true do local v552 v551, v552 = v549(v550, v551) if v551 == nil then break end if v552.Name == "_____GYAT" then v552:Destroy() end end end end local function vu561(p554, p555) local v556, v557, v558 = pairs(vu527:WaitForChild("Humanoid"):GetPlayingAnimationTracks()) while true do local v559 v558, v559 = v556(v557, v558) if v558 == nil then break end if v559.Animation.AnimationId:match("rbxassetid://" .. p554) then v559:Stop() return end end local v560 = Instance.new("Animation", game:GetService("Workspace")) v560.AnimationId = "rbxassetid://" .. p554 playing = vu527.Humanoid:LoadAnimation(v560) playing:Play() if tonumber(p555) then playing:AdjustSpeed(p555) else playing:AdjustSpeed(1) end v560:Destroy() end local function vu568(p562) p562.Archivable = true local v563 = p562:Clone() v563.Humanoid.RootPart.Anchored = false v563.Humanoid.Health = 9000000000 v563.Humanoid.MaxHealth = 9000000000 v563.RagdollConstraints:Destroy() v563.BodyEffects:Destroy() v563:WaitForChild("GRABBING_CONSTRAINT"):Destroy() local v564, v565, v566 = pairs(v563:GetDescendants()) while true do local v567 v566, v567 = v564(v565, v566) if v566 == nil then break end if v567:IsA("BasePart") and (v567.Name ~= "Head" and (v567.Name ~= "HumanoidRootPart" and (v567.Name ~= "UpperTorso" and (v567.Name ~= "LowerTorso" and (v567.Name ~= "LeftUpperArm" and (v567.Name ~= "RightUpperArm" and (v567.Name ~= "LeftLowerArm" and (v567.Name ~= "RightLowerArm" and (v567.Name ~= "LeftHand" and (v567.Name ~= "RightHand" and (v567.Name ~= "LeftUpperLeg" and (v567.Name ~= "RightUpperLeg" and (v567.Name ~= "LeftLowerLeg" and (v567.Name ~= "RightLowerLeg" and (v567.Name ~= "LeftFoot" and v567.Name ~= "RightFoot"))))))))))))))) then v567.Massless = false v567:Destroy() end if v567:IsA("BasePart") then v567.CustomPhysicalProperties = PhysicalProperties.new(100, 2, 0.5, 100, 1) v567.Transparency = 1 end if v567:IsA("Decal") then v567.Transparency = 1 end if v567:IsA("Motor6D") then v567:Destroy() end end v563.Parent = vu512.Character v563.Humanoid:ChangeState("GettingUp") p562.Archivable = false return v563 end -- Add Button "Rape" TrollingBox:AddButton("Rape (cant revert)", function() local vu603 = game.Players.LocalPlayer local vu604 = vu603.Character local vu605 = game:GetService("ReplicatedStorage").IM.ANIM local v606 = workspace.Players if _G.JOINTWATCHER then _G.JOINTWATCHER:Disconnect() _G.JOINTWATCHER = nil end local function vu615(p607, p608, p609, p610) local v611 = Instance.new("Attachment", p607) local v612 = Instance.new("Attachment", p608) local v613 = Instance.new("AlignPosition", p607) local v614 = Instance.new("AlignOrientation", p607) v612.Position = p609 v611.Rotation = p610 v613.RigidityEnabled = true v613.Responsiveness = 200 v613.Attachment0 = v611 v613.Attachment1 = v612 v614.MaxTorque = 9000000000 v614.Responsiveness = 200 v614.RigidityEnabled = true v614.Attachment0 = v611 v614.Attachment1 = v612 return v611, v612, v613, v611 end local function v632(pu616) if pu616:IsA("Weld") and pu616.Name == "GRABBING_CONSTRAINT" then repeat task.wait() until pu616.Part0 repeat task.wait() until pu616:FindFirstChildOfClass("RopeConstraint") local v617, v618, v619, v620 if pu616.Part0:IsDescendantOf(vu603.Character) then pu616:FindFirstChildOfClass("RopeConstraint").Length = 9000000000 vu604.Animate.Disabled = true local v621, v622, v623 = pairs(vu604.Humanoid:GetPlayingAnimationTracks()) while true do local v624 v623, v624 = v621(v622, v623) if v623 == nil then break end v624:Stop() end vu604.Animate.Disabled = false vu604.Humanoid:LoadAnimation(vu605.RightAim):Play() vu604.Humanoid:LoadAnimation(vu605.LeftAim):Play() local v625 v617, v625, v618, v619 = vu615(pu616.Parent.UpperTorso, vu603.Character.UpperTorso, Vector3.new(0, 0, 10), Vector3.new(90, 545, 0)) local vu626 = v625 task.spawn(function() while pu616.Parent do task.wait() local v627 = tick() * 60 vu626.Position = Vector3.new(0, -1.2, -4 + 1 * math.sin(v627 / 8)) end end) v620 = vu626 else v617 = nil v620 = nil v618 = nil v619 = nil end repeat task.wait() until not pu616.Parent vu604.Animate.Disabled = true local v628, v629, v630 = pairs(vu604.Humanoid:GetPlayingAnimationTracks()) while true do local v631 v630, v631 = v628(v629, v630) if v630 == nil then break end v631:Stop() end vu604.Animate.Disabled = false if v617 then v617:Destroy() end if v620 then v620:Destroy() end if v618 then v618:Destroy() end if v619 then v619:Destroy() end end end _G.JOINTWATCHER = v606.DescendantAdded:Connect(v632) end) TrollingBox:AddButton("Control Body", function() loadstring(game:HttpGet("https://raw.githubusercontent.com/Ice-NewbieScripter/Da-Hood/main/Control%20Da%20Hood.lua"))() end) TrollingBox:AddButton("Kiss", function() local vu685 = game.Players.LocalPlayer local vu686 = vu685.Character local vu687 = game:GetService("ReplicatedStorage").IM.ANIM local v688 = workspace.Players if _G.JOINTWATCHER then _G.JOINTWATCHER:Disconnect() end local function vu697(p689, p690, p691, p692) local v693 = Instance.new("Attachment", p689) local v694 = Instance.new("Attachment", p690) local v695 = Instance.new("AlignPosition", p689) local v696 = Instance.new("AlignOrientation", p689) v694.Position = p691 v693.Rotation = p692 v695.RigidityEnabled = true v695.Responsiveness = 200 v695.Attachment0 = v693 v695.Attachment1 = v694 v696.MaxTorque = 9000000000 v696.Responsiveness = 200 v696.RigidityEnabled = true v696.Attachment0 = v693 v696.Attachment1 = v694 return v693, v694, v695, v696 end _G.JOINTWATCHER = v688.DescendantAdded:Connect(function(pu698) if pu698:IsA("Weld") and pu698.Name == "GRABBING_CONSTRAINT" then repeat task.wait() until pu698.Part0 ~= nil repeat task.wait() until pu698:FindFirstChildOfClass("RopeConstraint") local v699, v700, v701, v702 if pu698.Part0:IsDescendantOf(vu685.Character) then pu698:FindFirstChildOfClass("RopeConstraint").Length = 9000000000 vu686.Animate.Disabled = true local v703, v704, v705 = pairs(vu686.Humanoid:GetPlayingAnimationTracks()) while true do local v706 v705, v706 = v703(v704, v705) if v705 == nil then break end v706:Stop() end vu686.Animate.Disabled = false vu686.Humanoid:LoadAnimation(vu687.RightAim):Play() vu686.Humanoid:LoadAnimation(vu687.LeftAim):Play() local v707 v699, v707, v700, v701 = vu697(pu698.Parent.UpperTorso, vu685.Character.UpperTorso, Vector3.new(0, 0, 2), Vector3.new(20, 180, 0)) local vu708 = v707 spawn(function() while pu698.Parent ~= nil do task.wait() local v709 = tick() * 60 vu708.Position = Vector3.new(0, 0.5, -1.7 + 0.4 * math.sin(v709 / 9)) end end) v702 = vu708 else v699 = nil v702 = nil v700 = nil v701 = nil end repeat task.wait() until pu698.Parent == nil vu686.Animate.Disabled = true local v710, v711, v712 = pairs(vu686.Humanoid:GetPlayingAnimationTracks()) while true do local v713 v712, v713 = v710(v711, v712) if v712 == nil then break end v713:Stop() end vu686.Animate.Disabled = false if v699 then v699:Destroy() end if v702 then v702:Destroy() end if v700 then v700:Destroy() end if v701 then v701:Destroy() end end end) end) getgenv().jerkOffEnabled = false TrollingBox:AddToggle('JerkOff', { Text = 'Jerk Off', Default = false, Callback = function(v) getgenv().jerkOffEnabled = v if v then local speaker = game.Players.LocalPlayer local humanoid = speaker.Character and speaker.Character:FindFirstChildOfClass("Humanoid") local backpack = speaker:FindFirstChild("Backpack") if not humanoid or not backpack then Library:Notify("Character or backpack not found!", 5) return end local function createJerkOffTool() local tool = Instance.new("Tool") tool.Name = "Jerk Off" tool.ToolTip = "in the stripped club. straight up \"jorking it\" . and by \"it\" , haha, well. let's justr say. My peanits." tool.RequiresHandle = false tool.Parent = backpack local jorkin = false local track = nil local function stopTomfoolery() jorkin = false if track then track:Stop() track = nil end end tool.Equipped:Connect(function() jorkin = true end) tool.Unequipped:Connect(stopTomfoolery) humanoid.Died:Connect(stopTomfoolery) task.spawn(function() while task.wait() do if not jorkin then continue end local isR15 = humanoid.RigType == Enum.HumanoidRigType.R15 if not track then local anim = Instance.new("Animation") anim.AnimationId = isR15 and "rbxassetid://698251653" or "rbxassetid://72042024" track = humanoid:LoadAnimation(anim) end track:Play() track:AdjustSpeed(isR15 and 0.7 or 0.65) track.TimePosition = 0.6 task.wait(0.1) while track and track.TimePosition < (isR15 and 0.7 or 0.65) do task.wait(0.1) end if track then track:Stop() track = nil end end end) end createJerkOffTool() else local speaker = game.Players.LocalPlayer local backpack = speaker:FindFirstChild("Backpack") local character = speaker.Character if backpack then local toolInBackpack = backpack:FindFirstChild("Jerk Off") if toolInBackpack then toolInBackpack:Destroy() end end if character then local toolInCharacter = character:FindFirstChild("Jerk Off") if toolInCharacter then toolInCharacter:Destroy() end end end end }) getgenv().Test = false getgenv().SoundId = "6899466638" getgenv().ToolEnabled = false getgenv().CreateTool = function() getgenv().Tool = Instance.new("Tool") getgenv().Tool.RequiresHandle = false getgenv().Tool.Name = "[Kick]" getgenv().Tool.TextureId = "rbxassetid://483225199" getgenv().Animation = Instance.new("Animation") getgenv().Animation.AnimationId = "rbxassetid://2788306916" getgenv().Tool.Activated:Connect(function() getgenv().Test = true getgenv().Player = game.Players.LocalPlayer getgenv().Character = getgenv().Player.Character or getgenv().Player.CharacterAdded:Wait() getgenv().Humanoid = getgenv().Character:FindFirstChild("Humanoid") if getgenv().Humanoid then getgenv().AnimationTrack = getgenv().Humanoid:LoadAnimation(getgenv().Animation) getgenv().AnimationTrack:AdjustSpeed(3.4) getgenv().AnimationTrack:Play() end task.wait(0.6) getgenv().Boombox = game.Players.LocalPlayer.Backpack:FindFirstChild("[Boombox]") if getgenv().Boombox then getgenv().Boombox.Parent = game.Players.LocalPlayer.Character MainEvent:FireServer("Boombox", tonumber(getgenv().SoundId)) getgenv().Boombox.RequiresHandle = false getgenv().Boombox.Parent = game.Players.LocalPlayer.Backpack task.wait(1) MainEvent:FireServer("BoomboxStop") else getgenv().Sound = Instance.new("Sound", workspace) getgenv().Sound.SoundId = "rbxassetid://" .. getgenv().SoundId getgenv().Sound:Play() task.wait(1) getgenv().Sound:Stop() end wait(1.4) getgenv().Test = false end) getgenv().Tool.Parent = game.Players.LocalPlayer:WaitForChild("Backpack") end getgenv().RemoveTool = function() getgenv().Player = game.Players.LocalPlayer getgenv().Tool = getgenv().Player.Backpack:FindFirstChild("[Kick]") or getgenv().Player.Character:FindFirstChild("[Kick]") if getgenv().Tool then getgenv().Tool:Destroy() end end game:GetService("RunService").Heartbeat:Connect(function() if getgenv().Test then getgenv().Character = game.Players.LocalPlayer.Character if not getgenv().Character then return end getgenv().HumanoidRootPart = getgenv().Character:FindFirstChild("HumanoidRootPart") if not getgenv().HumanoidRootPart then return end getgenv().originalVelocity = getgenv().HumanoidRootPart.Velocity getgenv().HumanoidRootPart.Velocity = Vector3.new(getgenv().HumanoidRootPart.CFrame.LookVector.X * 800, 800, getgenv().HumanoidRootPart.CFrame.LookVector.Z * 800) game:GetService("RunService").RenderStepped:Wait() getgenv().HumanoidRootPart.Velocity = getgenv().originalVelocity end end) TrollingBox:AddToggle('Pqnd4Kick', { Text = 'Pqnd4 Kick Tool', Default = false, Callback = function(v) getgenv().ToolEnabled = v if v then getgenv().CreateTool() else getgenv().RemoveTool() end end }) end local AnimPackBox = Tabs.Misc:AddLeftGroupbox('Animation Packs') local hasLoadedPacks = false AnimPackBox:AddButton({ Text = 'Load Animation Packs', Func = function() if hasLoadedPacks then return end hasLoadedPacks = true loadstring(game:HttpGet("https://raw.githubusercontent.com/alebinh60/asmobile/refs/heads/main/animationspacks"))() end }) end)() task.wait(1) coroutine.wrap(function() local MiscBox = Tabs.Misc:AddRightGroupbox('Misc') MiscBox:AddToggle('AntiVoid', { Text = 'Anti Void', Default = true, Callback = function(v) if v then workspace.FallenPartsDestroyHeight = -math.huge else Workspace.FallenPartsDestroyHeight = -50 end end, }) local antiStompActivev2 = false local flashbackActive = false local lastPosition = nil local function startAntiStomp() local RunService = game:GetService("RunService") local function checkAndKill() local chr = LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait() local hum = chr:WaitForChild("Humanoid", 5) local bodyEffects = chr:WaitForChild("BodyEffects", 5) if not bodyEffects or not hum then warn("BodyEffects or Humanoid not found in the character!") return end local koValue = bodyEffects:WaitForChild("K.O", 5) if not koValue then warn("K.O value not found!") return end local connection connection = RunService.Heartbeat:Connect(function() if not antiStompActivev2 then connection:Disconnect() return end if koValue.Value == true and hum.Health > 0 then if flashbackActive then lastPosition = chr:GetPrimaryPartCFrame() end hum.Health = 0 end end) end checkAndKill() LocalPlayer.CharacterAdded:Connect(function(newCharacter) if antiStompActivev2 then checkAndKill() if flashbackActive and lastPosition then local rootPart = newCharacter:WaitForChild("HumanoidRootPart", 5) if rootPart then while (rootPart.Position - lastPosition.Position).Magnitude > 5 do rootPart.CFrame = lastPosition task.wait() end end lastPosition = nil end end end) end local antiStompActive = false MiscBox:AddToggle('AntiStomp', { Text = 'Anti Stomp v1+v2', Default = false, Callback = function(state) antiStompActivev2 = state antiStompActive = state if state then startAntiStomp() end end, }) MiscBox:AddToggle('Flashback', { Text = 'Flashback', Default = false, Callback = function(state) flashbackActive = state end, }) local lastDeathPosition = nil RunService.Heartbeat:Connect(function() local chr = LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait() local hum = chr:FindFirstChildOfClass("Humanoid") if not hum then return end local bodyEffects = chr:FindFirstChild("BodyEffects") if not bodyEffects then return end local koValue = bodyEffects:FindFirstChild("K.O") ------------------------- -- ANTI STOMP XỬ LÝ -- ------------------------- if antiStompActive then if hum.Health <= 5 or (koValue and koValue.Value) then -- Bỏ tool nếu đang cầm local tool = chr:FindFirstChildOfClass("Tool") if tool then tool.Parent = LocalPlayer.Backpack end -- Xóa body parts for _, v in pairs(chr:GetChildren()) do if v:IsA("MeshPart") or v:IsA("Part") then v:Destroy() end end -- Xóa phụ kiện for _, v in pairs(chr:GetChildren()) do if v:IsA("Accessory") then if v:FindFirstChild("Handle") then v.Handle:Destroy() end end end end end end) local antiBagConnection MiscBox:AddToggle('AntiBag', { Text = 'Anti Bag', Default = false, Callback = function(Value) if Value then antiBagConnection = RunService.Heartbeat:Connect(function() if localPlayer.Character:FindFirstChild('Christmas_Sock') then localPlayer.Character:FindFirstChild('Christmas_Sock'):Destroy() end end) else if antiBagConnection then antiBagConnection:Disconnect() antiBagConnection = nil end end end }) local antiGrabConnection MiscBox:AddToggle('AntiGrab', { Text = 'Anti Grab', Default = false, Callback = function(Value) if Value then antiGrabConnection = RunService.Heartbeat:Connect(function() local GC = localPlayer.Character:FindFirstChild("GRABBING_CONSTRAINT") if GC then GC:Destroy() wait(0.04) local humanoid = localPlayer.Character:FindFirstChildWhichIsA('Humanoid') if humanoid then humanoid.Sit = true end end end) else if antiGrabConnection then antiGrabConnection:Disconnect() antiGrabConnection = nil end end end }) if isDaHood then getgenv().XZQW_ENABLED = false getgenv().HIDE_ANIMATIONS = false getgenv().YRWL_Connection___ = {} getgenv().BlockedAnimations = { "rbxassetid://2788289281", "rbxassetid://507766388", "rbxassetid://2788292075", "rbxassetid://278829075", "rbxassetid://4798175381", "rbxassetid://2953512033", "rbxassetid://2788309982", "rbxassetid://2788312709", "rbxassetid://2788313790", "rbxassetid://2788316350", "rbxassetid://2788315673", "rbxassetid://2788314837" } ReplicatedStorage:WaitForChild("ClientAnimations").Block.AnimationId = "rbxassetid://0" local function startAutoBlock() table.insert(getgenv().YRWL_Connection___, RunService.Stepped:Connect(function() if getgenv().XZQW_ENABLED then local character = LocalPlayer.Character if character and character:FindFirstChild("BodyEffects") then local bodyEffects = character.BodyEffects if bodyEffects:FindFirstChild("Block") then bodyEffects.Block:Destroy() end local tool = character:FindFirstChildWhichIsA("Tool") if tool and tool:FindFirstChild("Ammo") then ReplicatedStorage.MainEvent:FireServer("Block", false) else ReplicatedStorage.MainEvent:FireServer("Block", true) wait() ReplicatedStorage.MainEvent:FireServer("Block", false) end end end end)) end local function stopAutoBlock() for _, connection in ipairs(getgenv().YRWL_Connection___) do connection:Disconnect() end table.clear(getgenv().YRWL_Connection___) end local function startHidingAnimations() RunService:BindToRenderStep("Hide - Block", 0, function() if getgenv().HIDE_ANIMATIONS then local character = LocalPlayer.Character if character then local humanoid = character:FindFirstChildWhichIsA("Humanoid") if humanoid then for _, animationTrack in pairs(humanoid:GetPlayingAnimationTracks()) do if table.find(getgenv().BlockedAnimations, animationTrack.Animation.AnimationId) then animationTrack:Stop() end end end end end end) end local function stopHidingAnimations() RunService:UnbindFromRenderStep("Hide - Block") end MiscBox:AddToggle('AutoBlock', { Text = 'God Block', Default = false, Callback = function(state) getgenv().XZQW_ENABLED = state if state then startAutoBlock() else stopAutoBlock() end end, }) local Depbox = MiscBox:AddDependencyBox() Depbox:AddToggle('HideAnimations', { Text = 'Hide Animations', Default = false, Callback = function(state) getgenv().HIDE_ANIMATIONS = state if state then startHidingAnimations() else stopHidingAnimations() end end, }) Depbox:SetupDependencies({ { Toggles.AutoBlock, true } }) getgenv().CASH_AURA_ENABLED = false getgenv().CASH_AURA_RANGE = 17 getgenv().COOLDOWN = 0.2 local function GetCash() local cash = {} local drop = workspace:FindFirstChild("Ignored") and workspace.Ignored:FindFirstChild("Drop") if not drop then return cash end local root = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") if not root then return cash end for _, v in drop:GetChildren() do if v.Name == "MoneyDrop" then local pos = v:GetAttribute("OriginalPos") or v.Position if (pos - root.Position).Magnitude <= getgenv().CASH_AURA_RANGE then table.insert(cash, v) end end end return cash end local function CashAuraLoop() while getgenv().CASH_AURA_ENABLED do for _, money in GetCash() do local cd = money:FindFirstChildOfClass("ClickDetector") if cd then fireclickdetector(cd) end end task.wait(getgenv().COOLDOWN) end end MiscBox:AddToggle('CashAura', { Text = 'Cash Aura', Default = false, Callback = function(v) getgenv().CASH_AURA_ENABLED = v if v then task.spawn(CashAuraLoop) end end }) MiscBox:AddSlider('CashAuraRange', { Text = 'Cash Aura Range', Min = 10, Max = 50, Default = 17, Rounding = 1, Callback = function(v) getgenv().CASH_AURA_RANGE = v end }) MiscBox:AddSlider('CashAuraCD', { Text = 'Cash Aura Cooldown', Min = 0.1, Max = 1, Default = 0.2, Rounding = 2, Callback = function(v) getgenv().COOLDOWN = v end }) end local autoReloadEnabled = false local removeShootAnimEnabled = false RunService.Heartbeat:Connect(function() if not autoReloadEnabled then return end local tool = game.Players.LocalPlayer.Character and game.Players.LocalPlayer.Character:FindFirstChildOfClass("Tool") if tool and tool:FindFirstChild("Ammo") and tool.Ammo.Value <= 0 then pcall(function() MainEvent:FireServer("Reload", tool) end) end end) MiscBox:AddToggle('AutoReloadToggle', { Text = 'Auto Reload', Default = false, Callback = function(v) autoReloadEnabled = v Library:Notify(v and "Auto Reload: ON" or "Auto Reload: OFF", 2) end }) -- ====================== RPG & GRENADE DETECTION (DA HOOD ONLY) ====================== if isDaHood then getgenv().AntiRPGDesyncEnabled = false getgenv().GrenadeDetectionEnabled = false getgenv().AntiRPGDesyncLoop = nil local function StartDetection() if getgenv().AntiRPGDesyncLoop then return end getgenv().AntiRPGDesyncLoop = game:GetService("RunService").PostSimulation:Connect(function() local hrp = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") local hum = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid") if not hrp or not hum then return end local rpg = workspace:FindFirstChild("Ignored") and workspace.Ignored:FindFirstChild("Model") and workspace.Ignored.Model:FindFirstChild("Launcher") local grenade = workspace:FindFirstChild("Ignored") and workspace.Ignored:FindFirstChild("Handle") local threat = (getgenv().AntiRPGDesyncEnabled and rpg) or (getgenv().GrenadeDetectionEnabled and grenade and (grenade.Position - hrp.Position).Magnitude < 16) if threat then local offset = Vector3.new(math.random(-100,100), math.random(50,150), math.random(-100,100)) hum.CameraOffset = -offset local old = hrp.CFrame hrp.CFrame = CFrame.new(hrp.Position + offset) task.wait() hrp.CFrame = old end end) end local function StopDetection() if getgenv().AntiRPGDesyncLoop then getgenv().AntiRPGDesyncLoop:Disconnect() getgenv().AntiRPGDesyncLoop = nil end end MiscBox:AddToggle('RPGDetect', { Text = 'RPG Detection', Default = false, Callback = function(v) getgenv().AntiRPGDesyncEnabled = v if v or getgenv().GrenadeDetectionEnabled then StartDetection() else StopDetection() end end }) MiscBox:AddToggle('GrenadeDetect', { Text = 'Grenade Detection', Default = false, Callback = function(v) getgenv().GrenadeDetectionEnabled = v if v or getgenv().AntiRPGDesyncEnabled then StartDetection() else StopDetection() end end }) end MiscBox:AddToggle('ChatSpy', { Text = 'Chat Spy', Default = true, Callback = function(v) ChatEnabled = v if chatWindow then chatWindow.Enabled = v end end }) local maxzoom = game.Players.LocalPlayer.CameraMaxZoomDistance MiscBox:AddToggle('InfZoom', { Text = 'Infinite Zoom', Default = false, Callback = function(v) if v then game.Players.LocalPlayer.CameraMaxZoomDistance = math.huge else game.Players.LocalPlayer.CameraMaxZoomDistance = maxzoom end end }) local ngu = MiscBox:AddButton({ Text = 'Force Reset', Func = function() local hum = game.Players.LocalPlayer.Character and game.Players.LocalPlayer.Character:FindFirstChild("Humanoid") if hum then hum.Health = 0 end end }) -- 3. Unjail (Da Hood only) if isDaHood then ngu:AddButton({ Text = 'Redeem All Codes', Func = function() local codes = {"HAPPYHOLIDAYS25","XMAS2025"} local mainEvent = game:GetService("ReplicatedStorage"):FindFirstChild("MainEvent") if not mainEvent then Library:Notify("MainEvent not found!", 5) return end for _, code in ipairs(codes) do mainEvent:FireServer("EnterPromoCode", code) Library:Notify("Redeeming: " .. code, 4) task.wait(4.2) end Library:Notify("All codes redeemed!", 6) end }) MiscBox:AddButton({ Text = 'Unjail (125$)', Func = function() local plr = game.Players.LocalPlayer local currency = plr:FindFirstChild("DataFolder") and plr.DataFolder:FindFirstChild("Currency") if not currency or currency.Value < 125 then Library:Notify("Not enough cash! (Need 125$)", 5) return end local hrp = plr.Character and plr.Character:FindFirstChild("HumanoidRootPart") if not hrp then return end hrp.CFrame = CFrame.new(-270.94, 20.327, -242.38) task.wait(0.5) local keyShop = workspace:FindFirstChild("Ignored") and workspace.Ignored:FindFirstChild("Shop") and workspace.Ignored.Shop:FindFirstChild("[Key] - $125") if keyShop and keyShop:FindFirstChild("ClickDetector") then fireclickdetector(keyShop.ClickDetector) task.wait(0.2) fireclickdetector(keyShop.ClickDetector) fireclickdetector(keyShop.ClickDetector) end repeat task.wait() until plr.Backpack:FindFirstChild("[Key]") or plr.Character:FindFirstChild("[Key]") local key = plr.Backpack:FindFirstChild("[Key]") or plr.Character:FindFirstChild("[Key]") if key then local hum = plr.Character:FindFirstChildOfClass("Humanoid") if hum then hum:EquipTool(key) end task.wait(0.3) hrp.CFrame = CFrame.new(-485.668, 23.631, -285.169) -- Bank task.wait(0.5) key:Activate() Library:Notify("Unjailed successfully!", 5) end end }) else print("Không phải Da Hood → Bỏ qua Unjail") end end)() task.wait(1) coroutine.wrap(function() if isDaHood then local DetectionBox = Tabs.Misc:AddRightGroupbox('Detection') -- Cấu hình local antiModEnabled = false local checkModFriendsEnabled = false local groupCheckEnabled = false local antiModMethod = "Notify" -- Notify / Kick -- Danh sách Moderator (UserId) local modList = { 163721789, 15427717, 201454243, 822999, 63794379, 17260230, 28357488, 93101606, 8195210, 89473551, 16917269, 85989579, 1553950697, 476537893, 155627580, 31163456, 7200829, 25717070, 16138978, 60660789, 1161411094, 9125623, 11319153, 34758833, 194109750, 35616559, 1257271138, 28885841, 23558830, 4255947062, 29242182, 2395613299, 3314981799, 3390225662, 2459178, 2846299656, 2967502742, 7001683347, 7312775547, 328566086, 170526279, 99356639, 352087139, 6074834798, 2212830051, 3944434729, 5136267958, 84570351, 542488819, 1830168970, 3950637598, 1962396833 } -- Group ID cần kiểm tra (Da Hood Mod Group, Staff Group, v.v.) local groupIDs = {10604500, 17215700} -- === Hàm phát hiện Moderator === local function detectMods() while antiModEnabled do task.wait(1.5) for _, player in ipairs(Players:GetPlayers()) do if player == LocalPlayer then continue end -- Kiểm tra UserId trong danh sách đen if table.find(modList, player.UserId) then local msg = "MODERATOR DETECTED: " .. player.DisplayName .. " (@" .. player.Name .. ")" if antiModMethod == "Notify" then Library:Notify(msg, 5) else LocalPlayer:Kick("MOD DETECTED: " .. player.DisplayName) end end -- Kiểm tra Group + Role (nếu bật) if groupCheckEnabled then for _, groupId in ipairs(groupIDs) do local success, inGroup = pcall(player.IsInGroup, player, groupId) if success and inGroup then local role = "Unknown" pcall(function() role = player:GetRoleInGroup(groupId) end) local msg = "[" .. role .. "] JOINED: " .. player.DisplayName .. " (@" .. player.Name .. ")" if antiModMethod == "Notify" then Library:Notify(msg, 5) else LocalPlayer:Kick("STAFF DETECTED: " .. player.DisplayName) end end end end end end end -- === Kiểm tra bạn bè với Mod === local function checkFriendsWithMods() while checkModFriendsEnabled do task.wait(8) -- Không cần check quá nhanh for _, player in ipairs(Players:GetPlayers()) do if player == LocalPlayer then continue end pcall(function() local friends = player:GetFriendsAsync() local page = friends:GetCurrentPage() for _, friend in ipairs(page) do if table.find(modList, friend.Id) then Library:Notify(player.DisplayName .. " is friends with a Moderator!", 6) break end end end) end end end -- === UI === local AntiModToggle = DetectionBox:AddToggle('AntiMod', { Text = 'Anti Mod Detection', Default = false, Callback = function(v) antiModEnabled = v Library:Notify(v and "Anti-Mod: ON" or "Anti-Mod: OFF", 3) if v then task.spawn(detectMods) end end }) local DepBox = DetectionBox:AddDependencyBox() DepBox:SetupDependencies({{Toggles.AntiMod, true}}) DepBox:AddDropdown('AntiModMethod', { Values = {"Notify", "Kick"}, Default = "Notify", Multi = false, Text = 'Action Method', Callback = function(v) antiModMethod = v Library:Notify("Anti-Mod Action → " .. v, 3) end }) DepBox:AddToggle('CheckModFriends', { Text = 'Check Mod Friends', Default = false, Tooltip = 'Warns if someone is friends with a Moderator', Callback = function(v) checkModFriendsEnabled = v Library:Notify(v and "Mod Friends Check: ON" or "Mod Friends Check: OFF", 3) if v then task.spawn(checkFriendsWithMods) end end }) DepBox:AddToggle('GroupCheck', { Text = 'Staff Group Check', Default = false, Tooltip = 'Detects players in restricted Da Hood staff groups', Callback = function(v) groupCheckEnabled = v Library:Notify(v and "Staff Group Check: ON" or "Staff Group Check: OFF", 3) if v and antiModEnabled then task.spawn(detectMods) end end }) else print("Không phải Da Hood → Bỏ qua Anti-Mod Detection") end end)() task.wait(1) coroutine.wrap(function() local lighting = game:GetService("Lighting") local LightingService = game:GetService("Lighting") local originalAmbient = LightingService.Ambient local originalOutdoorAmbient = LightingService.OutdoorAmbient local originalFogColor = LightingService.FogColor local originalFogStart = LightingService.FogStart local originalFogEnd = LightingService.FogEnd local originalBrightness = LightingService.Brightness local originalClockTime = LightingService.ClockTime local originalGlobalShadows = LightingService.GlobalShadows local originalEnvironmentDiffuseScale = LightingService.EnvironmentDiffuseScale local originalEnvironmentSpecularScale = LightingService.EnvironmentSpecularScale local originalExposureCompensation = LightingService.ExposureCompensation local originalColorShiftBottom = LightingService.ColorShift_Bottom local originalColorShiftTop = LightingService.ColorShift_Top local originalGeographicLatitude = LightingService.GeographicLatitude local nebulaThemeColor = Color3.fromRGB(173, 216, 230) local Visuals = {} local WorldGroup = Tabs.Visual:AddRightGroupbox('World') WorldGroup:AddButton({ Text = "Christmas", Func = function() local snowProps = game:GetService("ReplicatedStorage"):FindFirstChild("Christmas_2024"):FindFirstChild("SnowProps") if snowProps then snowProps:Clone().Parent = workspace end end }) WorldGroup:AddToggle('CustomAmbient', { Text = 'Custom Ambient', Default = false, Callback = function(Value) LightingService.Ambient = Value and AmbientColor or originalAmbient end }):AddColorPicker('AmbientColor', { Default = originalAmbient, Title = 'Ambient Color', Callback = function(Value) AmbientColor = Value if Toggles.CustomAmbient.Value then LightingService.Ambient = Value end end }) WorldGroup:AddToggle('CustomOutdoorAmbient', { Text = 'Custom Outdoor Ambient', Default = false, Callback = function(Value) LightingService.OutdoorAmbient = Value and OutdoorAmbientColor or originalOutdoorAmbient end }):AddColorPicker('OutdoorAmbientColor', { Default = originalOutdoorAmbient, Title = 'Outdoor Ambient Color', Callback = function(Value) OutdoorAmbientColor = Value if Toggles.CustomOutdoorAmbient.Value then LightingService.OutdoorAmbient = Value end end }) WorldGroup:AddToggle('CustomFog', { Text = 'Custom Fog', Default = false, Callback = function(Value) if Value then LightingService.FogColor = FogColor LightingService.FogStart = FogStart LightingService.FogEnd = FogEnd else LightingService.FogColor = originalFogColor LightingService.FogStart = originalFogStart LightingService.FogEnd = originalFogEnd end end }):AddColorPicker('FogColor', { Default = originalFogColor, Title = 'Fog Color', Callback = function(Value) FogColor = Value if Toggles.CustomFog.Value then LightingService.FogColor = Value end end }) WorldGroup:AddSlider('FogStart', { Text = 'Fog Start', Min = 0, Max = 1000, Default = originalFogStart, Rounding = 1, Callback = function(Value) FogStart = Value if Toggles.CustomFog.Value then LightingService.FogStart = Value end end }) WorldGroup:AddSlider('FogEnd', { Text = 'Fog End', Min = 0, Max = 1000, Default = originalFogEnd, Rounding = 1, Callback = function(Value) FogEnd = Value if Toggles.CustomFog.Value then LightingService.FogEnd = Value end end }) WorldGroup:AddToggle('CustomBrightness', { Text = 'Custom Brightness', Default = false, Callback = function(Value) LightingService.Brightness = Value and BrightnessValue or originalBrightness end }) WorldGroup:AddSlider('BrightnessValue', { Text = 'Brightness', Min = 0, Max = 10, Default = originalBrightness, Rounding = 1, Callback = function(Value) BrightnessValue = Value if Toggles.CustomBrightness.Value then LightingService.Brightness = Value end end }) WorldGroup:AddToggle('CustomClockTime', { Text = 'Custom Clock Time', Default = false, Callback = function(Value) LightingService.ClockTime = Value and ClockTimeValue or originalClockTime end }) WorldGroup:AddSlider('ClockTimeValue', { Text = 'Clock Time', Min = 0, Max = 24, Default = originalClockTime, Rounding = 1, Callback = function(Value) ClockTimeValue = Value if Toggles.CustomClockTime.Value then LightingService.ClockTime = Value end end }) WorldGroup:AddToggle('GlobalShadows', { Text = 'Global Shadows', Default = originalGlobalShadows, Callback = function(Value) LightingService.GlobalShadows = Value end }) WorldGroup:AddToggle('CustomEnvironmentDiffuse', { Text = 'Custom Environment Diffuse', Default = false, Callback = function(Value) LightingService.EnvironmentDiffuseScale = Value and EnvironmentDiffuseValue or originalEnvironmentDiffuseScale end }) WorldGroup:AddSlider('EnvironmentDiffuseValue', { Text = 'Environment Diffuse Scale', Min = 0, Max = 1, Default = originalEnvironmentDiffuseScale, Rounding = 2, Callback = function(Value) EnvironmentDiffuseValue = Value if Toggles.CustomEnvironmentDiffuse.Value then LightingService.EnvironmentDiffuseScale = Value end end }) WorldGroup:AddToggle('CustomEnvironmentSpecular', { Text = 'Custom Environment Specular', Default = false, Callback = function(Value) LightingService.EnvironmentSpecularScale = Value and EnvironmentSpecularValue or originalEnvironmentSpecularScale end }) WorldGroup:AddSlider('EnvironmentSpecularValue', { Text = 'Environment Specular Scale', Min = 0, Max = 1, Default = originalEnvironmentSpecularScale, Rounding = 2, Callback = function(Value) EnvironmentSpecularValue = Value if Toggles.CustomEnvironmentSpecular.Value then LightingService.EnvironmentSpecularScale = Value end end }) WorldGroup:AddToggle('CustomExposure', { Text = 'Custom Exposure', Default = false, Callback = function(Value) LightingService.ExposureCompensation = Value and ExposureValue or originalExposureCompensation end }) WorldGroup:AddSlider('ExposureValue', { Text = 'Exposure Compensation', Min = -3, Max = 3, Default = originalExposureCompensation, Rounding = 1, Callback = function(Value) ExposureValue = Value if Toggles.CustomExposure.Value then LightingService.ExposureCompensation = Value end end }) WorldGroup:AddToggle('CustomColorShiftBottom', { Text = 'Custom Color Shift Bottom', Default = false, Callback = function(Value) LightingService.ColorShift_Bottom = Value and ColorShiftBottomColor or originalColorShiftBottom end }):AddColorPicker('ColorShiftBottomColor', { Default = originalColorShiftBottom, Title = 'Color Shift Bottom Color', Callback = function(Value) ColorShiftBottomColor = Value if Toggles.CustomColorShiftBottom.Value then LightingService.ColorShift_Bottom = Value end end }) WorldGroup:AddToggle('CustomColorShiftTop', { Text = 'Custom Color Shift Top', Default = false, Callback = function(Value) LightingService.ColorShift_Top = Value and ColorShiftTopColor or originalColorShiftTop end }):AddColorPicker('ColorShiftTopColor', { Default = originalColorShiftTop, Title = 'Color Shift Top Color', Callback = function(Value) ColorShiftTopColor = Value if Toggles.CustomColorShiftTop.Value then LightingService.ColorShift_Top = Value end end }) WorldGroup:AddToggle('CustomGeographicLatitude', { Text = 'Custom Geographic Latitude', Default = false, Callback = function(Value) LightingService.GeographicLatitude = Value and GeographicLatitudeValue or originalGeographicLatitude end }) WorldGroup:AddSlider('GeographicLatitudeValue', { Text = 'Geographic Latitude', Min = -90, Max = 90, Default = originalGeographicLatitude, Rounding = 1, Callback = function(Value) GeographicLatitudeValue = Value if Toggles.CustomGeographicLatitude.Value then LightingService.GeographicLatitude = Value end end }) WorldGroup:AddToggle('NebulaTheme', { Text = 'Nebula Theme', Default = false, Callback = function(Value) if Value then local b = Instance.new("BloomEffect", LightingService) b.Intensity = 0.7 b.Size = 24 b.Threshold = 1 b.Name = "NebulaBloom" local c = Instance.new("ColorCorrectionEffect", LightingService) c.Saturation = 0.5 c.Contrast = 0.2 c.TintColor = nebulaThemeColor c.Name = "NebulaColorCorrection" local a = Instance.new("Atmosphere", LightingService) a.Density = 0.4 a.Offset = 0.25 a.Glare = 1 a.Haze = 2 a.Color = nebulaThemeColor a.Decay = Color3.fromRGB(173, 216, 230) a.Name = "NebulaAtmosphere" LightingService.Ambient = nebulaThemeColor LightingService.OutdoorAmbient = nebulaThemeColor LightingService.FogStart = 100 LightingService.FogEnd = 500 LightingService.FogColor = nebulaThemeColor else for _, name in pairs({"NebulaBloom", "NebulaColorCorrection", "NebulaAtmosphere"}) do local obj = LightingService:FindFirstChild(name) if obj then obj:Destroy() end end LightingService.Ambient = originalAmbient LightingService.OutdoorAmbient = originalOutdoorAmbient LightingService.FogStart = originalFogStart LightingService.FogEnd = originalFogEnd LightingService.FogColor = originalFogColor end end }):AddColorPicker('NebulaColor', { Default = Color3.fromRGB(173, 216, 230), Title = 'Nebula Color', Callback = function(Value) nebulaThemeColor = Value if Toggles.NebulaTheme.Value then local nc = LightingService:FindFirstChild("NebulaColorCorrection") if nc then nc.TintColor = Value end local na = LightingService:FindFirstChild("NebulaAtmosphere") if na then na.Color = Value end LightingService.Ambient = Value LightingService.OutdoorAmbient = Value LightingService.FogColor = Value end end }) local SelectedSkybox = "HD" local LightingSettings = { DefaultSkyboxBk = lighting.Sky.SkyboxBk, DefaultSkyboxDn = lighting.Sky.SkyboxDn, DefaultSkyboxFt = lighting.Sky.SkyboxFt, DefaultSkyboxLf = lighting.Sky.SkyboxLf, DefaultSkyboxRt = lighting.Sky.SkyboxRt, DefaultSkyboxUp = lighting.Sky.SkyboxUp, } local DefaultSky = lighting:FindFirstChildOfClass("Sky") local LightingSettings = {} if DefaultSky then LightingSettings.DefaultSkyboxBk = DefaultSky.SkyboxBk LightingSettings.DefaultSkyboxDn = DefaultSky.SkyboxDn LightingSettings.DefaultSkyboxFt = DefaultSky.SkyboxFt LightingSettings.DefaultSkyboxLf = DefaultSky.SkyboxLf LightingSettings.DefaultSkyboxRt = DefaultSky.SkyboxRt LightingSettings.DefaultSkyboxUp = DefaultSky.SkyboxUp end local customSkyInstance = nil local SkyboxAssets = { ["Black Storm"] = { Bk = "rbxassetid://15502511288", Dn = "rbxassetid://15502508460", Ft = "rbxassetid://15502510289", Lf = "rbxassetid://15502507918", Rt = "rbxassetid://15502509398", Up = "rbxassetid://15502511911" }, ["HD"] = { Bk = "http://www.roblox.com/asset/?id=16553658937", Dn = "http://www.roblox.com/asset/?id=16553660713", Ft = "http://www.roblox.com/asset/?id=16553662144", Lf = "http://www.roblox.com/asset/?id=16553664042", Rt = "http://www.roblox.com/asset/?id=16553665766", Up = "http://www.roblox.com/asset/?id=16553667750" }, ["Snow"] = { Bk = "http://www.roblox.com/asset/?id=155657655", Dn = "http://www.roblox.com/asset/?id=155674246", Ft = "http://www.roblox.com/asset/?id=155657609", Lf = "http://www.roblox.com/asset/?id=155657671", Rt = "http://www.roblox.com/asset/?id=155657619", Up = "http://www.roblox.com/asset/?id=155674931" }, ["Blue Space"] = { Bk = "rbxassetid://15536110634", Dn = "rbxassetid://15536112543", Ft = "rbxassetid://15536116141", Lf = "rbxassetid://15536114370", Rt = "rbxassetid://15536118762", Up = "rbxassetid://15536117282" }, ["Realistic"] = { Bk = "rbxassetid://653719502", Dn = "rbxassetid://653718790", Ft = "rbxassetid://653719067", Lf = "rbxassetid://653719190", Rt = "rbxassetid://653718931", Up = "rbxassetid://653719321" }, ["Stormy"] = { Bk = "http://www.roblox.com/asset/?id=18703245834", Dn = "http://www.roblox.com/asset/?id=18703243349", Ft = "http://www.roblox.com/asset/?id=18703240532", Lf = "http://www.roblox.com/asset/?id=18703237556", Rt = "http://www.roblox.com/asset/?id=18703235430", Up = "http://www.roblox.com/asset/?id=18703232671" }, ["Pink"] = { Bk = "rbxassetid://12216109205", Dn = "rbxassetid://12216109875", Ft = "rbxassetid://12216109489", Lf = "rbxassetid://12216110170", Rt = "rbxassetid://12216110471", Up = "rbxassetid://12216108877" }, ["Sunset"] = { Bk = "rbxassetid://600830446", Dn = "rbxassetid://600831635", Ft = "rbxassetid://600832720", Lf = "rbxassetid://600886090", Rt = "rbxassetid://600833862", Up = "rbxassetid://600835177" }, ["Arctic"] = { Bk = "http://www.roblox.com/asset/?id=225469390", Dn = "http://www.roblox.com/asset/?id=225469395", Ft = "http://www.roblox.com/asset/?id=225469403", Lf = "http://www.roblox.com/asset/?id=225469450", Rt = "http://www.roblox.com/asset/?id=225469471", Up = "http://www.roblox.com/asset/?id=225469481" }, ["Space"] = { Bk = "http://www.roblox.com/asset/?id=166509999", Dn = "http://www.roblox.com/asset/?id=166510057", Ft = "http://www.roblox.com/asset/?id=166510116", Lf = "http://www.roblox.com/asset/?id=166510092", Rt = "http://www.roblox.com/asset/?id=166510131", Up = "http://www.roblox.com/asset/?id=166510114" }, ["Roblox Default"] = { Bk = "rbxasset://textures/sky/sky512_bk.tex", Dn = "rbxasset://textures/sky/sky512_dn.tex", Ft = "rbxasset://textures/sky/sky512_ft.tex", Lf = "rbxasset://textures/sky/sky512_lf.tex", Rt = "rbxasset://textures/sky/sky512_rt.tex", Up = "rbxasset://textures/sky/sky512_up.tex" }, ["Red Night"] = { Bk = "http://www.roblox.com/asset/?id=401664839", Dn = "http://www.roblox.com/asset/?id=401664862", Ft = "http://www.roblox.com/asset/?id=401664960", Lf = "http://www.roblox.com/asset/?id=401664881", Rt = "http://www.roblox.com/asset/?id=401664901", Up = "http://www.roblox.com/asset/?id=401664936" }, ["Deep Space 1"] = { Bk = "http://www.roblox.com/asset/?id=149397692", Dn = "http://www.roblox.com/asset/?id=149397686", Ft = "http://www.roblox.com/asset/?id=149397697", Lf = "http://www.roblox.com/asset/?id=149397684", Rt = "http://www.roblox.com/asset/?id=149397688", Up = "http://www.roblox.com/asset/?id=149397702" }, ["Pink Skies"] = { Bk = "http://www.roblox.com/asset/?id=151165214", Dn = "http://www.roblox.com/asset/?id=151165197", Ft = "http://www.roblox.com/asset/?id=151165224", Lf = "http://www.roblox.com/asset/?id=151165191", Rt = "http://www.roblox.com/asset/?id=151165206", Up = "http://www.roblox.com/asset/?id=151165227" }, ["Purple Sunset"] = { Bk = "rbxassetid://264908339", Dn = "rbxassetid://264907909", Ft = "rbxassetid://264909420", Lf = "rbxassetid://264909758", Rt = "rbxassetid://264908886", Up = "rbxassetid://264907379" }, ["Blue Night"] = { Bk = "http://www.roblox.com/asset/?id=12064107", Dn = "http://www.roblox.com/asset/?id=12064152", Ft = "http://www.roblox.com/asset/?id=12064121", Lf = "http://www.roblox.com/asset/?id=12063984", Rt = "http://www.roblox.com/asset/?id=12064115", Up = "http://www.roblox.com/asset/?id=12064131" }, ["Blossom Daylight"] = { Bk = "http://www.roblox.com/asset/?id=271042516", Dn = "http://www.roblox.com/asset/?id=271077243", Ft = "http://www.roblox.com/asset/?id=271042556", Lf = "http://www.roblox.com/asset/?id=271042310", Rt = "http://www.roblox.com/asset/?id=271042467", Up = "http://www.roblox.com/asset/?id=271077958" }, ["Blue Nebula"] = { Bk = "http://www.roblox.com/asset?id=135207744", Dn = "http://www.roblox.com/asset?id=135207662", Ft = "http://www.roblox.com/asset?id=135207770", Lf = "http://www.roblox.com/asset?id=135207615", Rt = "http://www.roblox.com/asset?id=135207695", Up = "http://www.roblox.com/asset?id=135207794" }, ["Blue Planet"] = { Bk = "rbxassetid://218955819", Dn = "rbxassetid://218953419", Ft = "rbxassetid://218954524", Lf = "rbxassetid://218958493", Rt = "rbxassetid://218957134", Up = "rbxassetid://218950090" }, ["Deep Space 2"] = { Bk = "http://www.roblox.com/asset/?id=159248188", Dn = "http://www.roblox.com/asset/?id=159248183", Ft = "http://www.roblox.com/asset/?id=159248187", Lf = "http://www.roblox.com/asset/?id=159248173", Rt = "http://www.roblox.com/asset/?id=159248192", Up = "http://www.roblox.com/asset/?id=159248176" }, ["Summer"] = { Bk = "rbxassetid://16648590964", Dn = "rbxassetid://16648617436", Ft = "rbxassetid://16648595424", Lf = "rbxassetid://16648566370", Rt = "rbxassetid://16648577071", Up = "rbxassetid://16648598180" }, ["Galaxy"] = { Bk = "rbxassetid://15983968922", Dn = "rbxassetid://15983966825", Ft = "rbxassetid://15983965025", Lf = "rbxassetid://15983967420", Rt = "rbxassetid://15983966246", Up = "rbxassetid://15983964246" }, ["Stylized"] = { Bk = "rbxassetid://18351376859", Dn = "rbxassetid://18351374919", Ft = "rbxassetid://18351376800", Lf = "rbxassetid://18351376469", Rt = "rbxassetid://18351376457", Up = "rbxassetid://18351377189" }, ["Minecraft"] = { Bk = "rbxassetid://8735166756", Dn = "http://www.roblox.com/asset/?id=8735166707", Ft = "http://www.roblox.com/asset/?id=8735231668", Lf = "http://www.roblox.com/asset/?id=8735166755", Rt = "http://www.roblox.com/asset/?id=8735166751", Up = "http://www.roblox.com/asset/?id=8735166729" }, ["Sunset 2"] = { Bk = "http://www.roblox.com/asset/?id=151165214", Dn = "http://www.roblox.com/asset/?id=151165197", Ft = "http://www.roblox.com/asset/?id=151165224", Lf = "http://www.roblox.com/asset/?id=151165191", Rt = "http://www.roblox.com/asset/?id=151165206", Up = "http://www.roblox.com/asset/?id=151165227" }, ["Cloudy Rain"] = { Bk = "http://www.roblox.com/asset/?id=4498828382", Dn = "http://www.roblox.com/asset/?id=4498828812", Ft = "http://www.roblox.com/asset/?id=4498829917", Lf = "http://www.roblox.com/asset/?id=4498830911", Rt = "http://www.roblox.com/asset/?id=4498830417", Up = "http://www.roblox.com/asset/?id=4498831746" }, ["Black Cloudy Rain"] = { Bk = "http://www.roblox.com/asset/?id=149679669", Dn = "http://www.roblox.com/asset/?id=149681979", Ft = "http://www.roblox.com/asset/?id=149679690", Lf = "http://www.roblox.com/asset/?id=149679709", Rt = "http://www.roblox.com/asset/?id=149679722", Up = "http://www.roblox.com/asset/?id=149680199" } } local function applyCustomSkybox(name) if customSkyInstance then customSkyInstance:Destroy() end customSkyInstance = Instance.new("Sky") local sky = SkyboxAssets[name] customSkyInstance.SkyboxBk = sky.Bk customSkyInstance.SkyboxDn = sky.Dn customSkyInstance.SkyboxFt = sky.Ft customSkyInstance.SkyboxLf = sky.Lf customSkyInstance.SkyboxRt = sky.Rt customSkyInstance.SkyboxUp = sky.Up customSkyInstance.Name = "CustomSky" customSkyInstance.Parent = lighting end local function restoreDefaultSkybox() if customSkyInstance then customSkyInstance:Destroy() customSkyInstance = nil end if DefaultSky then DefaultSky.SkyboxBk = LightingSettings.DefaultSkyboxBk DefaultSky.SkyboxDn = LightingSettings.DefaultSkyboxDn DefaultSky.SkyboxFt = LightingSettings.DefaultSkyboxFt DefaultSky.SkyboxLf = LightingSettings.DefaultSkyboxLf DefaultSky.SkyboxRt = LightingSettings.DefaultSkyboxRt DefaultSky.SkyboxUp = LightingSettings.DefaultSkyboxUp DefaultSky.Parent = lighting end end WorldGroup:AddToggle('CustomSkyboxEnabled', { Text = 'Custom Skybox', Default = false, Callback = function(Value) if Value then applyCustomSkybox(SelectedSkybox) else restoreDefaultSkybox() end end }) WorldGroup:AddDropdown('SkyboxSelected', { Values = {"Black Storm", "HD", "Snow", "Blue Space", "Realistic", "Stormy", "Pink", "Sunset", "Arctic", "Space", "Roblox Default", "Red Night", "Deep Space 1", "Pink Skies", "Purple Sunset", "Blue Night", "Blossom Daylight", "Blue Nebula", "Blue Planet", "Deep Space 2", "Summer", "Galaxy", "Stylized", "Minecraft", "Sunset 2", "Cloudy Rain", "Black Cloudy Rain"}, Default = "Snow", Multi = false, Text = 'Skybox', Callback = function(Value) SelectedSkybox = Value if Toggles.CustomSkyboxEnabled.Value then applyCustomSkybox(SelectedSkybox) end end }) end)() task.wait(1) coroutine.wrap(function() local MenuGroup = Tabs['UI Settings']:AddLeftGroupbox('Menu') MenuGroup:AddToggle("KeybindMenuOpen", { Default = Library.KeybindFrame.Visible, Text = "Open Keybind Menu", Callback = function(value) Library.KeybindFrame.Visible = value end}) MenuGroup:AddDropdown("NotificationSide", { Values = { "Left", "Right" }, Default = "Right", Text = "Notification Side", Callback = function(Value) Library:SetNotifySide(Value) end, }) MenuGroup:AddDropdown("DPIDropdown", { Values = { "50%", "75%", "100%", "125%", "150%", "175%", "200%" }, Default = "100%", Text = "DPI Scale", Callback = function(Value) Value = Value:gsub("%%", "") local DPI = tonumber(Value) Library:SetDPIScale(DPI) end, }) MenuGroup:AddDivider() MenuGroup:AddLabel("Menu bind"):AddKeyPicker("MenuKeybind", { Default = "RightShift", NoUI = true, Text = "Menu keybind" }) MenuGroup:AddButton("Unload", function() Library:Unload() end) getgenv().vu = game:GetService("VirtualUser") getgenv().isAntiAfkEnabled = false getgenv().antiAfkConnection = nil MenuGroup:AddToggle('AntiAFKToggle', { Text = 'Anti-AFK', Default = false, Tooltip = 'Prevent AFK timeout', Callback = function(state) getgenv().isAntiAfkEnabled = state if getgenv().isAntiAfkEnabled then getgenv().antiAfkConnection = game:GetService("Players").LocalPlayer.Idled:Connect(function() getgenv().vu:CaptureController() getgenv().vu:ClickButton2(Vector2.new()) end) else if getgenv().antiAfkConnection then getgenv().antiAfkConnection:Disconnect() getgenv().antiAfkConnection = nil end end end, Disabled = false, Visible = true }) MenuGroup:AddButton({ Text = 'Copy Job ID', Func = function() setclipboard(game.JobId) end, Tooltip = 'Copy the current server Job ID to clipboard', DoubleClick = false, Disabled = false, Visible = true }) MenuGroup:AddButton({ Text = 'Copy JS Join Script', Func = function() local jsScript = 'Roblox.GameLauncher.joinGameInstance(' .. game.PlaceId .. ', "' .. game.JobId .. '")' setclipboard(jsScript) end, Tooltip = 'Copy the join script for the current server', DoubleClick = false, Disabled = false, Visible = true }) MenuGroup:AddInput('JobIdInput', { Default = '', Numeric = false, Finished = true, Text = '..JobId..', Tooltip = 'Enter a Job ID to join a specific server', Placeholder = 'Enter Job ID here', ClearTextOnFocus = true, Callback = function(Value) game:GetService('TeleportService'):TeleportToPlaceInstance(game.PlaceId, Value, game:GetService('Players').LocalPlayer) end, Disabled = false, Visible = true }) MenuGroup:AddButton({ Text = 'Rejoin Server', Func = function() game:GetService("TeleportService"):TeleportToPlaceInstance(game.PlaceId, game.JobId, game.Players.LocalPlayer) end, Tooltip = 'Rejoin the current server', DoubleClick = false, Disabled = false, Visible = true }) Library:SetWatermarkVisibility(true) getgenv().matcha = {} getgenv().matcha.WatermarkEnabled = true getgenv().matcha.WatermarkShowFPS = true getgenv().matcha.WatermarkShowGameName = false getgenv().matcha.WatermarkShowUptime = false getgenv().matcha.WatermarkShowExecutor = false getgenv().matcha.WatermarkShowPing = true local Stats = game:GetService("Stats") -- Modified Watermark Logic local FrameTimer = tick() local FrameCounter = 0 local FPS = 60 local StartTime = tick() local function getExecutor() if syn then return "Synapse X" end if secure_call then return "ScriptWare" end if identifyexecutor then return identifyexecutor() end return "Unknown" end local MarketplaceService = game:GetService("MarketplaceService") local function getGameName(placeId) local success, result = pcall(function() return MarketplaceService:GetProductInfo(placeId).Name end) return success and result or "Unknown Game" end local function updateWatermark() FrameCounter += 1 if (tick() - FrameTimer) >= 1 then FPS = FrameCounter FrameTimer = tick() FrameCounter = 0 end local Ping = math.floor(Stats.Network.ServerStatsItem["Data Ping"]:GetValue()) local Executor = getExecutor() local Uptime = math.floor(tick() - StartTime) local UptimeFormatted = string.format("%02d:%02d", math.floor(Uptime / 60), Uptime % 60) local GameName = getGameName(game.PlaceId) local watermarkParts = {"matcha.tea"} if getgenv().matcha.WatermarkShowExecutor then table.insert(watermarkParts, Executor) end if getgenv().matcha.WatermarkShowGameName then table.insert(watermarkParts, string.format("%s (%d)", GameName, game.PlaceId)) end if getgenv().matcha.WatermarkShowUptime then table.insert(watermarkParts, string.format("Uptime: %s", UptimeFormatted)) end if getgenv().matcha.WatermarkShowFPS then table.insert(watermarkParts, string.format("FPS %d", math.floor(FPS))) end if getgenv().matcha.WatermarkShowPing then table.insert(watermarkParts, string.format("%d ms", Ping)) end Library:SetWatermark(table.concat(watermarkParts, " | ")) Library:SetWatermarkVisibility(getgenv().matcha.WatermarkEnabled) end local WatermarkConnection = RunService.RenderStepped:Connect(updateWatermark) -- Watermark Customization UI local WatermarkGroup = Tabs['UI Settings']:AddRightGroupbox('Watermark') WatermarkGroup:AddToggle('WatermarkEnabled', { Text = 'Enabled', Default = true, Callback = function(Value) getgenv().matcha.WatermarkEnabled = Value end }) WatermarkGroup:AddToggle('WatermarkShowFPS', { Text = 'Show FPS', Default = true, Callback = function(Value) getgenv().matcha.WatermarkShowFPS = Value end }) WatermarkGroup:AddToggle('WatermarkShowGameName', { Text = 'Show Game Name', Default = false, Callback = function(Value) getgenv().matcha.WatermarkShowGameName = Value end }) WatermarkGroup:AddToggle('WatermarkShowUptime', { Text = 'Show Uptime', Default = false, Callback = function(Value) getgenv().matcha.WatermarkShowUptime = Value end }) WatermarkGroup:AddToggle('WatermarkShowExecutor', { Text = 'Show Executor', Default = false, Callback = function(Value) getgenv().matcha.WatermarkShowExecutor = Value end }) WatermarkGroup:AddToggle('WatermarkShowPing', { Text = 'Show Ping', Default = true, Callback = function(Value) getgenv().matcha.WatermarkShowPing = Value end }) Library.ToggleKeybind = Options.MenuKeybind ThemeManager:SetLibrary(Library) SaveManager:SetLibrary(Library) SaveManager:IgnoreThemeSettings() SaveManager:SetIgnoreIndexes({ 'MenuKeybind' }) ThemeManager:SetFolder('matchacc') SaveManager:SetFolder('matchacc/dahood') SaveManager:BuildConfigSection(Tabs['UI Settings']) ThemeManager:ApplyToTab(Tabs['UI Settings']) SaveManager:LoadAutoloadConfig() Library:OnUnload(function() --WatermarkConnection:Disconnect() if FakePos.Enabled then DisableFakePosition() end -- Disable position desync if PosDesync.Enabled then DisablePosDesync() end -- Restore workspace settings workspace.FallenPartsDestroyHeight = 0/0 print('Unloaded!') Library.Unloaded = true for _, conn in ipairs(Storage.Connections) do conn:Disconnect() end end) end)()