Skip to content

Light Variables & Ring Variables

dev-hydrogen edited this page May 7, 2022 · 1 revision

Light Variables

This is a list of all the possible variables for a light, as well as their recommended value range.

Variable Suggested Range Auto-Completable Effect
name Any [ ] Useful for organizing your lights, recommended to always set
pattern LINE, CIRCLE, STILL [x] Changes the pattern of your light, all lasers are distributed evenly: LINE preview CIRCLE preview STILL preview
secondarypattern LINE, CIRCLE, STILL [x] Will move all your lasers according to this pattern, used to combine patterns, for example a Line pattern with a Line secondarypattern will be a line of lasers moving in a line!
maxlength 0-50 [ ] This is the maximum length of the laser, roughly translatable to blocks
onlength 0-100 [ ] This is a percentage of maxlength. The laser will be onlength% long when it is turned "on". The length may extend beyond this when it has been turned on and gets flashed.
patternmultiplier 1-25 [ ] This is how "big" your pattern is.
secondarypatternmultiplier 1-25 [ ] This is how big your secondary pattern is.
speed 0-5 [ ] This should be a fairly low value. This is how many percent your lasers will move through your pattern every 100ms. For example, at 10, your lasers will loop through the pattern every second, which is extremely fast!
secondaryspeed 0-5 [ ] This is similar to the speed variable, however it is applied to the secondary pattern instead.
lightcount 0-6 [ ] This is how many "lasers" your Light will have.
type GUARDIAN_BEAM, END_CRYSTAL_BEAM [x] This is the type of lasers your light will show. Guardian beams are usually better than end crystal beams, however end crystal beams may produce nice effects when used sparingly.
rotation 0-360 [ ] In degrees how much your pattern is rotated. This is mostly relevant to LINE patterns.
secondaryrotation 0-360 [ ] Same as rotation except applied to the secondary pattern.
channel BACK_LASERS, RING_LIGHTS, LEFT_ROTATING_LASERS, RIGHT_ROTATING_LASERS, CENTER_LIGHTS [x] These are what "channel" the light listens to during a light show. In a beatmap file they are of type 0,1,2,3,4 in that order. https://bsmg.wiki/mapping/map-format.html#events-2
speedchannel DEFAULT, LEFT_ROTATING_LASERS, RIGHT_ROTATING_LASERS [x] If the channel you are using is not either left lasers or right lasers, then you can still use this to listen to their speed events, which multiply the speed variable during a light show. If your channel is left or right lasers, then this should be set to DEFAULT.
setlocation Either coordinates or nothing [ ] You can use this to set the location and direction the laser is pointing to your location. You can also instead provide 5 numbers as input, which will be interpreted as "x, y, z, pitch, yaw". Pitch and yaw are in degrees. Please note that positive pitch is pointing upwards, and "0" yaw would be the same as pointing west.
flip nothing [ ] Flips the start and end of the lasers. For guardian beams this may make the beam darker.
startx 0-100 [ ] This is a percentage of where the pattern should be when it is "0". You can use this variable to give offsets to loads of lights at the same time, if you were to give light 1 a startx of 0, light 2 a startx of 3, light 3 a startx of 6 and so on.
secondarystartx 0-100 [ ] Same as startx, but applied to the secondary pattern.
lightid add or remove [ ] You should usually not mess around with these unless you know what you are doing, however chroma maps can select what light ID they want an event to apply to. You can view the set of valid light ID's for each beat saber environment here: https://github.com/Top-Cat/bs-env
ringzoom setlocation, distance, time [ ] setlocation is the same as normal setlocation, however it only takes your pitch and yaw. Distance is how much this light will move towards the set pitch and yaw. Time is how long (in milliseconds) moving will take during a zoom event.

Ring variables

Coming soon

Clone this wiki locally