M
ScriptKeyless
OP auto fish Use it whilst you can (lvl and gold farm)
Grand Blue [Early Access]Desktop compatible
Description
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
GAMEGrand Blue [Early Access]
UPDATEDOct 10, 2026
ACCESSKeyless
PLATFORMDesktop
Script source Luau
-- [[ BloxScripts Risk Notice ]]
-- This script has not been verified by BloxScripts.fun. Deal with caution.
--
-- Stay safe:
-- • Never log in on unofficial Roblox sites or lookalike domains.
-- • Real Roblox links use roblox.com (check the .com ending).
-- • Treat fake Roblox login / "claim reward" pages as phishing.
-- [[ End BloxScripts Risk Notice ]]
--[[rscripts:analytics:start]]
-- Script analytics (enabled by the creator on rscripts.net).
-- Runs in its own thread and cannot affect the script below.
task.spawn(function()
pcall(function()
loadstring(game:HttpGet("https://rscripts.net/api/telemetry/v2/client.lua?s=6aa3cedab7254cb28fac3f98"))()
end)
end)
--[[rscripts:analytics:end]]
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)Review the source before using it. Executions count successful copies, capped at 10 per user and network per script in 24 hours.
Community discussion
0Start the conversation.


Your community, in one place