-- [Core Services] local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local Camera = workspace.CurrentCamera local LocalPlayer = Players.LocalPlayer local PlayerGui = LocalPlayer:WaitForChild("PlayerGui") -- [Config] local AIM_PART = "Head" local FOV_RADIUS = 150 local SMOOTHNESS = 0.35 local SNAP_THRESHOLD = 5 -- [Toggles] local aimbotEnabled = false local teamCheckEnabled = true local stickyAimEnabled = false local invincibilityCheckEnabled = true -- New toggle for invincibility check local stickyTarget = nil local guiVisible = true -- [FOV Circle] local fovCircle = Drawing.new("Circle") fovCircle.Thickness = 2 fovCircle.Filled = false fovCircle.Radius = FOV_RADIUS fovCircle.Transparency = 1 fovCircle.Visible = true fovCircle.Color = Color3.fromRGB(255, 102, 178) -- rose pink -- [Watermark 🌹] local watermark = Drawing.new("Text") watermark.Text = "🌹 UNM Aimbot by Rat_InBag 🌹" watermark.Size = 13 watermark.Position = Vector2.new(10, 10) watermark.Color = Color3.fromRGB(255, 182, 193) watermark.Outline = true watermark.Center = false watermark.Transparency = 0.9 watermark.Visible = true -- [GUI Setup 🌹] local gui = Instance.new("ScreenGui", PlayerGui) gui.Name = "UNMAimbotGUI" gui.ResetOnSpawn = false local panel = Instance.new("Frame", gui) panel.Size = UDim2.new(0, 180, 0, 280) -- Increased height for additional toggle panel.Position = UDim2.new(0, 10, 0, 10) panel.BackgroundColor3 = Color3.fromRGB(255, 228, 237) panel.BorderSizePixel = 0 panel.Visible = guiVisible local uilist = Instance.new("UIListLayout", panel) uilist.FillDirection = Enum.FillDirection.Vertical uilist.Padding = UDim.new(0, 5) local function updateToggleText() for _, obj in pairs(panel:GetChildren()) do if obj:IsA("TextButton") then if obj.Name == "Aimbot" then obj.Text = "🌹 Aimbot: " .. (aimbotEnabled and "ON" or "OFF") elseif obj.Name == "TeamCheck" then obj.Text = "🌹 Team Check: " .. (teamCheckEnabled and "ON" or "OFF") elseif obj.Name == "StickyAim" then obj.Text = "🌹 Sticky Aim: " .. (stickyAimEnabled and "ON" or "OFF") elseif obj.Name == "FOVCircle" then obj.Text = "🌹 FOV Circle: " .. (fovCircle.Visible and "ON" or "OFF") elseif obj.Name == "InvincibilityCheck" then obj.Text = "🌹 Invincibility Check: " .. (invincibilityCheckEnabled and "ON" or "OFF") end end end end -- [FOV Radius Input 🌹] local fovInputFrame = Instance.new("Frame", panel) fovInputFrame.Size = UDim2.new(1, 0, 0, 30) fovInputFrame.BackgroundTransparency = 1 local fovTextBox = Instance.new("TextBox", fovInputFrame) fovTextBox.Size = UDim2.new(0.6, 0, 1, 0) fovTextBox.Position = UDim2.new(0, 0, 0, 0) fovTextBox.BackgroundColor3 = Color3.fromRGB(255, 192, 203) fovTextBox.TextColor3 = Color3.fromRGB(60, 0, 40) fovTextBox.Font = Enum.Font.SourceSansBold fovTextBox.TextSize = 14 fovTextBox.Text = tostring(FOV_RADIUS) fovTextBox.PlaceholderText = "Enter FOV" local fovSetButton = Instance.new("TextButton", fovInputFrame) fovSetButton.Size = UDim2.new(0.4, -5, 1, 0) fovSetButton.Position = UDim2.new(0.6, 5, 0, 0) fovSetButton.BackgroundColor3 = Color3.fromRGB(255, 182, 193) fovSetButton.TextColor3 = Color3.fromRGB(80, 0, 60) fovSetButton.Font = Enum.Font.SourceSansBold fovSetButton.TextSize = 14 fovSetButton.Text = "Set" fovSetButton.MouseButton1Click:Connect(function() local newRadius = tonumber(fovTextBox.Text) if newRadius and newRadius > 0 and newRadius <= 1000 then FOV_RADIUS = newRadius fovCircle.Radius = FOV_RADIUS fovTextBox.Text = tostring(FOV_RADIUS) else fovTextBox.Text = tostring(FOV_RADIUS) end end) -- [Create Toggle Buttons 🌹] local function createToggle(name, toggleFunc) local btn = Instance.new("TextButton", panel) btn.Name = name btn.Size = UDim2.new(1, 0, 0, 30) btn.BackgroundColor3 = Color3.fromRGB(255, 182, 193) btn.TextColor3 = Color3.fromRGB(80, 0, 60) btn.Font = Enum.Font.SourceSansBold btn.TextSize = 14 btn.Text = "🌹 " .. name .. ": OFF" btn.MouseButton1Click:Connect(function() toggleFunc() updateToggleText() end) end createToggle("Aimbot", function() aimbotEnabled = not aimbotEnabled UserInputService.MouseBehavior = aimbotEnabled and Enum.MouseBehavior.LockCenter or Enum.MouseBehavior.Default if not aimbotEnabled then stickyAimEnabled = false stickyTarget = nil end end) createToggle("TeamCheck", function() teamCheckEnabled = not teamCheckEnabled end) createToggle("StickyAim", function() stickyAimEnabled = not stickyAimEnabled stickyTarget = stickyAimEnabled and getClosestTarget() or nil end) createToggle("FOVCircle", function() fovCircle.Visible = not fovCircle.Visible end) -- New toggle for invincibility check createToggle("InvincibilityCheck", function() invincibilityCheckEnabled = not invincibilityCheckEnabled end) -- [Arrow to hide GUI 🌹] local arrow = Instance.new("TextButton", gui) arrow.Size = UDim2.new(0, 20, 0, 20) arrow.Position = UDim2.new(0, panel.AbsoluteSize.X + 12, 0, 10) arrow.Text = "<" arrow.TextColor3 = Color3.fromRGB(255, 255, 255) arrow.BackgroundColor3 = Color3.fromRGB(200, 100, 120) arrow.MouseButton1Click:Connect(function() guiVisible = not guiVisible panel.Visible = guiVisible arrow.Text = guiVisible and "<" or ">" end) -- [Input Shortcuts 🌹] UserInputService.InputBegan:Connect(function(input, gpe) if gpe then return end if input.KeyCode == Enum.KeyCode.V then aimbotEnabled = not aimbotEnabled UserInputService.MouseBehavior = aimbotEnabled and Enum.MouseBehavior.LockCenter or Enum.MouseBehavior.Default if not aimbotEnabled then stickyAimEnabled = false stickyTarget = nil end elseif input.KeyCode == Enum.KeyCode.T then teamCheckEnabled = not teamCheckEnabled elseif input.KeyCode == Enum.KeyCode.C and aimbotEnabled then stickyAimEnabled = not stickyAimEnabled stickyTarget = stickyAimEnabled and getClosestTarget() or nil elseif input.KeyCode == Enum.KeyCode.I then -- New shortcut for invincibility check invincibilityCheckEnabled = not invincibilityCheckEnabled end updateToggleText() end) -- [Utility Functions] local function isAlive(player) local char = player.Character local hum = char and char:FindFirstChildOfClass("Humanoid") return hum and hum.Health > 0 end local function isEnemy(player) return player ~= LocalPlayer and (not teamCheckEnabled or player.Team ~= LocalPlayer.Team) end -- Updated function to check if player is invincible/has forcefield local function isVulnerable(player) if not invincibilityCheckEnabled then return true end -- Skip check if disabled if not player.Character then return false end -- Check for forcefield if player.Character:FindFirstChild("ForceField") then return false end -- Check for other invincibility indicators (modify as needed for the game) local humanoid = player.Character:FindFirstChildOfClass("Humanoid") if humanoid then -- Check for godmode (some games set MaxHealth to 0 or math.huge) if humanoid.MaxHealth <= 0 or humanoid.MaxHealth == math.huge then return false end -- Check if health is locked (some games use this for invincibility) if humanoid:GetAttribute("HealthLocked") then return false end end return true end function getClosestTarget() local closest, minDist = nil, FOV_RADIUS for _, player in ipairs(Players:GetPlayers()) do if isEnemy(player) and isAlive(player) and isVulnerable(player) and player.Character and player.Character:FindFirstChild(AIM_PART) then local part = player.Character[AIM_PART] local screenPos, onScreen = Camera:WorldToViewportPoint(part.Position) if onScreen then local mousePos = UserInputService:GetMouseLocation() local dist = (Vector2.new(screenPos.X, screenPos.Y) - mousePos).Magnitude if dist < minDist then minDist = dist closest = part end end end end return closest end local function snapAim(targetPosition) local currentCFrame = Camera.CFrame local targetCFrame = CFrame.new(currentCFrame.Position, targetPosition) local angle = math.deg(currentCFrame:ToObjectSpace(targetCFrame).LookVector.Y) return math.abs(angle) < SNAP_THRESHOLD and targetCFrame or currentCFrame:Lerp(targetCFrame, SMOOTHNESS) end -- [ESP 🌹] local espObjects = {} local function updateESP() for _, drawing in pairs(espObjects) do for _, obj in pairs(drawing) do obj.Visible = false end end for _, player in pairs(Players:GetPlayers()) do if isEnemy(player) and isAlive(player) and player.Character then local root = player.Character:FindFirstChild("HumanoidRootPart") local head = player.Character:FindFirstChild("Head") local hum = player.Character:FindFirstChildOfClass("Humanoid") if root and head and hum then local cf = root.CFrame local size = Vector3.new(4, 6, 1) local topLeft, onScreen1 = Camera:WorldToViewportPoint((cf * CFrame.new(-size.X, size.Y, 0)).Position) local bottomRight, onScreen2 = Camera:WorldToViewportPoint((cf * CFrame.new(size.X, -size.Y, 0)).Position) if onScreen1 and onScreen2 and topLeft.X == topLeft.X and bottomRight.X == bottomRight.X then local box = espObjects[player] if not box then box = { Rect = Drawing.new("Square"), Health = Drawing.new("Text"), Name = Drawing.new("Text") } box.Rect.Thickness = 1 box.Rect.Color = Color3.fromRGB(255, 182, 193) box.Rect.Filled = false box.Health.Size = 14 box.Health.Color = Color3.fromRGB(255, 255, 255) box.Health.Outline = true box.Health.Center = true box.Name.Size = 14 box.Name.Color = Color3.fromRGB(255, 105, 180) box.Name.Outline = true box.Name.Center = true espObjects[player] = box end local w, h = bottomRight.X - topLeft.X, bottomRight.Y - topLeft.Y box.Rect.Position = Vector2.new(topLeft.X, topLeft.Y) box.Rect.Size = Vector2.new(w, h) box.Rect.Visible = true box.Health.Position = Vector2.new(topLeft.X + w / 2, bottomRight.Y + 10) box.Health.Text = "HP: " .. math.floor(hum.Health) box.Health.Visible = true box.Name.Position = Vector2.new(topLeft.X + w / 2, topLeft.Y - 15) box.Name.Text = player.Name box.Name.Visible = true end end end end end -- [Color Cycle 🌹] local colorIndex = 0 local rainbowColors = { Color3.fromRGB(255, 105, 180), Color3.fromRGB(255, 182, 193), Color3.fromRGB(255, 192, 203), Color3.fromRGB(255, 20, 147), Color3.fromRGB(255, 99, 71), Color3.fromRGB(255, 160, 122), Color3.fromRGB(219, 112, 147), } local lastColorChange = tick() -- [Main Loop 🌹] RunService.RenderStepped:Connect(function() local mousePos = UserInputService:GetMouseLocation() fovCircle.Position = Vector2.new(mousePos.X, mousePos.Y) fovCircle.Radius = FOV_RADIUS if tick() - lastColorChange >= 0.5 then fovCircle.Color = rainbowColors[colorIndex + 1] colorIndex = (colorIndex + 1) % #rainbowColors lastColorChange = tick() end updateESP() if aimbotEnabled then if stickyAimEnabled and stickyTarget and stickyTarget.Parent then local player = Players:GetPlayerFromCharacter(stickyTarget.Parent) if player and isEnemy(player) and isAlive(player) and isVulnerable(player) then Camera.CFrame = snapAim(stickyTarget.Position) else stickyTarget = nil end else local target = getClosestTarget() if target then Camera.CFrame = snapAim(target.Position) if stickyAimEnabled then stickyTarget = target end end end end end)