local Players = game:GetService("Players")
local TweenService = game:GetService("TweenService")
local UserInputService = game:GetService("UserInputService")
local plr = Players.LocalPlayer
local guiParent = plr:WaitForChild("PlayerGui")
------------------------------------------------
-- FORCE 3RD PERSON ON LOAD
------------------------------------------------
local function setThirdPerson()
local cam = workspace.CurrentCamera
if cam then
plr.CameraMode = Enum.CameraMode.Classic
plr.CameraMinZoomDistance = 8
plr.CameraMaxZoomDistance = 12
end
end
setThirdPerson()
------------------------------------------------
-- CHARACTER
------------------------------------------------
local char = plr.Character or plr.CharacterAdded:Wait()
local root = char:WaitForChild("HumanoidRootPart")
plr.CharacterAdded:Connect(function(c)
char = c
root = c:WaitForChild("HumanoidRootPart")
task.wait(0.2)
setThirdPerson()
end)
------------------------------------------------
-- WORLD
------------------------------------------------
local gameFolder = workspace:WaitForChild("Game")
local anims = gameFolder:WaitForChild("Animatronics")
local clockModel = gameFolder:WaitForChild("Clock")
local surface = clockModel.Part.SurfaceGui
local hours = surface.Horas
local mins = surface.Minutos
------------------------------------------------
-- STATE
------------------------------------------------
local esp = false
local fuse = false
local clock = false
local farm = false
local saved = nil
local open = true
------------------------------------------------
-- UI
------------------------------------------------
local screen = Instance.new("ScreenGui")
screen.Name = "FNAF Eternal Nights"
screen.ResetOnSpawn = false
screen.IgnoreGuiInset = true
screen.Parent = guiParent
local main = Instance.new("Frame")
main.Size = UDim2.new(0, 380, 0, 440)
main.Position = UDim2.new(0, 20, 0.5, -220)
main.BackgroundColor3 = Color3.fromRGB(10,10,14)
main.Parent = screen
Instance.new("UICorner", main).CornerRadius = UDim.new(0,14)
local stroke = Instance.new("UIStroke", main)
stroke.Thickness = 2
task.spawn(function()
local h = 0
while true do
h = (h + 1) % 360
stroke.Color = Color3.fromHSV(h/360,1,1)
task.wait(0.03)
end
end)
------------------------------------------------
-- TITLE
------------------------------------------------
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1,0,0,32)
title.BackgroundTransparency = 1
title.Text = "FNAF Eternal Nights"
title.Font = Enum.Font.GothamBlack
title.TextSize = 20
title.Parent = main
task.spawn(function()
local h = 0
while true do
h += 2
title.TextColor3 = Color3.fromHSV((h%360)/360,1,1)
task.wait(0.03)
end
end)
local tip = Instance.new("TextLabel")
tip.Size = UDim2.new(1,0,0,18)
tip.Position = UDim2.new(0,0,0,34)
tip.BackgroundTransparency = 1
tip.Text = "Press P to toggle"
tip.TextColor3 = Color3.fromRGB(180,180,180)
tip.Font = Enum.Font.Gotham
tip.TextSize = 11
tip.Parent = main
------------------------------------------------
-- BUTTONS
------------------------------------------------
local function makeButton(text, y)
local b = Instance.new("TextButton")
b.Size = UDim2.new(0.9,0,0,40)
b.Position = UDim2.new(0.05,0,0,y)
b.BackgroundColor3 = Color3.fromRGB(18,18,26)
b.Text = text .. " : OFF"
b.Font = Enum.Font.GothamBold
b.TextSize = 14
b.TextColor3 = Color3.fromRGB(240,240,240)
b.AutoButtonColor = false
b.Parent = main
Instance.new("UICorner", b).CornerRadius = UDim.new(0,10)
local s = Instance.new("UIStroke", b)
s.Thickness = 1
s.Color = Color3.fromRGB(60,60,80)
return b
end
------------------------------------------------
-- ESP
------------------------------------------------
local function addESP(o)
if not esp then return end
if o:FindFirstChild("ESP") then return end
if not (o:IsA("Model") or o:IsA("BasePart")) then return end
local h = Instance.new("Highlight")
h.Name = "ESP"
h.FillColor = Color3.fromRGB(255,0,0)
h.OutlineColor = Color3.fromRGB(255,255,255)
h.Parent = o
end
local function espOn()
esp = true
for _,v in ipairs(anims:GetDescendants()) do
addESP(v)
end
end
local function espOff()
esp = false
for _,v in ipairs(workspace:GetDescendants()) do
local h = v:FindFirstChild("ESP")
if h then h:Destroy() end
end
end
------------------------------------------------
-- FUSE ESP
------------------------------------------------
local fuseCache = {}
local function attachFuse(obj)
if fuseCache[obj] then return end
local h = Instance.new("Highlight")
h.Name = "FUSE"
h.FillColor = Color3.fromRGB(0,170,255)
h.OutlineColor = Color3.fromRGB(255,255,255)
h.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
h.Parent = obj
local part = obj:IsA("Model") and (obj.PrimaryPart or obj:FindFirstChildWhichIsA("BasePart")) or obj
if not part then return end
local bb = Instance.new("BillboardGui")
bb.Size = UDim2.new(0,120,0,40)
bb.StudsOffset = Vector3.new(0,2.5,0)
bb.AlwaysOnTop = true
bb.Parent = part
local txt = Instance.new("TextLabel")
txt.Size = UDim2.new(1,0,1,0)
txt.BackgroundTransparency = 1
txt.Text = "FUSE"
txt.Font = Enum.Font.GothamBlack
txt.TextScaled = true
txt.TextColor3 = Color3.fromRGB(0,170,255)
txt.Parent = bb
fuseCache[obj] = {h, bb}
end
local function fuseOn()
fuse = true
task.spawn(function()
while fuse do
for _,v in ipairs(workspace:GetDescendants()) do
if v.Name == "Fuse" then
attachFuse(v)
end
end
task.wait(0.5)
end
end)
task.spawn(function()
while fuse do
for obj,data in pairs(fuseCache) do
if not obj or not obj.Parent then
if data[1] then data[1]:Destroy() end
if data[2] then data[2]:Destroy() end
fuseCache[obj] = nil
end
end
task.wait(1)
end
end)
end
local function fuseOff()
fuse = false
for _,v in pairs(fuseCache) do
if v[1] then v[1]:Destroy() end
if v[2] then v[2]:Destroy() end
end
table.clear(fuseCache)
end
------------------------------------------------
-- CLOCK
------------------------------------------------
local clockGui
local function clockOn()
clock = true
clockGui = Instance.new("ScreenGui")
clockGui.ResetOnSpawn = false
clockGui.Parent = guiParent
local frame = Instance.new("Frame")
frame.Size = UDim2.new(0,340,0,90)
frame.Position = UDim2.new(0.5,-170,0.08,0)
frame.BackgroundColor3 = Color3.fromRGB(15,15,22)
frame.Parent = clockGui
Instance.new("UICorner", frame).CornerRadius = UDim.new(0,14)
local stroke2 = Instance.new("UIStroke", frame)
stroke2.Thickness = 2
local label = Instance.new("TextLabel")
label.Size = UDim2.new(1,0,1,0)
label.BackgroundTransparency = 1
label.Font = Enum.Font.GothamBlack
label.TextScaled = true
label.Parent = frame
task.spawn(function()
while clock do
local c = Color3.fromHSV((tick()%360)/360,1,1)
label.Text = hours.Text .. ":" .. mins.Text
label.TextColor3 = c
stroke2.Color = c
task.wait(0.05)
end
end)
end
local function clockOff()
clock = false
if clockGui then clockGui:Destroy() end
end
------------------------------------------------
-- FARM
------------------------------------------------
local farmPart
local function farmToggle()
if not root then return end
if not farm then
saved = root.CFrame
root.CFrame += Vector3.new(0,300,0)
farmPart = Instance.new("Part")
farmPart.Size = Vector3.new(7,1,7)
farmPart.Anchored = true
farmPart.Position = root.Position - Vector3.new(0,3,0)
farmPart.Parent = workspace
farm = true
else
if saved then root.CFrame = saved end
if farmPart then farmPart:Destroy() end
farm = false
end
end
------------------------------------------------
-- CLEAR MAP (FIXED STATE DISPLAY)
------------------------------------------------
local mapCleared = false
local function clearMap()
local m = workspace:FindFirstChild("Map")
if m and m:FindFirstChild("TeleportReturn") then
m.TeleportReturn:Destroy()
end
mapCleared = true
end
------------------------------------------------
-- BUTTONS
------------------------------------------------
local b1 = makeButton("ANIM ESP", 70)
local b2 = makeButton("FUSE ESP", 115)
local b3 = makeButton("CLOCK", 160)
local b4 = makeButton("CLEAR MAP", 205)
local b5 = makeButton("AUTO FARM", 250)
local function set(btn, state)
btn.Text = btn.Text:match("(.+) :") .. " : " .. (state and "ON" or "OFF")
end
b1.MouseButton1Click:Connect(function()
if esp then espOff() else espOn() end
set(b1, esp)
end)
b2.MouseButton1Click:Connect(function()
if fuse then fuseOff() else fuseOn() end
set(b2, fuse)
end)
b3.MouseButton1Click:Connect(function()
if clock then clockOff() else clockOn() end
set(b3, clock)
end)
b4.MouseButton1Click:Connect(function()
clearMap()
b4.Text = "CLEAR MAP : DONE"
task.wait(1.2)
b4.Text = "CLEAR MAP : OFF"
end)
b5.MouseButton1Click:Connect(function()
farmToggle()
set(b5, farm)
end)
------------------------------------------------
-- TOGGLE MENU
------------------------------------------------
UserInputService.InputBegan:Connect(function(i,gp)
if gp then return end
if i.KeyCode == Enum.KeyCode.P then
open = not open
main.Visible = open
end
end)
Comments
i know ai when i see it but im not sure about this oneΒ