Skip to content

Configuration

ARS Phone provides extensive configuration options through multiple config files. This guide covers all settings, their purposes, and how to customize them for your server.

Config.Debug = false

Enable verbose logging for troubleshooting. Set to false for production servers to improve performance and reduce console spam.

Config.Locale = 'en'

Default language for the phone. Supported languages: en, es, fr, de, da, no, ru, ar, pl, sv. Translations are in the locales/ folder.

Config.Framework = "QB"

Core framework integration. Options: QB (QB Core), ESX (ESX Legacy), QBX (QBX Framework). This setting controls which player data system the phone uses.

Config.Inventory = "qb"

Inventory system to use for item checks and images. Options: ox, qb, ak47, qs.

Config.InventoryImage = 'nui://qb-inventory/html/images/'

Base NUI path for fetching inventory item icons. This must match your installed inventory system.

Config.RequirePhoneItem = false

If true, players must have a phone item in their inventory to open the phone. If false, all players can access the phone without an item.

Config.OpenPhone = 'M'

Default keybind to open the phone UI. Can be any valid FiveM control key (e.g., F1, K, H).

Config.CallRepeats = 5

Number of automatic call retries before marking a call as failed.

Config.RepeatTimeout = 3000

Cooldown in milliseconds between repeated actions to prevent spam.

Config.VoiceSystem = 'pma'

Voice routing backend for call audio. Options: pma (pma-voice), mumble (mumble-voip), saltychat (saltychat).

Config.EnableVideoCall = false

Master toggle for video call functionality. Set to true to enable FaceTime-style video calling. Requires client/server support and xsound.

Config.CanUseAnonymous = true

Allow players to enable anonymous caller ID for outgoing calls.

Config.AppFeatures = {
DataFlow = true, -- Enable metered mobile data system
SignalSystem = true, -- Require cell tower signal checks for network actions
LowDataWarning = true, -- Show UI warning when data balance is low
DataflowPurchase = true, -- Allow players to buy additional data packages
}

High-level feature switches that govern optional subsystems. Disable any of these to turn off the corresponding system.

Config.SignalTowers = {
IsUse = true,
DefaultBars = 4,
BarsChance = {
[0] = 0.0, -- No signal
[1] = 0.25, -- 25% chance of network action success
[2] = 0.5,
[3] = 0.75,
[4] = 1.0 -- Full signal, always succeeds
},
Towers = {
{ Name = "LS Center", Coords = vector3(-29.752, -944.583, 29.415), Radius = 2500.0 },
{ Name = "Sendy", Coords = vector3(1785.988, 3688.188, 34.246), Radius = 1500.0 },
{ Name = "Paleto", Coords = vector3(-302.391, 6231.182, 31.454), Radius = 500.0 },
}
}
  • IsUse - If false, signal is always full bars (4)
  • DefaultBars - Signal bars when towers are disabled or position is unknown
  • BarsChance - Probability of successful network actions (calls, messages) per signal level
  • Towers - Array of signal tower definitions with name, coordinates, and coverage radius in meters

Add more towers to cover your map or increase radius values. Use in-game coordinates with vector3(x, y, z).

Config.NameDrop = {
Enabled = true, -- Master switch for NameDrop feature
MaxRange = 2.0, -- Max distance between players to share contacts
TimeoutMs = 10000, -- Consent prompt timeout (ms)
CooldownMs = 15000, -- Per-player cooldown after sharing (ms)
AllowReceiveOnly = true, -- Allow players to accept but not send contact info
AutoSaveContacts = true, -- Automatically save shared contacts to phonebook
}

NameDrop allows proximity-based contact sharing. Players near each other can request to exchange contact information with consent prompts.

Config.Services = {
goverment = {
job = "goverment",
name = "Goverment",
type = "General",
},
police = {
job = "police",
name = "Police",
type = "General",
},
ambulance = {
job = "ambulance",
name = "Ambulance",
type = "Health",
},
realestate = {
job = "realestate",
name = "Real Estate",
type = "Property",
},
taxi = {
job = "taxi",
name = "Taxi",
type = "Transport",
},
burgershot = {
job = "burgershot",
name = "Burger Shot",
type = "Food",
},
}

Services directory entries appear in the Services app. Add or modify entries to match your server’s jobs.

  • job - Framework job name that must match the player’s job
  • name - Display name shown in the Services app
  • type - Category type (General, Health, Property, Transport, Food, etc.)
  • logo - Optional: Custom logo URL (commented out by default)
