User:Goandgoo/sandbox

This page is where I test ideas, formatting etc.

If you're trying to spawn golems for an iron ingot farm, or just want a few more noses to trade with in your local testificate township, then you've come to the right place. If you're interested in farming iron golems for their ingots, he's also put together a tutorial video for a really excellent iron golem farm. Links to both can be found at the end of this post. And now, on to the good stuff!

Video Explanation
Before reading on, you may like to watch the following video which explains the mechanics of villages.

Terminology
A village is defined by several factors: the village center, radius, number of houses, population (number of villagers), population cap (max. number of villagers, based on housing), number of golems, and golem cap (based on population).

A village needs two things, in order to be a "village." It needs houses (at least one) and villagers (again, at least one.) A "house" is defined simply as a wooden door with an "inside" and an "outside" (see the next section for details.) A village's population is capped at 35% of the number of "houses" (doors.) Under ideal conditions, villagers will breed up to this limit, and then stop.

The village center is the geometric center point, or "average coordinates" of all the doors. The village radius is the distance from this center point to the furthest door, or 32 blocks, whichever is greater. This means that the radius is always at least 32, no matter what, but it can be more than that if there are any houses further than 32 blocks from the center. If there are any, then the radius is the distance to the furthest one, instead. Both the center point and radius are rounded to whole numbers; I'm actually not sure if they round up, down, or to the nearest.

Housing
A "house" is defined as a wooden door with an "inside" and an "outside." The "inside" is the side which has more spaces covered by "roof" blocks than the other, within five spaces horizontally of the door in the two directions it faces. A "roof" block is an opaque block at any height that blocks direct sunlight from reaching the spaces below it.

Another way to put it would be to say that an "outside" space has a direct view of the sky, and so has a "SL" (sky light) value of 15. An "inside" space does not have a direct view of the sky (not looking straight up, anyway) and a "SL" value of less than 15. The "inside" is the side which has more "inside spaces" than the "outside" (which, in turn, has more "outside spaces" than the "inside.")

A door is not counted as a house without a "roof," or with the same number of covered spaces on either side.

Example - The door is placed on the wooden planks. The game checks the spaces represented by the light blue wool, to see if they are covered by a "roof" block or not:



The simplest house looks something like this. Just a wooden door, with a dirt block on the ground next to it:



Not much to look at, is it? But it fits the criteria. The dirt blocks the light from reaching the space below it, and so counts as a roof block. There is one "inside" space, covered by a roof block, on the right side of the image (represented by the red wool below) and zero on the left. Since one is more than zero, there are more covered spaces on one side of the door than there are on the other, and so the game counts this as a house:



The following are all examples of houses as well:









It doesn't matter what you build, except for what's directly above the colored wool. Anything to the sides of this can be whatever you want, or nothing at all:



A door is two blocks tall, and this check is performed twice per door, if necessary. If the inital "roof check" (see Fig. 1) fails, then the bottom-most layer is ignored and the check is performed a second time, starting one layer higher. This time, only the spaces above the lime-green wool are checked for roof blocks:



