--- layout: wiki title: User Interface Framework description: Explains how to use the selective user interface framework to add custom elements and toggle them using different methods. group: framework order: 5 parent: wiki mod: ace version: major: 3 minor: 6 patch: 0 --- Only advanced elements can be modified using Selective User Interface framework, basic elements can only be changed using `showHUD` SQF command. ## 1. Config Values ### 1.1 Adding an element ```cpp class ACE_UI { class elementName { idd = 300; // IDD of display where the element is located elements[] = {3000, 3001}; // List of control IDCs of the elements to toggle (some can have background as a separate control, this allows grouping them together) location = 0; // Location where the element is present (0 - anywhere, 1 - ground only, 2 - vehicle only) // Custom conditions base class (read below) class conditions {}; }; }; ``` ### 1.2 Setting an existing element ```cpp class ACE_UI { class elementName { // Custom conditions of where the element can be visible, each condition has its own entry (use prefixes for easy identification and prevention of overwriting) // As soon as one condition returns `false` the element will be hidden, this can be included when adding a new element class conditions { my_source = "vehicle player == 'B_Heli_Attack_01_F'"; // Condition which makes the element visible only when player is in `'B_Heli_Attack_01_F'` vehicle. }; }; }; ``` ## 2. Scripting Adding new elements through scripting is currently not possible. ### 2.1 Setting an existing element `ace_ui_fnc_setElementVisibility` | Arguments | Type | Optional (default value) ---| --------- | ---- | ------------------------ 0 | Source | String | Required 1 | Set/Unset | Boolean | Required 2 | Element Name | String | Required 3 | Show/Hide | Boolean | Optional (default: `false`) **R** | Successfully Modified | Boolean | Return value #### 2.1.1 Example `["ace_reload", true, "ammoCount", false] call ace_ui_fnc_setElementVisibility;` | Arguments | Explanation ---| --------- | ----------- 0 | `"ace_reload"` | Source displayed in hint when trying to edit this element from in-game settings or in RPT when some other source tries to edit it 1 | `true` | Set element, preventing others to change it (except config, which always has priority) 2 | `"ammoCount"` | Element name to modify 3 | `false` | Hide the element