Documentation

What are ladder races?

Ladder races are regular one versus one races where you don’t know who your opponent is and you have to finish a game of Ocarina of Time: Randomizer (OoTR) in the shortest possible time.
When all races of a session are completed the leaderboard is updated and the top three players gain bragging rights.

Signing up and racing

To participate you will need to read the rules and register yourself by sending the !register command in the #ladder-signup channel of the OoTR Discord server. The bot Kaepora will answer you via private message and this is also where you should type any other command.

You need to allow direct messages from server members in your Discord Privacy & Safety settings, otherwise the bot will not be able to message you.

When a race is coming up, Kaepora will announce it in dedicated channels of the Ladder Races category. After the announce is made you can send Kaepora the !join command followed by the corresponding league short name. eg. for the Standard league you would send !join std.
If you no longer wish to race you can send the !cancel command. This will not affect your ranking.

If there is an odd number of players, the last person to join will be kicked out of the race.

Fifteen minutes before the race Kaepora will send you a link to your seed on ootrandomizer.com. There you can patch your own ROM and install it on your Wii or emulator (Retroarch with the ParaLLEl core is strongly recommended, Bizhawk and Project64 1.6-1.7 are also allowed).

The race starts after Kaepora gives everyone a countdown on the channel dedicated to the league you registered for (eg. #ladder-league-standard).
All races start at the same time, if you are late the race will not be delayed and your opponent will be at an advantage.

When you finish the game (either when dealing the death blow on Ganon or by finding the last Triforce fragment in some Shuffled Settings races) you need to send !done to Kaepora. The bot will then answer with your time, the name of your opponent, their time if they finished first, and your spoiler log (which you can also access by using the original link to your seed).

If for any reason you cannot finish your game, send !forfeit. A forfeit is an automatic loss unless your opponent also forfeited, which incurs a tie.

A quick recap:

  • !help should be the only command you need to remember and probably the first one to try out.
  • !register first.
  • !join <short name> when a race is open for registration.
  • !done on the final blow or !forfeit.

Leaderboards

Each league has its own independent leaderboard which is generated using the Glicko-2 rating system using a seven day period.

This system has a few particularities:

  • There is no single number that represents your skill level, instead you have a range where your skill is estimated to be in with 95 % confidence.
  • The reward (or penalty) for winning (or losing) a race is proportional to the skill gap between the two players.
  • You need to complete a few races to lower your rating deviation and reach the required threshold to appear in the leaderboards.
  • Not racing for a week will slightly increase your rating deviation.
  • Your rank and displayed rating use the lower bound of your rating interval, this means you need to keep playing to keep your rank.

Matchmaking

The matchmaking algorithm pairs players with overlapping skill ranges (R±2×RD in the Glicko-2 system) with a bias for pairing players with their closest neighbour.
It is guaranteed to be fair overall but there is always the possibility of an unpairable outlier that will get matched up against someone with a greatly lower skill. This is unavoidable unless players are kicked out of the race.

If your are matched up against a better opponent, you can either watch his VoD and understand how and where to improve, or come and complain about how unfair matchmaking is. Be the better player, git gud.

Leagues

Standard (std)

The Standard league is the default league where all players, good and bad, should try their luck and skills.
The ruleset used on this league is the OoTR Standard Racing Ruleset (SRR), seeds are generated using the latest minor version of the randomizer.

There are multiple sessions per day and you are free to join any that fit your schedule.

Each versus has its own seed.

Shuffled settings (shu)

The Shuffled Settings league uses a different kind of seed generation where the settings of the randomizer itself are randomized.

Settings are not fully randomized: the algorithm iterates through a list of weighted setting values to pick one at random and adds its cost to the running total.
Once the running total reaches the budgeted cost, the algorithms stops and applies the new settings on top of the standard settings.

Costs and weights of setting values were designed to allow for interesting seeds without having to delve into the pure madness of a fullsanity.

Each versus has its own seed and set of settings.

Contributing

The ladder is a collaborative effort released under the MIT license.
You can contribute by sending well-written pull requests to the Kaepora repository which contains the sources for both the bot and the website.