Installation

Step-by-step instructions for installing and configuring the oxide-postaljob GoPostal delivery job resource

Prerequisites

Required Resources

ResourcePurposeLink
community_bridgeFramework abstraction layerRequired
ox_libUtility library, callbacks, UI componentsRequired
oxmysqlAsync MySQL database driverRequired

Supported Systems

oxide-postaljob uses community_bridge for framework abstraction, supporting any framework that community_bridge integrates with.

SystemSupported Via
Frameworkcommunity_bridge (ESX, QBCore, Oxide, etc.)
Inventorycommunity_bridge inventory bridge
Targetcommunity_bridge target bridge (ox_target, qb-target, etc.)
Vehicle Keyscommunity_bridge vehicle key bridge
Phonecommunity_bridge phone bridge (optional)
Notificationscommunity_bridge notification bridge
Progress Barcommunity_bridge progress bar bridge

Installation Steps

1. Download

Download or clone the oxide-postaljob resource folder.

2. Place in Resources

Place the oxide-postaljob folder in your server's resources directory.

3. Add to server.cfg

Add the following to your server.cfg, ensuring dependencies are started first:

ensure ox_lib
ensure oxmysql
ensure community_bridge
ensure oxide-postaljob

4. Configure

Review and adjust configuration files in shared/config.lua and shared/config/*.lua to match your server's needs. See the Configuration Reference for all available settings.

Database Setup

Run the Install Script

Execute the SQL file located at sql/install.sql against your database. This creates the progression tracking table.

Schema

postaljob_progression

ColumnTypeDefaultDescription
char_idINT UNSIGNEDCharacter identifier (primary key)
levelTINYINT1Current progression level (1-5)
total_deliveriesINT0Lifetime completed deliveries
daily_streakINT0Consecutive days with deliveries
last_delivery_dateDATENULLDate of most recent delivery
complaintsTINYINT UNSIGNED0Current complaint count
timeout_untilDATETIMENULLSuspension expiry timestamp
CREATE TABLE IF NOT EXISTS `postaljob_progression` (
    `char_id` INT UNSIGNED NOT NULL,
    `level` TINYINT NOT NULL DEFAULT 1,
    `total_deliveries` INT NOT NULL DEFAULT 0,
    `daily_streak` INT NOT NULL DEFAULT 0,
    `last_delivery_date` DATE NULL,
    `complaints` TINYINT UNSIGNED NOT NULL DEFAULT 0,
    `timeout_until` DATETIME NULL,
    PRIMARY KEY (`char_id`)
);

Verification

  1. Start the server and check the console for any errors related to oxide-postaljob
  2. Connect to the server and verify the GoPostal blip appears on the map at the depot location
  3. Walk to the supervisor NPC at the depot, interact via third-eye, and confirm the shift menu opens. Clock in and complete a test delivery to verify the full workflow

Optional Setup

Phone Integration

If your server uses a phone resource supported by community_bridge, players will automatically receive SMS notifications for shift events, delivery assignments, and crew invites. No additional configuration is needed beyond having community_bridge phone support enabled.

ACE Permissions

The /postalbuilder admin tool requires ACE permissions:

add_ace group.admin admin.postaljob allow

This grants access to the postal builder menu for creating and exporting depot locations. See the Admin Guide for details.