
Keyless

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local LocalPlayer = Players.LocalPlayer
local Camera = workspace.CurrentCamera
workspace:GetPropertyChangedSignal("CurrentCamera"):Connect(function()
Camera = workspace.CurrentCamera
end)
local Settings = {
SilentAimEnabled = true,
HeadChance = 10,
FOVRadius = 180,
}
local NonHeadParts = {
"Torso",
"HumanoidRootPart",
"UpperTorso",
"LowerTorso",
"Left Arm",
"Right Arm",
"Left Leg",
"Right Leg",
"LeftUpperArm",
"LeftLowerArm",
"LeftHand",
"RightUpperArm",
"RightLowerArm",
"RightHand",
"LeftUpperLeg",
"LeftLowerLeg",
"LeftFoot",
"RightUpperLeg",
"RightLowerLeg",
"RightFoot",
}
local FOVCircle = Drawing.new("Circle")
FOVCircle.Visible = true
FOVCircle.Thickness = 1
FOVCircle.Radius = Settings.FOVRadius
FOVCircle.Transparency = 0.7
FOVCircle.Color = Color3.fromRGB(255, 255, 255)
FOVCircle.Filled = false
RunService.RenderStepped:Connect(function()
FOVCircle.Position = UserInputService:GetMouseLocation()
FOVCircle.Radius = Settings.FOVRadius
FOVCircle.Visible = Settings.SilentAimEnabled
end)
local function GetRandomBodyPart(TargetCharacter)
if math.random(1, 100) <= Settings.HeadChance then
local Head = TargetCharacter:FindFirstChild("Head") or TargetCharacter:FindFirstChild("HeadHitbox")
if Head then
return Head, true
end
end
local ValidParts = {}
for _, PartName in ipairs(NonHeadParts) do
local Part = TargetCharacter:FindFirstChild(PartName)
if Part then
table.insert(ValidParts, Part)
end
end
if #ValidParts > 0 then
return ValidParts[math.random(1, #ValidParts)], false
end
local Head = TargetCharacter:FindFirstChild("Head") or TargetCharacter:FindFirstChild("HeadHitbox")
if Head then
return Head, true
end
return nil, false
end
local function IsInFOV(WorldPosition)
if not Camera then
return false, math.huge
end
local ScreenPos, OnScreen = Camera:WorldToViewportPoint(WorldPosition)
if not OnScreen then
return false, math.huge
end
local MousePos = UserInputService:GetMouseLocation()
local Distance = (Vector2.new(ScreenPos.X, ScreenPos.Y) - MousePos).Magnitude
return Distance <= Settings.FOVRadius, Distance
end
local function IsVisible(Origin, TargetPosition)
local Params = RaycastParams.new()
Params.FilterType = Enum.RaycastFilterType.Exclude
local FilterList = {}
if LocalPlayer.Character then
table.insert(FilterList, LocalPlayer.Character)
end
local EffectsFolder = workspace:FindFirstChild("Effects")
if EffectsFolder then
table.insert(FilterList, EffectsFolder)
end
for _, Player in ipairs(Players:GetPlayers()) do
if Player.Character then
table.insert(FilterList, Player.Character)
end
end
Params.FilterDescendantsInstances = FilterList
local Direction = TargetPosition - Origin
local Result = workspace:Raycast(Origin, Direction, Params)
return Result == nil
end
local function GetClosestEnemy()
local ClosestPlayer = nil
local ClosestDistance = math.huge
for _, Player in ipairs(Players:GetPlayers()) do
if Player ~= LocalPlayer and Player.Character then
local Character = Player.Character
local Humanoid = Character:FindFirstChildOfClass("Humanoid")
if Humanoid and Humanoid.Health > 0 and not Character:FindFirstChild("SpawnProtection") then
local HRP = Character:FindFirstChild("HumanoidRootPart")
if HRP then
local InFOV, Distance = IsInFOV(HRP.Position)
if InFOV and Distance < ClosestDistance then
ClosestPlayer = Player
ClosestDistance = Distance
end
end
end
end
end
return ClosestPlayer
end
local OldNamecall
OldNamecall = hookmetamethod(game, "__namecall", newcclosure(function(Self, ...)
local Method = getnamecallmethod()
local Args = {...}
if Settings.SilentAimEnabled and Method == "FireServer" and #Args >= 1 and typeof(Args[1]) == "table" then
local Packet = Args[1]
if typeof(Packet.origin) == "Vector3" and typeof(Packet.direction) == "Vector3" then
local TargetPlayer = GetClosestEnemy()
if TargetPlayer and TargetPlayer.Character then
local Character = TargetPlayer.Character
local Humanoid = Character:FindFirstChildOfClass("Humanoid")
if Humanoid and Humanoid.Health > 0 then
local TargetPart, IsHeadshot = GetRandomBodyPart(Character)
if TargetPart then
local Origin = Packet.origin
if IsVisible(Origin, TargetPart.Position) then
Packet.direction = (TargetPart.Position - Origin).Unit
Packet.hitPosition = TargetPart.Position
Packet.hitInstance = TargetPart
Packet.hitHumanoid = Humanoid
Packet.IsHeadshot = IsHeadshot or TargetPart.Name == "Head" or TargetPart.Name == "HeadHitbox"
setnamecallmethod(Method)
return OldNamecall(Self, Packet)
end
end
end
end
end
end
setnamecallmethod(Method)
return OldNamecall(Self, ...)
end))
w
Why does the circle move with my fingers?
@HCZyu get a pc :D
how do i use this? is there a keybind?
doesnt work brother fix it aimbot or anythign doesnt work js a circle unsfull fix it
i recommend locking the radius fov on the center because the mobile players are unable to use the script.