Eternal nights Esp script open source
Key RequiredUniversal

Eternal nights Esp script open source

Universal ScriptSignalboy4232Signalboy4232 739 views 338 executesUpdated Jan 24, 2026
Unrated
00
Lua Script•221 lines (7252 chars)
-- ESP Script for Eternal Nights Animatronics with Speed
-- Simple executor-friendly version

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local LocalPlayer = Players.LocalPlayer

-- ESP Configuration
local ESPEnabled = true
local HighlightTransparency = 0.5
local TextSize = 14

-- Speed Configuration
local SpeedEnabled = true
local CustomSpeed = 100

-- Animatronic colors
local AnimatronicColors = {
    ["Golden Freddy"] = Color3.fromRGB(255, 165, 0), -- Orange (check this FIRST)
    ["Freddy"] = Color3.fromRGB(139, 69, 19),        -- Brown
    ["Foxy"] = Color3.fromRGB(255, 0, 0),            -- Red
    ["Bonnie"] = Color3.fromRGB(0, 100, 255),        -- Blue
    ["Chica"] = Color3.fromRGB(255, 255, 0),         -- Yellow
    ["Puppet"] = Color3.fromRGB(128, 0, 128),        -- Purple
    ["Cupcake"] = Color3.fromRGB(255, 192, 203)      -- Pink
}

-- Storage for ESP objects
local ESPObjects = {}

-- Function to create highlight
local function createHighlight(model, color)
    local highlight = Instance.new("Highlight")
    highlight.FillColor = color
    highlight.OutlineColor = color
    highlight.FillTransparency = HighlightTransparency
    highlight.OutlineTransparency = 0
    highlight.Parent = model
    return highlight
end

-- Function to create BillboardGui with name
local function createNameTag(model, name, color)
    local head = model:FindFirstChild("Head") or model:FindFirstChild("HumanoidRootPart") or model.PrimaryPart
    if not head then return nil end
    
    local billboard = Instance.new("BillboardGui")
    billboard.Name = "ESPNameTag"
    billboard.Adornee = head
    billboard.Size = UDim2.new(0, 100, 0, 40)
    billboard.StudsOffset = Vector3.new(0, 3, 0)
    billboard.AlwaysOnTop = true
    billboard.Parent = head
    
    local textLabel = Instance.new("TextLabel")
    textLabel.Size = UDim2.new(1, 0, 1, 0)
    textLabel.BackgroundTransparency = 1
    textLabel.Text = name
    textLabel.TextColor3 = color
    textLabel.TextStrokeTransparency = 0.5
    textLabel.TextSize = TextSize
    textLabel.Font = Enum.Font.SourceSansBold
    textLabel.Parent = billboard
    
    return billboard
end

-- Function to get animatronic name from model (FIXED for Golden Freddy)
local function getAnimatronicName(model)
    local modelName = model.Name:lower()
    
    -- Check for Golden Freddy FIRST (before regular Freddy)
    if modelName:find("golden") then
        return "Golden Freddy"
    end
    
    -- Then check other animatronics
    if modelName:find("freddy") then
        return "Freddy"
    elseif modelName:find("foxy") then
        return "Foxy"
    elseif modelName:find("bonnie") then
        return "Bonnie"
    elseif modelName:find("chica") then
        return "Chica"
    elseif modelName:find("puppet") then
        return "Puppet"
    elseif modelName:find("cupcake") then
        return "Cupcake"
    end
    
    return nil
end

-- Function to add ESP to animatronic
local function addESP(model)
    if ESPObjects[model] then return end
    
    local animatronicName = getAnimatronicName(model)
    if not animatronicName then return end
    
    local color = AnimatronicColors[animatronicName]
    
    local highlight = createHighlight(model, color)
    local nameTag = createNameTag(model, animatronicName, color)
    
    ESPObjects[model] = {
        highlight = highlight,
        nameTag = nameTag
    }
    
    print("ESP Added: " .. animatronicName .. " (Color: " .. (animatronicName == "Golden Freddy" and "Orange" or animatronicName == "Freddy" and "Brown" or "Other") .. ")")
