Guide on making Custom Villages
This is a guide on how to design blueprints for custom village set-ups!
It is the third in a series of guides which lead to custom development of a whole culture:
- The Guide on making Custom Buildings.
- The Guide on making a Town Hall.
- This Guide on making Custom Villages.
- The Guide on making a Custom Culture.
With the 0.5 update, specialised villages were introduced, which restrict villages to follow certain parameters that allows for a more varied ecosystem of villages. Included in this is the ability to design your own set-up with parameters that you choose! I'll be writing this tutorial assuming you understand custom building design, for practicalities sake. If you don't, the custom building guide is here. I'd strongly advise you read and use it, as having the villagers build you a custom building gives a strong sense of satisfaction, and will allow you to use the second part of this guide.
 Creating Village Variants
 Parameters: A Primer
There are several parameters in the village plans, which are either vital, or optional. As the "écclesiastique " village has all but one of these parameters, I'll use the ones from this for the example.
 Vital Parameters
- name: The name of that particular type of village, will be shown on sign 0 of a town hall building (the outside sign). Example: "name:Village Écclesiastique"
- weight: How likely each village is to spawn. Similar to the priority system in custom buildings. A weight of 10 is half as likely to spawn as a weight of 20, whilst a weight of 100 is 5 times more likely to spawn than that. Example: "weight:10"
- centre: Which building plan to use as the hub of your village. I'll go into this in more detail later on. Example: "centre:townhall"
- start: What buildings your village will spawn with. Can currently only be a building with a main chest. Uses the name of the building plan, not the French name. Examples: "start:lumbermanhut", "start:cattlefarm"
- carriesraid: This parameter tells whether the village will raid other villages. Examples: "carriesraid:true", "carriesraid:false"
 Optional Parameters
- qualifier: Sometimes added onto the end of the name of a village when spawning. You can have multiple qualifiers in one village file. Examples: "qualifier:l'église", "qualifier:l'abbaye", "qualifier:Of Death"
- core: Buildings in this category are the primary building goals, to be built before any other buildings. Which building is to be built will be decided based on the priority system within the group, similar to as it was before. Uses the same form as start. Examples: "core:church", "core:bakery"
- secondary: Buildings in this category will be built after the core buildings, and are the second priority level. It works exactly the same as the core parameter. Examples: "secondary:farm", "secondary:quarry"
- never: Buildings in this category will never be built by your village. No matter how high the priority is, or how high the max number is, this building will not be built by the villagers in any village of this type. This is how the new specialised villages retain their own individual flavours. Examples: "never:guardhouse", "never:tavern"
- sellingPrice: Using this parameter allows you to customise the prices that items are sold at in the stores that sell them. This is done in the form of "[itemname],[price]", with the price either being a single number, representing a price in denier, or one number followed by another with a slash in between, representing something that costs denier argent/denier, in that order. Examples: "sellingPrice:bookshelves,14", "sellingPrice:normanHelmet,8/0" (From a Village militaire). This also works for denier or, with an added slash: 1/0/0 will be interpreted as a price of one denier or.
- buyingPrice: Similar to sellingPrice, this used to modify the trade rates, in this case affecting how much the villagers will buy items or blocks from you. Example: "buyingPrice:bookshelves,14"
Any buildings that aren't put in the core, secondary or never parameter will be built in an "extra" level, as the third priority level. This allows custom buildings to work in villages easily without having to be added on to village text files each time.
 Creating Your Village
Now that you know what each parameter means, you can easily create your own village plan. Either by starting with one of the original village plans or by writing one directly from scratch, fill in all of the vital parameters and as many of the optional parameters as you wish, and then save the files as a plain text file in the villages folder found in the building plans folder. If you don't know where the building plans folder is, I'd recommend you go check through the custom buildings guide, as it will allow you to utilise the next section of this. Once placed in your villages folder, it will be loaded up the next time you start Minecraft as a potential village and has the chance to be spawned in the occasions when villages will spawn. Congratulations! You've just made your first custom village!
 Creating Custom Villages
Want to create a village with Russian-inspired architechture? Or perhaps a newly started settlement, with villages spawning as temporary structures before growing into more substantial place to live? But didn't want to replace the original buildings, to allow even more variety in your world? Using custom villages, now you can! For this example, I shall be using the set-up to design a more compact village, which i'm calling "VikingPort", to show you what I mean.
 Custom Buildings
