OP auto fish Use it whilst you can (lvl and gold farm)
Key Required

OP auto fish Use it whilst you can (lvl and gold farm)

Grand Blue [Early Access]neutralneutral 2.2K views 4.1K executesUpdated Sep 11, 2026
2.9/ 5(7 votes)
4357% Positive
Lua Script•109 lines (3626 chars)
repeat task.wait() until game:IsLoaded()

local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local RunService = game:GetService("RunService")

local Modules = ReplicatedStorage.Modules
local Events = ReplicatedStorage.Events
local HeldClient = require(Modules.HeldClient)
local QuickTimeEvents = require(Modules.QuickTimeEvents)

local RandomGenerator = Random.new()
local AutoFishEnabled = true
local FishingCastRunning = false
local NextFishTime = 0

Events.Fishing.OnClientEvent:Connect(function(Action, CastId)
    if AutoFishEnabled and FishingCastRunning and Action == "CastAck" then
        Events.Fishing:FireServer("Reel", CastId)
    end
end)

Events.QuickTimeEvent.OnClientInvoke = function(QTE, Options)
    if AutoFishEnabled and QTE.event == "Reel Fish" and QTE.fishing then
        local _, HoldUntil = QuickTimeEvents.MinimumServerTime["Reel Fish"](QTE)
        if HoldUntil == math.huge then
            return {Result = "Failed", Score = 0}
        end
        task.wait(HoldUntil + RandomGenerator:NextNumber(0.04, 0.08))
        return {Result = "Completed", Score = 1}
    end

    return Events.QuickTimeEventBindable:Invoke(QTE, Options)
end

LocalPlayer:GetAttributeChangedSignal("Fishing"):Connect(function()
    if not LocalPlayer:GetAttribute("Fishing") then
        FishingCastRunning = false
    end
end)

local OriginalNamecall
OriginalNamecall = hookmetamethod(game, "__namecall", function(Self, ...)
    local Arguments = {...}

    if Self == Events.QuickTimeEventBindable and getnamecallmethod() == "Invoke" and AutoFishEnabled and FishingCastRunning then
        local QTE = Arguments[1]

        if QTE.event == "Timed Release" then
            task.wait(QTE.speed + RandomGenerator:NextNumber(0.02, 0.06))
            return {Result = "Completed", Score = 1}
        end

        if QTE.event == "Gridshot" then
            local Goal = math.max(math.floor(QTE.goal or 1), 1)
            local Delay = math.max(QTE.minDuration or 0, 0.1) / Goal

            for _ = 1, Goal do
                task.wait(Delay)
                if QTE.OnButtonPressed then
                    QTE.OnButtonPressed()
                end
            end

            return {Result = "Completed", Score = Goal}
        end
    end

    return OriginalNamecall(Self, ...)
end)

RunService.Heartbeat:Connect(function()
    if not AutoFishEnabled or FishingCastRunning or LocalPlayer:GetAttribute("Fishing") or os.clock() < NextFishTime then
        return
    end

    local Character = LocalPlayer.Character
    local RootPart = Character and Character.PrimaryPart
    local _, HeldItem = HeldClient.GetHeld()
    NextFishTime = os.clock() + 1

    if not RootPart or not HeldItem or not HeldItem:FindFirstChild("Hookss", true) then
        return
    end

    local Direction = Vector3.new(RootPart.CFrame.LookVector.X, 0, RootPart.CFrame.LookVector.Z)
    if Direction.Magnitude <= 0.001 then
        return
    end

    FishingCastRunning = true

    local Params = RaycastParams.new()
    Params.FilterType = Enum.RaycastFilterType.Exclude
    Params.FilterDescendantsInstances = {Character}
    Params.IgnoreWater = true

    local Hit = workspace:Raycast(RootPart.Position, Direction.Unit * 25, Params)

    Events.ToolRemote:FireServer(nil, "Activated")
    Events.Fishing:FireServer("CastRod", Hit and Hit.Position or RootPart.Position + Direction.Unit * 25)

    task.delay(5, function()
        if not LocalPlayer:GetAttribute("Fishing") then
            FishingCastRunning = false
        end
    end)
end)

Features & Information

Automatically fishes for you, all you need to do is hold a fishing rod, it simulates the casting 25 studs in front of you so stand in the region you want the loot pool of. It fishes as fast as possible without triggering the games honeypot for fishing too fast, the rate it fishes at changes based on the stats of your fishing rod and buffs and etc though. I have personally reached lvl 130 using this myself

Community Comments (7)

tatsumakihubfantatsumakihubfanSep 12, 2026

yo big goat can we get a mining farm or other stuff for the game? also is there a discord? much love

johsuejohsueSep 12, 2026

not working

Replying to @johsue
neutralneutralSep 13, 2026

@johsue yes it does

EpsteinDiddyFNEpsteinDiddyFNSep 15, 2026

script works great only issue is 1 theres no way to start or stop so if i wanna stop fishing i gotta lose my streak usally, and 2 the big issue is your line doesnt actually cast so if someone noticed you could be reported and banned

Replying to @EpsteinDiddyFN
neutralneutralSep 18, 2026

@EpsteinDiddyFN the thing is it fishes way faster than should even be possible anyways, it byp*es half the steps required when fishing so if someone found you ingame they would notice you fishing way too fast anyways, just hide somewhere and use it

SubVintSubVintSep 16, 2026

Fishing module got updated ive made some fixes and the auto fishing is working again, but i dont wanna post it since im not the owner.

Replying to @SubVint
neutralneutralSep 18, 2026

@SubVint send it to me in dms in discord im curious, moeteus is my user

More Scripts for Grand Blue [Early Access]