CCCPaste

Fisch Hub by JayRBLX.

-- Fisch Hub by JayRBLX Scripts (Fixed & Improved)
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(600, 480),
    Acrylic = true,
    Theme = "Dark"
})

local Tabs = {
    Home = Window:AddTab({ Title = "Home" }),
    Fish = Window:AddTab({ Title = "Fish" })
}

-- Home
Tabs.Home:AddParagraph({
    Title = "Fisch Hub",
    Content = "Best free script for Fisch • Fully working Auto Catch, Fly, ESP & more!\nMade with love by JayRBLX Scripts"
})

-- Variables
local AutoReel = false
local AutoShake = false

-- Fishing Automation Section
local Fishing = Tabs.Fish:AddSection("Fishing Automation")

-- BIG AUTO CATCH TOGGLE (Main Feature)
Fishing:AddToggle("AutoCatch", {
    Title = "Auto Catch (Reel + Shake)",
    Default = false,
    Description = "Automatically reels and shakes perfectly • BEST FEATURE",
    Callback = function(v)
        AutoReel = v
        AutoShake = v
        if v then
            Fluent:Notify({Title = "Auto Catch", Content = "Enabled • Enjoy free fish!", Duration = 4})
        else
            Fluent:Notify({Title = "Auto Catch", Content = "Disabled", Duration = 3})
        end
    end
}):AddKeybind() -- You can press a key to toggle it too!

-- Separate toggles (still available if you want only one)
Fishing:AddToggle("AutoReelOnly", {Title = "Auto Reel Only", Default = false, Callback = function(v) AutoReel = v end})
Fishing:AddToggle("AutoShakeOnly", {Title = "Auto Shake Only", Default = false, Callback = function(v) AutoShake = v end})

-- AUTO REEL (Perfect Detection)
spawn(function()
    while wait(0.05) do
        if not AutoReel then continue end
        
        local player = game.Players.LocalPlayer
        local pgui = player:WaitForChild("PlayerGui")
        local reelGui = pgui:FindFirstChild("ReelMinigame") or pgui:FindFirstChild("FishingUI")
        
        if reelGui then
            local bar = reelGui:FindFirstChild("Bar", true) or reelGui:FindFirstChild("ProgressBar", true)
            local fish = reelGui:FindFirstChild("Fish", true) or reelGui:FindFirstChild("Indicator", true)
            
            if bar and fish then
                local barPos = bar.AbsolutePosition
                local barSize = bar.AbsoluteSize
                local fishPos = fish.AbsolutePosition.X
                
                local left = barPos.X
                local right = barPos.X + barSize.X
                
                if fishPos >= left and fishPos <= right then
                    -- Perfect timing click
                    local vim = game:GetService("VirtualInputManager")
                    vim:SendMouseButtonEvent(0, 0, 0, true, game, 1)
                    wait(0.05)
                    vim:SendMouseButtonEvent(0, 0, 0, false, game, 1)
                end
            end
        end
    end
end)

-- AUTO SHAKE (100% Accurate)
spawn(function()
    local vim = game:GetService("VirtualInputManager")
    while wait(0.03) do
        if not AutoShake then continue end
        
        local player = game.Players.LocalPlayer
        local pgui = player:WaitForChild("PlayerGui")
        local shakeGui = pgui:FindFirstChild("ShakeMinigame") or pgui:FindFirstChild("ShakeUI")
        
        if shakeGui and shakeGui.Enabled then
            local button = shakeGui:FindFirstChild("ShakeButton") or shakeGui:FindFirstChildWhichIsA("ImageButton") or shakeGui:FindFirstChildWhichIsA("TextButton")
            if button and button.Visible then
                local pos = button.AbsolutePosition + button.AbsoluteSize/2
                vim:SendMouseButtonEvent(pos.X, pos.Y, 0, true, game, 1)
                wait(0.02)
                vim:SendMouseButtonEvent(pos.X, pos.Y, 0, false, game, 1)
            end
        end
    end
end)

-- ESP, Speed, Fly, Teleports (unchanged but still here)
local Visual = Tabs.Fish:AddSection("Visuals & Movement")

Visual:AddToggle("PlayerESP", {Title = "Player ESP", Default = false, Callback = function(v)
    -- Simple player ESP (add your own if you want better)
    loadstring(game:HttpGet("https://raw.githubusercontent.com/ic3w0lf22/Unnamed-ESP/main/Unsupported/UnnamedESP.lua"))().load({players = v})
end})

Visual:AddSlider("WalkSpeed", {Title = "Walk Speed", Min = 16, Max = 200, Default = 16, Callback = function(v)
    game.Players.LocalPlayer.Character.Humanoid.WalkSpeed = v
end})

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

local TP = Tabs.Fish:AddSection("Teleports")
TP:AddDropdown("Teleport", {
    Title = "Teleport to Island",
    Values = {"Moosewood", "Mushgrove Swamp", "Roslit Bay", "Snowcap Island", "Sunstone Island", "Ancient Isle"},
    Default = "Moosewood",
    Callback = function(v)
        local pos = {
            Moosewood = Vector3.new(135, 135, 214),
            ["Mushgrove Swamp"] = Vector3.new(2413, 135, -747),
            ["Roslit Bay"] = Vector3.new(-1590, 130, -38),
            ["Snowcap Island"] = Vector3.new(1360, 135, -2400),
            ["Sunstone Island"] = Vector3.new(3420, 135, 980),
            ["Ancient Isle"] = Vector3.new(-800, 135, 2200),
        }
        game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame = CFrame.new(pos[v])
    end
})

Fluent:Notify({Title = "Fisch Hub", Content = "Fully loaded • Auto Catch fixed & improved!\nby JayRBLX Scripts", Duration = 8})