Fisch Script No Key (October 2026) | Best Auto Farm

PUBLISHEDUPDATED
What changed
  • 2026-10-13 — Added Script #6: Updated for Auto Fishing, Instant Reel & Auto Shake Update.
  • 2026-10-09 — Added Script #5: Auto Farm & More.
  • 2026-10-09 — Added Script #4: Auto Farm & More.
  • 2026-10-09 — Added Script #3: ShieldTeam Hub.
Verified Working2 Active ScriptsKeyless

Key Features:

  • Auto Fish – Automatically catches fish without your help
  • Auto Reel – Reels in line right after fish bites
  • Auto Cast – Automatically throws your line in water
  • Instant Reel – Reels instantly after fish is caught
  • Instant Fisch Settings – Adjust settings for faster fishing results
  • Webhook Support – Sends updates to your Discord or server
  • Fix Maps – Repairs broken or glitched fishing areas
  • Teleport to Treasure – Move straight to hidden treasure fast
  • Auto Appraise – Instantly checks item value when found
  • Buy Rods Anywhere – Get new rods without visiting shop
  • Walk on Water – Lets you walk across lakes or rivers
  • Teleports – Quickly move to any saved location
  • Teleport on Event – Auto joins events with instant teleport
  • Auto Bait – Applies bait to rod without doing anything manually

Fisch Script FREE:

NO KEY

Working ScriptFree
loadstring(Game:HttpGet("https://pastebin.com/raw/zpcAiB5c"))()
Compatible executors: HydrogenMacSploitAWP.GGDelta
Working ScriptFree
repeat
    wait()
until game:IsLoaded()

local Players = game:GetService("Players")
local GuiService = game:GetService("GuiService")
local VIM = game:GetService("VirtualInputManager")
local TweenService = game:GetService("TweenService")
local VirtualUser = game:GetService("VirtualUser")

local WorldFolder = workspace:FindFirstChild("world")
local ActiveFolder = workspace:FindFirstChild('active')
local ZoneFolder = workspace:FindFirstChild('zones')
local LocalPlayerPawn = Players.LocalPlayer

local Hint = Instance.new("Hint", game.CoreGui)
Hint.Text = "Vixie | Waiting for game to load..."


LocalPlayerPawn.Idled:Connect(function()
    VirtualUser:CaptureController()
    VirtualUser:ClickButton2(Vector2.new())
end)

if WorldFolder == nil then
    LocalPlayerPawn:Kick("[VIXIE] Sorry but couldn't find world folder, Did Fisch have an update?")
    return
end

if ActiveFolder == nil then
    LocalPlayerPawn:Kick("[VIXIE] Sorry but couldn't find active folder, Did Fisch have an update?")
    return
end

if ZoneFolder == nil then
    LocalPlayerPawn:Kick("[VIXIE] Sorry but couldn't find zone folder, Did Fisch have an update?")
    return
end

local TpFolder = WorldFolder:WaitForChild("spawns"):WaitForChild("TpSpots") 
local NpcFolder = WorldFolder:WaitForChild("npcs")
local tp_locations = loadstring(game:HttpGet("https://raw.githubusercontent.com/ProjektEta/Vixie.lua/refs/heads/main/Tools/Fisch/TeleportAreas.lua"))()
local worldevents =loadstring(game:HttpGet("https://raw.githubusercontent.com/ProjektEta/Vixie.lua/refs/heads/main/Tools/Fisch/WorldEvents.lua"))()
local roddata = loadstring(game:HttpGet("https://raw.githubusercontent.com/ProjektEta/Vixie.lua/refs/heads/main/Tools/Fisch/RodData.lua"))()
local baitdata = loadstring(game:HttpGet("https://raw.githubusercontent.com/ProjektEta/Vixie.lua/refs/heads/main/Tools/Fisch/BaitData.lua"))()
local AppraisialData = loadstring(game:HttpGet("https://raw.githubusercontent.com/ProjektEta/Vixie.lua/refs/heads/main/Tools/Fisch/AppraisalData.lua"))()
local FishData = loadstring(game:HttpGet("https://raw.githubusercontent.com/ProjektEta/Vixie.lua/refs/heads/main/Tools/Fisch/FishData.lua"))()

local lib = loadstring(game:HttpGet("https://raw.githubusercontent.com/ProjektEta/Vixie.lua/refs/heads/main/Tools/Universal/UI.lua"))()
local Window = lib:Window({
    Name = "Vixie.lua",
    Version = "<font color=\"#FFC0CB\">version: </font> keyless | v1.1"
})
local pointers = Window.Flags 

getgenv().VIXIE_GLOBALS = {
    getBait = function()
        local best, bvalue = nil, -math.huge

        for _,v in pairs(game.ReplicatedStorage.playerstats[LocalPlayerPawn.Name].Stats.bait:GetChildren()) do
            if v.Value == 0 then continue end
            if pointers['autobait_type'] == "Quantity" then

                local cvalue = v.Value

                if pointers["autobait_filtertype"] == "Worst" then
                    if cvalue < bvalue or bvalue == -math.huge then
                        bvalue = cvalue
                        best = v.Name
                    end
                else
                    if cvalue > bvalue then
                        bvalue = cvalue
                        best = v.Name
                    end
                end
            
            elseif pointers['autobait_type'] == "Universal Luck" then
                local cvalue = baitdata[string.split(v.Name, "_")[2]]
                if not cvalue then continue end
                if pointers['autobait_filtertype'] == "Worst" then
                    if cvalue == nil then continue end

                    if tonumber(cvalue.Luck) < bvalue or bvalue == -math.huge then
                        bvalue = tonumber(cvalue.Luck)
                        best = v.Name
                    end
                else
                    if tonumber(cvalue.Luck) > bvalue then
                        bvalue = tonumber(cvalue.Luck)
                        best = v.Name
                    end
                end

            elseif pointers['autobait_type'] == "Luck" then
                local cvalue = baitdata[string.split(v.Name, "_")[2]]
                if not cvalue then continue end
                if pointers['autobait_filtertype'] == "Worst" then
                    if cvalue == nil then continue end

                    if tonumber(cvalue.Luck) < bvalue or bvalue == -math.huge then
                        bvalue = tonumber(cvalue.Luck)
                        best = v.Name
                    end
                else
                    if tonumber(cvalue.Luck) > bvalue then
                        bvalue = tonumber(cvalue.Luck)
                        best = v.Name
                    end
                end
            
            elseif pointers['autobait_type'] == "Lure Speed" then
                local cvalue = baitdata[string.split(v.Name, "_")[2]]
                if not cvalue then continue end
                if pointers['autobait_filtertype'] == "Worst" then
                    if cvalue == nil then continue end

                    if tonumber(cvalue.LureSpeed) < bvalue or bvalue == -math.huge then
                        bvalue = tonumber(cvalue.LureSpeed)
                        best = v.Name
                    end
                else
                    if tonumber(cvalue.LureSpeed) > bvalue then
                        bvalue = tonumber(cvalue.LureSpeed)
                        best = v.Name
                    end
                end

            elseif pointers['autobait_type'] == "Resilience" then
                local cvalue = baitdata[string.split(v.Name, "_")[2]]
                if not cvalue then continue end
                    if pointers['autobait_filtertype'] == "Worst" then
                        if cvalue == nil then continue end
    
                        if tonumber(cvalue.Resilience) < bvalue or bvalue == -math.huge then
                            bvalue = tonumber(cvalue.Resilience)
                            best = v.Name
                        end
                    else
                        if tonumber(cvalue.Resilience) > bvalue then
                            bvalue = tonumber(cvalue.Resilience)
                            best = v.Name
                        end
                    end

            elseif pointers['autobait_type'] == "Resilience" then
                local cvalue = baitdata[string.split(v.Name, "_")[2]]
                if not cvalue then continue end
                    if pointers['autobait_filtertype'] == "Worst" then
                        if cvalue == nil then continue end
    
                        if tonumber(cvalue.Resilience) < bvalue or bvalue == -math.huge then
                            bvalue = tonumber(cvalue.Resilience)
                            best = v.Name
                        end
                    else
                        if tonumber(cvalue.Resilience) > bvalue then
                            bvalue = tonumber(cvalue.Resilience)
                            best = v.Name
                        end
                    end
            
            elseif pointers['autobait_type'] == "Rarity" then
                
                local rarValue = {
                    ["Common"] = 1,
                    ["Uncommon"] = 1.5,
                    ["Unusual"] = 2,
                    ["Rare"] = 3,
                    ["Legendary"] = 4,
                    ["Mythical"] = 5,
                }
                local cvalue = baitdata[string.split(v.Name, "_")[2]]
                if not cvalue then continue end
                        if pointers['autobait_filtertype'] == "Worst" then
                            if cvalue == nil then continue end
        
                            if rarValue[cvalue.Rarity] < bvalue or bvalue == -math.huge then
                                bvalue = rarValue[cvalue.Rarity]
                                best = v.Name
                            end
                        else
                            if rarValue[cvalue.Rarity] > bvalue then
                                bvalue = rarValue[cvalue.Rarity]
                                best = v.Name
                            end
                        end

            end
        end

        if best then
            if LocalPlayerPawn.PlayerGui:FindFirstChild("reel") then
                repeat
                    task.wait()
                until not LocalPlayerPawn.PlayerGui:FindFirstChild("reel")
            end

            local __equippedItem = LocalPlayerPawn.Character:FindFirstChildWhichIsA("Tool")
            LocalPlayerPawn.Character.Humanoid:UnequipTools()
            task.wait(.1)
            LocalPlayerPawn.Backpack['Equipment Bag'].Parent = LocalPlayerPawn.Character
            task.wait(.1)
            warn(best)
            game.ReplicatedStorage.packages.Net['RE/Bait/Equip']:FireServer(string.split(best, "_")[2])
            task.wait(.1)
            LocalPlayerPawn.Character.Humanoid:UnequipTools()
            task.wait(.5)
            if __equippedItem then
                __equippedItem.Parent = LocalPlayerPawn.Character
            end

            return
        end
    end
}

local AutomationPage = Window:Page({
    Name = "Automation"
})

local ClientPage = Window:Page({
    Name = "Client"
})

local WorldPage = Window:Page({
    Name = "World"
})

