Installing RedM Pause Menu on VORP
Requirements
| Requirement | Notes |
|---|---|
| RedM server (cerulean / rdr3) | Any recent artifact |
vorp_core | v3+, started before rm_pausemenu |
oxmysql | The only hard dependency of the menu itself |
Steam identifiers are required
VORP itself kicks any player joining without a Steam identifier, so steam_webApiKey must be set in your server.cfg. The menu keys its playtime table off the same identifier VORP resolves.
ox_libis not required. Do not add it to the manifest.
1. Place the resource
The folder must be named exactly rm_pausemenu. NUI asset paths resolve from the resource name — a renamed folder gives you a menu with no interface.
2. Import the SQL
Import sql/vorp.sql. It creates the six rm_pausemenu_* tables and nothing else — it never touches a vorp_core table, and it is safe to re-run (CREATE TABLE IF NOT EXISTS only).
The resource also self-migrates the same schema on first boot, so the import is optional but recommended. It becomes required only if your MySQL user lacks CREATE privileges at runtime.
Optionally, once the resource has started once, import sql/demo_content.sql for a board of western showcase content.
3. server.cfg
ensure oxmysql
ensure vorp_core
ensure rm_pausemenu4. Grant the desk
add_ace group.admin rm_pausemenu.desk allowThe menu deliberately does not read VORP admin groups — access is ace-only, so it works identically on every framework. See Permissions.
5. Check the boot line
[rm_pausemenu] framework: vorp | locale: enIf it says standalone, vorp_core was not started when the menu booted — fix the ensure order.
VORP-specific configuration
| Key | On VORP |
|---|---|
Cfg.Core.Framework | 'auto' detects vorp_core fine. Pin 'vorp' for a hard guarantee |
Cfg.Posse | Keep false. VORP core has no posse/gang concept, so 'rsg' / 'redemrp' resolve to nothing here. If a companion resource tracks posses, plug in a resolver: Cfg.Posse = function(src) return exports.my_posse:LabelFor(src) end |
Cfg.Notify.Mode | 'auto' routes through VORP's native right-tip. 'ui' forces the built-in toasts |
Cfg.Portrait | false shows the sketch placeholder; a URL string shows one picture for everybody; function(src) serves per-character portraits |
The second money row says GOLD
Working as intended. VORP's second currency is gold, not a bank balance, so the dossier's second row carries a gold label and icon. There is nothing to configure. Both values are decimals with 2 places.
Verification
- [ ] Console printed
framework: vorp | locale: en - [ ] P or ESC opens the menu; the dossier shows name, job label, cash and gold
- [ ] With the ace granted,
/sheriffopens straight on the Sheriff Desk - [ ]
/checkhoursprints your playtime (needs acecommand.checkhours) - [ ]
rm_checkdesk <serverId>in the server console dumps the identifier and ace results
Troubleshooting on VORP
Players are kicked before they see the menu. That is VORP, not this resource — vorp_core rejects players without a Steam identifier. Set steam_webApiKey.
The dossier shows no name, job or money. The character has not been selected yet. VORP's getUsedCharacter is empty until the player picks one, and the adapter waits for the character-selected event before assembling the profile. If it stays empty after selection, confirm vorp_core is v3+ and its core export resolves.
Boot line reads standalone on a VORP server. vorp_core was not running when the menu booted. Fix the order, or pin Cfg.Core.Framework = 'vorp' so a misdetection surfaces the real startup problem in the console instead of silently falling back.
Everything framework-agnostic is in Troubleshooting.