Agency-Phone : le smartphone conçu spécialement pour FiveM
Découvre pourquoi Agency-Phone offre l’expérience smartphone la plus immersive sur FiveM, des applis à la performance sous charge.
Agency Scripts
Fondateur et développeur principal chez Agency Scripts
Démo en direct
Essaie Agency Phone dans ton navigateur, sans téléchargement.
Pourquoi créer encore un téléphone FiveM ?
Nous avons créé Agency-Phone parce que tous les téléphones que nous avions essayés sur nos propres serveurs avaient soit une belle apparence mais de mauvaises performances, soit de bonnes performances mais un aspect dépassé. Le marché était plein de compromis. Nous voulions quelque chose qui donne vraiment l'impression d'utiliser un smartphone moderne dès l'ouverture, tout en conservant une consommation de ressources de 0.00ms au repos lorsqu'il se trouve dans la poche d'un joueur.
Une interface qui ne fait pas penser à FiveM
La plupart des téléphones FiveM révèlent leur origine en deux secondes à peine. Les polices semblent légèrement incorrectes, les animations sont saccadées et la disposition de l'écran d'accueil donne l'impression d'être provisoire. Agency-Phone a été conçu par des personnes qui utilisent de vrais smartphones au quotidien. Chaque élément, de l'horloge de l'écran de verrouillage à l'animation d'ouverture du tiroir d'applications, a été peaufiné jusqu'à ce qu'il cesse de ressembler à un script et commence à ressembler à un téléphone.
L'architecture des applications
En coulisses, Agency-Phone utilise un système de chargement à la demande des applications. Leur interface s'initialise uniquement lorsqu'elles sont ouvertes, ce qui permet de maintenir une utilisation mémoire stable, même à mesure que nous ajoutons des applications. Le bus d'événements entre Lua côté client et la couche NUI est limité pour éviter que les actions rapides des utilisateurs ne provoquent des pics de resmon dans le jeu. C'est le genre de travail d'ingénierie que personne ne voit, mais dont tout le monde profite lorsque son serveur accueille 128 joueurs.
Indépendant du framework par défaut
Agency-Phone inclut des adaptateurs pour QBCore et ESX, mais son cœur est indépendant de tout framework. Si tu utilises un serveur standalone avec ta propre couche de données joueur, tu peux le connecter en un après-midi en implémentant quatre fonctions de recherche. Nous refusons de fournir des scripts qui t'enferment dans un seul framework, car les frameworks évoluent. Depuis notre arrivée dans la communauté, nous avons vu passer au moins trois vagues de « c'est désormais la norme ».
Le rôle du téléphone en RP
Un téléphone FiveM est avant tout un outil social. Les joueurs s'en servent pour organiser des rendez-vous, conclure des ventes de drogue, envoyer des messages au personnage de leur patron et écouter de la musique avec l'application radio. Chaque ajout ou suppression dans Agency-Phone est évalué selon la question suivante : est-ce que cela facilite ou rend plus amusantes les interactions sociales ? C'est pourquoi nous avons livré une application galerie avant les rappels de calendrier, et pourquoi l'application de messagerie incluse propose des indicateurs de saisie dynamiques avant l'envoi programmé. Le RP d'abord, les listes de fonctionnalités ensuite.
Installation & configuration
Agency-Phone nécessite oxmysql pour enregistrer les contacts, les messages et l'historique des appels. Importe phone.sql dans ta base de données, télécharge la ressource depuis Tebex, dépose-la dans ton répertoire resources et ajoute ensure agency-phone à server.cfg . La détection du framework est automatique pour QBCore et ESX. Pour une configuration standalone, implémente les quatre fonctions d'adaptateur dans config.lua. Cela prend généralement une heure ou deux, selon ta couche de données joueur personnalisée.
Les joueurs ouvrent le téléphone en appuyant sur la touche configurable (par défaut : M) ou en utilisant un objet de leur inventaire. Les deux méthodes peuvent être utilisées en même temps. Certains serveurs utilisent le raccourci clavier, d'autres préfèrent l'approche immersive avec un objet, qui permet de faire tomber ou de voler le téléphone.
Options de configuration
Le config.lua couvre les paramètres techniques et de gameplay :
- Touche du téléphone, touche pour ouvrir ou fermer le téléphone. Par défaut : M.
- Téléphone sous forme d'objet, permet de choisir si un objet téléphone doit être présent dans l'inventaire. Par défaut : désactivé (touche uniquement).
- Format des numéros, format d'affichage et génération automatique des numéros de téléphone pour les nouveaux personnages.
- Portée des appels, distance physique maximale pour les appels à portée, au-delà de laquelle l'appel est redirigé vers la messagerie vocale. Par défaut : illimitée pour les appels en personnage.
- Intégration Twitter/LifeInvader, connecte Agency-LifeInvader si installé pour activer l'application sociale.
- Intégration de l'application radio, configure les stations radio disponibles dans le lecteur de musique.
- Application bancaire, connecte les services bancaires QBCore, les comptes ESX ou un gestionnaire bancaire personnalisé.
- Application GPS, catégories de points de passage personnalisées pour les lieux propres au serveur (hôpitaux, postes de police, commerces).
- Routage des notifications, qui détermine si des scripts externes peuvent envoyer des notifications au téléphone et comment elles s’affichent.
Compatibilité avec les frameworks
Agency-Phone est fourni avec des adaptateurs QBCore et ESX. L’adaptateur prend en charge l’affichage de l’argent, l’objet d’inventaire (si le téléphone en tant qu’objet est activé), les données de métier pour la visibilité des applications propres à chaque métier et l’affichage du nom du personnage. Pour standalone, le même modèle à quatre fonctions s’applique. Une fois l’adaptateur écrit pour un script Agency, les scripts suivants utilisent les mêmes fonctions.
Pourquoi c’est important pour le roleplay
Un téléphone est l’objet le plus personnel qu’un personnage porte sur lui. Les joueurs interagissent avec lui à chaque session : ils passent des appels, envoient des SMS, consultent leur solde bancaire et regardent la carte. Quand cette interaction donne l’impression d’utiliser un vrai téléphone, les sessions RP qui s’y rapportent paraissent elles aussi plus réalistes. Une transaction de drogue coordonnée via l’application SMS d’Agency-Phone, avec des confirmations de lecture et des indicateurs de saisie, donne une scène bien différente, et meilleure, que la même transaction coordonnée avec une commande de chat.
La coordination sociale est le rôle du téléphone le plus important pour le RP. La plupart des événements RP importants commencent par une communication : quelqu’un prend contact, organise un rendez-vous, donne des coordonnées ou confirme un horaire. Ces échanges sont plus immersifs lorsqu’ils ont lieu dans des canaux en personnage plutôt que sur Discord ou dans le chat OOC. Les applications d’appel et de SMS d’Agency-Phone répondent nativement à 95% de ces besoins de coordination sociale.
La consommation de ressources au repos de 0.00ms n’est pas qu’un détail technique, c’est ce qui permet d’utiliser le téléphone comme une ressource toujours ouverte. Les scripts qui consomment 0.02ms au repos sur un serveur de 128 joueurs ajoutent une charge totale de 2.56ms sur l’ensemble de la population. La consommation au repos d’Agency-Phone est nulle. C’est important pour les performances du serveur, comme pour toute ressource partagée : la charge est proportionnelle au nombre de joueurs.
La galerie de la v2 et la fonction de capture d’écran en jeu ont créé un cas d’utilisation RP inattendu : la photographie de preuves en personnage. Les policiers prennent des captures d’écran des scènes de crime avec l’appareil photo du téléphone et les partagent dans le chat interne de leur service. Les journalistes photographient des événements et les publient sur LifeInvader. L’appareil photo transforme le téléphone, d’un outil de communication, en un outil de documentation qui a une véritable utilité en RP.
Questions fréquentes
Les numéros de téléphone peuvent-ils être conservés après les wipes du serveur ?
Les numéros de téléphone sont enregistrés dans oxmysql avec l’identifiant du personnage. Tant que cet identifiant est conservé après un wipe, le numéro persiste. La plupart des wipes de serveur effacent la progression des personnages, mais conservent les identifiants, les numéros survivent donc généralement. Pour les wipes complets qui réinitialisent aussi les identifiants, un export de conservation des numéros permet d’enregistrer puis de restaurer séparément le numéro d’un personnage, indépendamment du wipe principal.
La police peut-elle tracer les appels et les messages en temps réel ?
Oui. Active le système de traçage dans config.lua. Les policiers ayant le niveau de permission requis peuvent ouvrir le panneau de traçage et effectuer une recherche par numéro. L’origine des appels en cours apparaît sur la carte. Les métadonnées des messages (heure, paire de numéros) sont enregistrées dans la table des journaux et accessibles via Agency-Admin. Le traçage du contenu intégral des messages est désactivé par défaut, conformément à une approche axée sur la confidentialité. Active-le explicitement si les règles RP de ton serveur le permettent.
Comment le téléphone gère-t-il les appels quand un joueur est mort ou en garde à vue ?
Configure l’état de mort et l’état menotté dans config.lua. Tu peux régler le téléphone des joueurs morts pour qu’il passe directement à la messagerie vocale, soit désactivé ou autorise uniquement les appels d’urgence. Les joueurs menottés peuvent être totalement privés de téléphone ou limités à la vue GPS uniquement, afin que la police voie qu’ils n’appellent pas de renforts. Ces états sont détectés via des fonctions exportées par tes scripts de deathscreen et de menottage.
Quelles stations de radio sont disponibles dans l’application musicale ?
La liste de stations par défaut comprend huit URL de flux radio communautaires couvrant les genres les plus courants. Ajoute les tiennes en ajoutant des URL de flux à Config.RadioStations. Les serveurs ajoutent souvent leur propre station radio, où le staff diffuse des actualités en personnage. Il n’y a pas de DRM ni d’intégration à un service de streaming, toute URL de flux audio accessible publiquement fonctionne.
Prérequis
- Serveur FiveM (QBCore, ESX ou standalone)
- oxmysql
- Compte cfx.re avec une licence Agency-Phone valide
- Facultatif : Agency-LifeInvader (pour l’intégration à l’application sociale)
- Facultatif : Agency-Pad (pour la synchronisation des données entre appareils)