Support for Ruins Templates and also MCEdit Schematics, as well as the native Blueprint language.

Larger Blueprint library coming slowly.

Screenshots:

Some of the example structures created with the supplied blueprints. The same plan can be built multiple times, at different locations and rotations, with a click of the mouse. The random tower has varying height, room contents, balconies, windowboxes...

This is a mod aimed at:

People who spend all their time in Creative mode

People who like the copy/paste features in external editors, but want to create in-game

People who don't want to spend another ten minutes creating yet another generic house as they build their city

People who want to share their structure with others without having to save and load an entire world

People who want a convenient way to add new auto-generating structures to the world

The mod adds a new item -- a Wand -- and a few commands ( /wand, /blueprint ). It allows the person holding the wand to create any of a number of predefined structures (plans) at the click of a right-button; it also allows them to save an existing structure as a file (blueprint) that can be loaded back in as a plan and used again multiple times.

Plans may use 'soft' blocks, which only place in air or water, and can also include reference to other place, at translation or rotation. There is also the option to use an element of randomness, so that it can generate varying structures from the same blueprint. It also preserves Block Entity data and can handle blocks added by other mods.

In Version 1.0, it is possible to set certain plans to auto-generate in new chunks as the world builds.

In version 2.0, there are SPAWNER and CHEST directives to allow randomly generated spawner targets and chest contents. You can also specify NBT for metadata, chests, spawners, mobs or items as either raw JSON or as an external .nbt file.

In version 2.2, there is the MOB directive to allow mobile entity creation. Also, MetaBlocks can be specified, which resolve to a different type of block depending on the current biome and randomness. For example, the cottage will be generated using different stone and wood if built in the desert as opposed to being built in the plains, and the Tower can have some randomly-chosen cobblestone blocks mossy.

In version 2.3.1, there are the IFBIOME and IFBLOCK test directives. These allow different structures in different biomes, and recursive structures (eg, a tunnel that stops at the other side of the hill)

In version 2.3.2, we get the MSG and PICTURE directives. PICTURE allows you to create a map-in-a-frame entity on a wall from an external image file -- so you can put your picture on the wall!

In version 2.4, you can now copy a structure by using the command '/wand copy', and then right-clicking with the wand to indicate which area to copy. There is also support for structures defined as Ruins Templates, from the Ruins mod. These are converted into Blueprints when they are loaded.

Version 2.5 adds Schematics support, and also an Undo buffer so that you can use '/bp undo' to back out your last change.

PUBLIC PLAN cottage A simple small one room cottage # Autogenerate with chance 10/100,000 AUTO 1000 Plains,Forest,Savanna,Savanna Plateau,Desert # shift to make the door in front of us when created CALL _cottage -2 -1 1 0 END

Another example:

PUBLIC PLAN flower A tulip in a flowerpot
BLOCK minecraft:flower_pot(4) 0,0,0 {Item:38,Data:4,id:"FlowerPot"}
END

The main thing to note is that, once the structures have been built, the mod is not required for the world to work (provided you have removed the Wand from the player inventory of course), though you do need to keep the mod installed for autogeneration to happen, of course.

The mod comes with a number of example blueprints, demonstrating the various capabilities. For example:

Glass dome -- works on land or underwater

Random tower -- random room contents and height

Cottage -- simple cottage

Well -- example of underground structure

Water -- uses 'soft' blocks to fill holes with water without affecting other blocks

Awesome, Finally A Mod Of This Type That Works With Other Mods And Also That Uses The Worldgen Option. This Is A Really Good Mod For Be Just A First Mod. Another Prove That A First Mod Shouldn't Be Just A Crappy Mod.

