64.0
40 ratings
Custom Levels - Creator Guide
By rebel rabbit
You can now create your own levels!
And here we will teach you how.
   
Award
Favorite
Favorited
Unfavorite
1 - Understanding how a level works
So the game is all about squares.

We all know that. But how are these squares created?

First, we need to understand how the game reads a level.

Each level is represented by a text file that looks like this:



Every line is a 'command' and its first parameter it's the time at which the 'command' will be executed.
It's important to note that this value it's the time of the song, and may not be the same than the timer displayed in the top right corner.

In the example:

In the FIRST line, 4.34 seconds after the song starts, we create an enemy square that comes from Down direction with a speed of 50.

In the SECOND line, 4.50 seconds after the song starts, we create another enemy square that comes from the Right with a speed of 50.

In the THIRD line, 4.68 seconds after the song starts, we create a friend square that comes from the Left with a speed of 50.

So, the structure for creating a square would be:



But, what about the 10th line. What's that 'split' thing?

Remember how every level has a unique mechanic? This is how we activate / deactivate special mechanics.

Does 'split' sound familiar to you? If not, take a look at this:



That line is telling the game that, at the 5.90 seconds mark, the split mechanic will be activated. You should know that '1' means activated and '0' means deactivated.

The commands for activating / deactivating mechanics have a very similar structure:



Everything should be self-explainatory now, except for that extra number in the 'rotation' line.

That 1.2 is how much time rotating the wall takes.

Aaaand that was it. That was the first part of this guide.

If this wasn't clear, please let us know!





2 - How a level works - Second part
In the first section, we covered the basics. But you need some more information to fully understand how a level works.

STREAKS AND RANKS

The rank displayed at the end of the level, from C to A+, depends on the biggest streak (combo) the player has got.

That information is set at the beginning of the level file:



The values that are the side of each rank represent how big the streak must be to achieve the rank.

So, in the example:
  • If the player gets a streak of at least 1, he will get a C rank.
  • If the player gets a streak of at least 100, he will get a B rank.
  • If the player gets a streak of at least 180, he will get an A rank.
  • If the player gets a streak of 286, he will get an A+ rank.

Normally, the player must get a perfect streak to achieve the A+ rank, so the value of the streak must be the sum of total enemies + total friends.

SECTIONS

The level can be divided into 'sections'.
Whenever the background color changes, a new section of the level has just started.

The game changes sections when all the commands within the current section are executed.

This image is an example of how a level file starts and how is divided into sections:



You can see that the level starts with the Rank values and then you can see the first two sections.

The game executes commands as usual, as we have explained in the previous section.

But what about that 'none' command (in the 17th line)?

The 'none' commands has only one purpose: delay the section change until the time we indicate in the 'none' command.

In the example, after the last square of the first section is created (2.82s), the game will have to wait until the 3.2 second mark to change section.

If we don't use the 'none' command, as soon as the last square is created, the game will change the section and therefore will change the background color, even with the last square still being alive.

It's very important to have a 'none' command at the end of each section.

And yup, that's pretty much it for this part of the guide :)

Please, feel free to ask if you have any questions.




3 - Special Commands
We have added special commands that you can use to make the level more interesting:



Have you noticed that the walls and the player have some kind of pulsing?
With the "pulsing" command, you can activate / deactivate that effect.



You can also ask the timer to stop 'counting'. Please remember that it refers to the timer displayed on the top right corner, and that the game uses the time of the song to execute commands.



With the 'settimer' command you can set the timer to a specific value. This value must be less than 64, because when this timer gets to 64, the level ends.



You can hide and show the timer too. Pretty neat.



If you want to say hello to other players or -maybe- propose your girlfriend/boyfriend, you can use the 'message' command.
You must also specify the duration of the message.

SPAWN ROTATION



Have you noticed that a level is not exactly the same when you retry it? That's because we rotate the direction the squares are coming from by using the command 'spawnrotation'.