local MiscPage = Window:Page({
    Name = "Misc"
})

do -- AutomationPage

    local AutomationSec = AutomationPage:Section({
        Name = "Automation",
        LeftTitle = "Options",
        RightTitle = "Settings"
    })

    local AutoAppraise = AutomationPage:Section({
        Name = "Auto Appraise",
        LeftTitle = "Options",
        RightTitle = "Settings"
    })

    AutoAppraise:Toggle({
        State = false,
        Flag = "autopraise_enabled",
        Side = "Left",
        Name = "Auto Appraise",
        Callback = function(v)
            if v == true and not pointers['autofish_enabled'] then
                
                local heldFish = LocalPlayerPawn.Character:FindFirstChildWhichIsA("Tool")
                local v = nil
                if heldFish and heldFish:FindFirstChild("link") then
                    v = heldFish.link.Value
                else
                    return
                end

                if not v then return end

                local _oldCF = LocalPlayerPawn.Character.HumanoidRootPart.CFrame
                LocalPlayerPawn.Character.HumanoidRootPart.CFrame = CFrame.new(448.253815, 150.538727, 206.717392, 0.0551895462, -4.95227894e-08, -0.998475909, 3.75087801e-08, 1, -4.75251305e-08, 0.998475909, -3.4828723e-08, 0.0551895462)

                local hasMutation = false

                repeat
                    local WantedMutation = pointers['autoAppraiseType']
                    local curMutation = "NULL"

                    if heldFish and heldFish:FindFirstChild("link") then
                        v = heldFish.link.Value
                    else
                        break
                    end
    
                    if not v then break end

                    task.wait(.1)
                    workspace:WaitForChild("world"):WaitForChild("npcs"):WaitForChild("Appraiser"):WaitForChild("appraiser"):WaitForChild("appraise"):InvokeServer()

                    if v:FindFirstChild("Mutation") == nil then
                        curMutation = "NULL"
                    else
                        curMutation = v.Mutation.Value
                    end

                    if curMutation == WantedMutation then
                        hasMutation = true
                    end

                    task.wait(.3)
                    heldFish.Parent = LocalPlayerPawn.Character

                    if game.ReplicatedStorage.playerstats[LocalPlayerPawn.Name].Stats.coins.Value <= 250 then
                        break
                    end
                until hasMutation or pointers['autopraise_enabled'] == false
                LocalPlayerPawn.Character.HumanoidRootPart.CFrame = _oldCF
            end
        end
    })

    AutoAppraise:List({
        Options = AppraisialData,
        Max = #AppraisialData,
        State = "",
        Flag = "autoAppraiseType",
        Side = "Right",
        Name = "Auto Appraise",
    })
    
    AutomationSec:Toggle({
        State = false,
        Flag = "autofish_enabled",
        Side = "Left",
        Name = "Autofish",
    })

    AutomationSec:Toggle({
        State = false,
        Flag = "autosell_enabled",
        Side = "Left",
        Name = "Auto Sell",
    })

    AutomationSec:Toggle({
        State = false,
        Flag = "autobait_enabled",
        Side = "Left",
        Name = "Auto Bait",
    })

    AutomationSec:List({
        Options = {
            "GuiService",
        },
        Max = 1,
        State = "GuiService",
        Flag = "autoshake_type",
        Side = "Left",
        Name = "Auto Shake Type",
    })

    AutomationSec:List({
        Options = {
            "Always Perfect",
            "Legit",
            "Instant",
            "Legit Instant"
        },
        Max = 4,
        State = "Instant",
        Flag = "autoreel_type",
        Side = "Left",
        Name = "Auto Reel Type",
    })

    AutomationSec:List({
        Options = {
            "Quantity",
            "Universal Luck",
            "Lure Speed",
            "Luck",
            "Resilience",
            "Rarity"
        },
        Max = 6,
        State = "Quantity",
        Flag = "autobait_type",
        Side = "Right",
        Name = "Auto bait Filter",
    })

    
    AutomationSec:List({
        Options = {
            "Worst",
            "Best"
        },
        Max = 2,
        State = "Best",
        Flag = "autobait_filtertype",
        Side = "Right",
        Name = "Auto bait Filter Type",
    })

    AutomationSec:Slider({
        Name = "Cast Delay",
        Min = 1,
        State = 2,
        Max = 5,
        Suffix = "s",
        Side = "Right",
        Decimals = .1,
        Flag = "autocast_delay"
    })

    AutomationSec:Slider({
        Name = "Shake Delay",
        Min = 0,
        State = 0,
        Max = 500,
        Suffix = "ms",
        Side = "Right",
        Decimals = 5,
        Flag = "autoshake_delay"
    })

    AutomationSec:Slider({
        Name = "Instant Reel Delay",
        Min = 1,
        State = 2,
        Max = 5,
        Suffix = "s",
        Side = "Right",
        Decimals = .1,
        Flag = "autoreel_delay"
    })

    AutomationSec:Slider({
        Name = "Instant Perfect Chance",
        Min = 0,
        State = 50,
        Max = 100,
        Suffix = "%",
        Side = "Right",
        Decimals = 1,
        Flag = "autoreel_pchance"
    })




