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
KUIMLReferenceGROUP
August 21, 2025

GROUP

Creates a group of objects to manage them together as a single entity. Grouping can be useful for persistency, copy/paste etc.

Attributes brief detailed show all inherited

Name Description
object_idsList of identifiers of objects to be part of the group
object_aliasesList of aliases used for the objects in the groupThe aliases are used in place of object ids when the group is serialized. So it is possible to load and save data from other groups if the same aliases are used for compatible object types
nameDisplayed named of the group
commentComment about the group
Events
Exposed: v. 2.0value_changedthe event is fired anytime the value of one of the objects in the group has changed
Common attributesRead about `common`
idIdentifier of the elementThe id of an element has to be globally unique. Don't start with a digit for AngelScript compatibility.
Name Value type Default Description Comment
object_ids';' separated identifiersemptyList of identifiers of objects to be part of the group
object_aliases';' separated identifiersemptyList of aliases used for the objects in the groupThe aliases are used in place of object ids when the group is serialized. So it is possible to load and save data from other groups if the same aliases are used for compatible object types
namestringemptyDisplayed named of the group
commentstringemptyComment about the group
Events
Exposed: v. 2.0value_changedeventthe event is fired anytime the value of one of the objects in the group has changed
Common attributesRead about `common`
ididentifieremptyIdentifier of the elementThe id of an element has to be globally unique. Don't start with a digit for AngelScript compatibility.

Examples

You can use GROUP to load/save settings as a whole or to trigger an action upon any change in the group. 

  1. <!-- some strings and params -->
  2. <STRING id="demo_string_1" default="1176" />
  3. <STRING id="demo_string_2" default="Compressor" />
  4. <PARAM id="demo_param_1" min="0" max="7" default="1" />
  5. <PARAM id="demo_param_2" min="0" max="7" default="5" />

  6. <!-- combine into group -->
  7. <GROUP id="data_group"
  8. object_ids="demo_string_1;demo_string_2;demo_param_1;demo_param_2"
  9. object_aliases="name;type;attack;release" />

  10. <!-- Note: object_aliases are NOT required for GROUP, but they allow to load and save data from other groups if the same aliases are used for compatible object types -->

  11. <!-- when any object in group changes, trigger action (change color) -->
  12. <ACTION_TRIGGER event_id="data_group.value_changed"
  13. script="color_widget.background_color.r = rand(0,1);
  14. color_widget.background_color.g = rand(0,1);
  15. color_widget.background_color.b = rand(0,1);"
  16. requires="color_widget.background_color.*" />

  17. <!-- layout to display/change values -->
  18. <TABLE>
  19. <TABLE_ROW>
  20. <TEXT value="demo_string_1: " />
  21. <TEXT_EDIT_BOX string_id="demo_string_1" width="100" change_on_type="true" />
  22. </TABLE_ROW>
  23. <TABLE_ROW>
  24. <TEXT value="demo_string_2: " />
  25. <TEXT_EDIT_BOX string_id="demo_string_2" width="100" change_on_type="true" />
  26. </TABLE_ROW>
  27. <TABLE_ROW>
  28. <TEXT value="demo_param_1: " />
  29. <PARAM_TEXT_EDIT_BOX param_id="demo_param_1" width="100" />
  30. </TABLE_ROW>
  31. <TABLE_ROW>
  32. <TEXT value="demo_param_2: " />
  33. <PARAM_TEXT_EDIT_BOX param_id="demo_param_2" width="100" />
  34. </TABLE_ROW>
  35. </TABLE>

  36. <!-- widget to display colored line -->
  37. <WIDGET id="color_widget" background_color="#DD0000" width="220" height="2" />

  38. <!-- buttons to load/save data as group -->
  39. <ROW>
  40. <SYSTEM_ACTION_BUTTON action_id="load_data" />
  41. <SYSTEM_ACTION_BUTTON action_id="save_data" />
  42. </ROW>

  43. <!-- actions to load/save data -->
  44. <ACTION type="DisplayObjectLoadDialog"
  45. id="load_data"
  46. object_id="data_group"
  47. file_types="*.xml"
  48. default_path="$PLUGIN_USER_DOCUMENTS_PATH$/Temp"
  49. applicative_type="DemoConfig"
  50. name="Load"
  51. />
  52. <ACTION type="DisplayObjectSaveDialog"
  53. id="save_data"
  54. object_id="data_group"
  55. file_types="*.xml"
  56. default_path="$PLUGIN_USER_DOCUMENTS_PATH$/Temp"
  57. applicative_type="DemoConfig"
  58. name="Save as..."
  59. />

If we take a look at "demo_data.xml" from the example above, we'll see that the data is saved like this:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <Export applicative_type="DemoConfig" data_type="{0779F8E6-34E0-4DA5-9307-ECC37BE0FA8A}">
  3. <content release="5" attack="7" type="Delay" name="Echoboy"/>
  4. </Export>

Comments

Please, authorize to view and post comments.

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