Fishing Chef
Key Required

Fishing Chef

Fishing Chef (Update)Leo777Leo777 2.9K views 4.1K executesUpdated Jun 14, 2026
5.0/ 5(1 votes)
10100% Positive
Lua Script•793 lines (24114 chars)
local repo = "https://raw.githubusercontent.com/deividcomsono/Obsidian/main/"
local Library = loadstring(game:HttpGet(repo .. "Library.lua"))()
local ThemeManager = loadstring(game:HttpGet(repo .. "addons/ThemeManager.lua"))()
local SaveManager = loadstring(game:HttpGet(repo .. "addons/SaveManager.lua"))()

local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Workspace = game:GetService("Workspace")
local RunService = game:GetService("RunService")
local Lighting = game:GetService("Lighting")
local UserInputService = game:GetService("UserInputService")
local VirtualUser = game:GetService("VirtualUser")

-- Services & Variables
local Fish = ReplicatedStorage:WaitForChild("Packages"):WaitForChild("Knit"):WaitForChild("Services"):WaitForChild("Fish")
local RF = Fish:WaitForChild("RF")
local RE = Fish:WaitForChild("RE")

local SellFishRemote = RE:WaitForChild("SellFish")
local StartCutSessionRemote = RF:WaitForChild("StartCutSession")
local CutActionRemote = RE:WaitForChild("CutAction")
local ServerAnimsRemote = RE:WaitForChild("ServerAnims")
local CutFishRemote = RF:WaitForChild("CutFish")
local RequestRestaurauntDataRemote = RF:WaitForChild("RequestRestaurauntData")
local CookRemote = RF:WaitForChild("Cook")

-- State (using original variable names)
local autoFish = false
local fishThread = nil
local autoSell = false
local sellThread = nil
local autoCookNigiri = false
local cookNigiriThread = nil
local autoCookSushi = false
local cookSushiThread = nil
local autoCookSashimi = false
local cookSashimiThread = nil
local selectedFishingLocation = 1 -- Default to first location

-- Misc State
_G.fullbright = false
_G.noFog = false
_G.forceDayTime = false
_G.forceNightTime = false
_G.ambientEnabled = false
_G.ambientR = 0.32156862745098
_G.ambientG = 0.32156862745098
_G.ambientB = 0.32156862745098
_G.walkSpeed = 16
_G.fly = false
_G.flySpeed = 50
_G.flingWalk = false
_G.antiFling = false
_G.jumpPower = 50

-- NEW Locations! (Added "No TP (Stay Here)")
local locations = {
    { Name = "No TP (Stay Here)", Position = nil },
    { Name = "Moon Tuna Hunt", Position = Vector3.new(60, 10, -858) },
    { Name = "Moon Tuna Islands 2", Position = Vector3.new(-166, 9, -817) },
    { Name = "Moon Tuna Islands 3", Position = Vector3.new(40, 8, -586) },
    { Name = "Koi Pond", Position = Vector3.new(-88, 11, -1350) },
    { Name = "Shark Hunt", Position = Vector3.new(-16, 4, 325) },
    { Name = "Bamboo Islands", Position = Vector3.new(-2359, 4, -928) },
    { Name = "Snow Islands", Position = Vector3.new(-3743, 6, 1484) },
    { Name = "Location 1", Position = Vector3.new(-112.332, 2.689, -1336.005) },
    { Name = "Location 2", Position = Vector3.new(-3875.299, 38.839, 1557.888) },
    { Name = "Location 3", Position = Vector3.new(-1315.620, 37.832, 1635.639) },
    { Name = "Location 4 (Ocean)", Position = Vector3.new(-2.137, 23.070, 175.539) }
}

-- Create location names list for dropdown
local locationNames = {}
for i, loc in ipairs(locations) do
    table.insert(locationNames, loc.Name)
end

-- Anti AFK
LocalPlayer.Idled:Connect(function()
    VirtualUser:Button2Down(Vector2.new(0, 0), Workspace.CurrentCamera.CFrame)
    task.wait(0.1)
    VirtualUser:Button2Up(Vector2.new(0, 0), Workspace.CurrentCamera.CFrame)
end)

-- Helper Functions
local function teleportToLocation(position)
    if not position then return end -- Don't teleport if "No TP"
    local char = LocalPlayer.Character
    if char and char:FindFirstChild("HumanoidRootPart") then
        char.HumanoidRootPart.CFrame = CFrame.new(position)
    end
end

local function findCuttingBoard()
    local plot = Workspace:FindFirstChild("Code"):FindFirstChild("Plots")
    if plot then
        local playerPlot = plot:FindFirstChild(LocalPlayer.Name)
        if playerPlot then
            local stall = playerPlot:FindFirstChild("STALL")
            if stall then
                local station = stall:FindFirstChild("CookingStation")
                if station then
                    return station:FindFirstChild("CuttingBoard")
                end
            end
        end
    end
    return nil
end

local function getInventory()
    local fishList = {}
    local ok, data = pcall(function() return RF.RequestFishData:InvokeServer() end)
    if ok and type(data) == "table" then
        for _, fish in ipairs(data) do
            if type(fish) == "table" and fish.ID then
                table.insert(fishList, {
                    ID = fish.ID,
                    CF = fish.CF or fish.Name or "tuna",
                    Mutations = fish.Mutations or {},
                    Data = fish.Data or 1,
                    Value = fish.Value or 0
                })
            end
        end
    end
    return fishList
end

-- === EXACT ORIGINAL AUTO FUNCTIONS FROM YOUR SCRIPT! ===

local function startFishLoop()
    fishThread = task.spawn(function()
        -- Teleport to selected location only if it's not "No TP"
        local selectedLoc = locations[selectedFishingLocation]
        if selectedLoc and selectedLoc.Position then
            teleportToLocation(selectedLoc.Position)
        end
        
        while autoFish do
            pcall(function() RF.CastRequest:InvokeServer(99999999999) end)
            task.wait(3)
            pcall(function() RF.MinigameResolved:InvokeServer(true) end)
            task.wait(1)
        end
    end)
end

local function startSellLoop()
    sellThread = task.spawn(function()
        while autoSell do
            for id = 1, 1000 do
                if not autoSell then break end
                pcall(function()
                    SellFishRemote:FireServer({{ ID = id, Name = "fish", Weight = 9999999999 }})
                end)
                task.wait(0.005)
            end
            task.wait(0.3)
        end
    end)
end

local function cookSingleFish(fishData, dish)
    pcall(function() StartCutSessionRemote:InvokeServer() end)
    task.wait(0.2)
    pcall(function() CutActionRemote:FireServer(1) end)
    task.wait(0.2)
    pcall(function() CutActionRemote:FireServer(2) end)
    task.wait(0.2)
    local board = findCuttingBoard()
    if board then
        pcall(function() ServerAnimsRemote:FireServer("CuttingBoard", board, false) end)
    end
    task.wait(0.2)
    pcall(function() CutFishRemote:InvokeServer(1, 1.85) end)
    task.wait(0.2)
    pcall(function() RequestRestaurauntDataRemote:InvokeServer() end)
    task.wait(0.2)

    pcall(function()
        CookRemote:InvokeServer(dish, {
            CF = fishData.CF,
            Name = "Fish Filet",
            Amount = 1,
            Value = fishData.Value,
            Mutations = fishData.Mutations,
            Data = fishData.Data,
            ID = fishData.ID
        })
    end)
end

local function startCookLoop(dish, enabledFlag)
    return task.spawn(function()
        while enabledFlag() do
            local fishList = getInventory()
            if #fishList > 0 then
                for _, fish in ipairs(fishList) do
                    if not enabledFlag() then break end
                    cookSingleFish(fish, dish)
                    task.wait(4)
                end
            end
            task.wait(1)
        end
    end)
end

-- === ANTI-FLING FUNCTION ===
local antiFlingLastPos = nil
local antiFlingConnection = nil
local function startAntiFling()
    if antiFlingConnection then return end
    antiFlingConnection = RunService.Heartbeat:Connect(function()
        if not _G.antiFling then return end
        local char = LocalPlayer.Character
        if not char then return end
        local hrp = char:FindFirstChild("HumanoidRootPart")
        if not hrp then return end
        
        local LastPos = antiFlingLastPos or hrp.Position
        local LastVelocity = (hrp.AssemblyLinearVelocity.Magnitude > 250 and Vector3.new(0,0,0)) or hrp.AssemblyLinearVelocity
        local LastAngularVelocity = (hrp.AssemblyAngularVelocity.Magnitude > 250 and Vector3.new(0,0,0)) or hrp.AssemblyAngularVelocity
        
        if hrp.AssemblyLinearVelocity.Magnitude > 250 or hrp.AssemblyAngularVelocity.Magnitude > 250 then
            hrp.AssemblyLinearVelocity = LastVelocity
            hrp.AssemblyAngularVelocity = LastAngularVelocity
            hrp.CFrame = CFrame.new(LastPos)
        else
            antiFlingLastPos = hrp.Position
        end
    end)
