Référence de configuration PMMS
Tous les réglages de config.lua et config.server.lua de PMMS avec leur valeur dans l’archive, leurs bornes, le côté qui les lit et leur effet réel.
But : connaître chaque réglage, sa valeur livrée et son effet réel.
Fichiers : pmms/config.lua (chargé par le client et le serveur) et pmms/config.server.lua (serveur uniquement). Redémarrez la ressource après une modification : restart pmms.
Les bornes indiquées « serveur » sont appliquées par le serveur au démarrage d’un lecteur : une valeur hors bornes est ramenée à la limite, une valeur absente prend le défaut.
Jeu
| Paramètre | Type | Défaut | Effet |
|---|---|---|---|
Config.isRDR | boolean | auto | Détection automatique RedM / GTA V, calculée par IsDuplicityVersion() and GetConvar("gamename", "gta5") == "rdr3" or not TerraingridActivate. Côté client, vaut true si la native TerraingridActivate n’existe pas (RedM). Elle sert de valeur de départ à enableFilterByDefault, defaultModel et allowPlayingFromVehicles. Ne la remplacez pas par une valeur fixe sans raison. Côté serveur, l’expression se termine par « or not TerraingridActivate » : cette native n’étant pas une native serveur, le résultat serveur est true même sur GTA V. Voir Dépannage. Lu par : client + serveur — config.lua |
Détection des lecteurs
| Paramètre | Type | Défaut | Effet |
|---|---|---|---|
Config.maxDiscoveryDistance | numbermètres | 30.0 | Distance maximale à laquelle un lecteur inactif apparaît dans le panneau, et rayon de recherche du « lecteur le plus proche » utilisé par les commandes play, pause et stop. Lu par : client — config.lua |
Son et portée
| Paramètre | Type | Défaut | Effet |
|---|---|---|---|
Config.defaultSameRoomAttenuation | number | 4.0 | Multiplicateur d’atténuation par défaut quand l’auditeur est dans la même pièce que le lecteur. Plus la valeur est haute, plus le son baisse vite avec la distance. Bornes : 0 à 10 (borne serveur) Lu par : serveur — config.lua |
Config.defaultDiffRoomAttenuation | number | 6.0 | Multiplicateur d’atténuation par défaut quand l’auditeur est dans une autre pièce (intérieur différent, ou hors du véhicule qui joue). Bornes : 0 à 10 (borne serveur) Lu par : serveur — config.lua |
Config.defaultRange | numbermètres | 30.0 | Portée par défaut d’un lecteur actif : au-delà, il n’est plus entendu ni affiché. Bornes : 0 à maxRange Lu par : serveur — config.lua |
Config.maxRange | numbermètres | 140.0 | Portée maximale qu’un joueur ou un export peut définir ; toute valeur supérieure est ramenée à ce plafond. Sert aussi au calcul de defaultMediaPlayerSpawnDistance. La ressource d’origine utilisait 200. Lu par : client + serveur — config.lua |
Config.defaultDiffRoomVolume | number | 0.25 | Écart de volume de base entre la même pièce et une pièce différente. Bornes : 0 à 1 (borne serveur) Lu par : serveur — config.lua |
Config.enableFilterByDefault | boolean | Config.isRDR | Filtre « immersif » appliqué quand l’option filter n’est pas précisée : effet radio (son mono et bande passante réduite) sur GTA V, phonographe avec teinte sépia sur RedM. Vaut false sur un client GTA V. Le serveur applique sa propre valeur aux lecteurs lancés sans filter (exports, lecteurs par défaut) ; avec isRDR évalué à true côté serveur, ces lecteurs démarrent filtrés. Précisez filter = false dans les options. Lu par : client + serveur — config.lua |
L’atténuation et la portée se règlent aussi par lecteur dans le panneau, par modèle dans Config.models, ou par option de lancement (voir Commandes).
Vidéo
| Paramètre | Type | Défaut | Effet |
|---|---|---|---|
Config.defaultVideoSize | number | 30 | Taille par défaut de l’écran vidéo NUI affiché au-dessus de l’entité, utilisé quand le modèle n’a pas de renderTarget. Bornes : 10 à 100 (borne serveur) Lu par : serveur — config.lua |
Config.defaultScaleformName | string | "pmms_texture_renderer" | Scaleform utilisé pour afficher une vidéo sur un écran libre (stream/pmms_texture_renderer.gfx). Lu par : client — config.lua |
Modèles, presets et lecteurs par défaut
| Paramètre | Type | Défaut | Effet |
|---|---|---|---|
Config.models | table | { … } (122 modèles) | Modèles d’entités utilisables comme lecteurs, indexés par hash. Champs facultatifs : label, renderTarget, filter, volume, attenuation, diffRoomVolume, range, isVehicle, scaleform. 102 modèles déclarent un renderTarget (écran). Lu par : client + serveur — config.lua |
Config.defaultModel | hash | Config.isRDR and `p_phonograph01x` or `prop_boombox_01` | Modèle créé par l’export createMediaPlayer et par les lecteurs par défaut à faire apparaître quand aucun model n’est précisé. Sur GTA V : prop_boombox_01. Lu par : client — config.lua |
Config.presets | table | {} | Médias prédéfinis, indexés par un nom court. url obligatoire ; title, filter, video facultatifs. Sans la permission pmms.customUrl, un joueur ne peut jouer que ces presets. Lu par : client + serveur — config.lua |
Config.defaultMediaPlayers | table | {} | Lecteurs placés par la configuration : position obligatoire, puis label, spawn, model, rotation, invisible, url, title, volume, offset, loop, filter, locked, video, videoSize, muted, attenuation, range, scaleform. Ceux qui ont une url démarrent avec la ressource. Lu par : client + serveur — config.lua |
Config.defaultMediaPlayerSpawnDistance | numbermètres (150 par défaut) | Config.maxRange + 10.0 | Distance à laquelle les lecteurs par défaut marqués spawn = true apparaissent et disparaissent autour du joueur. Lu par : client — config.lua |
Le format détaillé de ces tables et des exemples copiables sont dans Modèles, écrans et presets.
Page DUI
| Paramètre | Type | Défaut | Effet |
|---|---|---|---|
Config.dui.urls.https | string | "https://pmms-dui.mrpoulpiii.fr" | Page DUI chargée par chaque client pour afficher une vidéo https:// sur un écran (renderTarget ou scaleform). Le client dépend de la disponibilité de cette page externe. Lu par : client — config.lua |
Config.dui.urls.http | string | absent | Page DUI pour les médias http://. Absente : le client utilise http://<serveur>/pmms/dui/, servie par httpmanager depuis pmms/http/dui, dossier que l’archive ne contient pas. Lu par : client — config.lua |
Config.dui.screenWidth | numberpixels | 1920 | Largeur du navigateur DUI (1280 dans la ressource d’origine). Lu par : client — config.lua |
Config.dui.screenHeight | numberpixels | 1080 | Hauteur du navigateur DUI (720 dans la ressource d’origine). Lu par : client — config.lua |
Config.dui.timeout | numbermillisecondes | 30000 | Attente maximale de la connexion à la page DUI. Au-delà, F8 affiche « Failed to initialize DUI browser ». Lu par : client — config.lua |
Commandes
| Paramètre | Type | Défaut | Effet |
|---|---|---|---|
Config.commandPrefix | string | "pmms" | Nom de la commande principale et préfixe des autres. Le raccourci clavier exécute cette commande. Si vous le changez, renommez les entrées command.pmms… de permissions.cfg. Lu par : client + serveur — config.lua |
Config.commandSeparator | string | "_" | Séparateur entre le préfixe et le nom de commande (pmms_play). Lu par : client + serveur — config.lua |
Interface
| Paramètre | Type | Défaut | Effet |
|---|---|---|---|
Config.audioVisualizations | table | { … } (20 visualisations) | Visualisations audio proposées (Wave.js). La clé est le type de visualisation ; name est le libellé affiché. Les autres propriétés de l’entrée (type, stroke, colors…) sont transmises telles quelles à Wave.js. Lu par : interface NUI — config.lua |
Config.showNotifications | boolean | true | Affiche les notifications de pmms : erreurs envoyées par le serveur (permission refusée, URL refusée…), « aucun lecteur à proximité », bascule du statut et réinitialisation. L’affichage du volume (/pmms_vol sans valeur) et « aucun preset » restent affichés. Lu par : client — config.lua |
Config.notificationDuration | numbermillisecondes | 5000 | Durée par défaut d’une notification envoyée à PMMSBridge.notify. Lu par : client — config.lua |
Immersion
| Paramètre | Type | Défaut | Effet |
|---|---|---|---|
Config.allowPlayingFromVehicles | boolean | not Config.isRDR | Considère les véhicules proches comme des lecteurs. Les véhicules ne passent pas par Config.models ni par la permission pmms.anyEntity : avec true, tout véhicule proche est utilisable. Lu par : client — config.lua |
Config.autoDisableStaticEmitters | boolean | true | Coupe les émetteurs sonores statiques de la carte listés dans staticEmitters.lua (301 entrées) quand un média est audible, puis les rétablit. Lu par : client — config.lua |
Config.autoDisableIdleCam | boolean | true | Empêche la caméra d’inactivité de se déclencher pendant qu’un média est audible. Lu par : client — config.lua |
Config.autoDisableVehicleRadio | boolean | true | Coupe la radio GTA d’un véhicule qui joue un média (sans effet sur RedM). Lu par : client — config.lua |
URL et limites
| Paramètre | Type | Défaut | Effet |
|---|---|---|---|
Config.allowedUrls | string[] | { youtube.com, youtu.be, twitch.tv } | Motifs Lua des URL autorisées pour un joueur qui a pmms.customUrl sans pmms.anyUrl. Avec le permissions.cfg livré, tout le monde a pmms.anyUrl : cette liste n’est alors pas appliquée. Lu par : serveur — config.lua |
Config.oneMediaPerPlayer | boolean | true | Un joueur ne peut lancer (ni mettre en file d’attente) un nouveau média tant que le précédent qu’il a lancé est actif. La place se libère quand ce média s’arrête ou quand le joueur se déconnecte. Lu par : serveur — config.lua |
Config.allowedUrls contient des motifs Lua, pas des expressions régulières : échappez le point avec %., ancrez avec ^ et $.
Config.allowedUrls = {
"^https?://w?w?w?%.?youtube.com/.*$",
"^https?://w?w?w?%.?youtu.be/.*$",
"^https?://w?w?w?%.?twitch.tv/.*$",
"^https://cdn%.mon%-serveur%.fr/musique/.*%.mp3$"
}
cdn.mon-serveur.fr est un exemple. Cette liste ne s’applique qu’aux joueurs qui ont pmms.customUrl sans pmms.anyUrl.
Raccourci clavier
| Paramètre | Type | Défaut | Effet |
|---|---|---|---|
Config.keybind.enabled | boolean | true | Crée la commande et le raccourci clavier d’ouverture du panneau. Lu par : client — config.lua |
Config.keybind.command | string | "openPmms" | Nom de la commande client liée au raccourci. Elle exécute la commande Config.commandPrefix, donc le joueur doit avoir l’ACE command.pmms. Lu par : client — config.lua |
Config.keybind.label | string | "Ouvrir Radio/TV" | Libellé du raccourci dans Paramètres › Raccourcis clavier › FiveM, passé par locales.lua. Lu par : client — config.lua |
Config.keybind.mapper | string | "keyboard" | Périphérique du raccourci pour RegisterKeyMapping (keyboard, mouse_button, pad_digitalbutton…). Lu par : client — config.lua |
Config.keybind.key | string | "Q" | Touche proposée par défaut. FiveM mémorise le choix de chaque joueur : changer cette valeur n’affecte pas un joueur qui a déjà le raccourci. Lu par : client — config.lua |
Config.keybind.vehicleOnly | boolean | false | true : le raccourci ne fait rien à pied. La commande /pmms reste utilisable partout. Lu par : client — config.lua |
Sur GTA V, Q est aussi la touche « se mettre à couvert » : à pied, le raccourci se déclenche en même temps. Proposez une autre touche ou passez vehicleOnly à true si cela gêne vos joueurs.
Logs Discord
| Paramètre | Type | Défaut | Effet |
|---|---|---|---|
ConfigServer.logsEnabled | boolean | true | Active l’envoi des logs Discord. Rien n’est envoyé tant que la convar pmms_webhook est vide. Lu par : serveur — config.server.lua |
ConfigServer.logName | string | "PMMS Logs" | Nom d’expéditeur du webhook. Lu par : serveur — config.server.lua |
ConfigServer.logColor | number | 5763719 | Couleur de l’embed, en entier décimal (5763719 = #57F287). Lu par : serveur — config.server.lua |
ConfigServer.includeIdentifiers | boolean | false | Ajoute tous les identifiants du joueur (licence, Discord, IP selon le serveur…) à chaque log. Ces données personnelles partent vers Discord : laissez false sauf besoin réel. Lu par : serveur — config.server.lua |
Le webhook lui-même n’est pas dans ce fichier : il est lu dans la convar serveur pmms_webhook (voir Intégrations).
Erreurs fréquentes
- Préfixe de commande changé sans mettre à jour
permissions.cfg: les joueurs n’ont plus le droit d’utiliser les commandes renommées, ni le raccourci. - Motif d’URL non échappé (
youtube.comau lieu deyoutube%.com) : le point accepte n’importe quel caractère, la liste devient plus permissive que prévu. maxRangebaissé sousdefaultRange: la portée par défaut est ramenée àmaxRange.