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.
Main Configuration (config/config.lua)
Section titled “Main Configuration (config/config.lua)”Core Settings
Section titled “Core Settings”Config.Debug = falseEnable 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.
Inventory Configuration
Section titled “Inventory Configuration”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.
Phone Access Settings
Section titled “Phone Access Settings”Config.RequirePhoneItem = falseIf 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).
Call & Voice Settings
Section titled “Call & Voice Settings”Config.CallRepeats = 5Number of automatic call retries before marking a call as failed.
Config.RepeatTimeout = 3000Cooldown 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 = falseMaster toggle for video call functionality. Set to true to enable FaceTime-style video calling. Requires client/server support and xsound.
Config.CanUseAnonymous = trueAllow players to enable anonymous caller ID for outgoing calls.
App Features Toggles
Section titled “App Features Toggles”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.
Signal Tower Configuration
Section titled “Signal Tower Configuration”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- Iffalse, signal is always full bars (4)DefaultBars- Signal bars when towers are disabled or position is unknownBarsChance- Probability of successful network actions (calls, messages) per signal levelTowers- 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).
NameDrop Configuration
Section titled “NameDrop Configuration”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.
Services Directory Configuration
Section titled “Services Directory Configuration”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 jobname- Display name shown in the Services apptype- Category type (General, Health, Property, Transport, Food, etc.)logo- Optional: Custom logo URL (commented out by default)
Mail Admin Configuration
Section titled “Mail Admin Configuration”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
App Names Configuration
Section titled “App Names Configuration”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.
Discord Webhook
Section titled “Discord Webhook”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.
FiveManage API
Section titled “FiveManage API”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.
Webhook Provider Selection
Section titled “Webhook Provider Selection”Choose your webhook provider in config/config.lua:
Config.Webhook = 'discord' -- Options: discord or fivemanageImportant: Only configure one method. The resource uses the selected provider for all photo uploads.
Music Library (config/config-music.lua)
Section titled “Music Library (config/config-music.lua)”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 tracktitle- Song titleartist- Artist namealbum- Album nameurl- YouTube URL (xsound plays from this)artwork- Album art image URLduration- Track duration in secondsgenre- Music genreyear- Release yearliked- 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 namebrand- Vehicle manufacturerprice- Sale pricecategory- Vehicle category (must matchGetVehicleClass()values)type- Vehicle type (automobile, bike, boat, heli, etc.)shop- Shop name where vehicle is sold
Discord Webhook Setup
Section titled “Discord Webhook Setup”To enable photo uploads using Discord webhooks:
- Open your Discord server settings
- Navigate to Integrations -> Webhooks
- Create a new webhook
- Copy the webhook URL
- Paste it into
server/sv_customize.lua:WebHook = 'https://discord.com/api/webhooks/YOUR_COPIED_URL' - Set
Config.Webhook = 'discord'inconfig/config.lua
Tip: Create a dedicated channel and webhook for phone photos to keep your main channels clean.
FiveManage Setup
Section titled “FiveManage Setup”To enable photo uploads using FiveManage:
- Get your FiveManage API key from the FiveManage dashboard
- Paste only the API key (not the full URL) into
server/sv_customize.lua:FivemanageAPI = 'YOUR_ACTUAL_API_KEY_HERE' - Set
Config.Webhook = 'fivemanage'inconfig/config.lua
Note: The resource will automatically construct the full upload URL as
https://api.fivemanage.com/api/v3/file?apiKey=YOUR_KEYusing the FiveManage V3 API.
Common Configuration Scenarios
Section titled “Common Configuration Scenarios”Disabling Phone Item Requirement
Section titled “Disabling Phone Item Requirement”To allow all players to use the phone without an item:
Config.RequirePhoneItem = falseEnabling Video Calls
Section titled “Enabling Video Calls”To enable FaceTime-style video calling:
Config.EnableVideoCall = trueEnsure xsound is installed and working before enabling this feature.
Disabling Signal System
Section titled “Disabling Signal System”To always have full signal regardless of location:
Config.SignalTowers.IsUse = falseAdding Custom Services
Section titled “Adding Custom Services”Add a new service to the Services directory:
Config.Services = { -- existing services... mechanic = { job = "mechanic", name = "Mechanic Shop", type = "General", },}Changing Language
Section titled “Changing Language”Set the default language:
Config.Locale = 'es' -- For SpanishTranslations 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.