Skip to content

Configuration

Client (configs/main.lua)

Debug

  • Type: boolean
  • Default: true
  • Description: Enables verbose debug output. Set to false before going live. When true, also auto-assigns a KingPin in debug mode so the outpost can be tested without players.

Items

  • Type: table
  • Description: Item names used by the script.
KeyDefaultDescription
exchangeCard"outposts_exchange_card"Access card swiped at outpost doors
taxiClue"outposts_clue_taxi"Clue item revealing a taxi-related outpost location
deliveryClue"outposts_clue_delivery"Clue item revealing a delivery-related outpost location
washingClue"outposts_clue_washing"Clue item revealing a washing-related outpost location

Outposts (configs/outposts.lua)

Defines the three possible outpost locations. Two are randomly selected at server start - one assigned money type, one assigned drug type.

Each entry in the Outposts table contains:

FieldTypeDescription
interiorvector3Centre coordinate of the outpost area; used to load the interior
scene.money.inputtableProp model and coords for the money laundering input table
scene.drug.inputtableProp model and coords for the drug selling input table
cornersvector4[]Array of dealer spawn positions with heading; must have at least MaxPedsPerOutpost entries
doorstable[]Array of door entries, each with a model hash and coords (vector3) for ox_doorlock

Dealer Profiles (configs/ped_profiles.lua)

The PedProfiles table defines all hireable dealer NPCs. Each entry has:

FieldTypeDescription
namestringDisplay name shown in the Market UI
modelhashGTA ped model used when spawning this dealer
imagestringImage key for the Market UI avatar
personalitystringFlavour text shown on the dealer card
pricenumberCash cost to hire this dealer
stats.speednumber (1–100)Higher = sells faster (shorter passive sell interval)
stats.weightnumber (1–100)Higher = larger quantities per transaction
stats.talkingnumber (1–100)Negotiation skill affecting deal success
stats.splitnumber (1–100)Dealer's profit cut percentage

Default Dealer Roster

NamePriceSpeedWeightTalkingSplit
Rico "The Connect" Martinez$10,00010010010085
Salvador "Sal" Mendoza$8,500951009060
Maria "La Reina" Vasquez$7,50080852090
Kim "The Dragon" Park$7,000100158065
Miguel "El Diablo" Santos$6,000451002575
Destiny "D-Money" Johnson$6,00030359585
Vincent "Vinnie" Friedlander$5,500254010070
DeShawn "D-Block" Brown$5,00025208595
Candy "Sweet" Rodriguez$4,800202510078
Marcus "M-Dog" Williams$4,50090251588
Big Tony "The Enforcer" Romano$4,00015951095
Spike "The Punk" Thompson$3,50010010592

Server (configs/server.lua)

MaxPedsPerOutpost

  • Type: number
  • Default: 4
  • Description: Maximum number of dealer NPCs that can be active at one outpost simultaneously. Each outpost config must have at least this many corners entries.

PaymentItem

  • Type: string
  • Default: "cash"
  • Description: The inventory item given to players as payment when collecting laundered money.

DealerStash

  • Type: table
  • Description: Inventory limits for each dealer's personal stash.
    • maxSlots - number of stash slots (default 4)
    • maxWeight - maximum stash weight (default 100.0)

RotationInterval

  • Type: number (seconds)
  • Default: 1200 (20 minutes)
  • Description: How often dealer NPCs shuffle to new corner positions within the outpost.

SellingInterval

  • Type: number (seconds)
  • Default: 60 (20 minutes)
  • Description: How often dealer NPCs sells their goods on their corner position.

MoneyItems

  • Type: string[]
  • Default: { "cash", "money" }
  • Description: List of item names accepted as payment at money outposts.

MoneyWorth

  • Type: table
  • Description: Exchange rate for each money item. ["ruby"] = 137 means 1 rub item = $137.

MoneyCounts

  • Type: table
  • Description: Min/max cash quantity range per laundering transaction. Example: ["ruby"] = { 1, 2 } gives between the minimum between item count, min and max, e.g. ruby would give 1 ruby per transaction if you were selling 2 or 3.

DrugItems

  • Type: table
  • Description: Array of drug item definitions supported by drug outposts. Each entry has:
    • name (string) - inventory item name
    • durability (table, optional) - { min, max } durability range; used for items like meth that have quality tiers
    • min (table) - randomised minimum quantity range { lower, upper }
    • max (table) - randomised maximum quantity range { lower, upper }
    • maxPerOffer (number) - maximum amount of this drug offered in a single deal

Supported Drugs (defaults)

ItemDurabilityQuantity Range
weed_1a-12–35
weed_2a-10–45
weed_2b-10–45
joint_1a-35–53
joint_1b-35–53
joint_2a-50–59
joint_2b-50–59
joint_2c-50–59
meth1–2524–33
meth26–5043–53
meth51–7569–79
meth76–99100–115
meth100135–152
cocaine-260–300

Rep

  • Type: table
  • Description: Optional reputation reward given on each successful sale.
    • enabled (boolean) - false by default; set to true to enable
    • type (string) - reputation type passed to prp-bridge (e.g. "crime")
    • amount (number) - reputation points awarded per sale (default 5)

DispatchAlert

  • Type: table
  • Description: Police dispatch alert configuration for drug sales.
    • jobs - police job names that receive the alert (default { "police" })
    • code - radio code (default "10-90")
    • title / description - alert text (set via locales)
    • blip.sprite, blip.scale, blip.colour - map blip appearance
    • blip.duration - blip duration in seconds (default 150, ~2.5 minutes)

INFO

The dispatch alert fires with a 10% probability on each completed sale. It is not guaranteed every transaction.


Server Convars

ConvarDefaultDescription
sv_minPlayersForExchange0Minimum online player count required for any player to take KingPin control of an outpost

Set this in server.cfg:

set sv_minPlayersForExchange 3

Developer Integration

server/editable.lua

Contains the ToggleOutpostDoor(doorName, doorState) function that locks/unlocks outpost doors via ox_doorlock:

lua
function ToggleOutpostDoor(doorName, doorState)
    exports.ox_doorlock:setDoorState(doorName, doorState)
end

Modify this function if you use a different door lock resource.