Skip to content

Instantly share code, notes, and snippets.

@sxiii
Last active May 11, 2026 07:16
Show Gist options
  • Select an option

  • Save sxiii/9d9b8435fd343b2024b16b8cbe86a69e to your computer and use it in GitHub Desktop.

Select an option

Save sxiii/9d9b8435fd343b2024b16b8cbe86a69e to your computer and use it in GitHub Desktop.
How to fix Worms W.M.D. launch on ArchLinux, Manjaro, Garuda, Artix Linux & Linux Mint

Game information Worms W.M.D.

Distribution name and version where applicable Manjaro 20.1.1 (Mikah)

Problem description Worms doesn't launch out of the box without two small tweaks. When launching Worms W.M.D. in Manjaro and Archlinux, you need to do two things:

  1. Install this apps: sudo pacman -S libcurl-gnutls libidn11 qt5-base qt5-xcb-private-headers(If you are on any other distro then Arch, you can skip this step. At least this is reported to be OK to skip for Linux Mint)
  2. Edit file "Run.sh" in Worms W.M.D. directory, usually it's located here: ~/.steam/steam/steamapps/common/WormsWMD/Run.sh, and replace it's content with this:
#!/bin/bash
export LC_ALL=C
export LD_LIBRARY_PATH="/usr/lib:/usr/local/lib"
export LD_PRELOAD="$(
	printf "%s " ~/.steam/steam/steamapps/common/WormsWMD/lib/libQt5*.so* \
		~/.steam/steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libdbus-1.so.3 \
		~/.steam/steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libdbus-1.so.3.5.8
)"
chmod a+x ./Worms\ W.M.Dx64
./Worms\ W.M.Dx64

Finally, you can launch Worms WMD either through Steam (by pressing play and choosing "Run with Run.sh", or via CLI by just ./Run.sh.

Does this issue reproduce with native Steam Yes, the issue seems like an upstream Steam Linux WMD distribution bug.

@robertstandev

Copy link
Copy Markdown

Simple and effective solution. Thanks!

@ivdok

ivdok commented Feb 13, 2023

Copy link
Copy Markdown

Doesn't work anymore:

./Worms W.M.Dx64: /usr/lib/libcurl-gnutls.so.4: no version information available (required by ./Worms W.M.Dx64)
./Worms W.M.Dx64: /home/ivdok/.steam/steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libdbus-1.so.3: no version information available (required by /usr/lib/libpulse.so.0)
./Worms W.M.Dx64: /home/ivdok/.steam/steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libdbus-1.so.3: no version information available (required by /usr/lib/pulseaudio/libpulsecommon-16.1.so)
./Worms W.M.Dx64: symbol lookup error: /usr/lib/libsndfile.so.1: undefined symbol: lame_encode_buffer_interleaved_int

@psmgeelen

Copy link
Copy Markdown

So there are a couple of options. I can remember that installing the individual files into the game directory worked. If you are using Steam, then installing it in windows mode with Proton works great too. I own a SteamDeck, and there it runs natively too. The OS should be Arch based I think..

@sxiii

sxiii commented Mar 16, 2023

Copy link
Copy Markdown
Author

Here's the new version that works for me. Not sure that it's better then the "Proton" version though, as it seems Team17 is not very eager to update the Linux version. But you can test it out :)

#!/bin/bash

export LC_ALL=C
export LD_LIBRARY_PATH="/usr/lib:/usr/local/lib"
export STEAM_ROOT=~/.steam
export PLATFORM=bin32
export STEAM_RUNTIME=$STEAM_ROOT/$PLATFORM/steam-runtime

export LD_PRELOAD="$(
        printf "%s " ~/.steam/steam/steamapps/common/WormsWMD/lib/libQt5*.so* \
                ~/.steam/steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libdbus-1.so.3 \
                ~/.steam/steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libdbus-1.so.3.5.8 \
                "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4 \
                "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libidn.so.11 \
                "$STEAM_RUNTIME"/lib/x86_64-linux-gnu/libgcrypt.so.11 \
                "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/librtmp.so.0 \
                "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libhogweed.so.4 \
                "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libnettle.so.6 \
                "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libsndfile.so.1 \
                "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libFLAC.so.8
)"
chmod a+x ./Worms\ W.M.Dx64
./Worms\ W.M.Dx64

Hope it helps @ivdok @psmgeelen :)

@lucasmenno

Copy link
Copy Markdown

This works like a charm <3

But i have 2 problems with that. My Controller isn't recognized and i can't use steam overlay (to get game invites).
Is there any way those 2 could work?
In Portal 2 Overlay and Controller works.

@sxiii

sxiii commented Jun 6, 2023

Copy link
Copy Markdown
Author

@lucasmenno I believe that the controller and lack of overlay issues are connected (basically, it's the same issue). So this issue is that some of native linux games don't provide steam overlay, or, basically, they don't really 'link' into steam - they are kinda just separate binaries (this affect not only the worms, but some other games as well). I'm not sure if there's a way around it (may be some; for instance; if you'd figure out a way to add a steam overlay to some game that doesn't have it on Linux, I think this will solve issue for all your games then). Hope this opens up the challenge for you :) P.S. I've asked ChatGPT about this, here is the answer:

If you're experiencing issues with the Steam Overlay not appearing in certain Linux games, there are a few potential solutions you can try:

  1. Enable Steam Overlay: First, ensure that the Steam Overlay is enabled for the game in question. Right-click on the game in your Steam Library, select "Properties," and under the "General" tab, make sure the "Enable the Steam Overlay while in-game" option is checked.
  2. Update Graphics Drivers: Outdated or incompatible graphics drivers can sometimes cause issues with the Steam Overlay. Make sure you have the latest graphics drivers installed for your Linux distribution and graphics card. You can typically find updated drivers through your distribution's package manager or by visiting the official website of your graphics card manufacturer.
  3. Run Steam as a 32-bit Application: Some games may require Steam to run as a 32-bit application, even on 64-bit Linux systems. To do this, open a terminal and navigate to the directory where Steam is installed (usually "~/.steam/steam"). Then, run the following command: STEAM_RUNTIME_PREFER_HOST_LIBRARIES=0 STEAM_RUNTIME=0 ./steam. This command disables the Steam runtime and forces it to use system libraries.
  4. Launch Game with Proton: If you're trying to run a Windows game through Steam Play's Proton compatibility layer, you can try launching the game with a different Proton version. Right-click on the game in your Steam Library, select "Properties," and under the "Compatibility" tab, choose a different Proton version from the dropdown menu. Some games may work better with certain Proton versions.
  5. Check Compatibility Reports: Before purchasing or running a game on Linux, it's helpful to check the community-provided compatibility reports for that specific game on websites like ProtonDB. These reports provide information on how well a game works with Proton or native Linux support, including any known issues with the Steam Overlay.

If none of these solutions resolve the issue, it's possible that the game you're trying to run has specific compatibility or configuration issues on Linux. In such cases, you may want to search for community forums or threads specific to that game to see if others have encountered and resolved similar issues.

@briggz84

Copy link
Copy Markdown

Using the most recent iteration of the Run.sh, I was getting a very brief blank window. Running from terminal I was getting a lot of libGL errors, my solution that worked for me:

If you are receiving MESA-LOADER errors about unable to load driver "/usr/lib/dri/iris_dri.so" or similar, to fix this I had to create a symbolic link even though it was searching the correct paths including "/usr/lib/x86_64-linux-gnu/dri/"

sudo ln -s /usr/lib/x86_64-linux-gnu/dri/iris_dri.so /usr/lib/dri/

I then had to copy a more recent version of the C++ library file libstdc++.so.6.0.30 from /usr/lib/x86_64-linux-gnu, and replace the libstdc++.so.6 with in the WormsWMD/lib folder.

I'm running Linux Mint Cinnamon 21.2 with integrated Intel graphics.

@mhkdepauw

Copy link
Copy Markdown

Using the most recent iteration of the Run.sh, I was getting a very brief blank window. Running from terminal I was getting a lot of libGL errors, my solution that worked for me:

If you are receiving MESA-LOADER errors about unable to load driver "/usr/lib/dri/iris_dri.so" or similar, to fix this I had to create a symbolic link even though it was searching the correct paths including "/usr/lib/x86_64-linux-gnu/dri/"

sudo ln -s /usr/lib/x86_64-linux-gnu/dri/iris_dri.so /usr/lib/dri/

I then had to copy a more recent version of the C++ library file libstdc++.so.6.0.30 from /usr/lib/x86_64-linux-gnu, and replace the libstdc++.so.6 with in the WormsWMD/lib folder.

I'm running Linux Mint Cinnamon 21.2 with integrated Intel graphics.

Replacing the C++ library and the run.sh worked for me on ubuntu 20.04 with amd radeon integrated graphics. Thank you!

@qlyoung

qlyoung commented Jan 29, 2024

Copy link
Copy Markdown

As of latest steam runtime and worms version, this is the working script:

#!/bin/bash

export LC_ALL=C
export LD_LIBRARY_PATH="/usr/lib:/usr/local/lib"
export STEAM_ROOT=~/.steam
export PLATFORM=bin32
export STEAM_RUNTIME=$STEAM_ROOT/$PLATFORM/steam-runtime

export LD_PRELOAD="$(
        printf "%s " ~/.steam/steam/steamapps/common/WormsWMD/lib/libQt5*.so* \
                "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4 \
                "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libidn.so.11 \
                "$STEAM_RUNTIME"/lib/x86_64-linux-gnu/libgcrypt.so.11 \
                "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/librtmp.so.0 \
                "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libhogweed.so.4 \
                "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libnettle.so.6 \
                "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libsndfile.so.1 \
                "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libFLAC.so.8
)"
chmod a+x ./Worms\ W.M.Dx64
./Worms\ W.M.Dx64

