Spectrum Device – Arma 3

From Bohemia Interactive Community
Revision as of 12:27, 10 January 2020 by Str (talk | contribs)
Jump to navigation Jump to search

The spectrum device is a feature introduced in Arma 3 Contact. It's fully integrated into standalone distribution of the expansion, relying on systems that cannot exist outside of Contact.

Default Arma 3 version contains light version of the device which supports modding.

Features

On its own, the simplified system handles these features:

  • Horizontal compass
  • Spectrum line animation (i.e., noise)
  • Player-controlled frequency selection (mouse wheel by default while in "sights" view)

All other features have to be controlled by user-made script, notably:

  • Setting signal values (e.g., stronger signal when pointing towards its source)
  • Playing sounds
  • Transmitting a signal

Certain aspects are not supported at all:

  • Signal labels (frequency and signal name above the peak)
  • Selected signal to transmit (shown below the compass in Contact)

Spectrum Device

The device can be configured using global variables. Since the device is calculated locally, it's possible to set different values on each client in multiplayer. contact spectrumAnalyzer.jpg contact spectrumAnalyzerTransmit.jpg
The images display values set by following code examples.

Frequency

Frequency range in which the analyzer operates. Values are in MHz.

missionNamespace setVariable ["#EM_FMin", 140];
missionNamespace setVariable ["#EM_FMax", 143];

Sensitivity

Sensitivity of signals the analyzer is able to detect. Values are in dBm.

missionNamespace setVariable ["#EM_SMin", -60];
missionNamespace setVariable ["#EM_SMax", -10];

Selected Frequency

Currently selected frequency. Must be within the frequency range, otherwise it won't be shown. Values are in MHz.

missionNamespace setVariable ["#EM_SelMin", 141.6];
missionNamespace setVariable ["#EM_SelMax", 141.9];

Since the player can change the selection, it's possible to use getVariable to get the current value.

Scanning Progress

When a signal is selected, it's possible to progress scanning bar by setting the following variable. Value is in range from 0 to 1.

missionNamespace setVariable ["#EM_Progress", 0.5];

Transmission

To visualize transmitting, set the following variable to true.

missionNamespace setVariable ["#EM_Transmit", true];

Spectrum Signals

List of displayed signal values. The array is in format [frequency1, strength1, frequency2, strength2, ... frequencyN, strengthN].

missionNamespace setVariable ["#EM_Values", [141.8,-30, 140.85,-50, 141.12,-40]];