Universal Basic Cheat Script
Key RequiredUniversal

Universal Basic Cheat Script

Universal Scriptglyphajglyphaj 995 views 98 executesUpdated Feb 13, 2026
Unrated
00
Lua Script•299 lines (9405 chars)
-- 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")

Features & Information

This is a basic exploiting script which allows you to test out the "normal" cheats that an average cheat would have. Basic Features: Togglable and Configurable Aimbot Togglable and Configurable ESP options Togglable and Configurable Speed modification options Configurable Kill Switch
#free#universal#aimbot#esp

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts