All users will need to merge their Minecraft Forum account with a new or existing Twitch account starting October 23rd. You can merge your accounts by clicking here. Have questions? Learn more here.
  • 0

    posted a message on Low Resource area, Mesa Spider Mines with an odd village PC 1.12.2

    That's a rather odd village; it appears that it generated in the strip of desert that generated around mesa but instead of being based on desert-themed blocks it used the default (plains) blocks since the well is located in extreme hills.

    Recently, while testing a mod I found a similar village in a desert and determined that this happens because the point the game initially checks to see if a village can generate, which must be in one of their valid biomes, is not the same as the point the game checks to determine the type of village, so the biomes can differ (my mod is based on 1.6.4, where villages had to be entirely within one of their valid biomes and I have not changed this, but the point the game checked to determine the type was in a river just to the south of the well, so it can even happen in older versions, just less likely due to the biome restrictions); when I made it so that both points were both the same the village was desert-themed as it was supposed to be (in your case I suppose it makes more sense for it to be non-desert since most of it is outside of the desert).

    Posted in: Seeds
  • 0

    posted a message on [1.6.4] TheMasterCaver's World (updated to version 4)
    Quote from Wolftopia»

    Cool mod!

    Have you considered making the rail block a 3D model of rails stacked on top of each other?

    I mentioned that I changed them in a previous post, in addition to adding variants for all rail types; I found that you can change the size of existing blocks by changing their render bounds (set within the block code itself, not the rendering code) and used this to make them the same size as rails (14 pixels wide) and added separate side textures; they can be placed in two directions (north-south or east-west depending on the direction you are facing):

    (while they consist of 9 rails there are actually only 8 rails visible on the sides since you can't get 9 2 pixel high wide textures in a 16x texture)

    Note that any more complex changes to rendering would require changing the code that actually renders blocks, which would break compatibility with Optifine since it also changes it (I have not looked at it fully but at the least it would affect mipmaps and natural textures; you'd also need to install Optifine first or the game would crash from a nonexistent method; Optifine itself does not appear to call any methods from outside the class so it is safe to overwrite its version). For example, none of the new types of plants I've added are randomly offset from a block since they specially hardcoded it in for tall grass (instead of adding a flag to the block code so it can be enabled, and even then it uses all three coordinates to calculate the offset so 2-block tall plants would still need their own code). Also, I had to make my own animation for magma blocks since they added code that interpolates frames which is not present in 1.6.4 (there are only 3 frames in the vanilla texture; I made additional frames by using opacities of 25,50,75% for the second layer for 12 separate frames with a frametime of 2, compared to 8 in vanilla for the same speed).

    Also, here is some more information, including screenshots, of some of the other things that I've added:

    All the items added, including in previous versions; the newest items are hammers, which come in tool materials:

    A list of all items:

    Amethyst (422)
    Amethyst Hoe (423)
    Amethyst Shovel (424)
    Amethyst Pickaxe (425)
    Amethyst Axe (426)
    Amethyst Sword (427)
    Amethyst Helmet (428)
    Amethyst Chestplate (429)
    Amethyst Leggings (430)
    Amethyst Boots (431)
    Ruby (432)
    Wooden Hammer (433)
    Stone Hammer (434)
    Iron Hammer (435)
    Diamond Hammer (436)
    Gold Hammer (437)
    Amethyst Hammer (438)

    All blocks, including previously unobtainable vanilla blocks, such as all-bark logs and full smooth double slabs (stone, sandstone, quartz; the last also uses the bottom texture on all sides so it actually looks different from normal quartz blocks):

    A closer look at the blocks:

    (Note the quartz sandstone block in the center row at right; the chiseled texture is based on red sandstone in vanilla; I recolored normal sandstone by changing the hue/saturation/lightness so it was similar to quartz blocks and drew the Wither symbol myself as it was too difficult to recolor red sandstone to match)

    (I originally added versions of the 1.7 flowers as one block high versions with edited textures; these continue to generate in addition to 2 block high versions. Sunflowers do not face any particular direction due to issues with custom rendering, I just added the separate sunflower head texture to the top stem part. Large blue orchids are based on a modified version of the original 1 block texture)

    A list of all blocks:

    Granite (1:1)
    Polished Granite (1:2)
    Diorite (1:3)
    Polished Diorite (1:4)
    Andesite (1:5)
    Polished Andesite (1:6)
    Coarse Dirt (3:1)
    Podzol (3:2)
    Quartz Sand (12:1)
    Rose Bush (37:1)
    Peony (37:2)
    Lilac (37:3)
    Allium (37:4)
    Blue Orchid (37:5)
    Oxeye Daisy (37:6)
    Paeonia (37:7)
    Poppy (37:8)
    Red Tulip (37:9)
    Pink Tulip (37:10)
    Orange Tulip (37:11)
    Yellow Tulip (37:12)
    White Tulip (37:13)
    Cyan Rose (37:14)
    Azure Bluet (37:15)
    Smooth Stone (43:8)
    Full Smooth Sandstone (43:9)
    Smooth Quartz Block (43:15)
    Amethyst Ore (49:1)
    Block of Amethyst (49:2)
    Reinforced Quartz Sandstone (49:3)
    Spruce Fence (85:1)
    Birch Fence (85:2)
    Jungle Fence (85:3)
    Mossy Stone Brick Monster Egg (97:3)
    Cracked Stone Brick Monster Egg (97:4)
    Chiseled Stone Brick Monster Egg (97:5)
    Granite Monster Egg (97:6)
    Diorite Monster Egg (97:7)
    Andesite Monster Egg (97:8)
    Quartz Sandstone (160:0)
    Chiseled Quartz Sandstone (160:1)
    Smooth Quartz Sandstone (160:2)
    Full Smooth Quartz Sandstone (160:3)
    Quartz Sandstone Stairs (161)
    Magma Block (162)
    Packed Ice (174)
    Tallgrass (175:0 + 175:1)
    Large Fern (175:2 + 175:3)
    Large Rose Bush (175:4 + 175:5)
    Sunflower (175:6 + 175:7)
    Large Peony (175:8 + 175:9)
    Large Lilac (175:10 + 175:11)
    Large Blue Orchid (175:12 + 175:13)
    Diamond Ender Chest (176)
    Cobweb block (177)
    Empty Monster Spawner (178)
    Lit Empty Monster Spawner (179)
    Bone Block (180)
    Ruby Ore (181)
    Ruby Block (182)
    Rail Block (183:0)
    Activator Rail Block (183:1)
    Detector Rail Block (183:2)
    Powered Rail Block (183:3)

    Some detailed look at new blocks and items:

    Magma blocks cause water to bubble, as well as steam and randomly evaporate when only 1 block deep (the bubbles are purely aesthetic and unrelated to 1.13's bubble columns and I added them beforehand), and will melt ice that is in direct contact with them. Aside from this they are basically the same as the vanilla blocks (cause 1 damage per half second unless sneaking; death message is that of fire, and mobs avoid walking on them and cannot spawn on them unless they are immune to fire. They also do not generate in the Nether, which is entirely unmodified):

    (the steam looks better when Optifine is used since it fixes particle rendering)

    Magma blocks also generate on the surface and underground in Volcanic Wasteland, the latter as both lakes and veins of ore:

    There are more variants of monster eggs, including variants added in 1.8 (vanilla 1.6.4 only has stone, cobblestone and normal stone brick) and variants for the 1.8 stone types (the type of stone they generate in is used to determine their appearance). They also take less time to mine (not instantly as was done at first, now similar to using Eff V to mine stone so you can still catch them if you use slower tools and are quick):
    Note that silverfish can't enter polished stone variants since there is no variant for them (previously they would change them to normal stone). Silverfish also spawn naturally underground, similar to cave spiders, but naturally spawned silverfish can't enter blocks, only ones from spawners or monster eggs (I added a new NBT tag to mobs that indicates how they were spawned; this is also used so cave spider jockeys only spawn naturally, not from spawners).

    Bark blocks can be crafted, with the recipe returning 4 (not 3 as in the 1.13 snapshots); since they naturally generate in most trees (branches and the top of trunks, which otherwise shows the exposed end on Fancy graphics) I decided to have them drop normal logs unless mined with Silk Touch, which isn't really necessary since there is no conversion loss and you can recraft them in your inventory; you can also craft them into planks (I have not checked in-game but the Wiki does not show that bark logs can be used to make planks and only mentions that stripped logs can):

    Hammers are able to convert various blocks into other blocks, including cobblestone to gravel and gravel to sand, making the latter renewable (and dirt since coarse dirt gives you 4 for 2 dirt and 2 gravel):

    Similarly, furnaces, chests, and many other blocks can be converted back to raw materials (in most cases you only get a fraction back; Fortune can improve drop rates. One notable exception is quartz, which always drops 4 quartz, making it an easy way to store quartz):

    (the other items dropping are their contents; the way hammers work is by completely bypassing the normal drop code but they still drop their contents as usual since they come from the tile entity)

    Notably, hammers mine glass-based blocks faster, including glowstone and beacons (no tools are effective against these blocks in vanilla. Glowstone behaves the same as when mined with anything else; Silk Touch cannot be applied to hammers and won't work even if you hack it on). They also have half the mining speed as other tools, including with Efficiency (i.e. Efficiency adds half the speed modifier as for other tools so an Eff V hammer is half as fast, otherwise, Efficiency works such that slower tools benefit more). They also enable you to obtain the all-pores mushroom block, otherwise, Silk Touch lets you get the all-cap or all-stem texture (from the cap or stem blocks respectively, hammers cause both to drop pores). Here is a list of all blocks hammers are effective against:

    Block                     Drop(s) (1-2-3) = with Fortune
    Polished Granite          1 Granite
    Polished Diorite          1 Diorite
    Polished Andesite         1 Andesite
    Cobblestone               1 Gravel
    Planks                    2 Sticks
    Gravel                    1 Sand
    Wood                      4 Planks
    Lapis Block               9 Lapis
    Dispenser                 2-4 Cobblestone (up to 5-6-7)
    Dropper                   2-4 Cobblestone (up to 5-6-7)
    Sandstone                 1 Sand (up to 2-3-4)
    Gold Block                9 Gold Ingots
    Iron Block                9 Iron Ingots
    Smooth Stone              2 Stone Slabs
    Full Smooth Sandstone     2 Sandstone Slabs
    Smooth Quartz Block       2 Quartz Slabs
    Brick Block               4 Bricks (higher chance of 4)
    Bookshelf                 3 Books + 2-3 Oak Planks (up to 4-5-6)
    Wood Stairs               1 Planks
    Chest                     2-4 Oak Planks (up to 6-8-8)
    Diamond Block             9 Diamonds
    Crafting Table            2 Oak Planks (up to 3,4,4)
    Furnace                   2-4 Cobblestone (up to 6-8-8)
    Sign                      1 Oak Planks (up to 2 with a higher chance of 2)
    Wooden Door               2-3 Oak Planks (up to 4-5-6)
    Iron Door                 2-3 Iron Ingots (up to 4-5-6)
    Ladder                    2 Sticks
    Cobblestone Stairs        1 Cobblestone
    Stone Pressure Plate      1 Cobblestone
    Wood Pressure Plate       1 Oak Wood
    Jukebox                   1 Diamond + 2-4 Oak Planks (up to 6-8-8)
    Fence                     1-2 Sticks (up to 2 with a higher chance of 2)
    Trapdoor                  1-2 Oak Planks (up to 3 with a higher chance of 3)
    (Mossy)Stone Bricks       1 (Mossy)Cobblestone
    Mushroom Blocks           1 Mushroom Pores Block
    Fence gate                2-4 Sticks (up to 5-6-7)
    Brick Stairs              2-4 Bricks (higher chance of 4)
    Nether Brick Block        2-4 Nether Bricks (higher chance of 4)
    Nether Brick Stairs       2-4 Nether Bricks (higher chance of 4)
    Nether Brick Fence        2-4 Nether Bricks (higher chance of 4)
    Enchantment Table         1-2 Obsidian (up to 3-4-4)
    Cauldron                  3-4 Iron Ingots (up to 5-6-7)
    Redstone Lamp             2-4 each of Glowstone and Redstone Dust (higher chance of 4)
    Sandstone Stairs          1 Sand (up to 2-3-4)
    Emerald Block             9 Emeralds
    (Mossy)Cobblestone Wall   1 (Mossy)Cobblestone
    Anvil                     12-21 Iron Ingots (up to 24-27-30)
    Slightly Damaged Anvil    8-14 Iron Ingots (up to 16-18-20)
    Very Damaged Anvil        4-7 Iron Ingots (up to 8-9-10)
    Gold Pressure Plate       1 Gold Ingot
    Iron Pressure Plate       1 Iron Ingot
    Redstone Block            9 Redstone Dust
    Hopper                    2-3 Iron Ingots (up to 4-5-5)
    Quartz Block              4 Nether Quartz
    Quartz Stairs             2-4 Nether Quartz (higher chance of 4)
    Coal Block                9 Coal
    Amethyst Block            9 Amethyst
    Bone Block                9 Bonemeal
    Ruby Block                9 Rubies
    Quartz Sandstone          1 Quartz Sand (up to 2-3-4)
    Quartz Sandstone Stairs   1 Quartz Sand (up to 2-3-4)

    Rubies now have an actual use besides crafting blocks; they can be used in the anvil to reduce the prior work penalty of an item by 5 levels per ruby, with a cost of (PWP + rubies * 5. The actual cost per ruby can be less than 5; e.g. 5 and 1 for a PWP of 6 and 2 rubies). Mending does not make this redundant since rubies can be used to keep items which are too expensive for Mending (repairing an item with Mending includes the cost of its enchantments as well as the repair itself); since rubies only generate in Rocky Mountains this makes them valuable for such items:
    I renamed the same pickaxe 3 times, resulting in a prior work penalty of 6 (+2 per operation, the same as vanilla). One ruby costs 11 levels, or 6 + 5, regardless of enchantments:

    After using one ruby, the cost is now 2, or 1 + 1:

    Trying to use a ruby on an item with no penalty (or Mending, as it sets the penalty to 0):

    Using two rubies at once results in a cost of 12 levels (6 + 5 + 1):

    A couple new enchantments have been added; first is Vein Miner, which can mine multiple blocks at once, either up to 6 or 18 depending on the level (level 1 mines the block being mined plus the 6 adjacent to it while level 2 mines the blocks adjacent to blocks mined by level 1. Note that while level 1 can mine up to 7 blocks tone of the surrounding 6 blocks has to be missing in order to reach the center block. Also, this only works on ores and all blocks must match the block actually being mined; statistics correctly count the total blocks mined):

    I also added Smelting, which causes iron and gold ore to drop ingots and XP (1-3 for iron and 2-6 for gold, which is based on their relative abundance and the XP from other ores; coal is still the largest source of XP from mining when caving), and can be used with Fortune but not Vein Miner or Silk Touch (Vein Miner and Smelting are incompatible so you can't have it too easy; they can also only be found in naturally generated chests, not even from trading, so they are actually "treasure" enchantments, unlike Mending):

    Another change is to the durability bar, which now renders as it does since 1.12 (I did not use any code from vanilla for this or anything else; the way I made the brightness stay constant is to have green be at 100% from 100-50% durability and fall from 100-0% at 50-0% durability and red stay at 0% from 100-50% durability then rise from 0-100% at 50-0% durability):

    Vines now generate much deeper underground below jungles, to which I'm also considering adding some sort of special cave chambers with underground vegetation (probably only trees, vines, and grass blocks; I'd have to add a special variant of grass for it to survive in darkness, and placing light sources is unreliable):

    Giant mushrooms are no longer exclusive to giant cave regions, but less common outside of them; additional variations are also considered to be added beyond the two types of caps, which already do generate in both colors for each:

    The type of wood used in abandoned mineshafts depends on the type of trees in the predominant biome within a 5x5 chunk area around the center room (biomes without trees also have their own wood types):

    This includes fences, for which I added variants for all wood types; notably, instead of adding 3 more block IDs I added data values to the original block, just as they did in Pocket Edition (metadata is not used to determine how they render); by using data values I did not need to modify all of the code that referenced Block.fence, including the code that makes fences connect to each other. In addition, unless you are holding a lead nothing happens when you right-click on a fence, fixing an annoying vanilla bug which prevents you from eating when looking at a fence, or worse, able to place a block where your head is. In addition, you get 4 fences instead of 3 (or 2 in vanilla before 1.8), or about one per plank used (same recipe as 1.8; 4 planks + 2 sticks is equivalent to 5 planks. The vanilla 1.6.4 recipe (6 sticks) still works for oak fences since I did not want to modify a different class just to remove it):

    See: (note the IDs for Bedrock Edition)

    Jungle and Tropical Swamp now use quartz sand instead of normal sand for beaches and underwater sand patches; you can also see a couple boulders on the beach, which are made out of full smooth sandstone (using the double slab block for normal sandstone, which also behaves like a "real" block and not two half-slabs when mined) on sand beaches and cobblestone on gravel beaches; they also generate on the seafloor nearby, as seen to the left:

    (the water looks clear because I had Night Vision; however, I did reduce the light opacity of water and ice from 3 to 2, allowing light to travel 50% further underwater, or to the bottom of the deepest riverbeds. I also added code that ensures that Optifine works correctly by setting the opacity to 2 when it tries to set it to 3 (when Clear Water is off), as well as changing the opacity of ice, which is not changed by Optifine, when the opacity of water is changed)

    A new biome; Quartz Desert, has been added, which also includes a new structure of my own making; several other sub-biomes have also been added (102 total biome IDs are now used for the Overworld) to improve world generation:

    (also, why in the world do so many mods use such insane amounts of memory and resources? I have seen no increase in memory requirements over vanilla, and indeed, vanilla has not either, despite the high GC churn rate in 1.8+, which is more of a matter of keeping up with object allocations than real memory usage)

    Here is a look at a quartz desert pyramid, which consists of a large main pyramid and two smaller pyramids; the main pyramid contains three floors, two of which are mazes and the third is a small room containing a double chest with similar loot as desert temples. There are 16 different mazes for each floor (a total of 256 combinations) and the walls are made out of reinforced quartz sandstone, a special variant of obsidian which takes longer to mine (10 seconds with an Eff V amethyst pickaxe) and drops full smooth quartz sandstone (which looks exactly the same) when mined, which is to discourage just mining your way through; there are also 3 skeleton and zombie spawners located in the floors of the first and second floors (placed under walls):

    Also, maps have many more new colors (not the same as the colors added to vanilla since 1.6.4); the majority of blocks have remapped colors, including variants of blocks like wool and stained clay (1.6.4 only uses the block ID to determine the color):

    There are many other changes and additions that are not listed here as well. This includes major refactorings of code; for example, world generation is more than twice as fast when generating biomes with huge trees, like Mega Forest, in large part due to optimizations to lighting, which is 4 times faster (the code that helps fix lighting glitches also runs faster by checking more blocks at once, helping to reduce their visibility); cave generation is also nearly twice as fast, in large part due to using a better random number generator which is also actually 64 bits (Java's Random only uses 48 bits, meaning that for every seed there are 65535 other seeds that have the same underground and other non-biome dependent features, even the underlying height variations of terrain).

    Also, here is a list of all the classes used to give you an idea of the complexity of the mod, which has a total of 309 files, including 205 source code files, 2/3rds of which are new classes as opposed to (unrenamed) vanilla base classes (which may still be extensively modified; part of my refactoring involved renaming as many modified base classes as possible, e.g. MapGenMineshaft to MapGenMineshaftTMCW, which is 35 times bigger than the vanilla class) and 104 assets, totaling 2.85 MB, 95% of which is code (for comparison, TMCWv4 has 228 files totaling 2.39 MB). The largest class is MapGenCavesRavines, which is 183 KB and has over 4,000 lines, all written by myself (the basic algorithm used by vanilla is still present):
    Posted in: Minecraft Mods
  • 0

    posted a message on TheMasterCaver's First World

    I found one of the largest single caves that I can recall finding in vanilla; it was part of the last cave system I explored within the map to the east, which is now completely filled in and I've started exploring the map to the north of that (which still appears to be mostly ocean so it probably won't take long to complete):

    Also, based on what I counted several days ago and collected since I've now collected more than 3 million resources, averaging around 3,100 per play session; this includes all resources in my storage room at my main base and rails used in my railways (non-consumable), and this total is even higher when including resources that I consumed, around a quarter million coal just for torches and smelting iron and gold ore, plus I had close to a double chest of resources at a secondary base which I had not brought back yet and were not counted.

    Posted in: Survival Mode
  • 0

    posted a message on downloading a mod for 1.2.5 wont work?
    Quote from Shamos2000»

    when i tried to run it, this error pops up
    --- BEGIN ERROR REPORT 7cf3a456 ----------- BEGIN ERROR REPORT 7cf3a456 --------Generated 3/3/18 12:02 PM
    Minecraft: Minecraft 1.2.5OS: Windows 7 (amd64) version 6.1Java: 1.8.0_25, Oracle CorporationVM: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle CorporationLWJGL: 2.9.0OpenGL: GeForce GT 520/PCI/SSE2 version 4.1.0, NVIDIA Corporation
    java.lang.NullPointerException at<init>( at<init>( at adn.a(SourceFile:62) at adn.a(SourceFile:99) at net.minecraft.client.Minecraft.a(SourceFile:262) at at END ERROR REPORT c6370beb ----------
    (sorry for the late reply, i missed it when checking for replies on other threads)

    You need to run older versions in separate game directories; the game attempts to read invalid settings from options.txt and crashes as a result (this should not happen but Mojang apparently never thought to add in checks for invalid/uninterpretable values):

    MCL-5837 Game versions 1.5.2 and lower crash when starting in a newer version's folder due to invalid language

    1.7.x will similarly crash if you set render distance to greater than 16, and even if the game doesn't crash it will reset many of the settings, forcing you to change them every time you switch versions.

    Also, another thing to consider is that versions before 1.6 do not properly use custom directories; it is best to set them to the default directory (.minecraft) and use custom directories for newer versions:

    MCL-1394 Trouble with multiple custom directories
    Posted in: Mods Discussion
  • 0

    posted a message on Glorified Chunks Idea
    Because of the way the game works you could just increase the maximum number of chunk sections without affecting performance or resource usage that much as long as terrain generated the same as it currently does since chunk sections that are empty are treated as being nonexistent. Something similar happened when the Anvil file format was introduced; you got 128 more blocks to build in but terrain was the same and performance in general was improved (as mentioned before, they split chunks up into 16x16x16 sections and an average world uses 5-6 for most chunks with average terrain, compared to the equivalent of 8 for an entire chunk before Anvil).

    The save format also uses a byte to store the number of chunk sections (this means up to 256 sections or a max height of 4096 is possible) so it is mostly just a matter of changing several values within the code (e.g. allocates space for up to 16 sections; increasing this to 32 would have a negligible impact by itself since they are null until they are actually needed. Other parts of the code limit the y-coordinate to a range of 0-255. Rendering would benefit if a vertical render distance was added (currently the game renders up to all 16 chunk sections regardless of render distance), and as far as lighting goes, specifically, the potential lag due to light updates over a long vertical distance, which is already an issue in vanilla, I recently optimized it in my mod so it is 4 times faster, literally halving world generation time in the case of a biome with trees up to 64 blocks tall, all because of the massive light updates they cause).

    Also, you can easily make the underground deeper without affecting performance much as well (more underground features aside), since you don't actually need to run the terrain generator over the entire depth (specifically, the generation of the heightmap and Perlin noise, which is by far the most intensive part); when I made my "triple height terrain" mod I just added 128 to the y-index for normal terrain, shifting it up by 128 layers with no changes otherwise (the world looked the same as vanilla), and filled in the space below with solid stone using a simple for-loop; most of the performance impacts of the mod came from the changes to cave generation to take advantage of the extra space (which was not even close to as optimized as it is in my current mods but I didn't have issues playing on a modded world with a computer that was below the (updated) system requirements for 1.8+. This method would require changes to the maximum height of mountains if used on 1.7 or later as terrain can exceed y=128 (I made the mod for 1.6, when this was not an issue), unless the height limit is also raised:

    Maybe not exactly what you want but these are a couple ways that the height limit (or depth of the underground) can be increased, and they would be far easier to do than your idea.
    Posted in: Requests / Ideas For Mods
  • 0

    posted a message on Mob Softener Giving Less XP?
    Quote from ScotsMiser»

    [Insert standard recheck spawner design / light the area / shared mob cap / check for mobs in unloaded chunks etc advice.]

    The general mob cap does not apply to monster spawners so you do not need to light anything up; this is also one reason why they added maxEntityCramming so people wouldn't lag out servers by accumulating hundreds (if not more) mobs in one spot. They do count the number of mobs of the type being spawned within a 9x9x9 area centered on the spawner, only spawning more if there are less than 6, so if you don't move them away quickly enough spawn rates will be reduced.
    Posted in: Survival Mode
  • 0

    posted a message on Is trading OP?

    Prior to 1.8 you could get any type of diamond tool or armor from trading, and for lower prices, especially if you didn't want them to be enchanted as they had no enchantments - you could easily get by without ever mining a single diamond (only use books to enchant, though getting books from trading was much more difficult than it is now as they only had as single offer and it had a low chance of randomly coming up; they could also replace it with a cheaper (usually worse and a different enchantment) trade):

    I've taken great advantage of this myself; I've bought nearly 400 diamond pickaxes since I started trading and probably 100 or more of everything else put together; according to my stats I've crafted more than 7,000 emeralds (buying an emerald or other item counts as crafting it, at least it does in 1.6.4), which are quite easy for me to get despite using no automated farms, just basic manual wheat, wool, and chicken farms (mainly, plus the occasional beef, books, paper etc; these are usually not practical as long-term sources of emeralds though as e.g. librarians will eventually charge an exorbitant price for an enchanted book, their most common final offer unlocked, which I don't want). At the lowest rates a diamond pickaxe is worth only 180 wheat or 140 chicken or wool. You can also trade charcoal and colored wool (instead of just coal or white wool) since they ignore data values (a bit silly when I collect 2,000 coal in one session but I don't want to use it for trading).

    Not that I need to do this, with nearly 14,000 diamonds in storage and a constant "income" given my playstyle; I also only started seriously trading in late 2015, more than two years after I started playing, after I found a village (one of many) with a blacksmith who offered a diamond pickaxe for 11-12 emeralds after I gave them the iron I found in their chest (if only they knew...) and it took me about 6 months to unlock all of their diamond gear trades since I was in no hurry to unlock them (I only traded their final offer to unlock their trades and you can trade an offer up to 12 times before they lock it again).

    This easy availability of diamond gear has even partly influenced my mod; I added a diamond-replacement tier (better than diamond in the mod, which nerfed diamond instead of adding something even stronger; it does have more durability but the repair costs and rarity of the ore offset it) partly so the best items in the game were actually hard to obtain, and diamond (the actual gems) is also renewable as a mob drop (of course, either way diamond is almost worthless, my mod does at least add a new use for them).

    Posted in: Discussion
  • 1

    posted a message on what year did you join minecraft?

    I started playing shortly after 1.5.1 came out in early 2013, and while I have not been playing for quite as long as some others I'm still one of the first 15% or so of players (in June 2013, a few months after I started playing, there were 22 million copies sold, compared to the most recent figure of 144 million).

    Posted in: Survival Mode
  • 1

    posted a message on Idea for changes to despawning
    Quote from ScotsMiser»

    [Currently the nearest approach to this of which I am aware is using seeds (or other 'junk' items) to create a "mob sink" of zombies.]

    Mobs with the PersistenceRequired tag set to true do not count towards the mob cap so this won't work:

     * Counts how many entities of an entity class exist in the world. Args: entityClass
    public int countEntities(Class par1Class)
        int var2 = 0;
        for (int var3 = 0; var3 < this.loadedEntityList.size(); ++var3)
            Entity var4 = (Entity)this.loadedEntityList.get(var3);
            if ((!(var4 instanceof EntityLiving) || !((EntityLiving)var4).isNoDespawnRequired()) && par1Class.isAssignableFrom(var4.getClass()))
        return var2;
    public boolean isNoDespawnRequired()
        return this.persistenceRequired;

    (real example - back in 1.7.4 chicken jockeys would cause lag issues as zombies would pick up eggs and never despawn, with thousands of zombies eventually building up. This even happens at a much slower rate in any normal world; according to MCEdit my first world has a few hundred zombies scattered around it, though they are all spread across a huge area so do not cause any issues; in particular, it is common to see baby zombies holding rotten flesh outside the walls of villages I secured)

    Also, mobs can spawn at an extremely high rate - every single tick - 20 per second - the game attempts to spawn one pack of mob in each of 225 chunks around the player - with 4 mobs per pack this is potentially up to 18,000 mobs spawned per second (the mob cap normally limits this but since it is only checked once per spawn cycle, which is why you can find so many squid in the ocean despite their cap being only 5, the theoretical maximum number of mobs spawned at once is 900 plus one less than the mob cap). Even if only 1 in 256 attempts succeed (since mobs within a pack can only spawn at the same level as the pack center; the game randomly chooses a y-coordinate over the height of loaded blocks so worst-case is a world with blocks at the height limit) this is still 70 mobs per second - which also happens to be the mob cap. I've never had any issues finding mobs; I regularly kill 300 or more per play session and have killed close to 800 before.

    Note also that mobs do not despawn if they are within 32 blocks of a player (due to an entirely separate check) but can spawn as close as 24 blocks, leaving a zone where they can build up if the player stays still; likewise, a player that moves around can occasionally bring mobs within 32 blocks of them, which resets their despawn timer to 0 (random despawning only starts after it reaches 600 or 30 seconds); both of these mechanics favor a buildup of mobs near a player who doesn't move very far (less than 128 blocks across; a typical cave system is about this large).

    Posted in: Suggestions
  • 0

    posted a message on Is minecraft single player single threaded or dual threaded?
    Quote from Cire360»

    Just because a game is multi-player does not mean that the game has to be multi-threaded, and in the case of Minecraft really the game would not benefit much even if it was multi-threaded. Many users think that if the game was multi-threaded and took advantage of using multiple cores at once that it would run much faster and be a more smooth experience and this simply is a load of crap.

    Yes there are areas that it would help such as disc ops, but for the most part we really won't see much of a difference.

    This is not necessarily true; otherwise, why does 1.3+ run a lot smoother (for me)? Because in earlier versions the game has to process game logic in the same loop that renders frames, and your eyes will perceive any stutter as a reduction in frame rate even if the average FPS is high enough to look smooth:
    The server gets to run everything in its own time. If it can't keep up 1 tick per 50ms (this is 20 ticks per second btw, Minecraft Standard Time) then no big issue; it just skips one and carries on as normal. The client just renders what it knows, and will never get slowed down because the server is stuck working something out. That way the client gets higher FPS (or rather, the FPS just doesn't get lower) and the game is more responsive.

    If you don't have a multicore processor and it's a pretty old one, then it can't run both at the same time; you'll end up with the old behaviour where slow ticks will slow your FPS. It may still be smoother due to some special magic, but you're not going to see the performance boosts that everyone else gets.

    This can best be seen if you teleport to an area which has not generated yet; there is no effect client-side despite the server being basically hung up while generating the chunks, while if they were both on the same thread the entire game would freeze (presuming no measures were taken to allow the client to have some minimum time slot to process user I/O, as a program should so you don't get the "not responding" notice while it works).

    Likewise, prior to 1.8 Optifine had a multi-core option that used a second thread for rendering (miscalled "chunk loading", but it actually renders/updates chunks) - which was added to vanilla in 1.8, leading to great performance boosts for some people (I was not one of them, with severe performance degradation, then the computer I had at the time was only dual-core and below the updated system requirements):
    The multithreaded chunk loading is crude and it will need a lot of optimizations in order to behave properly. Currently it works best with multi-core systems, quad-core is optimal, dual-core suffers a bit and single-core CPUs are practically doomed with vanilla. Lag spikes are present with all types of CPU.

    (again, this actually has nothing to do with "loading" chunks from disk or whatever; I've decompiled Optifine so I can see it really refers to updating a chunk section by re-rendering it, and even Optifine's multi-core rendering caused more lag spikes for me in 1.6.4, while my current computer, with a quad-core CPU, runs better with it). The game also uses (including before 1.8) a dedicated thread for asynchronous disk I/O so the main thread doesn't have to wait for the disk; there are also several other minor threads, although they don't really do much, and too many main threads can hurt since it is relatively expensive for the CPU to switch between them).
    Posted in: Discussion
  • 0

    posted a message on Minecraft to-do list / goals

    Most of the things that you list as "hard" are not really that hard at all; building another base only 200+ blocks away? Why not 2,000+ (I've only done this in one world, not so much because of the difficulty but because it takes me forever to explore that far given how I explore; said world has a total of 18 bases with around 16 km of railways linking them together). A full set of diamond armor? Really? Half an hour of branch-mining will get you enough diamonds - without using Fortune (given what the Wiki says about 1.7% of mined blocks being diamond ore with the optimal mining pattern; this is about 1400 blocks mined, doable even with unenchanted tools). I actually consider everything up to killing the Ender Dragon to be "early game".

    Also, I would advise against automating everything; a game that basically plays itself for you doesn't sound like much fun (I never use any automation; I have no idea what is "normal" but in my last world it took me 186 in-game days to reach the "end-game", including building my main base after I killed the Ender Dragon, as well as curing/breeding/trading with villagers to get Mending and a full set of enchanted gear, including a diamond hoe with Fortune III, Mending, and Unbreaking III (I played with a mod I made that lets hoes receive Fortune from a book; hoes are required if you want Fortune to work on crops. The same mod also adds in diamond-replacement gear which is much harder to find and enchant than diamond, and nothing that makes the game easier in terms of progression, so vanilla would likely take considerably less time to "beat").

    (of course, after I reach the "end-game" I basically do nothing but explore caves; in the last world I started I did have a goal of finding at least one of each underground feature but in vanilla it isn't worth making this a goal, and taking 466 hours of caving to find everything is a bit too much for the average player)

    Posted in: Survival Mode
  • 1

    posted a message on What's your opinion about Minecraft's myths?
    Quote from FirEmerald»

    none of them exist in code, therefore none of them exist.

    I can confirm that as well; being a modder has its advantages, such as being able to easily look through the code to see if something actually exists (even some things in the Wiki are incorrect):

    Mineshafts are simply some blocks placed by code and that's it, same for all other structures (no, not even villagers actually build villages); entities are just some code as well (some people even obsess over killing anything in the game). Mods do not count as official.
    Posted in: Discussion
  • 0

    posted a message on How do I add custom trees to my biome?

    You have to replace the vanilla trees with your own; the simplest way is to override "getRandomWorldGenForTrees" in your custom biome class (I don't know if it is still called that in 1.12.2, the following code is all from 1.6.4, and my custom code is not from a Forge mod):

    public WorldGenerator getRandomWorldGenForTrees(Random par1Random)
        return (WorldGenerator)(par1Random.nextInt(10) == 0 ? this.worldGeneratorBigTree : this.worldGeneratorTrees);

    For example, this is in the BiomeGenForest class, which has birch trees in addition to oaks:

    public WorldGenerator getRandomWorldGenForTrees(Random par1Random)
         return (WorldGenerator)(par1Random.nextInt(5) == 0 ? this.worldGeneratorForest : (par1Random.nextInt(10) == 0 ? this.worldGeneratorBigTree : this.worldGeneratorTrees));

    For more complex biomes though you'll probably want to use your own methods to place trees; for example, this is my BiomeGenMegaForest class, which places trees in a way so they can generate under other trees (vanilla only lets trees generate on blocks directly exposed to the sky; I use custom code which creates and reads a heightmap of the topmost exposed grass/dirt blocks), as well as adding additional clearance around each mega tree to avoid cascading chunk generation since they can exceed 17x17 (+/- 8 from the center) blocks in size, the maximum normally allowed (if a feature is too large it will spill over into unloaded chunks, causing them to load or generate, and possibly be populated, causing even more chunks to load, possibly even crashing the game, or at least causing severe lag; for structures more than 32x32 blocks in size you'll have to generate them differently):

    package net.minecraft.src;
    import java.util.Random;
    public class BiomeGenMegaForest extends BiomeGenBase
        private static final WorldGenerator smallTreeGenerator = new WorldGenSmallTrees(5, -1, 0, 0, false);
        private static final WorldGenerator bushGenerator = new WorldGenBush(false);
        private static final WorldGenerator megaTreeGen = new WorldGenMegaTree();
        public BiomeGenMegaForest(int par1)
            // Trees are generated using custom methods, so BiomeDecorator adds no trees
            ((BiomeDecoratorTMCW)this.theBiomeDecorator).treesPerChunk = -999;
            ((BiomeDecoratorTMCW)this.theBiomeDecorator).grassPerChunk = 7;
        // Returns bushes when type is odd and oak trees when par1 is even
        private WorldGenerator getRandomTree(Random par1Random, int type)
            return (type & 1) == 1 ? this.bushGenerator : this.smallTreeGenerator;
        // Retards fire spread to reduce threat of massive forest fires (normally set when rainfall is greater
        // than 0.85, only used by BlockFire)
        public boolean isHighHumidity()
            return true;
        public void decorate(World par1World, Random par2Random, int chunkX, int chunkZ)
            // Generates initial height map (exposed grass blcoks) so trees are placed at ground level
            this.createHeightMap(par1World, chunkX + 8, chunkZ + 8);
            int i;
            int x;
            int y;
            int z;
            WorldGenerator treeGenerator;
            this.treeRestrictionRadius = 3;
            // Makes 3 attempts per chunk of generating one mega tree
            for (i = 0; i < 3; ++i)
                // Offset gives 3 blocks of extra space sround trees
                x = chunkX + par2Random.nextInt(10) + 11;
                z = chunkZ + par2Random.nextInt(10) + 11;
                y = this.getTopBlock(par1World, x, z, true);
                if (y > 0)
                    if (this.megaTreeGen.generate(par1World, par2Random, x, y, z)) break;
            // Generates big oak trees before other trees in order to get more full-size trees
            // Trees are generated in a checkerboard pattern, every other chunk; plus a 50% chance 
            // per chunk; 2 attempts to generate a tree
            if ((((chunkX / 16) & 1) == 0 && ((chunkZ / 16) & 1) == 0) || par2Random.nextBoolean())
                for (i = 0; i < 2; ++i)
                    x = chunkX + par2Random.nextInt(8) + 12;
                    z = chunkZ + par2Random.nextInt(8) + 12;
                    y = this.getTopBlock(par1World, x, z, true);
                    if (y > 0)
                        this.worldGeneratorBigTree.setScale(1.0D, 1.0D, 1.0D);
                        // 50% of trees have an extra size boost (same as Big Oak Forest trees)
                        if (par2Random.nextBoolean()) this.worldGeneratorBigTree.setScale(-999.0D, 1.0D, 1.0D);
                        if (this.worldGeneratorBigTree.generate(par1World, par2Random, x, y, z)) break;
            // Other trees
            int numberOfTrees = this.getRandomTreeDensity(par1World.getSeed(), chunkX, chunkZ, 10) + 5;
            this.treeRestrictionRadius = 2;
            for (i = 0; i < numberOfTrees; ++i)
                x = chunkX + par2Random.nextInt(16) + 8;
                z = chunkZ + par2Random.nextInt(16) + 8;
                y = this.getTopBlock(par1World, x, z, true);
                if (y > 0)
                    treeGenerator = this.getRandomTree(par2Random, i);
                    treeGenerator.generate(par1World, par2Random, x, y, z);
            // One attempt at another mega tree, using getHeightValue so empty spaces are selected
            x = chunkX + par2Random.nextInt(10) + 11;
            z = chunkZ + par2Random.nextInt(10) + 11;
            this.megaTreeGen.generate(par1World, par2Random, x, par1World.getHeightValue(x, z), z);
            super.decorate(par1World, par2Random, chunkX, chunkZ);

    Note that getRandomWorldGenForTrees is called by BiomeDecorator so if you use it you do not need to add your own code to place trees; the number of attempts at generating a tree is defined by a field within BiomeDecorator (treesPerChunk, which I set to -999 to disable them; you must use a negative number to completely disable trees as there is a 1/10 chance per chunk of adding 1 to this value, which generates the trees you rarely find in Extreme Hills, Ocean, and River biomes, which default to 0).

    Posted in: Modification Development
  • 0

    posted a message on Minecraft only half works

    2x2 jungle trees will only grow if there is enough clearance; even blocks like torches and snow layers will prevent them from growing:

    2×2 jungle trees require a 5×5 column of unobstructed space at least 11 blocks above the saplings to grow (12 blocks including the saplings themselves). This column is centered on the northwestern sapling. A 3×3 area is required at the base of the tree (the level of the saplings).

    As for ocelots, they can only be tamed if you let them approach you on their own while you are holding a fish and you must stand still after coming within 10 blocks of them (instead of trying to chase them down and tame them):
    The player can only tame ocelots under the following conditions:

    The ocelot must be in "begging for food" mode, characterized by it looking at the player and slowly walking near to the player.
    Entering "begging" mode requires that the player is within 10 blocks (Euclidean distance).
    If the player is within 6 blocks, the ocelot will exit "begging" mode if the player turns too quickly or moves more than a tiny distance.
    If the player is within 6 blocks when the ocelot starts begging, it is likely to decide the player turned too quickly and stop begging on the next game tick.
    If the ocelot exits "begging" mode, it won't enter it again for about 15 seconds.
    The ocelot must be within 3 blocks of the player.
    When all of the above are met, there is still a 2⁄3 chance the ocelot will take the fish without becoming tame. It's possible to tell the difference between the 2⁄3 failure chance and not meeting the other conditions by whether the ocelot emits smoke particles when fed and by whether it can be fed again immediately.

    Note: Both of these are taken from the Minecraft Wiki, an invaluable resource for finding out how something in the game works (parts of it may be inaccurate or outdated but most of it is reliable).
    Posted in: Unmodified Minecraft Client Support
  • 0

    posted a message on downloading a mod for 1.2.5 wont work?
    Quote from Shamos2000»

    not sure if this is a glitch, but there are multiple downloads
    ""name": "",
    "downloads": {
    "artifact": {
    "size": 208338,
    "sha1": "39c7796b469a600f72380316f6b1f11db6c2c7c4",
    "path": "net/java/jinput/jinput/2.0.5/jinput-2.0.5.jar",
    "url": ""
    "name": "",
    "downloads": {
    "artifact": {
    "size": 7508,
    "sha1": "e12fe1fda814bd348c1579329c86943d2cd3c6a6",
    "path": "net/java/jutils/jutils/1.0.0/jutils-1.0.0.jar",
    "url": """
    theres more than 2, this is just an example

    The only one you want to remove is the one that refers to "client.jar", which is the name of the Minecraft jar on Mojang's servers; for example, for 1.6.4 it is this; I believe that all versions use "client.jar":

    "downloads": {
        "client": {
            "sha1": "1703704407101cf72bd88e68579e3696ce733ecd",
            "size": 4745096,
            "url": ""
        "server": {
            "sha1": "050f93c1f3fe9e2052398f7bd6aca10c63d64a87",
            "size": 6146738,
            "url": ""
        "windows_server": {
            "sha1": "30d3267c6b04422ef6349226ee539173f848574c",
            "size": 6542514,
            "url": ""

    This also includes the server download, which can probably be left in but there is no point in leaving it in for a modded version; I just removed everything seen here. The downloads for other files are not really needed either but unless you are modifying them for some reason they can be left in (e.g. making the game use a different version of LWJGL to fix issues on certain systems).

    This confusion is also a perfect example of why I provide a pre-modified json with my mod, as this is likely the main reason why this method of modding fails (I've had people tell me before that they tried to install one of my mods and the version did not show up or had an error on launch, which were very likely caused by a malformed json file).

    You'd also think that somebody would have made a generic installer for jar mods by now; essentially, something where you add your mod's files to a folder within the installer jar, along with a file that sets the name of the profile and such and you just run it like any other jar file to install it (I suppose that nobody ever made one because jar mods for current versions are not very common these days; most of the ones that are still being updated, like Optifine, have their own installers, and few modders support older versions of their mods).

    Posted in: Mods Discussion
  • To post a comment, please or register a new account.