Skip to content

RedM Guidebook Commands ​

Every name below is a setting. To rename one:

lua
-- local/overrides.lua
RmGuidebook.Local = {
    commands = { open = 'help', press = 'helpadmin' },
}

At a glance ​

CommandWhoDoes
/almanac [entry]AnyoneOpens the almanac, optionally on one entry
/pressStaffOpens the press
/almanac_hand <id> [entry]StaffOpens the almanac on someone else's screen
/almanac_route <signpost>AnyoneMarks a signpost on your map and draws the way
/almanac_resyncStaffReads the almanac back from the database
/almanac_migrateStaffCopies a legacy guidebook's tables in
/almanac_debugStaffPrints a self-check to the server console
/almanac_demoStaffFills 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:

lua
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:

lua
RmGuidebook.Local = { keys = { signpost = 'G' } }

The names available are in Util.Keys in client/util.lua.

/almanac [entry] ​

/almanac
/almanac rules

Anyone 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 rules

Useful 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-door

The 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:

lua
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 clear

Worth 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.lua

Four 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:

lua
RmGuidebook.Local = { staff = { allowConsole = false } }

Renaming them all ​

lua
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',
    },
}

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