Thanks for the support. I've been creating a lot of things for the kids worlds here, and really needed somthing like this... I couldn't find one online anywhere, so I learnt Java and wrote it over the last 2 weeks of summer holiday (I live in New Zealand, so it's summer for us).

I've also contributed to the MCDungeon project (add procedurally generated dungeons to your world, really worth a look!) and wanted some way to do something similar in-game, hence the support for randomising in the Blueprint language.

My next step is to finish porting v1.0 of the mod to the 1.8 forge API, so that both versions are supported, and then post the source code to help out other new mod writers and migraters. After that, I'll build up a library of Blueprint files. Maybe one day this can become a standard format to use to exchange Minecraft structures and tutorial examples...

This includes the new SPAWNER and CHEST directives for blueprints with randomly generated contents; support for external .nbt files to specify metadata for blocks, including chests, spawners, items and mobs; and a fix for an issue that would cause container objects to often be rendered with an empty inventory.

This includes the source code; the 2.0 increment is because of the new blueprint directives, and also the rewriting of the blueprint functions and objects into a properly self-contained and portable package.Still no support for copying and placing entities, though.

This now has the CHEST and SPAWNER directives, to more easily define these with randomisable contents; there is also the MOB directive to add mobile entities (which includes minecarts and armour stands) -- this also works with the /bp copy command, so you can copy entities and paste them.

Many example provided, plus NBT files for various objects and entities, including Herobrine (I can't seem to delete him without breaking things, for some reason)

Use F3 to display the current coordinates. Identify the in-game block coordinates of the corners of the volume you wish to copy.

Use the command: /bp copy myname x1 y1 z1 x2 y2 z2 Replace myname with the name you want to store the new blueprint under. The coordinates are for opposite corners of the box to copy; so "1 2 3 4 5 6" will copy from block 1,2,3 to block 4,5,6 (a 3x3x3 cube). It will not copy Air blocks.

You can now use /wand set myname to make the wand produce your newly copied blocks when you right-click at a location.

Use /bp savemyname to save your new blueprint to disk as confg/bp/myname.cfg . This will make it persist after game restarts.

Note that the 'origin' as defined by a /bp copy may not be precisely where you want it to be. In this case, you can edit the new blueprint file to wrap the new plan in another plan that simply does an offset and/or rotation. See the cottage.cfg example blueprint for a demonstration of this.

To use the wand:

The wand is initially not set to do anything. You need to "enchant" it (I.E., associate it with an existing plan).

Use /bp list to list the Public plans.

Use /wand set name to set the wand to produce a specific plan. This works with public or private plans.

Right-click (use) the wand on a block. You must be targetting a block; just clicking in the air does nothing. This will create the specified structure at this point.

You may need to wait a few seconds for the structure to appear, depending on the complexity of the structure, or the speed of your server. A chat message will tell you when the build is completed (or if it failed for any reason).

Using Blueprints

A blueprint is a file containing one or more plans, which contain sequences of instructions to create a structure. The directory of blueprints is called the portfolio.

A particular plan may call one or more other plans multiple times; in fact, this is a recommended way to define structures. The sub-plans can be marked 'private', which means their names do not normally display when listing plans.

A plan may be marked as 'autocreate' with a probability and biome list. This is used by the autogenerator to randomly create this structure in the world as new chunks are defined.

A plan can be linked to a wand, so that using the wand will execute that plan.

Blueprint files (containing a single plan) can be created by the /bp save command, usually after running /bp copy to copy something in-world. However, it is usually more efficient to write or edit them by hand.

The Blueprint language is structured similarly to the language Logo. It has basic testing and branching, and can use 'soft' blocks (which only place in Air) or 'meta' blocks (which have an element of randomness or dependence on biome). The language is detailed in the readme.cfg sample blueprint; there are also many other example blueprints provided to help you.

Plans in one blueprint may call plans from another; however this is not generally recommended as you cannot be certain which order they will be evaluated in. It is best to keep all related plans in a single blueprint file. Also, it is Best Practice (though not required) to prefix private plans with an underscore, and have all plans in a blueprint with a common prefix -- for example, "hut", "_hut_roof", "_hut_window".

Be careful with recursion. An infinitely-recurring plan will hang the server thread (this will be hopefully prevented in a future release)

I hope this helps! Documentation is slowly being written. I'm hoping that other module writers may pick up on the blueprint language as being a convenient way to define structures, and it could become a common language for exchanging structural definitions.

This fixes a number of bugs, and adds the MSG directive (which just adds a log entry), and the PICTURE directive (which creates a map-in-a-frame entity on the wall displaying a picture converted from an external GIF, PNG or JPG image!)

i need help...i cant seperate the co-ordnates when i try to bound a blueprint to my wand... it says in chat

"Cannot parse coordinates. Must be numeric integers"

Hey there, I don't know if you're still having an issue because I was just having the same issue so if you haven't resolved it, I tried this and it worked for me

So when you open up the F3 menu it gives you your literal coordinates and at the very bottom of the menu it gives the coordinates of the block you're looking at, you have to enter the coordinates of the blocks you're looking at so there shouldn't be any decimal points, they're just going to be whole numbers.

Like I said, I don't know if you figured it out yourself, but in case you're still stuck, try that because that's what I did and it worked for me.

Hello, I've run into a problem with this mod and loading blueprints. Blueprints created with the wand tool eventually expire and I get a "build failed" error message when I attempt to load any of them. According to the log, there was no valid definition in block directive, and the step that failed was [# BLOCK undefined. Any ideas for a fix or way of avoiding this problem?

WOOHOO!! I can finally make my cavalry fort in less than a month! The time consuming part after building the stalls was building the connected feed rooms with the houses above as the defending wall. Of course by the time I get the first few stalls started, the horses have moved away. (CENSORED!)This is definitely going into my personal mod pack.