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:SSorMM: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. CoverImageCropcomponent 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/welcomefor 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
- Custom column icon type (uploading custom images or picking a global icon.)
- Forum migration to Worker-backed endpoints
- Rework of:
- https://www.challengerun.net/profile/welcome
- https://www.challengerun.net/profile/status
- https://www.challengerun.net/profile/submissions
- https://www.challengerun.net/rules
- https://www.challengerun.net/submit & https://www.challengerun.net/submit-game
- Footer
- Surface 2 variable
- Custom Challenges for both Games and Series.
- Infrastructure and accessibility audit