Example - For the door pictured below, the initial roof check finds there are two spaces covered by roof blocks on the left side, and two covered spaces on the right also. With the same number of covered spaces on each side, neither one can be designated the "inside" or the "outside," and so the door is not counted as a house (yet. But but we're not through yet, either.):



Then since the initial check failed, the bottom layer is ignored, and we perform the test again, this time checking for roof blocks only above (not level with) the green wool. This time, only the two spaces on the left-hand side of the image are covered. Since the "roof check" passed on this second try, the door counts as a house, and its "inside" is on the left where the more covered spaces are:



In the next example, the door passes the test on the initial first check. It has one covered space on the left side and two on the right. This makes it a house with the "inside" to the right. The second check would pass as well (with the "inside" on the left this time), but since the first one already passed, we don't even bother testing again. This door counts as a house, with the "inside" on the right:



The covered spaces don't have to be contiguous. The door below is a house, with the "inside" on the right, which has three covered spaces within the 5-space limit, while the left side has only two:



This next door has three covered spaces on each side, and is not a house:



A house is initiated by a nearby villager. Without a villager nearby, it is not considered a "house," just some blocks and a door:



But as soon as that villager shows up, it becomes a house (and a village):



Villagers will recognize a house within sixteen blocks along both horizontal axes, and up to three blocks above or five blocks below the level of the ground the villager is standing on:





Overlapping boundaries
When two villages' boundaries overlap, they will merge into a single, larger village. A new house that's within (radius + 32) of an existing village would, were it considered a village in its own right, overlap with the existing village and so just becomes a part of that village. This causes a recalculation of the village's radius and center point, which can sometimes cause it to overlap with another already-existing village. When this happens, the game doesn't always handle it correctly right away. It is possible to end up with a situation where two villages overlap and are still treated as separate villages. Fortunately, the fix for this is rather simple. Just quit the game and reload, and it will reevaluate the position of everything, this time seeing only a single large village instead of the two smaller ones overlapping.

The same thing can happen in reverse: if houses are removed from the center of a large village, the remaining ones may constitute two separate, smaller villages whose radii do not overlap, but the game may still treat them as a single, large village until the next restart, at which point it will perform its evaluation again and correctly identify them as separate villages.

When the placing or removal of blocks causes what-was-once-a-house to become no-longer-a-house, the game can fail to update this as well and still treat the door as if it should count as a house. Relogging used to fix this issue, but it may not work every time, and you may actually have to destroy and replace the door itself for it to stop being counted as a valid "house." Also, walking far enough away that the chunks are unloaded from memory will cause a reevaluation upon your return, correctly identifying only whatever houses remain.

Transparent blocks
It seems there are two kinds of transparent blocks. There are fully transparent blocks such as glass, torches, and fences, and then there are what I call "partially transparent" blocks such as slabs, stairs, and leaves, which are treated as transparent by the rendering engine (since they don't fill up the entire block space -- you can see through to what's behind them, so the game has to know to draw that part of the world anyway, even though there's a block between you and it. It knows to do this because the block that's in the way is flagged as a "transparent" block), yet they still block light from passing through (at least partially, as is the case with leaves or water), so they're still somehow considered opaque to the lighting engine, which appears to be where it counts. These partially transparent blocks will block the sunlight, and so will count as roof blocks. Fully transparent blocks still do not count. Water and lava (both flowing and source blocks) are partially transparent, and will count as roof blocks. Leaves count as roof blocks. Slabs and stairs count as roof blocks (and they don't even have to be upside-down.) I haven't tested every single block type so I don't have a full list of what does and does not count, but I know that torches don't count, fences don't count, chests don't count. The list goes on...

Cancelling out
There is a rumor going around, that two doors facing within a certain distance of each other will somehow cancel each other out, and neither one of them (or sometimes only one, depending on who you hear it from) will count as "houses." This is not true! It is nothing more than a misconception, a rumor, brought about by a misinterpretation.

The reason the doors on the left do not count as houses is not because they are facing each other, but rather because each one has exactly one space covered by a roof block on either side. So as you can see, it has nothing to do with the fact that they are facing each other!

