While playing through many custom songs, you may have run into walls that strangely don’t affect the player. These are a fairly recent innovation becoming more and more popular throughout mapping. They can be used for many purposes and are quite an interesting addition to maps.
I believe this to be an side effect of an unexpected bug, with that being said some things may be changed and may render your map un-FCable if the walls get fixed. If you map uses these wall I suggest them to be non intrusive and only for visual appeal.
– Getting Started –
How to start editing these walls? Well you first need to start by finding the .json file in your respective custom song folder.
Lets use the map Ezio’s Family as an example.
We first want to navigate to the ‘CustomSongs’ folder, then to the song you want to edit, there you will find the ‘difficulty.json’ and you can pick whichever you would like to edit. (/CustomSongs/2630–1839/Ezio’s Family/Expert.json)
When you open the .json file you will see a long string, while you can edit like this, it is much easier if you “beautify” it first. A website I use to do this can be found here: https://codebeautify.org/jsonviewer.
After each save with the EditSaber your json will need to be beautified if you would like to go that route (I HIGHLY suggest you do).
If you would like to use the site listed, all you have to do is copy all the json into the box on the left, then press ‘Beautify’, then copy the box on the right back into your ‘difficulty.json’.
Beautified code looks like this:
As you can see, the code is a lot more straightforward and programs like Notepad++ can take advantage of the structure and collapse full data sets. We will be using that feature throughout this tutorial.
– Finding the Walls –
We will use Notepad++’s collapse feature to shrink the data that we don’t need. If you don’t have Notepad++ or a collapse feature, you can press ‘CTRL+F’ and type “_obstacles”.
We will shrink “events“ (Lighting Events) & ”notes” (Notes), this will leave us with “_obstacles”.
A quick explanation of how ‘_time‘ works.
The time is in “bars”. these are what is listed on the right side of the EditSaber timeline. A walls “time” starts at its first point in the timeline.
(With offset, it is recommended you place a temporary wall on a specific line to get the layout of the file and learn your offset.)
In this example, the walls start on the 87, 88, 89 & 90.
Each bar is split into 4ths (& up to 64ths). If you would like to start your wall on the 1/4, you would add 0.25 to your “_time” number.
I recommend placing your walls in EditSaber, then editing them how you like as this eliminates having to place them in the correct spot through the json file.
– Editing the Walls –
First let me explain the json attributes of obstacles.
{ “time“: Bar that the wall starts on, ”lineIndex”: Line left to right that the wall starts on, 0 (far left) to 3 (far right), “type“: Wall type can either be 1 (2 high wall, top) or 0 (4 tall wall), ”duration”: How long the wall lasts, is in bars as well (can be negative as well as 0), “_width”: how wide the wall is left to right (can be negative as well as 0, MUST BE A WHOLE NUMBER), }
You should familiarize yourself with this as it will be helpful to know what you are editing.
The lineIndex looks like this:
The types look like this:
Starting your edit
Locate the wall you would like to edit then you can change the values to get a desired wall.
Walls that are stretched right to left (negative width) currently don’t affect the player. Additionally walls that are pulled back (negative duration) currently don’t either.
If you would like to drag a wall outside of the play area, you will need to start them from inside the play area first and use large width numbers to have them extend outside.
– Things You Can do With Edited Walls –
There are ton of things you can do with edited walls, a few examples will be listed here. Go test out different combinations and see for yourself!
– Troubleshooting –
Q: My game / EditSaber won’t load after I edited a wall. A: Check to make sure you didn’t break the json, the beautifier website also has a json verifier which will tell you if your json is broken. Additionally, make sure you don’t have any walls on line index 4, as that doesn’t exist.
Q: I can’t see a 0 width / 0 duration walls in EditSaber. A: To see 0 width / 0 duration walls (I suggest doing this as it makes editing much simpler.) in the editor, they will need the duration value to be set slightly higher than 0. I found adding 0.1 to them lets them be seen in the editor without changing their look in game.
Q: The walls are looking really weird in game, what’s the deal? A: These walls are taking advantage of a bug (or what I assume is one). They may be fixed or patched out at any time. Please tread carefully with where you place these in your maps.
Q: Paper-Thin walls are breaking my streak, how do I stop that. A: You can try negative duration and negative width, if you have tried both some things may still not work, these are just issues with the game itself and we really can’t solve them. Testing multiple different layouts is really the only option.
Q: Anything else? A: I have a decent amount of experience using and editing these walls. If you have any questions or need some help, please contact me.
– Closing –
These walls are super cool to mess around with, I hope that this helped some of you! Enjoy!
Really awesome guide! Thanks for introducing me to the beautifier website! I’m looking forward to using these walls in my next project. I hope they never patch out the “bug”