Gimmicks, also known as "scroll variations" in other VSRG communities, are the use of StepMania mechanics to influence the speed of arrows as they travel toward the targets. Gimmicks are often used to draw attention to some feature of the music, or to make the chart more challenging to read.
Most pieces of music have a consistent spacing between downbeats, measured in BPM (beats per minute). StepMania allows the chart writer may choose to set the BPM of the chart (or a section of the chart) to a different value - in the context of gimmicks, this is often used for cosmetic effect.
StepMania also allows the chart writer to insert a "stop", which halts chart scrolling for the given number of seconds without pausing the music.
Because StepMania 3.95 only supports time-based stops with millisecond precision, large numbers of stops can introduce a drift in the song sync due to compounded rounding error. For example, a 16th note at 131 BPM rounds up to 115 milliseconds, but if a chart editor naively places a hundred 0.115-second stops, the sync will drift by almost 50 milliseconds over the course of the song!
Before warps were introduced, chart writers exploited a quirk of the StepMania 3.9 engine, using stops or BPM changes with negative values to fast-forward or "warp" the chart. Tap notes and mines that occurred during a warp generally couldn't be hit by the player, but also wouldn't have any effect on the lifebar. It was impossible to achieve 100% on charts with arrows during negative gimmicks, since StepMania 3.9 didn't distinguish between chart elements inside and outside of a warp section.
The SSC format introduced a few additional tools that could create new kinds of visual effects.
In StepMania 5's edit mode, most of these tools are accessible through one or more of the following menus:
F4
(Timing)A
(Alter)Enter
Esc
In ArrowVortex, there is an "Adjust tempo SM5" panel that can be opened.
The SSC format allows different charts in the same file to have separate mappings of beats to music time. Chart writers can place gimmicks in just one difficulty slot and leave the others free, or express unique ideas in each chart. Split timing is often used to gradually simplify the visual complexity in the easier difficulties, making the simfile more approachable for new players. In StepMania 5's editor, pressing T
switches between song timing (which applies to all charts) and split timing, and split timing can be removed from the Esc
menu.
The same SSC mechanic that allows for split timing also extends to a separate music file for each chart; however, the StepMania logic that calculates the length of the song only checks the base file's audio. Examples of per-chart music include mdx's Treaty of Peace between Glitchhop and Moombahcore (global namespace 2) and Telperion's crew (U.P.S. 3).
Once split timing is present in a SSC file, it loses compatibility with the SM format, and editor programs won't attempt to save an "unsplit" version of the simfile.
Scroll rates act as a plain multiplier on the current scrolling speed of the arrows. For example, a 120 BPM song with a 1.25 scroll rate applied moves as fast as a 150 BPM song. Subsequent scroll rates override the previous ones, instead of compounding.
This value can also be set to 0, which provides an alternative to the time-based stop found in the .sm format; however, unlike time-based stops, the chart doesn't actually halt. The targets will still blink on beat, and the player is expected to respond to any notes that occur during a 0× scroll rate.
Negative scroll rates are also accepted by StepMania; the visual spacing is the same as the corresponding positive scroll rate, but the notes scroll in the opposite direction.
Speed segments also act as a plain multiplier on the current scrolling speed, but they take effect gradually over the chosen number of beats or seconds. For example, applying a "1.25/8.0/B" segment in a 120 BPM chart will linearly increase the speed of the arrows over 8.0 Beats until it moves as fast as a (120 × 1.25 =) 150 BPM song. If another speed segment follows, it will start from the multiplier reached by the previous one, and gradually transition to the new specified multiplier (instead of compounding).
Speed segments and scroll rates provide independent multipliers and can be compounded together. For example, at the end of a 2.0/4.0/B speed segment with a 0.5 scroll rate active, the chart will appear to be scrolling as if no effects were applied.
The SSC format also introduced built-in warps that have a more intuitive behavior than the negative-value hack of older versions. The chart writer can directly specify the number of beats to warp over, and notes during that section will not be hittable or counted at all (they become "fakes").
When editing a simfile, StepMania 5 will make all possible efforts to convert negative-value gimmicks to explicit SSC-format warps. If the .sm file is still present, and split timing hasn't been introduced, StepMania 5 will also save any SSC-format warps as negative stops in the .sm file.
Fake segments have no effect except to turn all notes within them into fakes - they will scroll by the receptors and cannot be hit, but they don't detract from lifebar or score. (Individual fake notes can also be inserted outside of fake segments.)
Delays have identical behavior to stops, except that notes on the exact beat of a stop will fire when they arrive, but notes on a delay will fire after the delay time has passed.
Isolated stops and instances of halving/doubling BPM gradually manifested in early DDR, culminating in charts like the MAX series (MAX 300, MAXX UNLIMITED, The legend of MAXX) and the PARANOiA series (Survivor and Survivor MAX). As DDR releases marched on, charts like these were created from the ground up with the goal of challenging the growing skill of high-level players, and the tracks themselves distance themselves from the typical genres of "dance music" to provide more hooks and anchors for novel rhythms, as well as new ways to visually destabilize the player. For example, MAX 300's gradual slowdown to a stop still trips up unfamiliar players, and PARANOiA Survivor draws on an eight-measure-long half-BPM motif to create its own identity.
The extra stage songs released in DanceDanceRevolution SuperNOVA marked a departure from the regularly-spaced gimmicks of charts like PARANOiA Survivor and the large-scale features of MAX 300, 桜, and others. Fascination MAXX, Fascination ~eternal love mix~, and CHAOS featured a large quantity and variety of BPM changes and stops, testing the memorization skills of high-level players. In the short-lived official In the Groove series, notable examples include:
After the In the Groove series was officially halted, the fan project In the Groove: Rebirth attempted to pick up the reins of 4-panel content, releasing a pack of over 80 songs with an aesthetic based on official In the Groove content. The Rebirth pack includes Sonic Vision, which features two negative BPM warps that instantly fast-forward the chart, "replacing" mines with real arrows.
The r21freak forum (named after the In the Groove r21 patch that allowed custom songs to be loaded and played from a player's thumbdrive) also came into existence around this time, and the staff released a series of r21freak Site Packs with a dozen or so simfiles each. The first r21freak simfile pack, "r2112", included two Modeselektor songs stepped by sssmsm - Dancingbox and Silikon (feat. Sasha Pereira) - which gained notoriety for the unprecedented quantity of gimmicks built onto their glitchy techno and vocal patterns. One popular effect came to be known as the "stutter" gimmick, which used a short stop to soak up half of a rhythmic unit and create a stuttering motion.
Meanwhile, the DDR series intensified their approach, packing even more BPM changes and stops into charts like Pluto, Trigger, and PARANOiA ~HADES~.
Until about 2010, both official DDR and the 4-panel customs gimmick scene used simple operations to lay out gimmicks, halving or doubling the BPM as necessary. Unfortunately, this approach disturbs the rhythm coloring of the arrows - making downbeats appear as if they were offbeats, swing notes, or triplets, making it hard for a player to deduce on the first few attempts what the true rhythm might be.
In the early 2010s, zimlord, another r21freak staff member, began to release files that had unique gimmick recipes, including stutter gimmicks that didn't compress the number of beats covered in the chart. These stutter gimmicks also came in multiple flavors - "sharp", using a stop and resembling the jerky motion found in Dancingbox, and "soft", which used a pair of BPM changes tuned to cover the same rhythmic unit. By controlling the proportion of the BPM changes and any stops, zimlord was able to preserve rhythm coloring and lighten how much chart knowledge the player would have to commit to memory.
The rise of dubstep and brostep around this time offered a friendly substrate for soft stutter "wubs", and this approach became very popular.
Once it became easy to install StepMania 5 on cabs and personal setups, players had a way to experience the wide range of visual effects possible with direct commands in the SSC format, and chart writers were more motivated to experiment with them.
The first wave of SSC gimmicks were heavily inspired by charts in Pump It Up, which had outpaced DDR with engine extensions that supported a variety of effects. Generally, simfiles using such gimmicks were relegated to experimental packs or unconventional tournaments. The U.P.S. and S.M.H. tournament series, where each participant could choose a handful of charts for pack inclusion, received lots of gimmick-laden files that players hoped would give them the advantage. Reception at first was lukewarm from seasoned players, who spent some time getting used to the unfamiliar techniques, but fresher faces responded with more enthusiasm and petitioned for the inclusion of U.P.S. and S.M.H. charts in mainstream tournaments, carving out a place in the "meta" for these new gimmicks.
Anyway, I think it'd be cool if a couple people that appeared on the scene around this time contributed a blurb or two about Cool Effects™ that had an impact on them in their relative ITG youth.
The prevailing attitudes of ITG players on the use of gimmicks vary mostly by community. In the stamina/footspeed community, the focus is primarily on pushing physical boundaries, and complicating the mental aspect of the game is generally viewed as counterproductive, although there are some examples of "stamina mods" content (such as Zaia's I'm For You) that can also involve gimmicks. Reception in the technical/timing attack community is mixed, depending on whether individual players feel that the challenge posed by visual disruptions represents a "technique" to master or not, but many players keep a handful of gimmick charts around for casual enjoyment or tournament picks. The use of Cmod to enforce a constant scroll speed is widespread in both communities. The mods community seeks out simfiles that are strongly visually enhanced and often welcomes the use of gimmicks, seeing them as part of the experience when they are present.
Although the playfield generally doesn't cover a large enough viewing area or fluctuate enough to fall into photosensitive epilepsy standards for digital video, there are individuals in the community that have reported vestigial symptoms on files with flashing or flickering effects, so caution should be taken to limit the strength and frequency of such effects.
Stutter gimmicks get their name from the choppy motion the notes undergo. In the .sm format, there are two main varieties: a tiny stop compensated by a BPM change, creating a "sharp" effect, or a pair of short BPM changes that give a "soft" effect.
A color-correct sharp stutter can be scripted as follows:
The chart writer can balance the values by choosing a specific stop length or the BPM and calculating out the other. Consider the following two approaches for 16th note stutters at 154 BPM, each lasting 0.0974... seconds:
A color-correct soft stutter uses paired BPMs to achieve a wave-like perturbance. The proportion of the two BPMs to the original depends on the strength of the stutter and how much each is applied for, and the calculation usually involves the reciprocal of these BPM proportions, to make sure the "minutes per beat" remains the same. The soft stutter can have a "rushing" or "dragging" feel, depending on whether the BPMs are applied fast-slow or slow-fast, respectively.
A longer-lasting gimmick might use three or more BPM changes to ease more gradually, but for short stutters two is usually adequate.
In the early days of BMS (Be-Music Source, the beatmania simulation content community), chart writers sometimes played a trick where they produced a swing rhythm in a song whose original version had none, but used BPM changes to preserve the original spacing of the notes. Sometime in the early 2000s, this technique, known as 音頭 ("ondo", to set the pace of a song), was replicated in a popular file to the BMS song POST by wonderland*materials. The author used the modified track, POST音頭, but placed 4th, 8th, and 16th notes, as if they were unswung - and then re-aligned them to the triplet rhythm of the music, by alternating between 0.75× and 1.5× of the original BPM. In the 4-panel community, this is simply referred to as the "POST gimmick" or "POST-X gimmick", since StepMania couldn't display the Japanese characters in the title of the POST音頭 file.
As color-correct gimmicks became the norm, shifted swing faded from use, appearing only rarely in such files as dimo's Warp Zone (dimocracy) or Telperion's Undercover (Z-I-v Summer Contest 2020).
StepMania's engine keeps track of chart position by calculating the total effect of offset, BPM changes, and stops. As a chart is played, StepMania knows the time when each beat should reach the targets. However, this "beat mapping" does not screen for negative BPM changes or stops; the engine gives them no special treatment when performing calculations, and chart writers in the mid-2000's put that knowledge to use using an "aliasing" technique. By pairing a negative BPM change or stop with an equal and opposite BPM change or stop, they could rewind the engine's internal clock and then let it catch back up, placing a beat much further along the chart at the same time as the start of the gimmick and effectively skipping the section between this "aliased" pair of beats.
For example, if a chart writer sets the BPM at beat 4 to -120 BPM, then beat 8 to (positive) 120 BPM, the measure between beats 8 and 12 will be canceled out by the rewinding of the internal clock from beats 4 to 8, and the chart instantly jumps from beat 4 to beat 12 in gameplay, skipping or "warping" through two measures.
If there are notes in the warped section, they are unhittable unless they fall within a judgment window of either end of the warp. Chart writers looking to create a sudden replacement effect often use mines, holds, or arrows that "echo" the eventual true notes at the warp endpoint, but without ample padding, the player could accidentally trigger these "unhittable" mines or encounter single-ended judgment windows for these "fake" notes.
With the rise of SSC gimmicks, negative-value warps have mostly disappeared in favor of explicit warp support. One major exception is the couples chart scene, where rhythmic coloring is used to distinguish between players, so tiny negative-stop warps are used to alias the two players' notes back together. For example, a quarter note and a 192nd note at 125 BPM are a disorienting 10ms apart, so a -0.010 second stop on the downbeat will allow the players to step in sync with each other, and a (positive) 0.010 second stop on the 192nd note will cancel out the introduced offset and keep the song on sync.
Whenever BPM changes and stops are added to a song, there is a risk of moving beats earlier or later in time than they should occur, causing the chart to "go off-sync" or "drift". Chart writers often double-check their work by marking a later beat and noting down StepMania or ArrowVortex's time calculation before applying the gimmicks, then making sure the result still matches.
The use of scroll rates to compensate for natural changes in BPM (such as gradual slowdowns or live recordings), coupled with an appropriate #DISPLAYBPM setting, is very popular: the chart writer no longer has to recommend Cmod for the whole chart, nor task the player with remembering to switch it on. For example, if a chart changes from 120 BPM to 150 BPM, the chart writer can set #DISPLAYBPM to 150, then place a (150/120) = 1.25 scroll rate where the 120 BPM section starts, and a 1.0 scroll rate where the 150 BPM section starts. One example of this is Telperion's SHUM from UPSMH Online, which accounts for a gradual BPM change over most of the song, while leaving the ramp in the central climax intact.
The Bermuda △ Triangle scroll normalizer tool, named for a song by かめりあ feat. The8BitDrummer with a similar tempo ramp, can automatically calculate and place the scroll rates required to compensate for any BPM changes that are present.
With only BPM changes at one's disposal, cosmetic slowdowns and speedups are usually restricted to whole-number divisors and multipliers (one notable counterexample being DDR SuperNOVA's INNOCENCE OF SILENCE, which incorporates a 3/4× multiplier). However, scroll rates and speed segments offer some more polite approaches:
Since SSC scroll rate mechanics are entirely visual, they free the chart writer from having to account for sync in stutter gimmicks as well.
The stop in "sharp" stutters can be replaced with a 0× scroll rate at the beginning of the gimmick. Another scroll rate should be placed mid-gimmick to make sure the spacing of the notes remains consistent.
The scroll rate arithmetic also drops the need for reciprocals: simply multiplying the portion of the gimmick by the scroll rate applied accounts for its contribution.
Scroll rate arithmetic is flexible and simple enough to easily extrapolate to more than two changes.
One particularly emphatic use of SSC mechanics is the "rubber-band" effect, where a scroll rate and a speed segment are applied at the same time, with multipliers that cancel once the speed segment is fully active.
The behavior of negative scroll rates can be accurately extrapolated: they make the chart move at the same speed as their positive counterparts, but in reverse, causing a "rewinding" effect.
Another popular effect in Pump It Up charts is the "shake" effect, where the whole chart's scroll speed is rapidly switched up and down to create a flickering effect. To accomplish this in SSC format, instantaneous speed segments alternating between original speed and slightly less are applied at high frequency (e.g., 1.0/0.0/B and 0.9/0.0/B). A notable example of this in 4-panel customs is bkirz's Palpitation chart (Technical Showcase 4).
Chart writers that implement shake effects should take care to limit the frequency and strength, so as not to trigger photosensitive epilepsy in susceptible players.
A popular effect in Pump It Up charts is the "inchworm" effect, where the chart appears to shrink and dilate to the rhythm of the music. This can be accomplished by chaining together speed segments that alternate between 1.0× and a slightly smaller number such as 0.8×, usually lasting a beat or half a beat apiece (1.0/0.5/B and 0.8/0.5/B).