FROM: High Command
TO: Arma 3 Users
UNIT: Main Branch
ACTIVITY: Game Update 2.20 (Performance Optimizations, Steam Game Recording, UH-80 / AH-99 Stub Wings, Illumination Flares)
SIZE: ~127 MB / ~57 MB (depends on Contact ownership)
NOTES
- For more information about the performance optimizations, please read our technical deep dive blog (which also mentions updates to the game's system requirements).
- Contact consists of 2 data packs / folders:
- Contact (via PLAY CONTACT or -mod=Contact): for the singleplayer "First Contact" campaign experience (accessible only to owners - optionally loaded)
- Contact (Platform): for most other use cases, including sandbox multiplayer (loaded by default for all players)
- Consider using the Steam client option to verify the integrity of the local game cache to avoid corrupted data after downloading this update.
- Consider defragmenting your HDD after downloading large updates.
- Updating a deeply moddable game and its platform is not without risks. We use various methods to communicate upcoming changes to our awesome modding community, such as via the Dev Hub. We also co-operate directly on troubleshooting, and we offer an opportunity to test updates via our Release Candidate tests. Modders, server administrators, and other members of the community do their best to prepare for updates and to address issues post-release as quickly as possible. Please be mindful of some interruptions (especially in the first hours / days after a release) while we all work to improve the game together.
- A Legacy Build Steam branch is available for advanced users. It contains the previous significant main branch version (2.18). It can be used to compare specific changes between major releases. The access code for this branch is: Arma3Legacy218
- This update does not yet apply to the experimental Mac client ports.
- You can find the servers in the Steam library (switch the filter to "Tools") - "Arma 3 Server" (based on your OS, it will download the Windows or Linux version).
- Administrators can also use the command-line SteamCMD utility. The app ID is to be 233780.
- NVIDIA GameWorks™ Technology provided under license from NVIDIA Corporation. Copyright © 2002-2018 NVIDIA Corporation. All rights reserved. NVIDIA® and PhysX® are trademarks of NVIDIA Corporation and are used under license.
- In case of problems, please check the Bohemia Interactive support F.A.Q., Arma 3 F.A.Q., BattlEye F.A.Q., or Launcher troubleshooting guide.
- You can help us to further improve the game by posting your feedback on the Feedback Tracker.
CHANGELOG
DATA
- Added: Stub wing variants with pylon configurations for AH-99 and UH-80 helicopters
- Added: Illumination flares (in addition to the existing signal flares)
- Added: Steam Game Recording integration for Time Trials
- Added: Steam Game Recording integration for Firing Drills
- Added: Steam Game Recording integration for Arma Invaders
- Added: More specific Steam branch info to the main menu, pause menu and loading screens
- Added: Missing DLC requirement in "Showcase Sling Loading"
- Tweaked: BIS_fnc_setUnitInsignia/BIS_fnc_getUnitInsignia updated to work with the new uniform texture mechanic - FT-T161323
- Tweaked: Eye position when aiming down the sights on M320 and GM6, so the camera is no longer clipping with the rifle's mesh when recoil kicks in
- Fixed: format argument error in AAN function - FT-T182822
- Fixed: utils format argument error - FT-T182822
- Fixed: Error in BIS_fnc_kbTellLocal function - FT-T186857
- Fixed: Undefined error in BIS_fnc_liveFeedTerminate function - FT-T186558
- Fixed: Importing exported Arsenal loadout was not importing insignia - FT-T186642
- Fixed: A Logic was created on the wrong side in a scripted function - FT-T177680
- Fixed: SAAMI weapon referencing incorrect sounds - FT-T185821
- Fixed: Script format error in Field Manual - FT-T182822
- Fixed: Launchers were not always selected properly in Arsenal
- Fixed: AI jet pilots will now properly eject from their plane when it is damaged more then its ejectDamageLimit
- Fixed: One pop-up target in "CoF: Red 2" was behaving incorrectly
- Fixed: Missing windows fire geometry on armed variants of Ifrit - FT-T190093
- Fixed: Tail wheel missing from "Camo2" hidden selection on UH-80 in its first LOD
- Fixed: format related error in the "Remnants of War" campaign
ENGINE
- Deprecated: 32-Bit support (not yet removed, but a future update may do so)
- Deprecated: Windows 7 and 8 support (not yet removed, but a future update may do so)
- Added: Integration of Steam Game Recording with custom game events (documentation forthcoming)
- Added: Replaced Real Virtuality multithreading job system with Enfusion's version
- Added: Asynchronous JIP queue processing
- Added: Multithreaded JIP queue processing
- Added: Multithreaded lights collection
- Added: More multithreading into rendering
- Added: Asynchronous AI and sound simulation
- Added: Partially multithreaded AI simulation
- Added: Multithreaded AI visibility calculations
- Added: Multithreaded PhysX simulation
- Added: Script commands allMissionObjects, nearestObjects, nearObjects, nearSupplies, nearRoads are now internally multithreaded
- Added: Scanning for objects in trigger areas is now multithreaded
- Added: AI sensor updating is now multithreaded
- Added: AI target list updating/scanning is now multithreaded
- Added: PhysX Vehicle suspension update is now multithreaded
- Added: PhysX Simulation is now multithreaded
- Added: Mission file downloading over HTTP - BI Forums
- Added: CT_WEBBROWSER UI Control
- Added: CT_EXTENSION UI Control
- Added: Alternative syntax for getObjectTextures script command
- Added: Option to getObjectTextures to return default textures - FT-T171318
- Added: Option to setObjectTexture and setObjectMaterial commands to reset to default texture/material - FT-T171318
- Added: Ability to set a marker color directly with setMarkerColor - FT-T185042
- Added: Slightly improved efficiency of inAreaArray for Arrays
- Added: Alternative syntax for inPolygon check to inAreaArray
- Added: Optional parameter to inArea/Array/Indexes to force all positions to be treated as PositionWorld (default was PositionAGL)
- Added: New marker shapes: "TRIANGLE", "PENTAGON", "HEXAGON", "HEPTAGON", "OCTAGON", "NONAGON", "DECAGON"
- Added: drawXPolygon script command
- Added: exportJIPQueue now includes the number of messages per object (to see how many would be removed if said object was deleted)
- Added: isSwitchingWeapon script command
- Added: Alternative syntax for lineIntersects command to run multiple intersects in parallel using multithreading
- Added: FPS limit in main menu with -world=empty and when windowed mode is unfocused
- Added: Option to log remains collector entities into a file
- Added: Servers with no players now limit their FPS to 30 (regardless of -limitFPS parameter)
- Added: -limitFPS command-line parameter now also works on clients
- Added: Ability to configure remains collector force remove times in the server config
- Added: Uniforms textured by setObjectTexture/Global will now show custom textures in weapon holders
- Added: uiTime script command
- Added: Alternative syntax to the landAt command - FT-T187838
- Added: Confirmation prompt for serverCommand when not using a password
- Added: RscDisplayPassword now stores the server address in the "guid" variable on the display
- Added: Base64 conversion and compression in script via ctrlWebBrowserAction
- Added: getServerInfo script command - FT-T187807
- Added: sourceModulo for MFD sources
- Added: MFD sources ClockSecondSmooth and SidePanelRadarRange
- Added: mfdMaxUserValues vehicle config entry and raised the maximum MFD user value limit to 256
- Added: productVersion now also lists the Steam Beta branch name
- Added: "MaxResolution" to setTIParameter
- Added: "useRealViewport" config property for map controls - FT-T189016
- Added: ctrlRelToScreen and ctrlScreenToRel script commands - FT-T189016
- Added: isNil with namespace argument now also supports control/display
- Added: Animal config property canFitUnderADoor (when true will stop given animal from opening a door when entering into a house)
- Added: Option to removeWeapon/removeWeaponGlobal to abort a new weapon autoselect after primary weapon removal
- Added: Option to addWeapon/addWeaponGlobal to abort a new weapon autoselect if no weapon was selected
- Added: AIThinkOnlyLocal option to setMissionOptions
- Added: CfgAmmo explodeParentWhenTriggered to complement deleteParentWhenTriggered - FT-T190390
- Added: Mission "MarkerDeleted" Event Handler now returns deleter person - FT-T178348
- Added: removeAllMagazines and removeAllMagazinesTurret script commands - FT-T177284
- Added: MFD Sources WPDir/WPDirRel
- Added: addMagazinesTurret script command - FT-T174007
- Added: Some of basic.cfg network parameters can now be provided as strings
- Added: MFD Source WPTime
- Added: connectToServer command and Server Browser Direct-Connect now supports resolving SRV records - FT-T127943
- Added: getAllPylonsInfo now also returns the position of each pylon - FT-T190789
- Added: Listbox sorting is now multithreaded - FT-T184005
- Added: "PylonChanged" entity Event Handler - FT-T190875
- Added: Post-processing effects Sharpness, DepthOfField, Fisheye - FT-T163827
- Added: Option to the disableChannels mission and server parameter to disable map drawing and map marker placement from the UI per chat channel
- Tweaked: Improved PhysX simulation performance, if many PhysX objects are in close proximity
- Tweaked: Buildings with lights no longer get faster simulation if they are not animated and static
- Tweaked: Visibility checks when applying explosion damage are now multithreaded
- Tweaked: Improved server performance when sending a large JIP queue
- Tweaked: inAreaArray efficiency for markers has been slightly improved
- Tweaked: setUnitLoadout will now abort if a unit is in the process of switching weapons - FT-T167015
- Tweaked: Uniform textures are now stored on uniform entities
- Tweaked: Uniform textures now persist in multiplayer
- Tweaked: Added ability to force remove remains after an additional fixed time
- Tweaked: Slightly improved efficiency of remains disposal checks
- Tweaked: Added option to diag_remainsCollector to return override times
- Tweaked: setSimulWeatherLayers -1 will now reset SimulWeather
- Tweaked: Scripted helicopter functionality is extended with more options for handling landing - landAt
- Tweaked: Added alternative syntax to getObjectMaterials script command
- Tweaked: UGV follow range is now in increments of 10s instead of 100s
- Tweaked: Follow Unit menu now has a Cancel option to unfollow
- Tweaked: Optimized the game's memory usage (~400 MB, ~1GB on 32-bit)
- Tweaked: Several memory allocation optimizations
- Tweaked: Updated Steamworks SDK (libraries) to 1.61
- Tweaked: drop script command now returns the particle object - FT-T182084
- Tweaked: inAreaArray/inAreaArrayIndexes array of positions has been unified and can accept positions in format array, object, group, location, marker (while ignoring nils)
- Tweaked: Improved performance of AI pathfinding (sea wave positions are no longer calculated when they would be below terrain)
- Tweaked: AI no longer calculates light influence on targets during daytime
- Tweaked: Handling of Eden Editor mouse cursor placement (it is now possible to place objects on top of all objects and upside down and on the sides of objects)
- Tweaked: AI computation is now done in parallel to d3dPresent
- Tweaked: Improved efficiency of listbox sorting - FT-T184005
- Fixed: Snakes opened doors when entering houses - FT-T59444, FT-T66646, FT-T80719, FT-T86273, FT-T66959, FT-T66520, FT-T64512, FT-T63866, FT-T60776, FT-T60326, FT-T67930
- Fixed: Game could freeze when tabbing out while rendering - FT-T183720
- Fixed: supportInfo command did not list all commands on "u:*" and "b:*"
- Fixed: Sometimes velocity for EPE objects would return 0 - FT-T185618
- Fixed: UAV would stop following waypoints after a Land waypoint
- Fixed: getObjectTextures/getObjectMaterials would not work with Simple Objects - FT-T185884
- Fixed: Inconsistency between inAreaArray and inAreaArrayIndexes for Array when matching in 3D
- Fixed: enableReload would not work with static weapons
- Fixed: Removing a magazine from a static weapon would trigger a reload when enableReload was false
- Fixed: removeMagazine was removing the current magazine from static weapons first
- Fixed: Game would try to re-download Steam Workshop Compositions repeatedly - FT-T171116
- Fixed: RPT file header would not print all arguments if arguments were too long
- Fixed: inArea/Array/Indexes did not support legacy hexagon - BI Forums
- Fixed: JIP players seeing different uniform on a player for up to a minute
- Fixed: Unit insignia were sometimes being applied to the whole body - FT-T155459
- Fixed: Keybinding F16-F23 keys were displaying "UNEXPECTED_KEY_ID" instead of the key name - FT-T125049
- Fixed: Headless Client would not report if connection failed due to allowedFilePatching or equalModRequired restrictions
- Fixed: snow parameter in RainParticles config did not work - FT-T185117
- Fixed: Sections of objects would stop rendering at specific camera angles
- Fixed: setObjectTexture stopped working with VR entities - FT-T155459
- Fixed: ignoreNoDamage mission option was preventing healing using a Medikit - FT-T186874
- Fixed: Crash in legacy non-PhysX car collision simulation (thanks to Moerderhoschi for the reproduction steps)
- Fixed: When taking off a uniform, modded content would apply its uniform texture to underwear - FT-T155459
- Fixed: Network spam when deleting units
- Fixed: uiSleep did not serialize properly
- Fixed: Helicopters would not respond to a change of helipad during landing
- Fixed: Some of the player-emitted sounds were not audible in multiplayer - FT-T178500
- Fixed: SimulWeather would not reset on mission change
- Fixed: setSimulWeatherLayers stopped working after layers were set to 0
- Fixed: Countermeasure impact sounds were multiplied in multiplayer - FT-T186402
- Fixed: UGVs would not follow players from the UAV terminal - FT-T126283
- Fixed: Switching between UGV and UAV would break the UAV gunner view
- Fixed: Sometimes the unit follow arrow was not drawn correctly
- Fixed: Selected follow unit range was not highlighted in the menu
- Fixed: connectToServer did not support using domain names - FT-T159809
- Fixed: UGV would continue following dead units
- Fixed: Steam Rich Presence would display "__cur_sp" for single player missions if they were only setting the mission name in the editor attributes
- Fixed: Crash when "MagazineUnloaded" Event Handler is set and magazine is unloaded in Arsenal
- Fixed: -init= command line parameter did not work
- Fixed: Crash when using a SoundSet with delay inside a vehicle - FT-T188707
- Fixed: Map controls now correctly handle positioning inside control groups, if "ctrlMapSetPosition []" is executed once - FT-T189016
- Fixed: setPiPEffect - Chromatic Aberration and Film Grain did not work
- Fixed: Weapon muzzle attachments recoilCoef was not applied to player-used weapons - FT-T167366
- Fixed: thermalResolution config parameter did not work when setting a single resolution instead of a zoom range
- Fixed: UI On Texture textures would sometimes think they are not visible on screen and never update their image (thanks Lambda.Tiger)
- Fixed: skipLobby parameter could not assign players into Virtual Spectator or Zeus slots and could get stuck if no other slots are free (thanks Dimon UA)
- Fixed: Helicopter adjusting direction after turning the engine off after landing
- Fixed: Functions Viewer did not populate list of functions when opening
- Fixed: Incorrect laser marker positioning on and around water - FT-T188547
- Fixed: Laser target marker would get stuck on objects - FT-T71322
- Fixed: currentZeroing did not respect laser range zeroing - FT-T189309
- Fixed: Missiles did not consider their fuseDistance setting - FT-T189277
- Fixed: Crash when using loadConfig with binarized configs - FT-T188760
- Fixed: Crash if OGG sound file is played more than 255 times at once
- Fixed: "Fired" Event Handler in multiplayer could receive wrong projectile for global projectiles - FT-T190141
- Fixed: Forced game crash when addon requires addon that was skipped due to skipWhenMissingDependencies - FT-T172179
- Fixed: getShotInfo did not return timeToExplosion for mines - FT-T190684
- Fixed: Zeus did not store allowed addons in savegame (resulting in loss of access to modded units after loading a savegame) - FT-T190333
- Fixed: Flares did not apply the Attenuation config to their light emitter
- Removed: Log "context" is no longer available on 32-bit
SERVER
- Updated: Stand-alone Windows Dedicated Server (2.20)
- Updated: Stand-alone Linux Dedicated Server (2.20)
- The data in -mod=contact is not fully multiplayer compatible (it is meant for the singleplayer campaign experience); we recommend only hosting servers with it for special use cases
- This data is signed by a new A3C key whose presence can be used to control what client data is allowed on the server
- Known issue: Steam client modifies the steam_appid.txt file incorrectly. In case of issues, verify its content is: 107410
- Known issue: Sometimes the add-ons are loaded from the wrong installation (e.g. main game)
- Try adding -mod=curator;kart;heli;mark;expansion;jets;argo;orange;tacops;tank;enoch;aow to your arma3server.exe shortcut
- The data in -mod=contact is not fully multiplayer compatible (it is meant for the singleplayer campaign experience); we recommend only hosting servers with it for special use cases