Voici jPhone, le smartphone que vos joueurs auront envie de sortir de leur poche.
L'écran est dessiné directement sur le modèle 3D tenu en main. Vous déplacez un pointeur rond avec la souris, vous touchez, appuyez longuement et glissez comme sur un vrai téléphone, et vous pouvez continuer à marcher pendant ce temps. Un clic molette le tourne à l'horizontale pour l'appareil photo, les cartes et les appels vidéo, et les autres joueurs le voient tourné dans votre main.
Je l'ai construit autour de quelques idées simples :
- Un téléphone vivant. Écran de verrouillage avec Face ID, appels et FaceTime, messages avec photos et GIF, appareil photo et jCloud, un GPS avec guidage pas à pas et bâtiments en relief, Localiser, banque, bourse et deux jeux, le tout relié ensemble.
- Pensé pour le roleplay. Numéros d'urgence, saisie par la police avec extraction des données, un dark web avec des contrats anonymes, des zones sans réseau, et les portes et caméras de votre maison dans votre poche.
- Branché sur votre serveur. GlorifiedBanking, SlownLS ATM, Blue's ATM, Realistic Police, CCTV System, sPrinter, OnePrint et Billy's Logs fonctionnent directement. Vous venez d'aPhone ? Vos joueurs gardent leurs messages, contacts et photos.
- Réglé en jeu. Un menu de configuration de plus de 100 options en 15 catégories, avec une recherche, et les changements arrivent tout de suite chez les joueurs. Un outil (toolgun) trace les routes, les lieux et les bâtiments de votre map pour le GPS.
- Sécurisé dès la conception. Chaque demande d'un joueur est revérifiée par le serveur et limitée en fréquence. Quelqu'un qui déverrouille un téléphone qui n'est pas le sien ne peut toucher ni à l'argent, ni à la position, ni aux réglages du propriétaire.
- Léger. L'écran ralentit à 3 images par seconde quand rien ne bouge, seul ce qui change passe par le réseau, et chaque joueur choisit sa qualité d'écran.
- SQLite ou MySQL. Les téléphones se chargent pendant que les joueurs se connectent, et rien n'est perdu à l'arrêt du serveur.
- Disponible en 4 langues. Anglais, français, espagnol et allemand, et chaque joueur choisit la sienne.
Vous voulez la liste complète ? Ouvrez l'onglet Fonctionnalités.
Tout ce qui suit fonctionne directement, en français, anglais, espagnol et allemand.
📱 jOS, le téléphone
- Écran dessiné sur le modèle 3D en main : pointeur rond, toucher, appui long, glisser, et vous continuez à marcher pendant que vous l'utilisez.
- Tourné à l'horizontale d'un clic molette (appareil photo, galerie, GPS, Localiser, FaceTime) : les autres joueurs le voient tourné dans votre main.
- Configuration d'un nouveau téléphone, compte jID et votre propre numéro.
- Écran de verrouillage avec Face ID ou code, widgets (solde bancaire, appels manqués, messages, destination) et appels d'urgence sans déverrouiller.
- Écran d'accueil avec dossiers, widgets (calendrier, météo, favoris, photo du jour), recherche d'apps, de contacts et de lieux.
- Centre de notifications, centre de contrôle (silencieux, Ne pas déranger, numéro masqué, AirDrop, lampe) et bannières de notification.
- Une lampe torche qui éclaire vraiment le monde devant vous.
📞 Appels
- Contacts, favoris, appels récents, clavier et liste des joueurs en ligne.
- Appels en conférence et FaceTime de groupe, haut-parleur, micro coupé, position partagée pendant l'appel.
- Numéro masqué avec #31#, une sonnerie par contact, « Me le rappeler » et réponse rapide par message.
- Numéros spéciaux (911, 112…) qui font sonner tous les joueurs des métiers choisis.
- Les joueurs rendus muets (ULX, SAM, FAdmin) restent muets en appel.
💬 Messages
- Photos, GIF (GIPHY), emojis, positions qui s'ouvrent dans le GPS et cartes de contact.
- Accusés de réception et de lecture, conversations épinglées, en sourdine ou non lues.
- Demandes d'argent payées depuis la conversation.
📷 Appareil photo et Galerie
- Caméra avant et arrière, zoom de 0,5× à 2×, viseur plein écran à l'horizontale.
- Albums, favoris, souvenirs, selfies, carte de vos photos et recherche.
- AirDrop vers les joueurs proches, n'importe quelle photo en fond d'écran.
- jCloud : vos photos vous suivent sur un autre ordinateur.
🧭 GPS
- Guidage pas à pas sur les routes de votre map, avec le temps restant calculé à votre vraie vitesse.
- Instructions pour tourner, aller tout droit ou faire demi-tour, et nouvel itinéraire dès que vous prenez une autre route.
- Bâtiments en relief quand on zoome, parcs, eau, parkings, places et quartiers.
- Carte dessinée dans le style du téléphone, vue satellite de votre map, ou votre propre image de carte.
- Recherche de lieux par nom et catégorie, arrivée détectée dès que vous entrez dans le bâtiment.
- Zones sans réseau : ni appels ni messages à l'intérieur, les barres baissent à l'approche.
📍 Localiser
- Partagez votre position avec un contact pour 1 h, 8 h ou pour toujours, et voyez la sienne en direct.
- Retrouvez vos téléphones : dans vos mains, dans les mains de quelqu'un d'autre, au sol.
- Faire sonner, itinéraire, mode Perdu avec un message sur l'écran de verrouillage, ou effacement à distance.
- Aider un ami : ouvrez ses appareils avec son numéro et son code.
🏦 Banque
- Solde et virements entre joueurs, confirmés par Face ID ou par le code.
- Demandes d'argent, renvoyer un virement, filtres, recherche et détail de chaque transaction avec son reçu.
- Analyse mensuelle : dépenses par catégorie, revenus, contacts les plus payés.
- Compatible avec le portefeuille DarkRP, GlorifiedBanking, SlownLS ATM et Blue's ATM (virements aux joueurs hors ligne compris).
📈 Bourse
- Cours en direct, graphiques et actualités qui font bouger le marché.
- Achat et vente avec votre compte bancaire, portefeuille conservé entre les sessions.
🏠 Maison, Caméras et Imprimantes
- Vos propriétés : portes verrouillées et déverrouillées à distance, « Tout verrouiller », invitation de copropriétaires, activité de vos digicodes.
- Vos caméras de sécurité en direct (Realistic Police, CCTV System), orientables à gauche et à droite, onglet Ville pour la police.
- Vos imprimantes à billets (sPrinter, OnePrint) : argent, température, batterie, retrait, allumage et extinction, alertes en cas de surchauffe ou de destruction.
🚨 Roleplay
- Services : alertez la police, les secours ou n'importe quel métier en service, avec votre position.
- Onion (dark web) : pseudonyme anonyme, forum, messages privés chiffrés et contrats payés sous séquestre.
- Pièces à conviction (police) : saisissez le téléphone d'un suspect, extrayez ses données, lisez ses contacts, appels, messages, banque et photos, puis rendez-le.
🎮 Jeux
- Flappy Jay et Block Buster, avec un classement du serveur.
🎨 Personnalisation
- Fonds d'écran (collection, vos photos, Imgur), police et couleur de l'horloge de l'écran de verrouillage, thèmes clair et sombre.
- Styles d'icônes (par défaut, sombre, teinté, transparent), taille des icônes, couleur de coque appliquée au modèle en main.
- Sonneries, sons de message et vos propres sonneries depuis un lien MP3 ou OGG.
- Chaque joueur règle la vitesse et la taille du pointeur, une touche pour sortir le téléphone, la fluidité et la qualité de l'écran, et sa langue.
🛠️ Pour les propriétaires de serveur
- Menu de configuration en jeu (!jphone) : 115 réglages en 16 catégories, recherche, valeurs par défaut, envoyés aux joueurs immédiatement.
- Toolgun GPS pour tracer routes, lieux, bâtiments (rectangles tournés, angles droits, hauteur mesurée depuis le toit) et zones.
- SQLite ou MySQL, import depuis aPhone (messages, contacts et photos).
- Billy's Logs : appels, messages, banque, saisies, dark web et chaque modification de la configuration.
- Hooks et fonctions pour les autres addons : banque, caméras, notifications, logs, saisie, bourse, et vos propres apps.
🔒 Sécurité et performance
- Chaque demande est revérifiée par le serveur et limitée en fréquence ; la taille des messages, photos et textes est plafonnée.
- Un voleur qui déverrouille un téléphone ne peut toucher ni à l'argent, ni à la position, ni au code, ni aux réglages de son propriétaire.
- Liens de sonnerie et GIF uniquement depuis des sites autorisés : aucun joueur ne peut voir l'adresse IP des autres.
- L'écran ralentit à 3 images par seconde quand rien ne bouge, et seul ce qui change passe par le réseau.
📦 Installation
1. Le content Workshop (modèles du téléphone)
- Abonnez-vous au content jPhone : https://steamcommunity.com/sharedfiles/filedetails/?id=3816136400
- Ajoutez-le à la collection Workshop de votre serveur (celle de
+host_workshop_collectiondans la ligne de démarrage, ou de votre panel d'hébergeur). - Pour que vos joueurs le téléchargent en se connectant, créez le fichier
garrysmod/lua/autorun/server/jphone_workshop.luaavec cette ligne :resource.AddWorkshop("3816136400")
2. L'addon
- Téléchargez jPhone, décompressez l'archive et copiez le dossier
jphonedansgarrysmod/addons/. - Les polices et les icônes des apps sont envoyées aux joueurs par l'addon lui-même, rien d'autre à faire.
3. Premier démarrage
- Redémarrez le serveur : les tables de la base de données sont créées toutes seules (SQLite du serveur par défaut).
- Connectez-vous et tapez !jphone dans le chat pour ouvrir le menu de configuration (superadmins, et les groupes de
ConfigGroups). - Prenez le toolgun jPhone GPS (catégorie jPhone) pour tracer les routes et les lieux de votre map.
4. MySQL (optionnel)
- Installez MySQLOO 9 (
garrysmod/lua/bin), remplissezlua/jphone/config/sv_database.luaet redémarrez. - Des téléphones déjà enregistrés en SQLite ? Tapez
jphone_sql_migrateune fois dans la console du serveur.
5. Vous venez d'aPhone (optionnel)
jphone_import_aphonedans la console du serveur transfère tous les SMS.- Chaque joueur tape ensuite
jphone_import_aphone_contacts, téléphone en main, pour récupérer ses contacts et ses photos.
🧩 Compatibilités
jPhone n'a aucune dépendance. Chaque addon ci-dessous est détecté tout seul : installez-le et le téléphone l'utilise, retirez-le et le téléphone reprend son propre fonctionnement.
🎲 Modes de jeu
- DarkRP (et ses dérivés) : portefeuille pour la banque, métiers pour les services, les numéros spéciaux et les permissions,
isCP()et mandats pour la police, portes et copropriétaires DarkRP pour l'app Maison. - Autres modes de jeu : le téléphone fonctionne sans DarkRP ; la banque demande alors un addon bancaire ou les hooks de l'API développeur.
🏦 Banque
- GlorifiedBanking, SlownLS ATM, Blue's ATM : solde, virements (aussi vers les joueurs hors ligne qui ont un compte), historique, solde sur l'écran de verrouillage, « Distributeur le plus proche » dans le GPS.
- Toute autre banque : trois hooks (
JPhone:GetBalance,JPhone:AddBalance,JPhone:SetBankPin).
📹 Caméras et digicodes
- Realistic Police : vos caméras en direct, orientables à gauche et à droite, onglet Ville avec les caméras de la ville pour les métiers de son ordinateur de police.
- CCTV System : vos caméras en direct.
- Keypad et Wire Keypad : activité de vos digicodes dans l'app Maison.
- Tout autre addon de caméras :
JPhone.CameraProvider.
🖨️ Imprimantes à billets
- sPrinter et OnePrint : argent, débit, température, batterie et santé, retrait et allumage depuis le téléphone, alertes quand une imprimante surchauffe, est pleine ou détruite.
🛡️ Mods d'administration
- ULX, SAM, FAdmin : un joueur rendu muet reste muet en appel. Autres addons de mute : ajoutez leur hook de voix dans
VoiceMuteHooks. - Tous les groupes d'utilisateurs fonctionnent pour les permissions du menu (configuration, éditeurs GPS, modérateurs Onion…).
📜 Logs
- Billy's Logs (bLogs) : catégorie « jPhone » avec banque, appels, messages, sécurité, dark web, services, bourse, maison, caméras, imprimantes et admin.
- Tout autre addon de logs : hook
JPhone:Log.
🗄️ Base de données
- SQLite du serveur par défaut, MySQL avec MySQLOO 9 (une base partagée entre plusieurs serveurs fonctionne).
📲 Venir d'un autre téléphone
- aPhone : messages, contacts et photos transférés vers jPhone en deux commandes.
🔔 Notifications
- Notifications de DarkRP, sinon celles de GMod par défaut, ou les vôtres avec le hook
JPhone:NotifyPlayer.
Votre addon n'est pas dans la liste ? Ouvrez un ticket : la plupart des addons se branchent en quelques lignes grâce aux hooks de l'onglet Configuration / API développeur.
⚙️ Configuration en jeu
- Ouvrez le menu avec !jphone ou /jphone dans le chat, ou
jphone_configdans la console (groupes deConfigGroups, superadmins toujours). - 115 réglages en 16 catégories, avec une recherche, un point rouge sur chaque changement, un bouton Par défaut, et rien n'est envoyé avant Enregistrer.
- Le serveur revérifie chaque valeur et envoie les nouveaux réglages à tous les joueurs immédiatement, sans redémarrage.
- Chaque enregistrement est inscrit dans Billy's Logs (catégorie jPhone > Admin).
📂 Les 16 catégories
- Général : téléphone donné au spawn, langue du serveur et langues proposées, format des numéros (US, FR ou vos propres formats), opérateur et nom de la ville.
- Limites et sécurité : messages, conversations, contacts, appels et photos gardés par téléphone, taille des photos, photos par heure, essais du code et blocage.
- Affichage : taille du téléphone en main, champ de vision, vitesse du pointeur, fluidité de l'écran, résolution et taille du texte.
- Appels : contacts en ligne (et leur métier), durée de sonnerie, participants par appel, portée du haut-parleur, sonneries personnalisées et sites autorisés, hooks de mute des admins, métiers de chaque numéro spécial.
- Messages : GIF joués en même temps, limite d'AirDrop, clé GIPHY, images des emojis.
- Banque : addon bancaire (auto, GlorifiedBanking, SlownLS ATM, Blue's ATM ou le portefeuille), virement maximum, classes des distributeurs.
- Bourse : intervalle de mise à jour des cours, historique, chance d'actualité, frais et ordre maximum.
- Portes : verrouillage et déverrouillage à distance, « Tout verrouiller », copropriétaires, portée des portes, taille des propriétés, métiers autorisés.
- Caméras et digicodes : caméras des joueurs, caméras de la ville et leurs métiers, rotation des caméras, digicodes suivis.
- Imprimantes : retrait (portefeuille ou banque, frais, distance), allumage depuis le téléphone, alertes, métiers autorisés.
- Services : délai entre deux alertes, métiers de chaque service.
- Localiser : partages par joueur, durée de la sonnerie, durée de « Aider un ami ».
- Police : mandat nécessaire, portée de la saisie, temps d'extraction, durée des scellés, métiers de la police.
- Onion : durée et limites des posts, contrats (nombre, récompense, durée, frais), catégories, mots des pseudonymes, modérateurs.
- GPS : vue satellite, portée et aimantation du toolgun, distances de recalcul et d'arrivée, vitesse, coût du demi-tour, zones sans réseau, catégories de lieux, groupes éditeurs.
- Logs et accès : Billy's Logs, texte des messages dans les logs, groupes autorisés dans ce menu (superadmin uniquement).
📄 Fichiers
data/jphone/config.json: tous les réglages du menu, un par ligne, modifiables à la main serveur éteint. Une valeur fausse reprend sa valeur par défaut, et la console dit laquelle.config/sh_general.lua: classe de l'arme, modèles, limites de protection du réseau.config/sv_database.lua: MySQL (MySQLOO 9). Jamais envoyé aux joueurs ; sans lui, SQLite est utilisé.config/sh_display.lua: place de l'écran sur le modèle (jphone_calibratevous aide).config/sh_calls.lua,config/apps/sh_services.lua: numéros spéciaux, numéros d'urgence et services de l'app Services.config/sh_customization.lua: fonds d'écran, sonneries, sons de message et coques.config/apps/sh_stocks.lua: actions et titres d'actualité.constants/apps/sh_gps.lua: images des maps et types de formes.
🧭 Le GPS de votre map
- Toolgun jPhone GPS (catégorie jPhone) : routes, lieux, formes (bâtiments, parcs, eau, parkings, places, quartiers, zones sans réseau, textes), avec Z pour annuler.
- Bâtiments : rectangle par 2 coins, rectangle tourné par 3 points, angles droits, hauteur mesurée depuis le toit ou tapée en mètres.
- Commandes console
jphone_gps ...pour les mêmes modifications depuis votre position. - Votre propre image vue du dessus de la map (
GPSMaps), coins trouvés avecjphone_gps corner min|max.
🌍 Langues
- Anglais, français, espagnol et allemand. Un texte manquant passe à la langue du serveur, puis à l'anglais.
- Ajouter une langue : copiez
languages/sh_en.lua, traduisez-le, et ajoutez son code aux langues proposées dans le menu.
👤 Réglages des joueurs
- Menu de spawn > Utilitaires > jPhone : vitesse et taille du pointeur, touche pour sortir le téléphone, sons, lecture auto des GIF, fluidité et qualité de l'écran, langue.
🧩 API développeur
- Banque : hooks
JPhone:GetBalance,JPhone:AddBalance,JPhone:SetBankPin, etJPhone:AddBankLine(sId64, sLabel, iAmount, sIcon)pour écrire une ligne dans l'historique. - Notifications :
JPhone:Notify(pPlayer, tNotif)sur le téléphone,JPhone:NotifyPlayerdans le jeu, hookJPhone:CanNotifypour en bloquer une. - Logs : hook
JPhone:Log(pPlayer, sAction, tData)à chaque action sensible. - Police : hook
JPhone:CanSeize(pPolice, pSuspect). - Bourse :
JPhone:StockEvent(sId, fPercent, sHeadline)fait bouger une action tout de suite (un braquage de banque, une grève…). - Caméras :
JPhone.CameraProviderpour afficher les caméras d'un autre addon. - Événements :
JPhone:Loaded,JPhone:ConfigChanged,JPhone:DeviceSaved,JPhone:DeviceErased,JPhone:PhotoSaved,JPhone:GPSUpdated… - Vos propres apps : un dossier
lua/jphone/modules/<app>/dans n'importe quel addon,JPhone.App:Registerpour l'app,JPhone:RegisterAction(serveur, ids 40 à 255, limite de fréquence incluse) etJPhone:RegisterSync(client) pour son réseau,JPhone:RegisterLanguagepour ses textes.
-- Serveur : une amende écrite dans l'historique de l'app Banque
JPhone:AddBankLine(pPlayer:SteamID64(), "Amende · Police", -350, "receipt")
-- Serveur : le téléphone d'un admin ne peut pas être saisi
hook.Add("JPhone:CanSeize", "MyAddon:NoAdmins", function(pPolice, pSuspect)
if pSuspect:IsAdmin() then return false end
end)
La liste complète des réglages, hooks et fonctions est dans le README.md de l'addon.
🖱️ Utiliser le téléphone
- Clic gauche : toucher. Maintenir : appui long. Glisser : défiler ou balayer.
- Clic droit : retour. Molette : défiler (elle ne change pas d'arme tant que le téléphone a la souris).
- Clic molette (ou le bouton de rotation à l'écran) : tourner le téléphone à l'horizontale dans l'appareil photo, la galerie, le GPS, Localiser et FaceTime.
- R : libérer la souris pour regarder autour, puis appuyer à nouveau pour reprendre le téléphone.
- Écrire : cliquez sur un champ, tapez au clavier, Entrée pour valider.
- Barre d'accueil : touchez-la pour revenir à l'accueil, glissez-la vers le haut pour fermer l'app.
- En haut à gauche de l'écran : centre de notifications. En haut à droite : centre de contrôle (silencieux, Ne pas déranger, numéro masqué, AirDrop, lampe).
- Vous pouvez marcher, courir et conduire avec le téléphone en main.
- Touche optionnelle pour sortir le téléphone : menu de spawn > Utilities > jPhone.
🎮 Jeux
- Flappy Jay : clic ou Espace pour voler.
- Block Buster : bougez la souris, cliquez pour lancer la balle.
🧭 Toolgun GPS (admins)
- Routes : clic gauche pose un point relié au point sélectionné (Maj : nouvelle route), clic droit sélectionne ou relie deux points, R supprime, Z annule.
- Lieux : clic gauche ajoute un lieu avec le nom, la catégorie et l'icône du panneau, R le supprime.
- Formes : clic gauche ajoute un point, clic droit termine la forme (2 points = rectangle, 3 points = rectangle tourné, plus = polygone), R retire le dernier point ou la forme visée.
❓ FAQ
Faut-il DarkRP ?
Non, jPhone n'a aucune dépendance. Avec DarkRP, la banque utilise le portefeuille, les services utilisent les métiers et la police utilise isCP().
Mes joueurs n'ont pas de téléphone.
Vérifiez Téléphone à l'apparition dans le menu (catégorie Général). L'arme est jphone ; dans le menu de spawn, elle est réservée aux admins.
Le téléphone est invisible ou en modèle d'erreur.
Installez le contenu (modèles) sur le serveur et chez les joueurs, avec un addon de contenu ou une collection Workshop.
L'écran n'est pas à la bonne place sur mon propre modèle.
Utilisez jphone_calibrate en jeu, puis collez les valeurs dans config/sh_display.lua.
Comment utiliser MySQL ?
Installez MySQLOO 9, remplissez config/sv_database.lua et redémarrez. Pour les téléphones déjà en SQLite : jphone_sql_migrate une fois dans la console du serveur.
Je viens d'aPhone.jphone_import_aphone dans la console du serveur transfère tous les SMS. Chaque joueur tape ensuite jphone_import_aphone_contacts, téléphone en main, pour récupérer ses contacts et ses photos.
La Banque n'utilise pas mon addon bancaire.
Catégorie Banque du menu : auto prend le premier installé (GlorifiedBanking, SlownLS ATM, Blue's ATM), ou choisissez le vôtre.
Je ne vois pas l'app Caméras ou Imprimantes.
Elles n'apparaissent que si Realistic Police / CCTV System ou sPrinter / OnePrint est installé.
Le GPS n'a pas de routes.
Tracez-les une fois avec le toolgun jPhone GPS (groupes de EditorGroups). Elles sont enregistrées par map.
Certains GIF restent figés.
Seuls quelques GIF sont joués en même temps (6 par défaut, MessageGifPlayers), les autres montrent leur première image. Les joueurs en qualité d'écran « rapide » en jouent moins.
Les joueurs peuvent-ils ajouter leurs sonneries ?
Oui, depuis un lien MP3 ou OGG. Vous pouvez limiter les sites autorisés (CustomToneHosts). Une sonnerie perso n'est jouée que chez son propriétaire : personne ne peut connaître l'adresse IP d'un autre joueur.
Que se passe-t-il si un téléphone est volé ?
Il reste verrouillé par son code ou Face ID, avec un blocage après plusieurs essais ratés. Le propriétaire peut le passer en mode Perdu ou l'effacer depuis Localiser. Même déverrouillé, un voleur ne peut toucher ni à l'argent, ni à la position, ni aux réglages du propriétaire.
Un joueur a changé d'ordinateur et perdu ses photos.
Avec Photos jCloud activé (Réglages > Général), les photos reviennent toutes seules sur le nouvel ordinateur.
Est-ce que ça coûte beaucoup de FPS ?
Non. L'écran ralentit à 3 images par seconde quand rien ne bouge, et chaque joueur choisit la fluidité et la qualité de l'écran.
Comment ajouter une langue ?
Copiez languages/sh_en.lua, traduisez-le, puis ajoutez son code aux langues proposées dans le menu (catégorie Général).
Comment remettre la configuration à zéro ?
Supprimez data/jphone/config.json serveur éteint : tous les réglages reprennent leur valeur par défaut.
Publication de l'addon jPhone







