Spin Rhythm XD

Spin Rhythm XD

评价数不足
Charter's Guide to Chart Updates
由 gav 制作
An overview of updating charts without wiping your beloved leaderboards
2
   
奖励
收藏
已收藏
取消收藏
Changes that WILL wipe leaderboards
Note Data and Track Title.

No matter how careful you are, you can't change these without wiping leaderboards. In fact, leaderboards are explicitly bound to these.

That said, note data is stored per difficulty, so if you want to modify Expert, you can do so without wiping XD's leaderboard, etc..
Via SRTB Editor (recommended)
My friend kyu and I made an editor just for this purpose. It lets you access charts straight from SpinShare, edit the most useful pieces of data, and repack them just as easily. It also formats the entire SRTB much more cleanly than Notepad++ does.

You can find it here:
https://kyuquu.github.io/SRTBEditor/

Via Text Editor
(Optional) Set up Notepad++

While srtbs can be viewed in any text editor, Notepad++ has a handy utility that automatically organizes the file as a json. Don't know what a json is? That's fine. Just compare these two images:


Even though it isn't perfect, it sure helps.

1. Get Notepad++ from https://notepad-plus-plus.org/downloads/
2. Install "JSON Viewer" from Plugins>Plugins Admin
3. With any srtb file open, push ctrl-alt-shift-m

Repack for upload
After editing your chart, you will need to repack it into a ZIP before uploading to SpinShare.
SpinShare and Spin Rhythm both reserialize the entire chart. This essentially means that every decimal number will possibly be changed by a minuscule amount. It's unnoticeable, but it does change the leaderboards.
Because of this, it's best to use an external editor and repack the backup manually.

To do this, download a zip from the website, unzip it, and apply any modifications to the srtb via a text editor.
Do not load the chart in Spin Rhythm or the notes will reserealize.
Do not use Spin Rhythm to create a backup or the notes will reserealize.

You may also modify the audio or album art. Just make sure to keep the same names for them.

Afterwards, drag any modified files back into the zip and upload it.

I recommend keeping an extra copy of an unmodified backup, just in case your modifications fail and ruin the chart or the leaderboards.

*In theory you should be free to modify and upload your original copy so long as you don't move any notes. However, Spin Rhythm is very silly and might ruin everything anyway.
Modifying Basic Metadata
To change basic metadata, just search for the parameter with ctrl-f or something similar, type in your new value, and save.

General chart metadata:
  • subtitle
  • artistName
  • featArtists
  • charter
  • backgroundId
  • backgroundColoring

There are also many pieces of metadata that appear in each difficulty of the chart. You'll need to make sure you're modifying the right difficulty when changing any of these:
  • difficultyRating
  • previewLoopBars
  • clipData*

You can also modify the entire ClipInfo, which includes bpm markers, time signature markers, and cuepoints. This process is probably best done in the editor and spliced back into the srtb. I'll cover this later.

*modifying clipData or ClipInfo might result in notes moving away from where they should be. For more info, check my guide on clipping.
*for more information on modifying the background, check this spreadsheet[docs.google.com].
Complex Modifications, Splicing
Changing a difficulty will wipe the boards for that difficulty, but not for the others.

To do this, we'll need to dabble with srtb splicing. Please do not attempt this without Notepad++ or you will go crazy and die.

The entire basis of splicing is that you modify the chart to your hearts content using the in-game editor. Afterward, you copy-paste any difficulties you wish to preserve from a fresh SpinShare copy back into your edited copy (or copy your modified difficulties into a SpinShare copy).
You'll need to load a SpinShare copy of your chart in the editor, otherwise you'll end up with an srtb that references art and audio that don't exist.

As an example, I'm going to splice XD back into a chart that I've just finished making low-diffs for.

First, I'll load both charts. NP++ has the ability to host 2 windows, each with their own set of tabs. Very useful for this. I'll load the old chart in 1 window, new in the other, then apply the JSON plugin to both (ctrl + alt + shift + m).


Next I'll select the entire XD difficulty in the SpinShare srtb. To do this, find the line below "SO_TrackData_TrackData_4" and triple-click on it. Copy it.