It's the same as the previous one, but libdbus no longer needs to be overridden (at least on Arch)

@bazzawill

Copy link
Copy Markdown

So I just picked this up as it was on sale I did notice the .sh file and was like yay native linux game however when it did not launch and with an impatient 6yo I just enabled proton and it just worked including controller.

@KNejad

KNejad commented Apr 14, 2024

Copy link
Copy Markdown

@qlyoung your solution didn't work for me but the solution from @sxiii above still works for me on Arch.

Though I do see some dbus related exceptions in the log:

process 164314: arguments to dbus_connection_unref() were incorrect, assertion "connection->generation == _dbus_current_generation" failed in file ../../dbus/dbus-connection.c line 2794.
This is normally a bug in some application using the D-Bus library.

@robstarmcdonald

Copy link
Copy Markdown

Here's the new version that works for me. Not sure that it's better then the "Proton" version though, as it seems Team17 is not very eager to update the Linux version. But you can test it out :)

#!/bin/bash

export LC_ALL=C
export LD_LIBRARY_PATH="/usr/lib:/usr/local/lib"
export STEAM_ROOT=~/.steam
export PLATFORM=bin32
export STEAM_RUNTIME=$STEAM_ROOT/$PLATFORM/steam-runtime

export LD_PRELOAD="$(
        printf "%s " ~/.steam/steam/steamapps/common/WormsWMD/lib/libQt5*.so* \
                ~/.steam/steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libdbus-1.so.3 \
                ~/.steam/steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libdbus-1.so.3.5.8 \
                "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4 \
                "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libidn.so.11 \
                "$STEAM_RUNTIME"/lib/x86_64-linux-gnu/libgcrypt.so.11 \
                "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/librtmp.so.0 \
                "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libhogweed.so.4 \
                "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libnettle.so.6 \
                "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libsndfile.so.1 \
                "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libFLAC.so.8
)"
chmod a+x ./Worms\ W.M.Dx64
./Worms\ W.M.Dx64

Hope it helps @ivdok @psmgeelen :)

It did not work for me.

@sxiii

sxiii commented May 15, 2024

Copy link
Copy Markdown
Author

I'm guessing this is very OS-dependent (library-dependent), so then we could either use a proton version (simple path) or swap OS/libraries with older ones (if our OS doesn't work/too new; harder path). Feel free to share your additions if you find out which way it works for you. Thank you all for your contributions!

@robstarmcdonald

robstarmcdonald commented May 17, 2024

Copy link
Copy Markdown

I'm guessing this is very OS-dependent (library-dependent), so then we could either use a proton version (simple path) or swap OS/libraries with older ones (if our OS doesn't work/too new; harder path). Feel free to share your additions if you find out which way it works for you. Thank you all for your contributions!

Look here then https://steamcommunity.com/app/327030/discussions/0/4353369676737256686/

@ayorgo

ayorgo commented Jul 12, 2024

Copy link
Copy Markdown

None of the above scripts worked for me as the game complained about other libraries which I tried to add manually to Run.sh until it got to libwavpack.so.1 which was nowhere to be found on my machine. Ended up opting for Proton Experimental layer under the Compatibility tab in the game's settings in Steam Library and it worked like a charm.

@qlyoung

qlyoung commented Jul 12, 2024

