Skip to content

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:

SectionPurpose
dispatchesNews and changelog
lawServer rules
lawmenStaff roster
updatesUpdate notes
gatheringsCommunity happenings
wantedWANTED posters
saloonDiscord / community
tradingStore

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:

BlockRenders as
headingSection heading
textBody text, markdown-lite: emphasis and lists
quotePull quote
imageInline image from a URL
gpsA chart-a-course button pointing at map coordinates
dividerOrnamental rule
buttonAction 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.

SettingOptions
TextUp to 300 characters
Duration5, 10, 15 or 30 seconds
Kindinfo (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.Allow flags (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 the discordapp.com variant — 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.
  • LogEdits and LogTelegrams choose what gets posted; Cfg.Wire.Name sets 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

  1. Badge check — server-side, before anything else.
  2. Validation — lengths, whitelists, link formats, coordinate bounds.
  3. Database write and cache reload.
  4. Push — every connected player gets the fresh content instantly, and their open menus update in place without losing their tab or scroll position.
  5. Logbook entry.
  6. Wire embed to Discord, if enabled.

No restarts. No stale caches. No "rejoin to see it".

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