Linux runs the Windows version of the client via Proton, a compatibility layer, and a launch script starts it and connects it to Bezgelor. The installer script sets up everything the client needs. You need your own copy of the WildStar client, build 16042; this project does not distribute the client or any game files.
Steps
-
Have your WildStar client files. You need the folder that holds
Client64andPatch. On Windows it isC:\Program Files (x86)\NCSOFT\WildStar. Copy it to the Linux computer if it is not there already. -
Open a terminal.
-
Run the installer. Copy the command from the download page (it has a copy button) into the terminal and press Enter. It has this form:
curl -fsSL https://bezgelor.com/downloads/bezgelor-linux.sh | bash -s -- installTo read the script before running it, save it and run the saved file. The download page shows its SHA-256:
curl -fsSLo bezgelor-linux.sh https://bezgelor.com/downloads/bezgelor-linux.sh less bezgelor-linux.sh bash bezgelor-linux.sh installThe installer asks for the folder of your client and, once, for the administrator password. It prints one line per step and shows progress during the Proton download (about 700 MB). It can be run again at any time. Options:
Option Meaning --client-dir DIRThe folder that holds Client64; asked for when omitted.--server HOSTThe Bezgelor server. The script from the portal already carries the portal's address. --yesDo not ask for confirmation. The commands are still printed. --dry-runPrint every command that would run and change nothing. --no-packagesPrint the package commands but do not run them. --gpu intel|amd|nvidiaChoose the 32-bit graphics driver when the card is not detected. -
Start the game. Open Bezgelor WildStar from the application menu, or run:
bezgelor-wildstar playThe client asks for its display language and shows the WildStar user agreement. Read and accept it yourself.
-
Log in with your Bezgelor account. Register first if you have no account.
-
If anything goes wrong, run:
bezgelor-wildstar doctorEvery line is
PASS,WARNorFAIL, and a line that is notPASSsays how to fix it. See Troubleshooting.
If bezgelor-wildstar is not found, ~/.local/bin is not in your PATH. The installer prints the line that
adds it. The installer is also available in the repository as tools/linux/bezgelor-linux.sh.
To remove what the installer created, run bezgelor-wildstar uninstall. It asks before it removes the Wine
prefix and never removes the client folder.
Without the installer
The installer does the following. Each part can be done by hand.
1. The 32-bit system libraries and the 32-bit Vulkan driver for your graphics card. The game is a 32-bit program (see Why 32-bit libraries).
| Distribution | Commands |
|---|---|
| Arch, Omarchy, Manjaro, EndeavourOS |
Enable [multilib] in /etc/pacman.conf, then sudo pacman -S --needed lib32-glibc lib32-mesa lib32-vulkan-icd-loader vulkan-icd-loader and, per card, lib32-vulkan-intel vulkan-intel (Intel), lib32-vulkan-radeon vulkan-radeon (AMD) or lib32-nvidia-utils (NVIDIA, matching the installed driver) |
| Debian, Ubuntu, Linux Mint, Pop!_OS |
sudo dpkg --add-architecture i386 && sudo apt-get update && sudo apt-get install libc6:i386 libvulkan1:i386 mesa-vulkan-drivers:i386. For NVIDIA add the 32-bit driver library that matches the installed driver (nvidia-driver-libs-i386 on Debian, libnvidia-gl-<version>:i386 on Ubuntu). |
| Fedora, Nobara |
sudo dnf install glibc.i686 vulkan-loader.i686 mesa-vulkan-drivers.i686. For NVIDIA add xorg-x11-drv-nvidia-libs.i686 from RPM Fusion. |
| openSUSE |
sudo zypper install glibc-32bit libvulkan1-32bit and libvulkan_intel-32bit (Intel) or libvulkan_radeon-32bit (AMD) |
| SteamOS | Nothing: the 32-bit libraries are included. See the Steam Deck guide. |
| Other | The 32-bit ("i386", "i686", "multilib") builds of glibc, the Vulkan loader and the Vulkan driver for your card. |
2. umu-launcher. Arch: sudo pacman -S umu-launcher. Fedora: sudo dnf install umu-launcher. Elsewhere,
download the zipapp from the
umu-launcher releases, unpack it and put
umu-run in ~/.local/bin. umu downloads Proton-GE and the Steam Linux Runtime by itself on first use.
3. The prefix, the install folder link and the starter. With <client> the folder that holds Client64
(the commands use the server bezgelor.com; to play on another server, put its address in its place), from a
checkout of this repository:
export WINEPREFIX=$HOME/.local/share/bezgelor/prefix GAMEID=umu-default PROTONPATH=GE-Proton
umu-run wineboot -u
mkdir -p "$WINEPREFIX/drive_c/Program Files (x86)/NCSOFT"
ln -s <client> "$WINEPREFIX/drive_c/Program Files (x86)/NCSOFT/WildStar"
python3 -I tools/linux/mkstart.py ~/wildstar-start.exe \
'C:\Program Files (x86)\NCSOFT\WildStar\Client64\WildStar64.exe' \
'/auth bezgelor.com /authNc bezgelor.com /lang en /patcher bezgelor.com /SettingsKey WildStar /realmDataCenterId 9'
cd <client>/Client64 && umu-run ~/wildstar-start.exe
tools/linux/wildstar-proton.sh bezgelor.com does the link, the starter and the start in one command, with
WILDSTAR_CLIENT_DIR=<client> set. It is the same code as bezgelor-wildstar play.
Steam, Lutris or Heroic. Add wildstar-start.exe as a non-Steam game, force a Proton-GE compatibility
tool, and use a prefix with the install folder link from step 3.
Troubleshooting
Run bezgelor-wildstar doctor first. Each entry below names the line that detects it.
The window closes right after the user agreement
Detected by: FAIL 32-bit loader, FAIL Vulkan loader (32) or FAIL Vulkan driver (32) ....
The 32-bit libraries or the 32-bit Vulkan driver are missing. NcPlatform.log in the client folder ends with
Fatal error (6): Logging threads, and the Proton log (PROTON_LOG=1, written to
~/.local/share/bezgelor/logs/) contains DxvkInstance::createInstance: Failed to create Vulkan instance.
Fix: install the packages in Without the installer, step 1; the Fix: line of the
doctor shows the command for your distribution. Then run bezgelor-wildstar doctor again.
The launcher copies 14 GB, or a launcher window with a Play button and a black area opens
Detected by: FAIL Install folder link.
The client was not found at C:\Program Files (x86)\NCSOFT\WildStar inside the prefix, so the 32-bit launcher
started and copies the client. Stop it. If the doctor reports a real folder in place of the link, remove it
(rm -rf on the path the doctor prints) and run bezgelor-wildstar install again. See
Why the install folder is a link.
A black window
Detected by: FAIL Vulkan driver (32) ..., WARN vulkaninfo, WARN Session.
- A black window with a launcher layout is the entry above.
-
A black game window: confirm that
vulkaninfo --summarylists your graphics card and not onlyllvmpipe(a software renderer). Installvulkan-toolsto getvulkaninfo. -
On Wayland the client runs under XWayland. If the window stays black or does not take input, start it with
PROTON_ENABLE_WAYLAND=0 bezgelor-wildstar play.
The client closes with an access violation, or the log names another server
Detected by: WARN Client crash reports, WARN NcPlatform.log.
The doctor prints the newest file in <client>/Errors and its first line. An access violation in
StsConnLib64.MT.dll after Auth: Using NCPlatform address 0.0.0.0:6600 means the client was started
without the starter program, so it used the original service's addresses. Start it with bezgelor-wildstar play
or the menu entry, not by running WildStar64.exe directly. See
Why the starter program.
The server cannot be reached
Detected by: FAIL Server Auth port 6600, FAIL Server Realm port 23115, FAIL Server World port 24000.
The line names the port that did not answer within 3 seconds. Check the server address in
~/.config/bezgelor/linux.conf (SERVER=), your network connection, and that no firewall or router blocks
the port. Server Portal port 4000 concerns the website only; the game does not use it. Running
bezgelor-wildstar install --server HOST again changes the address.
No sound
Not checked by the doctor. The client plays sound through the PulseAudio interface. On PipeWire this is the
pipewire-pulse service (pactl info shows Server Name: PulseAudio (on PipeWire ...)). If other programs
play sound and the game does not, set the output device in the desktop's sound settings before the game starts
and run the game again. A report with the output of bezgelor-wildstar doctor --report and the name of the
sound server helps.
The wrong graphics card is used
Detected by: PASS Graphics card ... shows the cards found; WARN vulkaninfo lists the Vulkan devices.
On a computer with an integrated and a dedicated card, the system picks one. The client log may name a
different card than yours: DXVK reports a well-known card to the game. Use vulkaninfo --summary to see the
real devices. To use the dedicated card, start the game with DRI_PRIME=1 bezgelor-wildstar play (Mesa) or
__NV_PRIME_RENDER_OFFLOAD=1 __VK_LAYER_NV_optimus=NVIDIA_only bezgelor-wildstar play (NVIDIA). These
variables are standard for the drivers; they have not been tested with the client.
The first start waits a long time
umu downloads Proton-GE and the Steam Linux Runtime (about 700 MB into ~/.local/share/umu and
~/.local/share/Steam/compatibilitytools.d). The installer does this while it shows progress. It needs network
access. Detected by: WARN GE-Proton.
Not enough disk space
Detected by: WARN or FAIL Free disk space. Proton and the prefix need about 5 GB; the client folder is
about 30 GB and stays where it is.
Status and testing
| Platform | Linux |
| Status | In testing: tested on Arch Linux with Intel graphics |
| Installer handles | Arch family (Arch, Omarchy, Manjaro, EndeavourOS, CachyOS), Debian family (Debian, Ubuntu, Linux Mint, Pop!_OS), Fedora family (Fedora, Nobara), openSUSE, SteamOS. Any other distribution: the installer prints what to install. |
| Graphics | Intel tested. AMD and NVIDIA are expected to work and have not been tested. |
| Session | Wayland with XWayland tested. X11 untested. |
The package commands for Debian, Fedora and openSUSE follow each distribution's package names and have not been run on those systems.
Help us test. Linux is a varied platform. Reports from other distributions, graphics cards and drivers are
what move it from "In testing" to "Supported". Please report whether the installer and the game worked, from the
game with the Field Kit's Report a problem or /c bug, or as a
GitHub issue. Include:
- the distribution and version,
- the graphics card and driver,
-
the output of
bezgelor-wildstar doctor --report, which removes your home folder, user name, computer name and every IP address except the server's.
How it works
Why the starter program
WildStar64.exe reads the first word of its command line as /auth (the retail launcher starts it with no
program name in front). With the program name in front, which is what start, cmd and Wine's start all
produce, it starts the 32-bit launcher instead, and the launcher's own start of the game uses the original
service's addresses. That start fails a second after Auth: Using NCPlatform address 0.0.0.0:6600 with an
access violation in StsConnLib64.MT.dll (in Errors/WildStar64.*.txt), because the original service's name
no longer resolves. The installer therefore writes a small Windows program, wildstar-start.exe
(tools/linux/mkstart.py, assembled by hand, no compiler needed), which calls CreateProcess with the command
line exactly as given:
WildStar64.exe /auth bezgelor.com /authNc bezgelor.com /lang en /patcher bezgelor.com /SettingsKey WildStar /realmDataCenterId 9
This is the command line of the Windows launcher file. bezgelor-wildstar play writes the starter again at
each start, so a changed server address takes effect.
Why the install folder is a link
The client expects to live in C:\Program Files (x86)\NCSOFT\WildStar. WildStar64.exe is a thin starter: if
the client is not found there, it starts the 32-bit launcher (Wildstar.exe), which copies the whole client
(about 14 GB) into that folder and shows a news page that talks to the original service's servers. Inside the
prefix, drive_c/Program Files (x86)/NCSOFT/WildStar is therefore a symbolic link to your client folder, so
nothing is copied and the client files stay where they are.
Why 32-bit libraries
The first window is the 64-bit WildStar64.exe, but the game (Wildstar.exe) is a 32-bit program. Proton runs
it in a container (pressure-vessel) that imports the host's 32-bit Vulkan driver. Without a 32-bit loader
(/lib/ld-linux.so.2) the container cannot run its 32-bit helpers (W: Cannot determine ld.so for i386-linux-gnu), DXVK finds no Vulkan device, and the game stops after the user agreement.
The one-line command
curl ... | bash -s -- install feeds the script to bash on standard input. The script consists of function
definitions with a single call on its last line, so a download that breaks off part-way runs nothing. Its
questions are read from the terminal (/dev/tty), not from the pipe, and the programs it starts get no
standard input. A script that arrives through a pipe has no file to copy, so it downloads the launcher
(bezgelor-wildstar) from the address it was served from, which the portal writes into it, and checks that
the download is a complete copy of the same version before installing it.
Files
| Path | Content |
|---|---|
~/.local/bin/bezgelor-wildstar |
The installed copy of the script (play, doctor, uninstall). |
~/.local/share/applications/bezgelor-wildstar.desktop |
The application menu entry. |
~/.config/bezgelor/linux.conf |
SERVER, CLIENT_DIR and PREFIX. |
~/.local/share/bezgelor/prefix |
The Wine prefix, with the link to the client folder. |
~/.local/share/bezgelor/wildstar-start.exe |
The starter program. |
~/.local/share/bezgelor/logs/ |
The launcher log and, with PROTON_LOG=1, the Proton log. |
Environment variables: DXVK_HUD=fps,devinfo shows the frame rate; PROTONPATH selects another Proton;
UMU_RUN selects another umu-run; WILDSTAR_CLIENT_DIR, WILDSTAR_PREFIX and BEZGELOR_SERVER override the
configuration for one run.
Testing without a screen
On a headless computer the client can run in a virtual X server. With the software Vulkan driver
(vulkan-swrast), the login dialog renders:
Xvfb :77 -screen 0 1280x800x24 &
DISPLAY=:77 PROTON_ENABLE_WAYLAND=0 VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/lvp_icd.json bezgelor-wildstar play
Tests of the installer
tools/linux/test/run-tests.sh tests the distribution detection, the graphics card to package mapping, the
configuration file, the doctor output and the installer's dry run for each distribution, in a temporary home
folder. For the Steam Deck see the Steam Deck guide; for a Mac see macos.md.