RedM Guidebook Commands
Every name below is a setting. To rename one:
-- local/overrides.lua
RmGuidebook.Local = {
commands = { open = 'help', press = 'helpadmin' },
}At a glance
| Command | Who | Does |
|---|---|---|
/almanac [entry] | Anyone | Opens the almanac, optionally on one entry |
/press | Staff | Opens the press |
/almanac_hand <id> [entry] | Staff | Opens the almanac on someone else's screen |
/almanac_route <signpost> | Anyone | Marks a signpost on your map and draws the way |
/almanac_resync | Staff | Reads the almanac back from the database |
/almanac_migrate | Staff | Copies a legacy guidebook's tables in |
/almanac_debug | Staff | Prints a self-check to the server console |
/almanac_demo | Staff | Fills the almanac with a worked example |
The keys
F7 opens the almanac.
It is a real key mapping, so a player can rebind it in the game's own key settings and yours does not override theirs. To change the default:
RmGuidebook.Local = { keys = { open = 'F9' } }If the key does nothing, something else is probably already bound to it — check the game's key settings. The command always works, which is how you tell the two apart.
E opens a signpost. That one is a control action rather than a mapping, so a player who moved their interact key gets a prompt showing their own key:
RmGuidebook.Local = { keys = { signpost = 'G' } }The names available are in Util.Keys in client/util.lua.
/almanac [entry]
/almanac
/almanac rulesAnyone may use it unless you have set readers = { ace = '...' }.
A refused entry is reported as missing, not forbidden
A player who names an entry they are not allowed to read is told the leaf is missing rather than that it exists. That is the point of a gate — confirming a secret page exists is most of the secret.
/press
Opens the press. Staff, or anyone holding a single verb's ACE. See Permissions.
/almanac_hand <server id> [entry]
Opens the almanac on someone else's screen. Staff, verb hand.
/almanac_hand 14
/almanac_hand 14 rulesUseful for a new player who has not found the key yet, and for pointing someone at the rule they have just broken.
The target's own permissions still apply. If they may not read that entry, it does not open — handing a page to someone is not a way around the gate.
/almanac_route <signpost>
Marks a signpost on your map and draws the way there. Anyone, unless route = { ace = '...' } is set.
/almanac_route sheriff-doorThe signpost has to have Gives directions switched on.
RDR3 has no waypoint native
So what you get is a GPS route from where you stand plus a blip at the destination. It clears itself when you arrive, or after ten minutes.
The colour of the line is a setting:
RmGuidebook.Local = { route = { color = 'COLOR_BLUE' } }COLOR_RED, COLOR_BLUE, COLOR_GREEN, COLOR_YELLOW, COLOR_PURPLE and COLOR_WHITE are all real.
/almanac_resync
Reads the almanac back from the database and pushes it to everyone. Staff.
You need this when something changed the tables behind the resource's back — a row edited by hand, a backup restored, a second server writing to the same database.
It also re-reads the job list, so a job added since start-up appears in the access picker without a restart.
/almanac_migrate
Copies the tables of the FiveM guidebook this resource replaces into the almanac. Staff or console.
It never overwrites: a slug already present is left alone. Run it twice and the second run does nothing. See what does and does not survive the crossing.
/almanac_demo
Fills the almanac with a worked example — six chapters, fifteen entries and seven signposts across six towns. Staff.
/almanac_demo
/almanac_demo clearWorth running on a test server to see how a finished almanac is put together. The example lives in server/demo.lua, which stays readable on both editions so you can copy how it is written — and deleting that file removes the command.
/almanac_debug
Prints a self-check to the server console. Staff or console.
rm_guidebook self-check — version 1.0.0
framework
bound VORP Core
...
access
gate on
jobs known 7
caller — Arthur (Arthur Morgan, license:xxx)
staff ok true
may press ok true
2 things worth a look
- no log webhook set (fine, but nothing is recorded)
- traces are off: set debug = { enabled = true } in local/overrides.luaFour blocks and a verdict: what bound, what the database holds, what the overlay and the wire look like, what the caller may do — and then a list of everything that is perfectly legal but is almost certainly not what you meant.
It answers most of Troubleshooting in one go, and it is the first thing to run and the first thing to paste when reporting a fault.
Why the console and not chat
It is forty lines.
From the console
The console clears the staff check, so /almanac_resync and /almanac_migrate can be run from rcon or a scheduled task.
/almanac and /press cannot — they open something on a screen, and the console has none.
To stop the console clearing the check:
RmGuidebook.Local = { staff = { allowConsole = false } }Renaming them all
RmGuidebook.Local = {
commands = {
open = 'almanac',
press = 'press',
hand = 'almanac_hand',
route = 'almanac_route',
resync = 'almanac_resync',
migrate = 'almanac_migrate',
debug = 'almanac_debug',
demo = 'almanac_demo',
},
}