Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.roadshop.org/llms.txt

Use this file to discover all available pages before exploring further.

Installation

This guide will walk you through the complete installation process for RoadPhone Pro on your FiveM server.

Requirements

Framework

  • ESX (es_extended)
  • QBCore (qb-core)
  • Qbox (qbx_core)
  • Standalone

Database

  • mysql-async
  • or oxmysql

Dependencies

  • xsound
  • OneSync enabled

Optional

  • ox_inventory / jaksam_inventory (for metadata)
  • Voice system (pma-voice, mumble-voip, etc.)

Step 1: Download & Extract

1

Download RoadPhone Pro

Download the latest version from your purchase location (Tebex/CFX).
2

Extract the resource

Extract the roadphone folder to your server’s resources directory.
resources/
└── [phone]/
└── roadphone/
   ├── bridge/
   ├── client/
   ├── server/
   ├── public/
   ├── API.lua
   ├── config.lua
   └── fxmanifest.lua
3

Ensure the resource

Add the following to your server.cfg:
server.cfg
ensure roadphone
Make sure roadphone starts after your framework (ESX/QBCore/Qbox), database, and inventory resources.

Step 2: Database Setup

Import the SQL file to create the required database tables.
-- Run the SQL file provided in the resource
-- Located at the downloaded folder.
-- Run for ESX: roadphone-esx.sql and for QB & QBOX: roadphone-qb.sql
The SQL file creates tables for:
  • Player data and phone numbers
  • Contacts, messages, notes
  • TweetWave posts and accounts
  • Connect posts and accounts
  • Banking transactions
  • And more…

Step 3: Basic Configuration

Open config.lua and configure the essential settings:

Framework Detection

RoadPhone automatically detects your framework. No manual configuration needed.

Phone Item Requirement

config.lua
-- Set to true if players need a phone item to use the phone
Config.NeedItem = true

-- Phone items (ignored if using jaksam_inventory)
Config.Items = {
    "phone",
    "purple_phone",
    "green_phone",
    "red_phone",
    "blue_phone",
    "black_phone"
}
If Config.NeedItem = false, all players can open the phone without needing an item.

Phone Keybind

config.lua
-- Command name for keybind
Config.PhoneCommand = "TogglePhone"

-- Enable custom keybind registration
Config.RegisterKeyMapping = true

-- Default key (players can rebind in FiveM settings)
Config.OpenKey = 'f1'

Language

config.lua
-- Available: 'en', 'de', 'fr', 'es', 'pt', 'nl', 'pl', 'it', 'tr'
Config.Locale = 'en'

-- Temperature unit
Config.Fahrenheit = false

Step 4: Image Upload Setup

RoadPhone requires an image upload service for camera, profile pictures, and media sharing. Open API.lua and configure your upload service:
Without a valid API key, camera and image upload features will not work.

Step 5: Voice Integration

Configure voice chat integration for phone calls:
config.lua
-- Enable ONE of these based on your voice system
Config.UsePmaVoice = true      -- pma-voice
Config.UseMumbleVoip = false   -- mumble-voip
Config.UseSaltyChat = false    -- saltychat
Config.UseYacaVoice = false    -- yaca
If no voice system is enabled, phone calls will not work.

Step 6: Music Setup

Set your TebexID to enable the Music App.
API.lua
-- In API.lua
Cfg.TebexTransactionID = "your-tebex-id"
If no tebexid is entered. Music will not work.

Step 7: Inventory Item Setup

If Config.NeedItem = true, you need to add phone items to your inventory system.
Add to ox_inventory/data/items.lua:
['phone'] = {
label = 'Phone',
weight = 150,
stack = false,
close = true,
description = 'A smartphone'
},

Step 8: Optional Features

Metadata System (Phone Stealing/Trading)

Enable item-based phone data for advanced features:
config.lua
Config.UseMetadata = true
Config.InventorySystem = 'ox_inventory' -- or 'jaksam'

Metadata System Guide

Learn how to set up and use the metadata system for phone stealing, trading, and multiple phones.

Target System

Enable target interaction for phone-related features:
config.lua
Config.UseTarget = true
Config.TargetSystem = "ox_target" -- or "qb-target"

Billing Integration

Connect with your billing system:
config.lua
-- Enable ONE of these
Config.myBilling = false
Config.okokBilling = false
Config.JaksamBilling = false
Config.codemBilling = false
Config.codemBilling2 = false

Banking Integration

config.lua
Config.okokBanking = false
Config.rxBanking = false

Step 9: Service & Emergency Numbers

Configure emergency services and dispatch:
config.lua
-- Job to phone number mapping for dispatch
Config.Leitstelle = {
    ['police'] = 911,
    ['ambulance'] = 112,
}

-- Jobs that can post news
Config.NewsAppAccess = {
    'police',
    'ambulance',
}

Step 10: Final Steps

1

Restart your server

Restart your FiveM server to apply all changes.
2

Test the phone

Join your server and test the phone:
  • Press the configured key (default: F1) or use the phone item
  • Check that all apps load correctly
  • Test camera functionality
  • Make a test call
3

Give players phones

If Config.NeedItem = true, give players phone items:
-- ESX
xPlayer.addInventoryItem('phone', 1)

-- QBCore
Player.Functions.AddItem('phone', 1)

-- ox_inventory
exports.ox_inventory:AddItem(source, 'phone', 1)

Troubleshooting

Check:
  • Resource is started (ensure roadphone in server.cfg)
  • Framework is loaded before roadphone
  • If NeedItem = true, player has a phone item
  • Keybind is correctly configured
Check:
  • API key is set in API.lua
  • Config.uploadMethod matches your service
  • No firewall blocking outgoing requests
Check:
  • Voice system is correctly configured
  • Both players have phone numbers assigned
  • xsound resource is running
Check:
  • SQL file has been imported
  • mysql-async or oxmysql is running
  • Database credentials are correct in server.cfg
Check:
  • Framework resource starts before roadphone
  • Framework is properly installed
  • Check server console for Bridge initialization messages

Next Steps

Metadata System

Enable phone stealing, trading, and multiple phones

Server Exports

Integrate RoadPhone with your other resources

Client Exports

Client-side integration options

Commands

Available admin commands