Installation
Step-by-step instructions for installing and configuring the oxide-postaljob GoPostal delivery job resource
Prerequisites
Required Resources
| Resource | Purpose | Link |
|---|---|---|
community_bridge | Framework abstraction layer | Required |
ox_lib | Utility library, callbacks, UI components | Required |
oxmysql | Async MySQL database driver | Required |
Supported Systems
oxide-postaljob uses community_bridge for framework abstraction, supporting any framework that community_bridge integrates with.
| System | Supported Via |
|---|---|
| Framework | community_bridge (ESX, QBCore, Oxide, etc.) |
| Inventory | community_bridge inventory bridge |
| Target | community_bridge target bridge (ox_target, qb-target, etc.) |
| Vehicle Keys | community_bridge vehicle key bridge |
| Phone | community_bridge phone bridge (optional) |
| Notifications | community_bridge notification bridge |
| Progress Bar | community_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
| Column | Type | Default | Description |
|---|---|---|---|
char_id | INT UNSIGNED | — | Character identifier (primary key) |
level | TINYINT | 1 | Current progression level (1-5) |
total_deliveries | INT | 0 | Lifetime completed deliveries |
daily_streak | INT | 0 | Consecutive days with deliveries |
last_delivery_date | DATE | NULL | Date of most recent delivery |
complaints | TINYINT UNSIGNED | 0 | Current complaint count |
timeout_until | DATETIME | NULL | Suspension 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
- Start the server and check the console for any errors related to
oxide-postaljob - Connect to the server and verify the GoPostal blip appears on the map at the depot location
- 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.