The Sheriff Desk
The Sheriff Desk is the in-game content management system. Everything players see — notices, events, journal, ticker, home cards, keybinds — is edited here, live, with no database client and no restarts.
Getting behind the desk
Hold the master ace (rm_pausemenu.desk) or any per-badge ace — see Permissions. Then open the menu and pick the Sheriff tab, or jump straight in with /sheriff.
Access is re-verified with a fresh server check each time, so a revoked ace locks the desk immediately. Panels you do not hold the badge for are shown locked.
Notices — the bulletin board · badge: Bulletin
Create, edit, reorder and drop notices across eight fixed sections:
| Section | Purpose |
|---|---|
dispatches | News and changelog |
law | Server rules |
lawmen | Staff roster |
updates | Update notes |
gatherings | Community happenings |
wanted | WANTED posters |
saloon | Discord / community |
trading | Store |
Per notice: title (≤128), body (≤2000), optional link (must start http(s)://), optional image URL, optional date, and a position for ordering. Up to 100 notices per section; players see the newest 20 per section.
Wanted posters
Entries in the wanted section render as full WANTED posters, on the board and on the home strip:
- Title = name and reward, em-dash separated:
BILLY THE KID — $1,500. The reward rides in the title — there is no separate reward field. - Body = the description.
- Image = portrait URL; omit it for the hand-drawn sketch placeholder.
- Date = optional "last seen" date.
Events — the calendar · badge: Events
Eight fixed categories: restart · gathering · law · race · posse · trade · auction · weather.
Per event: title, optional body, start (YYYY-MM-DD HH:MM:SS, server time), optional end, optional link and image, and an optional map position — which puts a GPS button on the event so players can chart a course to it.
Use my position
Creating an event where you are standing? Hit use my position — it grabs your current in-game coordinates and fills the position fields. No alt-tabbing to look up coords.
Housekeeping:
- Players see events from one hour in the past up to
Cfg.Events.DaysAhead(default 30 days) ahead. - With
Cfg.Events.AutoRestart = true, scheduled restarts appear as virtual entries. They are not database rows and cannot be deleted from the desk — turn them off in config, or change the times from Tuning. - Up to 500 stored events.
Ticker · badge: Ticker
The scrolling marquee on the home view — your message of the day. One field, up to 300 characters, applied to everyone the moment you save.
The config value is only the starting text; once you set it here, the desk value rules.
Board · badge: Board
Flip the home-view cards on and off, live: the map tile, the status tile (with sub-toggles for uptime, restart countdown and ticker), the wanted strip, the news strip, and the dossier panel itself.
Useful for events — "hide the restart countdown during the festival" — or for minimal layouts.
Journal · badge: Journal
Long-form pages: a server handbook, a lore book, a new-arrival guide. Up to 50 pages, each up to 40 blocks, from seven kinds:
| Block | Renders as |
|---|---|
heading | Section heading |
text | Body text, markdown-lite: emphasis and lists |
quote | Pull quote |
image | Inline image from a URL |
gps | A chart-a-course button pointing at map coordinates |
divider | Ornamental rule |
button | Action button, e.g. an external link |
Each page has a title (≤64) and one of seven icons: book, star, map, info, gift, box, shield. Pages order by position, and the Journal tab only appears to players once at least one page exists.
Keymap · badge: Keymap
The keybinds card players see — plain { key, label, description } rows, up to 100.
It documents, it does not bind
This card is purely informational. It lists your server's binds; it does not create them. Hide it entirely with Cfg.Keymap.On = false.
Telegram — broadcast banners · badge: Telegram
Send a banner to every connected player, on screen even when their menu is closed.
| Setting | Options |
|---|---|
| Text | Up to 300 characters |
| Duration | 5, 10, 15 or 30 seconds |
| Kind | info (blue) · warning (amber) · event (accent colour) |
Telegrams are never stored — they fire once and are gone. With the wire on and LogTelegrams = true, each is also posted to Discord.
Tuning — live overrides · badge: Tuning
Runtime overrides that beat the config file without a restart:
- Customization gates — the
Cfg.Allowflags (palette, custom ink, scale, skin). Changes apply on the players' next payload. - Links — the Discord and store URLs.
- Restart times — the daily schedule feeding the countdown and the auto restart events.
- Lens — the cinematic pause camera on/off.
- Pose — the reading pose and prop on/off.
The Discord wire
Also under Tuning: the webhook receiving desk edits and telegrams.
- The URL must start
https://discord.com/api/webhooks/or thediscordapp.comvariant — anything else is rejected. - It is stored and used server-side only. It never appears in any payload sent to a client, and the desk only shows whether a wire is set.
LogEditsandLogTelegramschoose what gets posted;Cfg.Wire.Namesets the display name.
Logbook · master ace only
The audit trail. Every desk write lands here: who (name and identifier), what, detail, and when.
Per-badge holders cannot read it — only the master ace. The table trims itself past Cfg.Logbook.MaxRows (default 500, oldest first). Disable writing entirely with Cfg.Logbook.On = false.
What every desk write does, in order
- Badge check — server-side, before anything else.
- Validation — lengths, whitelists, link formats, coordinate bounds.
- Database write and cache reload.
- Push — every connected player gets the fresh content instantly, and their open menus update in place without losing their tab or scroll position.
- Logbook entry.
- Wire embed to Discord, if enabled.
No restarts. No stale caches. No "rejoin to see it".