Skip to content

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 ​

  1. Copy the inner cb-bountyhunter directory into your resources folder. Keep the directory name unchanged.
  2. Import install/install.sql. It creates the hunter, history, active-warrant, and migration tables.
  3. Add the bounty_license definition from install/rsg-items.txt to RSGShared.Items.
  4. Copy bounty_license.png to your inventory image directory.
  5. Review shared/config.lua, especially locations, licence price, rewards, and progression.
  6. Start the dependencies before the resource:
ini
ensure rsg-core
ensure rsg-inventory
ensure ox_lib
ensure ox_target
ensure oxmysql
ensure cb-bountyhunter

If Config.License.enabled is true, the item configured in Config.License.item must exist in the inventory.

Player flow ​

  1. Visit a configured town hall and purchase a bounty licence.
  2. Use a bounty board and choose an available warrant.
  3. Travel to the last-known town and question a witness.
  4. Follow the investigation prompts and physical clues.
  5. Locate the target encounter and resolve it alive or dead.
  6. Take the target to a configured drop-off point.
  7. Receive the validated reward and reputation.

Commands ​

CommandPurpose
/bountyjournalOpens the currently active warrant.
/bountyprofileShows licence state, reputation, and rank.
/bountyresumeRestores the character's saved active warrant.

Configuration ​

The main configuration is shared/config.lua.

SettingDescription
Config.DebugDevelopment mode. New and resumed missions skip witness questioning and begin at physical clues. Disable in production.
Config.LocaleLocale key loaded by the resource.
Config.KeybindInteraction key used by configured prompts.
Config.InteractionDistanceMaximum prompt interaction distance.
Config.SpawnTriggerDistanceDistance at which an accepted encounter can spawn.
Config.DropOffDistanceServer-validated distance for bounty delivery.
Config.MissionTimeoutMinutesMaximum warrant duration.
Config.MaxActiveBountiesActive warrant limit per hunter.
Config.LicenseEnables licensing and controls its item and price.
Config.RewardsAlive/dead multipliers and RSG money account.
Config.ProgressionReputation thresholds and rank names.
Config.SecurityMinimum mission duration and server-event cooldown.
Config.TownHallsLicence purchase locations.
Config.BountyBoardsWarrant selection locations.
Config.DropOffsSheriff/turn-in locations.
Config.CrimesCrime labels and reward data used to generate warrants.
Config.PersonalitiesWeighted target behaviour profiles.
Config.EncountersTarget spawn regions and encounter definitions.
Config.PersistenceSaved mission and reconnect behaviour.
Config.InvestigationWitness chances, towns, and clue behaviour.

Server exports ​

GetHunterReputation ​

Returns a character's stored bounty-hunter reputation, or 0 when unavailable.

lua
local reputation = exports['cb-bountyhunter']:GetHunterReputation(source)

GetActiveBounty ​

Returns the player's public active-warrant data, or nil when there is no active warrant.

lua
local bounty = exports['cb-bountyhunter']:GetActiveBounty(source)
if bounty then
    print(bounty.target, bounty.reward)
end

Troubleshooting ​

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.