CB Bounty Hunter
Persistent, investigative bounty hunting for RSG Core. Hunters purchase a licence, take a warrant from a board, question witnesses, inspect clues, capture or kill the target, and return the bounty for payment and reputation.
Current resource version: 2.2.8
Framework: RSG Core
Dependencies: rsg-core, rsg-inventory, ox_lib, ox_target, oxmysql
Features
- Persistent active warrants with reconnect recovery
- Configurable licence item and purchase price
- Multiple town halls, bounty boards, and drop-off points
- Witness and physical-clue investigation stages
- Weighted crimes, personalities, encounters, and target names
- Alive/dead reward multipliers
- Reputation ranks and optional skill-system integration
- Server-side distance, cooldown, inventory, and completion validation
- Configurable blips, timeouts, notifications, and mission limits
Installation
- Copy the inner
cb-bountyhunterdirectory into your resources folder. Keep the directory name unchanged. - Import
install/install.sql. It creates the hunter, history, active-warrant, and migration tables. - Add the
bounty_licensedefinition frominstall/rsg-items.txttoRSGShared.Items. - Copy
bounty_license.pngto your inventory image directory. - Review
shared/config.lua, especially locations, licence price, rewards, and progression. - Start the dependencies before the resource:
ensure rsg-core
ensure rsg-inventory
ensure ox_lib
ensure ox_target
ensure oxmysql
ensure cb-bountyhunterIf Config.License.enabled is true, the item configured in Config.License.item must exist in the inventory.
Player flow
- Visit a configured town hall and purchase a bounty licence.
- Use a bounty board and choose an available warrant.
- Travel to the last-known town and question a witness.
- Follow the investigation prompts and physical clues.
- Locate the target encounter and resolve it alive or dead.
- Take the target to a configured drop-off point.
- Receive the validated reward and reputation.
Commands
| Command | Purpose |
|---|---|
/bountyjournal | Opens the currently active warrant. |
/bountyprofile | Shows licence state, reputation, and rank. |
/bountyresume | Restores the character's saved active warrant. |
Configuration
The main configuration is shared/config.lua.
| Setting | Description |
|---|---|
Config.Debug | Development mode. New and resumed missions skip witness questioning and begin at physical clues. Disable in production. |
Config.Locale | Locale key loaded by the resource. |
Config.Keybind | Interaction key used by configured prompts. |
Config.InteractionDistance | Maximum prompt interaction distance. |
Config.SpawnTriggerDistance | Distance at which an accepted encounter can spawn. |
Config.DropOffDistance | Server-validated distance for bounty delivery. |
Config.MissionTimeoutMinutes | Maximum warrant duration. |
Config.MaxActiveBounties | Active warrant limit per hunter. |
Config.License | Enables licensing and controls its item and price. |
Config.Rewards | Alive/dead multipliers and RSG money account. |
Config.Progression | Reputation thresholds and rank names. |
Config.Security | Minimum mission duration and server-event cooldown. |
Config.TownHalls | Licence purchase locations. |
Config.BountyBoards | Warrant selection locations. |
Config.DropOffs | Sheriff/turn-in locations. |
Config.Crimes | Crime labels and reward data used to generate warrants. |
Config.Personalities | Weighted target behaviour profiles. |
Config.Encounters | Target spawn regions and encounter definitions. |
Config.Persistence | Saved mission and reconnect behaviour. |
Config.Investigation | Witness chances, towns, and clue behaviour. |
Server exports
GetHunterReputation
Returns a character's stored bounty-hunter reputation, or 0 when unavailable.
local reputation = exports['cb-bountyhunter']:GetHunterReputation(source)GetActiveBounty
Returns the player's public active-warrant data, or nil when there is no active warrant.
local bounty = exports['cb-bountyhunter']:GetActiveBounty(source)
if bounty then
print(bounty.target, bounty.reward)
endTroubleshooting
The licence cannot be purchased
Confirm the item exists, the player is close to a configured town hall, the player has enough of the configured cash type, and rsg-inventory started first.
A warrant does not resume
Check that oxmysql is connected, the SQL was imported, and both Config.Persistence.enabled and resumeOnReconnect are enabled.
Targets or clues do not appear
Confirm the encounter/town coordinates are valid and the player has entered Config.SpawnTriggerDistance. Temporarily enable Config.Debug to isolate the witness stage, then disable it again.
Rewards are refused
The server validates elapsed mission time, active mission identity, delivery distance, and target state. Check the server console for validation errors before increasing security tolerances.

