-- When the player right-clicks, the script will automatically fire continuously. -- When the player left-clicks, the script will fire a single bullet. If the player were to regularly hold the left click to allow the gun to go full auto, the silent aim would not go into full effect. -- Due to the way I manipulate the camera, it is necessary to implement the shooting mechanics in this specific manner. -- WORKS ON ALL EXECUTORS print("works") local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local localPlayer = Players.LocalPlayer local camera = workspace.CurrentCamera local targetPlayer = nil local ClickInterval = 0.10 local isLeftMouseDown = false local isRightMouseDown = false local autoClickConnection = nil local function isLobbyVisible() return localPlayer.PlayerGui.MainGui.MainFrame.Lobby.Currency.Visible == true end local function getClosestPlayerToMouse() local closestPlayer = nil local shortestDistance = math.huge local mousePosition = UserInputService:GetMouseLocation() for _, player in ipairs(Players:GetPlayers()) do if player ~= localPlayer and player.Character and player.Character:FindFirstChild("Head") then local head = player.Character.Head local headPosition, onScreen = camera:WorldToViewportPoint(head.Position) if onScreen then local screenPosition = Vector2.new(headPosition.X, headPosition.Y) local distance = (screenPosition - mousePosition).Magnitude if distance < shortestDistance then closestPlayer = player shortestDistance = distance end end end end return closestPlayer end local function lockCameraToHead() if targetPlayer and targetPlayer.Character and targetPlayer.Character:FindFirstChild("Head") then local head = targetPlayer.Character.Head local headPosition = camera:WorldToViewportPoint(head.Position) if headPosition.Z > 0 then local cameraPosition = camera.CFrame.Position local direction = (head.Position - cameraPosition).Unit camera.CFrame = CFrame.new(cameraPosition, head.Position) end end end local function autoClick() if autoClickConnection then autoClickConnection:Disconnect() end autoClickConnection = RunService.Heartbeat:Connect(function() if isLeftMouseDown or isRightMouseDown then if not isLobbyVisible() then mouse1click() end else autoClickConnection:Disconnect() end end) end UserInputService.InputBegan:Connect(function(input, isProcessed) if input.UserInputType == Enum.UserInputType.MouseButton1 and not isProcessed then if not isLeftMouseDown then isLeftMouseDown = true autoClick() end elseif input.UserInputType == Enum.UserInputType.MouseButton2 and not isProcessed then if not isRightMouseDown then isRightMouseDown = true autoClick() end end end) UserInputService.InputEnded:Connect(function(input, isProcessed) if input.UserInputType == Enum.UserInputType.MouseButton1 and not isProcessed then isLeftMouseDown = false elseif input.UserInputType == Enum.UserInputType.MouseButton2 and not isProcessed then isRightMouseDown = false end end) RunService.Heartbeat:Connect(function() if not isLobbyVisible() then targetPlayer = getClosestPlayerToMouse() if targetPlayer then lockCameraToHead() end end end)