Spin Rhythm XD

Spin Rhythm XD

Not enough ratings
Charter's Guide to Modcharting
By gav
Overview and tips for adding Speen Chroma and Dynamic Track Speed to your charts
   
Award
Favorite
Favorited
Unfavorite
Looking to play modcharts?
You'll want this guide instead.
Installing Mods
To chart with mods, you will need to have the mods installed.
Please refer to this guide for instructions on installing mods in Spin Rhythm.
In particular, you will want Speen Chroma 2 and Dynamic Track Speed.
Also consider using EditorChanges.

Optional: set up custom formatting
Modcharting is done in a text editor, and it can get hard to keep track of things.
I made custom language formats to help with that. You can get them here[github.com].

IMPORTANT - Integrating Mod Files
When generating a backup file in-game, the resultant zip file will not include any .speeds or .chroma files.
You can drag them in manually, but SpinShare will not recognize them and will delete them.

The only way to include Dynamic Track Speed or Chroma in a SpinShare chart is to integrate your mod files. You can do this here[github.com].

This process is fiddly. You can ensure everything goes smoothly by following these steps in order:
  1. Create a backup copy of all chart files: srtb, speeds, and chroma
  2. Close the game
  3. Use the integrator tool
    If you are integrating multiple files, make sure you select the newest srtb every time! Otherwise, you will overwrite one mod with the other instead of combining them!
  4. Launch the game again and create a backup

Make sure to always integrate your mod files before uploading to SpinShare!
Speen Chroma - Overview
Everything you need to know about the Chroma format can be found here[github.com].
I recommend reading it in its entirety.

Note on the chroma format: some keywords don't work properly after integrating mod data. Avoid the following:
  • Swap Flash
  • Swap inside a Repeat


There are 2 main parts to developing good chroma: planning and execution.
During planning, I look for major elements from the song to base my chroma on: concepts, characters, album art, videos, etc.. I'll often sketch my ideas in a paint program or write them as comments in the .chroma file before moving to the next step.
This is also where I pick my colors. Even if I'm copying from something like album art or a screenshot, I still modify them to better suit the in-game display.

Up next: the bulk of the work.
Chroma is all about finding the start and end of each color change and meticulously writing them in your file. Timing errors are hard to spot. Small errors in color codes are hard to spot. So, it's always best to use predefined, named colors and check your work as you go. Once you forget the context of a trigger you wrote, you'll have a much harder time understanding if it's correct.


Pro tip: changing difficulties or editor modes will refresh mod data. You can save the .chroma file and reload in-game by pressing tab to see your changes in real-time!

With very few exceptions, Chroma will make your chart harder to read. Your players don't know the ins and outs of the song like you do. Keep that in mind when creating and rating for difficulty!
Speen Chroma - Tips and Advice
Respect the player
Avoid making Chroma effects that will induce eyestrain or epileptic seizures. Place content warnings where applicable.

Use good colors
There are multiple sciences dedicated to colors. There are also many nuances to Spin Rhythm that affect how colors function.
  • Use contrasting colors: NoteA should be very distinct from NoteB. Beat notes should be very distinct from Spins and Scratches. All note types should be clearly visible even when inside Beatholds.

  • Use proper shade technique: There is more to shading than simply moving the brightness slider up and down. There are many approaches that get different effects, but the bottom line is: adjust hue and/or saturation as you adjust lightness. Your shades will stand out much better that way.
    In this example, the left palette only modifies value (brightness), while the right also modifies hue and saturation








  • Be mindful of the game's colors: Black and dark notes are very difficult to see on the black track. Red highlights give the impression that the player is low on HP. Most players read spins based on their colors, and will be used to left spins being teal and right spins being purple.

Understand how colors fade
When transitioning between two colors, Chroma will essentially draw a line from one to the other in this colorspace:
(in fact, there is no way to perfectly illustrate this colorspace in 2D. This should be close enough, though)


This will result in abnormalities in cases where you go from one red end to the other. Unintuitively, Chroma will cycle the entire rainbow on you. To get around this, fade to a color on the edge, then start your next fade from the other edge:










Fading any two colors will traverse the rainbow between them. You can get around this by fading from Color 1 to grayscale, then from grayscale to Color 2.
(2D asset shortcoming. If you can access white or black, you can access any grayscale color in the same manner)


