Skip to content

Signposts ​

A place in the world with a prompt. Walk up, press your interact key, and a page opens.

A signpost can carry a floating title, a map blip and a ground marker, and it either opens an entry or carries its own body — for a notice nailed to a post that belongs nowhere else.

Placing one ​

  1. Stand exactly where you want it.
  2. Open /press and create a signpost.
  3. Press Use my position.
  4. Point it at an entry, or write its own body.

Staff can be carried back to a signpost later, which is how you fix one you placed badly.

A signpost opens an entry or carries a body — never both

The schema refuses a record that tries to do both. Pick one.

Fields ​

Field
SlugPermanent name — also what /almanac_route <slug> takes
TitleShown floating in the world
Position{ x, y, z }, set by Use my position
Entry or BodyWhat opens
Gives directionsWhether /almanac_route will route to it
ShownOff hides it from everyone, including staff
AccessJob gate — a refused signpost is not drawn at all

Text, blip and marker ​

Three independent switches. A signpost can have all three, or just the prompt.

Floating title — size, font, colour and its own reach. The title reach is usually larger than the prompt reach, so seeing a title from a distance without getting a prompt is normal and means walk closer.

Map blip — a sprite and tint from the game's own catalogue.

Pick the sprite from the list, don't type it

Every name offered in the press was read out of the game's catalogue. An unknown sprite name draws an empty square rather than an error, which is a confusing thing to debug.

Ground marker — kind, size, tint, spin, angle and reach.

Sprite, tint, marker kind and font are validated against the catalogues in config/atlas.lua. An unknown value falls back to the first in its list rather than being refused — a signpost with an odd sprite still stands.

The marker sits in the ground, or floats ​

Markers are drawn at the signpost's position plus signpost.markerLift, which ships at -1.0.

That is right for a cylinder placed at a standing player's feet and wrong for most other shapes:

lua
-- local/overrides.lua
RmGuidebook.Local = { signpost = { markerLift = 0.0 } }

The scan ​

SettingDefault
reach2.0Metres. How close before the prompt appears
scan750Milliseconds between distance scans
horizon60.0Metres beyond which a signpost is not considered

The scan decides which signposts are near; only near ones are drawn every frame. That is what keeps a server with hundreds of signposts idle.

scan is the one with a real cost. Lowering it makes prompts appear sooner and costs a little more; raising it does the opposite. The default is fine until you have hundreds.

horizon raises itself

It is lifted automatically to the largest text or marker reach in your data, so a signpost that asks to be seen from 100 m is seen from 100 m without you touching this.

No prompt appears ​

In order of likelihood:

Cause
It is not shownshown off hides it from everyone including staff. It is what an author switches off while placing one
Your job may not see itRestricted signposts are not drawn at all. If you are staff and expected to see it, check access.staffSeesAll
You are further away than you thinkThe prompt appears within reach, two metres by default. The floating title has its own, larger reach
An overlay is openPrompts are hidden while the almanac or press is up, deliberately — a prompt behind a NUI is one the player can trigger through the page they are reading

Directions ​

/almanac_route sheriff-door

Marks the signpost on your map and draws the way there. The signpost needs Gives directions switched on.

RDR3 has no waypoint native

So you get a GPS route from where you stand plus a blip at the destination. It clears itself when you arrive or after ten minutes.

lua
RmGuidebook.Local = { route = { color = 'COLOR_BLUE' } }

COLOR_RED, COLOR_BLUE, COLOR_GREEN, COLOR_YELLOW, COLOR_PURPLE and COLOR_WHITE are all real.

A page can also carry a directions button, which does the same thing without a command:

html
<a class="gb-route" data-x="-306.4" data-y="806.2" data-z="118.9">Sheriff's office</a>

From a script ​

lua
exports.rm_guidebook:ensure('signpost', {
    slug  = 'forge-door',
    title = 'The Forge',
    pos   = { x = -306.4, y = 806.2, z = 118.9 },
    entry = 'blacksmith-basics',
})

Client-side, to mark an arbitrary place on one player's map:

lua
exports.rm_guidebook:route(x, y, z)

Full reference in the Developer API.

Migrated signposts ​

Two things do not survive a migration from the FiveM guidebook, because they have no RedM equivalent:

  • Blip sprites — the old resource stored FiveM sprite numbers. Every migrated signpost gets blip_poi.
  • Marker types — everything becomes a cylinder.

Positions, sizes, colours, draw distances, job permissions and which page a point opens all come across as written. Pick real sprites afterwards in the press.

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