Skip to main content

Custom Pages

The Custom Pages screen lets administrators publish extra pages โ€” for example "About", "Discord", "Donations FAQ" โ€” that appear in the shop navigation alongside built-in features.

Each page has its own URL under /pages/<slug> and is rendered with a Markdown body, a headline, an optional subheadline, and an icon picked from a curated set.

Accessโ€‹

Navigate to Admin โ€บ Custom Pages in the admin navigation.

  • customPages.view โ€” required to open the screen and see the page list.
  • customPages.edit โ€” required to create, edit, reorder, or delete pages.
  • settings.edit โ€” required to change the default visibility (it lives in the settings, see below).

Page anatomyโ€‹

Each custom page has the following fields:

  • Nav title โ€” the label shown in the shop sidebar / guest top bar.
  • URL slug โ€” the path segment used in /pages/<slug>. Lowercase letters, digits, and hyphens only, and unique per server. The slug is auto-filled from the nav title until you edit it manually. You can change a slug after the page exists; existing links to the old slug will stop working, so update any external references yourself.
  • Headline โ€” the large title rendered at the top of the page.
  • Subheadline โ€” optional smaller text under the headline.
  • Icon โ€” pick one of the curated icons; the same icon is shown next to the nav entry and as a visual marker on the page list.
  • Content โ€” Markdown body. Supports headings, lists, bold/italic, links, images, code, and blockquotes (everything the shared Markdown editor handles).
  • Visibility โ€” see below.

Visibility modelโ€‹

Visibility decides who can see a page in the navigation and reach /pages/<slug>.

There are three values:

  • Public (visible to guests) โ€” anyone, including unauthenticated visitors.
  • Logged-in players โ€” any authenticated player on this server.
  • Specific groups โ€” only players who belong to one of the selected groups.

Visibility is layered:

  1. The server-wide default is configured in Admin โ€บ Settings โ€บ Portal & App. New servers start with Logged-in players so pages are not exposed publicly by accident.
  2. Each individual page can either inherit the default or override it with its own visibility (and its own group list, if "Specific groups" is chosen).

This lets you keep most of your pages locked down by default while opening a single "About" or "Discord" page to guests.

If a page (or the server default) uses Specific groups with no groups selected, the page is hidden from everyone. The form refuses to save in that state.

When a visitor requests a page that is not visible to them, the server returns a 404 โ€” existence does not leak to people who cannot see the page.

Creating a pageโ€‹

  1. Click New Page in the top right.
  2. Fill in the fields described above. The slug auto-fills from the nav title; type into the slug field to override.
  3. Pick an icon. Use the search box to filter the curated set.
  4. Choose a visibility (or leave it on Use server default).
  5. Click Create. The page is added at the end of the list and appears in the shop / guest navigation immediately.

Editing and deletingโ€‹

Click the pencil icon on a row to open the edit drawer. The drawer shows the same fields plus a small footer with the creator and last-editor name and timestamp.

The Delete button is in the bottom-left of the drawer. A confirmation dialog is shown before deletion โ€” there is no undo.

Reorderingโ€‹

Drag a row in the list to change its order. The order is persisted as soon as you drop the row; if the save fails, the list snaps back to the server-side order.

The same order is used for the shop sidebar (under the standard "Main" group, after the built-in entries) and for the guest top bar.

Default visibility settingsโ€‹

The line above the page list shows the current default. Change in settings โ€บ opens Admin โ€บ Settings โ€บ Portal & App, where Default visibility of custom pages and Groups for custom pages set it โ€” see Settings. Changing the default immediately affects every page that is set to Use server default.