--[[ Nexus Tracker v10.0 – Advanced ESP, LOD, Auto Teleport, Enhanced Favorites, Debug Combined with Death Return, P bind removed. PART 1/4 ]] local function tableFind(t, value) for i, v in ipairs(t) do if v == value then return i end end return nil end local Settings = { UPDATE_INTERVAL = 0.05, LIST_UPDATE_INTERVAL = 0.5, MAX_DISTANCE = 15000, FADE_START_DISTANCE = 300, NOTIFICATION_DURATION = 5, TELEPORT_RANGE = 15000, SOUND_ENABLED = true, SOUND_VOLUME = 1, NOTIFICATION_POSITION = "CenterTop", HIDE_NEAR_DISTANCE = 20, -- if closer than this distance, ESP becomes transparent MOBILE_SCALE = 1.5, -- scale factor on mobile VISUAL_BOSS_BYPASS_LOD = true, -- bosses always show full info -- Colors PRIMARY_COLOR = Color3.fromRGB(0, 184, 255), SECONDARY_COLOR = Color3.fromRGB(147, 112, 255), TEXT_COLOR = Color3.fromRGB(255, 255, 255), BACKGROUND_COLOR = Color3.fromRGB(20, 20, 30), BACKGROUND_TRANSPARENCY = 0.7, GLOW_COLOR = Color3.fromRGB(100, 200, 255), NOTIFICATION_COLOR = Color3.fromRGB(46, 204, 113), TELEPORT_COLOR = Color3.fromRGB(241, 196, 15), TOGGLE_COLOR = Color3.fromRGB(52, 152, 219), DISABLED_COLOR = Color3.fromRGB(231, 76, 60), LIST_COLOR = Color3.fromRGB(30, 40, 50), LIST_HOVER_COLOR = Color3.fromRGB(40, 50, 70), FAVORITE_COLOR = Color3.fromRGB(255, 215, 0), ESP_ENABLED_COLOR = Color3.fromRGB(46, 204, 113), ESP_DISABLED_COLOR = Color3.fromRGB(150, 150, 150), -- Death return settings DEATH_RETURN_ENABLED = false, DEATH_ANIMATION_ID = "87316561339285", -- ========== NEW SETTINGS ========== -- Visuals (item 2) VISUAL_COLORS = { Boss = Color3.fromRGB(255, 100, 0), Sukuna = Color3.fromRGB(255, 100, 0), Crate = Color3.fromRGB(210, 180, 140), Portal = Color3.fromRGB(150, 0, 255), Tool = Color3.fromRGB(100, 100, 200), Note = Color3.fromRGB(240, 200, 80), }, VISUAL_SIZE_SCALE = 1.0, VISUAL_TRANSPARENCY = 0.7, VISUAL_ICON_ONLY_THRESHOLD = 7, -- when object count exceeds this, icon-only mode activates VISUAL_LOD_ENABLED = false, -- will be set in init depending on platform VISUAL_LOD_DIST_ICON = 1000, VISUAL_LOD_DIST_BRIEF = 500, VISUAL_FRUSTUM_CULLING = false, -- Auto Teleport (item 10) AUTO_TELEPORT_ENABLED = false, AUTO_TELEPORT_DELAY = 2, AUTO_TELEPORT_WARNING = true, -- Favorites (item 14) FAVORITE_GROUPS = { "Main" }, FAVORITE_ACTIVE_GROUP = 1, FAVORITE_AUTO_KEYWORDS = {}, -- list of keywords for auto-favorite AUTO_FAVORITE_NAMES = {}, -- Debug (item 15) DEBUG_MODE = false, DEBUG_SHOW_PATHS = false, } -- ========== STYLES FOR DIFFERENT OBJECT TYPES ========== local TypeStyles = { Boss = { Background = Color3.fromRGB(40, 20, 20), Header = Settings.VISUAL_COLORS.Boss, Glow = Color3.fromRGB(255, 50, 0), Icon = "💀", TextColor = Color3.fromRGB(255, 255, 255), HasHealthBar = true, HasSkull = true, PulseOutline = true, HeaderGradient = {Settings.VISUAL_COLORS.Boss, Color3.fromRGB(200, 50, 0)}, HealthBarColor = Color3.fromRGB(255, 70, 70), ExtraIconAnimation = true, Compact = true, }, Sukuna = { Background = Color3.fromRGB(40, 20, 20), Header = Settings.VISUAL_COLORS.Sukuna, Glow = Color3.fromRGB(255, 50, 0), Icon = "💀", TextColor = Color3.fromRGB(255, 255, 255), HasHealthBar = true, HasSkull = true, PulseOutline = true, HeaderGradient = {Settings.VISUAL_COLORS.Sukuna, Color3.fromRGB(200, 50, 0)}, HealthBarColor = Color3.fromRGB(255, 70, 70), ExtraIconAnimation = true, Compact = true, }, Crate = { Background = Color3.fromRGB(40, 30, 20), Header = Settings.VISUAL_COLORS.Crate, Glow = Color3.fromRGB(160, 120, 80), Icon = "📦", TextColor = Color3.fromRGB(255, 255, 255), HeaderGradient = {Settings.VISUAL_COLORS.Crate, Color3.fromRGB(160, 120, 80)}, }, Portal = { Background = Color3.fromRGB(20, 0, 40), Header = Settings.VISUAL_COLORS.Portal, Glow = Color3.fromRGB(200, 0, 255), Icon = "🌀", TextColor = Color3.fromRGB(255, 255, 255), HeaderGradient = {Settings.VISUAL_COLORS.Portal, Color3.fromRGB(200, 0, 255)}, }, Tool = { Background = Color3.fromRGB(30, 30, 40), Header = Settings.VISUAL_COLORS.Tool, Glow = Color3.fromRGB(80, 80, 180), Icon = "🛠️", TextColor = Color3.fromRGB(255, 255, 255), HeaderGradient = {Settings.VISUAL_COLORS.Tool, Color3.fromRGB(70, 70, 150)}, }, Note = { Background = Color3.fromRGB(50, 40, 20), Header = Settings.VISUAL_COLORS.Note, Glow = Color3.fromRGB(200, 160, 40), Icon = "📝", TextColor = Color3.fromRGB(255, 255, 255), HeaderGradient = {Settings.VISUAL_COLORS.Note, Color3.fromRGB(180, 140, 40)}, } } -- Services local Players = game:GetService("Players") local RunService = game:GetService("RunService") local TweenService = game:GetService("TweenService") local UserInputService = game:GetService("UserInputService") local HttpService = game:GetService("HttpService") -- File system check local canSaveToFile = (writefile ~= nil and readfile ~= nil) local SETTINGS_FILE = "NexusTracker_Settings.json" -- ========== SPECIAL PATHS ========== local SPECIAL_PATHS = { Boss = "Models.Chara", Sukuna = "Models.Sukuna", Crate = "Visuals.Crate", Portal = "Visuals.Portal" } local SPECIAL_NAMES = { Boss = "💀 Chara", Sukuna = "💀 Sukuna", Crate = "📦 Crate", Portal = "🌀 Mystic Portal" } local SPECIAL_ICONS = { Boss = "💀", Sukuna = "💀", Crate = "📦", Portal = "🌀" } -- ========== SOUNDS ========== local SOUNDS = { BossSpawn = "rbxassetid://127863687687397", LowHealth = "rbxassetid://104973625032761", BossDeath = "rbxassetid://132722270251143", Teleport = "rbxassetid://4826619573", ButtonClick = "rbxassetid://93846959137150", ItemSpawn = "rbxassetid://5773338685" } local soundCache = {} local function playSound(soundName) if not Settings.SOUND_ENABLED then return end local soundId = SOUNDS[soundName] if not soundId then return end if not soundCache[soundName] then local sound = Instance.new("Sound") sound.SoundId = soundId sound.Volume = Settings.SOUND_VOLUME sound.Parent = Players.LocalPlayer:WaitForChild("PlayerGui") soundCache[soundName] = sound else soundCache[soundName].Volume = Settings.SOUND_VOLUME end local sound = soundCache[soundName] sound:Stop() sound:Play() end -- ========== MAIN VARIABLES ========== local TRACK_PATH = workspace:FindFirstChild("Visuals") or workspace local SPECIFIC_MODEL_NAME = "Note" local LocalPlayer = Players.LocalPlayer local Camera = workspace.CurrentCamera local objectCache = {} local notifications = {} local connections = {} local teleportQueue = {} local guiEnabled = true local itemListGUI = nil local itemListVisible = false local settingsGUI = nil local settingsVisible = false local screenGui = nil local notificationContainer = nil local mainToggle = nil local listToggle = nil local settingsToggle = nil -- Saved positions local savedMainTogglePos = nil local savedListTogglePos = nil local savedSettingsTogglePos = nil local savedItemListGUIPos = nil local savedSettingsGUIPos = nil local savedBossButtonPos = nil -- Boss panel local bossPanel = nil local bossPanelVisible = false local bossPanelButton = nil local savedBossPanelPos = nil -- Saved object states local savedObjectFavorites = {} local savedObjectESP = {} -- List state local listState = { filterType = "all", sortMode = "distance", sortAsc = true, searchText = "" } -- For boss tracking local lastLowHealthTime = 0 local lastDeathTime = 0 local bossWasPresent = false -- ========== VARIABLES FOR RETURN ========== local lastPositionBeforeTeleport = nil local lastBossSpawnNotification = 0 local BOSS_NOTIFICATION_COOLDOWN = 10 local lastBossType = nil -- Mobile detection local IS_MOBILE = UserInputService.TouchEnabled and not UserInputService.MouseEnabled -- Debug local DEBUG = true -- for script debugging local function debugPrint(...) if DEBUG then print("[NexusTracker]", ...) end end local function debugLog(...) if Settings.DEBUG_MODE then print("[DEBUG]", ...) end end -- ========== DEATH RETURN VARIABLES ========== local deathPosition = nil local deathConnections = {} local deathAnimationTrack = nil -- ========== PATH LINES FOR DEBUG ========== local pathLines = {} -- ========== IMPROVED OBJECT SEARCH BY PATH ========== local function getObjectFromPath(pathString) local current = workspace for part in string.gmatch(pathString, "[^%.]+") do current = current:FindFirstChild(part) if not current then break end end if current then return current end return workspace:FindFirstChild(pathString, true) end local function getSpecialType(obj) if not obj then return nil end local fullPath = obj:GetFullName() for sType, pathPattern in pairs(SPECIAL_PATHS) do if fullPath:find(pathPattern .. "$") or fullPath == pathPattern then return sType end end return nil end local function getObjectStyle(obj) if not TypeStyles then error("TypeStyles is nil! Check syntax at the beginning of the script.") end local specialType = getSpecialType(obj) if specialType then return TypeStyles[specialType] or TypeStyles.Tool elseif obj:IsA("Tool") then return TypeStyles.Tool elseif obj:IsA("Model") and obj.Name == SPECIFIC_MODEL_NAME then return TypeStyles.Note else return TypeStyles.Tool end end local function shouldTrackObject(object) if object:IsA("Tool") or (object:IsA("Model") and object.Name == SPECIFIC_MODEL_NAME) then return true end if getSpecialType(object) then return true end return false end local function createGradient(parent, color1, color2, rotation) local gradient = Instance.new("UIGradient") gradient.Color = ColorSequence.new({ColorSequenceKeypoint.new(0, color1), ColorSequenceKeypoint.new(1, color2)}) gradient.Rotation = rotation or 90 gradient.Parent = parent return gradient end local function getObjectPosition(object) if object:IsA("BasePart") then return object.Position elseif object:IsA("Model") then local data = objectCache[object] if data and data.tempPart and data.tempPart.Parent then return data.tempPart.Position end local primary = object.PrimaryPart if primary then return primary.Position end for _, descendant in ipairs(object:GetDescendants()) do if descendant:IsA("BasePart") then return descendant.Position end end return object:GetPivot().Position end return Vector3.new(0,0,0) end local function getDisplayName(object) local specialType = getSpecialType(object) if specialType then return SPECIAL_NAMES[specialType] or object.Name elseif object:IsA("Model") and object.Name == SPECIFIC_MODEL_NAME then return "📝 " .. object.Name elseif object:IsA("Tool") then return "🛠️ " .. object.Name end return object.Name end -- ========== RETURN FUNCTIONS ========== local function savePositionBeforeTeleport() local character = LocalPlayer.Character if character then local root = character:FindFirstChild("HumanoidRootPart") if root then lastPositionBeforeTeleport = root.Position end end end local function teleportReturn() if not lastPositionBeforeTeleport then return false, "No saved position" end local character = LocalPlayer.Character if not character then return false, "No character" end local humanoidRootPart = character:FindFirstChild("HumanoidRootPart") if not humanoidRootPart then return false, "No HumanoidRootPart" end humanoidRootPart.CFrame = CFrame.new(lastPositionBeforeTeleport) lastPositionBeforeTeleport = nil return true, "Returned to previous position" end -- ========== DEATH RETURN FUNCTIONS ========== local function stopAllAnimations(character) if not character then return end local humanoid = character:FindFirstChildWhichIsA("Humanoid") if not humanoid then return end local animator = humanoid:FindFirstChildOfClass("Animator") if animator then for _, track in ipairs(animator:GetPlayingAnimationTracks()) do track:Stop() end end deathAnimationTrack = nil end local function playNewAnimation(character) if not character or not Settings.DEATH_RETURN_ENABLED then return end stopAllAnimations(character) local humanoid = character:FindFirstChildWhichIsA("Humanoid") if not humanoid then return end local animator = humanoid:FindFirstChildOfClass("Animator") if not animator then animator = Instance.new("Animator") animator.Parent = humanoid end local animation = Instance.new("Animation") animation.AnimationId = "rbxassetid://" .. Settings.DEATH_ANIMATION_ID local track = animator:LoadAnimation(animation) if track then track:Play() deathAnimationTrack = track end end local function saveDeathPosition() if not Settings.DEATH_RETURN_ENABLED then return false end local character = LocalPlayer.Character if character then local root = character:FindFirstChild("HumanoidRootPart") or character:FindFirstChild("Torso") or character:FindFirstChild("UpperTorso") or character:FindFirstChild("Head") if root then deathPosition = root.Position return true end end return false end local function teleportToDeathPosition() if not Settings.DEATH_RETURN_ENABLED or not deathPosition then return false, "No saved death position" end local character = LocalPlayer.Character if not character then return false, "No character" end local root = character:FindFirstChild("HumanoidRootPart") or character:FindFirstChild("Torso") or character:FindFirstChild("UpperTorso") if not root then return false, "No root part" end stopAllAnimations(character) root.CFrame = CFrame.new(deathPosition) playNewAnimation(character) deathPosition = nil return true, "Returned to death position" end local function setupMovementDetection(character) if not Settings.DEATH_RETURN_ENABLED then return end if deathConnections.movement then deathConnections.movement:Disconnect() deathConnections.movement = nil end deathConnections.movement = RunService.Heartbeat:Connect(function() if not Settings.DEATH_RETURN_ENABLED then return end local char = LocalPlayer.Character if not char then return end local humanoid = char:FindFirstChildWhichIsA("Humanoid") if humanoid and deathAnimationTrack and deathAnimationTrack.IsPlaying then if humanoid.MoveDirection.Magnitude > 0.1 then deathAnimationTrack:Stop() deathAnimationTrack = nil end end end) end local function enableDeathReturn(enable) if enable then if deathConnections.enabled then return end deathConnections.enabled = true if not deathConnections.characterAdded then deathConnections.characterAdded = LocalPlayer.CharacterAdded:Connect(function(character) if not Settings.DEATH_RETURN_ENABLED then return end if deathPosition then task.wait(0.2) teleportToDeathPosition() end task.wait(0.1) setupMovementDetection(character) end) end if LocalPlayer.Character then setupMovementDetection(LocalPlayer.Character) end else if not deathConnections.enabled then return end deathConnections.enabled = false if deathConnections.movement then deathConnections.movement:Disconnect() deathConnections.movement = nil end if deathConnections.characterAdded then deathConnections.characterAdded:Disconnect() deathConnections.characterAdded = nil end if deathAnimationTrack then deathAnimationTrack:Stop() deathAnimationTrack = nil end deathPosition = nil end end -- ========== TELEPORT ========== local function teleportToObject(object) if not object or not object.Parent then return false, "Object no longer exists" end local character = LocalPlayer.Character if not character then return false, "No character" end local humanoidRootPart = character:FindFirstChild("HumanoidRootPart") if not humanoidRootPart then return false, "No HumanoidRootPart" end local objectPos = getObjectPosition(object) if objectPos == Vector3.new(0,0,0) then return false, "Cannot determine position" end local distance = (humanoidRootPart.Position - objectPos).Magnitude if distance > Settings.TELEPORT_RANGE then return false, "Too far (" .. math.floor(distance) .. " studs)" end savePositionBeforeTeleport() playSound("Teleport") teleportQueue[object] = true humanoidRootPart.CFrame = CFrame.new(objectPos + Vector3.new(0,3,0)) task.wait(0.1) teleportQueue[object] = nil return true, "Teleported" end local function teleportToNearest() local character = LocalPlayer.Character if not character then return false, "No character" end local humanoidRootPart = character:FindFirstChild("HumanoidRootPart") if not humanoidRootPart then return false, "No HumanoidRootPart" end local nearestDist = math.huge local nearestObj = nil for obj, data in pairs(objectCache) do if obj and obj.Parent then local dist = (humanoidRootPart.Position - getObjectPosition(obj)).Magnitude if dist < nearestDist and dist <= Settings.TELEPORT_RANGE then nearestDist = dist nearestObj = obj end end end if nearestObj then return teleportToObject(nearestObj) end return false, "No objects in range" end -- ========== AUTO TELEPORT TO BOSS ========== local function scheduleAutoTeleport(bossObj, bossType) if not Settings.AUTO_TELEPORT_ENABLED then return end if bossType ~= "Boss" and bossType ~= "Sukuna" then return end -- only bosses task.delay(Settings.AUTO_TELEPORT_DELAY, function() if not Settings.AUTO_TELEPORT_ENABLED then return end if not bossObj or not bossObj.Parent then return end -- boss disappeared if not LocalPlayer.Character or not LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then return end if Settings.AUTO_TELEPORT_WARNING then createSpawnNotification("⚠️ Auto Teleport", "Teleporting to " .. SPECIAL_NAMES[bossType] .. " in 1 second...", nil, 1, Color3.fromRGB(255,200,0)) task.wait(1) end local success, msg = teleportToObject(bossObj) if success then createSpawnNotification("✨ Auto Teleport", "Teleported to " .. SPECIAL_NAMES[bossType], nil, 2, Color3.fromRGB(100,255,100)) else createSpawnNotification("❌ Auto Teleport", "Failed: " .. msg, nil, 3, Color3.fromRGB(255,100,100)) end end) end -- ========== AUTO FAVORITE CHECK ========== local function checkAutoFavorite(obj) if not Settings.FAVORITE_AUTO_KEYWORDS or #Settings.FAVORITE_AUTO_KEYWORDS == 0 then return false end local name = obj.Name:lower() for _, keyword in ipairs(Settings.FAVORITE_AUTO_KEYWORDS) do if name:find(keyword:lower(), 1, true) then return true end end return false end -- ========== NOTIFICATIONS ========== local function updateNotificationPosition() if not notificationContainer then return end local pos = Settings.NOTIFICATION_POSITION local layout = notificationContainer:FindFirstChildOfClass("UIListLayout") if not layout then return end if pos == "BottomRight" then layout.HorizontalAlignment = Enum.HorizontalAlignment.Right layout.VerticalAlignment = Enum.VerticalAlignment.Bottom elseif pos == "TopRight" then layout.HorizontalAlignment = Enum.HorizontalAlignment.Right layout.VerticalAlignment = Enum.VerticalAlignment.Top elseif pos == "BottomLeft" then layout.HorizontalAlignment = Enum.HorizontalAlignment.Left layout.VerticalAlignment = Enum.VerticalAlignment.Bottom elseif pos == "TopLeft" then layout.HorizontalAlignment = Enum.HorizontalAlignment.Left layout.VerticalAlignment = Enum.VerticalAlignment.Top elseif pos == "CenterTop" then layout.HorizontalAlignment = Enum.HorizontalAlignment.Center layout.VerticalAlignment = Enum.VerticalAlignment.Top elseif pos == "CenterBottom" then layout.HorizontalAlignment = Enum.HorizontalAlignment.Center layout.VerticalAlignment = Enum.VerticalAlignment.Bottom end end local function closeNotification(notifFrame) for i, data in ipairs(notifications) do if data.frame == notifFrame then if data.timerThread then pcall(task.cancel, data.timerThread) end local tween = TweenService:Create(notifFrame, TweenInfo.new(0.3), {Position = UDim2.new(1, 320, 1, -90), BackgroundTransparency = 1}) tween:Play() tween.Completed:Wait() if notifFrame and notifFrame.Parent then notifFrame:Destroy() end table.remove(notifications, i) break end end end local function createSpawnNotification(title, text, object, duration, color) duration = duration or Settings.NOTIFICATION_DURATION color = color or Settings.NOTIFICATION_COLOR local notification = Instance.new("Frame") notification.Name = "SpawnNotification" notification.BackgroundColor3 = color notification.BackgroundTransparency = 1 notification.Size = UDim2.new(0, 300, 0, 90) notification.Position = UDim2.new(1, 10, 1, -100) notification.BorderSizePixel = 0 notification.LayoutOrder = #notifications + 1 notification.Active = true notification.ClipsDescendants = true local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 12) corner.Parent = notification local timerBar = Instance.new("Frame") timerBar.Name = "TimerBar" timerBar.BackgroundColor3 = Color3.fromRGB(255,255,255) timerBar.BackgroundTransparency = 0.7 timerBar.Size = UDim2.new(1, -20, 0, 3) timerBar.Position = UDim2.new(0, 10, 1, -5) timerBar.BorderSizePixel = 0 timerBar.ZIndex = 23 timerBar.Parent = notification local timerProgress = Instance.new("Frame") timerProgress.Name = "TimerProgress" timerProgress.BackgroundColor3 = color timerProgress.Size = UDim2.new(1, 0, 1, 0) timerProgress.BorderSizePixel = 0 timerProgress.ZIndex = 24 timerProgress.Parent = timerBar local icon = Instance.new("TextLabel") icon.Name = "Icon" icon.Text = "✨" icon.TextColor3 = Settings.TEXT_COLOR icon.TextTransparency = 1 icon.TextSize = 30 icon.Font = Enum.Font.GothamBold icon.BackgroundTransparency = 1 icon.Size = UDim2.new(0, 40, 0, 40) icon.Position = UDim2.new(0, 10, 0.5, -20) icon.Parent = notification local titleLabel = Instance.new("TextLabel") titleLabel.Name = "Title" titleLabel.Text = title titleLabel.TextColor3 = Settings.TEXT_COLOR titleLabel.TextTransparency = 1 titleLabel.TextSize = 16 titleLabel.Font = Enum.Font.GothamBold titleLabel.BackgroundTransparency = 1 titleLabel.Size = UDim2.new(1, -60, 0, 25) titleLabel.Position = UDim2.new(0, 60, 0, 10) titleLabel.TextXAlignment = Enum.TextXAlignment.Left titleLabel.Parent = notification local itemName = Instance.new("TextLabel") itemName.Name = "ItemName" itemName.Text = text itemName.TextColor3 = Settings.TEXT_COLOR itemName.TextTransparency = 1 itemName.TextSize = 18 itemName.Font = Enum.Font.GothamBold itemName.BackgroundTransparency = 1 itemName.Size = UDim2.new(1, -60, 0, 30) itemName.Position = UDim2.new(0, 60, 0, 35) itemName.TextXAlignment = Enum.TextXAlignment.Left itemName.Parent = notification local closeNotifButton = Instance.new("TextButton") closeNotifButton.Name = "CloseNotificationButton" closeNotifButton.Text = "✕" closeNotifButton.TextColor3 = Settings.TEXT_COLOR closeNotifButton.TextTransparency = 1 closeNotifButton.TextSize = 16 closeNotifButton.Font = Enum.Font.GothamBold closeNotifButton.BackgroundColor3 = Color3.fromRGB(231, 76, 60) closeNotifButton.BackgroundTransparency = 1 closeNotifButton.Size = UDim2.new(0, 25, 0, 25) closeNotifButton.Position = UDim2.new(1, -30, 0, 5) closeNotifButton.BorderSizePixel = 0 closeNotifButton.ZIndex = 22 closeNotifButton.AutoButtonColor = true Instance.new("UICorner", closeNotifButton).CornerRadius = UDim.new(0, 6) closeNotifButton.MouseButton1Click:Connect(function() closeNotification(notification) end) closeNotifButton.Parent = notification local teleportButton = nil if object then teleportButton = Instance.new("TextButton") teleportButton.Name = "TeleportButton" teleportButton.Text = "TELEPORT" teleportButton.TextColor3 = Settings.TEXT_COLOR teleportButton.TextTransparency = 1 teleportButton.TextSize = 14 teleportButton.Font = Enum.Font.GothamBold teleportButton.BackgroundColor3 = Settings.TELEPORT_COLOR teleportButton.BackgroundTransparency = 1 teleportButton.Size = UDim2.new(0, 100, 0, 30) teleportButton.Position = UDim2.new(1, -110, 1, -45) teleportButton.BorderSizePixel = 0 teleportButton.AutoButtonColor = true Instance.new("UICorner", teleportButton).CornerRadius = UDim.new(0, 8) createGradient(teleportButton, Settings.TELEPORT_COLOR, Color3.fromRGB(230,126,34), 45) teleportButton.Parent = notification local tpDebounce = false teleportButton.MouseButton1Click:Connect(function() if tpDebounce then return end tpDebounce = true local success, msg = teleportToObject(object) if success then teleportButton.Text = "✓ SUCCESS" teleportButton.BackgroundColor3 = Color3.fromRGB(46,204,113) teleportButton.AutoButtonColor = false task.wait(1) teleportButton.Text = "TELEPORT" teleportButton.BackgroundColor3 = Settings.TELEPORT_COLOR teleportButton.AutoButtonColor = true else local old = teleportButton.Text teleportButton.Text = msg teleportButton.BackgroundColor3 = Color3.fromRGB(231,76,60) teleportButton.AutoButtonColor = false task.wait(1.5) teleportButton.Text = old teleportButton.BackgroundColor3 = Settings.TELEPORT_COLOR teleportButton.AutoButtonColor = true end tpDebounce = false end) end if notificationContainer then notification.Parent = notificationContainer end notification.Position = UDim2.new(1, 50, 1, -100) notification.BackgroundTransparency = 1 icon.TextTransparency = 1 titleLabel.TextTransparency = 1 itemName.TextTransparency = 1 closeNotifButton.TextTransparency = 1 closeNotifButton.BackgroundTransparency = 1 if teleportButton then teleportButton.TextTransparency = 1 teleportButton.BackgroundTransparency = 1 end TweenService:Create(notification, TweenInfo.new(0.4, Enum.EasingStyle.Back, Enum.EasingDirection.Out), { Position = UDim2.new(1, 10, 1, -100), BackgroundTransparency = 0.9 }):Play() TweenService:Create(icon, TweenInfo.new(0.3, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {TextTransparency = 0}):Play() TweenService:Create(titleLabel, TweenInfo.new(0.3, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {TextTransparency = 0}):Play() TweenService:Create(itemName, TweenInfo.new(0.3, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {TextTransparency = 0}):Play() TweenService:Create(closeNotifButton, TweenInfo.new(0.3, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { TextTransparency = 0, BackgroundTransparency = 0.3 }):Play() if teleportButton then TweenService:Create(teleportButton, TweenInfo.new(0.3, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), { TextTransparency = 0, BackgroundTransparency = 0.2 }):Play() end local notifData = {frame = notification, timer = tick(), timerProgress = timerProgress} table.insert(notifications, notifData) notifData.timerThread = task.spawn(function() local start = tick() while tick() - start < duration and notification and notification.Parent do timerProgress.Size = UDim2.new(1 - (tick()-start)/duration, 0, 1, 0) task.wait(0.1) end if notification and notification.Parent then closeNotification(notification) end end) end -- ========== SAVE/LOAD SETTINGS ========== local function encodeUDim2(udim2) if not udim2 then return nil end return {X = {Scale = udim2.X.Scale, Offset = udim2.X.Offset}, Y = {Scale = udim2.Y.Scale, Offset = udim2.Y.Offset}} end local function decodeUDim2(data) if not data then return nil end return UDim2.new(data.X.Scale, data.X.Offset, data.Y.Scale, data.Y.Offset) end local function saveSettings() if not canSaveToFile then return end local objectFavorites = {} local objectESP = {} for obj, data in pairs(objectCache) do if obj and obj.Parent then local path = obj:GetFullName() objectFavorites[path] = data.favorite or false objectESP[path] = data.espEnabled or false end end local settingsData = { mainTogglePos = mainToggle and encodeUDim2(mainToggle.Position) or nil, listTogglePos = listToggle and encodeUDim2(listToggle.Position) or nil, settingsTogglePos = settingsToggle and encodeUDim2(settingsToggle.Position) or nil, itemListPos = itemListGUI and encodeUDim2(itemListGUI.Position) or nil, settingsGUIPos = settingsGUI and encodeUDim2(settingsGUI.Position) or nil, bossPanelPos = bossPanel and encodeUDim2(bossPanel.Position) or nil, bossButtonPos = bossPanelButton and encodeUDim2(bossPanelButton.Position) or nil, guiEnabled = guiEnabled, MAX_DISTANCE = Settings.MAX_DISTANCE, FADE_START_DISTANCE = Settings.FADE_START_DISTANCE, NOTIFICATION_DURATION = Settings.NOTIFICATION_DURATION, TELEPORT_RANGE = Settings.TELEPORT_RANGE, UPDATE_INTERVAL = Settings.UPDATE_INTERVAL, LIST_UPDATE_INTERVAL = Settings.LIST_UPDATE_INTERVAL, HIDE_NEAR_DISTANCE = Settings.HIDE_NEAR_DISTANCE, DEBUG = DEBUG, SOUND_ENABLED = Settings.SOUND_ENABLED, SOUND_VOLUME = Settings.SOUND_VOLUME, NOTIFICATION_POSITION = Settings.NOTIFICATION_POSITION, listFilter = listState.filterType, listSortMode = listState.sortMode, listSortAsc = listState.sortAsc, objectFavorites = objectFavorites, objectESP = objectESP, -- Death return DEATH_RETURN_ENABLED = Settings.DEATH_RETURN_ENABLED, DEATH_ANIMATION_ID = Settings.DEATH_ANIMATION_ID, -- Visuals VISUAL_COLORS = Settings.VISUAL_COLORS, VISUAL_SIZE_SCALE = Settings.VISUAL_SIZE_SCALE, VISUAL_TRANSPARENCY = Settings.VISUAL_TRANSPARENCY, VISUAL_ICON_ONLY_THRESHOLD = Settings.VISUAL_ICON_ONLY_THRESHOLD, VISUAL_LOD_ENABLED = Settings.VISUAL_LOD_ENABLED, VISUAL_LOD_DIST_ICON = Settings.VISUAL_LOD_DIST_ICON, VISUAL_LOD_DIST_BRIEF = Settings.VISUAL_LOD_DIST_BRIEF, VISUAL_FRUSTUM_CULLING = Settings.VISUAL_FRUSTUM_CULLING, -- Auto teleport AUTO_TELEPORT_ENABLED = Settings.AUTO_TELEPORT_ENABLED, AUTO_TELEPORT_DELAY = Settings.AUTO_TELEPORT_DELAY, AUTO_TELEPORT_WARNING = Settings.AUTO_TELEPORT_WARNING, -- Favorites FAVORITE_GROUPS = Settings.FAVORITE_GROUPS, FAVORITE_ACTIVE_GROUP = Settings.FAVORITE_ACTIVE_GROUP, FAVORITE_AUTO_KEYWORDS = Settings.FAVORITE_AUTO_KEYWORDS, AUTO_FAVORITE_NAMES = Settings.AUTO_FAVORITE_NAMES, -- Debug DEBUG_MODE = Settings.DEBUG_MODE, DEBUG_SHOW_PATHS = Settings.DEBUG_SHOW_PATHS, } local jsonData = HttpService:JSONEncode(settingsData) pcall(function() writefile(SETTINGS_FILE, jsonData) end) end local function loadSettings() if not canSaveToFile then return nil end local success, data = pcall(function() local json = readfile(SETTINGS_FILE) return json and json ~= "" and HttpService:JSONDecode(json) or nil end) return success and data or nil end local function applyLoadedSettings(settingsData) if not settingsData then return end -- Positions if settingsData.mainTogglePos then savedMainTogglePos = decodeUDim2(settingsData.mainTogglePos) end if settingsData.listTogglePos then savedListTogglePos = decodeUDim2(settingsData.listTogglePos) end if settingsData.settingsTogglePos then savedSettingsTogglePos = decodeUDim2(settingsData.settingsTogglePos) end if settingsData.itemListPos then savedItemListGUIPos = decodeUDim2(settingsData.itemListPos) end if settingsData.settingsGUIPos then savedSettingsGUIPos = decodeUDim2(settingsData.settingsGUIPos) end if settingsData.bossButtonPos then savedBossButtonPos = decodeUDim2(settingsData.bossButtonPos) end -- General if settingsData.MAX_DISTANCE then Settings.MAX_DISTANCE = settingsData.MAX_DISTANCE end if settingsData.FADE_START_DISTANCE then Settings.FADE_START_DISTANCE = settingsData.FADE_START_DISTANCE end if settingsData.NOTIFICATION_DURATION then Settings.NOTIFICATION_DURATION = settingsData.NOTIFICATION_DURATION end if settingsData.TELEPORT_RANGE then Settings.TELEPORT_RANGE = settingsData.TELEPORT_RANGE end if settingsData.UPDATE_INTERVAL then Settings.UPDATE_INTERVAL = settingsData.UPDATE_INTERVAL end if settingsData.LIST_UPDATE_INTERVAL then Settings.LIST_UPDATE_INTERVAL = settingsData.LIST_UPDATE_INTERVAL end if settingsData.HIDE_NEAR_DISTANCE then Settings.HIDE_NEAR_DISTANCE = settingsData.HIDE_NEAR_DISTANCE end if settingsData.guiEnabled ~= nil then guiEnabled = settingsData.guiEnabled end if settingsData.DEBUG ~= nil then DEBUG = settingsData.DEBUG end if settingsData.SOUND_ENABLED ~= nil then Settings.SOUND_ENABLED = settingsData.SOUND_ENABLED end if settingsData.SOUND_VOLUME ~= nil then Settings.SOUND_VOLUME = settingsData.SOUND_VOLUME end if settingsData.NOTIFICATION_POSITION then Settings.NOTIFICATION_POSITION = settingsData.NOTIFICATION_POSITION end if settingsData.listFilter then listState.filterType = settingsData.listFilter end if settingsData.listSortMode then listState.sortMode = settingsData.listSortMode end if settingsData.listSortAsc ~= nil then listState.sortAsc = settingsData.listSortAsc end if settingsData.objectFavorites then savedObjectFavorites = settingsData.objectFavorites end if settingsData.objectESP then savedObjectESP = settingsData.objectESP end -- Death return if settingsData.DEATH_RETURN_ENABLED ~= nil then Settings.DEATH_RETURN_ENABLED = settingsData.DEATH_RETURN_ENABLED end if settingsData.DEATH_ANIMATION_ID then Settings.DEATH_ANIMATION_ID = settingsData.DEATH_ANIMATION_ID end -- Visuals if settingsData.VISUAL_COLORS then for k, v in pairs(settingsData.VISUAL_COLORS) do Settings.VISUAL_COLORS[k] = v end end if settingsData.VISUAL_SIZE_SCALE then Settings.VISUAL_SIZE_SCALE = settingsData.VISUAL_SIZE_SCALE end if settingsData.VISUAL_TRANSPARENCY then Settings.VISUAL_TRANSPARENCY = settingsData.VISUAL_TRANSPARENCY end if settingsData.VISUAL_ICON_ONLY_THRESHOLD then Settings.VISUAL_ICON_ONLY_THRESHOLD = settingsData.VISUAL_ICON_ONLY_THRESHOLD end if settingsData.VISUAL_LOD_ENABLED ~= nil then Settings.VISUAL_LOD_ENABLED = settingsData.VISUAL_LOD_ENABLED end if settingsData.VISUAL_LOD_DIST_ICON then Settings.VISUAL_LOD_DIST_ICON = settingsData.VISUAL_LOD_DIST_ICON end if settingsData.VISUAL_LOD_DIST_BRIEF then Settings.VISUAL_LOD_DIST_BRIEF = settingsData.VISUAL_LOD_DIST_BRIEF end if settingsData.VISUAL_FRUSTUM_CULLING ~= nil then Settings.VISUAL_FRUSTUM_CULLING = settingsData.VISUAL_FRUSTUM_CULLING end -- Auto teleport if settingsData.AUTO_TELEPORT_ENABLED ~= nil then Settings.AUTO_TELEPORT_ENABLED = settingsData.AUTO_TELEPORT_ENABLED end if settingsData.AUTO_TELEPORT_DELAY then Settings.AUTO_TELEPORT_DELAY = settingsData.AUTO_TELEPORT_DELAY end if settingsData.AUTO_TELEPORT_WARNING ~= nil then Settings.AUTO_TELEPORT_WARNING = settingsData.AUTO_TELEPORT_WARNING end -- Favorites if settingsData.FAVORITE_GROUPS then Settings.FAVORITE_GROUPS = settingsData.FAVORITE_GROUPS end if settingsData.FAVORITE_ACTIVE_GROUP then Settings.FAVORITE_ACTIVE_GROUP = settingsData.FAVORITE_ACTIVE_GROUP end if settingsData.FAVORITE_AUTO_KEYWORDS then Settings.FAVORITE_AUTO_KEYWORDS = settingsData.FAVORITE_AUTO_KEYWORDS end if settingsData.AUTO_FAVORITE_NAMES then Settings.AUTO_FAVORITE_NAMES = settingsData.AUTO_FAVORITE_NAMES end -- Debug if settingsData.DEBUG_MODE ~= nil then Settings.DEBUG_MODE = settingsData.DEBUG_MODE end if settingsData.DEBUG_SHOW_PATHS ~= nil then Settings.DEBUG_SHOW_PATHS = settingsData.DEBUG_SHOW_PATHS end end local saveDebounce = false local function debouncedSaveSettings() if not canSaveToFile or saveDebounce then return end saveDebounce = true task.delay(1, function() saveSettings(); saveDebounce = false end) end -- ========== PATH LINES UPDATE ========== local function updatePathLines() if not Settings.DEBUG_SHOW_PATHS then -- delete all lines for _, line in pairs(pathLines) do if line then pcall(line.Destroy, line) end end pathLines = {} return end local character = LocalPlayer.Character if not character then return end local root = character:FindFirstChild("HumanoidRootPart") if not root then return end for obj, data in pairs(objectCache) do if obj and obj.Parent then local pos = getObjectPosition(obj) local line = pathLines[obj] if not line then local part = Instance.new("Part") part.Name = "PathLine" part.Size = Vector3.new(0.2, 0.2, (root.Position - pos).Magnitude) part.CFrame = CFrame.lookAt(root.Position, pos) * CFrame.new(0, 0, -part.Size.Z/2) part.Anchored = true part.CanCollide = false part.Transparency = 0.5 part.BrickColor = BrickColor.new("Bright red") part.Material = Enum.Material.Neon part.Parent = workspace pathLines[obj] = part else local dist = (root.Position - pos).Magnitude line.Size = Vector3.new(0.2, 0.2, dist) line.CFrame = CFrame.lookAt(root.Position, pos) * CFrame.new(0, 0, -dist/2) end else if pathLines[obj] then pcall(pathLines[obj].Destroy, pathLines[obj]) pathLines[obj] = nil end end end end -- ========== LOD HELPER ========== local function getLODLevel(dist) if not Settings.VISUAL_LOD_ENABLED then return 3 end if dist > Settings.VISUAL_LOD_DIST_ICON then return 1 elseif dist > Settings.VISUAL_LOD_DIST_BRIEF then return 2 else return 3 end end local function isObjectVisible(pos) if not Settings.VISUAL_FRUSTUM_CULLING then return true end local onScreen, visPos = Camera:WorldToViewportPoint(pos) return onScreen and visPos.Z > 0 end -- ========== COMPACT BOSS ESP WITH LOD SUPPORT ========== local function createInfoCard(object) if not guiEnabled then return nil end local data = objectCache[object] if not data then debugPrint("❌ No data for object", object.Name, "- cannot create ESP") return nil end local style = getObjectStyle(object) local isBoss = (style == TypeStyles.Boss or style == TypeStyles.Sukuna) local isCompact = style.Compact or false local cardWidth, cardHeight if isCompact then cardWidth = 280 cardHeight = 140 else cardWidth = isBoss and 400 or 320 cardHeight = isBoss and 220 or 140 end if IS_MOBILE then cardWidth = cardWidth * Settings.MOBILE_SCALE cardHeight = cardHeight * Settings.MOBILE_SCALE end cardWidth = cardWidth * Settings.VISUAL_SIZE_SCALE cardHeight = cardHeight * Settings.VISUAL_SIZE_SCALE local container = Instance.new("BillboardGui") container.Name = "ObjectInfoCard" container.AlwaysOnTop = true container.Size = UDim2.new(0, cardWidth, 0, cardHeight) container.StudsOffset = Vector3.new(0, 3, 0) container.MaxDistance = Settings.MAX_DISTANCE container.Enabled = true container.ZIndexBehavior = Enum.ZIndexBehavior.Sibling container.Active = true -- Adornee (attachment) local adornee = nil if object:IsA("BasePart") then adornee = object elseif object:IsA("Model") then adornee = object.PrimaryPart or object:FindFirstChildWhichIsA("BasePart") if not adornee then for _, descendant in ipairs(object:GetDescendants()) do if descendant:IsA("BasePart") then adornee = descendant break end end end end if adornee then container.Adornee = adornee else local humanoid = object:FindFirstChildOfClass("Humanoid") local rootPart = humanoid and humanoid.RootPart if rootPart then container.Adornee = rootPart else local tempPart = Instance.new("Part") tempPart.Name = "ESPTempPart" tempPart.Size = Vector3.new(1, 1, 1) tempPart.Transparency = 1 tempPart.CanCollide = false tempPart.Anchored = false tempPart.Parent = object local pivot = object:GetPivot() tempPart.CFrame = pivot container.Adornee = tempPart data.tempPart = tempPart data.updateConnection = RunService.Heartbeat:Connect(function() if tempPart and tempPart.Parent and object and object.Parent then tempPart.CFrame = object:GetPivot() else if data.updateConnection then data.updateConnection:Disconnect() data.updateConnection = nil end end end) end end -- Main frame local main = Instance.new("Frame") main.Name = "MainFrame" main.BackgroundColor3 = style.Background main.BackgroundTransparency = Settings.VISUAL_TRANSPARENCY main.Size = UDim2.new(1,0,1,0) main.BorderSizePixel = 0 Instance.new("UICorner", main).CornerRadius = UDim.new(0,12) -- === LOD 1: icon and name only === local lod1 = Instance.new("Frame") lod1.Name = "LOD1" lod1.BackgroundTransparency = 1 lod1.Size = UDim2.new(1,0,1,0) lod1.Visible = false do local icon = Instance.new("TextLabel") icon.Name = "Icon" icon.Text = style.Icon icon.TextColor3 = style.TextColor icon.TextSize = 40 * Settings.VISUAL_SIZE_SCALE icon.Font = Enum.Font.GothamBold icon.BackgroundTransparency = 1 icon.Size = UDim2.new(1,0,0.5,0) icon.Position = UDim2.new(0,0,0,0) icon.Parent = lod1 local name = Instance.new("TextLabel") name.Name = "Name" name.Text = getDisplayName(object) .. (data.favorite and ' ' or '') name.RichText = true name.TextColor3 = style.TextColor name.TextSize = 14 * Settings.VISUAL_SIZE_SCALE name.Font = Enum.Font.Gotham name.BackgroundTransparency = 1 name.Size = UDim2.new(1,0,0.3,0) name.Position = UDim2.new(0,0,0.5,0) name.Parent = lod1 end lod1.Parent = main -- === LOD 2: icon, name, type, distance === local lod2 = Instance.new("Frame") lod2.Name = "LOD2" lod2.BackgroundTransparency = 1 lod2.Size = UDim2.new(1,0,1,0) lod2.Visible = false do local icon = Instance.new("TextLabel") icon.Name = "Icon" icon.Text = style.Icon icon.TextColor3 = style.TextColor icon.TextSize = 30 * Settings.VISUAL_SIZE_SCALE icon.Font = Enum.Font.GothamBold icon.BackgroundTransparency = 1 icon.Size = UDim2.new(0,40,0,40) icon.Position = UDim2.new(0,5,0.5,-20) icon.Parent = lod2 local name = Instance.new("TextLabel") name.Name = "Name" name.Text = getDisplayName(object) .. (data.favorite and ' ' or '') name.RichText = true name.TextColor3 = style.TextColor name.TextSize = 16 * Settings.VISUAL_SIZE_SCALE name.Font = Enum.Font.GothamBold name.BackgroundTransparency = 1 name.Size = UDim2.new(1,-60,0,30) name.Position = UDim2.new(0,50,0.2,0) name.TextXAlignment = Enum.TextXAlignment.Left name.Parent = lod2 local typeLabel = Instance.new("TextLabel") typeLabel.Name = "TypeLabel" typeLabel.Text = "Type: " .. (getSpecialType(object) or object.ClassName) typeLabel.TextColor3 = Color3.fromRGB(200,200,200) typeLabel.TextSize = 12 * Settings.VISUAL_SIZE_SCALE typeLabel.Font = Enum.Font.Gotham typeLabel.BackgroundTransparency = 1 typeLabel.Size = UDim2.new(1,-60,0,20) typeLabel.Position = UDim2.new(0,50,0.5,0) typeLabel.TextXAlignment = Enum.TextXAlignment.Left typeLabel.Parent = lod2 local dist = Instance.new("TextLabel") dist.Name = "DistanceLabel" dist.Text = "Distance: ?" dist.TextColor3 = Color3.fromRGB(200,200,200) dist.TextSize = 12 * Settings.VISUAL_SIZE_SCALE dist.Font = Enum.Font.Gotham dist.BackgroundTransparency = 1 dist.Size = UDim2.new(1,-60,0,20) dist.Position = UDim2.new(0,50,0.7,0) dist.TextXAlignment = Enum.TextXAlignment.Left dist.Parent = lod2 end lod2.Parent = main -- === LOD 3: full version (original ESP with boss support) === local lod3 = Instance.new("Frame") lod3.Name = "LOD3" lod3.BackgroundTransparency = 1 lod3.Size = UDim2.new(1,0,1,0) lod3.Visible = true do -- Glow effect local glow = Instance.new("Frame") glow.BackgroundColor3 = style.Glow glow.BackgroundTransparency = 0.9 glow.Size = UDim2.new(1,10,1,10) glow.Position = UDim2.new(0,-5,0,-5) glow.BorderSizePixel = 0 glow.ZIndex = 0 Instance.new("UICorner", glow).CornerRadius = UDim.new(0,16) glow.Parent = lod3 -- Header local header = Instance.new("Frame") header.BackgroundColor3 = style.Header header.Size = UDim2.new(1,0,0,isCompact and 30 or 40) header.BorderSizePixel = 0 header.ZIndex = 2 Instance.new("UICorner", header).CornerRadius = UDim.new(0,12,0,0) if style.HeaderGradient then createGradient(header, style.HeaderGradient[1], style.HeaderGradient[2], 45) else createGradient(header, style.Header, style.Header:lerp(Color3.new(0,0,0), 0.3), 45) end local headerIcon = Instance.new("TextLabel") headerIcon.Text = style.Icon headerIcon.TextColor3 = style.TextColor headerIcon.TextSize = isCompact and 20 or 28 if IS_MOBILE then headerIcon.TextSize = headerIcon.TextSize * 1.2 end headerIcon.Font = Enum.Font.GothamBold headerIcon.BackgroundTransparency = 1 headerIcon.Size = UDim2.new(0, isCompact and 20 or 28, 0, isCompact and 20 or 28) headerIcon.Position = UDim2.new(0, isCompact and 5 or 10, 0.5, isCompact and -10 or -14) headerIcon.ZIndex = 3 headerIcon.Parent = header local headerName = Instance.new("TextLabel") headerName.Name = "HeaderName" headerName.Text = getDisplayName(object) .. (data.favorite and ' ' or '') headerName.RichText = true headerName.TextColor3 = style.TextColor headerName.TextSize = isCompact and 14 or 18 if IS_MOBILE then headerName.TextSize = headerName.TextSize * 1.2 end headerName.Font = Enum.Font.GothamBold headerName.BackgroundTransparency = 1 headerName.Size = UDim2.new(1, -(isCompact and 30 or 50), 1, 0) headerName.Position = UDim2.new(0, isCompact and 30 or 50, 0, 0) headerName.TextXAlignment = Enum.TextXAlignment.Left headerName.ZIndex = 3 headerName.Parent = header if style.ExtraIconAnimation and not isCompact then local extraIcon = Instance.new("TextLabel") extraIcon.Text = style.Icon extraIcon.TextColor3 = Color3.fromRGB(255, 200, 0) extraIcon.TextSize = 24 if IS_MOBILE then extraIcon.TextSize = extraIcon.TextSize * 1.2 end extraIcon.Font = Enum.Font.GothamBold extraIcon.BackgroundTransparency = 1 extraIcon.Size = UDim2.new(0, 30, 0, 30) extraIcon.Position = UDim2.new(1, -35, 0.5, -15) extraIcon.ZIndex = 4 extraIcon.Parent = header TweenService:Create(extraIcon, TweenInfo.new(0.8, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut, -1, true), {TextTransparency = 0.5, TextSize = 28}):Play() end header.Parent = lod3 -- Content local content = Instance.new("Frame") content.BackgroundTransparency = 1 local contentHeight = isCompact and 100 or (isBoss and 170 or 90) if IS_MOBILE then contentHeight = contentHeight * 1.2 end content.Size = UDim2.new(1,-20,0, contentHeight) content.Position = UDim2.new(0,10,0, isCompact and 35 or 45) content.ZIndex = 2 local layout = Instance.new("UIListLayout") layout.Padding = UDim.new(0, isCompact and 4 or 8) layout.HorizontalAlignment = Enum.HorizontalAlignment.Left layout.VerticalAlignment = Enum.VerticalAlignment.Top layout.Parent = content -- Type local typeRow = Instance.new("Frame") typeRow.BackgroundTransparency = 1 typeRow.Size = UDim2.new(1,0,0, isCompact and 20 or 24) if IS_MOBILE then typeRow.Size = UDim2.new(1,0,0, isCompact and 30 or 36) end local typeIcon = Instance.new("TextLabel") typeIcon.Text = "📦" typeIcon.TextColor3 = style.TextColor typeIcon.TextSize = isCompact and 16 or 20 if IS_MOBILE then typeIcon.TextSize = typeIcon.TextSize * 1.2 end typeIcon.Font = Enum.Font.GothamBold typeIcon.BackgroundTransparency = 1 typeIcon.Size = UDim2.new(0, isCompact and 16 or 20, 0, isCompact and 16 or 20) typeIcon.Position = UDim2.new(0,0,0.5, isCompact and -8 or -10) typeIcon.Parent = typeRow local typeLabel = Instance.new("TextLabel") typeLabel.Text = "Type: " .. (getSpecialType(object) or object.ClassName) typeLabel.TextColor3 = Color3.fromRGB(200,200,200) typeLabel.TextSize = isCompact and 12 or 14 if IS_MOBILE then typeLabel.TextSize = typeLabel.TextSize * 1.2 end typeLabel.Font = Enum.Font.Gotham typeLabel.BackgroundTransparency = 1 typeLabel.Size = UDim2.new(1,-30,1,0) typeLabel.Position = UDim2.new(0, isCompact and 20 or 30, 0,0) typeLabel.TextXAlignment = Enum.TextXAlignment.Left typeLabel.Parent = typeRow typeRow.Parent = content -- Distance local distRow = Instance.new("Frame") distRow.BackgroundTransparency = 1 distRow.Size = UDim2.new(1,0,0, isCompact and 20 or 24) if IS_MOBILE then distRow.Size = UDim2.new(1,0,0, isCompact and 30 or 36) end local distIcon = Instance.new("TextLabel") distIcon.Text = "📍" distIcon.TextColor3 = style.TextColor distIcon.TextSize = isCompact and 16 or 20 if IS_MOBILE then distIcon.TextSize = distIcon.TextSize * 1.2 end distIcon.Font = Enum.Font.GothamBold distIcon.BackgroundTransparency = 1 distIcon.Size = UDim2.new(0, isCompact and 16 or 20, 0, isCompact and 16 or 20) distIcon.Position = UDim2.new(0,0,0.5, isCompact and -8 or -10) distIcon.Parent = distRow local distLabel = Instance.new("TextLabel") distLabel.Name = "DistanceLabel" distLabel.Text = "Distance: 0 studs" distLabel.TextColor3 = Color3.fromRGB(200,200,200) distLabel.TextSize = isCompact and 12 or 14 if IS_MOBILE then distLabel.TextSize = distLabel.TextSize * 1.2 end distLabel.Font = Enum.Font.Gotham distLabel.BackgroundTransparency = 1 distLabel.Size = UDim2.new(1,-30,1,0) distLabel.Position = UDim2.new(0, isCompact and 20 or 30, 0,0) distLabel.TextXAlignment = Enum.TextXAlignment.Left distLabel.Parent = distRow distRow.Parent = content -- Boss health (fixed version as in Boss Status) if isBoss then local healthRow = Instance.new("Frame") healthRow.Name = "HealthRow" healthRow.BackgroundTransparency = 1 healthRow.Size = UDim2.new(1,0,0, isCompact and 50 or 60) if IS_MOBILE then healthRow.Size = UDim2.new(1,0,0, isCompact and 70 or 80) end -- Heart icon local hpIcon = Instance.new("TextLabel") hpIcon.Name = "HPIcon" hpIcon.Text = "❤️" hpIcon.TextColor3 = Color3.fromRGB(255, 100, 100) hpIcon.TextSize = isCompact and 16 or 20 if IS_MOBILE then hpIcon.TextSize = hpIcon.TextSize * 1.2 end hpIcon.Font = Enum.Font.GothamBold hpIcon.BackgroundTransparency = 1 hpIcon.Size = UDim2.new(0, isCompact and 20 or 24, 0, isCompact and 20 or 24) hpIcon.Position = UDim2.new(0, 0, 0, 5) hpIcon.Parent = healthRow -- HP text (like in Boss Status: "HP: 100/100 (100%)") local hpText = Instance.new("TextLabel") hpText.Name = "HPText" hpText.Text = "HP: 0/0 (0%)" hpText.TextColor3 = Color3.fromRGB(255, 255, 255) hpText.TextSize = isCompact and 12 or 14 if IS_MOBILE then hpText.TextSize = hpText.TextSize * 1.2 end hpText.Font = Enum.Font.Gotham hpText.BackgroundTransparency = 1 hpText.Size = UDim2.new(1, -30, 0, 20) hpText.Position = UDim2.new(0, 25, 0, 5) hpText.TextXAlignment = Enum.TextXAlignment.Left hpText.Parent = healthRow -- HP bar local hpBarBg = Instance.new("Frame") hpBarBg.Name = "HPBarBg" hpBarBg.BackgroundColor3 = Color3.fromRGB(60, 60, 60) hpBarBg.Size = UDim2.new(1, -25, 0, 10) hpBarBg.Position = UDim2.new(0, 25, 0, 30) hpBarBg.BorderSizePixel = 0 hpBarBg.Parent = healthRow Instance.new("UICorner", hpBarBg).CornerRadius = UDim.new(0, 4) local hpBarFill = Instance.new("Frame") hpBarFill.Name = "HPBarFill" hpBarFill.BackgroundColor3 = Color3.fromRGB(255, 70, 70) hpBarFill.Size = UDim2.new(1, 0, 1, 0) -- will be updated hpBarFill.BorderSizePixel = 0 hpBarFill.Parent = hpBarBg Instance.new("UICorner", hpBarFill).CornerRadius = UDim.new(0, 4) -- Percentage (for aesthetics) local percentLabel = Instance.new("TextLabel") percentLabel.Name = "HealthPercent" percentLabel.Text = "100%" percentLabel.TextColor3 = Color3.fromRGB(255, 255, 255) percentLabel.TextSize = isCompact and 10 or 12 if IS_MOBILE then percentLabel.TextSize = percentLabel.TextSize * 1.2 end percentLabel.Font = Enum.Font.Gotham percentLabel.BackgroundTransparency = 1 percentLabel.Size = UDim2.new(0, 40, 0, 20) percentLabel.Position = UDim2.new(1, -45, 0, 5) percentLabel.TextXAlignment = Enum.TextXAlignment.Right percentLabel.Parent = healthRow healthRow.Parent = content -- Save references for updates data.hpText = hpText data.hpBarFill = hpBarFill data.percentLabel = percentLabel end -- Skull icon for bosses at low health if isBoss and not isCompact then local skullIcon = Instance.new("TextLabel") skullIcon.Name = "SkullIcon" skullIcon.Text = "💀" skullIcon.TextColor3 = Color3.fromRGB(255, 50, 50) skullIcon.TextSize = 30 if IS_MOBILE then skullIcon.TextSize = skullIcon.TextSize * 1.2 end skullIcon.Font = Enum.Font.GothamBold skullIcon.BackgroundTransparency = 1 skullIcon.Size = UDim2.new(0, 40, 0, 40) skullIcon.Position = UDim2.new(1, -50, 1, -45) skullIcon.ZIndex = 5 skullIcon.Visible = false skullIcon.Parent = lod3 TweenService:Create(skullIcon, TweenInfo.new(0.5, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut, -1, true), {TextTransparency = 0.5}):Play() data.skullIcon = skullIcon end content.Parent = lod3 -- TP button local quickTeleport = Instance.new("TextButton") quickTeleport.Name = "QuickTeleport" quickTeleport.Text = "TP" quickTeleport.TextColor3 = Settings.TEXT_COLOR quickTeleport.TextSize = isCompact and 10 or 12 if IS_MOBILE then quickTeleport.TextSize = quickTeleport.TextSize * 1.2 end quickTeleport.Font = Enum.Font.GothamBold quickTeleport.BackgroundColor3 = Settings.TELEPORT_COLOR quickTeleport.BackgroundTransparency = 0.3 quickTeleport.Size = UDim2.new(0, isCompact and 50 or 80, 0, isCompact and 20 or 25) quickTeleport.Position = UDim2.new(1, -(isCompact and 55 or 85), 1, -(isCompact and 25 or 30)) quickTeleport.BorderSizePixel = 0 quickTeleport.ZIndex = 10 quickTeleport.AutoButtonColor = true Instance.new("UICorner", quickTeleport).CornerRadius = UDim.new(0, isCompact and 4 or 6) quickTeleport.MouseEnter:Connect(function() quickTeleport.BackgroundColor3 = Color3.fromRGB(255, 200, 0) end) quickTeleport.MouseLeave:Connect(function() quickTeleport.BackgroundColor3 = Settings.TELEPORT_COLOR end) quickTeleport.MouseButton1Click:Connect(function() playSound("ButtonClick") teleportToObject(object) end) quickTeleport.Parent = lod3 -- Status indicator local status = Instance.new("Frame") status.Name = "StatusIndicator" status.BackgroundColor3 = Color3.fromRGB(0,255,127) status.Size = UDim2.new(0, isCompact and 6 or 8, 0, isCompact and 6 or 8) status.Position = UDim2.new(1, -(isCompact and 70 or 100), 0, isCompact and 8 or 10) status.BorderSizePixel = 0 status.ZIndex = 3 Instance.new("UICorner", status).CornerRadius = UDim.new(1,0) TweenService:Create(status, TweenInfo.new(1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut, -1, true), {BackgroundTransparency = 0.5}):Play() status.Parent = lod3 end lod3.Parent = main main.Parent = container -- Save LOD frame references data.lodFrames = {lod1, lod2, lod3} -- Entry animation container.Size = UDim2.new(0,10,0,10) main.BackgroundTransparency = 1 TweenService:Create(container, TweenInfo.new(0.3, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {Size = UDim2.new(0,cardWidth,0,cardHeight)}):Play() TweenService:Create(main, TweenInfo.new(0.3, Enum.EasingStyle.Back, Enum.EasingDirection.Out), {BackgroundTransparency = Settings.VISUAL_TRANSPARENCY}):Play() container.Parent = Camera return container end -- END OF PART 1/4 --[[ Nexus Tracker v10.0 – Advanced ESP, LOD, Auto Teleport, Enhanced Favorites, Debug PART 2/4 ]] -- ========== ESP AND FAVORITE MANAGEMENT ========== local function setESPEnabled(obj, enabled) local data = objectCache[obj] if not data then return end data.espEnabled = enabled if data.esp then data.esp.Enabled = enabled and guiEnabled end if itemListVisible then pcall(updateItemList) end debouncedSaveSettings() end local function toggleFavorite(obj) local data = objectCache[obj] if not data then return end local objName = obj.Name local newState = not data.favorite -- If enabling favorite if newState then -- Add name to auto-favorite list if not already present if not tableFind(Settings.AUTO_FAVORITE_NAMES, objName) then table.insert(Settings.AUTO_FAVORITE_NAMES, objName) end -- Mark all objects with same name as favorite for otherObj, otherData in pairs(objectCache) do if otherObj and otherObj.Name == objName then otherData.favorite = true end end else -- If disabling, remove name from list for i, name in ipairs(Settings.AUTO_FAVORITE_NAMES) do if name == objName then table.remove(Settings.AUTO_FAVORITE_NAMES, i) break end end -- Remove favorite from all objects with that name for otherObj, otherData in pairs(objectCache) do if otherObj and otherObj.Name == objName then otherData.favorite = false end end end -- Recreate ESP for all objects with this name to update star for otherObj, otherData in pairs(objectCache) do if otherObj and otherObj.Name == objName then if otherData.esp then otherData.esp:Destroy() otherData.esp = createInfoCard(otherObj) if otherData.esp then otherData.esp.Enabled = guiEnabled and otherData.espEnabled end end end end -- Force list update if open if itemListVisible then pcall(updateItemList) end debouncedSaveSettings() end -- ========== ADD SPECIAL OBJECT ========== local function tryAddSpecialObject(obj, sType) if not obj or objectCache[obj] then return false end local path = obj:GetFullName() local favorite = savedObjectFavorites[path] or false if checkAutoFavorite(obj) then favorite = true end if tableFind(Settings.AUTO_FAVORITE_NAMES, obj.Name) then favorite = true end local espEnabled = savedObjectESP[path] or true local data = { esp = nil, espEnabled = espEnabled, favorite = favorite, addedTime = tick(), className = obj.ClassName, displayName = getDisplayName(obj), position = getObjectPosition(obj), fullPath = path, specialType = sType, lowHealthPlayed = false } objectCache[obj] = data if sType == "Boss" or sType == "Sukuna" then local humanoid = obj:FindFirstChildOfClass("Humanoid") if humanoid then data.health = humanoid.Health data.maxHealth = humanoid.MaxHealth end local now = tick() if now - lastBossSpawnNotification > BOSS_NOTIFICATION_COOLDOWN then playSound("BossSpawn") createSpawnNotification("🔥 BOSS SPAWNED", SPECIAL_NAMES[sType] .. " has appeared!", obj, 5, Color3.fromRGB(255,100,0)) lastBossSpawnNotification = now end lastBossType = sType scheduleAutoTeleport(obj, sType) else playSound("ItemSpawn") createSpawnNotification("✨ SPECIAL ITEM", SPECIAL_NAMES[sType] or obj.Name, obj, Settings.NOTIFICATION_DURATION, Settings.SECONDARY_COLOR) end local esp = createInfoCard(obj) if esp then data.esp = esp esp.Enabled = guiEnabled and espEnabled else objectCache[obj] = nil return false end updateListToggleIcon() if itemListVisible then pcall(updateItemList) end return true end -- ========== SETTINGS COMPONENTS ========== local function createValueInput(parent, currentValue, minValue, maxValue, suffix, callback) local frame = Instance.new("Frame") frame.Name = "ValueInputFrame" frame.BackgroundTransparency = 1 frame.Size = UDim2.new(0, 120, 0, 30) local box = Instance.new("TextBox") box.Name = "ValueInputBox" box.Text = tostring(currentValue) box.PlaceholderText = "Enter value..." box.TextColor3 = Settings.TEXT_COLOR box.PlaceholderColor3 = Color3.fromRGB(150,150,150) box.TextSize = 14 if IS_MOBILE then box.TextSize = 18 end box.Font = Enum.Font.Gotham box.BackgroundColor3 = Color3.fromRGB(40,40,50) box.BackgroundTransparency = 0.2 box.Size = UDim2.new(1,0,1,0) box.BorderSizePixel = 0 Instance.new("UICorner", box).CornerRadius = UDim.new(0,6) Instance.new("UIPadding", box).PaddingLeft = UDim.new(0,8) box.FocusLost:Connect(function() local val = tonumber(box.Text) if val then val = math.clamp(val, minValue, maxValue) box.Text = tostring(val) if callback then callback(val) end debouncedSaveSettings() else box.Text = tostring(currentValue) end end) box.Parent = frame return frame end local function createToggleSetting(parent, labelText, value, callback) local frame = Instance.new("Frame") frame.Name = labelText.."Toggle" frame.BackgroundTransparency = 1 frame.Size = UDim2.new(1,0,0,50) if IS_MOBILE then frame.Size = UDim2.new(1,0,0,70) end local label = Instance.new("TextLabel") label.Text = labelText label.TextColor3 = Settings.TEXT_COLOR label.TextSize = 16 if IS_MOBILE then label.TextSize = 20 end label.Font = Enum.Font.GothamBold label.BackgroundTransparency = 1 label.Size = UDim2.new(1,-100,0,25) label.TextXAlignment = Enum.TextXAlignment.Left label.Parent = frame local btn = Instance.new("TextButton") btn.Text = value and "ON" or "OFF" btn.TextColor3 = Settings.TEXT_COLOR btn.TextSize = 14 if IS_MOBILE then btn.TextSize = 18 end btn.Font = Enum.Font.GothamBold btn.BackgroundColor3 = value and Color3.fromRGB(46,204,113) or Color3.fromRGB(231,76,60) btn.BackgroundTransparency = 0.3 btn.Size = UDim2.new(0,80,0,30) if IS_MOBILE then btn.Size = UDim2.new(0,100,0,40) end btn.Position = UDim2.new(1,-80,0,0) if IS_MOBILE then btn.Position = UDim2.new(1,-100,0,0) end btn.BorderSizePixel = 0 btn.AutoButtonColor = true Instance.new("UICorner", btn).CornerRadius = UDim.new(0,8) btn.MouseButton1Click:Connect(function() playSound("ButtonClick") local new = not value btn.Text = new and "ON" or "OFF" btn.BackgroundColor3 = new and Color3.fromRGB(46,204,113) or Color3.fromRGB(231,76,60) value = new if callback then callback(new) end debouncedSaveSettings() end) btn.Parent = frame return frame end local function createDropdown(parent, labelText, options, current, callback) local frame = Instance.new("Frame") frame.Name = labelText.."Dropdown" frame.BackgroundTransparency = 1 frame.Size = UDim2.new(1,0,0,50) if IS_MOBILE then frame.Size = UDim2.new(1,0,0,70) end local label = Instance.new("TextLabel") label.Text = labelText label.TextColor3 = Settings.TEXT_COLOR label.TextSize = 16 if IS_MOBILE then label.TextSize = 20 end label.Font = Enum.Font.GothamBold label.BackgroundTransparency = 1 label.Size = UDim2.new(1,-150,0,25) label.TextXAlignment = Enum.TextXAlignment.Left label.Parent = frame local dropdownBtn = Instance.new("TextButton") dropdownBtn.Text = current dropdownBtn.TextColor3 = Settings.TEXT_COLOR dropdownBtn.TextSize = 14 if IS_MOBILE then dropdownBtn.TextSize = 18 end dropdownBtn.Font = Enum.Font.GothamBold dropdownBtn.BackgroundColor3 = Color3.fromRGB(60,60,70) dropdownBtn.BackgroundTransparency = 0.3 dropdownBtn.Size = UDim2.new(0,140,0,30) if IS_MOBILE then dropdownBtn.Size = UDim2.new(0,160,0,40) end dropdownBtn.Position = UDim2.new(1,-140,0,0) if IS_MOBILE then dropdownBtn.Position = UDim2.new(1,-160,0,0) end dropdownBtn.BorderSizePixel = 0 dropdownBtn.ZIndex = 30 Instance.new("UICorner", dropdownBtn).CornerRadius = UDim.new(0,6) dropdownBtn.Parent = frame local dropList = Instance.new("Frame") dropList.Name = "DropList" dropList.BackgroundColor3 = Color3.fromRGB(40,40,50) dropList.BackgroundTransparency = 0.2 dropList.Size = UDim2.new(0,140,0,0) if IS_MOBILE then dropList.Size = UDim2.new(0,160,0,0) end dropList.Position = UDim2.new(1,-140,0,35) if IS_MOBILE then dropList.Position = UDim2.new(1,-160,0,40) end dropList.BorderSizePixel = 0 dropList.ZIndex = 31 dropList.ClipsDescendants = true dropList.Visible = false Instance.new("UICorner", dropList).CornerRadius = UDim.new(0,6) dropList.Parent = frame local listLayout = Instance.new("UIListLayout") listLayout.Parent = dropList local function showDropdown() dropList.Visible = true dropList:TweenSize(UDim2.new(0,140,0,#options * 30), "Out", "Quad", 0.2, true) if IS_MOBILE then dropList:TweenSize(UDim2.new(0,160,0,#options * 40), "Out", "Quad", 0.2, true) end end local function hideDropdown() dropList:TweenSize(UDim2.new(0,140,0,0), "Out", "Quad", 0.2, true) if IS_MOBILE then dropList:TweenSize(UDim2.new(0,160,0,0), "Out", "Quad", 0.2, true) end task.wait(0.2) dropList.Visible = false end dropdownBtn.MouseButton1Click:Connect(function() playSound("ButtonClick") if dropList.Visible then hideDropdown() else showDropdown() end end) for _, opt in ipairs(options) do local optBtn = Instance.new("TextButton") optBtn.Text = opt optBtn.TextColor3 = Settings.TEXT_COLOR optBtn.TextSize = 14 if IS_MOBILE then optBtn.TextSize = 18 end optBtn.Font = Enum.Font.Gotham optBtn.BackgroundColor3 = Color3.fromRGB(50,50,60) optBtn.BackgroundTransparency = 0.3 optBtn.Size = UDim2.new(1,0,0,30) if IS_MOBILE then optBtn.Size = UDim2.new(1,0,0,40) end optBtn.BorderSizePixel = 0 optBtn.ZIndex = 32 Instance.new("UICorner", optBtn).CornerRadius = UDim.new(0,4) optBtn.Parent = dropList optBtn.MouseButton1Click:Connect(function() playSound("ButtonClick") dropdownBtn.Text = opt hideDropdown() if callback then callback(opt) end debouncedSaveSettings() end) optBtn.MouseEnter:Connect(function() optBtn.BackgroundColor3 = Color3.fromRGB(70,70,80) end) optBtn.MouseLeave:Connect(function() optBtn.BackgroundColor3 = Color3.fromRGB(50,50,60) end) end UserInputService.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then local pos = UserInputService:GetMouseLocation() local absPos = frame.AbsolutePosition local absSize = frame.AbsoluteSize if pos.X < absPos.X or pos.X > absPos.X + absSize.X or pos.Y < absPos.Y or pos.Y > absPos.Y + absSize.Y then if dropList.Visible then hideDropdown() end end end end) return frame end local function createSettingSliderWithInput(labelText, value, minValue, maxValue, suffix, callback) local frame = Instance.new("Frame") frame.Name = labelText.."Slider" frame.BackgroundTransparency = 1 frame.Size = UDim2.new(1,0,0,80) if IS_MOBILE then frame.Size = UDim2.new(1,0,0,100) end local label = Instance.new("TextLabel") label.Text = labelText label.TextColor3 = Settings.TEXT_COLOR label.TextSize = 16 if IS_MOBILE then label.TextSize = 20 end label.Font = Enum.Font.GothamBold label.BackgroundTransparency = 1 label.Size = UDim2.new(1,0,0,25) label.TextXAlignment = Enum.TextXAlignment.Left label.Parent = frame local input = createValueInput(frame, value, minValue, maxValue, suffix, function(newVal) local pct = (newVal - minValue) / (maxValue - minValue) fill.Size = UDim2.new(pct, 0, 1, 0) btn.Position = UDim2.new(pct, -10, 0.5, -10) valLabel.Text = tostring(newVal)..suffix if callback then callback(newVal) end debouncedSaveSettings() end) input.Position = UDim2.new(1, -120, 0, 0) input.Size = UDim2.new(0, 120, 0, 30) if IS_MOBILE then input.Position = UDim2.new(1, -140, 0, 0) input.Size = UDim2.new(0, 140, 0, 40) end input.Parent = frame local valLabel = Instance.new("TextLabel") valLabel.Name = "ValueLabel" valLabel.Text = tostring(value)..suffix valLabel.TextColor3 = Settings.PRIMARY_COLOR valLabel.TextSize = 16 if IS_MOBILE then valLabel.TextSize = 20 end valLabel.Font = Enum.Font.GothamBold valLabel.BackgroundTransparency = 1 valLabel.Size = UDim2.new(0,120,0,25) valLabel.Position = UDim2.new(0,0,0,25) valLabel.TextXAlignment = Enum.TextXAlignment.Left valLabel.Parent = frame local bg = Instance.new("Frame") bg.Name = "SliderBackground" bg.BackgroundColor3 = Color3.fromRGB(40,40,50) bg.BackgroundTransparency = 0.2 bg.Size = UDim2.new(1,0,0,10) bg.Position = UDim2.new(0,0,0,55) bg.BorderSizePixel = 0 Instance.new("UICorner", bg).CornerRadius = UDim.new(1,0) local fill = Instance.new("Frame") fill.Name = "SliderFill" fill.BackgroundColor3 = Settings.PRIMARY_COLOR fill.Size = UDim2.new((value-minValue)/(maxValue-minValue),0,1,0) fill.BorderSizePixel = 0 Instance.new("UICorner", fill).CornerRadius = UDim.new(1,0) createGradient(fill, Settings.PRIMARY_COLOR, Settings.SECONDARY_COLOR, 0) local btn = Instance.new("TextButton") btn.Name = "SliderButton" btn.Text = "" btn.BackgroundColor3 = Color3.fromRGB(255,255,255) btn.Size = UDim2.new(0,20,0,20) btn.Position = UDim2.new((value-minValue)/(maxValue-minValue), -10, 0.5, -10) btn.BorderSizePixel = 0 btn.ZIndex = 5 btn.AutoButtonColor = false Instance.new("UICorner", btn).CornerRadius = UDim.new(1,0) local dragging = false local function updateFromMouse(x) local relX = math.clamp(x - bg.AbsolutePosition.X, 0, bg.AbsoluteSize.X) local pct = relX / bg.AbsoluteSize.X local newVal = minValue + pct * (maxValue - minValue) if suffix == " studs" then newVal = math.floor(newVal) elseif suffix == " sec" then newVal = math.floor(newVal) elseif suffix == " ms" then newVal = math.floor(newVal/10)*10 end newVal = math.clamp(newVal, minValue, maxValue) local fillPct = (newVal - minValue) / (maxValue - minValue) fill.Size = UDim2.new(fillPct, 0, 1, 0) btn.Position = UDim2.new(fillPct, -10, 0.5, -10) valLabel.Text = tostring(newVal)..suffix local inp = input:FindFirstChild("ValueInputBox") if inp then inp.Text = tostring(newVal) end if callback then callback(newVal) end end btn.MouseButton1Down:Connect(function() dragging = true end) bg.InputBegan:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true updateFromMouse(i.Position.X) end end) UserInputService.InputChanged:Connect(function(i) if dragging and i.UserInputType == Enum.UserInputType.MouseMovement then updateFromMouse(i.Position.X) end end) UserInputService.InputEnded:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 and dragging then dragging = false debouncedSaveSettings() end end) fill.Parent = bg btn.Parent = bg bg.Parent = frame return frame end -- ========== LIST UPDATE FUNCTIONS ========== function updateListToggleIcon() if not listToggle then return end local total = 0 for _ in pairs(objectCache) do total = total + 1 end listToggle.Text = "📋 "..total end function updateItemList() if not itemListGUI or not itemListGUI.Visible then return end local container = itemListGUI:FindFirstChild("ItemsContainer") local countLabel = itemListGUI:FindFirstChild("ItemCount") if not container or not countLabel then return end for _, c in ipairs(container:GetChildren()) do if c:IsA("Frame") then c:Destroy() end end local items = {} for obj, data in pairs(objectCache) do if obj and obj.Parent then data.position = getObjectPosition(obj) data.displayName = getDisplayName(obj) table.insert(items, {obj = obj, data = data}) else if data and data.esp then if data.updateConnection then data.updateConnection:Disconnect() end if data.tempPart and data.tempPart.Parent then data.tempPart:Destroy() end pcall(data.esp.Destroy, data.esp) end objectCache[obj] = nil end end local filtered = {} local root = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") for _, it in ipairs(items) do local isTool = it.obj:IsA("Tool") local isNote = it.obj:IsA("Model") and it.obj.Name == SPECIFIC_MODEL_NAME local isSpecial = it.data.specialType ~= nil if listState.filterType == "all" then table.insert(filtered, it) elseif listState.filterType == "tool" and isTool then table.insert(filtered, it) elseif listState.filterType == "note" and isNote then table.insert(filtered, it) elseif listState.filterType == "special" and isSpecial then table.insert(filtered, it) end end if listState.searchText and listState.searchText ~= "" then local search = string.lower(listState.searchText) local searchFiltered = {} for _, it in ipairs(filtered) do local name = string.lower(it.data.displayName or "") if string.find(name, search, 1, true) then table.insert(searchFiltered, it) end end filtered = searchFiltered end table.sort(filtered, function(a, b) local da, db = a.data, b.data local distA = root and (root.Position - da.position).Magnitude or math.huge local distB = root and (root.Position - db.position).Magnitude or math.huge if listState.sortMode == "name" then local nameA = da.displayName or "" local nameB = db.displayName or "" return (listState.sortAsc and nameA < nameB) or nameA > nameB elseif listState.sortMode == "distance" then return (listState.sortAsc and distA < distB) or distA > distB elseif listState.sortMode == "favorite" then if da.favorite ~= db.favorite then return da.favorite and not db.favorite else return distA < distB end else return distA < distB end end) local total = 0 for _ in pairs(objectCache) do total = total + 1 end countLabel.Text = string.format("Items: %d (showing %d)", total, #filtered) updateListToggleIcon() for i, it in ipairs(filtered) do local obj = it.obj local data = it.data local dist = root and (root.Position - data.position).Magnitude or 0 local distText = root and string.format("%.0f studs", dist) or "Unknown" local specialType = data.specialType local icon = specialType and SPECIAL_ICONS[specialType] or (obj:IsA("Tool") and "🛠️" or "📝") local card = Instance.new("Frame") card.Name = "ItemCard" card.BackgroundColor3 = Color3.fromRGB(40,50,60) card.BackgroundTransparency = 0.1 card.Size = UDim2.new(1, -20, 0, 70) if IS_MOBILE then card.Size = UDim2.new(1, -20, 0, 100) end card.BorderSizePixel = 0 card.LayoutOrder = i Instance.new("UICorner", card).CornerRadius = UDim.new(0, 8) -- Hover ESP local hoverTimer = nil card.MouseEnter:Connect(function() if hoverTimer then hoverTimer:Cancel() end if data.esp and not data.esp.Enabled and guiEnabled then data.esp.Enabled = true end end) card.MouseLeave:Connect(function() hoverTimer = task.delay(0.5, function() if data.esp and data.espEnabled == false then data.esp.Enabled = false end end) end) local iconLabel = Instance.new("TextLabel") iconLabel.Text = icon iconLabel.TextColor3 = Settings.TEXT_COLOR iconLabel.TextSize = 24 if IS_MOBILE then iconLabel.TextSize = 32 end iconLabel.Font = Enum.Font.GothamBold iconLabel.BackgroundTransparency = 1 iconLabel.Size = UDim2.new(0, 30, 0, 30) if IS_MOBILE then iconLabel.Size = UDim2.new(0, 40, 0, 40) end iconLabel.Position = UDim2.new(0, 5, 0.5, -15) iconLabel.Parent = card local nameLabel = Instance.new("TextLabel") nameLabel.Text = data.displayName or obj.Name nameLabel.TextColor3 = Settings.TEXT_COLOR nameLabel.TextSize = 14 if IS_MOBILE then nameLabel.TextSize = 18 end nameLabel.Font = Enum.Font.GothamBold nameLabel.BackgroundTransparency = 1 nameLabel.Size = UDim2.new(0, 150, 0, 30) nameLabel.Position = UDim2.new(0, 40, 0.5, -15) nameLabel.TextXAlignment = Enum.TextXAlignment.Left nameLabel.TextTruncate = Enum.TextTruncate.AtEnd nameLabel.Parent = card local distLabel = Instance.new("TextLabel") distLabel.Text = distText distLabel.TextColor3 = Settings.PRIMARY_COLOR distLabel.TextSize = 12 if IS_MOBILE then distLabel.TextSize = 16 end distLabel.Font = Enum.Font.Gotham distLabel.BackgroundTransparency = 1 distLabel.Size = UDim2.new(0, 80, 0, 30) distLabel.Position = UDim2.new(0, 200, 0.5, -15) distLabel.Parent = card if (specialType == "Boss" or specialType == "Sukuna") and data.health then local healthText = Instance.new("TextLabel") healthText.Text = string.format("❤️ %d/%d (%d%%)", data.health, data.maxHealth, math.floor((data.health/data.maxHealth)*100)) healthText.TextColor3 = Color3.fromRGB(255,100,100) healthText.TextSize = 11 if IS_MOBILE then healthText.TextSize = 14 end healthText.Font = Enum.Font.GothamBold healthText.BackgroundTransparency = 1 healthText.Size = UDim2.new(0, 120, 0, 20) healthText.Position = UDim2.new(0, 290, 0.5, -25) healthText.Parent = card local hpBarBg = Instance.new("Frame") hpBarBg.BackgroundColor3 = Color3.fromRGB(60,60,60) hpBarBg.Size = UDim2.new(0, 60, 0, 6) hpBarBg.Position = UDim2.new(0, 290, 0.5, 5) hpBarBg.BorderSizePixel = 0 Instance.new("UICorner", hpBarBg).CornerRadius = UDim.new(0,3) hpBarBg.Parent = card local hpBarFill = Instance.new("Frame") hpBarFill.BackgroundColor3 = Color3.fromRGB(255,70,70) hpBarFill.Size = UDim2.new(data.health/data.maxHealth, 0, 1, 0) hpBarFill.BorderSizePixel = 0 Instance.new("UICorner", hpBarFill).CornerRadius = UDim.new(0,3) hpBarFill.Parent = hpBarBg end local favBtn = Instance.new("TextButton") favBtn.Text = data.favorite and "★" or "☆" favBtn.TextColor3 = data.favorite and Settings.FAVORITE_COLOR or Color3.fromRGB(150,150,150) favBtn.TextSize = 20 if IS_MOBILE then favBtn.TextSize = 26 end favBtn.Font = Enum.Font.GothamBold favBtn.BackgroundTransparency = 1 favBtn.Size = UDim2.new(0, 30, 0, 30) favBtn.Position = UDim2.new(0, 400, 0.5, -15) favBtn.ZIndex = 23 favBtn.AutoButtonColor = false favBtn.Parent = card favBtn.MouseButton1Click:Connect(function() playSound("ButtonClick"); toggleFavorite(obj) end) local espBtn = Instance.new("TextButton") espBtn.Text = "👁️" espBtn.TextColor3 = data.esp and data.espEnabled and Settings.ESP_ENABLED_COLOR or Settings.ESP_DISABLED_COLOR espBtn.TextSize = 20 if IS_MOBILE then espBtn.TextSize = 26 end espBtn.Font = Enum.Font.GothamBold espBtn.BackgroundTransparency = 1 espBtn.Size = UDim2.new(0, 30, 0, 30) espBtn.Position = UDim2.new(0, 440, 0.5, -15) espBtn.ZIndex = 23 espBtn.AutoButtonColor = false espBtn.Parent = card espBtn.MouseButton1Click:Connect(function() playSound("ButtonClick") if data.esp then setESPEnabled(obj, not data.espEnabled) else local esp = createInfoCard(obj) if esp then data.esp = esp data.espEnabled = true esp.Enabled = guiEnabled end end espBtn.TextColor3 = data.esp and data.espEnabled and Settings.ESP_ENABLED_COLOR or Settings.ESP_DISABLED_COLOR end) local tpBtn = Instance.new("TextButton") tpBtn.Text = "TP" tpBtn.TextColor3 = Settings.TEXT_COLOR tpBtn.TextSize = 12 if IS_MOBILE then tpBtn.TextSize = 16 end tpBtn.Font = Enum.Font.GothamBold tpBtn.BackgroundColor3 = Settings.TELEPORT_COLOR tpBtn.BackgroundTransparency = 0.2 tpBtn.Size = UDim2.new(0, 40, 0, 30) if IS_MOBILE then tpBtn.Size = UDim2.new(0, 50, 0, 40) end tpBtn.Position = UDim2.new(1, -50, 0.5, -15) tpBtn.BorderSizePixel = 0 tpBtn.ZIndex = 22 tpBtn.AutoButtonColor = true Instance.new("UICorner", tpBtn).CornerRadius = UDim.new(0, 6) local deb = false tpBtn.MouseButton1Click:Connect(function() playSound("ButtonClick") if deb then return end deb = true teleportToObject(obj) deb = false end) tpBtn.Parent = card card.Parent = container end updateBossStatusPanel() end function updateBossStatusPanel() local panel = itemListGUI and itemListGUI:FindFirstChild("BossStatusPanel") if not panel then return end local bossObj, bossData = nil, nil for obj, data in pairs(objectCache) do if (data.specialType == "Boss" or data.specialType == "Sukuna") and obj and obj.Parent then bossObj = obj bossData = data break end end if bossObj and bossData then panel.Visible = true local nameLabel = panel:FindFirstChild("BossName") local hpLabel = panel:FindFirstChild("BossHP") local tpButton = panel:FindFirstChild("TeleportButton") if nameLabel then nameLabel.Text = SPECIAL_NAMES[bossData.specialType] end if hpLabel and bossData.health and bossData.maxHealth then local percent = math.floor((bossData.health / bossData.maxHealth) * 100) hpLabel.Text = string.format("❤️ %d / %d (%d%%)", bossData.health, bossData.maxHealth, percent) end if tpButton then tpButton.MouseButton1Click:Connect(function() teleportToObject(bossObj) end) end else panel.Visible = false end end -- END OF PART 2/4 --[[ Nexus Tracker v10.0 – Advanced ESP, LOD, Auto Teleport, Enhanced Favorites, Debug PART 3/4 ]] -- ========== SETTINGS WITH TABS (including new tabs) ========== local function createSettingsGUI() if settingsGUI and settingsGUI.Parent then settingsGUI:Destroy() end settingsGUI = Instance.new("Frame") settingsGUI.Name = "SettingsGUI" settingsGUI.BackgroundColor3 = Settings.LIST_COLOR settingsGUI.BackgroundTransparency = 0.2 settingsGUI.Size = UDim2.new(0, 800, 0, 600) -- increased for new tabs if IS_MOBILE then settingsGUI.Size = UDim2.new(0, 900, 0, 700) end settingsGUI.Position = savedSettingsGUIPos or UDim2.new(0.5, -400, 0.5, -300) settingsGUI.BorderSizePixel = 0 settingsGUI.Visible = false settingsGUI.ZIndex = 20 Instance.new("UICorner", settingsGUI).CornerRadius = UDim.new(0, 12) -- Title bar local titleBar = Instance.new("Frame") titleBar.Name = "TitleBar" titleBar.BackgroundColor3 = Settings.PRIMARY_COLOR titleBar.Size = UDim2.new(1, 0, 0, 50) titleBar.BorderSizePixel = 0 titleBar.ZIndex = 21 Instance.new("UICorner", titleBar).CornerRadius = UDim.new(0, 12, 0, 0) createGradient(titleBar, Settings.PRIMARY_COLOR, Settings.SECONDARY_COLOR, 45) local title = Instance.new("TextLabel") title.Text = "SETTINGS" title.TextColor3 = Settings.TEXT_COLOR title.TextSize = 22 if IS_MOBILE then title.TextSize = 28 end title.Font = Enum.Font.GothamBold title.BackgroundTransparency = 1 title.Size = UDim2.new(1, -100, 1, 0) title.Position = UDim2.new(0, 20, 0, 0) title.TextXAlignment = Enum.TextXAlignment.Left title.ZIndex = 23 title.Parent = titleBar local closeBtn = Instance.new("TextButton") closeBtn.Text = "✕" closeBtn.TextColor3 = Settings.TEXT_COLOR closeBtn.TextSize = 24 if IS_MOBILE then closeBtn.TextSize = 30 end closeBtn.Font = Enum.Font.GothamBold closeBtn.BackgroundColor3 = Color3.fromRGB(231, 76, 60) closeBtn.BackgroundTransparency = 0.3 closeBtn.Size = UDim2.new(0, 40, 0, 40) if IS_MOBILE then closeBtn.Size = UDim2.new(0, 50, 0, 50) end closeBtn.Position = UDim2.new(1, -50, 0, 5) closeBtn.BorderSizePixel = 0 closeBtn.ZIndex = 22 Instance.new("UICorner", closeBtn).CornerRadius = UDim.new(0, 8) closeBtn.MouseButton1Click:Connect(function() playSound("ButtonClick"); toggleSettings(false) end) closeBtn.Parent = titleBar titleBar.Parent = settingsGUI -- Tab bar local tabBar = Instance.new("Frame") tabBar.Name = "TabBar" tabBar.BackgroundTransparency = 1 tabBar.Size = UDim2.new(1, -20, 0, 40) tabBar.Position = UDim2.new(0, 10, 0, 60) tabBar.ZIndex = 21 tabBar.Parent = settingsGUI -- Tab buttons local tabs = { {name = "🌍 Global", color = Settings.PRIMARY_COLOR}, {name = "🔔 Notifications", color = Settings.SECONDARY_COLOR}, {name = "💀 Death", color = Color3.fromRGB(150,0,0)}, {name = "🎨 Visuals", color = Color3.fromRGB(150,100,200)}, {name = "⚡ Auto TP", color = Color3.fromRGB(200,150,0)}, {name = "⭐ Favorites", color = Settings.FAVORITE_COLOR}, {name = "🐞 Debug", color = Color3.fromRGB(100,100,100)}, } local tabButtons = {} local containers = {} for i, tab in ipairs(tabs) do local btn = Instance.new("TextButton") btn.Name = "Tab"..i btn.Text = tab.name btn.TextColor3 = Settings.TEXT_COLOR btn.TextSize = 14 if IS_MOBILE then btn.TextSize = 18 end btn.Font = Enum.Font.GothamBold btn.BackgroundColor3 = tab.color btn.BackgroundTransparency = i == 1 and 0.2 or 0.5 btn.Size = UDim2.new(0, 100, 0, 30) if IS_MOBILE then btn.Size = UDim2.new(0, 120, 0, 40) end btn.Position = UDim2.new(0, (i-1)*110, 0.5, -15) btn.BorderSizePixel = 0 btn.ZIndex = 22 Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 8) btn.Parent = tabBar tabButtons[i] = btn local container = Instance.new("ScrollingFrame") container.Name = "Container"..i container.BackgroundTransparency = 1 container.Size = UDim2.new(1, -20, 1, -140) container.Position = UDim2.new(0, 10, 0, 110) container.BorderSizePixel = 0 container.ScrollBarThickness = 8 container.AutomaticCanvasSize = Enum.AutomaticSize.Y container.ZIndex = 21 container.Visible = (i == 1) Instance.new("UIListLayout", container).Padding = UDim.new(0, 15) container.Parent = settingsGUI containers[i] = container end local function setActiveTab(index) for i, btn in ipairs(tabButtons) do btn.BackgroundTransparency = i == index and 0.2 or 0.5 containers[i].Visible = (i == index) end end for i, btn in ipairs(tabButtons) do btn.MouseButton1Click:Connect(function() playSound("ButtonClick"); setActiveTab(i) end) end -- Fill tabs -- Tab 1: Global do local c = containers[1] createSettingSliderWithInput("Max Distance", Settings.MAX_DISTANCE, 100, 15000, " studs", function(v) Settings.MAX_DISTANCE = v end).Parent = c createSettingSliderWithInput("Fade Start", Settings.FADE_START_DISTANCE, 50, 10000, " studs", function(v) Settings.FADE_START_DISTANCE = v end).Parent = c createSettingSliderWithInput("Teleport Range", Settings.TELEPORT_RANGE, 10, 5000, " studs", function(v) Settings.TELEPORT_RANGE = v end).Parent = c createSettingSliderWithInput("ESP Update (ms)", Settings.UPDATE_INTERVAL * 1000, 10, 5000, " ms", function(v) Settings.UPDATE_INTERVAL = v/1000 end).Parent = c createSettingSliderWithInput("List Refresh (ms)", Settings.LIST_UPDATE_INTERVAL * 1000, 100, 5000, " ms", function(v) Settings.LIST_UPDATE_INTERVAL = v/1000 end).Parent = c createSettingSliderWithInput("Sound Volume", Settings.SOUND_VOLUME * 100, 0, 100, "%", function(v) Settings.SOUND_VOLUME = v/100 end).Parent = c createSettingSliderWithInput("Hide ESP Near (studs)", Settings.HIDE_NEAR_DISTANCE, 0, 500, " studs", function(v) Settings.HIDE_NEAR_DISTANCE = v end).Parent = c createToggleSetting(c, "Debug Mode (script)", DEBUG, function(v) DEBUG = v end).Parent = c createToggleSetting(c, "Sound Enabled", Settings.SOUND_ENABLED, function(v) Settings.SOUND_ENABLED = v end).Parent = c end -- Tab 2: Notifications do local c = containers[2] createSettingSliderWithInput("Notif Duration", Settings.NOTIFICATION_DURATION, 1, 60, " sec", function(v) Settings.NOTIFICATION_DURATION = v end).Parent = c local notifPosDropdown = createDropdown(c, "Notification Position", {"BottomRight", "TopRight", "BottomLeft", "TopLeft", "CenterTop", "CenterBottom"}, Settings.NOTIFICATION_POSITION, function(val) Settings.NOTIFICATION_POSITION = val updateNotificationPosition() end) notifPosDropdown.Parent = c local numFrame = Instance.new("Frame") numFrame.Name = "NotifNumFrame" numFrame.BackgroundTransparency = 1 numFrame.Size = UDim2.new(1,0,0,40) numFrame.Parent = c local numLabel = Instance.new("TextLabel") numLabel.Text = "Or enter number (1-6):" numLabel.TextColor3 = Settings.TEXT_COLOR numLabel.TextSize = 14 if IS_MOBILE then numLabel.TextSize = 18 end numLabel.Font = Enum.Font.Gotham numLabel.BackgroundTransparency = 1 numLabel.Size = UDim2.new(0,150,0,30) numLabel.Position = UDim2.new(0,0,0.5,-15) numLabel.TextXAlignment = Enum.TextXAlignment.Left numLabel.Parent = numFrame local numInput = Instance.new("TextBox") numInput.Name = "NotifNumInput" local indexMap = {BottomRight=1, TopRight=2, BottomLeft=3, TopLeft=4, CenterTop=5, CenterBottom=6} numInput.Text = tostring(indexMap[Settings.NOTIFICATION_POSITION] or 1) numInput.TextColor3 = Settings.TEXT_COLOR numInput.PlaceholderText = "1-6" numInput.TextSize = 14 if IS_MOBILE then numInput.TextSize = 18 end numInput.Font = Enum.Font.Gotham numInput.BackgroundColor3 = Color3.fromRGB(40,40,50) numInput.BackgroundTransparency = 0.2 numInput.Size = UDim2.new(0,50,0,30) if IS_MOBILE then numInput.Size = UDim2.new(0,70,0,40) end numInput.Position = UDim2.new(1,-60,0.5,-15) numInput.BorderSizePixel = 0 Instance.new("UICorner", numInput).CornerRadius = UDim.new(0,6) Instance.new("UIPadding", numInput).PaddingLeft = UDim.new(0,8) numInput.Parent = numFrame numInput.FocusLost:Connect(function() local val = tonumber(numInput.Text) if val and val >=1 and val <=6 then local options = {"BottomRight", "TopRight", "BottomLeft", "TopLeft", "CenterTop", "CenterBottom"} local selected = options[val] Settings.NOTIFICATION_POSITION = selected updateNotificationPosition() local dropdownBtn = notifPosDropdown:FindFirstChildOfClass("TextButton") if dropdownBtn then dropdownBtn.Text = selected end debouncedSaveSettings() else local currentIndex = indexMap[Settings.NOTIFICATION_POSITION] or 1 numInput.Text = tostring(currentIndex) end end) local testNotifBtn = Instance.new("TextButton") testNotifBtn.Text = "🔔 TEST NOTIFICATION" testNotifBtn.TextColor3 = Settings.TEXT_COLOR testNotifBtn.TextSize = 16 if IS_MOBILE then testNotifBtn.TextSize = 20 end testNotifBtn.Font = Enum.Font.GothamBold testNotifBtn.BackgroundColor3 = Color3.fromRGB(100,100,200) testNotifBtn.BackgroundTransparency = 0.2 testNotifBtn.Size = UDim2.new(1, -40, 0, 40) testNotifBtn.Position = UDim2.new(0, 20, 0, 0) testNotifBtn.BorderSizePixel = 0 Instance.new("UICorner", testNotifBtn).CornerRadius = UDim.new(0, 8) testNotifBtn.MouseButton1Click:Connect(function() playSound("ButtonClick") createSpawnNotification("📢 TEST", "This is a test notification", nil, 3, Color3.fromRGB(100,200,100)) end) testNotifBtn.Parent = c end -- Tab 3: Death Return do local c = containers[3] local deathToggle = createToggleSetting(c, "Enable Death Return", Settings.DEATH_RETURN_ENABLED, function(v) Settings.DEATH_RETURN_ENABLED = v enableDeathReturn(v) debouncedSaveSettings() end) deathToggle.Parent = c local animIdFrame = Instance.new("Frame") animIdFrame.Name = "AnimationIdFrame" animIdFrame.BackgroundTransparency = 1 animIdFrame.Size = UDim2.new(1,0,0,50) animIdFrame.Parent = c local animIdLabel = Instance.new("TextLabel") animIdLabel.Text = "Animation ID:" animIdLabel.TextColor3 = Settings.TEXT_COLOR animIdLabel.TextSize = 16 if IS_MOBILE then animIdLabel.TextSize = 20 end animIdLabel.Font = Enum.Font.GothamBold animIdLabel.BackgroundTransparency = 1 animIdLabel.Size = UDim2.new(0,150,0,25) animIdLabel.Position = UDim2.new(0,0,0.5,-12.5) animIdLabel.TextXAlignment = Enum.TextXAlignment.Left animIdLabel.Parent = animIdFrame local animIdInput = Instance.new("TextBox") animIdInput.Name = "AnimationIdInput" animIdInput.Text = tostring(Settings.DEATH_ANIMATION_ID) animIdInput.PlaceholderText = "Enter animation ID" animIdInput.TextColor3 = Settings.TEXT_COLOR animIdInput.PlaceholderColor3 = Color3.fromRGB(150,150,150) animIdInput.TextSize = 14 if IS_MOBILE then animIdInput.TextSize = 18 end animIdInput.Font = Enum.Font.Gotham animIdInput.BackgroundColor3 = Color3.fromRGB(40,40,50) animIdInput.BackgroundTransparency = 0.2 animIdInput.Size = UDim2.new(0,200,0,30) if IS_MOBILE then animIdInput.Size = UDim2.new(0,250,0,40) end animIdInput.Position = UDim2.new(1,-210,0.5,-15) animIdInput.BorderSizePixel = 0 animIdInput.ZIndex = 22 Instance.new("UICorner", animIdInput).CornerRadius = UDim.new(0,6) Instance.new("UIPadding", animIdInput).PaddingLeft = UDim.new(0,8) animIdInput.Parent = animIdFrame animIdInput:GetPropertyChangedSignal("Text"):Connect(function() local text = animIdInput.Text local filtered = text:gsub("%D", "") if filtered ~= text then animIdInput.Text = filtered end end) animIdInput.FocusLost:Connect(function() local val = animIdInput.Text if val == "" then val = "0" end Settings.DEATH_ANIMATION_ID = val debouncedSaveSettings() end) local testAnimBtn = Instance.new("TextButton") testAnimBtn.Text = "▶ Test Animation" testAnimBtn.TextColor3 = Settings.TEXT_COLOR testAnimBtn.TextSize = 14 if IS_MOBILE then testAnimBtn.TextSize = 18 end testAnimBtn.Font = Enum.Font.GothamBold testAnimBtn.BackgroundColor3 = Color3.fromRGB(100,100,200) testAnimBtn.BackgroundTransparency = 0.2 testAnimBtn.Size = UDim2.new(1,-40,0,40) testAnimBtn.Position = UDim2.new(0,20,0,0) testAnimBtn.BorderSizePixel = 0 Instance.new("UICorner", testAnimBtn).CornerRadius = UDim.new(0,8) testAnimBtn.MouseButton1Click:Connect(function() playSound("ButtonClick") if LocalPlayer.Character then stopAllAnimations(LocalPlayer.Character) playNewAnimation(LocalPlayer.Character) end end) testAnimBtn.Parent = c end -- Tab 4: Visuals do local c = containers[4] -- LOD Section header local lodHeader = Instance.new("TextLabel") lodHeader.Text = "LOD Settings" lodHeader.TextColor3 = Settings.PRIMARY_COLOR lodHeader.TextSize = 18 lodHeader.Font = Enum.Font.GothamBold lodHeader.BackgroundTransparency = 1 lodHeader.Size = UDim2.new(1,0,0,30) lodHeader.TextXAlignment = Enum.TextXAlignment.Left lodHeader.Parent = c createToggleSetting(c, "Enable LOD (mobile default)", Settings.VISUAL_LOD_ENABLED, function(v) Settings.VISUAL_LOD_ENABLED = v; debouncedSaveSettings() end).Parent = c createSettingSliderWithInput("Icon Only Threshold", Settings.VISUAL_ICON_ONLY_THRESHOLD, 1, 50, " objects", function(v) Settings.VISUAL_ICON_ONLY_THRESHOLD = v end).Parent = c createSettingSliderWithInput("LOD Icon Distance", Settings.VISUAL_LOD_DIST_ICON, 100, 5000, " studs", function(v) Settings.VISUAL_LOD_DIST_ICON = v end).Parent = c createSettingSliderWithInput("LOD Brief Distance", Settings.VISUAL_LOD_DIST_BRIEF, 50, 2000, " studs", function(v) Settings.VISUAL_LOD_DIST_BRIEF = v end).Parent = c createToggleSetting(c, "Frustum Culling", Settings.VISUAL_FRUSTUM_CULLING, function(v) Settings.VISUAL_FRUSTUM_CULLING = v; debouncedSaveSettings() end).Parent = c createToggleSetting(c, "Bypass LOD for Bosses", Settings.VISUAL_BOSS_BYPASS_LOD or false, function(v) Settings.VISUAL_BOSS_BYPASS_LOD = v; debouncedSaveSettings() end).Parent = c -- Separator local separator1 = Instance.new("Frame") separator1.BackgroundColor3 = Color3.fromRGB(100,100,100) separator1.BackgroundTransparency = 0.7 separator1.Size = UDim2.new(1,0,0,2) separator1.BorderSizePixel = 0 separator1.Parent = c -- General Visual Settings header local generalHeader = Instance.new("TextLabel") generalHeader.Text = "General Visual Settings" generalHeader.TextColor3 = Settings.PRIMARY_COLOR generalHeader.TextSize = 18 generalHeader.Font = Enum.Font.GothamBold generalHeader.BackgroundTransparency = 1 generalHeader.Size = UDim2.new(1,0,0,30) generalHeader.TextXAlignment = Enum.TextXAlignment.Left generalHeader.Parent = c createSettingSliderWithInput("Visual Size Scale", Settings.VISUAL_SIZE_SCALE * 100, 50, 200, "%", function(v) Settings.VISUAL_SIZE_SCALE = v/100 end).Parent = c createSettingSliderWithInput("Visual Transparency", Settings.VISUAL_TRANSPARENCY * 100, 0, 100, "%", function(v) Settings.VISUAL_TRANSPARENCY = v/100 end).Parent = c -- Separator local separator2 = Instance.new("Frame") separator2.BackgroundColor3 = Color3.fromRGB(100,100,100) separator2.BackgroundTransparency = 0.7 separator2.Size = UDim2.new(1,0,0,2) separator2.BorderSizePixel = 0 separator2.Parent = c -- Object Colors header local colorHeader = Instance.new("TextLabel") colorHeader.Text = "Object Colors" colorHeader.TextColor3 = Settings.PRIMARY_COLOR colorHeader.TextSize = 18 colorHeader.Font = Enum.Font.GothamBold colorHeader.BackgroundTransparency = 1 colorHeader.Size = UDim2.new(1,0,0,30) colorHeader.TextXAlignment = Enum.TextXAlignment.Left colorHeader.Parent = c -- Colors for each type for objType, color in pairs(Settings.VISUAL_COLORS) do local frame = Instance.new("Frame") frame.BackgroundTransparency = 1 frame.Size = UDim2.new(1,0,0,40) frame.Parent = c local label = Instance.new("TextLabel") label.Text = objType .. ":" label.TextColor3 = Settings.TEXT_COLOR label.TextSize = 14 label.Font = Enum.Font.Gotham label.BackgroundTransparency = 1 label.Size = UDim2.new(0,100,1,0) label.TextXAlignment = Enum.TextXAlignment.Left label.Parent = frame local colorBox = Instance.new("TextBox") colorBox.Text = string.format("%d,%d,%d", color.R*255, color.G*255, color.B*255) colorBox.PlaceholderText = "R,G,B" colorBox.TextColor3 = Settings.TEXT_COLOR colorBox.TextSize = 14 colorBox.Font = Enum.Font.Gotham colorBox.BackgroundColor3 = Color3.fromRGB(40,40,50) colorBox.BackgroundTransparency = 0.2 colorBox.Size = UDim2.new(0,120,0,30) colorBox.Position = UDim2.new(1,-130,0.5,-15) colorBox.BorderSizePixel = 0 Instance.new("UICorner", colorBox).CornerRadius = UDim.new(0,6) colorBox.FocusLost:Connect(function() local r,g,b = colorBox.Text:match("(%d+),%s*(%d+),%s*(%d+)") if r and g and b then Settings.VISUAL_COLORS[objType] = Color3.fromRGB(tonumber(r), tonumber(g), tonumber(b)) debouncedSaveSettings() end end) colorBox.Parent = frame end end -- Tab 5: Auto Teleport do local c = containers[5] createToggleSetting(c, "Enable Auto Teleport to Boss", Settings.AUTO_TELEPORT_ENABLED, function(v) Settings.AUTO_TELEPORT_ENABLED = v; debouncedSaveSettings() end).Parent = c createSettingSliderWithInput("Teleport Delay", Settings.AUTO_TELEPORT_DELAY, 0, 10, " sec", function(v) Settings.AUTO_TELEPORT_DELAY = v end).Parent = c createToggleSetting(c, "Show Warning", Settings.AUTO_TELEPORT_WARNING, function(v) Settings.AUTO_TELEPORT_WARNING = v; debouncedSaveSettings() end).Parent = c end -- Tab 6: Favorites do local c = containers[6] -- Favorite groups (simplified - just list) local groupsFrame = Instance.new("Frame") groupsFrame.BackgroundTransparency = 1 groupsFrame.Size = UDim2.new(1,0,0,60) groupsFrame.Parent = c local groupsLabel = Instance.new("TextLabel") groupsLabel.Text = "Favorite Groups (comma separated):" groupsLabel.TextColor3 = Settings.TEXT_COLOR groupsLabel.TextSize = 14 groupsLabel.Font = Enum.Font.Gotham groupsLabel.BackgroundTransparency = 1 groupsLabel.Size = UDim2.new(1,0,0,20) groupsLabel.TextXAlignment = Enum.TextXAlignment.Left groupsLabel.Parent = groupsFrame local groupsInput = Instance.new("TextBox") groupsInput.Text = table.concat(Settings.FAVORITE_GROUPS, ",") groupsInput.PlaceholderText = "Main,Secondary,Bosses" groupsInput.TextColor3 = Settings.TEXT_COLOR groupsInput.TextSize = 14 groupsInput.Font = Enum.Font.Gotham groupsInput.BackgroundColor3 = Color3.fromRGB(40,40,50) groupsInput.BackgroundTransparency = 0.2 groupsInput.Size = UDim2.new(1,-20,0,30) groupsInput.Position = UDim2.new(0,10,0,25) groupsInput.BorderSizePixel = 0 Instance.new("UICorner", groupsInput).CornerRadius = UDim.new(0,6) groupsInput.FocusLost:Connect(function() local list = {} for word in groupsInput.Text:gmatch("[^,]+") do table.insert(list, word:match("^%s*(.-)%s*$")) end if #list > 0 then Settings.FAVORITE_GROUPS = list debouncedSaveSettings() end end) groupsInput.Parent = groupsFrame -- Active group (select from list) local activeFrame = Instance.new("Frame") activeFrame.BackgroundTransparency = 1 activeFrame.Size = UDim2.new(1,0,0,40) activeFrame.Parent = c local activeLabel = Instance.new("TextLabel") activeLabel.Text = "Active Group:" activeLabel.TextColor3 = Settings.TEXT_COLOR activeLabel.TextSize = 14 activeLabel.Font = Enum.Font.Gotham activeLabel.BackgroundTransparency = 1 activeLabel.Size = UDim2.new(0,100,1,0) activeLabel.TextXAlignment = Enum.TextXAlignment.Left activeLabel.Parent = activeFrame local activeDropdown = createDropdown(activeFrame, "", Settings.FAVORITE_GROUPS, Settings.FAVORITE_GROUPS[Settings.FAVORITE_ACTIVE_GROUP] or "Main", function(val) for i, name in ipairs(Settings.FAVORITE_GROUPS) do if name == val then Settings.FAVORITE_ACTIVE_GROUP = i break end end debouncedSaveSettings() end) activeDropdown.Position = UDim2.new(1,-150,0,0) activeDropdown.Size = UDim2.new(0,150,0,30) activeDropdown.Parent = activeFrame -- Auto keywords local autoFrame = Instance.new("Frame") autoFrame.BackgroundTransparency = 1 autoFrame.Size = UDim2.new(1,0,0,60) autoFrame.Parent = c -- Auto-favorite names display/edit local autoNamesFrame = Instance.new("Frame") autoNamesFrame.BackgroundTransparency = 1 autoNamesFrame.Size = UDim2.new(1,0,0,80) autoNamesFrame.Parent = c local autoNamesLabel = Instance.new("TextLabel") autoNamesLabel.Text = "Auto-favorite names (comma separated):" autoNamesLabel.TextColor3 = Settings.TEXT_COLOR autoNamesLabel.TextSize = 14 autoNamesLabel.Font = Enum.Font.Gotham autoNamesLabel.BackgroundTransparency = 1 autoNamesLabel.Size = UDim2.new(1,0,0,20) autoNamesLabel.TextXAlignment = Enum.TextXAlignment.Left autoNamesLabel.Parent = autoNamesFrame local autoNamesInput = Instance.new("TextBox") autoNamesInput.Text = table.concat(Settings.AUTO_FAVORITE_NAMES, ", ") autoNamesInput.PlaceholderText = "e.g. Stand Arrow, Mystic Hourglass" autoNamesInput.TextColor3 = Settings.TEXT_COLOR autoNamesInput.TextSize = 14 autoNamesInput.Font = Enum.Font.Gotham autoNamesInput.BackgroundColor3 = Color3.fromRGB(40,40,50) autoNamesInput.BackgroundTransparency = 0.2 autoNamesInput.Size = UDim2.new(1,-20,0,30) autoNamesInput.Position = UDim2.new(0,10,0,25) autoNamesInput.BorderSizePixel = 0 Instance.new("UICorner", autoNamesInput).CornerRadius = UDim.new(0,6) Instance.new("UIPadding", autoNamesInput).PaddingLeft = UDim.new(0,8) autoNamesInput.Parent = autoNamesFrame -- Update list on focus lost autoNamesInput.FocusLost:Connect(function() local list = {} for word in autoNamesInput.Text:gmatch("[^,]+") do table.insert(list, word:match("^%s*(.-)%s*$")) -- trim spaces end Settings.AUTO_FAVORITE_NAMES = list -- Apply new rule to all existing objects for obj, data in pairs(objectCache) do local shouldBeFavorite = tableFind(list, obj.Name) or false if data.favorite ~= shouldBeFavorite then data.favorite = shouldBeFavorite end end if itemListVisible then pcall(updateItemList) end debouncedSaveSettings() end) local autoLabel = Instance.new("TextLabel") autoLabel.Text = "Auto-favorite keywords (comma):" autoLabel.TextColor3 = Settings.TEXT_COLOR autoLabel.TextSize = 14 autoLabel.Font = Enum.Font.Gotham autoLabel.BackgroundTransparency = 1 autoLabel.Size = UDim2.new(1,0,0,20) autoLabel.TextXAlignment = Enum.TextXAlignment.Left autoLabel.Parent = autoFrame local autoInput = Instance.new("TextBox") autoInput.Text = table.concat(Settings.FAVORITE_AUTO_KEYWORDS, ",") autoInput.PlaceholderText = "boss,legendary,rare" autoInput.TextColor3 = Settings.TEXT_COLOR autoInput.TextSize = 14 autoInput.Font = Enum.Font.Gotham autoInput.BackgroundColor3 = Color3.fromRGB(40,40,50) autoInput.BackgroundTransparency = 0.2 autoInput.Size = UDim2.new(1,-20,0,30) autoInput.Position = UDim2.new(0,10,0,25) autoInput.BorderSizePixel = 0 Instance.new("UICorner", autoInput).CornerRadius = UDim.new(0,6) autoInput.FocusLost:Connect(function() local list = {} for word in autoInput.Text:gmatch("[^,]+") do table.insert(list, word:match("^%s*(.-)%s*$")) end Settings.FAVORITE_AUTO_KEYWORDS = list debouncedSaveSettings() end) autoInput.Parent = autoFrame end -- Tab 7: Debug do local c = containers[7] createToggleSetting(c, "Debug Mode (detailed logs)", Settings.DEBUG_MODE, function(v) Settings.DEBUG_MODE = v; debouncedSaveSettings() end).Parent = c createToggleSetting(c, "Show Path Lines", Settings.DEBUG_SHOW_PATHS, function(v) Settings.DEBUG_SHOW_PATHS = v; debouncedSaveSettings() end).Parent = c end -- Save button local saveBtn = Instance.new("TextButton") saveBtn.Text = "💾 SAVE SETTINGS" saveBtn.TextColor3 = Settings.TEXT_COLOR saveBtn.TextSize = 16 if IS_MOBILE then saveBtn.TextSize = 20 end saveBtn.Font = Enum.Font.GothamBold saveBtn.BackgroundColor3 = Color3.fromRGB(46,204,113) saveBtn.BackgroundTransparency = 0.2 saveBtn.Size = UDim2.new(1, -40, 0, 40) saveBtn.Position = UDim2.new(0, 20, 1, -60) saveBtn.BorderSizePixel = 0 saveBtn.ZIndex = 22 Instance.new("UICorner", saveBtn).CornerRadius = UDim.new(0, 8) saveBtn.MouseButton1Click:Connect(function() playSound("ButtonClick"); saveSettings() end) saveBtn.Parent = settingsGUI -- Dragging local dragging, dragStart, startPos = false, nil, nil if not IS_MOBILE then titleBar.InputBegan:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true dragStart = i.Position startPos = settingsGUI.Position i.Changed:Connect(function() if i.UserInputState == Enum.UserInputState.End then dragging = false savedSettingsGUIPos = settingsGUI.Position debouncedSaveSettings() end end) end end) titleBar.InputChanged:Connect(function(i) if dragging and i.UserInputType == Enum.UserInputType.MouseMovement then local delta = i.Position - dragStart settingsGUI.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) end end) end settingsGUI.Parent = screenGui return settingsGUI end -- ========== ITEM LIST GUI (full version from first script) ========== local function createItemListGUI() if itemListGUI and itemListGUI.Parent then itemListGUI:Destroy() end itemListGUI = Instance.new("Frame") itemListGUI.Name = "ItemListGUI" itemListGUI.BackgroundColor3 = Settings.LIST_COLOR itemListGUI.BackgroundTransparency = 0.2 itemListGUI.Size = UDim2.new(0, 800, 0, 600) if IS_MOBILE then itemListGUI.Size = UDim2.new(0, 900, 0, 700) end itemListGUI.Position = savedItemListGUIPos or UDim2.new(0.5, -400, 0.5, -300) itemListGUI.BorderSizePixel = 0 itemListGUI.Visible = false itemListGUI.ZIndex = 20 Instance.new("UICorner", itemListGUI).CornerRadius = UDim.new(0, 12) -- Title bar local titleBar = Instance.new("Frame") titleBar.Name = "TitleBar" titleBar.BackgroundColor3 = Settings.PRIMARY_COLOR titleBar.Size = UDim2.new(1, 0, 0, 50) titleBar.BorderSizePixel = 0 titleBar.ZIndex = 21 Instance.new("UICorner", titleBar).CornerRadius = UDim.new(0, 12, 0, 0) createGradient(titleBar, Settings.PRIMARY_COLOR, Settings.SECONDARY_COLOR, 45) local title = Instance.new("TextLabel") title.Text = "TRACKED ITEMS" title.TextColor3 = Settings.TEXT_COLOR title.TextSize = 22 if IS_MOBILE then title.TextSize = 28 end title.Font = Enum.Font.GothamBold title.BackgroundTransparency = 1 title.Size = UDim2.new(1, -100, 1, 0) title.Position = UDim2.new(0, 20, 0, 0) title.TextXAlignment = Enum.TextXAlignment.Left title.ZIndex = 23 title.Parent = titleBar local closeBtn = Instance.new("TextButton") closeBtn.Text = "✕" closeBtn.TextColor3 = Settings.TEXT_COLOR closeBtn.TextSize = 24 if IS_MOBILE then closeBtn.TextSize = 30 end closeBtn.Font = Enum.Font.GothamBold closeBtn.BackgroundColor3 = Color3.fromRGB(231, 76, 60) closeBtn.BackgroundTransparency = 0.3 closeBtn.Size = UDim2.new(0, 40, 0, 40) if IS_MOBILE then closeBtn.Size = UDim2.new(0, 50, 0, 50) end closeBtn.Position = UDim2.new(1, -50, 0, 5) closeBtn.BorderSizePixel = 0 closeBtn.ZIndex = 22 Instance.new("UICorner", closeBtn).CornerRadius = UDim.new(0, 8) closeBtn.MouseButton1Click:Connect(function() playSound("ButtonClick"); toggleItemList(false) end) closeBtn.Parent = titleBar titleBar.Parent = itemListGUI -- Boss status panel local bossPanel = Instance.new("Frame") bossPanel.Name = "BossStatusPanel" bossPanel.BackgroundColor3 = Color3.fromRGB(40, 20, 20) bossPanel.BackgroundTransparency = 0.3 bossPanel.Size = UDim2.new(1, -20, 0, 60) if IS_MOBILE then bossPanel.Size = UDim2.new(1, -20, 0, 80) end bossPanel.Position = UDim2.new(0, 10, 0, 55) bossPanel.BorderSizePixel = 0 bossPanel.ZIndex = 22 bossPanel.Visible = false Instance.new("UICorner", bossPanel).CornerRadius = UDim.new(0, 8) local bossIcon = Instance.new("TextLabel") bossIcon.Text = "💀" bossIcon.TextColor3 = Color3.fromRGB(255,200,0) bossIcon.TextSize = 30 if IS_MOBILE then bossIcon.TextSize = 40 end bossIcon.Font = Enum.Font.GothamBold bossIcon.BackgroundTransparency = 1 bossIcon.Size = UDim2.new(0, 40, 0, 40) bossIcon.Position = UDim2.new(0, 10, 0.5, -20) bossIcon.Parent = bossPanel local bossName = Instance.new("TextLabel") bossName.Name = "BossName" bossName.Text = SPECIAL_NAMES.Boss bossName.TextColor3 = Color3.fromRGB(255,200,200) bossName.TextSize = 18 if IS_MOBILE then bossName.TextSize = 22 end bossName.Font = Enum.Font.GothamBold bossName.BackgroundTransparency = 1 bossName.Size = UDim2.new(0, 200, 0, 30) bossName.Position = UDim2.new(0, 60, 0.5, -15) bossName.TextXAlignment = Enum.TextXAlignment.Left bossName.Parent = bossPanel local bossHP = Instance.new("TextLabel") bossHP.Name = "BossHP" bossHP.Text = "❤️ 0/0 (0%)" bossHP.TextColor3 = Color3.fromRGB(255,255,255) bossHP.TextSize = 16 if IS_MOBILE then bossHP.TextSize = 20 end bossHP.Font = Enum.Font.GothamBold bossHP.BackgroundTransparency = 1 bossHP.Size = UDim2.new(0, 200, 0, 30) bossHP.Position = UDim2.new(0, 270, 0.5, -15) bossHP.TextXAlignment = Enum.TextXAlignment.Left bossHP.Parent = bossPanel local tpBossBtn = Instance.new("TextButton") tpBossBtn.Name = "TeleportButton" tpBossBtn.Text = "TELEPORT" tpBossBtn.TextColor3 = Settings.TEXT_COLOR tpBossBtn.TextSize = 14 if IS_MOBILE then tpBossBtn.TextSize = 18 end tpBossBtn.Font = Enum.Font.GothamBold tpBossBtn.BackgroundColor3 = Settings.TELEPORT_COLOR tpBossBtn.BackgroundTransparency = 0.2 tpBossBtn.Size = UDim2.new(0, 100, 0, 35) if IS_MOBILE then tpBossBtn.Size = UDim2.new(0, 120, 0, 45) end tpBossBtn.Position = UDim2.new(1, -120, 0.5, -17) tpBossBtn.BorderSizePixel = 0 tpBossBtn.ZIndex = 23 Instance.new("UICorner", tpBossBtn).CornerRadius = UDim.new(0, 8) tpBossBtn.MouseButton1Click:Connect(function() playSound("ButtonClick") end) tpBossBtn.Parent = bossPanel bossPanel.Parent = itemListGUI -- Filter bar local filterBar = Instance.new("Frame") filterBar.Name = "FilterBar" filterBar.BackgroundTransparency = 1 filterBar.Size = UDim2.new(1, -20, 0, 40) filterBar.Position = UDim2.new(0, 10, 0, 120) filterBar.ZIndex = 21 filterBar.Parent = itemListGUI local filterLayout = Instance.new("UIListLayout") filterLayout.FillDirection = Enum.FillDirection.Horizontal filterLayout.HorizontalAlignment = Enum.HorizontalAlignment.Left filterLayout.VerticalAlignment = Enum.VerticalAlignment.Center filterLayout.Padding = UDim.new(0, 8) filterLayout.Parent = filterBar -- Filters local filterAll = Instance.new("TextButton") filterAll.Name = "FilterAll" filterAll.Text = "📋 All" filterAll.TextColor3 = Settings.TEXT_COLOR filterAll.TextSize = 14 if IS_MOBILE then filterAll.TextSize = 18 end filterAll.Font = Enum.Font.GothamBold filterAll.BackgroundColor3 = Settings.PRIMARY_COLOR filterAll.BackgroundTransparency = 0.3 filterAll.Size = UDim2.new(0, 80, 0, 30) if IS_MOBILE then filterAll.Size = UDim2.new(0, 100, 0, 40) end filterAll.BorderSizePixel = 0 filterAll.ZIndex = 22 filterAll.AutoButtonColor = true Instance.new("UICorner", filterAll).CornerRadius = UDim.new(0, 8) filterAll.Parent = filterBar local filterTools = Instance.new("TextButton") filterTools.Name = "FilterTools" filterTools.Text = "🛠️ Tools" filterTools.TextColor3 = Settings.TEXT_COLOR filterTools.TextSize = 14 if IS_MOBILE then filterTools.TextSize = 18 end filterTools.Font = Enum.Font.GothamBold filterTools.BackgroundColor3 = Settings.SECONDARY_COLOR filterTools.BackgroundTransparency = 0.3 filterTools.Size = UDim2.new(0, 90, 0, 30) if IS_MOBILE then filterTools.Size = UDim2.new(0, 110, 0, 40) end filterTools.BorderSizePixel = 0 filterTools.ZIndex = 22 filterTools.AutoButtonColor = true Instance.new("UICorner", filterTools).CornerRadius = UDim.new(0, 8) filterTools.Parent = filterBar local filterNotes = Instance.new("TextButton") filterNotes.Name = "FilterNotes" filterNotes.Text = "📝 Notes" filterNotes.TextColor3 = Settings.TEXT_COLOR filterNotes.TextSize = 14 if IS_MOBILE then filterNotes.TextSize = 18 end filterNotes.Font = Enum.Font.GothamBold filterNotes.BackgroundColor3 = Settings.TELEPORT_COLOR filterNotes.BackgroundTransparency = 0.3 filterNotes.Size = UDim2.new(0, 90, 0, 30) if IS_MOBILE then filterNotes.Size = UDim2.new(0, 110, 0, 40) end filterNotes.BorderSizePixel = 0 filterNotes.ZIndex = 22 filterNotes.AutoButtonColor = true Instance.new("UICorner", filterNotes).CornerRadius = UDim.new(0, 8) filterNotes.Parent = filterBar local filterSpecial = Instance.new("TextButton") filterSpecial.Name = "FilterSpecial" filterSpecial.Text = "🔥 Events" filterSpecial.TextColor3 = Settings.TEXT_COLOR filterSpecial.TextSize = 14 if IS_MOBILE then filterSpecial.TextSize = 18 end filterSpecial.Font = Enum.Font.GothamBold filterSpecial.BackgroundColor3 = Color3.fromRGB(255, 100, 0) filterSpecial.BackgroundTransparency = 0.3 filterSpecial.Size = UDim2.new(0, 90, 0, 30) if IS_MOBILE then filterSpecial.Size = UDim2.new(0, 110, 0, 40) end filterSpecial.BorderSizePixel = 0 filterSpecial.ZIndex = 22 filterSpecial.AutoButtonColor = true Instance.new("UICorner", filterSpecial).CornerRadius = UDim.new(0, 8) filterSpecial.Parent = filterBar -- Return button local returnBtn = Instance.new("TextButton") returnBtn.Name = "ReturnButton" returnBtn.Text = "↩ Return" returnBtn.TextColor3 = Settings.TEXT_COLOR returnBtn.TextSize = 14 if IS_MOBILE then returnBtn.TextSize = 18 end returnBtn.Font = Enum.Font.GothamBold returnBtn.BackgroundColor3 = Color3.fromRGB(200, 100, 100) returnBtn.BackgroundTransparency = 0.2 returnBtn.Size = UDim2.new(0, 80, 0, 30) if IS_MOBILE then returnBtn.Size = UDim2.new(0, 100, 0, 40) end returnBtn.BorderSizePixel = 0 returnBtn.ZIndex = 22 returnBtn.AutoButtonColor = true Instance.new("UICorner", returnBtn).CornerRadius = UDim.new(0, 8) returnBtn.Parent = filterBar -- Refresh local refreshBtn = Instance.new("TextButton") refreshBtn.Name = "RefreshButton" refreshBtn.Text = "🔄" refreshBtn.TextColor3 = Settings.TEXT_COLOR refreshBtn.TextSize = 20 if IS_MOBILE then refreshBtn.TextSize = 26 end refreshBtn.Font = Enum.Font.GothamBold refreshBtn.BackgroundColor3 = Color3.fromRGB(100, 100, 100) refreshBtn.BackgroundTransparency = 0.3 refreshBtn.Size = UDim2.new(0, 40, 0, 30) if IS_MOBILE then refreshBtn.Size = UDim2.new(0, 50, 0, 40) end refreshBtn.BorderSizePixel = 0 refreshBtn.ZIndex = 22 refreshBtn.AutoButtonColor = true Instance.new("UICorner", refreshBtn).CornerRadius = UDim.new(0, 8) refreshBtn.Parent = filterBar -- Search bar local searchBar = Instance.new("TextBox") searchBar.Name = "SearchBar" searchBar.PlaceholderText = "🔍 Search..." searchBar.Text = "" searchBar.TextColor3 = Settings.TEXT_COLOR searchBar.PlaceholderColor3 = Color3.fromRGB(150,150,150) searchBar.TextSize = 14 if IS_MOBILE then searchBar.TextSize = 18 end searchBar.Font = Enum.Font.Gotham searchBar.BackgroundColor3 = Color3.fromRGB(40,40,50) searchBar.BackgroundTransparency = 0.2 searchBar.Size = UDim2.new(0, 120, 0, 30) if IS_MOBILE then searchBar.Size = UDim2.new(0, 140, 0, 40) end searchBar.BorderSizePixel = 0 searchBar.ZIndex = 21 Instance.new("UICorner", searchBar).CornerRadius = UDim.new(0, 8) Instance.new("UIPadding", searchBar).PaddingLeft = UDim.new(0, 10) searchBar:GetPropertyChangedSignal("Text"):Connect(function() listState.searchText = searchBar.Text pcall(updateItemList) end) searchBar.Parent = filterBar -- Sort bar local sortBar = Instance.new("Frame") sortBar.Name = "SortBar" sortBar.BackgroundColor3 = Color3.fromRGB(40, 50, 60) sortBar.BackgroundTransparency = 0.5 sortBar.Size = UDim2.new(1, -20, 0, 30) if IS_MOBILE then sortBar.Size = UDim2.new(1, -20, 0, 40) end sortBar.Position = UDim2.new(0, 10, 0, 165) sortBar.BorderSizePixel = 0 sortBar.ZIndex = 21 Instance.new("UICorner", sortBar).CornerRadius = UDim.new(0, 6) sortBar.Parent = itemListGUI local iconHeader = Instance.new("TextLabel") iconHeader.Text = "📦" iconHeader.TextColor3 = Color3.fromRGB(200,200,200) iconHeader.TextSize = 18 if IS_MOBILE then iconHeader.TextSize = 22 end iconHeader.Font = Enum.Font.GothamBold iconHeader.BackgroundTransparency = 1 iconHeader.Size = UDim2.new(0, 30, 1, 0) iconHeader.Position = UDim2.new(0, 5, 0, 0) iconHeader.ZIndex = 22 iconHeader.Parent = sortBar local nameHeader = Instance.new("TextButton") nameHeader.Name = "SortName" nameHeader.Text = "Name ▲" nameHeader.TextColor3 = Settings.TEXT_COLOR nameHeader.TextSize = 14 if IS_MOBILE then nameHeader.TextSize = 18 end nameHeader.Font = Enum.Font.GothamBold nameHeader.BackgroundTransparency = 1 nameHeader.Size = UDim2.new(0, 150, 1, 0) nameHeader.Position = UDim2.new(0, 40, 0, 0) nameHeader.ZIndex = 22 nameHeader.TextXAlignment = Enum.TextXAlignment.Left nameHeader.Parent = sortBar local distanceHeader = Instance.new("TextButton") distanceHeader.Name = "SortDistance" distanceHeader.Text = "Distance ▲" distanceHeader.TextColor3 = Settings.PRIMARY_COLOR distanceHeader.TextSize = 14 if IS_MOBILE then distanceHeader.TextSize = 18 end distanceHeader.Font = Enum.Font.GothamBold distanceHeader.BackgroundTransparency = 1 distanceHeader.Size = UDim2.new(0, 100, 1, 0) distanceHeader.Position = UDim2.new(0, 200, 0, 0) distanceHeader.ZIndex = 22 distanceHeader.TextXAlignment = Enum.TextXAlignment.Left distanceHeader.Parent = sortBar local favHeader = Instance.new("TextButton") favHeader.Name = "SortFavorite" favHeader.Text = "★" favHeader.TextColor3 = Color3.fromRGB(200,200,200) favHeader.TextSize = 18 if IS_MOBILE then favHeader.TextSize = 22 end favHeader.Font = Enum.Font.GothamBold favHeader.BackgroundTransparency = 1 favHeader.Size = UDim2.new(0, 40, 1, 0) favHeader.Position = UDim2.new(0, 310, 0, 0) favHeader.ZIndex = 22 favHeader.Parent = sortBar local espHeader = Instance.new("TextLabel") espHeader.Text = "👁️" espHeader.TextColor3 = Color3.fromRGB(200,200,200) espHeader.TextSize = 18 if IS_MOBILE then espHeader.TextSize = 22 end espHeader.Font = Enum.Font.GothamBold espHeader.BackgroundTransparency = 1 espHeader.Size = UDim2.new(0, 40, 1, 0) espHeader.Position = UDim2.new(0, 360, 0, 0) espHeader.ZIndex = 22 espHeader.Parent = sortBar local actionHeader = Instance.new("TextLabel") actionHeader.Text = "Action" actionHeader.TextColor3 = Color3.fromRGB(200,200,200) actionHeader.TextSize = 14 if IS_MOBILE then actionHeader.TextSize = 18 end actionHeader.Font = Enum.Font.GothamBold actionHeader.BackgroundTransparency = 1 actionHeader.Size = UDim2.new(0, 60, 1, 0) actionHeader.Position = UDim2.new(0, 410, 0, 0) actionHeader.ZIndex = 22 actionHeader.TextXAlignment = Enum.TextXAlignment.Center actionHeader.Parent = sortBar -- Items container local itemsContainer = Instance.new("ScrollingFrame") itemsContainer.Name = "ItemsContainer" itemsContainer.BackgroundTransparency = 1 itemsContainer.Size = UDim2.new(1, -20, 1, -240) itemsContainer.Position = UDim2.new(0, 10, 0, 200) itemsContainer.BorderSizePixel = 0 itemsContainer.ScrollBarThickness = 8 itemsContainer.AutomaticCanvasSize = Enum.AutomaticSize.Y itemsContainer.ZIndex = 21 local itemListLayout = Instance.new("UIListLayout") itemListLayout.Padding = UDim.new(0, 8) itemListLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center itemListLayout.Parent = itemsContainer itemsContainer.Parent = itemListGUI -- Item counter local itemCount = Instance.new("TextLabel") itemCount.Name = "ItemCount" itemCount.Text = "Items: 0" itemCount.TextColor3 = Color3.fromRGB(200,200,200) itemCount.TextSize = 14 if IS_MOBILE then itemCount.TextSize = 18 end itemCount.Font = Enum.Font.Gotham itemCount.BackgroundTransparency = 1 itemCount.Size = UDim2.new(1, -20, 0, 30) itemCount.Position = UDim2.new(0, 10, 1, -40) itemCount.TextXAlignment = Enum.TextXAlignment.Left itemCount.Parent = itemListGUI -- Filter handlers local function setActiveFilter(activeBtn) filterAll.BackgroundTransparency = 0.7 filterTools.BackgroundTransparency = 0.7 filterNotes.BackgroundTransparency = 0.7 filterSpecial.BackgroundTransparency = 0.7 activeBtn.BackgroundTransparency = 0.1 end filterAll.MouseButton1Click:Connect(function() playSound("ButtonClick") listState.filterType = "all" setActiveFilter(filterAll) pcall(updateItemList) end) filterTools.MouseButton1Click:Connect(function() playSound("ButtonClick") listState.filterType = "tool" setActiveFilter(filterTools) pcall(updateItemList) end) filterNotes.MouseButton1Click:Connect(function() playSound("ButtonClick") listState.filterType = "note" setActiveFilter(filterNotes) pcall(updateItemList) end) filterSpecial.MouseButton1Click:Connect(function() playSound("ButtonClick") listState.filterType = "special" setActiveFilter(filterSpecial) pcall(updateItemList) end) setActiveFilter(filterAll) -- Return handler returnBtn.MouseButton1Click:Connect(function() playSound("ButtonClick") local success, msg = teleportReturn() if success then createSpawnNotification("↩ Return", "Returned to previous position", nil, 2, Color3.fromRGB(100,200,100)) else createSpawnNotification("❌ Return", msg, nil, 2, Color3.fromRGB(255,100,100)) end end) refreshBtn.MouseButton1Click:Connect(function() playSound("ButtonClick") pcall(findAndSetupObjects) pcall(updateItemList) end) -- Sort handlers local function setSort(mode, asc) listState.sortMode = mode listState.sortAsc = asc nameHeader.Text = "Name" .. (mode == "name" and (asc and " ▲" or " ▼") or "") distanceHeader.Text = "Distance" .. (mode == "distance" and (asc and " ▲" or " ▼") or "") favHeader.Text = "★" .. (mode == "favorite" and (asc and " ▲" or " ▼") or "") nameHeader.TextColor3 = mode == "name" and Settings.PRIMARY_COLOR or Color3.fromRGB(200,200,200) distanceHeader.TextColor3 = mode == "distance" and Settings.PRIMARY_COLOR or Color3.fromRGB(200,200,200) favHeader.TextColor3 = mode == "favorite" and Settings.FAVORITE_COLOR or Color3.fromRGB(200,200,200) pcall(updateItemList) end nameHeader.MouseButton1Click:Connect(function() playSound("ButtonClick") if listState.sortMode == "name" then setSort("name", not listState.sortAsc) else setSort("name", true) end end) distanceHeader.MouseButton1Click:Connect(function() playSound("ButtonClick") if listState.sortMode == "distance" then setSort("distance", not listState.sortAsc) else setSort("distance", true) end end) favHeader.MouseButton1Click:Connect(function() playSound("ButtonClick") if listState.sortMode == "favorite" then setSort("favorite", not listState.sortAsc) else setSort("favorite", true) end end) -- Window drag local dragging, dragStart, startPos = false, nil, nil if not IS_MOBILE then titleBar.InputBegan:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true dragStart = i.Position startPos = itemListGUI.Position i.Changed:Connect(function() if i.UserInputState == Enum.UserInputState.End then dragging = false savedItemListGUIPos = itemListGUI.Position debouncedSaveSettings() end end) end end) titleBar.InputChanged:Connect(function(i) if dragging and i.UserInputType == Enum.UserInputType.MouseMovement then local delta = i.Position - dragStart itemListGUI.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) end end) end itemListGUI.Parent = screenGui return itemListGUI end -- ========== BossPanel ========== local function createBossPanel() if bossPanel and bossPanel.Parent then bossPanel:Destroy() end bossPanel = Instance.new("Frame") bossPanel.Name = "BossPanel" bossPanel.BackgroundColor3 = Color3.fromRGB(30, 30, 40) bossPanel.BackgroundTransparency = 0.2 bossPanel.Size = UDim2.new(0, 250, 0, 120) bossPanel.Position = savedBossPanelPos or UDim2.new(0, 10, 0.5, -60) bossPanel.BorderSizePixel = 0 bossPanel.ZIndex = 30 bossPanel.Visible = false Instance.new("UICorner", bossPanel).CornerRadius = UDim.new(0, 8) -- Title (for dragging) local title = Instance.new("TextLabel") title.Name = "Title" title.Text = "BOSS STATUS" title.TextColor3 = Color3.fromRGB(255, 255, 255) title.TextSize = 16 title.Font = Enum.Font.GothamBold title.BackgroundColor3 = Color3.fromRGB(200, 50, 50) title.BackgroundTransparency = 0.3 title.Size = UDim2.new(1, 0, 0, 30) title.BorderSizePixel = 0 title.ZIndex = 31 Instance.new("UICorner", title).CornerRadius = UDim.new(0, 8, 0, 0) title.Parent = bossPanel -- Content container local content = Instance.new("Frame") content.Name = "Content" content.BackgroundTransparency = 1 content.Size = UDim2.new(1, -10, 1, -40) content.Position = UDim2.new(0, 5, 0, 35) content.ZIndex = 31 content.Parent = bossPanel -- Boss name local bossName = Instance.new("TextLabel") bossName.Name = "BossName" bossName.Text = "No boss" bossName.TextColor3 = Color3.fromRGB(255, 255, 255) bossName.TextSize = 14 bossName.Font = Enum.Font.GothamBold bossName.BackgroundTransparency = 1 bossName.Size = UDim2.new(1, 0, 0, 20) bossName.TextXAlignment = Enum.TextXAlignment.Left bossName.Parent = content -- HP text local hpText = Instance.new("TextLabel") hpText.Name = "HPText" hpText.Text = "HP: 0/0 (0%)" hpText.TextColor3 = Color3.fromRGB(255, 255, 255) hpText.TextSize = 12 hpText.Font = Enum.Font.Gotham hpText.BackgroundTransparency = 1 hpText.Size = UDim2.new(1, 0, 0, 20) hpText.Position = UDim2.new(0, 0, 0, 20) hpText.TextXAlignment = Enum.TextXAlignment.Left hpText.Parent = content -- HP bar local hpBarBg = Instance.new("Frame") hpBarBg.Name = "HPBarBg" hpBarBg.BackgroundColor3 = Color3.fromRGB(60, 60, 60) hpBarBg.Size = UDim2.new(1, 0, 0, 10) hpBarBg.Position = UDim2.new(0, 0, 0, 45) hpBarBg.BorderSizePixel = 0 hpBarBg.Parent = content Instance.new("UICorner", hpBarBg).CornerRadius = UDim.new(0, 4) local hpBarFill = Instance.new("Frame") hpBarFill.Name = "HPBarFill" hpBarFill.BackgroundColor3 = Color3.fromRGB(255, 70, 70) hpBarFill.Size = UDim2.new(1, 0, 1, 0) hpBarFill.BorderSizePixel = 0 hpBarFill.Parent = hpBarBg Instance.new("UICorner", hpBarFill).CornerRadius = UDim.new(0, 4) -- Distance local distance = Instance.new("TextLabel") distance.Name = "Distance" distance.Text = "Distance: --" distance.TextColor3 = Color3.fromRGB(200, 200, 200) distance.TextSize = 12 distance.Font = Enum.Font.Gotham distance.BackgroundTransparency = 1 distance.Size = UDim2.new(1, 0, 0, 20) distance.Position = UDim2.new(0, 0, 0, 60) distance.TextXAlignment = Enum.TextXAlignment.Left distance.Parent = content -- Teleport button local tpButton = Instance.new("TextButton") tpButton.Name = "TeleportButton" tpButton.Text = "TP" tpButton.TextColor3 = Color3.fromRGB(255, 255, 255) tpButton.TextSize = 12 tpButton.Font = Enum.Font.GothamBold tpButton.BackgroundColor3 = Settings.TELEPORT_COLOR tpButton.BackgroundTransparency = 0.2 tpButton.Size = UDim2.new(0, 50, 0, 25) tpButton.Position = UDim2.new(1, -55, 1, -30) tpButton.BorderSizePixel = 0 tpButton.ZIndex = 32 Instance.new("UICorner", tpButton).CornerRadius = UDim.new(0, 6) tpButton.MouseButton1Click:Connect(function() -- Find current boss for obj, data in pairs(objectCache) do if (data.specialType == "Boss" or data.specialType == "Sukuna") and obj and obj.Parent then teleportToObject(obj) break end end end) tpButton.Parent = bossPanel -- Dragging the panel local dragging, dragStart, startPos = false, nil, nil if not IS_MOBILE then title.InputBegan:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true dragStart = i.Position startPos = bossPanel.Position i.Changed:Connect(function() if i.UserInputState == Enum.UserInputState.End then dragging = false savedBossPanelPos = bossPanel.Position debouncedSaveSettings() end end) end end) title.InputChanged:Connect(function(i) if dragging and i.UserInputType == Enum.UserInputType.MouseMovement then local delta = i.Position - dragStart bossPanel.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) end end) end bossPanel.Parent = screenGui return bossPanel end -- ========== WINDOW MANAGEMENT ========== function toggleSettings(visible) if visible == nil then visible = not settingsVisible end settingsVisible = visible if not settingsGUI then settingsGUI = createSettingsGUI() end if settingsGUI then settingsGUI.Visible = visible end if not visible then saveSettings() end end function toggleItemList(visible) if visible == nil then visible = not itemListVisible end itemListVisible = visible if not itemListGUI then itemListGUI = createItemListGUI() end if itemListGUI then itemListGUI.Visible = visible end if visible then pcall(updateItemList) else saveSettings() end end -- Continuation --[[ Nexus Tracker v10.0 – Advanced ESP, LOD, Auto Teleport, Enhanced Favorites, Debug PART 4/4 (final) ]] -- ========== UPDATE ========== local lastESPUpdate = tick() local lastListUpdate = tick() local lastSpecialCheck = tick() local function updateDistances() if not LocalPlayer.Character then return end local root = LocalPlayer.Character:FindFirstChild("HumanoidRootPart") if not root then return end local now = tick() if now - lastESPUpdate >= Settings.UPDATE_INTERVAL then local bossPresentNow = false local currentBossType = nil -- Count total objects for icon-only mode local totalObjects = 0 for _ in pairs(objectCache) do totalObjects = totalObjects + 1 end local forceIconMode = totalObjects > Settings.VISUAL_ICON_ONLY_THRESHOLD for obj, data in pairs(objectCache) do if obj and obj.Parent then data.position = getObjectPosition(obj) local dist = (root.Position - data.position).Magnitude -- Update distance in card if data.esp and data.esp:FindFirstChild("MainFrame") then local main = data.esp.MainFrame for _, label in ipairs(main:GetDescendants()) do if label.Name == "DistanceLabel" then label.Text = string.format("Distance: %.0f studs", dist) if dist < 100 then label.TextColor3 = Color3.fromRGB(0, 255, 0) elseif dist < 500 then label.TextColor3 = Color3.fromRGB(255, 255, 0) else label.TextColor3 = Color3.fromRGB(255, 0, 0) end end end end -- LOD and visibility if data.esp then local visible = true if Settings.VISUAL_FRUSTUM_CULLING then visible = isObjectVisible(data.position) end if visible and guiEnabled and data.espEnabled and dist <= Settings.MAX_DISTANCE and dist > Settings.HIDE_NEAR_DISTANCE then data.esp.Enabled = true local lodLevel if forceIconMode and not (Settings.VISUAL_BOSS_BYPASS_LOD and (data.specialType == "Boss" or data.specialType == "Sukuna")) then lodLevel = 1 else lodLevel = getLODLevel(dist) -- If boss and bypass enabled, always show full info if Settings.VISUAL_BOSS_BYPASS_LOD and (data.specialType == "Boss" or data.specialType == "Sukuna") then lodLevel = 3 end end if data.lodFrames then for i, frame in ipairs(data.lodFrames) do frame.Visible = (i == lodLevel) end end else data.esp.Enabled = false end end -- Boss logic and HP update if data.specialType == "Boss" or data.specialType == "Sukuna" then bossPresentNow = true currentBossType = data.specialType local humanoid = obj:FindFirstChildOfClass("Humanoid") if humanoid then local health = humanoid.Health local maxHealth = humanoid.MaxHealth data.health = health data.maxHealth = maxHealth -- Update HP in ESP card if data.esp and data.esp:FindFirstChild("MainFrame") then local main = data.esp.MainFrame local lod3 = main:FindFirstChild("LOD3") if lod3 then local hpText = lod3:FindFirstChild("HPText", true) local hpBarFill = lod3:FindFirstChild("HPBarFill", true) local percentLabel = lod3:FindFirstChild("HealthPercent", true) if hpText and hpBarFill and percentLabel then local percent = (health / maxHealth) * 100 hpText.Text = string.format("HP: %d/%d (%d%%)", math.floor(health), math.floor(maxHealth), math.floor(percent)) hpBarFill.Size = UDim2.new(health / maxHealth, 0, 1, 0) percentLabel.Text = math.floor(percent) .. "%" -- Change bar color based on health percentage if percent < 25 then hpBarFill.BackgroundColor3 = Color3.fromRGB(255, 50, 50) elseif percent < 50 then hpBarFill.BackgroundColor3 = Color3.fromRGB(255, 150, 50) else hpBarFill.BackgroundColor3 = Color3.fromRGB(50, 255, 50) end end end end if data.specialType == "Boss" and health < 450 and not data.lowHealthPlayed and now - lastLowHealthTime > 10 then lastLowHealthTime = now data.lowHealthPlayed = true playSound("LowHealth") createSpawnNotification("⚠️ LOW HEALTH", SPECIAL_NAMES[data.specialType] .. " is below 450 HP!", obj, 5, Color3.fromRGB(255,200,0)) end end end else if data and data.esp then if data.updateConnection then data.updateConnection:Disconnect() end if data.tempPart and data.tempPart.Parent then data.tempPart:Destroy() end pcall(data.esp.Destroy, data.esp) end objectCache[obj] = nil updateListToggleIcon() end end -- Death return check if Settings.DEATH_RETURN_ENABLED then local character = LocalPlayer.Character if character then local humanoid = character:FindFirstChildWhichIsA("Humanoid") if humanoid and humanoid.Health <= 0 and deathPosition == nil then saveDeathPosition() end end end if bossWasPresent and not bossPresentNow and now - lastDeathTime > 5 then lastDeathTime = now playSound("BossDeath") local bossName = lastBossType and SPECIAL_NAMES[lastBossType] or "A boss" createSpawnNotification("💀 BOSS DEFEATED", bossName .. " has been defeated!", nil, 5, Color3.fromRGB(255,100,100)) for _, d in pairs(objectCache) do if d.specialType == "Boss" or d.specialType == "Sukuna" then d.lowHealthPlayed = nil end end lastBossType = nil end bossWasPresent = bossPresentNow if bossPresentNow and currentBossType then lastBossType = currentBossType end -- Update path lines if Settings.DEBUG_SHOW_PATHS then updatePathLines() end -- Update boss panel if bossPanel and bossPanel.Visible then local bossObj, bossData = nil, nil for obj, data in pairs(objectCache) do if (data.specialType == "Boss" or data.specialType == "Sukuna") and obj and obj.Parent then bossObj = obj bossData = data break end end local content = bossPanel:FindFirstChild("Content") if content then local nameLabel = content:FindFirstChild("BossName") local hpText = content:FindFirstChild("HPText") local hpBarFill = content:FindFirstChild("HPBarBg") and content.HPBarBg:FindFirstChild("HPBarFill") local distLabel = content:FindFirstChild("Distance") if bossObj and bossData then local bossName = SPECIAL_NAMES[bossData.specialType] or bossData.displayName nameLabel.Text = bossName if bossData.health and bossData.maxHealth then local percent = (bossData.health / bossData.maxHealth) * 100 hpText.Text = string.format("HP: %d/%d (%.1f%%)", bossData.health, bossData.maxHealth, percent) hpBarFill.Size = UDim2.new(bossData.health / bossData.maxHealth, 0, 1, 0) else hpText.Text = "HP: --/--" hpBarFill.Size = UDim2.new(1,0,1,0) end local root = LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") if root then local dist = (root.Position - bossData.position).Magnitude distLabel.Text = string.format("Distance: %.0f studs", dist) else distLabel.Text = "Distance: --" end else nameLabel.Text = "No boss" hpText.Text = "HP: --/--" hpBarFill.Size = UDim2.new(1,0,1,0) distLabel.Text = "Distance: --" end end end lastESPUpdate = now end -- close if now - lastESPUpdate... if now - lastSpecialCheck >= 2 then for sType, pathPattern in pairs(SPECIAL_PATHS) do local obj = getObjectFromPath(pathPattern) if obj and not objectCache[obj] then debugPrint("Found special object by direct path (periodic):", pathPattern) tryAddSpecialObject(obj, sType) end end lastSpecialCheck = now end if itemListVisible and now - lastListUpdate >= Settings.LIST_UPDATE_INTERVAL then pcall(updateItemList) lastListUpdate = now end end -- close function updateDistances -- ========== SEARCH AND TRACKING ========== local function findAndSetupObjects() local count = 0 local function scan(parent) for _, obj in ipairs(parent:GetChildren()) do if shouldTrackObject(obj) and not objectCache[obj] then local path = obj:GetFullName() local favorite = savedObjectFavorites[path] or false if checkAutoFavorite(obj) then favorite = true end local espEnabled = savedObjectESP[path] or true local specialType = getSpecialType(obj) local data = { esp = nil, espEnabled = espEnabled, favorite = favorite, addedTime = tick(), className = obj.ClassName, displayName = getDisplayName(obj), position = getObjectPosition(obj), fullPath = path, specialType = specialType, lowHealthPlayed = false } objectCache[obj] = data if specialType == "Boss" or specialType == "Sukuna" then local humanoid = obj:FindFirstChildOfClass("Humanoid") if humanoid then data.health = humanoid.Health data.maxHealth = humanoid.MaxHealth end local now = tick() if now - lastBossSpawnNotification > BOSS_NOTIFICATION_COOLDOWN then playSound("BossSpawn") createSpawnNotification("🔥 BOSS SPAWNED", SPECIAL_NAMES[specialType] .. " has appeared!", obj, 5, Color3.fromRGB(255,100,0)) lastBossSpawnNotification = now end lastBossType = specialType scheduleAutoTeleport(obj, specialType) else playSound("ItemSpawn") createSpawnNotification("✨ NEW ITEM", getDisplayName(obj), obj, Settings.NOTIFICATION_DURATION, Settings.NOTIFICATION_COLOR) end local esp = createInfoCard(obj) if esp then data.esp = esp esp.Enabled = guiEnabled and espEnabled else objectCache[obj] = nil end count = count + 1 end if obj:IsA("Model") or obj:IsA("Folder") then pcall(scan, obj) end end end pcall(scan, TRACK_PATH) for sType, pathPattern in pairs(SPECIAL_PATHS) do local obj = getObjectFromPath(pathPattern) if obj and not objectCache[obj] then debugPrint("Found special object by direct path (initial):", pathPattern) tryAddSpecialObject(obj, sType) count = count + 1 end end debugPrint("🔍 Initial scan:", count, "objects") updateListToggleIcon() end local function onChildAdded(child) if shouldTrackObject(child) and not objectCache[child] then task.wait(0.2) local path = child:GetFullName() local favorite = savedObjectFavorites[path] or false if checkAutoFavorite(child) then favorite = true end if tableFind(Settings.AUTO_FAVORITE_NAMES, child.Name) then favorite = true end local espEnabled = savedObjectESP[path] or true local specialType = getSpecialType(child) local data = { esp = nil, espEnabled = espEnabled, favorite = favorite, addedTime = tick(), className = child.ClassName, displayName = getDisplayName(child), position = getObjectPosition(child), fullPath = path, specialType = specialType, lowHealthPlayed = false } objectCache[child] = data if specialType == "Boss" or specialType == "Sukuna" then local humanoid = child:FindFirstChildOfClass("Humanoid") if humanoid then data.health = humanoid.Health data.maxHealth = humanoid.MaxHealth end local now = tick() if now - lastBossSpawnNotification > BOSS_NOTIFICATION_COOLDOWN then playSound("BossSpawn") createSpawnNotification("🔥 BOSS SPAWNED", SPECIAL_NAMES[specialType] .. " has appeared!", child, 5, Color3.fromRGB(255,100,0)) lastBossSpawnNotification = now end lastBossType = specialType scheduleAutoTeleport(child, specialType) -- Automatically show boss panel if bossPanel and not bossPanel.Visible then bossPanel.Visible = true bossPanelVisible = true end else playSound("ItemSpawn") createSpawnNotification("✨ NEW ITEM", getDisplayName(child), child, Settings.NOTIFICATION_DURATION, Settings.NOTIFICATION_COLOR) end local esp = createInfoCard(child) if esp then data.esp = esp esp.Enabled = guiEnabled and espEnabled else objectCache[child] = nil return end updateListToggleIcon() if itemListVisible then pcall(updateItemList) end debugLog("Object added:", child:GetFullName(), "Type:", specialType or child.ClassName) end end local function onChildRemoving(child) if objectCache[child] then if objectCache[child].esp then if objectCache[child].updateConnection then objectCache[child].updateConnection:Disconnect() end if objectCache[child].tempPart and objectCache[child].tempPart.Parent then objectCache[child].tempPart:Destroy() end pcall(objectCache[child].esp.Destroy, objectCache[child].esp) end objectCache[child] = nil updateListToggleIcon() if itemListVisible then pcall(updateItemList) end debugLog("Object removed:", child:GetFullName()) end end -- ========== TOGGLE BUTTONS ========== local function createToggleButtons() mainToggle = Instance.new("TextButton") mainToggle.Name = "MainToggleButton" mainToggle.Text = "🔍" mainToggle.TextColor3 = Settings.TEXT_COLOR mainToggle.TextSize = 20 if IS_MOBILE then mainToggle.TextSize = 26 end mainToggle.Font = Enum.Font.GothamBold mainToggle.BackgroundColor3 = Settings.TOGGLE_COLOR mainToggle.BackgroundTransparency = 0.3 mainToggle.Size = UDim2.new(0,50,0,50) if IS_MOBILE then mainToggle.Size = UDim2.new(0,70,0,70) end mainToggle.Position = savedMainTogglePos or UDim2.new(0,20,0.5,-25) mainToggle.BorderSizePixel = 0 mainToggle.ZIndex = 100 mainToggle.Draggable = not IS_MOBILE Instance.new("UICorner", mainToggle).CornerRadius = UDim.new(1,0) listToggle = Instance.new("TextButton") listToggle.Name = "ListToggleButton" listToggle.Text = "📋 0" listToggle.TextColor3 = Settings.TEXT_COLOR listToggle.TextSize = 18 if IS_MOBILE then listToggle.TextSize = 24 end listToggle.Font = Enum.Font.GothamBold listToggle.BackgroundColor3 = Settings.SECONDARY_COLOR listToggle.BackgroundTransparency = 0.3 listToggle.Size = UDim2.new(0,40,0,40) if IS_MOBILE then listToggle.Size = UDim2.new(0,60,0,60) end listToggle.Position = savedListTogglePos or UDim2.new(0,75,0.5,-20) listToggle.BorderSizePixel = 0 listToggle.ZIndex = 100 listToggle.Draggable = not IS_MOBILE listToggle.Visible = guiEnabled Instance.new("UICorner", listToggle).CornerRadius = UDim.new(1,0) settingsToggle = Instance.new("TextButton") settingsToggle.Name = "SettingsToggleButton" settingsToggle.Text = "⚙️" settingsToggle.TextColor3 = Settings.TEXT_COLOR settingsToggle.TextSize = 18 if IS_MOBILE then settingsToggle.TextSize = 24 end settingsToggle.Font = Enum.Font.GothamBold settingsToggle.BackgroundColor3 = Color3.fromRGB(155,89,182) settingsToggle.BackgroundTransparency = 0.3 settingsToggle.Size = UDim2.new(0,40,0,40) if IS_MOBILE then settingsToggle.Size = UDim2.new(0,60,0,60) end settingsToggle.Position = savedSettingsTogglePos or UDim2.new(0,120,0.5,-20) settingsToggle.BorderSizePixel = 0 settingsToggle.ZIndex = 100 settingsToggle.Draggable = not IS_MOBILE settingsToggle.Visible = guiEnabled Instance.new("UICorner", settingsToggle).CornerRadius = UDim.new(1,0) local function savePosOnDragEnd(btn) btn.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then if btn == mainToggle then savedMainTogglePos = btn.Position elseif btn == listToggle then savedListTogglePos = btn.Position elseif btn == settingsToggle then savedSettingsTogglePos = btn.Position end debouncedSaveSettings() end end) end savePosOnDragEnd(mainToggle) savePosOnDragEnd(listToggle) savePosOnDragEnd(settingsToggle) mainToggle.MouseButton1Click:Connect(function() playSound("ButtonClick") guiEnabled = not guiEnabled if guiEnabled then mainToggle.BackgroundColor3 = Settings.TOGGLE_COLOR mainToggle.Text = "🔍" listToggle.Visible = true settingsToggle.Visible = true else mainToggle.BackgroundColor3 = Settings.DISABLED_COLOR mainToggle.Text = "👁️" listToggle.Visible = false settingsToggle.Visible = false end for _, data in pairs(objectCache) do if data.esp then data.esp.Enabled = guiEnabled and data.espEnabled end end debouncedSaveSettings() end) listToggle.MouseButton1Click:Connect(function() playSound("ButtonClick"); toggleItemList() end) settingsToggle.MouseButton1Click:Connect(function() playSound("ButtonClick"); toggleSettings() end) mainToggle.Parent = screenGui listToggle.Parent = screenGui settingsToggle.Parent = screenGui end -- ========== BOSS PANEL BUTTON (WITH POSITION SAVING) ========== local function createBossPanelButton() bossPanelButton = Instance.new("TextButton") bossPanelButton.Name = "BossPanelButton" bossPanelButton.Text = "👑" bossPanelButton.TextColor3 = Settings.TEXT_COLOR bossPanelButton.TextSize = 18 if IS_MOBILE then bossPanelButton.TextSize = 24 end bossPanelButton.Font = Enum.Font.GothamBold bossPanelButton.BackgroundColor3 = Color3.fromRGB(200, 50, 50) bossPanelButton.BackgroundTransparency = 0.3 bossPanelButton.Size = UDim2.new(0, 40, 0, 40) if IS_MOBILE then bossPanelButton.Size = UDim2.new(0, 60, 0, 60) end bossPanelButton.Position = savedBossButtonPos or UDim2.new(0, 170, 0.5, -20) -- use saved position or default bossPanelButton.BorderSizePixel = 0 bossPanelButton.ZIndex = 100 bossPanelButton.Draggable = not IS_MOBILE Instance.new("UICorner", bossPanelButton).CornerRadius = UDim.new(1,0) bossPanelButton.MouseButton1Click:Connect(function() playSound("ButtonClick") bossPanelVisible = not bossPanelVisible if bossPanel then bossPanel.Visible = bossPanelVisible end end) -- Save button position when dragged bossPanelButton.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then savedBossButtonPos = bossPanelButton.Position debouncedSaveSettings() end end) bossPanelButton.Parent = screenGui end -- ========== SPLASH SCREEN ========== local function createSplashScreen() local splash = Instance.new("Frame") splash.Name = "SplashScreen" splash.BackgroundColor3 = Color3.fromRGB(20,20,30) splash.BackgroundTransparency = 0.3 splash.Size = UDim2.new(0,10,0,10) splash.Position = UDim2.new(0.5,-5,0.5,-5) splash.BorderSizePixel = 0 splash.ZIndex = 200 Instance.new("UICorner", splash).CornerRadius = UDim.new(0,16) local logo = Instance.new("TextLabel") logo.Text = "🔍" logo.TextColor3 = Settings.PRIMARY_COLOR logo.TextSize = 60 if IS_MOBILE then logo.TextSize = 80 end logo.Font = Enum.Font.GothamBold logo.BackgroundTransparency = 1 logo.Size = UDim2.new(0,80,0,80) logo.Position = UDim2.new(0.5,-40,0,20) logo.ZIndex = 201 logo.Parent = splash local title = Instance.new("TextLabel") title.Text = "NEXUS TRACKER" title.TextColor3 = Settings.PRIMARY_COLOR title.TextSize = 28 if IS_MOBILE then title.TextSize = 36 end title.Font = Enum.Font.GothamBold title.BackgroundTransparency = 1 title.Size = UDim2.new(1,0,0,50) title.Position = UDim2.new(0,0,0,100) title.ZIndex = 201 title.Parent = splash local subtitle = Instance.new("TextLabel") subtitle.Text = "Universal Tracker + Enhanced Boss ESP + Auto TP" subtitle.TextColor3 = Color3.fromRGB(200,200,200) subtitle.TextSize = 16 if IS_MOBILE then subtitle.TextSize = 20 end subtitle.Font = Enum.Font.Gotham subtitle.BackgroundTransparency = 1 subtitle.Size = UDim2.new(1,0,0,30) subtitle.Position = UDim2.new(0,0,0,150) subtitle.ZIndex = 201 subtitle.Parent = splash local version = Instance.new("TextLabel") version.Text = "v10.0 (Full Feature)" version.TextColor3 = Color3.fromRGB(150,150,150) version.TextSize = 14 if IS_MOBILE then version.TextSize = 18 end version.Font = Enum.Font.Gotham version.BackgroundTransparency = 1 version.Size = UDim2.new(1,0,0,20) version.Position = UDim2.new(0,0,0,185) version.ZIndex = 201 version.Parent = splash splash.Parent = screenGui TweenService:Create(splash, TweenInfo.new(0.5, Enum.EasingStyle.Back, Enum.EasingDirection.Out), { Size = UDim2.new(0,400,0,250), Position = UDim2.new(0.5,-200,0.5,-125), BackgroundTransparency = 0.3 }):Play() task.delay(3, function() if splash and splash.Parent then local t = TweenService:Create(splash, TweenInfo.new(0.3, Enum.EasingStyle.Quad, Enum.EasingDirection.In), { Size = UDim2.new(0,10,0,10), Position = UDim2.new(0.5,-5,0.5,-5), BackgroundTransparency = 1 }) t:Play() t.Completed:Wait() splash:Destroy() end end) end -- ========== INITIALIZATION ========== local function init() debugPrint("Initializing Nexus Tracker v10.0...") screenGui = Instance.new("ScreenGui") screenGui.Name = "NexusTrackerUI" screenGui.DisplayOrder = 10 screenGui.ResetOnSpawn = false screenGui.Parent = LocalPlayer:WaitForChild("PlayerGui") createSplashScreen() notificationContainer = Instance.new("Frame") notificationContainer.Name = "NotificationContainer" notificationContainer.BackgroundTransparency = 1 notificationContainer.Size = UDim2.new(1,0,1,0) notificationContainer.Parent = screenGui local notifLayout = Instance.new("UIListLayout") notifLayout.Padding = UDim.new(0,10) notifLayout.HorizontalAlignment = Enum.HorizontalAlignment.Right notifLayout.VerticalAlignment = Enum.VerticalAlignment.Bottom notifLayout.Parent = notificationContainer local saved = loadSettings() applyLoadedSettings(saved) updateNotificationPosition() -- For mobile, force LOD on if not otherwise set if IS_MOBILE then Settings.VISUAL_LOD_ENABLED = true end createToggleButtons() createBossPanelButton() if bossPanelButton then bossPanelButton.Visible = guiEnabled -- Apply saved button position if needed (already done in constructor) if savedBossButtonPos then bossPanelButton.Position = savedBossButtonPos end end bossPanel = createBossPanel() createSettingsGUI() createItemListGUI() -- Apply saved positions if savedMainTogglePos and mainToggle then mainToggle.Position = savedMainTogglePos end if savedListTogglePos and listToggle then listToggle.Position = savedListTogglePos end if savedSettingsTogglePos and settingsToggle then settingsToggle.Position = savedSettingsTogglePos end if savedItemListGUIPos and itemListGUI then itemListGUI.Position = savedItemListGUIPos end if savedSettingsGUIPos and settingsGUI then settingsGUI.Position = savedSettingsGUIPos end if savedBossPanelPos and bossPanel then bossPanel.Position = savedBossPanelPos end if not guiEnabled then mainToggle.BackgroundColor3 = Settings.DISABLED_COLOR mainToggle.Text = "👁️" listToggle.Visible = false settingsToggle.Visible = false end -- Enable death return based on loaded setting enableDeathReturn(Settings.DEATH_RETURN_ENABLED) connections[#connections+1] = TRACK_PATH.DescendantAdded:Connect(onChildAdded) connections[#connections+1] = TRACK_PATH.DescendantRemoving:Connect(onChildRemoving) findAndSetupObjects() lastESPUpdate = tick() lastListUpdate = tick() lastSpecialCheck = tick() connections[#connections+1] = RunService.Heartbeat:Connect(updateDistances) debugPrint("✅ Initialization complete") end -- ========== START ========== local function startScript() if LocalPlayer then if not LocalPlayer.Character then LocalPlayer.CharacterAdded:Wait() end task.wait(1) init() end end startScript() -- ========== API ========== return { ToggleGUI = function() if mainToggle then mainToggle:MouseButton1Click() end end, ShowItemList = function() toggleItemList(true) end, ShowSettings = function() toggleSettings(true) end, TeleportToNearest = teleportToNearest, SaveSettings = saveSettings, LoadSettings = loadSettings } -- END OF PART 4/4 (FULL SCRIPT READY)