Built-in variables
The KUIML engine provides predefined built-time variables that can be used in the code like any other user-defined VARIABLE.
System Information
| Variable | Description |
|---|---|
| _SYSTEM_TYPE_ | System currently running the software Mac or Windows |
| _PROGRAM_FILES_PATH_ | Path to the system program files directory. /Applications or C:\Program Files |
| _PROGRAM_FILES_PATH_X86_ | Path to the system 32-bit program files directory. /Applications or C:\Program Files (x86) |
| _PROGRAM_FILES_PATH_X64_ | Path to the system 64-bit program files directory. /Applications or C:\Program Files |
| _PROCESSOR_ARCHITECTURE_ | Architecture of the processor the software is currently running on x64 or x86 |
| _KUIML_VERSION_ | Version of the KUIML language. 2.7.4 |
| _USER_DOCUMENTS_PATH_ | Path to user documents folder. /Users/[username]/Documents or C:\Users\[username]\Documents |
Build Information
| Variable | Description |
|---|---|
| _FILE_ | Full path of the current file (*) being processed by the KUIML engine /Users/[username]/Documents/Blue Cat Audio/Blue Cat's Plug'n Script/Skins/[filename].xml or C:/Users/[username]/Documents/Blue Cat Audio/Blue Cat's Plug'n Script/Skins/[filename].xml |
| _DIR_ | Full path of the current directory (directory containing the current file being processed by the KUIML engine) /Users/[username]/Documents/Blue Cat Audio/Blue Cat's Plug'n Script/Skins/ or C:/Users/[username]/Documents/Blue Cat Audio/Blue Cat's Plug'n Script/Skins/ |
| _PARAM_MAX_ | Largest absolute value that can be used with parameters (PARAM elements). 179769313486231570814527423731704356798070567525844996598917476803157260780028538760 589558632766878171540458953514382464234321326889464182768467546703537516986049910576 551282076245490090389328944075868508455133942304583236903222948165808559332123348274 797826204144723168738177180919299881250404026184124858368.000000 |
| _PARAM_MAX_INT_ | Largest absolute integer value that can be used with parameters (PARAM elements).| 9007199254740992 |
* _FILE_ and _DIR_ work for top level skin files (see below for script .kuiml files included via KUIML_WIDGET)
Plugin information
| Variable | Description |
|---|---|
| PLUGIN_AUDIO_INPUTS_COUNT | Number of physical audio inputs of the plug-in. This number is known at build time, and for variable audio i/o plug-ins (like Plug'n Script), it represents the maximum number of inputs available. 9 |
| PLUGIN_AUDIO_OUTPUTS_COUNT | Number of physical audio outputs of the plug-in. This number is known at build time, and for variable audio i/o plug-ins (like Plug'n Script), it represents the maximum number of outputs available. 8 |
| PLUGIN_NAME | Name of the plug-in, as set by the manufacturer. Blue Cat's Plug'n Script |
| PLUGIN_VERSION | Version string of the plug-in, as set by the manufacturer. 3.5 |
| PLUGIN_COPYRIGHT | Copyright string of the plug-in, as set by the manufacturer. (c) Blue Cat Audio 2014-2025 |
| PLUGIN_MANUFACTURER | Manufacturer name. Blue Cat Audio |
| PLUGIN_USER_DOCUMENTS_PATH | Path to user documents folder /Users/[username]/Documents/Blue Cat Audio/Blue Cat's Plug'n Script/ or C:\Users\[username]\Documents\Blue Cat Audio\Blue Cat's Plug'n Script\ |
| PLUGIN_USER_DATA_PATH | Path to user data (AppData/Library) folder /Users/[username]/Library/Preferences/Blue Cat Audio/BC Plug'n Script VST3/ or C:\Users\[username]\AppData\Roaming\Blue Cat Audio\BC Plug'n Script VST3\ |
| PLUGIN_DATA_PATH | Path to the plug-in data directory. /Library/Audio/Plug-Ins/VST3/BC Plug'n Script VST3.vst3/Contents/Resources/BC Plug'n Script VST3 data or C:\Program Files\Common Files\VST3\Blue Cat Audio\BC Plug'n Script VST3 data |
| PLUGIN_INPUT_PARAMS_COUNT | Number of input parameters. 56 |
| PLUGIN_INPUT_STRINGS_COUNT | Number of input strings. 17 |
| PLUGIN_INPUT_CURVES_COUNT | Number of input curves. 0 |
| PLUGIN_INPUT_SURFACES_COUNT | Number of input surfaces. 0 |
| PLUGIN_INPUT_CUSTOM_PROPERTIES_COUNT | Number of input custom properties. 0 |
| PLUGIN_OUTPUT_PARAMS_COUNT | Number of output parameters. 32 |
| PLUGIN_PRIVATE_OUTPUT_PARAMS_COUNT | Number of private output parameters. 457 |
| PLUGIN_OUTPUT_STRINGS_COUNT | Number of output strings. 504 |
| PLUGIN_OUTPUT_CURVES_COUNT | Number of output curves. 0 |
| PLUGIN_OUTPUT_SURFACES_COUNT | Number of output surfaces. 0 |
| PLUGIN_OUTPUT_CUSTOM_PROPERTIES_COUNT | Number of output custom properties. 0 |
| PLUGIN_FORMAT | Plugin format VST3 |
| PLUGIN_HAS_CPU_METER | Is set to 1 if true 1 |
| PLUGIN_HAS_TRANSPORT_CONTROL | Is set to 1 if true 0 |
| PLUGIN_HAS_AUDIO_IO_CONFIG | Is set to 1 if true 1 |
Plug'n Script-only
| Variable | Description |
|---|---|
| SCRIPT_EDIT_MODE | Is 'true' when running inside Plug'n Script and 'false' when the plugin is exported true |
| SCRIPT_PARAMS_COUNT | Number of input params available for the DSP script 48 |
| SCRIPT_OUT_PARAMS_COUNT | Number of output params available for the DSP script 32 |
| SCRIPT_PRIVATE_OUT_PARAMS_COUNT | Number of private output params available for the DSP script (since PnS v.3.52) 32 |
| SCRIPT_STRINGS_COUNT | Number of input strings available for the DSP script 16 |
| SCRIPT_OUT_STRINGS_COUNT | Number of output strings available for the DSP script| 16 |
Read how to increase number of input and output params and strings for DSP in Plug'n Script.
Inside KUIML_WIDGET
When loading images or scripts, you can use these runtime variables to resolve paths relative to the currently loaded script. Works only inside .kuiml files (default skin or LM Skin).
| Variable | Description |
|---|---|
| SCRIPT_DATA_PATH | Path to the -data folder of the current script. /Users/[username]/Documents/Blue Cat Audio/Blue Cat's Plug'n Script/Scripts/MyScript/myscript-data or C:/Users/[username]/Documents/Blue Cat Audio/Blue Cat's Plug'n Script/Scripts/MyScript/myscript-data |
| KUIML_DIR | (LM Skin only) path to the folder where current script .kuiml is located. After export - path to the Skins folder of an exported plugin. /Users/[username]/Documents/Blue Cat Audio/Blue Cat's Plug'n Script/Scripts/MyScript/ or C:/Users/[username]/Documents/Blue Cat Audio/Blue Cat's Plug'n Script/Scripts/MyScript/ |
Examples
You can print the value of a variable like this:
- <TEXT value="$_KUIML_VERSION_$" />
We can write a simple code to output all variables and their values
- <TABLE spacing="1" h_align="left">
- <REPEAT index_list="_SYSTEM_TYPE_;_PROGRAM_FILES_PATH_;_PROGRAM_FILES_PATH_X86_;_PROGRAM_FILES_PATH_X64_;_PROCESSOR_ARCHITECTURE_;_KUIML_VERSION_;_USER_DOCUMENTS_PATH_;_FILE_;_DIR_;_PARAM_MAX_;_PARAM_MAX_INT_;PLUGIN_AUDIO_INPUTS_COUNT;PLUGIN_AUDIO_OUTPUTS_COUNT;PLUGIN_NAME;PLUGIN_VERSION;PLUGIN_COPYRIGHT;PLUGIN_MANUFACTURER;PLUGIN_USER_DOCUMENTS_PATH;PLUGIN_USER_DATA_PATH;PLUGIN_DATA_PATH;PLUGIN_INPUT_PARAMS_COUNT;PLUGIN_INPUT_STRINGS_COUNT;PLUGIN_INPUT_CURVES_COUNT;PLUGIN_INPUT_SURFACES_COUNT;PLUGIN_INPUT_CUSTOM_PROPERTIES_COUNT;PLUGIN_OUTPUT_PARAMS_COUNT;PLUGIN_PRIVATE_OUTPUT_PARAMS_COUNT;PLUGIN_OUTPUT_STRINGS_COUNT;PLUGIN_OUTPUT_CURVES_COUNT;PLUGIN_OUTPUT_SURFACES_COUNT;PLUGIN_OUTPUT_CUSTOM_PROPERTIES_COUNT;PLUGIN_FORMAT;PLUGIN_HAS_CPU_METER;PLUGIN_HAS_TRANSPORT_CONTROL;PLUGIN_HAS_AUDIO_IO_CONFIG;SCRIPT_EDIT_MODE;SCRIPT_PARAMS_COUNT;SCRIPT_OUT_PARAMS_COUNT;SCRIPT_STRINGS_COUNT;SCRIPT_OUT_STRINGS_COUNT;SCRIPT_DATA_PATH;KUIML_DIR">
- <TABLE_ROW spacing="10" h_align="left">
- <TEXT value="$index$:" text_h_align="left" h_align="left"/>
- <TEXT value="$$index$$" text_h_align="left" h_align="left" max_width="1000" font_weight="bold" />
- </TABLE_ROW>
- </REPEAT>
- </TABLE>
If you're using LM Skin with TextWidget you could output to a textwidget:
- <!-- generate text with variable names and values -->
- <VAR id="TX_OUT" value="" />
- <REPEAT index_list="_SYSTEM_TYPE_;_PROGRAM_FILES_PATH_;_PROGRAM_FILES_PATH_X86_;_PROGRAM_FILES_PATH_X64_;_PROCESSOR_ARCHITECTURE_;_KUIML_VERSION_;_USER_DOCUMENTS_PATH_;_FILE_;_DIR_;_PARAM_MAX_;_PARAM_MAX_INT_;PLUGIN_AUDIO_INPUTS_COUNT;PLUGIN_AUDIO_OUTPUTS_COUNT;PLUGIN_NAME;PLUGIN_VERSION;PLUGIN_COPYRIGHT;PLUGIN_MANUFACTURER;PLUGIN_USER_DOCUMENTS_PATH;PLUGIN_USER_DATA_PATH;PLUGIN_DATA_PATH;PLUGIN_INPUT_PARAMS_COUNT;PLUGIN_INPUT_STRINGS_COUNT;PLUGIN_INPUT_CURVES_COUNT;PLUGIN_INPUT_SURFACES_COUNT;PLUGIN_INPUT_CUSTOM_PROPERTIES_COUNT;PLUGIN_OUTPUT_PARAMS_COUNT;PLUGIN_PRIVATE_OUTPUT_PARAMS_COUNT;PLUGIN_OUTPUT_STRINGS_COUNT;PLUGIN_OUTPUT_CURVES_COUNT;PLUGIN_OUTPUT_SURFACES_COUNT;PLUGIN_OUTPUT_CUSTOM_PROPERTIES_COUNT;PLUGIN_FORMAT;PLUGIN_HAS_CPU_METER;PLUGIN_HAS_TRANSPORT_CONTROL;PLUGIN_HAS_AUDIO_IO_CONFIG;SCRIPT_EDIT_MODE;SCRIPT_PARAMS_COUNT;SCRIPT_OUT_PARAMS_COUNT;SCRIPT_STRINGS_COUNT;SCRIPT_OUT_STRINGS_COUNT;SCRIPT_DATA_PATH;KUIML_DIR">
- <VAR id="TX_OUT" value="$TX_OUT$$index$: \t$$index$$ \n" />
- </REPEAT>
- <!-- include textwidget (LM Skin only) -->
- <INCLUDE file="$EXTENSIONS_DIR$tw.inc" />
- <TW_LOG value="$TX_OUT$" width="1000" height="400"/>
See it live
You can use Letimix Debug skin (included in LM Skin) to see these variables and values directly.

Comments
Please, authorize to view and post comments.