Author: phronk
Author Website:

Requirements: No addons required

Version: 0.92

Short description: 'Addon-Free ArmA Radio' is a script which enhances the in-game VON by adding simple radio effects when communicating with other players, while factoring distance between the sender/receiver of the transmissions.

Date: 2019-07-05 08:01

Comments: (6)


Addon-Free ArmA Radio


'Addon-Free ArmA Radio' is a script which enhances the in-game VON by adding simple radio effects when communicating with other players, while factoring distance between the sender/receiver of the transmissions. This script does not require any addons and setup is easy.

Doesn't require any mods
Script will initialize only if TFAR / ACRE2 isn't enabled by the host and the AFAR lobby parameter is enabled
Tiny file size
Admin/Clients don't have to download ANYTHING extra to play your mission
No custom sounds; radio sounds are audio files pulled through the game
Default "ItemRadio" is used for VON comms
The 3D radio is an inanimate radio object already in Arma 3
Adds interesting depth to VON, which it has lacked for so long
Transmitting over VON channels will also broadcast a radio bleep/noise for all friendlies in range with a radio
Radio noise gets louder based on distance, until out of radio range
Compatible with land, sea, and air vehicles
More information in the "ReadMe.txt"

Installation / Usage:
For usage instructions and information of how to use the Addon-Free ArmA Radio please refer to the included documentation and/or example mission.

Media: has its own Youtube channel where we will cover the Community made releases.
Subscribe to the Youtube channel

Known issues:
Mouse button inputs (LMB, MMB, RMB) are not supported
Not Zeus compatible

License / Disclaimer:
As author of this script, I grant permission to all scripters/mission designers to modify this mission to their liking for PERSONAL USE.
This includes granted permission to individuals and ArmA groups to host a mission using the script on a server. HOWEVER, I DO NOT consent publishing ANY VERSION of the script as their own.

If you've made major changes to the script and wish to publish it, PLEASE CONTACT ME FIRST FOR PERMISSION TO BE GRANTED!

Credits & Thanks:
Added: "PlayerViewChanged" missionEventHandler for unit switch compatibility
Tweaked: Increased squelch volume from +7 db to +10 db
Tweaked: Radio squelch-out sound is played, if radio static present
Tweaked: 'r_CH' is defined in the AFAR init, instead of 'CFG.sqf'
Fixed: 'c_out.sqf' was referring to _x in remoteExec'd code, instead of 'r_p'
Fixed: 'c_out.sqf' was adding radio noise, instead of squelching out
Fixed: 'c_out.sqf' had an undefined '_p' variable in an "else" scope
Fixed: Persistent radio static if forced into Direct channel while transmitting
Fixed: Persistent radio static if killed while transmitting
Fixed: Corrected a code syntax in 'g_in.sqf'
Fixed: Spectator & Air channel didn't properly reset upon death/respawn (Again)
Fixed: Pop-up radio is hidden when player releases talk key in Direct channel
Fixed: Undefined variable 'ch9' script error, if Spectator respawn template not used
Optimized: Shortened script name of 'useRadio.sqf' to 'ui.sqf'
Optimized: Removed displayEventHandler's global variable 'r_myRadio'
Optimized: Removed displayEventHandler's global variable 'blockVON'
Removed: Some comments from 'AFAR\f\init.sqf'

Added: Reload eventHandler; workaround to fix the AFAR reload bug
Added: EventHandler which blocks NextChannel/PrevChannel keybinds
Added: Setting in 'CFG.sqf which can block nextChannel/prevChannel keybinds
Added: 'out2.sqf' : Disables current channel before setting to another channel
Added: Code exits if speaking in Global, Side, or Spectator channel
Tweaked: Enabled radio animation by default
Tweaked: Comments in 'AFAR\f\init.sqf'
Tweaked: Functions are initialized within a forEach, instead of count
Fixed: Transmitting while reloading played radio animation & deleted magazine
Fixed: Pressing any key while transmitting would re-squelch radio
Fixed: r_p variable wasn't properly reset after respawning
Fixed: Script errors & persistent static related to 's_in.sqf'
Fixed: Script error related to non-existent Spectator channel on init
Fixed: Spectator Channel wouldn't properly reset after respawning
Fixed: Direct Channel wouldn't properly reset after respawning
Fixed: Air Channel wouldn't properly reset after respawning
Fixed: Vehicle channel didn't have a squelch "in" sound
Fixed: Vehicle channel is no longer disabled by default in 'CFG.sqf'
Fixed: Wrong custom channel variables referenced
Fixed: Missing fragmented bracket in 'anim.sqf'
Fixed: Typo in 'g_in.sqf'
Optimized: Replaced keyDown/keyUp eventHandlers with 2 to handle all channels
Optimized: disableSerialization command added to 'opt.sqf'
Optimized: Removed some unneeded semicolons in short code blocks
Optimized: Air Channel references in 'prevCH.sqf' and 'nextCH.sqf'
Optimized: Removed unnecessary '_useState' variable/check in code init
Optimized: Removed redundant locality declaration for function global variables
Optimized: Incorporated more of the 'r_p' player variable throughout the scripts
Optimized: Air Channel only checks if pushToTalk keybind is being pressed
Optimized: _ch6, _ch7, _ch8 referenced in 'nextCH.sqf' switch structure
Optimized: Removed currentChannel check from each radio in/out function
Optimized: Removed redundant disableSerialization command from '3DLR.sqf'
Optimized: Removed redundant waitUntil code in called functions
Replaced: inputAction command with actionKeys
Removed: KeyDown/KeyUp eventHandlers for each individual channel
Removed: Support for the "PushToTalkSide" keybinding
Removed: 0 and 1 from 'r_CH' in 'CFG.sqf'
Removed: Unused r_s variable
Removed: CfgRemoteExec code from 'description.ext' to avoid confusion

