-- Fisch Hub by JayRBLX Scripts (Reorganized & Enhanced)
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 reorganized script by JayRBLX Scripts!\n• Auto Cast + Shake = Infinite Fish\n• All Islands Teleports\n• ESP, Fly, NoClip & More\nEnjoy responsibly!"
})
-- Variables
local AutoCast = false
local AutoShake = false
local NoClip = false
local MapESP = {}
-- AUTO CAST (New - Replaces Reel)
spawn(function()
local vim = game:GetService("VirtualInputManager")
while wait(1) do
if AutoCast then
local player = game.Players.LocalPlayer
local pgui = player.PlayerGui
local castBtn = nil
-- Smart detection for Cast button
for _, gui in pairs(pgui:GetDescendants()) do
if (gui:IsA("TextButton") or gui:IsA("ImageButton")) and
(string.find(gui.Name:lower(), "cast") or string.find(gui.Text:lower(), "cast")) and
gui.Visible and gui.Parent.Visible then
castBtn = gui
break
end
end
-- Fallback: Fishing GUI Cast
if not castBtn then
local fishingGui = pgui:FindFirstChild("Fishing") or pgui:FindFirstChild("FishingGUI") or pgui:FindFirstChild("RodUI")
if fishingGui then
castBtn = fishingGui:FindFirstChild("Cast", true) or fishingGui:FindFirstChild("CastButton", true)
end
end
if castBtn then
local pos = castBtn.AbsolutePosition + castBtn.AbsoluteSize / 2
vim:SendMouseButtonEvent(pos.X, pos.Y, 0, true, game, 1)
wait(0.05)
vim:SendMouseButtonEvent(pos.X, pos.Y, 0, false, game, 1)
Fluent:Notify({Title = "Auto Cast", Content = "Cast sent!", Duration = 1})
end
end
end
end)
-- AUTO SHAKE (Perfect)
spawn(function()
local vim = game:GetService("VirtualInputManager")
while wait(0.03) do
if AutoShake then
local player = game.Players.LocalPlayer
local pgui = player:WaitForChild("PlayerGui")
local shakeGui = pgui:FindFirstChild("ShakeMinigame") or pgui:FindFirstChild("ShakeGUI") or pgui:FindFirstChild("Shake")
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
end)
-- Fishing Tab
local FishingSection = Tabs.Fishing:AddSection("Fishing Automation")
-- BIG AUTO CATCH TOGGLE
local AutoCatchToggle = FishingSection:AddToggle("AutoCatch", {
Title = "🚀 Auto Catch (Cast + Shake)",
Default = false,
Description = "Full auto fishing - infinite legendaries!",
Callback = function(v)
AutoCast = v
AutoShake = v
if v then
Fluent:Notify({Title = "Auto Catch", Content = "ON • Catching fish automatically!", Duration = 4})
end
end
})
AutoCatchToggle:AddKeybind()
FishingSection:AddToggle("AutoCastOnly", {Title = "Auto Cast Only", Default = false, Callback = function(v) AutoCast = v end})
FishingSection:AddToggle("AutoShakeOnly", {Title = "Auto Shake Only", Default = false, Callback = function(v) AutoShake = 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 = game.Players.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
local char = game.Players.LocalPlayer.Character
if char then
for _, part in pairs(char:GetDescendants()) do
if part:IsA("BasePart") then
part.CanCollide = not v
end
end
end
end
})
spawn(function()
local rs = game:GetService("RunService")
rs.Heartbeat:Connect(function()
if NoClip then
local char = game.Players.LocalPlayer.Character
if char then
for _, part in pairs(char:GetDescendants()) do
if part:IsA("BasePart") and part ~= char.HumanoidRootPart 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 esp:Destroy() end
MapESP = {}
-- Island names to ESP
local islands = {"Moosewood", "MushgroveSwamp", "RoslitBay", "SnowcapIsland", "SunstoneIsland", "TerrapinIsland", "ForsakenShores", "AncientIsle", "GrandReef", "StatueOfSovereignty"}
for _, islandName in pairs(islands) do
local model = workspace:FindFirstChild(islandName:gsub(" ", ""))
if model then
local head = model:FindFirstChild("Head") or model.PrimaryPart or model:FindFirstChildOfClass("Part")
if head then
local bb = Instance.new("BillboardGui")
bb.Adornee = head
bb.Size = UDim2.new(0, 200, 0, 50)
bb.StudsOffset = Vector3.new(0, 3, 0)
bb.Parent = head
local label = Instance.new("TextLabel")
label.Size = UDim2.new(1, 0, 1, 0)
label.BackgroundTransparency = 1
label.Text = islandName
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 esp:Destroy() end
MapESP = {}
end
end
})
-- Teleport Tab
local TeleSec = Tabs.Teleport:AddSection("All Islands")
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)
}
TeleSec:AddDropdown("TPDropdown", {
Title = "Teleport to Island",
Values = {"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"},
Multi = false,
Default = "Moosewood",
Callback = function(value)
local char = game.Players.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 = "All tabs reorganized • Auto Cast added • Enjoy by JayRBLX Scripts!",
Duration = 8
})