Roblox Name Esp Script Work For Mobile And Pc May 2026

Despite the risks, demand remains high because:

Roblox has evolved far beyond a simple gaming platform; it is a sprawling universe of user-generated experiences. From intense PvP battlegrounds like Arsenal to mysterious horror games like The Mimic, knowing where your opponents or friends are can grant a massive advantage. This is where ESP (Extra Sensory Perception) scripts come into play. Roblox Name Esp Script Work for Mobile and Pc

Specifically, Name ESP is the most fundamental and sought-after cheat feature. It allows you to see player names, distances, and health bars through walls. But the biggest challenge has always been cross-compatibility: getting a script that works seamlessly on both Mobile (iOS/Android) and PC (Windows/Mac). Despite the risks, demand remains high because: Roblox

In this comprehensive guide, we will break down what Name ESP is, how it works on different devices, where to find reliable scripts, and the risks involved. Specifically, Name ESP is the most fundamental and

-- Services
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local Camera = workspace.CurrentCamera
local LocalPlayer = Players.LocalPlayer
-- Configuration
local Settings = 
    Toggle = true,          -- Turn ESP on/off
    TeamCheck = false,      -- If true, ESP will not show for teammates
    MaxDistance = 1000,     -- Only show players within this distance (helps mobile FPS)
    TextSize = 14,          -- Size of the name text
    Color = Color3.fromRGB(255, 255, 255) -- Color of the text
-- Table to store ESP objects for each player
local ESP_Objects = {}
-- Function to create the ESP Drawing
local function CreateESP(player)
    if ESP_Objects[player] then return end -- Prevent duplicates
local esp = 
        NameText = Drawing.new("Text"),
        Connection = nil
esp.NameText.Size = Settings.TextSize
    esp.NameText.Center = true
    esp.NameText.Outline = true
    esp.NameText.Color = Settings.Color
    esp.NameText.Visible = false
ESP_Objects[player] = esp
-- Update loop for this specific player
    esp.Connection = RunService.RenderStepped:Connect(function()
        if not Settings.Toggle then 
            esp.NameText.Visible = false 
            return 
        end
-- Validation checks
        if player and player.Character and player.Character:FindFirstChild("HumanoidRootPart") and player.Character:FindFirstChildOfClass("Humanoid") then
local humanoid = player.Character:FindFirstChildOfClass("Humanoid")
            local rootPart = player.Character.HumanoidRootPart
-- Team Check Logic
            if Settings.TeamCheck and player.Team and LocalPlayer.Team and player.Team == LocalPlayer.Team then
                esp.NameText.Visible = false
                return
            end
-- Health Check (Don't show dead players)
            if humanoid.Health <= 0 then
                esp.NameText.Visible = false
                return
            end
-- Calculate Distance
            local distance = (LocalPlayer.Character.HumanoidRootPart.Position - rootPart.Position).Magnitude
-- Distance Check (Optimization for Mobile)
            if distance > Settings.MaxDistance then
                esp.NameText.Visible = false
                return
            end
-- World to Screen Conversion
            local screenPos, onScreen = Camera:WorldToViewportPoint(rootPart.Position)
if onScreen then
                -- Position text above head
                local headPos = Camera:WorldToViewportPoint(rootPart.Position + Vector3.new(0, 3, 0))
esp.NameText.Position = Vector2.new(headPos.X, headPos.Y)
                esp.NameText.Text = string.format("%s [%d]", player.Name, math.floor(distance))
                esp.NameText.Visible = true
            else
                esp.NameText.Visible = false
            end
        else
            esp.NameText.Visible = false
        end
    end)
end
-- Function to remove ESP
local function RemoveESP(player)
    if ESP_Objects[player] then
        if ESP_Objects[player].Connection then
            ESP_Objects[player].Connection:Disconnect()
        end
        if ESP_Objects[player].NameText then
            ESP_Objects[player].NameText:Remove()
        end
        ESP_Objects[player] = nil
    end
end
-- Handle existing players
for _, player in ipairs(Players:GetPlayers()) do
    if player ~= LocalPlayer then
        CreateESP(player)
    end
end
-- Handle new players joining
Players.PlayerAdded:Connect(function(player)
    CreateESP(player)
end)
-- Handle players leaving
Players.PlayerRemoving:Connect(function(player)
    RemoveESP(player)
end)