sebi87622

Untitled

Jan 6th, 2026
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 30.57 KB | None | 0 0
  1. -- Load Fluent UI Library (Super Modern & Animated!)
  2. local Fluent = loadstring(game:HttpGet("https://github.com/dawid-scripts/Fluent/releases/latest/download/main.lua"))()
  3. local SaveManager = loadstring(game:HttpGet("https://raw.githubusercontent.com/dawid-scripts/Fluent/master/Addons/SaveManager.lua"))()
  4. local InterfaceManager = loadstring(game:HttpGet("https://raw.githubusercontent.com/dawid-scripts/Fluent/master/Addons/InterfaceManager.lua"))()
  5.  
  6. -- Create Window
  7. local Window = Fluent:CreateWindow({
  8. Title = "🎣 Fishing Brainrots | Made by SebiLautarul",
  9. SubTitle = "Auto Egg & Auto Buy & Auto Sell System",
  10. TabWidth = 160,
  11. Size = UDim2.fromOffset(600, 480),
  12. Acrylic = true,
  13. Theme = "Darker",
  14. MinimizeKey = Enum.KeyCode.RightControl
  15. })
  16.  
  17. -- Create Tabs
  18. local Tabs = {
  19. Main = Window:AddTab({ Title = "πŸ₯š Auto Farm", Icon = "" }),
  20. AutoBuy = Window:AddTab({ Title = "πŸ’° Auto Buy", Icon = "" }),
  21. AutoSell = Window:AddTab({ Title = "πŸ“¦ Auto Sell", Icon = "" }),
  22. Settings = Window:AddTab({ Title = "βš™οΈ Settings", Icon = "" }),
  23. Credits = Window:AddTab({ Title = "ℹ️ Info", Icon = "" })
  24. }
  25.  
  26. -- Variables
  27. local autoSpawning = false
  28. local autoBuying = false
  29. local autoSelling = false
  30. local selectedRarity = "Mythic"
  31. local buyRarity = "Secret"
  32. local spawnDelay = 0.1
  33. local sellDelay = 1
  34. local attempts = 0
  35. local totalBought = 0
  36. local totalSold = 0
  37.  
  38. -- Rarity hierarchy
  39. local rarityOrder = {
  40. ["Common"] = 1,
  41. ["Rare"] = 2,
  42. ["Epic"] = 3,
  43. ["Legendary"] = 4,
  44. ["Mythic"] = 5,
  45. ["Secret"] = 6,
  46. ["Exotic"] = 7,
  47. ["Divine"] = 8
  48. }
  49.  
  50. -- Services
  51. local Players = game:GetService("Players")
  52. local ReplicatedStorage = game:GetService("ReplicatedStorage")
  53. local TweenService = game:GetService("TweenService")
  54. local VirtualInputManager = game:GetService("VirtualInputManager")
  55. local player = Players.LocalPlayer
  56.  
  57. -- Remotes
  58. local eggRemote = ReplicatedStorage:WaitForChild("Shared"):WaitForChild("Packages"):WaitForChild("Networker"):WaitForChild("RF/RequestEggSpawn")
  59. local buyEggRemote = ReplicatedStorage:WaitForChild("Shared"):WaitForChild("Packages"):WaitForChild("Networker"):WaitForChild("RF/BuyEgg")
  60. local pickupBoxesRemote = ReplicatedStorage:WaitForChild("Shared"):WaitForChild("Packages"):WaitForChild("Networker"):WaitForChild("RE/PickupBoxes")
  61.  
  62. -- Function to find player's plot
  63. local function findPlayerPlot()
  64. local coreObjects = workspace:FindFirstChild("CoreObjects")
  65. if not coreObjects then
  66. print(" [Plot Finder] βœ— CoreObjects not found")
  67. return nil
  68. end
  69.  
  70. local plots = coreObjects:FindFirstChild("Plots")
  71. if not plots then
  72. print(" [Plot Finder] βœ— Plots folder not found")
  73. return nil
  74. end
  75.  
  76. -- Search through all plots to find the one that belongs to the player
  77. for _, plot in pairs(plots:GetChildren()) do
  78. -- Method 1: Check for Owner value/attribute
  79. local owner = plot:FindFirstChild("Owner")
  80. if owner then
  81. if owner:IsA("StringValue") and owner.Value == player.Name then
  82. print(" [Plot Finder] βœ“ Found plot (StringValue):", plot.Name)
  83. return plot
  84. elseif owner:IsA("ObjectValue") and owner.Value == player then
  85. print(" [Plot Finder] βœ“ Found plot (ObjectValue):", plot.Name)
  86. return plot
  87. end
  88. end
  89.  
  90. -- Method 2: Check for Owner attribute
  91. local ownerAttr = plot:GetAttribute("Owner")
  92. if ownerAttr == player.Name or ownerAttr == player.UserId then
  93. print(" [Plot Finder] βœ“ Found plot (Attribute):", plot.Name)
  94. return plot
  95. end
  96.  
  97. -- Method 3: Check if plot name contains player name or UserId
  98. if string.find(plot.Name:lower(), player.Name:lower()) or
  99. string.find(plot.Name, tostring(player.UserId)) then
  100. print(" [Plot Finder] βœ“ Found plot (Name match):", plot.Name)
  101. return plot
  102. end
  103.  
  104. -- Method 4: Deep search for any references to player
  105. for _, child in pairs(plot:GetDescendants()) do
  106. if child:IsA("StringValue") and child.Value == player.Name then
  107. print(" [Plot Finder] βœ“ Found plot (Deep search):", plot.Name)
  108. return plot
  109. end
  110. if child:IsA("ObjectValue") and child.Value == player then
  111. print(" [Plot Finder] βœ“ Found plot (Deep ObjectValue):", plot.Name)
  112. return plot
  113. end
  114. end
  115. end
  116.  
  117. print(" [Plot Finder] βœ— Could not find player's plot")
  118. return nil
  119. end
  120.  
  121. -- Function to get merchant position from player's plot
  122. local function getMerchantPosition()
  123. local playerPlot = findPlayerPlot()
  124.  
  125. if not playerPlot then
  126. warn(" [Merchant Finder] βœ— Could not find player's plot")
  127. return nil
  128. end
  129.  
  130. -- Look for SellPrompt in the plot
  131. local sellPrompt = playerPlot:FindFirstChild("SellPrompt")
  132.  
  133. if sellPrompt then
  134. -- Check if SellPrompt itself is a BasePart
  135. if sellPrompt:IsA("BasePart") then
  136. print(" [Merchant Finder] βœ“ Found merchant (SellPrompt is a Part) at plot:", playerPlot.Name)
  137. return sellPrompt.CFrame
  138. end
  139.  
  140. -- If it's a model, try to get its primary part or first BasePart
  141. if sellPrompt:IsA("Model") then
  142. local primaryPart = sellPrompt.PrimaryPart or sellPrompt:FindFirstChildWhichIsA("BasePart")
  143. if primaryPart then
  144. print(" [Merchant Finder] βœ“ Found merchant (Model) at plot:", playerPlot.Name)
  145. return primaryPart.CFrame
  146. end
  147. end
  148.  
  149. -- Try to find a BasePart child
  150. local basePart = sellPrompt:FindFirstChildWhichIsA("BasePart")
  151. if basePart then
  152. print(" [Merchant Finder] βœ“ Found merchant (BasePart child) at plot:", playerPlot.Name)
  153. return basePart.CFrame
  154. end
  155. end
  156.  
  157. -- Alternative: Search for any part named "Merchant" or "Sell"
  158. for _, child in pairs(playerPlot:GetDescendants()) do
  159. if child:IsA("BasePart") then
  160. local name = child.Name:lower()
  161. if name:find("merchant") or name:find("sell") or name:find("shop") then
  162. print(" [Merchant Finder] βœ“ Found merchant part:", child.Name)
  163. return child.CFrame
  164. end
  165. end
  166. end
  167.  
  168. warn(" [Merchant Finder] βœ— Could not find merchant position in plot")
  169. return nil
  170. end
  171.  
  172. -- Get player's cash
  173. local function getPlayerCash()
  174. local leaderstats = player:FindFirstChild("leaderstats")
  175. if leaderstats then
  176. local cash = leaderstats:FindFirstChild("Cash")
  177. if cash then
  178. local exactValue = cash:GetAttribute("ExactValue")
  179. if exactValue then
  180. return tonumber(exactValue) or 0
  181. else
  182. local cashValue = cash.Value
  183. return tonumber(cashValue) or 0
  184. end
  185. end
  186. end
  187. return 0
  188. end
  189.  
  190. -- Variable to track eggs and when they were first seen
  191. local eggTracker = {}
  192. local checkedEggs = {}
  193.  
  194. -- Function to check if we got the EXACT desired rarity
  195. local function checkRarityExact(currentRarity, targetRarity)
  196. return currentRarity == targetRarity
  197. end
  198.  
  199. -- Function to check if we got the desired rarity or better (for auto buy)
  200. local function checkRarityOrBetter(currentRarity, targetRarity)
  201. local currentValue = rarityOrder[currentRarity] or 0
  202. local desiredValue = rarityOrder[targetRarity] or 0
  203. return currentValue >= desiredValue
  204. end
  205.  
  206. -- Function to get egg price and rarity
  207. local function getEggInfo(egg)
  208. local rarity = nil
  209. local price = nil
  210.  
  211. for _, descendant in pairs(egg:GetDescendants()) do
  212. -- Find Rarity
  213. if descendant.Name == "Rarity" and descendant:IsA("TextLabel") then
  214. local rarityText = descendant.Text
  215. for rarityName, _ in pairs(rarityOrder) do
  216. if string.find(rarityText:lower(), rarityName:lower()) then
  217. rarity = rarityName
  218. end
  219. end
  220. end
  221.  
  222. -- Find Price
  223. if descendant:IsA("TextLabel") and (
  224. descendant.Name:lower():find("price") or
  225. descendant.Name:lower():find("cost") or
  226. descendant.Name:lower():find("cash") or
  227. descendant.Name:lower():find("robux") or
  228. descendant.Name:lower():find("value")
  229. ) then
  230. local priceText = descendant.Text
  231.  
  232. -- First try to match abbreviated numbers like "50M", "1.5K", "500B"
  233. local number = priceText:match("([%d,%.]+)%s*([KkMmBbTt])")
  234.  
  235. if number then
  236. local numPart = priceText:match("([%d,%.]+)")
  237. local suffix = priceText:match("([KkMmBbTt])")
  238.  
  239. numPart = numPart:gsub(",", "")
  240. numPart = tonumber(numPart)
  241.  
  242. if numPart and suffix then
  243. suffix = suffix:upper()
  244. if suffix == "K" then
  245. numPart = numPart * 1000
  246. elseif suffix == "M" then
  247. numPart = numPart * 1000000
  248. elseif suffix == "B" then
  249. numPart = numPart * 1000000000
  250. elseif suffix == "T" then
  251. numPart = numPart * 1000000000000
  252. end
  253. price = numPart
  254. end
  255. else
  256. local numStr = priceText:match("([%d,]+)")
  257. if numStr then
  258. numStr = numStr:gsub(",", "")
  259. local num = tonumber(numStr)
  260. if num then
  261. price = num
  262. end
  263. end
  264. end
  265. end
  266. end
  267.  
  268. return rarity, price
  269. end
  270.  
  271. -- Function to detect egg rarity from workspace (FASTER VERSION)
  272. local function getCurrentEggRarity()
  273. local coreObjects = workspace:FindFirstChild("CoreObjects")
  274. if coreObjects then
  275. local eggsFolder = coreObjects:FindFirstChild("Eggs")
  276. if eggsFolder then
  277. local eggs = eggsFolder:GetChildren()
  278. local currentTime = tick()
  279.  
  280. -- Update tracker with current eggs
  281. local currentEggs = {}
  282. for _, egg in ipairs(eggs) do
  283. local eggName = egg.Name
  284. currentEggs[eggName] = egg
  285.  
  286. if not eggTracker[eggName] then
  287. eggTracker[eggName] = currentTime
  288. end
  289. end
  290.  
  291. -- Clean up eggs that are no longer in the folder
  292. for trackedName, _ in pairs(eggTracker) do
  293. if not currentEggs[trackedName] then
  294. eggTracker[trackedName] = nil
  295. checkedEggs[trackedName] = nil
  296. end
  297. end
  298.  
  299. -- Find the NEWEST unchecked egg
  300. local newestEgg = nil
  301. local newestTime = 0
  302.  
  303. for _, egg in ipairs(eggs) do
  304. local eggName = egg.Name
  305. local timeAdded = eggTracker[eggName]
  306.  
  307. if timeAdded and timeAdded > newestTime and not checkedEggs[eggName] then
  308. newestTime = timeAdded
  309. newestEgg = egg
  310. end
  311. end
  312.  
  313. -- FASTER: Check if egg is recent (within last 1.5 seconds instead of 2.5)
  314. if newestEgg and (currentTime - newestTime) < 1.5 then
  315. local eggName = newestEgg.Name
  316. checkedEggs[eggName] = true
  317.  
  318. local rarity, price = getEggInfo(newestEgg)
  319.  
  320. if rarity then
  321. return rarity, price, newestEgg
  322. end
  323. end
  324. end
  325. end
  326. return nil, nil, nil
  327. end
  328.  
  329. -- Auto Buy Function (IMPROVED)
  330. local function tryAutoBuy(egg, rarity, price)
  331. if not autoBuying then return false end
  332. if not rarity or not price then return false end
  333.  
  334. price = tonumber(price)
  335. if not price then
  336. print(" [Auto Buy] βœ— Invalid price")
  337. return false
  338. end
  339.  
  340. -- Check if rarity meets the buy criteria
  341. if not checkRarityOrBetter(rarity, buyRarity) then
  342. return false
  343. end
  344.  
  345. -- Check if we have enough cash
  346. local playerCash = tonumber(getPlayerCash()) or 0
  347.  
  348. if playerCash >= price then
  349. local eggName = egg.Name
  350. print(" [Auto Buy] βœ“ Attempting to buy:", eggName, "for", price)
  351.  
  352. local success, result = pcall(function()
  353. local args = {eggName, 1}
  354. return buyEggRemote:InvokeServer(unpack(args))
  355. end)
  356.  
  357. if success and (result == true or result == nil) then
  358. totalBought = totalBought + 1
  359. print(" [Auto Buy] βœ“ Purchase successful!")
  360. Fluent:Notify({
  361. Title = "πŸ’° Purchased " .. rarity .. "!",
  362. Content = eggName .. " bought! (Total: " .. totalBought .. ")",
  363. Duration = 2
  364. })
  365. task.wait(0.5)
  366. return true
  367. else
  368. print(" [Auto Buy] βœ— Purchase failed:", result)
  369. end
  370. end
  371.  
  372. return false
  373. end
  374.  
  375. -- Tween character to position
  376. local function tweenToPosition(targetCFrame)
  377. local character = player.Character
  378. if not character then return false end
  379.  
  380. local humanoidRootPart = character:FindFirstChild("HumanoidRootPart")
  381. if not humanoidRootPart then return false end
  382.  
  383. local distance = (humanoidRootPart.Position - targetCFrame.Position).Magnitude
  384. local speed = 50
  385. local duration = distance / speed
  386.  
  387. -- Create tween
  388. local tweenInfo = TweenInfo.new(
  389. duration,
  390. Enum.EasingStyle.Linear,
  391. Enum.EasingDirection.InOut
  392. )
  393.  
  394. local tween = TweenService:Create(humanoidRootPart, tweenInfo, {CFrame = targetCFrame})
  395.  
  396. tween:Play()
  397. tween.Completed:Wait()
  398.  
  399. return true
  400. end
  401.  
  402. -- Press E key
  403. local function pressE()
  404. local success = pcall(function()
  405. VirtualInputManager:SendKeyEvent(true, Enum.KeyCode.E, false, game)
  406. task.wait(0.05)
  407. VirtualInputManager:SendKeyEvent(false, Enum.KeyCode.E, false, game)
  408. end)
  409. return success
  410. end
  411.  
  412. -- Find and trigger ProximityPrompt in player's plot
  413. local function triggerMerchantPrompt()
  414. local playerPlot = findPlayerPlot()
  415.  
  416. if not playerPlot then
  417. warn(" [Auto Sell] βœ— Could not find player's plot")
  418. return false
  419. end
  420.  
  421. print(" [Auto Sell] Searching in plot:", playerPlot.Name)
  422.  
  423. -- Find SellPrompt in the player's plot
  424. local sellPrompt = playerPlot:FindFirstChild("SellPrompt")
  425. if sellPrompt then
  426. local proximityPrompt = sellPrompt:FindFirstChild("ProximityPrompt")
  427. if proximityPrompt and proximityPrompt.Enabled then
  428. print(" [Auto Sell] Found ProximityPrompt at:", proximityPrompt:GetFullName())
  429.  
  430. -- Method 1: Try fireproximityprompt
  431. local method1 = pcall(function()
  432. fireproximityprompt(proximityPrompt)
  433. end)
  434.  
  435. if method1 then
  436. print(" [Auto Sell] Method 1 (fireproximityprompt) executed")
  437. task.wait(0.2)
  438. return true
  439. end
  440.  
  441. -- Method 2: Try triggering the Triggered event
  442. local method2 = pcall(function()
  443. proximityPrompt.Triggered:Fire(player)
  444. end)
  445.  
  446. if method2 then
  447. print(" [Auto Sell] Method 2 (Triggered event) executed")
  448. task.wait(0.2)
  449. return true
  450. end
  451.  
  452. -- Method 3: Try directly invoking PromptButtonHoldBegan/Ended
  453. local method3 = pcall(function()
  454. proximityPrompt.PromptButtonHoldBegan:Fire()
  455. task.wait(0.1)
  456. proximityPrompt.PromptButtonHoldEnded:Fire()
  457. end)
  458.  
  459. if method3 then
  460. print(" [Auto Sell] Method 3 (ButtonHold events) executed")
  461. task.wait(0.2)
  462. return true
  463. end
  464. end
  465. end
  466.  
  467. -- Method 4: Press E key as final backup
  468. print(" [Auto Sell] Using E key method as backup")
  469. pressE()
  470. task.wait(0.2)
  471. return true
  472. end
  473.  
  474. -- Auto Sell Function (FIXED WITH DYNAMIC PLOT DETECTION)
  475. local function performAutoSell()
  476. print("=== Auto Sell Cycle ===")
  477.  
  478. -- Step 1: Pick up boxes
  479. print(" [1/3] Picking up boxes...")
  480. local pickupSuccess = pcall(function()
  481. pickupBoxesRemote:FireServer()
  482. end)
  483.  
  484. if not pickupSuccess then
  485. print(" [Auto Sell] βœ— Failed to pick up boxes")
  486. return false
  487. end
  488.  
  489. task.wait(0.5)
  490.  
  491. -- Step 2: Get merchant position dynamically
  492. print(" [2/3] Finding merchant in player's plot...")
  493. local merchantCFrame = getMerchantPosition()
  494.  
  495. if not merchantCFrame then
  496. print(" [Auto Sell] βœ— Failed to find merchant position")
  497. return false
  498. end
  499.  
  500. -- Step 3: Tween to merchant
  501. print(" [3/3] Tweening to merchant...")
  502. local tweenSuccess = tweenToPosition(merchantCFrame)
  503.  
  504. if not tweenSuccess then
  505. print(" [Auto Sell] βœ— Failed to tween to merchant")
  506. return false
  507. end
  508.  
  509. task.wait(0.3)
  510.  
  511. -- Step 4: Trigger sell
  512. print(" [4/4] Selling to merchant...")
  513. local sellSuccess = triggerMerchantPrompt()
  514.  
  515. if sellSuccess then
  516. totalSold = totalSold + 1
  517. print(" [Auto Sell] βœ“ Sell cycle complete!")
  518. return true
  519. else
  520. print(" [Auto Sell] βœ— Failed to trigger merchant")
  521. return false
  522. end
  523. end
  524.  
  525. -- Auto Sell Loop (FIXED TO USE sellDelay VARIABLE)
  526. local function startAutoSell()
  527. autoSelling = true
  528.  
  529. Fluent:Notify({
  530. Title = "πŸ“¦ Auto Sell Started",
  531. Content = "Picking up boxes and selling every " .. sellDelay .. " seconds!",
  532. Duration = 3
  533. })
  534.  
  535. task.spawn(function()
  536. while autoSelling do
  537. local success = performAutoSell()
  538.  
  539. if success then
  540. Fluent:Notify({
  541. Title = "πŸ’΅ Sold!",
  542. Content = "Total sells: " .. totalSold,
  543. Duration = 1.5
  544. })
  545. end
  546.  
  547. task.wait(sellDelay) -- FIXED: Now uses the sellDelay variable instead of hardcoded 1
  548. end
  549. end)
  550. end
  551.  
  552. local function stopAutoSell()
  553. autoSelling = false
  554. Fluent:Notify({
  555. Title = "⏸️ Auto Sell Stopped",
  556. Content = "Total sells: " .. totalSold,
  557. Duration = 3
  558. })
  559. end
  560.  
  561. -- IMPROVED Auto Spawn Function - CONTINUOUS LOOP
  562. local function startAutoSpawn()
  563. autoSpawning = true
  564. attempts = 0
  565.  
  566. Fluent:Notify({
  567. Title = "πŸš€ Auto Farm Started",
  568. Content = "Farming for " .. selectedRarity .. "+ eggs!",
  569. Duration = 3
  570. })
  571.  
  572. task.spawn(function()
  573. while autoSpawning do
  574. attempts = attempts + 1
  575.  
  576. local success = pcall(function()
  577. eggRemote:InvokeServer()
  578. end)
  579.  
  580. if success then
  581. task.wait(1.5)
  582.  
  583. local detectedRarity, price, egg = getCurrentEggRarity()
  584.  
  585. if detectedRarity then
  586. print("βœ“ DETECTED:", detectedRarity, "| Attempt:", attempts)
  587.  
  588. if checkRarityExact(detectedRarity, selectedRarity) then
  589. local bought = tryAutoBuy(egg, detectedRarity, price)
  590.  
  591. if bought or not autoBuying then
  592. Fluent:Notify({
  593. Title = "πŸŽ‰ Found " .. detectedRarity .. "!",
  594. Content = (bought and "Bought! " or "") .. "Attempt #" .. attempts,
  595. Duration = 3
  596. })
  597. end
  598. else
  599. tryAutoBuy(egg, detectedRarity, price)
  600. end
  601. end
  602. else
  603. warn("Failed to spawn egg")
  604. end
  605.  
  606. task.wait(spawnDelay)
  607. end
  608. end)
  609. end
  610.  
  611. local function stopAutoSpawn()
  612. autoSpawning = false
  613. Fluent:Notify({
  614. Title = "⏸️ Stopped",
  615. Content = "Total attempts: " .. attempts .. " | Total bought: " .. totalBought,
  616. Duration = 3
  617. })
  618. end
  619.  
  620. -- === MAIN TAB (AUTO SPAWN) ===
  621.  
  622. Tabs.Main:AddParagraph({
  623. Title = "πŸ₯š Auto Egg Spawner",
  624. Content = "Continuously spawn eggs and auto-buy when you get the target rarity! Will keep running until you turn it off."
  625. })
  626.  
  627. local AutoSpawnToggle = Tabs.Main:AddToggle("AutoSpawn", {
  628. Title = "Enable Auto Farm",
  629. Description = "Continuously spawn and farm eggs",
  630. Default = false,
  631. Callback = function(Value)
  632. if Value then
  633. startAutoSpawn()
  634. else
  635. stopAutoSpawn()
  636. end
  637. end
  638. })
  639.  
  640. local RarityDropdown = Tabs.Main:AddDropdown("RaritySelect", {
  641. Title = "Target Rarity",
  642. Description = "Auto-buy when this rarity appears",
  643. Values = {"Common", "Rare", "Epic", "Legendary", "Mythic", "Secret", "Exotic", "Divine"},
  644. Default = 5,
  645. Callback = function(Value)
  646. selectedRarity = Value
  647. Fluent:Notify({
  648. Title = "βœ… Updated",
  649. Content = "Will buy " .. Value .. " when found",
  650. Duration = 2
  651. })
  652. end
  653. })
  654.  
  655. local SpeedSlider = Tabs.Main:AddSlider("SpawnDelay", {
  656. Title = "Spawn Delay",
  657. Description = "Time between spawning eggs (lower = faster)",
  658. Default = 0.1,
  659. Min = 0.05,
  660. Max = 2,
  661. Rounding = 2,
  662. Callback = function(Value)
  663. spawnDelay = Value
  664. end
  665. })
  666.  
  667. Tabs.Main:AddButton({
  668. Title = "πŸ§ͺ Test Detection",
  669. Description = "Spawn one egg and test detection",
  670. Callback = function()
  671. pcall(function() eggRemote:InvokeServer() end)
  672. Fluent:Notify({
  673. Title = "πŸ§ͺ Testing",
  674. Content = "Check console (F9) for results",
  675. Duration = 2
  676. })
  677. task.wait(1.5)
  678. local rarity, price = getCurrentEggRarity()
  679. if rarity then
  680. Fluent:Notify({
  681. Title = "βœ“ Detected: " .. rarity,
  682. Content = "Price: " .. (price or "Unknown"),
  683. Duration = 3
  684. })
  685. end
  686. end
  687. })
  688.  
  689. Tabs.Main:AddParagraph({
  690. Title = "πŸ“Š Statistics",
  691. Content = "Attempts: 0 | Total Bought: 0"
  692. })
  693.  
  694. Tabs.Main:AddButton({
  695. Title = "πŸ”„ Reset Stats",
  696. Description = "Reset attempt and purchase counters",
  697. Callback = function()
  698. attempts = 0
  699. totalBought = 0
  700. Fluent:Notify({
  701. Title = "βœ… Stats Reset",
  702. Content = "Counters have been reset",
  703. Duration = 2
  704. })
  705. end
  706. })
  707.  
  708. -- === AUTO BUY TAB ===
  709.  
  710. Tabs.AutoBuy:AddParagraph({
  711. Title = "πŸ’° Auto Buy System",
  712. Content = "Automatically purchase eggs that meet your criteria. Works with Auto Farm!"
  713. })
  714.  
  715. local AutoBuyToggle = Tabs.AutoBuy:AddToggle("AutoBuy", {
  716. Title = "Enable Auto Buy",
  717. Description = "Automatically buy good eggs with cash",
  718. Default = false,
  719. Callback = function(Value)
  720. autoBuying = Value
  721. if Value then
  722. Fluent:Notify({
  723. Title = "πŸ’° Auto Buy Enabled",
  724. Content = "Will buy " .. buyRarity .. "+ eggs with cash",
  725. Duration = 3
  726. })
  727. else
  728. Fluent:Notify({
  729. Title = "πŸ’° Auto Buy Disabled",
  730. Content = "Auto buying turned off",
  731. Duration = 2
  732. })
  733. end
  734. end
  735. })
  736.  
  737. local BuyRarityDropdown = Tabs.AutoBuy:AddDropdown("BuyRaritySelect", {
  738. Title = "Minimum Buy Rarity",
  739. Description = "Minimum rarity to auto-purchase",
  740. Values = {"Common", "Rare", "Epic", "Legendary", "Mythic", "Secret", "Exotic", "Divine"},
  741. Default = 6,
  742. Callback = function(Value)
  743. buyRarity = Value
  744. Fluent:Notify({
  745. Title = "βœ… Updated",
  746. Content = "Will buy " .. Value .. " or better",
  747. Duration = 2
  748. })
  749. end
  750. })
  751.  
  752. Tabs.AutoBuy:AddParagraph({
  753. Title = "πŸ’΅ Current Cash",
  754. Content = "Your current cash: " .. getPlayerCash()
  755. })
  756.  
  757. Tabs.AutoBuy:AddButton({
  758. Title = "πŸ”„ Refresh Cash Display",
  759. Description = "Update current cash amount",
  760. Callback = function()
  761. Fluent:Notify({
  762. Title = "πŸ’΅ Current Cash",
  763. Content = tostring(getPlayerCash()) .. " cash",
  764. Duration = 2
  765. })
  766. end
  767. })
  768.  
  769. Tabs.AutoBuy:AddParagraph({
  770. Title = "⚠️ How It Works",
  771. Content = "Auto Buy works with Auto Farm:\nβ€’ Enable both for continuous farming & buying\nβ€’ Set your target rarity in Main tab\nβ€’ Set minimum buy rarity here\nβ€’ Script will auto-buy when conditions are met"
  772. })
  773.  
  774. -- === AUTO SELL TAB ===
  775.  
  776. Tabs.AutoSell:AddParagraph({
  777. Title = "πŸ“¦ Auto Sell System",
  778. Content = "Automatically picks up boxes, finds YOUR plot, tweens to merchant, and sells!"
  779. })
  780.  
  781. local AutoSellToggle = Tabs.AutoSell:AddToggle("AutoSell", {
  782. Title = "Enable Auto Sell",
  783. Description = "Automatically pick up and sell boxes",
  784. Default = false,
  785. Callback = function(Value)
  786. if Value then
  787. startAutoSell()
  788. else
  789. stopAutoSell()
  790. end
  791. end
  792. })
  793.  
  794. -- Sell Delay Slider (FIXED)
  795. local SellDelaySlider = Tabs.AutoSell:AddSlider("SellDelay", {
  796. Title = "Auto Sell Delay",
  797. Description = "Time between sell cycles (in seconds)",
  798. Default = 1,
  799. Min = 0.5,
  800. Max = 10,
  801. Rounding = 1,
  802. Callback = function(Value)
  803. sellDelay = Value
  804. Fluent:Notify({
  805. Title = "⏱️ Sell Delay Updated",
  806. Content = "Now selling every " .. Value .. " seconds",
  807. Duration = 2
  808. })
  809. end
  810. })
  811.  
  812. Tabs.AutoSell:AddParagraph({
  813. Title = "πŸ“Š Sell Statistics",
  814. Content = "Total Sells: 0"
  815. })
  816.  
  817. Tabs.AutoSell:AddButton({
  818. Title = "πŸ” Find My Plot",
  819. Description = "Test plot detection",
  820. Callback = function()
  821. local plot = findPlayerPlot()
  822. if plot then
  823. Fluent:Notify({
  824. Title = "βœ… Found Your Plot!",
  825. Content = "Plot name: " .. plot.Name,
  826. Duration = 3
  827. })
  828. else
  829. Fluent:Notify({
  830. Title = "❌ Plot Not Found",
  831. Content = "Check console (F9) for details",
  832. Duration = 3
  833. })
  834. end
  835. end
  836. })
  837.  
  838. Tabs.AutoSell:AddButton({
  839. Title = "πŸ§ͺ Test Sell Cycle",
  840. Description = "Run one sell cycle to test",
  841. Callback = function()
  842. Fluent:Notify({
  843. Title = "πŸ§ͺ Testing Sell",
  844. Content = "Watch console (F9) for details",
  845. Duration = 2
  846. })
  847. task.spawn(function()
  848. local success = performAutoSell()
  849. if success then
  850. Fluent:Notify({
  851. Title = "βœ… Test Successful",
  852. Content = "Sell cycle completed!",
  853. Duration = 3
  854. })
  855. else
  856. Fluent:Notify({
  857. Title = "❌ Test Failed",
  858. Content = "Check console for errors",
  859. Duration = 3
  860. })
  861. end
  862. end)
  863. end
  864. })
  865.  
  866. Tabs.AutoSell:AddButton({
  867. Title = "πŸ”„ Reset Sell Counter",
  868. Description = "Reset total sells counter",
  869. Callback = function()
  870. totalSold = 0
  871. Fluent:Notify({
  872. Title = "βœ… Counter Reset",
  873. Content = "Sell counter has been reset",
  874. Duration = 2
  875. })
  876. end
  877. })
  878.  
  879. Tabs.AutoSell:AddParagraph({
  880. Title = "βš™οΈ How It Works",
  881. Content = "The script will:\n1. Find YOUR plot dynamically\n2. Pick up all boxes\n3. Smoothly tween to merchant\n4. Press E to sell\n5. Loop continuously"
  882. })
  883.  
  884. Tabs.AutoSell:AddParagraph({
  885. Title = "✨ Smart Plot Detection",
  886. Content = "β€’ Finds your plot by player name\nβ€’ Works with any plot number\nβ€’ Adapts when you rejoin\nβ€’ No hardcoded positions!"
  887. })
  888.  
  889. -- === CREDITS TAB ===
  890.  
  891. Tabs.Credits:AddParagraph({
  892. Title = "🎣 Fishing Brainrots Script",
  893. Content = "Advanced auto farming, buying, and selling system"
  894. })
  895.  
  896. Tabs.Credits:AddParagraph({
  897. Title = "πŸ‘¨β€πŸ’» Developer",
  898. Content = "Made by SebiLautarul\nVersion 4.1.0 - Smart Plot Detection"
  899. })
  900.  
  901. Tabs.Credits:AddParagraph({
  902. Title = "✨ Features",
  903. Content = "β€’ Continuous auto farming\nβ€’ Faster egg spawning\nβ€’ Smart rarity detection\nβ€’ Auto-buy on target rarity\nβ€’ Auto-sell with boxes\nβ€’ Dynamic plot detection\nβ€’ Safe tweening to merchant\nβ€’ Price checking\nβ€’ Workspace egg tracking\nβ€’ Modern animated UI"
  904. })
  905.  
  906. Tabs.Credits:AddParagraph({
  907. Title = "⚑ New in v4.1",
  908. Content = "β€’ Smart plot detection system\nβ€’ Finds YOUR plot automatically\nβ€’ Works with any plot number\nβ€’ Adapts when you rejoin server\nβ€’ No more hardcoded positions!\nβ€’ Multiple detection methods\nβ€’ 'Find My Plot' test button\nβ€’ FIXED: Sell delay slider now works!"
  909. })
  910.  
  911. Tabs.Credits:AddParagraph({
  912. Title = "⌨️ Controls",
  913. Content = "Right Control - Toggle UI\nF9 - Open Console (Debug)"
  914. })
  915.  
  916. -- === SETTINGS TAB ===
  917.  
  918. SaveManager:SetLibrary(Fluent)
  919. SaveManager:IgnoreThemeSettings()
  920. SaveManager:SetFolder("FishingBrainrot_SebiLautarul")
  921. SaveManager:BuildConfigSection(Tabs.Settings)
  922.  
  923. InterfaceManager:SetLibrary(Fluent)
  924. InterfaceManager:SetFolder("FishingBrainrot_SebiLautarul")
  925. InterfaceManager:BuildInterfaceSection(Tabs.Settings)
  926.  
  927. -- Initial Load
  928. Window:SelectTab(1)
  929.  
  930. Fluent:Notify({
  931. Title = "✨ Script Loaded!",
  932. Content = "Fishing Brainrots v4.1 by SebiLautarul - Smart Plot Detection!",
  933. Duration = 5
  934. })
  935.  
  936. SaveManager:LoadAutoloadConfig()
Advertisement
Add Comment
Please, Sign In to add comment