getgenv().FOV = 100 getgenv().Enabled = true getgenv().HighlightEnabled = true getgenv().TeamColor = Color3.fromRGB(0, 255, 0) getgenv().EnemyColor = Color3.fromRGB(255, 0, 0) local players = game:GetService("Players") local replicatedStorage = game:GetService("ReplicatedStorage") local userInputService = game:GetService("UserInputService") local runService = game:GetService("RunService") local localPlayer = players.LocalPlayer local currentCamera = workspace.CurrentCamera local raycastModule = require(replicatedStorage.Events.Modules.RaycastModule) local highlights = {} local playerConnections = {} local screenGui = Instance.new("ScreenGui") screenGui.Name = "fov" screenGui.Parent = game.CoreGui local mainFrame = Instance.new("Frame") mainFrame.Name = "MainFrame" mainFrame.Size = UDim2.new(0, 200, 0, 200) mainFrame.Position = UDim2.new(0.5, -100, 0.5, -100) mainFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 30) mainFrame.BorderSizePixel = 0 mainFrame.Active = true mainFrame.Draggable = true mainFrame.Parent = screenGui local titleBar = Instance.new("Frame") titleBar.Name = "TitleBar" titleBar.Size = UDim2.new(1, 0, 0, 20) titleBar.Position = UDim2.new(0, 0, 0, 0) titleBar.BackgroundColor3 = Color3.fromRGB(20, 20, 20) titleBar.BorderSizePixel = 0 titleBar.Parent = mainFrame local titleText = Instance.new("TextLabel") titleText.Name = "TitleText" titleText.Size = UDim2.new(0.7, 0, 1, 0) titleText.Position = UDim2.new(0, 5, 0, 0) titleText.BackgroundTransparency = 1 titleText.Text = "Silent Aim (UNNAMED SHOOTER)" titleText.TextColor3 = Color3.fromRGB(255, 255, 255) titleText.TextXAlignment = Enum.TextXAlignment.Left titleText.Font = Enum.Font.Gotham titleText.TextSize = 12 titleText.Parent = titleBar local minimizeButton = Instance.new("TextButton") minimizeButton.Name = "MinimizeButton" minimizeButton.Size = UDim2.new(0, 20, 0, 20) minimizeButton.Position = UDim2.new(1, -20, 0, 0) minimizeButton.BackgroundColor3 = Color3.fromRGB(20, 20, 20) minimizeButton.BorderSizePixel = 0 minimizeButton.Text = "_" minimizeButton.TextColor3 = Color3.fromRGB(255, 255, 255) minimizeButton.Font = Enum.Font.Gotham minimizeButton.TextSize = 14 minimizeButton.Parent = titleBar local contentFrame = Instance.new("Frame") contentFrame.Name = "ContentFrame" contentFrame.Size = UDim2.new(1, 0, 1, -20) contentFrame.Position = UDim2.new(0, 0, 0, 20) contentFrame.BackgroundTransparency = 1 contentFrame.Parent = mainFrame local fovLabel = Instance.new("TextLabel") fovLabel.Name = "FOVLabel" fovLabel.Size = UDim2.new(0.8, 0, 0, 20) fovLabel.Position = UDim2.new(0.1, 0, 0.1, 0) fovLabel.BackgroundTransparency = 1 fovLabel.Text = "FOV Size:" fovLabel.TextColor3 = Color3.fromRGB(255, 255, 255) fovLabel.TextXAlignment = Enum.TextXAlignment.Left fovLabel.Font = Enum.Font.Gotham fovLabel.TextSize = 12 fovLabel.Parent = contentFrame local fovTextBox = Instance.new("TextBox") fovTextBox.Name = "FOVTextBox" fovTextBox.Size = UDim2.new(0.3, 0, 0, 20) fovTextBox.Position = UDim2.new(0.6, 0, 0.1, 0) fovTextBox.BackgroundColor3 = Color3.fromRGB(40, 40, 40) fovTextBox.BorderSizePixel = 0 fovTextBox.Text = tostring(getgenv().FOV) fovTextBox.TextColor3 = Color3.fromRGB(255, 255, 255) fovTextBox.Font = Enum.Font.Gotham fovTextBox.TextSize = 12 fovTextBox.Parent = contentFrame local highlightToggleButton = Instance.new("TextButton") highlightToggleButton.Name = "HighlightToggleButton" highlightToggleButton.Size = UDim2.new(0.8, 0, 0, 30) highlightToggleButton.Position = UDim2.new(0.1, 0, 0.4, 0) highlightToggleButton.BackgroundColor3 = Color3.fromRGB(40, 40, 40) highlightToggleButton.BorderSizePixel = 0 highlightToggleButton.Text = "ESP: ON" highlightToggleButton.TextColor3 = Color3.fromRGB(0, 255, 0) highlightToggleButton.Font = Enum.Font.Gotham highlightToggleButton.TextSize = 14 highlightToggleButton.Parent = contentFrame local toggleButton = Instance.new("TextButton") toggleButton.Name = "ToggleButton" toggleButton.Size = UDim2.new(0.8, 0, 0, 30) toggleButton.Position = UDim2.new(0.1, 0, 0.7, 0) toggleButton.BackgroundColor3 = Color3.fromRGB(40, 40, 40) toggleButton.BorderSizePixel = 0 toggleButton.Text = "SilentAim: ON" toggleButton.TextColor3 = Color3.fromRGB(0, 255, 0) toggleButton.Font = Enum.Font.Gotham toggleButton.TextSize = 14 toggleButton.Parent = contentFrame local minimized = false local originalSize = mainFrame.Size local originalPosition = mainFrame.Position local fovCircle = Drawing.new("Circle") fovCircle.Position = currentCamera.ViewportSize * 0.5 fovCircle.Visible = getgenv().Enabled fovCircle.Color = Color3.fromRGB(255, 255, 255) fovCircle.Radius = getgenv().FOV fovCircle.Transparency = 1 fovCircle.Filled = false fovCircle.NumSides = 0 local function createHighlight(character) if not character or not character:IsDescendantOf(workspace) then return end if highlights[character] then highlights[character]:Destroy() highlights[character] = nil end if not character:FindFirstChildOfClass("Humanoid") then local connection connection = character.ChildAdded:Connect(function(child) if child:IsA("Humanoid") then connection:Disconnect() task.wait(0.2) createHighlight(character) end end) return end local highlight = Instance.new("Highlight") highlight.Name = "high" highlight.FillTransparency = 0.5 highlight.OutlineTransparency = 0 highlight.Parent = character local player = players:GetPlayerFromCharacter(character) if player then if player.Team == localPlayer.Team then highlight.FillColor = getgenv().TeamColor highlight.OutlineColor = getgenv().TeamColor else highlight.FillColor = getgenv().EnemyColor highlight.OutlineColor = getgenv().EnemyColor end end highlights[character] = highlight local connection connection = character.AncestryChanged:Connect(function(_, parent) if not parent then if highlights[character] then highlights[character]:Destroy() highlights[character] = nil end connection:Disconnect() end end) local humanoid = character:FindFirstChildOfClass("Humanoid") if humanoid then humanoid.Died:Connect(function() if highlights[character] then highlights[character]:Destroy() highlights[character] = nil end end) end end local function removeHighlight(character) if highlights[character] then highlights[character]:Destroy() highlights[character] = nil end end local function updateHighlights() if not getgenv().HighlightEnabled then for character, highlight in pairs(highlights) do highlight:Destroy() end highlights = {} return end for _, player in players:GetPlayers() do if player == localPlayer then continue end local character = player.Character if character and character:IsDescendantOf(workspace) then if not highlights[character] then createHighlight(character) else local highlight = highlights[character] if player.Team == localPlayer.Team then highlight.FillColor = getgenv().TeamColor highlight.OutlineColor = getgenv().TeamColor else highlight.FillColor = getgenv().EnemyColor highlight.OutlineColor = getgenv().EnemyColor end end end end end local function setupPlayer(player) if player == localPlayer then return end if playerConnections[player] then for _, connection in pairs(playerConnections[player]) do connection:Disconnect() end end playerConnections[player] = {} local charAddedConn = player.CharacterAdded:Connect(function(character) local humanoid = character:WaitForChild("Humanoid") task.wait(0.2) if getgenv().HighlightEnabled then createHighlight(character) end local diedConn = humanoid.Died:Connect(function() if highlights[character] then removeHighlight(character) end end) table.insert(playerConnections[player], diedConn) end) table.insert(playerConnections[player], charAddedConn) if player.Character then if getgenv().HighlightEnabled then createHighlight(player.Character) end end end local function cleanupPlayer(player) if playerConnections[player] then for _, connection in pairs(playerConnections[player]) do connection:Disconnect() end playerConnections[player] = nil end if player.Character and highlights[player.Character] then removeHighlight(player.Character) end end for _, player in players:GetPlayers() do setupPlayer(player) end players.PlayerAdded:Connect(function(player) setupPlayer(player) end) players.PlayerRemoving:Connect(function(player) cleanupPlayer(player) end) local function updateFOV() local newFOV = tonumber(fovTextBox.Text) if newFOV and newFOV > 0 then getgenv().FOV = newFOV fovCircle.Radius = newFOV else fovTextBox.Text = tostring(getgenv().FOV) end end local function toggleAimbot() getgenv().Enabled = not getgenv().Enabled fovCircle.Visible = getgenv().Enabled if getgenv().Enabled then toggleButton.Text = "SilentAim: ON" toggleButton.TextColor3 = Color3.fromRGB(0, 255, 0) else toggleButton.Text = "SilentAim: OFF" toggleButton.TextColor3 = Color3.fromRGB(255, 0, 0) end end local function toggleHighlight() getgenv().HighlightEnabled = not getgenv().HighlightEnabled if getgenv().HighlightEnabled then highlightToggleButton.Text = "ESP: ON" highlightToggleButton.TextColor3 = Color3.fromRGB(0, 255, 0) for _, player in players:GetPlayers() do if player ~= localPlayer and player.Character then createHighlight(player.Character) end end else highlightToggleButton.Text = "ESP: OFF" highlightToggleButton.TextColor3 = Color3.fromRGB(255, 0, 0) for character, highlight in pairs(highlights) do highlight:Destroy() end highlights = {} end end local function toggleMinimize() minimized = not minimized if minimized then mainFrame.Size = UDim2.new(0, 200, 0, 20) minimizeButton.Text = "+" else mainFrame.Size = originalSize minimizeButton.Text = "_" end end local function getClosestPlayer() local closest = nil local closestDistance = math.huge for _, player in players:GetPlayers() do if player == localPlayer or (player.Team == localPlayer.Team and localPlayer.Team ~= nil) then continue end local character = player.Character if not character then continue end local rootPart = character:FindFirstChild("HumanoidRootPart") if not rootPart then continue end local screenPosition, onScreen = currentCamera:WorldToViewportPoint(rootPart.Position) if not onScreen then continue end local screenDistance = (Vector2.new(screenPosition.X, screenPosition.Y) - currentCamera.ViewportSize * 0.5).Magnitude if screenPosition.Z > 0 and screenDistance < getgenv().FOV and screenDistance < closestDistance then closest = character closestDistance = screenDistance end end return closest end fovTextBox.FocusLost:Connect(updateFOV) toggleButton.MouseButton1Click:Connect(toggleAimbot) highlightToggleButton.MouseButton1Click:Connect(toggleHighlight) minimizeButton.MouseButton1Click:Connect(toggleMinimize) for i, func in pairs(raycastModule) do if typeof(func) ~= "function" then continue end raycastModule[i] = function(...) if not getgenv().Enabled then return func(...) end local closestPlayer = getClosestPlayer() if not closestPlayer then return func(...) end return closestPlayer.Head, closestPlayer.Head.Position, Vector3.zero end end currentCamera:GetPropertyChangedSignal("ViewportSize"):Connect(function() fovCircle.Position = currentCamera.ViewportSize * 0.5 end) runService.Heartbeat:Connect(function() if getgenv().HighlightEnabled then updateHighlights() end end) game:GetService("UserInputService").InputBegan:Connect(function(input, processed) if not processed and input.KeyCode == Enum.KeyCode.E then for character, highlight in pairs(highlights) do highlight:Destroy() end highlights = {} for player, connections in pairs(playerConnections) do for _, connection in pairs(connections) do connection:Disconnect() end end playerConnections = {} screenGui:Destroy() for i, func in pairs(raycastModule) do if typeof(func) == "function" then raycastModule[i] = func end end if fovCircle then fovCircle:Remove() end end end)