PLUG'N SCRIPT
rapid plugin development
Tutorial
DSP
KUIML
How-to
Scripts
  • Overview
  • Tutorial
  • Reference
  • Built-in variables
  • Runtime model
  • Parameters mapping
  • Script converter
  • LetiMix
KUIMLBuilt-in variables
October 29, 2025

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:

  1. <TEXT value="$_KUIML_VERSION_$" />

We can write a simple code to output all variables and their values

  1. <TABLE spacing="1" h_align="left">
  2. <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">
  3. <TABLE_ROW spacing="10" h_align="left">
  4. <TEXT value="$index$:" text_h_align="left" h_align="left"/>
  5. <TEXT value="$$index$$" text_h_align="left" h_align="left" max_width="1000" font_weight="bold" />
  6. </TABLE_ROW>
  7. </REPEAT>
  8. </TABLE>

If you're using LM Skin with TextWidget you could output to a textwidget:

  1. <!-- generate text with variable names and values -->
  2. <VAR id="TX_OUT" value="" />
  3. <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">
  4. <VAR id="TX_OUT" value="$TX_OUT$$index$: \t$$index$$ \n" />
  5. </REPEAT>

  6. <!-- include textwidget (LM Skin only) -->
  7. <INCLUDE file="$EXTENSIONS_DIR$tw.inc" />
  8. <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.

2020 - 2026 © Site by LetiMix · Donate  |  Plug'n Script and KUIML by Blue Cat Audio