Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Global Settings (Adjustable via getgenv())
- getgenv().SilentAimEnabled = true -- Toggle silent aim on/off
- getgenv().HitPart = "Head" -- The part to target (e.g., "Head" or "HumanoidRootPart")
- getgenv().Prediction = 0.1 -- Adjust for bullet travel time if necessary
- getgenv().ShowFOV = true -- Toggle the FOV circle visibility
- getgenv().FOVSize = 50 -- Radius of the silent aim FOV circle
- -- Dependencies
- local Players = game:GetService("Players")
- local RunService = game:GetService("RunService")
- local Camera = workspace.CurrentCamera
- -- FOV Circle
- local SilentAimFOV = Drawing.new("Circle")
- SilentAimFOV.Visible = getgenv().ShowFOV
- SilentAimFOV.Color = Color3.new(1, 0, 0)
- SilentAimFOV.Thickness = 2
- SilentAimFOV.Filled = false
- SilentAimFOV.Transparency = 1
- SilentAimFOV.Radius = getgenv().FOVSize
- -- Update FOV Circle Position
- RunService.RenderStepped:Connect(function()
- SilentAimFOV.Visible = getgenv().ShowFOV
- SilentAimFOV.Position = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2)
- SilentAimFOV.Radius = getgenv().FOVSize
- end)
- -- Function to Find Closest Target
- local function getClosestPlayer()
- local localPlayer = Players.LocalPlayer
- local closestPlayer = nil
- local shortestDistance = getgenv().FOVSize
- for _, player in ipairs(Players:GetPlayers()) do
- if player ~= localPlayer and player.Character and player.Character:FindFirstChild(getgenv().HitPart) then
- local hitPart = player.Character[getgenv().HitPart]
- local screenPosition, onScreen = Camera:WorldToViewportPoint(hitPart.Position)
- if onScreen then
- local mousePosition = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2)
- local distance = (mousePosition - Vector2.new(screenPosition.X, screenPosition.Y)).Magnitude
- if distance < shortestDistance then
- closestPlayer = player
- shortestDistance = distance
- end
- end
- end
- end
- return closestPlayer
- end
- -- Metatable Hook
- local mt = getrawmetatable(game)
- local oldNamecall = mt.__namecall
- setreadonly(mt, false)
- mt.__namecall = newcclosure(function(self, ...)
- local args = {...}
- local method = getnamecallmethod()
- if getgenv().SilentAimEnabled and tostring(method) == "FireServer" and args[2] == "UpdateMousePos" then
- local target = getClosestPlayer()
- if target and target.Character and target.Character:FindFirstChild(getgenv().HitPart) then
- local hitPart = target.Character[getgenv().HitPart]
- args[3] = hitPart.Position + (hitPart.Velocity * getgenv().Prediction)
- end
- return oldNamecall(self, unpack(args))
- end
- return oldNamecall(self, ...)
- end)
- setreadonly(mt, true)
- print("Silent Aim script loaded!")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement