Please read this post carefully if you own an automatic farm, or plan on making one. Large Automatic Farms that do not follow these guidelines, and keep triggering our anti lag mechanisms (React plugin), may eventually have its redstone removed by server staff to protect the servers stability.
What is a server-friendly auto farm and what is not?
Firstly, lets quickly go over what the difference is between a good (server-friendly) autofarm and a bad (laggy) autofarm. Without going too much into detail, some players have a fully functional automatic farm with about 52 rows each with 44 pistons per row. Each of these sections triggers about 10 seconds apart from the one before it, and therefore causes relatively little lag. Other farms however, act as one massive circuit, triggering hundreds if not thousands of pistons at a time, which is not good for the server. These farms activate the React plugin, which in turn freezes redstone and ends up making a lot of people angry. (It should be mentioned that BUD switch farms are also terrible and cause a lot of lag, but I don't believe anyone is using them since React breaks them and makes them very annoying to use).
Ok, now that we have outlined what the problem is and how to fix it, below you will find a quick little guide on how to make your farm lag less be server friendly. Keep in mind, your priority in doing this should be keeping the amount of pistons firing at any one time at or less than 50 to keep the TPS stable and happy.
Guide for making a server friendly Automatic Farm
Step 1: Create a farm that is not BUD activated, but rather uses a redstone circuit to activate itself. This will prevent react from permanently breaking your farm, and allows the farm to automatically reset itself the next time your clock tells the farm to activate.
Example: A farm circuit that can easily reset itself if frozen by React.
I know this doesn't show this very well, but just notice that whenever a current is applied to the redstone, the pistons all extend. This means that if the signal happens to freeze along the way, simply activating the redstone again when your clock counts down will fix the freeze and allow the farm to keep working, without any intervention on your part.
Step 2: Break your farm up into smaller sections. This is the biggest and most important part of making a farm that does not lag the server, and I cannot stress enough just how necessary this is. Both one row of 100 pistons and 4 rows of 25 pistons yield the same output with regards to pumpkins, cane or whatever else, but each affects the server very differently. The single row of 100 pistons can cause moderate server lag and therefore trigger React. When broken up into four sections however, the load on the server is severely reduced and therefore does not create lag.
Example: How to easily split your rows or sections into multiple parts.
Notice how the row on the right has all pistons extend at the same time, whereas the row on the left has half of its pistons extend at one time, and the other half some time later. (Look at Step 3 for more info on this delay).
Step 3: Simply splitting up your rows into smaller parts is not entirely enough however. You still need to ensure that each little section has a delay of 5-10 seconds from the previous row, and so for this I like to use a simple setup that uses about 17 fully delayed repeaters. You however, can use anywhere between 10-25 depending on how long you want the delay to be (although this should be based on the size of the rows you have). By allowing the server a few seconds in between each rows harvest without any piston activity, the server can easily recover and handle the stress of the next piston extension.
Example: The delay system that I use at mine and Theo's farm, but you can use any sort of delay setup really.
A simple delay system like the one I use that separates the activation of each row by 5-10 seconds. As I said, you can use whichever design you'd like, but this one is fairly simple.
Step 4: This is not so much a step as it is a suggestion. While BUD and hopper clocks are effective and do not really cause any lag, they are easily broken by React. My favorite fix to this problem is a small water circuit with a floor of soulsand and a top layer of cobwebs. Then you simply plop an alt or named villager inside the circuit, and based on the size of your design wait however many minutes until they loop around and activate the pressure plate or tripwire that you have set up.
Example: A basic water loop that is great for activating your farm. Each 8 block water flow with this design takes about 1:45 for a player to flow through.
A part of the timer that I use for my farm. Notice the soul sand under the water streams and packed ice acting as a transition. If you do use this design, make sure to leave out one cobweb over the end of each water stream.
Step 5: And last but not least, just be courteous and think before you build something. Try to avoid using extremely complex setups for farms or just redstone contraptions in general if there exists a smaller, simpler, or more efficient design. We all play on the server and have to deal with React redstone freezes, so just keep that in mind next time you want to build a farm or some other machine that could ultimately lag the server.
Credits to @Voytex for writing this guide on howto create a proper automatic farm!
End of the guide. If you have any questions, or need help making a farm or other redstone build server friendly and React-proof, feel free to message or mail voytex in game.
- DrugRun Staff