Speedrun Comparator


This online tool is designed to make it easier to compare two current speedruns. By entering times for certain splits for each runner, the tool will determine how far apart the two runners are, based on the last split both of them have completed.

Enter a list of splits below, separated by the Enter key.

Use a predefined set of splits:

Multi-lap race:

Number of laps:

Timing method:

Important: this timing method will not work correctly if any splits are missing.

Omit trailing zeroes:

Runner 1 name: Runner 2 name:

{{ctrl.firstRunnerName}}
{{split.name}} {{ctrl.timeToStringTime(split.splitTime)}} {{ctrl.timeToStringTime(split.adjustment)}} {{split.cumulativeTime !== undefined ? ctrl.timeToStringTime(split.cumulativeTime + split.cumulativeAdjustment) : '-'}}
Lap {{lapIndex + 1}} time {{ctrl.timeToStringTime(ctrl.firstRunnerLapTimes[lapIndex])}}
Total time {{ctrl.timeToStringTime(ctrl.getTotalRaceTime(0))}}
Leader Difference Gain
{{ctrl.getRunnerName(delta.leader)}} {{ctrl.timeToStringTime(delta.timeDelta)}} - {{ctrl.getRunnerName(delta.gainingRunner)}} gains {{ctrl.timeToStringTime(delta.gain)}}
-
{{ctrl.secondRunnerName}}
{{split.name}} {{ctrl.timeToStringTime(split.splitTime)}} {{ctrl.timeToStringTime(split.adjustment)}} {{split.cumulativeTime !== undefined ? ctrl.timeToStringTime(split.cumulativeTime + split.cumulativeAdjustment) : '-'}}
Lap {{lapIndex + 1}} time {{ctrl.timeToStringTime(ctrl.secondRunnerLapTimes[lapIndex])}}
Total time {{ctrl.timeToStringTime(ctrl.getTotalRaceTime(1))}}
Both runners are
tied as of
{{ctrl.splitsList[ctrl.latestCommonSplit.lap][ctrl.latestCommonSplit.split]}}
{{ctrl.leadingRunner === 0 ? ctrl.firstRunnerName : ctrl.secondRunnerName}} {{ctrl.raceComplete() ? "wins by" : "leads by"}}
{{ctrl.timeDifferenceString}} as of
{{ctrl.splitsList[ctrl.latestCommonSplit.lap][ctrl.latestCommonSplit.split]}}
{{ctrl.getSplitCounter()}}
Both runners are tied
as of {{ctrl.splitsList[ctrl.latestCommonSplit.lap][ctrl.latestCommonSplit.split]}} {{ctrl.getSplitCounter()}}
{{ctrl.leadingRunner === 0 ? ctrl.firstRunnerName : ctrl.secondRunnerName}} {{ctrl.raceComplete() ? "wins by" : "leads by"}} {{ctrl.timeDifferenceString}}
as of {{ctrl.splitsList[ctrl.latestCommonSplit.lap][ctrl.latestCommonSplit.split]}} {{ctrl.getSplitCounter()}}
Click the above text to copy it to your clipboard.
Show split counter:
Number of lines: 2 3/4
Add split for {{ctrl.firstRunnerName}}
Add split for {{ctrl.secondRunnerName}}
Time adjustment for {{ctrl.firstRunnerName}} on {{ctrl.getRunnerSplit(0)}}
Time adjustment for {{ctrl.secondRunnerName}} on {{ctrl.getRunnerSplit(1)}}


Created by The Sound Defense.