Click activate in the WordPress plugins section.

How to install Tournamatch via WordPress

One of the easiest ways to install Tournamatch is to use the WordPress dashboard. Using this feature requires that file uploads are enabled on your web host and also that the plugin you want to upload is less than the file upload limit. Tournamatch is only about 1.5 mb and the default for most hosts is 2 mb; so, you should be able to install Tournamatch from the dashboard. After downloading the plugin and logging in to your admin, follow the steps below to install:

Navigate to plugins and click Add New.

Click the Add New button to install a new plugin.

Click the Add New button to install a new plugin.

Click Upload Plugin.

Click the upload plugin button to install a new plugin.

Click the upload plugin button to install a new plugin.

Click Choose File to select the file you downloaded, and then click Install Now.

Browse for to select the file and then click Install Now.

Browse for to select the file and then click Install Now.

Once uploaded, you still need to activate the plugin. Navigate to the list of plugins, find Tournamatch in the list, and click the Activate link.
Click activate in the WordPress plugins section.


Email Color Settings

In our version 3.12.0 update, we added new email color settings. This will allow you to change the color scheme of email messages sent by Tournamatch to your users. Some of the settings include button foreground and background colors; header, footer, and body colors; and general text and link colors.

Easily customize various colors in email messages sent by Tournamatch.

Easily customize various colors in email messages sent by Tournamatch.


A sample email in Tournamatch

Sample email in Tournamatch customized with various color settings.

You can find these settings by navigating to your WordPress Admin, Tournamatch menu, and clicking on settings. A little bit down the page is a section titled Email Color Settings.

Please share your color combinations with us on Twitter. @Tournamatch is the place.

Ladder Rung-Up Ranking

Tournamatch comes with three different algorithms for ranking competitors on a ladder. The points and ELO ranking are common and straight-forward to understand. The third algorithm is proprietary to Tournamatch and offers you a unique ranking method. It’s also quite easy to understand. Unlike Points and ELO, a competitor is never penalized for losing a match. At the end of a match, if the winner is ranked lower than the loser, the winner will move up closer in ranking to the person that lost. Checkout these examples below:

No change in ranking

Player2 defeated Player7. The winner of the match is ranked higher than the loser, so logically we expected this outcome. No positions change as a result of this match.

Winner moves up

Player8 defeated Player3. The winner of the match is ranked lower than the loser, so this competitor moves up.

The exact number of positions the winner moves up is dependent on the difference between the two rankings, rounded down. So in our second example above, the winner moved up to spot 5 ((3 + 8) / 2 = 5.5, so 5).

The reason we don’t penalize the winner by dropping him in ranking is because we want to encourage play. One of the biggest challenges to hosting your own league is activity. If you get traction and a lot of matches, the last thing you want is for ranked competitors to sit idle to maintain their position (main issue with ELO rating). The only way a competitor can lose his position is by inactivity – somebody else in an unrelated match will leapfrog him.

Similar to ELO, this method has the advantage that the bigger the challenge (competing against a higher player), the bigger the jump up.The main disadvantage to this method is dodging matches. The best solution to dodging matches is to enable blind challenges. Competitors won’t get to see who they play until a challenge is accepted.

How to Update Tournamatch

In this post, I’ll walk you through the process of updating Tournamatch to use the latest version. This assumes that you already have Tournamatch installed. If not, you should first head over to our how to install Tournamatch guide and come back when we have an update available (we push 1 – 2 of those per month).

For those already enjoying the benefits of running your own eSports league, follow along below and I’ll guide you through the epic quest titled “Updating a WordPress plugin”:

  1. Navigate to your Admin Dashboard and click Updates.
    Navigate to the Dashboard -> Update link in the WordPress Admin.

    Navigate to the Dashboard -> Update link in the WordPress Admin.

  2. Scroll down to the plugin section and click the “Update Now” button within the Tournamatch section.
    Click the Update Now link within the Tournamatch section.

    Click the Update Now link within the Tournamatch section.

You’re done. Seriously. If you don’t see the Tournamatch section and an option to upgrade, you’re either running the latest version already or you haven’t yet installed the best WordPress plugin for hosting ladders and tournaments.

Ladder Standings Widget

Today, we’re going to talk about widgets. What is a widget? A widget is additional content or feature-specific code you can add to your sidebar. If you don’t know how to install a widget, you can learn more here.

Tournamatch ships with a Ladder Top X widget which allows you to display the top X number of competitors (players or teams) competing in a given ladder. It accepts two parameters. The first parameter is the number id of the ladder to display. The second parameter is the number of competitors to display. In the screenshot below, we’ve configured our widget to display the top 3 players for the ladder “” which has an id 1.

How to configure leader board widget.

How to configure leader board widget.

And here is what that looks like on the main page:

Ladder Top 5 Widget

Ladder Top 5 Widget displayed on the homepage.

To get the id of a ladder, simply visit the ladder standings page and look for the id in the URL address bar.

You can also use a widget more than once configuring it differently each time. For example, we’ve set up two instances of the Ladder Top X widget and we’re displaying the top 5 in one ladder and the top 6 in another:

Using multiple widgets.

Using multiple widgets.

Week-End Review – 2020.06

I hope everyone had a great week number six of 2020. The Superbowl was a good watch as usual, and I’m happy to see Andy Reid finally get his ring. It’s well deserved and long overdue in my opinion. Little Tournamatch learned he can get on and off the sofa on his own. We were just thinking the other day that he needs something new to worry Mrs Tournamatch about </sarcasm>.

Development continued on asynchronous behavior and I also mixed in improved mobile-friendliness on the team profile page. This page contains the single-biggest opportunity to eliminate unnecessary pages (add in some Ajax) and several opportunities to improve usability on mobile. Check out a screenshot of the improvement below:


Before team profile mobile-friendly update.


After team profile mobile-friendly update.

I’ve determined precisely how to handle the endpoints on the backend – REST has emerged as the winner in that debate. In addition, using native JavaScript where possible is the go to solution for the foreseeable future. I expect to begin rolling out these updates next week. Once the team profile page is finished, I’ll turn my attention to the ladder standings.

Week-End Review – 2020.05

I can’t believe February is already here. Last month completely flew by! It was a terrifically productive month for us, too. We pushed out three updates plus one more today (which was really finished around Wednesday), so I’ll credit January with four updates.

The last two weeks have been focused on adding some asynchronous behavior to several user pages. There are a couple ways to handle it on the back end: WP Rest endpoints and admin ajax handles. I’ve written code for both and still considering which way to proceed. On the front end, I’ve also been comparing using native JavaScript to jQuery – and even some React! I think I’ll actually pass on React for now. The jQuery that ships with WordPress is incredibly old. I’m a bit worried about building out a front end using such an old package. In particular is the work required to update client code once WP Core eventually gets with the program. By building out the front end using native JavaScript, I can avoid some potential hassle later. Using native JavaScript so far hasn’t been that inconvenient.

There is still at least another week of development before any of these additions make it into an update. Have a great weekend and enjoy the Superbowl tomorrow!

Week-End Review – 2020.03

This week wasn’t quite as productive as last week. We did manage to get a small update for several changes a couple new customers requested. I appreciate getting these seemingly small but helpful requests. Chances are that if you want something, others that use our software also want the same thing. I won’t rehash those changes here because they’re explained in our release notes.

My morning routine was thrown a curve ball this week after staying up for the National Championship game, catching up with terrific friends we rarely get to see, and car shopping (thbptttttttt). I don’t anticipate any distractions next week, so we should see a major asynchronous update before the end of January.

Between the changes for the update released this week and sleeping in, I did find time to begin scoping out custom work for two other communities. I haven’t accepted any requests for custom modifications in quite a while because we’ve been laser focused on completing our 2019 objectives. As 2020 unfolds, I expect we’ll take on a few more pseudo-partnerships to continue to build out this software. Have a great weekend!

Week-End Review – 2020.02

We wrapped up a major update initially started before the holidays this week. It was big in that it included a lot of minor details. Stuff like extra CSS for situations that sometimes occur or fixing a broken redirect link for a deleted tournament. A lot of minor things that don’t seriously impact the ability to run your league, but which are still important to maintain quality. It was great to clear out a chunk of our backlog.

