JANIEL Resources
  • 🎉Welcome
  • JANIEL-DOCS
    • 🛥️ILLEGAL TUG TRADER
      • 🛠️INSTALLATION
      • 📃CONFIGURATION FILE
    • 🛵FASTFOOD DELIVERY
      • 🛠️INSTALLATION
      • 📃CONFIGURATION FILE
    • 🕊️Spawn Selector
      • 🛠️INSTALLATION
      • 📃CONFIGURATION FILE
    • ⛽FUELSTATIONS
      • 🛠️INSTALLATION
      • 📃CONFIGURATION FILE
    • 🎣FISHING
      • 🛠️INSTALLATION
      • 📃CONFIGURATION FILE
    • 🔄PROGRESSBAR
      • 🛠️INSTALLATION
      • 📃CONFIGURATION FILE
    • 📢NOTIFY
      • 🛠️INSTALLATION
      • 📃CONFIGURATION FILE
    • 🏨MOTEL MENU
      • 🛠️INSTALLATION
      • 📃CONFIGURATION FILE
    • ☠️Death Log
      • 🛠️INSTALLATION
      • 📃CONFIGURATION FILE
    • 🏕️Camp Object
      • 🛠️INSTALLATION
      • 📃CONFIGURATION FILE
    • 💸Money Log
      • 🛠️INSTALLATION
      • 📃CONFIGURATION FILE
    • 💃Animation Menu
      • 📃CONFIGURATION FILE
      • 🛠️INSTALLATION
Powered by GitBook
On this page
  1. JANIEL-DOCS
  2. FISHING

CONFIGURATION FILE

Config = {}
Config.Debug = false -- Enable debug mode for development

-- Framework Settings
Config.Framework = "qb" -- Framework type: "qb" for QB-Core, "esx" for ESX
Config.NotifyType = "qb" -- "qb", "esx", "ox", "custom"
Config.Inventory = {
    type = "qb", -- "qb", "ox", "esx"
}
Config.Interaction = {
    type = "ox_lib", -- "qb-target", "ox_target", "ox_lib"
    distance = 2.0,
    options = {
        normal = {
            icon = "fas fa-fish",
            label = "Fish Shop",
            text = "[E] Fish Shop" -- For DrawText
        },
        illegal = {
            icon = "fas fa-skull",
            label = "Talk with Stranger",
            text = "[E] Talk with Stranger" -- For DrawText
        }
    }
}

Config.Webhooks = {
    illegal_sales = "DISCORD_WEBHOOK_URL",
    normal_sales = "DISCORD_WEBHOOK_URL"
}

-- Location Settings
Config.Locations = {
    FishShop = {
        coords = vector4(-1856.18, -1230.25, 13.02, 314.97), -- Shop NPC location
        model = "a_m_y_beach_01", -- NPC model hash
        scenario = "WORLD_HUMAN_STAND_FISHING", -- NPC idle animation
    },
    IllegalShop = {
        coords = vector4(-1857.88, -1228.57, 13.02, 319.02), -- Black market NPC location
        model = "g_m_m_armboss_01", -- NPC model hash
        scenario = "WORLD_HUMAN_STAND_IMPATIENT", -- NPC idle animation
    }
}

-- Boat Rental Configuration
Config.BoatRental = {
    npc = {
        coords = vector4(-1797.89, -1224.82, 1.60, 228.36),
        model = "s_m_y_dockwork_01",
        scenario = "WORLD_HUMAN_CLIPBOARD",
    },
    spawn = {
        coords = vector4(-1786.07, -1231.72, 1.48, 139.97)
    },
    vehicleKeys = "qb", -- "qb", "qs", "wasabi", "custom"
    rental_duration = false, -- false for unlimited time
    deposit = 500, -- Deposit 
    boats = {
        fishing_boat = {
            label = "Fishing Boat",
            price = 1000,
            image = "fishing_boat.png",
            model = "tug",
            description = "Standard fishing boat, perfect for beginners"
        },
        speed_boat = {
            label = "Speed Boat",
            price = 1500,
            image = "speed_boat.png",
            model = "dinghy",
            description = "Fast boat for experienced fishermen"
        },
        luxury_yacht = {
            label = "Luxury Yacht",
            price = 2000,
            image = "luxury_yacht.png",
            model = "marquis",
            description = "Luxury yacht with all amenities"
        }
    }
}

Config.Controls = {
    cancel_fishing = {
        key1 = 73,  -- X 
        key2 = 178, -- DEL 
        label = "[X] or [DEL] - Stop Fishing"
    }
}


