mk8u.de

About

What is mk8u.de?

mk8u.de follows Mario Kart 8 on Pretendo Network: lobbies, players, VR and, with the MK8Logger plugin, every single race. On top come time trial rankings and statistics about the whole community.

Features

Live lobbies
Running lobbies with current course, participants, Mii and VR
Race results
Place, VR change, course and vehicle of every race from the MK8Logger plugin
Player pages
VR history, results per track, rivals, combos, names and Miis
Lobby archive
Search every lobby, also for players who were there at the same time
Events
Tournaments in public lobbies, scored automatically through the plugin
Rankings
Time trials of all 48 courses with archive and hack detection, bests straight from the game, plus the VR ranking
VR calculator
The VR formula of the game to try out, and what is at stake in the running race
Statistics
Activity, heatmap, duos, leaderboards, popular tracks and drivers, combo meta
Favorites
See when your people are online
Guests
Local co-players are recognised or added by hand
Light & dark
German and English, on phone and desktop

The Live start page shows what is happening on Pretendo right now:

  • Running lobbies with the current course (as soon as someone in it uses the MK8Logger plugin) and every participant with Mii, flag and VR. With the plugin, everyone is also marked as racing, watching or waiting, and racers show how much VR they win as 1st or lose as last (e.g. +17/−16)
  • Your favorites: who is in which lobby
  • Latest races of all lobbies and the biggest VR gains of the last 24 hours
  • Latest time trial times and the availability of the Pretendo server
  • The status line on top: is the poller running, are there errors, how reachable is the server

Customize start page hides or reorders sections. Lobbies, races and status refresh every 30 seconds.

Lobbies searches all stored lobbies by GID, mode, region, DLC and players. With several players and Only lobbies where all of them played at the same time you find shared sessions. The filters live in the address, so a search can be linked.

The lobby page shows:

  • mode, region, DLC, start, duration, number of players and the current course
  • who is racing in the running race, who is watching (e.g. joined mid-race) and who is waiting between two races
  • What's at stake: for every racer of the running race their VR at the start and how much VR they win as 1st or lose as last, calculated with the VR formula of the game. Anyone finishing in between gets something between the two values. Values marked ≈ are estimates (plugin before v0.18.00)
  • the lobby standings by VR won or lost, with races, average place and wins
  • all races of the lobby with course picture and winner
  • Who was there when as a timeline
  • the guests and the VR comparison of the participants

Clicking a race opens the race page: course, placements, driver & vehicle and VR before → after for every participant. Previous/Next flips through the races of the lobby, Recalculate in the VR calculator shows how the VR changes were calculated. You can also use the VR calculator (/vr-calculator) freely: enter players in finishing order, result and calculation appear right away. Not every race is logged: results only exist when someone in the lobby races with a current MK8Logger plugin. So please, everyone: use the current Aroma plugin (download under My account) so that as many races as possible get logged.

The player list searches by Mii name or PID and sorts by last active, VR, name or playtime. The star makes a player a favorite.

The player page has its own tabs:

  • Overview: VR, VR of the last 7 days, races, wins, average place, VR history, latest races, results per track, driver & vehicle with average place and "field beaten" per combination, frequent opponents with head-to-head, names (chronological) and Miis
  • Rivals (from 5 races together): nemesis (beats you most often), favourite opponent (you beat most often) and even match (the most balanced record)
  • Races & lobbies: all latest races, lobbies and the balance per track
  • Activity: playtime, history, weekdays and records
  • Time trials: the player's best times in the rankings
  • VR: every VR value with its source (race result, plugin, by hand)
  • Compare: two players side by side, with the head-to-head of all races together

Country and region are shown with a flag and the official names from the Wii U system file.

This is me on the player page links your Pretendo profile.

The Rankings page shows the time trial leaderboards of all 48 courses, live from the Pretendo server and backed by a local archive.

  • Pick a cup and a course: cup buttons on top, courses below
  • Current list / All times: the live top 10 or everything the logger has ever seen – the best time per player; slower own times with Show archived too
  • Best / worst times: the Pretendo API exposes both ends of the leaderboard
  • Realistic times only: hides times flagged as hacked. Positions are renumbered accordingly, with the original position shown in brackets
  • All records: the record holder of every course at a glance
  • Recently added: the newest finds, filterable by poll cycle

Players the logger already knows from lobbies are marked () and link to their profile. The other way round, the player details list that player's best time per course - each row links back into the list the time is visible in: the live top 10 while it is still there, the archive once it dropped out.

Why some times are marked red

Within a genuine top 10 the times sit very close together, usually less than a second apart. A hacked time is separated from the honest field by a large gap. Counting from the top, the logger collects every gap larger than one second, takes the last one and flags everything above it as unrealistic.

Note: if the large gap sits at the bottom of the list - a single very slow time in tenth place, for instance - the automatic rule also flags the positions above it. For those courses an administrator can enter a fixed time limit in the admin area, which then replaces the automatic detection.

Reporting a time

When a time looks wrong but the automatic rule misses it, the Report button in the course list flags it as hacked or modded - a reason is optional. A report does not block the time: it goes to the administrators, who either approve or reject it. While it is open the row shows Reported; every user can report a given time once.

The dialog takes a reason and a screenshot as proof. Both are optional, but they help the administrator decide. Only they and you can see the image.

Once an administrator approves, the time counts as invalid everywhere - it is marked Invalid and disappears with the Realistic times only switch. A rejected report leaves the time untouched.

Entering your own times

As long as times are not picked up automatically, you can add them yourself with Enter a time. Course, time and a screenshot of the result screen are required.

You can only enter times for your own player ID - it is taken from your linked Pretendo profile and cannot be changed. Without a linked profile the form stays locked, so link it in your profile first. Administrators may enter times for other players as well, using the same player search the lobby list offers for its player comparison.

Your time is visible to you alone at first. Only once an administrator releases it does it appear under All times at the position it belongs to, marked Entered by a user. If the same time later shows up in the official ranking, it counts as confirmed automatically.

Bests straight from the game

With the MK8Logger plugin (v0.17.00+) a new time trial best reaches mk8u.de right after the finish line - no screenshot needed, marked Plugin best. Only what the game itself counts as a new record is sent. From v0.19.00, Import all time trial bests now in the plugin menu sends the saved bests of all courses once; times already known are skipped.

A time faster than the time limit of the course waits for approval by an administrator, like an entered time.

From v0.20.00 the plugin also reads the ranking the game loads for the ghost download: the times around your own rank, with the official rank. As a check, mk8u.de compares the top 10 sent along with its archive - only when they match are the other times added, marked Ghost list. That way the archive grows in the middle of the leaderboard too. It can be switched off in the plugin menu with Upload ghost download rankings to mk8u.de.

Evidence: screenshots and videos

Any time can have evidence proposed for it: a screenshot or a link to a YouTube video. An administrator reviews those too before they become public.

Uploaded images are automatically scaled down to 800×600 and recompressed - it saves storage and loads faster. Nothing is cropped.

Approved evidence shows up as a small preview in the Evidence column. Clicking it opens the detail view of the time with everything known about it - course, player, position, origin, the applicable time limit - and the full gallery. From there you can also report the time or propose more evidence.

Archive

The Pretendo HTTP API only ever returns the 10 best and the 10 worst times per course. The logger therefore polls both directions every 10 minutes and stores every time it sees. Times that later drop out of the top 10 remain visible under All times, so the archive grows well beyond what the API shows directly.

Under All times each player appears with their best valid time only. Slower times of the same player count as archived and appear with the Show archived too switch - greyed out and marked as such.

Optionally the operator can read the leaderboards over the NEX protocol the game itself speaks instead. Current list then shows the complete leaderboard rather than ten entries. That needs console credentials and is off by default.

Statistics cover 7 days, 30 days or all time: overview, engagement, social (duos, trios, who plays with whom), records, leaderboards and activity patterns such as the heatmap.

The Tracks & drivers tab evaluates race results: most played tracks, most popular drivers and vehicle combinations. Below it, What wins? Combo meta shows how combinations and single parts perform - overall or per course, sorted by "field beaten" (the share of other racers finished ahead of).

Events are tournaments in ordinary public Pretendo lobbies. Scoring is automatic, from the race results of the MK8Logger plugin - no screenshots needed.

  • Sign up: public events from the list, private ones only via the invite link. You race with your linked Pretendo profile
  • Start scoring: event mods start scoring per lobby as soon as at least two signed-up racers with the plugin are waiting there. The list of waiting racers refreshes by itself
  • Points: per race by place. Each event can decide whether racers who did not sign up count for the placing. Mods can add bonus and penalty points
  • In-game: the plugin shows when scoring starts, how you did in each race and your provisional place

Event mods (a role of its own, given by an admin) and admins create and run events. Groups sort events, e.g. by community or series.

  • Profile: email, password, language, time zone and notifications
  • Pretendo profiles: linked profiles, which one is primary and which console uploads for which profile
  • Plugin & API token: download MK8Logger, create a token and download it as a file for the SD card. Show in full shows the existing token, Create new invalidates the old one
  • Favorites: your favorites with their lobby or last seen. Select several to search for shared lobbies

Light, dark or like the system is set top right via the half-moon icon, the language via DE/EN.

The Aroma plugin MK8Logger uploads the result at the end of every online race: place, VR and VR change, course, Mii, country and driver & vehicle of every participant. Your own VR comes along with it.

  • Installation and token: see My account
  • If several players in the lobby use the plugin, their uploads are merged into one race
  • A single invalid detail (e.g. an empty Mii name) no longer costs the whole race, it is corrected
  • At the race start it reports course and racers (with VR) - that is where racing / watching / waiting and What's at stake come from
  • Time trials: new bests are uploaded automatically, all saved bests on request via Import all time trial bests now in the plugin menu
  • Events: notices about scoring start, race result and provisional place appear in-game
  • Items (v0.21.00+): every item box hit of every racer with place and time - reported only with the result, the plugin shows none of it during the race. Shown on the race page, the player page and under Statistics → Items by place
  • Screenshots (v0.22.00+): what you capture with the ScreenshotWUPS plugin during an online race ends up in the race's gallery shortly after the result. You and admins can delete it
  • Cheat alarm (v0.25.00+): when an opponent gets an item the game never hands out on their place (on place 1 e.g. Super Star, Bullet Bill, Golden Mushroom), a red notice with their name stays until the race ends and the plugin takes a TV picture for the race. Unusual but possible items trigger nothing
  • Updates (v0.28.00+): once per game start the plugin asks mk8u.de for a newer version and can install it itself (verified download, active after the next restart). Can be switched off with Check for plugin updates and Install updates automatically

Installation and all options are covered in the user manual (Deutsch) and in the video guide - from signing up to the first race.

Guests (a second player on the same console) are recognised by the plugin and reported with their host. On the lobby page you add guests by hand, link them to a player or remove them. Participants of the lobby and admins may do so.

For your own scripts there is the token API, described in the API documentation.

Version
Version: 0.160.0
Platform: Pretendo Network
Supported Games: Mario Kart 8
Credits

Developed for the Pretendo Network community.

Special thanks to:

  • Pretendo Network - For the alternative server solution
  • Bootstrap - UI Framework
  • Chart.js - Data visualization
  • Nintendo Mii Studio - Mii images
  • flag-icons (MIT) - Country flags
  • Node.js Community - Open source libraries
Technical Details

Built with:

  • Node.js + Express.js
  • Sequelize ORM
  • MariaDB / MySQL / SQLite
  • Bootstrap 5
  • Chart.js
  • EJS Templates