
KeylessUniversal

-- discord.gg/NCcTwpNQ2S
warn("Initializing basic exploit..")
-- Configuration Variables
local ENABLE_AIMBOT = true
local ENABLE_ESP = true
local ENABLE_SPEED = true
-- Configurable options
local PLAYER_SPEED = 150
local ESP_VISIBLE_COLOR = Color3.fromRGB(144, 238, 144)
local ESP_HIDDEN_COLOR = Color3.fromRGB(250, 120, 120)
local ESP_FILL_TRANSPARENCY = 0.5
local ESP_OUTLINE_COLOR = Color3.fromRGB(255, 255, 255)
local ESP_OUTLINE_TRANSPARENCY = 1
-- Config / keybinds
local AIMBOT_HOLD_KEY = Enum.UserInputType.MouseButton2
local SPEED_TOGGLE_KEY = Enum.KeyCode.Q
local KILL_SWITCH_KEY = Enum.KeyCode.F1
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local localPlayer = Players.LocalPlayer
local gameCamera = workspace.CurrentCamera
local playerMouse = localPlayer:GetMouse()
local isAimbotActive = false
local isSpeedActive = false
local isScriptRunning = true
local playerHighlights = {}
local activeConnections = {}
local currentAimbotTarget = nil
local function getPlayerCharacter(player)
return player and player.Character
end
local function getCharacterHead(character)
return character and character:FindFirstChild("Head")
end
local function findNearestPlayerToMouse()
local closestPlayer = nil
local shortestDistance = math.huge
local mousePosition = Vector2.new(playerMouse.X, playerMouse.Y)
for _, player in ipairs(Players:GetPlayers()) do
if player ~= localPlayer then
local character = getPlayerCharacter(player)
local head = getCharacterHead(character)
if head then
local headScreenPosition, isOnScreen = gameCamera:WorldToViewportPoint(head.Position)
if isOnScreen then
local screenPosition = Vector2.new(headScreenPosition.X, headScreenPosition.Y)
local distanceToMouse = (screenPosition - mousePosition).Magnitude
if distanceToMouse < shortestDistance then
shortestDistance = distanceToMouse
closestPlayer = player
end
end
end
end
end
return closestPlayer
end
local function createPlayerESP(player)
if playerHighlights[player] then return end
local character = getPlayerCharacter(player)
if not character then return end
local highlight = Instance.new("Highlight")
highlight.FillColor = ESP_VISIBLE_COLOR
highlight.FillTransparency = ESP_FILL_TRANSPARENCY
highlight.OutlineColor = ESP_OUTLINE_COLOR
highlight.OutlineTransparency = ESP_OUTLINE_TRANSPARENCY
highlight.Parent = character
playerHighlights[player] = highlight
end
local function removePlayerESP(player)
if playerHighlights[player] then
playerHighlights[player]:Destroy()
playerHighlights[player] = nil
end
end
local function isPlayerVisible(player)
local character = getPlayerCharacter(player)
local head = getCharacterHead(character)
if not head then return false end
local localCharacter = getPlayerCharacter(localPlayer)
if not localCharacter then return false end
local localHead = getCharacterHead(localCharacter)
if not localHead then return false end
local origin = localHead.Position
local direction = (head.Position - origin).Unit
local distance = (head.Position - origin).Magnitude
local raycastParams = RaycastParams.new()
raycastParams.FilterType = Enum.RaycastFilterType.Exclude
raycastParams.FilterDescendantsInstances = {localCharacter, character}
local raycastResult = workspace:Raycast(origin, direction * distance, raycastParams)
return raycastResult == nil
end
local function updateESPColors()
for player, highlight in pairs(playerHighlights) do
if highlight and highlight.Parent then
if isPlayerVisible(player) then
highlight.FillColor = ESP_VISIBLE_COLOR
else
highlight.FillColor = ESP_HIDDEN_COLOR
end
end
end
end
local function initializeESPSystem()
if not ENABLE_ESP then
return
end
for _, player in ipairs(Players:GetPlayers()) do
if player ~= localPlayer then
if player.Character then
createPlayerESP(player)
end
player.CharacterAdded:Connect(function(character)
if not isScriptRunning then return end
task.wait()
createPlayerESP(player)
end)
end
end
activeConnections.playerJoined = Players.PlayerAdded:Connect(function(player)
if not isScriptRunning or player == localPlayer then return end
player.CharacterAdded:Connect(function(character)
if not isScriptRunning then return end
task.wait()
createPlayerESP(player)
end)
if player.Character then
task.wait()
createPlayerESP(player)
end
end)
activeConnections.playerLeft = Players.PlayerRemoving:Connect(function(player)
removePlayerESP(player)
end)
activeConnections.espColorUpdater = RunService.Heartbeat:Connect(function()
if not isScriptRunning then return end
updateESPColors()
end)
end
local function updateWalkSpeed(newSpeed)
local character = getPlayerCharacter(localPlayer)
if character then
local humanoid = character:FindFirstChildOfClass("Humanoid")
if humanoid then
humanoid.WalkSpeed = newSpeed
end
end
end
local function toggleSpeedModification()
if not ENABLE_SPEED then
return
end
isSpeedActive = not isSpeedActive
if isSpeedActive then
updateWalkSpeed(PLAYER_SPEED)
activeConnections.speedMaintainer = RunService.Heartbeat:Connect(function()
if not isScriptRunning or not isSpeedActive then return end
updateWalkSpeed(PLAYER_SPEED)
end)
activeConnections.speedOnRespawn = localPlayer.CharacterAdded:Connect(function(character)
if not isScriptRunning or not isSpeedActive then return end
task.wait()
updateWalkSpeed(PLAYER_SPEED)
end)
else
if activeConnections.speedMaintainer then
activeConnections.speedMaintainer:Disconnect()
activeConnections.speedMaintainer = nil
end
if activeConnections.speedOnRespawn then
activeConnections.speedOnRespawn:Disconnect()
activeConnections.speedOnRespawn = nil
end
updateWalkSpeed(16)
end
end
local function startAimbotTracking()
if not ENABLE_AIMBOT then
return
end
activeConnections.aimbotTracker = RunService.RenderStepped:Connect(function()
if not isScriptRunning or not isAimbotActive then return end
if not currentAimbotTarget then
currentAimbotTarget = findNearestPlayerToMouse()
end
if currentAimbotTarget then
local character = getPlayerCharacter(currentAimbotTarget)
local head = getCharacterHead(character)
if head then
gameCamera.CFrame = CFrame.new(gameCamera.CFrame.Position, head.Position)
else
currentAimbotTarget = nil
end
end
end)
end
local function setupInputHandling()
activeConnections.inputStarted = UserInputService.InputBegan:Connect(function(input, gameProcessedEvent)
if gameProcessedEvent or not isScriptRunning then return end
if input.UserInputType == AIMBOT_HOLD_KEY then
isAimbotActive = true
if not activeConnections.aimbotTracker then
startAimbotTracking()
end
elseif input.KeyCode == SPEED_TOGGLE_KEY then
toggleSpeedModification()
elseif input.KeyCode == KILL_SWITCH_KEY then
isScriptRunning = false
warn("Kill switch clicked")
for connectionName, connection in pairs(activeConnections) do
if connection then
connection:Disconnect()
end
end
for player, _ in pairs(playerHighlights) do
removePlayerESP(player)
end
if isSpeedActive then
updateWalkSpeed(16)
end
activeConnections = {}
playerHighlights = {}
end
end)
activeConnections.inputEnded = UserInputService.InputEnded:Connect(function(input, gameProcessedEvent)
if not isScriptRunning then return end
if input.UserInputType == AIMBOT_HOLD_KEY then
isAimbotActive = false
currentAimbotTarget = nil
if activeConnections.aimbotTracker then
activeConnections.aimbotTracker:Disconnect()
activeConnections.aimbotTracker = nil
end
end
end)
end
initializeESPSystem()
setupInputHandling()
warn("Basic expoit loaded")No comments yet for this script.



