Documentations of TECHMANIA projects, hosted in a repo so they can be localized.
Applies to version: 2.3
Records are saved to and loaded from records.json
in the TECHMANIA
folder. This page explains the specification of this file.
The records.json
file contains the format version, an array of pattern records, and an array of setlist records. Each record corresponds to one pattern or setlist under one ruleset.
guid
: the GUID of the pattern.fingerprint
: the fingerprint of the pattern. Explained in a later section.ruleset
: 0 for standard, 1 for legacy. Refer to Rulesets.score
: this includes Fever bonus and combo bonus, if any.medal
: 0 for no medal, 1 for All Combo, 2 for Perfect Play, 3 for Absolute Perfect.gameVersion
: the game version that this record is set on.Note the lack of max combo. TECHMANIA does not count combo consistently, and it has zero effect on score, therefore we decided to not include it in records.
setlistGuid
: the GUID of the setlist.patternGuids
: the GUIDs of the 4 patterns played.patternFingerprints
: the fingerprints of the 4 patterns played. Explained in a later section.ruleset
, score
, medal
, gameVersion
: same as pattern records.To ensure that changes to a pattern invalidates all records on it, each record contains a fingerprint of the pattern(s) it’s on. When reading records, the fingerprint is calculated again from the pattern and compared with the one in the record, and the record is only considered valid if they match. The fingerprint also somewhat prevents fabrication of records, though it’s not its main purpose.
The algorithm to calculate the fingerprint is as follows:
When the player achieves a valid score on a pattern or setlist, the game will check and potentially create / update the record on it.
A score is considered invalid if any of the following conditions are met:
When updating a record, score and clear medal are updated separately. This means if the player achieved a better medal than the old record but not a better score, the medal would still be updated.