aseco wrote:For now I've done a checkpoint comparison: record to dedimania value if totalRaces > 0.
Not sure what you mean by that.
aseco wrote:And furthermore a check on all times, if they are increasing and last checkpoint must be equal to finish time.
Good.
aseco wrote:Is there anything else I can check?
XAseco also checks that CheckpointIndex-es in PlayerCheckpoint callbacks are consecutive, and CheckpointIndex >= 0 && TimeOrScore > 0, but that was only abused in the earliest cheats and is probably irrelevant now.
The most important thing for Dedimania is that in TA and Laps modes, the submitted number of checkpoints matches NbCheckpoints (from BeginChallenge/BeginRace or GetCurrentChallengeInfo), and in Rounds/Cup/Team modes it matches NbCheckpoints * NbLaps.
Also, RoundForcedLaps != 0 is not allowed, and Laps mode should submit the single best lap, not all laps together.