> For the complete documentation index, see [llms.txt](https://smartui-docs.pixelperfectstudio.mx/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://smartui-docs.pixelperfectstudio.mx/framework-addons/smart-ui-plugin.md).

# Smart UI Plugin

The SmartUI framework plugin, capabilities and features.

The <img src="https://3242409510-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9bZkqK9vYvPkvVDUO4Tp%2Fuploads%2FwMtCwPJfyoAIT5KFMyTq%2Ficon.svg?alt=media&amp;token=f1e8a3a8-1cca-4b43-862f-b1e4a02fa985" alt="" data-size="line">SmartUI plugin contains all the libraries needed by all the addons to operate. It lives separated from the construct's runtime but within it. It's a runtime script that operates in a separate context, but can be minified and embeded in the runtime, working isolated.

Unlike many addons, the framework takes as input parameters the runtime ands suscribes to event triggers, and also loads all the model, views and controller classes to the memory. Because of this, in case your curiosity pushes you to dive into the source code of the addons, you will find only interface methods that are being called by the addons that live within the framework.

{% hint style="success" %} <mark style="color:green;">**Recomended**</mark> [Smart UI Framework](/getting-started/quickstart.md)getting started guide.
{% endhint %}

{% hint style="danger" %} <mark style="color:red;">**SmartUI is not an open-source framework**</mark>; it is an intellectual property (I.P.) of [Pixel Perfect Studio](https://pixelperfectstudio.mx/). Details can be disclosed upon request by the developer to enrich the Construct community's experience, but the source code will not be available. Please consider intellectual property laws and developers' rights. Each addon includes an embedded copy of the End User Licensing Agreement (EULA) that all users must adhere to.
{% endhint %}

## Properties

| **Property**                                                                | **Description**                                                                                                                                                                                                                                                                                                                |
| --------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `Tutorial`                                                                  | Visit the getting started guide, understand how SmartUI works and how components integrate with each other.                                                                                                                                                                                                                    |
| `Enabled`                                                                   | Enables or Disables the framework.                                                                                                                                                                                                                                                                                             |
| `Default Controls`                                                          | Allows the default controls to cycle the focus over the different components and containers. Arrow keys and tab are the common navigation controls. Beware that in preview mode, Tab key may work differently that when the game is exported.                                                                                  |
| `Prevent Defaults`                                                          | Prevents arrow and space keys to be propagated to the top window. Useful to keep the interactions within your game.                                                                                                                                                                                                            |
| `Navigation Type`                                                           | Sets the default navigation type for the keyboard.                                                                                                                                                                                                                                                                             |
| `Buttons Behavior`                                                          | Indicates whether the button press animations should complete before playing the release animation, or if the animation should be interrupted when the button state changes. This feature is especially useful in mobile exports, where button animations typically play without interruptions for a better visual experience. |
| `Send usage data`                                                           | Share SmartUI usage data with the developer to improve the tool                                                                                                                                                                                                                                                                |
| `Usage Analytics`                                                           | Help the dev providing usage statistics information.                                                                                                                                                                                                                                                                           |
| `Privacy Policy`                                                            | Read the privacy policy available to understand how we treat collected data.                                                                                                                                                                                                                                                   |
| `License`                                                                   | Information about your SmartUI license.                                                                                                                                                                                                                                                                                        |
| `Status`                                                                    | Indicates if your license has been validated.                                                                                                                                                                                                                                                                                  |
| `Latest Version`                                                            | We'll let you know whenever a new plugin version is published. You can download the latest version from your account page.                                                                                                                                                                                                     |
| `Change Log`                                                                | New features, bug fixes and changges about the newest releas.                                                                                                                                                                                                                                                                  |
| `Seat Management` <mark style="color:blue;">**(Commercial Version)**</mark> | Releases the license assigned to this browser. You can manage your licenses at Your Account page.                                                                                                                                                                                                                              |
| `Instance` <mark style="color:blue;">**(Commercial Version)**</mark>        | Unique identifier for this installation of SmartUI.                                                                                                                                                                                                                                                                            |

## <img src="https://3242409510-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9bZkqK9vYvPkvVDUO4Tp%2Fuploads%2FwMtCwPJfyoAIT5KFMyTq%2Ficon.svg?alt=media&amp;token=f1e8a3a8-1cca-4b43-862f-b1e4a02fa985" alt="" data-size="line"> Smart UI Plugin ACEs

Smart UI Plugin. Framework to handle UI components.

<details>

<summary>Download</summary>

<https://store.pixelperfectstudio.mx/product/smart-ui-ncbeta/>

</details>

## Smart UI

Smart UI Plugin. Framework to handle UI components.

## Actions

***

### `Close All Dialogs`

Closes all the dialogs in the scene.

### `Trigger Default Action`

Triggers the component default action when pressing/clicking on it.

| **Parameter** | **Description**                              |
| ------------- | -------------------------------------------- |
| `Object`      | Object instance that uses a SmartUI Behavior |

### `Left Element`

Moves the focus to the nearest UI element on the left the current focused element within the container (EXPERIMENTAL)

### `Lower Element`

Moves the focus to the nearest UI element below the current focused element within the container (EXPERIMENTAL)

### `Next Container`

Moves the focus to the next container in the layout.

### `Next Element`

Moves the focus to the next UI element within the container

### `Open Dialog`

Creates an instance of the object and triggers the dialog initialization and animations. Object MUST use the Smart UI Dialog behavior.

| **Parameter**   | **Description**                                            |
| --------------- | ---------------------------------------------------------- |
| `Dialog Object` | An object that uses the Smart UI Dialog behavior           |
| `Layer`         | Layer to place the dialog                                  |
| `X`             | X-Coordinate                                               |
| `Y`             | Y-Coordinate                                               |
| `Auto-center`   | Centers the dialog in the layer and viewport rect visible. |
| `Template`      | Hierarchy template name                                    |

### `Pointer Touch`

Triggers a touch event at the location of the pointer.

### `Previous Container`

Moves the focus to the previous container in the layout.

### `Previous Element`

Moves the focus to the previous UI element within the container

### `Right Element`

Moves the focus to the nearest UI element on the right the current focused element within the container. (EXPERIMENTAL)

### `Set Enabled`

Disable/Enable the Smart UI. No more interactions, animations, nor inputs are processed when it's disabled.

| **Parameter** | **Description**  |
| ------------- | ---------------- |
| `Enabled`     | Enabled/Disabled |

### `Set Focus`

Sets the focus on the indicated component.

| **Parameter** | **Description**                              |
| ------------- | -------------------------------------------- |
| `Object`      | Object instance that uses a SmartUI Behavior |

### `Set Navigation Type`

Sets the default navigation type for the keyboard.

| **Parameter** | **Description** |
| ------------- | --------------- |
| `Type`        | Navigation type |

### `Set Pointer`

Sets the object that will be act as screen pointer/arrow. Use this action when using gamepads. All interactions will be evaluated against the object coordinates

| **Parameter** | **Description**           |
| ------------- | ------------------------- |
| `Object`      | Any world instance object |

### `Track Pointer`

Disable/Enable tracking the pointer object to trigger UI interactions.

| **Parameter** | **Description**  |
| ------------- | ---------------- |
| `Enabled`     | Enabled/Disabled |

### `Hover Component`

Triggers the component hovering state.

| **Parameter** | **Description**                              |
| ------------- | -------------------------------------------- |
| `Object`      | Object instance that uses a SmartUI Behavior |

### `Stop Hovering Component`

Finishes the component hovering state.

| **Parameter** | **Description**                              |
| ------------- | -------------------------------------------- |
| `Object`      | Object instance that uses a SmartUI Behavior |

### `Upper Element`

Moves the focus to the nearest UI element above the current focused element within the container (EXPERIMENTAL)

## Conditions

***

### `Is Dialog Open`

Returns true if any dialog is open

### `Is Dialog Open By Name`

Returns true if any dialog matching the component's name is open

| **Parameter** | **Description** |
| ------------- | --------------- |
| `Name`        | Component Name  |

### `Is Dialog Open By Object`

Returns true if any dialog matching the component's name and object type is open

| **Parameter** | **Description** |
| ------------- | --------------- |
| `Object`      | Object Type     |
| `Name`        | Component Name  |

### `Is Enabled`

Returns true if the Plugin is enabled

### `Is Modal Open`

Indicates if any modal dialog is open

### `Is Tracking Pointer`

Returns true SmartUI is currently tracking the pointer object assigned, to interact with the UI components.

## Expressions

***

### `FocusedUID`

Returns the UID of the focused component. If none, the value is -1

**(c) Pixel Perfect Studio 2024**
