BookEditor - The Easiest Way to Create Interactive Books icon

BookEditor - The Easiest Way to Create Interactive Books -----

Create, manage, and edit powerful interactive books with a full in-g



BookEditor
Professional Interactive Books

────────────────────────────
upload_2025-11-12_4-47-43.png
────────────────────────────​

BookEditor is a professional framework that lets you create complex, fully interactive books with clickable actions — all managed through a modern in-game GUI.

No more manual YML editing or plugin reloads. With BookEditor, you can design and manage your server’s books — from welcome guides and rulebooks to command menus and tutorials — entirely inside Minecraft.

⚡ Why Choose BookEditor

  • Full In-Game GUI Editor – Manage everything using /be menu. Create, delete, or configure books through a clean and intuitive interface.
  • Advanced Action System – Add interactivity with dozens of supported actions:
    [player_command], [console_command], [message], [sound], [money], [give_item], [particle], [firework], [open_book], [close_book]
  • MiniMessage Formatting – Use gradients, hover/click events, bold, italics, and much more across all texts.
  • PlaceholderAPI & Vault Support – Seamless integration for placeholders and economy actions. Both are optional!
  • Keep Books Open – Prevent books from closing automatically with close-on-click: false.
  • Auto Open Books – Show specific books automatically when players join or on their first login.
  • Multi-Language Ready – Comes with English & Spanish translations (you can add more).
Getting Started
Method 1 (Recommended): GUI
  1. Run /be menu
  2. Click Book Management
  3. Create a new book
  4. Add actions, pages, and settings directly in-game

Method 2: Commands
  1. /be create <id>
  2. Write and sign your book
  3. /be save <id>
  4. Edit it later using /be menu

Commands & Permissions

Command Permission Description
/be menu bookeditor.admin Opens the main in-game GUI editor.
/be reload bookeditor.admin.reload Reloads the plugin configuration.
/be list bookeditor.admin.list Lists all loaded books.
/be open <player> <id> bookeditor.admin.open Force a book open for a player.
/be give <player> <id> [amt] bookeditor.admin.give Give a player a book item.
/be create <id> bookeditor.admin.create Create a new book from a writable book.
/be save <id> bookeditor.admin.save Save the book you're holding.
/be delete <id> bookeditor.admin.delete Delete a book file.


Permission “bookeditor.admin” grants full access.

⚙️ Configuration (config.yml)

Code (YAML):

settings
:
language
: "en" # Default language
check-for-updates
: true
debug-mode
: false

hooks
:
use-placeholderapi
: true
use-vault
: true

features
:
enable-open-on-join
: true
enable-open-on-first-join
: true
 

Example Book (books/test.yml)

Code (YAML):

###################################################################################
# BookEditor - Book Configuration File
# ID: test
#
# This file serves as a comprehensive test case and example guide
# for the BookEditor plugin's features.
###################################################################################

# This is the unique identifier for the book.
# It is used in commands like /be open <player> test and in click events.
# It MUST match the filename (test.yml).
book-id
: "test"

###################################################################################
# ITEM SECTION
# This section defines the visual appearance of the book item itself.
###################################################################################
item
:
  # The material of the item. Can be WRITTEN_BOOK, WRITABLE_BOOK, or any other item.
  material
: "WRITTEN_BOOK"

  # The display name of the item, which also serves as the book's title when opened.
  # This field supports MiniMessage formatting for gradients, colors, etc.
  title
: "<gradient:#00C6FF:#0072FF><b>Plugin Test Menu</b></gradient>"

  # The author's name, displayed in the book's UI.
  # This field also supports MiniMessage formatting.
  author
: "<gold>BookEditor</gold>"

  # The "generation" of the book.
  # 0 = Original, 1 = Copy of Original, 2 = Copy of Copy, 3 = Tattered.
  # For most uses, '0' is standard.
  generation
: 0

###################################################################################
# SETTINGS SECTION
# This section controls the plugin's automatic opening features for this book.
###################################################################################
settings
:
  # If true, the plugin will automatically open this book for a player
  # the very first time they join the server.
  open-on-first-join
: false

  # If true, the plugin will automatically open this book for a player
  # *every* time they join the server (except the first if the above is true).
  open-on-join
