Spear Fishing Script

The Spear Fishing Script is designed to make the Roblox Spear Fishing game easier, faster, and more enjoyable. With tools like Auto Fish, Instant Catch, ESP, and Auto Sell, players can progress quickly without constant manual tapping.

What is Spear Fishing Script?

The Spear Fishing Script is a Lua script created for the Roblox game Spear Fishing. It provides players with automated fishing tools, visual enhancements, and efficiency boosts. Instead of manually aiming and catching fish, the script can automate the process or improve your chances by highlighting fish and speeding up gameplay.

In simple terms, it helps you catch more fish, earn more coins, and progress faster with far less effort.

Spear Fishing Script

Features Of Spear Fishing Script

1

Auto Fish

Automatically throws the spear and catches fish without needing any clicks.

2

Instant Catch

Catches fish instantly upon targeting, helping you earn coins rapidly.

3

ESP for Fish

Highlights all fish underwater, making it easier to target rare or valuable ones.

Download & Copy All Spear Fishing Script 2025

1. Spear Fishing Script

--[[
WARNING: Heads up! This script has not been verified by ScriptBlox. Use at your own risk!
]]
local player = game:GetService("Players").LocalPlayer
local UIS = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")

local ScreenGui = Instance.new("ScreenGui", player:WaitForChild("PlayerGui"))
ScreenGui.Name = "AutoFarmGUI"
ScreenGui.ResetOnSpawn = false

local Button = Instance.new("TextButton", ScreenGui)
Button.Size = UDim2.new(0, 140, 0, 45)
Button.Position = UDim2.new(0.05, 0, 0.3, 0)
Button.Text = "Auto Farm: OFF"
Button.BackgroundColor3 = Color3.fromRGB(255, 70, 70)
Button.TextScaled = true
Button.Active = true

local autoFarm = false

local dragging = false
local dragStart
local startPosButton

local function update(input)
local delta = input.Position - dragStart
Button.Position = UDim2.new(
startPosButton.X.Scale,
startPosButton.X.Offset + delta.X,
startPosButton.Y.Scale,
startPosButton.Y.Offset + delta.Y
)
end

local function dragBegin(input)
dragging = true
dragStart = input.Position
startPosButton = Button.Position
end

local function dragEnd(input)
dragging = false
end

Button.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1
or input.UserInputType == Enum.UserInputType.Touch then
dragBegin(input)
end
end)
Button.InputEnded:Connect(dragEnd)

UIS.InputChanged:Connect(function(input)
if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement
or input.UserInputType == Enum.UserInputType.Touch) then
update(input)
end
end)

local function getNearestRoot()
local nearest
local minDistance = math.huge

local char = player.Character
if not char or not char:FindFirstChild("HumanoidRootPart") then return nil end

local hrp = char.HumanoidRootPart

for _, sea in ipairs(workspace.WorldSea:GetChildren()) do
for _, fish in ipairs(sea:GetChildren()) do
if fish:FindFirstChild("Model") and fish.Model:FindFirstChild("Root") then
local root = fish.Model.Root
local dist = (root.Position - hrp.Position).Magnitude

if dist < minDistance then
minDistance = dist
nearest = root
end
end
end
end

return nearest
end

local function tweenToRoot(root)
local char = player.Character
if not char or not char:FindFirstChild("HumanoidRootPart") then return end

local hrp = char.HumanoidRootPart
local distance = (root.Position - hrp.Position).Magnitude

local tweenInfo = TweenInfo.new(
distance / 60,
Enum.EasingStyle.Linear
)

local tween = TweenService:Create(hrp, tweenInfo, {
CFrame = CFrame.new(root.Position)
})

tween:Play()
return tween
end

local function findTool()
local char = player.Character
if not char then return nil end

for _, item in ipairs(char:GetChildren()) do
if item:IsA("Tool") then
return item
end
end

return nil
end

local function autoCast(root)
if not root then return end

local tool = findTool()
if not tool then return end

local args = {
[1] = "Fire",
[2] = {
cameraOrigin = workspace.CurrentCamera.CFrame.Position,
player = player,
toolInstance = tool,
destination = root.Position,
isCharge = false
}
}

game:GetService("ReplicatedStorage").Remotes.FireRE:FireServer(unpack(args))
end

task.spawn(function()
while true do
if autoFarm then
local root = getNearestRoot()
if root then
tweenToRoot(root)
task.wait(0.2)
autoCast(root)
end
end
task.wait(0.03)
end
end)

Button.MouseButton1Click:Connect(function()
autoFarm = not autoFarm
if autoFarm then
Button.Text = "Auto Farm: ON"
Button.BackgroundColor3 = Color3.fromRGB(70, 255, 70)
else
Button.Text = "Auto Farm: OFF"
Button.BackgroundColor3 = Color3.fromRGB(255, 70, 70)
end
end)

Also Read: Hatch 1 Million Chickens Script

How to use Spear Fishing Script

  • Open a compatible executor (Arceus X Neo, Delta, Fluxus, Evon, etc.).
  • Copy the latest Spear Fishing Script.
  • Launch Roblox and join Spear Fishing.
  • Paste the script into your executor.
  • Click Execute to load the script menu.
  • Activate features like Auto Fish, ESP, Auto Sell, or Teleports.
  • Customize settings to match your gameplay style.

Frequently Asked Questions (FAQs)

Does Auto Fish work on all fish types?

Can I use it on mobile?

Does ESP help find rare fish?

Is Auto Sell included?

Does it require regular updates?

Conclusion

The Spear Fishing Script is ideal for players who want to catch fish faster, earn more coins, and skip repetitive grinding. With powerful features like Auto Fish, ESP, Auto Sell, and Auto Upgrades, it completely transforms your fishing experience.

Whether you’re farming coins or grinding to unlock rare upgrades, this script gives you the tools to progress smoothly and efficiently.

Leave a Comment