Tune Chroma to your song
A good Chroma complements the chart and brings out the important features of the song. A bad Chroma can overpower the chart and leave the player with no lasting impressions.
Aim to create identity within the song. Use repetition and consistent color patterns to establish themes. Allow some parts to stay simple so that others can stand out.
Match the feel of the song with your Chroma. Here are some ways that I personally do that:
  • slow color changes for slow sections
  • flashes for high-impact sounds
  • low-contrast or faded colors to create tension
  • saturated colors to emphasize high energy sections
  • changing Highlights to represent parts of the song that don't get charted (eg. chord structure, background noises)
  • complete palette change for thematically different sections
However you choose to represent the music, do it consistently. Patterns and repetition will make your work recognizable and memorable.

Tune Chroma to your chart
Specific Chroma effects that work well in some places can have disastrous effects in others. For example:
  • Low-contrast or rapidly changing colors make non-trivial color swap patterns hard to read (same-lane swaps, etc.)
  • Low-contrast or rapidly changing colors make spin sections hard to read
Of course, you can use these effects to your advantage. Just remember that most players don't enjoy being forced to memorize sections.

On top of what's listed above, you should also respect the difficulty that already exists in your chart. Consider going light on the Chroma for sections that are already difficult, even if this part of the song 'deserves' excessive Chroma effects. Chroma and Note Placement do not exist in a vacuum. One should inform the other (or better yet, they should both inform each other).
If you want more extreme Chroma, consider nerfing the notes first.

Use repeat blocks and color variables
Repeat blocks come with 2 major upsides:
1. You don't have to do as much work
2. If you need to change something, you only have to make the change once
Repeat blocks won't always fit, but when they do, use them.

Same thing with color variables. If you find out near the end of the process that you don't like the shade of purple you picked for NoteB, you can change 1 color code to adjust the entire chart.
Color names are also very useful for organization. It's a lot easier to visually distinguish "Brown" and "Green" than it is to distinguish between "#AD6F37" and "#ADF673"
Dynamic Track Speed - Overview
Everything you need to know about the Speeds format can be found here[github.com].
I recommend reading it in its entirety.


Compared to Chroma, Dynamic Track Speed (DTS) is far simpler in execution. Each instruction is only 2 or 3 numbers, compared to Chroma's 5 (and plethora of extra keywords).

Again, I recommend planning before trying to execute any DTS. Think about what sections of the song could benefit from speed changes or other specific effects.
DTS code is simple enough that I usually make it outright instead of writing comments or notes. Still, don't be afraid to make a general plan before diving into the coding part.

Pro tip: changing difficulties or editor modes will refresh mod data. You can save the .speeds file and reload in-game by pressing tab to see your changes in real-time!


With very few exceptions, DTS will make your chart harder to read. Your players don't know the ins and outs of the song like you do. Keep that in mind when creating and rating for difficulty!
Charter bias is especially strong here.
Dynamic Track Speed - Tips and Advice
Focus on good transitions and telegraphing
This is by far the most important piece of advice I can give for DTS.
It doesn't matter how cool your effects are. If they don't allow time for reading and adapting, they will ruin the chart for your players.

Try to execute speed changes in ways that don't hinder gameplay. There are many ways to do this:
  • make them very gradual
  • make them in periods with simple or no inputs (eg. during spins, long sliders, empty spaces)
Generally, speed changes should never make any upcoming rhythms unclear.
This principle can be subverted in cases where the rhythm is memorable or iconic though.

Know the limits of readability
Players generally have their trackspeed up as high as they can read (hmph).
Knowing this, you should rarely, if ever, go significantly higher than 1x speed for long periods of time. 1.1x is challenging. 1.2x can be impossible.

Lower trackspeed multipliers are much safer by comparison. If you want a specific section to feel fast, consider making every other section slower.

Know the limits of reaction time
This is mostly applicable for forward warps and sudden starts from standstill. I have no hard numbers for how much time is enough. Just understand that these two DTS actions will be difficult to react to and tune the chart accordingly.

