Skip to content
Vestarr edited this page Sep 23, 2026 · 2 revisions

BettIR NVG mod

Infrared / night vision improvements for ARMA 3. Includes BettIR NVG module which introduces nightvision illuminators (for both goggles and helmets) and base functions for changing visibility/material/texture based on nightvision state (not supported in PiP nightvision), and BettIR Patches which introduces IR patches not only on uniforms, but also as attached objects on vests, backpacks and headgear.

IR Illuminators in Night vision goggles / helmets

v1.0.0 changes the way IR illuminators are added to Night Vision devices and helmets. Previously, it required a separate config entry in BettIR_Config which can be removed, since now it relies on a parameter in CfgWeapons called BettIR_isCompatible - BettIR will consider it compatible when it's set to 1 and the item has visionModes configured for nightvision. This allows all nightvision devices to be compatible with BettIR, as long as it inherits from basegame NVGoggles. If a night vision device is not supposed to have an illuminator, it should be blacklisted with BettIR_isCompatible set to 0. Optional parameter BettIR_Offset is provided in case the light source should be positioned differently.

Example config:

class CfgWeapons {
    class Binocular;
    class NVGoggles: Binocular {
        BettIR_isCompatible = 1; // 1 for true, 0 for false
        BettIR_offset[] = {0.0,0.0,0.0}; // 3D vector
    };
};

Keybinds

Shift + Alt + N by default toggles the illuminator.

AI Usage

AI units are not capable of using this feature at this moment. However, they can be forced to use the illuminators by running

[_unit, _on] call BettIR_NVG_fnc_handleIlluminatorToggledEvent;

where:

  • _unit [OBJECT] - unit the illuminator should be turned on
  • _on [BOOL] - true if the illuminator should be turned on, false otherwise

Nightvision-dependent object modifiers

BettIR NVG provides abstract functions which allow textures, materials and visibility of an object to be changed under night vision. The material update mechanism is exactly what allows IR Patches to work in this mod. The functions register the object for requested updates, and the mod automatically deregisters the object when it's deleted/destroyed (becomes objNull), but deregistration functions are also available.

Change texture based on nightvision state

[_object, _textureIndex, _textureWhenOff, _textureWhenOn] call BettIR_NVG_fnc_registerNightvisionTextureChange;

where:

  • _object [OBJECT] - object to be affected
  • _textureIndex [NUMBER] - index of the texture in hiddenSelections / getObjectTextures
  • _textureWhenOff [STRING] - texture path when night vision is disabled
  • _textureWhenOn [STRING] - texture path when night vision is enabled

Change material based on nightvision state

[_object, _materialIndex, _materialWhenOff, _materialWhenOn] call BettIR_NVG_fnc_registerNightvisionMaterialChange;

where:

  • _object [OBJECT] - object to be affected
  • _materialIndex [NUMBER] - index of the material in hiddenSelections / getObjectMaterials
  • _materialWhenOff [STRING] - material path when night vision is disabled
  • _materialWhenOn [STRING] - material path when night vision is enabled

Change visibility based on nightvision state

[_object,_visibleWhenOn,_visibleWhenOff] call BettIR_NVG_fnc_registerNightvisionVisibilityChange;

where

  • _object [OBJECT] - object to be affected
  • _visibleWhenOn [BOOL] - true if the object should be visible when night vision is enabled
  • _visibleWhenOff [BOOL] - true if the object should be visible when night vision is disabled

IR Patches

Visit https://github.com/thevestarr/bettir-nvg/wiki/BettIR-Patches