---
name: "CT STATIC"
type: topic
source: https://community.bistudio.com/wiki/CT_STATIC
revid: 376897
updated: 2025-12-20T15:48:42Z
---

# CT STATIC

### Introduction

Static controls represent exactly that: static data. Static means there is NO possible user interaction. CT_STATIC is primarily used for texts, dialog backgrounds, pictures (and videos). The constant *type* property for these controls usually is `CT_STATIC`.

#### Related commands & functions

- Commands: General
- Commands: UI Eventhandlers

#### Related User Interface Eventhandlers

- [Events: General](../topics/User_Interface_Event_Handlers.md#generic-events)

### Alphabetical Order

> [!NOTE]
> TokenNames common to most controls, such as x, y, w, h, text, idc... can be found [**here**](../topics/Arma~3A_GUI_Configuration.md#common-properties).

> [!WARNING]
> Not all of the listed attributes might have an effect nor might the list be complete. All attributes were gathered with [this](https://github.com/7erra/BIKI.VR/blob/master/fnc/generateCTPage.sqf) config crawler.

```cpp
#define CT_STATIC 0
```

#### A

##### align

**Type:** String

**Description:** Alignment of text. Values can be "left", "center" or "right". Seems to have no effect. Use ST_LEFT/ST_CENTER/ST_RIGHT instead.

```cpp
align = "center";
```

##### angle

**Type:** Number

**Description:** Rotation of the image. See [ctrlSetAngle](../commands/ctrlSetAngle.md).

```cpp
angle = 180;
```

##### autoplay

**Type:** Number

**Description:** Used on video controls. 1 means that the video starts playing as soon as the UI is opened.

```cpp
autoplay = 0;
```

#### B

##### background

**Type:** Number

**Description:** n/a

```cpp
background = 1;
```

#### C

##### centerU

**Type:** Number

**Description:** Sets the horizontal center for the rotation of images with ST_PICTURE controls. 0 is left border of the control, 1 is right border. See also: [ctrlSetAngle](../commands/ctrlSetAngle.md).

```cpp
centerU = 0.5;
```

##### centerV

**Type:** Number

**Description:** Sets the vertical center for the rotation of images with ST_PICTURE controls. 0 is top border of the control, 1 is bottom border. See also: [ctrlSetAngle](../commands/ctrlSetAngle.md).

```cpp
centerV = 0.5;
```

##### color

**Type:** Array

**Description:** Most likely without function.

```cpp
color[] = { 1, 1, 1, 1 };
```

##### colorActive

**Type:** Array

**Description:** Not applicable for this type as it can not be active.

```cpp
colorActive[] = { 0.23, 0.35, 0.42, 0.9 };
```

##### colorShadow

**Type:** Array

**Description:** Color of the shadow of the text.

```cpp
colorShadow[] = { 0, 0, 0, 1 };
```

#### F

##### fixedWidth

**Type:** Number

**Description:** Makes normal text like "LALALA" appear like "L A L A L A".

```cpp
fixedWidth = 0;
```

#### L

##### lines

**Type:** Number

**Description:** n/a

```cpp
lines = 3;
```

##### lineSpacing

**Type:** Number

**Description:** Space between lines, required if the style was set to ST_MULTI.

```cpp
lineSpacing = 0;
```

##### loops

**Type:** Number

**Description:** Defines how many times video will be restarted.

```cpp
loops = 0;
```

#### S

##### sortDown

**Type:** String

**Description:** n/a

```cpp
sortDown = "\a3\ui_f\data\gui\rsc\rscdisplaymultiplayer\arrow_down_ca.paa";
```

##### sortUp

**Type:** String

**Description:** n/a

```cpp
sortUp = "\a3\ui_f\data\gui\rsc\rscdisplaymultiplayer\arrow_up_ca.paa";
```

#### T

##### tileH

**Type:** Number, String

**Description:** Height of one tile. Used with ST_TILE_PICTURE to create a repeating wall of pictures, such as the fullscreen backgrounds in the Eden Editor. Uses [GUI Coordinates](../topics/GUI_Coordinates.md).

Number example:

```cpp
tileH = 1;
```

String example:

```cpp
tileH = "4 / (32 * pixelH)";
```

##### tileW

**Type:** Number, String

**Description:** Width of one tile. Used with ST_TILE_PICTURE to create a repeating wall of pictures, such as the fullscreen backgrounds in the Eden Editor. Uses [GUI Coordinates](../topics/GUI_Coordinates.md).

Number example:

```cpp
tileW = 1;
```

String example:

```cpp
tileW = "8 / (32 * pixelW)";
```

#### W

##### widgetLineWidth

**Type:** Number

**Description:** n/a

```cpp
widgetLineWidth = 10;
```

### Default Classes

> [!NOTE]
> **Arma 3:** **AddOns:** Classes need to be initialised first with `class SomeClass;`
>
> ---
>
> **Missions:** Since Arma 3 v2.02 one can use `import SomeClass;` to initialise a class (see the [import](../topics/import_~28Config~29.md) keyword).
>
> In older versions, use `"Default" call BIS_fnc_exportGUIBaseClasses;` and paste the result into the [description.ext](../topics/Description.ext.md).

#### RscText

Most often this type of control will be used to add text to dialogs. If you want the text to change dynamically while playing the mission, you should set the *idc* property to a positive number, which allows usage of the [ctrlSetText](../commands/ctrlSetText.md) function. Text alignment can be controlled using the *style* property and the `ST_*` constants.

By default, this will only display a **single line** (and cut the overflow); use `ST_MULTI` if you intend to use multiple lines. This also requires setting the property *lineSpacing*, which indicates the relative space between lines; usually, you can set this to 1 for normal line spacing.

```cpp
class RscText
{
    deletable = 0;
    fade = 0;
    access = 0;
    type = CT_STATIC;
    idc = -1;
    colorBackground[] = { 0, 0, 0, 0 };
    colorText[] = { 1, 1, 1, 1 };
    text = "";
    fixedWidth = 0;
    x = 0;
    y = 0;
    h = 0.037;
    w = 0.3;
    style = ST_LEFT;
    shadow = 1;
    colorShadow[] = { 0, 0, 0, 0.5 };
    font = "RobotoCondensed";
    SizeEx = GUI_TEXT_SIZE_MEDIUM;
    linespacing = 1;
    tooltipColorText[] = { 1, 1, 1, 1 };
    tooltipColorBox[] = { 1, 1, 1, 1 };
    tooltipColorShade[] = { 0, 0, 0, 0.65 };
};
```

##### Trivia

When an RscText control with IDC 101 is added to the map, it displays the current time.

```sqf
private _ctrl = findDisplay 12 ctrlCreate ["RscText", 101];
_ctrl ctrlSetPosition [0, 0, 1, 1];
_ctrl ctrlCommit 0;
_ctrl ctrlSetFontHeight 0.5;
```

#### RscLine

Draws a single line from top left to bottom right corner of the control.

```cpp
class RscLine : RscText
{
    idc = -1;
    style = ST_MULTI + ST_TITLE_BAR + ST_HUD_BACKGROUND;
    x = 0.17;
    y = 0.48;
    w = 0.66;
    h = 0;
    text = "";
    colorBackground[] = { 0, 0, 0, 0 };
    colorText[] = { 1, 1, 1, 1 };
};
```

#### RscFrame

Frame that outlines the control's borders. When text is set it appears on the top line to the left.

```cpp
class RscFrame
{
    type = CT_STATIC;
    idc = -1;
    deletable = 0;
    style = ST_FRAME;
    shadow = 2;
    colorBackground[] = { 0, 0, 0, 0 };
    colorText[] = { 1, 1, 1, 1 };
    font = "RobotoCondensed";
    sizeEx = 0.02;
    text = "";
    x = 0;
    y = 0;
    w = 0.3;
    h = 0.3;
};
```

#### RscPicture

Using specific style constants you can enhance your dialogs with pictures too.
These pictures should reside in your mission folder as [paa](../topics/PAA_File_Format.md)-files.
Then set your *style* property to `ST_PICTURE` (to display it once) or `ST_TILE_PICTURE` (to tile it) and use the *text* property to locate the paa image you want to use, relative to your addon or mission folder (*absolute paths should not be used*).

```cpp
class RscPicture
{
    deletable = 0;
    fade = 0;
    access = 0;
    type = CT_STATIC;
    idc = -1;
    style = ST_MULTI + ST_TITLE_BAR;
    colorBackground[] = { 0, 0, 0, 0 };
    colorText[] = { 1, 1, 1, 1 };
    font = "TahomaB";
    sizeEx = 0;
    lineSpacing = 0;
    text = "";
    fixedWidth = 0;
    shadow = 0;
    x = 0;
    y = 0;
    w = 0.2;
    h = 0.15;
    tooltipColorText[] = { 1, 1, 1, 1 };
    tooltipColorBox[] = { 1, 1, 1, 1 };
    tooltipColorShade[] = { 0, 0, 0, 0.65 };
};
```

#### RscPictureKeepAspect

Same as RscPicture, but keeps the image the same ratio as in the source file.

```cpp
class RscPictureKeepAspect : RscPicture
{
    style = ST_MULTI + ST_TITLE_BAR + ST_KEEP_ASPECT_RATIO;
};
```

#### RscVideo (Arma 2: Operation Arrowhead v1.56)

All settings are same as for pictures, only source file must be of *.OGV* format.
Two additional properties are available - *autoplay* (when 1, video starts automatically) and *loops* (defines how many times video will be played in loop).

For video encoding, you can use:

- [ffmpeg2theora](http://www.v2v.cc/~j/ffmpeg2theora/download.html)
- [Theora Converter .NET (GUI for ffmpeg2theora)](http://sourceforge.net/projects/theoraconverter/)

```cpp
class RscVideo : RscPicture
{
    autoplay = 1;
    loops = 1;
};
```

#### RscVideoKeepAspect (Arma 3)

Same as [RscVideo](../topics/CT_STATIC.md#rscvideo) but keeps the source video's aspect ratio.

```cpp
class RscVideoKeepAspect : RscVideo
{
    autoplay = 1;
    loops = 1;
    style = ST_MULTI + ST_TITLE_BAR + ST_KEEP_ASPECT_RATIO;
};
```

### Other Classes

#### Static background

One can also use this control type to add solid background to dialogs by simply leaving the *text* property empty. This way, it will look like a regular rectangle.

```cpp
class MyRedBackgroundExample
{
    /* ... same as the text example, except for */
    colorBackground[] = { 1, 0.1, 0.1, 0.8 };
    text = "";
};
```

<sub>Source: [BI Community Wiki — CT STATIC](https://community.bistudio.com/wiki/CT_STATIC) (revision 376897).</sub>
