Custom Blueprints is a simple plugin allowing players to craft a new item, a blueprint, onto which they can "draw" any structure. Blueprints can then be placed at any locations as long as the player has the required materials for the assigned structure. Warning: this plugin requires the Haxe plugin loader on your server in order to function.
Showcase Watch the plugin in action and learn how to use it:
Usage
Any player can craft blueprints with a customizable crafting recipe. The recipe is always shapeless (placement of ingredients in the crafting grid does not matter). This is the default recipe:
This crafts an "Unfinished Blueprint". The end of the showcase video demonstrates how to use a blueprint. In case you cannot or do not want to watch it here is a textual tutorial:
As soon as the player right-clicks a block with this item in hand, the blueprint starts there, the starting point is set to the player's location and the clicked block is added. Any blocks the player right-clicks hereafter is also added to the blueprint, relative to the starting point. So it does not matter where the player moves to after the starting point has been set. The starting point cannot be unset.
Right-clicking a block that was already added to the blueprint removes it. The addition and removal of blocks is indicated with a sound. Also, when hovering over the blueprint, the total amount of blocks added to the blueprint is displayed.
After all the desired blocks have been added to the blueprint the player must, while holding this blueprint, right-click a cartography table. This will "finish" the blueprint. This is displayed when hovering over the item. A finished blueprint's structure can be placed back at any location by right-clicking a block while holding the blueprint. Existing blocks that would obstruct the blueprint's structure will not be affected but parts of the structure that do fit the clicked area will be placed, but only if the player has the required blocks in their inventory. The blocks placed will be consumed from the inventory. If the inventory does not contain a block it will simply be skipped during placement.
A handy tip is to rename your blueprints to keep things organized and to help remember what structure it contains.
Installation
Custom Blueprints is the very first Minecraft plugin written in the Haxe programming language. And because of that it requires the Haxe plugin loader (which is also a plugin) to be installed on your server. After the loader is installed, there are two ways you can install this plugin:
Download the plugin and put it in the /plugins folder or;
download the plugin and put it into /plugins/HxMcPluginLoader.
The first option is simpler and more familiar, but will cause an exception in your server console. This exception is completely harmless and the plugin will work. The second option does not cause the exception. This is because Custom Blueprints is not a regular Spigot plugin and the server will still try to load it as a regular plugin as it is a .jar file in the /plugins folder.
Configuration
To configure the plugin it generates a config.yml file (inside /plugins/CustomBlueprints), like most plugins. The default config looks like this:
Code (YAML):
# Material state reference (case sensitive): https://minecraft.fandom.com/wiki/Java_Edition_data_values#Block_states # Recipe materials are case insensitive and the order does not affect the recipe. Blueprint crafting recipe: - Redstone
- Redstone
- Lapis Lazuli
- Paper
- Feather
- Ink Sac
Blueprint max size: 10
Blueprint material blacklist: - Bed
- Cake
- Respawn Anchor
- Trutle Egg
- Farmland
- Mushroom Stem
- Red Mushroom Block
- Brown Mushroom Block
Blueprint material state whitelist: - attached
- attachment
- axis
- bottom
- conditional
- delay
- disarmed
- distance
- down
- east
- enabled
- extended
- face
- facing
- half
- hanging
- hinge
- in_wall
- instrument
- inverted
- locked
- mode
- north
- note
- open
- orientation
- part
- persistent
- power
- powered
- rotation
- shape
- short
- signal_fire
- south
- triggered
- type
- unstable
- up
- west
The first option Blueprint crafting recipe is a list of items required to craft a blueprint. Since a crafting table has 9 slots, do not add more than 9 items here. The crafting shape cannot be set and the order of these items does not matter. Item names are case insensitive.
The second option Blueprint max size is the maximum distance (in blocks/meters) a player can add blocks to their blueprints away from the starting point of their blueprint.
The third option Blueprint material blacklist is a list of blocks that cannot be added to anyone's blueprints. This is case insensitive and underscores may be spaces. See the Spigot API for all available materials. Existing blueprints will not be affected when adding materials to this list.
The fourth option Blueprint material state whitelist is a list of block states that will be saved when a clicked block is added to a blueprint. Block states determine things like rotation for torches/rails/stairs, lever toggled, fence gate open/close, etc. This list is case sensitive and underscores must be underscores, however, all states are currently lower case. See the Minecraft wiki for all available block states. If new states are added to the game, they might need to be added to this list.
Known bugs
When placing a blueprint, some 'fragile' blocks may break during placement. This happens because the block is in a state that may not yet be valid during the placement process.
Large blocks like doors and beds will break during blueprint placement.
When placing a blueprint, some blocks e.g. torches may end up in an invalid position if the supporting block cannot be placed.
This plugin most likely exposes game exploits or unfair game mechanics. Note that this plugin was created for fun and experimentation. This issue may be (partially) prevented by blacklisting certain blocks or block states in the config.
This plugin was developed mostly in January/February 2022. An early attempt was written in 2020.