So, I was wondering how many people mod Minecraft themselves for their personal use; that is, not writing mods for others to use or downloading a mod somebody else wrote, perhaps because there wasn't a mod that did what they wanted, add back a removed feature (roses? real oceans?; not that I know how to do these, oceans probably have a size/frequency set in the code though), etc. I ask this because I have modded the game myself to make it more fun for the way I mostly play it; I increased the amount of caves that generate and made it so there is a greater variety of cave systems, as well as ravines (the following is spoilered for very long content).
Here is what the world I'm currently exploring looks like with Unmined, covering an area about 1900x1800 blocks:
The first thing you'll notice is the variety of cave system sizes, with two really large ones (I call those "supermassive" caves, with a 1/4096 chance per chunk, there's also a 25% chance of one of those becoming a "supercolossal" cave system up to 500 blocks across), some medium sized ones and a lot of smaller ones. You can also see a lot of thin lines crossing the map, which are caves that I modified to be relatively straight and very long; while I made the average cave system denser (by 25% on average), I also spaced them further apart (about a 10% increase overall, excluding other cave types) and those caves help link them together, and it is often easy to tell when you are leaving one system and going to another.
I also made it so that cave systems can't cut through the surface (grass or dirt and grass for supermassive caves; the default generation also doesn't cut through sand, sandstone, etc) except for occasional caves which slope down to layer 10, so on the surface there's just occasional small openings (about 3 per 7x7 chunk area), no huge pits or gouges.
Cave systems are made bigger by extending the range of chunks checked during generation, by default +/- 8 chunks from the starting chunk (17x17 chunks, 272 blocks max; vanilla systems are only about half of this though), to 31x31 chunks (496 blocks), and multiplying a "range" parameter by a higher number (default 16; up to 56 for supercolossal caves), "range" itself is also changed from 8 for regular caves to 15 for supercolossal caves, a change from 8x16 or 128, to 15x56 or 840 (presumably maximum length from one end to the other), but all curved up, so they fit in the 496 block range with few exceptions (just makes a flat dead end).
I modified the way ravines generate as well, changing their width, length, height and curvature (the first three are only semi-independent, curvature increases with length+random); here is an example I found in a test world, used MCEdit to remove the top (the area shown is about 100x100 blocks to get an idea of its size):
That's more of the exception though; I've found a few ravines that are only 1-2 blocks wide and 5 blocks high/long, only recognizable from their structure. Ravines also don't cut through the surface, so they don't leave huge openings all over the place; they were also made slightly rarer than vanilla, a 1/60 chance per chunk instead of 1/50, due to the average size being bigger. Some can also loop around on themselves multiple times, or be so tilted along their length that one end is below the other but not connected.
Also, here are a couple screenshots of a supermassive cave system I'm currently exploring; I felt the need to switch to Peaceful in order to explore the center of this thing, the first time I did so in a month of playing this world; this is more like foam than Swiss cheese, as often used to describe overly dense cave systems (I'm considering reducing the density, this isn't even a maximum-size system, as mentioned above, although supercolossal caves are basically bigger rather than denser):
(the last thing you want here is a skeleton shooting you off...)
I also frequently play around with new ideas; for example, I recently found out how to make a cave system (successfully, see below) appear at a certain X/Z coordinate, or multiple of, instead of just relying on the RNG (this could be useful to position cave systems so they never overlap, with a random displacement added so they don't appear in a fixed grid), as well as how to selectively prevent ravines from generating so I can make then not generate near the center of supermassive cave systems because that becomes a bit too much (currently bugged; they partly generate if they cross the boundary instead of completely generating/not generating at all).
I frequently get weird results while doing this; this is an early attempt to make a cave system generate centered at a certain X/Z coordinate - well, this wasn't what I had in mind!
(I made most of the surface textures transparent in my MCP version so I can easily see underground)
To this, which changes the length of caves (there's more to it than this; "this.range" is also changed along with how many chunks are scanned during generation):
if (par16 <= 0)
int j1 = 0;
// Range is multiplied by 16 for regular caves, 18 for large regular caves, 40 for supermassive caves
// and 56 for supercolossal caves (caveSize = 3, 4, 1, 2 respectively)
if (caveSize <= 2)
j1 = this.range * (24 + caveSize * 16) - 16;
j1 = this.range * (14 + (caveSize - 2) * 2) - 16;
par16 = j1 - random.nextInt(j1 / 4);
Although if you want to make a new mod that adds new items and stuff, you'll have to do a lot more coding, learn how to interface with Forge, and more. You can find a lot of tutorials on how to mod here; one of the simplest things to do is add a new block. Also, to actually modify the code you need Minecraft Coder Pack, which will give you the source code and recompile it back into Java code. It is also possible to use Java Bytecode Editor to modify code, if it's just some small modifications; for example, this is from api.class, the class in 1.7.2 that contains the cave generation code (the classes have nonsensical names because Mojang tries to hide their code; MCP makes it much easier to read, MapGenCaves is the name of the cave generator in MCP):
That doesn't make much sense if you don't know Java bytecode (I don't really, but can determine what's going on if I have the source); here is the equivalent code in a more human-readable format:
int caveDensity = this.rand.nextInt(this.rand.nextInt(this.rand.nextInt(15) + 1) + 1);
if (this.rand.nextInt(7) != 0)
caveDensity = 0;
Knowing what the source looks like makes it easy to modify the bytecode; notice "bipush 15" and "bipush 7", which immediately precede "invokevirtual java/util/Random/nextInt(I)I", which are the same as the numbers you see in the second source in "this.rand.nextInt(15)" and "this.rand.nextInt(7)". So knowing this, I can replace those numbers with something else, such as 40 and 15, which will generate caves the way they generated in 1.6 and earlier and identical for the same seed.
I was playing around and made a teleportation hack slash people stalker. By pressing a key, I could "disconnect" from my actual body and freely fly around on client-side, stalk people or go outside loaded chunks and search for diamonds, dungeons and such. When pressing the key again, it would update my position to wherever I went, and if I wasn't too far from the original spot, the server would actually accept new coords and let me teleport on high walls, or outside enclosed space with a hole in the ceiling.
The obvious thing to say now would be, that I will never upload it, as I don't actually accept cheating. I also used it only to have fun with my confused friends :).
This is a 3008x3008 map I made of the latest changes I did to cave generation (made with Minecraft Land Generator; the files I edit for the client are drop-and-place compatible with the server); while I am still using the generation I show up above in my 1.6.2 main world I'm working on a version for when I go to 1.7, whenever MCP and Forge/mods update (cave generation for the same seed is the same in both versions with the same cave generator, which only depends on the world seed and chunk coordinates, so I can test it in 1.6):
Some of the biggest changes are generating supermassive and supercolossal cave systems in a manner that allows infinitely sized cave systems without a big performance impact (with the old version, they cause the game to generate new chunks so slowly I can outfly the generation in Creative, no problem with that in the new version, although the old generation didn't cause problems in normal gameplay).
They are also now generated on fixed chunk coordinates over hundreds of gen-chunks (405 across an area 21 chunks across for supercolossal cave systems, in a cross-shaped area), each with a chance of generating a single cave (plus branches) and also disable the generation of normal cave systems and ravines inside of their generation range plus a border, so you don't get overlapping cave systems and ravines making a big mess (the multiple chunk generation also means that the center isn't extremely dense; I also capped the maximum density of regular cave systems for the same reason, with a small increase in average density to compensate).
Also, I fixed a vanilla "bug" where ravines don't generate properly near/under rivers and oceans (example; it is even listed as a bug in 1.7 although also occurs in older versions, especially noticeable when ravines can get much bigger than usual), although this only works well in my mod because ravines can't cut through dirt (the "bug" is partly intentional so ravines don't cut rivers in half, but the bug part is that they simply fail to generate completely in the affected chunks). Similarly, I also eliminated caves cutting off for a block or three (where it looks like a dead end but you mine a block and the cave continues on), although left the water check in for caves because lake and ocean bottoms otherwise become filled with holes and flood out everything below.
Also, while nothing like this, I made a few simple cave generation mods for 1.7.2, enabling you to either remove caves, get the old cave generation before 1.7, or double the old cave generation (I did the latter by doubling the frequency of cave systems, as opposed to the density/size).