
KeylessUniversal

local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local LocalPlayer = Players.LocalPlayer
local Camera = workspace.CurrentCamera
-- НАСТРОЙКИ
local FOV_RADIUS = 150
local MIN_FOV = 50
local MAX_FOV = 400
local AimLockEnabled = false
local ESPEnabled = false
local WallCheckEnabled = true
local FOVEnabled = true
local Highlights = {}
-- GUI
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "AimLockGUI"
ScreenGui.ResetOnSpawn = false
ScreenGui.Parent = LocalPlayer:WaitForChild("PlayerGui")
-- ПАНЕЛЬ
local Panel = Instance.new("Frame")
Panel.Parent = ScreenGui
Panel.Size = UDim2.fromOffset(200, 260)
Panel.Position = UDim2.new(0.5, -100, 0.7, 0)
Panel.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
Panel.BorderSizePixel = 0
Panel.Active = true
local PanelCorner = Instance.new("UICorner")
PanelCorner.CornerRadius = UDim.new(0, 8)
PanelCorner.Parent = Panel
-- ФУНКЦИЯ СОЗДАНИЯ КНОПОК
local function CreateButton(text, position, size)
local Button = Instance.new("TextButton")
Button.Parent = Panel
Button.Size = size
Button.Position = position
Button.Text = text
Button.TextScaled = true
Button.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
Button.TextColor3 = Color3.fromRGB(255, 255, 255)
Button.BorderSizePixel = 0
local Corner = Instance.new("UICorner")
Corner.CornerRadius = UDim.new(0, 6)
Corner.Parent = Button
return Button
end
-- AIMLOCK
local AimButton = CreateButton(
"AimLock: HOLD RMB",
UDim2.fromOffset(5, 5),
UDim2.new(1, -10, 0, 40)
)
-- ESP
local ESPButton = CreateButton(
"ESP: OFF",
UDim2.fromOffset(5, 50),
UDim2.new(1, -10, 0, 40)
)
-- WALL CHECK
local WallButton = CreateButton(
"WallCheck: ON",
UDim2.fromOffset(5, 95),
UDim2.new(1, -10, 0, 40)
)
WallButton.BackgroundColor3 = Color3.fromRGB(40, 150, 60)
-- FOV
local FOVButton = CreateButton(
"FOV: ON",
UDim2.fromOffset(5, 140),
UDim2.new(1, -10, 0, 40)
)
FOVButton.BackgroundColor3 = Color3.fromRGB(40, 150, 60)
-- КНОПКА ЗАКРЫТИЯ
local CloseButton = Instance.new("TextButton")
CloseButton.Parent = Panel
CloseButton.Size = UDim2.fromOffset(28, 28)
CloseButton.Position = UDim2.new(1, -33, 0, 5)
CloseButton.Text = "X"
CloseButton.TextScaled = true
CloseButton.BackgroundColor3 = Color3.fromRGB(180, 50, 50)
CloseButton.TextColor3 = Color3.fromRGB(255, 255, 255)
CloseButton.BorderSizePixel = 0
local CloseCorner = Instance.new("UICorner")
CloseCorner.CornerRadius = UDim.new(0, 6)
CloseCorner.Parent = CloseButton
-- FOV SLIDER
local SliderBackground = Instance.new("Frame")
SliderBackground.Parent = Panel
SliderBackground.Size = UDim2.new(1, -30, 0, 6)
SliderBackground.Position = UDim2.fromOffset(15, 195)
SliderBackground.BackgroundColor3 = Color3.fromRGB(100, 100, 100)
SliderBackground.BorderSizePixel = 0
local SliderCorner = Instance.new("UICorner")
SliderCorner.CornerRadius = UDim.new(1, 0)
SliderCorner.Parent = SliderBackground
local SliderButton = Instance.new("TextButton")
SliderButton.Parent = SliderBackground
SliderButton.Size = UDim2.fromOffset(16, 16)
SliderButton.AnchorPoint = Vector2.new(0.5, 0.5)
local StartPercent =
(FOV_RADIUS - MIN_FOV) / (MAX_FOV - MIN_FOV)
SliderButton.Position = UDim2.new(StartPercent, 0, 0.5, 0)
SliderButton.Text = ""
SliderButton.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
SliderButton.BorderSizePixel = 0
SliderButton.AutoButtonColor = false
local SliderButtonCorner = Instance.new("UICorner")
SliderButtonCorner.CornerRadius = UDim.new(1, 0)
SliderButtonCorner.Parent = SliderButton
-- ТЕКСТ FOV
local FOVLabel = Instance.new("TextLabel")
FOVLabel.Parent = Panel
FOVLabel.Size = UDim2.new(1, 0, 0, 25)
FOVLabel.Position = UDim2.fromOffset(0, 205)
FOVLabel.Text = "FOV: " .. FOV_RADIUS
FOVLabel.TextScaled = true
FOVLabel.BackgroundTransparency = 1
FOVLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
-- ПЕРЕТАСКИВАНИЕ ПАНЕЛИ
local dragging = false
local dragStart
local startPos
Panel.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1
or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPos = Panel.Position
end
end)
UserInputService.InputChanged:Connect(function(input)
if dragging and (
input.UserInputType == Enum.UserInputType.MouseMovement
or input.UserInputType == Enum.UserInputType.Touch
) then
local delta = input.Position - dragStart
Panel.Position = UDim2.new(
startPos.X.Scale,
startPos.X.Offset + delta.X,
startPos.Y.Scale,
startPos.Y.Offset + delta.Y
)
end
end)
UserInputService.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1
or input.UserInputType == Enum.UserInputType.Touch then
dragging = false
end
end)
-- ЗАКРЫТИЕ ПАНЕЛИ
CloseButton.MouseButton1Click:Connect(function()
Panel.Visible = false
end)
-- RIGHT SHIFT ОТКРЫТЬ / ЗАКРЫТЬ
UserInputService.InputBegan:Connect(function(input, processed)
if processed then return end
if input.KeyCode == Enum.KeyCode.RightShift then
Panel.Visible = not Panel.Visible
end
end)
-- FOV КРУГ
local FOVCircle = Instance.new("Frame")
FOVCircle.Parent = ScreenGui
FOVCircle.AnchorPoint = Vector2.new(0.5, 0.5)
FOVCircle.BackgroundTransparency = 1
FOVCircle.BorderSizePixel = 0
local CircleCorner = Instance.new("UICorner")
CircleCorner.CornerRadius = UDim.new(1, 0)
CircleCorner.Parent = FOVCircle
local CircleStroke = Instance.new("UIStroke")
CircleStroke.Parent = FOVCircle
CircleStroke.Thickness = 2
CircleStroke.Color = Color3.fromRGB(255, 255, 255)
local function UpdateFOV()
FOVCircle.Size = UDim2.fromOffset(
FOV_RADIUS * 2,
FOV_RADIUS * 2
)
FOVLabel.Text = "FOV: " .. math.floor(FOV_RADIUS)
end
UpdateFOV()
-- SLIDER
local sliderDragging = false
local function SetSliderFromX(x)
local left = SliderBackground.AbsolutePosition.X
local width = SliderBackground.AbsoluteSize.X
local percent = math.clamp(
(x - left) / width,
0,
1
)
FOV_RADIUS =
MIN_FOV + (MAX_FOV - MIN_FOV) * percent
SliderButton.Position =
UDim2.new(percent, 0, 0.5, 0)
UpdateFOV()
end
SliderButton.MouseButton1Down:Connect(function()
sliderDragging = true
end)
SliderBackground.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1
or input.UserInputType == Enum.UserInputType.Touch then
sliderDragging = true
SetSliderFromX(input.Position.X)
end
end)
UserInputService.InputChanged:Connect(function(input)
if sliderDragging and (
input.UserInputType == Enum.UserInputType.MouseMovement
or input.UserInputType == Enum.UserInputType.Touch
) then
SetSliderFromX(input.Position.X)
end
end)
UserInputService.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1
or input.UserInputType == Enum.UserInputType.Touch then
sliderDragging = false
end
end)
-- AIMLOCK: РАБОТАЕТ ПОКА ЗАЖАТА ПКМ
UserInputService.InputBegan:Connect(function(input, processed)
if processed then return end
if input.UserInputType == Enum.UserInputType.MouseButton2 then
AimLockEnabled = true
AimButton.Text = "AimLock: ON"
AimButton.BackgroundColor3 = Color3.fromRGB(40, 150, 60)
end
end)
UserInputService.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton2 then
AimLockEnabled = false
AimButton.Text = "AimLock: HOLD RMB"
AimButton.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
end
end)
-- ПРОВЕРКА ВИДНОСТИ
local function IsVisible(Character, Head)
local origin = Camera.CFrame.Position
local direction = Head.Position - origin
local params = RaycastParams.new()
params.FilterType = Enum.RaycastFilterType.Exclude
params.FilterDescendantsInstances = {
LocalPlayer.Character
}
local result = workspace:Raycast(origin, direction, params)
if result then
return result.Instance:IsDescendantOf(Character)
end
return false
end
-- ПОИСК ЦЕЛИ
local function GetClosestHead()
local closestHead = nil
local shortestDistance = math.huge
local viewport = Camera.ViewportSize
-- Такой же центр, как у круга
local screenCenter = Vector2.new(
viewport.X / 2,
viewport.Y / 2 - 35
)
for _, Player in ipairs(Players:GetPlayers()) do
if Player ~= LocalPlayer and Player.Character then
local Character = Player.Character
local Head = Character:FindFirstChild("Head")
local Humanoid =
Character:FindFirstChildOfClass("Humanoid")
if Head and Humanoid and Humanoid.Health > 0 then
local position, onScreen =
Camera:WorldToViewportPoint(Head.Position)
if onScreen then
local screenPosition =
Vector2.new(position.X, position.Y)
local distance =
(screenPosition - screenCenter).Magnitude
local insideFOV = true
if FOVEnabled then
insideFOV = distance <= FOV_RADIUS
end
if insideFOV then
local canAim = true
if WallCheckEnabled then
canAim = IsVisible(Character, Head)
end
if canAim and distance < shortestDistance then
shortestDistance = distance
closestHead = Head
end
end
end
end
end
end
return closestHead
end
-- ESP
local function AddESP(Player)
if Player == LocalPlayer then return end
if not ESPEnabled then return end
if not Player.Character then return end
if Highlights[Player] then
Highlights[Player]:Destroy()
end
local Highlight = Instance.new("Highlight")
Highlight.Name = "PlayerESP"
Highlight.Adornee = Player.Character
Highlight.FillTransparency = 0.5
Highlight.OutlineTransparency = 0
Highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
Highlight.Parent = Player.Character
Highlights[Player] = Highlight
end
local function RemoveESP(Player)
if Highlights[Player] then
Highlights[Player]:Destroy()
Highlights[Player] = nil
end
end
local function ToggleESP()
ESPEnabled = not ESPEnabled
if ESPEnabled then
ESPButton.Text = "ESP: ON"
ESPButton.BackgroundColor3 = Color3.fromRGB(40, 150, 60)
for _, Player in ipairs(Players:GetPlayers()) do
AddESP(Player)
end
else
ESPButton.Text = "ESP: OFF"
ESPButton.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
for _, Player in ipairs(Players:GetPlayers()) do
RemoveESP(Player)
end
end
end
ESPButton.MouseButton1Click:Connect(ToggleESP)
-- WALL CHECK
WallButton.MouseButton1Click:Connect(function()
WallCheckEnabled = not WallCheckEnabled
if WallCheckEnabled then
WallButton.Text = "WallCheck: ON"
WallButton.BackgroundColor3 = Color3.fromRGB(40, 150, 60)
else
WallButton.Text = "WallCheck: OFF"
WallButton.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
end
end)
-- FOV ON / OFF
FOVButton.MouseButton1Click:Connect(function()
FOVEnabled = not FOVEnabled
if FOVEnabled then
FOVButton.Text = "FOV: ON"
FOVButton.BackgroundColor3 = Color3.fromRGB(40, 150, 60)
FOVCircle.Visible = true
SliderBackground.Visible = true
SliderButton.Visible = true
FOVLabel.Visible = true
else
FOVButton.Text = "FOV: OFF"
FOVButton.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
FOVCircle.Visible = false
SliderBackground.Visible = false
SliderButton.Visible = false
FOVLabel.Visible = false
end
end)
-- НОВЫЕ ИГРОКИ И РЕСПАВН
local function SetupPlayer(Player)
if Player == LocalPlayer then return end
Player.CharacterAdded:Connect(function()
task.wait(0.5)
if ESPEnabled then
AddESP(Player)
end
end)
end
for _, Player in ipairs(Players:GetPlayers()) do
SetupPlayer(Player)
end
Players.PlayerAdded:Connect(SetupPlayer)
Players.PlayerRemoving:Connect(function(Player)
RemoveESP(Player)
end)
-- ОСНОВНОЙ ЦИКЛ
RunService.RenderStepped:Connect(function()
local viewport = Camera.ViewportSize
-- КРУГ ЧУТЬ ВЫШЕ ЦЕНТРА
FOVCircle.Position = UDim2.fromOffset(
viewport.X / 2,
viewport.Y / 2 - 35
)
-- AIMLOCK
if AimLockEnabled then
local Head = GetClosestHead()
if Head then
Camera.CFrame = CFrame.new(
Camera.CFrame.Position,
Head.Position
)
end
end
end)
![[KEYLESS] Moondiety Script | 17+ supported Games](https://scriptblox.com/images/sb/0-1753093706828.png)


I don't think it does bypasses anticheat ```lua ScreenGui.Parent = LocalPlayer:WaitForChild("PlayerGui") ```
@voltex No, here's how I did it: you won't get kicked. In some games, the anti-cheat kicks you if a UI opens, but my aimbot won't cause that to happen