Skip to content

Migrating from Patchouli

LlaGuiTo edited this page Sep 28, 2026 · 1 revision

Migrating from Patchouli

Applies to all versions (1.21.1 and 26.2).

Vellumli is a re-fork of Patchouli with every "patchouli" identifier renamed to "vellumli". The data format is otherwise the same, so migrating a book is mostly a set of mechanical renames. This page lists every rename that can be confirmed from the source code.

JSON data

Patchouli Vellumli
Folder patchouli_books Folder vellumli_books
Type ids patchouli:text, patchouli:crafting, … vellumli:text, vellumli:crafting, …
Template component ids patchouli:text, patchouli:item, … vellumli:text, vellumli:item, …
Resource namespace patchouli: (textures, sounds, book ids…) vellumli:
Item patchouli:guide_book vellumli:guide_book
Data component patchouli:book vellumli:book
Sound ids patchouli:book_open, patchouli:book_flip vellumli:book_open, vellumli:book_flip
Config translation keys patchouli.configuration.* vellumli.configuration.*
GUI translation keys patchouli.gui.* vellumli.gui.*

Because page and component ids fall back to the vellumli namespace when no namespace is given, a bare "type": "text" keeps working unchanged after the rename.

A book's own namespace is your mod id, not patchouli, so content paths such as assets/<yourmod>/vellumli_books/<book>/… only change in the patchouli_books folder name. The book.json still lives on the data side and the categories/entries/templates on the assets side.

Items, commands and sounds

  • The guide book item is now vellumli:guide_book.
  • The command is /open-vellumli-book (the old name was /open-patchouli-book), with the same [entry] [page] arguments.
  • The book open/flip sounds are vellumli:book_open and vellumli:book_flip.

Java API

Patchouli Vellumli
Package vazkii.patchouli.api com.skd.vellumli.api
PatchouliAPI VellumliAPI
PatchouliAPI.IPatchouliAPI VellumliAPI.IVellumliAPI
PatchouliConfig / IPatchouliConfigAccess VellumliConfig / VellumliConfigAccess
PatchouliSounds, PatchouliItems, PatchouliCriteriaTriggers, PatchouliDataComponents, PatchouliJeiPlugin VellumliSounds, VellumliItems, VellumliCriteriaTriggers, VellumliDataComponents, VellumliJeiPlugin
JEI package vazkii.patchouli.client.jei com.skd.vellumli.compat.jei

The interfaces IComponentProcessor, ICustomComponent, IVariable, IVariableProvider, IComponentRenderContext and the two events BookContentsReloadEvent / BookDrawScreenEvent keep their names; only their package changes. On 1.21.1 the API uses ResourceLocation (not the newer Identifier).

// Before
PatchouliAPI.get().openBookEntry(player, bookId, entryId, page);
// After
VellumliAPI.get().openBookEntry(player, bookId, entryId, page);

Text formatting

The $(...) command syntax, color codes, links, tooltips and macros are unchanged from Patchouli. See Text formatting. The in-game editor's info text still points at the upstream Patchouli wiki for control codes; use the local page instead.

Features not present in Vellumli

  • Multiblocks: the vellumli:multiblock page type and the in-world multiblock preview system are not ported. The multiblock API methods exist but are stubs that return null or do nothing.
  • Advancements tab: the book's advancements-tab button and its screen are not ported, so advancements_tab in book.json has no visible effect yet.
  • No bundled demo book: Vellumli ships no example book. The pages here replace it.

Already-removed Patchouli fields

These were removed in Patchouli before this fork and remain errors in Vellumli:

  • extend — declare content through a resource pack instead.
  • use_resource_pack: false on a non-external book — must be true.

Clone this wiki locally