: false

###################################################################################
# PAGES SECTION
# This is the main content of your book.
# Each entry that starts with a hyphen ('-') represents one new page.
###################################################################################
pages
:

  # This is Page 1.
  - |
   # The pipe character '|' is a YAML feature called a "Literal Block Scalar."
    # It allows you to write a multi-line string easily without needing quotes ("").
    # All text indented below it will be treated as a single string,
    # preserving all your line breaks exactly as you see them.
    # This is the recommended way to write book pages.

   
    # All text in pages is parsed using the MiniMessage format.
    <dark_aqua><b>TEST MENU - CORE</b></dark_aqua >
   <dark_gray><st>                     </st></dark_gray >
 
    # Placeholders from PlaceholderAPI (like %player_name%) are supported
    # if you have PlaceholderAPI installed.
    <gray>Welcome, <aqua> %player_name%</aqua>!</gray>
    <gray>Select an action to test.</gray><reset >
 
    # This line demonstrates a "hover" and "click" event.
    # <hover:show_text:'...'>: Shows 'TEXT' when a player hovers their mouse over it.
    # <click:run_command:'...'>: Executes a command when the text is clicked.
    #
    # The command '/be action test action-command' tells BookEditor to find the
    # book with ID 'test' and execute the action with ID 'action-command'.
    <hover:show_text:'<green>Test [player_command]<newline>Runs the command
: /help'><click:run_command:'/be action test action-command'><aqua>► Test Player Command (/help )</aqua></click></hover><reset >
   <hover:show_text:'<gold>Test [money ] (Requires Vault )<newline><gray>Book will NOT close.'><click:run_command:'/be action test action-get-money'><gold>► Test Economy ( No Close )</gold></click></hover><reset>
    <hover:show_text:'<blue>Test "close-on-click
: true "<newline><gray>Book WILL close on click.'><click:run_command:'/be action test action-tp-spawn'><blue>► Test Teleport (Closes)</blue></click></hover><reset>
    <hover:show_text:'<light_purple>Test [give_item]<newline>Gives 1 Nether Star.'><click:run_command:'/be action test action-give-item'><light_purple>► Test Give Item</light_purple></click></hover><reset>
    <newline>
   
    # '<click:change_page:2>' is a built-in MiniMessage tag for books.
    # It navigates the player directly to the specified page number (Page 2).
    <hover:show_text:'<gray>View Page 2 (Effects)'><click:change_page:2><gray>[Next Page →]</gray></click></hover>

  # This is Page 2.
  - |
    <dark_aqua><b>TEST MENU - ADVANCED</b></dark_aqua>
    <dark_gray><st>                     </st></dark_gray>
    <gray>Test visual and advanced actions.</gray><reset>
    <hover:show_text:'<yellow>Test [firework]<newline>Launches a firework.'><click:run_command:'/be action test action-firework'><yellow>► Test Firework Effect</yellow></click></hover><reset>
    <hover:show_text:'<blue>Test [particle]<newline>Spawns 50 flame particles.'><click:run_command:'/be action test action-particle'><blue>► Test Particle Effect</blue></click></hover><reset>
    <hover:show_text:'<dark_purple>Test [console_command]<newline>Runs /say from console.'><click:run_command:'/be action test action-console-cmd'><dark_purple>► Test Console Command</dark_purple></click></hover><reset>
   
    # This action is linked to 'action-permission-test' which requires a permission.
    <hover:show_text:'<red>Test Permission Node<newline>Requires: <yellow>bookeditor.test.testpermission</yellow>'><click:run_command:'/be action test action-permission-test'><red>► Test Permission (Fails)</red></click></hover><reset>
    <newline>
    <hover:show_text:'<gray>View Page 1'><click:change_page:1><gray>[← Previous Page]</gray></click></hover>

###################################################################################
# ACTIONS SECTION
# This section defines what happens when a player clicks a linked action.
# The ID here (e.g., "
action-command: ") MUST match the ID from the
# <click:run_command:'/be action test ID_HERE'> event in the pages section.
###################################################################################
actions:

  # ID: action-command
  # Demonstrates a basic player command and a feedback message.
  action-command:
    # "
