local CoreGui = game:GetService("CoreGui") if CoreGui:FindFirstChild("TebelUI") then CoreGui.TebelUI:Destroy() end local UserInputService = game:GetService("UserInputService") local Players = game:GetService("Players") local ReplicatedStorage = game:GetService("ReplicatedStorage") local VIM = game:GetService("VirtualInputManager") local GuiService = game:GetService("GuiService") local TweenService = game:GetService("TweenService") local LocalPlayer = Players.LocalPlayer local GameRound = ReplicatedStorage:WaitForChild("Remotes"):WaitForChild("GameRound") local hasGetConnections = type(getconnections) == "function" local function checkMobile() if UserInputService.TouchEnabled and not UserInputService.MouseEnabled then return true elseif UserInputService.TouchEnabled and not UserInputService.KeyboardEnabled then return true end return false end local isMobile = checkMobile() local CheatSettings = { SilentAim = false, AngleReveal = false, RandomMiss = false, MissChance = 25, Humanizing = false, StartDelay = 1.5, AimSpeed = 0.05 } local Tebel = Instance.new("ScreenGui") Tebel.Name = "TebelUI" Tebel.Parent = CoreGui local OpenButton = Instance.new("TextButton") OpenButton.Size = UDim2.new(0, 90, 0, 32) OpenButton.Position = UDim2.new(0.5, -45, 0, 10) OpenButton.BackgroundColor3 = Color3.fromRGB(12, 12, 12) OpenButton.BorderColor3 = Color3.fromRGB(140, 20, 20) OpenButton.BorderSizePixel = 1 OpenButton.Text = "MENU" OpenButton.TextColor3 = Color3.fromRGB(200, 200, 200) OpenButton.Font = Enum.Font.Code OpenButton.TextSize = 14 OpenButton.Visible = false OpenButton.Parent = Tebel local MainFrame = Instance.new("Frame") MainFrame.Size = UDim2.new(0, 500, 0, 430) MainFrame.Position = UDim2.new(0.5, -250, 0.5, -215) MainFrame.BackgroundColor3 = Color3.fromRGB(12, 12, 12) MainFrame.BorderColor3 = Color3.fromRGB(30, 30, 30) MainFrame.BorderSizePixel = 1 MainFrame.Parent = Tebel local TopBar = Instance.new("Frame") TopBar.Size = UDim2.new(1, 0, 0, 25) TopBar.BackgroundColor3 = Color3.fromRGB(8, 8, 8) TopBar.BorderSizePixel = 0 TopBar.Parent = MainFrame local Title = Instance.new("TextLabel") Title.Size = UDim2.new(0, 100, 1, 0) Title.Position = UDim2.new(0, 10, 0, 0) Title.BackgroundTransparency = 1 Title.Text = "Xsaf" Title.TextColor3 = Color3.fromRGB(200, 200, 200) Title.Font = Enum.Font.Code Title.TextSize = 14 Title.TextXAlignment = Enum.TextXAlignment.Left Title.Parent = TopBar local CloseButton = Instance.new("TextButton") CloseButton.Size = UDim2.new(0, 30, 1, 0) CloseButton.Position = UDim2.new(1, -30, 0, 0) CloseButton.BackgroundTransparency = 1 CloseButton.Text = "X" CloseButton.TextColor3 = Color3.fromRGB(140, 20, 20) CloseButton.Font = Enum.Font.Code CloseButton.TextSize = 14 CloseButton.Parent = TopBar local TabBar = Instance.new("Frame") TabBar.Size = UDim2.new(1, -160, 1, 0) TabBar.Position = UDim2.new(0, 120, 0, 0) TabBar.BackgroundTransparency = 1 TabBar.Parent = TopBar local TabList = Instance.new("UIListLayout") TabList.FillDirection = Enum.FillDirection.Horizontal TabList.SortOrder = Enum.SortOrder.LayoutOrder TabList.Padding = UDim.new(0, 5) TabList.Parent = TabBar local AccentLine = Instance.new("Frame") AccentLine.Size = UDim2.new(1, 0, 0, 1) AccentLine.Position = UDim2.new(0, 0, 1, 0) AccentLine.BackgroundColor3 = Color3.fromRGB(140, 20, 20) AccentLine.BorderSizePixel = 0 AccentLine.Parent = TopBar local ContentArea = Instance.new("Frame") ContentArea.Size = UDim2.new(1, 0, 1, -26) ContentArea.Position = UDim2.new(0, 0, 0, 26) ContentArea.BackgroundTransparency = 1 ContentArea.Parent = MainFrame local dragging, dragInput, dragStart, startPos TopBar.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = MainFrame.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) TopBar.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then dragInput = input end end) UserInputService.InputChanged:Connect(function(input) if input == dragInput and dragging then local delta = input.Position - dragStart MainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) end end) local btnDragging, btnDragInput, btnDragStart, btnStartPos local dragTweenInfo = TweenInfo.new(0.12, Enum.EasingStyle.Quad, Enum.EasingDirection.Out) OpenButton.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then btnDragging = true btnDragStart = input.Position btnStartPos = OpenButton.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then task.wait() btnDragging = false end end) end end) OpenButton.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then btnDragInput = input end end) UserInputService.InputChanged:Connect(function(input) if input == btnDragInput and btnDragging then local delta = input.Position - btnDragStart local targetPos = UDim2.new(btnStartPos.X.Scale, btnStartPos.X.Offset + delta.X, btnStartPos.Y.Scale, btnStartPos.Y.Offset + delta.Y) TweenService:Create(OpenButton, dragTweenInfo, {Position = targetPos}):Play() end end) local function toggleMenu(state) MainFrame.Visible = state OpenButton.Visible = not state end OpenButton.MouseButton1Click:Connect(function() if not btnDragInput or btnDragInput.Position == btnDragStart then toggleMenu(true) end end) CloseButton.MouseButton1Click:Connect(function() toggleMenu(false) end) UserInputService.InputBegan:Connect(function(input, gp) if gp then return end if input.KeyCode == Enum.KeyCode.Insert then toggleMenu(not MainFrame.Visible) end end) local UI = {} local activeTab = nil function UI.CreateTab(name) local TabBtn = Instance.new("TextButton") TabBtn.Size = UDim2.new(0, 60, 1, 0) TabBtn.BackgroundColor3 = Color3.fromRGB(12, 12, 12) TabBtn.BorderSizePixel = 0 TabBtn.Text = name TabBtn.TextColor3 = Color3.fromRGB(100, 100, 100) TabBtn.Font = Enum.Font.Code TabBtn.TextSize = 12 TabBtn.Parent = TabBar local Container = Instance.new("ScrollingFrame") Container.Size = UDim2.new(1, -20, 1, -10) Container.Position = UDim2.new(0, 10, 0, 5) Container.BackgroundTransparency = 1 Container.ScrollBarThickness = 2 Container.ScrollBarImageColor3 = Color3.fromRGB(140, 20, 20) Container.BorderSizePixel = 0 Container.Visible = false Container.Parent = ContentArea local Layout = Instance.new("UIListLayout") Layout.SortOrder = Enum.SortOrder.LayoutOrder Layout.Padding = UDim.new(0, 6) Layout.Parent = Container TabBtn.MouseButton1Click:Connect(function() for _, child in pairs(ContentArea:GetChildren()) do if child:IsA("ScrollingFrame") then child.Visible = false end end for _, child in pairs(TabBar:GetChildren()) do if child:IsA("TextButton") then child.TextColor3 = Color3.fromRGB(100, 100, 100) end end Container.Visible = true TabBtn.TextColor3 = Color3.fromRGB(200, 200, 200) end) if not activeTab then activeTab = true Container.Visible = true TabBtn.TextColor3 = Color3.fromRGB(200, 200, 200) end local tabObj = {} function tabObj.AddCheckBox(id, text, default, callback) local state = default local Frame = Instance.new("Frame") Frame.Size = UDim2.new(1, 0, 0, 24) Frame.BackgroundTransparency = 1 Frame.Parent = Container local Btn = Instance.new("TextButton") Btn.Size = UDim2.new(0, 16, 0, 16) Btn.Position = UDim2.new(0, 0, 0.5, -8) Btn.BackgroundColor3 = state and Color3.fromRGB(140, 20, 20) or Color3.fromRGB(20, 20, 20) Btn.BorderColor3 = Color3.fromRGB(40, 40, 40) Btn.Text = "" Btn.Parent = Frame local Lbl = Instance.new("TextLabel") Lbl.Size = UDim2.new(1, -25, 1, 0) Lbl.Position = UDim2.new(0, 25, 0, 0) Lbl.BackgroundTransparency = 1 Lbl.Text = text Lbl.TextColor3 = Color3.fromRGB(180, 180, 180) Lbl.Font = Enum.Font.Code Lbl.TextSize = 13 Lbl.TextXAlignment = Enum.TextXAlignment.Left Lbl.Parent = Frame Btn.MouseButton1Click:Connect(function() state = not state Btn.BackgroundColor3 = state and Color3.fromRGB(140, 20, 20) or Color3.fromRGB(20, 20, 20) callback(state) end) callback(state) end function tabObj.AddSliderInt(id, text, min, max, default, callback) local val = default local Frame = Instance.new("Frame") Frame.Size = UDim2.new(1, 0, 0, 36) Frame.BackgroundTransparency = 1 Frame.Parent = Container local Lbl = Instance.new("TextLabel") Lbl.Size = UDim2.new(1, 0, 0, 16) Lbl.BackgroundTransparency = 1 Lbl.Text = text .. " : " .. tostring(val) Lbl.TextColor3 = Color3.fromRGB(180, 180, 180) Lbl.Font = Enum.Font.Code Lbl.TextSize = 13 Lbl.TextXAlignment = Enum.TextXAlignment.Left Lbl.Parent = Frame local BarBg = Instance.new("TextButton") BarBg.Size = UDim2.new(1, 0, 0, 8) BarBg.Position = UDim2.new(0, 0, 0, 22) BarBg.BackgroundColor3 = Color3.fromRGB(20, 20, 20) BarBg.BorderColor3 = Color3.fromRGB(40, 40, 40) BarBg.Text = "" BarBg.AutoButtonColor = false BarBg.Parent = Frame local BarFill = Instance.new("Frame") BarFill.Size = UDim2.new(math.clamp((val - min) / (max - min), 0, 1), 0, 1, 0) BarFill.BackgroundColor3 = Color3.fromRGB(140, 20, 20) BarFill.BorderSizePixel = 0 BarFill.Parent = BarBg local isDragging = false local function update(inputObj) local pos = math.clamp((inputObj.Position.X - BarBg.AbsolutePosition.X) / BarBg.AbsoluteSize.X, 0, 1) val = math.floor(min + pos * (max - min)) BarFill.Size = UDim2.new((val - min) / (max - min), 0, 1, 0) Lbl.Text = text .. " : " .. tostring(val) callback(val) end BarBg.InputBegan:Connect(function(inputObj) if inputObj.UserInputType == Enum.UserInputType.MouseButton1 or inputObj.UserInputType == Enum.UserInputType.Touch then isDragging = true update(inputObj) end end) UserInputService.InputEnded:Connect(function(inputObj) if inputObj.UserInputType == Enum.UserInputType.MouseButton1 or inputObj.UserInputType == Enum.UserInputType.Touch then isDragging = false end end) UserInputService.InputChanged:Connect(function(inputObj) if isDragging and (inputObj.UserInputType == Enum.UserInputType.MouseMovement or inputObj.UserInputType == Enum.UserInputType.Touch) then update(inputObj) end end) callback(val) end function tabObj.AddSliderFloat(id, text, min, max, default, callback) local val = default local Frame = Instance.new("Frame") Frame.Size = UDim2.new(1, 0, 0, 36) Frame.BackgroundTransparency = 1 Frame.Parent = Container local Lbl = Instance.new("TextLabel") Lbl.Size = UDim2.new(1, 0, 0, 16) Lbl.BackgroundTransparency = 1 Lbl.Text = text .. " : " .. string.format("%.2f", val) Lbl.TextColor3 = Color3.fromRGB(180, 180, 180) Lbl.Font = Enum.Font.Code Lbl.TextSize = 13 Lbl.TextXAlignment = Enum.TextXAlignment.Left Lbl.Parent = Frame local BarBg = Instance.new("TextButton") BarBg.Size = UDim2.new(1, 0, 0, 8) BarBg.Position = UDim2.new(0, 0, 0, 22) BarBg.BackgroundColor3 = Color3.fromRGB(20, 20, 20) BarBg.BorderColor3 = Color3.fromRGB(40, 40, 40) BarBg.Text = "" BarBg.AutoButtonColor = false BarBg.Parent = Frame local BarFill = Instance.new("Frame") BarFill.Size = UDim2.new(math.clamp((val - min) / (max - min), 0, 1), 0, 1, 0) BarFill.BackgroundColor3 = Color3.fromRGB(140, 20, 20) BarFill.BorderSizePixel = 0 BarFill.Parent = BarBg local isDragging = false local function update(inputObj) local pos = math.clamp((inputObj.Position.X - BarBg.AbsolutePosition.X) / BarBg.AbsoluteSize.X, 0, 1) val = min + pos * (max - min) BarFill.Size = UDim2.new(pos, 0, 1, 0) Lbl.Text = text .. " : " .. string.format("%.2f", val) callback(val) end BarBg.InputBegan:Connect(function(inputObj) if inputObj.UserInputType == Enum.UserInputType.MouseButton1 or inputObj.UserInputType == Enum.UserInputType.Touch then isDragging = true update(inputObj) end end) UserInputService.InputEnded:Connect(function(inputObj) if inputObj.UserInputType == Enum.UserInputType.MouseButton1 or inputObj.UserInputType == Enum.UserInputType.Touch then isDragging = false end end) UserInputService.InputChanged:Connect(function(inputObj) if isDragging and (inputObj.UserInputType == Enum.UserInputType.MouseMovement or inputObj.UserInputType == Enum.UserInputType.Touch) then update(inputObj) end end) callback(val) end return tabObj end local MainTab = UI.CreateTab("Table") MainTab.AddCheckBox("silentaim", "Silent Aim", false, function(state) CheatSettings.SilentAim = state end) MainTab.AddCheckBox("anglereveal", "Angle Reveal", false, function(state) CheatSettings.AngleReveal = state end) MainTab.AddCheckBox("randommiss", "Random Miss", false, function(state) CheatSettings.RandomMiss = state end) MainTab.AddSliderInt("misschance", "Miss Chance (%)", 1, 100, 25, function(val) CheatSettings.MissChance = val end) MainTab.AddCheckBox("humanizing", "Humanizing", false, function(state) CheatSettings.Humanizing = state end) MainTab.AddSliderFloat("startdelay", "Start Delay", 0.1, 5.0, 1.5, function(val) CheatSettings.StartDelay = val end) MainTab.AddSliderFloat("aimspeed", "Aim Speed", 0.01, 0.2, 0.05, function(val) CheatSettings.AimSpeed = val end) local function listenToSlider(slider) local container = slider:WaitForChild("Container", 5) if not container then return end local angleLabel = container:WaitForChild("AngleLabel", 5) local track = container:WaitForChild("Track", 5) local thumb = track and track:WaitForChild("Thumb", 5) if not angleLabel or not thumb then return end local updating = false local function updateText() if updating or not CheatSettings.AngleReveal then return end updating = true local text = angleLabel.Text if string.find(text, "??") then local scale = thumb.Position.X.Scale local currentAngle = math.floor((1 - scale) * 180 + 0.5) local newText = string.gsub(text, "%?%?", tostring(currentAngle)) angleLabel.Text = newText end updating = false end local textConn = angleLabel:GetPropertyChangedSignal("Text"):Connect(updateText) local thumbConn = thumb:GetPropertyChangedSignal("Position"):Connect(updateText) slider.Destroying:Connect(function() textConn:Disconnect() thumbConn:Disconnect() end) updateText() end LocalPlayer.PlayerGui.ChildAdded:Connect(function(child) if child.Name == "AngleSlider" then listenToSlider(child) end end) local currentSlider = LocalPlayer.PlayerGui:FindFirstChild("AngleSlider") if currentSlider then task.spawn(listenToSlider, currentSlider) end local function setGameSlider(angle) local playerGui = LocalPlayer:FindFirstChild("PlayerGui") local track = playerGui and playerGui:FindFirstChild("AngleSlider") and playerGui.AngleSlider:FindFirstChild("Container") and playerGui.AngleSlider.Container:FindFirstChild("Track") if not track then return end local scale = 1 - (math.clamp(angle, 0, 180) / 180) local fakeX = track.AbsolutePosition.X + (scale * track.AbsoluteSize.X) local fakeY = track.AbsolutePosition.Y + (track.AbsoluteSize.Y / 2) if hasGetConnections then local fakeInput = { UserInputType = Enum.UserInputType.MouseButton1, Position = Vector3.new(fakeX, fakeY, 0) } for _, conn in ipairs(getconnections(track.InputBegan)) do pcall(function() conn.Function(fakeInput) end) end else local inset = GuiService:GetGuiInset() VIM:SendMouseButtonEvent(fakeX, fakeY + inset.Y, 0, true, game, 1) task.wait(0.02) VIM:SendMouseButtonEvent(fakeX, fakeY + inset.Y, 0, false, game, 1) end end local function clickSubmit() local playerGui = LocalPlayer:FindFirstChild("PlayerGui") local submit = playerGui and playerGui:FindFirstChild("AngleSlider") and playerGui.AngleSlider:FindFirstChild("Container") and playerGui.AngleSlider.Container:FindFirstChild("SubmitButton") if not submit then return end if hasGetConnections then for _, conn in ipairs(getconnections(submit.MouseEnter)) do pcall(function() conn.Function() end) end task.wait(0.05) for _, conn in ipairs(getconnections(submit.MouseButton1Down)) do pcall(function() conn.Function() end) end task.wait(0.05) for _, conn in ipairs(getconnections(submit.MouseButton1Click)) do pcall(function() conn.Function() end) end else local inset = GuiService:GetGuiInset() local posX = submit.AbsolutePosition.X + (submit.AbsoluteSize.X / 2) local posY = submit.AbsolutePosition.Y + (submit.AbsoluteSize.Y / 2) VIM:SendMouseButtonEvent(posX, posY + inset.Y, 0, true, game, 1) task.wait(0.05) VIM:SendMouseButtonEvent(posX, posY + inset.Y, 0, false, game, 1) end end local turnDebounce = false GameRound.OnClientEvent:Connect(function(data) if not data or not data.action then return end if data.action == "matchStart" or data.action == "turnResult" or data.action == "matchEnd" or data.action == "matchAbort" or data.action == "cleanup" then turnDebounce = false end if data.action == "turnStart" and CheatSettings.SilentAim then if data.turnPlayer == LocalPlayer.Name and data.targetAngle then if turnDebounce then return end turnDebounce = true task.spawn(function() task.wait(CheatSettings.StartDelay) if not CheatSettings.SilentAim then return end local finalAngle if CheatSettings.RandomMiss and math.random(1, 100) <= CheatSettings.MissChance then local actualTarget = math.floor(data.targetAngle + 0.5) local randomOffset = math.random(2, 15) if math.random(1, 2) == 1 then finalAngle = actualTarget + randomOffset else finalAngle = actualTarget - randomOffset end finalAngle = math.clamp(finalAngle, 0, 180) else finalAngle = math.floor(data.targetAngle + 0.5) end if CheatSettings.Humanizing then local current = 0 setGameSlider(current) task.wait(0.1) while current ~= finalAngle do if not CheatSettings.SilentAim then return end local diff = math.abs(finalAngle - current) local step = current < finalAngle and 1 or -1 local amount = math.random(1, 4) if diff <= amount then current = finalAngle else current = current + (step * amount) end setGameSlider(current) task.wait(CheatSettings.AimSpeed) end task.wait(math.random(20, 40) / 100) clickSubmit() else setGameSlider(finalAngle) task.wait(0.1) clickSubmit() end end) end end end)