Run it
Copy the script and paste it into your executor.
Players = :()
UserInputService = :()
RunService = :()
player = Players.LocalPlayer
camera = .CurrentCamera
settings = {
fovRadius = ,
fovCircleColor = .(, , ),
fovCircleTransparency = ,
lockOnTextColor = .(, , ),
lockOnTextSize = ,
wallCheckEnabled = ,
hitParts = {, , , , }
}
aimAssistEnabled =
fovCircle, lockOnLabel
()
existingGui = player.PlayerGui:()
existingGui
existingGui:()
screenGui = .()
screenGui.Name =
screenGui.Parent = player:()
fovCircle = .()
fovCircle.Size = .(, settings.fovRadius * , , settings.fovRadius * )
fovCircle.Position = .(, -settings.fovRadius, , -settings.fovRadius)
fovCircle.BackgroundColor3 = settings.fovCircleColor
fovCircle.BackgroundTransparency = settings.fovCircleTransparency
fovCircle.BorderSizePixel =
fovCircle.Parent = screenGui
uicorner = .()
uicorner.CornerRadius = .(, )
uicorner.Parent = fovCircle
lockOnLabel = .()
lockOnLabel.Size = .(, , , )
lockOnLabel.Position = .(, , , )
lockOnLabel.BackgroundTransparency =
lockOnLabel.Text =
lockOnLabel.TextColor3 = settings.lockOnTextColor
lockOnLabel.TextScaled =
lockOnLabel.TextSize = settings.lockOnTextSize
lockOnLabel.Visible =
lockOnLabel.Parent = screenGui
(part)
part
screenPoint, onScreen = camera:(part.Position)
targetPosition = .(screenPoint.X, screenPoint.Y)
fovCenter = .(fovCircle.AbsolutePosition.X + settings.fovRadius, fovCircle.AbsolutePosition.Y + settings.fovRadius)
(targetPosition - fovCenter).Magnitude <= settings.fovRadius onScreen
(part)
part
rayOrigin = camera.CFrame.Position
direction = (part.Position - rayOrigin).unit * (part.Position - rayOrigin).Magnitude
ray = Ray.(rayOrigin, direction)
hitPart = :(ray, player.Character)
hitPart hitPart:(part.Parent)
()
closestPlayer, closestPart, shortestDistance = , , .huge
_, targetPlayer (Players:())
targetPlayer ~= player targetPlayer.Character
character = targetPlayer.Character
_, partName (settings.hitParts)
part = character:(partName)
part (part)
screenPoint, onScreen = camera:(part.Position)
distance = (.(screenPoint.X, screenPoint.Y) - .(camera.ViewportSize.X / , camera.ViewportSize.Y / )).Magnitude
distance < shortestDistance onScreen
settings.wallCheckEnabled (part)
closestPlayer = targetPlayer
closestPart = part
shortestDistance = distance
closestPlayer, closestPart
RunService.RenderStepped:(()
aimAssistEnabled
targetPlayer, targetPart = ()
targetPlayer targetPart
lockOnLabel.Text = .. targetPlayer.Name
lockOnLabel.Visible =
aimDirection = (targetPart.Position - camera.CFrame.Position).unit
camera.CFrame = .(camera.CFrame.Position, camera.CFrame.Position + aimDirection)
lockOnLabel.Visible =
lockOnLabel.Visible =
)
UserInputService.InputBegan:((input)
input.KeyCode == .KeyCode.E
aimAssistEnabled =
)
UserInputService.InputEnded:((input)
input.KeyCode == .KeyCode.E
aimAssistEnabled =
)
player.CharacterAdded:(()
()
)
player.Character
()
Its really simple. BETA version . now its really universal wallcheck hitpart fov locked player will be: better fov better gui (for locked player gui) outlines esp teamcheck different keybinds i will add more

Universal