ChatGPT ESP
Key RequiredUniversal

ChatGPT ESP

Universal Scriptrexzvyrexzvy 3.6K views 157 executesUpdated Jul 7, 2025
2.5/ 5(2 votes)
1150% Positive
Lua Script•94 lines (2517 chars)
local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer

-- GUI Setup
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "ESPGui"
screenGui.ResetOnSpawn = false
screenGui.Parent = LocalPlayer:WaitForChild("PlayerGui")

local toggleButton = Instance.new("TextButton")
toggleButton.Size = UDim2.new(0, 120, 0, 40)
toggleButton.Position = UDim2.new(0, 20, 0, 100)
toggleButton.Text = "ESP: OFF"
toggleButton.BackgroundColor3 = Color3.fromRGB(0, 85, 255) -- Blue GUI
toggleButton.TextColor3 = Color3.new(1, 1, 1)
toggleButton.Active = true
toggleButton.Draggable = true
toggleButton.Parent = screenGui

-- ESP Logic
local espEnabled = false -- Starts OFF
local espBoxes = {}

local function applyESPToCharacter(player, character)
	if not espEnabled then return end
	if espBoxes[player] then
		espBoxes[player]:Destroy()
	end

	local highlight = Instance.new("Highlight")
	highlight.Name = "PlayerESP"
	highlight.FillColor = Color3.fromRGB(255, 0, 0)
	highlight.OutlineColor = Color3.fromRGB(255, 255, 255)
	highlight.FillTransparency = 0.5
	highlight.OutlineTransparency = 0
	highlight.Adornee = character
	highlight.Parent = character
	espBoxes[player] = highlight
end

local function trackPlayer(player)
	if player == LocalPlayer then return end

	-- When character is added (or respawned)
	player.CharacterAdded:Connect(function(character)
		if espEnabled then
			wait(0.5)
			applyESPToCharacter(player, character)
		end
	end)

	-- Initial character
	if player.Character and espEnabled then
		applyESPToCharacter(player, player.Character)
	end
end

local function updateAllESP()
	for _, player in ipairs(Players:GetPlayers()) do
		if player ~= LocalPlayer then
			if espEnabled and player.Character then
				applyESPToCharacter(player, player.Character)
			elseif not espEnabled and espBoxes[player] then
				espBoxes[player]:Destroy()
				espBoxes[player] = nil
			end
		end
	end
end

-- Listen to new players joining
Players.PlayerAdded:Connect(function(player)
	trackPlayer(player)
end)

-- Clean up ESP when a player leaves
Players.PlayerRemoving:Connect(function(player)
	if espBoxes[player] then
		espBoxes[player]:Destroy()
		espBoxes[player] = nil
	end
end)

-- Toggle ESP on button click
toggleButton.MouseButton1Click:Connect(function()
	espEnabled = not espEnabled
	toggleButton.Text = espEnabled and "ESP: ON" or "ESP: OFF"
	updateAllESP()
end)

-- Initial ESP setup for already present players
for _, player in ipairs(Players:GetPlayers()) do
	trackPlayer(player)
end

Features & Information

Esp script

Community Comments (4)

rexzvyrexzvyJul 7, 2025

Yall dont execute it its just a test esp script

TheMugenKingTheMugenKingJul 7, 2025

@kaizen3016 "dont execute it"? Ok Thank You

midtime128midtime128Jul 7, 2025

themugenking why you every where

rexzvyrexzvyJul 19, 2025

Lolz

More Scripts for Universal Scripts