Know the quirks of the game engine
With the way DTS is implemented, there are a lot of quirks and side-effects.
At 0 speed, the glow effect of notes will appear to bounce and fade in in strange ways.
Ending the chart at 0 speed will break the results screen, and all sounds until the player restarts their game.
DTS will interact with Twisty Track too. DTS might cause you to hit walls in ways that didn't happen before.
At high speeds (~4x or more), the track will bob on its own.
At very high speeds (~8x or more), the track will leave the planet entirely.
(these values depend on the player's base trackspeed)
Dynamic Track Speed - Catalogue
DTS in particular can be unintuitive to approach, so here's a brief list of patterns and concepts that've shown up in a few charts.

  • Basic speed change
    Your typical speed adjustment. They can be sudden or gradual (via interpolation), flashy or subtle. Different speeds can suit different sections. It's just a matter of transitioning in good way.
    For example:
    30.0 1.0 true 31.5 0.8
    at 30 seconds, the speed will gradually decrease to 0.8x over the course of 1.5 seconds

  • Full stop
    You can set the speed multiplier to 0. All notes within the 0 speed section will appear to be stacked. Most use cases for 0 speed involve stopping for emphasis in empty sections, not during gameplay.
    30.0 0 30.5 0 true 31.0 1
    at 30 seconds, the track stops for 0.5 seconds, after which it gradually speeds back up to 1x over 0.5 seconds.

  • Warp
    I consider a warp to be an unreadably fast speed over a very short span of time. Warps effectively clear the track of all notes and move the ship forward. Works excellent for special effects and in conjunction with other effects.
    29.9 10 30.0 1
    at 29.9 seconds, warp forward at 10x speed for 0.1 seconds

  • Stutter/Bouncing movement
    You can use repeating patterns of different speed multipliers to give the impression of non-linear movement. The two types of this I'll explain are stutter and bounce:

    Bounce movement is simple and comes off as silly and playful.
    Bounce example:
    Repeat 8 Interval 0.5 30.0 2 true 30.25 0.75 EndRepeat
    at 30 seconds, the track will 'bounce' forward every half second 8 times

    Stutter movement is a bit more complex and might require math to execute perfectly.
    Stutter example:
    Repeat 8 interval 0.5 30.0 0.2 30.2 4.2 30.25 1 EndRepeat
    at 30 seconds, the track will 'stutter' for a moment before catching back up to where it would've been (8 times)

  • Backwards movement
    You can make the ship go backwards by setting a negative speed multiplier. This turns Spin Rhythm into an upward scrolling game! It's janky and requires extra care, though.
    • The track will clip into itself and cover up notes.
      this can be helped by using small upward Twisty Track
    • Spins, Scratches, and Sliders don't render very well
    • The area behind the wheel is very small
      generally, reverse motion should be very slow (0.3x or slower) to account for this
    • Reverse motion doesn't play nice over large spans of time or near the start of the chart
    • During transitions in/out of reverse motion, forward notes can overlap with reverse notes
      you can get around this by warping forward before reverse sections (eg. 10x speed for 0.1 seconds)
    29.9 10 30.0 -0.125 35.0 1
    at 29.9 seconds, warp forward briefly. Then, go backwards at 0.125x speed for 5 seconds

  • Backwards bounce
    Uses a similar principle to backwards movement, but only for a short duration. The nice thing about bounce effects is that they're very easy to accomplish: just use interpolate triggers!
    You still have to be careful about tracks overlapping though. You may have to remove notes or nerf the backward portion of the bounce.
    29.75 -4 true 29.95 0 true 30.0 1
    at 29.75 seconds, the track bounces backwards and gradually resumes forward motion
Uploading and Tagging
I said it already, but in case you missed it,
You need to integrate your mod files before uploading to SpinShare.

Please read the section above for instructions.

Once you've integrated your files and created a backup, you can upload to SpinShare as normal.

Tag your charts appropriately
The standard tags are
  • Dynamic Track Speed
  • Speen Chroma 2
You may optionally also tag DTS.

The [MODCHART] Title tag
The difference between a modchart and a chart that uses mods is blurry. Generally, if the chart is built entirely around mods and won't play properly without them, I consider it a modchart.

Modcharts should have [MODCHART] appended to their title.
Conclusion
Modcharting is cool
People do cool things


The biggest thanks I can muster for Mew, who singlehandedly wrote the mods that make this possible.
Also, shoutouts to sodapants, Animanic, and Gamer97 for arranging the events that brought these mods into the spotlight.
Also also, shoutouts to all the modcharters who bring cool ideas to SpinShare with every chart they make.

Y'all are great.