Old Foliant combines an antique book aesthetic with realistic page turning, interactive content, and physical page inserts. With book logic built entirely in optimized Blueprints, it provides a flexible foundation for grimoires, forgotten chronicles, quest journals, bestiaries, and other readable objects in fantasy and story-driven games.
The book features a realistic page-flip mechanism with dynamic stacking. Each turned page adds its thickness to the opposite stack, allowing the spine and page block to change naturally as you read. Flip smoothly through 200+ pages, with configurations tested from 50 to 400 pages.
The system is semi-procedural: it combines a prebuilt book model with runtime-generated pages and a configurable page count. Physical inserts, automatic surface variation, and customizable torn edges help give individual pages their own character.
Key Features:
Smooth, Realistic Page Flips: Turn pages individually or script navigation to a specific page with natural page-stack splitting. Dynamic stacking updates the spine and page block as pages move from one side to the other.
Fully Interactive Pages: Each page is rendered through a UMG widget component, supporting dynamic text, images, video, interactive widgets, and even mini-games. Build readable lore, interactive journals, or puzzles directly into the book.
Bookmarks — Physical Pages & Inserts: Assign physical page meshes and inserts to specific pages in the book. Each bookmark sits in the page stack, layered over its corresponding runtime-generated page. Add torn paper extending beyond the stack, pressed plants for a herbarium, or a letter tucked into the book at a chosen page. Torn-page, herbarium, and letter models are included.
Automatic Page Surface Variation: Introduce variety into the paper’s normal-map detail through rotation and optional mirroring. Included material functions support four rotation variants and four additional mirrored variants, with normal-direction correction. This helps reduce visible repetition while reusing the same textures.
Torn-Edge Generator: Create varied torn-paper silhouettes for your Bookmarks using the included material system and edge-profile texture atlas. Combine different tear profiles along the top, bottom, left, and right sides, and adjust the edge width to control the appearance of the damage. Blueprint setup automatically assigns edge combinations based on the page position.
Optimized Blueprint Design: Book logic is implemented entirely in Blueprints, with optimized geometry and no heavy Tick logic. Configure and extend the system through familiar Blueprint workflows.
Customizable Appearance & Content: Customize covers, page designs, materials, and UI to suit your setting. Create custom page-edge textures or place markings and player hints along the side of the page stack.
Astrologer’s Library Demo Scene: The included scene presents the book on a wooden desk illuminated by a warm lantern, surrounded by scrolls, writing tools, and astronomical props. Dark stonework and arched windows establish the atmosphere of an old astrologer’s library.
Easy Setup: Drop BP_BookSpawner into your scene and configure your pages and UI. Documentation, example widgets, and two opening animations—for standing and lying-flat book presentations—help you get started quickly.
Included:
Old Foliant book model and Unreal Engine Blueprint assets.
Bookmark models, including torn pages, herbarium elements, and letters.
Material functions for UV variation and normal-direction correction.
Torn-edge material generator and edge-profile texture atlas.
Astrologer’s library demo scene and supporting demo content.
Im having issues migrating it to another project.
The book opens up but the widget button on the first page is never detected by my mouse and can not continue to second page.
UITrace channel is added accordingly but it was added after the migration itself - wondering where and what needs to be set correctly for it to work!
and disable Run Under One Process; this will make your client and host different games rather than different instances of the same game. You may need to wait until shaders compile, as the client has to run separately
There are no other things you need to do; just Run Under One Process == false
Book is spawned locally for client and host and not cross-showing inside each other’s window. If you need one book to be interactable inside multiplayer, you may need to change some blueprints, as this is a more in-depth scenario than a regular multiplayer run.
If this is not your scenario, please share a bit more information about your project:
What UE version do you use
What is really different in terms of settings between default scene that is downloaded from FAB and your new project
I was wondering if this book is in practice the same as the other book product but just with a different mesh/skin, and an activating button? Or does it have different features as well?
In terms of core functionality, it’s the same book. However, this version offers more features and includes functionality that isn’t available in the base book.
In short, you can use the base book and create your own skin for it, but you’ll have a really hard time achieving the same look and feel as this version, since it includes:
Deterministic Page Edge Variation System – Ensures that wrinkles and variations in page edges remain consistent for each individual page.
Advanced Page Shader – Makes the content on each page visually adapt to the aged, worn appearance of the book.
Advanced Bookmark System – One of the most in-depth features, including torn page edges and additional pages layered on top of existing ones, all synchronized with their parent pages.
Also worth noting: it comes with a bunch of props and models designed around an old tome aesthetic, making it easy to get started with your project.
Hello! I wanted to comment here before leaving a review, because it really is an absolutely fantastic system, but currently the demo scene’s book interaction on the second page does not work for 5.7 or 5.8. It does, however, work on 5.4.
This is tested on a completely clean new unreal project (on all 3 engine versions) with the only change being the trace channel added as per the documentation.
In 5.7 and 5.8, clicking opens the book but you cannot move to the next page. "Run Under One Process" does not change this.
Edit: Took a while but I solved it! The various widget components in BP_Book do not automatically have the UITrace collision set to block. I had to manually change it, unlike in 5.4 where it was automatically applied. This should probably be included in the documentation instructions. (Which I would also recommend putting in the fab description instead of hidden under a menu like it is right now. Took me a while to find it!)
Very excited to start playing with with it properly now! It’s a really beautiful system.