end

-- === FLING WALK FUNCTION (FIXED TO NOT FLING YOU, ONLY OTHER PLAYERS!) ===
local flingWalkConnection = nil
local function startFlingWalk()
    if flingWalkConnection then return end
    flingWalkConnection = RunService.Heartbeat:Connect(function()
        if not _G.flingWalk then return end
        local char = LocalPlayer.Character
        if not char then return end
        local hrp = char:FindFirstChild("HumanoidRootPart")
        local hum = char:FindFirstChildOfClass("Humanoid")
        if not hrp or not hum then return end
        
        -- Keep YOU completely stable!
        hrp.AssemblyLinearVelocity = Vector3.new(0, 0, 0)
        hrp.AssemblyAngularVelocity = Vector3.new(0, 0, 0)
        hrp.RotVelocity = Vector3.new(0, 0, 0)
        
        -- Check all other players
        for _, player in ipairs(Players:GetPlayers()) do
            if player ~= LocalPlayer and player.Character then
                local targetChar = player.Character
                local targetHrp = targetChar:FindFirstChild("HumanoidRootPart")
                local targetHum = targetChar:FindFirstChildOfClass("Humanoid")
                if targetHrp and targetHum then
                    local distance = (hrp.Position - targetHrp.Position).Magnitude
                    if distance < 10 then -- Flings players within 10 studs
                        -- Calculate strong fling direction (away from you)
                        local direction = (targetHrp.Position - hrp.Position).Unit
                        -- Apply huge velocity to fling THEM far away
                        targetHrp.AssemblyLinearVelocity = direction * 600 + Vector3.new(0, 350, 0)
                        targetHrp.RotVelocity = Vector3.new(math.random(-800, 800), math.random(-800, 800), math.random(-800, 800))
                        
                        -- Try to set network ownership to make fling more effective
                        pcall(function()
                            targetHrp:SetNetworkOwner(LocalPlayer)
                        end)
                    end
                end
            end
        end
    end)
end

local function stopFlingWalk()
    if flingWalkConnection then
        flingWalkConnection:Disconnect()
        flingWalkConnection = nil
    end
    local char = LocalPlayer.Character
    if char then
        local hrp = char:FindFirstChild("HumanoidRootPart")
        if hrp then
            hrp.RotVelocity = Vector3.new(0,0,0)
            hrp.AssemblyLinearVelocity = Vector3.new(0,0,0)
            hrp.AssemblyAngularVelocity = Vector3.new(0,0,0)
        end
    end
end

-- === LIGHTING SYSTEM (UPDATED NO FOG) ===
local function updateLighting()
    -- Fullbright (not too bright!)
    if _G.fullbright then
        Lighting.Brightness = 2
        Lighting.GlobalShadows = false
        Lighting.Ambient = Color3.new(0.8, 0.8, 0.8)
        Lighting.OutdoorAmbient = Color3.new(0.8, 0.8, 0.8)
        Lighting.ExposureCompensation = 0.5
    end
    
    -- No Fog (UPDATED)
    if _G.noFog then
        Lighting.FogEnd = 100000000
        Lighting.FogStart = 100000000
        Lighting.FogColor = Color3.new(1,1,1)
    end
    
    -- Force Day/Night Time (no flicker!)
    if _G.forceDayTime then
        Lighting.ClockTime = 14
        Lighting.TimeOfDay = "14:00:00"
        Lighting.GeographicLatitude = 0
    elseif _G.forceNightTime then
        Lighting.ClockTime = 23
        Lighting.TimeOfDay = "23:00:00"
        Lighting.GeographicLatitude = 0
    end
    
    -- Ambient
    if _G.ambientEnabled then
        Lighting.Ambient = Color3.new(_G.ambientR, _G.ambientG, _G.ambientB)
        Lighting.OutdoorAmbient = Color3.new(_G.ambientR, _G.ambientG, _G.ambientB)
    end
end

-- Block the game from changing time
local clockTimeConn = Lighting:GetPropertyChangedSignal("ClockTime"):Connect(function()
    if _G.forceDayTime then
        Lighting.ClockTime = 14
    elseif _G.forceNightTime then
        Lighting.ClockTime = 23
    end
end)

local timeOfDayConn = Lighting:GetPropertyChangedSignal("TimeOfDay"):Connect(function()
    if _G.forceDayTime then
        Lighting.TimeOfDay = "14:00:00"
    elseif _G.forceNightTime then
        Lighting.TimeOfDay = "23:00:00"
    end
end)

-- Block the game from changing fog properties
local fogEndConn = Lighting:GetPropertyChangedSignal("FogEnd"):Connect(function()
    if _G.noFog then
        Lighting.FogEnd = 100000000
    end
end)

local fogStartConn = Lighting:GetPropertyChangedSignal("FogStart"):Connect(function()
    if _G.noFog then
        Lighting.FogStart = 100000000
    end
end)

-- Run lighting update every frame
local lightingConnection = RunService.Heartbeat:Connect(updateLighting)

-- === MOVEMENT FUNCTIONS ===
local function updateCharacterStats()
    local char = LocalPlayer.Character
    if char then
        local hum = char:FindFirstChildOfClass("Humanoid")
        if hum then
            hum.WalkSpeed = _G.walkSpeed
            hum.JumpPower = _G.jumpPower
        end
    end
end

-- Fly System
local flyConnection = nil
local function startFly()
    if flyConnection then return end
    flyConnection = RunService.Heartbeat:Connect(function()
        if not _G.fly then return end
        local char = LocalPlayer.Character
        if not char then return end
        local hrp = char:FindFirstChild("HumanoidRootPart")
        if not hrp then return end
        local hum = char:FindFirstChildOfClass("Humanoid")
        if not hum then return end
        
        hum.PlatformStand = true
        
        local camera = Workspace.CurrentCamera
        local direction = Vector3.new()
        
        if UserInputService:IsKeyDown(Enum.KeyCode.W) then
            direction = direction + camera.CFrame.LookVector
        end
        if UserInputService:IsKeyDown(Enum.KeyCode.S) then
            direction = direction - camera.CFrame.LookVector
        end
        if UserInputService:IsKeyDown(Enum.KeyCode.A) then
            direction = direction - camera.CFrame.RightVector
        end
        if UserInputService:IsKeyDown(Enum.KeyCode.D) then
            direction = direction + camera.CFrame.RightVector
        end
        if UserInputService:IsKeyDown(Enum.KeyCode.Space) then
            direction = direction + Vector3.new(0, 1, 0)
        end
        if UserInputService:IsKeyDown(Enum.KeyCode.LeftControl) then
            direction = direction - Vector3.new(0, 1, 0)
        end
        
        if direction.Magnitude > 0 then
            direction = direction.Unit * _G.flySpeed
        end
        
        hrp.Velocity = direction
    end)
end

local function stopFly()
    if flyConnection then
        flyConnection:Disconnect()
        flyConnection = nil
    end
    local char = LocalPlayer.Character
    if char then
        local hum = char:FindFirstChildOfClass("Humanoid")
        if hum then
            hum.PlatformStand = false
        end
    end
end

-- Character Added Event
LocalPlayer.CharacterAdded:Connect(function()
    updateCharacterStats()
    if _G.fly then
        task.wait(0.5)
        startFly()
    end
end)

-- Create UI
Library.ForceCheckbox = false
Library.ShowToggleFrameInKeybinds = true

local Window = Library:CreateWindow({
    Title = "Fishing Chef",
    NotifySide = "Right",
    ShowCustomCursor = true,
    Footer = "IdkhubXApelhub",
})

Library:AddDraggableLabel("Fishing Chef - IdkhubXApelhub")

local Tabs = {
    Auto = Window:AddTab("Auto", "pickaxe"),
    Cooking = Window:AddTab("Cooking", "shopping-cart"),
    Teleport = Window:AddTab("Teleport", "map"),
    Misc = Window:AddTab("Misc", "wrench"),
    Settings = Window:AddTab("Settings", "settings"),
}

-- Auto Tab
local AutoLeft = Tabs.Auto:AddLeftGroupbox("Auto Fishing & Selling")

AutoLeft:AddToggle("AutoFishToggle", {
    Text = "Auto Fishing",
    Default = false,
    Callback = function(v)
        autoFish = v
        if v then
            startFishLoop()
        else
            if fishThread then
                task.cancel(fishThread)
                fishThread = nil
            end
        end
    end
})

AutoLeft:AddDropdown("FishingLocationDropdown", {
    Text = "Fishing Location",
    Default = 1, -- Default to "No TP"
    Values = locationNames,
    Callback = function(v)
        -- Find which location this is
        for i, name in ipairs(locationNames) do
            if name == v then
                selectedFishingLocation = i
                -- If auto fish is already running and not "No TP", teleport to new location
                if autoFish then
                    local selectedLoc = locations[i]
                    if selectedLoc and selectedLoc.Position then
                        teleportToLocation(selectedLoc.Position)
                    end
                end
                break
            end
        end
    end
})

AutoLeft:AddToggle("AutoSellToggle", {
    Text = "Auto Sell",
    Default = false,
    Callback = function(v)
        autoSell = v
        if v then
            startSellLoop()
        else
            if sellThread then
                task.cancel(sellThread)
                sellThread = nil
            end
        end
    end
})

-- Cooking Tab (EXACT ORIGINAL CALLBACKS!)
local CookingLeft = Tabs.Cooking:AddLeftGroupbox("Auto Cooking")

CookingLeft:AddToggle("AutoCookNigiriToggle", {
    Text = "Auto Cook Nigiri",
    Default = false,
    Callback = function(v)
        autoCookNigiri = v
        if v then
            cookNigiriThread = startCookLoop("Nigiri", function() return autoCookNigiri end)
        else
            if cookNigiriThread then
                task.cancel(cookNigiriThread)
                cookNigiriThread = nil
            end
        end
    end
})

CookingLeft:AddToggle("AutoCookSushiToggle", {
    Text = "Auto Cook Sushi",
    Default = false,
    Callback = function(v)
        autoCookSushi = v
        if v then
            cookSushiThread = startCookLoop("Sushi", function() return autoCookSushi end)
        else
            if cookSushiThread then
                task.cancel(cookSushiThread)
                cookSushiThread = nil
            end
        end
    end
})

CookingLeft:AddToggle("AutoCookSashimiToggle", {
    Text = "Auto Cook Sashimi",
    Default = false,
    Callback = function(v)
        autoCookSashimi = v
        if v then
            cookSashimiThread = startCookLoop("Sashimi", function() return autoCookSashimi end)
        else
            if cookSashimiThread then
                task.cancel(cookSashimiThread)
                cookSashimiThread = nil
            end
        end
    end
})

-- Teleport Tab
local TeleportLeft = Tabs.Teleport:AddLeftGroupbox("Quick Teleport")

for _, loc in ipairs(locations) do
    if loc.Position then -- Skip "No TP" from quick teleport buttons
        TeleportLeft:AddButton({
            Text = loc.Name,
            Callback = function()
                teleportToLocation(loc.Position)
                Library:Notify({
                    Title = "Teleport",
                    Description = "Teleported to " .. loc.Name,
                    Duration = 2
                })
            end
        })
    end
end

-- Misc Tab
local MiscLeft = Tabs.Misc:AddLeftGroupbox("Visual")
local MiscMovement = Tabs.Misc:AddLeftGroupbox("Movement")

MiscLeft:AddToggle("FullbrightToggle", {
    Text = "Fullbright",
    Default = false,
    Callback = function(v)
        _G.fullbright = v
        updateLighting()
    end
})

MiscLeft:AddToggle("NoFogToggle", {
    Text = "No Fog",
    Default = false,
    Callback = function(v)
        _G.noFog = v
        updateLighting()
    end
})

MiscLeft:AddToggle("ForceDayTimeToggle", {
    Text = "Force Day Time",
    Default = false,
    Callback = function(v)
        _G.forceDayTime = v
        if v then
            _G.forceNightTime = false
        end
        updateLighting()
    end
})

MiscLeft:AddToggle("ForceNightTimeToggle", {
    Text = "Force Night Time",
    Default = false,
    Callback = function(v)
        _G.forceNightTime = v
        if v then
            _G.forceDayTime = false
        end
        updateLighting()
    end
})

MiscLeft:AddToggle("AmbientEnabledToggle", {
    Text = "Enable Ambient Changer",
    Default = false,
    Callback = function(v)
        _G.ambientEnabled = v
        updateLighting()
    end
})

MiscLeft:AddSlider("AmbientRSlider", {
    Text = "Ambient Red",
    Default = 0.32156862745098,
    Min = 0,
    Max = 1,
    Rounding = 2,
    Callback = function(val)
        _G.ambientR = val
        updateLighting()
    end
})

MiscLeft:AddSlider("AmbientGSlider", {
    Text = "Ambient Green",
    Default = 0.32156862745098,
    Min = 0,
    Max = 1,
    Rounding = 2,
    Callback = function(val)
        _G.ambientG = val
        updateLighting()
    end
})

MiscLeft:AddSlider("AmbientBSlider", {
    Text = "Ambient Blue",
    Default = 0.32156862745098,
    Min = 0,
    Max = 1,
    Rounding = 2,
    Callback = function(val)
        _G.ambientB = val
        updateLighting()
    end
})

MiscMovement:AddSlider("WalkSpeedSlider", {
    Text = "Walk Speed",
    Default = 16,
    Min = 16,
    Max = 100,
    Rounding = 0,
    Callback = function(val)
        _G.walkSpeed = val
        updateCharacterStats()
    end
})

MiscMovement:AddSlider("JumpPowerSlider", {
    Text = "Jump Power",
    Default = 50,
    Min = 50,
    Max = 200,
    Rounding = 0,
    Callback = function(val)
        _G.jumpPower = val
        updateCharacterStats()
    end
})

MiscMovement:AddToggle("FlyToggle", {
    Text = "Fly (WASD, Space, Ctrl)",
    Default = false,
    Callback = function(v)
        _G.fly = v
        if v then
            startFly()
        else
            stopFly()
        end
    end
})

MiscMovement:AddSlider("FlySpeedSlider", {
    Text = "Fly Speed",
    Default = 50,
    Min = 10,
    Max = 200,
    Rounding = 0,
    Callback = function(val)
        _G.flySpeed = val
    end
})

MiscMovement:AddToggle("FlingWalkToggle", {
    Text = "Fling Walk (Fling Other Players)",
    Default = false,
    Callback = function(v)
        _G.flingWalk = v
        if v then
            startFlingWalk()
        else
            stopFlingWalk()
        end
    end
})

MiscMovement:AddToggle("AntiFlingToggle", {
    Text = "Anti Fling",
    Default = false,
    Callback = function(v)
        _G.antiFling = v
        if v then
            startAntiFling()
        end
    end
})

-- Settings Tab (for Obsidian Lib config)
local SettingsLeft = Tabs.Settings:AddLeftGroupbox("Menu")
SettingsLeft:AddButton("Unload", function()
    -- Clean up
    stopFly()
    stopFlingWalk()
    if antiFlingConnection then antiFlingConnection:Disconnect() end
    if lightingConnection then lightingConnection:Disconnect() end
    if clockTimeConn then clockTimeConn:Disconnect() end
    if timeOfDayConn then timeOfDayConn:Disconnect() end
    if fogEndConn then fogEndConn:Disconnect() end
    if fogStartConn then fogStartConn:Disconnect() end
    Library:Unload()
end)
SettingsLeft:AddLabel("Menu bind"):AddKeyPicker("MenuKeybind", {
    Default = "End",
    NoUI = true,
    Text = "Menu keybind"
})
Library.ToggleKeybind = Library.Options.MenuKeybind
ThemeManager:SetLibrary(Library)
SaveManager:SetLibrary(Library)
SaveManager:IgnoreThemeSettings()
SaveManager:SetIgnoreIndexes({
    "MenuKeybind"
})
ThemeManager:SetFolder("FishingChef")
SaveManager:SetFolder("FishingChef/Configs")
SaveManager:BuildConfigSection(Tabs.Settings)
ThemeManager:ApplyToTab(Tabs.Settings)
SaveManager:LoadAutoloadConfig()

-- Notify that script loaded
Library:Notify({
    Title = "Fishing Chef",
    Description = "Loaded - IdkhubXApelhub",
    Duration = 5
})

Features & Information

Jun 10th, 2026

Community Comments (0)

No comments yet for this script.