Run it
Copy the script and paste it into your executor.
(t, value)
i, v (t)
v == value i
Settings = {
UPDATE_INTERVAL = ,
LIST_UPDATE_INTERVAL = ,
MAX_DISTANCE = ,
FADE_START_DISTANCE = ,
NOTIFICATION_DURATION = ,
TELEPORT_RANGE = ,
SOUND_ENABLED = ,
SOUND_VOLUME = ,
NOTIFICATION_POSITION = ,
HIDE_NEAR_DISTANCE = ,
MOBILE_SCALE = ,
VISUAL_BOSS_BYPASS_LOD = ,
PRIMARY_COLOR = .(, , ),
SECONDARY_COLOR = .(, , ),
TEXT_COLOR = .(, , ),
BACKGROUND_COLOR = .(, , ),
BACKGROUND_TRANSPARENCY = ,
GLOW_COLOR = .(, , ),
NOTIFICATION_COLOR = .(, , ),
TELEPORT_COLOR = .(, , ),
TOGGLE_COLOR = .(, , ),
DISABLED_COLOR = .(, , ),
LIST_COLOR = .(, , ),
LIST_HOVER_COLOR = .(, , ),
FAVORITE_COLOR = .(, , ),
ESP_ENABLED_COLOR = .(, , ),
ESP_DISABLED_COLOR = .(, , ),
DEATH_RETURN_ENABLED = ,
DEATH_ANIMATION_ID = ,
VISUAL_COLORS = {
Boss = .(, , ),
Sukuna = .(, , ),
Crate = .(, , ),
Portal = .(, , ),
Tool = .(, , ),
Note = .(, , ),
},
VISUAL_SIZE_SCALE = ,
VISUAL_TRANSPARENCY = ,
VISUAL_ICON_ONLY_THRESHOLD = ,
VISUAL_LOD_ENABLED = ,
VISUAL_LOD_DIST_ICON = ,
VISUAL_LOD_DIST_BRIEF = ,
VISUAL_FRUSTUM_CULLING = ,
AUTO_TELEPORT_ENABLED = ,
AUTO_TELEPORT_DELAY = ,
AUTO_TELEPORT_WARNING = ,
FAVORITE_GROUPS = { },
FAVORITE_ACTIVE_GROUP = ,
FAVORITE_AUTO_KEYWORDS = {},
AUTO_FAVORITE_NAMES = {},
DEBUG_MODE = ,
DEBUG_SHOW_PATHS = ,
}
TypeStyles = {
Boss = {
Background = .(, , ),
Header = Settings.VISUAL_COLORS.Boss,
Glow = .(, , ),
Icon = ,
TextColor = .(, , ),
HasHealthBar = ,
HasSkull = ,
PulseOutline = ,
HeaderGradient = {Settings.VISUAL_COLORS.Boss, .(, , )},
HealthBarColor = .(, , ),
ExtraIconAnimation = ,
Compact = ,
},
Sukuna = {
Background = .(, , ),
Header = Settings.VISUAL_COLORS.Sukuna,
Glow = .(, , ),
Icon = ,
TextColor = .(, , ),
HasHealthBar = ,
HasSkull = ,
PulseOutline = ,
HeaderGradient = {Settings.VISUAL_COLORS.Sukuna, .(, , )},
HealthBarColor = .(, , ),
ExtraIconAnimation = ,
Compact = ,
},
Crate = {
Background = .(, , ),
Header = Settings.VISUAL_COLORS.Crate,
Glow = .(, , ),
Icon = ,
TextColor = .(, , ),
HeaderGradient = {Settings.VISUAL_COLORS.Crate, .(, , )},
},
Portal = {
Background = .(, , ),
Header = Settings.VISUAL_COLORS.Portal,
Glow = .(, , ),
Icon = ,
TextColor = .(, , ),
HeaderGradient = {Settings.VISUAL_COLORS.Portal, .(, , )},
},
Tool = {
Background = .(, , ),
Header = Settings.VISUAL_COLORS.Tool,
Glow = .(, , ),
Icon = ,
TextColor = .(, , ),
HeaderGradient = {Settings.VISUAL_COLORS.Tool, .(, , )},
},
Note = {
Background = .(, , ),
Header = Settings.VISUAL_COLORS.Note,
Glow = .(, , ),
Icon = ,
TextColor = .(, , ),
HeaderGradient = {Settings.VISUAL_COLORS.Note, .(, , )},
}
}
Players = :()
RunService = :()
TweenService = :()
UserInputService = :()
HttpService = :()
canSaveToFile = (writefile ~= readfile ~= )
SETTINGS_FILE =
SPECIAL_PATHS = {
Boss = ,
Sukuna = ,
Crate = ,
Portal =
}
SPECIAL_NAMES = {
Boss = ,
Sukuna = ,
Crate = ,
Portal =
}
SPECIAL_ICONS = {
Boss = ,
Sukuna = ,
Crate = ,
Portal =
}
SOUNDS = {
BossSpawn = ,
LowHealth = ,
BossDeath = ,
Teleport = ,
ButtonClick = ,
ItemSpawn =
}
soundCache = {}
(soundName)
Settings.SOUND_ENABLED
soundId = SOUNDS[soundName]
soundId
soundCache[soundName]
sound = .()
sound.SoundId = soundId
sound.Volume = Settings.SOUND_VOLUME
sound.Parent = Players.LocalPlayer:()
soundCache[soundName] = sound
soundCache[soundName].Volume = Settings.SOUND_VOLUME
sound = soundCache[soundName]
sound:()
sound:()
TRACK_PATH = :()
SPECIFIC_MODEL_NAME =
LocalPlayer = Players.LocalPlayer
Camera = .CurrentCamera
objectCache = {}
notifications = {}
connections = {}
teleportQueue = {}
guiEnabled =
itemListGUI =
itemListVisible =
settingsGUI =
settingsVisible =
screenGui =
notificationContainer =
mainToggle =
listToggle =
settingsToggle =
savedMainTogglePos =
savedListTogglePos =
savedSettingsTogglePos =
savedItemListGUIPos =
savedSettingsGUIPos =
savedBossButtonPos =
bossPanel =
bossPanelVisible =
bossPanelButton =
savedBossPanelPos =
savedObjectFavorites = {}
savedObjectESP = {}
listState = {
filterType = ,
sortMode = ,
sortAsc = ,
searchText =
}
lastLowHealthTime =
lastDeathTime =
bossWasPresent =
lastPositionBeforeTeleport =
lastBossSpawnNotification =
BOSS_NOTIFICATION_COOLDOWN =
lastBossType =
IS_MOBILE = UserInputService.TouchEnabled UserInputService.MouseEnabled
DEBUG =
(...)
DEBUG
(, ...)
(...)
Settings.DEBUG_MODE
(, ...)
deathPosition =
deathConnections = {}
deathAnimationTrack =
pathLines = {}
(pathString)
current =
part .(pathString, )
current = current:(part)
current
current current
:(pathString, )
(obj)
obj
fullPath = obj:()
sType, pathPattern (SPECIAL_PATHS)
fullPath:(pathPattern .. ) fullPath == pathPattern
sType
(obj)
TypeStyles
()
specialType = (obj)
specialType
TypeStyles[specialType] TypeStyles.Tool
obj:()
TypeStyles.Tool
obj:() obj.Name == SPECIFIC_MODEL_NAME
TypeStyles.Note
TypeStyles.Tool
(object)
object:() (object:() object.Name == SPECIFIC_MODEL_NAME)
(object)
(parent, color1, color2, rotation)
gradient = .()
gradient.Color = ColorSequence.({ColorSequenceKeypoint.(, color1), ColorSequenceKeypoint.(, color2)})
gradient.Rotation = rotation
gradient.Parent = parent
gradient
(object)
object:()
object.Position
object:()
data = objectCache[object]
data data.tempPart data.tempPart.Parent
data.tempPart.Position
primary = object.PrimaryPart
primary primary.Position
_, descendant (object:())
descendant:()
descendant.Position
object:().Position
.(,,)
(object)
specialType = (object)
specialType
SPECIAL_NAMES[specialType] object.Name
object:() object.Name == SPECIFIC_MODEL_NAME
.. object.Name
object:()
.. object.Name
object.Name
()
character = LocalPlayer.Character
character
root = character:()
root
lastPositionBeforeTeleport = root.Position
()
lastPositionBeforeTeleport ,
character = LocalPlayer.Character
character ,
humanoidRootPart = character:()
humanoidRootPart ,
humanoidRootPart.CFrame = .(lastPositionBeforeTeleport)
lastPositionBeforeTeleport =
,
(character)
character
humanoid = character:()
humanoid
animator = humanoid:()
animator
_, track (animator:())
track:()
deathAnimationTrack =
(character)
character Settings.DEATH_RETURN_ENABLED
(character)
humanoid = character:()
humanoid
animator = humanoid:()
animator
animator = .()
animator.Parent = humanoid
animation = .()
animation.AnimationId = .. Settings.DEATH_ANIMATION_ID
track = animator:(animation)
track
track:()
deathAnimationTrack = track
()
Settings.DEATH_RETURN_ENABLED
character = LocalPlayer.Character
character
root = character:() character:() character:() character:()
root
deathPosition = root.Position
()
Settings.DEATH_RETURN_ENABLED deathPosition ,
character = LocalPlayer.Character
character ,
root = character:() character:() character:()
root ,
(character)
root.CFrame = .(deathPosition)
(character)
deathPosition =
,
(character)
Settings.DEATH_RETURN_ENABLED
deathConnections.movement
deathConnections.movement:()
deathConnections.movement =
deathConnections.movement = RunService.Heartbeat:(()
Settings.DEATH_RETURN_ENABLED
char = LocalPlayer.Character
char
humanoid = char:()
humanoid deathAnimationTrack deathAnimationTrack.IsPlaying
humanoid.MoveDirection.Magnitude >
deathAnimationTrack:()
deathAnimationTrack =
)
(enable)
enable
deathConnections.enabled
deathConnections.enabled =
deathConnections.characterAdded
deathConnections.characterAdded = LocalPlayer.CharacterAdded:((character)
Settings.DEATH_RETURN_ENABLED
deathPosition
.()
()
.()
(character)
)
LocalPlayer.Character
(LocalPlayer.Character)
deathConnections.enabled
deathConnections.enabled =
deathConnections.movement
deathConnections.movement:()
deathConnections.movement =
deathConnections.characterAdded
deathConnections.characterAdded:()
deathConnections.characterAdded =
deathAnimationTrack
deathAnimationTrack:()
deathAnimationTrack =
deathPosition =
(object)
object object.Parent ,
character = LocalPlayer.Character
character ,
humanoidRootPart = character:()
humanoidRootPart ,
objectPos = (object)
objectPos == .(,,) ,
distance = (humanoidRootPart.Position - objectPos).Magnitude
distance > Settings.TELEPORT_RANGE , .. .(distance) ..
()
()
teleportQueue[object] =
humanoidRootPart.CFrame = .(objectPos + .(,,))
.()
teleportQueue[object] =
,
()
character = LocalPlayer.Character
character ,
humanoidRootPart = character:()
humanoidRootPart ,
nearestDist = .huge
nearestObj =
obj, data (objectCache)
obj obj.Parent
dist = (humanoidRootPart.Position - (obj)).Magnitude
dist < nearestDist dist <= Settings.TELEPORT_RANGE
nearestDist = dist
nearestObj = obj
nearestObj (nearestObj)
,
(bossObj, bossType)
Settings.AUTO_TELEPORT_ENABLED
bossType ~= bossType ~=
.(Settings.AUTO_TELEPORT_DELAY, ()
Settings.AUTO_TELEPORT_ENABLED
bossObj bossObj.Parent
LocalPlayer.Character LocalPlayer.Character:()
Settings.AUTO_TELEPORT_WARNING
(, .. SPECIAL_NAMES[bossType] .. , , , .(,,))
.()
success, msg = (bossObj)
success
(, .. SPECIAL_NAMES[bossType], , , .(,,))
(, .. msg, , , .(,,))
)
(obj)
Settings.FAVORITE_AUTO_KEYWORDS #Settings.FAVORITE_AUTO_KEYWORDS ==
name = obj.Name:()
_, keyword (Settings.FAVORITE_AUTO_KEYWORDS)
name:(keyword:(), , )
()
notificationContainer
pos = Settings.NOTIFICATION_POSITION
layout = notificationContainer:()
layout
pos ==
layout.HorizontalAlignment = .HorizontalAlignment.Right
layout.VerticalAlignment = .VerticalAlignment.Bottom
pos ==
layout.HorizontalAlignment = .HorizontalAlignment.Right
layout.VerticalAlignment = .VerticalAlignment.Top
pos ==
layout.HorizontalAlignment = .HorizontalAlignment.Left
layout.VerticalAlignment = .VerticalAlignment.Bottom
pos ==
layout.HorizontalAlignment = .HorizontalAlignment.Left
layout.VerticalAlignment = .VerticalAlignment.Top
pos ==
layout.HorizontalAlignment = .HorizontalAlignment.Center
layout.VerticalAlignment = .VerticalAlignment.Top
pos ==
layout.HorizontalAlignment = .HorizontalAlignment.Center
layout.VerticalAlignment = .VerticalAlignment.Bottom
(notifFrame)
i, data (notifications)
data.frame == notifFrame
data.timerThread (.cancel, data.timerThread)
tween = TweenService:(notifFrame, TweenInfo.(), {Position = .(, , , -), BackgroundTransparency = })
tween:()
tween.Completed:()
notifFrame notifFrame.Parent notifFrame:()
.(notifications, i)
(title, text, object, duration, color)
duration = duration Settings.NOTIFICATION_DURATION
color = color Settings.NOTIFICATION_COLOR
notification = .()
notification.Name =
notification.BackgroundColor3 = color
notification.BackgroundTransparency =
notification.Size = .(, , , )
notification.Position = .(, , , -)
notification.BorderSizePixel =
notification.LayoutOrder = #notifications +
notification.Active =
notification.ClipsDescendants =
corner = .()
corner.CornerRadius = .(, )
corner.Parent = notification
timerBar = .()
timerBar.Name =
timerBar.BackgroundColor3 = .(,,)
timerBar.BackgroundTransparency =
timerBar.Size = .(, -, , )
timerBar.Position = .(, , , -)
timerBar.BorderSizePixel =
timerBar.ZIndex =
timerBar.Parent = notification
timerProgress = .()
timerProgress.Name =
timerProgress.BackgroundColor3 = color
timerProgress.Size = .(, , , )
timerProgress.BorderSizePixel =
timerProgress.ZIndex =
timerProgress.Parent = timerBar
icon = .()
icon.Name =
icon.Text =
icon.TextColor3 = Settings.TEXT_COLOR
icon.TextTransparency =
icon.TextSize =
icon.Font = .Font.GothamBold
icon.BackgroundTransparency =
icon.Size = .(, , , )
icon.Position = .(, , , -)
icon.Parent = notification
titleLabel = .()
titleLabel.Name =
titleLabel.Text = title
titleLabel.TextColor3 = Settings.TEXT_COLOR
titleLabel.TextTransparency =
titleLabel.TextSize =
titleLabel.Font = .Font.GothamBold
titleLabel.BackgroundTransparency =
titleLabel.Size = .(, -, , )
titleLabel.Position = .(, , , )
titleLabel.TextXAlignment = .TextXAlignment.Left
titleLabel.Parent = notification
itemName = .()
itemName.Name =
itemName.Text = text
itemName.TextColor3 = Settings.TEXT_COLOR
itemName.TextTransparency =
itemName.TextSize =
itemName.Font = .Font.GothamBold
itemName.BackgroundTransparency =
itemName.Size = .(, -, , )
itemName.Position = .(, , , )
itemName.TextXAlignment = .TextXAlignment.Left
itemName.Parent = notification
closeNotifButton = .()
closeNotifButton.Name =
closeNotifButton.Text =
closeNotifButton.TextColor3 = Settings.TEXT_COLOR
closeNotifButton.TextTransparency =
closeNotifButton.TextSize =
closeNotifButton.Font = .Font.GothamBold
closeNotifButton.BackgroundColor3 = .(, , )
closeNotifButton.BackgroundTransparency =
closeNotifButton.Size = .(, , , )
closeNotifButton.Position = .(, -, , )
closeNotifButton.BorderSizePixel =
closeNotifButton.ZIndex =
closeNotifButton.AutoButtonColor =
.(, closeNotifButton).CornerRadius = .(, )
closeNotifButton.MouseButton1Click:(() (notification) )
closeNotifButton.Parent = notification
teleportButton =
object
teleportButton = .()
teleportButton.Name =
teleportButton.Text =
teleportButton.TextColor3 = Settings.TEXT_COLOR
teleportButton.TextTransparency =
teleportButton.TextSize =
teleportButton.Font = .Font.GothamBold
teleportButton.BackgroundColor3 = Settings.TELEPORT_COLOR
teleportButton.BackgroundTransparency =
teleportButton.Size = .(, , , )
teleportButton.Position = .(, -, , -)
teleportButton.BorderSizePixel =
teleportButton.AutoButtonColor =
.(, teleportButton).CornerRadius = .(, )
(teleportButton, Settings.TELEPORT_COLOR, .(,,), )
teleportButton.Parent = notification
tpDebounce =
teleportButton.MouseButton1Click:(()
tpDebounce
tpDebounce =
success, msg = (object)
success
teleportButton.Text =
teleportButton.BackgroundColor3 = .(,,)
teleportButton.AutoButtonColor =
.()
teleportButton.Text =
teleportButton.BackgroundColor3 = Settings.TELEPORT_COLOR
teleportButton.AutoButtonColor =
old = teleportButton.Text
teleportButton.Text = msg
teleportButton.BackgroundColor3 = .(,,)
teleportButton.AutoButtonColor =
.()
teleportButton.Text = old
teleportButton.BackgroundColor3 = Settings.TELEPORT_COLOR
teleportButton.AutoButtonColor =
tpDebounce =
)
notificationContainer notification.Parent = notificationContainer
notification.Position = .(, , , -)
notification.BackgroundTransparency =
icon.TextTransparency =
titleLabel.TextTransparency =
itemName.TextTransparency =
closeNotifButton.TextTransparency =
closeNotifButton.BackgroundTransparency =
teleportButton
teleportButton.TextTransparency =
teleportButton.BackgroundTransparency =
TweenService:(notification, TweenInfo.(, .EasingStyle.Back, .EasingDirection.Out), {
Position = .(, , , -),
BackgroundTransparency =
}):()
TweenService:(icon, TweenInfo.(, .EasingStyle.Quad, .EasingDirection.Out), {TextTransparency = }):()
TweenService:(titleLabel, TweenInfo.(, .EasingStyle.Quad, .EasingDirection.Out), {TextTransparency = }):()
TweenService:(itemName, TweenInfo.(, .EasingStyle.Quad, .EasingDirection.Out), {TextTransparency = }):()
TweenService:(closeNotifButton, TweenInfo.(, .EasingStyle.Quad, .EasingDirection.Out), {
TextTransparency = ,
BackgroundTransparency =
}):()
teleportButton
TweenService:(teleportButton, TweenInfo.(, .EasingStyle.Quad, .EasingDirection.Out), {
TextTransparency = ,
BackgroundTransparency =
}):()
notifData = {frame = notification, timer = (), timerProgress = timerProgress}
.(notifications, notifData)
notifData.timerThread = .(()
start = ()
() - start < duration notification notification.Parent
timerProgress.Size = .( - (()-start)/duration, , , )
.()
notification notification.Parent (notification)
)
(udim2)
udim2
{X = {Scale = udim2.X.Scale, Offset = udim2.X.Offset}, Y = {Scale = udim2.Y.Scale, Offset = udim2.Y.Offset}}
(data)
data
.(data.X.Scale, data.X.Offset, data.Y.Scale, data.Y.Offset)
()
canSaveToFile
objectFavorites = {}
objectESP = {}
obj, data (objectCache)
obj obj.Parent
path = obj:()
objectFavorites[path] = data.favorite
objectESP[path] = data.espEnabled
settingsData = {
mainTogglePos = mainToggle (mainToggle.Position) ,
listTogglePos = listToggle (listToggle.Position) ,
settingsTogglePos = settingsToggle (settingsToggle.Position) ,
itemListPos = itemListGUI (itemListGUI.Position) ,
settingsGUIPos = settingsGUI (settingsGUI.Position) ,
bossPanelPos = bossPanel (bossPanel.Position) ,
bossButtonPos = bossPanelButton (bossPanelButton.Position) ,
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_ENABLED = Settings.DEATH_RETURN_ENABLED,
DEATH_ANIMATION_ID = Settings.DEATH_ANIMATION_ID,
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_ENABLED = Settings.AUTO_TELEPORT_ENABLED,
AUTO_TELEPORT_DELAY = Settings.AUTO_TELEPORT_DELAY,
AUTO_TELEPORT_WARNING = Settings.AUTO_TELEPORT_WARNING,
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_MODE = Settings.DEBUG_MODE,
DEBUG_SHOW_PATHS = Settings.DEBUG_SHOW_PATHS,
}
jsonData = HttpService:(settingsData)
(() (SETTINGS_FILE, jsonData) )
()
canSaveToFile
success, data = (()
json = (SETTINGS_FILE)
json json ~= HttpService:(json)
)
success data
(settingsData)
settingsData
settingsData.mainTogglePos savedMainTogglePos = (settingsData.mainTogglePos)
settingsData.listTogglePos savedListTogglePos = (settingsData.listTogglePos)
settingsData.settingsTogglePos savedSettingsTogglePos = (settingsData.settingsTogglePos)
settingsData.itemListPos savedItemListGUIPos = (settingsData.itemListPos)
settingsData.settingsGUIPos savedSettingsGUIPos = (settingsData.settingsGUIPos)
settingsData.bossButtonPos savedBossButtonPos = (settingsData.bossButtonPos)
settingsData.MAX_DISTANCE Settings.MAX_DISTANCE = settingsData.MAX_DISTANCE
settingsData.FADE_START_DISTANCE Settings.FADE_START_DISTANCE = settingsData.FADE_START_DISTANCE
settingsData.NOTIFICATION_DURATION Settings.NOTIFICATION_DURATION = settingsData.NOTIFICATION_DURATION
settingsData.TELEPORT_RANGE Settings.TELEPORT_RANGE = settingsData.TELEPORT_RANGE
settingsData.UPDATE_INTERVAL Settings.UPDATE_INTERVAL = settingsData.UPDATE_INTERVAL
settingsData.LIST_UPDATE_INTERVAL Settings.LIST_UPDATE_INTERVAL = settingsData.LIST_UPDATE_INTERVAL
settingsData.HIDE_NEAR_DISTANCE Settings.HIDE_NEAR_DISTANCE = settingsData.HIDE_NEAR_DISTANCE
settingsData.guiEnabled ~= guiEnabled = settingsData.guiEnabled
settingsData.DEBUG ~= DEBUG = settingsData.DEBUG
settingsData.SOUND_ENABLED ~= Settings.SOUND_ENABLED = settingsData.SOUND_ENABLED
settingsData.SOUND_VOLUME ~= Settings.SOUND_VOLUME = settingsData.SOUND_VOLUME
settingsData.NOTIFICATION_POSITION Settings.NOTIFICATION_POSITION = settingsData.NOTIFICATION_POSITION
settingsData.listFilter listState.filterType = settingsData.listFilter
settingsData.listSortMode listState.sortMode = settingsData.listSortMode
settingsData.listSortAsc ~= listState.sortAsc = settingsData.listSortAsc
settingsData.objectFavorites savedObjectFavorites = settingsData.objectFavorites
settingsData.objectESP savedObjectESP = settingsData.objectESP
settingsData.DEATH_RETURN_ENABLED ~= Settings.DEATH_RETURN_ENABLED = settingsData.DEATH_RETURN_ENABLED
settingsData.DEATH_ANIMATION_ID Settings.DEATH_ANIMATION_ID = settingsData.DEATH_ANIMATION_ID
settingsData.VISUAL_COLORS
k, v (settingsData.VISUAL_COLORS)
Settings.VISUAL_COLORS[k] = v
settingsData.VISUAL_SIZE_SCALE Settings.VISUAL_SIZE_SCALE = settingsData.VISUAL_SIZE_SCALE
settingsData.VISUAL_TRANSPARENCY Settings.VISUAL_TRANSPARENCY = settingsData.VISUAL_TRANSPARENCY
settingsData.VISUAL_ICON_ONLY_THRESHOLD Settings.VISUAL_ICON_ONLY_THRESHOLD = settingsData.VISUAL_ICON_ONLY_THRESHOLD
settingsData.VISUAL_LOD_ENABLED ~= Settings.VISUAL_LOD_ENABLED = settingsData.VISUAL_LOD_ENABLED
settingsData.VISUAL_LOD_DIST_ICON Settings.VISUAL_LOD_DIST_ICON = settingsData.VISUAL_LOD_DIST_ICON
settingsData.VISUAL_LOD_DIST_BRIEF Settings.VISUAL_LOD_DIST_BRIEF = settingsData.VISUAL_LOD_DIST_BRIEF
settingsData.VISUAL_FRUSTUM_CULLING ~= Settings.VISUAL_FRUSTUM_CULLING = settingsData.VISUAL_FRUSTUM_CULLING
settingsData.AUTO_TELEPORT_ENABLED ~= Settings.AUTO_TELEPORT_ENABLED = settingsData.AUTO_TELEPORT_ENABLED
settingsData.AUTO_TELEPORT_DELAY Settings.AUTO_TELEPORT_DELAY = settingsData.AUTO_TELEPORT_DELAY
settingsData.AUTO_TELEPORT_WARNING ~= Settings.AUTO_TELEPORT_WARNING = settingsData.AUTO_TELEPORT_WARNING
settingsData.FAVORITE_GROUPS Settings.FAVORITE_GROUPS = settingsData.FAVORITE_GROUPS
settingsData.FAVORITE_ACTIVE_GROUP Settings.FAVORITE_ACTIVE_GROUP = settingsData.FAVORITE_ACTIVE_GROUP
settingsData.FAVORITE_AUTO_KEYWORDS Settings.FAVORITE_AUTO_KEYWORDS = settingsData.FAVORITE_AUTO_KEYWORDS
settingsData.AUTO_FAVORITE_NAMES Settings.AUTO_FAVORITE_NAMES = settingsData.AUTO_FAVORITE_NAMES
settingsData.DEBUG_MODE ~= Settings.DEBUG_MODE = settingsData.DEBUG_MODE
settingsData.DEBUG_SHOW_PATHS ~= Settings.DEBUG_SHOW_PATHS = settingsData.DEBUG_SHOW_PATHS
saveDebounce =
()
canSaveToFile saveDebounce
saveDebounce =
.(, () (); saveDebounce = )
()
Settings.DEBUG_SHOW_PATHS
_, line (pathLines)
line (line.Destroy, line)
pathLines = {}
character = LocalPlayer.Character
character
root = character:()
root
obj, data (objectCache)
obj obj.Parent
pos = (obj)
line = pathLines[obj]
line
part = .()
part.Name =
part.Size = .(, , (root.Position - pos).Magnitude)
part.CFrame = .(root.Position, pos) * .(, , -part.Size.Z/)
part.Anchored =
part.CanCollide =
part.Transparency =
part.BrickColor = BrickColor.()
part.Material = .Material.Neon
part.Parent =
pathLines[obj] = part
dist = (root.Position - pos).Magnitude
line.Size = .(, , dist)
line.CFrame = .(root.Position, pos) * .(, , -dist/)
pathLines[obj]
(pathLines[obj].Destroy, pathLines[obj])
pathLines[obj] =
(dist)
Settings.VISUAL_LOD_ENABLED
dist > Settings.VISUAL_LOD_DIST_ICON
dist > Settings.VISUAL_LOD_DIST_BRIEF
(pos)
Settings.VISUAL_FRUSTUM_CULLING
onScreen, visPos = Camera:(pos)
onScreen visPos.Z >
(object)
guiEnabled
data = objectCache[object]
data
(, object.Name, )
style = (object)
isBoss = (style == TypeStyles.Boss style == TypeStyles.Sukuna)
isCompact = style.Compact
cardWidth, cardHeight
isCompact
cardWidth =
cardHeight =
cardWidth = isBoss
cardHeight = isBoss
IS_MOBILE
cardWidth = cardWidth * Settings.MOBILE_SCALE
cardHeight = cardHeight * Settings.MOBILE_SCALE
cardWidth = cardWidth * Settings.VISUAL_SIZE_SCALE
cardHeight = cardHeight * Settings.VISUAL_SIZE_SCALE
container = .()
container.Name =
container.AlwaysOnTop =
container.Size = .(, cardWidth, , cardHeight)
container.StudsOffset = .(, , )
container.MaxDistance = Settings.MAX_DISTANCE
container.Enabled =
container.ZIndexBehavior = .ZIndexBehavior.Sibling
container.Active =
adornee =
object:()
adornee = object
object:()
adornee = object.PrimaryPart object:()
adornee
_, descendant (object:())
descendant:()
adornee = descendant
adornee
container.Adornee = adornee
humanoid = object:()
rootPart = humanoid humanoid.RootPart
rootPart
container.Adornee = rootPart
tempPart = .()
tempPart.Name =
tempPart.Size = .(, , )
tempPart.Transparency =
tempPart.CanCollide =
tempPart.Anchored =
tempPart.Parent = object
pivot = object:()
tempPart.CFrame = pivot
container.Adornee = tempPart
data.tempPart = tempPart
data.updateConnection = RunService.Heartbeat:(()
tempPart tempPart.Parent object object.Parent
tempPart.CFrame = object:()
data.updateConnection
data.updateConnection:()
data.updateConnection =
)
main = .()
main.Name =
main.BackgroundColor3 = style.Background
main.BackgroundTransparency = Settings.VISUAL_TRANSPARENCY
main.Size = .(,,,)
main.BorderSizePixel =
.(, main).CornerRadius = .(,)
lod1 = .()
lod1.Name =
lod1.BackgroundTransparency =
lod1.Size = .(,,,)
lod1.Visible =
icon = .()
icon.Name =
icon.Text = style.Icon
icon.TextColor3 = style.TextColor
icon.TextSize = * Settings.VISUAL_SIZE_SCALE
icon.Font = .Font.GothamBold
icon.BackgroundTransparency =
icon.Size = .(,,,)
icon.Position = .(,,,)
icon.Parent = lod1
name = .()
name.Name =
name.Text = (object) .. (data.favorite )
name.RichText =
name.TextColor3 = style.TextColor
name.TextSize = * Settings.VISUAL_SIZE_SCALE
name.Font = .Font.Gotham
name.BackgroundTransparency =
name.Size = .(,,,)
name.Position = .(,,,)
name.Parent = lod1
lod1.Parent = main
lod2 = .()
lod2.Name =
lod2.BackgroundTransparency =
lod2.Size = .(,,,)
lod2.Visible =
icon = .()
icon.Name =
icon.Text = style.Icon
icon.TextColor3 = style.TextColor
icon.TextSize = * Settings.VISUAL_SIZE_SCALE
icon.Font = .Font.GothamBold
icon.BackgroundTransparency =
icon.Size = .(,,,)
icon.Position = .(,,,-)
icon.Parent = lod2
name = .()
name.Name =
name.Text = (object) .. (data.favorite )
name.RichText =
name.TextColor3 = style.TextColor
name.TextSize = * Settings.VISUAL_SIZE_SCALE
name.Font = .Font.GothamBold
name.BackgroundTransparency =
name.Size = .(,-,,)
name.Position = .(,,,)
name.TextXAlignment = .TextXAlignment.Left
name.Parent = lod2
typeLabel = .()
typeLabel.Name =
typeLabel.Text = .. ((object) object.ClassName)
typeLabel.TextColor3 = .(,,)
typeLabel.TextSize = * Settings.VISUAL_SIZE_SCALE
typeLabel.Font = .Font.Gotham
typeLabel.BackgroundTransparency =
typeLabel.Size = .(,-,,)
typeLabel.Position = .(,,,)
typeLabel.TextXAlignment = .TextXAlignment.Left
typeLabel.Parent = lod2
dist = .()
dist.Name =
dist.Text =
dist.TextColor3 = .(,,)
dist.TextSize = * Settings.VISUAL_SIZE_SCALE
dist.Font = .Font.Gotham
dist.BackgroundTransparency =
dist.Size = .(,-,,)
dist.Position = .(,,,)
dist.TextXAlignment = .TextXAlignment.Left
dist.Parent = lod2
lod2.Parent = main
lod3 = .()
lod3.Name =
lod3.BackgroundTransparency =
lod3.Size = .(,,,)
lod3.Visible =
glow = .()
glow.BackgroundColor3 = style.Glow
glow.BackgroundTransparency =
glow.Size = .(,,,)
glow.Position = .(,-,,-)
glow.BorderSizePixel =
glow.ZIndex =
.(, glow).CornerRadius = .(,)
glow.Parent = lod3
header = .()
header.BackgroundColor3 = style.Header
header.Size = .(,,,isCompact )
header.BorderSizePixel =
header.ZIndex =
.(, header).CornerRadius = .(,,,)
style.HeaderGradient
(header, style.HeaderGradient[], style.HeaderGradient[], )
(header, style.Header, style.Header:(.(,,), ), )
headerIcon = .()
headerIcon.Text = style.Icon
headerIcon.TextColor3 = style.TextColor
headerIcon.TextSize = isCompact
IS_MOBILE headerIcon.TextSize = headerIcon.TextSize *
headerIcon.Font = .Font.GothamBold
headerIcon.BackgroundTransparency =
headerIcon.Size = .(, isCompact , , isCompact )
headerIcon.Position = .(, isCompact , , isCompact - -)
headerIcon.ZIndex =
headerIcon.Parent = header
headerName = .()
headerName.Name =
headerName.Text = (object) .. (data.favorite )
headerName.RichText =
headerName.TextColor3 = style.TextColor
headerName.TextSize = isCompact
IS_MOBILE headerName.TextSize = headerName.TextSize *
headerName.Font = .Font.GothamBold
headerName.BackgroundTransparency =
headerName.Size = .(, -(isCompact ), , )
headerName.Position = .(, isCompact , , )
headerName.TextXAlignment = .TextXAlignment.Left
headerName.ZIndex =
headerName.Parent = header
style.ExtraIconAnimation isCompact
extraIcon = .()
extraIcon.Text = style.Icon
extraIcon.TextColor3 = .(, , )
extraIcon.TextSize =
IS_MOBILE extraIcon.TextSize = extraIcon.TextSize *
extraIcon.Font = .Font.GothamBold
extraIcon.BackgroundTransparency =
extraIcon.Size = .(, , , )
extraIcon.Position = .(, -, , -)
extraIcon.ZIndex =
extraIcon.Parent = header
TweenService:(extraIcon, TweenInfo.(, .EasingStyle.Sine, .EasingDirection.InOut, -, ),
{TextTransparency = , TextSize = }):()
header.Parent = lod3
content = .()
content.BackgroundTransparency =
contentHeight = isCompact (isBoss )
IS_MOBILE contentHeight = contentHeight *
content.Size = .(,-,, contentHeight)
content.Position = .(,,, isCompact )
content.ZIndex =
layout = .()
layout.Padding = .(, isCompact )
layout.HorizontalAlignment = .HorizontalAlignment.Left
layout.VerticalAlignment = .VerticalAlignment.Top
layout.Parent = content
typeRow = .()
typeRow.BackgroundTransparency =
typeRow.Size = .(,,, isCompact )
IS_MOBILE typeRow.Size = .(,,, isCompact )
typeIcon = .()
typeIcon.Text =
typeIcon.TextColor3 = style.TextColor
typeIcon.TextSize = isCompact
IS_MOBILE typeIcon.TextSize = typeIcon.TextSize *
typeIcon.Font = .Font.GothamBold
typeIcon.BackgroundTransparency =
typeIcon.Size = .(, isCompact , , isCompact )
typeIcon.Position = .(,,, isCompact - -)
typeIcon.Parent = typeRow
typeLabel = .()
typeLabel.Text = .. ((object) object.ClassName)
typeLabel.TextColor3 = .(,,)
typeLabel.TextSize = isCompact
IS_MOBILE typeLabel.TextSize = typeLabel.TextSize *
typeLabel.Font = .Font.Gotham
typeLabel.BackgroundTransparency =
typeLabel.Size = .(,-,,)
typeLabel.Position = .(, isCompact , ,)
typeLabel.TextXAlignment = .TextXAlignment.Left
typeLabel.Parent = typeRow
typeRow.Parent = content
distRow = .()
distRow.BackgroundTransparency =
distRow.Size = .(,,, isCompact )
IS_MOBILE distRow.Size = .(,,, isCompact )
distIcon = .()
distIcon.Text =
distIcon.TextColor3 = style.TextColor
distIcon.TextSize = isCompact
IS_MOBILE distIcon.TextSize = distIcon.TextSize *
distIcon.Font = .Font.GothamBold
distIcon.BackgroundTransparency =
distIcon.Size = .(, isCompact , , isCompact )
distIcon.Position = .(,,, isCompact - -)
distIcon.Parent = distRow
distLabel = .()
distLabel.Name =
distLabel.Text =
distLabel.TextColor3 = .(,,)
distLabel.TextSize = isCompact
IS_MOBILE distLabel.TextSize = distLabel.TextSize *
distLabel.Font = .Font.Gotham
distLabel.BackgroundTransparency =
distLabel.Size = .(,-,,)
distLabel.Position = .(, isCompact , ,)
distLabel.TextXAlignment = .TextXAlignment.Left
distLabel.Parent = distRow
distRow.Parent = content
isBoss
healthRow = .()
healthRow.Name =
healthRow.BackgroundTransparency =
healthRow.Size = .(,,, isCompact )
IS_MOBILE healthRow.Size = .(,,, isCompact )
hpIcon = .()
hpIcon.Name =
hpIcon.Text =
hpIcon.TextColor3 = .(, , )
hpIcon.TextSize = isCompact
IS_MOBILE hpIcon.TextSize = hpIcon.TextSize *
hpIcon.Font = .Font.GothamBold
hpIcon.BackgroundTransparency =
hpIcon.Size = .(, isCompact , , isCompact )
hpIcon.Position = .(, , , )
hpIcon.Parent = healthRow
hpText = .()
hpText.Name =
hpText.Text =
hpText.TextColor3 = .(, , )
hpText.TextSize = isCompact
IS_MOBILE hpText.TextSize = hpText.TextSize *
hpText.Font = .Font.Gotham
hpText.BackgroundTransparency =
hpText.Size = .(, -, , )
hpText.Position = .(, , , )
hpText.TextXAlignment = .TextXAlignment.Left
hpText.Parent = healthRow
hpBarBg = .()
hpBarBg.Name =
hpBarBg.BackgroundColor3 = .(, , )
hpBarBg.Size = .(, -, , )
hpBarBg.Position = .(, , , )
hpBarBg.BorderSizePixel =
hpBarBg.Parent = healthRow
.(, hpBarBg).CornerRadius = .(, )
hpBarFill = .()
hpBarFill.Name =
hpBarFill.BackgroundColor3 = .(, , )
hpBarFill.Size = .(, , , )
hpBarFill.BorderSizePixel =
hpBarFill.Parent = hpBarBg
.(, hpBarFill).CornerRadius = .(, )
percentLabel = .()
percentLabel.Name =
percentLabel.Text =
percentLabel.TextColor3 = .(, , )
percentLabel.TextSize = isCompact
IS_MOBILE percentLabel.TextSize = percentLabel.TextSize *
percentLabel.Font = .Font.Gotham
percentLabel.BackgroundTransparency =
percentLabel.Size = .(, , , )
percentLabel.Position = .(, -, , )
percentLabel.TextXAlignment = .TextXAlignment.Right
percentLabel.Parent = healthRow
healthRow.Parent = content
data.hpText = hpText
data.hpBarFill = hpBarFill
data.percentLabel = percentLabel
isBoss isCompact
skullIcon = .()
skullIcon.Name =
skullIcon.Text =
skullIcon.TextColor3 = .(, , )
skullIcon.TextSize =
IS_MOBILE skullIcon.TextSize = skullIcon.TextSize *
skullIcon.Font = .Font.GothamBold
skullIcon.BackgroundTransparency =
skullIcon.Size = .(, , , )
skullIcon.Position = .(, -, , -)
skullIcon.ZIndex =
skullIcon.Visible =
skullIcon.Parent = lod3
TweenService:(skullIcon, TweenInfo.(, .EasingStyle.Sine, .EasingDirection.InOut, -, ),
{TextTransparency = }):()
data.skullIcon = skullIcon
content.Parent = lod3
quickTeleport = .()
quickTeleport.Name =
quickTeleport.Text =
quickTeleport.TextColor3 = Settings.TEXT_COLOR
quickTeleport.TextSize = isCompact
IS_MOBILE quickTeleport.TextSize = quickTeleport.TextSize *
quickTeleport.Font = .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)made with Deepseek AI (many bugs) and description English: Nexus Tracker is a universal ESP tool that highlights important objects in the game: bosses (Chara, Sukuna), crates, portals, tools, and notes. Each object type has a unique visual style with health bars, distance indicators, and teleport buttons. Features include smooth notifications, customizable settings, and a "Return" function to go back to your previous position after teleporting. Perfect for tracking events and bosses effortlessly. Whats new: Visual enhancements: customizable colors for different object types, scale and transparency of ESP cards. When the object count exceeds a threshold (default 7), an "icon-only" mode activates to save resources. LOD (Level of Detail): automatic switching between three card detail levels based on distance. Distances for icon, brief info, and full card are adjustable. LOD is enabled by default on mobile devices. Frustum Culling: disables ESP for objects outside the camera's view. Auto-teleport to boss: automatically teleport to a spawned boss with configurable delay and warning. Enhanced favorites system: now supports favorite groups, auto-favorite keywords, and specific obje

[ALCHEMIST RELEASE] Jump Showdown