Most atlasFishing behavior is controlled from:
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.
| Method | Behavior |
|---|
interact | Bridge interaction prompt with the configured key (default) |
target | ox_target / qb-target eye/target option, when a target system is available through atlasBridge |
textui | Proximity 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:
| Option | What it controls |
|---|
requireWater | Requires the player to face water before casting |
allowBoats | Allows fishing while on boats |
castMs | Cast progress duration |
biteWaitMin / biteWaitMax | Random wait before the bite/minigame |
cancelKey | Key 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',
}
| Option | Values |
|---|
mode | all or select |
selectUi | radial or input |
account | Usually 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.