Config.MailAdminCommand = {
name = 'mailbroadcast',
restricted = 'group.admin'
}

Configuration for the broadcast email command used by admins.

  • name - Command name (e.g., /mailbroadcast)
  • restricted - ox_lib permission string for who can use the command
Config.App = {
Phone = { Name = "Phone" },
VideoCall = { Name = "FaceTime" },
Ads = { Name = "Ads" },
Twaddle = { Name = "Twaddle" },
-- ... (all 30+ apps listed)
}

Display names for each app. These names can be customized, though most text is localized through the locales/ folder.

Server Customization (server/sv_customize.lua)

Section titled “Server Customization (server/sv_customize.lua)”

This file contains server-specific customization settings, primarily for webhook configuration.

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

Discord webhook URL for photo uploads. When players take photos with the in-game camera, images are uploaded to this webhook. Enter the complete webhook URL including the path.

FivemanageAPI = 'YOUR_API_KEY_HERE'

FiveManage API key for photo uploads. An alternative to Discord webhooks. Only enter the API key itself (not the full URL). The resource will automatically construct the upload URL as https://api.fivemanage.com/api/v3/file?apiKey=YOUR_KEY.

Choose your webhook provider in config/config.lua:

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

Important: Only configure one method. The resource uses the selected provider for all photo uploads.

Config.MusicLibrary = {
{
id = "ncs-001",
title = "Alan Walker - Spectre",
artist = "Alan Walker",
album = "NCS Releases",
url = "https://www.youtube.com/watch?v=AOeY-nDp7hI",
artwork = "https://img.youtube.com/vi/AOeY-nDp7hI/maxresdefault.jpg",
duration = 230,
genre = "Electronic",
year = 2017,
liked = false
},
-- ... more tracks
}

Pre-loaded music library using NCS (NoCopyrightSounds) tracks. Each track includes:

  • id - Unique identifier for the track
  • title - Song title
  • artist - Artist name
  • album - Album name
  • url - YouTube URL (xsound plays from this)
  • artwork - Album art image URL
  • duration - Track duration in seconds
  • genre - Music genre
  • year - Release year
  • liked - Default like status (players can change)

Add, remove, or modify tracks to customize your server’s music library.

Vehicle Configuration (config/config-vehicles.lua)

Section titled “Vehicle Configuration (config/config-vehicles.lua)”
{ model = 'asbo', name = 'Asbo', brand = 'Maxwell', price = 4000, category = 'compacts', type = 'automobile', shop = 'pdm' }

Vehicle data used by the phone for displaying vehicle information in apps like Garages.

  • model - Vehicle spawn code (must match your server’s vehicles)
  • name - Display name
  • brand - Vehicle manufacturer
  • price - Sale price
  • category - Vehicle category (must match GetVehicleClass() values)
  • type - Vehicle type (automobile, bike, boat, heli, etc.)
  • shop - Shop name where vehicle is sold

To enable photo uploads using Discord webhooks:

  1. Open your Discord server settings
  2. Navigate to Integrations -> Webhooks
  3. Create a new webhook
  4. Copy the webhook URL
  5. Paste it into server/sv_customize.lua:
    WebHook = 'https://discord.com/api/webhooks/YOUR_COPIED_URL'
  6. Set Config.Webhook = 'discord' in config/config.lua

Tip: Create a dedicated channel and webhook for phone photos to keep your main channels clean.

To enable photo uploads using FiveManage:

  1. Get your FiveManage API key from the FiveManage dashboard
  2. Paste only the API key (not the full URL) into server/sv_customize.lua:
    FivemanageAPI = 'YOUR_ACTUAL_API_KEY_HERE'
  3. Set Config.Webhook = 'fivemanage' in config/config.lua

Note: The resource will automatically construct the full upload URL as https://api.fivemanage.com/api/v3/file?apiKey=YOUR_KEY using the FiveManage V3 API.

To allow all players to use the phone without an item:

Config.RequirePhoneItem = false

To enable FaceTime-style video calling:

Config.EnableVideoCall = true

Ensure xsound is installed and working before enabling this feature.

To always have full signal regardless of location:

Config.SignalTowers.IsUse = false

Add a new service to the Services directory:

Config.Services = {
-- existing services...
mechanic = {
job = "mechanic",
name = "Mechanic Shop",
type = "General",
},
}

Set the default language:

Config.Locale = 'es' -- For Spanish

Translations are in locales/es.lua. Add new languages by creating locales/yourlang.lua.


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.