if not game:IsLoaded() then
if not syn or not protectgui then
getgenv().protectgui = function() end
local SilentAimSettings = {
universal silent aim How to use it? universal silent aim
ClassName = "Universal Silent Aim - Project Redacted",
TargetPart = "HumanoidRootPart",
SilentAimMethod = "Raycast",
universal silent aim How to get it for free? universal silent aim
ShowSilentAimTarget = false,
MouseHitPrediction = false,
MouseHitPredictionAmount = 0.165,
getgenv().SilentAimSettings = Settings
universal silent aim PasteShr universal silent aim
local MainFileName = "UniversalSilentAim"
local SelectedFile, FileToSave = "", ""
local Camera = workspace.CurrentCamera
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local GuiService = game:GetService("GuiService")
local UserInputService = game:GetService("UserInputService")
local HttpService = game:GetService("HttpService")
universal silent aim How to get it for free? universal silent aim
local LocalPlayer = Players.LocalPlayer
local Mouse = LocalPlayer:GetMouse()
local GetChildren = game.GetChildren
local GetPlayers = Players.GetPlayers
local WorldToScreen = Camera.WorldToScreenPoint
local WorldToViewportPoint = Camera.WorldToViewportPoint
local GetPartsObscuringTarget = Camera.GetPartsObscuringTarget
local FindFirstChild = game.FindFirstChild
local RenderStepped = RunService.RenderStepped
universal silent aim How to use it? universal silent aim
local GuiInset = GuiService.GetGuiInset
local GetMouseLocation = UserInputService.GetMouseLocation
local resume = coroutine.resume
local create = coroutine.create
local ValidTargetParts = {"Head", "HumanoidRootPart"}
local PredictionAmount = 0.165
local mouse_box = Drawing.new("Square")
universal silent aim How to get it? universal silent aim
mouse_box.Color = Color3.fromRGB(54, 57, 241)
mouse_box.Size = Vector2.new(20, 20)
local fov_circle = Drawing.new("Circle")
fov_circle.NumSides = 100
universal silent aim PasteShr universal silent aim
fov_circle.Filled = false
fov_circle.Visible = false
fov_circle.Transparency = 1
fov_circle.Color = Color3.fromRGB(54, 57, 241)
local ExpectedArguments = {
FindPartOnRayWithIgnoreList = {
universal silent aim How to dowload it? universal silent aim
"Instance", "Ray", "table", "boolean", "boolean"
FindPartOnRayWithWhitelist = {
"Instance", "Ray", "table", "boolean"
universal silent aim PasteShr universal silent aim
"Instance", "Ray", "Instance", "boolean", "boolean"
"Instance", "Vector3", "Vector3", "RaycastParams"
universal silent aim How to use it? universal silent aim
function CalculateChance(Percentage)
-- // Floor the percentage
Percentage = math.floor(Percentage)
local chance = math.floor(Random.new().NextNumber(Random.new(), 0, 1) * 100) / 100
universal silent aim How to get it? universal silent aim
return chance <= Percentage / 100
if not isfolder(MainFileName) then
makefolder(MainFileName);
universal silent aim How to dowload it? universal silent aim
if not isfolder(string.format("%s/%s", MainFileName, tostring(game.PlaceId))) then
makefolder(string.format("%s/%s", MainFileName, tostring(game.PlaceId)))
local Files = listfiles(string.format("%s/%s", "UniversalSilentAim", tostring(game.PlaceId)))
local function GetFiles() -- credits to the linoria lib for this function, listfiles returns the files full path and its annoying
universal silent aim How to dowload it? universal silent aim
if file:sub(-4) == '.lua' then
-- i hate this but it has to be done ...
local pos = file:find('.lua', 1, true)
local char = file:sub(pos, pos)
universal silent aim How to use it? universal silent aim
while char ~= '/' and char ~= '\\' and char ~= '' do
char = file:sub(pos, pos)
if char == '/' or char == '\\' then
table.insert(out, file:sub(pos + 1, start - 1))
universal silent aim How to get it for free? universal silent aim
local function UpdateFile(FileName)
assert(FileName or FileName == "string", "oopsies");
writefile(string.format("%s/%s/%s.lua", MainFileName, tostring(game.PlaceId), FileName), HttpService:JSONEncode(SilentAimSettings))
local function LoadFile(FileName)
universal silent aim How to dowload it? universal silent aim
assert(FileName or FileName == "string", "oopsies");
local File = string.format("%s/%s/%s.lua", MainFileName, tostring(game.PlaceId), FileName)
local ConfigData = HttpService:JSONDecode(readfile(File))
for Index, Value in next, ConfigData do
SilentAimSettings[Index] = Value
local function getPositionOnScreen(Vector)
universal silent aim How to get it? universal silent aim
local Vec3, OnScreen = WorldToScreen(Camera, Vector)
return Vector2.new(Vec3.X, Vec3.Y), OnScreen
local function ValidateArguments(Args, RayMethod)
if #Args < RayMethod.ArgCountRequired then
for Pos, Argument in next, Args do
universal silent aim How to get it for free? universal silent aim
if typeof(Argument) == RayMethod.Args[Pos] then
return Matches >= RayMethod.ArgCountRequired
local function getDirection(Origin, Position)
return (Position - Origin).Unit * 1000
universal silent aim How to dowload it? universal silent aim
local function getMousePosition()
return GetMouseLocation(UserInputService)
local function IsPlayerVisible(Player)
local PlayerCharacter = Player.Character
local LocalPlayerCharacter = LocalPlayer.Character
if not (PlayerCharacter or LocalPlayerCharacter) then return end
universal silent aim PasteShr universal silent aim
local PlayerRoot = FindFirstChild(PlayerCharacter, Options.TargetPart.Value) or FindFirstChild(PlayerCharacter, "HumanoidRootPart")
if not PlayerRoot then return end
local CastPoints, IgnoreList = {PlayerRoot.Position, LocalPlayerCharacter, PlayerCharacter}, {LocalPlayerCharacter, PlayerCharacter}
local ObscuringObjects = #GetPartsObscuringTarget(Camera, CastPoints, IgnoreList)
return ((ObscuringObjects == 0 and true) or (ObscuringObjects > 0 and false))
universal silent aim How to get it? universal silent aim
local function getClosestPlayer()
if not Options.TargetPart.Value then return end
for _, Player in next, GetPlayers(Players) do
if Player == LocalPlayer then continue end
if Toggles.TeamCheck.Value and Player.Team == LocalPlayer.Team then continue end
local Character = Player.Character
universal silent aim PasteShr universal silent aim
if not Character then continue end
if Toggles.VisibleCheck.Value and not IsPlayerVisible(Player) then continue end
local HumanoidRootPart = FindFirstChild(Character, "HumanoidRootPart")
local Humanoid = FindFirstChild(Character, "Humanoid")
if not HumanoidRootPart or not Humanoid or Humanoid and Humanoid.Health <= 0 then continue end
local ScreenPosition, OnScreen = getPositionOnScreen(HumanoidRootPart.Position)
if not OnScreen then continue end
universal silent aim How to get it? universal silent aim
local Distance = (getMousePosition() - ScreenPosition).Magnitude
if Distance <= (DistanceToMouse or Options.Radius.Value or 2000) then
Closest = ((Options.TargetPart.Value == "Random" and Character[ValidTargetParts[math.random(1, #ValidTargetParts)]]) or Character[Options.TargetPart.Value])
DistanceToMouse = Distance
universal silent aim How to get it for free? universal silent aim
-- ui creating & handling
local Library = loadstring(game:HttpGet("https://raw.githubusercontent.com/violin-suzutsuki/LinoriaLib/main/Library.lua"))()
local Window = Library:CreateWindow("Universal Silent Aim, by Project Redacted")
local GeneralTab = Window:AddTab("General")
local MainBOX = GeneralTab:AddLeftTabbox("Main") do
local Main = MainBOX:AddTab("Main")
Main:AddToggle("aim_Enabled", {Text = "Enabled"}):AddKeyPicker("aim_Enabled_KeyPicker", {Default = "RightAlt", SyncToggleState = true, Mode = "Toggle", Text = "Enabled", NoUI = false});
Options.aim_Enabled_KeyPicker:OnClick(function()
universal silent aim How to get it? universal silent aim
SilentAimSettings.Enabled = not SilentAimSettings.Enabled
Toggles.aim_Enabled.Value = SilentAimSettings.Enabled
Toggles.aim_Enabled:SetValue(SilentAimSettings.Enabled)
mouse_box.Visible = SilentAimSettings.Enabled
Main:AddToggle("TeamCheck", {Text = "Team Check", Default = SilentAimSettings.TeamCheck}):OnChanged(function()
SilentAimSettings.TeamCheck = Toggles.TeamCheck.Value
universal silent aim How to dowload it? universal silent aim
Main:AddToggle("VisibleCheck", {Text = "Visible Check", Default = SilentAimSettings.VisibleCheck}):OnChanged(function()
SilentAimSettings.VisibleCheck = Toggles.VisibleCheck.Value
Main:AddDropdown("TargetPart", {Text = "Target Part", Default = SilentAimSettings.TargetPart, Values = {"Head", "HumanoidRootPart", "Random"}}):OnChanged(function()
SilentAimSettings.TargetPart = Options.TargetPart.Value
Main:AddDropdown("Method", {Text = "Silent Aim Method", Default = SilentAimSettings.SilentAimMethod, Values = {
"Raycast","FindPartOnRay",
"FindPartOnRayWithWhitelist",
universal silent aim How to dowload it? universal silent aim
"FindPartOnRayWithIgnoreList",
SilentAimSettings.SilentAimMethod = Options.Method.Value
Main:AddSlider('HitChance', {
universal silent aim How to use it? universal silent aim
Options.HitChance:OnChanged(function()
SilentAimSettings.HitChance = Options.HitChance.Value
local MiscellaneousBOX = GeneralTab:AddLeftTabbox("Miscellaneous")
universal silent aim PasteShr universal silent aim
local FieldOfViewBOX = GeneralTab:AddLeftTabbox("Field Of View") do
local Main = FieldOfViewBOX:AddTab("Visuals")
Main:AddToggle("Visible", {Text = "Show FOV Circle"}):AddColorPicker("Color", {Default = Color3.fromRGB(54, 57, 241)}):OnChanged(function()
fov_circle.Visible = Toggles.Visible.Value
SilentAimSettings.FOVVisible = Toggles.Visible.Value
Main:AddSlider("Radius", {Text = "FOV Circle Radius", Min = 0, Max = 360, Default = 130, Rounding = 0}):OnChanged(function()
fov_circle.Radius = Options.Radius.Value
SilentAimSettings.FOVRadius = Options.Radius.Value
universal silent aim How to dowload it? universal silent aim
Main:AddToggle("MousePosition", {Text = "Show Silent Aim Target"}):AddColorPicker("MouseVisualizeColor", {Default = Color3.fromRGB(54, 57, 241)}):OnChanged(function()
mouse_box.Visible = Toggles.MousePosition.Value
SilentAimSettings.ShowSilentAimTarget = Toggles.MousePosition.Value
local PredictionTab = MiscellaneousBOX:AddTab("Prediction")
PredictionTab:AddToggle("Prediction", {Text = "Mouse.Hit/Target Prediction"}):OnChanged(function()
SilentAimSettings.MouseHitPrediction = Toggles.Prediction.Value
PredictionTab:AddSlider("Amount", {Text = "Prediction Amount", Min = 0.165, Max = 1, Default = 0.165, Rounding = 3}):OnChanged(function()
universal silent aim How to use it? universal silent aim
PredictionAmount = Options.Amount.Value
SilentAimSettings.MouseHitPredictionAmount = Options.Amount.Value
local CreateConfigurationBOX = GeneralTab:AddRightTabbox("Create Configuration") do
local Main = CreateConfigurationBOX:AddTab("Create Configuration")
Main:AddInput("CreateConfigTextBox", {Default = "", Numeric = false, Finished = false, Text = "Create Configuration to Create", Tooltip = "Creates a configuration file containing settings you can save and load", Placeholder = "File Name here"}):OnChanged(function()
if Options.CreateConfigTextBox.Value and string.len(Options.CreateConfigTextBox.Value) ~= "" then
universal silent aim How to dowload it? universal silent aim
FileToSave = Options.CreateConfigTextBox.Value
Main:AddButton("Create Configuration File", function()
if FileToSave ~= "" or FileToSave ~= nil then
universal silent aim PasteShr universal silent aim
local SaveConfigurationBOX = GeneralTab:AddRightTabbox("Save Configuration") do
local Main = SaveConfigurationBOX:AddTab("Save Configuration")
Main:AddDropdown("SaveConfigurationDropdown", {Values = GetFiles(), Text = "Choose Configuration to Save"})
Main:AddButton("Save Configuration", function()
if Options.SaveConfigurationDropdown.Value then
UpdateFile(Options.SaveConfigurationDropdown.Value)
universal silent aim How to get it for free? universal silent aim
local LoadConfigurationBOX = GeneralTab:AddRightTabbox("Load Configuration") do
local Main = LoadConfigurationBOX:AddTab("Load Configuration")
Main:AddDropdown("LoadConfigurationDropdown", {Values = GetFiles(), Text = "Choose Configuration to Load"})
Main:AddButton("Load Configuration", function()
if table.find(GetFiles(), Options.LoadConfigurationDropdown.Value) then
LoadFile(Options.LoadConfigurationDropdown.Value)
Toggles.TeamCheck:SetValue(SilentAimSettings.TeamCheck)
universal silent aim How to get it? universal silent aim
Toggles.VisibleCheck:SetValue(SilentAimSettings.VisibleCheck)
Options.TargetPart:SetValue(SilentAimSettings.TargetPart)
Options.Method:SetValue(SilentAimSettings.SilentAimMethod)
Toggles.Visible:SetValue(SilentAimSettings.FOVVisible)
Options.Radius:SetValue(SilentAimSettings.FOVRadius)
Toggles.MousePosition:SetValue(SilentAimSettings.ShowSilentAimTarget)
Toggles.Prediction:SetValue(SilentAimSettings.MouseHitPrediction)
Options.Amount:SetValue(SilentAimSettings.MouseHitPredictionAmount)
Options.HitChance:SetValue(SilentAimSettings.HitChance)
universal silent aim How to use it? universal silent aim
RenderStepped:Connect(function()
if Toggles.MousePosition.Value and Toggles.aim_Enabled.Value then
if getClosestPlayer() then
local Root = getClosestPlayer().Parent.PrimaryPart or getClosestPlayer()
local RootToViewportPoint, IsOnScreen = WorldToViewportPoint(Camera, Root.Position);
-- using PrimaryPart instead because if your Target Part is "Random" it will flicker the square between the Target's Head and HumanoidRootPart (its annoying)
universal silent aim How to use it? universal silent aim
mouse_box.Visible = IsOnScreen
mouse_box.Position = Vector2.new(RootToViewportPoint.X, RootToViewportPoint.Y)
mouse_box.Visible = false
mouse_box.Position = Vector2.new()
if Toggles.Visible.Value then
universal silent aim How to dowload it? universal silent aim
fov_circle.Visible = Toggles.Visible.Value
fov_circle.Color = Options.Color.Value
fov_circle.Position = getMousePosition()
oldNamecall = hookmetamethod(game, "__namecall", newcclosure(function(...)
universal silent aim How to dowload it? universal silent aim
local Method = getnamecallmethod()
local self = Arguments[1]
local chance = CalculateChance(SilentAimSettings.HitChance)
if Toggles.aim_Enabled.Value and self == workspace and not checkcaller() and chance == true then
if Method == "FindPartOnRayWithIgnoreList" and Options.Method.Value == Method then
if ValidateArguments(Arguments, ExpectedArguments.FindPartOnRayWithIgnoreList) then
local A_Ray = Arguments[2]
local HitPart = getClosestPlayer()
universal silent aim How to use it? universal silent aim
local Origin = A_Ray.Origin
local Direction = getDirection(Origin, HitPart.Position)
Arguments[2] = Ray.new(Origin, Direction)
return oldNamecall(unpack(Arguments))
elseif Method == "FindPartOnRayWithWhitelist" and Options.Method.Value == Method then
if ValidateArguments(Arguments, ExpectedArguments.FindPartOnRayWithWhitelist) then
universal silent aim PasteShr universal silent aim
local A_Ray = Arguments[2]
local HitPart = getClosestPlayer()
local Origin = A_Ray.Origin
local Direction = getDirection(Origin, HitPart.Position)
Arguments[2] = Ray.new(Origin, Direction)
return oldNamecall(unpack(Arguments))
universal silent aim PasteShr universal silent aim
elseif (Method == "FindPartOnRay" or Method == "findPartOnRay") and Options.Method.Value:lower() == Method:lower() then
if ValidateArguments(Arguments, ExpectedArguments.FindPartOnRay) then
local A_Ray = Arguments[2]
local HitPart = getClosestPlayer()
local Origin = A_Ray.Origin
local Direction = getDirection(Origin, HitPart.Position)
Arguments[2] = Ray.new(Origin, Direction)
universal silent aim PasteShr universal silent aim
return oldNamecall(unpack(Arguments))
elseif Method == "Raycast" and Options.Method.Value == Method then
if ValidateArguments(Arguments, ExpectedArguments.Raycast) then
local A_Origin = Arguments[2]
local HitPart = getClosestPlayer()
universal silent aim PasteShr universal silent aim
Arguments[3] = getDirection(A_Origin, HitPart.Position)
return oldNamecall(unpack(Arguments))
universal silent aim PasteShr universal silent aim
oldIndex = hookmetamethod(game, "__index", newcclosure(function(self, Index)
if self == Mouse and not checkcaller() and Toggles.aim_Enabled.Value and Options.Method.Value == "Mouse.Hit/Target" and getClosestPlayer() then
local HitPart = getClosestPlayer()
if Index == "Target" or Index == "target" then
elseif Index == "Hit" or Index == "hit" then
return ((Toggles.Prediction.Value and (HitPart.CFrame + (HitPart.Velocity * PredictionAmount))) or (not Toggles.Prediction.Value and HitPart.CFrame))
elseif Index == "X" or Index == "x" then
universal silent aim How to dowload it? universal silent aim
elseif Index == "Y" or Index == "y" then
elseif Index == "UnitRay" then
return Ray.new(self.Origin, (self.Hit - self.Origin).Unit)
return oldIndex(self, Index)
universal silent aim How to get it for free? universal silent aim