Paypal, Money and Minecraft Servers - The do's and don'ts to help avoid getting bitten.

February 5, 2013 at 8:26 PMPhonicUK

First off just a little preface: Most of of my advice is based on my subjective experiences with Paypal. I may be entirely incorrect on some of the assumptions I make, so take the following with a few pinches of salt.

So dealing with payments to help with the running costs of a Minecraft server is something that a sizable amount of the community will have come up against at some time or another. Chances are you've read before about server owners being hit with chargebacks or paypal holding onto large sums of money for extended periods of time.

This post is about things you should and should not do as a server owner to help avoid some of the worst problems, and some advice about dealing with common issues you'll come across.

 

Dealing with payment disputes and chargebacks.

One of the common issues the Minecraft community has to deal with is younger players using their parents credit cards to buy benefits on servers without their permission, and then the cardholder invoking a chargeback with their credit card provider, or a dispute on paypal for unauthorized use.

Chargebacks are the bane of everyone who uses Paypal to accept payments. They're extremely difficult to fight, and worse they come with a hefty £14 GBP/~$20 USD fee if you don't win them, even though you're not at fault.

If the cardholder raises the dispute with Paypal you're very lucky. You'll lose the money originally given to you, but that's it. Paypal even refund the fees. For virtual goods there's no seller protection so there is still the problem where someone can donate, then raise a dispute saying it was unauthorized, and get their money back. This doesn't happen often though because paypal will not allow an unauthorized transaction dispute in the particular case of a family member using your card. Hence parents are very likely to just jump straight to the credit card company who will.

This is where things start to really suck. Since you're essentially selling virtual goods, it's almost impossible to prove receipt/delivery to the degree that will satisfy the credit card company. Any which point you're hit by the nasty fees mentioned earlier. 

Now there are some ways to help mitigate this problem:

For larger donations (Over about £20/$30), consider sending a 'thankyou' card, voucher, or something physical to the billing address via recorded delivery. This allows you to prove where the transaction came from, which makes dealing with disputes much much easier. This of course doesn't work if you're handling higher volumes of smaller amounts.

Discourage minors from donating. This is a bit of an issue since they are likely to make up a large amount of your player base. Consider requiring users to register before they can donate and require their age. If they're under 18, require that they provide a signed parental consent form. You can tie their registration to their Minecraft username to prevent someone registering twice once they find out that there is an age restriction.

Now this will cost you perfectly legitimate donations that you might have gotten otherwise due to the extra hassle. So you'll need to carefully consider the balance between income and risk to determine what barriers you're willing to put in peoples way.

 

Don't use the 'D' Word

This is a word you should avoid at all costs, not because it's really that inaccurate - but because it's a very easy way to have your funds frozen.

That word is 'Donation' or 'Donate'.

Paypal and other payment providers get very uptight if you use those words but aren't actually a registered charity or non-profit (Google checkout won't even let you take the payments unless you provide documentation proving you're a non-profit). Yes, the reality is that players are in effect donating towards the upkeep of the server with nothing real in return for it - but avoiding those words will save you a lot of pain. There's also legislation in certain countries that dictates donations have to be refundable within a certain amount of time or if they're over a certain amount - so keeping distanced from that will save you a lot of hurt.

So instead you can call it a "Contribution" or invite users to "Contribute" and give them a rank of "Contributor", and on any websites use the "Pay now" button instead of the "Donate" button to the effect that users are buying access to the "Contributor" rank on your server, along with any benefits you decide to bestow on them for this.

 

Do run your server like a business

This may seem counter intuitive for something that's just meant to be for fun, but it goes a long way to keeping everything manageable. Incoming contributions are your revenue source, the server is an expense, and dealing with payment issues is a cost of business that you need to allow for (see the section earlier on chargebacks).

In this vein you need to keep an eye out on cash flow. If 100% of your incoming revenue is used up the moment your server bill comes in, then you've got a cash flow problem because all it would take is for a single payment to be reversed (or worse, to have a charge back issued on the credit card) then you're immediately out of pocket.

So make sure you've always got a persistent balance available at all times, at least 10% of your monthly revenue should be put to one side each month to allow for either sudden costs that could jeopardize the server or just month-to-month inconsistencies. Just like real life you don't want to be living paycheque-to-paycheque. If you can't afford to do this then you should start either finding new revenue sources, or consider downsizing your server if you're not able/willing to make up the difference out of your own pocket.

Also like a business, look after your 'customers'. Consider rewarding those who donate regularly by sending them real-life gifts (or even just a thank you card) or other benefits to make them feel good about donating and keep them donating. Good will is an asset.

In addition, making your expenses public to your users will help build trust that their money isn't being squandered. Let them see how much your server bill is, and any other costs associated. Transparency is key to building a good relationship with players who are giving you money to run your server.

 

Don't let users buy their way into power

While letting users buy ranks that give them influence over other players is a near sure-fire way to get extra donations, it's also the best way to stop anyone else from donating and increase the number of chargebacks and disputes you get. This may seem really obvious but it's still something that far too many servers try and do.

The reasoning for this is pretty straightforward. It makes it too easy for one user to put themselves in a position where they can abuse other players, which will very quickly reduce your servers population and the number of people willing to contribute financially. Then when you find out that someone has abused their power and you revoke it - you can be reasonably sure that they will file a dispute out of spite.

This shouldn't even need to be a point here. It's suicide for your server. Don't do it.

 

Do keep an eye on the tax situation

This varies a lot from country to country (or even state to state in the US) so I'm not going to talk about this too much. The main thing is that you consult a tax adviser and make yourself familiar with your local tax laws to check what you need to do.

In the UK for example, if you're running the server like a business then you may need to declare yourself as self-employed (in addition to any normal day job you have) and you will likely have to pay taxes on your profits (income minus costs) - you still need to do this even if you don't make any profit. This also means filling in a self-assessment tax at the end of the year to declare your earnings and cost from the business.

Posted in: Minecraft

Tags: , , , ,

Why the Minecraft community picking YAML as the standard configuration file format was a mistake.

December 8, 2012 at 8:13 PMPhonicUK

This is a mixture of opinion and rant about why YAML is not well suited for the way the Minecraft community uses it, and how bad plugin developers are making the problem worse.

YAML (Yet Another Markup Language) is a relatively new markup language. It's goal is to be human friendly way to serialize data. With YAML you can represent a piece of data that can be understood easily by a piece of software and also easily readable by a human. As something for humans to write however, it's not so great.

Compare the following three snippets:

1)

Joe:
    interests: [video games, movies]
    full name: Joe Bloggs
    age: 25

2)

Joe:
    interests: 
       - 'video games'
       - 'movies'
    'full name': 'Joe Bloggs'
    age: 25

3)

{
  "Joe": {
    "interests": [
      "video games", 
      "movies"
    ], 
    "age": 25, 
    "full name": "Joe Bloggs"
  }
}

So right away there are a number of problems:

  • All three of them represent exactly the same data, yet they look very different. A YAML parser will give the exact same result for all 3 of them.
  • You can't tell just by looking at it whether or not I used tabs or spaces unless you're using a text editor which specifically highlights the difference.
  • You can't mix-and-match certain styles in the same document, even though they may look very similar.
The keen eyed among you will notice that #3 is also valid JSON as well as YAML. Also note that in example #2, you can increase the amount of indentation for Joe's interests to any amount you like, and it's absolutely fine as long as they are both the same. The single quotes are also entirely optional, you could have 'video games' with quotes and movies without quotes and it'd be perfectly valid.
 
The problem is that with so much variation and style, writing proper YAML can get tricky very quickly, especially for larger documents. With something like XML it's harder to go wrong as the format is much more rigid.
 
Largely the community as a whole has settled on the 2nd style shown, and you'd think that'd be the end of it.
 
The remaining problems are not so much down to YAML, but the behaviour of Minecraft plugin developers.
 
A number of plugins, instead of using a full YAML parser - instead have their own parser that only works with a very specific style. They are no longer using YAML but merely a extremely restricted subset.
 