Copy link
Copy Markdown

I also kept running into issues on every update and have switched to using Proton, which works well.

@robstarmcdonald

Copy link
Copy Markdown

I also kept running into issues on every update and have switched to using Proton, which works well.

Have you follow the step by steps in here https://steamcommunity.com/app/327030/discussions/0/4353369676737256686/

It's optional for Proton-GE users

@maccyber

maccyber commented Oct 27, 2024

Copy link
Copy Markdown

To resolve the missing dependencies, install the following libraries:

  • For libwavpack.so.1, install the wavpack package.
  • For libbsd.so.0, you'll need the libbsd package.
pacman -S wavpack libbsd

Or choose "Proton Experimental" in "Settings" -> "Properties..." -> "Compatibility"

@Ewoodss

Ewoodss commented Nov 23, 2024

Copy link
Copy Markdown

None of the above scripts worked for me as the game complained about other libraries which I tried to add manually to Run.sh until it got to libwavpack.so.1 which was nowhere to be found on my machine. Ended up opting for Proton Experimental layer under the Compatibility tab in the game's settings in Steam Library and it worked like a charm.

I also had this issue i ended up download libwavpack from my package manager and copying the so files into the lib folder inside WormsWMD, After this i got the same error for liborc and did the same thing again, by installing and copying it.

@Tairetsu

Tairetsu commented Dec 4, 2024

Copy link
Copy Markdown

After manually installing libidn11 all of these scripts posted in this thread will work for me provided I run "run.sh" from the game folder. But none will work if I do it from the Steam client, whether the normal one or the ".sh" option in the launcher...

@Ewoodss

Ewoodss commented Dec 26, 2024

Copy link
Copy Markdown

this run.sh works if the game isn't installed in the default dir. this is for native not flatpak.

#!/bin/bash

export LC_ALL=C
export LD_LIBRARY_PATH="/usr/lib:/usr/local/lib"
export STEAM_ROOT=~/.steam
export PLATFORM=bin32
export STEAM_RUNTIME=$STEAM_ROOT/$PLATFORM/steam-runtime
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )

export LD_PRELOAD="$(
        printf "%s " "$SCRIPT_DIR"/lib/libQt5*.so* \
                ~/.steam/steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libdbus-1.so.3 \
                ~/.steam/steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libdbus-1.so.3.5.8 \
                "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4 \
                "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libidn.so.11 \
                "$STEAM_RUNTIME"/lib/x86_64-linux-gnu/libgcrypt.so.11 \
                "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/librtmp.so.0 \
                "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libhogweed.so.4 \
                "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libnettle.so.6 \
                "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libsndfile.so.1 \
                "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libFLAC.so.8
)"
chmod a+x ./Worms\ W.M.Dx64
./Worms\ W.M.Dx64

@robstarmcdonald

Copy link
Copy Markdown

this run.sh works if the game isn't installed in the default dir. this is for native not flatpak.

#!/bin/bash

export LC_ALL=C
export LD_LIBRARY_PATH="/usr/lib:/usr/local/lib"
export STEAM_ROOT=~/.steam
export PLATFORM=bin32
export STEAM_RUNTIME=$STEAM_ROOT/$PLATFORM/steam-runtime
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )

export LD_PRELOAD="$(
        printf "%s " "$SCRIPT_DIR"/lib/libQt5*.so* \
                ~/.steam/steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libdbus-1.so.3 \
                ~/.steam/steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libdbus-1.so.3.5.8 \
                "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4 \
                "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libidn.so.11 \
                "$STEAM_RUNTIME"/lib/x86_64-linux-gnu/libgcrypt.so.11 \
                "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/librtmp.so.0 \
                "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libhogweed.so.4 \
                "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libnettle.so.6 \
                "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libsndfile.so.1 \
                "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libFLAC.so.8
)"
chmod a+x ./Worms\ W.M.Dx64
./Worms\ W.M.Dx64

Didn't work on Ubuntu, unless if there is a way for it to work.
I've tried DEB version of Steam, it didn't work 😢.

@OkeDok1e

OkeDok1e commented Jul 9, 2025

Copy link
Copy Markdown

this run.sh works if the game isn't installed in the default dir. this is for native not flatpak.

#!/bin/bash

export LC_ALL=C
export LD_LIBRARY_PATH="/usr/lib:/usr/local/lib"
export STEAM_ROOT=~/.steam
export PLATFORM=bin32
export STEAM_RUNTIME=$STEAM_ROOT/$PLATFORM/steam-runtime
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )

export LD_PRELOAD="$(
        printf "%s " "$SCRIPT_DIR"/lib/libQt5*.so* \
                ~/.steam/steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libdbus-1.so.3 \
                ~/.steam/steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libdbus-1.so.3.5.8 \
                "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4 \
                "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libidn.so.11 \
                "$STEAM_RUNTIME"/lib/x86_64-linux-gnu/libgcrypt.so.11 \
                "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/librtmp.so.0 \
                "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libhogweed.so.4 \
                "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libnettle.so.6 \
                "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libsndfile.so.1 \
                "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libFLAC.so.8
)"
chmod a+x ./Worms\ W.M.Dx64
./Worms\ W.M.Dx64

When I try this I still get
ERROR: ld.so: object '/home/USERNAME/.local/share/Steam/steamapps/common/WormsWMD/lib/libQt5*.so*' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored. chmod: cannot access './Worms W.M.Dx64': No such file or directory ./Run.sh: line 24: ./Worms W.M.Dx64: No such file or directory my game directory is
/home/USERNAME/.local/share/Steam/steamapps/common/WormsWMD

@mk1337

mk1337 commented Nov 17, 2025

Copy link
Copy Markdown

With some help from my friend claude code, i was able to run the game on Mint 22.2.
if that helps anyone, here is the guide it prepared

Worms W.M.D Linux Fix Guide

This guide fixes the game on modern Linux distributions (tested on Linux Mint 22.2, might work on Ubuntu 22.04+, and other Debian-based distros).

The Problem

Worms W.M.D's native Linux version ships with outdated libraries that conflict with modern Linux systems, causing errors like:

  • GLIBCXX_3.4.30 not found
  • libidn.so.11: cannot open shared object file
  • Game crashes on startup with dbus errors

The Solution

Step 1: Navigate to Game Directory

cd ~/.steam/debian-installation/steamapps/common/WormsWMD

Or if using the default Steam path:

cd ~/.steam/steam/steamapps/common/WormsWMD

Step 2: Backup and Remove Old libstdc++

The bundled libstdc++.so.6 is too old. Rename it so the game uses your system's newer version:

mv lib/libstdc++.so.6 lib/libstdc++.so.6.OLD

Step 3: Update Run.sh Script

Replace the contents of Run.sh with the following:

#!/bin/bash
export LC_ALL=C
export LD_LIBRARY_PATH="/usr/lib:/usr/local/lib"
export STEAM_ROOT=~/.steam/debian-installation
export PLATFORM=ubuntu12_32
export STEAM_RUNTIME=$STEAM_ROOT/$PLATFORM/steam-runtime
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )

export LD_PRELOAD="$(
	printf "%s " "$SCRIPT_DIR"/lib/libQt5*.so* \
		"$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4 \
		"$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libidn.so.11 \
		"$STEAM_RUNTIME"/lib/x86_64-linux-gnu/libgcrypt.so.11 \
		"$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/librtmp.so.0 \
		"$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libhogweed.so.4 \
		"$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libnettle.so.6 \
		"$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libsndfile.so.1 \
		"$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libFLAC.so.8
)"
chmod a+x ./Worms\ W.M.Dx64
./Worms\ W.M.Dx64

Note: If your Steam is installed in the default location (~/.steam/steam), change line 4 to:

export STEAM_ROOT=~/.steam/steam

Step 4: Make Run.sh Executable

chmod +x Run.sh

Step 5: Configure Steam Launch Options

  1. Open Steam Library
  2. Right-click Worms W.M.D
  3. Select Properties
  4. In the Launch Options field, enter:
    ./Run.sh %command%
    

Step 6: Launch the Game

Click Play in Steam. The game should now launch successfully!

Alternative: Launch from Terminal

You can also launch the game directly from terminal:

cd ~/.steam/debian-installation/steamapps/common/WormsWMD
./Run.sh

Troubleshooting

Game still won't launch from Steam

  • Verify the Steam installation path in Run.sh (line 4) matches your system
  • Check that Run.sh is executable: chmod +x Run.sh
  • Try launch option without %command%: just ./Run.sh

Reverting Changes

If something goes wrong, restore the original libstdc++:

cd ~/.steam/debian-installation/steamapps/common/WormsWMD
mv lib/libstdc++.so.6.OLD lib/libstdc++.so.6

