Skip to content

Page Types

LlaGuiTo edited this page Sep 28, 2026 · 1 revision

Page types

Applies to all versions (1.21.1 and 26.2).

Every page in an entry is an object with a type. The registered page type ids are namespaced with vellumli: (the prefix may be omitted, and is filled in automatically).

A page that is a plain string is a shortcut for a text page:

"pages": [ "Just some text." ]

If the type is not one of the built-in ids below, it is treated as a template page: type names the template to instantiate.

Fields common to every page

Field Type Default Description
type string (required) The page type id.
flag string "" Config flag gating the page. The page is skipped if the flag is not set.
advancement string "" The page is hidden until this advancement is completed.
anchor string (optional) A named anchor that $(l:...) links can target with #anchor.

vellumli:text

A page of body text, optionally with a title.

Field Type Default Description
title string (optional) Header shown at the top of the page.
text string "" The body text. Supports formatting.
{
  "type": "vellumli:text",
  "title": "Welcome",
  "text": "Use $(thing)copper$() to craft the machine."
}

vellumli:empty

A blank page (optionally drawing the page filler).

Field Type Default Description
draw_filler boolean true Draw the filler texture on the page.
{ "type": "vellumli:empty" }

Recipe pages

These page types show a recipe. They share the following fields and also accept the text field of the text page.

Field Type Default Description
recipe resource location (optional) First recipe id.
recipe2 resource location (optional) Second recipe id, shown under the first.
link_recipe boolean true Add the first recipe's output to the recipe lookup.
link_recipe2 boolean true Add the second recipe's output to the recipe lookup.
title string (optional) Custom title; otherwise the output item's name is used.

Registered recipe page ids:

  • vellumli:crafting — crafting table recipes.
  • vellumli:smelting — furnace recipes.
  • vellumli:blasting — blast furnace recipes.
  • vellumli:smoking — smoker recipes.
  • vellumli:campfire — campfire cooking recipes.
  • vellumli:smithing — smithing recipes.
  • vellumli:stonecutting — stonecutter recipes.
{
  "type": "vellumli:crafting",
  "recipe": "minecraft:crafting_table",
  "recipe2": "minecraft:stick",
  "title": "Basic Recipes"
}
{
  "type": "vellumli:smelting",
  "recipe": "minecraft:iron_ingot",
  "text": "Smelt raw iron in a furnace."
}

vellumli:image

One or more images with optional page-turning arrows.

Field Type Default Description
images array of resource locations (required) Image textures to show.
title string (optional) Header shown at the top.
border boolean false Draw the decorative border (and arrows when there is more than one image).
{
  "type": "vellumli:image",
  "images": ["mymod:textures/gui/diagram.png"],
  "title": "Diagram",
  "border": true
}

vellumli:spotlight

Shows a large item with a title.

Field Type Default Description
item string or array (required) Item stack string(s) to display. Multiple items cycle over time.
title string (optional) Header; otherwise the first item's name is used.
link_recipe boolean false Add the items to the recipe lookup.
{
  "type": "vellumli:spotlight",
  "item": "minecraft:diamond",
  "title": "Diamond",
  "link_recipe": true
}

vellumli:entity

Renders a rotating entity.

Field Type Default Description
entity string (required) Entity id, optionally followed by NBT, for example minecraft:sheep{Color:0}.
scale float 1.0 Scale multiplier.
offset float 0.0 Vertical offset.
name string (optional) Custom name; otherwise the entity's name is used.
rotate boolean true Continuously rotate the entity.
default_rotation float -45 Rotation in degrees used when rotate is false.
{
  "type": "vellumli:entity",
  "entity": "minecraft:creeper",
  "scale": 0.8,
  "name": "Creeper"
}

vellumli:link

A text page with a button that opens a URL.

Field Type Default Description
url string (required) The URL to open.
link_text string (required) The button label.
title string (optional) Header shown at the top.
text string "" Body text.
{
  "type": "vellumli:link",
  "url": "https://github.com/codex-skd/vellumli",
  "link_text": "Open the source repository",
  "text": "Find the project online."
}

vellumli:relations

Lists links to other entries.

Field Type Default Description
entries array of strings (required) Entry ids, fully qualified.
title string (optional) Header; defaults to "Related Chapters".
text string "" Body text.
{
  "type": "vellumli:relations",
  "entries": ["mymod:basics/introduction"],
  "title": "See also"
}

vellumli:quest

A completion objective, driven by an advancement or a manual button.

Field Type Default Description
trigger resource location (optional) Advancement that completes the quest. If omitted, the quest is manual and gets a "Mark Complete" button.
title string (optional) Header; defaults to "Objective".
text string "" Body text.
{
  "type": "vellumli:quest",
  "trigger": "minecraft:story/mine_stone",
  "title": "Mine Stone"
}

Not supported yet

There is no vellumli:multiblock page type in this build. The in-world multiblock preview system from upstream Patchouli is not ported, and the multiblock API methods are stubs. See API.

Clone this wiki locally