How to Host a Tournament

Hello, creators! We're now a few months into hosting official tournaments on Core, which means we've learned a ton. Now that we have weekly tournamenhts, we're going to share all the learnings and best practices for hosting a competitive event.

The below is what we send to tournament partners for the big monthly tournaments (most recently, Cupid's Cup.) If you're interested in being featured in a tournament, a great start is to get your game "tournament ready" by being compatible with the below. You can also use this as a starting point to host your own tournaments.

Requirements

SCORING, LEADERBOARD, AND DESCRIPTION

First, make sure you have agreed on a scoring system with Manticore. There is no one universal system, and every game is different. We have provided sample code for one of the more common systems.

In Community Content, search for Randomphantom’s tournament package. It contains a starting point for a global leaderboard, description, and timer to automatically start/stop collecting points.

Tournament Scores

Tournament games must have a score to determine winners. While this can use the same scoring method as a pre-existing score in-game, it must be started on a fresh leaderboard that starts when the tournament begins.

  • Scoring must be calibrated so that a player joining the tournament on the last day has a chance of winning. It might be a small chance, but there must be a chance.
  • Scoring should not directly encourage account sharing or players playing an unhealthy length of time.
  • Scores should not “snowball”, meaning someone who starts early can compound into an unbeatable score.
  • To every extent possible, scoring should discourage collusion and farming against the game’s intent.

Examples of well-balanced scoring for past games:

  • Obbies, parkour courses, and racing games hold up well. These use a straight timer.
  • For games with a cumulative score, we recommend saving scores in one-hour chunks. Players compete for the best 60-minute score. It resets every clock hour.
  • Shooters and PVP games perform best when scoring includes self-balancing elements. For instance, Freeze Tag gave points for both shooting and healing, with a “last man standing” win condition. This limited the potential for collusion and farming.
  • Roll ‘Em and Minigolf involve competing for the best time on individual tracks. For the tournament, they created a new leaderboard that tracked how many top ten times competitors had. So, if you got high rankings on multiple tracks, you earned more points than someone with just one top rank. This system has been very durable.

For any scoring system, make sure it is clearly explained to players, any timers are very obvious, and the correct score is tracked for the leaderboard.

Global leaderboard display

No matter the scoring system, there must be a leaderboard displaying the tournament scores. These should be different scores than the game’s defaults.

Leaderboard Best Practices:

  • In the leaderboard setup, save at least the top 100 scores, in case something happens that forces us to disqualify scores.
  • You only need to display the scores that would currently qualify as prize winning (Manticore can view the rest in our internal tool).
  • Players should have a way to always know their current top score, even if it didn’t technically qualify for the leaderboard

Manticore can remove scores from a leaderboard if they are found to be cheating, but please be mindful that this is a manual process and only for egregious cases.

Tournament Explainer

Games should have a bulletin board or text popup that describes to players how the tournament works, and how it is scored. If this is part of a menu, the way to make the menu appear should be very obvious to new players.

It should include:

  • Name of the tournament
  • Brief description of the tournament
  • Dates and times
  • Overview of scoring and/or special rules

Automatically turn leaderboards on or off

To help with running the event, we recommend adding code that automatically starts and stops collecting to the leaderboard.

Here is an example. Note this might need debugging and fitting to a specific game.

NOTE: THE TIMES BELOW ARE UTC, NOT PACIFIC TIME.

local function canLogScore()
local startTime = tonumber(os.time({year=2020, month=12, day=17, hour=20})) -- Oct. 29th 2020 at 7pm GMT
local endTime = tonumber(os.time({year=2020, month=12, day=22, hour=20})) -- Nov. 1st 2020 at 7pm GMT

local currentTime = tonumber(os.time(os.date("!*t")))

if (currentTime >= startTime and currentTime < endTime) then
return true
end

return false
end

This implementation from Death Run covered all the necessary points:

unnamed (5)
unnamed (4)

Randomphantom’s tournament template in Community Content will give you a layout similar to the above.

AFK Kicker

AFK Kicker: Download and add this PBT, which will automatically kick AFK players after a few minutes.

Spectator Cams

Please add a spectator camera from Community Content, so streamers can watch the action. We recommend connecting this to a hotkey.

Randomize Teams

If your scoring depends on team performance, we strongly recommend randomizing teams every round. This limits collusion opportunities and makes it feel more fair to casual players.

Cool stuff

It’s for fun! We recommend adding decorations that are on theme.

Other Game Changes and Promotion

  • Manticore will provide you with a logo for the tournament. Please place it in the cover image for your game.
  • Add text to the description of the game detailing the tournament.
  • If possible, Manticore will promote the game with featuring on the front page, either in the featured queue or tournaments promotion queue. Please note that featuring is highly dependent on many factors, so we cannot guarantee it.

Delivery Schedule and Testing

QA Testing - one week prior

About a week before the tournament (Manticore will provide exact dates), please publish your changes to a new, unlisted game. This should not yet be on your main game. This is so Manticore and trusted players can privately test before the tournament begins. We will give feedback based on playtesting.

Note that for testing you’ll need to have leaderboards enabled and able to receive scores.

Second Test Version - five days prior

While timelines vary, best practice is to push a new build with all changes by 3 days before the event. We’ll do one more round of testing. This is also on the unlisted version.

Publishing Live - one day prior

The day before the tournament, publish the “tournament version” to your main game.

We ask games to publish live one day prior, so that players can start getting excited and practicing. Your scoring system should work, though it shouldn’t save to the leaderboards yet.

Launching the Tournament

  • Leaderboards should activate automatically at 12pm (noon) Pacific time, 8pm UTC.
  • The creator should log on to make sure it is working correctly.

During the Tournament

  • Please be regularly active on the Players Discord and engaging with fans.
  • Let Manticore know of bugs, exploits, and unsportsmanlike behavior.
  • Do promote to your own communities! These are fun for existing and new players alike.
  • Let Manticore know if servers are acting slow or unusual. We can reset them.
  • Ping your Manticore contact, but if they are not available, you can ping @manticoremods

Ending the Tournament

  • Please plan to check to make sure the tournament leaderboard ended automatically.
  • Save a screenshot of the leaderboard just to be safe, and send it to Manticore. We have a tool to view it, but this helps ensure no surprises happen, and lets spot check the scores for issues.
  • Manticore will handle winner announcements and prizing.

After the tournament ends, you can revert your game to the pre-tournament setup. Please do NOT delete the leaderboard netrefrence in your project.

Things to watch out for

Keep an eye out for the following when designing and testing. If you have any concerns about them, loop Manticore in and we can help design a fix.

Are your times in scripts using UTC?

Core tracks time in UTC, not Pacific. While we generally communicate start/stop times in Pacific, make sure you are using UTC in code!

For instance,

Nov 24, 12pm Pacific Standard Time = Nov 24, 8pm UTC

Does AFK block anything important?

Can an AFK user:

  • Prevent a match from starting? (minigolf) No, players will not hinder others.Balls have to be placed in order to play.
  • Affect scoring? (minigolf) If you’re AFK you get the max and shows up as a “DASH”
  • Allow collusion? (minigolf) moving balls can hit others, when your ball is stopped other players can not hit you.
  • Block players from advancing? E.g. in Super Speed Run, player collision was turned on so an AFK player could block active players from completing courses. (minigolf) if your ball is still you can golf right through them. If you are AFK your ball has not been placed so you do not show up.

Can colluding players materially affect the score?

Look for:

  • Players farming kills or points on one person
  • Players blocking others from joining

On Cheating and Unsportsmanlike Conduct

Official Core tournaments are intended to be fun competition – emphasis on fun. We encourage players to “play to win” and actively seek optimizations. However, we discourage rude behavior, insults, and disrupting other players in ways not intended by the game design.

If you see unsportsmanlike behavior, please contact @manticoremods immediately, or DM your Manticore contact. This includes insults, trying to ruin another player’s run, and targeting a specific player with the intent to get them to quit. This can result in the player getting banned from the event.

Do not ban players yourself. Creators must talk to Manticore first. If you are having trouble getting in touch with your Manticore contact, @manticoremods can help you, as well as the in-game report button. We would rather you contact too many of us than pre-emptively ban a player.

Cheating, hacking, and exploits are not allowed. We define these as any action that circumvents material game rules through exploiting bugs. Teleportation glitches and hacks that affect the game score directly are almost always off limits.

Not all unexpected behavior is cheating. Your players are going to find strategies you didn’t think of. This is ok – even good. Sometimes players will “break” a game, meaning they enable very high scores that weren’t intended. Examples include unintended shortcuts in races, weapons that are overpowered with new strategies, and clever use of geometry to enable super jumps.

We won’t always ban a questionable tactic right away. If a tactic involves skill to execute, we usually will not ban it. In the case of a new questionable tactic, contact Manticore and we can keep an eye on it. The big warning sign is if the tactic starts trivializing the game, creating “samey” experiences, or leads to a large number of equivalent scores.

Always talk to Manticore before making game changes during a tournament. We try to avoid changes to a live tournament game, but this is not always avoidable. If you see a need to fix a bug or close an exploit, please contact Manticore before pushing the change.