> For the complete documentation index, see [llms.txt](https://sway-technologies.gitbook.io/sway-charts-pro-scripts-documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sway-technologies.gitbook.io/sway-charts-pro-scripts-documentation/sway-charts-pro-user-defined-indicators/initialisation-udi.oninit.md).

# Initialisation: UDI.onInit()

A UDI must have a UDI.onInit() function. This returns a description of your indicator: its name; what it draws (line, histogram etc); and any user-configurable fields it wants such as a number of bars, or a colour.

&#x20;

An example of the UDI.onInit() function is as follows. It returns an object which must contain a caption property, a plots\[] array, and a settingsFields\[] array. There are also other optional properties which can be included.

```
UDI.onInit = function(data)
{
       return {
                   // Display-name for the indicator
                   caption: "My SMA",
                  
                   // Specifies that the indicator should be in the main panel, not its own sub-panel
                   isOverlay: true,
                  
                   // List of things which the indicator draws: just a line in this basic example
                   plots: [
                               {type: "line", caption: "avg", color: "blue", lineWidth: 2}
                   ],
                  
                   // Settings fields which the indicator wants
                   settingsFields: [
                               // The "Source" field has special meaning, and the chart automatically
                               // assigns a caption to this field
                               {id: "Source"},
                              
                               // Also require a number of bars for the average
                               {id: "period", caption: "Period", type: "int", defaultValue: 14, min: 2}
                   ]
       };
};
```
