PLUG'N SCRIPT
rapid plugin development
Tutorial
DSP
KUIML
How-to
Scripts
  • Overview
  • Tutorial
  • Reference
Layout and positioning
  • CELL
  • TABLE
Language basics
  • SKIN
  • DUMMY
  • INCLUDE
  • INCLUDE_ONCE
  • DEFINE
  • UNDEFINE
  • VARIABLE
  • LOCAL_VARIABLE
  • TEMPLATE
  • TEMPLATE_INNER_CONTENT
  • TEMPLATE_UNLOAD
  • REPEAT
Text widgets
  • TEXT
  • TEXT_FIELD
  • TEXT_EDIT_BOX
  • TOOLTIP
  • PARAM_TEXT
  • PARAM_TEXT_CONTROL
  • PARAM_TEXT_EDIT_BOX
  • PARAM_TOOLTIP
Image widgets
  • IMAGE
  • IMAGE_ACTION_BUTTON
  • IMAGE_GROUP_BOX
  • IMAGE_PARAM_BUTTON
  • IMAGE_PARAM_KNOB
  • IMAGE_PARAM_LINEAR_METER
  • IMAGE_PARAM_MENU_BUTTON
  • IMAGE_PARAM_METER
  • IMAGE_PARAM_SLIDER
  • IMAGE_PARAM_TOGGLE_SWITCH
  • XYZ_IMAGE_PARAM_JOYSTICK
Invisible controls
  • INVISIBLE_ACTION_BUTTON
  • INVISIBLE_PARAM_BUTTON
  • INVISIBLE_PARAM_KNOB
  • INVISIBLE_PARAM_MENU_BUTTON
  • INVISIBLE_PARAM_SLIDER
  • INVISIBLE_PARAM_TOGGLE_SWITCH
  • XY_PARAM_PAD
  • XY_ZOOM_SELECT_PAD
  • XYZ_PARAM_SCRATCH_PAD
  • XYZ_PARAM_CLICK_PAD
Drawing, curves & 3D
  • CANVAS
    • Graphics API
  • svg
  • CURVE_GRAPH
  • XY_CURVES_GRAPH
  • GRID
  • RULER
  • COLOR_SCALE
  • VIEW_3D
  • COLOR_SURFACE_3D
  • GRID_3D
  • GL_OBJECT_3D
    • OpenGL Cheat Sheet
  • SURFACE_COLORMAP_2DPLOT
Miscellaneous
  • SCRIPT
  • WIDGET
  • KUIML_WIDGET
  • POPUP_MENU
  • MENU_ITEM
  • MENU_SEPARATOR
  • FILE_SELECT_MENU
  • SYSTEM_ACTION_BUTTON
  • SYSTEM_PARAM_CHECKBOX
  • SYSTEM_PARAM_DROPDOWN_LIST
  • WINDOW
  • LOAD_FONT
Data model
  • STRING
  • PARAM
  • FORMULA_PARAM
  • PARAM_ANIMATOR
  • ACTION
    • Built-in action types
  • TIMER
  • ACTION_TRIGGER
  • CURVE
  • FORMULA_CURVE
  • CURVE_FROM_PARAM_OVER_TIME
  • SURFACE
  • FORMULA_SURFACE
  • SURFACE_FROM_CURVE_OVER_TIME
  • GROUP
Links and commands
  • PARAM_LINK
  • PARAM_MULTI_LINK
  • PARAM_CONNECTION
  • PARAM_TO_STRING_LINK
  • STRING_LINK
  • STRING_MULTI_LINK
  • CURVE_LINK
  • CURVE_MULTI_LINK
  • SURFACE_LINK
  • REQUIRED_OBJECTS
  • EXPOSED_OBJECTS
  • PERSISTENT_OBJECTS
Common attrubutes
  • For all elements
  • Widgets
  • Param Widgets
  • Param Controls
  • Param Info Viewers
  • Text Widgets
  • Surface Viewers
  • Curve Viewers
  • Images
  • 3D Objects
Additional information
  • All attributes
  • Attribute types
  • Cursors
  • Math formulas
  • Scripting
    • Built-in addons
  • User experience
  • Errors and solutions
  • Built-in variables
  • Runtime model
  • Parameters mapping
  • Script converter
  • LetiMix
KUIMLReferenceEXPOSED_OBJECTS
July 31, 2025

EXPOSED_OBJECTS

This element contains a list of objects that should be exposed to other data models referencing the current model, or to the scripting engine. Multiple instances of this element are allowed: any new object identifier will be added to the list of objects to be exposed.

In essense: EXPOSED_OBJECTS does 2 things: makes objects available to scripts AND to other models that depend on the current model. The "requires" attribute in a SCRIPT is equivalent to EXPOSED_OBJECTS.

Attributes brief detailed show all inherited

Name Description
object_idsList of identifiers of objects to be declared as exposedExample: 'my_string;my_param;my_object.*'
Name Value type Default Description Comment
object_idslist of ';' separated identifiers or wildcardsemptyList of identifiers of objects to be declared as exposedExample: 'my_string;my_param;my_object.*'

Example

  1. <EXPOSED_OBJECTS object_ids="dsp.input1.BeginCapture;dsp.input1.EndCapture" />

Explanations

In comparison to REQUIRED_OBJECTS which just makes sure that object is created and not stripped, the EXPOSED_OBJECTS makes the object accessible from the scripts and from other data models (like KUIML_WIDGET "sub-skins").

EXPOSED_OBJECTS is equivalent to "requires" attribute in the SCRIPT or ACTION_TRIGGER and does the same as "exposed" attribute for PARAM or STRING.

For example, a simple TIMER to delay some action:

  1. <TIMER refresh_time_ms="1000" id="DelayTimer" enabled="false" exposed="true" />
  2. <ACTION_TRIGGER event_id="DelayTimer.elapsed" script=" 
  3. DelayTimer.enabled = false;
  4. /* do something useful */
  5. if (some_widget.mouse_over > 0) {
  6. some_param = 20;
  7. }
  8.  " requires="DelayTimer.enabled;some_param;some_widget.mouse_over" />

Instead of using "requires" we could use EXPOSED_OBJECTS.

  1. <EXPOSED_OBJECTS object_ids="DelayTimer.enabled;some_param;some_widget.mouse_over" />

You would also need EXPOSED_OBJECTS when you plan to use some objects in another sub-skins (KUIML_WIDGET) or other data models.

Wildcards

Though it's possible to use wildcards (*) in objects_ids like:

  1. <EXPOSED_OBJECTS object_ids="my_param.*" />

It's highly not recommended (only for some simplest testing), because wildcards often create and expose tons of parameters which makes the skin loading time huge. Instead expose only what you really use:

  1. <EXPOSED_OBJECTS object_ids="my_param.capturing;my_param.min;my_param.max" />

Comments

Please, authorize to view and post comments.

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