Skip to content

Installation Guide

This guide walks you through installing ARS Phone (Phone 17) on your FiveM server. Follow these steps to set up the phone system, configure your framework, and get players connected.

Before installing ARS Phone, ensure you have the following resources installed and running:

  • oxmysql - MySQL/MariaDB database connector
  • ox_lib - FiveM utility library
  • xsound - Audio playback for music and ringtones
  • Framework - QB Core, ESX, or QBX (choose one)
  • screenshot-basic - Required for camera/photo uploads (optional if camera is unused)

Download ARS Phone and place it in your server’s resources directory:

server-data/resources/[custom]/ars_phone/

Import the database.sql file into your MySQL/MariaDB database using your preferred database management tool (phpMyAdmin, HeidiSQL, DBeaver, or command line):

Terminal window
mysql -u username -p database_name < database.sql

Important: The SQL file creates 53 tables. Ensure your database user has CREATE TABLE permissions.

Open config/config.lua and set your framework:

Config.Framework = "QB" -- Options: QB, ESX, or QBX

The resource automatically detects your framework and uses the appropriate integration:

  • QB - Uses QB Core’s citizenid system and player data
  • ESX - Uses ESX’s identifier system and player data
  • QBX - Uses QBX’s enhanced QBCore system

Set your inventory system in config/config.lua:

Config.Inventory = "qb" -- Options: ox, qb, ak47, qs

Then set the image path for inventory item icons:

Config.InventoryImage = 'nui://qb-inventory/html/images/' -- Base path for item images

Supported image paths by inventory:

Inventory Image Path
ox_inventory nui://ox_inventory/web/images/
qb-inventory nui://qb-inventory/html/images/
ak47_inventory nui://ak47_inventory/web/images/
qs-inventory nui://qs-inventory/html/images/

By default, all players can open the phone without an item. To require a phone item:

Config.RequirePhoneItem = true

Add the phone item to your inventory system if not already present:

QB Core (qb-core/shared/items.lua):

phone = {
name = 'phone',
label = 'Phone',
weight = 190,
type = 'item',
image = 'phone.png',
unique = false,
useable = true,
shouldClose = true,
description = 'A modern smartphone'
}

ESX:

INSERT INTO items (name, label, weight, rare, can_remove) VALUES
('phone', 'Phone', 190, 0, 1);

ox_inventory (data/items.lua):

['phone'] = {
label = 'Phone',
weight = 190,
stack = true,
close = true,
description = 'A modern smartphone'
}

To enable photo uploads, configure a webhook in server/sv_customize.lua:

WebHook = 'https://discord.com/api/webhooks/YOUR_WEBHOOK_URL'

Or use FiveManage:

FivemanageAPI = 'YOUR_API_KEY_HERE'

Then select your webhook provider in config/config.lua:

Config.Webhook = 'fivemanage' -- Options: discord or fivemanage

Warning: Without a configured webhook, photo uploads will fail and players will see errors.

Set your voice routing backend in config/config.lua:

Config.VoiceSystem = 'pma' -- Options: pma, mumble, saltychat

Add the resource to your server.cfg:

ensure oxmysql
ensure ox_lib
ensure xsound
ensure ars_phone

Note: ARS Phone must be started after its dependencies.

Restart your server or refresh the resource:

Terminal window
refresh
ensure ars_phone

Verify your installation by checking the following:

  1. Resource Started: Check the console for [ars_phone] startup messages with no errors
  2. Phone Opens: Press M (default keybind) to open the phone UI
  3. Database Tables: Verify 53 tables were created in your database
  4. Framework Detection: Check console for framework detection message (e.g., [ars_phone] Framework: QB)
  5. Basic Functionality: Test sending a message, making a call, or opening an app

Enable debug mode in config/config.lua if you encounter issues:

Config.Debug = true

When updating to a new version:

  1. Backup Database: Export your phone tables before updating
  2. Download New Version: Replace the ars_phone folder with the new version
  3. Run SQL Updates: Check the release notes for SQL migration scripts
  4. Review Config Changes: Compare your old config with the new config file
  5. Restart Server: Apply changes and verify functionality
  • Issue: Pressing M does nothing
  • Solutions:
    • Check that ars_phone is started in console
    • Verify the keybind in config/config.lua: Config.OpenPhone = 'M'
    • Ensure you have the phone item if Config.RequirePhoneItem = true
    • Check for errors in server console
  • Issue: SQL errors or tables not created
  • Solutions:
    • Verify MySQL/MariaDB connection with oxmysql
    • Check database credentials in server.cfg
    • Ensure your database user has CREATE TABLE permissions
    • Import database.sql manually if auto-import failed
  • Issue: Phone shows incorrect player data or fails to load
  • Solutions:
    • Verify Config.Framework matches your installed framework
    • Ensure framework resource starts before ars_phone
    • Check console for framework detection message
  • Issue: Camera photos don’t save or upload fails
  • Solutions:
    • Install screenshot-basic if not already present
    • Configure webhook URL in server/sv_customize.lua
    • Verify webhook URL is valid and has permissions
    • Check that Config.Webhook is set to discord or fivemanage
    • Enable debug mode to see webhook errors
  • Issue: Phone shows 0-1 signal bars everywhere
  • Solutions:
    • Check Config.SignalTowers.Towers coordinates in config/config.lua
    • Adjust tower radius values to cover your map
    • Disable signal system for testing: Config.SignalTowers.IsUse = false
  • Issue: Video call button doesn’t appear or calls fail
  • Solutions:
    • Enable video calls: Config.EnableVideoCall = true
    • Verify xsound is installed and working
    • Check that both players have sufficient data balance if DataFlow is enabled
  • Issue: Players can open phone without the phone item
  • Solutions:
    • Set Config.RequirePhoneItem = true in config
    • Add the phone item to your inventory system (see Step 5 above)
    • Restart the resource after changing config

Note: This guide is written by a third party. If you find any incorrect or outdated information, please contact us on Discord so we can update it for you.