Feel free to play around with making the custom buildings for your new village! If you wish to have several different buildings that each home guards, go for it! Want to make your farm upgrade to contain a bakery, like my petitfarm_A? Of course! Considered adding decorations that would fit in with the new theme that would look out of place in 11th Century Normandy? Do it. Just remember that if you only want these buildings to appear in your custom villages, add them to the never parameter on your other village files, and include these modified village files if you upload your new village and buildings for others to use. Alternatively, if you put the max number as 0 on your buildings, they shall only be built when forced by your village text if you put them in a start, core or secondary placement.
 Making Your Village File
Now that you've done all the hard work designing your buildings, it's time to make the .txt file! If you follow the previous instructions, you can end up with your very own custom village! It's actually that simple. An example of a completed village file with custom buildings and the same amount of parameters as other villages is here, but with no modification to prices:
name:VikingPort weight:10 carriesraid:true qualifier:Of Death biome:plains biome:river //extraBiomes mod biome:mountain biome:lush swampland pathmaterial:pathdirt //starting buildings: centre:port start:largepeasanthouse start:peasanthouse start:lumbermanhouse start:quarry start:grove player:playersmallfield player:playersmallhouse //to be built in priority core:quarry core:shipyard core:grove core:soldierhouse core:forge //to be built after the core ones secondary:pagantemple secondary:meadehall secondary:quarry secondary:soldierhouse secondary:soldierhouse secondary:soldierhouse secondary:forge //never for this type of village never:watchtower never:farm
Note the addition of the never parameter with the basic forms of buildings; this will keep the style of your new village intact without adding in the original buildings. If you want to keep any of the older ones in your new village, just don't put it in a never tag! The "never" tag is used to say which buildings that will never be used in your village, so if you were making a farming village, you would probably want to not include a fort structure, or a forge, or a guardhouse.
- Start small, only include the vital parameters in your first village, with a towncenter as the only building. This way you can carefully add the rest of your buildings, and make sure all the villagers are correctly functioning.
- If you are stuck, make sure to check all of your buildings, and especially your towncenter. Check to make sure you have the correct chests, signs, selling positions.
- Make sure your text files and .png files line up. If you have 8 signs in your towncenter, but say you have 9 signs in your text file, you are going to have problems.
- If you get stuck, or do not see something in this guide, look at the original Millenaire code! Check the culture files and compare your work, make sure you haven't spelled something wrong or mixed up values.
- Understand how to use exporting/importing tool, it is really easy to use, and you won't waste time in Paint.Net coloring in little boxes.
- If you are making a towncenter, plan out your upgrades accordingly. Always make sure you include plenty of chests for storage, and, if it isn't being stressed enough, count your signs. You should have 9 of them, 0-8.
- If all else fails, be patient and look at the other cultures villages, try to double check everything you have done so far and always look for errors.
- If all else fails, and you start to go crazy, talk to someone. Search around for anyone who you believe has messed with custom villages, and talk to them. You can always ask questions in the multiple Millenaire Forums on minecraftforum.net, or even here. Just make sure your question is worthwhile and is not answered anywhere on this guide.
In the 0.6 update, hamlets were added to the plethora of possible villages, which allow for even more specialised villages that utilise the new Merchants to trade resources between themselves. Central towns can be used as a hub for hamlets to spawn around, as seen with the Gros bourg villages spawned after 0.6. Note that it is also possible to spawn hamlets using the village wand and their spawn block, or by raising their weight from zero to allow them to spawn during world generation.
 Hamlet Parameters
- type: This is to be added to your hamlets to prevent them from constructing buildings that you haven't specified with your core and secondary parameters. The correct way to fulfill this parameter is "type:hameau"
- hameau: This parameter is to be added to the village you want your hamlets to spawn around. This is done by putting the name of the file of any village following it. Example: "hameau:hameau_artisans", "hameau:hameau_abbatiale"
 Hamlet Guide
For your hamlets to work properly, it is strongly advised to set their weight parameter to 0 to avoid a village that can hardly grow before you can access other villages to collect them decent quantities of resources. Also, note that any village can become a hamlet, and any village can have hamlets, so it's possible to chain spawnings of hamlets. Be very wary of creating loops with this system, as it can cause crippling effects.