
Key Required VerifiedUniversal

local executorName = "" --make by 09u dont skid
pcall(function() --make by 09u dont skid
if identifyexecutor then --make by 09u dont skid
executorName = identifyexecutor() --make by 09u dont skid
elseif getexecutorname then --make by 09u dont skid
executorName = getexecutorname() --make by 09u dont skid
end --make by 09u dont skid
end) --make by 09u dont skid
local lowerExecutorName = string.lower(tostring(executorName)) --make by 09u dont skid
local sharedEnv = getgenv and getgenv() or _G --make by 09u dont skid
local isXeno = lowerExecutorName:find("xeno") ~= nil or sharedEnv.xeno ~= nil or sharedEnv.Xeno ~= nil or sharedEnv.XENO ~= nil --make by 09u dont skid
local isSolara = lowerExecutorName:find("solara") ~= nil or sharedEnv.solara ~= nil or sharedEnv.Solara ~= nil or sharedEnv.SOLARA ~= nil --make by 09u dont skid
if isXeno or isSolara then --make by 09u dont skid
pcall(function() --make by 09u dont skid
game:GetService("StarterGui"):SetCore("SendNotification", { --make by 09u dont skid
Title = "不支持此注入器", --make by 09u dont skid
Text = "检测到注入器 " .. tostring(executorName) .. ",本脚本不支持 Xeno / Solara,请更换其他注入器", --make by 09u dont skid
Duration = 10 --make by 09u dont skid
}) --make by 09u dont skid
end) --make by 09u dont skid
return --make by 09u dont skid
end --make by 09u dont skid
getgenv().AutoFish = true --make by 09u dont skid
local Players = game:GetService("Players") --make by 09u dont skid
local ReplicatedStorage = game:GetService("ReplicatedStorage") --make by 09u dont skid
local PathfindingService = game:GetService("PathfindingService") --make by 09u dont skid
local VirtualInputManager = game:GetService("VirtualInputManager") --make by 09u dont skid
for _, module in ReplicatedStorage.Packets:GetChildren() do --make by 09u dont skid
if module:IsA("ModuleScript") then --make by 09u dont skid
pcall(require, module) --make by 09u dont skid
end --make by 09u dont skid
end --make by 09u dont skid
local Fishing = require(ReplicatedStorage.Packets.Fishing) --make by 09u dont skid
local localPlayer = Players.LocalPlayer --make by 09u dont skid
local NPC_POSITION = Vector3.new(100.5, 107.5, -296.75) --make by 09u dont skid
local fishingState = getgenv().AutoFishState --make by 09u dont skid
if not fishingState then --make by 09u dont skid
fishingState = { --make by 09u dont skid
inventory = {}, --make by 09u dont skid
gameEndTime = nil, --make by 09u dont skid
fishingBegan = false, --make by 09u dont skid
sellAcknowledged = false, --make by 09u dont skid
lastSellRequest = nil --make by 09u dont skid
} --make by 09u dont skid
getgenv().AutoFishState = fishingState --make by 09u dont skid
end --make by 09u dont skid
local inventoryCountLabel = nil --make by 09u dont skid
local function getCharacter() --make by 09u dont skid
return localPlayer.Character or localPlayer.CharacterAdded:Wait() --make by 09u dont skid
end --make by 09u dont skid
local function getHumanoid() --make by 09u dont skid
return getCharacter():WaitForChild("Humanoid") --make by 09u dont skid
end --make by 09u dont skid
local function getRootPart() --make by 09u dont skid
return getCharacter():WaitForChild("HumanoidRootPart") --make by 09u dont skid
end --make by 09u dont skid
local function pressJump() --make by 09u dont skid
VirtualInputManager:SendKeyEvent(true, Enum.KeyCode.Space, false, game) --make by 09u dont skid
task.delay(0.12, function() --make by 09u dont skid
VirtualInputManager:SendKeyEvent(false, Enum.KeyCode.Space, false, game) --make by 09u dont skid
end) --make by 09u dont skid
end --make by 09u dont skid
local function findInventoryLabel() --make by 09u dont skid
if inventoryCountLabel and inventoryCountLabel.Parent then --make by 09u dont skid
return inventoryCountLabel --make by 09u dont skid
end --make by 09u dont skid
inventoryCountLabel = nil --make by 09u dont skid
for _, descendant in localPlayer.PlayerGui:GetDescendants() do --make by 09u dont skid
if descendant:IsA("TextLabel") and descendant.Text:match("^Inventory% %[%d+ / %d+%]$") then --make by 09u dont skid
inventoryCountLabel = descendant --make by 09u dont skid
break --make by 09u dont skid
end --make by 09u dont skid
end --make by 09u dont skid
return inventoryCountLabel --make by 09u dont skid
end --make by 09u dont skid
local function getInventoryCount() --make by 09u dont skid
local label = findInventoryLabel() --make by 09u dont skid
if label then --make by 09u dont skid
local count, capacity = label.Text:match("^Inventory% %[(%d+) / (%d+)%]$") --make by 09u dont skid
if count then --make by 09u dont skid
return tonumber(count), tonumber(capacity) --make by 09u dont skid
end --make by 09u dont skid
end --make by 09u dont skid
local count = 0 --make by 09u dont skid
for _ in fishingState.inventory do --make by 09u dont skid
count = count + 1 --make by 09u dont skid
end --make by 09u dont skid
return count, 20 --make by 09u dont skid
end --make by 09u dont skid
local function walkTo(targetPosition) --make by 09u dont skid
for _ = 1, 5 do --make by 09u dont skid
if not getgenv().AutoFish then --make by 09u dont skid
return false --make by 09u dont skid
end --make by 09u dont skid
local humanoid = getHumanoid() --make by 09u dont skid
local rootPart = getRootPart() --make by 09u dont skid
local path = PathfindingService:CreatePath({AgentRadius = 2, AgentHeight = 5, AgentCanJump = true, WaypointSpacing = 3}) --make by 09u dont skid
local computed = pcall(function() --make by 09u dont skid
path:ComputeAsync(rootPart.Position, targetPosition) --make by 09u dont skid
end) --make by 09u dont skid
if computed and path.Status == Enum.PathStatus.Success then --make by 09u dont skid
local waypoints = path:GetWaypoints() --make by 09u dont skid
local pathFailed = false --make by 09u dont skid
for waypointIndex, waypoint in ipairs(waypoints) do --make by 09u dont skid
if not getgenv().AutoFish then --make by 09u dont skid
return false --make by 09u dont skid
end --make by 09u dont skid
local waypointStartTime = tick() --make by 09u dont skid
local lastPosition = rootPart.Position --make by 09u dont skid
local jumpPressed = false --make by 09u dont skid
local waypointReached = false --make by 09u dont skid
local climbRetries = 0 --make by 09u dont skid
local isJumpWaypoint = waypoint.Action == Enum.PathWaypointAction.Jump --make by 09u dont skid
while tick() - waypointStartTime < 6 do --make by 09u dont skid
humanoid:MoveTo(waypoint.Position) --make by 09u dont skid
task.wait(0.15) --make by 09u dont skid
local offset = rootPart.Position - waypoint.Position --make by 09u dont skid
local horizontalDistance = (Vector3.new(offset.X, 0, offset.Z)).Magnitude --make by 09u dont skid
local tolerance = waypointIndex == #waypoints and 2.5 or 4 --make by 09u dont skid
if isJumpWaypoint then --make by 09u dont skid
if horizontalDistance < 2.5 and offset.Y > -1.5 then --make by 09u dont skid
waypointReached = true --make by 09u dont skid
break --make by 09u dont skid
end --make by 09u dont skid
if not jumpPressed and horizontalDistance < 3 then --make by 09u dont skid
pressJump() --make by 09u dont skid
jumpPressed = true --make by 09u dont skid
end --make by 09u dont skid
if offset.Y < -1.5 and horizontalDistance < 3.5 and tick() - waypointStartTime > 1.2 and climbRetries < 4 then --make by 09u dont skid
climbRetries = climbRetries + 1 --make by 09u dont skid
local horizontalOffset = Vector3.new(offset.X, 0, offset.Z) --make by 09u dont skid
local backDirection = horizontalOffset.Magnitude > 0.5 and horizontalOffset.Unit or Vector3.new(0, 0, 1) --make by 09u dont skid
humanoid:MoveTo(waypoint.Position + backDirection * 5) --make by 09u dont skid
task.wait(0.5) --make by 09u dont skid
humanoid:MoveTo(waypoint.Position) --make by 09u dont skid
local approachStart = tick() --make by 09u dont skid
while tick() - approachStart < 0.7 do --make by 09u dont skid
task.wait(0.1) --make by 09u dont skid
local approachOffset = rootPart.Position - waypoint.Position --make by 09u dont skid
if (Vector3.new(approachOffset.X, 0, approachOffset.Z)).Magnitude < 2.8 then --make by 09u dont skid
pressJump() --make by 09u dont skid
break --make by 09u dont skid
end --make by 09u dont skid
end --make by 09u dont skid
waypointStartTime = tick() --make by 09u dont skid
end --make by 09u dont skid
elseif (horizontalDistance < tolerance and math.abs(offset.Y) < 4) or (horizontalDistance < 2 and offset.Y > -1.5) then --make by 09u dont skid
waypointReached = true --make by 09u dont skid
break --make by 09u dont skid
end --make by 09u dont skid
if (rootPart.Position - lastPosition).Magnitude < 0.3 then --make by 09u dont skid
pressJump() --make by 09u dont skid
task.wait(0.3) --make by 09u dont skid
end --make by 09u dont skid
lastPosition = rootPart.Position --make by 09u dont skid
end --make by 09u dont skid
if not waypointReached then --make by 09u dont skid
pathFailed = true --make by 09u dont skid
break --make by 09u dont skid
end --make by 09u dont skid
end --make by 09u dont skid
if not pathFailed and (rootPart.Position - targetPosition).Magnitude < 7 then --make by 09u dont skid
humanoid:MoveTo(rootPart.Position) --make by 09u dont skid
return true --make by 09u dont skid
end --make by 09u dont skid
end --make by 09u dont skid
task.wait(0.5) --make by 09u dont skid
end --make by 09u dont skid
return (getRootPart().Position - targetPosition).Magnitude < 8 --make by 09u dont skid
end --make by 09u dont skid
local function getFishingSpot() --make by 09u dont skid
local bestSpot = nil --make by 09u dont skid
local bestDistance = nil --make by 09u dont skid
for _, child in workspace.Map.Miscs.FishingPoints:GetChildren() do --make by 09u dont skid
if child:IsA("Model") and not child:GetAttribute("occupied") and child:GetAttribute("spotId") then --make by 09u dont skid
local playerLocation = child:GetAttribute("plrLoc") --make by 09u dont skid
if playerLocation then --make by 09u dont skid
local distance = (playerLocation.Position - NPC_POSITION).Magnitude --make by 09u dont skid
if not bestDistance or distance < bestDistance then --make by 09u dont skid
bestSpot = child --make by 09u dont skid
bestDistance = distance --make by 09u dont skid
end --make by 09u dont skid
end --make by 09u dont skid
end --make by 09u dont skid
end --make by 09u dont skid
return bestSpot --make by 09u dont skid
end --make by 09u dont skid
if not getgenv().AutoFishHooked4 then --make by 09u dont skid
getgenv().AutoFishHooked4 = true --make by 09u dont skid
Fishing.addFish.listen(function(fish) --make by 09u dont skid
getgenv().AutoFishState.inventory[fish.uid] = fish.id --make by 09u dont skid
end) --make by 09u dont skid
Fishing.removeFish.listen(function(uid) --make by 09u dont skid
getgenv().AutoFishState.inventory[uid] = nil --make by 09u dont skid
end) --make by 09u dont skid
Fishing.sellAllFish.listen(function(fishId) --make by 09u dont skid
getgenv().AutoFishState.lastSellRequest = fishId --make by 09u dont skid
Fishing.sellAllFishConfirm.send(true) --make by 09u dont skid
end) --make by 09u dont skid
Fishing.sellFish.listen(function() --make by 09u dont skid
Fishing.sellConfirm.send(true) --make by 09u dont skid
end) --make by 09u dont skid
Fishing.sellAllFishConfirm.listen(function() --make by 09u dont skid
getgenv().AutoFishState.sellAcknowledged = true --make by 09u dont skid
end) --make by 09u dont skid
Fishing.beginFishing.listen(function() --make by 09u dont skid
getgenv().AutoFishState.fishingBegan = true --make by 09u dont skid
end) --make by 09u dont skid
Fishing.playGame.listen(function(params) --make by 09u dont skid
getgenv().AutoFishState.gameEndTime = tonumber(params.endTimestamp) --make by 09u dont skid
end) --make by 09u dont skid
end --make by 09u dont skid
local notFishNames = {Frame = true, ImageButton = true, ImageLabel = true, TextLabel = true, TextButton = true, ScrollingFrame = true, CanvasGroup = true, ViewportFrame = true, Inventory = true, Index = true, GearIndex = true, ItemIndex = true, Dialog = true, Speaking = true, Speaker = true} --make by 09u dont skid
local function findShopWindow() --make by 09u dont skid
local playerGui = localPlayer.PlayerGui --make by 09u dont skid
local shopLabel = nil --make by 09u dont skid
for _, descendant in playerGui:GetDescendants() do --make by 09u dont skid
if descendant:IsA("TextLabel") and descendant.Text:find("Fishing Shop") then --make by 09u dont skid
shopLabel = descendant --make by 09u dont skid
break --make by 09u dont skid
end --make by 09u dont skid
end --make by 09u dont skid
if not shopLabel then --make by 09u dont skid
return nil --make by 09u dont skid
end --make by 09u dont skid
local node = shopLabel --make by 09u dont skid
for _ = 1, 10 do --make by 09u dont skid
node = node.Parent --make by 09u dont skid
if not node then --make by 09u dont skid
return nil --make by 09u dont skid
end --make by 09u dont skid
for _, descendant in node:GetDescendants() do --make by 09u dont skid
if descendant:IsA("GuiButton") then --make by 09u dont skid
local text = "" --make by 09u dont skid
if descendant:IsA("TextButton") then --make by 09u dont skid
text = descendant.Text --make by 09u dont skid
else --make by 09u dont skid
local textLabel = descendant:FindFirstChildWhichIsA("TextLabel", true) --make by 09u dont skid
text = textLabel and textLabel.Text or "" --make by 09u dont skid
end --make by 09u dont skid
if text == "Sell All" then --make by 09u dont skid
return node --make by 09u dont skid
end --make by 09u dont skid
end --make by 09u dont skid
end --make by 09u dont skid
end --make by 09u dont skid
return nil --make by 09u dont skid
end --make by 09u dont skid
local function collectOwnedFishIds() --make by 09u dont skid
local fishIds = {} --make by 09u dont skid
for _, fishId in fishingState.inventory do --make by 09u dont skid
fishIds[fishId] = true --make by 09u dont skid
end --make by 09u dont skid
local shopWindow = findShopWindow() --make by 09u dont skid
if shopWindow then --make by 09u dont skid
for _, descendant in shopWindow:GetDescendants() do --make by 09u dont skid
if descendant:IsA("Frame") and not notFishNames[descendant.Name] and descendant:FindFirstChildWhichIsA("ViewportFrame", true) then --make by 09u dont skid
fishIds[descendant.Name] = true --make by 09u dont skid
end --make by 09u dont skid
end --make by 09u dont skid
end --make by 09u dont skid
if not next(fishIds) then --make by 09u dont skid
for _, descendant in localPlayer.PlayerGui:GetDescendants() do --make by 09u dont skid
if descendant:IsA("Frame") and not notFishNames[descendant.Name] and descendant:FindFirstChildWhichIsA("ViewportFrame", true) then --make by 09u dont skid
fishIds[descendant.Name] = true --make by 09u dont skid
end --make by 09u dont skid
end --make by 09u dont skid
end --make by 09u dont skid
return fishIds --make by 09u dont skid
end --make by 09u dont skid
local function sellAllFish() --make by 09u dont skid
while getgenv().AutoFish do --make by 09u dont skid
local count = getInventoryCount() --make by 09u dont skid
if count == 0 then --make by 09u dont skid
return true --make by 09u dont skid
end --make by 09u dont skid
if not walkTo(NPC_POSITION) then --make by 09u dont skid
task.wait(1) --make by 09u dont skid
else --make by 09u dont skid
for fishId in collectOwnedFishIds() do --make by 09u dont skid
if not getgenv().AutoFish then --make by 09u dont skid
return false --make by 09u dont skid
end --make by 09u dont skid
for _ = 1, 3 do --make by 09u dont skid
local countBefore = getInventoryCount() --make by 09u dont skid
fishingState.sellAcknowledged = false --make by 09u dont skid
Fishing.sellAllFish.send(fishId) --make by 09u dont skid
local sendTime = tick() --make by 09u dont skid
while not fishingState.sellAcknowledged and tick() - sendTime < 1 do --make by 09u dont skid
task.wait(0.05) --make by 09u dont skid
end --make by 09u dont skid
if getInventoryCount() < countBefore then --make by 09u dont skid
break --make by 09u dont skid
end --make by 09u dont skid
end --make by 09u dont skid
end --make by 09u dont skid
task.wait(0.3) --make by 09u dont skid
end --make by 09u dont skid
end --make by 09u dont skid
return false --make by 09u dont skid
end --make by 09u dont skid
local function fishOnce(spot) --make by 09u dont skid
fishingState.gameEndTime = nil --make by 09u dont skid
fishingState.fishingBegan = false --make by 09u dont skid
Fishing.start.send(spot:GetAttribute("spotId")) --make by 09u dont skid
local startTime = tick() --make by 09u dont skid
while getgenv().AutoFish and not fishingState.fishingBegan and tick() - startTime < 8 do --make by 09u dont skid
task.wait(0.1) --make by 09u dont skid
end --make by 09u dont skid
if not fishingState.fishingBegan then --make by 09u dont skid
Fishing.quit.send() --make by 09u dont skid
task.wait(0.5) --make by 09u dont skid
return --make by 09u dont skid
end --make by 09u dont skid
startTime = tick() --make by 09u dont skid
while getgenv().AutoFish and not fishingState.gameEndTime and tick() - startTime < 60 do --make by 09u dont skid
task.wait(0.1) --make by 09u dont skid
end --make by 09u dont skid
if not fishingState.gameEndTime then --make by 09u dont skid
Fishing.quit.send() --make by 09u dont skid
task.wait(0.5) --make by 09u dont skid
return --make by 09u dont skid
end --make by 09u dont skid
while getgenv().AutoFish and workspace:GetServerTimeNow() < fishingState.gameEndTime - 0.35 do --make by 09u dont skid
task.wait(0.02) --make by 09u dont skid
end --make by 09u dont skid
Fishing.gameResult.send(true) --make by 09u dont skid
task.wait(1) --make by 09u dont skid
end --make by 09u dont skid
local resultScreenTexts = {["Fish Caught!"] = true, ["Fishing Failed"] = true, ["Fish Caught...?"] = true} --make by 09u dont skid
task.spawn(function() --make by 09u dont skid
local watchedPanel = nil --make by 09u dont skid
local watchConnection = nil --make by 09u dont skid
while getgenv().AutoFish do --make by 09u dont skid
local mainInterface = localPlayer.PlayerGui:FindFirstChild("MainInterface") --make by 09u dont skid
local resultPanel = nil --make by 09u dont skid
if mainInterface then --make by 09u dont skid
for _, descendant in mainInterface:GetDescendants() do --make by 09u dont skid
if descendant:IsA("TextLabel") and resultScreenTexts[descendant.Text] then --make by 09u dont skid
resultPanel = descendant.Parent --make by 09u dont skid
break --make by 09u dont skid
end --make by 09u dont skid
end --make by 09u dont skid
end --make by 09u dont skid
if resultPanel and resultPanel:IsA("ImageLabel") then --make by 09u dont skid
if resultPanel.Visible then --make by 09u dont skid
resultPanel.Visible = false --make by 09u dont skid
end --make by 09u dont skid
if resultPanel ~= watchedPanel then --make by 09u dont skid
if watchConnection then --make by 09u dont skid
watchConnection:Disconnect() --make by 09u dont skid
end --make by 09u dont skid
watchedPanel = resultPanel --make by 09u dont skid
watchConnection = resultPanel:GetPropertyChangedSignal("Visible"):Connect(function() --make by 09u dont skid
if watchedPanel.Visible then --make by 09u dont skid
watchedPanel.Visible = false --make by 09u dont skid
end --make by 09u dont skid
end) --make by 09u dont skid
end --make by 09u dont skid
end --make by 09u dont skid
task.wait(1) --make by 09u dont skid
end --make by 09u dont skid
if watchConnection then --make by 09u dont skid
watchConnection:Disconnect() --make by 09u dont skid
end --make by 09u dont skid
end) --make by 09u dont skid
task.spawn(function() --make by 09u dont skid
while getgenv().AutoFish do --make by 09u dont skid
local count, capacity = getInventoryCount() --make by 09u dont skid
if count >= capacity then --make by 09u dont skid
sellAllFish() --make by 09u dont skid
else --make by 09u dont skid
local spot = getFishingSpot() --make by 09u dont skid
if spot then --make by 09u dont skid
local playerLocation = spot:GetAttribute("plrLoc") --make by 09u dont skid
if (getRootPart().Position - playerLocation.Position).Magnitude > 7 then --make by 09u dont skid
walkTo(playerLocation.Position) --make by 09u dont skid
end --make by 09u dont skid
if (getRootPart().Position - playerLocation.Position).Magnitude <= 10 then --make by 09u dont skid
fishOnce(spot) --make by 09u dont skid
else --make by 09u dont skid
task.wait(1) --make by 09u dont skid
end --make by 09u dont skid
else --make by 09u dont skid
task.wait(2) --make by 09u dont skid
end --make by 09u dont skid
end --make by 09u dont skid
task.wait(0.3) --make by 09u dont skid
end --make by 09u dont skid
end) --make by 09u dont skidNo comments yet for this script.