local library = loadstring(game:HttpGet('https://pastebin.com/raw/edJT9EGX', true))() local plrs = game:service('Players') local local_plr = plrs.LocalPlayer local camera = workspace.CurrentCamera local mouse = local_plr:GetMouse() local WorldToViewportPoint = camera.WorldToViewportPoint fov = {} local main_window = library:CreateWindow('Main') main_window:AddToggle({text = 'Silent Aim', flag = 'silent_aim'}) main_window:AddToggle({text = 'No Reload', flag = 'no_reload'}) function is_valid_plr(plr) return plr.ClassName == 'Player' and plr.Character and plr.Character:FindFirstChild('Humanoid') and plr.Character:FindFirstChild('HumanoidRootPart') and plr.Character.Humanoid.Health > 0 and plr.Name ~= local_plr.Name and local_plr.Character:FindFirstChild('TEAM') and plr.Character:FindFirstChild('TEAM') and plr.Character.TEAM.Value ~= local_plr.Character.TEAM.Value and true or false end function get_target_plr() local max_distance = math.huge for i,v in next, plrs:GetPlayers() do if local_plr.Character and is_valid_plr(v) then local position, onscreen = WorldToViewportPoint(camera, v.Character.HumanoidRootPart.Position) local magnitude = (Vector2.new(position.X, position.Y) - Vector2.new(mouse.X, mouse.Y)).magnitude if magnitude < max_distance then target = v max_distance = magnitude end end end return target end local v2 = require(game.ReplicatedStorage.Functions.GunRayCastModule) function ray_cast(p1, p2, p3, p4) local v43, v44, v45 = v2.CastRay(local_plr, p1, p2, p3, p4, false); return v43, v44, v45 end function do_silent_aim(char) char.ChildAdded:connect(function(weapon) if weapon:FindFirstChild('LocalGunHeld') then local handlepart = weapon.HandlePart local x = getsenv(weapon.LocalGunHeld) local old_fire = x.Fire local old_reload = x.Reload x.Fire = newcclosure(function() local target = get_target_plr() if library.flags['silent_aim'] and target and in_fov(target) then local plr_dir = CFrame.lookAt(camera.CFrame.p, target.Character.Head.CFrame.p) local v46 = plr_dir * CFrame.Angles(0, 0, 0) local v48, v49, v50 = ray_cast(v46.Position, v46.lookVector, 5000, weapon) v48 = target.Character.Head game:service('ReplicatedStorage').ShootEvent:FireServer(v46, v46.lookVector, weapon, weapon.Variables, v48, v49) local_plr.PlayerScripts.BulletVisualizerScript.Visualize:Fire(nil, handlepart, v49, 'Bullet', 'None', v48, nil, v46.lookVector, v50, 10) return else return old_fire() end end) x.Reload = newcclosure(function() if library.flags['no_reload'] then weapon.Variables.Reloading.Value = true x.UpdateGUI() game:service('ReplicatedStorage').ReloadEvent:FireServer(weapon) weapon.Variables.CurrentMag.Value = weapon.Variables.AmmoPerMag.Value weapon.Variables.Reloading.Value = false x.UpdateGUI() return end return old_reload() end) x.ShakeCamera = function() return end end end) end local_plr.CharacterAdded:connect(function(char) do_silent_aim(char) end) local settings = library:CreateWindow('Settings') settings:AddSlider({text = 'FOV', flag = 'fov_size', min = 1, max = 1000}) settings:AddBind({text = 'Toggle UI', key = 'RightShift', callback = function() library:Close() end}) function update_fov() if not fov.fov then fov.fov = Drawing.new('Circle') fov.fov.Visible = false fov.fov.Thickness = 1 fov.fov.NumSides = 360 fov.fov.Filled = false end if not fov.target then fov.target = Drawing.new('Text') fov.target.Visible = false fov.target.Text = '' fov.target.Size = 16 fov.target.Center = false fov.target.Outline = true fov.target.Font = 0 fov.target.Color = Color3.new(1, 1, 1) end fov.fov.Visible = true fov.fov.Radius = library.flags['fov_size'] fov.fov.Color = Color3.new(1, 1, 1) fov.fov.Transparency = 1 fov.fov.Position = Vector2.new(mouse.X, mouse.Y + game:GetService('GuiService'):GetGuiInset().Y) end function in_fov(target) local min = math.huge local fov_dist = math.huge local is_in_fov = false if is_valid_plr(target) then local screenpoint, visible = WorldToViewportPoint(camera, target.Character.HumanoidRootPart.Position) fov_dist = (Vector2.new(mouse.X, mouse.Y) - Vector2.new(screenpoint.X, screenpoint.Y)).magnitude fov_dist = (fov_dist <= library.flags['fov_size']) and fov_dist or math.huge if fov_dist < min then min = fov_dist is_in_fov = true end end return is_in_fov end game:service('RunService').RenderStepped:connect(function() update_fov() end) library:Init()