Back to mods
FlexiBook project artwork

CurseForge · Minecraft mod

FlexiBook

simplely create a custom book with a web editor. supported inject image, auto layout, custom background, register book by resourcespack, i18n, inject click link

Choose a version Pick your version below, then grab the matching file.

This page is having a moment, so a few details may be a little behind.

Quick answer

Which FlexiBook release matches 26.2?

Updated yesterday
beta file flexibook-1.0.0+26.2.jar
Game version 26.2
Loader NeoForge

flexibook-1.0.0+26.2.jar targets 26.2 with NeoForge. The project page does not say whether it belongs on the client. The project page does not say whether it belongs on the dedicated server. No extra mods listed for this file.

Where it goes

Is FlexiBook required on the client, server, or both?

The project page does not say whether it belongs on the client. The project page does not say whether it belongs on the dedicated server.

Client Source doesn’t say
Dedicated server Source doesn’t say
Loader for this release NeoForge
Required install it here Optional supported, not mandatory Not supported do not install here Source doesn’t say do not assume

The source does not explicitly classify this release as client-only or server-only.

What else does flexibook-1.0.0+26.2.jar need?

flexibook-1.0.0+26.2.jar on 26.2. Every mod below is checked against that same setup.

No extra mods listed for this file

This file does not list any required mods. Do not add a library just because a different file uses it.

This file does not list any required or optional mods.

Before you install it

Add FlexiBook without breaking your instance.

Built for flexibook-1.0.0+26.2.jar on 26.2. Pick another file and the loader, install side or required mods may change.

  1. 01

    Stick to this file

    Use flexibook-1.0.0+26.2.jar. It targets 26.2 with NeoForge; another release may have different loader, side or dependency requirements.

  2. 02

    Bring the mods it needs

    This file does not list any required mods. Do not add a library just because a different file uses it.

  3. 03

    Put it on the correct side

    The project page does not say whether it belongs on the client. The project page does not say whether it belongs on the dedicated server.

  4. 04

    Pick the file you checked

    Use the “Get this file” button beside flexibook-1.0.0+26.2.jar. It opens that exact file at the source.

About this project

What does FlexiBook add?

FlexiBook

Adaptive layout books for 1.20.1-26.2 neoforge&fabric

more versions coming soon

Custom DataComponent + client layout engine + AdaptiveBookScreen, keeping a book-like interaction while supporting:

You can use web book editor without coding. It is in sourcecode repo on Github Description almost copied from Github README.md

  • HTML-subset markup ([h1] / [p] / [b] / [color] / [img] / [link] …)
  • Resolve translation keys and reflow pagination when the book opens (current client language)
  • Auto scale-down for long content; optional two-column layout
  • Safe links: registered command ids only, or confirmed http(s) URLs
  • In-book search highlight
  • Built-in default font flexibook:default (unihex Unifont; omitting font does not fall back to minecraft:default)
  • AdaptiveBookBuilder / FlexiBookAPI for other mods
  • Data-driven themes (assets/<ns>/flexibook/themes/<id>.json)
Doc Description
docs/API.md Full API for other mods (fonts §12, data books §14) — English
docs/API.zh-CN.md Full API — 中文
editor/README.md Companion real-time editor (Electron; same unihex ZIP as the game)
docs/EDITOR_PACK_GUIDE.md Pack export/import & /flexibook give (detailed)
docs/README.md Design / plans / todo index
README.zh-CN.md 中文说明

Requirements

  • JDK 21 for Gradle (JDK 25/26 breaks on Gradle/Groovy bytecode)
  • Minecraft 1.21.1
  • NeoForge 21.1.x (see neo_version in gradle.properties)

Build

# If default java is not 21:
export JAVA_HOME=/usr/lib/jvm/java-21-openjdk
# Or set org.gradle.java.home=... in gradle.properties

./gradlew build
# jar: build/libs/flexibook-1.0.0.jar

./gradlew runClient

In-game

Creative tab FlexiBook:

  • Blank flexi_book
  • FlexiBook Field Guide sample (EN/ZH lang; adaptive layout, i18n, rich text, images, links, search)

