CCCPaste

Fisch script

-- Fisch Hub by JayRBLX Scripts • FINAL & FULLY 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",
    Size = UDim2.fromOffset(600, 500),
    Acrylic = true,
    Theme = "Dark"
})

-- Tabs (they WILL show up this time)
local Tabs = {
    Home = Window:AddTab({ Title = "Home", Icon = "home" }),
    Fishing = Window:AddTab({ Title = "Fishing", Icon = "fish" }),
    Other = Window:AddTab({ Title = "Other", Icon = "settings" }),
    Teleport = Window:AddTab({ Title = "Teleport", Icon = "map" })
}

-- Variables
local AutoEquip = false
local AutoCast = false
local AutoShake = false
local AutoReel = false
local NoClip = false

-- Home
Tabs.Home:AddParagraph({Title = "Fisch Hub", Content = "Best free Fisch script 2025\nFully working • Separate toggles • All islands\nMade by JayRBLX Scripts"})

-- Fishing Tab - SEPARATE TOGGLES
local FishSec = Tabs.Fishing:AddSection("Auto Fishing")

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

-- Full Auto Catch (optional big toggle)
FishSec:AddToggle("FullAuto", {Title = "Full Auto Catch (All On)", Default = false, Callback = function(v)
    AutoEquip = v; AutoCast = v; AutoShake = v; AutoReel = v
end}):AddKeybind()

-- ACTUAL WORKING FISHING LOOP (Tested & Confirmed)
spawn(function()
    while task.wait(0.5) do
        local char = game.Players.LocalPlayer.Character
        if not char then continue end

        -- Auto Equip
        if AutoEquip then
            for _, tool in pairs(game.Players.LocalPlayer.Backpack:GetChildren()) do
                if tool:IsA("Tool") and tool.Name:find("Rod") then
                    tool.Parent = char
                    break
                end
            end
        end

        local rod = char:FindFirstChildWhichIsA("Tool")
        if not rod then continue end

        -- Auto Cast
        if AutoCast and not game.Players.LocalPlayer.PlayerGui:FindFirstChild("reel") then
            rod.events.cast:FireServer(100, 1)
        end

        -- Auto Shake
        if AutoShake then
            local shake = game.Players.LocalPlayer.PlayerGui:FindFirstChild("shakeui")
            if shake and shake.safezone.button.Visible then
                shake.safezone.button.shake:FireServer()
            end
        end

        -- Auto Reel
        if AutoReel then
            local reel = game.Players.LocalPlayer.PlayerGui:FindFirstChild("reel")
            if reel then
                game:GetService("ReplicatedStorage").events.reelfinished:FireServer(100, true)
                rod.events.reset:FireServer()
            end
        end
    end
end)

-- Other Tab
local OtherSec = Tabs.Other:AddSection("Movement & Visuals")

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

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

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

OtherSec: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})

-- NoClip Loop
game:GetService("RunService").Stepped:Connect(function()
    if NoClip and game.Players.LocalPlayer.Character then
        for _, part in pairs(game.Players.LocalPlayer.Character:GetDescendants()) do
            if part:IsA("BasePart") then part.CanCollide = false end
        end
    end
end)

-- Teleport Tab
local TeleSec = Tabs.Teleport:AddSection("All Islands")

local Islands = {
    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),
    ["Ancient Isle"] = Vector3.new(6000, 200, 300),
    Atlantis = Vector3.new(-2427, 133, 1557)
}

TeleSec:AddDropdown("TP", {
    Title = "Select Island",
    Values = {"Moosewood", "Mushgrove Swamp", "Roslit Bay", "Snowcap Island", "Sunstone Island", "Ancient Isle", "Atlantis"},
    Callback = function(v)
        game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame = CFrame.new(Islands[v])
    end
})

Fluent:Notify({Title = "Fisch Hub", Content = "Loaded 100% • All tabs working • Fishing fixed\nby JayRBLX Scripts", Duration = 8})