PMMS — MrPoulpi Labs edition
What the MrPoulpi Labs edition of pmms brings — a synchronised FiveM media player shipped with httpmanager — its editable files and its external dependencies.
PMMS lets players play music or video from game entities: radios, speakers, jukeboxes, TVs, computers, cinema screens or vehicles. Playback is synchronised between players, range and attenuation depend on the room each player is in, and videos show on the game’s screens.
This edition is based on kibook’s pmms and httpmanager resources. The pmms manifest declares no version number: this documentation describes the archive supplied to MrPoulpi Labs, with no version history.
- Installation Both resources, server.cfg, permissions, webhook and first test.
- Configuration reference Every config.lua and config.server.lua setting with its default and effect.
- Commands and interface Key binding, panel, /pmms_play and its flags, per-player remembered settings.
- Permissions and URLs The pmms.* ACEs, allowed URLs and the risks of free URLs.
What the resource does
- Media players: 122 game models recognised by default, including 102 screens that show video through DUI; any nearby vehicle can also be used.
- Synchronisation: the server holds each player’s state (media, playback position, pause, volume) and broadcasts it to everyone.
- Spatial sound: different attenuation in the same room and in another room, adjustable range, optional “radio” filter, audio visualisations.
- Video: on the model’s screen (renderTarget), on a free-standing scaleform screen, or in a frame shown above the entity.
- Queue, loop, mute, lock, copy of a player onto another entity.
- Media presets and default media players placed by configuration, which can start with the resource.
- Server and client exports to drive media players from your scripts.
What the MrPoulpi Labs edition adds
- Configurable key binding (Q by default) that opens the panel, with an option to limit it to vehicles.
- One media per player (
Config.oneMediaPerPlayer): a player cannot start a new media while theirs is playing. - Replaceable notifications: a single function,
PMMSBridge.notify, inintegrations/client.lua. - Server-side Discord logs, with a webhook read from a server convar, never shared with clients.
- Texts gathered in
locales.lua. - DUI page hosted at
https://pmms-dui.mrpoulpiii.fr, 1920 × 1080 DUI resolution, maximum range lowered to 140 m. - Media automatically stopped when the vehicle playing it disappears, and a disconnecting player’s reservations cleared.
Files you edit
| File | Role |
|---|---|
pmms/config.lua |
Shared settings: distances, sound, models, presets, default players, DUI, commands, URLs, key binding. |
pmms/config.server.lua |
Discord logs: enabling, name, colour, identifiers. |
pmms/locales.lua |
Texts shown to players and message fragments. |
pmms/integrations/client.lua |
Notifications and key binding. |
pmms/integrations/server.lua |
Formatting and sending of Discord logs. |
pmms/staticEmitters.lua |
Map sound emitters muted during playback. |
pmms/permissions.cfg |
ACE permissions and webhook convar. |
pmms/models.json, pmms/defaultMediaPlayers.json |
Settings saved in game; keep them when updating. |
pmms/ui/ |
NUI interface: HTML, JavaScript and styles. |
httpmanager/ |
HTTP library, fully accessible. |
client.lua, server.lua, dui.lua and common.lua are meant for Asset Escrow protection. Their observable behaviour is described in this documentation; this site does not publish their code.
External dependencies
Every client contacts services outside your server:
- the DUI page
https://pmms-dui.mrpoulpiii.frfor anyhttps://video shown on a screen; - the address of each media played, from the player’s own connection;
- with the filter on RedM, a noise file hosted on
redm.khzae.net.
Details, and how to host the DUI page yourself, are in Integrations.