Mineral Vein
Mineral Vein changes the way ores are generated. Instead of lots of small, randomly placed deposits, several huge veins will be generated.
Source
MC 1.2.3 - As of MV 1.4.1, config.yml is used instead of veins.yml. The format renames the same, only name changes
Technically, Mineral Vein adds new BlockPopulator that removes all previously placed ores and generates new ones. This ensures compatibility with any other world generators, including the default one.
Veins
Veins are vast, rare areas, that are rich on particular resource. These veins are multiple chunks wide and long, their respective resources don't exist outside them. Veins aren't made completely of given material, it's just very common there, and often multiple veins of different materials overlap. This ore distribution changes mining for resources completely - you have to scout wide areas for a vein, and when you finally find one, it can supply you for quite a long time. In general, the average density of resources/chunk is simillar, but the distribution is changed completely.
Converting old worlds
By default, the plugin works as world generator and only affects newly generated chunks. However, you can force it manually to apply the algorithm to any chunks that are already present.
The command \mineralvein apply <worldname> [x] [z] [width] [height] will apply this to the selected world. Run this command just once after installing MineralVein, then you don't have to run it at all. By default the command is accessible from console and/or anyone with "MineralVein.apply" permission. (since you need to run this command exactly once, you propably won't need the permission at all.
The numbers default to 0,0 (center) and 200x200 chunks around it. If your map is bigger, use appropriate setting (widht corresponds to X coordinate, the value is in chunks).
Configuration
All variables used in ore placement can be set in config file.
worlds: default: - block: GOLD_ORE seed: 35434 density: 3 thickness: 4 densityBonus: 0 heightAvg: 20 heightVar: 20 heightLength: 80 densLength: 80 exclusive: false #biomes: [forest,swampland] #exclude_biomes: [desert] mode: replace heightRel: false
Each item of the list represents one "layer" that is generated. By default, there is one layer for each ore type, but there can be more.
seed is a unique number for each layer. If you want to create a layer with two different ores, that always uses same space, just use the same seed.
density is a chance multiplier. Higher density means more ore
thickness is vertical size (actually it's distance from the center of the vein, in which the ore can spawn, so it's one-half of the actual thickness)
densityBonus -the density in an area is determined using a random generator, that gives values between -1 and 1, where 0 and less represent no chance of ore spawning in given location. Giving a densityBonus of 1 will represent in this layer to be filled with resource everywhere on the map.
heighAvg is the average height in which this layer can be found
heightVar is the random portion of heigh, the actual heigh goes from avg - var to avg + var (in the example, setting of 20/20 would result in layer beeing between 0-40)
heightLength is distance in blocks between height definition points changes (higher values -> less frequent height changes)
densLength is distance in blocks between density definition points changes (higher values -> bigger, rarer veins)
exclusive parameter makes sure no other veins appear if this one is present (technically, it descreases their chance by the density of this ore here)
biomes is a list of biomes this vein can appear in. If this parameter is NOT present, it appears everywhere.
exclude_biomes is a list of biomes to be excluded from the list (logically this should be used when biomes option is defaulted to all)
mode allows to turn off replacement (by setting mode to "add") - this vein will just add more blocks, without removing the old ones
heightRel changes the behavior of heightAvg and heightVar. If set to true, those two will be treated as fractions of maxHeight at current position (heightAvg+-heightRel will result in a number between 0 and 1, which will be then multiplied by actual height of terrain on that position)
Changelog:
Version 1.3.7:
- Now supports ANY id, even non-existing ones. Useful for MCForge-added blocks (e.g. Industrialcraft)
- Version 1.3.4:
- Version 1.3.4:
- Two new config options - mode and exclude_biomes
- Fixed bug with using same noise generator for height and density
- Fixed apply command
Version 1.3.3:
- Fixed crash for config files that don't have "default" world setting
Version 1.3.2:
- The "Apply" command is now executed in separate thread, and worlds can be referenced by their index (failed command will display list of worlds and indexes)
- Huge changes in default config file, hopefully for the best
Version 1.3.1:
- The "Apply" command now works much better and safer
Version 1.3:
- Added exclusive and biomes parameters to config
- It is now possible to populate already existing worlds
Version 1.2:
- Added heightLenght and densLength parameters to conf file
Version 1.1:
- Fixed bugs, switched to in-built Noise generators for better results
Version 1.0:
- First release
@M0rt1mer
So by setting this to 1 for diamond ores, would diamond ore become much rarer than normal since veins themselves are supposed to be rare and a vein, when found, is only 1 block in size?
@Pandamatak: densLength equals roughly the average size of the veins (if densBonus was 0), so increasing this number will make the veins larger. (The values is actually size in blocks) @SViking: Thanks, I used this very same program, although quite old version. Didn't know they are still developing it.
@M0rt1mer
I'm using this x-ray program. Having x-ray open while running mineralvein 'apply' command does appear to corrupt the world. However, it opens quick enough for my needs.
@M0rt1mer
Is it possible to set this value negative? Because I would like to make certain ores even rarer then normal (vanilla).
What X-ray do you use? I always used the external program called x-ray, it was horribly outdated, but still worked. Now with the new map format I don't really have any program to check that. With the console there could be a problem if you controlled the server with a web interface, depending on how it was coded. It could turn out that you can't use the command at all.
@M0rt1mer
Thank you, thank you, thank you. The command works now. I really don't mind running this through the console only. Other than a one time use a an already built world, I'm more interested in the command for assessing the results of configuration changes. In that case, I'm running bukkit and minecraft_x-ray, but no client.
I "fixed" the permissions - there are none anymore and to command is hardcoded to work for console only. If anyone knows how to make permissions work, I would appreciate that (I always assumed console has permissions, but it seems it's just a regular op) @Pandamatak: The horizontal span of the veins is affected by densLength. (That only changes horizontal distribution, has no effect on rarity), the rarity of veins is affected by densBonus.
Attempting to use 'apply' through console is still yielding insufficient permissions message.
Is it possible to make it so that the veins are not *very* large?
I want the veins to be pretty big, but even rarer (than would compensate for the vein size) overall, making every ore more rare on average compared to vanilla.
Is this possible?
Working on it right now, so far I converted everything to the new specifications, but now it generates ore in the air, so I am looking into that.
When the plugin will update to craftbukkit R6 or higher? =o
any chance we could get a ETA My server really needs your plugin. this is the only plugin (that I know of) that changes ore generation with out making a new world
The reason it is saying that you do not have permission is because in the plugin.yml the permission node is listed as MineralVein.apply. For some reason bukkit doesn't like capital permission nodes so in order to fix this, simply open the jar with WinRAR and change the permission node to lower case and it will work like a charm.
Is there an eta for an update?
@Ranakastrasz
I'm having the same problem. Thought I stumbled on a work-around (turning on debug mode), but it turned out I had introduced a typo into the configuration file. While this fixed the permissions issue, the command doesn't seem to actually do anything when run with a bad config.
Unable to run the Apply command, it just says, even from console, That I lack permission.
Is it possible to have configs per world so I can have different worlds with different levels of resources?
I dont have permission to use command provided above. Even through a console.
Can i use this mod to delete all the ores off my map and if so how?
@M0rt1mer, they are, but it happens way slower than loading during veins application. you can see that watching region files' mtime on big worlds. i found that massive region update can take more than half an hour to really save (i've never waited to know exact timing). stopping the server, however, shortens it to few minutes... so, forcing unloading+saving even faster than it is now (like on server stop for that regions) should help dramatically for updating more than 8x8 regions with <4GiB heap. oh, and i'm using openjdk-7-jre 32-bit if that matters. btw, thanks for working on better ore gen! :)