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)