---
name: "User Interface Colors"
type: topic
aliases: ["Interface Colors"]
source: https://community.bistudio.com/wiki/User_Interface_Colors
revid: 346970
updated: 2023-08-12T15:09:39Z
---

# User Interface Colors

Take On Helicopters introduced ability to recolor menu and HUD colors. Community creators can define new presets or use user's colors using following configs and functions.

### Presets

Presets are available for users in Options > Game Options > Interface Colors menu. Anybody can define new presets and categories.

```
class CfgUIDefault // In Arma 3 the class was renamed to CfgUIColors
{
    // --- Tag
    class IGUI
    {
        // --- Name displayed in menu
        displayName = "$STR_HSIM_CfgUIDefault_IGUI_0";
        // --- Color variables
        class Variables
        {
            // --- Identification class ised by presets and scripts
            class TEXT_RGB
            {
                // --- Name displayed in menu
                displayName = "$STR_HSIM_CfgUIDefault_IGUI_Variables_TEXT_RGB_0";
                // --- Preview picture background
                previewBackground = "\hsim\UI_H\data\loadscreen_generic_co.paa";
                // --- Preview picture (when 1 instead of String, whole menu is recolored instead)
                preview = "\hsim\UI_H\data\cursor_w_view_gs.paa";
                // --- Preview picture width
                previewW = 4 * GUI_GRID_W;
                // --- Preview picture height
                previewH = 4 * GUI_GRID_H;
            };
        };
        // --- Color presets
        class Presets
        {
            class PresetDefault
            {
                // --- Name displayed in menu
                displayName = "$STR_HSIM_CfgUIDefault_IGUI_Presets_PresetGreen_0";
                // --- Class of modified variable (TEXT_RGB) with RGBA values
                TEXT_RGB[] = {0,1,0.05,0.8};
                // --- When 1, preset is used as default
                default = 1;
            };
            class PresetBlue
            {
                displayName = "$STR_HSIM_CfgUIDefault_IGUI_Presets_PresetDefault_0";
                TEXT_RGB[] = {0,1,1,0.8};
            };
        };
    };
};
```

### Macros

#### Adding New

System stores preset variables into [profileNamespace](../commands/profileNamespace.md) upon startup. UI controls can link to them using [getVariable](../commands/getVariable.md) command.

Using [macros](../topics/PreProcessor_Commands.md) helps to keep the code simple and maintain it through development.

```
#define IGUI_TEXT_RGB_R    "(profileNamespace getVariable ['IGUI_TEXT_RGB_R', 0])"
#define IGUI_TEXT_RGB_G    "(profileNamespace getVariable ['IGUI_TEXT_RGB_G', 1])"
#define IGUI_TEXT_RGB_B    "(profileNamespace getVariable ['IGUI_TEXT_RGB_B', 0.05])"
#define IGUI_TEXT_RGB_A    "(profileNamespace getVariable ['IGUI_TEXT_RGB_A', 0.8])"
```

Explanation:

- **#define IGUI_TEXT_RGB_R** - macro name. Can be anything, but naming it based on preset is recommended.
- **"(profileNamespace getVariable ['IGUI_TEXT_RGB_R',0])"** - actual value. Must be [String](../topics/String.md), otherwise macro would be terminated after first comma (,)
  - **IGUI_TEXT_RGB** - variable created by system based on preset. Created from <tag>_<variable>
  - **0** - default value in case variable is not found (used on first game start)

#### Existing

Color macros are defined in *defineCommon.inc* (see User Interface Macros for more details). Following defines are based on user modifiable colors:

- GUI (menus)
  - **GUI_BCG_RGB** - menu background RGB
  - **GUI_BCG_COLOR** - menu background RGBA
  - **GUI_BCG_MEDIUM_RGB** - button background RGB (darker version of GUI_BCG_RGB)
  - **GUI_BCG_MEDIUM_COLOR** - button background RGBA
  - **GUI_BCG_ACTIVE_RGB** - active button background color (e.g. focused buttons) RGB
- IGUI (HUD)
  - **IGUI_TEXT_RGB** - HUD color RGB
  - **IGUI_TEXT_COLOR** - HUD color RGBA

#### Sample Configs

Set text/picture color to HUD color

```cpp
colorText[] = IGUI_TEXT_COLOR;
```

Set text/picture color to HUD color with fixed alpha (e.g. override user transparency settings)

```cpp
colorText[] = { IGUI_TEXT_RGB, 1 };
```

### Functions

- [BIS_fnc_displayColorGet](../functions/BIS_fnc_displayColorGet.md)
- [BIS_fnc_displayColorSet](../functions/BIS_fnc_displayColorSet.md)

<sub>Source: [BI Community Wiki — User Interface Colors](https://community.bistudio.com/wiki/User_Interface_Colors) (revision 346970).</sub>
