Skip to content

The Press ​

The press is the authoring overlay. Staff open it with /press and write; everything saved goes to the database and is pushed to every connected player immediately.

There is no restart, and no page list in a config file.

Chapters and entries ​

The almanac has two levels and that is deliberate — deep trees are hard to navigate with a controller.

ChapterA heading in the index. Holds entries
EntryThe writing. Belongs to exactly one chapter

Both have a slug — lowercase letters, digits, dashes and underscores, 3 to 48 characters — which is the name you use in /almanac <entry>, in a signpost, and from a script. Titles can be up to 120 characters and can say anything.

Fields ​

Field
SlugPermanent name. Changing it breaks links and signposts pointing at it
TitleWhat readers see in the index
RankSort order, ascending — smallest first
ShownIn the index. Off still allows direct access
UnfurledChapters only. Open by default in the index
AccessJob gate. See Permissions

Writing ​

A real editor: headings, bold, italic, lists, quotations, code, horizontal rules, links. Bodies are stored as HTML and sanitised in the overlay before they are drawn — anything dangerous is stripped when read, not when written, so a page written before a rule changed is still safe afterwards.

An entry body can be up to 512 KiB, which is far more than anyone writes.

Pictures ​

By URL, with a width and an alignment. Drag the corner to resize.

html
<img src="https://example.com/forge.png" width="520" data-align="center" />

Images are not uploaded to your server

The page stores the address. If the host goes away, so does the picture — use somewhere you control.

YouTube works the same way. Embedding a whole website is possible but off by default (overlay.embeds), because most sites refuse to be framed and show nothing at all.

A directions button ​

A plain anchor the reader turns into a call:

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

Readers get a button that marks the place on their map and draws the way there. This is exactly what the press writes, so a page authored by a script and one authored by hand are the same thing.

Two people editing at once ​

Someone else wrote this leaf just now

Working as intended. Two people had the same entry open, the other saved first, and yours was refused rather than overwriting theirs.

The editor has been reloaded with what is actually stored. Make your change again and save.

How it works

Every entry carries a revision that goes up by one on every write. A save that names a revision older than the stored one is refused. There is no merge — the last writer does not silently win.

Fonts and themes ​

Four typefaces ship and are served from the resource: Crimson Pro, IM Fell English, Rye and Special Elite. You can offer any font installed on the player's machine through overlay.fonts, but only those four are certain to draw.

Three bindings — leather, parchment, midnight. overlay.theme sets the default; a player's own choice is remembered on their machine and wins.

Titles and bodies, scored, with the surrounding sentence quoted under each result and the query marked in it.

SettingDefault
overlay.seekCooldown3Seconds between searches, per player
overlay.seekMinimum3Shortest query accepted

Hidden entries are not searchable. Restricted entries are not searchable by anyone who could not read them. The query matches the text, not the markup.

Striking ​

Striking a chapter strikes its entries with it

There is no separate confirmation for the entries that go with it, and no undo. Consider switching Shown off instead if you might want it back.

Who may write ​

Staff, three independent ways — an ACE, a framework admin group, or the console. Any one is enough, and it is re-checked on every verb, not just when the press opens.

Individual verbs can be delegated, so a moderator can write entries without being able to strike chapters. See Permissions.

Seeing a finished almanac ​

/almanac_demo

Fills it with a worked example — six chapters, fifteen entries and seven signposts across six towns. /almanac_demo clear takes it away.

The example lives in server/demo.lua, which stays readable on both editions specifically so you can copy how it is written.

Writing from a script ​

A script that ships its own documentation can put it in the book the first time it starts:

lua
exports.rm_guidebook:ensure('entry', {
    slug    = 'blacksmith-basics',
    chapter = 'blacksmithing',
    title   = 'Working the forge',
    body    = '<p>Heat, hammer, quench.</p>',
})

ensure does nothing if the slug is taken — so a server owner who edited your page keeps their edits. See the Developer API.

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