What this update is about

  • Series: challenge runs that span multiple games
  • Multi-runs: linked splits within a single game
  • Co-op and multi-runner submissions
  • Custom columns so game mods can track what matters to their community. (which charms were used, if a specific route was used)
  • A major security hardening pass
  • Admin tools overhaul
  • Accessibility features
  • Spanish translation doubled in size

New Stuff

Series (Multi-Game Challenges)

  • A new top-level section at /series for marathon-style challenges that span multiple games.
  • Each series has its own rules, categories, leaderboard, forum, history, and resource pages.
  • Runners submit series runs with per-game splits. Each split can be reviewed independently by that game's verifiers.
  • Series definitions (challenges, restrictions, glitches, characters, difficulties) are automatically inherited from constituent games. So there is no need to duplicate them.

Multi-Runs (Single-Game)

  • Games can now define multi-run categories, which are a linked sets of splits within the same game (like doing Resident Evil All Endings, or Hades 2 Any% God Only x3 with different gods for each run.)
  • Runners submit all splits together with a shared video and total time.
  • Each split can be approved or rejected individually. If some splits are rejected, runners can dispute and resolve without losing the approved ones.
  • Approved splits can be crossposted to individual category leaderboards.

Run Leaderboards

  • Every game and series now has a dedicated Leaderboard tab with rankings by category and challenge.
  • Tied times share the same rank.
  • Expandable child rows show individual split details for multi-runs and series multi-runs.
  • Platform display names, per-split label resolution, and custom columns all render correctly in the table.

Custom Columns

  • Game moderators can define up to 2 custom columns per game (like what charms they used, the Route, or something else entirely).
  • Runners fill in values when submitting. Values appear on leaderboard tables and in admin review.
  • Series inherit custom columns from their constituent games automatically.
  • Text-only for now; icon type coming in a future update.

Co-Op and Multi-Runner Runs

  • Runs can now include co-runners.
  • New component that lets submitters search and add other registered runners.
  • Co-runners get a confirmation request where they can accept or decline being listed on the run.

Series Editor (Admin)

  • Create, configure, and manage series with the same tab-based layout as the game editor.
  • History tab tracks all changes made to a series.

Changes

Game Editor

  • The editor now has 13 additional tabs compared to v0.6.0: Glitches, Co-Op, Score, Challenge Rating, Multi-Runs, Custom Columns, Custom Tabs, Extras, Additional Content, and more.
  • Each tab is its own extracted component, making the editor easier to navigate and maintain.
  • Added shared components to reduce repeated markup across tabs.

Run Submissions

  • The submit form now supports score for High Scores.
  • All time inputs are plain text fields (HH:MM:SS or MM:SS) instead of native time pickers, since native inputs cap at 23:59:59.

Admin Runs Page

  • Now handles single runs, multi-runs, and series runs in one place.
  • Run claiming lets verifiers or game moderators lock a submission so two people don't review the same run at the same time. After 7 days, if the run isnt published, approved, or unclaimed, then the lock is removed.
  • Custom column values are editable in the review modal with before/after diff display.

Admin Security: OAuth Re-Authentication

  • All destructive admin actions now require re-authenticating via OAuth popup before executing.

Storage & File Uploads

  • Game cover images migrated to a clean {slug}/cover.{ext} path structure.
  • CoverImageCrop component updated and used across game editor, series editor, game review, game submission, and profile edit for consistent cover image handling.

Profile

  • New welcome flow at /profile/welcome for users who sign in with a second OAuth provider, guiding them through account linking or recovery.
  • Identity linking (linkIdentity) wired in profile settings with a dedicated callback page.
  • Preferences tab added to profile.
  • Profile creation expanded with accessibility settings (color vision modes, font scale, reduced motion, high contrast, dyslexia font, focus indicators).

Accessibility

  • New components for configuring and previewing accessibility options.
  • OS preferences (prefers-reduced-motion, prefers-contrast) auto-detected on first visit.

Worker / Backend

  • Worker handlers grew from 12 to 27, covering multi-runs, series runs, split review, run verification, disputes, claims, icons, news, glossary, site settings, and reauth.
  • Worker index doubled in size to handle all new routes..

Security

  • All mutations go through the Worker. Direct backend writes from client code have been eliminated site-wide.
  • OAuth re-authentication required for all destructive admin actions.
  • SVG uploads blocked globally (XSS risk via embedded JavaScript).
  • Storage bucket RLS tightened — client-side mutation policies removed where Worker handles writes.

Coming Up