Script metadata
Scripts can specify metadata, which is used to provide information to FL Studio about the script.
This metadata is specified in a comment at the top of the script's entrypoint
(device_*.py
) file.
Example metadata
name
The name property controls the name displayed to users in the script selection menu. This should be descriptive, and should preferably contain your device's make and model.
This property is required for all scripts. Scripts that do not specify the property will not be shown in the list of available scripts.
url
A help/support URL for your script. This URL must be a post on the
Image-Line forum. Any URLs that don't start
with https://forum.image-line.com/
will be redirected to the MIDI Controller
Scripting forum's main page.
This property is optional.
receiveFrom
A comma-separated list of device names from which this script can receive MIDI messages.
In the above example, the script named Forward Device
will see this script in
its available dispatch targets, and will be able to send MIDI messages to this
script using device.dispatch()
.
This property is optional.
supportedDevices
A comma-separated list of device names to link to. FL Studio will automatically link devices to your script if they have a matching name.
In this example, FL Studio will link the script to devices named
Launch Control XL
and Launch Control XL mkII
.
Note that device names change depending on your operating system, so it is important to test these on both Windows and MacOS to ensure that automatic linking works for both.
This property is optional.
supportedHardwareIds
A comma-separated list of device hardware IDs to link to. FL Studio will automatically link devices to your script if they provide a matching hardware ID.
A hardware ID is sent by MIDI Controllers in response to a device ID request.
You can determine your device's hardware ID by calling
device.getDeviceID()
from that device's script output
console.
The hardware ID should be written as a series of space-separated hexadecimal bytes.
FL Studio matches devices by using bytes.startswith
, so bytes can be omitted
from the end of the hardware ID, allowing your script to disregard unimportant
aspects such as the firmware version.
This property is optional.