Skip to main content
Version: 6.0.x

Research Scrolls

A scroll is the item that carries a stage into the pedestal. It also carries the research progress, so it is the scroll rather than the block that remembers how far along a player is.

ScrollWhat it is
Stage ScrollBound to one stage id. Researching it unlocks that stage.
Individual ScrollBound to one player by UUID. Only that player can research it; the tooltip and the pedestal GUI show the owner's name, and the slot is greyed out for everybody else.
Creative ScrollUnlocks every stage at once. For testing and creative mode.

What happens when research finishes

defaultScrollCompletion in [research] decides, and a stage can override it with its own scroll_completion:

ValueResult
consume (default)The scroll is used up.
replaceA fresh scroll for the same stage appears in the pedestal.
openAn open scroll is left behind as a keepsake.

The scroll tooltip

The tooltip is fully configurable under [scroll_tooltip] in visual.toml, and through a dedicated screen in the Config Editor.

The pipe-delimited strings below are not meant to be typed. The Config Editor has a screen for this one: sections as rows you drag into order, with their switches and colours next to them and a live preview of the finished tooltip. The format is documented here because it is what that screen writes, and because a server owner may end up reading it in the file.

Each entry in lines is a pipe-delimited string:

id|enabled|spacerBefore|style|text
PartMeaning
idWhich section the line controls.
enabledWhether the section appears at all.
spacerBeforeWhether a blank line goes in front of it.
style+-joined Minecraft formatting names, e.g. gray+italic. Empty uses the built-in colour.
textCustom text, or empty for the built-in translation.

The item name is always first and cannot be moved. The sections that can be reordered are individual_badge, owner, info1, info2, tier and dependencies.

The dependency block is built from sub-templates of its own — dep.header, dep.group_header, dep.item, dep.stage, dep.individual, dep.xp, dep.separator — plus icon and colour options (dep.icon_fulfilled, dep.icon_open, dep.icon_unknown, dep.color_fulfilled, dep.color_open).

Unknown ids are ignored, and a known id missing from the list falls back to its default, so a config keeps working when later versions add sections.

AND and OR are printed in two different places

dep.group_header sits above a group and says how that group's own entries combine — All of or One of. dep.separator sits between groups and always says AND, because groups are always joined by AND.

They used to be one line, which printed one group's logic in the gap before the next and made an OR group look like it applied to everything after it. → Dependencies

hideFulfilledDependencies drops lines the player has already met, leaving only what is outstanding. Visibility is worked out before a switched-off line disappears, so a met entry whose line is hidden still settles its OR group.

The open scroll document

A researched scroll — or an already-unlocked one that a player opens — becomes an open scroll: a book-style GUI describing the stage in full.

The open scroll document

It has an overview page plus three chapters: items, creatures and world. Locked entries are drawn as silhouettes with a redacted name by default (lockedDisplay = "obscured"), or normally with "visible".

The world chapter is the catch-all for everything that is neither an item nor a creature:

GroupContents
Dimensions, Structures, BiomesAs listed in the stage.
ZonesBy name. An unnamed zone has nothing to show and is left out; the same name in two worlds appears once.
FluidsUnder their real in-game name rather than their registry id.
Merchant ProfessionsThe profession, with the gated levels named.
Trade OffersSingle offers. Merchant, price and levels are in the tooltip; an offer applying to every merchant says so.
Merchant LevelsLevels gated across every profession at once.

A group with nothing in it gets no heading at all.

Recipes, mods, mod exceptions and addon categories are deliberately absent. A scroll is a player-facing description of what a stage holds back, and those four are authoring concepts rather than things a player can point at.

Chapters, the overview layout, search, entry ids, sort order and the page ink colours are all configured under [open_scroll] in visual.toml. How far the world behind the page is dimmed is openScrollBackdrop in [visuals].

Reading from a lectern

An open scroll can be put into a lectern like a book, and right-clicking the lectern opens the same document straight from the block — handy for library or archive builds. Locks still apply: a lectern inside a locked area cannot be read from until that area opens.

Resealing

An open scroll can be crafted back into a sealed Research Scroll through a reseal_scroll recipe, controlled by enableScrollResealing in [research].

Crafting follows the setting immediately, but JEI and EMI build their recipe lists at startup — so the entry only appears or disappears in the recipe browser after a restart.

Giving a scroll by command

For testing, or as a quest reward:

/give @s historystages:research_scroll[minecraft:custom_data={StageResearch:"bronze_age"}]

Replace bronze_age with the stage id. On versions before 1.20.5 the older NBT syntax applies instead:

/give @s historystages:research_scroll{StageResearch:"bronze_age"}

See also

Something wrong or missing here? Ask on Discord · Open an issue