MrPoulpi Labs
PMMS

Available scripts

FR
Documentation centre

Installation

Install MrPoulpi Labs PMMS — pmms and httpmanager folders, server.cfg lines, permissions, Discord webhook, data files and a first two-player test.

Goal: get PMMS running on your server and check synchronised playback. Files involved: the archive’s [pmms] folder and your server.cfg.

Requirements

Item Requirement observed in the archive
httpmanager Required (dependency "httpmanager"), shipped in the archive. pmms/server.lua calls its createHttpHandler export at start.
Game GTA V (FiveM) or RedM: the manifest declares gta5 and rdr3.
Framework None: rights go through FiveM ACEs.
Chat Optional: /pmms_presets and command suggestions use the default chat events.

Steps

  1. Copy the [pmms] folder into resources. Keep the pmms and httpmanager names in lowercase: pmms NUI callbacks depend on the exact resource name.

  2. Add to server.cfg:

    exec @pmms/permissions.cfg
    set pmms_webhook ""
    ensure httpmanager
    ensure pmms

    permissions.cfg itself ends with set pmms_webhook "": your set line must therefore come after the exec to take effect.

  3. Review the permissions. The shipped permissions.cfg lets every player play any URL (pmms.customUrl and pmms.anyUrl). To restrict it, see Permissions and URLs.

  4. Discord logs (optional): replace the empty value with your webhook:

    set pmms_webhook "https://discord.com/api/webhooks/…"

    Use set, never setr, and do not put the webhook in config.lua: that file is sent to clients.

  5. Data files: models.json and defaultMediaPlayers.json receive the settings saved in game. They are empty in the archive. The server must be able to write in the resource folder.

  6. Start the server, or run refresh then ensure httpmanager and ensure pmms in the console.

First test

  1. Server console and F8: no red error when httpmanager and pmms start.
  2. Go near a radio or a speaker (prop_boombox_01 for example) or get into a vehicle, then press Q (or type /pmms): the panel opens and lists the nearby player.
  3. Paste a YouTube URL and start playback: the sound comes from the entity and fades as you walk away.
  4. With a second player next to you: they hear the same media, at the same time.
  5. In front of a game TV (prop_tv_flat_01), enable video: the picture shows on the screen.
  6. If the webhook is set: a “Lien PMMS lancé” message reaches Discord.

Expected result: synchronised playback, spatial sound, video on the screen, log received.

Common mistakes

  • Folder renamed to PMMS or [PMMS]/Pmms: the panel opens but buttons do not respond. Rename in lowercase.
  • httpmanager missing or stopped: pmms does not start or shows an error on exports.httpmanager.
  • Webhook declared before exec @pmms/permissions.cfg: the file’s set pmms_webhook "" line overwrites it, no log arrives.
  • Q does nothing: the player already bound another key in Settings › Key Bindings › FiveM, or Config.keybind.vehicleOnly = true and they are on foot.
  • Black video on the screen: the DUI page https://pmms-dui.mrpoulpiii.fr cannot be reached from the client, or the media URL is http:// (see Integrations).

Updating

Before replacing the resource, back up config.lua, config.server.lua, locales.lua, integrations/, permissions.cfg, and above all models.json and defaultMediaPlayers.json, which hold what your admins saved in game. Carry your settings over into the new files rather than copying the old ones on top.

Search

Type a term: setting, export, error…