CCCPaste

Fisch script

-- Fisch Hub by JayRBLX Scripts (Fully Fixed & Working)
local Fluent = loadstring(game:HttpGet("https://github.com/dawid-scripts/Fluent/releases/latest/download/main.lua"))()
local Window = Fluent:CreateWindow({
    Title = "Fisch Hub • by JayRBLX Scripts",
    TabWidth = 160,
    Size = UDim2.fromOffset(620, 500),
    Acrylic = true,
    Theme = "Dark"
})

local Tabs = {
    Home = Window:AddTab({ Title = "Home" }),
    Fishing = Window:AddTab({ Title = "Fishing" }),
    Other = Window:AddTab({ Title = "Other" }),
    Teleport = Window:AddTab({ Title = "Teleport" })
}

-- Home Tab
Tabs.Home:AddParagraph({
    Title = "Fisch Hub",
    Content = "Fully fixed script by JayRBLX Scripts!\n• Separate Auto Features (Equip, Cast, Shake, Reel)\n• All Islands Teleports with Accurate Coords\n• ESP, Fly, NoClip & More\nNow 100% working - Enjoy!"
})

-- Variables
local AutoEquipRod = false
local AutoCast = false
local AutoShake = false
local AutoReel = false
local NoClip = false
local MapESP = {}

local RS = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer
local PlayerGui = LocalPlayer.PlayerGui

-- Auto Equip Rod Loop
spawn(function()
    while wait(2) do
        if AutoEquipRod then
            local Backpack = LocalPlayer.Backpack
            local Character = LocalPlayer.Character
            if Character then
                local rod = nil
                -- Find best rod (or any rod)
                for _, tool in pairs(Backpack:GetChildren()) do
                    if tool:IsA("Tool") and (string.find(tool.Name:lower(), "rod")) then
                        rod = tool
                        break -- Equip first found for simplicity
                    end
                end
                if rod and not Character:FindFirstChildOfClass("Tool") then
                    rod.Parent = Character
                end
            end
        end
    end
end)

-- Auto Cast Loop
spawn(function()
    while wait(1) do
        if AutoCast then
            local Character = LocalPlayer.Character
            if Character then
                local rod = Character:FindFirstChildOfClass("Tool")
                if rod and rod:FindFirstChild("events") then
                    rod.events.cast:FireServer(100, 1)
                end
            end
        end
    end
end)

-- Auto Shake Loop
spawn(function()
    while wait(0.05) do
        if AutoShake then
            local shakeui = PlayerGui:FindFirstChild("shakeui")
            if shakeui then
                local safezone = shakeui:FindFirstChild("safezone")
                if safezone then
                    local button = safezone:FindFirstChild("button")
                    if button and button.Visible then
                        local shakeEvent = button:FindFirstChild("shake")
                        if shakeEvent then
                            shakeEvent:FireServer()
                        end
                    end
                end
            end
        end
    end
end)

-- Auto Reel Loop
spawn(function()
    while wait(0.1) do
        if AutoReel then
            local reel = PlayerGui:FindFirstChild("reel")
            if reel then
                local tool = LocalPlayer.Character:FindFirstChildOfClass("Tool")
                if tool and tool:FindFirstChild("events") then
                    RS.events["reelfinished "]:FireServer(100, true)
                    tool.events.reset:FireServer()
                end
            end
        end
    end
end)

-- Fishing Tab
local FishingSection = Tabs.Fishing:AddSection("Fishing Automation")

-- BIG AUTO CATCH TOGGLE (Enables All)
local AutoCatchToggle = FishingSection:AddToggle("AutoCatch", {
    Title = "🚀 Auto Catch (All Features)",
    Default = false,
    Description = "Enables Equip Rod + Cast + Shake + Reel",
    Callback = function(v)
        AutoEquipRod = v
        AutoCast = v
        AutoShake = v
        AutoReel = v
        if v then
            Fluent:Notify({Title = "Auto Catch", Content = "ON • Full auto fishing enabled!", Duration = 4})
        end
    end
})
AutoCatchToggle:AddKeybind()

FishingSection:AddToggle("AutoEquipRod", {Title = "Auto Equip Rod", Default = false, Callback = function(v) AutoEquipRod = v end})
FishingSection:AddToggle("AutoCast", {Title = "Auto Cast", Default = false, Callback = function(v) AutoCast = v end})
FishingSection:AddToggle("AutoShake", {Title = "Auto Shake", Default = false, Callback = function(v) AutoShake = v end})
FishingSection:AddToggle("AutoReel", {Title = "Auto Reel", Default = false, Callback = function(v) AutoReel = v end})

-- Other Tab
local MovementSec = Tabs.Other:AddSection("Movement")
local VisualSec = Tabs.Other:AddSection("Visuals")

-- Movement
MovementSec:AddSlider("WalkSpeed", {
    Title = "Walk Speed", Min = 16, Max = 300, Default = 16, 
    Callback = function(v)
        local char = LocalPlayer.Character
        if char and char:FindFirstChild("Humanoid") then
            char.Humanoid.WalkSpeed = v
        end
    end
})

MovementSec:AddButton({
    Title = "Fly (Mobile/PC)",
    Callback = function()
        loadstring(game:HttpGet("https://rawscripts.net/raw/Universal-Script-Gui-Fly-v3-37111"))()
    end
})

