Skip to main content

Overview

RARX Fishing is a complete fishing activity: players grab a rod and bait, head to one of several map zones, cast, beat a reel-in skill-check and land fish whose rarity scales with the zone. Caught fish can be sold to an NPC for cash, and a recurring tournament rewards the top anglers automatically. The whole catch flow is server-authoritative — the server decides the zone (from the player’s real position) and the fish before the line is even cast, so the client can only report whether the skill-check succeeded. There is nothing to spoof.
Menus use ox_lib (context menus, input dialogs, text UI, notifications). There is no qb-menu / qb-input dependency.

Features

Multi-Framework

QBCore, QBox (qbx_core) and ESX — auto-detected

Multi-Inventory

ox_inventory, qb-inventory or ESX — auto-detected

Server-Authoritative Catch

Server picks zone & fish; client only reports the skill-check result

Fishing Zones

Multiple polygon zones, each with its own fish pool and wait time

Rods & Bait

Buyable rods and bait, where better bait shortens the wait

Sell Fish

Sell your catch to an NPC at a randomized per-fish price

Live Tournaments

Scheduled, server-run tournaments with a top-3 prize payout

ox_lib UI

Context menus, input dialogs and a Vue NUI panel/skill-check

Requirements

This resource is not standalone — it requires one of QBCore / QBox / ESX. All economy and inventory actions run server-side through the framework bridge.

Installation

1

Download & Extract

Extract the resource into your resources folder.
2

Add to server.cfg

3

Set the Language

4

Register the Items

Add the fishing items (rod, bait and every fish) to your inventory’s item list. See Required Items below.
5

Restart & Test

Buy a rod + bait from the shop NPC, head to a fishing zone, and cast.

Required Items

All items handed out by the script must exist in your inventory’s item database (ox_inventory/data/items.lua or qb-core/shared/items.lua). Item names are defined in shared/config.lua.
fishingrod must be a usable item — using it is what starts a cast. In qb-inventory set useable = true; in ox_inventory the rod is used from the inventory’s right-click menu. If items are missing from your inventory’s database, the script will run but no items will be given.

Item Definitions

Copy the block for your inventory and paste it into the item list. Labels and weights are suggestions — tweak them freely. (Item images aren’t included; the inventory will show a placeholder until you add your own .pngs.)

Configuration

All settings live in shared/config.lua.

Integration

Fishing Zones

Each zone is a polygon with its own wait time and fish pool. The server checks the player’s real position against these polygons — the client never tells the server which zone it is in.

Fish

Each fish has a sale price range, a spawn chance (weight within its zone) and its tournament point value.

Rods & Bait

Higher waitDivisor = shorter wait before a fish bites.

Tournament

Prizes can also grant an item: [1] = { money = 10000, account = 'bank', item = { name = 'goldbar', amount = 1 } }.

How It Works

1

Buy gear

Talk to the shop NPC and buy a fishingrod plus some bait.
2

Go to a zone

Head to a fishing zone marked on the map. Using the rod outside a zone does nothing.
3

Cast

Use the rod. The server confirms your zone, consumes one bait, and secretly picks the fish you’ll get.
4

Reel in

Wait for the bite, then beat the skill-check (press Space in the target area). Hold E at any point to cancel.
5

Sell or keep

Sell your catch to the NPC for cash, or hold onto it.

Tournaments

When a tournament is live, every catch awards points based on the fish’s rarity. The tournament is fully server-run: points can only be granted by a real server-verified catch, prizes are paid from a stable per-character identifier (so a reconnect can’t misdirect a payout), and the public leaderboard never leaks server IDs to clients. Admin commands (ACE group.admin): Exports:

Localization

Set the language with the shared rarx-lang convar:
Translations live in translates/ (en.lua, es.lua) and use the RARX Lang (Locale) system. The NUI panel labels are pushed from the same locale.

Troubleshooting

The fishing items aren’t in your inventory’s database. Add every item from Required Items to ox_inventory/data/items.lua (or qb-core/shared/items.lua), and make sure fishingrod is usable.
Confirm fishingrod is a usable item and that you are standing inside a fishing zone — casts outside a zone are rejected by the server.
The resource requires QBCore, QBox or ESX. Start one before rarx_fishing, or pin Framework in shared/config.lua.
Set Inventory in shared/config.lua to 'ox_inventory', 'qb' or 'esx' instead of 'auto' if detection picks the wrong one.
With Config.Target = false, stand close to the NPC for the [E] prompt. To use a target system instead, set Config.Target to 'ox_target' or 'qb-target'.

Support

Need help? Reach out: