For the past few years when I’ve gotten time, I’ve been working on a substantial rewrite of CraftBook, which has been referred to as “CraftBook 5”. It’s intended to be the next major version of the plugin, and substantially brings it into the modern age of Minecraft. The plugin is now at a point where it feels ready for general use, but due to a few caveats it’s being listed as a beta.

What is CraftBook 5?

In general, CraftBook 5 is a rewrite of the core systems of CraftBook, and every mechanic. Not all mechanics are currently in the plugin, and a small number have been intentionally removed due to inherent incompatibilities with the way Minecraft now works (such as Minecart vision steering). Overall though, the plugin works significantly faster, significantly more reliably, and in a significantly more cohesive and straightforward way. Everything has been redesigned from the ground up to work better together, and work better with modern Minecraft.

The main motivation for this rewrite, as written about a few years ago when the effort started, is to get away from the many limitations and problems that Spigot caused within CraftBook 3 by requiring Paper. This does mean that CraftBook 5 no longer works on Spigot, however it’s strongly recommended to use Paper over it anyway. This decision was not taken lightly, and provides significant benefits to both performance and reliability of the plugin.

What’s new?

As this is a rewrite, it’s very difficult to list out a set of changes. Realistically the entire plugin has been redesigned to fit better into modern Minecraft. You interact with most systems in a similar way, but the way they work under the hood is entirely different. The plugin attempts to be as automatic as possible, replacing many situations that previously required entering extra data onto signs with automatic detection.

Configuration and Commands

One part that’s had a significant makeover are configuration and commands. The configuration to enable or disable mechanics is significantly simpler, now just being a categorised set of options you can set to true or false. Configuration for each separate mechanic have also been made simpler, by moving them to separate files that are annotated with comments and links to the documentation.

Commands have become significantly more interactive, such as a new mechanic list command (/cb mech list) that lets you enable and disable commands just by clicking an entry in the list.

CraftBook 5's /cb mech list command

CraftBook 5's /cb mech list command

Other than that, many modern features you’d expect in modern plugins have been added, such as command completions where possible.

Translations

CraftBook also has an entirely new translation system, similar to the one found in WorldEdit. This means that CraftBook will automatically be translated for each user based on the language set in their Minecraft client. If you run a non-English Minecraft server, or speak a language other than English, we’d definitely appreciate if you’re able to submit translations on our CrowdIn page.

Removal of the “CraftBook ID” system

Due to the migration to UUIDs back in the Minecraft 1.8 days, CraftBook added a system called “CraftBook IDs”, that basically acted as a hyper-compressed UUID that could fit on a sign. CraftBook 5 gets rid of this system, by instead internally storing necessary data to replicate UUIDs internal to the sign, so that a player’s name can be placed on a sign and automatically update based on the stored UUID. The same is true for mechanics that store blocks on signs, such as the bridge, door, and gate mechanics. These store the blocks internal to the sign, rather than as text on the sign to prevent “block ID too long for the sign” issues.

Check out the new docs

In general, the best way to see what’s new is to try it out and read the documentation available here. If you notice a mechanic is missing from the documentation, it might have been renamed (such as the netherrack mechanic now becoming redstone fire), or it might not yet be ported over to CraftBook 5.

What’s missing?

While CraftBook 5 contains the most popular features used by most servers that utilise CraftBook, many of the more technical features are missing. The main two categories of these are ones that involve adding new forms of recipes or drops to the game such as custom crafting, command items, or custom drops, and redstone-heavy mechanics such as ICs and Pipes.

The reason these features have not been ported over is that most of them require significant further changes in underlying platforms (both Paper and WorldEdit) in order to be able to be done effectively. We’re also at a point in time where data packs are generally better suited for modifying the more data-heavy aspects of the game such as recipes and drops. Unless Paper can provide an API that is more reliable and useful than data packs for recipes, there’s a good chance that the Custom Crafting component will never be ported.

ICs

ICs and Pipes are a slightly different case, where the main reason they haven’t been ported is that they require such a heavy rework that it’s a project in itself. The ICs were added across multiple eras and many were inherited from multiple former add-on plugins for CraftBook that each did things their own way. This has for example led to some self-triggering ICs turning off when powered, some turning off when unpowered, and some ignoring power entirely. The method of data entry for ICs is also extremely inconsistent due to this, and very complex in the modern Minecraft landscape. For ICs to be in CraftBook 5, these are problems I would want to fix. There’s no guarantee every IC would be ported, it’d be a reimagining of the concept of ICs to provide a cohesive and straightforward experience.

Pipes have not been moved mostly because of how heavily tied to ICs they are, but also because the entire concept of “filtering” has similar issues to the other mechanics that have not been ported.

Running alongside CraftBook 3

Due to the missing mechanics, CraftBook 5 has been specifically designed to run alongside CraftBook 3. If you only need mechanics in CraftBook 5, only install CraftBook 5. However, if you do want mechanics across both, it’s recommended to install both and prioritise CraftBook 5 mechanics over CraftBook 3 ones, only using CraftBook 3 for what you can’t get from CraftBook 5. The only thing to keep in mind is to make sure not to enable the same mechanic in both CraftBook versions. This can produce very unexpected results due to both plugins trying to handle the same logic.

So why betas?

The main reason that I’m choosing to release these as betas rather than full releases, is that I’m not happy with calling it a final release until two conditions are met. Firstly, as CraftBook 5 is designed to be able to run alongside CraftBook 3 it uses a configuration folder named CraftBook5. This is not something I see as ideal, and I would not want in something considered a final release. Secondly, I would want ICs to be in the plugin in some form. To me, ICs are a key part of CraftBook’s identity, and to release a major version without them would be wrong. When CraftBook 3 originally released for Bukkit following the death of hMod, it released as alphas for nearly 2 years prior to ICs and other mechanics being re-added.

In saying that though, these are not betas in the sense of unstable or less supported software. CraftBook 5 in general is more stable and better supported than CraftBook 3. They are betas because there are parts that are missing, or in the case of the folder name will change in the future. Once the folder name change does happen, it’ll be as simple as renaming the CraftBook5 folder to CraftBook and will be automated if possible.

Where is it available?

CraftBook 5 is available on both Modrinth and Paper’s Hangar plugin platform. New versions will continue to be posted there as they are released.

Conclusion

CraftBook 5 is a significantly faster, more reliable, and more user-friendly experience compared to CraftBook 3, but is not in a state where it’s ready to call a full release. That doesn’t mean you shouldn’t use it, however, as everything in the plugin is considered stable in its current state. If you need some of the missing features, you can run it alongside CraftBook 3, otherwise you should definitely give CraftBook 5 a try by itself. If you’re interested in more information, come chat with us in the #craftbook channel of the EngineHub Discord.

About the Author

Maddy Miller

Hi, I'm Maddy Miller, a Senior Software Engineer at Clipchamp at Microsoft. In my spare time I love writing articles, and I also develop the Minecraft mods WorldEdit, WorldGuard, and CraftBook. My opinions are my own and do not represent those of my employer in any capacity.