MovementSec:AddToggle("NoClip", {
    Title = "No Clip",
    Default = false,
    Callback = function(v)
        NoClip = v
    end
})

spawn(function()
    local RunService = game:GetService("RunService")
    RunService.Heartbeat:Connect(function()
        if NoClip then
            local char = LocalPlayer.Character
            if char then
                for _, part in pairs(char:GetDescendants()) do
                    if part:IsA("BasePart") then
                        part.CanCollide = false
                    end
                end
            end
        end
    end)
end)

-- Visuals
VisualSec:AddToggle("PlayerESP", {
    Title = "Player ESP",
    Default = false,
    Callback = function(v)
        loadstring(game:HttpGet("https://raw.githubusercontent.com/ic3w0lf22/Unnamed-ESP/main/Unsupported/UnnamedESP.lua"))().load({players = v})
    end
})

VisualSec:AddToggle("MapESP", {
    Title = "Map ESP",
    Default = false,
    Callback = function(v)
        if v then
            -- Clear old
            for _, esp in pairs(MapESP) do if esp then esp:Destroy() end end
            MapESP = {}
            -- Island models
            local islands = {"Moosewood", "MushgroveSwamp", "RoslitBay", "SnowcapIsland", "SunstoneIsland", "TerrapinIsland", "StatueOfSovereignty", "ForsakenShores", "HarvestersSpike", "TheArch", "BirchCay", "HaddockRock", "EarmarkIsland", "DesolateDeep", "AncientIsle", "GrandReef", "Atlantis"}
            for _, islandName in pairs(islands) do
                local model = workspace:FindFirstChild(islandName)
                if model then
                    local primary = model.PrimaryPart or model:FindFirstChild("SpawnLocation") or model:FindFirstChildOfClass("Part")
                    if primary then
                        local bb = Instance.new("BillboardGui")
                        bb.Adornee = primary
                        bb.Size = UDim2.new(0, 200, 0, 50)
                        bb.StudsOffset = Vector3.new(0, 10, 0)
                        bb.Parent = primary
                        local label = Instance.new("TextLabel")
                        label.Size = UDim2.new(1, 0, 1, 0)
                        label.BackgroundTransparency = 1
                        label.Text = islandName:gsub("([A-Z])", " %1"):gsub("^%s", ""):gsub("Swamp", " Swamp")
                        label.TextColor3 = Color3.new(0, 1, 0)
                        label.TextStrokeTransparency = 0
                        label.TextScaled = true
                        label.Font = Enum.Font.GothamBold
                        label.Parent = bb
                        table.insert(MapESP, bb)
                    end
                end
            end
        else
            for _, esp in pairs(MapESP) do if esp then esp:Destroy() end end
            MapESP = {}
        end
    end
})

-- Teleport Tab
local TeleSec = Tabs.Teleport:AddSection("All Islands Teleports")
local tpPositions = {
    ["Moosewood"] = Vector3.new(400, 135, 250),
    ["Mushgrove Swamp"] = Vector3.new(2420, 135, -750),
    ["Roslit Bay"] = Vector3.new(-1600, 130, 500),
    ["Snowcap Island"] = Vector3.new(2625, 135, 2370),
    ["Sunstone Island"] = Vector3.new(-870, 135, -1100),
    ["Terrapin Island"] = Vector3.new(-95, 130, 1875),
    ["Statue of Sovereignty"] = Vector3.new(35, 135, -1010),
    ["Forsaken Shores"] = Vector3.new(-2750, 130, 1450),
    ["Harvester's Spike"] = Vector3.new(-1260, 135, 1550),
    ["The Arch"] = Vector3.new(1100, 130, -1250),
    ["Birch Cay"] = Vector3.new(1650, 130, -2350),
    ["Haddock Rock"] = Vector3.new(-500, 125, -505),
    ["Earmark Island"] = Vector3.new(1200, 130, 530),
    ["Desolate Deep"] = Vector3.new(-800, 130, -3100),
    ["Ancient Isle"] = Vector3.new(6000, 200, 300),
    ["Grand Reef"] = Vector3.new(-3555, 150, 510),
    ["Atlantis"] = Vector3.new(-2427, 133, 1557)
}

local islandNames = {"Moosewood", "Mushgrove Swamp", "Roslit Bay", "Snowcap Island", "Sunstone Island", "Terrapin Island", "Statue of Sovereignty", "Forsaken Shores", "Harvester's Spike", "The Arch", "Birch Cay", "Haddock Rock", "Earmark Island", "Desolate Deep", "Ancient Isle", "Grand Reef", "Atlantis"}

TeleSec:AddDropdown("TPDropdown", {
    Title = "Teleport to Island",
    Values = islandNames,
    Multi = false,
    Default = "Moosewood",
    Callback = function(value)
        local char = LocalPlayer.Character
        if char and char:FindFirstChild("HumanoidRootPart") then
            char.HumanoidRootPart.CFrame = CFrame.new(tpPositions[value])
            Fluent:Notify({Title = "Teleport", Content = "Teleported to " .. value .. "!", Duration = 3})
        end
    end
})

Fluent:Notify({
    Title = "Fisch Hub Loaded!",
    Content = "Fixed: Separate toggles, accurate remotes, all tabs visible • by JayRBLX Scripts",
    Duration = 8
})