Next, I'll select the entire XD difficulty in the modified srtb. Again, same line, triple click. Now paste, which should override and leave the chart looking much the same as before.

Just to be sure, load the srtb up in game and check the leaderboards, the new difficulties, etc.. You might need to restart Spin Rhythm.
Also, check the allowCustomLeaderboardCreation field. You generally want this to be set to true.


This system works with any of the major sections:
SO_TrackInfo_TrackInfo
General metadata
SO_TrackData_TrackData_0
Easy chart data
SO_TrackData_TrackData_1
Normal chart data
SO_TrackData_TrackData_2
Hard chart data
SO_TrackData_TrackData_3
Expert chart data
SO_TrackData_TrackData_4
XD chart data
SO_ClipInfo_ClipInfo_0
Clip Info Data: bpm markers, time signatures, and cuepoints

Though possible, I recommend against splicing general metadata, as you might end up hiding difficulties or disabling leaderboard creation.
Special Splice: Twisty Track
Now that we have twisty track, we can splice that into old charts, too. We can even add twisty track to a difficulty without wiping its leaderboards.
Unfortunately, it's not easy.

Overview
There are two pieces to twisty track per difficulty. You need them both.

The first is a pair of variables, splinePath and splinePathData.
In any chart modified in the newest updates of SRXD, these variables will contain 1 sub-variable each, with default values:
\"splinePath\":{\"rid\":-2},\"splinePathData\":{\"instanceID\":0},

The second is references, located at the very end of each difficulty.
In any chart modified in the newest updates, it will contain many sub-variables of varying default values:
\"references\":{\"version\":2,\"RefIds\":[{\"rid\":-2,\"type\":{\"class\":\"\",\"ns\":\"\",\"asm\":\"\"},\"data\":{}}]}

To splice twisty track into a chart that doesn't yet have it, we'll need to modify both pieces.


The Process
The first is by far the easier of the two. Just changed the value of rid from -2 to 1000.
(if these variables don't exist, create them yourself. They're placed after groundSettingsOverTime by default. Mind your commas)

The second is where we splice.

You will need to replace the entire block from above with the equivalent from a different srtb, one that actually contains the flight paths you want.
I've found the easiest way to do this is to delete references and every sub-variable and punctuation associated with it, then verify that the file is still a valid JSON (ctrl + alt + shift + m, make sure you don't have any text selected). If so, paste the entire references section from the flight path srtb and again, verify that it's still a valid JSON.
(if references doesn't exist, congrats! that's half the work done! It's placed after lastEditedOnDate by default. Mind your commas and braces)
Album Art and Audio
This one's simple, really.
If you want to change either of these, just substitute them in for the old. There are only 2 important things to note:
  1. Make sure the new files have the same name as the old. You may use a different file format, but make sure only one audio/album art exists in the final backup.
    eg. spinshare_640a337442284.png

  2. If you modify or change the audio, make sure it still syncs up with the old audio. Be particularly careful with audio from new sources, or changing to/from mp3 format, as both of these can cause a desync.
Troubleshooting
I can't play my chart anymore!
Try restarting your game. If it still won't work, you probably messed up the formatting somewhere.
You can try double checking everything, but honestly, starting over might be easier. :/

My difficulties are acting strange!
Multiple hard buttons?
You might've messed up formatting somewhere or spliced a difficulty where it doesn't belong.

I did all the right things, but my changes aren't applying!
When you modify something outside of Spin Rhythm, the chart won't update immediately in game. Your options are to either restart the game or move the chart out of your customs folder, then back in.
(If you're confident, you can also delete the chart in game, then save in your notepad editor, which should recreate the file and refresh in game)

When I uploaded my new backup, it didn't have any album art or audio!
There are 2 possible problems to cause this:
1. You put an original srtb into a SpinShare backup or a SpinShare srtb into an original backup. Both systems use a different naming convention, so neither of them will recognize each other's audio clips or album arts.
2. You modified/spliced the ClipInfo or TrackData with an srtb from the opposite source. This is why I recommend against splicing these. Double check your albumArtReference and clipAssetReference. They should match your album art and audio clip names (but should not contain the file extension)
1 条留言
Somethingbythesun 2023 年 7 月 9 日 下午 2:53 
Gav :steamthumbsup: