MCEULA:

The EULA


The Minecraft EULA was a policy implemented in the summer of 2014. It limited the way Minecraft servers could operate. The biggest change was what servers could sell. Previously, such rules on what servers could and could not sell did not exist. For about a year this EULA was not enforced against servers. Starting in May of 2016 servers would be blacklisted for not complying with the EULA - meaning players could not join the server and would be given a fake error: java.net.SocketException: Network is unreachable. This blacklist went through the Minecraft netty so that the only way for players to join would be to use a modified client or to downgrade to 1.6.

Average cost of running a Minecraft server


Costs of maintaining a Minecraft server vary greatly. Everything depends on the server and its demands. Smaller servers are usaully shared hosting which is cheaper than dedicated hosting or virtual private servers which larger servers use. Depending on the CPU and hard drive specifications that the server needs, the price fluctuates greatly. Even calculating the amount of RAM needed has its problems as 10 players standing in one chunk will take far less RAM than 10 players spread out over an entire world.

A good equation is M + N*p where M is the base cost, N is the number of players, and p is the average amount of memory each player needs. Most sources say a good point for p is 75 MB. The cost will again fluctuate wildly. The cost per GB of RAM on MCProHosting is $10 USD and will be used as the average.

Keep in mind large servers like Hypixel won't follow this equation. The equation stated here is for the raw cost of RAM which is largely what providers charge by. Large servers like Hypixel have build costs, development costs, and many others.

Large server networks are incredibly expensive to run and are very time consuming. Most large networks run hundreds of Minecraft servers, along with enterprise DDOS protection, databases, dedicated proxies, and web infrastructure. In addition to that, many employ full time staff to manage the hundreds of hours of labor required for server maintenance and plugin development.

-Matt Sundberg, Owner of Shotbow Network

What the EULA states


The Minecraft EULA has several parts to it and only one of those parts applies to servers. These are the guidelines for server taken directly:

The full guidelines are available to read here.

Analysis


Analyzing the guidelines comes down to three points:

This leaves 4 revenue models that are allowed by the EULA. Servers can:

Server wide boosters


Server wide boosters are when a server has a donation goal. Once this donation goal is reached, everyone on the server recieves that perk either permanently or temporarily. It has to be equal for all players across the server.

Server wide boosters are a good idea but they only seem to work on smaller servers. This system also relies on good samartians to donate to the server. Big servers with 100+ players will have to rely on good samartians to reach the donation goal.

Cosmetic perks


Cosmetic perks are perks that do not affect gameplay at all and give no advantages at all. Cosmetic perks are what big minigames servers like Hypixel and HiveMC are doing. Special particles and colored nametags are what these servers are mainly selling. This revenue model may prove quite good for large minigames servers. Servers that don't have ongoing gameplay but instead small short lived minigames with limited amounts of players. On minigames servers, items, armor, etc. don't transfer between games. Particles and cosmetics do.

This system is good for minigames servers, but not as well for other gametypes. On Survival, Factions, and Prison servers. On these types of servers, gameplay is much more long-term. Cosmetics don't make as much of a profound effect here. Cosmetics aren't as appealing as on a minigames server. Age demographics on servers may also contribute to this. Younger ages who play on minigames servers may be excited about showing off their new particles. Older ages who play on Factions, Prison, or Survival gametypes may simply not care as much about cosmetics.

In-game advertising


In-game advertising seems to lack in the revenue aspect. One of the most prominent advertisers is AdBolt. AdBolt pays based on impressions - the amount of players who see an advertisement and seems to pay about $1 USD per 1000 impressions. AdBolt's FAQ states that if a server has 20 players in an hour, 400 impressions are made. 400 divided by 20 equals 20. This means that 20 advertisements an hour must come to gain those impressions or about 1 advertisment every 3 minutes. Then again it would take 2.5 hours to make $1. Taking the formula M + N*p mentioned before and plugging in the numbers is 0+20*75=1500 MB. 1500 MB to GB is 1.5 GB.

Taking the MCProHosting prices also mentioned before yields a total of $15/month. Not all hours of the day will the server encounter these amount of players but it is actually a great model that may be sustainable. The current status of AdBolt is unknown, however. It is also unknown what kinds of ads AdBolt displays as server owners can easily sign up and advertise their own servers on others via AdBolt.

Looking at the other ad provider, Adventurize tells a slightly different story. Adventurize promises never to advertise other servers, however revenue is based upon clickthrough rates. Text-based advertisements may not have a very good clickthrough rate and without a large player base it may be nearly impossible to pay the server bills with Adventurize.

Access Charges


