Split Timer Documentation
Introduction
this split timer is a web-based application that will track segment times of different length within a single run, tracking both the overall best set of segment times, as well as the best individual segment times. this use case is typical for video game speedruns and similar applications.
the basic concept of this timer is to allow users to handle everything on their end by creating and using files exclusively client-side.
Split File Format
creation of splits is currently only possible manually, with various datasets not being utilized as of yet. to do so, simply create a text file and name it any way you like, except you want to make sure it has the .json extension.
split files are in JSON format, and as such, they aren't very forgiving in terms of formatting errors, so please take care when composing your splits file.
you can copy the following example text as a base for your split files, populate the "names" array with your split names in the given format, and then save it with the .json extension.
{ "info": { "game": "Game Name", "category": "Category Name" }, "times": { "splits": [], "golds": [] }, "names": [ "Split 1", "Split 2", "Split 3" ], "options": {} }
splits are the set of segment times, which together make the best overall time. there are two different formats in which you can supply split times as timestamps.
golds are the best individual times for their respective segments. if you don't include them in your file, the split timer will assume the split times to also be your gold times.
names are the title displayed next to each segment.
options are additional nonrequired values that can be set for specific purposes. Currently supported options are:
- startoffset (timestamp) defines a time at which the timer should start, instead of at 0:00 (can be negative)
- hidePersonalBest (boolean) hides the personal best info underneath the timer
- hideSumOfBests (boolean) hides the sum of bests info underneath the timer
- splitSecondDecimals (integer) amount of split second digits to display (0 - 3)
- appendDateToSplitFile (boolean) whether to append the current date to the split file upon saving
Timestamp Format
whereever you can supply a timestamp, two different formats are supported. You can either supply an array in the format [hours, minutes, seconds, milliseconds], or as millisecond timestamps.
Interface
the interface mostly consists of an output area, composed of a list of active or previously active splits (the numbers meaning current run's time, time comparison to best overall time, time comparison to best segment time), followed by a line displaying the personal best time as well as sum of individual best segments.
below the output area, there is an input area which features a list of context-sensitive buttons. hovering over those buttons will present you with a list of hotkeys you can press to activate the button in an alternative way. due to browser constraints, those hotkeys will only work when the browser window is focussed.
Hotkeys
- S: Start, Split
- U, Backspace: Unsplit
- P, Return, NumpadReturn: Pause, Unpause
- K: Skip
- R: Reset
- MiddleClick on a split will toggle whether that split will be considered as the gold time when starting a new run, or saving the splits
- G is identical to the above, but performs it for the most recent split
Planned Features
this software is in active-ish development and will be updated whenever I find time to do so. the following features are already on my to-do-list:
- add option to hide gold split times
- add option to display time in 0h00m00s format, instead of the colon-separated form
About
this software is provided as-is, and always will be free to use and free of any kind of requirement to register, advertisement, or user tracking. server-side logs and statistics are anonymous.
if you have suggestions or feature requests (note the planned features list above), bug reports, or general feedback, please let me know! you can get in touch via one of these options:
- via email - mike@blueshack.net
- on Twitch - twitch.tv/realcritical
- on Discord - RealCritical#2678