A few months and improvements to Proton after its first release, i had the first known, good working Arma installation on Linux.
Since Proton 4.11 as good as all tweaks needed to run Arma became obsolete, and it became as easy as never before to play not only Arma and Steam Games, but also non-Steam games because of many Proton improvements being up streamed to Wine. You can check if your games are working on the Lutris website, the WineHQ and the ProtonDB websites.
With the release of Proton 6.3-8, the last major burden, BattleEye, is now working and we can play Arma 3 on Linux without any restriction! As of 2023, the official Arma launcher also works on Linux using Proton.
This new guide is based on all the knowledge that got collected up until now. This guide will get continuous Updates
Last guide update: 2023-11-15 - Licensed, see below
As of 2023-11-27, this guide is licensed under CC BY-NC 4.0
1. Prepare (Reforger)
If you haven’t done so yet, activate Steam Play for all Games in the global Steam settings. Refer to the “Prepare” Chapter of the Arma 3 Section on how to do so.
To play Arma Reforger on Linux, you’ll just have to set your launch options to the following. (Refer to the Arma 3 Section again on how to do so.)
echo "%command%" | sed 's/ArmaReforger_BE.exe/ArmaReforgerSteam.exe/' | sh
Thats it, it should be playable now, assuming you have downloaded it.
Credits for this go to HER0#0927 on Discord.
I don’t take any responsibility if any (im)possible damage occurs on your hardware, software or your health, if you lose your job due to you being late because your alarm clock didn’t ring or if a thermonuclear war breaks out. You are responsible for all changes you are making! Please read everything carefully and if needed twice to prevent misunderstandings. You can contact me via the information provided on my website
As of now, Flatpak Steam is unsupported!
1. Prepare (Arma 3)
You should have
- Basic terminal/Bash knowledge
- All software and drivers up to date
- wine-staging installed (make sure all dependencies are installed)
- For BattleEye: Steam beta client (switch via steam settings)
2. Downloading Arma
Do the following before starting to download Arma!
Go into Steam settings and then click on “Steam Play”. Check both boxes and choose the newest Proton version available (not Experimental)
Now go into the Steam game settings menu and add the
%command% -nolauncher to the launch options
Then go into the “Compatibility” Tab and set the Proton version again
Now you can start the downlaod of Arma 3.
3. Starting and playing the Game
When the download is finished, start the game once and exit it again after reaching the main menu.
Now you need a launcher to manage Mods and launch options. I highly recommend using the Arma 3 Unix Launcher by muttleyxd instead of the official launcher. Download: Arch Linux AUR | as .deb or .AppImage
This is everything you need to play Arma 3 on Linux without ACRE2 or TFAR. Congratulations to get this far. ;)
4. The Helper script and ACRE2 / TFAR
Important: Make sure to start Arma at least once into the main menu before moving on!
4.1 The Helper script
The Arma3Helper Script (formerly Arma3TS.sh) is reqired to run ACRE2 or TFAR on Linux. It also provides utility to make some troubleshooting (see Chapter 5) easier.
Arma3Helper.sh provided here (click me) in your home directory for easy access.
Edit the file and adjust the settings inside the marked area in that file according to the comments.
4.2 Preperation for ACRE2 / TFAR
The Arma3Helper script provides a wrapper for winetricks that will set the wineprefix to Arma’s compatdata folder after you adjusted the settings inside the script.
To install a variety of DLLs/features that are required for ACRE2 / TFAR as well as fix alot of common issues, run the following command.
./Arma3Helper.sh winetricks Arma
For transparency: The DLLs/features installed are
4.3 ACRE2 / TFAR
Download Teamspeak 3 for Windows x64(!).
Install Teamspeak into the compatdata directory of Arma by running
./Arma3Helper.sh install path/to/TS3-Installer.exe.
IMPORTANT: In the Teamspeak installer, select “Install for all Users” and leave the default path!!!
After the insallation you can start TeamSpeak by just running
./Arma3Helper.sh After you have started Arma.
Before joining a TeamSpeak server, disable the “Gamepad and Joystick Hotkey Support” plugin to prevent it from crashing.
For TFAR you need to manually copy the plugin dll’s folders into your Teamspeak path (
c/Program Files/TeamSpeak 3 Client/plugins/). Note that a
.ts3plugin file is nothing but a ZIP with a different extension. Just unzip it with the tool of your choice.
Note: Some troubleshooting steps require the Arma3Helper script. See Chapter 4.1 for more info. Alternatively you can use protontricks.
5.1 I have problems with sound and/or thermal vision
See Chapter 4.2
5.2 I still have problems with sound (only for Proton 6.3 and older!)
You have 2 options to achieve the same fix.
You can set the enviromental variable
WINEDLLOVERRIDES="xaudio2_7=n" in the Steam startup options (or via the Arma 3 Unix Launcher).
The other way is to set it via
./Arma3Helper.sh winecfg and then under “Libraries”.
5.3 Arma doesnt open or crashes instantly
Run the following command depending on your linux distro to install possibly missing dependencies
Arch Linux based:
sudo pacman -S vulkan-tools
sudo apt install mesa-vulkan-drivers vulkan-utils
sudo dnf install mesa-vulkan-drivers vulkan-tools
5.4 Command X returns error Y
Double check for software and driver updates as well as the spelling of the commands and the settings. If you still got errors continue to Chapter 5.99
5.99 I still have a problem
6. Increasing Performance
6.1 Additional Launch Parameters
Try a combination of one or more of the following to see what works for you the best. Set them as desired via the Arma 3 Unix Launcher or add them to the Steam command line.
-noSplashNo splash screens. Game startup speedup.
-skipIntroStatic Background for main manu. Minor game startup speedup.
-world=emptyLoad an empty world for main menu background. Significant game startup speedup.
-exThreads=3for 2 CPU cores or
-exThreads=7for 4 cores or more; Offloads some work onto different threads. Usually a minor FPS Increase.
-enableHTenables use of logical cores instead of only physical cores. May improve or harm FPS depending of your PC. Try if it works for you. This is overwritten by
-hugepagesEnable huge page size for memory allocation. Try if it works for you.
-noLogsNot having to write logs may increase performance, but be sure to disable this if you need to troubleshoot problems.
-malloc=<string>Use a particular Memory Allocator (for advanced users, more info here).
-cpuCount=1Reportedly solves some issure for some people but might decrease performance. NOTE: This should be fixed on the arma perf branch and will find its way into the release branch of Arma soon.
6.2 General Linux gaming optimizations
Note: These Tips aren’t exclusive to Arma, but will apply to almost all Linux gaming.
Use different desktop enviroment or optimize a slow one:
- KDE Plasma users can replace
- You might want to switch to a slimmer desktop enviroment like XFCE, LXQt or a bare window manager setup (advanced users)
- KDE Plasma users can replace
Advanced users can build a customized kernel for their system with the help of linux-tkg for performance gains
This Guide was first released in the Armaworld Forums by me. If you have Feedback or Questions dont hesitate to open a Issue.