[APEX] Fisch🦈 Script Pastebin (July 2025)

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

[APEX] Fisch Script:

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

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