Steam Path Variations

Different distros may have Steam installed in different locations:

  • Debian/Ubuntu/Mint: ~/.steam/debian-installation/
  • Arch/Manjaro: ~/.steam/steam/
  • Flatpak Steam: ~/.var/app/com.valvesoftware.Steam/.steam/steam/

Adjust the STEAM_ROOT variable in Run.sh accordingly.

Why This Works

  • Removed old libstdc++: The bundled library lacks GLIBCXX_3.4.30, causing crashes. Your system's version is newer and compatible.
  • Removed dbus preloads: Old dbus libraries from Steam Runtime caused conflicts. System dbus works better.
  • Preloaded Steam Runtime libraries: The game needs specific versions of Qt5, crypto, and audio libraries that Steam provides.

Credits

Based on solutions from:

Tested On

  • ✅ Linux Mint 22.2 Cinnamon

Feel free to improve!

@mrsimpson

mrsimpson commented Dec 21, 2025

Copy link
Copy Markdown

For Ubuntu 24 with Steam installed as snap to launch from the shell

#!/bin/bash
# Worms WMD launcher script for Linux

# Use C locale for compatibility
export LC_ALL=C

# Disable D-Bus to avoid assertion errors with bundled Qt5DBus library
# This library has ABI incompatibility with newer system D-Bus versions
export QT_NO_DBUS=1
export DBUS_SESSION_BUS_ADDRESS="disabled:"

# Use system Qt5 platform plugins (xcb backend)
export QT_QPA_PLATFORM_PLUGIN_PATH="/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms"

# Get the directory where this script is located
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"

# Prioritize bundled libraries over system libraries
export LD_LIBRARY_PATH="$SCRIPT_DIR/lib:$LD_LIBRARY_PATH"

# Make the binary executable and run it
chmod a+x "$SCRIPT_DIR/Worms W.M.Dx64"
"$SCRIPT_DIR/Worms W.M.Dx64"

@initdream

Copy link
Copy Markdown

My OS: Manjaro 26.0.3 Anh-Linh

The game was complaining about libtheoraenc and libtheoradec so I created a softlink to my system libraries:

cd /usr/lib
sudo ln -s libtheoraenc.so.2.2.1 libtheoraenc.so.1
sudo ln -s libtheoradec.so.2.1.1 libtheoradec.so.1

Then it was complaining about some old libraries, so I just removed them, they were in the WormsWMD/lib folder:

libstdc++.so.6
libhogweed.so.4
libnettle.so.6

I found this script online and modified a bit, it should be named as myrun.sh and be given permission to be run as an executable:

#!/bin/bash
export LC_ALL=C 
export MESA_GL_VERSION_OVERRIDE=2.0COMPAT 
export MESA_GLSL_VERSION_OVERRIDE=410

_libraries=(
	lib/libQt5*.so.5
	/usr/lib/libwavpack.so.1
	"$STEAM_RUNTIME"/amd64/lib/x86_64-linux-gnu/libdbus-1.so.3
    "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4
    "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libidn.so.11
    "$STEAM_RUNTIME"/lib/x86_64-linux-gnu/libgcrypt.so.11
    "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/librtmp.so.0
)

export LD_PRELOAD="${_libraries[@]}"

exec "$@" > ~/worms-stdout.log 2> ~/worms-stderr.log

The exports on top, fix a black screen problem.

Then you need to just set the launch options as:

./myrun.sh %command%

Hope this helps someone.

@Joritt

Joritt commented Apr 10, 2026

Copy link
Copy Markdown

Could not get it to work on arch. Easy fix:

The Fix: Use Proton instead of the Native Linux Port

The most stable and efficient way to play Worms W.M.D. on a modern Linux setup is to force Steam to use the Windows version through the Proton compatibility layer. On modern hardware (like Ryzen 9000-series CPUs or recent Radeon GPUs), the performance overhead is negligible, and it completely bypasses the library conflict issues.

Steps to Apply:

  1. Right-click Worms W.M.D. in your Steam Library.
  2. Select Properties.
  3. Go to the Compatibility tab.
  4. Check the box: "Force the use of a specific Steam Play compatibility tool."
  5. Select Proton Experimental or Proton 9.0+.
  6. Steam will download a small update (the Windows .exe and related files).
  7. Launch the game.

