Run it
Copy the script and paste it into your executor.
targetItems = {
[] = {quantity = , category = },
[] = {quantity = , category = },
[] = {quantity = , category = },
[] = {quantity = , category = },
[] = {quantity = , category = },
[] = {quantity = , category = },
[] = {quantity = -, category = },
[] = {quantity = , category = },
[] = {quantity = , category = },
[] = {quantity = , category = },
[] = {quantity = , category = },
[] = {quantity = , category = },
[] = {quantity = , category = },
[] = {quantity = , category = },
[] = {quantity = , category = },
[] = {quantity = , category = },
[] = {quantity = , category = },
[] = {quantity = , category = },
[] = {quantity = , category = },
[] = {quantity = , category = },
[] = {quantity = , category = },
[] = {quantity = , category = },
[] = {quantity = , category = },
[] = {quantity = , category = },
[] = {quantity = , category = },
[] = {quantity = , category = },
[] = {quantity = , category = },
[] = {quantity = , category = },
[] = {quantity = , category = },
[] = {quantity = , category = },
[] = {quantity = , category = },
[] = {quantity = , category = },
[] = {quantity = , category = },
[] = {quantity = , category = },
[] = {quantity = , category = },
[] = {quantity = , category = },
[] = {quantity = , category = },
[] = {quantity = , category = },
[] = {quantity = , category = },
[] = {quantity = , category = },
[] = {quantity = , category = },
}
i = ,
targetItems[ .. i] = {quantity = , category = }
categories = {, , , , , }
COOLDOWN =
Players = :()
TweenService = :()
RunService = :()
Player = Players.LocalPlayer
canGrab =
canScan =
canDiscover =
collectedItems = {}
availableItems = {}
discoveredItems = {}
currentCategory =
playerGui = Player:()
screenGui = .()
screenGui.Name =
screenGui.Parent = playerGui
screenGui.ResetOnSpawn =
screenGui.ZIndexBehavior = .ZIndexBehavior.Sibling
mainFrame = .()
mainFrame.Size = .(, , , )
mainFrame.Position = .(, -, , -)
mainFrame.BackgroundColor3 = .(, , )
mainFrame.BorderSizePixel =
mainFrame.Draggable =
mainFrame.Active =
mainFrame.Parent = screenGui
corner = .()
corner.CornerRadius = .(, )
corner.Parent = mainFrame
shadow = .()
shadow.Name =
shadow.Image =
shadow.ImageColor3 = .(, , )
shadow.ImageTransparency =
shadow.ScaleType = .ScaleType.Slice
shadow.SliceCenter = Rect.(, , , )
shadow.Size = .(, , , )
shadow.Position = .(, -, , -)
shadow.BackgroundTransparency =
shadow.Parent = mainFrame
shadow.ZIndex = -
header = .()
header.Size = .(, , , )
header.BackgroundColor3 = .(, , )
header.BorderSizePixel =
header.Parent = mainFrame
headerCorner = .()
headerCorner.CornerRadius = .(, )
headerCorner.Parent = header
title = .()
title.Parent = header
title.Size = .(, , , )
title.Position = .(, , , )
title.BackgroundTransparency =
title.TextColor3 = .(, , )
title.Font = .Font.SourceSansSemibold
title.Text =
title.TextSize =
title.TextYAlignment = .TextYAlignment.Bottom
subtitle = .()
subtitle.Parent = header
subtitle.Size = .(, , , )
subtitle.Position = .(, , , )
subtitle.BackgroundTransparency =
subtitle.TextColor3 = .(, , )
subtitle.Font = .Font.SourceSans
subtitle.Text =
subtitle.TextSize =
subtitle.TextYAlignment = .TextYAlignment.Top
tabContainer = .()
tabContainer.Parent = mainFrame
tabContainer.Size = .(, -, , )
tabContainer.Position = .(, , , )
tabContainer.BackgroundColor3 = .(, , )
tabContainer.BorderSizePixel =
tabCorner = .()
tabCorner.CornerRadius = .(, )
tabCorner.Parent = tabContainer
tabListLayout = .()
tabListLayout.Parent = tabContainer
tabListLayout.FillDirection = .FillDirection.Horizontal
tabListLayout.Padding = .(, )
statusBar = .()
statusBar.Parent = mainFrame
statusBar.Size = .(, -, , )
statusBar.Position = .(, , , )
statusBar.BackgroundTransparency =
statusLabel = .()
statusLabel.Parent = statusBar
statusLabel.Size = .(, , , )
statusLabel.BackgroundTransparency =
statusLabel.TextColor3 = .(, , )
statusLabel.Font = .Font.SourceSans
statusLabel.Text =
statusLabel.TextSize =
statusLabel.TextXAlignment = .TextXAlignment.Left
scrollFrame = .()
scrollFrame.Parent = mainFrame
scrollFrame.Size = .(, -, , -)
scrollFrame.Position = .(, , , )
scrollFrame.BackgroundTransparency =
scrollFrame.ScrollBarThickness =
scrollFrame.ScrollBarImageColor3 = .(, , )
scrollFrame.BorderSizePixel =
scrollFrame.BottomImage =
scrollFrame.MidImage =
scrollFrame.TopImage =
listLayout = .()
listLayout.Parent = scrollFrame
listLayout.Padding = .(, )
(icon, color)
button = .()
button.Size = .(, , , )
button.BackgroundColor3 = color
button.Text = icon
button.TextSize =
button.TextColor3 = .(, , )
button.AutoButtonColor =
corner = .()
corner.CornerRadius = .(, )
corner.Parent = button
button.MouseButton1Down:(()
button.Size = .(, , , )
)
button.MouseButton1Up:(()
button.Size = .(, , , )
)
button
updateItemDisplay
()
canDiscover
canDiscover =
discoveredItems = {}
newItemsFound =
statusLabel.Text =
_, item (:())
item:() item:()
itemName = item.Name
targetItems[itemName] discoveredItems[itemName]
skipNames = {
, , , , ,
, , , ,
, , , , , ,
, , , , , ,
, , , , ,
, , , ,
}
shouldSkip =
_, skipName (skipNames)
itemName == skipName itemName:() itemName:()
shouldSkip =
shouldSkip itemName ~= #itemName >
discoveredItems[itemName] = (discoveredItems[itemName] ) +
newItemsFound = newItemsFound +
newItemsFound >
statusLabel.Text = .. newItemsFound ..
itemName, count (discoveredItems)
targetItems[itemName]
targetItems[itemName] = {quantity = , category = }
availableItems[itemName] = count
()
statusLabel.Text =
.(()
.()
canDiscover =
)
(itemName)
character = Player.Character
character character:()
statusLabel.Text =
targetPosition = character.HumanoidRootPart.CFrame
itemsFound =
itemsMoved =
itemData = targetItems[itemName] {quantity = }
targetCount = itemData.quantity
collectedCount =
statusLabel.Text = .. itemName ..
_, item (:())
item.Name == itemName
targetCount == - collectedCount < targetCount
itemsFound = itemsFound +
collectedCount = collectedCount +
success =
item:()
item.Anchored
item.Anchored =
item.CFrame = targetPosition * .(.(-, ), , .(-, ))
success =
item:()
primaryPart = item.PrimaryPart item:()
primaryPart
primaryPart.Anchored
primaryPart.Anchored =
item.PrimaryPart
item:(targetPosition * .(.(-, ), , .(-, )))
primaryPart.CFrame = targetPosition * .(.(-, ), , .(-, ))
success =
success
itemsMoved = itemsMoved +
targetCount ~= - collectedCount >= targetCount
statusLabel.Text = .. itemName .. .. itemsMoved .. .. itemsFound ..
.(()
.()
()
)
(itemName, found, target)
entry = .()
entry.Name = itemName ..
entry.Size = .(, -, , )
entry.BackgroundColor3 = .(, , )
entry.BorderSizePixel =
entry.Text =
entry.AutoButtonColor =
entry.Parent = scrollFrame
entryCorner = .()
entryCorner.CornerRadius = .(, )
entryCorner.Parent = entry
itemData = targetItems[itemName] {quantity = , category = }
displayTarget = itemData.quantity
entry.MouseButton1Click:(()
found >
(itemName)
)
itemLabel = .()
itemLabel.Parent = entry
itemLabel.Size = .(, , , )
itemLabel.Position = .(, , , )
itemLabel.BackgroundTransparency =
itemLabel.TextColor3 = .(, , )
itemLabel.Font = .Font.SourceSans
itemLabel.Text = itemName
itemLabel.TextSize =
itemLabel.TextXAlignment = .TextXAlignment.Left
itemLabel.ClipsDescendants =
countLabel = .()
countLabel.Parent = entry
countLabel.Size = .(, -, , )
countLabel.Position = .(, , , )
countLabel.BackgroundTransparency =
countLabel.Font = .Font.SourceSansSemibold
countLabel.TextSize =
countLabel.TextXAlignment = .TextXAlignment.Right
found ==
countLabel.Text = .. (displayTarget == - displayTarget)
countLabel.TextColor3 = .(, , )
itemLabel.TextColor3 = .(, , )
entry.BackgroundColor3 = .(, , )
displayTarget == -
countLabel.Text = found ..
countLabel.TextColor3 = .(, , )
found >= displayTarget
countLabel.Text = found .. .. displayTarget ..
countLabel.TextColor3 = .(, , )
countLabel.Text = found .. .. displayTarget
countLabel.TextColor3 = .(, , )
entry.MouseEnter:(()
found >
entry.BackgroundColor3 = .(, , )
)
entry.MouseLeave:(()
entry.BackgroundColor3 = found > .(, , ) .(, , )
)
entry
updateItemDisplay = ()
_, child (scrollFrame:())
child:() child.Name:()
child:()
itemName, itemData (targetItems)
currentCategory == itemData.category == currentCategory
foundCount = availableItems[itemName]
(itemName, foundCount, itemData.quantity)
scrollFrame.CanvasSize = .(, , , listLayout.AbsoluteContentSize.Y + )
()
canScan
canScan =
availableItems = {}
totalItems =
statusLabel.Text =
(container, containerName)
_, item (container:())
targetItems[item.Name]
availableItems[item.Name] = (availableItems[item.Name] ) +
totalItems = totalItems +
(, )
itemContainers = :() :() :()
itemContainers
(itemContainers, )
statusLabel.Text = .. totalItems ..
()
.(()
.()
canScan =
)
()
canGrab
canGrab =
character = Player.Character
character character:()
statusLabel.Text =
canGrab =
targetPosition = character.HumanoidRootPart.CFrame
itemsFound =
itemsMoved =
itemsCounted = {}
statusLabel.Text =
itemName, _ (targetItems)
itemsCounted[itemName] =
_, item (:())
targetItems[item.Name]
itemName = item.Name
targetCount = targetItems[itemName].quantity
targetCount == - itemsCounted[itemName] < targetCount
itemsFound = itemsFound +
itemsCounted[itemName] = itemsCounted[itemName] +
success =
item:()
item.Anchored
item.Anchored =
item.CFrame = targetPosition * .(.(-, ), , .(-, ))
success =
item:()
primaryPart = item.PrimaryPart item:()
primaryPart
primaryPart.Anchored
primaryPart.Anchored =
item.PrimaryPart
item:(targetPosition * .(.(-, ), , .(-, )))
primaryPart.CFrame = targetPosition * .(.(-, ), , .(-, ))
success =
success
itemsMoved = itemsMoved +
statusLabel.Text = .. itemsMoved .. .. itemsFound ..
.(()
.(COOLDOWN)
canGrab =
()
)
(name)
button = .()
button.Name = name ..
button.Size = .(/#categories, , , )
button.BackgroundColor3 = name == .(, , ) .(, , )
button.TextColor3 = name == .(, , ) .(, , )
button.Font = .Font.SourceSansSemibold
button.Text = name
button.TextSize =
button.AutoButtonColor =
button.BorderSizePixel =
button.Parent = tabContainer
buttonCorner = .()
buttonCorner.CornerRadius = .(, )
buttonCorner.Parent = button
button.MouseButton1Click:(()
_, btn (tabContainer:())
btn:()
btn.BackgroundColor3 = .(, , )
btn.TextColor3 = .(, , )
button.BackgroundColor3 = .(, , )
button.TextColor3 = .(, , )
currentCategory = name
()
)
button
_, cat (categories)
(cat)
buttonContainer = .()
buttonContainer.Parent = mainFrame
buttonContainer.Size = .(, -, , )
buttonContainer.Position = .(, , , )
buttonContainer.BackgroundTransparency =
buttonLayout = .()
buttonLayout.Parent = buttonContainer
buttonLayout.FillDirection = .FillDirection.Horizontal
buttonLayout.Padding = .(, )
buttonLayout.HorizontalAlignment = .HorizontalAlignment.Center
scanButton = (, .(, , ))
scanButton.Parent = buttonContainer
scanButton.MouseButton1Click:(scanWorkspaceItems)
discoverButton = (, .(, , ))
discoverButton.Parent = buttonContainer
discoverButton.MouseButton1Click:(discoverNewItems)
grabButton = (, .(, , ))
grabButton.Parent = buttonContainer
grabButton.MouseButton1Click:(bringItemsToPlayer)
.(()
.()
()
)
()
( .. (#targetItems) .. )
()
()
()
99 Nights in the Forest 🔦