How to get Battlefield 3 and Battlefield 4 online working on Linux, SteamOS, Steam Deck

Want to play the classics Battlefield 3 and Battlefield 4 on Linux, SteamOS, Steam Deck? Here’s what you need to do to get them working fully.
They’re on the older side now, and they don’t actually use EA’s newer EA Javelin Anticheat instead they use the old PunkBuster. Anti-cheat is a constant problem for Linux platforms (check out our dedicated anti-cheat page). However, the problem here is that the version of PunkBuster included with both is old and ends up getting Linux systems kicked from online matches. We can solve this!
If you’re on a SteamOS system, you’ll need to dive into Desktop Mode first.
Battlefield 3 only
For Battlefield 3, it uses an annoying browser-based menu system. When you go to load the game, it will open a new browser tab to the Battlefield 3 web menu. You won’t be able to actually join a game by default on Linux though, unless you change your browser’s user agent with a tool like User-Agent Switcher and Manager (Chrome / Firefox) and setting it to spoof Windows.
This user agent string worked great for me:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.3351.55
Next up you need to update PunkBuster, otherwise you’ll find you’ll get kicked after a while. This applies to both Battlefield 3 and Battlefield 4.
Battlefield 4 and Battlefield 3 – Update PunkBuster
Important — Before doing this step: you need to run the games at least once, so PunkBuster is initially installed and for protontricks below to pick up the location.
Now go to the PunkBuster site and download the latest for Windows. You’ll get “pbsetup.zip” which you need to extract to get the “pbsetup.exe” installer ready in your Downloads folder.
Next you’ll need to install protontricks, which is available on Flathub. If you’re on KDE Plasma / SteamOS, in Desktop Mode it’s available via the Discover software installer.
Since we’re using the Flatpak version from Flathub, you need to open your terminal (like Konsole on KDE / SteamOS) and set an easy alias so we can call it properly how we need it for this guide. Open a terminal and put this in:
echo "alias protontricks-launch="flatpak run --command=protontricks-launch com.github.Matoking.protontricks"" >> ~/.bashrc
Then close and re-open your terminal to have it picked up.
Now we can run this next command in terminal that will load up the PunkBuster updater inside where Battlefield 3 or Battlefield 4 are located using protontricks.
Battlefield 3:
protontricks-launch --appid 1238820 ./Downloads/pbsetup.exe
Battlefield 4:
protontricks-launch --appid 1238860 ./Downloads/pbsetup.exe
It will bring up an EULA, click “I Agree” and you’ll get this screen:
Click “Add a game” and select which Battlefield you want. It should automatically get the location, as long as you remembered to run them once first as noted above.
And then hit Add Game and it will check it over and do the update.
And once finished it will show the newer version and then you can press Quit.
If it did not automatically detect the location, you can manually add the location you have it installed by typing it or hitting the Browse button next the the Game Path text box, but keep in mind it will be formatted like a Windows app expects (back slashes), and you need to include the main drive folder like “Z:\” at the start.
Issues
You might encounter a problem that appears with EA being unable to verify you own it. Something like this:
Annoying! But we can solve this as well. Close all of it and make sure it’s completely stopped in Steam.
Now you’ll need to find the Proton compatibility data folder for the game, and rename a specific file.
For Battlefield 3 by default it will be this file:
~/.steam/steam/steamapps/compatdata/1238820/pfx/drive_c/ProgramData/Electronic Arts/EA Services/License/71067.dlf
The ~ means your home folder. The Steam folder is also hidden by default, you can usually unhide with CTRL+H.
You can just rename it to:
71067.dlfBACKUP
Or delete it, as it appears EA will provide a new working one.