end

-- Function to remove ESP from animatronic
local function removeESP(model)
    if ESPObjects[model] then
        if ESPObjects[model].highlight then
            ESPObjects[model].highlight:Destroy()
        end
        if ESPObjects[model].nameTag then
            ESPObjects[model].nameTag:Destroy()
        end
        ESPObjects[model] = nil
    end
end

-- Function to scan workspace for animatronics
local function scanWorkspace()
    for _, descendant in pairs(workspace:GetDescendants()) do
        if descendant:IsA("Model") and descendant:FindFirstChildOfClass("Humanoid") then
            if getAnimatronicName(descendant) then
                addESP(descendant)
            end
        end
    end
end

-- Function to apply speed to character
local function applySpeed(character)
    if not SpeedEnabled then return end
    
    local humanoid = character:WaitForChild("Humanoid", 5)
    if humanoid then
        humanoid.WalkSpeed = CustomSpeed
        print("Speed applied: " .. CustomSpeed)
    end
end

-- Function to setup character (ESP and Speed)
local function onCharacterAdded(character)
    applySpeed(character)
    
    -- Keep speed at 100 constantly
    local humanoid = character:WaitForChild("Humanoid", 5)
    if humanoid then
        humanoid:GetPropertyChangedSignal("WalkSpeed"):Connect(function()
            if SpeedEnabled and humanoid.WalkSpeed ~= CustomSpeed then
                humanoid.WalkSpeed = CustomSpeed
            end
        end)
    end
end

-- Initial scan
scanWorkspace()

-- Apply speed to current character if exists
if LocalPlayer.Character then
    onCharacterAdded(LocalPlayer.Character)
end

-- Listen for character respawn (auto-enable speed after death)
LocalPlayer.CharacterAdded:Connect(onCharacterAdded)

-- Listen for new animatronics
workspace.DescendantAdded:Connect(function(descendant)
    if ESPEnabled and descendant:IsA("Model") then
        wait(0.1) -- Wait for model to fully load
        if descendant:FindFirstChildOfClass("Humanoid") and getAnimatronicName(descendant) then
            addESP(descendant)
        end
    end
end)

-- Listen for removed animatronics
workspace.DescendantRemoving:Connect(function(descendant)
    if descendant:IsA("Model") and ESPObjects[descendant] then
        removeESP(descendant)
    end
end)

-- Update ESP distance display and enforce speed loop
RunService.RenderStepped:Connect(function()
    -- Update ESP
    if ESPEnabled then
        for model, espData in pairs(ESPObjects) do
            if model and model.Parent and espData.nameTag then
                local rootPart = model:FindFirstChild("HumanoidRootPart") or model.PrimaryPart
                if rootPart and LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then
                    local distance = (LocalPlayer.Character.HumanoidRootPart.Position - rootPart.Position).Magnitude
                    local animName = getAnimatronicName(model)
                    espData.nameTag.TextLabel.Text = string.format("%s [%.0fm]", animName, distance)
                end
            end
        end
    end
    
    -- Enforce speed loop
    if SpeedEnabled and LocalPlayer.Character then
        local humanoid = LocalPlayer.Character:FindFirstChild("Humanoid")
        if humanoid and humanoid.WalkSpeed ~= CustomSpeed then
            humanoid.WalkSpeed = CustomSpeed
        end
    end
end)

print("ESP & Speed Loaded!")
print("ESP Colors: Red=Foxy | Blue=Bonnie | Yellow=Chica")
print("Brown=Freddy | Orange=Golden Freddy | Purple=Puppet | Pink=Cupcake")
print("Custom Speed: " .. CustomSpeed .. " (Auto-enabled on respawn)")

Features & Information

It esp All animatronics and it works and it has Speed with it
#Eternal nights#Scripts#Free

Community Comments (2)

deplocksxzdeplocksxzJan 24, 2026

w

Replying to @deplocksxz
Signalboy4232Signalboy4232Jan 26, 2026

@deplocksxz Ty

More Scripts for Universal Scripts