• Added: r_RTOs variable to 'CFG.sqf': list of RTO units
• Added: '3DLR.sqf' script to handle pop-up radio
• Added: 'opt.sqf' for new options UI
• Added: Adjustable local script settings in radio UI
• Added: 2 more radio noise sound effects pulled from Arma 3 to add variety
• Added: 20 more variations of radio noise for weather/day conditions
• Added: Global variable 'r_noiz' which stores array of radio noise object(s)
• Added: 'titles.hpp' for pop-up radio interface
• Added: 'snd.sqf' to handle rain interference
• Added: 'opt.sqf' to handle client-side in-game options interface
• Added: RscTitles reference required in Description.ext
• Added: Metalman10 [EXP] to credits for helping optimize code initialization
• Updated: AFAR Instructions Manual in map briefing
• Updated: readMe.txt
• Changed: Pop-up radio when transmitting is now coded as an interface
• Changed: Radio noise intensity increases based on overcast - WIP
• Changed: Radio noise intensity increases based on rain
• Changed: Radio noise intensity increases based on sunOrMoon
• Changed: Vehicle channel no longer broadcasts radio noise
• Changed: Rewrote how radio noise is handled / deleted
• Changed: Renamed "Support Channel" to "Air Channel"
• Changed: Players with "RTO" trait have access to "Air" channel
• Changed: Players in pilot, copilot, or gunner seat get access to "Air" channel
• Changed: Replaced 'incapacitatedState' command with 'lifeState' command
• Reverted: Players can no longer become an RTO by having 2+ radios
• Tweaked: Replaced useless '_x' param in remoteExec with player name
• Tweaked: Improved compatibility with customized radio channel permissions
• Tweaked: Improved compatibility with disabled Vehicle channel (r_vCH)
• Tweaked: Improved readability of titleText pop-up when opening radio UI
• Tweaked: Capitalized all letters in "GUNNER" string, in 'anim.sqf'
• Fixed: Undefined variable "RTO"
• Fixed: Passengers of vehicles without the RTO trait would get Support channel
• Fixed: Player would detect himself when transmitting
• Fixed: Script errors related to enableChannel using bool value, instead of array
• Fixed: Non-default channel permissions weren't taken into consideration
• Fixed: Radio noise can only be deleted by the sender ending transmit
• Fixed: AFAR no longer interferes with hints from mission/mods
• Fixed: Channel(s) would vanish if no other players available to receive message
• Fixed: Persistent static bug, related to talking on radio while incapacitated
• Fixed: If player spawns without a radio, player would hot-mic
• Optimized: Pop-up radio no longer uses attachTo
• Optimized: Radio noise no longer uses attachTo
• Optimized: Removed conditional checks in 'useRadio.sqf'
• Optimized: Removed distance checks
• Optimized: Removed alive checks
• Optimized: Removed array sorting code
• Optimized: Removed vehicle type check
• Optimized: Removed damage player check in "Put" and "Take" eventHandlers
• Optimized: Removed '_rtoSeat' variable
• Optimized: Removed '_PLR' variable from some eventHandlers
• Optimized: Renamed '_nearP' to '_p'
• Optimized: 'V_In' checks for players in your vehicle only
• Optimized: Removed redundant resetting of local/private variables
• Optimized: Removed redundant 'r_PS' variable
• Optimized: Removed redundant player isKindOf r_PS checks
• Optimized: Removed redundant player condition checks in r_fuzz and r_fuzz2
• Optimized: Removed redundant "ItemRadio" and RTO trait check in 'out' functions
• Optimized: Removed duplicate in and out eventHandlers for Support channel
• Optimized: Vehicle horn check no longer uses BIS_fnc_inString
• Optimized: Code no longer looks for attachedObjects
• Optimized: Code checking for RTO seat simplified into light-weight variable
• Optimized: Improved group leader check in the Command channel functions
• Optimized: Improved civilian vehicle check in the Support channel functions
• Optimized: Improved efficiency of generating players array variables
• Optimized: Improved efficiency of getInMan / getOutMan eventHandlers
• Optimized: Improved efficiency of all in and out functions
• Optimized: Replaced spawned/attached radio object with a 3D interface
• Optimized: Replaced (leader(group(vehicle _x))==_x) with (leader group _x==_x)
• Optimized: Replaced side player with playerSide
• Optimized: Replaced if(then);if(then);if(then); to a switch
• Optimized: Replaced 'r_S' with playerSide - (Test)
• Optimized: Replaced 'r_PS with playerSide - (Test)
• Optimized: Replaced == with isEqualTo in some cases
• Optimized: Replaced select with # in some cases
• Optimized: Replaced ""code"" with 'code' for strings in eventHandlers
• Optimized: Replaced player with r_p missionNamespace variable - (Test)
• Optimized: Renamed '_rtoSeat' to 'seat'
• Optimized: Renamed 'r_Hush' to 'r_out'
• Optimized: Renamed 'Hush.sqf' to 'out.sqf'
• Optimized: Deleted lots of "unneeded" whitespaces

Forum topic:
- BI forums

Steam Workshop:
- Subscribe

Enable javascript to be able to download from Armaholic please!

Tags: Communication,   Effects,   Enhace,   Framework,   Radio,   Scripts,   Simulation,   Sound,   Von