Arable
Flexible, hardcore farming for the masses
Arable lets you tweak how fertile or hostile your world's arable land is. Do you live in a farmer's paradise, where every seed instantly grows to maturity? Or do you live in a desolate wasteland where crops wither and die, even catching fire in the searing heat of the sun? With Arable, you can control the agricultural impacts of all kinds of environmental conditions, including biome, growth stage, elevation, light level, and more.
Your world, your rules
Arable gives you a single, immensely powerful tool to bend the world to your whim: arable rules. Each rule has a set of conditions and a set of effects. If a crop matches a rule's conditions, the effects get applied. Effects can include anything from increasing or decreasing the growth rate (both the average rate and the variability) to a crop's chances of succumbing to a number of nasty effects such as being uprooted or incinerated. The best part about it is that you can have an unlimited number of rules per world and every rule can stack!
Features
Conditions
- block type
- growth stage
- biome
- wetness
- humidity
- temperature
- elevation
- weather
- time of day
- light level (total, sunlight, and/or blocklight)
Effects
- slow down or speed up plant growth rate
- affect crop growth variability
- ripen a plant or grow a mushroom tree
- cause plants to wilt, reversing growth
- uproot plants
- destroy plants, leaving nothing behind
- ignite plants
- bury plants under snow
- start a nasty (and contagious!) blight
There are several other plugins that I would like to integrate with, including Seasons and Terrain Control. I would also like to add the /arable command so you can query, modify, and reload arable rules without restarting the server. If you have any suggestions of your own, I would love to hear about them. You can let me know via comment, message, or ticket.
Configuration
There are four configuration sections: rules, defaults, worlds, and advanced. The following sections are brief introductions to each. For more in-depth information, including a list of supported conditions, effects, blocks, and biomes, check out the Configuration page.
rules
The rules section is the meat of your configuration file, it's where you list out all of the arable rules that you want to use. In fact, for single-world setups, the rules section is the only section you'll need to use. Here is a sample rules section that shows a small number of the available conditions and effects:
rules: desert-sun: # conditions blocks: [wheat,melon,pumpkin,carrot,potato,sugar] biomes: [desert,deserthills] minSunlight: 9 # effects rate: 0.5 spread: 0.1 wilt: 0.1 die: 0.1 burn: 0.1 cold-frost: # conditions maxBlocklight: 10 maxTemperature: 0.1 # effects frost: 0.1
defaults
By default, all rules in the "rules" section apply to all game worlds. If this is what you want, then you're already done! If, however, you want to override the default rule list, you need to create a "defaults" section. The format is simply a list of the default rule names. Here is a defaults section that applies the "desert-sun" rule by default (leaving out "cold-frost"):
defaults: - desert-sun
worlds
The worlds section lets you override the default rule list for specific worlds. You only need this section if you want to have worlds with unique rule lists. If a world is not listed here, it receives the default rule list. Here is a worlds section that only applies the "cold-frost" rule to WorldA, and only applies the "desert-sun" rule to WorldB:
worlds: WorldA: - cold-frost WorldB: - desert-sun
advanced
The advanced section is for modifying how the plugin does its job. This is a section that you will most likely never need to deal with, but it's here in case you need to exercise extreme control over Arable. Here is an advanced section that doubles the update interval (might be useful if you encounter lag):
advanced: interval: 2
Compatibility
The way the plugin works right now, it probably won't be compatible with plugins that restrict crop growth. I have an idea of how to fix this, though, and will hopefully get the time to do so in the future. If there are any major plugins in the farming and/or area protection genre that you have discovered are compatible or incompatible with Arable, please let me know and I'll list them here:
- Seasons and SeasonsPlusPlus both have their growth rates replaced with Arable's rates. There is currently no way to limit rules to particular seasons, but this is a feature I have decided to work on in the near future (see Ticket #2).
- TerrainControl custom biomes don't work in the biomes condition, but they do respond to humidity and temperature conditions.
Bugs
Seeing as this plugin is fairly new, there is a chance of it containing a bug or two. There is a small chance that these bugs may in fact be harmful to your server in some way. While I will be deeply regretful and work my hardest to solve any such problems, I cannot be held responsible for them; you use this plugin at your own discretion.
In the event that you discover a bug, I would greatly appreciate it if you let me know, preferably by opening a ticket.
Versions
v0.9.2 [beta] [CB 1.4.7-R1.0] - fix lag and memory issues on shutdown
v0.9.1 [beta] [CB 1.4.7-R1.0] - add missing crop types, grow cocoa pods
v0.9.0 [beta] [CB 1.4.7-R1.0] - moved data to "data" folder, new effects and conditions, bug fixes
v0.8.1 [beta] [CB 1.4.7-R1.0] - fixed several bugs, including the addition of Java 6 compatibility
v0.8.0 [beta] [CB 1.4.7-R1.0] - initial beta; looking for feedback and bug-squashing
Please update! :DD
PwnPlantGrowth has some of the features, but not all of them. Wish the author would come back and update, but he didn't respond when I tried to contact him nearly five months ago.
Last time the author logged in was May. I think it's save to say this is abandoned
Oh. my. god! This plugin is SICK! I LOVE this idea. However, it's in 1.4.7. Please update to 1.6.2?
Even on the default config, I'm getting a problem where my crops (wheat) are growing instantly - that is, they keep skipping growth steps, going from seedlings to full-grown crops. This happens despite the fact that there are no conditions under which I have "ripen" configured to happen. Even after I deleted my old config file and generated a new one, the problem persisted.
EDIT: Oddly, the issue seems to have stopped now. I am unsure why; I don't think I removed any other plugins in the past couple of days. I tried replicating the conditions under which the problem originally occurred and still couldn't make it happen again.
EDIT2: The issue appears to be caused by the "wilt" function - any time a plant attempts to wilt, it instantly grows to full maturity (rather than losing a stage of growth as expected). As far as I have observed, the other features of the plugin work as intended.
Does this work on 1.6.2?
Is this getting updated for 1.5.2 soon :S?
@MasterSlimFat
Hello, I'd be happy to help you make the rules you're looking for. Do you have some idea of how you want your plants to grow?
just bought a new server, installed your plugin, and i simply can not understand how the .config works.
Ack, didn't check after I posted. It was interpreting the pound signs as formatting. Here it is without WikiCreole messing with it (using plain text markup setting):
rules:
carrots:
# conditions
blocks: [carrot]
# effects
rate: 2.0
potatoes:
# conditions
blocks: [potato]
# effects
rate: 4
@Twilight314
Is that your rules section? If it looks like that, the formatting might be off.
Glad to help. Well, I was still just playing with things to see if it worked.
rules: carrots:
potatoes:
I set this up so that wheat would be normal speed (As a control group to compare to), and carrots should be double, and potatoes 4 times as fast. I used a decimal for the 2, and not the 4, to see if it made a difference.
By default, wheat, carrots, and potatoes all grow at the same rate, so I could see after just a partial day if it was working or not, by seeing potatoes or carrots all growing much faster than the wheat.
I'm happy to help test further, if that would be useful.
@Twilight314
What are your rules? I'll try to make my own world so I can iron out the problems without posting a dozen of these snapshots. Thanks for helping out.
@keharriso
OK, I tried it, and it still doesn't affect growth on non-standard biomes. Thanks for giving something to try so quickly, though.
I checked the PwnPlantGrowth plug-in, which does some of the things Arable does (Changing growth rate, biomes, but isn't nearly as customizable), and altered growth rates *do* work on the ExtraBiomesXL biomes (at least in my tests) , but I don't know what's different about the way it's being done over there. Maybe you could check the code and see how he's handling it?
I hope you can get it resolved soon, but either way, thanks again for Arable!
@Twilight314
Thanks for the feedback. :-)
If this version doesn't work, I probably have to do a little more research on this one, possibly create a modded world myself to test out a few things. This file has not been approved by the Bukkit Dev mods, so if you try it, you do so at your own risk!
Ah, that sounded a little scary. I only added one measly line of code, so I'm 99.99% certain that I didn't introduce any problems.
Changes: I added "unknown" as a possible biome entry and also added it to the default biome list.
First of all, excellent plug-in. The flexibility and level of control is unparalleled, and you've done a great job on giving the user the ability to fine-tune things in almost any way.
However, I'm having a problem. I'm using the ExtraBiomesXL mod, which adds in many extra biomes by sometimes replacing a vanilla biome where it otherwise would have been. I was hoping that Arable would just treat it like the biome it normally would have been (For example, desert, instead of the new mountainous desert), but it does not. As near as I can tell, Arable has no effect in any of the new biomes.
Is there a possibility of specifying some sort of "default" biome setting, so that even unknown/new/modded biomes will have something to default to? When I was trying it, I had no biomes specified, which I was hoping would include the unknown ones, but it doesn't.
Just a way of setting a rule to cover any "non-normal, not-listed, non-vanilla" biomes would be great, so if Arable hits a biome it doesn't know, it can fall back to that rule.
I don't know how difficult that would be, but if it isn't too complicated, it would be much appreciated. Regardless, as I said, wonderful work on this plug-in, and I appreciate all the hard work you've put into it.
@ikarirain
That sounds like a very rewarding idea, thanks a bunch for taking the time to post it here! What I think you're suggesting is a sort of Arable API that other authors can use to register their crops for the system. I'm definitely interested in that, it'd make the plugin much more useful to everyone. People shouldn't have to choose between flexible farming and expanded farming. I'm on break for the next week or so, which means I might be able to add in some more features in the near future. After I get through the two or three features I've been promising for a month now, I'll look into making an API.
@PickleBumps
That's great news, I'll be sure to keep on top of the Bukkit updates in the coming days. Your feedback is invaluable, as always. :-)
Hey there! Just wanted to say this plugin works on 1.5 as far as I can tell. Again, awesome-sauce!
I'd love to see this plugin become something huge, since it would add so much configurability to farming. So I thought long and hard on any kind of possible solution that would, in the long run, allow you to create compatibility with non-bukkit farming mods, and at the same time give the mod authors the ability to configure their crop growth rates by using your plugin to control them.
The idea would be to break down Arable into a core plugin with additional Arable plugins. Obviously you have all the vanilla crops covered, but a plugin system for Arable would allow mod authors to create plugins or library files with all the information on their crops. The core would read and archive those files and the new crops could then be added to the main config file that determines how the crops react.
Of course, I'm not sure if I'm explaining it properly. It makes sense in my head, but maybe not so much in text, haha. The end result, however, would be a plugin that would be compatible with other mods that you dont have to work into the plugin (that would be done on the mod authors part) and the mod author could pass on creating config files for their mod in favor of letting your already-finished plugin handle the configs. A benefit for your plugin, the mod author, and the farming community. =]
That being said, I dont know a darned thing about java coding. So the question would be, would it be possible to pull something like this off?
The particular mods in question that I use are FarmCraftable and BetterFarming. I wouldnt quite know how to explain how some of the more interesting crops grow, such as fruit trees, but I did a lot of searching on farming expansion and those two were the only major mods that added a large amount of farming content to the game.
As far as configurable growth rates go for custom crops, if you were to manage that, it would be a giant leap for any servers who want to expand on farming selections. These days, its difficult to find any good farming mods or plugins because often the crops grow so fast that a single player could supply a servers worth, or that the coverage of agricultural nerfs (for lack of a better description) is too little to make any major impact.
Thats why I like Arable so much, because with it I could realistically determine certain biomes to be more hospitable to certain crops, and more hostile to other crops. The end result is that biomes become more distinct in what they have to offer. Of course, it also helps to be capable of disabling crops above and below certain levels so that massive bedrock-to-skyline superfarms aren't created, lol.