local Players = game:GetService("Players") local RunService = game:GetService("RunService") local TweenService = game:GetService("TweenService") local player = Players.LocalPlayer local gui = script.Parent -- ================= UI ================= local frame = Instance.new("Frame") frame.Size = UDim2.new(0, 320, 0, 200) frame.Position = UDim2.new(0.5, -160, 0.5, -100) frame.BackgroundColor3 = Color3.fromRGB(0, 0, 0) frame.Active = true frame.Parent = gui -- Drag System local dragging = false local dragStart, startPos frame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true dragStart = input.Position startPos = frame.Position end end) frame.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end end) game:GetService("UserInputService").InputChanged:Connect(function(input) if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then local delta = input.Position - dragStart frame.Position = UDim2.new( startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y ) end end) -- Title local title = Instance.new("TextLabel") title.Size = UDim2.new(1, 0, 0, 30) title.BackgroundTransparency = 1 title.Text = "Relaxed on top" title.TextColor3 = Color3.fromRGB(255, 255, 255) title.Parent = frame -- Toggle Button local toggle = Instance.new("TextButton") toggle.Size = UDim2.new(0, 280, 0, 40) toggle.Position = UDim2.new(0, 20, 0, 60) toggle.BackgroundColor3 = Color3.fromRGB(20, 20, 20) toggle.TextColor3 = Color3.fromRGB(255, 255, 255) toggle.Text = "Enable Anti Bat" toggle.Parent = frame -- Hide Button local hide = Instance.new("TextButton") hide.Size = UDim2.new(0, 280, 0, 30) hide.Position = UDim2.new(0, 20, 0, 110) hide.BackgroundColor3 = Color3.fromRGB(40, 40, 40) hide.TextColor3 = Color3.fromRGB(255, 255, 255) hide.Text = "Hide UI (Ball)" hide.Parent = frame -- Logo local logo = Instance.new("ImageLabel") logo.Size = UDim2.new(0, 80, 0, 80) logo.Position = UDim2.new(0.5, -40, 1, -90) logo.BackgroundTransparency = 1 logo.Image = "rbxassetid://123282651418196" logo.Parent = frame task.delay(2, function() TweenService:Create( logo, TweenInfo.new(2), {ImageTransparency = 1} ):Play() end) -- ================= STATE ================= local enabled = false local minimized = false toggle.MouseButton1Click:Connect(function() enabled = not enabled toggle.Text = enabled and "Anti Bat: ON" or "Enable Anti Bat" end) hide.MouseButton1Click:Connect(function() minimized = not minimized if minimized then frame:TweenSize(UDim2.new(0, 80, 0, 80), "Out", "Quad", 0.3, true) for _,v in pairs(frame:GetChildren()) do if v:IsA("TextButton") or v:IsA("TextLabel") then v.Visible = false end end else frame:TweenSize(UDim2.new(0, 320, 0, 200), "Out", "Quad", 0.3, true) for _,v in pairs(frame:GetChildren()) do v.Visible = true end end end) -- ================= KNOCKBACK SHIELD ================= local RANGE = 8 local FORCE = 120 RunService.Heartbeat:Connect(function() if not enabled then return end local myChar = player.Character if not myChar then return end local myHRP = myChar:FindFirstChild("HumanoidRootPart") if not myHRP then return end for _, other in pairs(Players:GetPlayers()) do if other ~= player and other.Character then local oHRP = other.Character:FindFirstChild("HumanoidRootPart") if oHRP then local diff = oHRP.Position - myHRP.Position local dist = diff.Magnitude if dist < RANGE and dist > 0 then oHRP.AssemblyLinearVelocity = diff.Unit * FORCE end end end end end)