Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Load Fluent UI Library (Super Modern & Animated!)
- local Fluent = loadstring(game:HttpGet("https://github.com/dawid-scripts/Fluent/releases/latest/download/main.lua"))()
- local SaveManager = loadstring(game:HttpGet("https://raw.githubusercontent.com/dawid-scripts/Fluent/master/Addons/SaveManager.lua"))()
- local InterfaceManager = loadstring(game:HttpGet("https://raw.githubusercontent.com/dawid-scripts/Fluent/master/Addons/InterfaceManager.lua"))()
- -- Create Window
- local Window = Fluent:CreateWindow({
- Title = "π£ Fishing Brainrots | Made by SebiLautarul",
- SubTitle = "Auto Egg & Auto Buy & Auto Sell System",
- TabWidth = 160,
- Size = UDim2.fromOffset(600, 480),
- Acrylic = true,
- Theme = "Darker",
- MinimizeKey = Enum.KeyCode.RightControl
- })
- -- Create Tabs
- local Tabs = {
- Main = Window:AddTab({ Title = "π₯ Auto Farm", Icon = "" }),
- AutoBuy = Window:AddTab({ Title = "π° Auto Buy", Icon = "" }),
- AutoSell = Window:AddTab({ Title = "π¦ Auto Sell", Icon = "" }),
- Settings = Window:AddTab({ Title = "βοΈ Settings", Icon = "" }),
- Credits = Window:AddTab({ Title = "βΉοΈ Info", Icon = "" })
- }
- -- Variables
- local autoSpawning = false
- local autoBuying = false
- local autoSelling = false
- local selectedRarity = "Mythic"
- local buyRarity = "Secret"
- local spawnDelay = 0.1
- local sellDelay = 1
- local attempts = 0
- local totalBought = 0
- local totalSold = 0
- -- Rarity hierarchy
- local rarityOrder = {
- ["Common"] = 1,
- ["Rare"] = 2,
- ["Epic"] = 3,
- ["Legendary"] = 4,
- ["Mythic"] = 5,
- ["Secret"] = 6,
- ["Exotic"] = 7,
- ["Divine"] = 8
- }
- -- Services
- local Players = game:GetService("Players")
- local ReplicatedStorage = game:GetService("ReplicatedStorage")
- local TweenService = game:GetService("TweenService")
- local VirtualInputManager = game:GetService("VirtualInputManager")
- local player = Players.LocalPlayer
- -- Remotes
- local eggRemote = ReplicatedStorage:WaitForChild("Shared"):WaitForChild("Packages"):WaitForChild("Networker"):WaitForChild("RF/RequestEggSpawn")
- local buyEggRemote = ReplicatedStorage:WaitForChild("Shared"):WaitForChild("Packages"):WaitForChild("Networker"):WaitForChild("RF/BuyEgg")
- local pickupBoxesRemote = ReplicatedStorage:WaitForChild("Shared"):WaitForChild("Packages"):WaitForChild("Networker"):WaitForChild("RE/PickupBoxes")
- -- Function to find player's plot
- local function findPlayerPlot()
- local coreObjects = workspace:FindFirstChild("CoreObjects")
- if not coreObjects then
- print(" [Plot Finder] β CoreObjects not found")
- return nil
- end
- local plots = coreObjects:FindFirstChild("Plots")
- if not plots then
- print(" [Plot Finder] β Plots folder not found")
- return nil
- end
- -- Search through all plots to find the one that belongs to the player
- for _, plot in pairs(plots:GetChildren()) do
- -- Method 1: Check for Owner value/attribute
- local owner = plot:FindFirstChild("Owner")
- if owner then
- if owner:IsA("StringValue") and owner.Value == player.Name then
- print(" [Plot Finder] β Found plot (StringValue):", plot.Name)
- return plot
- elseif owner:IsA("ObjectValue") and owner.Value == player then
- print(" [Plot Finder] β Found plot (ObjectValue):", plot.Name)
- return plot
- end
- end
- -- Method 2: Check for Owner attribute
- local ownerAttr = plot:GetAttribute("Owner")
- if ownerAttr == player.Name or ownerAttr == player.UserId then
- print(" [Plot Finder] β Found plot (Attribute):", plot.Name)
- return plot
- end
- -- Method 3: Check if plot name contains player name or UserId
- if string.find(plot.Name:lower(), player.Name:lower()) or
- string.find(plot.Name, tostring(player.UserId)) then
- print(" [Plot Finder] β Found plot (Name match):", plot.Name)
- return plot
- end
- -- Method 4: Deep search for any references to player
- for _, child in pairs(plot:GetDescendants()) do
- if child:IsA("StringValue") and child.Value == player.Name then
- print(" [Plot Finder] β Found plot (Deep search):", plot.Name)
- return plot
- end
- if child:IsA("ObjectValue") and child.Value == player then
- print(" [Plot Finder] β Found plot (Deep ObjectValue):", plot.Name)
- return plot
- end
- end
- end
- print(" [Plot Finder] β Could not find player's plot")
- return nil
- end
- -- Function to get merchant position from player's plot
- local function getMerchantPosition()
- local playerPlot = findPlayerPlot()
- if not playerPlot then
- warn(" [Merchant Finder] β Could not find player's plot")
- return nil
- end
- -- Look for SellPrompt in the plot
- local sellPrompt = playerPlot:FindFirstChild("SellPrompt")
- if sellPrompt then
- -- Check if SellPrompt itself is a BasePart
- if sellPrompt:IsA("BasePart") then
- print(" [Merchant Finder] β Found merchant (SellPrompt is a Part) at plot:", playerPlot.Name)
- return sellPrompt.CFrame
- end
- -- If it's a model, try to get its primary part or first BasePart
- if sellPrompt:IsA("Model") then
- local primaryPart = sellPrompt.PrimaryPart or sellPrompt:FindFirstChildWhichIsA("BasePart")
- if primaryPart then
- print(" [Merchant Finder] β Found merchant (Model) at plot:", playerPlot.Name)
- return primaryPart.CFrame
- end
- end
- -- Try to find a BasePart child
- local basePart = sellPrompt:FindFirstChildWhichIsA("BasePart")
- if basePart then
- print(" [Merchant Finder] β Found merchant (BasePart child) at plot:", playerPlot.Name)
- return basePart.CFrame
- end
- end
- -- Alternative: Search for any part named "Merchant" or "Sell"
- for _, child in pairs(playerPlot:GetDescendants()) do
- if child:IsA("BasePart") then
- local name = child.Name:lower()
- if name:find("merchant") or name:find("sell") or name:find("shop") then
- print(" [Merchant Finder] β Found merchant part:", child.Name)
- return child.CFrame
- end
- end
- end
- warn(" [Merchant Finder] β Could not find merchant position in plot")
- return nil
- end
- -- Get player's cash
- local function getPlayerCash()
- local leaderstats = player:FindFirstChild("leaderstats")
- if leaderstats then
- local cash = leaderstats:FindFirstChild("Cash")
- if cash then
- local exactValue = cash:GetAttribute("ExactValue")
- if exactValue then
- return tonumber(exactValue) or 0
- else
- local cashValue = cash.Value
- return tonumber(cashValue) or 0
- end
- end
- end
- return 0
- end
- -- Variable to track eggs and when they were first seen
- local eggTracker = {}
- local checkedEggs = {}
- -- Function to check if we got the EXACT desired rarity
- local function checkRarityExact(currentRarity, targetRarity)
- return currentRarity == targetRarity
- end
- -- Function to check if we got the desired rarity or better (for auto buy)
- local function checkRarityOrBetter(currentRarity, targetRarity)
- local currentValue = rarityOrder[currentRarity] or 0
- local desiredValue = rarityOrder[targetRarity] or 0
- return currentValue >= desiredValue
- end
- -- Function to get egg price and rarity
- local function getEggInfo(egg)
- local rarity = nil
- local price = nil
- for _, descendant in pairs(egg:GetDescendants()) do
- -- Find Rarity
- if descendant.Name == "Rarity" and descendant:IsA("TextLabel") then
- local rarityText = descendant.Text
- for rarityName, _ in pairs(rarityOrder) do
- if string.find(rarityText:lower(), rarityName:lower()) then
- rarity = rarityName
- end
- end
- end
- -- Find Price
- if descendant:IsA("TextLabel") and (
- descendant.Name:lower():find("price") or
- descendant.Name:lower():find("cost") or
- descendant.Name:lower():find("cash") or
- descendant.Name:lower():find("robux") or
- descendant.Name:lower():find("value")
- ) then
- local priceText = descendant.Text
- -- First try to match abbreviated numbers like "50M", "1.5K", "500B"
- local number = priceText:match("([%d,%.]+)%s*([KkMmBbTt])")
- if number then
- local numPart = priceText:match("([%d,%.]+)")
- local suffix = priceText:match("([KkMmBbTt])")
- numPart = numPart:gsub(",", "")
- numPart = tonumber(numPart)
- if numPart and suffix then
- suffix = suffix:upper()
- if suffix == "K" then
- numPart = numPart * 1000
- elseif suffix == "M" then
- numPart = numPart * 1000000
- elseif suffix == "B" then
- numPart = numPart * 1000000000
- elseif suffix == "T" then
- numPart = numPart * 1000000000000
- end
- price = numPart
- end
- else
- local numStr = priceText:match("([%d,]+)")
- if numStr then
- numStr = numStr:gsub(",", "")
- local num = tonumber(numStr)
- if num then
- price = num
- end
- end
- end
- end
- end
- return rarity, price
- end
- -- Function to detect egg rarity from workspace (FASTER VERSION)
- local function getCurrentEggRarity()
- local coreObjects = workspace:FindFirstChild("CoreObjects")
- if coreObjects then
- local eggsFolder = coreObjects:FindFirstChild("Eggs")
- if eggsFolder then
- local eggs = eggsFolder:GetChildren()
- local currentTime = tick()
- -- Update tracker with current eggs
- local currentEggs = {}
- for _, egg in ipairs(eggs) do
- local eggName = egg.Name
- currentEggs[eggName] = egg
- if not eggTracker[eggName] then
- eggTracker[eggName] = currentTime
- end
- end
- -- Clean up eggs that are no longer in the folder
- for trackedName, _ in pairs(eggTracker) do
- if not currentEggs[trackedName] then
- eggTracker[trackedName] = nil
- checkedEggs[trackedName] = nil
- end
- end
- -- Find the NEWEST unchecked egg
- local newestEgg = nil
- local newestTime = 0
- for _, egg in ipairs(eggs) do
- local eggName = egg.Name
- local timeAdded = eggTracker[eggName]
- if timeAdded and timeAdded > newestTime and not checkedEggs[eggName] then
- newestTime = timeAdded
- newestEgg = egg
- end
- end
- -- FASTER: Check if egg is recent (within last 1.5 seconds instead of 2.5)
- if newestEgg and (currentTime - newestTime) < 1.5 then
- local eggName = newestEgg.Name
- checkedEggs[eggName] = true
- local rarity, price = getEggInfo(newestEgg)
- if rarity then
- return rarity, price, newestEgg
- end
- end
- end
- end
- return nil, nil, nil
- end
- -- Auto Buy Function (IMPROVED)
- local function tryAutoBuy(egg, rarity, price)
- if not autoBuying then return false end
- if not rarity or not price then return false end
- price = tonumber(price)
- if not price then
- print(" [Auto Buy] β Invalid price")
- return false
- end
- -- Check if rarity meets the buy criteria
- if not checkRarityOrBetter(rarity, buyRarity) then
- return false
- end
- -- Check if we have enough cash
- local playerCash = tonumber(getPlayerCash()) or 0
- if playerCash >= price then
- local eggName = egg.Name
- print(" [Auto Buy] β Attempting to buy:", eggName, "for", price)
- local success, result = pcall(function()
- local args = {eggName, 1}
- return buyEggRemote:InvokeServer(unpack(args))
- end)
- if success and (result == true or result == nil) then
- totalBought = totalBought + 1
- print(" [Auto Buy] β Purchase successful!")
- Fluent:Notify({
- Title = "π° Purchased " .. rarity .. "!",
- Content = eggName .. " bought! (Total: " .. totalBought .. ")",
- Duration = 2
- })
- task.wait(0.5)
- return true
- else
- print(" [Auto Buy] β Purchase failed:", result)
- end
- end
- return false
- end
- -- Tween character to position
- local function tweenToPosition(targetCFrame)
- local character = player.Character
- if not character then return false end
- local humanoidRootPart = character:FindFirstChild("HumanoidRootPart")
- if not humanoidRootPart then return false end
- local distance = (humanoidRootPart.Position - targetCFrame.Position).Magnitude
- local speed = 50
- local duration = distance / speed
- -- Create tween
- local tweenInfo = TweenInfo.new(
- duration,
- Enum.EasingStyle.Linear,
- Enum.EasingDirection.InOut
- )
- local tween = TweenService:Create(humanoidRootPart, tweenInfo, {CFrame = targetCFrame})
- tween:Play()
- tween.Completed:Wait()
- return true
- end
- -- Press E key
- local function pressE()
- local success = pcall(function()
- VirtualInputManager:SendKeyEvent(true, Enum.KeyCode.E, false, game)
- task.wait(0.05)
- VirtualInputManager:SendKeyEvent(false, Enum.KeyCode.E, false, game)
- end)
- return success
- end
- -- Find and trigger ProximityPrompt in player's plot
- local function triggerMerchantPrompt()
- local playerPlot = findPlayerPlot()
- if not playerPlot then
- warn(" [Auto Sell] β Could not find player's plot")
- return false
- end
- print(" [Auto Sell] Searching in plot:", playerPlot.Name)
- -- Find SellPrompt in the player's plot
- local sellPrompt = playerPlot:FindFirstChild("SellPrompt")
- if sellPrompt then
- local proximityPrompt = sellPrompt:FindFirstChild("ProximityPrompt")
- if proximityPrompt and proximityPrompt.Enabled then
- print(" [Auto Sell] Found ProximityPrompt at:", proximityPrompt:GetFullName())
- -- Method 1: Try fireproximityprompt
- local method1 = pcall(function()
- fireproximityprompt(proximityPrompt)
- end)
- if method1 then
- print(" [Auto Sell] Method 1 (fireproximityprompt) executed")
- task.wait(0.2)
- return true
- end
- -- Method 2: Try triggering the Triggered event
- local method2 = pcall(function()
- proximityPrompt.Triggered:Fire(player)
- end)
- if method2 then
- print(" [Auto Sell] Method 2 (Triggered event) executed")
- task.wait(0.2)
- return true
- end
- -- Method 3: Try directly invoking PromptButtonHoldBegan/Ended
- local method3 = pcall(function()
- proximityPrompt.PromptButtonHoldBegan:Fire()
- task.wait(0.1)
- proximityPrompt.PromptButtonHoldEnded:Fire()
- end)
- if method3 then
- print(" [Auto Sell] Method 3 (ButtonHold events) executed")
- task.wait(0.2)
- return true
- end
- end
- end
- -- Method 4: Press E key as final backup
- print(" [Auto Sell] Using E key method as backup")
- pressE()
- task.wait(0.2)
- return true
- end
- -- Auto Sell Function (FIXED WITH DYNAMIC PLOT DETECTION)
- local function performAutoSell()
- print("=== Auto Sell Cycle ===")
- -- Step 1: Pick up boxes
- print(" [1/3] Picking up boxes...")
- local pickupSuccess = pcall(function()
- pickupBoxesRemote:FireServer()
- end)
- if not pickupSuccess then
- print(" [Auto Sell] β Failed to pick up boxes")
- return false
- end
- task.wait(0.5)
- -- Step 2: Get merchant position dynamically
- print(" [2/3] Finding merchant in player's plot...")
- local merchantCFrame = getMerchantPosition()
- if not merchantCFrame then
- print(" [Auto Sell] β Failed to find merchant position")
- return false
- end
- -- Step 3: Tween to merchant
- print(" [3/3] Tweening to merchant...")
- local tweenSuccess = tweenToPosition(merchantCFrame)
- if not tweenSuccess then
- print(" [Auto Sell] β Failed to tween to merchant")
- return false
- end
- task.wait(0.3)
- -- Step 4: Trigger sell
- print(" [4/4] Selling to merchant...")
- local sellSuccess = triggerMerchantPrompt()
- if sellSuccess then
- totalSold = totalSold + 1
- print(" [Auto Sell] β Sell cycle complete!")
- return true
- else
- print(" [Auto Sell] β Failed to trigger merchant")
- return false
- end
- end
- -- Auto Sell Loop (FIXED TO USE sellDelay VARIABLE)
- local function startAutoSell()
- autoSelling = true
- Fluent:Notify({
- Title = "π¦ Auto Sell Started",
- Content = "Picking up boxes and selling every " .. sellDelay .. " seconds!",
- Duration = 3
- })
- task.spawn(function()
- while autoSelling do
- local success = performAutoSell()
- if success then
- Fluent:Notify({
- Title = "π΅ Sold!",
- Content = "Total sells: " .. totalSold,
- Duration = 1.5
- })
- end
- task.wait(sellDelay) -- FIXED: Now uses the sellDelay variable instead of hardcoded 1
- end
- end)
- end
- local function stopAutoSell()
- autoSelling = false
- Fluent:Notify({
- Title = "βΈοΈ Auto Sell Stopped",
- Content = "Total sells: " .. totalSold,
- Duration = 3
- })
- end
- -- IMPROVED Auto Spawn Function - CONTINUOUS LOOP
- local function startAutoSpawn()
- autoSpawning = true
- attempts = 0
- Fluent:Notify({
- Title = "π Auto Farm Started",
- Content = "Farming for " .. selectedRarity .. "+ eggs!",
- Duration = 3
- })
- task.spawn(function()
- while autoSpawning do
- attempts = attempts + 1
- local success = pcall(function()
- eggRemote:InvokeServer()
- end)
- if success then
- task.wait(1.5)
- local detectedRarity, price, egg = getCurrentEggRarity()
- if detectedRarity then
- print("β DETECTED:", detectedRarity, "| Attempt:", attempts)
- if checkRarityExact(detectedRarity, selectedRarity) then
- local bought = tryAutoBuy(egg, detectedRarity, price)
- if bought or not autoBuying then
- Fluent:Notify({
- Title = "π Found " .. detectedRarity .. "!",
- Content = (bought and "Bought! " or "") .. "Attempt #" .. attempts,
- Duration = 3
- })
- end
- else
- tryAutoBuy(egg, detectedRarity, price)
- end
- end
- else
- warn("Failed to spawn egg")
- end
- task.wait(spawnDelay)
- end
- end)
- end
- local function stopAutoSpawn()
- autoSpawning = false
- Fluent:Notify({
- Title = "βΈοΈ Stopped",
- Content = "Total attempts: " .. attempts .. " | Total bought: " .. totalBought,
- Duration = 3
- })
- end
- -- === MAIN TAB (AUTO SPAWN) ===
- Tabs.Main:AddParagraph({
- Title = "π₯ Auto Egg Spawner",
- Content = "Continuously spawn eggs and auto-buy when you get the target rarity! Will keep running until you turn it off."
- })
- local AutoSpawnToggle = Tabs.Main:AddToggle("AutoSpawn", {
- Title = "Enable Auto Farm",
- Description = "Continuously spawn and farm eggs",
- Default = false,
- Callback = function(Value)
- if Value then
- startAutoSpawn()
- else
- stopAutoSpawn()
- end
- end
- })
- local RarityDropdown = Tabs.Main:AddDropdown("RaritySelect", {
- Title = "Target Rarity",
- Description = "Auto-buy when this rarity appears",
- Values = {"Common", "Rare", "Epic", "Legendary", "Mythic", "Secret", "Exotic", "Divine"},
- Default = 5,
- Callback = function(Value)
- selectedRarity = Value
- Fluent:Notify({
- Title = "β Updated",
- Content = "Will buy " .. Value .. " when found",
- Duration = 2
- })
- end
- })
- local SpeedSlider = Tabs.Main:AddSlider("SpawnDelay", {
- Title = "Spawn Delay",
- Description = "Time between spawning eggs (lower = faster)",
- Default = 0.1,
- Min = 0.05,
- Max = 2,
- Rounding = 2,
- Callback = function(Value)
- spawnDelay = Value
- end
- })
- Tabs.Main:AddButton({
- Title = "π§ͺ Test Detection",
- Description = "Spawn one egg and test detection",
- Callback = function()
- pcall(function() eggRemote:InvokeServer() end)
- Fluent:Notify({
- Title = "π§ͺ Testing",
- Content = "Check console (F9) for results",
- Duration = 2
- })
- task.wait(1.5)
- local rarity, price = getCurrentEggRarity()
- if rarity then
- Fluent:Notify({
- Title = "β Detected: " .. rarity,
- Content = "Price: " .. (price or "Unknown"),
- Duration = 3
- })
- end
- end
- })
- Tabs.Main:AddParagraph({
- Title = "π Statistics",
- Content = "Attempts: 0 | Total Bought: 0"
- })
- Tabs.Main:AddButton({
- Title = "π Reset Stats",
- Description = "Reset attempt and purchase counters",
- Callback = function()
- attempts = 0
- totalBought = 0
- Fluent:Notify({
- Title = "β Stats Reset",
- Content = "Counters have been reset",
- Duration = 2
- })
- end
- })
- -- === AUTO BUY TAB ===
- Tabs.AutoBuy:AddParagraph({
- Title = "π° Auto Buy System",
- Content = "Automatically purchase eggs that meet your criteria. Works with Auto Farm!"
- })
- local AutoBuyToggle = Tabs.AutoBuy:AddToggle("AutoBuy", {
- Title = "Enable Auto Buy",
- Description = "Automatically buy good eggs with cash",
- Default = false,
- Callback = function(Value)
- autoBuying = Value
- if Value then
- Fluent:Notify({
- Title = "π° Auto Buy Enabled",
- Content = "Will buy " .. buyRarity .. "+ eggs with cash",
- Duration = 3
- })
- else
- Fluent:Notify({
- Title = "π° Auto Buy Disabled",
- Content = "Auto buying turned off",
- Duration = 2
- })
- end
- end
- })
- local BuyRarityDropdown = Tabs.AutoBuy:AddDropdown("BuyRaritySelect", {
- Title = "Minimum Buy Rarity",
- Description = "Minimum rarity to auto-purchase",
- Values = {"Common", "Rare", "Epic", "Legendary", "Mythic", "Secret", "Exotic", "Divine"},
- Default = 6,
- Callback = function(Value)
- buyRarity = Value
- Fluent:Notify({
- Title = "β Updated",
- Content = "Will buy " .. Value .. " or better",
- Duration = 2
- })
- end
- })
- Tabs.AutoBuy:AddParagraph({
- Title = "π΅ Current Cash",
- Content = "Your current cash: " .. getPlayerCash()
- })
- Tabs.AutoBuy:AddButton({
- Title = "π Refresh Cash Display",
- Description = "Update current cash amount",
- Callback = function()
- Fluent:Notify({
- Title = "π΅ Current Cash",
- Content = tostring(getPlayerCash()) .. " cash",
- Duration = 2
- })
- end
- })
- Tabs.AutoBuy:AddParagraph({
- Title = "β οΈ How It Works",
- 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"
- })
- -- === AUTO SELL TAB ===
- Tabs.AutoSell:AddParagraph({
- Title = "π¦ Auto Sell System",
- Content = "Automatically picks up boxes, finds YOUR plot, tweens to merchant, and sells!"
- })
- local AutoSellToggle = Tabs.AutoSell:AddToggle("AutoSell", {
- Title = "Enable Auto Sell",
- Description = "Automatically pick up and sell boxes",
- Default = false,
- Callback = function(Value)
- if Value then
- startAutoSell()
- else
- stopAutoSell()
- end
- end
- })
- -- Sell Delay Slider (FIXED)
- local SellDelaySlider = Tabs.AutoSell:AddSlider("SellDelay", {
- Title = "Auto Sell Delay",
- Description = "Time between sell cycles (in seconds)",
- Default = 1,
- Min = 0.5,
- Max = 10,
- Rounding = 1,
- Callback = function(Value)
- sellDelay = Value
- Fluent:Notify({
- Title = "β±οΈ Sell Delay Updated",
- Content = "Now selling every " .. Value .. " seconds",
- Duration = 2
- })
- end
- })
- Tabs.AutoSell:AddParagraph({
- Title = "π Sell Statistics",
- Content = "Total Sells: 0"
- })
- Tabs.AutoSell:AddButton({
- Title = "π Find My Plot",
- Description = "Test plot detection",
- Callback = function()
- local plot = findPlayerPlot()
- if plot then
- Fluent:Notify({
- Title = "β Found Your Plot!",
- Content = "Plot name: " .. plot.Name,
- Duration = 3
- })
- else
- Fluent:Notify({
- Title = "β Plot Not Found",
- Content = "Check console (F9) for details",
- Duration = 3
- })
- end
- end
- })
- Tabs.AutoSell:AddButton({
- Title = "π§ͺ Test Sell Cycle",
- Description = "Run one sell cycle to test",
- Callback = function()
- Fluent:Notify({
- Title = "π§ͺ Testing Sell",
- Content = "Watch console (F9) for details",
- Duration = 2
- })
- task.spawn(function()
- local success = performAutoSell()
- if success then
- Fluent:Notify({
- Title = "β Test Successful",
- Content = "Sell cycle completed!",
- Duration = 3
- })
- else
- Fluent:Notify({
- Title = "β Test Failed",
- Content = "Check console for errors",
- Duration = 3
- })
- end
- end)
- end
- })
- Tabs.AutoSell:AddButton({
- Title = "π Reset Sell Counter",
- Description = "Reset total sells counter",
- Callback = function()
- totalSold = 0
- Fluent:Notify({
- Title = "β Counter Reset",
- Content = "Sell counter has been reset",
- Duration = 2
- })
- end
- })
- Tabs.AutoSell:AddParagraph({
- Title = "βοΈ How It Works",
- 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"
- })
- Tabs.AutoSell:AddParagraph({
- Title = "β¨ Smart Plot Detection",
- Content = "β’ Finds your plot by player name\nβ’ Works with any plot number\nβ’ Adapts when you rejoin\nβ’ No hardcoded positions!"
- })
- -- === CREDITS TAB ===
- Tabs.Credits:AddParagraph({
- Title = "π£ Fishing Brainrots Script",
- Content = "Advanced auto farming, buying, and selling system"
- })
- Tabs.Credits:AddParagraph({
- Title = "π¨βπ» Developer",
- Content = "Made by SebiLautarul\nVersion 4.1.0 - Smart Plot Detection"
- })
- Tabs.Credits:AddParagraph({
- Title = "β¨ Features",
- 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"
- })
- Tabs.Credits:AddParagraph({
- Title = "β‘ New in v4.1",
- 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!"
- })
- Tabs.Credits:AddParagraph({
- Title = "β¨οΈ Controls",
- Content = "Right Control - Toggle UI\nF9 - Open Console (Debug)"
- })
- -- === SETTINGS TAB ===
- SaveManager:SetLibrary(Fluent)
- SaveManager:IgnoreThemeSettings()
- SaveManager:SetFolder("FishingBrainrot_SebiLautarul")
- SaveManager:BuildConfigSection(Tabs.Settings)
- InterfaceManager:SetLibrary(Fluent)
- InterfaceManager:SetFolder("FishingBrainrot_SebiLautarul")
- InterfaceManager:BuildInterfaceSection(Tabs.Settings)
- -- Initial Load
- Window:SelectTab(1)
- Fluent:Notify({
- Title = "β¨ Script Loaded!",
- Content = "Fishing Brainrots v4.1 by SebiLautarul - Smart Plot Detection!",
- Duration = 5
- })
- SaveManager:LoadAutoloadConfig()
Advertisement
Add Comment
Please, Sign In to add comment