Skip to main content
Most atlasFishing behavior is controlled from:
atlasFishing/config.lua
The config is shared between client and server, so keep secrets out of this file. Prices, locations, item names, minigame difficulty, zones, and shop settings are safe to place here.

Basic switches

Config.enabled = true
Config.debug = false
Use Config.debug = true only while testing. Turn it off before release.

Fisherman ped

Config.ped = {
    model = 's_m_m_cntrybar_01',
    coords = vec4(-1819.42, -1193.62, 14.31, 134.0),
    scenario = 'WORLD_HUMAN_STAND_FISHING',
    interact = { method = 'interact', distance = 2.5, expandDistance = 1.4, key = 'E', marker = 'fish' },
    blip = { enabled = true, sprite = 68, color = 3, scale = 0.8, label = 'Fishing' },
}
Change coords to move the fisherman. The fourth value is heading.

Interaction method

interact.method decides how players open the fisherman menu. The same setting is also used by the boat rental ped.
MethodBehavior
interactBridge interaction prompt with the configured key (default)
targetox_target / qb-target eye/target option, when a target system is available through atlasBridge
textuiProximity text prompt that opens the menu when key is pressed
interact = { method = 'target', distance = 2.5, expandDistance = 1.4, key = 'E', marker = 'fish' }
Use target only if your server runs ox_target or qb-target and the bridge target provider is detected. Otherwise keep interact or textui.

Rod

Config.rod = {
    item = 'fishing_rod',
    prop = { model = 'fish_rod', bone = 18905, pos = vec3(0.15, 0.09, 0.01), rot = vec3(58.0, 100.0, -180.0) },
    anim = { dict = 'amb@world_human_stand_fishing@idle_a', clip = 'idle_b', flag = 49 },
}
If you rename the rod item, also rename it in your inventory item definitions and shop items.

Casting

Config.cast = {
    requireWater = true,
    allowBoats = true,
    castMs = 3000,
    biteWaitMin = 4000,
    biteWaitMax = 12000,
    cancelKey = 'X',
}
Useful tuning:
OptionWhat it controls
requireWaterRequires the player to face water before casting
allowBoatsAllows fishing while on boats
castMsCast progress duration
biteWaitMin / biteWaitMaxRandom wait before the bite/minigame
cancelKeyKey used to stop fishing

Baits

Each bait has a price, fail chance, and rarity multipliers:
{ key = 'bait_shrimp', label = 'Shrimp', price = 120, fail = 0.16, mult = {
    junk = 0.4,
    common = 0.8,
    uncommon = 1.1,
    rare = 1.6,
    epic = 0.8,
    legendary = 0.2
} }
Better bait should usually:
  • Cost more.
  • Fail less often.
  • Reduce junk odds.
  • Increase rare, epic, or legendary odds.

Fish and rewards

Each fish entry controls the item key, label, rarity tier, sell price, prop, and optional weight.
{ key = 'fish_snapper', label = 'Snapper', tier = 'rare', price = 1100, prop = 'fish_snapper' }
The key must match the inventory item name if the player should receive that catch.

Zones

Zones let you boost higher rarity catches in certain areas.
Config.zones = {
    {
        id = 'deep_sea',
        label = 'Deep Sea',
        coords = vec3(-2100.0, -1400.0, 0.0),
        radius = 400.0,
        mult = { rare = 1.4, epic = 2.0, legendary = 2.5 }
    }
}
Players can fish outside zones. Zones only apply multipliers.

Selling

Config.sell = {
    mode = 'select',
    selectUi = 'radial',
    account = 'bank',
}
OptionValues
modeall or select
selectUiradial or input
accountUsually cash or bank, depending on your framework

Death cancellation

Config.death = {
    enabled = true,
}
When enabled, fishing cancels automatically if the player dies during a cast, bite wait, or minigame. Death detection is handled by atlasBridge. If your server uses a custom death system and fishing does not cancel on death, add your death event to server.cfg:
setr atlas:deathEvent "baseevents:onPlayerDied"

Supplies shop

Config.shop = {
    title = 'Fishing Supplies',
    payments = { 'cash', 'bank' },
    items = {
        { key = 'fishing_rod', label = 'Fishing Rod', price = 250 },
        { key = 'bait_worms', label = 'Worms', price = 15 },
    },
}
Every shop item key must exist in your inventory.

Boat rental

Boat rentals are optional:
Config.boatrental = {
    enabled = true,
    account = 'cash',
    seatOnRent = true,
    cleanupDistance = 180.0,
}
Set enabled = false if you do not want a boat rental ped or boat shop.
Move the fisherman, rental ped, and boat spawn before launching. The default coordinates are placeholders for testing.