Here is an image that demonstrates the overlap between the areas checked for roof blocks by each of the two doors. The door on the left checks above the pink blocks, and the door on the right checks above the blue ones (but only in the center row that's inline with the doors, clearly). Purple blocks represent the area where the two zones overlap, and these spaces are checked by both doors:



So looking at the blue door, it has one covered space on the left side, and one also on the right:



And likewise with the pink door:



Since these doors both have the same number of covered spaces on either side, they don't have an "inside" or an "outside," and therefore can't be called "houses." However If you put additional blocks behind these (or just move them back by one space) then they will be 6 blocks away from the far door, too far to be counted, but are still within range of the nearer door, creating the imbalance necessary to call them "houses":



With these additional blocks in place, the doors now are valid houses. This is my understanding, and the Village Info mod agrees!:



Transporting villagers
Using the gathered information above, there is an easier way to transport villagers, rather than pushing them in a minecart. Firstly find a village, and destroy all wooden doors except one to gather the villagers there. Then you can move the villagers by creating fake houses. As long as these meet the house requirements, the villagers will 'follow' the doors. The easiest way to do this is to place a door with 2 blocks stacked up behind it, removing the old door so that the villagers will follow and continuing the process again and again.

For a visual representation, watch the following video from 1:20 to 3:33.

Breeding and Population cap
A village's population is capped at a certain amount, based on available housing. Villagers will breed, provided there are at least two to begin with, until the number of villagers reaches but does not exceed 0.35 times the number of "houses" (defined above.) Residents of a village which has not yet reached its population cap will occasionally go into "love mode," indicated by animated hearts above their head (only visible if you have particle effects enabled, but still works even when you can't see it working.) Much like with farm animals, when two villagers are feeling "romantic" and can see each other, they will pathfind towards the other and "kiss" for a few seconds, after which a third, smaller ("baby") villager will spawn next to them. This new villager will be assigned a random profession (indicated by the style and color of its clothing,) not necessarily the same as either parent.

Breeding requires at least two villagers to begin with. If you are starting a village from scratch, or if yours was wiped out by zombies and there are no villagers left (or only one), then the only ways to acquire more are hauling them in from another village (such as by minecart, or leading them away at night with a trail of "fake" houses, destroying visited ones along the way to force them onward), curing infected zombie villagers, or using creative mode spawn eggs.

To cure an infected zombie villager, you must first travel to the nether and collect at least one blaze rod, to craft a brewing stand. Then you need to brew a splash potion of weakness, and craft a golden apple (the cheap one, that just takes nuggets to craft. Not the "enchanted" kind that uses entire gold blocks.) When you find a zombie villager, toss the potion of weakness at it, and then right-click it with the golden apple. The zombie will make a loud sizzling sound, emit orange swirly particles, and begin to shake violently. It takes a couple of minutes for them to convert, so go ahead and trap him somewhere, and make sure he won't burn in the sunlight. After a few minutes, he will turn into a regular villager, at which point you can let him out to roam the village or do whatever.

