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 skid