Skip to content

Lighting Events

Not to be confused with custom events, these are vanilla lighting events that have extra data added to them.

Example

"basicBeatmapEvents":[
  {
    "b": 8.0,
    "et": 2,
    "i": 1,
    "f": 1,
    "customData": {
      "color": [1, 0, 1],
    }
  }
]

Chroma

Standard Lights

  • "lightID": int Causes event to only affect specified ID. Can be an array.
  • "color": [r, g, b, a] (floats) Array of RGB values (Alpha is optional and will default to 1 if not specified).
  • "easing": string Any easing from easings.net (with the addition of easeLinear and easeStep).
  • "lerpType": string Lerp as HSV or RGB.color lerp (Courtesy of The Secrets of Colour Interpolation).

Laser Speed

  • "lockRotation": bool Set to true and the event it is attached to will not reset laser rotations.
  • "speed": float Identical to just setting value, but allows for decimals. Will overwrite value (Because the game will randomize laser position on anything other than value 0, a small trick you can do is set value to 1 and _preciseSpeed to 0, creating 0 speed lasers with a randomized position).
  • "direction": int Set the spin direction (0 left lasers spin CCW, 1 left lasers spin CW).

Ring Rotation

  • "nameFilter": string Causes event to only affect rings with a listed name (e.g. SmallTrackLaneRings, BigTrackLaneRings).
  • "rotation": float Dictates how far the first ring will spin.
  • "step": float Dictates how much rotation is added between each ring.
  • "prop": float Dictates the rate at which rings behind the first one have physics applied to them. High value makes all rings move simultaneously, low value gives them significant delay.
  • "speed": float Dictates the speed multiplier of the rings.
  • "direction": int Direction to spin the rings (1 spins clockwise, 0 spins counter-clockwise).

Ring Zoom

  • "step": float Dictates how much position offset is added between each ring.
  • "speed": float Dictates how quickly it will move to its new position.