dats-scythe

Untitled

Feb 3rd, 2026 (edited)
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.49 KB | None | 0 0
  1. local TweenService = game:GetService("TweenService")
  2.  
  3. local ItemTab = Window:CreateTab("Item Tools", 4483362458)
  4.  
  5. local ScannedItems = {}
  6. local ItemESPEnabled = false
  7. local ItemESPObjects = {}
  8. local ItemSearchText = ""
  9.  
  10. local function IsItem(obj)
  11. if obj:IsA("Tool") then return true end
  12. local keywords = {
  13. "gold", "silver", "bonds", "bond", "money", "coal",
  14. "weapon", "gun", "sword", "knife", "pistol", "rifle", "shotgun", "katana", "jade katana",
  15. "spear", "crate", "orb",
  16. "treasure", "ammo", "bottle"
  17. }
  18. local lname = obj.Name:lower()
  19. for _, kw in ipairs(keywords) do
  20. if lname:find(kw) then
  21. return true
  22. end
  23. end
  24. -- Additional check for interactable items (universal scan enhancement)
  25. if obj:FindFirstChildWhichIsA("ProximityPrompt") or obj:FindFirstChildWhichIsA("ClickDetector") then
  26. return true
  27. end
  28. return false
  29. end
  30.  
  31. local function ScanItems()
  32. ScannedItems = {}
  33. for _, obj in ipairs(workspace:GetDescendants()) do
  34. if IsItem(obj) then
  35. table.insert(ScannedItems, obj)
  36. end
  37. end
  38. end
  39.  
  40. local function EnableItemESP()
  41. if ItemESPEnabled then
  42. for _, item in ipairs(ScannedItems) do
  43. if not ItemESPObjects[item] then
  44. local adornee =
  45. item:IsA("Model") and (item.PrimaryPart or item:FindFirstChildWhichIsA("BasePart"))
  46. or item:IsA("BasePart") and item
  47.  
  48. if adornee then
  49. local gui = Instance.new("BillboardGui")
  50. gui.Adornee = adornee
  51. gui.Size = UDim2.new(0, 120, 0, 40)
  52. gui.StudsOffset = Vector3.new(0, 2, 0)
  53. gui.AlwaysOnTop = true
  54. gui.Parent = game.CoreGui
  55.  
  56. local txt = Instance.new("TextLabel", gui)
  57. txt.Size = UDim2.new(1,0,1,0)
  58. txt.BackgroundTransparency = 1
  59. txt.TextColor3 = Color3.new(1,1,0)
  60. txt.TextScaled = true
  61. txt.Text = item.Name
  62.  
  63. ItemESPObjects[item] = gui
  64. end
  65. end
  66. end
  67. else
  68. for _, gui in pairs(ItemESPObjects) do
  69. gui:Destroy()
  70. end
  71. ItemESPObjects = {}
  72. end
  73. end
  74.  
  75. local SelectedItemESPEnabled = false
  76. local SelectedItemESPObjects = {}
  77. local SelectedItemNames = {}
  78.  
  79. local function EnableSelectedItemESP()
  80. for _, gui in pairs(SelectedItemESPObjects) do gui:Destroy() end
  81. SelectedItemESPObjects = {}
  82. if SelectedItemESPEnabled and #SelectedItemNames > 0 then
  83. for _, item in ipairs(ScannedItems) do
  84. if table.find(SelectedItemNames, item.Name) then
  85. local adornee =
  86. item:IsA("Model") and (item.PrimaryPart or item:FindFirstChildWhichIsA("BasePart"))
  87. or item:IsA("BasePart") and item
  88.  
  89. if adornee then
  90. local gui = Instance.new("BillboardGui")
  91. gui.Adornee = adornee
  92. gui.Size = UDim2.new(0, 120, 0, 40)
  93. gui.StudsOffset = Vector3.new(0, 2, 0)
  94. gui.AlwaysOnTop = true
  95. gui.Parent = game.CoreGui
  96.  
  97. local txt = Instance.new("TextLabel", gui)
  98. txt.Size = UDim2.new(1,0,1,0)
  99. txt.BackgroundTransparency = 1
  100. txt.TextColor3 = Color3.new(0,1,0)
  101. txt.TextScaled = true
  102. txt.Text = item.Name .. " (Selected)"
  103.  
  104. SelectedItemESPObjects[item] = gui
  105. end
  106. end
  107. end
  108. end
  109. end
  110.  
  111. coroutine.wrap(function()
  112. while task.wait(1) do
  113. if ItemESPEnabled then
  114. EnableItemESP()
  115. end
  116. if SelectedItemESPEnabled then
  117. EnableSelectedItemESP()
  118. end
  119. end
  120. end)()
  121.  
  122. local function GetItemRoot(item)
  123. if item:IsA("Tool") then
  124. return item:FindFirstChild("Handle")
  125. elseif item:IsA("Model") then
  126. return item.PrimaryPart or item:FindFirstChildWhichIsA("BasePart")
  127. elseif item:IsA("BasePart") then
  128. return item
  129. end
  130. end
  131.  
  132. local function TeleportToItem(item)
  133. local root = GetItemRoot(item)
  134. local char = game.Players.LocalPlayer.Character
  135. if root and char and char:FindFirstChild("HumanoidRootPart") then
  136. local tweenInfo = TweenInfo.new(TweenDuration, Enum.EasingStyle.Linear)
  137. local goal = {CFrame = root.CFrame * CFrame.new(0,0,-3)}
  138. local tween = TweenService:Create(char.HumanoidRootPart, tweenInfo, goal)
  139. tween:Play()
  140. end
  141. end
  142.  
  143. local function BringItem(item)
  144. local root = GetItemRoot(item)
  145. local pos = GetBringPosition()
  146. if root and pos then
  147. root.CFrame = CFrame.new(pos)
  148. end
  149. end
  150.  
  151. local function BringAllItems()
  152. local pos = GetBringPosition()
  153. if not pos then return end
  154. for _, item in ipairs(ScannedItems) do
  155. local root = GetItemRoot(item)
  156. if root then
  157. root.CFrame = CFrame.new(pos)
  158. end
  159. end
  160. end
  161.  
  162. local function GetFilteredItems()
  163. local set = {}
  164. local list = {}
  165. for _, item in ipairs(ScannedItems) do
  166. if (ItemSearchText == "" or item.Name:lower():find(ItemSearchText)) and not set[item.Name] then
  167. set[item.Name] = true
  168. table.insert(list, item.Name)
  169. end
  170. end
  171. return list
  172. end
  173.  
  174.  
  175. ItemTab:CreateToggle({
  176. Name = "ESP Items",
  177. CurrentValue = false,
  178. Callback = function(v)
  179. ItemESPEnabled = v
  180. EnableItemESP()
  181. end
  182. })
  183.  
  184. ItemTab:CreateToggle({
  185. Name = "ESP Selected Item",
  186. CurrentValue = false,
  187. Callback = function(v)
  188. SelectedItemESPEnabled = v
  189. EnableSelectedItemESP()
  190. end
  191. })
  192.  
  193. ItemTab:CreateInput({
  194. Name = "Search Items",
  195. PlaceholderText = "coin / box / food / money",
  196. Callback = function(txt)
  197. ItemSearchText = txt:lower()
  198. ItemDropdown:Refresh(GetFilteredItems())
  199. end
  200. })
  201.  
  202. local ItemDropdown = ItemTab:CreateDropdown({
  203. Name = "Select Item",
  204. Options = {},
  205. CurrentOption = {},
  206. MultipleOptions = true,
  207. Callback = function(opt)
  208. SelectedItemNames = opt
  209. if SelectedItemESPEnabled then
  210. EnableSelectedItemESP()
  211. end
  212. end
  213. })
  214.  
  215. ItemTab:CreateButton({
  216. Name = "Teleport To Item",
  217. Callback = function()
  218. if #SelectedItemNames > 0 then
  219. for _, item in ipairs(ScannedItems) do
  220. if table.find(SelectedItemNames, item.Name) then
  221. TeleportToItem(item)
  222. break -- Teleport to first matching item only
  223. end
  224. end
  225. end
  226. end
  227. })
  228.  
  229. ItemTab:CreateButton({
  230. Name = "Bring Selected Items",
  231. Callback = function()
  232. if #SelectedItemNames > 0 then
  233. for _, item in ipairs(ScannedItems) do
  234. if table.find(SelectedItemNames, item.Name) then
  235. BringItem(item)
  236. end
  237. end
  238. end
  239. end
  240. })
  241.  
  242. ItemTab:CreateButton({
  243. Name = "Bring ALL Items",
  244. Callback = BringAllItems
  245. })
  246.  
  247. local AutoPickupEnabled = false
  248. local AutoPickupRange = 20
  249.  
  250. local function AutoPickupLoop()
  251. while AutoPickupEnabled do
  252. local char = game.Players.LocalPlayer.Character
  253. if char and char:FindFirstChild("HumanoidRootPart") then
  254. local pos = char.HumanoidRootPart.Position
  255. local rootPart = char.HumanoidRootPart
  256. for _, item in ipairs(ScannedItems) do
  257. local root = GetItemRoot(item)
  258. if root and (pos - root.Position).Magnitude <= AutoPickupRange then
  259. -- Teleport to player
  260. root.CFrame = rootPart.CFrame
  261. -- Fire prompt if exists
  262. local prompt = item:FindFirstChildOfClass("ProximityPrompt", true)
  263. if prompt then
  264. fireproximityprompt(prompt)
  265. end
  266. -- If tool, try to parent to backpack
  267. if item:IsA("Tool") then
  268. item.Parent = game.Players.LocalPlayer.Backpack
  269. end
  270. end
  271. end
  272. end
  273. wait(0.1)
  274. end
  275. end
  276.  
  277. ItemTab:CreateToggle({
  278. Name = "Auto Pickup Items",
  279. CurrentValue = false,
  280. Callback = function(Value)
  281. AutoPickupEnabled = Value
  282. if Value then
  283. coroutine.wrap(AutoPickupLoop)()
  284. end
  285. end,
  286. })
  287.  
  288. ItemTab:CreateInput({
  289. Name = "Auto Pickup Range",
  290. PlaceholderText = "Enter range (10 - 100)",
  291. RemoveTextAfterFocusLost = false,
  292. Callback = function(Text)
  293. local num = tonumber(Text)
  294. if num then
  295. AutoPickupRange = math.clamp(num, 10, 100)
  296. end
  297. end,
  298. })
  299.  
  300. -- ==================== SCAN TAB ====================
  301. local AutoScanInterval = 5
  302. local AutoScanNPCsEnabled = false
  303. local AutoScanItemsEnabled = false
  304. local AutoScanPlayersEnabled = false
  305.  
  306. ScanTab:CreateButton({
  307. Name = "Scan NPCs",
  308. Callback = function()
  309. ScanNPCs()
  310. UpdateNPCList()
  311. if NPCDropdown then NPCDropdown:Refresh(NPCList) end
  312. end,
  313. })
  314.  
  315. ScanTab:CreateToggle({
  316. Name = "Auto Scan NPCs",
  317. CurrentValue = false,
  318. Callback = function(Value)
  319. AutoScanNPCsEnabled = Value
  320. if Value then
  321. coroutine.wrap(function()
  322. while AutoScanNPCsEnabled do
  323. ScanNPCs()
  324. UpdateNPCList()
  325. if NPCDropdown then NPCDropdown:Refresh(NPCList) end
  326. wait(AutoScanInterval)
  327. end
  328. end)()
  329. end
  330. end,
  331. })
  332.  
  333. ScanTab:CreateButton({
  334. Name = "Scan Items",
  335. Callback = function()
  336. ScanItems()
  337. if ItemDropdown then ItemDropdown:Refresh(GetFilteredItems()) end
  338. end,
  339. })
  340.  
  341. ScanTab:CreateToggle({
  342. Name = "Auto Scan Items",
  343. CurrentValue = false,
  344. Callback = function(Value)
  345. AutoScanItemsEnabled = Value
  346. if Value then
  347. coroutine.wrap(function()
  348. while AutoScanItemsEnabled do
  349. ScanItems()
  350. if ItemDropdown then ItemDropdown:Refresh(GetFilteredItems()) end
  351. wait(AutoScanInterval)
  352. end
  353. end)()
  354. end
  355. end,
  356. })
  357.  
Advertisement
Add Comment
Please, Sign In to add comment