| Name | ID (TODO: hex values) | Value | Description | Notes |
|---|---|---|---|---|
| Info text alpha | texta | 0-1 | Controls the transparency of the “BLUE = LEFT”, “RED = RIGHT” text | |
| Image position | imgx?, imgy? | Pixels | Controls the position of each overlay image, where ? is the image number from 1-7 | Image list: sp_ram_car1 , sp_ram_car2 , sp_ram_car3 , sp_ram_car4 , sp_ram_cat , sp_ram_presidential , sp_ram_presidential |
| Image scale | imgzm?, imgzmb?, imgzmx?/imgzmy? | Scale factor | Controls the scale of each image, where ? is the image number. imgzm and imgzmb are added to the x or y value. | |
| Image rotation | imgrz? | Angle in degrees | Controls the rotation of each image, where ? is the image number. | |
| Image alpha | imga? | 0-1 | Controls the transparency of each image, where ? is the image number. | |
| Plane alpha | planea | 0-1 | Controls the transparency of the plane thing. | The actual video only plays at beat 152, no matter what the alpha is set to. If you set the alpha to 1 before this, you’ll only see the first frame until beat 152. |
| Fisheye VFX | fish | 0-1 | Controls the strength of the fisheye effect. | This gets crazy if you set it to high values. Like super crazy. |
| Vignette | vig | 0-5 | Controls the strength of the vignette effect. | If you set this above 5 it starts getting weird and inverting the colours. |
| Glitch strength | glitchamp | 0-1 | Controls the strength of the glitch effect. | |
| Glitch offset | glitchoffset | ? | I can’t notice any changes based on this. For reference, it’s used to set the shader uniform stime. | |
| Bloom VFX | bloom | 0-1 | Controls the strength of the bloom effect. | |
| Greyscale VFX | gray | 0-1 | Controls the strength of the greyscale effect. | If you push this above 1 the colours get real fucked. Setting it to 10 makes the lanes red and green which may be peak for christmas themed charts. |
| HUD position | posx/posy | 0-0.9 | Moves the HUD around on the screen, wrapping around the edges. | When this hits 1 it just wraps and appears like nothing changed. |
| Sine transformation | sina/sinp/sino | See notes | Transforms the UI in the Y axis according to a sine wave. a = amplitude, p = period, o = offset. | Setting the p value to 0 will stop anything showing on screen, the closer it gets to 0 the smaller the waves are.. The o value should be from 0-1. |
| Cosine transformation | cosa/cosp/coso | The same as above, but in the X axis. | ||
| Tangent transformation | tana/tanp/tano | The same as above, but I don’t even know how to describe this in words. Just put tan(x) into a graphing calculator and it looks kinda like that. | ||
| Twist effect | twx?, twy?, twa?, twr? | ? refers to the twist object number, from 1-4. x/y = position, a = amplitude, r = rotation?. | I need to research this more, it’s all in the shader. | |
| TV static VFX | static | 0-1 | Controls the transparency of the TV static overlay. | This didn’t do anything in my testing, not sure why. |
| Cover 1 (UI hide) | cover1 | 0-1 | Controls whether the HUD (scoring and stuff) is hidden. (Inverse UI alpha) | This is actually used to set the value of the uialpha modifier, so that one doesn’t work on this chart. |
| Cover 2 | cover2 | 0-1 | Controls the transparency of the sp_cover2 sprite. TODO: check what this actually is. | |
| Cover 3 | cover3 | 0-1 | Controls the transparency of the sp_cover3 sprite. TODO: check what this actually is. | |
| Spin radius | spinradiusx/spinradiusz | ? | This is used by the wiggle and flicker per-frames. Look at those for more info. | spinradiusz isn’t actually used anywhere in this, only the x one is. |
| ??? | fakezy/fakezyb | ? | These seem to be unused in this one. | |
| Float | float | ? | This is used by the wiggle per-frame. Look at that for more info. | |
| Wiggly | wiggly | ? | Also as above. | |
| Rotation dir | rotdir | 0-360 degrees | As far as I can tell this is for rotating the screen but it relies on proxy objects and I’m too tired to get it working right now. |
Per-frames
This section is incomplete because I’m extremely tired writing this; I’ll find out more and update it soon™
quake
Seeds the RNG based on the current frame number, then sets the prxd modifier of the first 8 proxies based on a random number and the prvib modifier.
wiggle
Uses the spinradiusx, float and wiggly modifiers as in the table above.
Sets the prxc, prrx, prry and prrzb fields of the first 4 proxies based on these.
flicker
Uses the spinradiusx modifier as in the table above.
Sets the prxc field of the first 4 proxies to the spin radius multiplied by a global variable.
This global variable starts at 1, and is negated every frame.