Technical Note:
The native Linux binary (Worms W.M.Dx64) is hardcoded to look for specific library versions (e.g., libgnutls.so.30) that conflict with the system's libcurl. Proton provides its own self-contained environment, which is much more reliable for this specific title than trying to manually patch the game's /lib/ folder on a rolling-release distro.

@cgiAlexis

cgiAlexis commented May 9, 2026

Copy link
Copy Markdown

Looks like the issue in the script is actually related to Valve's work on Steam Runtime and Linux x86_64 for Steam. They've restructured the files in the root Steam folder so that the ones we were relying on have moved around. We just need to find where they live and update the script.

It's also notable that Valve have started adding distrobox to the SteamOS image, this means a onetime WormsWMD image may be a solution if we can craft that.

In the meantime it's worth noting that ubuntu12_32 and ubuntu12_64 are basically stripped out now and the contents are in steamrt64. However it appears that steamrt64 may be dynamicaly linked in the style of Fedora UniversalBlue where image updates are downloaded and then the Steam client creates links in a temporary directory.

Results of 2026 Steam root scan

ls ~/.steam/steam -1
appcache
bin
bootstrap.tar.xz
clientui
compatibilitytools.d
config
controller_base
d3ddriverquery64.dxvk-cache
depotcache
fossilize_engine_filters.json
friends
GameOverlayRenderer64.dll
graphics
installscriptevalutor_log.txt
legacycompat
linux32
linux64
local.vdf
logs
music
package
public
resource
standalone_installscript_progress_228980.vdf
steam
steamapps
steamclient64.dll
steamclient.dll
steam_dev.cfg
steam_msg.sh
steamrt32
steamrt64
steam.sh
steam_subscriber_agreement.txt
steamui
tenfoot
ThirdPartyLegalNotices-Chromium.html
ThirdPartyLegalNotices.css
ThirdPartyLegalNotices.doc
ThirdPartyLegalNotices.html
ubuntu12_32
ubuntu12_64
update_hosts_cached.vdf
userdata

Result of new runtime directory scan

ls ~/.steam/steam/steamrt64/steam-runtime-steamrt/var/tmp-M1WLH3/ -1
bin
etc
lib
lib32
lib64
overrides
sbin
usr

Current work-in-progress Run.sh

#!/bin/bash

SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )

# Make a script that loooks in the steamrt64 directory structure to find the "tmp-" directory and navigate in there

export LC_ALL=C
export LD_LIBRARY_PATH="$SCRIPT_DIR/lib:~/.steam/steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/:~/.steam/steam/steamrt64/steam-runtime-steamrt/var/tmp-M1WLH3/lib/x86_64-linux-gnu/:/usr/lib:/usr/local/lib"
export LD_PRELOAD="$(
	printf "%s " ~/.steam/steam/steamrt64/steam-runtime-steamrt/var/tmp-M1WLH3/lib/x86_64-linux-gnu/libcurl-gnutls.so.4 \
		~/.steam/steam/steamrt64/steam-runtime-steamrt/var/tmp-M1WLH3/lib/x86_64-linux-gnu/libssh2.so.1 \
		~/.steam/steam/steamrt64/steam-runtime-steamrt/var/tmp-M1WLH3/lib/x86_64-linux-gnu/libbz2.so.1.0 \
		~/.local/share/Steam/ubuntu12_32/steam-runtime.old/usr/lib/x86_64-linux-gnu/libidn.so.11
)"
chmod a+x ./Worms\ W.M.Dx64
./Worms\ W.M.Dx64

Remaining error is; ./Worms W.M.Dx64: symbol lookup error: /lib64/libsndfile.so.1: undefined symbol: lame_encode_buffer_interleaved_int - Bazzite 44

@initdream

Copy link
Copy Markdown

@cgiAlexis thanks for the heads up, the fix for your problem is to point the libsndfile.so.1 to your tmp folder, instead of using your OS' library.

~/.local/share/Steam/ubuntu12_32/steam-runtime.old/usr/lib/x86_64-linux-gnu/libsndfile.so.1 or
~/.steam/steam/steamrt64/steam-runtime-steamrt/var/tmp-M1WLH3/lib/x86_64-linux-gnu/libsndfile.so.1

This current version of the script works perfectly for me, I've added two DBUS exports, because it was crashing for me, so be aware that there might be some DBUS bug (the solution is using the old libraries again).

#!/bin/bash
export LC_ALL=C 
export MESA_GL_VERSION_OVERRIDE=2.0COMPAT 
export MESA_GLSL_VERSION_OVERRIDE=410
export DBUS_FATAL_WARNINGS=0
export QT_NO_DBUS=1

SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )

export LD_LIBRARY_PATH="$SCRIPT_DIR/lib:~/.steam/steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/:~/.steam/steam/steamrt64/steam-runtime-steamrt/var/tmp-5OHSH3/lib/x86_64-linux-gnu/:/usr/lib:/usr/local/lib"
export LD_PRELOAD="$(
	printf "%s " ~/.steam/steam/steamrt64/steam-runtime-steamrt/var/tmp-5OHSH3/lib/x86_64-linux-gnu/libcurl-gnutls.so.4 \
		~/.steam/steam/steamrt64/steam-runtime-steamrt/var/tmp-5OHSH3/lib/x86_64-linux-gnu/libssh2.so.1 \
		~/.steam/steam/steamrt64/steam-runtime-steamrt/var/tmp-5OHSH3/lib/x86_64-linux-gnu/libbz2.so.1.0 \
		~/.local/share/Steam/ubuntu12_32/steam-runtime.old/usr/lib/x86_64-linux-gnu/libidn.so.11 \
                ~/.steam/steam/steamrt64/steam-runtime-steamrt/var/tmp-5OHSH3/usr/lib/x86_64-linux-gnu/libgnutls.so.30 \
                ~/.steam/steam/steamrt64/steam-runtime-steamrt/var/tmp-5OHSH3/usr/lib/x86_64-linux-gnu/libunistring.so.2 \
                ~/.steam/steam/steamrt64/steam-runtime-steamrt/var/tmp-5OHSH3/usr/lib/x86_64-linux-gnu/libbrotlidec.so.1.0.9 \
                ~/.steam/steam/steamrt64/steam-runtime-steamrt/var/tmp-5OHSH3/usr/lib/x86_64-linux-gnu/libhogweed.so.6.4 \
                ~/.steam/steam/steamrt64/steam-runtime-steamrt/var/tmp-5OHSH3/usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1 \
		~/.steam/steam/steamrt64/steam-runtime-steamrt/var/tmp-5OHSH3/usr/lib/x86_64-linux-gnu/libnettle.so.8.4 \
                /usr/lib/libwavpack.so.1  
)"

exec "$@" > ~/worms-stdout.log 2> ~/worms-stderr.log

Just make sure to change the path your "tmp-XXXXXX" folder, it changes for everyone.

We might need to cook a library folder using the old libraries provided by Steam, otherwise this will break again with more Steam changes.

@Fo0og

Fo0og commented May 10, 2026

Copy link
Copy Markdown

I have this script:

#!/bin/bash
export LC_ALL=C
export MESA_GL_VERSION_OVERRIDE=2.0COMPAT
export MESA_GLSL_VERSION_OVERRIDE=410
export DBUS_FATAL_WARNINGS=0
export QT_NO_DBUS=1
export STEAM_RUNTIME=~/.steam/steam/steamrt64/pv-runtime/steam-runtime-steamrt/var/tmp-H76MO3/

SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )

export LD_LIBRARY_PATH="$SCRIPT_DIR/lib:~/.steam/steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/:$STEAM_RUNTIME:/usr/lib:/usr/local/lib"
export LD_PRELOAD="$(
printf "%s " "$STEAM_RUNTIME"/lib/x86_64-linux-gnu/libcurl-gnutls.so.4
"$STEAM_RUNTIME"/lib/x86_64-linux-gnu/libssh2.so.1
"$STEAM_RUNTIME"/lib/x86_64-linux-gnu/libbz2.so.1.0
~/.local/share/Steam/ubuntu12_32/steam-runtime.old/usr/lib/x86_64-linux-gnu/libidn.so.11
"$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libgnutls.so.30
"$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libunistring.so.2
"$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libbrotlidec.so.1.0.9
"$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libhogweed.so.6.4
"$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1
"$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libnettle.so.8.4
"$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libFLAC.so.8
/usr/lib64/libwavpack.so.1
)"

exec "$@" > ~/worms-stdout.log 2> ~/worms-stderr.log

and it seems to work, but the executable is stopped by SIGSEGV with no other info
Job 1, './Worms\ W.M.Dx64' terminated by signal SIGSEGV (Address boundary error)
is all I get.

Also, I am on Fedora 43.

edit: I gave up. Switching to the windows version under proton 9.0-4 works

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment