---
name: "SafeZone"
type: topic
source: https://community.bistudio.com/wiki/SafeZone
revid: 353567
updated: 2024-03-19T12:01:44Z
---

# SafeZone

In Arma: Cold War Assault, user interface [Displays](../topics/Display.md) were drawn always in 4:3 aspect ratio. Since then, many other aspect ratios became common and interface has to be compatible with them. Currently, interface is base on following variables:

- **Aspect Ratio** - change screen width to fit user's monitor
- **Interface Size** - resize size of interface [Controls](../topics/Control.md), like menus, hints, cursors, etc. Introduced in Arma 2.

### Coordinate Systems

Games now contains following two coordinate systems, both of them starting in their top left corner and going bottom right (see picture on right).

- **Absolute** *(red frame)* - based on CWA system. Its always 4:3 and changes together with Interface Size.
  - As absolute area is always centered, [0.5,0.5] is always center a of screen.
- **Safezone** *(black frame)* - actual monitor size. Uses following commands:
  - [safeZoneX](../commands/safeZoneX.md), [safeZoneY](../commands/safeZoneY.md), [safeZoneW](../commands/safeZoneW.md) and [safeZoneH](../commands/safeZoneH.md), with additional [safeZoneXAbs](../commands/safeZoneXAbs.md) and [safeZoneWAbs](../commands/safeZoneWAbs.md) to work with multi-screen size.
  - In case game is running only on one monitor, safeZoneXAbs equals to safezoneX and safezoneWAbs is same as safezoneW.
  - Safezones serves only as references to absolute positions. Result of safezoneX can for example be -0.452381, which means it is left from absolute area.

### Sample configs

Control with following size will cover whole screen (middle screen in case of TripleHead):

```cpp
x = safeZoneX;
y = safeZoneY;
w = safeZoneW;
h = safeZoneH;
```

Following proportions will cover all screens in TripleHead:

```cpp
x = safeZoneXAbs;
y = safeZoneY;
w = safeZoneWAbs;
h = safeZoneH;
```

Creates centered control with 80% width and height:

```cpp
x = safeZoneX + 0.1 * safeZoneW;
y = safeZoneY + 0.1 * safeZoneH;
w = safeZoneW * 0.8;
h = safeZoneH * 0.8;
```

Creates control with absolute width and height, moved 10% from top left screen corner:

```cpp
x = safeZoneX + 0.1 * safeZoneW;
y = safeZoneY + 0.1 * safeZoneH;
w = 0.2;
h = 0.3;
```

Creates the same as above, but aligned to bottom right corner:

```cpp
x = safeZoneX + safeZoneW - 0.2;
y = safeZoneY + safeZoneH - 0.3;
w = 0.2;
h = 0.3;
```

Creates a control that spans the horizontal and is centered on the vertical according to the control's aspect ratio (useful for fullscreen images that shouldn't be stretched but letterboxed). **2** is the aspect ratio:

```
x = safeZoneX;
y = safeZoneY + ((safeZoneH - (safeZoneW / 2 * (4/3))) / 2);
w = safeZoneW;
h = safeZoneH / 2 * (4/3);
```

### User Interface Editor

User Interface Editor helps with display creation, enabling designer to place controls in simple WYSIWYG editor and export it afterwards to config format.

### Image gallery

#### Aspect Ratio and Interface Size combinations

#### Video Options

<sub>Source: [BI Community Wiki — SafeZone](https://community.bistudio.com/wiki/SafeZone) (revision 353567).</sub>