The following are the kind of bad behaviours exhibited by some plugins:
 
  • Mandating certain levels of indentation (2/4 spaces) even though the YAML spec doesn't care as long as it's consistent within the document.
  • Failing for lists if they either do or don't have enclosing single quotes (even though it's valid regardless)
  • Not supporting the square bracket syntax for lists (as seen in example #1)
  • Insisting that strings either don't or do have single quotes around them, despite the spec allowing either (or even for you to mix freely, as you may need to quote integer values that are meant to be strings, but not something that is definitely a string)
  • Requiring that elements are in a certain order (swapping around the age and full name for example causing the plugin to crash)
YAML is a very flexible format, deliberately so because it's made for humans. Yet some plugin developers feel the need to completely throw that out the window.
 
If a more rigid format like XML was used then it seems less likely that developers would be trying to write poor implementations based on the subset of YAML they happen to like.

Posted in: Minecraft | Servers

Tags:

Things that suck about McMyAdmin right now, and what's being done about them.

November 13, 2012 at 3:37 PMPhonicUK

I would be a very poor developer if I didn't acknowledge that my software has it's weaknesses, because unless as a developer you are aware of your software's shortcomings you can never improve upon them.

So here are the areas that I think most urgently need the most improvement, and what I intend to do about it:

Backups

While only being able to backup the main world was fine in McMyAdmin's early days with vanilla servers, it has become woefully inadequate for most users today.

So to sort this, a whole new backup system is being built for use in McMyAdmin 2.4. It will be able to:

  • Selectively backup and restore multiple worlds (you could back up all worlds, but only restore 1 if you wished).
  • Backup and restore your McMyAdmin permissions configuration.
  • Backup and restore all of your plugins and their configuration data.
The new backup format contains an archive manifest detailing what it contains, as well as information such a unique identifier, its name and when it was taken.
 
While initially these will only be full backups, the new format allows for incremental backups by tracking which backup ID it was based on. This functionality will be added down the line after 2.4.
 

Multiple world Support

Before even getting to user added worlds, the standard game has 3 worlds - the main world, the nether and the end. McMyAdmin needs to be better aware of all of these, plus user added worlds.

So starting with McMyAdmin 2.4 - you'll be able to:

  • Select which worlds will be included in automatic backups
  • Select which worlds will be available for permissions exporting
  • Automatically populate McMyAdmin with new worlds
McMyAdmin won't be trying to manage multiworld plugins for you, but it will detect worlds as you create and remove them.
 

Documentation

Arguably, the best software doesn't require documentation. It should be so intuitive and simple that the user understands how everything works just by playing with it.

Of course this is something of a pipe dream, some concepts such as handling permissions or some advanced scheduling mechanisms require some explanation, and forums do not constitute documentation.

So McMyAdmin 2.5 will be getting a new in-panel help mechanism to explain new concepts to the user, in addition to this a new 'welcome' guide will be made available to new users to help them get started faster.

 

Of course if there's something you think really sucks and would like to know what I plan to do about it, leave a comment! I'll try and address as many as I can.

Posted in: McMyAdmin | Minecraft

Tags:

Why the official modding API will be the best thing to ever happen to the Minecraft community.

October 25, 2012 at 10:13 AMPhonicUK

"Minecraft Community" is a slight misnomer, in practice Minecraft players are fragmented into a large number of different communities.

While there are lots of splits between different play styles (RP, PvP, PvE, etc) - the real point of division is between those using the Official server, CraftBukkit, Spout, Forge, and any other number of 3rd party modifications and servers. And this causes a number of problems:

Keeping up-to-date

First is the issue that all server administrators are familiar with whereby mods can take considerable time to be updated after the release of the official server. This means frustrated players who want to use new features or see other improvements and bug fixes. The demand from players pushes server admins to use buggy and unstable versions of mods that aren't ready yet. Worse yet, the demand from server admins on the mod developers to get things done quickly runs a higher risk of lower quality code.

Having the large majority of people using a single, stable, and centrally managed API sidesteps all of this. Of course 3rd party mods are pretty unlikely to disappear entirely, but with any luck they will be the exception - not the norm.

Being locked into a single mod

If you've set up a server and a community around a particular mod, switching from that is a lot of effort. At the very least you've got to find equivalent plugins to keep all of your existing functionality, and at the worst you end up with less than you started off with. Having all extra functionality implemented as plugins instead of as a completely different flavor of the server prevents this entirely, allowing you to swap out functionality much more easily.

Fragmentation of skill

The fragmentation within the community means that the skill pool available for interesting new plugins is divided, since developers on the large prefer to write plugins for a single mod. By having everyone on the same book, there will hopefully be a greater number of high quality plugins available.

Dwindling interest in the game

It's been a long time since Minecraft has had any kind of 'major' development - and while the modding community has managed to largely keep the ball rolling, it only has so much momentum but its effectiveness is dimished by a fragmented community. If you're starting a new public server, building up a decent sized and regular community is a challenge. Major new functionality with lots of potential rekindles interest and gets people playing again.

 

It's not all sunshine and roses though, the community is going to have a set of interesting challenges in its way, which I shall detail in a separate article.

Posted in: Minecraft

Tags: , ,