We also updated our friends at from version 2 to the latest version. This turned out to be a lot less painful than anticipated. If you are out of the loop, version 3.x migrated Tournamatch from a stand alone bridged location to the native WordPress directory. It was a big change and we were dreading major migrations such as on their website.

After another quick patch later on in the week, I think the software is in a great place to move on to more ambitious changes. We’ve avoided major new features for months because we were focused on consolidating match logic and giving those pages (match list, details, and reporting) a small makeover. We are happy with the outcome, but there is still some more work to do.

Before these changes, ladders had their own report and confirmation pages which were separate from tournament report and confirmation pages. Conceptually, a match is a match regardless of which competition. Having separate pages makes adding new match related features more difficult so the obvious solution was to merge those.

We’ve completed the new pages and parts of Tournamatch use those new forms. You should especially notice this when users report tournament results because you may now record score, report team match players, and include attachments with those matches.

The next ambitious step we’ll focus on before building out new features is some asynchronization. We can eliminate several forms if we just change certain actions to use Ajax. For example, disputing a match result, confirming a result, accepting or declining a challenge – none of those activities require a stand alone page with a button allowing the user to interact with the page. The initial button or link that loads each of those pages is sufficient to complete the action.

Once we have eliminated the unnecessary pages (there’s about 14 in all), we’ll be left with that much less code to update. That’s the name of the game right now – eliminate legacy code which if left would need to be edited in order to move forward. Ha! I just realized we’re kicking off our 2020 by eliminating the fat. What a fitting New Year’s resolution I suppose.

How to install Tournamatch via FTP

One of the two main ways you can install Tournamatch in WordPress is via a File Transfer Protocol (FTP) program. FTP programs connect to the web server where your website is hosted and permit you to transfer files between your local computer and the server. In some scenarios, such as when file upload permissions or file size limitations restrict web uploads, it is necessary to upload Tournamatch via FTP. This article will walk you through using FTP to upload Tournamatch.

The first thing that you need is an FTP program. I highly recommend FileZilla. It’s a free program widely recognized as one of the best. You can use whichever FTP program you wish, but screenshots throughout this guide will reference FileZilla.

After installing your chosen FTP program, you need to acquire FTP credentials from your web host. These are typically found within the cPanel dashboard from your web host. The process can be slightly different for each web host depending on the presence of cPanel and which version, so the best way to retrieve these credentials is to hit up Google. Simply Google “how to find FTP credentials on ____” and replace “___” with the name of your web host.

Once you have these credentials, open FileZilla and go to File -> Site Manager.

Click File, then Site-Manager.

Click on New Site.

Click on New Site.

Enter the host name for your hosting account in the Host field.
Enter the host name for your hosting account.

Select Normal Login from the credentials drop down.
Select Normal Login from the drop down.

Enter your username in the User field and password in the Password field.

Enter your username and password in the appropriate fields.

For the majority of web hosting accounts, and if you entered your credentials correctly, you should now be able to connect to your web host. When the connection is established, you will see a directory listing on your right. These are the files in your web hosting account. You shouldn’t rename, move, or delete any folder unless instructed to do so as most of these will have been created by your hosting provider when they setup your hosting account.

If you don’t immediately see the folders wp-content, wp-admin, and wp-includes along with several other files ending in .php, you may need to navigate to another directory. Look for a directory titled “www”, “public_html”, “html”, or “html_root”. These are the most common names for the “root” directory, or the directory that actually loads when a user visits If you still can’t find the root directory where WordPress resides, you may find opening a support ticket with your web host is the best place to start for help.

Once you have located the WordPress root directory, navigate to the wp-content/plugins/ directory. Here you will find folder names corresponding to every plugin you currently have installed. This is where you should upload the “tournamatch” directory.

The root WordPress directory contains the wp-admin, wp-content, and wp-includes folders.

Finally, after uploading Tournamatch, you are ready to install Tournamatch via the WordPress admin page. Login to your WordPress admin account and click on the Plugins menu option. In the list of plugins, you should now see the plugin “Tournamatch”. Click on the link “Activate” and Tournamatch will now install. If you have followed along this far, then congratulations! You’ve just uploaded and installed your first WordPress plugin via FTP. Stay tuned for our next article that will walk you through customizing Tournamatch and getting the most out of it.

Click activate in the WordPress plugins section.