Finding zombie villagers in the first place shouldn't be all that difficult. About every tenth zombie is supposed to be a villager zombie, so it shouldn't take you too long (only about twenty zombies) to find two of them you can cure back into villagers and get the population booming by more..."natural" means. Additionally, when a villager is attacked by a zombie (any zombie) there is a chance (I think the wiki says it's 50% on normal difficulty, and 100% on hard) that they will turn into a villager zombie instead of just being killed.

Breeding indefinitely
There is also a bug or glitch where sometimes the villagers will continue to breed indefinitely without regard to the population cap.

Villagers need to be inside a sphere (radius = village radius) around the village center in order to breed. But the village counts only villagers that are inside a box (width, length = 2x village radius, height: 9 [always!]) around the village center. So with a sphere that can grow to any size, and a box that's always only 9 high, it should be apparent that there are some zones only covered by the sphere (above and below the village center).

You can simply reproduce/abuse this behavior by building 6 houses on the ground level (enough to set the villager limit to 2), drop 2 (or more) villagers into a 6 blocks deep hole, and leave one villager at the top to keep the houses "alive". The villagers in the hole will breed indefinitely, because they're not counted against the cap.

This nine blocks high is the same height as the range in which a villager can identify a house. I have not confirmed this, but perhaps these two are related -- that is to say that maybe a villager would be counted towards the cap if they are up to three blocks below or five blocks above (or exactly on) the level of the village center point.

Iron Golems
Golems will spawn near the center of a village if it has at least ten villagers and 21 houses. Additional houses beyond the 21st will make no difference as far as golem spawning is concerned, but you will need 29 of them, at least initially, in order to spawn ten villagers naturally (although after that you can cut them back down to 21 if you want to.) However, having additional villagers beyond the tenth will allow more golems to spawn, in increments of one golem for every ten villagers (so 0-9 villagers allows no golems to spawn, the cap is set at zero; 10-19 raises that cap to one, 20-29 raises it to two, etc.) This cap only limits the number of golems in a village at any one time; as soon as one is killed or leaves the village boundaries, a new one can spawn in its place immediately.

The golem spawning zone is a 16 x 16 x 6 area centered around the center point of the village. As long as all the conditions are met (10 villagers, 21 houses, golem cap not reached,) then each game tick (1/20 of a second) there is a 1/7000 chance the game will try to spawn a golem. Basically it picks a random number between 0 and 6999, and if it picks 0, then up to ten attempts are made to spawn a golem. A random spot is chosen inside the spawning zone, and if that spot contains a solid block with at least 2x2x3 space above it (including liquids -- golems can spawn in water, which is key to the iron farm designs linked below), then a golem is spawned there.

This is repeated up to ten times or until a golem is spawned, whichever comes first. Then, the check is repeated each game tick, until enough golems have been spawned to reach the cap, at which point spawning is put on hold until either a golem is eliminated or the cap is raised. This means that the average expected spawning rate (for an iron farm, for example,) if the golems are killed or flushed outside the village boundary quickly enough so that the cap is never reached and new ones are able to spawn in their place immediately, is roughly 10 golems (30-50 ingots if you're farming them) per hour.

Iron Farm
An iron farm is an artificial village (or several of them, spaced far enough apart to remain separate) in which golems are spawned and then either killed immediately, or moved to a holding cell (outside the village boundary, so that new ones can spawn in their place) for later killing. If you opt for the first method, you will either need to go AFK while camping out at the collection point, or else check back periodically to collect your items before they despawn. This necessity can be avoided by using the holding cell method, which allows the golems to collect while you are working nearby, and then you can harvest them all at once when you are ready so that you don't miss any drops.

There are several ways to build an iron farm, but the most effective versions seem to be the ones that utilize two floors in the central golem-spawning zone, and keep all doors and villagers outside the zone, either above and below the center or in an outer "ring" on the same level. This is in order to maximize the number of available spaces for the golems to spawn in, which in turn will reduce the number of failed attempts, and keep the spawning rate as high as possible. This is much more effective than simply increasing the villager count to raise the golem cap, which only matters for the few seconds between the time when a golem spawns and when it is flushed out or killed, anyway. To further increase your output rate, you can build several separate "modules" and bring the golems or their drops to a central collection area. Since golems are immune to falling or drowning damage, the available killing methods are lava or suffocation.

See the above link for tutorials on how to build an effective iron golem farm.

Zombie Sieges
At night, there is a chance that a zombie siege might occur. This is when a large number of zombies spawn in or near a village, attacking what villagers they can reach, crowding around and pounding on the doors of those they can't. On hard or hardcore mode, they can actually break down the wooden doors of the villagers' homes (this is true of all zombies, not just during sieges.) A zombie siege requires a village of at least 10 houses and at least 20 villagers.

Zombies in Seiges ignore light levels and the 24-block minimum distance from the player, but other than that, behave absolutely normal (IE, they won't spawn on halfslabs or glowstone or anything like that, need a 2x1x1 minimum space, etc.). They can also spawn INSIDE doors, making Iron Golem farms difficult to build on hard, as zombies beat down doors on hard (they'll attempt to beat them down on other difficulties, but not succeed- of course, you DID mention this). However, zombies won't spawn 128 blocks away from you, even though the siege is technically happening in the game code, so you're safe if you build it high up.

Issues
Platform sorting - something like this: