local Players = game:GetService('Players') local Player = Players.LocalPlayer local ContextActionService = game:GetService('ContextActionService') local Phantom = false local function BlockMovement(actionName, inputState, inputObject) return Enum.ContextActionResult.Sink end local UserInputService = cloneref(game:GetService('UserInputService')) local ContentProvider = cloneref(game:GetService('ContentProvider')) local TweenService = cloneref(game:GetService('TweenService')) local HttpService = cloneref(game:GetService('HttpService')) local TextService = cloneref(game:GetService('TextService')) local RunService = cloneref(game:GetService('RunService')) local Lighting = cloneref(game:GetService('Lighting')) local Players = cloneref(game:GetService('Players')) local CoreGui = cloneref(game:GetService('CoreGui')) local Debris = cloneref(game:GetService('Debris')) local ReplicatedStorage = game:GetService('ReplicatedStorage') local Tornado_Time = tick() local UserInputService = game:GetService('UserInputService') local Last_Input = UserInputService:GetLastInputType() local Debris = game:GetService('Debris') local RunService = game:GetService('RunService') local Vector2_Mouse_Location = nil local Grab_Parry = nil local Remotes = {} local Parry_Key = nil local Speed_Divisor_Multiplier = 1.1 local LobbyAP_Speed_Divisor_Multiplier = 1.1 local firstParryFired = false local ParryThreshold = 2.5 local firstParryType = 'F_Key' local Previous_Positions = {} local VirtualInputManager = game:GetService("VirtualInputManager") local VirtualInputService = game:GetService("VirtualInputManager") local GuiService = game:GetService('GuiService') local function performFirstPress(parryType) if parryType == 'F_Key' then VirtualInputService:SendKeyEvent(true, Enum.KeyCode.F, false, nil) elseif parryType == 'Left_Click' then VirtualInputManager:SendMouseButtonEvent(0, 0, 0, true, game, 0) elseif parryType == 'Navigation' then local button = Players.LocalPlayer.PlayerGui.Hotbar.Block updateNavigation(button) VirtualInputManager:SendKeyEvent(true, Enum.KeyCode.Return, false, game) VirtualInputManager:SendKeyEvent(false, Enum.KeyCode.Return, false, game) task.wait(0.01) updateNavigation(nil) end end if not LPH_OBFUSCATED then function LPH_JIT(Function) return Function end function LPH_JIT_MAX(Function) return Function end function LPH_NO_VIRTUALIZE(Function) return Function end end local PropertyChangeOrder = {} local HashOne local HashTwo local HashThree LPH_NO_VIRTUALIZE(function() for Index, Value in next, getgc() do if rawequal(typeof(Value), "function") and islclosure(Value) and getrenv().debug.info(Value, "s"):find("SwordsController") then if rawequal(getrenv().debug.info(Value, "l"), 276) then HashOne = getconstant(Value, 62) HashTwo = getconstant(Value, 64) HashThree = getconstant(Value, 65) end end end end)() LPH_NO_VIRTUALIZE(function() for Index, Object in next, game:GetDescendants() do if Object:IsA("RemoteEvent") and string.find(Object.Name, "\n") then Object.Changed:Once(function() table.insert(PropertyChangeOrder, Object) end) end end end)() repeat task.wait() until #PropertyChangeOrder == 3 local ShouldPlayerJump = PropertyChangeOrder[1] local MainRemote = PropertyChangeOrder[2] local GetOpponentPosition = PropertyChangeOrder[3] local Parry_Key for Index, Value in pairs(getconnections(game:GetService("Players").LocalPlayer.PlayerGui.Hotbar.Block.Activated)) do if Value and Value.Function and not iscclosure(Value.Function) then for Index2,Value2 in pairs(getupvalues(Value.Function)) do if type(Value2) == "function" then Parry_Key = getupvalue(getupvalue(Value2, 2), 17); end; end; end; end; local function Parry(...) ShouldPlayerJump:FireServer(HashOne, Parry_Key, ...) MainRemote:FireServer(HashTwo, Parry_Key, ...) GetOpponentPosition:FireServer(HashThree, Parry_Key, ...) end local Parries = 0 function create_animation(object, info, value) local animation = game:GetService('TweenService'):Create(object, info, value) animation:Play() task.wait(info.Time) Debris:AddItem(animation, 0) animation:Destroy() animation = nil end local Animation = {} Animation.storage = {} Animation.current = nil Animation.track = nil for _, v in pairs(game:GetService("ReplicatedStorage").Misc.Emotes:GetChildren()) do if v:IsA("Animation") and v:GetAttribute("EmoteName") then local Emote_Name = v:GetAttribute("EmoteName") Animation.storage[Emote_Name] = v end end local Emotes_Data = {} for Object in pairs(Animation.storage) do table.insert(Emotes_Data, Object) end table.sort(Emotes_Data) local Auto_Parry = {} function Auto_Parry.Parry_Animation() local Parry_Animation = game:GetService("ReplicatedStorage").Shared.SwordAPI.Collection.Default:FindFirstChild('GrabParry') local Current_Sword = Player.Character:GetAttribute('CurrentlyEquippedSword') if not Current_Sword then return end if not Parry_Animation then return end local Sword_Data = game:GetService("ReplicatedStorage").Shared.ReplicatedInstances.Swords.GetSword:Invoke(Current_Sword) if not Sword_Data or not Sword_Data['AnimationType'] then return end for _, object in pairs(game:GetService('ReplicatedStorage').Shared.SwordAPI.Collection:GetChildren()) do if object.Name == Sword_Data['AnimationType'] then if object:FindFirstChild('GrabParry') or object:FindFirstChild('Grab') then local sword_animation_type = 'GrabParry' if object:FindFirstChild('Grab') then sword_animation_type = 'Grab' end Parry_Animation = object[sword_animation_type] end end end Grab_Parry = Player.Character.Humanoid.Animator:LoadAnimation(Parry_Animation) Grab_Parry:Play() end function Auto_Parry.Play_Animation(v) local Animations = Animation.storage[v] if not Animations then return false end local Animator = Player.Character.Humanoid.Animator if Animation.track then Animation.track:Stop() end Animation.track = Animator:LoadAnimation(Animations) Animation.track:Play() Animation.current = v end function Auto_Parry.Get_Balls() local Balls = {} for _, Instance in pairs(workspace.Balls:GetChildren()) do if Instance:GetAttribute('realBall') then Instance.CanCollide = false table.insert(Balls, Instance) end end return Balls end function Auto_Parry.Get_Ball() for _, Instance in pairs(workspace.Balls:GetChildren()) do if Instance:GetAttribute('realBall') then Instance.CanCollide = false return Instance end end end function Auto_Parry.Lobby_Balls() for _, Instance in pairs(workspace.TrainingBalls:GetChildren()) do if Instance:GetAttribute("realBall") then return Instance end end end local Closest_Entity = nil function Auto_Parry.Closest_Player() local Max_Distance = math.huge local Found_Entity = nil for _, Entity in pairs(workspace.Alive:GetChildren()) do if tostring(Entity) ~= tostring(Player) then if Entity.PrimaryPart then -- Check if PrimaryPart exists local Distance = Player:DistanceFromCharacter(Entity.PrimaryPart.Position) if Distance < Max_Distance then Max_Distance = Distance Found_Entity = Entity end end end end Closest_Entity = Found_Entity return Found_Entity end function Auto_Parry:Get_Entity_Properties() Auto_Parry.Closest_Player() if not Closest_Entity then return false end local Entity_Velocity = Closest_Entity.PrimaryPart.Velocity local Entity_Direction = (Player.Character.PrimaryPart.Position - Closest_Entity.PrimaryPart.Position).Unit local Entity_Distance = (Player.Character.PrimaryPart.Position - Closest_Entity.PrimaryPart.Position).Magnitude return { Velocity = Entity_Velocity, Direction = Entity_Direction, Distance = Entity_Distance } end local isMobile = UserInputService.TouchEnabled and not UserInputService.MouseEnabled function Auto_Parry.Parry_Data(Parry_Type) Auto_Parry.Closest_Player() local Events = {} local Camera = workspace.CurrentCamera local Vector2_Mouse_Location if Last_Input == Enum.UserInputType.MouseButton1 or (Enum.UserInputType.MouseButton2 or Last_Input == Enum.UserInputType.Keyboard) then local Mouse_Location = UserInputService:GetMouseLocation() Vector2_Mouse_Location = {Mouse_Location.X, Mouse_Location.Y} else Vector2_Mouse_Location = {Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2} end if isMobile then Vector2_Mouse_Location = {Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2} end local Players_Screen_Positions = {} for _, v in pairs(workspace.Alive:GetChildren()) do if v ~= Player.Character then local worldPos = v.PrimaryPart.Position local screenPos, isOnScreen = Camera:WorldToScreenPoint(worldPos) if isOnScreen then Players_Screen_Positions[v] = Vector2.new(screenPos.X, screenPos.Y) end Events[tostring(v)] = screenPos end end if Parry_Type == 'Camera' then return {0, Camera.CFrame, Events, Vector2_Mouse_Location} end if Parry_Type == 'Backwards' then local Backwards_Direction = Camera.CFrame.LookVector * -10000 Backwards_Direction = Vector3.new(Backwards_Direction.X, 0, Backwards_Direction.Z) return {0, CFrame.new(Camera.CFrame.Position, Camera.CFrame.Position + Backwards_Direction), Events, Vector2_Mouse_Location} end if Parry_Type == 'Straight' then local Aimed_Player = nil local Closest_Distance = math.huge local Mouse_Vector = Vector2.new(Vector2_Mouse_Location[1], Vector2_Mouse_Location[2]) for _, v in pairs(workspace.Alive:GetChildren()) do if v ~= Player.Character then local worldPos = v.PrimaryPart.Position local screenPos, isOnScreen = Camera:WorldToScreenPoint(worldPos) if isOnScreen then local playerScreenPos = Vector2.new(screenPos.X, screenPos.Y) local distance = (Mouse_Vector - playerScreenPos).Magnitude if distance < Closest_Distance then Closest_Distance = distance Aimed_Player = v end end end end if Aimed_Player then return {0, CFrame.new(Player.Character.PrimaryPart.Position, Aimed_Player.PrimaryPart.Position), Events, Vector2_Mouse_Location} else return {0, CFrame.new(Player.Character.PrimaryPart.Position, Closest_Entity.PrimaryPart.Position), Events, Vector2_Mouse_Location} end end if Parry_Type == 'Random' then return {0, CFrame.new(Camera.CFrame.Position, Vector3.new(math.random(-4000, 4000), math.random(-4000, 4000), math.random(-4000, 4000))), Events, Vector2_Mouse_Location} end if Parry_Type == 'High' then local High_Direction = Camera.CFrame.UpVector * 10000 return {0, CFrame.new(Camera.CFrame.Position, Camera.CFrame.Position + High_Direction), Events, Vector2_Mouse_Location} end if Parry_Type == 'Left' then local Left_Direction = Camera.CFrame.RightVector * 10000 return {0, CFrame.new(Camera.CFrame.Position, Camera.CFrame.Position - Left_Direction), Events, Vector2_Mouse_Location} end if Parry_Type == 'Right' then local Right_Direction = Camera.CFrame.RightVector * 10000 return {0, CFrame.new(Camera.CFrame.Position, Camera.CFrame.Position + Right_Direction), Events, Vector2_Mouse_Location} end if Parry_Type == 'RandomTarget' then local candidates = {} for _, v in pairs(workspace.Alive:GetChildren()) do if v ~= Player.Character and v.PrimaryPart then local screenPos, isOnScreen = Camera:WorldToScreenPoint(v.PrimaryPart.Position) if isOnScreen then table.insert(candidates, { character = v, screenXY = { screenPos.X, screenPos.Y } }) end end end if #candidates > 0 then local pick = candidates[ math.random(1, #candidates) ] local lookCFrame = CFrame.new(Player.Character.PrimaryPart.Position, pick.character.PrimaryPart.Position) return {0, lookCFrame, Events, pick.screenXY} else return {0, Camera.CFrame, Events, { Camera.ViewportSize.X/2, Camera.ViewportSize.Y/2 }} end end return Parry_Type end function Auto_Parry.Parry(Parry_Type) local Parry_Data = Auto_Parry.Parry_Data(Parry_Type) if not firstParryFired then performFirstPress(firstParryType) firstParryFired = true else Parry(Parry_Data[1], Parry_Data[2], Parry_Data[3], Parry_Data[4]) end if Parries > 7 then return false end Parries += 1 task.delay(0.5, function() if Parries > 0 then Parries -= 1 end end) end local Lerp_Radians = 0 local Last_Warping = tick() function Auto_Parry.Linear_Interpolation(a, b, time_volume) return a + (b - a) * time_volume end local Previous_Velocity = {} local Curving = tick() local Runtime = workspace.Runtime function Auto_Parry.Is_Curved() local Ball = Auto_Parry.Get_Ball() if not Ball then return false end local Zoomies = Ball:FindFirstChild('zoomies') if not Zoomies then return false end local Velocity = Zoomies.VectorVelocity local Ball_Direction = Velocity.Unit local Direction = (Player.Character.PrimaryPart.Position - Ball.Position).Unit local Dot = Direction:Dot(Ball_Direction) local Speed = Velocity.Magnitude local Speed_Threshold = math.min(Speed / 100, 40) local Direction_Difference = (Ball_Direction - Velocity).Unit local Direction_Similarity = Direction:Dot(Direction_Difference) local Dot_Difference = Dot - Direction_Similarity local Distance = (Player.Character.PrimaryPart.Position - Ball.Position).Magnitude local Pings = game:GetService('Stats').Network.ServerStatsItem['Data Ping']:GetValue() local Dot_Threshold = 0.5 - (Pings / 1000) local Reach_Time = Distance / Speed - (Pings / 1000) local Ball_Distance_Threshold = 15 - math.min(Distance / 1000, 15) + Speed_Threshold local Clamped_Dot = math.clamp(Dot, -1, 1) local Radians = math.rad(math.asin(Clamped_Dot)) Lerp_Radians = Auto_Parry.Linear_Interpolation(Lerp_Radians, Radians, 0.8) if Speed > 100 and Reach_Time > Pings / 10 then Ball_Distance_Threshold = math.max(Ball_Distance_Threshold - 15, 15) end if Distance < Ball_Distance_Threshold then return false end if Dot_Difference < Dot_Threshold then return true end if Lerp_Radians < 0.018 then Last_Warping = tick() end if (tick() - Last_Warping) < (Reach_Time / 1.5) then return true end if (tick() - Curving) < (Reach_Time / 1.5) then return true end return Dot < Dot_Threshold end function Auto_Parry:Get_Ball_Properties() local Ball = Auto_Parry.Get_Ball() local Ball_Velocity = Vector3.zero local Ball_Origin = Ball local Ball_Direction = (Player.Character.PrimaryPart.Position - Ball_Origin.Position).Unit local Ball_Distance = (Player.Character.PrimaryPart.Position - Ball.Position).Magnitude local Ball_Dot = Ball_Direction:Dot(Ball_Velocity.Unit) return { Velocity = Ball_Velocity, Direction = Ball_Direction, Distance = Ball_Distance, Dot = Ball_Dot } end function Auto_Parry.Spam_Service(self) local Ball = Auto_Parry.Get_Ball() local Entity = Auto_Parry.Closest_Player() if not Ball then return false end if not Entity or not Entity.PrimaryPart then return false end local Spam_Accuracy = 0 local Velocity = Ball.AssemblyLinearVelocity local Speed = Velocity.Magnitude local Direction = (Player.Character.PrimaryPart.Position - Ball.Position).Unit local Dot = Direction:Dot(Velocity.Unit) local Target_Position = Entity.PrimaryPart.Position local Target_Distance = Player:DistanceFromCharacter(Target_Position) local Maximum_Spam_Distance = self.Ping + math.min(Speed / 6, 95) if self.Entity_Properties.Distance > Maximum_Spam_Distance then return Spam_Accuracy end if self.Ball_Properties.Distance > Maximum_Spam_Distance then return Spam_Accuracy end if Target_Distance > Maximum_Spam_Distance then return Spam_Accuracy end local Maximum_Speed = 5 - math.min(Speed / 5, 5) local Maximum_Dot = math.clamp(Dot, -1, 0) * Maximum_Speed Spam_Accuracy = Maximum_Spam_Distance - Maximum_Dot return Spam_Accuracy end local Connections_Manager = {} local Selected_Parry_Type = "Camera" local Infinity = false ReplicatedStorage.Remotes.InfinityBall.OnClientEvent:Connect(function(a, b) if b then Infinity = true else Infinity = false end end) local Parried = false local Last_Parry = 0 local AutoParry = true local Balls = workspace:WaitForChild('Balls') local CurrentBall = nil local InputTask = nil local Cooldown = 0.02 local RunTime = workspace:FindFirstChild("Runtime") local function GetBall() for _, Ball in ipairs(Balls:GetChildren()) do if Ball:FindFirstChild("ff") then return Ball end end return nil end local function SpamInput(Label) if InputTask then return end InputTask = task.spawn(function() while AutoParry do Auto_Parry.Parry(Selected_Parry_Type) task.wait(Cooldown) end InputTask = nil end) end Balls.ChildAdded:Connect(function(Value) Value.ChildAdded:Connect(function(Child) if getgenv().SlashOfFuryDetection and Child.Name == 'ComboCounter' then local Sof_Label = Child:FindFirstChildOfClass('TextLabel') if Sof_Label then repeat local Slashes_Counter = tonumber(Sof_Label.Text) if Slashes_Counter and Slashes_Counter < 32 then Auto_Parry.Parry(Selected_Parry_Type) end task.wait() until not Sof_Label.Parent or not Sof_Label end end end) end) local player10239123 = Players.LocalPlayer RunTime.ChildAdded:Connect(function(Object) local Name = Object.Name if getgenv().PhantomV2Detection then if Name == "maxTransmission" or Name == "transmissionpart" then local Weld = Object:FindFirstChildWhichIsA("WeldConstraint") if Weld then local Character = player10239123.Character or player10239123.CharacterAdded:Wait() if Character and Weld.Part1 == Character.HumanoidRootPart then CurrentBall = GetBall() Weld:Destroy() if CurrentBall then local FocusConnection FocusConnection = RunService.RenderStepped:Connect(function() local Highlighted = CurrentBall:GetAttribute("highlighted") if Highlighted == true then game.Players.LocalPlayer.Character.Humanoid.WalkSpeed = 36 local HumanoidRootPart = Character:FindFirstChild("HumanoidRootPart") if HumanoidRootPart then local PlayerPosition = HumanoidRootPart.Position local BallPosition = CurrentBall.Position local PlayerToBall = (BallPosition - PlayerPosition).Unit game.Players.LocalPlayer.Character.Humanoid:Move(PlayerToBall, false) end elseif Highlighted == false then FocusConnection:Disconnect() game.Players.LocalPlayer.Character.Humanoid.WalkSpeed = 10 game.Players.LocalPlayer.Character.Humanoid:Move(Vector3.new(0, 0, 0), false) task.delay(3, function() game.Players.LocalPlayer.Character.Humanoid.WalkSpeed = 36 end) CurrentBall = nil end end) task.delay(3, function() if FocusConnection and FocusConnection.Connected then FocusConnection:Disconnect() game.Players.LocalPlayer.Character.Humanoid:Move(Vector3.new(0, 0, 0), false) game.Players.LocalPlayer.Character.Humanoid.WalkSpeed = 36 CurrentBall = nil end end) end end end end end end) local player11 = game.Players.LocalPlayer local PlayerGui = player11:WaitForChild("PlayerGui") local playerGui = player11:WaitForChild("PlayerGui") local Hotbar = PlayerGui:WaitForChild("Hotbar") local ParryCD = playerGui.Hotbar.Block.UIGradient local AbilityCD = playerGui.Hotbar.Ability.UIGradient local function isCooldownInEffect1(uigradient) return uigradient.Offset.Y < 0.4 end local function isCooldownInEffect2(uigradient) return uigradient.Offset.Y == 0.5 end local function cooldownProtection() if isCooldownInEffect1(ParryCD) then game:GetService("ReplicatedStorage").Remotes.AbilityButtonPress:Fire() return true end return false end local function AutoAbility() if isCooldownInEffect2(AbilityCD) then if Player.Character.Abilities["Raging Deflection"].Enabled or Player.Character.Abilities["Rapture"].Enabled or Player.Character.Abilities["Calming Deflection"].Enabled or Player.Character.Abilities["Aerodynamic Slash"].Enabled or Player.Character.Abilities["Fracture"].Enabled or Player.Character.Abilities["Death Slash"].Enabled then Parried = true game:GetService("ReplicatedStorage").Remotes.AbilityButtonPress:Fire() task.wait(2.432) game:GetService("ReplicatedStorage"):WaitForChild("Remotes"):WaitForChild("DeathSlashShootActivation"):FireServer(true) return true end end return false end local Library = loadstring(game:HttpGet("https://raw.githubusercontent.com/KingScript663/gg/refs/heads/main/yyy"))() local UI = Library.new() UI:load() local BlatantTab = UI:create_tab("Blatant", "rbxassetid://76499042599127") local PlayerTab = UI:create_tab("Player", "rbxassetid://126017907477623") local WorldTab = UI:create_tab("World", "rbxassetid://7733964126") local MicTab = UI:create_tab("Misc", "rbxassetid://10723424838") local AutoParryModule = BlatantTab:create_module({ title = "Auto Parry", description = "Automatically Parries Ball", section = "left", flag = "auto_parry", callback = function(state) if state then Connections_Manager['Auto Parry'] = RunService.PreSimulation:Connect(function() local One_Ball = Auto_Parry.Get_Ball() local Balls = Auto_Parry.Get_Balls() for _, Ball in pairs(Balls) do if not Ball then return end local Zoomies = Ball:FindFirstChild('zoomies') if not Zoomies then return end Ball:GetAttributeChangedSignal('target'):Once(function() Parried = false end) if Parried then return end local Ball_Target = Ball:GetAttribute('target') local One_Target = One_Ball:GetAttribute('target') local Velocity = Zoomies.VectorVelocity local Distance = (Player.Character.PrimaryPart.Position - Ball.Position).Magnitude local Ping = game:GetService('Stats').Network.ServerStatsItem['Data Ping']:GetValue() / 10 local Ping_Threshold = math.clamp(Ping / 10, 5, 17) local Speed = Velocity.Magnitude local cappedSpeedDiff = math.min(math.max(Speed - 9.5, 0), 650) local speed_divisor_base = 2.4 + cappedSpeedDiff * 0.002 local effectiveMultiplier = Speed_Divisor_Multiplier if getgenv().RandomParryAccuracyEnabled then if Speed < 200 then effectiveMultiplier = 0.7 + (math.random(40, 100) - 1) * (0.35 / 99) else effectiveMultiplier = 0.7 + (math.random(1, 100) - 1) * (0.35 / 99) end end local speed_divisor = speed_divisor_base * effectiveMultiplier local Parry_Accuracy = Ping_Threshold + math.max(Speed / speed_divisor, 9.5) local Curved = Auto_Parry.Is_Curved() if Ball:FindFirstChild('AeroDynamicSlashVFX') then Debris:AddItem(Ball.AeroDynamicSlashVFX, 0) Tornado_Time = tick() end if Runtime:FindFirstChild('Tornado') then if (tick() - Tornado_Time) < (Runtime.Tornado:GetAttribute("TornadoTime") or 1) + 0.314159 then return end end if One_Target == tostring(Player) and Curved then return end if Ball:FindFirstChild("ComboCounter") then return end local Singularity_Cape = Player.Character.PrimaryPart:FindFirstChild('SingularityCape') if Singularity_Cape then return end if getgenv().InfinityDetection and Infinity then return end if getgenv().DeathSlashDetection and deathshit then return end if getgenv().TimeHoleDetection and timehole then return end if Ball_Target == tostring(Player) and Distance <= Parry_Accuracy then if getgenv().AutoAbility and AutoAbility() then return end end if Ball_Target == tostring(Player) and Distance <= Parry_Accuracy then if getgenv().CooldownProtection and cooldownProtection() then return end local Parry_Time = os.clock() local Time_View = Parry_Time - (Last_Parry) if Time_View > 0.5 then Auto_Parry.Parry_Animation() end if getgenv().AutoParryKeypress then VirtualInputService:SendKeyEvent(true, Enum.KeyCode.F, false, nil) else Auto_Parry.Parry(Selected_Parry_Type) end Last_Parry = Parry_Time Parried = true end local Last_Parrys = tick() repeat RunService.PreSimulation:Wait() until (tick() - Last_Parrys) >= 1 or not Parried Parried = false end end) else if Connections_Manager['Auto Parry'] then Connections_Manager['Auto Parry']:Disconnect() Connections_Manager['Auto Parry'] = nil end end end }) local parryTypeMap = { ["Camera"] = "Camera", ["Random"] = "Random", ["Backwards"] = "Backwards", ["Straight"] = "Straight", ["High"] = "High", ["Left"] = "Left", ["Right"] = "Right", ["Random Target"] = "RandomTarget" } AutoParryModule:create_dropdown({ title = "Curve Type", flag = "curve_type", options = {"Camera", "Random", "Backwards", "Straight", "High", "Left", "Right", "Random Target"}, maximum_options = 8, multi_dropdown = false, callback = function(value) Selected_Parry_Type = parryTypeMap[value] or value end }) AutoParryModule:create_slider({ title = "Parry Accuracy", flag = "parry_accuracy", minimum_value = -5, maximum_value = 100, value = 100, round_number = true, callback = function(value) Speed_Divisor_Multiplier = 0.7 + (value - 1) * (0.35 / 99) end }) AutoParryModule:create_divider({ showtopic = true, title = "", disableline = false }) AutoParryModule:create_checkbox({ title = "Randomized Parry Accuracy", flag = "random_parry_accuracy", callback = function(value) getgenv().RandomParryAccuracyEnabled = value end }) AutoParryModule:create_checkbox({ title = "Phantom Detection", flag = "Phantom", callback = function(value) PhantomV2Detection = value end }) AutoParryModule:create_checkbox({ title = "Infinity Detection", flag = "infinity", callback = function(value) getgenv().InfinityDetection = value end }) AutoParryModule:create_checkbox({ title = "Keypress", flag = "keypress1", callback = function(value) getgenv().AutoParryKeypress = value end }) AutoParryModule:create_checkbox({ title = "Notify", flag = "notify1", callback = function(state) end }) local AutoSpamModule = BlatantTab:create_module({ title = "Auto Spam Parry", description = "Automatically Spam Parries Ball", section = "right", flag = "auto_spam", callback = function(value) if value then Connections_Manager['Auto Spam'] = RunService.PreSimulation:Connect(function() local Ball = Auto_Parry.Get_Ball() if not Ball then return end local Zoomies = Ball:FindFirstChild('zoomies') if not Zoomies then return end Auto_Parry.Closest_Player() local Ping = game:GetService('Stats').Network.ServerStatsItem['Data Ping']:GetValue() local Ping_Threshold = math.clamp(Ping / 10, 18.5, 70) local Ball_Target = Ball:GetAttribute('target') local Ball_Properties = Auto_Parry:Get_Ball_Properties() local Entity_Properties = Auto_Parry:Get_Entity_Properties() local Spam_Accuracy = Auto_Parry.Spam_Service({ Ball_Properties = Ball_Properties, Entity_Properties = Entity_Properties, Ping = Ping_Threshold }) local Target_Position = Closest_Entity.PrimaryPart.Position local Target_Distance = Player:DistanceFromCharacter(Target_Position) local Direction = (Player.Character.PrimaryPart.Position - Ball.Position).Unit local Ball_Direction = Zoomies.VectorVelocity.Unit local Dot = Direction:Dot(Ball_Direction) local Distance = Player:DistanceFromCharacter(Ball.Position) if not Ball_Target then return end if Target_Distance > Spam_Accuracy or Distance > Spam_Accuracy then return end local Pulsed = Player.Character:GetAttribute('Pulsed') if Pulsed then return end if Ball_Target == tostring(Player) and Target_Distance > 25 and Distance > 25 then return end local threshold = ParryThreshold if Distance <= Spam_Accuracy and Parries > threshold then if getgenv().SpamParryKeypress then VirtualInputManager:SendKeyEvent(true, Enum.KeyCode.F, false, game) else Auto_Parry.Parry(Selected_Parry_Type) end end end) else if Connections_Manager['Auto Spam'] then Connections_Manager['Auto Spam']:Disconnect() Connections_Manager['Auto Spam'] = nil end end end }) AutoSpamModule:create_slider({ title = "Spam Threshold", flag = "spam_threshould", minimum_value = 1, maximum_value = 3, value = 2.5, round_number = false, callback = function(value) SpamThreshold = value end }) AutoSpamModule:create_divider({ showtopic = true, title = "", disableline = false }) AutoSpamModule:create_checkbox({ title = "UI", flag = "u_i", callback = function(value) getgenv().spamui = value if value then local gui = Instance.new("ScreenGui") gui.Name = "ManualSpamUI" gui.ResetOnSpawn = false gui.Parent = game.CoreGui local frame = Instance.new("Frame") frame.Name = "MainFrame" frame.Position = UDim2.new(0, 20, 0, 20) frame.Size = UDim2.new(0, 200, 0, 100) frame.BackgroundColor3 = Color3.fromRGB(255, 0, 0) frame.BackgroundTransparency = 0.3 frame.BorderSizePixel = 0 frame.Active = true frame.Draggable = true frame.Parent = gui local uiCorner = Instance.new("UICorner") uiCorner.CornerRadius = UDim.new(0, 12) uiCorner.Parent = frame local uiStroke = Instance.new("UIStroke") uiStroke.Thickness = 2 uiStroke.Color = Color3.fromRGB(255, 0, 0) uiStroke.Parent = frame local button = Instance.new("TextButton") button.Name = "ClashModeButton" button.Text = "Clash Mode" button.Size = UDim2.new(0, 160, 0, 40) button.Position = UDim2.new(0.5, -80, 0.5, -20) button.BackgroundTransparency = 1 button.BorderSizePixel = 0 button.Font = Enum.Font.GothamSemibold button.TextColor3 = Color3.fromRGB(0, 0, 0) button.TextSize = 22 button.Parent = frame local activated = false local function toggle() activated = not activated button.Text = activated and "Stop" or "Clash Mode" if activated then Connections_Manager['Manual Spam UI'] = game:GetService("RunService").Heartbeat:Connect(function() Auto_Parry.Parry(Selected_Parry_Type) end) else if Connections_Manager['Manual Spam UI'] then Connections_Manager['Manual Spam UI']:Disconnect() Connections_Manager['Manual Spam UI'] = nil end end end button.MouseButton1Click:Connect(toggle) else if game.CoreGui:FindFirstChild("ManualSpamUI") then game.CoreGui:FindFirstChild("ManualSpamUI"):Destroy() end if Connections_Manager['Manual Spam UI'] then Connections_Manager['Manual Spam UI']:Disconnect() Connections_Manager['Manual Spam UI'] = nil end end end }) local LobbyModule = BlatantTab:create_module({ title = "Lobby AP", description = "Automatically Parries Ball In Lobby", section = "left", flag = "lobby_ap", callback = function(state) if state then Connections_Manager['Lobby AP'] = RunService.Heartbeat:Connect(function() local Ball = Auto_Parry.Lobby_Balls() if not Ball then return end local Zoomies = Ball:FindFirstChild('zoomies') if not Zoomies then return end Ball:GetAttributeChangedSignal('target'):Once(function() Training_Parried = false end) if Training_Parried then return end local Ball_Target = Ball:GetAttribute('target') local Velocity = Zoomies.VectorVelocity local Distance = Player:DistanceFromCharacter(Ball.Position) local Speed = Velocity.Magnitude local Ping = game:GetService('Stats').Network.ServerStatsItem['Data Ping']:GetValue() / 10 local LobbyAPcappedSpeedDiff = math.min(math.max(Speed - 9.5, 0), 650) local LobbyAPspeed_divisor_base = 2.4 + LobbyAPcappedSpeedDiff * 0.002 local LobbyAPeffectiveMultiplier = LobbyAP_Speed_Divisor_Multiplier if getgenv().LobbyAPRandomParryAccuracyEnabled then LobbyAPeffectiveMultiplier = 0.7 + (math.random(1, 100) - 1) * (0.35 / 99) end local LobbyAPspeed_divisor = LobbyAPspeed_divisor_base * LobbyAPeffectiveMultiplier local LobbyAPParry_Accuracys = Ping + math.max(Speed / LobbyAPspeed_divisor, 9.5) if Ball_Target == tostring(Player) and Distance <= LobbyAPParry_Accuracys then if getgenv().LobbyAPKeypress then VirtualInputManager:SendKeyEvent(true, Enum.KeyCode.F, false, game) else Auto_Parry.Parry(Selected_Parry_Type) end Training_Parried = true end local Last_Parrys = tick() repeat RunService.PreSimulation:Wait() until (tick() - Last_Parrys) >= 1 or not Training_Parried Training_Parried = false end) else if Connections_Manager['Lobby AP'] then Connections_Manager['Lobby AP']:Disconnect() Connections_Manager['Lobby AP'] = nil end end end }) LobbyModule:create_slider({ title = "Lobby AP Accuracy", flag = "lobby_ap_accuracy", minimum_value = 1, maximum_value = 100, value = 100, round_number = true, callback = function(value) Speed_Divisor_Multiplier = 0.7 + (value - 1) * (0.325 / 99) end }) LobbyModule:create_divider({ showtopic = true, title = "", disableline = false }) LobbyModule:create_checkbox({ title = "Randomized Lobby Parry Accuracy", flag = "radom_lobby_parry", callback = function(value) getgenv().LobbyAPRandomParryAccuracyEnabled = value end }) LobbyModule:create_checkbox({ title = "Keypress", flag = "keypress5", callback = function(value) getgenv().LobbyAPKeypress = value end }) LobbyModule:create_checkbox({ title = "Notify", flag = "notify5", callback = function(state) end }) local SpeedModule = PlayerTab:create_module({ title = "Speed", flag = "speed_hack", description = "Increases Player Speed", section = "left", callback = function(value) if value then Connections_Manager['Strafe'] = game:GetService("RunService").PreSimulation:Connect(function() local character = game.Players.LocalPlayer.Character if character and character:FindFirstChild("Humanoid") then character.Humanoid.WalkSpeed = StrafeSpeed end end) else local character = game.Players.LocalPlayer.Character if character and character:FindFirstChild("Humanoid") then character.Humanoid.WalkSpeed = 36 end if Connections_Manager['Strafe'] then Connections_Manager['Strafe']:Disconnect() Connections_Manager['Strafe'] = nil end end end }) SpeedModule:create_slider({ title = "Strafe Speed", flag = "strafe_speed", minimum_value = 36, maximum_value = 200, value = 36, round_number = true, callback = function(value) StrafeSpeed = value end }) local SpinModule = PlayerTab:create_module({ title = "Spinbot", description = "Spins Player", section = "right", flag = "spin_bot", callback = function(value) getgenv().Spinbot = value if value then getgenv().spin = true getgenv().spinSpeed = getgenv().spinSpeed or 1 local Players = game:GetService("Players") local RunService = game:GetService("RunService") local Client = Players.LocalPlayer local function spinCharacter() while getgenv().spin do RunService.Heartbeat:Wait() local char = Client.Character local funcHRP = char and char:FindFirstChild("HumanoidRootPart") if char and funcHRP then funcHRP.CFrame *= CFrame.Angles(0, getgenv().spinSpeed, 0) end end end if not getgenv().spinThread then getgenv().spinThread = coroutine.create(spinCharacter) coroutine.resume(getgenv().spinThread) end else getgenv().spin = false if getgenv().spinThread then getgenv().spinThread = nil end end end }) SpinModule:create_slider({ title = "Spinbot Speed", flag = "spin_bot_Speed", minimum_value = 1, maximum_value = 150, value = 1, round_number = true, callback = function(value) getgenv().spinSpeed = math.rad(value) end }) local FovModule = PlayerTab:create_module({ title = "Field of View", description = "Changes Camera POV", section = "left", flag = "field_of_view", callback = function(value) getgenv().CameraEnabled = value local Camera = game:GetService("Workspace").CurrentCamera if value then getgenv().CameraFOV = getgenv().CameraFOV or 70 Camera.FieldOfView = getgenv().CameraFOV if not getgenv().FOVLoop then getgenv().FOVLoop = game:GetService("RunService").RenderStepped:Connect(function() if getgenv().CameraEnabled then Camera.FieldOfView = getgenv().CameraFOV end end) end else Camera.FieldOfView = 70 if getgenv().FOVLoop then getgenv().FOVLoop:Disconnect() getgenv().FOVLoop = nil end end end }) FovModule:create_slider({ title = "Camera FOV", flag = "camera_fov", minimum_value = 50, maximum_value = 120, value = 70, round_number = true, callback = function(value) getgenv().CameraFOV = value if getgenv().CameraEnabled then game:GetService("Workspace").CurrentCamera.FieldOfView = value end end }) -- Khởi tạo danh sách emote từ Animation.storage local Emotes_Data = {} for emoteName in pairs(Animation.storage) do table.insert(Emotes_Data, emoteName) end table.sort(Emotes_Data) -- Emote mặc định local selected_animation = Emotes_Data[1] -- Hà m phát emote March = March or {} March.Play_Anim = function(emoteName) local anim = Animation.storage[emoteName] if not anim then return false end local humanoid = Player.Character:FindFirstChildOfClass("Humanoid") if not humanoid then return false end local animator = humanoid:FindFirstChildOfClass("Animator") if not animator then return false end if Animation.track then Animation.track:Stop() end local track = animator:LoadAnimation(anim) Animation.track = track track:Play() Animation.current = emoteName return true end -- Biến điều khiển trạng thái toggle local Emotes_Enabled = false local EmoteModule = PlayerTab:create_module({ title = "Emotes", description = "Custom Emotes", section = "right", flag = "emote", callback = function(value) if value then Emotes_Enabled = true else Emotes_Enabled = false if Animation.track then Animation.track:Stop() Animation.track = nil Animation.current = nil end end end }) EmoteModule:create_dropdown({ title = "Selected Emotes", flag = "select_emote", options = Emotes_Data, maximum_options = 10000, multi_dropdown = false, callback = function(value) selected_animation = value if Emotes_Enabled then March.Play_Anim(value) end end }) _G.PlayerCosmeticsCleanup = {} local CosmeticModule = PlayerTab:create_module({ title = "Player Cosmetics", description = "Apply Headless And Korblox", section = "left", flag = "player_cosmetic", callback = function(value) local players = game:GetService("Players") local lp = players.LocalPlayer local function applyKorblox(character) local rightLeg = character:FindFirstChild("RightLeg") or character:FindFirstChild("Right Leg") if not rightLeg then warn("Right leg not found on character") return end for _, child in pairs(rightLeg:GetChildren()) do if child:IsA("SpecialMesh") then child:Destroy() end end local specialMesh = Instance.new("SpecialMesh") specialMesh.MeshId = "rbxassetid://101851696" specialMesh.TextureId = "rbxassetid://115727863" specialMesh.Scale = Vector3.new(1, 1, 1) specialMesh.Parent = rightLeg end local function saveRightLegProperties(char) if char then local rightLeg = char:FindFirstChild("RightLeg") or char:FindFirstChild("Right Leg") if rightLeg then local originalMesh = rightLeg:FindFirstChildOfClass("SpecialMesh") if originalMesh then _G.PlayerCosmeticsCleanup.originalMeshId = originalMesh.MeshId _G.PlayerCosmeticsCleanup.originalTextureId = originalMesh.TextureId _G.PlayerCosmeticsCleanup.originalScale = originalMesh.Scale else _G.PlayerCosmeticsCleanup.hadNoMesh = true end _G.PlayerCosmeticsCleanup.rightLegChildren = {} for _, child in pairs(rightLeg:GetChildren()) do if child:IsA("SpecialMesh") then table.insert(_G.PlayerCosmeticsCleanup.rightLegChildren, { ClassName = child.ClassName, Properties = { MeshId = child.MeshId, TextureId = child.TextureId, Scale = child.Scale } }) end end end end end local function restoreRightLeg(char) if char then local rightLeg = char:FindFirstChild("RightLeg") or char:FindFirstChild("Right Leg") if rightLeg and _G.PlayerCosmeticsCleanup.rightLegChildren then for _, child in pairs(rightLeg:GetChildren()) do if child:IsA("SpecialMesh") then child:Destroy() end end if _G.PlayerCosmeticsCleanup.hadNoMesh then return end for _, childData in ipairs(_G.PlayerCosmeticsCleanup.rightLegChildren) do if childData.ClassName == "SpecialMesh" then local newMesh = Instance.new("SpecialMesh") newMesh.MeshId = childData.Properties.MeshId newMesh.TextureId = childData.Properties.TextureId newMesh.Scale = childData.Properties.Scale newMesh.Parent = rightLeg end end end end end if value then CosmeticsActive = true getgenv().Config = { Headless = true } if lp.Character then local head = lp.Character:FindFirstChild("Head") if head and getgenv().Config.Headless then _G.PlayerCosmeticsCleanup.headTransparency = head.Transparency local decal = head:FindFirstChildOfClass("Decal") if decal then _G.PlayerCosmeticsCleanup.faceDecalId = decal.Texture _G.PlayerCosmeticsCleanup.faceDecalName = decal.Name end end saveRightLegProperties(lp.Character) applyKorblox(lp.Character) end _G.PlayerCosmeticsCleanup.characterAddedConn = lp.CharacterAdded:Connect(function(char) local head = char:FindFirstChild("Head") if head and getgenv().Config.Headless then _G.PlayerCosmeticsCleanup.headTransparency = head.Transparency local decal = head:FindFirstChildOfClass("Decal") if decal then _G.PlayerCosmeticsCleanup.faceDecalId = decal.Texture _G.PlayerCosmeticsCleanup.faceDecalName = decal.Name end end saveRightLegProperties(char) applyKorblox(char) end) if getgenv().Config.Headless then headLoop = task.spawn(function() while CosmeticsActive do local char = lp.Character if char then local head = char:FindFirstChild("Head") if head then head.Transparency = 1 local decal = head:FindFirstChildOfClass("Decal") if decal then decal:Destroy() end end end task.wait(0.1) end end) end else CosmeticsActive = false if _G.PlayerCosmeticsCleanup.characterAddedConn then _G.PlayerCosmeticsCleanup.characterAddedConn:Disconnect() _G.PlayerCosmeticsCleanup.characterAddedConn = nil end if headLoop then task.cancel(headLoop) headLoop = nil end local char = lp.Character if char then local head = char:FindFirstChild("Head") if head and _G.PlayerCosmeticsCleanup.headTransparency ~= nil then head.Transparency = _G.PlayerCosmeticsCleanup.headTransparency if _G.PlayerCosmeticsCleanup.faceDecalId then local newDecal = head:FindFirstChildOfClass("Decal") or Instance.new("Decal", head) newDecal.Name = _G.PlayerCosmeticsCleanup.faceDecalName or "face" newDecal.Texture = _G.PlayerCosmeticsCleanup.faceDecalId newDecal.Face = Enum.NormalId.Front end end restoreRightLeg(char) end _G.PlayerCosmeticsCleanup = {} end end }) local player = game.Players.LocalPlayer local flying = false local arrowGui = nil local ctrl = {f = 0, b = 0, l = 0, r = 0} local lastCtrl = {f = 0, b = 0, l = 0, r = 0} local speed = 0 local humanoidConnection function notify(msg) game.StarterGui:SetCore("SendNotification", { Title = "Fly Status", Text = msg, Duration = 3 }) end function createArrowGui() if arrowGui then arrowGui:Destroy() end arrowGui = Instance.new("ScreenGui", player:WaitForChild("PlayerGui")) arrowGui.Name = "FlyControlGui" arrowGui.ResetOnSpawn = false local function createButton(name, pos, txt) local btn = Instance.new("TextButton") btn.Name = name btn.Size = UDim2.new(0, 50, 0, 50) btn.Position = pos btn.Text = txt btn.TextScaled = true btn.BackgroundColor3 = Color3.fromRGB(0, 0, 0) btn.BackgroundTransparency = 0.3 btn.TextColor3 = Color3.new(1, 1, 1) btn.Parent = arrowGui return btn end local centerX = 0.1 local centerY = 0.65 local up = createButton("Up", UDim2.new(centerX, 0, centerY - 0.1, 0), "↑") local down = createButton("Down", UDim2.new(centerX, 0, centerY + 0.1, 0), "↓") local left = createButton("Left", UDim2.new(centerX - 0.1, 0, centerY, 0), "←") local right = createButton("Right", UDim2.new(centerX + 0.1, 0, centerY, 0), "→") up.MouseButton1Down:Connect(function() ctrl.f = 1 end) up.MouseButton1Up:Connect(function() ctrl.f = 0 end) down.MouseButton1Down:Connect(function() ctrl.b = -1 end) down.MouseButton1Up:Connect(function() ctrl.b = 0 end) left.MouseButton1Down:Connect(function() ctrl.l = -1 end) left.MouseButton1Up:Connect(function() ctrl.l = 0 end) right.MouseButton1Down:Connect(function() ctrl.r = 1 end) right.MouseButton1Up:Connect(function() ctrl.r = 0 end) end function Fly() local char = player.Character if not char or not char:FindFirstChild("HumanoidRootPart") then return end local hrp = char.HumanoidRootPart local humanoid = char:FindFirstChildOfClass("Humanoid") if humanoid then humanoid:ChangeState(Enum.HumanoidStateType.Physics) end local bg = Instance.new("BodyGyro") local bv = Instance.new("BodyVelocity") bg.P = 9e4 bg.maxTorque = Vector3.new(9e9, 9e9, 9e9) bg.cframe = hrp.CFrame bg.Parent = hrp bv.velocity = Vector3.new(0, 0.1, 0) bv.maxForce = Vector3.new(9e9, 9e9, 9e9) bv.Parent = hrp flying = true notify("Fly Turned On✅") if humanoidConnection then humanoidConnection:Disconnect() end humanoidConnection = humanoid.Died:Connect(function() Unfly() end) coroutine.wrap(function() while flying and player.Character do if ctrl.l + ctrl.r ~= 0 or ctrl.f + ctrl.b ~= 0 then speed = speed + 0.5 + (speed / 15) if speed > 50 then speed = 50 end elseif speed ~= 0 then speed = speed - 1 if speed < 0 then speed = 0 end end if speed ~= 0 then bv.velocity = ((workspace.CurrentCamera.CFrame.lookVector * (ctrl.f + ctrl.b)) + (workspace.CurrentCamera.CFrame.RightVector * (ctrl.r + ctrl.l))) * speed lastCtrl = {f = ctrl.f, b = ctrl.b, l = ctrl.l, r = ctrl.r} else bv.velocity = Vector3.new(0, 0.1, 0) end bg.cframe = workspace.CurrentCamera.CFrame task.wait() end ctrl = {f = 0, b = 0, l = 0, r = 0} lastCtrl = {f = 0, b = 0, l = 0, r = 0} speed = 0 bg:Destroy() bv:Destroy() if humanoid then humanoid:ChangeState(Enum.HumanoidStateType.GettingUp) end end)() end function Unfly() flying = false if arrowGui then arrowGui:Destroy() arrowGui = nil end if humanoidConnection then humanoidConnection:Disconnect() end notify("Fly Turned Off❌") end local FlyModule = PlayerTab:create_module({ title = "Fly", description = "Allows Players to Fly", section = "right", flag = "fly", callback = function(value) if value then Fly() else Unfly() end end }) FlyModule:create_checkbox({ title = "UI [For Mobile]", flag = "u_i_mobile", callback = function(value) if value and flying then createArrowGui() elseif not value and arrowGui then arrowGui:Destroy() arrowGui = nil end end }) local Players = game:GetService("Players") local RunService = game:GetService("RunService") local player = Players.LocalPlayer local noSlowConnection = nil local stateDisablers = {} local speedEnforcer = nil local function enableNoSlow() local character = player.Character or player.CharacterAdded:Wait() local humanoid = character:WaitForChild("Humanoid") -- Disable states that can cause slowdown local statesToDisable = { Enum.HumanoidStateType.Swimming, Enum.HumanoidStateType.Seated, Enum.HumanoidStateType.Climbing, Enum.HumanoidStateType.PlatformStanding } for _, state in ipairs(statesToDisable) do humanoid:SetStateEnabled(state, false) stateDisablers[state] = true end -- Remove potential interfering values for _, v in pairs(humanoid:GetDescendants()) do if v:IsA("NumberValue") or v:IsA("IntValue") or v:IsA("ObjectValue") then v:Destroy() end end -- Set speed immediately humanoid.WalkSpeed = 36 -- Re-enforce speed if changed noSlowConnection = humanoid:GetPropertyChangedSignal("WalkSpeed"):Connect(function() if humanoid.WalkSpeed ~= 36 then humanoid.WalkSpeed = 36 end end) -- Continuous check every frame speedEnforcer = RunService.RenderStepped:Connect(function() if humanoid and humanoid.WalkSpeed ~= 36 then humanoid.WalkSpeed = 36 end end) end local function disableNoSlow() local character = player.Character if not character then return end local humanoid = character:FindFirstChildOfClass("Humanoid") if humanoid then -- Re-enable states for state, _ in pairs(stateDisablers) do humanoid:SetStateEnabled(state, true) end end if noSlowConnection then noSlowConnection:Disconnect() noSlowConnection = nil end if speedEnforcer then speedEnforcer:Disconnect() speedEnforcer = nil end end local NoSlowModule = PlayerTab:create_module({ title = "No Slow", description = "Players Cannot Be Slowed Down In Any Way", section = "left", flag = "no_slow", callback = function(value) if value then enableNoSlow() else disableNoSlow() end end }) local Sound_Effect = true local sound_effect_type = "DC_15X" local CustomId = "" -- Should be set to just the numeric ID, like "1234567890" local sound_assets = { DC_15X = 'rbxassetid://936447863', Neverlose = 'rbxassetid://8679627751', Minecraft = 'rbxassetid://8766809464', MinecraftHit2 = 'rbxassetid://8458185621', TeamfortressBonk = 'rbxassetid://8255306220', TeamfortressBell = 'rbxassetid://2868331684', Custom = 'empty' } local SlashesNet = ReplicatedStorage:WaitForChild("Packages")._Index:FindFirstChild("sleitnick_net@0.1.0") local SlashesRemote = SlashesNet and SlashesNet:FindFirstChild("net"):FindFirstChild("RE/SlashesOfFuryActivate") local IsSlashesPending = false local SlashesParryCount = 0 local SlashesActive = false if SlashesRemote then SlashesRemote.OnClientEvent:Connect(function() if SOFD then IsSlashesPending = true end end) end local HitsoundModule = PlayerTab:create_module({ title = "Hit Sounds", description = "Toggles Hit Sounds", section = "right", flag = "hit_sound", callback = function(state) if state then print("[ Debug ] Sound Effect Enabled") Sound_Effect = true Connections_Manager["SoundEffect"] = game.ReplicatedStorage.Remotes.ParrySuccess.OnClientEvent:Connect(function() if not Sound_Effect then return end local sound_id if CustomId ~= "" and sound_effect_type == "Custom" then sound_id = "rbxassetid://" .. CustomId else sound_id = sound_assets[sound_effect_type] end if not sound_id then return end local sound = Instance.new("Sound") sound.SoundId = sound_id sound.Volume = 1 sound.PlayOnRemove = true sound.Parent = workspace sound:Destroy() end) else print("[ Debug ] Sound Effect Disabled") Sound_Effect = false if Connections_Manager["SoundEffect"] then Connections_Manager["SoundEffect"]:Disconnect() Connections_Manager["SoundEffect"] = nil end end end }) HitsoundModule:create_dropdown({ title = "Sound Type", flag = "sound_effects", options = {"Disabled", "DC_15X", "Minecraft", "MinecraftHit2", "Neverlose", "TeamfortressBonk", "TeamfortressBell"}, maximum_options = 14, multi_dropdown = false, callback = function(Option) sound_effect_type = Option end }) local rainbowConnection = nil local colorCorrection = nil local lighting = game:GetService("Lighting") local FilterModule = WorldTab:create_module({ title = "Filter", description = "Toggles Custom World Filter Effects", section = "left", flag = "world_filter", callback = function(value) end }) FilterModule:create_checkbox({ title = "Enabled Hue", flag = "enable_hue", callback = function(value) if value then if not colorCorrection then colorCorrection = Instance.new("ColorCorrectionEffect") colorCorrection.Name = "RainbowFilter" colorCorrection.Saturation = 1 colorCorrection.Contrast = 0.1 colorCorrection.Brightness = 0 colorCorrection.TintColor = Color3.fromRGB(255, 0, 0) colorCorrection.Parent = lighting end local hue = 0 rainbowConnection = RunService.RenderStepped:Connect(function() hue = (hue + 1) % 360 local color = Color3.fromHSV(hue / 360, 1, 1) colorCorrection.TintColor = color end) else if rainbowConnection then rainbowConnection:Disconnect() rainbowConnection = nil end if colorCorrection then colorCorrection:Destroy() colorCorrection = nil end end end }) local trailConnection = nil local BallTrailModule = WorldTab:create_module({ title = "Ball Trail", description = "Add Rainbow Line As The Ball Moves", section = "right", flag = "trial_ball", callback = function(value) if value then trailConnection = RunService.RenderStepped:Connect(function() local function GetBall() for _, Ball in ipairs(workspace:WaitForChild("Balls"):GetChildren()) do if Ball:GetAttribute("realBall") then return Ball end end end local function CreateRainbowTrail(ball) if ball:FindFirstChild("TriasTrail") then return end local at1 = Instance.new("Attachment", ball) local at2 = Instance.new("Attachment", ball) at1.Position = Vector3.new(0, 0.5, 0) at2.Position = Vector3.new(0, -0.5, 0) local trail = Instance.new("Trail") trail.Name = "TriasTrail" trail.Attachment0 = at1 trail.Attachment1 = at2 trail.Lifetime = 0.3 trail.MinLength = 0.1 trail.WidthScale = NumberSequence.new(1) trail.FaceCamera = true trail.Color = ColorSequence.new({ ColorSequenceKeypoint.new(0.0, Color3.fromRGB(255, 0, 0)), ColorSequenceKeypoint.new(0.16, Color3.fromRGB(255, 127, 0)), ColorSequenceKeypoint.new(0.32, Color3.fromRGB(255, 255, 0)), ColorSequenceKeypoint.new(0.48, Color3.fromRGB(0, 255, 0)), ColorSequenceKeypoint.new(0.64, Color3.fromRGB(0, 0, 255)), ColorSequenceKeypoint.new(0.80, Color3.fromRGB(75, 0, 130)), ColorSequenceKeypoint.new(1.0, Color3.fromRGB(148, 0, 211)) }) trail.Parent = ball end local ball = GetBall() if ball and not ball:FindFirstChild("TriasTrail") then CreateRainbowTrail(ball) end end) else if trailConnection then trailConnection:Disconnect() trailConnection = nil end -- Xoá trail nếu đang tắt toggle for _, Ball in ipairs(workspace:WaitForChild("Balls"):GetChildren()) do local trail = Ball:FindFirstChild("TriasTrail") if trail then trail:Destroy() end for _, att in ipairs(Ball:GetChildren()) do if att:IsA("Attachment") then att:Destroy() end end end end end }) local cam = workspace.CurrentCamera local originalSubject = cam.CameraSubject local viewConnection = nil local ViewBallModule = WorldTab:create_module({ title = "View Ball", description = "Switch View From Character To Ball", section = "left", flag = "view_ball", callback = function(value) if value then viewConnection = RunService.RenderStepped:Connect(function() local function GetBall() for _, Ball in ipairs(workspace:WaitForChild("Balls"):GetChildren()) do if Ball:GetAttribute("realBall") then return Ball end end end local ball = GetBall() if ball and cam.CameraSubject ~= ball then cam.CameraSubject = ball end end) else if viewConnection then viewConnection:Disconnect() viewConnection = nil end cam.CameraSubject = Players.LocalPlayer.Character or Players.LocalPlayer end end }) local abilityESPEnabled = false local billboardLabels = {} local Players = game:GetService("Players") local RunService = game:GetService("RunService") local Player = Players.LocalPlayer local Connections_Manager = {} local function createBillboardGui(p) local character = p.Character while not character or not character.Parent do task.wait() character = p.Character end local head = character:WaitForChild("Head") -- Check if BillboardGui already exists for this player local existingGui = billboardLabels[p] and billboardLabels[p].gui if existingGui then existingGui:Destroy() -- Clean up old GUI end local billboardGui = Instance.new("BillboardGui") billboardGui.Name = "AbilityESP_Billboard" billboardGui.Adornee = head billboardGui.Size = UDim2.new(0, 200, 0, 25) billboardGui.StudsOffset = Vector3.new(0, 3.5, 0) billboardGui.AlwaysOnTop = true billboardGui.Parent = head local textLabel = Instance.new("TextLabel") textLabel.Size = UDim2.new(1, 0, 1, 0) textLabel.BackgroundTransparency = 1 textLabel.Font = Enum.Font.GothamBold textLabel.TextColor3 = Color3.fromRGB(255, 255, 255) textLabel.TextStrokeTransparency = 0.6 textLabel.TextSize = 14 textLabel.TextXAlignment = Enum.TextXAlignment.Center textLabel.TextYAlignment = Enum.TextYAlignment.Center textLabel.TextWrapped = true textLabel.Parent = billboardGui textLabel.Visible = false -- Start with label hidden textLabel.Text = "" -- Start with no text billboardLabels[p] = { gui = billboardGui, label = textLabel } local humanoid = character:FindFirstChild("Humanoid") if humanoid then humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.None -- Connect to humanoid's death to clean up humanoid.Died:Connect(function() textLabel.Visible = false textLabel.Text = "" billboardGui:Destroy() -- Destroy GUI on death billboardLabels[p] = nil -- Remove from tracking end) end end -- Handle existing players for _, p in Players:GetPlayers() do if p ~= Player then p.CharacterAdded:Connect(function() createBillboardGui(p) end) if p.Character then createBillboardGui(p) end end end -- Handle new players Players.PlayerAdded:Connect(function(newPlayer) if newPlayer ~= Player then newPlayer.CharacterAdded:Connect(function() createBillboardGui(newPlayer) end) end end) local AbilityModule = WorldTab:create_module({ title = "Ability ESP", description = "ESP Ability All Player", section = "right", flag = "esp_ability", callback = function(state) abilityESPEnabled = state print("[ Debug ] Ability ESP " .. (state and "Enabled" or "Disabled")) if state then Connections_Manager["AbilityESP"] = RunService.Heartbeat:Connect(function() for p, data in pairs(billboardLabels) do local label = data.label if p.Character and p.Character:FindFirstChild("Head") then local ability = p:GetAttribute("EquippedAbility") label.Text = ability and (p.DisplayName .. " [" .. ability .. "]") or p.DisplayName label.Visible = true else label.Visible = false label.Text = "" end end end) else if Connections_Manager["AbilityESP"] then Connections_Manager["AbilityESP"]:Disconnect() Connections_Manager["AbilityESP"] = nil end for _, data in pairs(billboardLabels) do local label = data.label label.Visible = false label.Text = "" -- Clear the text content end end end }) local selectedSky = "Default" local skyen = false local function applySkybox(presetName) if not skyen then return end local skyPresets = { Default = {"591058823", "591059876", "591058104", "591057861", "591057625", "591059642"}, Vaporwave = {"1417494030", "1417494146", "1417494253", "1417494402", "1417494499", "1417494643"}, Redshift = {"401664839", "401664862", "401664960", "401664881", "401664901", "401664936"}, Desert = {"1013852", "1013853", "1013850", "1013851", "1013849", "1013854"}, DaBaby = {"7245418472", "7245418472", "7245418472", "7245418472", "7245418472", "7245418472"}, Minecraft = {"1876545003", "1876544331", "1876542941", "1876543392", "1876543764", "1876544642"}, SpongeBob = {"7633178166", "7633178166", "7633178166", "7633178166", "7633178166", "7633178166"}, Skibidi = {"14952256113", "14952256113", "14952256113", "14952256113", "14952256113", "14952256113"}, Blaze = {"150939022", "150939038", "150939047", "150939056", "150939063", "150939082"}, ["Pussy Cat"] = {"11154422902", "11154422902", "11154422902", "11154422902", "11154422902", "11154422902"}, ["Among Us"] = {"5752463190", "5752463190", "5752463190", "5752463190", "5752463190", "5752463190"}, ["Space Wave"] = {"16262356578", "16262358026", "16262360469", "16262362003", "16262363873", "16262366016"}, ["Space Wave2"] = {"1233158420", "1233158838", "1233157105", "1233157640", "1233157995", "1233159158"}, ["Turquoise Wave"] = {"47974894", "47974690", "47974821", "47974776", "47974859", "47974909"}, ["Dark Night"] = {"6285719338", "6285721078", "6285722964", "6285724682", "6285726335", "6285730635"}, ["Bright Pink"] = {"271042516", "271077243", "271042556", "271042310", "271042467", "271077958"}, ["White Galaxy"] = {"5540798456", "5540799894", "5540801779", "5540801192", "5540799108", "5540800635"}, ["Blue Galaxy"] = {"14961495673", "14961494492", "14961492844", "14961491298", "14961490439", "14961489508"} } local skyboxData = skyPresets[presetName] if not skyboxData then warn("Unknown sky preset: " .. tostring(presetName)) return end local Lighting = game:GetService("Lighting") local Sky = Lighting:FindFirstChildOfClass("Sky") or Instance.new("Sky", Lighting) local faces = {"SkyboxBk", "SkyboxDn", "SkyboxFt", "SkyboxLf", "SkyboxRt", "SkyboxUp"} for i, face in ipairs(faces) do Sky[face] = "rbxassetid://" .. skyboxData[i] end Lighting.GlobalShadows = not skyen -- Disable shadows only when sky is enabled end local SkyModule = WorldTab:create_module({ title = "Custom Sky", description = "Changes Sky", section = "left", flag = "change_sky", callback = function(state) local Lighting = game:GetService("Lighting") local Sky = Lighting:FindFirstChildOfClass("Sky") if state then print("[ Debug ] Custom Sky Enabled") skyen = true if not Sky then Sky = Instance.new("Sky", Lighting) end while task.wait(1) and state do applySkybox(selectedSky) end else print("[ Debug ] Custom Sky Disabled") if Sky then Sky:Destroy() -- Remove the skybox entirely when disabled end skyen = false Lighting.GlobalShadows = true -- Restore default lighting settings end end }) SkyModule:create_dropdown({ title = "Selected Sky", flag = "select_sky", options = {"Default", "Vaporwave", "Redshift", "Desert", "DaBaby", "Minecraft", "SpongeBob", "Skibidi", "Blaze", "Pussy Cat", "Among Us", "Space Wave", "Space Wave2", "Turquoise Wave", "Dark Night", "Bright Pink", "White Galaxy", "Blue Galaxy"}, maximum_options = 18, multi_dropdown = false, callback = function(option) selectedSky = option print("[ Debug ] Selected Sky: " .. option) applySkybox(option) -- Apply the skybox immediately end }) local RunService = game:GetService("RunService") local Players = game:GetService("Players") local Camera = workspace.CurrentCamera local Player = Players.LocalPlayer local lookAtBallToggle = false local parryLookType = "Camera" local playerConn, cameraConn = nil, nil -- Hà m lấy quả bóng thật local function GetBall() for _, Ball in ipairs(workspace.Balls:GetChildren()) do if Ball:GetAttribute("realBall") then return Ball end end end -- Hà m bật chức năng xoay local function EnableLookAt() if parryLookType == "Character" then playerConn = RunService.Stepped:Connect(function() local Ball = GetBall() local Character = Player.Character if not Ball or not Character then return end local HRP = Character:FindFirstChild("HumanoidRootPart") if not HRP then return end local lookPos = Vector3.new(Ball.Position.X, HRP.Position.Y, Ball.Position.Z) HRP.CFrame = CFrame.lookAt(HRP.Position, lookPos) end) elseif parryLookType == "Camera" then cameraConn = RunService.RenderStepped:Connect(function() local Ball = GetBall() if not Ball then return end local camPos = Camera.CFrame.Position Camera.CFrame = CFrame.lookAt(camPos, Ball.Position) end) end end -- Hà m tắt chức năng xoay local function DisableLookAt() if playerConn then playerConn:Disconnect() playerConn = nil end if cameraConn then cameraConn:Disconnect() cameraConn = nil end end local LookatModule = WorldTab:create_module({ title = "Lookat Ball", description = "Look The Ball", section = "right", flag = "look_ball", callback = function(value) lookAtBallToggle = value if value then EnableLookAt() else DisableLookAt() end end }) LookatModule:create_dropdown({ title = "Look Type", flag = "look_type", options = {"Camera", "Character"}, maximum_options = 2, multi_dropdown = false, callback = function(value) parryLookType = value if lookAtBallToggle then DisableLookAt() EnableLookAt() end end }) local enabled = false local swordName = "" local p = game:GetService("Players").LocalPlayer local rs = game:GetService("ReplicatedStorage") local swords = require(rs:WaitForChild("Shared", 9e9):WaitForChild("ReplicatedInstances", 9e9):WaitForChild("Swords", 9e9)) local ctrl, playFx, lastParry = nil, nil, 0 local function getSlash(name) local s = swords:GetSword(name) return (s and s.SlashName) or "SlashEffect" end local function setSword() if not enabled then return end setupvalue(rawget(swords, "EquipSwordTo"), 2, false) swords:EquipSwordTo(p.Character, swordName) ctrl:SetSword(swordName) end updateSword = function() setSword() end while task.wait() and not ctrl do for _, v in getconnections(rs.Remotes.FireSwordInfo.OnClientEvent) do if v.Function and islclosure(v.Function) then local u = getupvalues(v.Function) if #u == 1 and type(u[1]) == "table" then ctrl = u[1] break end end end end local parryConnA, parryConnB while task.wait() and not parryConnA do for _, v in getconnections(rs.Remotes.ParrySuccessAll.OnClientEvent) do if v.Function and getinfo(v.Function).name == "parrySuccessAll" then parryConnA, playFx = v, v.Function v:Disable() break end end end while task.wait() and not parryConnB do for _, v in getconnections(rs.Remotes.ParrySuccessClient.Event) do if v.Function and getinfo(v.Function).name == "parrySuccessAll" then parryConnB = v v:Disable() break end end end rs.Remotes.ParrySuccessAll.OnClientEvent:Connect(function(...) setthreadidentity(2) local args = {...} if tostring(args[4]) ~= p.Name then lastParry = tick() elseif enabled then args[1] = getSlash(swordName) args[3] = swordName end return playFx(unpack(args)) end) task.spawn(function() while task.wait(1) do if enabled and swordName ~= "" then local c = p.Character or p.CharacterAdded:Wait() if p:GetAttribute("CurrentlyEquippedSword") ~= swordName or not c:FindFirstChild(swordName) then setSword() end for _, m in pairs(c:GetChildren()) do if m:IsA("Model") and m.Name ~= swordName then m:Destroy() end task.wait() end end end end) local SkinChangerModule = MicTab:create_module({ title = "Skin Changer", description = "Change Sword Skin", section = "left", flag = "skin_changer", callback = function(state) enabled = state end }) SkinChangerModule:create_textbox({ title = "↓ Skin Name [Case Sensitive] ↓", placeholder = "Enter Sword Name...", flag = "skin_input", callback = function(value) swordName = value end }) local VirtualInputManager = game:GetService("VirtualInputManager") local RunService = game:GetService("RunService") local Players = game:GetService("Players") local player = Players.LocalPlayer local rootPart = player.Character and player.Character:FindFirstChild("HumanoidRootPart") local targetDistance = 30 local autoPlayConnection = nil local lastTargetTime = 0 local targetDuration = 0 local AutoPlayModule = MicTab:create_module({ title = "Auto Play", description = "Use AI To Play Automatically", section = "right", flag = "auto_play", callback = function(enabled) if enabled then autoPlayConnection = RunService.RenderStepped:Connect(function() if not player.Character or not player.Character:FindFirstChild("HumanoidRootPart") then return end rootPart = player.Character.HumanoidRootPart -- Tìm bóng thật local ball for _, b in ipairs(workspace:WaitForChild("Balls"):GetChildren()) do if b:GetAttribute("realBall") then ball = b break end end if not ball then return end local dir = (ball.Position - rootPart.Position).Unit local dist = (ball.Position - rootPart.Position).Magnitude local speed = ball.Velocity.Magnitude local currentTime = tick() local ballTarget = ball:GetAttribute("target") -- Kiểm tra target liên tục if ballTarget == player.Name then if currentTime - lastTargetTime < 0.2 then targetDuration += RunService.RenderStepped:Wait() else targetDuration = 0 end lastTargetTime = currentTime else targetDuration = 0 end -- Reset tất cả nút for _, key in pairs({"W", "A", "S", "D"}) do VirtualInputManager:SendKeyEvent(false, key, false, game) end -- Nếu bị target liên tục hoặc bóng quá gần → luôn lùi if dist < targetDistance or targetDuration > 0.5 then local backDir = -dir local backPos = rootPart.Position + backDir * 6 -- Kiểm tra player khác phía sau local safeToBack = true for _, other in ipairs(Players:GetPlayers()) do if other ~= player and other.Character and other.Character:FindFirstChild("HumanoidRootPart") then local otherHRP = other.Character.HumanoidRootPart if (otherHRP.Position - backPos).Magnitude < 5 then safeToBack = false break end end end if safeToBack then VirtualInputManager:SendKeyEvent(true, "S", false, game) else -- Né sang bên nếu bị vướng local sideKey = math.random(1, 2) == 1 and "A" or "D" VirtualInputManager:SendKeyEvent(true, sideKey, false, game) end return -- ❗ Dừng tại đây, không xử lý di chuyển khác end -- Nếu đang xa hơn targetDistance + buffer → tiến tới để giữ vị trí tốt local buffer = 5 if dist > targetDistance + buffer then VirtualInputManager:SendKeyEvent(true, "W", false, game) elseif speed > 120 then local dodgeKey = math.random(1, 2) == 1 and "A" or "D" VirtualInputManager:SendKeyEvent(true, dodgeKey, false, game) elseif math.random() < 0.01 then VirtualInputManager:SendKeyEvent(true, "W", false, game) end end) else if autoPlayConnection then autoPlayConnection:Disconnect() autoPlayConnection = nil end for _, key in pairs({"W", "A", "S", "D"}) do VirtualInputManager:SendKeyEvent(false, key, false, game) end end end }) AutoPlayModule:create_checkbox({ title = "Anti AFK", flag = "anti_afk", callback = function(value) end }) AutoPlayModule:create_checkbox({ title = "Enable Jumping [soon]", flag = "enable_jump", callback = function(state) end }) AutoPlayModule:create_checkbox({ title = "Notify", flag = "notify5", callback = function(value) end }) AutoPlayModule:create_divider({ showtopic = true, title = "", disableline = false }) AutoPlayModule:create_slider({ title = "Distance From Ball", flag = "1", minimum_value = 1, maximum_value = 100, value = 30, round_number = true, callback = function(value) targetDistance = value end }) AutoPlayModule:create_slider({ title = "Speed Multiplier", flag = "2", minimum_value = 1, maximum_value = 100, value = 70, round_number = true, callback = function(value) end }) AutoPlayModule:create_slider({ title = "Transversing", flag = "3", minimum_value = 10, maximum_value = 150, value = 25, round_number = true, callback = function(value) end }) AutoPlayModule:create_slider({ title = "Direction", flag = "4", minimum_value = 0.1, maximum_value = 1, value = 1, round_number = false, callback = function(value) end }) AutoPlayModule:create_slider({ title = "Offset Factor", flag = "5", minimum_value = 1, maximum_value = 5, value = 2, round_number = true, callback = function(value) end }) AutoPlayModule:create_slider({ title = "Movement Duration", flag = "6", minimum_value = 1, maximum_value = 8, value = 6, round_number = true, callback = function(value) end }) AutoPlayModule:create_slider({ title = "Generation Threshold", flag = "7", minimum_value = 1, maximum_value = 10, value = 2, round_number = true, callback = function(value) end }) AutoPlayModule:create_slider({ title = "Jump Chance [soon]", flag = "8", minimum_value = 1, maximum_value = 50, value = 50, round_number = true, callback = function(value) end }) AutoPlayModule:create_slider({ title = "Double Jump Chance [soon]", flag = "9", minimum_value = 1, maximum_value = 50, value = 50, round_number = true, callback = function(value) end }) local statsGui = nil local statsConnection = nil local StatModule = MicTab:create_module({ title = "Ball Stats", description = "Show Ball Index", section = "left", flag = "ball_stats", callback = function(value) if value then local player = Players.LocalPlayer -- Tạo GUI statsGui = Instance.new("ScreenGui", player:WaitForChild("PlayerGui")) statsGui.Name = "BallStatsUI" statsGui.ResetOnSpawn = false local frame = Instance.new("Frame", statsGui) frame.Size = UDim2.new(0, 180, 0, 80) frame.Position = UDim2.new(1, -200, 0, 100) frame.BackgroundColor3 = Color3.fromRGB(15, 15, 30) frame.BackgroundTransparency = 0.2 frame.BorderSizePixel = 0 frame.Active = true frame.Draggable = true -- 🟢 Cho phép kéo local label = Instance.new("TextLabel", frame) label.Size = UDim2.new(1, -10, 1, -10) label.Position = UDim2.new(0, 5, 0, 5) label.BackgroundTransparency = 1 label.TextColor3 = Color3.new(1, 1, 1) label.TextScaled = true label.Font = Enum.Font.GothamBold label.TextXAlignment = Enum.TextXAlignment.Left label.TextYAlignment = Enum.TextYAlignment.Top label.Text = "Loading..." statsConnection = RunService.RenderStepped:Connect(function() local function GetBall() for _, Ball in ipairs(workspace:WaitForChild("Balls"):GetChildren()) do if Ball:GetAttribute("realBall") then return Ball end end end local ball = GetBall() if not ball then label.Text = "No ball found" return end local char = player.Character or player.CharacterAdded:Wait() local hrp = char:FindFirstChild("HumanoidRootPart") if not hrp then return end local speed = math.floor(ball.Velocity.Magnitude) local distance = math.floor((ball.Position - hrp.Position).Magnitude) local target = ball:GetAttribute("target") or "N/A" local status = speed < 3 and "Idle" or "Flying" label.Text = string.format( "⚽ Ball Stats | Zeryx\nSpeed: %s\nDistance: %s\nTarget: %s", speed, distance, target ) end) else if statsConnection then statsConnection:Disconnect() statsConnection = nil end if statsGui then statsGui:Destroy() statsGui = nil end end end }) local player = Players.LocalPlayer local char = player.Character or player.CharacterAdded:Wait() local root = char:WaitForChild("HumanoidRootPart") local fieldPart = nil local visualizeConnection = nil local VisualizeModule = MicTab:create_module({ title = "Visualize", description = "Show Visualize", section = "right", flag = "visu_alize", callback = function(value) if value then -- Tạo forcefield visual nếu chưa có if not fieldPart then fieldPart = Instance.new("Part") fieldPart.Anchored = true fieldPart.CanCollide = false fieldPart.Transparency = 0.5 fieldPart.Shape = Enum.PartType.Ball fieldPart.Material = Enum.Material.ForceField fieldPart.CastShadow = false fieldPart.Color = Color3.fromRGB(88, 131, 202) fieldPart.Name = "VisualField" fieldPart.Parent = workspace end visualizeConnection = RunService.RenderStepped:Connect(function() local function GetBall() for _, Ball in ipairs(workspace:WaitForChild("Balls"):GetChildren()) do if Ball:GetAttribute("realBall") then return Ball end end end local ball = GetBall() if not ball then return end local ballVel = ball.AssemblyLinearVelocity local speed = ballVel.Magnitude -- Tính khoảng cách co giãn (clamp từ 25 đến 400) local size = math.clamp(speed, 25, 250) -- Cập nhật field fieldPart.Position = root.Position fieldPart.Size = Vector3.new(size, size, size) end) else if visualizeConnection then visualizeConnection:Disconnect() visualizeConnection = nil end if fieldPart then fieldPart:Destroy() fieldPart = nil end end end })