Of interest, the use of a single shared object also explains some other glitches and bugs (in vanilla), such as animals passing through fences as if they are not there (during normal gameplay, not during chunk reload, which is also caused by another issue), since each block stores their current state and only one state can be used at a time, so the client could modify it while the server is performing a collision check so it gets the wrong bounding box, as explained in more detail here (unfortunately this mod has not been updated past 1.6.2; I used the provided source to add the fixes to 1.6.4).
working on a passive mob zoo. Dug a 5000 block long tunnel to Mushroom Island. Put dirt along the floor, because I don't have a silk touch shovel. After several days of shepherding it along, finally got mycelium back at my base.
You do not need to use a shovel to get grass or mycelium; you could even use shears when they could get Silk Touch (unlike other tools they would only lose durability when used on their intended blocks so this was a popular exploit); this works for all blocks which can be harvested by hand (for the most part only stone and metal-based blocks require a tool). Given that you seem to be quite far into your world (almost every advancement) I'd be very surprised that you do not have Silk Touch on at least one tool (I always get it on a pickaxe so I can pick up Ender chests, which I use like backpacks; even in 1.9+ it is much easier to use them than Shulker boxes, given that the latter requires "beating" the game). Also, you can kill an Enderman while it is holding a block, including grass or mycelium, and it will drop it.
In previous discussions about this, I've read it is a bug in OptiFine.
This happens because Optifine reduces the light opacity of water blocks from 3 to 1 so it does not reduce light as quickly, and grass (as well as mycelium) blocks are hardcoded to only grow or survive under blocks with a light opacity of 2 or less, in addition to a light level of 4 or more (otherwise, it would grow underwater even in vanilla since a light opacity of 3 means that light level falls by 3 levels per block, so 4 blocks are needed to reduce it to less than 4):
The fix for this is pretty simple; I modified the code to specifically check for water and if it is a stationary source block it prevents grass from spreading or surviving (it can still spread/survive under water spreading from a source block as well as any type of flowing water block; the latter only exists for a brief moment (5 ticks or 0.25 seconds, the time it takes water to spread one block) as water actively spreads so there is little point in checking for it. For comparison, the time it takes for grass to die is the average time between block ticks, 68 seconds, while spreading is even slower (and more random) due to randomly choosing 4 blocks within a 3x3x5 area):
I do not know why sp614x has not bothered fixing this bug yet if it is that simple (based on this bug report they consider it to be invalid/WAI, not unlike like Mojang's stance on many bugs; despite the date this is a very old bug). I even added this fix to TMCW even though it only does anything when Optifine's clear water is used since I modified grass/mycelium anyway so they would not spread on coarse dirt and podzol (otherwise I'd need to make specially modified classes for my own use, and TMCW is mainly made for that reason anyway. The code I modified is not altered by Optifine so it is fully compatible regardless of the order of installation).
That all said, maybe this is a common occurrence, but I found a poorly-generated End ship. At least it was the bow and not the stern!
The trouble is that Mending can be fished out of water and traded by villagers. I like Mending. Think it's great. But, it horrifically debases diamonds and diamond equipment. It's probably too easy to get. I think perhaps it should be like Notch apples—only found in chests. Only. And, I think End city chests are the very best places for it, since there are no chests in Ocean Monuments, unfortunately.
The first issue is a bug which apparently affects all newer structures that use structure files instead of using code to place blocks one at a time; the game apparently forgets to record that a structure at the edge of generated chunks has not been completely generated yet so the next time you open the world and generate more chunks it fails to generate the rest of the structure; because of this, some server operators will use Dynmap or another real-time mapping utility to check for any partially generated structures and fly out to generate all chunks before shutting down the server.
In particular, this is one of those bugs that makes you shake your head and wonder why it hasn't been fixed yet (I've fixed some bugs myself with the help of bugfixes posted to bug reports - a few STILL aren't fixed yet - bugs which were reported long before 1.6.4 - itself more than 4 years old!):
If I mod MapGenEndCity.Start to set this.isSizeable = true when loading the city data from EndCity.dat, I can no longer reproduce the bug with either method.
("isSizeable" is a field which is only used by villages in 1.6.4, set to true if the village has at least 3 non-road pieces; for all other structures it is ignored, so they must have goofed up somewhere when adding new structures)
As for Mending, I personally think it should have been a replacement for renaming an item so the cost no longer increases - which is how I implemented my own version of Mending in TMCW - which solves both the balance issues of never needing any more resources or anvils as well as overpowered gear - no repairing maxed-out swords forever (or even once) - this also leads to the issues with the repair costs changes they made in 1.8, since this method would be completely broken if you only had to spend a couple levels to repair an item (prior to 1.8 you had to pay a charge for the durability restored, which can be as high as 17 levels for a diamond item, as well as a charge for each enchantment and the number of enchantments. In TMCW I removed the last charge so a Mending item costs about the same as a renamed item in vanilla (Mending adds 8 levels by itself, while 3 enchantments would add 6 levels and 4 enchantments 10 levels), while a non-Mending item is cheaper with the cost increasing by 2 levels per repair so you can get some decent use out of most items.
While you can get it from villagers (for the same cost as any other level 1 enchantment, which is 5-17 emeralds) it is much harder to get enchantments since they have a 1.75% chance of unlocking a single enchanted book trade per final trade - and it can be replaced with a cheaper trade even as the enchantment quality decreases. And you can't make an auto fishing farm to get them (or anything else other than fish, if they even work at all since fishing mechanics, not just what you can catch, were changed in 1.7).
Of course, prior to 1.8 you can buy any type of diamond equipment from blacksmiths, making mining for diamonds to maintain your gear just as obsolete (in some cases you may have to use partially damaged tools, as I have to do with my Sharpness V, Knockback II, Unbreaking III sword, which costs just one level too much - unless you wear out the sacrifice by 60 durability) - I've saved thousands of diamonds since I started trading (not that I need to since I get far more than I need even without using Fortune, which I only used for short time, and mining in one of the most inefficient manners in terms of diamonds found per hour and blocks mined per diamond).
Then again, TMCW fixes that by nerfing diamond gear and adding a new tier, amethyst, which can only be obtained by mining (3-8x rarer than diamond) or the very rare mob drop; it also exploits the durability costs to make them extremely expensive to repair (3x the durability of diamond but less durability per repair since you can't use new items, only single units, which restore 25% durability each. Both the rarity and repair costs, which can be up to 49 instead of 39 levels, were balanced around my playstyle and I still find enough amethyst and get enough XP to increase them even more if I wanted to).
For a while, I tried to take screenshots every 100 MC days. But after day 3,300 I stopped keeping tabs after season 3 started. I like the concept though; it gives a sense of what my in-world age might be.
Since you mention it In my first world I'm actually older than my real age (if you assume that a Minecraft year is 365 days, since a month (moon phases) is only 8 days long); I've spent 8,486 in-game days in the world (since I play in 1.6.4 F3 does not show days but I added a small GUI mod that shows it in the inventory screen) and 116.27 real-time days or 2,790 hours of playtime over 801 sessions (an average of 3.48 hours per session, 24.4 hours per week, and 1,272 hours per year; I nearly always play once per day so sessions is the same as days):
I don't know which is more impressive, the time I've spent in this world - nearly all spent caving, the score that I've accumulated since my last death (the stats say that I've died 12 times but I know it is more because prior to 1.6 the game did not record deaths for some reason), without ever using XP farms (I recently saw a video by AntVenom that claims 5.76 million XP per hour using Ender Dragons), or the amount of resources that I've mined/collected - approaching 2.5 million, including more than 11,000 diamonds (10,000 ore; only some was mined with Fortune) and nearly half a million iron (including enough iron from chests to more than offset what I've used, which currently is only for anvils), or the equivalent of well over a thousand dungeons worth of moss stone (about 48 per dungeon) and 440 mineshafts worth of rails (about 300 per mineshaft).
Also, while I have been playing on this world for the entire 4 1/2 years since I created it that is because I played on other worlds, not because I took breaks from the game, which I've played virtually every single day with the only breaks, if you can even call them breaks, when I spent time exclusively working on a mod; I recently estimated my total playtime to be well over 5,000 hours. My most recent "other" world hit over 1,600 in-game days with 22.46 real-time days/539 hours of playtime over 140 sessions (days):
Here are renderings of most of my worlds (I've since expanded World1 a bit more than shown; my most recent world was TMCWv4, which despite appearances was not created in 1.7+ as I used my own mods to add new biomes and other changes, some of which I also use in my first world); the time spent playing in World1, TMCWv1, TMCWv3, and TMCWv4 (these are the worlds I have stats for) together exceed 4,000 hours or 12,000 in-game days:
And yes, all of these worlds have been played on more or less the same way; the only significant change to my playstyle since I started playing was that I started trading for diamond gear about two years ago; World1 and TMCWv4 are the only two worlds where I've actually traded, the latter to get my mod's version of Mending (which I'd also do in 1.9+; unlike 1.9 my version replaced renaming an item to keep the cost down, which IMO is a much more balanced way to do it as you can't repair overpowered gear (do you really need every enchantment on one item) and need to spend more XP and also resources to repair items).
As for what I spend most of my time doing I recently found this huge cave in my first world, part of an even larger cave system, including 58 caves within a single chunk, the largest single cave system that I've found in this world so far, as well as the single chunk with the highest air volume excluding ravines (this is more than is ever possible in 1.7+, where the maximum "size" is 14 with up to 56 caves/tunnels, but the chance of a size 14 cave system is only one in 23625 chunks, and the chance of 4 tunnels per node is only one in 7.2x10^16, and 1.7x10^21 overall - whereas Java's RNG only has 2.8x10^14 states and even a full 64 bit RNG has only 1.8x10^19; for comparison, a cave system with at least 58 caves is a one in 213919 chunk chance in 1.6.4). The cave shown may be even larger without an ocean overhead, limiting it to around y=45:
To the east of the castle, I went spelunking, exploring an as-of-yet unnamed triple chasm leading from the surface of the extreme hills biome (the Olympian Mountains) down to the lava layer.
There, I found a rare sight, twin emeralds! Since only one emerald can generate per chunk and only in an extreme hills biome, this is a pretty rare occurrence. However, I have actually seen three together. Unfortunately, that was in a hardcore world, and I didn't take a screen shot, and have since died.
The game actually generates 3-8 emerald ore per chunk, all as single blocks (3-8 attempts; unlike other ores the number of attempts at "veins" varies), making it more common than diamond (diamond would actually be a bit more common if it were higher up so none was lost in or below bedrock); in any case two or more ores adjacent to each other are pretty rare since each attempt only has a 1 in 7168 chance of choosing a random block between layers 4-31 (16x16x28). I recently found one myself although I did not know until I'd mined one so no screenshot; I do not recall seeing three before.
Also, I'd be hard-pressed to name any caves or ravines that I come across, given that I explored 182 ravines in my most recent world (I kept track of everything I found, a total of 570 features and structures, most of them underground) and well over a thousand in my first world, and I almost never see them again after I explore them, although one ravine that I found was noteworthy enough to always remember - it was part of a complex of 7 intersecting ravines, the most that I've ever found (helped by the fact that it was vastly larger than any normal ravine in vanilla, otherwise I've found 5 before, including twice in vanilla, and the seed "Digital" in 1.6.4 has 8 near spawn).
Also, I recently came across something interesting myself - there were several creepers and skeletons in a ravine and the skeletons started shooting at me, then themselves, and when I got down to the bottom a few minutes later I found this:
Three music discs all at the same time; luckily none of the creepers blew up (there was only one skeleton left).
I was using your mod. Did you update to Version 5 and have a download link yet?
I haven't even considered a new version yet, and currently the only changes I'd consider would be changing the way caves generate to that in the first version, where instead of being completely random large cave systems generated aligned to a grid with a small offset,, which would make it much easier to control the way they generate when more variation is applied (partly for this reason TMCWv4 doesn't even modify cave systems with a "size" of 20 or more, which was the average size of "large" cave systems in TMCWv1) as well as simplify code (if large cave systems, large caves and ravines, and mineshafts generated to the same grid but with different offsets then there is no need for all the code that excludes mineshafts from them so they don't generate on top of each other, the complexity of this code makes it error-prone and harder to update; moreso, similar code for caves themselves already takes up a third of the entire time spent generating them).
If anything, once I'm done with my current world (I only have one more type of cave to find, though I won't necessarily just stop then) I'll probably spend some time on my first world again; last time I spent 15 months playing on it, more than doubling the playtime spent on it from 39 to 102 days (even the first number is double the time I've spent in my current world).
This week, I found a Diamond armored zombie on Normal mode. I was hunting mobs and all of a sudden found the diamond armored zombie.
I can tell that you are using my mod because of the tools; while still uncommon diamond armored mobs are nowhere near as rare as they are in vanilla, where they have a one in 15551 chance at the maximum regional difficulty. For comparison, in my mod the chance is one in 1667, or about 9 times more likely; even the chance of amethyst is one in 5000 (1250 for either, which corresponds to the chance of diamond in vanilla), all on Normal (on Hard the chance of armor is 50% higher, thus the chances are one in 1111, 3333, and 833 respectively; on Easy the chances are all half as high, which still means that even amethyst is 50% more likely than diamond in vanilla).
Also, in vanilla they are effectively even rarer unless you stay in the same area, particularly since 1.8 because of the changes made to regional difficulty (it has no effect at all on Easy, so armored mobs never spawn where before they could on even the first day*, and otherwise it has no effect until you spend enough time in the area on Normal. The value displayed in the debug screen does not mean much as it is internally scaled from 2-4 to 0-1 so only that small range is relevant; the full range is 0.75-1.5 on Easy, 1.5-4 on Normal, and 2.25-6.75 on Hard). Note that in any case the chances of different tiers of armor are independent of difficulty.
*This is because the first day is a full moon, which adds to the difficulty factor; I recently updated my mod so Day 0 is a new moon so the factor truly starts at 0; the difference between /time set 18000 (midnight of Day 0) and /time set 114000 (midnight of Day 4) is quite noticeable (in a new world as once the total time played gets high enough moon phase no longer has any effect except for slime spawning in swamps. On Normal Day 4 is halfway to the maximum difficulty on Easy (the time factor is negligible at this point as it takes 100 hours of playtime).
I'm of the opinion any tool you use to negate or add functionality outside the basic game mode could be seen as technically cheating, but as you point out its whatever you feel comfortable with; I believe you use AMIDST (as do I) and that would carry the same branding as using Minutor. I only use Minutor when I'm hunting specific ores or on the odd occasion to locate dungeons. But I have no issues with that
Incidentally, whilst mining diamonds near an extreme hills biome, I came across this natural configuration of emeralds ore; wonder what you thought of its rarity?
I do use AMIDST, although I only use it to find a seed that spawns you on a good-sized landmass, and since most of my worlds have been modded it isn't good for much else, such as the exact biomes or locations of structures (in several of my worlds I reused the seed for my first world for this reason). Another thing that I've done is use MCEdit to copy over my base from a previous world so I didn't have to spend any time building it; most of the worlds that I did this in were short-lived "test" worlds although I did play one for a couple months (in another such world, which I made to explore an extremely large cave system I found with a search program, I built a simple base and got my gear in Creative).
As for finding three emeralds next to each other, I've only ever found two on several occasions (out of 1,880 emerald ore mined in my first world), although I suppose it is more common when branch-mining since any emerald that you find can be completely surrounded by stone and any of those stone could be replaced with emerald. Since emerald ore generates over 28 layers (4-31; 7,168 blocks total) with an average of 5.5 attempts (3-8) per chunk this means that there is a 1 in 1303.3 chance of a block being emerald ore; two adjacent blocks is the square of that and three is the cube (1 in 1.7 million and 1 in 2.2 billion respectively). However, an average of 4.5 additional attempts are made and each block can be directly adjacent to up to 6 other blocks (26 if you count a 3x3x3 cube around the center) so the chance is higher, but still very rare, especially when counting all chunks across the entire world, as well as other ores displacing emerald, which generates after everything else.
As for myself, with a combination of using Minutor to locate deposits, and my trusty Fortune III pickaxe i've spent the last 60-70 MC days mining diamonds for a project i'm working on. I inevitably mined coal, redstone, lapis and the other ores as i found them (if they are there i mine them), but ended up mining just over 2000 diamond ore yielding around 4200 ingots.
That's a bit insane; for comparison, I've averaged only about 1.2 diamond ore per Minecraft day in my first world, mining a total of 8,912 ore over 7,470 days, so you've found it about 26 times faster (of course, many players would call using a tool like Minutor cheating, as it is basically the same as x-ray, although it depends on whether you think it is; I would never use it myself to locate ores, or caves).
That said, I've calculated that with normal branch-mining (1x2 tunnels at y=11 and spaced every 4 blocks, based on figures given here) you can find around 32 diamond ore per hour, or about 8 times faster than the rate at which I've found it by caving (3.63 ore per hour over 2,456.9 hours, with perhaps 90% of the time spent caving). Because of this, I've never felt the need to get Fortune as soon as possible since you don't need more than about half a stack of diamonds (19 for armor (no helmet), 3 for pickaxe, 2 for sword, 2 for enchantment table = 26; shovels and axes can wait until I have more).
In other news, I've essentially finished TMCWv4; yesterday I played on it as a test run and will probably start a new world with it within the next day, if not today.
Here is a image of all of the types of caves and cave systems that I've added:
Several maps of special caves only (excluding larger than average circular rooms), all caves, and all caves and mineshafts; this was centered far away from the origin as otherwise there would be no special caves within 512 blocks:
On average a fully zoomed-out map (2048x2048 blocks) will have the following, excluding the near-origin area; such an area takes me 5-6 months to explore:
1 giant cave region (1 every 16384 chunks)
2 colossal cave systems (1 every 8192 chunks)
3 network cave regions (1 every 5461 chunks)
4 vertical cave systems (1 every 4096 chunks)
4 maze cave systems (1 every 4096 chunks)
4.8 combination cave systems (one every 3400 chunks)
6.4 of the largest type of single cave (1 every 2560 chunks)
6.5 of the largest type of ravine (1 every 2500 chunks)
6.9 circular room cave systems (1 every 2360 chunks)
6.9 ravine cave systems (1 every 2360 chunks)
34.1 small clusters of special caves (1 every 480 chunks)
34.4 larger than usual ravines (1 every 476 chunks)*
126 larger than usual caves (1 every 130 chunks)*
240 of all types (1 every 68.3 chunks)
*These are not guaranteed to be any larger than vanilla-size caves/ravines. Vanilla large caves and circular rooms also have a larger size variation.
There will also be an average of two strongholds (one every 8192 chunks), 108 abandoned mineshafts (one every 152 chunks, about 2/3 the vanilla 1.6.4 frequency since they can't generate too close to special cave systems or dense areas of normal caves; this is still about 1.5 times more common than since 1.7, and they are not rarer close to the origin, but within 512 blocks they are smaller), 400 dungeons (one every 41 chunks, about the same as vanilla 1.6.4, which is about 2.5 times more common than since 1.7), including 21.8 double dungeons (one every 750 chunks; these are 5% of dungeons in most areas except network cave regions, where the chance is 20%). Normal cave frequency is one size 1-39 cave system every 20 chunks, the same as vanilla 1.6.4 (excluded from around special cave systems); several parameters (width, curviness, chance of larger caves, caves deep down/above sea level) are varied over 16x16 chunk regions, with 25% of these regions being unaltered.
For many of these, such as strongholds and regional caves, their frequencies are exact since they generate to a 64 or 128 chunk grid with a random offset within each region, so a map aligned to the grid will always have exactly 1-4 cave systems per map; the grid itself has a random offset so they are unlikely to align (maps are centered around 0,0 plus a multiple of their scale width). Circular room and ravine cave systems use a 32x32 chunk grid with the type alternating between regions; their frequency is less than 1/2048 since they can collide with other types of special cave systems, which prevent them from generating (it is impossible for colossal cave systems, regional caves, vertical cave systems, maze cave systems, and strongholds to ever collide since they all use the same grid with offsets chosen so they can never overlap). Combination cave systems generate in areas where there are no caves, ravines, or mineshafts within a 3 chunk radius, and cave clusters (3-6 caves) similarly generate in empty 2 chunk radius areas (hence, unlike the others they add to the underground instead of displacing normal caves).
A surface rendering of a 2048x2048 block area centered around the origin; seeds that contain every biome within this area are likely as rare as in 1.7+ due to the sheer number, even as most biomes can generate anywhere and "climate zones" only change the frequencies of hot/cold extremes:
Same map with biomes labeled:
A list of all biomes by ID:
Vanilla 1.6.4 biomes:
3: Extreme Hills
5: Winter Taiga (renamed from Taiga)
8: The Nether (renamed from Hell)
9: The End (renamed from Sky)
10: Frozen Ocean
11: Frozen River
12: Ice Plains
13: Ice Mountains
14: Mushroom Island
15: Mushroom Island Shore
17: Desert Hills
18: Forest Hills
19: Taiga Hills
20: Extreme Hills Edge
22: Jungle Hills
23: Hilly Plains
24: Hilly Plains Hills
25: Forest Mountains 1
26: Forest Mountains 2
27: Extreme Forest Mountains
28: Mountainous Desert
29: Mountainous Desert Hills
30: Tropical Swamp
31: Mixed Forest
32: Mixed Forest Hills
34: Mega Tree Plains
35: Spruce Hills
37: Mesa Plateau
38: Mesa Edge
39: Birch Forest
40: Birch Forest Hills
41: Mega Forest
42: Mega Forest Hills
43: Snowless Taiga
44: Snowless Taiga Hills
45: Volcanic Wasteland
47: Frozen Lake
48: Ice Hills
49: TMCW Mega Taiga
50: TMCW Mega Taiga Hills
51: Big Oak Forest
52: Big Oak Forest Hills
53: Extreme Mountains
54: Winter Forest
55: Winter Forest Hills
56: Winter Forest Mountains
57: Desert Beach
58: Swamp River
59: Jungle River
60: Desert River
61: Mesa River
63: Savanna Plateau
64: Savanna Mountains
65: Extreme Savanna Mountains
66: Roofed Forest
67: Roofed Forest Hills
68: Mega Taiga
69: Mega Taiga Hills
70: Mega Spruce Taiga
71: Mega Spruce Taiga Hills
72: Flower Forest
73: Ice Plains Spikes
74: Mega Mixed Forest
75: Gravel Beach
76: Volcanic Wasteland Beach
77: Poplar Grove
78: Poplar Grove Hills
79: Desert M
82: Meadow Forest
83: Rocky Mountains
84: Rocky Mountains Edge
85: Rocky Mountains Peak 1
86: Rocky Mountains Peak 2
87: Rocky Mountains Summit
88: Great Forest
89: Great Forest Hills
A list of all "regular" biomes (excluding variants like Forest Hills):
1. Hilly Plains
2. Forest Mountains
3. Mountainous Desert ** &
4. Tropical Swamp ** &
5. Mixed Forest &
7. Mega Tree Plains
8. Mesa ** &
9. Birch Forest
10. Mega Forest
11. Snowless Taiga &&
12. Volcanic Wasteland
13. Lake **
14. TMCW Mega Taiga &&
15. Big Oak Forest
16. Winter Forest * &&
17. Savanna ** &
18. Savanna Plateau ** &
19. Savanna Mountains ** &
20. Roofed Forest
21. Mega Taiga &&
22. Mega Spruce Taiga &&
23. Flower Forest
24. Mega Mixed Forest
25. Poplar Grove
26. Desert M ** &
28. Rocky Mountains &&
29. Great Forest
* Excluded from "hot" climate zones
** Excluded from "cold" climate zones
& More common in "hot" climate zones
&& More common in "cold" climate zones
Special biomes (only generate under special circumstances and are more unique than X-hills):
1. Mushroom Island
1. Spruce Hills (in Mega Tree Plains)
2. Frozen Lake (in cold climate zones, excluding small sub-biomes in other biomes; contains small islands with various other snowy biomes)
3. Ice Hills (in Ice Plains)
4. Ice Plains Spikes (in cold climate zones, also as a sub-biome in Ice Plains)
5. Gravel Beach (next to snowy biomes)
6. Oasis (in Desert M)
7. Meadow Forest (in Meadow)
(the entire changlog for TMCWv4 is a 48 KB .txt file)
Just a quick point of clarification, if I may. When you say,
Do you mean that a given cave system will have nodes that are typically around 5 blocks wide and 150 blocks long? I cannot say that I've ever seen nodes that are that long on a normal basis; I am assuming that every time the cave turns, it's a different ellipsoid node, and those are (guessing) about every 20 blocks or so.
The length of a cave is set to a random number between 85 and 112:
/** The number of Chunks to gen-check in any given direction. */
protected int range = 8;
int var26 = this.range * 16 - 16;
par16 = var26 - var25.nextInt(var26 / 4);
That is, var26 is set to 112 then a random value between 0 and 27 is subtracted from it; "range" also defines the maximum size of any structure since the game scans a radius of that many chunks around each chunk being generated so it can determine if any caves or structures generate nearby, with any parts that intersect the current chunk being placed in it.
Another variable is then set to 1/4 to 3/4 of the length and is used to determine when a cave should branch into two separate caves, which is on average at half the length:
Note that branches do not branch again because the game sets their "width" to a value between 0 and 1 and only caves with a width greater than 1 can branch (par12 > 1. The actual width of a cave is this value plus 1.5 then multiplied by 2 for a minimum width of 3 blocks when par12 is 0; a sine function is also used to vary the width across the length of a cave so it reaches a maximum at half the length, which is 3 + par12 * 2).
Since the length averages 98.5 and the branch point averages half this the length of the main cave averages 49.25 and each branch also averages 49.25 for a total length of 147.75 blocks, around 150 when adding the minimum radius of 1.5 blocks to each end. However, most caves only travel 2-3 chunks from the center of a cave system since they are not straight, although a few do extend up to 100 blocks from the center; which are usually branched caves (for branched caves the branches make right-angle turns so they are less likely to extend further out unless the branches curve back):
Incidentally, what you see are the individual cave systems which make up the largest and densest cave system in my first world; I separated them by multiplying the distances between caves by 7, so the two closest cave systems neat the center are 7 chunks apart instead of 1:
Here is an analysis I made which includes the size of each cave system; the total number of caves depends on the number of circular rooms and the number of additional caves each one adds (a total of up to size * 4 caves can generate, or up to 156 caves for the largest possible single cave system, which will be so dense that there is basically nothing remaining in the lower levels):
Seed is -123775873255737467
Center is -816, -1040 (chunk -51, -65)
Radius is 4 chunks (circular)
Version used is <= 1.6.4
Size 26 cave system at -816, -1104; total number of caves: 37
Size 3 cave system at -784, -1104; total number of caves: 3
Size 24 cave system at -832, -1072; total number of caves: 34
Size 2 cave system at -768, -1072; total number of caves: 2
Size 23 cave system at -816, -1056; total number of caves: 39
Size 20 cave system at -800, -1024; total number of caves: 31
Size 3 cave system at -784, -1024; total number of caves: 3
Size 13 cave system at -800, -992; total number of caves: 18
Size 4 cave system at -864, -976; total number of caves: 7
Initial number of caves: 118
Total number of caves: 174
Additional circular room caves: 56
Number of small caves: 171; average width is 6.04
Number of large caves: 3; average width is 12.18
Number of circular rooms: 33; average width is 10.38
Additional caves per circular room: 1.69
Average altitude: 31.25
Percentage of caves on layers 0 to 9: 21.83
Percentage of caves on layers 10 to 19: 22.99
Percentage of caves on layers 20 to 29: 12.07
Percentage of caves on layers 30 to 39: 10.9
Percentage of caves on layers 40 to 49: 8.04
Percentage of caves on layers 50 to 59: 6.89
Percentage of caves above layer 59: 17.24
For comparison, this is the densest cave system that I've ever seen, with 113 individual caves generated in only two chunks adjacent to each other; with cave systems this dense the effective length is far less than if every cave generated without overlapping another cave:
Seed is -7978171164721551672
Center is 1584, 1904 (chunk 99, 119)
Radius is 4 chunks (circular)
Version used is <= 1.6.4
Size 17 cave system at 1536, 1872; total number of caves: 24
Size 5 cave system at 1552, 1904; total number of caves: 5
Size 30 cave system at 1584, 1904; total number of caves: 43
Size 1 cave system at 1536, 1920; total number of caves: 1
Size 39 cave system at 1584, 1920; total number of caves: 70
Size 2 cave system at 1536, 1936; total number of caves: 2
Size 1 cave system at 1568, 1936; total number of caves: 3
Size 6 cave system at 1616, 1952; total number of caves: 9
Size 5 cave system at 1632, 1952; total number of caves: 8
Number of cave systems: 9
Initial number of caves: 106
Total number of caves: 165
Additional circular room caves: 59
Number of small caves: 158; average width is 6.01
Number of large caves: 7; average width is 10.72
Number of circular rooms: 33; average width is 11.71
Additional caves per circular room: 1.78
Average altitude: 28.56
Percentage of caves on layers 0 to 9: 22.42
Percentage of caves on layers 10 to 19: 30.31
Percentage of caves on layers 20 to 29: 9.09
Percentage of caves on layers 30 to 39: 9.69
Percentage of caves on layers 40 to 49: 9.09
Percentage of caves on layers 50 to 59: 5.45
Percentage of caves above layer 59: 13.94
Also, this shows how I set the length and other variables for the largest caves in TMCW:
private void generateLargeCave(int chunkX, int chunkZ, int type)
// Type 0 and 2 have a large size range and small average size while Type 1 has a small size
// range and large average size
if (type == 1)
// Length ranges from 224-336 and width from 6 to 36
length = 224 + this.largeCaveRNG.nextInt(113);
width = this.largeCaveRNG.nextFloat() * 12.0F + this.largeCaveRNG.nextFloat() * 6.0F + 6.0F;
if (this.largeCaveRNG.nextBoolean()) width *= ((float)length / 224.0F);
// Length ranges up to 336, averages about 193
length = Math.min(112 + this.largeCaveRNG.nextInt(this.largeCaveRNG.nextInt(336) + 1), 336);
// Size of Type 0 caves is varied over 16x16 chunk areas, average width is 3 in both cases
// (multiplier / 8 + min width). Type 2 always uses values for a wider size range
if (type == 0)
this.caveRNG.setSeed(((long)((chunkX + this.caveOffsetX + 12) / 16) * 341873128712L + (long)((chunkX + this.caveOffsetZ + 12) / 16) * 132897987541L) * this.seedMultiplier);
width = this.largeCaveRNG.nextFloat() * this.largeCaveRNG.nextFloat() * this.largeCaveRNG.nextFloat();
if (type == 2 || this.caveRNG.nextBoolean())
width = width * 8.0F + 2.0F;
width = width * 2.6666667F + 2.6666667F;
// Width ranges up to 40; scaled up with length
float widthMultiplier= (this.largeCaveRNG.nextFloat() * (float)length / 96.0F + (float)(672 - length) / 672.0F);
if (widthMultiplier > 1.0F) width *= widthMultiplier;
width *= (this.largeCaveRNG.nextFloat() + 1.0F);
double x = (double)(chunkX * 16 + 8);
double y = (double)(this.largeCaveRNG.nextInt(16) + 15);
double z = (double)(chunkZ * 16 + 8);
// Increases average depth of larger caves (min elevation 25 at the maximum width of 40)
if (y < 20.5D) y += (double)((width + 0.5F) / 4.0F);
int branchPoint = this.largeCaveRNG.nextInt(length / 4) + length / 2;
float direction = this.largeCaveRNG.nextFloat() * 6.283185F;
// Curviness varies from 0.0833 to 0.15 depending on length
float curviness = (float)length / 3360.0F + 0.05F;
// For Type 1 generates three caves from the starting point; a large main cave and two smaller branches
// at 90 degree angles, each of which branch again (thus, these caves are equivalent to a single normal
// cave that is up to 462 blocks long; combined length of the main cave and all branches is up to 924
// blocks). Type 0/2 branches away from the start point like normal caves.
if (type == 1)
int startPos = length - branchPoint;
this.generateLargeCave2(this.largeCaveRNG.nextLong(), x, y, z, width, direction, (this.largeCaveRNG.nextFloat() - 0.5F) / 4.0F, startPos, length, 0, curviness);
length += startPos;
startPos = length / 2;
branchPoint = startPos * 3 / 2 + this.largeCaveRNG.nextInt(startPos / 4);
this.generateLargeCave2(this.largeCaveRNG.nextLong(), x, y, z, (this.largeCaveRNG.nextFloat() * width + width) / 3.0F, direction + 1.570796F, (this.largeCaveRNG.nextFloat() - 0.5F) / 4.0F, startPos, length, branchPoint, curviness);
this.generateLargeCave2(this.largeCaveRNG.nextLong(), x, y, z, (this.largeCaveRNG.nextFloat() * width + width) / 3.0F, direction - 1.570796F, (this.largeCaveRNG.nextFloat() - 0.5F) / 4.0F, startPos, length, branchPoint, curviness);
this.generateLargeCave2(this.largeCaveRNG.nextLong(), x, y, z, width, direction, (this.largeCaveRNG.nextFloat() - 0.5F) / 4.0F, 0, length, branchPoint, curviness);
This is the main loop which decides what to generate based on the value returned by "validCaveLocation", which is initialized with values corresponding to various types of caves (by pre-calculating data I took 2-3 seconds off the time taken to generate the initial 625 chunk world spawn area, since to determine whether to generate a certain type of cave it scans a 6 chunk radius around a chunk and many of these points will overlap with adjacent chunks; a 6 chunk radius (13 diameter) is around 133 chunks times about 491 chunks (12 chunk radius gen-range, 25 diameter) times 625 chunks is 40.8 million iterations of the cave spawn check code, reduced to about 672,000 by pre-calculating it):
public void generate(int chunkX, int chunkZ, byte data)
this.chunkData = data;
this.chunk_X = chunkX;
this.chunk_Z = chunkZ;
this.chunkX_16 = chunkX * 16;
this.chunkZ_16 = chunkZ * 16;
this.chunkCenterX = (double)(this.chunkX_16 + 8);
this.chunkCenterZ = (double)(this.chunkZ_16 + 8);
this.noiseGen.setSeed((long)chunkX * 341873128712L + (long)chunkZ * 132897987541L);
for (int x = -12; x <= 12; ++x)
for (int z = -12; z <= 12; ++z)
int x2z2 = x * x + z * z;
if (x2z2 <= 145)
int cx = chunkX + x;
int cz = chunkZ + z;
// Excludes chunk at 0,0 since the seed is always 0 regardless of world seed
if (cx != 0 || cz != 0)
long chunkSeed = ((long)cx * 341873128712L + (long)cz * 132897987541L) * this.seedMultiplier;
int genCaves = this.validCaveLocation(x, z);
// 0 = nothing, -1 = colossal cave systems, 1 = normal caves and ravines, 2 = special
// cave systems(1), 3 = regional caves and ravines and large caves, 4 = only ravines
// and large caves, 5 = only normal caves and ravines, 6 = special cave systems(2).
if (genCaves == 2 || genCaves == 6)
if (x2z2 <= 65)
this.generateSpecialCaveSystems(cx, cz, genCaves == 2);
else if (genCaves > 0)
if (genCaves == 3)
this.generateCaves(cx, cz, x2z2 <= 38, genCaves);
this.generateRavines(cx, cz, x2z2 <= 18, genCaves < 5);
else if (genCaves < 0 && x2z2 <= 101)
Incidentally, I also fixed several bugs which are present in vanilla, such as what happens when you use the seed "107038380838084", which happens because vanilla multiplies the chunk coordinates by a couple random numbers based off the world seed and they can be zero, meaning that the corresponding coordinate has no effect on the chunk seed. Instead, I use two constants (taken from ChunkProviderGenerate, also used during village/temple generation to set a chunk seed) and a multiplier which can never be zero.
Another bug I fixed is MC-7200, which causes caves, more noticeably ravines, to sometimes clip off at a chunk border; related, I replaced the vanilla water check code with my own which checks for water on a per-block basis (in vanilla this also causes chunk walls, as well as water not flowing into caves, when water goes right up to a chunk boundary since the cave generator can only see what is in the current chunk. The latter still occurs in TMCW but I added a post-processing step during chunk population that checks for this and replaces full-height stationary water (so as to exclude water springs) adjacent to air with ground blocks).
Vanilla also uses a seriously flawed method to set the chunk seed which results in as many as 1 in 3 chunks having the same seed as chunks at sign-reversed coordinates (an example can be seen in the first link above; in my first world 1 in 6 chunks are affected and I've actually explored many of the same caves, ravines, mineshafts, although I don't recall finding a cave and realizing that I'd explored it before since other caves are different and obscure them. This also affects other structures but aside from mineshafts it is not as apparent due to how they are placed), which is impossible with the way that I set it. Here is a map showing all chunks that match within a 129x129 chunk area entered around the origin; the x and z values are the coordinate multipliers for the given seed (my first world's seed):
long seedX = rand.nextLong();
long seedZ = rand.nextLong();
System.out.println(" Seed: " + seed + "; x: " + seedX + ", z: " + seedZ);
int range = 64;
int totalChunks = (range * 2 + 1) * (range * 2 + 1);
int matchingChunks = 0;
for (int z = -range; z <= range; ++z)
for (int x = -range; x <= range; ++x)
long chunkSeed1 = ((long)x * seedX) ^ ((long)z * seedZ) ^ seed;
long chunkSeed2 = ((long)-x * seedX) ^ ((long)-z * seedZ) ^ seed;
if (x != 0 && z != 0 && chunkSeed1 == chunkSeed2)
System.out.println(" Percentage of chunks that match: " + (float)((double)matchingChunks / (double)totalChunks * 100.0D));
Here is a map from an actual world with only caves and ravines in matching chunks generated, which also includes easy-to-see examples of how much caves spread out from their starting point; for example, the large lava-filled cave seen near the upper-right originates from a single circular room, along with 3 other caves:
I've been working on adding more features to my mod "TheMasterCaver's World; among other things, I just made what I call "Rocky Mountains", a mountain biome largely made up of exposed stone, which is a mix of normal stone and andesite, and has snow-capped peaks (not due to elevation but because it is a separate biome):
As seen in Unmined (it renders exposed stone as green-brown depending on elevation); the highest peak reaches y=166 (minus one for snowcover) with snow mostly above cloud level:
(the river on the right gets cut into since I temporarily disabled rivers from generating through the biome; I've considered making them an exception to rivers always cutting down to sea level, making valleys instead)
A couple screenshots from in-game; the peak use snow blocks as ground cover (e.g. dirt/grass) so it is clearly visible from the side (otherwise you only see a thin line of snow):
Also, if you look closely you can see where grass transitions to coarse dirt, then to stone at lower elevations; the chance of placing either block depends on elevation with all-grass transitioning to all-stone over a 15 block change in elevation. There are no exposed ores (dirt, gravel, coal) because I made them generate depending on the minimum elevation within a 2x2 chunk region so they are not exposed; for example, at y=64 about half as much generates over half the height range; y=96 3/4 as much and the normal amount and range at or above y=128.
I'm also considering adding a new variant of spruce tree instead of the vanilla trees that you see.
This is the most complex biome that I've made so far in terms of how many different biomes I used to make it; there are a total of 5 different biomes arranged in rings, with each ring towards the center having a higher height value, which forces the game to make a smoothly rising mountain, something which is otherwise very difficult to get.
I've also added a "meadow" biome and a variant of forest that generates within it (similar to normal plains and forest); it is similar to plains but with occasional trees (5% chance per chunk, as with 1.10+ plains), which are a new variant of large oak trees, and a new variant of village, which generates with spruce wood planks and stairs, all-bark spruce logs, stone brick in place of cobblestone, and cracked stone bricks in place of gravel:
I based these trees on big oaks but instead of the spherical leaf clusters they use the normal small tree shape; there is also another new type of tree which is 2-3 of these leaf clusters stacked vertically, which generates in the "meadow forest" variant along with these. Both trees can be grown from oak saplings in their respective biomes, similar to the other types of trees that I've added (they cannot be grown anywhere else, same for many of the others)
(this was taken from a Superflat world I made for testing)
This is the 5th variant of villages that I've added (plains, savanna, desert, ice plains, meadow)
I've also added another new type of cave system, which mostly consists of caves which are mainly vertical, in contrast to the mainly horizontal caves you normally find:
From left to right are circular room, ravine, and vertical cave systems, the first two which I added recently, along with several others:
Note the scale in the lower-left; the maximum span of any of these is only around 100 blocks, similar to individual vanilla-type cave systems, which seem much larger due to the combined length of all of the passages, which can be many kilometers long (a typical "large" cave system in vanilla has perhaps 30 caves each averaging 150 blocks long for 4,500 blocks of passages. A ravine cave system averages 95 segments (a single "cave" is 2-4 segments), each averaging 30 blocks long for 2,850 blocks and a vertical cave system averages 54 caves, each averaging 40 blocks long for 2,160 blocks. Circular room caves average 50 circular rooms with an average diameter of 13.5 blocks, although that isn't as translatable to length as the otehrs).
These are screenshots taken with MCEdit after I used a filter that automatically adds torches to caves to light them up; each cave required 300-500 torches with a minimum light level of 6 (the default is 8 to prevent mobs from spawning):
Circular room cave system; each circular room has a narrow tunnel which usually extends towards the center, linking most of them together:
Ravine cave system, which is made up of modified ravine-like caves which are much smaller than normal ravines; unlike circular room caves there are only a couple of vertical caves rising to the surface (other than those all of these cave systems exclusively generate below sea level and usually there are only a couple small cave openings to indicate their presence):
Vertical cave system; I got the idea for this from the "vertical caves" that I used in the previous cave systems to make surface entrances, with the ones here modified to have width variation and varying lengths, most stopping below the surface:
With all of the other types of caves and cave systems that I've added TMCW is one of, if not the, the most complex mod for caves (I'm sure there are bigger mods that also add in underground features like dungeons, underground biomes, and so on, but I'm referring to caves themselves) ever made; even though it is only a subset of the whole mod I still categorize it as a "cave mod", along with other mods which were mostly just that:
For comparison, the vanilla cave generation code is only 10 KB in size; I have 4 separate methods for generating caves, 3 of which generate more than one type of cave (vanilla has up to 7 types of caves depending on how you look at it; the majority of caves are mainly horizontal, 5-9 blocks in maximum width and branch into two smaller caves at one end. There are also narrower unbranched caves, 3-5 blocks wide and often extending much further out from a cave system (caves only branch if they exceed 5 blocks in width), as well as much larger caves up to 27 blocks wide (there is a 1/10 chance of an increased width; only around 1/3 of these exceed the maximum width of "normal" caves though); all of these have a 1 in 6 chance of increased vertical variation and reduced horizontal variation (6 different variants); then there are circular rooms, which are often said to be a bug but are an intended feature and generate as a single cave segment with half the normal height and 1-4 normal (tunnel-like) caves coming out of it). Ravines are also another variant of cave for up to 8 variants in vanilla, while TMCW can be said to have 3 due to the wide variation in sizes (unlike caves/cave systems they are all basically the same structure).
And yes, the fact that I've made 21.5 megabytes worth of mods which mainly focus around caves says it all. For comparison, the vanilla 1.6.4 jar is 4.52 MB and even 1.11 is only 8.75 MB.
I've spent the past few days exclusively working on my mod TMCW in preparation for starting a new world with it soon; I have not actually spent any time playing Minecraft (not counting running it within MCP) and I've set aside my first world for the time being, as I've done a couple times before.
Among other things, I just added igloos, which are nearly the same as in 1.9+ except they generate in Winter Taiga (i.e. Cold Taiga) and Winter Forest (snowy forest biome) but not Ice Plains, and a few other things are different; they do not have brewing stands and the splash potion of weakness generates in the chest instead, which otherwise has the same loot with a low chance of a diamond or amethyst and 1-4 rotten flesh instead of 1 per stack (I presume that the loot is also chosen differently, as chest loot since 1.9 seems to include multiple stacks of a few items instead of randomly choosing one item per stack, so there can be up to 10 unique items in a chest with the potion and golden apple always present). The zombie villager is also just an ordinary zombie villager because the different types weren't added until later:
Also, I added them, as well as fossils, by using the blueprints from the Wiki to figure out how to place the blocks using pure code, which is how structures were made before structure files were added (I believe that older structures are still generated with code); the entire class for igloos required over 600 lines of code and fossils required over 500:
(instead of using the vanilla structure code I just made up my own code because that's the way I am, which is also partly why I don't use Forge to make mods since I'd have to follow an API's rules. And yes, I just use Windows Notepad to code, instead of Notepad++ or a GUI like Eclipse)
Another thing I've added are "double dungeons", which have a 5% chance of generating in place of a normal dungeon (20% in a "network cave region" and about 5.4% overall), and have 2 spawners and 2-3 chests, with each spawner spawning a different type of mob (never both the same type; the maximum spawn delay is doubled so their overall spawn rate is higher than a single spawner but less than two) and the floor having chiseled stone bricks in place of cobblestone; they and regular dungeons can also have stone brick walls instead of cobblestone:
This is the larger variant, which has an overall size of 9x13, with the smaller one being 7x11 and normal dungeons 7x7, 7x9, or 9x9:
(even with these chiseled stone brick is impractically rare to be used as a building block; it is not craftable in 1.6.4, as is moss stone, though I found nearly 50,000 in my first world)
A normal dungeon generated with stone brick walls, which has a 25% chance:
Also, here are the results from a test run I made to find out how often they generated, along with normal dungeons; the overall frequency of dungeons is similar to that in vanilla 1.6.4 - they are actually quite common, even after 1.7 significantly reduced their frequency (around one every 100 chunks):
Generated double dungeon at -242, 39, 345
Generated double dungeon at -219, 5, 164
Generated double dungeon at -343, 41, 1
Generated double dungeon at -283, 30, -351
Generated double dungeon at -42, 36, -687
Generated 100 normal dungeons and 5 double dungeons (105 total) in 4144 chunks.
Generated double dungeon at -525, 25, -472
Generated double dungeon at -577, 52, 293
Generated double dungeon at -622, 4, 552
Generated 200 normal dungeons and 8 double dungeons (208 total) in 8424 chunks.
Generated double dungeon at -970, 35, 407
Generated double dungeon at -979, 34, 94
Generated double dungeon at -805, 22, -680
Generated double dungeon at -965, 35, -681
Generated double dungeon at -420, 9, -726
Generated double dungeon at -154, 74, -980
Generated double dungeon at 513, 26, -831
Generated double dungeon at 770, 63, -857
Generated double dungeon at 764, 55, -152
Generated double dungeon at 914, 15, -107
Generated 300 normal dungeons and 18 double dungeons (318 total) in 13147 chunks.
Generated double dungeon at 878, 40, 294
Generated double dungeon at 712, 29, 369
Generated double dungeon at 832, 7, 450
Generated double dungeon at 674, 9, 894
Generated double dungeon at -1060, 62, 149
Generated 400 normal dungeons and 23 double dungeons (423 total) in 17158 chunks.
I also decided to change my "cooldown" system; previously it added a half-second period after the normal damage immunity during which damage would be linearly reduced from 100% at 1 second since the last hit to 0% at half a second and now it only takes effect if you hit a mob during its damage immunity period, with the last damage being player-dealt (e.g. hitting a mob after it receives other damage will not penalize you, other than only applying your damage minus the last damage, which is how vanilla handles additional damage during the immunity period); this change lets you strike a mob as often as damage immunity allows with no penalty, making it more similar to 1.9, where swords have a cooldown of 0.63 seconds (in either case it only applies to individual mobs; you could hit 3 mobs within a second with no effect). The duration of the penalty is also increased if you hit the mob again within the 1 second period it lasts (+1 to 0 seconds added for <= 0.5 to 1 second since last hit; maximum time is capped at 1 second). I did this since too often I would have to hit a mob three times instead of two (14.25 unmodified damage per hit) and I didn't want it to intrude on normal gameplay (even without this spam-clicking in 1.6.4 is bad since prior to 1.7 every single hit, regardless of whether it deals any damage, will take away durability (see description), rapidly depleting your sword. With my change (either case) I can break a golden sword on a zombie and not kill it, while vanilla still gets 15-20 durability taken off, 3-4 times the 5 hits required).
One thing I've thought of adding is some sort of "cave map" which lets you map out caves underground in a similar manner to the MCMap utility that I use (except in 2D; custom colors could be used to show elevation), which only renders caves within a small radius of torches so only explored areas can be seen (I used Rei's Minimap for 1.6.2 for a while and its cave mode (example) was similar, only showing lit-up caves (any light), and only within a narrow y-range around your position; this was still considered to be so cheaty that servers could disable it).
In addition, I made a standalone Java app that locates various types of caves, such as the locations of the largest caves and ravines, as well as special types of cave systems and cave regions; I initially made it to easily find them while testing, as part of the Minecraft code (that is, it ran when a world was loaded) but made it standalone. Here is an example output (I've been using the seed "10" for testing):
Seed is 10
Range is +/- 3072 blocks (+/- 192 chunks)
Showing up to 5 results for each category
Searching for caves...
Locations of nearest colossal cave systems (locations are the center unless noted)
1: -1336, -552
2: 1608, 232
3: 600, 1512
4: -488, -1768
5: -1448, 1656
Locations of nearest circular room cave systems:
1: 648, 200
2: -248, -696
3: -888, -184
4: 520, -824
5: 136, 968
Locations of nearest ravine cave systems:
1: 520, -184
2: 8, -568
3: -504, -312
4: -632, -696
5: -888, 584
Locations of largest caves by distance:
1: -696, 25, 8 (length: 294, width: 56, volume: 228159)
2: -312, 18, 648 (length: 244, width: 29, volume: 58142)
3: 168, 18, -888 (length: 336, width: 25, volume: 61050)
4: 200, 22, 904 (length: 247, width: 38, volume: 98144)
5: 968, 28, -120 (length: 232, width: 38, volume: 92944)
Locations of largest caves by volume:
1: 2632, 28, -1528 (length: 329, width: 72, volume: 403489)
2: -184, 26, 2312 (length: 326, width: 65, volume: 338479)
3: -2872, 26, -2168 (length: 332, width: 65, volume: 337929)
4: 1096, 22, -2040 (length: 336, width: 60, volume: 301502)
5: 1864, 26, 776 (length: 325, width: 55, volume: 243677)
Locations of largest ravines by distance:
1: 72, 19, 648 (length: 286, width: 20, volume: 130340)
2: -184, 25, -632 (length: 266, width: 23, volume: 142661)
3: -184, 43, 904 (length: 262, width: 22, volume: 129308)
4: -792, 24, -536 (length: 140, width: 18, volume: 54678)
5: -952, 28, 136 (length: 276, width: 18, volume: 108389)
Locations of largest ravines by volume:
1: 1736, 38, -2296 (length: 336, width: 39, volume: 422089)
2: -1848, 33, 1800 (length: 336, width: 35, volume: 362058)
3: -2232, 40, 648 (length: 282, width: 37, volume: 326335)
4: -2872, 23, 1544 (length: 332, width: 32, volume: 304877)
5: 2376, 41, -2936 (length: 318, width: 31, volume: 275773)
Locations of giant cave regions (NW and SE corners):
1: -832, 304 to -641, 495
2: 1120, 320 to 1311, 511
3: 1680, 912 to 1871, 1103
4: 560, 1920 to 751, 2111
5: 720, -2208 to 911, -2017
Locations of network cave regions (NW and SE corners):
1: 752, -192 to 943, -1
2: -304, 816 to -113, 1007
3: -208, -1136 to -17, -945
4: -1248, -208 to -1057, -17
5: 624, -1232 to 815, -1041
Locations of strongholds (starting points):
1: -476, -556
2: 1012, 692
3: -1244, 244
4: 1572, -364
5: 612, -1628
Here is an update to my "cave density" comparisons which includes TMCWv4; unlike the older comparisons (example) it accounts for the additional caves that are generated when a circular room is generated, which increases the overall number of caves by 37.5%:
These cover a 4 million chunk region (+/-1000 chunks from the origin), with the near-origin "exclusion zone" in TMCW removed so it doesn't bias the results since they are supposed to represent the entire world; the number of caves in a given area is along the x-axis and the number of times it was found is along the y-axis. The radii are circular and are from the center chunk so that a 4 chunk radius area has a diameter of 9 chunks (the first one for cave systems is a single chunk, or radius of 0).
Besides the differences between 1.6 and 1.7 this shows that TMCW has a larger variation in cave density, with 1.7 having the lowest; for a 16 chunk radius TMCW has a variation of nearly 20:1, with anywhere from half the minimum density of 1.7 to double the maximum density of 1.7. The odd spikes seen for individual cave systems and a 2 chunk radius (these use a log instead of linear scale) reflect the generation of special cave systems. The main reason why TMCW has more caves than 1.6.4 is because I added additional caves near sea level to offset normal caves being 7 layers deeper down (lava at y=4 instead of 11).
Here is a repost of a couple maps I made of the underground (I've since made some changes but this still mostly accurate. Underground lakes and springs are also not present since I used a special debug mode that only generates caves and structures in a Superflat-like world for quickly generating a large amount of terrain):
This only includes special types of caves and cave systems; there are four "colossal cave systems", which appear as large, dense normal cave systems, such as at left-center, and are intended to replicate a large cave system in my first world; two "giant cave regions", near the right-center and lower-center, which consist of numerous giant caves in a region about 200 blocks across; six "network cave regions", which appear as large, stringy networks of caves (these have a higher chance of "double dungeons" within them, as well as large caves, all sizes of ravines, and mineshafts), numerous "circular room" and "ravine" cave systems, seen close-up, and larger than normal caves and ravines, the former of which come in two variants, one which generates about once every 100 chunks with a large random size range and the other which generates once every 2,560 chunks with a much larger average size and smaller size range; in the case of ravines there is a 1/8 chance (1 every 400 chunks) that they may be larger and a 1/50 chance (1 every 2,500 chunks) of a larger variant, similar to large caves:
Also visible are several strongholds, which infinitely generate with one every 8,192 chunks (the same as colossal cave systems; they and giant/network cave regions all use the same basic algorithm for placement with different offsets so they can never overlap. In a similar manner special cave systems and regions exclude normal caves and/or large caves and/or ravines and/or mineshafts, and mineshaft frequency is controlled by the local density of caves).
Here is a diagram illustrating how they are placed; the area shown is 128x128 chunks with red being colossal cave systems (only the center locations), blue strongholds (also only the center), and green regional caves, with dark green showing the locations of the northwest corner and light green their overall range (their core region is 12x12 chunks in size). All of these also extend several chunks further out from the highlighted regions and regional caves only generate in one of two locations within each 64x64 chunk quadrant for a total of four in a 128x128 chunk area, one of which is always a giant cave region with the other three being network cave regions:
Also, here is a rendering comparing what I did in my first world to the first two times I played on it, not counting part of the second time when I modded it with a modified version of TMCW (i.e. only progress up to that point was not reverted):
A full-size sequence of what I explored over the last few days I spent playing, which was around the area near the top-center of the map above and the northeastern corner of the map to the east of center below (I had previously been exploring the map to the west), which I had previously not explored because it was off the eastern edge of the center map and on the eastern map it appeared to be ocean, which I usually only explore out to a couple hundred blocks from land:
An in-game screenshot of my map wall, consisting of 5 level 4 maps (6144x6144 blocks):
Overall, I've spent close to two years of daily playing in my first world, which is likely never going to be surpassed by any other world I make, which have not lasted for more than a few months (even if I kept the last three worlds I made with TMCW updates to the mod are as disrupting to terrain generation as upgrading from 1.6 to 1.7; the only way I'll ever play my first world in 1.7 or later is if the terrain generator, and not just the underground, was changed to that before 1.7).
For comparison, this was the previous world I made with TMCW (version 3), which I spent about two weeks of playtime on:
A few of the things that I found; this version of TMCW did not have the special types of cave systems, only larger caves and ravines (nearly unchanged since the second version) and colossal cave systems:
The following three screenshots and renderings are of the same enormous cave:
Both the cave and ravine shown above are in this rendering:
Naturally, I'll be playing on this new world the same way after I've gotten all of the early-game stuff (meaning everything up to the Ender Dragon fight) out of the way, which will take a lot longer than usual; for example, I'll want to breed villagers so I can get Mending (renaming an item no longer works; Mending just replaces this so anvils are still required to repair them), which is quite a bit harder to get when there is only have a 1.75% chance of getting an enchanted book trade, one per villager, per final offer traded (when testing I had to buy more than a stack each of clocks and compasses from dozens of villagers before I unlocked it, which is well over a thousand emeralds, plus many more for other trades, including trading to get emeralds). However, all of the other enchantments unlocked along the way will significantly reduce how much enchanting I need to do; unlike my first world I won't be trading with them afterwards because I did not add amethyst gear to their offer list (it rather spoils the rarity of diamond and amethyst is far too expensive to repair with items (up to 62 levels for an unenchanted item) unless they are nearly depleted).
This does 9.5 hearts of damage, but it is likely more than that as I can consistently one hit Wither Skeletons with it.
From 1.6 to 1.8.9 weapons add their damage to your unarmed damage, so a diamond sword (+7 attack damage; note that "+") actually deals 8 damage and one-hits silverfish (8 health), while in your case the total damage is 20 (9.5 hearts = 19 damage, plus 1 for your unarmed damage). If you try to kill a zombie it should take two hits, or one hit plus two punches (22 total damage) since they have 4 armor points, which gives them the equivalent of 21.74 health against any damage source that is reduced by armor (IMO, it is a bit pointless to make such a powerful weapon if it can't kill zombies in one non-critical hit, given that they are by far the most common mob I encounter. Also, zombie pigmen, which share zombie's armor points, won't aggro others if you kill them in one hit).
The three mineshafts that I found yesterday turned out to be five mineshafts - there were three where I thought there was just one, including two in diagonally adjacent chunks, which brings the number I've explored in the past four days to nine; unlike yesterday I know there aren't any more left since I'd searched around for any parts I'd missed; next I'll be exploring a couple caves that lead to new areas. I found another 753 rails as well, for a total of 1389 rails in two days, and 2417 in four days (only 7 of these came from minecarts, where they are rarer than diamonds prior to 1.9):
(I mined less resources overall today because I returned to my main base to put resources away and spent time looking around for areas I'd missed)
Here are renderings of the whole area as well as an animation showing each mineshaft in Minutor, where you can also see that there are 5 ravines, including two double ravines, within them (a sixth ravine, at the top edge, is part of an area I'd explored a few weeks ago, also intersects one of the mineshafts; this is where I entered after I left off yesterday to return to my main base after previously exploring them from south to north):
Another thing to note is the lack of caves in the area, which would make an excellent area to make a huge branch-mine below lava level, in sharp contrast to some other areas I've explored recently; the area shown on the Minutor map is about 260x330 blocks. Such a large area is unlikely to be found in 1.7-1.11 since caves are more spread out with only a small decrease in the overall amount of air underground (while cave systems are smaller they are more common, and since they are less dense individual caves don't overlap as much so their effective volume is higher; I found only a 12% decrease in air underground in 1.7+ as in 1.6.4 despite a 23% reduction in the number of caves).
Here is a screenshot showing the center rooms of two mineshafts exposed by the same ravine; they are in diagonally adjacent chunks but at sufficiently different elevations that there were only a few collisions (all 5 mineshafts directly intersect each other, not just connected together by caves or ravines; the most telltale indication is corridors that run right through each other with cut-off supports):
It is hard to see but in the center of the image above is the other mineshaft room, shown below: