I have been playing some SuperTuxKart lately and quite enjoying myself. There was one thing that kept bothering me though: I was not too great at it and really just wanted to do random races on whatever track available. Sadly enough, unless you complete challenges, you are not allowed on a whole lot of tracks. I figured it was time to look for a workaround.

After checking out the usual candidates for user-specific data, I found that whether or not you have completed a challenge is simply stored in an XML file, located in ~/.config/supertuxkart/. So, let us get down to the cheating.

Open the file

/home/USERNAME/.config/supertuxkart/challenges.xml

in your favourite text editor. It should look something like this:

<?xml version="1.0"?>
<challenges>
        <canyon solved="false" />
        <energymathclass solved="false" />
        <energyshiftingsands solved="false" />
        <energyxr591 solved="false" />
        <farmtracktime solved="true" />
        <fortmagma solved="false" />
        <gardenhead solved="false" />
        <islandfollow solved="false" />
        <lighthousetime solved="false" />
        <minestime solved="false" />
        <penguinplaygroundgp solved="false" />
        <snowmountain solved="true" />
        <starfollow solved="false" />
        <tollway solved="false" />
        <tothemoonandbackgp solved="false" />
        <worldsend solved="false" />
</challenges>

Now, simply change every occurrence of false into true. To do this quickly in vim, you would issue

:%s/false/true/g

The next time you start up SuperTuxKart, all challenges should be marked as done and you should be able to race on any track. Have fun racing!

This was done in Ubuntu 10.10 with SuperTuxKart 0.70.