Fishing

🎣 TSS-Fishing Documentation


⚙️ Setup Instructions

1. Installation

  1. Create a folder in your server resources called [tinysprite] (if not already created).

  2. Place the tss-fishing folder inside [tinysprite].

  3. Add the following to your server.cfg:

ensure [tinysprite]
  1. Import the items from _install/items into your item management system (OX Inventory, QB Inventory, etc.).

  2. Configure config.lua to suit your server’s preferences.


📁 Config Overview

The core settings can be found in config.lua. Example:

Config = {
    System = {
        Debug = true,            -- Show fishing zone debug markers
        Menu = "ox",             -- "qb" or "ox"
        Notify = "qb",           -- "qb", "ox", "esx", "okok", "gta"
        ProgressBar = "ox",      -- "qb" or "ox"
        skillCheck = "ox",       -- Skillcheck source: "ox" or "qb"
    },
    UseLevelSystem = false,      -- Enables XP tracking via tss-skills or your own system
    SkillCode = 'fishing',       -- Used for XP type matching
    DoubleXP = false,            -- Enable to double the XP awarded per catch
    JobRequired = {
        Enable = false,
        Jobcode = 'fisherman',
        Label = "Fisherman",
    },
    FishAnywhere = true,         -- Allow fishing anywhere, or restrict to zones
    FishingZones = {
        {Coords = vector3(-198.2, 794.38, 198.11), Radius = 20.0},
    },
    FishingRelievesStress = true,
    StressReliefAmount = 1,
    MiniGame = true,             -- Enables the bite skillcheck minigame
    CatchTime = {Min = 5, Max = 10},
    PutRodAwayTime = 60,         -- Seconds before auto-holstering rod
}

🎣 How Fishing Works

  1. Stand near water.

  2. Use your rod item (e.g., fishingrod).

  3. You'll get a notification to apply bait.

  4. Wait for a bite, then complete the minigame (if enabled).

  5. Catch a fish from the matching bait list.

  6. Cancel fishing anytime by using the rod again.


🎒 Fishing Items Setup

Each rod or bait is defined in Config.FishingItems. Example:

['fishingrod'] = {
    Type = 'rod',
    CatchMultiplier = 20, -- % chance bonus
},
['fishingbait'] = {
    Type = 'bait',
    CatchList = { "fish", "stripedbass", "salmon" }
}

You can create unlimited rods and bait combinations.


🐟 Reward Table

Set catch chances and XP for each fish in Config.FishingRewards.

Example:

["salmon"] = {
    Chance = 70,
    XPGive = 1
},
["tigersharkmeat"] = {
    Chance = 30,
    XPGive = 1
}
  • Chance is the likelihood of being caught (higher = more common).

  • XPGive is the XP awarded if using a skill system.


🧠 Optional Skill System

You can track player fishing XP using:

  • tss-skills (free)

  • Your own skill tracker via server/main/AddSkillXP()

Enable via:

UseLevelSystem = true,
SkillCode = 'fishing',

Supports Double XP via DoubleXP = true.


🧩 Extras

  • Stress Relief: Set FishingRelievesStress = true to reduce stress per catch.

  • Fishing Zones: Set FishAnywhere = false and define zones under FishingZones.

  • Auto Rod Timeout: Rods are auto-stowed if idle for PutRodAwayTime seconds.


🖥️ UI & Menu Support

  • Fully supports both ox_lib and qb-menu.

  • Notifications, minigames, and progress bars are all configurable.

System = {
    Menu = "ox",
    Notify = "qb",
    ProgressBar = "ox",
    skillCheck = "ox",
}

Adjust to match your server's framework or visual preferences.


📦 Dependencies

Required:

Jim_Bridge is a cross-framework tool used to support menus, notifications, minigames, and more. It can be extended to support other inventories or frameworks easily.


🔧 Developer Notes

  • No database required — zero DB queries used

  • Easy to extend with new rods, bait types, or reward logic

  • Modular by design — fishing logic is self-contained and performance optimised


© TinySprite Scripts — Building immersive and optimised roleplay tools for FiveM.

Last updated