main/MineralVein v1.3

MineralVein - Enrich your World! [1.2.5-R1.0]

Version: v1.3

Tested Through: 1.2.5-R1.0

Forum Post: http:forums.bukkit.org/threads/mech-mineralvein-v1-0-enrich-your-world-1-1-r8.64810/

MineralVein is a plugin designed to increase available resources per chunk by causing admin specified blocks to re spawn after a set period of time. The plugin also allows for degradation that causes some blocks to simply disappear as normal to prevent inflation. Whenever a block is mined, MineralVein checks to see if that block is managed. Then it checks to see if the block should degrade and if not replaces the block with a placeholder and drops its resources as normal. After a set amount of time the placeholder will revert to its original state and will once again be available for mining.

Features

  • Ability to manage any type of natural block.
  • Blocks respawn when mined with custom cooldown timers.
  • Blocks have a chance to be destroyed when mined based on custom degradation probabilities to prevent having infinite resources.
  • Messages that will tell players how long until a block is reset when it is mined. As well as messages that let players who attempt to mine an * unavailable block know what the block will be when it re-spawns.

Info

mineOriginalOnly:

<Boolean> (Either true or false for enabling / disabling this feature)

This allows for the server to keep track of which blocks are placed by players and stops MineralVein from interacting with those blocks. If enabled this will stop players from making private mines but can be a fun option to disable on PVP servers to allow for looting of precious ore blocks.

usePermissions:

<Boolean> (Either true or false for enabling / disabling this feature)

Enabling this feature will make it so you must have the mineralvein.mvMiner permission to interact with MineralVein and cause blocks to respawn. It will also make it so that you must have the mineralvein.mvAdmin permission to access the /min and /min lock commands. If this feature is disabled only ops will be able to use /min and /min lock and anyone will be able to interact with MineralVein and cause mined blocks to respawn.

useRegions:

<Boolean> (Either true or false for enabling / disabling this feature)

Enabling this feature will cause only blocks in specified regions to be managed. Regions are specified by using /min addr commands. Enabling regions support allows for more control over the resource economy as well as allows for public mines without removing all other resources.

Cooldowns:

- <Block Type>: <Integer>(Number of seconds until the block re-spawns)

You can add any block you want MineralVein to manage to this list so long as you keep the formatting the same. From Logs to Lapis you can manage any type of natural block! The cool-down a block has tends to play into the "fun" / "management" aspect of the game by causing players to keep tabs of where and which ores will re-spawn when. It also adds an element of uncertainty when you find a placeholder block and want to know when you'll be able to mine it. Is this diamond going to be on cool-down for 10 more seconds or 10 more hours?

Degrade:

- <Block Type>: <Double>(Percent chance the block will be destroyed when mined)

This list must match the Cooldowns list in terms of which types of blocks are managed. This parameter, however, controls how long it takes a block to re-spawn when it is mined in order to limit the amount of resources player can gather. This parameter is an extremely important factor when attempting to produce a stable economy. If you have too low of a degrade the market will be flooded with resources but if you have too high of degrade there won't be enough surplus to be able to sustain an economy. (For more details on the economics of this plugin checkout the DevBukkit)

Placeholder:

<Block Type>(The type of block that will replace any block that is mined)

This parameter is used to decide what happens when a block is mined and doesn't degrade. Should it be replaced with BEDROCK or AIR? You have control over what block will act as a placeholder. Having BEDROCK as a placeholder keeps players from losing where their mined ores are and can introduce interesting challenges when mining large groups of ores and potentially building a wall of obsidian. While using something like STONE will hide a mined ore and players will be non-the-wiser until they either attempt to mine the block or it re-spawns in front of them. Using something like AIR as your placeholder removes the ability for players to prospect blocks but can act as a nice surprise when a random DIAMOND_ORE appears out of thin air.

DisplayMessages:

