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
-
View User Profile
-
Send Message
Posted Dec 23, 2011@M0rt1mer
Actually I tried with density -0.4 and density -0.8 and they doesn't work properly either like density -1.0, more than that works better with density 1.0.
Well, I'm doing manually applies to world on every chunk and stuff like that, I bet this will work for the thing I want to, I only hope apply it too much to the world will not mess it up.
Thanks for all the help
-
View User Profile
-
Send Message
Posted Dec 23, 2011I have a question about this, Is it possible to make it so that each vein is a super dense (no stone or anything else inside it) vein and are spaced out a bit? so that if you find one you have a large continuous vein of ore only 4 or 5 blocks thick but 15-20 blocks long, but there aren't a ton of them everywhere. I have been trying but i can't figure it out to make it work just right.
-
View User Profile
-
Send Message
Posted Dec 22, 2011From what I understand with the plugin is that you can assign an existing ID to a custom block and set a new data value - Config Sample:
So I was thinking of doing the same thing with stone or one of the ores, to create the new blocks. Spout has some limitations yet on block additions yet, and so far I cannot use /give or /i to get the items assigned these values. Spout is incompatible with ModloaderMP so I am not sure how the Block ID things works with it. It has it's own API to add materials.
-
View User Profile
-
Send Message
Posted Dec 22, 2011@M0rt1mer Yup, that seems to have fixed it.
Would be kinda nice to see a progress report of some kind so I have an idea of how long it's going to take convert things.
-
View User Profile
-
Send Message
Posted Dec 22, 2011@Raptor2213: It doesn't, because I didn't do it right. The command doesn't require the permission, it only checks whether you have it and if not, it fails, which then CB translates to the "\mineralvein apply ....". @Zidkon: In this scenario, does only gold generate wrongly, or all ores? Seems to me that densBonus -1 somehow breaks the entire thing, but I have no idea how it could. The apply command test every single chunk in the area, and only works on those that have been generated already. However there is a set amount of chunks to be done over one tick, so using this command for large areas will slow the process down. @Quezax: Yes, since 1.3.8 or so it can work with metadata, use - instead of : (like 1-1)( because : is already used by YAML formatting, I had to use -). However there have been some issues with block ID's >255, how do you work with those in Spout?
EDIT: I uploaded new version, it should now use permissions correctly (giving the correct error message I mean). Also includes java heap space check (won't apply to chunks unless there is at least 50MB of free heap space), and includes debug mode. If you add "debug: true" to the top level of veins.yml, it will show some debug messages. @Zidkon: I was able to recreate the error, somehow it seems that if any one of the ores has density ore densBonus set to 0/-1 respectivelly, it will disable deleting old ores. No idea so far why this happens.
-
View User Profile
-
Send Message
Posted Dec 21, 2011Question: When you say any ID, does that include data values? Like does it support 1:1, 1:2 1:3 like wool data values?
I am wondering as I am trying to get Spout Materials and your plug to work together to make new ore types.
Thanks for an awesome plugin!
-
View User Profile
-
Send Message
Posted Dec 21, 2011@M0rt1mer
I configured the file, and run CraftBukkit with the plugin inside, it created the world (without activating any plugin of course) when it finished creating I applied first time normal command "/mineralvein apply world" it finished.
The configuration I applied was having Gold Ore with densityBonus: -1.0 (Suppose no ore), I enteredthe server with X-Ray client to check, and at the position 0 0 it was perfect, NO Gold Ore, then I started to move, when I start create new chunks the Gold Ore start appearing, like they would be normally when you don't apply MineralVein, of course this happends with the plugin active..... Plugin is not being applied to newly chunks, at least no in the correct way :/
I have another question, what happens if I try apply in a zone of chunks where chunks haven't been created yet? Does it finish faster than usuall?
-
View User Profile
-
Send Message
Posted Dec 21, 2011@M0rt1mer In the case of an invalid permission, PEX tells me that I don't have enough permissions.
I'm using the same permissions that I did when 1.3.8 crashed my server on an apply. I also double-checked the permissions file, it's set to "MineralVein.apply".
I'm using it myself, not from the console.
-
View User Profile
-
Send Message
Posted Dec 21, 2011Raptor2213: If I understand bukkit behavior correctly, only way it would type that is when the command function failed, which would happen if an unathorised person is trying to use the command. Are you using it from console? (Or player with MineralVein.apply permission)(I am not sure whether permissions are case-sensitive or not)
-
View User Profile
-
Send Message
Posted Dec 20, 2011Updated to 1.3.9. Now, instead of crashing my server, the apply command doesn't work at all (see below).
Tried by name (exact case, and all lower-case) and by number (0 and 1).
Tried filling in the X,Z,H,W co-ords.
Tried multiple worlds.
(simply returns \mineralvein apply worldname [x] [z] [width] [height] when I execute an apply command).
It still seems to be populating new chunks with ore though (if I delete an untouched chunk and re-make it, the ore changes/vanishes).
Almost acts like it did when MultiVerse wasn't enabled and it didn't 'see' my world(s).
-
View User Profile
-
Send Message
Posted Dec 16, 2011So I was testing it out on a world, and I got this when running your plugin.
18:20:11 [SEVERE] java.lang.OutOfMemoryError: GC overhead limit exceeded 18:20:11 [SEVERE] at mort.mineralvein.VeinPopulator.populate(VeinPopulator.java:68) 18:20:11 [SEVERE] at net.minecraft.server.ChunkProviderServer.getChunkAt(ChunkProviderServer.java:178) 18:20:11 [SEVERE] at net.minecraft.server.Chunk.a(Chunk.java:820) 18:20:11 [SEVERE] at net.minecraft.server.ChunkProviderServer.getChunkAt(ChunkProviderServer.java:96) 18:20:11 [SEVERE] at net.minecraft.server.PlayerInstance.<init>(PlayerInstance.java:31) 18:20:11 [SEVERE] at net.minecraft.server.PlayerManager.a(PlayerManager.java:45) 18:20:11 [SEVERE] at net.minecraft.server.PlayerManager.movePlayer(PlayerManager.java:141) 18:20:11 [SEVERE] at net.minecraft.server.ServerConfigurationManager.d(ServerConfigurationManager.java:151)
Ended up crashing the server. Not quite sure what the issue is here, as I've never got this before till I started testing MineralVein.
I also had the bugged "Sky Ore's" version installed for 24hrs a few weeks back and it never crashed like this.
-
View User Profile
-
Send Message
Posted Dec 16, 2011@M0rt1mer bormoshka: I am not sure what exactly you mean, but if you want larger and more distant veins, use larger densLeght.
No-no-no .I want to ensure that resources were located in groups, and so we can specify the distance between the bunches for each ore.
bormoshka, zidkon: Did you change the config file before starting world, or after first run? That's the only idea I have why it could work differently.
1. change config,
2. start server. create new world.
3. flying around
4. shutdown server
5. delete world
6. back to first step
Every time I create a new world.
-
View User Profile
-
Send Message
Posted Dec 16, 2011@Raptor2213: The error you posted is some sort of synchronization failure, I'll try to update the application process to synchronized behavior later today.
-
View User Profile
-
Send Message
Posted Dec 15, 2011@M0rt1mer
Just one person, me, executing the command, not changing any blocks.
Additionally, without MultiVerse, I couldn't get the command to run (on any of the 3 default worlds). Tried by name and by number.
-
View User Profile
-
Send Message
Posted Dec 15, 2011@Raptor2213: Was anyone online while runnning the command? This is some kind of inner bukkit problem, propably caused by rapid loading/unloading of chunks. Also, Zidkon claims that the world is modified even after this error, if you somehow get it to save. Without multiverse, it can't work for any worlds but the 3 standard ones.
-
View User Profile
-
Send Message
Posted Dec 14, 20111.3.8 crashes my server whenever I do a /mineralvein apply <worldname> on it. Default config file.
P.S. On the possibility that it might be an issue with certain plugins, I tested it with minimal plugins: PermissionsBukkit, Multiverse, SuperpermsBridge, and, of course, this plugin.
Still crashes the server.
P.P.S. It doesn't seem to work without multiverse. On a server without it, it wouldn't accept the command to generate a map without MultiVerse installed.
-
View User Profile
-
Send Message
Posted Dec 13, 2011bormoshka, zidkon: Did you change the config file before starting world, or after first run? That's the only idea I have why it could work differently.
@twrntg: Sorry, but I deleted your message, it was several pages long. It seemed there was some infinite loop inside chunk loader. Does this happen every time?
bormoshka: I am not sure what exactly you mean, but if you want larger and more distant veins, use larger densLeght.
MojoManagement: This I have never seen before, do you use any other plugins, or changes in veins.yml?
-
View User Profile
-
Send Message
Posted Dec 11, 2011Are you sure this is working automatically for newly generated chunks?, I just setted densityBonus of gold to -1 and applied, on the applied zone, no gold ores, if I explore a little on new chunks they start appearing normally :/
-
View User Profile
-
Send Message
Posted Dec 7, 2011@twrntg Oh U
@bormoshka
Oh sorry, not cb1337 cb1557
-
View User Profile
-
Send Message
Posted Dec 7, 20111.3.8 - 1556:
2011-12-07 22:49:14 [INFO] Mineral Vein application started 2011-12-07 22:49:27 [SEVERE] java.lang.IllegalStateException: TickNextTick list out of synch 2011-12-07 22:49:27 [SEVERE] at net.minecraft.server.World.a(World.java:2300) 2011-12-07 22:49:27 [SEVERE] at net.minecraft.server.World.doTick(World.java:1740) 2011-12-07 22:49:27 [SEVERE] at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:508) 2011-12-07 22:49:27 [SEVERE] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:419) 2011-12-07 22:49:27 [SEVERE] at net.minecraft.server.ThreadServerApplication.run(SourceFile:457) 2011-12-07 22:49:27 [SEVERE] Unexpected exception java.lang.IllegalStateException: TickNextTick list out of synch at net.minecraft.server.World.a(World.java:2300) at net.minecraft.server.World.doTick(World.java:1740) at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:508) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:419) at net.minecraft.server.ThreadServerApplication.run(SourceFile:457)