GUI theme

Scripta's quest book is fully themeable: per-pane backgrounds, colours, sizes and widget styles. Edit it from the GUI theme panel in either editor — every player sees changes the moment you save.

Editing the theme

  1. Open the web editor (/scripta web) or run /questedit.
  2. Select the GUI theme panel.
  3. Change any field and press Save.

Saving broadcasts the theme to every connected player immediately — no restart, no rejoin. The theme is stored per world at serverconfig/scripta_theme.json.

Surface values

Each pane's background is chosen from a small set of named surfaces, or from a texture of your own.

ValueEffect
VANILLA_TRANSLUCENTMinecraft's own translucent panel.
PANELA standard raised panel.
PANEL_INSETA recessed panel — reads well for selected tabs.
DARK_PANELA darker flat panel.
BLANKNo background at all.
image:<texture>Draws your own texture. See below.

Custom background textures

Prefix any texture id with image::

"detail_surface": "image:scripta:web_icons/parchment.png"

You can point at a texture from any resource pack, or at a PNG you uploaded through the editor's Icons panel.

Top-level fields

Every field is optional — anything you leave out keeps its default.

FieldTypeDefaultNotes
window_surfacesurfaceVANILLA_TRANSLUCENTBackground behind the whole window.
tab_surfacesurfacePANELCategory tab strip.
tab_selected_surfacesurfacePANEL_INSETThe active category's tab.
list_surfacesurfaceDARK_PANELThe quest list pane.
detail_surfacesurfaceDARK_PANELThe quest detail pane.
title_colorcolour0xFFFFFFFFQuest and screen titles.
text_colorcolour0xFFDDDDDDBody text.
accent_colorcolour0xFF55FFFFAccent — highlights and focus rings.
text_shadowbooltrueDrop shadow behind text.
tab_sizeint36Category tab size, in pixels.
quest_icon_sizeint18Quest icon size in the list.
category_icon_sizeint24Category tab icon size.
list_widthint170Width of the quest list pane.
detail_widthint230Width of the detail pane.
widgetsobjectsee belowButton, field and selection colours.

Widget colours

The nested widgets object controls interactive elements.

FieldDefaultApplies to
button_bg0xFF3C3C46Button background.
button_hover0xFF4A4A58Button hover.
button_text0xFFFFFFFFButton label.
danger_color0xFFC04545Destructive actions — delete buttons.
muted_color0xFF9A9AA5Secondary and dimmed text.
field_bg0xFF121216Text field background.
field_focus0xFF55FFFFFocused field outline.
selected_bg0xFF2B3648Selected row or tab.

Default theme JSON

This is what Scripta uses out of the box. Copy it into serverconfig/scripta_theme.json and edit from there if you prefer working with the file directly.

{
  "window_surface": "VANILLA_TRANSLUCENT",
  "tab_surface": "PANEL",
  "tab_selected_surface": "PANEL_INSET",
  "list_surface": "DARK_PANEL",
  "detail_surface": "DARK_PANEL",
  "title_color": 0xFFFFFFFF,
  "text_color": 0xFFDDDDDD,
  "accent_color": 0xFF55FFFF,
  "text_shadow": true,
  "tab_size": 36,
  "quest_icon_size": 18,
  "category_icon_size": 24,
  "list_width": 170,
  "detail_width": 230,
  "widgets": {
    "button_bg": 0xFF3C3C46,
    "button_hover": 0xFF4A4A58,
    "button_text": 0xFFFFFFFF,
    "danger_color": 0xFFC04545,
    "muted_color": 0xFF9A9AA5,
    "field_bg": 0xFF121216,
    "field_focus": 0xFF55FFFF,
    "selected_bg": 0xFF2B3648
  }
}

Caveats

Surfaces fail quietly Surface names are case-insensitive, and an unrecognised value falls back to PANEL with no error. If a pane looks wrong, re-check the spelling.
Colours are plain integers Colours are read as numbers, not colour literals. If you hand-edit the file, use a signed 32-bit value: 0xFFFFFFFF is written as -1, and 0xFF55FFFF as -4208001. Both forms load. Editing through the editor panel avoids the question.
Fonts are not themeable Scripta draws labels with Minecraft's global fonts, so font changes only come from a resource pack. This is intentional — a theme file cannot make text unreadable against a custom background by swapping fonts.