This command let us change the direction a square is coming from by adding a rotation value.

The structure you must use with this command is the following:



- If you use any of these values (0, 90, 180, 270), now the squares will always come from the direction that is X degrees next to their current direction.

- But you can make the rotation random by using the following values:
  • 0 means that the game no rotation is being added and therefore, the squares will come from their original direction.
  • -1 means that the game will randomly pick 0, 90, 180 or 270 and rotate the squares direction according to the chosen value.
  • -2 means that the game will randomly pick 0 or 180 and rotate the squares direction according to the chosen value.
  • -3 means that the game will randomly pick 90 or 270 and rotate the squares direction according to the chosen value.
  • -4 means that the game will randomly pick 0 or 90 and rotate the squares direction according to the chosen value.

Note: One important thing to consider when using spawnrotation is that it affects the whole level, not only the current section. So, if you want to rotate the spawning direction of certain squares, after the last square you want to rotate is spawned, you must call again spawnrotation and set it to 0, to return to the original spawning directions.

And, as always, feel free to ask <3



4 - Using the in-game editor
Thank your for your patience! Now comes the fun part.

HOW THE EDITOR WORKS

Basically, the idea behind all of this is that you play an 'empty' level (with no squares) with a song being played. The way you play your imaginary level is recorded by the editor and automatically generates a level file with all the commands needed to replicate your level.

SETUP BEFORE USING THE EDITOR

Every level in 64.0 is paired with a song because the command execution of each level depends on the song. Therefore, you must have a song before creating your level. No song, no level.

If you are on Windows, go to your Documents folder. Look for a folder called rebel rabbit, and inside this folder, there must be a folder called 64.0

If you are on Mac, go to your Users/<your user> folder. Look for a folder called rebel rabbit, and inside this folder, there must be a folder called 64.0

IF, FOR SOME REASON, YOU DON'T HAVE THESE FOLDERS, YOU CAN CREATE THEM MANUALLY.


Sorry for the spanish.

Anyway. These two folders are really important: editor and levels.

- The levels folder is where you must place all the levels you create, along with their songs, so the game can load them.

- The editor folder is where your level is automatically generated after using the in-game editor.

To use the in-game editor, make sure you have an .mp3 file or an .ogg file called 'song' inside the editor folder.

On Windows, both formats are supported.
On Mac, only .ogg files are supported. HOWEVER, we are still trying to find a way to use .mp3 files, so please be patient if you are a Mac user.



Now that you have placed a song inside the editor folder, let's go to the in-game editor.

USING THE IN-GAME EDITOR

Enter the Custom Level Menu from the Main Menu.



Go left and enter the Editor.
When you enter the Editor, the game will start loading the song you placed in the editor folder. While doing this, the game will freeze for a little while. That freezing is from the MP3 loading library we use, so there's nothing we can do to prevent it :(

RECORDING

As we said before, while playing in the editor, every input you make is being recorded. If you shoot right, the editor will take the time you pressed the key, then make some calculations and will generate a command in the auto-generated level file.

SPECIAL INPUTS FOR RECORDING

You can shoot with the keyboard or with your controller. The game will record it no matter what kind of input you are using.

However, there are certain things you can only do with your keyboard:

- Press 'Spacebar' to start a new section and therefore, change the color of the background.
- Press '1' (from the numbers that are above the letters, not from the numpad) to activate / deactivate the 'blinking' mechanic.
- Press '2' to activate / deactivate the 'split' mechanic.
- Press '3' to activate / deactivate the 'rotation' mechanic.
- Press '4' to activate / deactivate the 'white area' mechanic.
- Press 'ESC' to leave the editor. Doing this will delete the autogenerated level.

AFTER RECORDING

After the timer gets to 64 seconds, the autogenerated level will be saved inside your editor folder under the name of autolevel.



And voilá. you have your own level.



5 - Playing your own level
So now you have your own custom level. Congratulations!

