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.
Prerequisites
Section titled “Prerequisites”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)
Installation Steps
Section titled “Installation Steps”1. Download and Place Resource
Section titled “1. Download and Place Resource”Download ARS Phone and place it in your server’s resources directory:
server-data/resources/[custom]/ars_phone/2. Import Database Schema
Section titled “2. Import Database Schema”Import the database.sql file into your MySQL/MariaDB database using your preferred database management tool (phpMyAdmin, HeidiSQL, DBeaver, or command line):
mysql -u username -p database_name < database.sqlImportant: The SQL file creates 53 tables. Ensure your database user has CREATE TABLE permissions.
3. Configure Framework
Section titled “3. Configure Framework”Open config/config.lua and set your framework:
Config.Framework = "QB" -- Options: QB, ESX, or QBXThe 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
4. Configure Inventory
Section titled “4. Configure Inventory”Set your inventory system in config/config.lua:
Config.Inventory = "qb" -- Options: ox, qb, ak47, qsThen set the image path for inventory item icons:
Config.InventoryImage = 'nui://qb-inventory/html/images/' -- Base path for item imagesSupported 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/ |
5. Configure Phone Item (Optional)
Section titled “5. Configure Phone Item (Optional)”By default, all players can open the phone without an item. To require a phone item:
Config.RequirePhoneItem = trueAdd 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'}6. Configure Discord Webhook (Optional)
Section titled “6. Configure Discord Webhook (Optional)”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 fivemanageWarning: Without a configured webhook, photo uploads will fail and players will see errors.
7. Configure Voice System
Section titled “7. Configure Voice System”Set your voice routing backend in config/config.lua:
Config.VoiceSystem = 'pma' -- Options: pma, mumble, saltychat8. Add to Server Config
Section titled “8. Add to Server Config”Add the resource to your server.cfg:
ensure oxmysqlensure ox_libensure xsoundensure ars_phoneNote: ARS Phone must be started after its dependencies.
9. Restart Your Server
Section titled “9. Restart Your Server”Restart your server or refresh the resource:
refreshensure ars_phoneVerification
Section titled “Verification”Verify your installation by checking the following:
- Resource Started: Check the console for
[ars_phone]startup messages with no errors - Phone Opens: Press
M(default keybind) to open the phone UI - Database Tables: Verify 53 tables were created in your database
- Framework Detection: Check console for framework detection message (e.g.,
[ars_phone] Framework: QB) - 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 = trueUpdating ARS Phone
Section titled “Updating ARS Phone”When updating to a new version:
- Backup Database: Export your phone tables before updating
- Download New Version: Replace the
ars_phonefolder with the new version - Run SQL Updates: Check the release notes for SQL migration scripts
- Review Config Changes: Compare your old config with the new config file
- Restart Server: Apply changes and verify functionality
Troubleshooting
Section titled “Troubleshooting”Phone UI Won’t Open
Section titled “Phone UI Won’t Open”- Issue: Pressing
Mdoes nothing - Solutions:
- Check that
ars_phoneis 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
- Check that
Database Errors
Section titled “Database Errors”- 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.sqlmanually if auto-import failed
Framework Not Detected
Section titled “Framework Not Detected”- Issue: Phone shows incorrect player data or fails to load
- Solutions:
- Verify
Config.Frameworkmatches your installed framework - Ensure framework resource starts before
ars_phone - Check console for framework detection message
- Verify
Photo Uploads Failing
Section titled “Photo Uploads Failing”- Issue: Camera photos don’t save or upload fails
- Solutions:
- Install
screenshot-basicif not already present - Configure webhook URL in
server/sv_customize.lua - Verify webhook URL is valid and has permissions
- Check that
Config.Webhookis set todiscordorfivemanage - Enable debug mode to see webhook errors
- Install
Signal Always Low
Section titled “Signal Always Low”- Issue: Phone shows 0-1 signal bars everywhere
- Solutions:
- Check
Config.SignalTowers.Towerscoordinates inconfig/config.lua - Adjust tower radius values to cover your map
- Disable signal system for testing:
Config.SignalTowers.IsUse = false
- Check
Video Calls Not Working
Section titled “Video Calls Not Working”- 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
- Enable video calls:
Phone Item Not Required
Section titled “Phone Item Not Required”- Issue: Players can open phone without the phone item
- Solutions:
- Set
Config.RequirePhoneItem = truein config - Add the phone item to your inventory system (see Step 5 above)
- Restart the resource after changing config
- Set
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.