Botany
Botany
Botany is a bukkit server plugin that attempts to recreate natural plant regrowth in the Minecraft world.
Reasons to use Botany
Ever got tired of having to use bone meal to make your landscapes look natural again? Fighting lots of spiders causing all your grass to break? Are your plains looking really, really plain? This bukkit plugin slowly and naturally will grow back plants that are natural to a biome, such as a thick grass cover in Savannas, flowers on plains, spruce trees in Ice Biomes.
Normal Minecraft worlds are very static - only players will cause changes to the world, perhaps an ender will move some blocks around. This plugin will, just like Sedimentology, create a more natural and dynamic world that adapts and behaves as the real world. If you mow your grass, it will slowly regrow over time. If you chop down trees, saplings will come up over time and regrow the forest.
Considerations
Currently, Botany plants most trees, grasses, ferns, and sunflowers. Most of the regular flowers are not planted due to the sheer number of possibilities and combinations, but they may be added in the future.
Some plants like to grow in little clusters, and Botany can not yet achieve this result, instead, Botany tries to litter plants of a type in a somewhat unordered way so that the density is close to the measured experimental values.
The list of plants that Botany plants in each Biome is configurable (see below) and can be modified by a server admin to exclude plants or add new plants that are not covered by the base list.
Do you like a more dynamic world? Please check out my Sedimentology plugin too!
Using this plugin together with other plugins?
Recommendations for other plugin's settings:
UberForest
- isForestGrowthEnabled: false
UberForest's way of growing forests is not compatible with Botany, make sure you set "isForestGrowthEnabled: false" in UberForest's config.yml. UberForest does nothing to prevent overgrowth of forests and will happily spread spread trees that do not belong in certain Biomes. Also, UberForest is not maintained and cannot properly create seedlings for Acacia and dark oak trees.
PwnPlantGrowth
PwnPlantGrowth modifies seedlings or plants, but doesn't interfere with how forests spread in the long run. The combination should be without any issues, and PwnPlantGrowth will create an even further natural simulation. Recommended!
Sedimentology
Goes without speaking that Sedimentology was designed to work well together with Botany. While they share code, the plugins do not depend on eachother, but the outcome of running both will enhance gameplay and create interesting benefits and drawbacks for users, creating a dynamic world that they will appreciate in the long term.
Configuration
Information about commands, permissions and config.yml switches are found on the Configuration page.
Information about the plants.csv file format and how it works can be found on the plants.csv page.
For V7 I'm working on some code that will allow you to define different plant sets for derivative BIomes. The way it will work is that if you define plants (one or more) for e.g. a STONE_BEACH that plants defined for BEACH will no longer be planted on a STONE_BEACH biome (so it's an override). The plants for COLD_BEACH will still be the same as the BEACH plant set, since you have not defined an override set of plants for that biome.
The default plant set will most likely not use these overrides since experimentally I don't see any statistical difference that warrant it enough to write 300+ rules to do what can now be put in 56 planting rules, but some people may find this useful to define some local server tweaks.
@yurisuika
So, I'd like to see this in action - can you tell me what setup you use - plugins etc?
@pilvimaa
They are covered. After extensively looking at the plants in TAIGA_HILLS and comparing it with the plants in TAIGA, I noticed that they're largely identical - within statistical variance. I scanned hundreds of biomes and this holds for all the derivative biomes, so there's no need to split it out - that's just more work for no effect.
So the code considers those Biome's equivalent and will plant the plants that are defined in TAIGA in all of the derivative TAIGA biomes. The code that does that looks like this: Biome reduction code.
I've added some more documentation to the plants.csv page so that this is a bit clear, including a list of which Biome's are equivalent and how to use it in the file.
@s0f4r @s0f4r
Yes, this is exactly what I was thinking of! This is wonderful.
I only need four biomes for my seasons (autumn:desert, winter:ice plains, spring:jungle, summer: plains), but this is how I've configured it so far~
DESERT,DEAD_BUSH:0,SAND,DEAD_BUSH:0,0.05000 DESERT,LONG_GRASS:1,GRASS,LONG_GRASS:1,0.05000 DESERT,BROWN_MUSHROOM:0,DIRT,BROWN_MUSHROOM:0,0.05000 DESERT,RED_MUSHROOM:0,DIRT,RED_MUSHROOM:0,0.05000 DESERT,BROWN_MUSHROOM:0,HAY_BLOCK,BROWN_MUSHROOM:0,0.05000 DESERT,RED_MUSHROOM:0,HAY_BLOCK,RED_MUSHROOM:0,0.05000 DESERT,BROWN_MUSHROOM:0,PUMPKIN,BROWN_MUSHROOM:0,0.05000 DESERT,RED_MUSHROOM:0,MELON_BLOCK,RED_MUSHROOM:0,0.05000 DESERT,BROWN_MUSHROOM:0,WOOD,BROWN_MUSHROOM:0,0.05000 DESERT,RED_MUSHROOM:0,WOOD,RED_MUSHROOM:0,0.05000 DESERT,YELLOW_FLOWER:0,GRASS,YELLOW_FLOWER:0,0.00100 DESERT,RED_ROSE:3,GRASS,RED_ROSE:3,0.00100 DESERT,RED_ROSE:8,GRASS,RED_ROSE:8,0.00100 ICE_PLAINS,DEAD_BUSH:0,SAND,DEAD_BUSH:0,0.01000 ICE_PLAINS,LONG_GRASS:0,GRASS,LONG_GRASS:0,0.01000 JUNGLE,LONG_GRASS:1,GRASS,LONG_GRASS:1,0.35000 JUNGLE,LONG_GRASS:2,GRASS,LONG_GRASS:2,0.10000 JUNGLE,CARROT:0,SOIL,CARROT:0,0.50000 JUNGLE,POTATO:0,SOIL,POTATO:0,0.50000 JUNGLE,RED_ROSE:1,GRASS,RED_ROSE:1,0.00100 JUNGLE,RED_ROSE:4,GRASS,RED_ROSE:4,0.00100 JUNGLE,RED_ROSE:5,GRASS,RED_ROSE:5,0.00100 JUNGLE,RED_ROSE:6,GRASS,RED_ROSE:6,0.00100 JUNGLE,RED_ROSE:7,GRASS,RED_ROSE:7,0.00100 PLAINS,LONG_GRASS:1,GRASS,LONG_GRASS:1,0.25000 PLAINS,DOUBLE_PLANT:0,GRASS,DOUBLE_PLANT:0,0.01000 PLAINS,SUGAR_CANE_BLOCK:0,SAND,SUGAR_CANE_BLOCK:0,0.15000 PLAINS,CROPS:0,SOIL,CROPS:0,0.10000 PLAINS,RED_ROSE:0,GRASS,RED_ROSE:0,0.00100 PLAINS,RED_ROSE:2,GRASS,RED_ROSE:2,0.00100 PLAINS,RED_ROSE:3,GRASS,RED_ROSE:3,0.00100 PLAINS,RED_ROSE:8,GRASS,RED_ROSE:8,0.00100 PLAINS,YELLOW_FLOWER:0,GRASS,YELLOW_FLOWER:0,0.00100
This allows me to do some really cool things, like having fungi grow over old gourds in autumn. Thanks so much for this!
I noticed you haven't covered all the variations of biomes like TAIGA_HILLS, MESA_BRYCE etc. Is it because it's not yet finished or is there some other reason?
V6 is out, and it features an entirely admin-configurable plant matrix file that can be edited to your hearts' desire, allowing you to remove or add plants from the list of plants that will be planted. The default file looks something like this (short example, this is not the entire list):
With this file you could easily remove plants that are a valuable resource (saplings) to protect your economy, or adjust planting densities, or even just add some flowers here or there.
v5 is now available! I strongly encourage everyone to upgrade from v4 and earlier to v5 as there are significant bugfixes in this release that help with stability and performance. You may wish to remove your config.yml as well if you upgrade to get the new default settings.
Cheers, enjoy!
@yurisuika
Can you elaborate what you want to configure? And why?
Understanding why you want this is almost more important than asking what you want to configure.
I've been contemplating making the planting matrix entirely configurable (editable in a text file), but this will take some time as the current data structure isn't easy to get imported easily - it will be a text file that can easily introduce a catastrophic error if typo'ed.
Brilliant plugin! Glad the update brought some configurability, as I use a seasons plugin and had cacti grow in autumn, heh!
Would it be possible to have additional configurations to set the plants for each biome? It would work amazingly with servers that use custom terrain generation.
Still more early bugs, seems like v4 is a bit too hungry for resources, so I suggest people edit the config.yml: 'ticks' and set it to 20 or even higher for now. I'm working on a permanent fix that will alleviate the problem more structurally, as well as polish a few other issues, such as the protection plugins not working, and plants being planted in obnoxious regular patterns.
So, please keep updating if you're testing this plugin or trying it out! Thanks! Will be working on v5 to get it out for the weekend.
Just tested this plugin out to see how it works. I really like the concept and can't wait to see the fixes in v4. Thanks for creating and releasing a cool plugin to help add a little more realism to mc.
I've discovered a bug in the double tall planting in v3 so I'll be releasing a bug fix version v4 soon. This new version will also have a "master adjustment slider" in the form of a global density factor that can be set from the config.yml, so that server operators can make plants grow less or more dense based on their liking.
The default value is 1.0. A density of 2.0 will likely overcrowd your server, so if you want more plants try 1.1 or 1.2. A value of 0.5 - 0.1 is good for people who like their plants really scarce, but the downside of using low values is increased areas need to be scanned, so be careful with that, as that consumes extra resources.
Also, protection is not yet properly functioning, I'll hopefully get a fix out for that soon as well.
V3 is out, and it will plant the normal plants in almost all biomes (some very rare ones like hell, sky, ice shard biomes are excluded). It also contains scanning and reporting tools and lots of usability tuning. Please test once it becomes available here.
FYI I'm working very hard on collecting data to supplement the variation of plants that Botany will plant in every Biome. In order to do so I'm currently sampling 100km2 of minecraft terrain at 50x50 block intervals and collecting statistics about every sample.
This will allow me to determine what the default plant levels are that the minecraft generator creates so that I can create a single "slider" to configure the plugin to create "really dense" vegetation, "normal" density and "sparse" vegetation, and have realistic plant density numbers for each biome and plant combination.
A single "world" scan of 10x10km2 takes 24h to run, after which I need to statistically collect all the resulting data and create mean, standard deviation numbers for each plant/biome combination, so this process will take a few days at minimum, but most likely a week or so.
I will likely publish my data as a result of this scan. While the data will be a mere sample, it should prove useful to anyone who wants to know more about plant types and densities for each biome.
@s0f4r
Fantastic!
@triarry
That's exactly what the code will do - it will work *everywhere* except inside defined zones/regions/factions/towns/etc.
Note that none of the current versions do this yet, but I have all of the needed code ready to be merged.
@s0f4r
It's good, but I'd like a way to do zones where this DOESN'T happen. Then I can sell it as a benefit for players.
Note that v2 is now available which should be fairly stable and deployable on most servers - the amount of resources is consumes is fairly limited. Feedback always welcome!
@CommodoreAlpha
Yes - I was talking about worldguard regions, factions claims, towny towns - the full list is viewable in the sedimentology plugin page.
As for enabling/disabling plants vs. trees vs. flowers, I like the idea and will consider it. It should not be too hard to implement through a config.yml type switch.
This looks fantastic. Giving it a try and bookmarking.