Let's say you want your level to be called 'my first level'.

Go to your levels folder, and create a folder inside it called 'my first level'. Inside this new folder, place the autolevel file along with the song, and rename both to 'my first level'.

Something like this: (remember you can also use .mp3 files)



So, important things to remember:
  • Inside your levels folder, create a new empty folder with the name you want your new level to have.
  • Copy the autolevel .json file and the song you used to record your level, and paste them inside the new folder you just created.
  • Rename both files to match the folder name

The folder containing the level and the files inside it must have the same name, otherwise it won't work.



EDITING YOUR CUSTOM LEVEL

Let's say you want to change some small details from your levels.

All you need to do is open your level file with a text editor (AVOID USING NOTEPAD, IT SUCKS).

You can use WordPad or Sublime Text [www.sublimetext.com].

Make changes, save the file and reload (retry) the level. All changes should be reflected.

You can add, remove or change values. It all should work. However, be careful with these characters: '[ , ], {, }', because they are important to the format. Try not to mess with that.


TESTING YOUR LEVELS

Let's say you want to test the last section of your level. You would have to play all the way to the last section without losing. Since that's a tedious process, we have now added one feature that I hope will be very helpful:



"sectionStart" and "songStart" allow us to bypass sections so we can directly test the desired section.

How do they work?

In the example, let's say you want to test section #2. So you don't want to play the first section. What you need to do is adding the "sectionStart" parameter and set the section you want to test.

This will skip the execution of all the commands inside the first section.

It will be likely you will need to add a second parameter called "songStart". This let us set the time the music starts. So you should set this parameter to 2 or 3 seconds before the section you want to test starts.

If you don't use this parameter, the game will skip the first section, but you will have to wait until the song reaches the time for the second section.



And that's it. Now you can play your own levels :)




6 - Sharing your level
Maybe you want to show the world how good your level is.

Learn how to share your levels here:

GUIDE FOR SHARING YOUR LEVELS.




22 Comments
Player X 13 Oct, 2021 @ 1:21pm 
Hi! I have another problem.
The name of my song is "Nightcore - I Would Never Stop You (Remix)", but in the game I only can see "Nightcore - I Would". What must I do to see the full name in the game?
mari rata 8 May, 2021 @ 5:52pm 
quente
Fuchsium 19 Jun, 2020 @ 11:59am 
I think there should be some way to spawn in good guys in the editor, like maybe wasd spawns bad guys and arrow keys spawns good guys? idk just an idea
Acertory 27 May, 2019 @ 10:35am 
I'm having the same problem as matasaco can someone help
Byeol_Lor 25 Mar, 2019 @ 6:59am 
Is the timer variable signed or unsigned? I mean, can I use settimer to set the timer negative for any reason(perhaps a way to get through 64 sec limit without any further process)?
John Morkite 14 Jan, 2019 @ 4:21am 
so....if i put the mp3 file in the "editor" folder and enter the in game editor, the game doesn't find the file...i tried putting the song in the "levels" folder and still nothing...can someone help me please?
oh, and there's this autolevel.json file that keeps appearing...so yeah
SangHyeon 9 Nov, 2017 @ 6:30am 
game cant load ogg sound file in editor folder. wut?
rebel rabbit  [author] 4 Oct, 2017 @ 3:20pm 
@Russell27572 There should be an update right now. That feature was only available in the beta version, but we've just made it public to everyone.

While recording, press 'C' before the timer reaches the 64 seconds and the game will continue recording until you press 'C' again. IIRC, you shouldn't do anything else: everything should be working, you could upload your extended level and everyone would be able to play it.
ContortedKyke 3 Oct, 2017 @ 8:01pm 
Is there a way to extend the 64 second time limit from the in game level editor so that we can avoid having to type each square in by hand?
mochi pharah 6 Aug, 2017 @ 8:13pm 
i need help... i messed up the editor and i deleted the autolevel file how do i restore that file...?:steamsad: