it/docs
LMixerTechnical LMixer Info

Compatibility

Last updated:

Global Scope Scripts

Scripts used to be stored in the global scope. If a script existed called rainbow, it could be called like this:

rainbow:start()

This has the issue of polluting the global scope with every script name. That is why they were moved into Scripts., the same code now looks like this:

Scripts.rainbow:start()

Since this is a breaking change, multiple things exist to allow for compatibility.

builtin/compatibility/MakeScriptNamesGlobalScope Addon

Since removing scripts from the global scope, having a translation layer does not work, instead this addon sets a flag to revert almost all of the changes.

It makes scripts exists in the global scope again.

light_mixer/code/+ removal

The MQTT topics light_mixer/code/+ were removed and replaced with multiple, more specific. The old system has all of these execute the published code directly, however in practice light_mixer/code/run is the main one used.

light_mixer/code/run tries to translate the code to support the move to Scripts.. The start and stop topics exists as a bridge; they support both Scripts. and Global Scope, and switch their behavior to match.

On this page