execute " is a list of all actions to run, in order, when triggered.
    execute:
      - "
[player_command ] help " # [player_command]: Runs the command as if the player typed it.
      - "
[message ] <green>Ran /help command. " # [message]: Sends a MiniMessage-formatted message to the player.

  # ID: action-get-money
  # Demonstrates Vault integration, multiple commands, and the 'close-on-click' feature.
  action-get-money:
    # This is a key feature. If 'false', the plugin will actively prevent
    # the client from closing the book after the action. This is perfect for menus.
    # If 'true' or omitted, the book closes normally.
    close-on-click: false
    execute:
      - "
[money ] 1000 " # [money]: Gives (or takes if negative) money. Requires Vault.
      - "
[message ] <gold>You received <yellow>$1,000</yellow>!</gold> "
      - "
[sound ] ENTITY_PLAYER_LEVELUP " # [sound]: Plays a sound for the player.
    # (Optional) The player must have this permission node to run this action.
    permission: bookeditor.test.testmoney

  # ID: action-tp-spawn
  # Demonstrates a standard action that closes the book.
  action-tp-spawn:
    close-on-click: true # Book will close as normal.
    execute:
      - "
[player_command ] tp @p 0 100 0 "
      - "
[message ] <aqua>Teleported to 0, 100, 0!</aqua> "
      - "
[sound ] ENTITY_ENDERMAN_TELEPORT "
    permission: bookeditor.test.testtp

  # ID: action-give-item
  # Demonstrates giving an item with a custom name and lore.
  action-give-item:
    execute:
      # [give_item]: Gives an item.
      # Format: [give_item] <MATERIAL> <Amount> [name:<name>] [lore:<line1|line2...>]
      #
      # IMPORTANT: The pipe character '|' used inside the 'lore:' tag is a
      # *separator* for new lines in the item's lore.
      # This is different from the YAML '|' character used for multi-line strings.
      - "
[give_item ] NETHER_STAR 1 name:<gradient:blue:aqua>Test_Star lore:<gray>Line_1|&cLine_2_with_legacy "
      - "
[message ] <light_purple>You received 1x <aqua>Test Star</aqua>!</light_purple> "
    permission: bookeditor.test.testitem

  # ID: action-firework
  # Demonstrates the [firework] visual effect.
  action-firework:
    execute:
      - "
[firework ] " # [firework]: Spawns a default firework at the player's location.
      - "
[message ] <yellow>Launched a firework!</yellow> " # This message was "Pew pew! "

  # ID: action-particle
  # Demonstrates the [particle] visual effect.
  action-particle:
    execute:
      - "
[particle ] FLAME 50 " # [particle]: Spawns particles. Format: [particle] <PARTICLE_TYPE> <Amount>
      - "
[message ] <blue>Spawned flame particles.</blue> " # This message was "Woosh! "

  # ID: action-console-cmd
  # Demonstrates running a command from the server console.
  action-console-cmd:
    execute:
      # [console_command]: Runs the command as the server console.
      # It supports %player_name% and other PAPI placeholders.
      - "
[console_command ] say Player %player_name% tested the console action!"
      - "[message] <dark_purple>Console command executed. Check the console.</dark_purple>"

  # ID: action-permission-test
  # Demonstrates a custom permission message for a failed action.
  action-permission-test
:
    execute
:
     - "[message] <green>You have the permission!</green>" # This only runs if the check passes.
    permission
: bookeditor.test.testpermission

    # (Optional) If 'permission:' is set and the player lacks it, this
    # 'permission-message' will be sent instead of running the 'execute' list.
    # If this is not set, the action will just fail silently.
    permission-message
: "<red><b>[!]</b> You lack the required permission: <yellow>bookeditor.test.testpermission</yellow></red>"
 
Dependencies

  • Vault (optional) – Required for [money] actions
  • PlaceholderAPI (optional) – Enables support for placeholders like %player_name%

Support

If you have questions or issues, please use the Discussion tab or open an Issue on our tracker before leaving a negative review.

Thank you for using BookEditor!
Resource Information
Author:
----------
Total Downloads: 9
First Release: Nov 12, 2025
Last Update: Nov 12, 2025
Category: ---------------
All-Time Rating:
0 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings