-- Nova Hub - Minecraft: End Update's BEST Exploit -- Version 1.2.4 -- ADDED: Ancient Debris ESP -- bug: nether esp doesnt turn off properly local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local Lighting = game:GetService("Lighting") local Workspace = game:GetService("Workspace") local player = Players.LocalPlayer -- Kavo UI local Library = loadstring(game:HttpGet("https://raw.githubusercontent.com/xHeptc/Kavo-UI-Library/main/source.lua"))() local Window = Library.CreateLib("(Ninecraft) Nova's Script V1.2.4", "DarkTheme") -- Variables local fullbrightEnabled = false local xrayEnabled = false local oreESPEnabled = false local ancientDebrisESPEnabled = false local XRAY_TRANS = 0.85 local chunksFolder = Workspace:WaitForChild("Chunks", 15) local trackedXray = setmetatable({}, {__mode = "v"}) local xrayConnection = nil local oreESPConnection = nil local ancientDebrisESPConnection = nil local oreAdornments = {} local ancientDebrisHighlights = {} -- Ore IDs local ORE_IDS = { [18148955345] = "Coal", [18148977854] = "Gold", [18148954310] = "Iron", [18148955169] = "Diamond", } local ANCIENT_DEBRIS_ID = 114023014611645 local function getAssetId(tex) if not tex or tex == "" then return nil end local id = tex:match("rbxassetid://(%d+)") or tex:match("assetId=(%d+)") or tex:match("id=(%d+)") return id and tonumber(id) end local function isOrePart(obj) if obj.Name ~= "Part" then return false end if not (obj:IsA("BasePart") or obj:IsA("MeshPart")) then return false end for _, child in ipairs(obj:GetChildren()) do local tex = (child:IsA("Texture") or child:IsA("Decal")) and child.Texture or child:IsA("SurfaceAppearance") and child.ColorMap local assetNum = tex and getAssetId(tex) if assetNum and ORE_IDS[assetNum] then return ORE_IDS[assetNum] end end return false end local function isAncientDebrisPart(obj) if obj.Name ~= "Part" then return false end if not (obj:IsA("BasePart") or obj:IsA("MeshPart")) then return false end for _, child in ipairs(obj:GetChildren()) do local tex = (child:IsA("Texture") or child:IsA("Decal")) and child.Texture or child:IsA("SurfaceAppearance") and child.ColorMap local assetNum = tex and getAssetId(tex) if assetNum == ANCIENT_DEBRIS_ID then return true end end if obj:IsA("MeshPart") and obj.TextureID then local assetNum = getAssetId(obj.TextureID) if assetNum == ANCIENT_DEBRIS_ID then return true end end return false end -- Ore ESP local function addOreESP(part, oreType) if oreAdornments[part] then return end local box = Instance.new("BoxHandleAdornment") box.Adornee = part box.Size = part.Size + Vector3.new(0.4,0.4,0.4) box.Color3 = (oreType == "Diamond" and Color3.fromRGB(0,220,255)) or (oreType == "Gold" and Color3.fromRGB(255,215,0)) or (oreType == "Iron" and Color3.fromRGB(200,110,40)) or Color3.fromRGB(40,40,40) box.Transparency = 0.35 box.AlwaysOnTop = true box.Parent = part local bb = Instance.new("BillboardGui") bb.Adornee = part bb.Size = UDim2.new(0,140,0,36) bb.StudsOffset = Vector3.new(0, part.Size.Y/2 + 2.5, 0) bb.AlwaysOnTop = true bb.Parent = part local text = Instance.new("TextLabel") text.Size = UDim2.new(1,0,1,0) text.BackgroundTransparency = 1 text.Text = oreType .. " Ore" text.TextColor3 = box.Color3 text.TextStrokeTransparency = 0.4 text.TextScaled = true text.Font = Enum.Font.SourceSansBold text.Parent = bb oreAdornments[part] = {box, bb} end -- Ancient Debris ESP local function addAncientDebrisESP(part) if ancientDebrisHighlights[part] then return end local box = Instance.new("BoxHandleAdornment") box.Adornee = part box.Size = part.Size + Vector3.new(0.8, 0.8, 0.8) box.Color3 = Color3.fromRGB(100, 50, 0) box.Transparency = 0.25 box.AlwaysOnTop = true box.Parent = part local bb = Instance.new("BillboardGui") bb.Adornee = part bb.Size = UDim2.new(0, 110, 0, 22) bb.StudsOffset = Vector3.new(0, part.Size.Y/2 + 3, 0) bb.AlwaysOnTop = true bb.Parent = part local text = Instance.new("TextLabel") text.Size = UDim2.new(1,0,1,0) text.BackgroundTransparency = 1 text.Text = "Ancient Debris" text.TextColor3 = Color3.fromRGB(100, 50, 0) text.TextStrokeTransparency = 0.4 text.TextScaled = true text.Font = Enum.Font.SourceSansBold text.Parent = bb ancientDebrisHighlights[part] = {box, bb} end -- COMPLETE CLEANUP for ancient debris local function cleanupAncientDebris() -- Destroy tracked ones for part, visuals in pairs(ancientDebrisHighlights) do for _, g in ipairs(visuals) do if g and g.Parent then g:Destroy() end end end ancientDebrisHighlights = {} -- cleanup for ancient debris for _, obj in ipairs(Workspace:GetDescendants()) do if obj:IsA("BoxHandleAdornment") then obj:Destroy() end if obj:IsA("BillboardGui") and obj:FindFirstChild("TextLabel") then local lbl = obj.TextLabel if lbl.Text == "Ancient Debris" or lbl.Text:find("Ancient") or lbl.Text:find("Debris") then obj:Destroy() end end end end -- Toggle Ore ESP local function toggleOreESP(state) oreESPEnabled = state if state then task.spawn(function() for _, obj in ipairs(chunksFolder:GetDescendants()) do local t = isOrePart(obj) if t then addOreESP(obj, t) end task.wait() end end) oreESPConnection = chunksFolder.DescendantAdded:Connect(function(obj) local t = isOrePart(obj) if t then addOreESP(obj, t) end end) else if oreESPConnection then oreESPConnection:Disconnect() end for _, visuals in pairs(oreAdornments) do for _, g in visuals do if g and g.Parent then g:Destroy() end end end oreAdornments = {} end end -- Toggle Ancient Debris ESP local function toggleAncientDebrisESP(state) ancientDebrisESPEnabled = state if state then task.spawn(function() for _, obj in ipairs(chunksFolder:GetDescendants()) do if isAncientDebrisPart(obj) then addAncientDebrisESP(obj) end task.wait() end end) ancientDebrisESPConnection = chunksFolder.DescendantAdded:Connect(function(obj) if isAncientDebrisPart(obj) then addAncientDebrisESP(obj) end end) else cleanupAncientDebris() if ancientDebrisESPConnection then ancientDebrisESPConnection:Disconnect() ancientDebrisESPConnection = nil end end end -- X-Ray & Fullbright local function setTransparency(obj, trans) if obj:IsA("BasePart") or obj:IsA("MeshPart") or obj:IsA("UnionOperation") then obj.Transparency = trans elseif obj:IsA("Decal") or obj:IsA("Texture") then obj.Transparency = trans + 0.1 elseif obj:IsA("SurfaceAppearance") then obj.ColorMapTransparency = trans + 0.05 obj.MetalnessMapTransparency = trans + 0.05 obj.NormalMapTransparency = trans + 0.05 obj.RoughnessMapTransparency = trans + 0.05 end end local xrayProcessing = false local function toggleXray(state) if xrayEnabled == state or not chunksFolder or xrayProcessing then return end xrayEnabled = state xrayProcessing = true if state then xrayConnection = chunksFolder.DescendantAdded:Connect(function(obj) setTransparency(obj, XRAY_TRANS) if obj:IsA("BasePart") or obj:IsA("MeshPart") or obj:IsA("UnionOperation") then trackedXray[obj] = true end end) task.spawn(function() local desc = chunksFolder:GetDescendants() for i = 1, #desc do local obj = desc[i] if not trackedXray[obj] and (obj:IsA("BasePart") or obj:IsA("MeshPart") or obj:IsA("UnionOperation")) then setTransparency(obj, XRAY_TRANS) trackedXray[obj] = true elseif obj:IsA("Decal") or obj:IsA("Texture") or obj:IsA("SurfaceAppearance") then setTransparency(obj, XRAY_TRANS) end if i % 100 == 0 then task.wait(0.03) end end xrayProcessing = false end) else if xrayConnection then xrayConnection:Disconnect() end for obj in pairs(trackedXray) do if obj and obj.Parent then setTransparency(obj, 0) end end trackedXray = setmetatable({}, {__mode = "v"}) xrayProcessing = false end end local function toggleFullbright(state) fullbrightEnabled = state if state then Lighting.Brightness = 2 Lighting.Ambient = Color3.new(1,1,1) Lighting.GlobalShadows = false Lighting.FogEnd = 100000 else Lighting.Brightness = 1 Lighting.Ambient = Color3.new(0.5,0.5,0.5) Lighting.GlobalShadows = true Lighting.FogEnd = 1000 end end -- UI local PlayerTab = Window:NewTab("Player") local Visual = Window:NewTab("Visuals") local pSect = PlayerTab:NewSection("Player") pSect:NewButton("Reset Character", "", function() if player.Character then player.Character:BreakJoints() end end) local vSect = Visual:NewSection("Visuals") vSect:NewToggle("Fullbright", "", toggleFullbright) vSect:NewToggle("X-Ray", "Toggle with , key too", toggleXray) vSect:NewToggle("Ore ESP", "Coal / Gold / Iron / Diamond", toggleOreESP) local netherSect = Visual:NewSection("Nether") netherSect:NewToggle("Ancient Debris ESP", "Big box + smaller brown text", toggleAncientDebrisESP) vSect:NewSlider("X-Ray Transparency", "Higher = more see-through (min 40%)", 100, 40, function(value) XRAY_TRANS = value / 100 if xrayEnabled then toggleXray(false) task.wait(0.2) toggleXray(true) end end, 85) UserInputService.InputBegan:Connect(function(input, gp) if gp then return end if input.KeyCode == Enum.KeyCode.Comma then toggleXray(not xrayEnabled) end end) print("Nova Hub Loaded!")