Installation

Step-by-step setup guide for oxide-blackmarket using ox_lib and o-link.

Step-by-step setup for oxide-blackmarket.

Prerequisites

Required resources

ResourcePurpose
ox_libLocale, commands, utility helpers
o-linkFramework, job, money, inventory, notify, phone, banking, callback, and targeting abstraction

This resource relies on your server's o-link setup for:

  • player metadata via olink.character
  • job lookup via olink.job
  • target integration for dealer and loot interactions
  • inventory item lookup, add, and remove
  • money access for dirty-money account mode
  • notifications
  • phone/email for Tier 4 pager intel
  • police banking deposits when configured

OneSync

OneSync must be enabled. The dealer ped is created server-side and synced through the network.

set onesync on

Installation Steps

1. Place the resource

Place oxide-blackmarket in your server's resources folder.

2. Add startup order

Start o-link before this resource:

ensure ox_lib
ensure o-link
ensure oxide-blackmarket

If your o-link stack depends on other framework or inventory resources, keep those above o-link.

3. Add the pager item

oxide-blackmarket registers the pager as a usable item through olink.framework.RegisterUsableItem, but the item still has to exist in your inventory system's item registry.

Example item definition:

blackmarket_pager = {
    name = 'blackmarket_pager',
    label = 'Burner Pager',
    weight = 100,
    type = 'item',
    image = 'blackmarket_pager.png',
    unique = true,
    useable = true,
    shouldClose = true,
    description = 'A disposable pager for underground contacts'
}

Add blackmarket_pager.png to the image folder used by your inventory resource if it supports item images.

4. Review configuration

Check these files before going live:

  • shared/config.lua
  • shared/items.lua

Important settings to review first:

  • Config.Debug
  • Config.EnableTiers
  • Config.DirtyMoney
  • Config.PoliceJobs
  • Config.DispatchAlerts
  • Config.HitSquadEnabled
  • Config.Locations

See the Configuration Reference for the full option list.

Verification

  1. Start the server and confirm ox_lib, o-link, and oxide-blackmarket load without dependency errors.
  2. Watch server console output for:
[oxide-blackmarket] Resource starting...
[oxide-blackmarket] Pager item registered
[oxide-blackmarket] Initializing dealer...
  1. Join the server and use /dealerstatus or /godealer as an admin to confirm the dealer exists.
  2. Approach the dealer and confirm the target interaction opens the shop.
  3. Buy and sell at least one item to verify inventory and dirty-money configuration.
  4. If using police gameplay, test surrender and arrest with a job listed in Config.PoliceJobs.
  5. If using pager intel, give yourself enough rep for Tier 2 or Tier 4 and verify the cooldown and phone/waypoint flow.

Optional Setup

Dirty money mode

The shop uses Config.DirtyMoney for both purchases and sales.

Account mode example:

Config.DirtyMoney = {
    mode = 'account',
    account = 'cash',
    item = 'black_money',
}

Item mode example:

Config.DirtyMoney = {
    mode = 'item',
    account = 'cash',
    item = 'black_money',
}

Dealer locations

The dealer chooses a random entry from Config.Locations:

Config.Locations = {
    vector4(x, y, z, heading),
}

Use open outdoor areas. The dealer wanders around the spawn point, and indoor or cramped spots tend to break pathing.

Optional integrations

  • Tier 4 pager intel uses olink.phone if available. If phone delivery fails, the resource still sets a waypoint and shows the fallback GPS notification.
  • Police department deposits use olink.banking inside pcall. If banking is unavailable, the arrest flow still works and officer cash is still paid.

Next Steps