Guard

Which cg_fov should I use?

OpenMOHAA's cg_fov is a 4:3 number that the game widens for your monitor, so the same value looks wider on a wider screen. Pick your resolution and the Volute FOV you played with to get the matching value. Guard allows 65 to 80.58, and the picture may be at most 98° wide on any screen, so ultrawide monitors get a lower maximum.

Your setup

Custom width × height
×
Aspect 16:9

Use this

cg_fov80.58

Real width at min (65)

80.7° = Volute 80.7

Max allowed on this screen

80.58 = 97.0° wide, Volute 97.0

Vertical view

51° – 65° same on every monitor

Quick table for your monitor

VoluteOpenMOHAA cg_fovNote

Common monitors

ResolutionAspectVolute 76Volute 80Volute 91Volute 97

* Outside the allowed range for that resolution. Values below 65 mean the screen is already wider than that Volute FOV at the minimum, so use 65. Values above the maximum for that screen are not possible, so use the maximum. Screens marked none are too wide for any cg_fov: play at a 16:9 resolution.

Guard rulecg_fov must stay between 65 and 80.58, and on OpenMOHAA it may not show more than 98° of width at your resolution. That is 80.58 on 16:9 and narrower screens, and a lower value on ultrawide screens. Anything wider is a major violation and is treated as cheating. If Guard flags your cg_fov it tells you the maximum for your screen, and its Clean cfg button applies it.

The formula

OpenMOHAA keeps the vertical view fixed and stretches the picture sideways to fill your screen (the usual "Hor+" behaviour). cg_fov is the horizontal angle the picture would have on a 4:3 monitor, so the real width depends on how much wider than 4:3 your screen is. With your resolution written as \(w \times h\), that stretch factor is

\[ k = \frac{w / h}{4 / 3} = 0.75 \cdot \frac{w}{h} \]

It is \(1\) on 4:3, \(1.333\) on 16:9, \(1.778\) on 21:9 (2560 × 1080) and \(2.667\) on 32:9.

What a cg_fov really shows

Half the view is a right triangle, so the tangent of the half-angle scales with \(k\):

\[ \text{width} = 2 \arctan\!\left( \tan\frac{\texttt{cg\_fov}}{2} \cdot k \right) \]

Example on 1920 × 1080: \(k = 1.333\), so cg_fov 80.58 gives \(2 \arctan(\tan 40.29^\circ \times 1.333) = 97.0^\circ\). That is why 80.58 equals Volute 97 on a 16:9 screen.

From a Volute FOV to cg_fov

Volute's number is the real width you saw, so solve the same equation the other way round. This is what the converter above computes:

\[ \texttt{cg\_fov} = 2 \arctan\!\left( \frac{\tan(\text{Volute} / 2)}{k} \right) \]

On a 4:3 screen \(k = 1\) and cg_fov is simply the Volute value.

Guard's maximum for your screen

Guard allows at most 98° of real width, and never more than cg_fov 80.58. Put 98 into the formula above and keep the smaller of the two:

\[ \texttt{cg\_fov}_{\max} = \min\!\left( 80.58,\; 2 \arctan\!\left( \frac{\tan(98^\circ / 2)}{k} \right) \right) \]

On 16:9 the second term is 81.6, so the 80.58 cap wins and nothing changes for you. On 2560 × 1080 it is 65.81 and on 3440 × 1440 it is 65.40, which is what Guard flags against and what its Clean cfg button writes.

Why 32:9 has no allowed value

OpenMOHAA does not accept a cg_fov below 65: it resets anything lower to 65 on the next frame. At 32:9, \(k = 2.667\), so even the minimum shows \(2 \arctan(\tan 32.5^\circ \times 2.667) = 119^\circ\), well past Guard's 98°. The only way to play on such a screen is a 16:9 resolution.

Vertical view

The vertical angle uses the 4:3 factor instead of \(k\) and therefore does not depend on your screen:

\[ \text{height} = 2 \arctan\!\left( \tan\frac{\texttt{cg\_fov}}{2} \cdot \frac{3}{4} \right) \]

That is 51° at cg_fov 65 and 65° at 80.58 on every monitor, which is why the numbers above only ever talk about width.