Skip to content

Environment Data

A directory housing extensive BeatSaber Environment information

Select your environment

  1. Select your version of BeatSaber
  2. Click on the desired environment to download the JSON file, or view it in here

Download EnvData

View EnvData


Supported Components

99% of components will have a Transform component, but some may have more to help out with specific cases.

The following components will be listed with selected properties:

  • Transform
    • position
    • localPosition
    • rotation
    • localRotation
    • localScale
  • TrackLaneRingsManager
    • ringCount
    • ringPositionZStep
  • MeshFilter
    • boundCenter
    • boundSize
  • TubeBloomPrePassLight
    • colorAlphaMultiplier
    • bloomFogIntensityMultiplier
    • length
    • width
  • TubeBloomPrePassLightWithId
    • tubeLightId
  • DirectionalLightWithId
    • lightId
  • Animator
    • animatorParameters
    • animatorLayerNames
  • LightManager
    • directionalLightDirections
    • directionalLightPositions
  • DirectionalLight
    • lightIntensity
    • lightRadius
    • lightRotation
  • BakedReflectionProbe
    • probeSize
    • probePosition
  • SpriteLightWithId
    • spriteLightId
    • intensity
  • RectangleFakeGlow
    • rectangleSize
  • RectangleFakeGlowWithLightId
    • rectangleLightId
  • EnvironmentBrandingManager
    • brandingObjects
  • ParticleSystemWithLightId
    • particleLightId
    • particleLightIntensity
  • InstancedMaterialLightWithId
    • materialLightId
    • materialLightIntensity
  • MeshCollider
    • meshBoundsCenter
    • meshBoundsSize
  • CloudsMeshGenerator (1.37.1+ Only)
    • cloudsBoundSize
    • cloudsBoundCenter
  • CustomBoundingBox
    • customBoundCenter
    • customBoundSize
  • Animation
    • clipFrameRate
    • clipLength
  • SmoothStepPositionEventEffect
    • minY
    • maxY
    • stepSize
    • startPos
    • easing
  • LightGroupCircularLayouter
    • circularRadius
    • circularAngle
    • groupId
  • SmoothStepPositionGroupEventEffect
    • groupMinY
    • groupMaxY
    • groupStepSize
    • groupStartPos
    • groupEasing

The following components will be listed without any properties listed:

  • BloomFogEnvironment
  • EnvironmentSceneSetup
  • LightWithIdManager
  • Canvas
  • ParticleSystem
  • Spectrogram
  • BloomPrePassBackgroundColorsGradient
  • Mirror
  • SaberBurnMarkArea
  • TrackLaneRing
  • LightColorGroupEffectManager
  • LightRotationGroupEffectManager
  • LightGroup
  • LightGroupLinearLayouter
  • LightRotationGroup
  • ContinuousFireEffect
  • BurstFireEffect
  • LightmapLightWithIdsGroupEntry
  • FloatingTransformEffect
  • LightTranslationGroup
  • TransformSpectrogram
  • ColorArrayLightWithIds
  • LevelFailedTextOverride
  • MoveInDirectionEffect
  • TubeBloomPrePassLightCollisionEffect
  • TubeBloomPrePassLightReflectionEffect
  • MaterialLightWithId
  • BTSCharacterSpawnController
  • RigidBody
  • LightmapLightWithIds
  • ParticleSystemLightWithIds
  • GameObjectSwitchEventEffect
  • FloorLightTilesGrid
  • LightColorGroup
  • LightColorGroupParent
  • SpectrogramRow
  • VideoPlayer
  • TransformLayouter

PAQ

Lets call this one "Potentially-Asked-Questions" because this like just came public..

WHAT IS THIS?

"Environment Data" (Pending revolutionary rebranding) is a JSON file similar to chroma logs, but contains significantly more information.

Ever want the position or rotation of an object? Ever want the collider bounds of an object? You will probably love this.


Each environment here is represented as a JSON file.
It consists of:

Environment Data
: (Environment titles, colorScheme, and default fog parameters)

Object Data
: (Name, Chroma ID, and a select-list of components)


EnvironmentData Example

{
  "environmentData": {
    "environmentTitle": "The First",
    "environmentId": "DefaultEnvironment",
    "colorScheme": {
      "colorLeft": [float,float,float],
      "colorRight": [float,float,float],
      "envColorLeft": [float,float,float],
      "envColorRight": [float,float,float],
      "obstacleColor": [float,float,float],
      "envColorLeftBoost": [float,float,float],
      "envColorRightBoost": [float,float,float]
    },
    "fogParams": {
      "offset": float,
      "height": float,
      "startY": float,
      "attenuation": float
    }
  },
  "objects": [
    {
      "name": "GameObject Name",
      "id": "ChromaID",
      "components": {
        "Transform": {
          "position": [float,float,float],
          "localPosition": [float,float,float],
          "rotation": [float,float,float], // Euler Angles
          "localRotation": [float,float,float], // Euler Angles
          "scale": [float,float,float]
        },
        "OtherComponent": {}
      }
    }
  ]
}

In the future, there will be an API that allows you to access this data from your scripts with a fully functional, easy-to-use class interface. Is this cool? plsbecoolthistookmesolongtocreate

Which versions of BeatSaber are sampled?

The following versions are currently sampled:

  • 1.29.1
  • 1.34.2
  • 1.37.1
  • 1.39.1
  • 1.40.0

Download buttons dont work?

If the download button doesn't work for you, please refer to the chroodle repository on github where the files are sourced from