-- Item Configuration
Config.Items = {
    --Fishing equipment
    fishingrod = {
        label = "Fishing Rod",
        price = 1000,
        image = "fishing-rod.png",
        type = "equipment"
    },
    fishbait = {
        label = "Fishing Bait",
        price = 50,
        image = "bait.png",
        type = "equipment"
    },
    -- Normal fish 
    tuna = {
        label = "Tuna",
        price = 250,
        image = "fish1.png",
        type = "normal_fish"
    },
    bass = {
        label = "Bass",
        price = 150,
        image = "fish3.png",
        type = "normal_fish"
    },
    trout = {
        label = "Trout",
        price = 150,
        image = "fish4.png",
        type = "normal_fish"
    },
    cod = {
        label = "Cod",
        price = 150,
        image = "fish5.png",
        type = "normal_fish"
    },
    salmon = {
        label = "Salmon",
        price = 300,
        image = "fish2.png",
        type = "normal_fish"
    },
    mackerel = {
        label = "Mackerel",
        price = 300,
        image = "fish6.png",
        type = "normal_fish"
    },
    -- Illegal fish
    shark = {
        label = "Shark",
        price = 2500,
        image = "shark.png",
        type = "illegal_fish"
    },

    dolphin = {
        label = "Dolphin",
        price = 3000,
        image = "dolphin.png",
        type = "illegal_fish"
        
    },
    killerwhale = {
        label = "Killer Whale",
        price = 3000,
        image = "killer_whale.png",
        type = "illegal_fish"
        
    }
}

-- Notification System Configuration
Config.Notifications = {
    bought_item = {
        title = "Fish Shop",
        description = "You bought %sx %s for $%s",
        type = "success"
    },
    sold_item = {
        title = "Fish Shop",
        description = "You sold %sx %s for $%s",
        type = "success"
    },
    not_enough_money = {
        title = "Fish Shop",
        description = "You don't have enough money!",
        type = "error"
    },
    fishing = {
        start = {
            title = "Fishing",
            message = "You started fishing...",
            type = "info"
        },
        no_rod = {
            title = "Error",
            message = "You need a fishing rod!",
            type = "error"
        },
        no_bait = {
            title = "Error",
            message = "You need bait!",
            type = "error"
        },
        wrong_zone = {
            title = "Error",
            message = "You need to be in a fishing zone!",
            type = "error"
        },
        fish_escaped = {
            title = "Fishing",
            message = "The fish got away!",
            type = "error"
        },
        fish_caught = {
            title = "Fishing",
            message = "You caught a %s!",
            type = "success"
        },
        no_police = {
            title = "Error",
            message = "Not enough police in the city!",
            type = "error"
        }
    },
    boat_rental = {
        rented = {
            title = "Boat Rental",
            message = "You rented a %s for $%s. Don't forget to return it in %d minutes!",
            type = "success"
        },
        returned = {
            title = "Boat Rental",
            message = "You returned the boat and got your deposit back: $%s",
            type = "success"
        },
        already_renting = {
            title = "Boat Rental",
            message = "You are already renting a boat!",
            type = "error"
        },
        not_enough_money = {
            title = "Boat Rental",
            message = "You need $%s to rent this boat! ($%s rental + $%s deposit)",
            type = "error"
        }
    }
}




Config.NotifySystem = {
    type = "default", -- Notification system: "default", "okoknotify", "mythic", "ox", "custom"
    triggers = {
        okoknotify = {
            resource = "okokNotify",
            trigger = "Alert" -- exports['okokNotify']:Alert()
        },
        mythic = {
            resource = "mythic_notify",
            trigger = "DoHudText" -- exports['mythic_notify']:DoHudText()
        },
        ox = {
            resource = "ox_lib",
            trigger = "notify" -- lib.notify()
        }
    }
}