end

do -- client section

    local ClientSec = ClientPage:Section({
        Name = "Client",
        LeftTitle = "Local Character",
        RightTitle = "Interactions"
    })

    local UISec = ClientPage:Section({
        Name = "UI",
        LeftTitle = "UI",
        RightTitle = ""
    })

    local uiDeathConn = false
    UISec:Toggle({
        State = false,
        Flag = "ui_death_toggle",
        Side = "Left",
        Name = "Anti-Death UI",
        Callback = function(v)        
            
            if v == true then
                uiDeathConn = LocalPlayerPawn.PlayerGui:WaitForChild("death")
                uiDeathConn = uiDeathConn:GetPropertyChangedSignal("Enabled"):Connect(function(v)
                    if v == true then LocalPlayerPawn.PlayerGui.death.Enabled = false end
                end)
            elseif uiDeathConn then
                uiDeathConn:Disconnect()
            end

        end
    })

    UISec:Button({
        Side = "Left",
        Name = "Spoof Player Name",
        Callback = function()  
            LocalPlayerPawn.Character.HumanoidRootPart.user.level.Text = "BEST FREE SCRIPT"
            LocalPlayerPawn.Character.HumanoidRootPart.user.user.Text = "VIXIE USER"
            LocalPlayerPawn.Character.HumanoidRootPart.user.streak.Text = "VIXIE.LUA FREE"
            LocalPlayerPawn.Character.HumanoidRootPart.user.title.Text = "BEST FREE SCRIPT"
            LocalPlayerPawn.Character.HumanoidRootPart.user.fish:Destroy()
            LocalPlayerPawn.Character.HumanoidRootPart.user.fire:Destroy()  
        end 
    })

    local __freezeCFrame = CFrame.new(0,0,0)
    local freezeCon = nil
    ClientSec:Toggle({
        State = false,
        Flag = "freezechar_enabled",
        Side = "Left",
        Name = "Freeze Character",
        Callback = function(v)        
            __freezeCFrame = LocalPlayerPawn.Character.HumanoidRootPart.CFrame

            if v == true then
                freezeCon = game:GetService("RunService").RenderStepped:Connect(function()
                    LocalPlayerPawn.Character.HumanoidRootPart.CFrame = __freezeCFrame
                end)
            else
                if freezeCon then
                    freezeCon:Disconnect()
                end
            end
        end
    })

    local CharAntiDrownCon = nil
    ClientSec:Toggle({
        State = false,
        Flag = "infoxygen_enabled",
        Side = "Left",
        Name = "No Drowning",
        Callback = function(v)
            local s,e = pcall(function()
                if v == true then
                    LocalPlayerPawn.Character.Resources.oxygen.Enabled = false	
                    LocalPlayerPawn.Character.Resources["oxygen(peaks)"].Enabled = false
                    CharAntiDrownCon = LocalPlayerPawn.Character.CharacterAdded:Connect(function()	
                        LocalPlayerPawn.Character.Resources.oxygen.Enabled = false	
                        LocalPlayerPawn.Character.Resources["oxygen(peaks)"].Enabled = false
                    end)
                else	
                    LocalPlayerPawn.Character.Resources.oxygen.Enabled = true	
                    LocalPlayerPawn.Character.Resources["oxygen(peaks)"].Enabled = true
        
                    if CharAntiDrownCon then
                        CharAntiDrownCon:Disconnect()
                    end
                end 
            end)
        end
    })

    local AntiTempCharConn = nil
    ClientSec:Toggle({
        State = false,
        Flag = "inftemp_enabled",
        Side = "Left",
        Name = "No Freezing",
        Callback = function(v)
            local s,e = pcall(function()
                if v == true then
                    LocalPlayerPawn.Character.Resources.temperature.Enabled = false	
                    LocalPlayerPawn.Character.Resources["temperature(heat)"].Enabled = false	
                    AntiTempCharConn = LocalPlayerPawn.Character.CharacterAdded:Connect(function()	
                        LocalPlayerPawn.Character.Resources.temperature.Enabled = false	
                        LocalPlayerPawn.Character.Resources["temperature(heat)"].Enabled = false
                    end)
                else	
                    LocalPlayerPawn.Character.Resources.temperature.Enabled = true	
                    LocalPlayerPawn.Character.Resources["temperature(heat)"].Enabled = true
        
                    if AntiTempCharConn then
                        AntiTempCharConn:Disconnect()
                    end
                end 
            end)
        end
    })

    ClientSec:Button({
        Side = "Right",
        Name = "Sell Held Fish",
        Callback = function(v)
            game:GetService("ReplicatedStorage"):WaitForChild("events"):WaitForChild("Sell"):InvokeServer()
        end
    })

    ClientSec:Button({
        Side = "Right",
        Name = "Sell All Fish",
        Callback = function(v)
            game:GetService("ReplicatedStorage"):WaitForChild("events"):WaitForChild("SellAll"):InvokeServer()
        end
    })

    ClientSec:Button({
        Side = "Right",
        Name = "Appraise Held Fish (450)",
        Callback = function(v)
            local _oldCF = LocalPlayerPawn.Character.HumanoidRootPart.CFrame
            task.wait()
            LocalPlayerPawn.Character.HumanoidRootPart.CFrame = CFrame.new(448.253815, 150.538727, 206.717392, 0.0551895462, -4.95227894e-08, -0.998475909, 3.75087801e-08, 1, -4.75251305e-08, 0.998475909, -3.4828723e-08, 0.0551895462)
            workspace:WaitForChild("world"):WaitForChild("npcs"):WaitForChild("Appraiser"):WaitForChild("appraiser"):WaitForChild("appraise"):InvokeServer()
            task.wait()
            LocalPlayerPawn.Character.HumanoidRootPart.CFrame = _oldCF
        end
    })

    ClientSec:Button({
        Side = "Right",
        Name = "Fix Held Map (250)",
        Callback = function(v)
            local _oldCF = LocalPlayerPawn.Character.HumanoidRootPart.CFrame
            task.wait()
            LocalPlayerPawn.Character.HumanoidRootPart.CFrame = CFrame.new(-2823.90112, 214.34288, 1515.54041, -0.20666413, -3.82791967e-08, 0.978411973, 5.99187189e-08, 1, 5.17800807e-08, -0.978411973, 6.93262763e-08, -0.20666413)
            workspace:WaitForChild("world"):WaitForChild("npcs"):WaitForChild("Jack Marrow"):WaitForChild("treasure"):WaitForChild("repairmap"):InvokeServer()
            task.wait()
            LocalPlayerPawn.Character.HumanoidRootPart.CFrame = _oldCF
        end
    })

    local listA = {}
    local listB = {}

    local pvr = ClientSec:List({
        Options = {},
        Max = 0,
        State = "",
        Flag = "purcahseValidRods",
        Side = "Right",
        Name = "Purchase Rod",
        Callback = function(v)
            if v == nil or v == "" then return end

            local rodName = listB[v][1]
            local rodPrice = listB[v][2]

            if tonumber(rodPrice) > game.ReplicatedStorage.playerstats[LocalPlayerPawn.Name].Stats.coins.Value then
                return
            end

            game.ReplicatedStorage.events.purchase:FireServer(rodName, "Rod", rodPrice, 1)

            table.remove(listA, table.find(listA, v))
        end
    })

    for rodName, rodData in pairs(roddata) do
        if rodData.Price ~= "inf" and rodData.Price ~= "No Price" then

            if game.ReplicatedStorage.playerstats[LocalPlayerPawn.Name].Rods:FindFirstChild(rodName) then
                continue
            end

            table.insert(listA, rodName.." ($"..rodData.Price..")")
            listB[rodName.." ($"..rodData.Price..")"] = {rodName, rodData.Price}
        end
    end
    task.spawn(function()
        while task.wait(5) do pvr:Refresh(listA) end
    end)

end

do -- World

    local WorldSection = WorldPage:Section({
        Name = "World",
        LeftTitle = "Teleports",
        RightTitle = "Ocean"
    })

    local MiscSection = WorldPage:Section({
        Name = "Misc",
        LeftTitle = "Account Values",
        RightTitle = ""
    })

    local __t = {}
    local accV = MiscSection:List({
        Options = __t,
        Max = #__t,
        State = "",
        Flag = "accountValuechecker",
        Side = "Left",
        Name = "Check Account Value",
        Callback = function(v)
            if v == nil or v == "" then return end

            local data = game.ReplicatedStorage.playerstats:FindFirstChild(v)
            if not data then return end
            data = data.Inventory:GetChildren()

            local curValue = 0

            for _,v in pairs(data) do
                if FishData.Fish[v.Value] then
                    if v:FindFirstChild("Mutation") then
                        local fV = tonumber(FishData.Fish[v.Value].Price) * v.Stack.Value
                        if FishData.Mutations[v.Mutation.Value] then
                            fV *= tonumber(FishData.Mutations[v.Mutation.Value].PriceMultiply)
                        end

                        curValue += fV
                    else
                        curValue += tonumber(FishData.Fish[v.Value].Price) * v.Stack.Value
                    end
                end
            end

            Hint.Text = "Vixie | "..v.."'s Account is worth~: "..curValue.." C$"
            print("Vixie | "..v.."'s Account is worth~: "..curValue.." C$")

        end
    })

    game.ReplicatedStorage.playerstats.ChildAdded:Connect(function(c)
        table.insert(__t, c.Name)
        accV:Refresh(__t)
    end)

    game.ReplicatedStorage.playerstats.ChildRemoved:Connect(function(c)
        table.remove(__t, table.find(__t, c))
        accV:Refresh(__t)
    end)

    for _,v in pairs(game.ReplicatedStorage.playerstats:GetChildren()) do
        table.insert(__t, v.Name)
    end
    accV:Refresh(__t)

    WorldSection:Toggle({
        State = false,
        Flag = "walkOnWater",
        Side = "Right",
        Name = "Walk on Water",
        Callback = function(v)
            for _,v in pairs(ZoneFolder:WaitForChild("fishing"):GetChildren()) do
                if v:IsA("Part") then
                    v.CanCollide = v
                end
            end
        end
    })

    WorldSection:Button({
        Side = "Left",
        Name = "Teleport to treasure map",
        Callback = function()
            local getTool = LocalPlayerPawn.Character:FindFirstChild("Treasure Map")

            if getTool == nil and  getTool.link.Value.Repaired.Value == false then
                return
            end

            LocalPlayerPawn.Character.HumanoidRootPart.CFrame = CFrame.new(Vector3.new(getTool.link.Value.x.Value, getTool.link.Value.y.Value, getTool.link.Value.z.Value))
        end
    })

    local _tps = {}

    for i,v in pairs(tp_locations) do
        table.insert(_tps, i)
    end

    WorldSection:List({
        Options = _tps,
        Max = #_tps,
        State = "",
        Flag = "teleport_lcoation",
        Side = "Left",
        Name = "Teleports",
        Callback = function(v)
            if v == nil then
                return
            end
            LocalPlayerPawn.Character.HumanoidRootPart.CFrame = TpFolder[tp_locations[v]].CFrame + Vector3.new(0,4,0)
        end
    })

    local ___tFolder1 = {}
    local ___tFolder2 = {}

    local WorldEvents = WorldSection:List({
        Options = {},
        Max = 0,
        State = "",
        Flag = "worldevent_tp",
        Side = "Left",
        Name = "World Events TP",
        Callback = function(v)
            if v == nil then
                return
            end
            LocalPlayerPawn.Character.HumanoidRootPart.CFrame = ___tFolder1[v].CFrame + Vector3.new(0,4,0)
        end
    })
    ZoneFolder.fishing.ChildAdded:Connect(function(child)
        if worldevents[child.Name] then
            ___tFolder1[worldevents[child.Name]] = child
            table.insert(___tFolder2, worldevents[child.Name])     
            
            WorldEvents:Refresh(___tFolder2)
        end
    end)

    ZoneFolder.fishing.ChildRemoved:Connect(function(child)
        if table.find(___tFolder1, child) then
            local i = table.find(___tFolder1, child)
            ___tFolder1[i] = nil
            table.remove(___tFolder2, table.find(___tFolder2, i))

            WorldEvents:Refresh(___tFolder2)
        end
    end)

    for _,child in pairs(ZoneFolder.fishing:GetChildren()) do
        if worldevents[child.Name] then
            ___tFolder1[worldevents[child.Name]] = child
            table.insert(___tFolder2, worldevents[child.Name])     
            WorldEvents:Refresh(___tFolder2)       
        end
    end
