A level (Checkpoint) is an XML list of rooms with specified parameters that are loaded when the specified level starts. Level files are stored in the assets/levels folder.
The original game contains levels named:
Start - basic
1 - night
2 - holodeck
3 - cave
4 - canyon
5 - ocean
6 - cave2
7 - river
8 - brownie
9 - phosphor
10 - hyperspace
11 - city
Endless Mode - endless
Zen Mode - zen
Versus - versus
Co-op - coop
Credits - credits
More Games - moregames
<level>
<room> - Tags for each room and properties:
type - Internal room name.
length - Controls how many distance points should be granted; in checkpoints (Start to 11) all length properties are multiplied by the same factor to equal exactly 1000.
start & end - Usually responsible for spawning the start and door segments, although they are not required.
Other properties such as rot, endless, etc. are also passing numbers to the room script and may or may not work as expected on any given rooms, as it is up to the room script to determine what they do.
In the level night there are three rooms. The first, second and third parts are one, two and one rooms long respectively.
<level>
<room type="night/part1" length="250" start="true" end="true"/>
<room type="night/part2" length="250" start="true" end="false"/>
<room type="night/part2" length="250" start="false" end="true"/>
<room type="night/part3" length="250" start="true" end="true"/>
<room type="night/boss" length="100"/>
</level>
In this case, all length parameters add up to 1000 length units (excluding boss rooms), so that means each 250 length units are equivalent to 250 distance points. In mayhem mode this calculation is different, as the boss room adds another 100 length units.
The first and third parts will spawn a start and door segment as both start and end are set to true. However, the second part is divided into two rooms; the first room will have a start segment but no door segment as start is true, but end is false. The second room won't have a start segment, but will have a door segment as start is false and end is true.
Let's start off by changing the sequence of a few rooms in a checkpoint.
Open APK Editor Studio and open your APK file that you want to mod. (v1.4.3 is considered the optimal Smash Hit version to mod since v1.5.0 and greater are poorly developed. Don't have an APK? Download here)
Once your APK has been extracted, from the menu click Open Contents
In the APK folder, go to assets/levels and open night.xml.mp3 using your text editor
For this tutorial, we will be making the first room longer and the second room shorter, and completely removing the third room.
First copy the line that has the room type with night/part1 and paste it into a new line just under it. Now change the end param in the first line and the start param in the second line, both to be set to false.
Next, delete any one line that has the room type with night/part2 and with the remaining line with this room type, change both start and end params to be set to true. Also change the length param to 500.
Lastly, delete the line that has the room type with night/part3
Save the file (Ctrl + S) once you think you're done
If you've done everything correctly, your level file should look like this in the end
<level>
<room type="night/part1" length="250" start="true" end="false"/>
<room type="night/part1" length="250" start="false" end="true"/>
<room type="night/part2" length="500" start="end" end="true"/>
<room type="night/boss" length="100"/>
</level>
In APK Editor Studio, save your APK and share it to your mobile device to test.
If everything works correctly, good job! You did great. Otherwise, try again.