onBlockBreak: <String>(What players will see when the mine a block that doesn't degrade) onBlockProspect: <String>(What players who attempt to mine a block on cooldown will see)

These two fields represent the messages that players will see when the either mine a block for the first time, or attempt to mine a placeholder block that is standing in for some other block on cool-down. The variables %b, %c, and %r will be replaced with the Block Type, Block Cool-down, and Remaining Cool-down of whichever block you are attempting to mine. You can also set these fields to false or NONE if you would rather not have a message be displayed.

Permissions

  • mineralvein.mvMiner
    • Allows players to interact with MineralVein, causing mined blocks to respawn.
  • mineralvein.mvAdmin
    • Allows players to use MineralVein commands like /min lock.

A typical view while mining. typical

MineralVein keeps blocks around so you can mine them later. keepingblocksaround

But degredation keeps the server from flooding with resources. degradation

Once an ore has been mined you can check to see what kind of ore it is, but it won't tell you how long until it respawns to stop ninja's from stealing it! ninjas

Development / Fixes in Progress

  • Towny Compatibility.
  • WorldGuard Hook.
  • Multi-world (Multiverse) support.
  • Commands for block management (e.g. Ending a cool-down on a specific block)
  • Different placeholders for different blocks.
  • Support for blocks with data fields. (e.g. Logs)
  • Support for block ID's in the config.yml

FAQ

[Q] Will I need to make a new world in order to use this plugin?

[A] No! You can use MineralVein with an existing world, no problem.

Economics / Resource Management

Since one of the main goals of MineralVein is the allow servers to increase the amount of resources / chunk I thought I would break out some math to give some solid numbers for server admins to work with. As well as provide some insight on how one should set the cooldown and degrade factor for each block.

Lets assume that your server has 1000 chunks, and there are 3.1 diamond ore per chunk (MC Wiki). Lets further assume that your server has 10 players who each mine an average of 10 diamonds per hour. Thus the total number of diamonds per hour produced would be 100 (10 players * 10 diamonds / hour*player).

Well that's a disappointing looking graph...

Since every time you find diamond you mine it, you will only ever know where 100 are at a time (assuming a discovery rate of 100 / hr)

A server not running MineralVein would exhaust those 1000 chunks in 31 hours. If we assume your players play an average of 2 hours a day then those 1000 chunks would only last you a little over 2 weeks!

MineralVein mitigates this problem by increasing the number of available resources per hour. Lets say we set our cooldown for diamonds to be 2 hours and the degradation to be 5%. This means that the number of diamonds available per hour would decrease by 5% of the number of diamonds mined. So instead of lasting 2 weeks we now have 1000 chunks that will last for over 6 weeks (containing more than 50 blocks of diamond)!

Wow! This graph looks way better than that other graph...

Lets take a look at how changing the cooldown and changing the degradation effects the amount of diamonds available per hour.

Increasing the cooldown decreases the rate at which old diamonds may be mined. Increasing the degredation decreases the number of diamonds that can potentially be available.

Whoa! My server could potentially look like this?! That's incredible! I should give this guy money...

Maximum Number of Mineable Diamonds / hr = (discoveries / hr) / degradation

In general, If your server has an infinite amount of diamond ore in it, the maximum number of mineable diamonds is equal to discoveries per hour / degradation. (i.e. assuming all of the diamond that is known of is mined every time it is available). The time is takes to reach that asymptotic value is linearly proportional to the cooldown.

That is... that if it takes 22 hours to reach 90% maximum mineable ores when the cooldown is 1, then it will take 44 hours to reach 90% maximum mineable ores when the cooldown is 2.

Also, the time it takes to start losing mineable ores is simply equal to (# of diamonds * cooldown) / (discoveries / hr). The degredation only effects how quickly you reach that maximum number of mineable ores, and how quickly that maximum is reduced once you begin to run out.

So a general tip is that if you know how many new ores are being discovered each hour, and you know how many diamonds you want to introduce into the economy every hour and your server is not bounded then you should set the cooldown and degradation according to the formula above. If your server does have boundaries then you need to do some thinking and figure out how long you need to make your server last (before a new world / update / ect) so that your players will be able to continue to get resources and have fun the entire time.


Comments

Posts Quoted:
Reply
Clear All Quotes