end

do

    local MiscSection = MiscPage:Section({
        Name = "Misc",
        LeftTitle = "Options",
        RightTitle = "UI"
    })

    MiscSection:Button({
        Side = "Left",
        Name = "Join Our Discord",
        Callback = function(v)
            local s,e = pcall(function()
                request({
                    Url = "http://127.0.0.1:6463/rpc?v=1",
                    Method = "POST",
                    Headers = {
                        ["Content-Type"] = "application/json",
                        ["Origin"] = "https://discord.com"
                    },
                    Body = game:GetService("HttpService"):JSONEncode({
                        cmd = "INVITE_BROWSER",
                        args = {
                            code = "x4RfPQZvs2"
                        },
                        nonce = game:GetService("HttpService"):GenerateGUID(false)
                    }),
                })
            end)
        
            setclipboard("https://discord.gg/x4RfPQZvs2")
        end
    })

    MiscSection:Toggle({
        State = false,
        Flag = "useWebhook",
        Side = "Left",
        Name = "Use Webhook",
    })

    MiscSection:Textbox({
        State = "",
        Flag = "discord_webhook",
        Side = "Left",
        Name = "Webhook URL",
        holder = "",
        Callback = function(v)
            print(v)
        end
    })
    
    MiscSection:Keybind({
        State = Enum.KeyCode.End,
        Mode = "Toggle",
        Side = "Right",
        Flag = "UI_Config_Toggle",
        Name = "Menu Toggle",
        Callback = function()
            Window:SetOpen(not Window.Open)
        end
    })

end

local function mainLoop()
    
    game:GetService("ReplicatedStorage"):WaitForChild("events"):WaitForChild("afk"):FireServer(false)
    
    if pointers["autofish_enabled"] == false then return end

    if pointers["autosell_enabled"] == true then
        game:GetService("ReplicatedStorage"):WaitForChild("events"):WaitForChild("SellAll"):InvokeServer()
    end

    if pointers["autobait_enabled"] then
        getgenv().VIXIE_GLOBALS.getBait()
    end

    task.wait(1)

    local s,e = pcall(function()
        
        local event;

        for _,v in pairs(LocalPlayerPawn.Character:GetChildren()) do
            if v:IsA("Tool") then event = v end
        end
    
        event.events.cast:FireServer(100, 1)
    end)
    if e then
        warn(e)
        return
    end

    local __db = 0

    local ui = LocalPlayerPawn.PlayerGui:FindFirstChild("shakeui")
    repeat
        ui = LocalPlayerPawn.PlayerGui:FindFirstChild("shakeui")
        task.wait(.1)
        __db += 1

        if (__db > 20) then
            return
        end
    until ui

    repeat
        if ui:FindFirstChild("safezone") then
            if ui.safezone:FindFirstChild("button") then
                pcall(function()
                    if pointers["autoshake_type"] == "GuiService" then
                        GuiService.SelectedObject = ui.safezone:FindFirstChild("button")
                        if GuiService.SelectedObject == ui.safezone:FindFirstChild("button") then
                            VIM:SendKeyEvent(true, Enum.KeyCode.Return, false, game)
                            VIM:SendKeyEvent(false, Enum.KeyCode.Return, false, game)
                        end
                    end
                end)
            end
        end
        task.wait(pointers["autoshake_delay"] / 1000)
        ui = LocalPlayerPawn.PlayerGui:FindFirstChild("shakeui")
        if not (ui) then ui = false end
    until not ui
    print("Shake ui disappeared")

    local bounceBack = 0
    
    ui = LocalPlayerPawn.PlayerGui:FindFirstChild("reel")
    repeat
       task.wait(.1)
       ui = LocalPlayerPawn.PlayerGui:FindFirstChild("reel") 
       bounceBack += 1
       if bounceBack >= 20 then
            print("protection")
            return;
       end
       
    until ui
    print("Found Reel UI")

    if pointers["autoreel_type"] == "Always Perfect" then
        repeat
            task.wait()
            if ui:FindFirstChild("bar") then
                local b = ui:FindFirstChild("bar")
                if b:FindFirstChild("fish") and b:FindFirstChild("playerbar") then
                    b:FindFirstChild("playerbar").Position = b:FindFirstChild("fish").Position
                end
            end
        
            ui = LocalPlayerPawn.PlayerGui:FindFirstChild("reel") 
            if not (ui) then ui = false end
        until not ui
        
        print("Finished!")
    elseif pointers["autoreel_type"]  == "Legit" then

        repeat
            task.wait()
            if ui:FindFirstChild("bar") then
                local b = ui:FindFirstChild("bar")
                if b:FindFirstChild("fish") and b:FindFirstChild("playerbar") then
                    b:FindFirstChild("playerbar").Position = b:FindFirstChild("fish").Position
                    local x = TweenService:Create(b:FindFirstChild("playerbar"),
                                TweenInfo.new(1, Enum.EasingStyle.Elastic), {Position = b:FindFirstChild("fish").Position})
                    x:Play()
                    x.Completed:Wait()
                end
            end
        
            ui = LocalPlayerPawn.PlayerGui:FindFirstChild("reel") 
            if not (ui) then ui = false end
        until not ui
        
        print("Finished!")

    elseif pointers["autoreel_type"]  == "Instant" then
        task.wait(pointers["autoreel_delay"])
        repeat
            task.wait()
            if ui:FindFirstChild("bar") then
                local b = ui:FindFirstChild("bar")
                if b:FindFirstChild("fish") and b:FindFirstChild("playerbar") then
                    b:FindFirstChild("playerbar").Position = b:FindFirstChild("fish").Position
                end

                local isPerfect = math.random(1, 100) < pointers["autoreel_pchance"]
                game.ReplicatedStorage.events["reelfinished "]:FireServer(100, isPerfect)
            end
            ui = LocalPlayerPawn.PlayerGui:FindFirstChild("reel") 
            if not (ui) then ui = false end
        until not ui 

    elseif pointers["autoreel_type"]  == "Legit Instant" then
        task.wait(pointers["autoreel_delay"])
        repeat
            task.wait()
            if ui:FindFirstChild("bar") then
                local b = ui:FindFirstChild("bar")
                if b:FindFirstChild("fish") and b:FindFirstChild("playerbar") then
                    b:FindFirstChild("playerbar").Position = b:FindFirstChild("fish").Position
                end
    
                if b:FindFirstChild("progress") then
                    if b:FindFirstChild("progress").bar.Size.X.Scale > .5 then
                        local isPerfect = math.random(1, 100) < pointers["autoreel_pchance"]
                        game.ReplicatedStorage.events["reelfinished "]:FireServer(100, isPerfect)
                    end
                end
            end
            ui = LocalPlayerPawn.PlayerGui:FindFirstChild("reel") 
            if not (ui) then ui = false end
        until not ui 
    end

    return;

end

local CpH = 0
local XpH = 0
local FpH = 0
local lXpH = 0
local lCpH = 0

local lastWebhook = os.time()


game.ReplicatedStorage.playerstats:FindFirstChild(LocalPlayerPawn.Name).Stats.coins.Changed:Connect(function(v)
    CpH += v - lCpH
end)

game.ReplicatedStorage.playerstats:FindFirstChild(LocalPlayerPawn.Name).Stats.xp.Changed:Connect(function(v)
    XpH += v - lXpH
end)

game.ReplicatedStorage.playerstats:FindFirstChild(LocalPlayerPawn.Name).Inventory.ChildAdded:Connect(function(newItem)
    FpH += 1

    if (pointers["usewebhooks"]) then
        local s,e = pcall(function()

            local _multi = 3600 / (os.time() - lastWebhook)

            CpH *= _multi
            XpH *= _multi
            FpH *= _multi

            lastWebhook = os.time()

            local Mutation = newItem:FindFirstChild("Mutation")
            if Mutation == nil then Mutation = "NULL" else Mutation = Mutation.Value end
            request({
                Url = pointers["webhookURL"],
                Method = "Post",
                Headers = {
                    ['content-type'] = "application/json",
                },
                Body = game:GetService("HttpService"):JSONEncode({
                    ['embeds'] = {{
                        ['title'] = "__**VIXIE AUTO FISHER**__",
                        ['description'] = "You have caught a fish...",
                        ['type'] = "rich",
                        ['color'] = tonumber(0xffffff),
                        ['fields'] = {
                            {
                                ["name"] = "You caught a "..newItem.Value,
                                ["value"] = "Wighet: "..newItem:WaitForChild("Weight").Value.."KG \nMutation: "..Mutation
                            },
                            {
                                ["name"] = LocalPlayerPawn.Name.." Stats",
                                ["value"] = "C$: "..LocalPlayerPawn.leaderstats['C$'].Value.."\nLevel: "..LocalPlayerPawn.leaderstats['Level'].Value
                            },
                            {
                                ["name"] = LocalPlayerPawn.Name.." Performance",
                                ["value"] = "C$/h: "..CpH.."\nXP/h: "..XpH.."\nLevels/h: "..(XpH / 10000).."\nFishes/h: "..FpH
                            },
                            {
                                ["name"] = "**ADVERTISEMENT**",
                                ["value"] = "JOIN FEMSENSE NOW! https://discord.gg/x4RfPQZvs2"
                            },
                        },
                        ['footer'] = {
                            ['text'] = "Eta is best femboy ^^"
                        }
                    }}
                })
            })

            lXpH = XpH / _multi
            lCpH = CpH / _multi

            CpH = 0
            XpH = 0
            FpH = 0
        end)
        if e then
            warn(e)
        end
    end
end)


while task.wait(pointers["autocast_delay"]) do
    local s,e = pcall(function()
        mainLoop()
    end)
    if e then
        warn(e)
    end
end
Compatible executors: HydrogenMacSploitAWP.GGDelta

Script #3 ShieldTeam Hub

Script #3 · ShieldTeam HubFree
Auto FarmAuto SellAuto BuyAuto Fish
loadstring(game:HttpGet(('https://raw.githubusercontent.com/KAN-FISCH/tesss/refs/heads/main/allscript.lua'), true))()
Executor compatibility changes over time. Check current reports before testing.

Script #4 Auto Farm & More

Script #4 · Auto Farm & MoreFree
Auto FarmTeleport
loadstring(game:HttpGet("https://gist.githubusercontent.com/Mur4exe/af4ce068bd4910ff0e5715cd0215c143/raw/f3f36618e23d29d064618d1c573ab29e2e407f71/F%25C4%25B0SHv2.lua"))()
Executor compatibility changes over time. Check current reports before testing.

Script #5 Auto Farm & More

Script #5 · Auto Farm & MoreFree
Auto FarmTeleportAuto SellAuto BuyAuto Fish
loadstring(game:HttpGet("https://hyperionteam.my.id/api/script.lua"))()
Executor compatibility changes over time. Check current reports before testing.

Script #6 Auto Fish & More (Auto Fishing, Instant Reel & Auto Shake Update)

Script #6 · Auto Fish & MoreFree
Auto Fish
loadstring(game:HttpGet('https://raw.githubusercontent.com/KAN-FISCH/tesss/refs/heads/main/allscript.lua', true))()
Executor compatibility changes over time. Check current reports before testing.

Updated and tested for the latest Auto Fishing, Instant Reel & Auto Shake Update, this script automates the newest event tasks so you can keep up without the extra grind.

How to run scripts?

You can get these scripts running in your Fisch game in less than a minute—just follow these simple steps.

  • Grab a Trusted Executor
    Install one of the big-name tools (MacSploit, AWP.GG, Delta, Fluxus or Codex).
  • Hook It Into the Game
    Launch your executor and run Fisch from within the executor.
  • Load the Script
    Copy your Lua code into the executor’s console.
  • Hit Execute
    Press the execute button to let the features kick in—then jump back into the action.

Game Details:

  • Name: Fisch
  • Developer: Fisching
  • Maturity: Minimal
  • Genre: Simulation
  • Subgenre: Tycoon

Frequently Asked Questions

What is a Fisch script?

A Fisch script is third-party Lua code intended to run alongside the Roblox game through a compatible script executor.

What features does this Fisch script include?

Different scripts contain different code. This version includes: Auto Farm, Teleport, Auto Sell, Auto Buy, Auto Fish.

How do you use the Fisch script?

Pick a compatible executor such as Hydrogen, MacSploit, AWP.GG, Delta, Fluxus, Codex, launch Roblox and join the game, copy the complete Lua code from the script card above, paste it into the executor’s editor, and click Run or Execute. Compatibility changes over time, so a name here doesn’t guarantee current support.

Can a Fisch script get your Roblox account banned?

Yes. Third-party scripts can violate Roblox rules and may put an account at risk. Only use code from a source you trust, never enter your Roblox password into a script or executor, and test on an alternate account first.

Does the Fisch script work on mobile?

Check whether both the executor and the script support your device and the current Roblox version. Mobile executor support does not guarantee that every script will work.

Check out our Roblox Scripts hub and Roblox Games Directory for more.