902 views
Description
This script is for [将] Shogun's Reign and comes with the tool auto fish to make your game more enjoyable. fully working and keyless.
Features
- + auto fish
- + keyless
Supported Executors
Xeno
Volt
Potassium
Wave
Delta
Solara
Opiumware
Codex
MacSploit
Vega X
Velocity
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local plr = Players.LocalPlayer
local fishingRemote = ReplicatedStorage:WaitForChild("Events"):WaitForChild("Activities"):WaitForChild("Fishing")
-- Edit config here
local CONFIG = {
CastRetryDelay = 1.0, -- pause between casts
CastTimeout = 20, -- max seconds to wait for Bite/CastEnded
SpotMaxDist = 12, -- max distance to fire prompt from
}
getgenv().AutoFish = false
getgenv().NeedsSleep = false
getgenv().ShogunRunId = (getgenv().ShogunRunId or 0) + 1
local RUN_ID = getgenv().ShogunRunId
local function stillMine() return getgenv().ShogunRunId == RUN_ID end
if type(getgenv().ShogunConns) == "table" then
for _, c in ipairs(getgenv().ShogunConns) do
pcall(function() c:Disconnect() end)
end
end
getgenv().ShogunConns = {}
local function getPrompt()
local folder = workspace:FindFirstChild("World")
and workspace.World:FindFirstChild("Interactables")
and workspace.World.Interactables:FindFirstChild("Fish")
if not folder then return nil, nil, math.huge end
local plrChar = plr.Character
local hrp = plrChar and plrChar:FindFirstChild("HumanoidRootPart")
if not hrp then return nil, nil, math.huge end
local best, bestPrompt, bestDist
for _, spot in ipairs(folder:GetChildren()) do
if spot:IsA("BasePart") then
local d = (spot.Position - hrp.Position).Magnitude
if not bestDist or d = 8 then
pcall(function()
ReplicatedStorage.Events.Economy.Shop:FireServer("Sell", "Takeshi", { Fish = fishN })
end)
task.wait(0.5)
end
rod = nil
for _, tool in ipairs(plr.Backpack:GetChildren()) do
if tool:IsA("Tool") and tool.Name:lower():find("rod") then rod = tool break end
end
if not rod and not (ch:FindFirstChildOfClass("Tool") and ch:FindFirstChildOfClass("Tool").Name:lower():find("rod")) then
pcall(function()
ReplicatedStorage.Events.Economy.Shop:FireServer("Buy", "Takeshi", { ["Best Fishing Rod"] = 1 })
end)
task.wait(1.0)
for _, tool in ipairs(plr.Backpack:GetChildren()) do
if tool:IsA("Tool") and tool.Name:lower():find("rod") then rod = tool break end
end
if not rod then
for _, tool in ipairs(ch:GetChildren()) do
if tool:IsA("Tool") and tool.Name:lower():find("rod") then return end
end
end
end
if rod then
hum:EquipTool(rod)
task.wait(0.4)
end
end
local events = {}
local eventsDirty = false
table.insert(getgenv().ShogunConns, fishingRemote.OnClientEvent:Connect(function(action, data)
if not stillMine() then return end
local token = type(data) == "table" and data.token or nil
events[#events + 1] = { action = action, token = token }
eventsDirty = true
if action == "Bite" and token then
pcall(function()
fishingRemote:FireServer("Result", true, token)
end)
end
end))
do
local thoughtRemote
for _, d in ipairs(ReplicatedStorage.Events:GetDescendants()) do
if d.Name == "CreateThought" and d:IsA("RemoteEvent") then
thoughtRemote = d
break
end
end
if thoughtRemote then
table.insert(getgenv().ShogunConns, thoughtRemote.OnClientEvent:Connect(function(msg)
if not stillMine() then return end
if type(msg) == "string" and msg:lower():find("tired") then
getgenv().NeedsSleep = true
end
end))
end
end
task.spawn(function()
if not stillMine() then return end
local stats = { casts = 0, caught = 0, misses = 0, sleeps = 0 }
getgenv().FishStats = stats
while stillMine() do
if not getgenv().AutoFish then
eventsDirty = false
task.wait(0.1)
continue
end
if getgenv().NeedsSleep then
goToSleep()
stats.sleeps = stats.sleeps + 1
end
ensureRodEquipped()
local prompt, spot, dist = getPrompt()
if prompt and dist <= CONFIG.SpotMaxDist then
events = {}
eventsDirty = false
local ok = pcall(fireproximityprompt, prompt)
if ok then
stats.casts = stats.casts + 1
end
local t0 = os.clock()
local gotBite, resolved = false, false
while os.clock() - t0 < CONFIG.CastTimeout
and stillMine() and getgenv().AutoFish
and not resolved and not getgenv().NeedsSleep do
if eventsDirty then
eventsDirty = false
for _, e in ipairs(events) do
if e.action == "Bite" then gotBite = true end
if e.action == "CastEnded" then resolved = true end
end
end
task.wait(0.05)
end
if gotBite then
stats.caught = stats.caught + 1
elseif resolved then
stats.misses = stats.misses + 1
end
else
if not prompt then
warn("[AutoFish] no fishing spot found")
else
warn("[AutoFish] no prompt in range (dist=" .. tostring(dist) .. ")")
end
task.wait(CONFIG.CastRetryDelay)
end
task.wait(CONFIG.CastRetryDelay)
end
end)
local function buildUI()
local guiName = "ShogunToggleUI"
local old = plr:FindFirstChild("PlayerGui") and plr.PlayerGui:FindFirstChild(guiName)
if old then old:Destroy() end
local pg = plr:WaitForChild("PlayerGui")
local gui = Instance.new("ScreenGui")
gui.Name = guiName
gui.ResetOnSpawn = false
gui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
gui.Parent = pg
local frame = Instance.new("Frame")
frame.Name = "Main"
frame.Size = UDim2.fromOffset(200, 110)
frame.Position = UDim2.new(0, 16, 0.5, -55)
frame.BackgroundColor3 = Color3.fromRGB(22, 22, 28)
frame.BorderSizePixel = 0
frame.Active = true
frame.Draggable = true
frame.Parent = gui
local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 8)
corner.Parent = frame
local stroke = Instance.new("UIStroke")
stroke.Color = Color3.fromRGB(70, 70, 90)
stroke.Thickness = 1
stroke.Parent = frame
local title = Instance.new("TextLabel")
title.Name = "Title"
title.Size = UDim2.new(1, 0, 0, 32)
title.BackgroundColor3 = Color3.fromRGB(32, 32, 42)
title.BorderSizePixel = 0
title.Font = Enum.Font.GothamBold
title.Text = "Shogun Tools"
title.TextColor3 = Color3.fromRGB(235, 235, 245)
title.TextSize = 14
title.Parent = frame
local titleCorner = Instance.new("UICorner")
titleCorner.CornerRadius = UDim.new(0, 8)
titleCorner.Parent = title
local titleFix = Instance.new("Frame")
titleFix.Size = UDim2.new(1, 0, 0, 10)
titleFix.Position = UDim2.new(0, 0, 1, -10)
titleFix.BackgroundColor3 = title.BackgroundColor3
titleFix.BorderSizePixel = 0
titleFix.Parent = title
local function makeToggle(name, labelText, y, getFlag)
local btn = Instance.new("TextButton")
btn.Name = name
btn.Size = UDim2.new(1, -24, 0, 36)
btn.Position = UDim2.new(0, 12, 0, y)
btn.BackgroundColor3 = Color3.fromRGB(40, 40, 52)
btn.BorderSizePixel = 0
btn.Font = Enum.Font.GothamSemibold
btn.TextSize = 13
btn.TextColor3 = Color3.fromRGB(235, 235, 245)
btn.AutoButtonColor = true
btn.Parent = frame
local c = Instance.new("UICorner")
c.CornerRadius = UDim.new(0, 6)
c.Parent = btn
local stateLabel = Instance.new("TextLabel")
stateLabel.Name = "State"
stateLabel.Size = UDim2.new(0, 52, 1, 0)
stateLabel.Position = UDim2.new(1, -60, 0, 0)
stateLabel.BackgroundTransparency = 1
stateLabel.Font = Enum.Font.GothamBold
stateLabel.TextSize = 12
stateLabel.TextXAlignment = Enum.TextXAlignment.Right
stateLabel.Parent = btn
local function refresh()
local on = getFlag() == true
btn.Text = labelText
btn.TextXAlignment = Enum.TextXAlignment.Left
btn.TextTransparency = on and 0 or 0.35
stateLabel.Text = on and "ON" or "OFF"
stateLabel.TextColor3 = on and Color3.fromRGB(90, 220, 130) or Color3.fromRGB(220, 90, 90)
end
refresh()
return btn, refresh
end
local btnFish, refreshFish = makeToggle("FishBtn", "Auto Fish", 44, function()
return getgenv().AutoFish
end)
btnFish.Activated:Connect(function()
getgenv().AutoFish = not getgenv().AutoFish
refreshFish()
end)
local statsLabel = Instance.new("TextLabel")
statsLabel.Name = "Stats"
statsLabel.Size = UDim2.new(1, -24, 0, 24)
statsLabel.Position = UDim2.new(0, 12, 1, -30)
statsLabel.BackgroundTransparency = 1
statsLabel.Font = Enum.Font.Gotham
statsLabel.TextSize = 11
statsLabel.TextColor3 = Color3.fromRGB(160, 160, 180)
statsLabel.TextXAlignment = Enum.TextXAlignment.Left
statsLabel.Text = "casts 0 | caught 0"
statsLabel.Parent = frame
task.spawn(function()
while gui.Parent and stillMine() do
refreshFish()
local s = getgenv().FishStats
if s then
statsLabel.Text = string.format(
"casts %d | caught %d | miss %d | sleep %d",
s.casts or 0, s.caught or 0, s.misses or 0, s.sleeps or 0
)
end
task.wait(0.5)
end
end)
return gui
end
buildUI()
Script worked? 🚀 Boost it to #1 so others find it too.
Similar Scripts
381
6 hours ago
Free
+1 Assassin Leveling
+1 Assassin Leveling script by Tora isme | Auto stage, Anti damage
299
6 hours ago
Free
Huss Valley
Aetherium Hub Huss Valley Crossing script OP (No Keys)
248
6 hours ago
Free
Cold War
QCOLD MENU | Silent aim, No recoil, insta reload
184
6 hours ago
Free
Baddies
Best Baddies Extenders , Anti Inventory Break And Silent Aim
174
6 hours ago
Key System
Build a Phone Empire
Build a Phone Empire script by Softkillz
132
6 hours ago
Key System
WRONG WAY
Wrong Way script by Softkillz | Auto drive bot
🚀
Log in to boost
Boosting rockets this script to #1 on the homepage. A free account takes 30 seconds.
Log in
🚀
Out of boosts!
Grab boosts and rocket your favorite scripts to the top — plus join the booster wall with the RGB ring.
⚡ Go Pro — 10 boosts/month + zero ads
🚀
Boost this script?
It jumps to #1 in Recent Scripts and your avatar joins the booster wall.
🚀
Boosted! You're awesome 💜
Comments (0)
Log in to add a comment.