Skip to content

RedM Pause Menu Configuration

All configuration lives in one file: shared/rm_config.lua. It is the only file you ever need to edit. Every value is validated at boot — a bad value is swapped for its safe default with a console warning, so a typo never takes the menu down.

⚡ Live overrides

Keys marked ⚡ Tuning can be overridden live, in game from Sheriff Desk → Tuning — no restart, no file edit. A live override beats the config value and persists in the database. Ticker, board cards and keymap rows likewise go live from their own desk panels once edited.

Core

KeyDefaultMeaning
Cfg.Core.Framework'auto''auto' sniffs the running core, or pin 'vorp' / 'rsg' / 'redemrp' / 'standalone'
Cfg.Core.Locale'en'One of the eight in langs/ — see Languages
Cfg.Core.DebugfalseFloods the console with debug chatter
Cfg.Brand.Name'RM'Brand mark on the side rail
Cfg.Brand.Tagline'ROLEPLAY'Small print under the mark

Controls

KeyDefaultMeaning
Command'camp'Chat command that opens the menu
Key'P'Default keybind — players can rebind it themselves in RedM settings
CaptureEsctrueAlso opens the menu on ESC, with the native pause menu suppressed
FixCommand'fixcamp'Escape hatch that clears a stuck pause pose or prop

Notifications

KeyDefaultMeaning
Cfg.Notify.Mode'auto''auto' uses the framework's native notifications, falling back to UI toasts on standalone · 'framework' forces native · 'ui' forces the built-in toast rack

Stagecraft — camera and pose

KeyDefaultMeaning
LenstrueCinematic side camera while the menu is open; the menu docks left. ⚡ Tuning
Pose.OntruePlay a reading pose with a prop in hand while paused. ⚡ Tuning
Pose.Dict / Pose.Anim / Pose.Flag'mech_carry_box' / 'idle' / 17The verified RDR3 animation combo
Pose.Prop'p_cs_newspaper_02x_noanim'Prop held in hand. Map alternatives, which need Off/Rot retuned: 'p_cs_map01x', 'p_map01x', 's_twofoldmap01x'
Pose.Bone'SKEL_L_Finger12'Bone the prop pins to
Pose.Off / Pose.Rotsee fileProp offset and rotation on the bone

Appearance

Ink — base accent colours

KeyDefault
accent#B02E2E (crimson)
accentSoft#B02E2E1A — washed, for fills and hovers
glowrgba(176,46,46,0.33)

Palettes

Five offered in preferences, each carrying the same three colours:

PaletteAccent
crimson#B02E2E (default)
gold#C9A227
sage#7A8B5C
dusk#4E6E8E
ash#8B8578

Add, remove or recolour them freely — rows keep the same three-colour shape. Cfg.DefaultPalette must name one that exists.

Cfg.DefaultSkin is 'worn' (textured), 'gilded' (gold ornate) or 'plain' (flat dark).

Scale

Cfg.Scale bounds the player's UI-scale slider: min 0.8, max 1.3, step 0.05, default 1.0.

Player customisation gates

Cfg.Allow decides which knobs players may touch. All four are ⚡ Tuning — flip them live from the desk.

KeyDefaultControls
PalettetrueSwapping between configured palettes
InkColortruePicking a fully custom accent
ScaletrueResizing the UI
SkintrueChanging the paper skin

Cfg.Links ⚡ Tuning holds the discord (saloon) and store (trading post) URLs.

Cfg.Socials is a list of { label, icon, url } rows; empty hides the section.

Cfg.NavExtras adds buttons to the side rail:

lua
Cfg.NavExtras = {
    { id = 'stable', label = 'Stables',  icon = 'horse', kind = 'command', value = 'stable' },
    { id = 'wiki',   label = 'Handbook', icon = 'book',  kind = 'url',     value = 'https://example.com/handbook' },
}

kind is one of 'command', 'clientEvent', 'serverEvent' or 'url'.

Dossier

Posse

ValueMeaning
false (default)Hide the posse row
'rsg'Read the RSG gang label
'redemrp'Read the RedEM:RP gang name
function(src)Your own resolver — return a string or nil

VORP has no core gang concept, so use a resolver there.

Portrait

ValueMeaning
false (default)Hand-drawn sketch placeholder
'https://…'One picture for everybody
function(src)Per-player resolver returning a URL — the hook for a mugshot resource

Pulse — the heartbeat card

KeyDefaultMeaning
ShowUptimetrueShow how long the server has been up
ShowRestarttrueShow the countdown to the next restart
RestartTimes{ '04:00', '16:00' }Daily restarts, 24h server time. Empty {} = none. ⚡ Tuning
Tickera welcome lineStarting marquee text — staff change it live from Desk → Ticker

Content

Bulletin

Cfg.Bulletin.Seeds plants notices only while the bulletin table is empty (first boot). After that the board runs entirely from the desk.

Eight fixed sections: dispatches (news) · law (rules) · lawmen (staff) · updates · gatherings · wanted (posters) · saloon (Discord) · trading (store).

Row shape: { section, title, body, link?, image?, date?, position? }.

Events

KeyDefaultMeaning
DaysAhead30How far ahead the calendar looks
AutoRestarttruePlant virtual restart entries from Cfg.Pulse.RestartTimes
Seedsone sampleSeeded only while the events table is empty

Eight fixed categories: restart · gathering · law · race · posse · trade · auction · weather.

Virtual restart entries cannot be deleted

With AutoRestart = true, restarts appear as calendar entries that are not database rows. The desk cannot delete them — turn them off in config, or change the restart times from Tuning.

Board, keymap

Cfg.Board sets which home cards start enabled — map, status (with sub-toggles for uptime, restart and ticker), wanted, news, dossier. Staff flip these live from Desk → Board.

Cfg.Keymap.On hides the keybinds card entirely when false. Seeds plants sample { key, label, desc } rows once, then it is edited from Desk → Keymap.

Desk, logbook and the wire

KeyDefaultMeaning
Cfg.Desk.Ace'rm_pausemenu.desk'Master ace — unlocks every badge plus the logbook
Cfg.Desk.Command'sheriff'Opens the desk view directly
Cfg.Desk.Badgesall falsePer-badge aces; false means master-ace-only. See Permissions
Cfg.Logbook.Ontruefalse stops writing the audit trail
Cfg.Logbook.MaxRows500Oldest entries trimmed past this

The Discord wire

KeyDefaultMeaning
Cfg.Wire.OnfalseMaster switch
Cfg.Wire.Url''Must start https://discord.com/api/webhooks/ or the discordapp.com variant
Cfg.Wire.Name'rm_pausemenu'Webhook display name
Cfg.Wire.LogEdits / LogTelegramstrueWhat gets posted

The webhook URL never leaves the server

It is not part of any client payload. The desk only ever shows whether a wire is set — reading and writing it are separate server-only calls.

Content limits — enforced server-side

WhatCap
Title128 characters
Body2000 characters
Link256 characters, must match https?://
Ticker300 characters
Bulletin entries100 per section
Event rows500
Journal pages50, with 40 blocks per page
Keymap rows100
Coordinates±10000
Telegram text300 characters

Documentation for RedMorrow. Scripts are licensed per server — redistribution is not permitted.