-- [[ Rscripts Risk Notice ]] -- This script is not verified by rscripts.net. Deal with caution. -- -- Stay safe: -- • Never log in on unofficial Roblox sites or lookalike domains. -- • Real Roblox links use roblox.com (check the .com ending). -- • Treat fake Roblox login / "claim reward" pages as phishing. -- [[ End Rscripts Risk Notice ]] -- .gg/T7CsjUpHtB local Players = game:GetService("Players") local RS = game:GetService("ReplicatedStorage") local RunService = game:GetService("RunService") local Input = game:GetService("UserInputService") local player = Players.LocalPlayer local environment = getgenv() if environment.SilentAimState and environment.SilentAimState.Unload then environment.SilentAimState.Unload() end local Mouse = require(RS:WaitForChild("ZexisShared").Modules.Mouse) assert(type(Mouse.Get) == "function", "Mouse.Get was not found") local originalGet = Mouse.Get local random = Random.new() local settings = { Enabled = true, Chance = 80, FOV = 140, TeamCheck = true, RandomParts = false, Part = "Head", ESP = false, Ring = true, Transparency = 0, RGB = false, Color = Color3.new(1, 1, 1) } environment.SilentAimState = settings local active = true local connections, highlights = {}, {} local function connect(signal, callback) local connection = signal:Connect(callback) table.insert(connections, connection) return connection end local function new(class, properties, parent) local object = Instance.new(class) for key, value in pairs(properties) do object[key] = value end object.Parent = parent return object end local gui = new("ScreenGui", { Name = "VisualSettings", ResetOnSpawn = false, IgnoreGuiInset = true, DisplayOrder = 100 }, player:WaitForChild("PlayerGui")) local circle = new("Frame", { AnchorPoint = Vector2.new(0.5, 0.5), Position = UDim2.fromScale(0.5, 0.5), Size = UDim2.fromOffset(280, 280), BackgroundTransparency = 1 }, gui) new("UICorner", {CornerRadius = UDim.new(1, 0)}, circle) local outline = new("UIStroke", {Thickness = 2, Color = settings.Color}, circle) local panel = new("Frame", { Position = UDim2.fromOffset(24, 70), Size = UDim2.fromOffset(330, 510), BackgroundColor3 = Color3.fromRGB(25, 27, 34), BorderSizePixel = 0, Active = true }, gui) new("UICorner", {CornerRadius = UDim.new(0, 10)}, panel) local title = new("TextLabel", { Size = UDim2.new(1, -40, 0, 38), BackgroundTransparency = 1, Text = "AIM / VISUALS", TextColor3 = Color3.new(1, 1, 1), Font = Enum.Font.GothamBold, TextSize = 16, Active = true }, panel) local close = new("TextButton", { Position = UDim2.new(1, -36, 0, 4), Size = UDim2.fromOffset(30, 30), Text = "X", TextSize = 18, BackgroundTransparency = 1, TextColor3 = Color3.new(1, 1, 1) }, panel) local list = new("ScrollingFrame", { Position = UDim2.fromOffset(10, 40), Size = UDim2.new(1, -20, 1, -50), BackgroundTransparency = 1, BorderSizePixel = 0, ScrollBarThickness = 4, AutomaticCanvasSize = Enum.AutomaticSize.Y, CanvasSize = UDim2.new() }, panel) new("UIListLayout", {Padding = UDim.new(0, 7), SortOrder = Enum.SortOrder.LayoutOrder}, list) local order = 0 local function row(text) order += 1 local frame = new("Frame", { Size = UDim2.new(1, -6, 0, 34), BackgroundTransparency = 1, LayoutOrder = order }, list) new("TextLabel", { Size = UDim2.new(0.59, 0, 1, 0), BackgroundTransparency = 1, Text = text, TextColor3 = Color3.fromRGB(225, 228, 240), Font = Enum.Font.Gotham, TextSize = 12, TextXAlignment = Enum.TextXAlignment.Left }, frame) return frame end local function control(class, frame, text) local object = new(class, { Position = UDim2.fromScale(0.6, 0), Size = UDim2.fromScale(0.4, 1), BackgroundColor3 = Color3.fromRGB(45, 49, 62), TextColor3 = Color3.new(1, 1, 1), Font = Enum.Font.Gotham, TextSize = 12, BorderSizePixel = 0, Text = text }, frame) new("UICorner", {CornerRadius = UDim.new(0, 5)}, object) if object:IsA("TextBox") then object.ClearTextOnFocus = false end return object end local function toggle(label, key) local button = control("TextButton", row(label), "") local function refresh() button.Text = settings[key] and "ON" or "OFF" end refresh() connect(button.MouseButton1Click, function() settings[key] = not settings[key] refresh() end) end local function numeric(label, key, minimum, maximum, integer) local box = control("TextBox", row(label), tostring(settings[key])) connect(box.FocusLost, function() local value = tonumber(box.Text) if value and value == value then value = math.clamp(value, minimum, maximum) settings[key] = integer and math.floor(value + 0.5) or value end box.Text = tostring(settings[key]) end) end toggle("Silent Aim", "Enabled") numeric("Hit Chance (%)", "Chance", 0, 100, true) numeric("FOV Radius (px)", "FOV", 10, 1000, true) toggle("Team Check", "TeamCheck") toggle("Random Body Part", "RandomParts") local parts = { "Head", "HumanoidRootPart", "UpperTorso", "LowerTorso", "LeftUpperArm", "RightUpperArm", "LeftUpperLeg", "RightUpperLeg" } local partIndex = 1 local partButton = control("TextButton", row("Target Part"), settings.Part) partButton.TextSize = 10 connect(partButton.MouseButton1Click, function() partIndex = partIndex % #parts + 1 settings.Part = parts[partIndex] partButton.Text = settings.Part end) toggle("ESP Highlight", "ESP") toggle("FOV Circle", "Ring") numeric("Transparency (0-1)", "Transparency", 0, 1, false) toggle("Rainbow Circle", "RGB") local colorBox = control("TextBox", row("Circle HEX Color"), "#FFFFFF") connect(colorBox.FocusLost, function() local hex = colorBox.Text:gsub("#", ""):gsub("%s", "") if #hex == 6 and hex:match("^%x+$") then settings.Color = Color3.fromHex(hex) end colorBox.Text = "#" .. settings.Color:ToHex():upper() end) row("RightShift: Toggle Menu") local unloadButton = control("TextButton", row("Restore / Remove"), "UNLOAD") local dragging, dragStart, panelStart connect(title.InputBegan, function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true dragStart = input.Position panelStart = panel.Position end end) connect(Input.InputChanged, function(input) if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then local delta = input.Position - dragStart panel.Position = UDim2.new(panelStart.X.Scale, panelStart.X.Offset + delta.X, panelStart.Y.Scale, panelStart.Y.Offset + delta.Y) end end) connect(Input.InputEnded, function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end end) connect(Input.InputBegan, function(input, processed) if not processed and input.KeyCode == Enum.KeyCode.RightShift then panel.Visible = not panel.Visible end end) connect(close.MouseButton1Click, function() panel.Visible = false end) local aliases = { UpperTorso = "Torso", LowerTorso = "Torso", LeftUpperArm = "Left Arm", RightUpperArm = "Right Arm", LeftUpperLeg = "Left Leg", RightUpperLeg = "Right Leg" } local function eligible(other) if other == player then return nil end if settings.TeamCheck and player.Team and other.Team == player.Team and not player.Neutral and not other.Neutral then return nil end local model = other.Character local humanoid = model and model:FindFirstChildOfClass("Humanoid") if not humanoid then return nil end local health = humanoid:GetAttribute("Health") if type(health) ~= "number" then health = humanoid.Health end if health <= 0 or humanoid:GetAttribute("Dead") == true then return nil end local own = player.Character local map = own and own:GetAttribute("CurrentMap") if map ~= nil and model:GetAttribute("CurrentMap") ~= map then return nil end return model end local function resolve(model, name) local part = model:FindFirstChild(name) if not part and aliases[name] then part = model:FindFirstChild(aliases[name]) end return part and part:IsA("BasePart") and part or nil end local function choosePart(model) if not settings.RandomParts then return resolve(model, settings.Part) end local available, seen = {}, {} for _, name in ipairs(parts) do local part = resolve(model, name) if part and not seen[part] then seen[part] = true table.insert(available, part) end end if #available > 0 then return available[random:NextInteger(1, #available)] end return nil end local function findTarget(range) local camera, own = workspace.CurrentCamera, player.Character if not camera or not own then return nil end local center = camera.ViewportSize / 2 local bestDistance, result = settings.FOV, nil local params = RaycastParams.new() params.FilterType = Enum.RaycastFilterType.Exclude params.FilterDescendantsInstances = {own} params.IgnoreWater = true for _, other in ipairs(Players:GetPlayers()) do local model = eligible(other) if not model then continue end local part = choosePart(model) if not part then continue end local position = part.Position local delta = position - camera.CFrame.Position if delta.Magnitude > range or delta.Magnitude < 0.001 then continue end local projected, visible = camera:WorldToViewportPoint(position) if not visible or projected.Z <= 0 then continue end local distance = (Vector2.new(projected.X, projected.Y) - center).Magnitude if distance >= bestDistance then continue end local hit = workspace:Raycast(camera.CFrame.Position, delta, params) if hit and not hit.Instance:IsDescendantOf(model) then continue end bestDistance, result = distance, position end return result end local replacement replacement = function(self, range, ...) local results = table.pack(originalGet(self, range, ...)) if active and settings.Enabled and typeof(results[1]) == "Vector3" and random:NextNumber(0, 100) < settings.Chance then local ok, position = pcall(findTarget, type(range) == "number" and range or 500) if ok and position then results[1] = position end end return table.unpack(results, 1, results.n) end Mouse.Get = replacement local elapsed = 0 connect(RunService.RenderStepped, function(dt) circle.Visible = settings.Ring circle.Size = UDim2.fromOffset(settings.FOV * 2, settings.FOV * 2) outline.Transparency = settings.Transparency outline.Color = settings.RGB and Color3.fromHSV((os.clock() * 0.15) % 1, 1, 1) or settings.Color elapsed += dt if elapsed < 0.15 then return end elapsed = 0 local current = {} if settings.ESP then for _, other in ipairs(Players:GetPlayers()) do local model = eligible(other) if model then current[other] = true local highlight = highlights[other] if not highlight or highlight.Adornee ~= model then if highlight then highlight:Destroy() end highlights[other] = new("Highlight", { Adornee = model, DepthMode = Enum.HighlightDepthMode.AlwaysOnTop, FillColor = Color3.fromRGB(255, 100, 110), OutlineColor = Color3.new(1, 1, 1), FillTransparency = 0.75, OutlineTransparency = 0 }, gui) end end end end for other, highlight in pairs(highlights) do if not current[other] then highlight:Destroy(); highlights[other] = nil end end end) settings.Unload = function() if not active then return end active = false settings.Enabled = false if Mouse.Get == replacement then Mouse.Get = originalGet end for _, connection in ipairs(connections) do connection:Disconnect() end for _, highlight in pairs(highlights) do highlight:Destroy() end gui:Destroy() if environment.SilentAimState == settings then environment.SilentAimState = nil end end connect(unloadButton.MouseButton1Click, settings.Unload)