Right-click to open; arrow keys or buttons to turn pages; search at the bottom.

Data-driven books from a resource pack (after enabling the pack, F3+T):

/flexibook list
/flexibook give <namespace:bookId>
# e.g. /flexibook give note:note11

Requires permission level ≥ 2. Creative only lists blank + built-in demo; custom packs use the command.

Integrating other mods

Full reference (dependencies, Builder, markup, link safety, components, i18n, theme JSON, FAQ): docs/API.md.

ItemStack book = FlexiBookAPI.builder("my_guide")
    .titleKey("mymod.book.title")
    // .defaultFont(...) optional → runtime resolvedFont() = flexibook:default
    .h1("mymod.book.ch1")
    .p("mymod.book.p1")
    .font("mymod.book.quote", ResourceLocation.withDefaultNamespace("uniform")) // per-paragraph override
    .bullet("mymod.book.b1")
    .image(ResourceLocation.fromNamespaceAndPath("mymod", "textures/gui/icon.png"), 48, 48)
    .link("mymod.book.click", FlexiBookAPI.commandAction("mymod:open_map"))
    .divider()
    .fromMarkup("[p]mymod.book.extra[/p]") // whole-book raw only if elements are empty
    .buildItem();

// Safe actions only (do not register arbitrary shell)
FlexiBookAPI.registerCommandAction("mymod:open_map", ctx -> ctx.message("mymod.map.opened"));

Raw markup only (no explicit font still uses the built-in default):

AdaptiveBookContent content = AdaptiveBookContent.ofMarkup(
    new TranslatableText("mymod.book.title"),
    """
    [h1]mymod.book.ch1[/h1]
    [p]mymod.book.p1[/p]
    [bullet]mymod.book.b1[/bullet]
    """
);
// content.resolvedFont() → flexibook:default
ItemStack stack = FlexiBookAPI.createBook(content);

DataComponent id: flexibook:adaptive_book_content.

Themes register from resource pack JSON: assets/<namespace>/flexibook/themes/<path>.json → id namespace:path.
Font priority: span/heading font → book-level fontflexibook:default (see docs/API.md §12).

Six-part pack layout

assets/<ns>/
  lang/*.json
  font/*
  textures/gui/book.png
  textures/item/flexi_book.png   # optional: overrides flexibook item icon when under assets/flexibook/...
  flexibook/
    books/<id>.json              # index: content + theme + optional font
    contents/<id>.json           # body
    themes/<id>.json
ItemStack stack = FlexiBookAPI.createBookFromDefinition(
    ResourceLocation.fromNamespaceAndPath("myguide", "guide"));

Markup cheat sheet

Tag Role
[h1] [h2] Headings
[p] Paragraph (inline styles nest)
[b] [i] [u] Bold / italic / underline
[color=#RRGGBB] Color
[font font="ns:id"] / [font=ns:id] Inline font (overrides book font)
[br] Line break
[divider] Divider
[img src="..." width="48" height="48" /] Image (resource path)
[link cmd="modid:action"] / [link url="https://..."] Safe link
[bullet] List item
[div class="..."] Box container

Escape: \[ \].

v1 scope

Done: DataComponent, dual storage (elements or rawMarkup), TagParser, adaptive layout + cache, single-page Screen, Builder, bilingual sample book, search, data-driven themes (default + contain + JSON reload), built-in flexibook:default unihex (same ZIP as editor), standalone editor with Unihex preview, pack export/import, /flexibook give|list.

Not in v1 / simplified:

  • Full lectern support (FlexiBookAPI.LecternCompat stub only)
  • No hijacking vanilla written_book
  • In-book WYSIWYG edit, tables, auto TOC, 3D page-turn animation

License

GNU GPL v3 © PhantomDaze

Project description from CurseForge.

Pick your setup

FlexiBook by Minecraft version and loader

Choose the version and loader you play, then open the matching release.

7 available setups

Check the dependencies, then try the file in a copied instance before changing a world you care about.

Recent files

FlexiBook versions and loaders

1 of 7 releases match
Clear filters

Looking for an older file? The official CurseForge project page is in Resources.