The 4th and final revenue model sactioned by the EULA is charging for server access. This model would most likely be the most unsuccessful. There doesn't seem to be very many servers that actually charge for access. A large advertising budget would be needed to get players to pay money to get into a server they haven't seen much of. Servers that do this will be competing with larger, free ones.

Pure Donations


Why don't servers simply run off of pure donations instead of selling items? The people who play Minecraft are fairly young in age. Items and perks are more appealing to this demographic. Minecraft servers are also businesses not charities; due to this people may not feel the same emotions when donating to a charity. Servers have large operating costs and the good samartians that donate may not be enough to keep the server giving fresh content. If Minecraft servers didn't make any profit, large servers like HiveMC, Hypixel, and Mineplex may not exist at all.

Review of Revenue Models


The summarized points of each EULA sanctioned revenue model.

Server wide boosters:

Cosmetic perks:

AdBolt:

Adventurize:

Access Charges:

Pure Donations:

The best solution here would be AdBolt. AdBolt might be able to just pay hosting costs. It is unknown if AdBolt is still functioning and if they advertise servers or not. Obviously, AdBolt would not be the best solution for a big server as there are other costs besides hosting.

If a server isn't a minigames server and isn't particularly big the only solution may be to not follow the EULA at all.

Effects on Servers


Some of the most drastic effects of the EULA have been on servers. Now that the blacklist is in effect large servers that do not follow the EULA have been effectively forced to follow the EULA or lose all of their player base and subsequently their profit.

The enforcement of EULA was organized incredibly poorly. First, Mojang isn't communicating directly with the community except for 2 short posts on the EULA back in 2014. Any changes to the EULA are emailed directly to server owners. In fact, Mojang has never publicly stated anything about the blacklist. Most of what the community knows is based upon the emails from Mojang server owners have released.

For example, Mojang changed their opinions on vote rewards. Originally they were allowed. Then Mojang emailed server owners stating they weren't allowed due to the fact that players were "paying with time." Mojang agained changed their policies re-allowing vote rewards.

Conclusion


Minecraft servers add so much more content to the game. It's hard to think about Minecraft without the servers. The goals of the EULA may have been to make a more positive enviroment and take some of the blame about servers off of Mojang, but a one size fits all solution just doesn't seem to work. Mojang needs to start communicating with the community about any EULA changes made and about the blacklist.

We have millions of players hitting our servers every single month to play our custom games. I’d have thought that Mojang could see the same value in our custom games as they see in the YouTubers who are adding content to the gameplay experience and being able to do that full time through a proper revenue model. Especially as much of their content focuses on our custom gamemodes, mods, etc., most of which could only be created with the time and resources our models provide.

-Sterling, Director of Mineplex, from his open letter.

Footnote: Age Demographics

Several items about age demographics are mentioned here. Age demographics in Minecraft are hard to fully know. For example, a survey was done on Hypixel but it was posted to the forums. There is an average of about ~30K players on at any given point however there is only ~900,000 members on the Hypixel forums. Dividing these statistics would yield a statistic of 30% of Hypixel players are registered on the forums but that isn't a valid measure either. 30K is the amount of players on at a given time and the ~900,000 users doesn't count users who didn't see the post or are aren't active. Age demographics in Minecraft are hard to get. The survey data that was found from the survey on Hypixel on age demographics would be incorrect anyways because younger children would most likely not be on the forums or be less likely to fill out the survey.

Footnote: Bypassing the Blacklist

A modified client by the name of SquidHQ bypasses the blacklist. There is also a way for server owners to bypass the blacklist using SRV records. See the bypass page for more information.

Technical Explanation


The blacklist uses a fake version of the netty library in addition to the current netty library. This netty library contains functions that download the blacklist and check a server's IP address against it.

Versions 1.7-1.11


In versions 1.7-1.11 the fake netty library is located at .minecraft/libraries/com/mojang/netty/1.6/netty-1.6.jar.

Versions 1.12 and above


Starting with version 1.12 it seems Mojang has moved their fake netty library. It seems now to exist at .minecraft/libraries/com/mojang/patchy/1.1/patchy-1.1.jar. Inside patchy, blacklist code is located at the io/netty/bootstrap/Bootstrap.class. The other classes within patchy are important and the only blacklist code is inside Bootstrap.class

Solution


The Minecraft client checks SHA hashes of any library file and if it has been modified then Minecraft will redownload it. The only solution is to modify the Minecraft client or attach a Java agent. SquidHQ is a modified launcher and more information about it is located on the bypass page.

Java agents attach themselves to the Java process and can modify classes when they are loaded. Java agents are a good solution because no matter where Mojang moves the blacklist netty code to, the blacklist agent will be able to stop it. Many Java agents detect if the class name equals io.netty.boostrap and if it is, it sets the isBlockedServer() method to return false;. A Java agent that does this can be found here.