-- Fishing System Settings
Config.Fishing = {
    required_items = {
        rod = "fishingrod",
        bait = "fishbait"
    },
    
    fishing_zones = {
        normal = {
            vector3(-1850.0, -1250.0, 1.0),
            vector3(-1750.0, -1150.0, 1.0),
        },
        illegal = {
            vector3(-2050.0, -1450.0, 1.0),
            vector3(-1950.0, -1350.0, 1.0),
        },
        radius = 50.0
    },

    catch_time = {
        min = 5000,
        max = 15000
    },

    catch_chances = {
        normal = {
            -- Regular fish pool (95% total chance)
            tuna = 25,     -- Common commercial fish (25% chance)
            salmon = 20,   -- Valuable sport fish (20% chance)
            bass = 20,     -- Popular game fish (20% chance)
            trout = 15,    -- Freshwater favorite (15% chance)
            cod = 10,      -- Standard market fish (10% chance)
            mackerel = 5,  -- Small commercial catch (5% chance)
            
            -- Rare illegal catches (5% total chance)
            shark = 2,     -- Rare protected species (2% chance)
            dolphin = 2,   -- Protected marine mammal (2% chance)
            killerwhale = 1 -- Extremely rare catch (1% chance)
            -- Total: 100%
        },
        
        illegal = {
            -- Regular fish pool (75% total chance)
            tuna = 20,     -- Still common but reduced (20% chance)
            salmon = 15,   -- Less frequent here (15% chance)
            bass = 15,     -- Standard catch (15% chance)
            trout = 10,    -- Occasional catch (10% chance)
            cod = 10,      -- Regular market fish (10% chance)
            mackerel = 5,  -- Least common regular fish (5% chance)
            
            -- Illegal catches (25% total chance)
            shark = 10,    -- Protected species, higher chance (10% chance)
            dolphin = 8,   -- Increased chance of rare catch (8% chance)
            killerwhale = 7 -- Still rare but more common (7% chance)
            -- Total: 100%
        }
    },

    minigame = {
        required = true,
        difficulty = {
            normal = {
                type = {'easy', 'easy', 'medium'},
                duration = 2000,
                keys = {'w', 'a', 's', 'd'}
            },
            illegal = {
                type = {'medium', 'medium', 'hard'},
                duration = 1500,
                keys = {'q', 'e', 'r', 'f'}
            }
        }
    },
    
    animations = {
        start = "mini@tennis@serve",
        fishing = "WORLD_HUMAN_STAND_FISHING",
        catch = "mini@tennis@return_serve"
    }
}

Config.Blips = {
    normal = {
        zones = true,      -- Show fishing zone blips
        shop = true,       -- Show fish shop blip
        settings = {
            shop = {
                sprite = 68,   -- Fish shop icon
                color = 3,     -- Blue color
                scale = 0.7,   -- Medium size
                label = "Fish Shop"
            },
            zones = {
                sprite = 404,  -- Zone marker
                color = 3,     -- Blue color
                scale = 0.6,   -- Slightly smaller
                label = "Fishing Zone",
                radius = 150.0 -- Zone radius size (in units)
            }
        }
    },
    illegal = {
        zones = true,      -- Show illegal zone blips
        shop = true,       -- Show black market blip
        settings = {
            shop = {
                sprite = 141,  -- Skull icon
                color = 1,     -- Red color
                scale = 0.7,   -- Medium size
                label = "Black Market"
            },
            zones = {
                sprite = 404,  -- Zone marker
                color = 1,     -- Red color
                scale = 0.6,   -- Slightly smaller
                label = "Illegal Fishing Zone",
                radius = 250.0 -- Zone radius size (in units)
            }
        }
    }
}


Config.AntiCheat = {
    enabled = true,
    max_attempts = 3, -- Maximum attempts in 10 seconds
    cooldown = 10000, -- Cooldown time in milliseconds
    punishment = {
        type = "kick", -- "kick" or "ban"
        reason = "Fishing exploit detected!"
    }
}

Config.Cache = {
    enabled = true,
    duration = 300000 -- Cache time (5 minutes)
} 


-- Notify function
Config.Notify = function(message, title, type, length)
    if Config.NotifySystem.type == "default" then
        if Config.Framework == "qb" then
            exports['qb-core']:GetCoreObject().Functions.Notify(message, ttype, length)
        else
            ESX.ShowNotification(message)
        end
    elseif Config.NotifySystem.type == "okoknotify" then
        exports['okokNotify']:Alert(title or "Fish Shop", message, length or 5000, type or 'info')
    elseif Config.NotifySystem.type == "mythic" then
        exports['mythic_notify']:DoHudText(type or 'inform', message, length or 5000)
    elseif Config.NotifySystem.type == "ox" then
        lib.notify({
            title = title,
            description = message,
            type = type or 'info',
            duration = length or 5000
        })
    elseif Config.NotifySystem.type == "custom" then
        TriggerEvent("janiel-fishing:notify", message, type, length)
    end
end

PreviousINSTALLATIONNextPROGRESSBAR

Last updated 2 months ago

🎣
📃