This is a general guide for installing the official RuneScape NXT client on a Linux operating system. It currently expects BASH and a desktop environment compliant with the XDG Desktop Entry specification (most mainstream Linux distributions).

This guide will not cater to every set-up possible, but will hopefully help as a base for adaptation to other set-ups. Most of these notes are currently taken and adapted from a personal wiki page[1], in hopes of it being useful to others and without warranty or guarantee, so use at your own risk.

There is an unofficial Flatpak for the RuneScape client on Flathub.

This can be used for easy installation on Linux distributions with access to Flatpaks.

You will need to add the Flathub repository in order to download the RuneScape client.

If you wish to install RuneScape natively without Flathub, skip this section.

The website above provides quick-setup instructions for popular Linux distributions.

The process typically involves installing flatpak and then adding the Flathub repository.

Once you've installed flatpak and added the Flathub repo, you can install the RuneScape Flatpak.

You can click the Install button provided on the above website, or you can use the following command:

flatpak install 'flathub' 'com.jagex.RuneScape'

Environment variables [ edit | edit source ]

The RuneScape client from Flatpak can be executed from command-line with environment variables.

You can use multiple --env= flags for each environment variable you want.

flags for each environment variable you want. The following syntax for this is shown below:

flatpak run --env='PULSE_LATENCY_MSEC=100' --env='vblank_mode=0' --env='MESA_GL_VERSION_OVERRIDE=4.5FC' 'com.jagex.RuneScape'

There is an unofficial Snap for the RuneScape client on Snapcraft.

This can be used for easy installation on Linux distributions with access to Snaps.

If you wish to install RuneScape natively, skip this section.

Once you've followed the above snapd guide to allow your system to install and use Snaps, you can visit the above link to install the RuneScape Snap, or use the following command:

sudo snap install 'runescape'

Environment variables [ edit | edit source ]

The snap will inherit environmental variables, including environment variables set via Bash.

For example, to reduce the Pulseaudio latency export PULSE_LATENCY_MSEC = '100' snap run rslauncher.rs3

Exports can be made permament by placing the equivilent Bash expression into the file ~/snap/runescape/current/rs3-user-config - the snap will read this file prior to execution for RS3 whether invoked by CLI or GUI, allowing you to override any environmental variables for the snap alone each launch. For example, to clear any existing data in the file and set the Pulseaudio latency to be used in all subsequent client executions: echo "export PULSE_LATENCY_MSEC='100'" > ~/snap/runescape/current/rs3-user-config

Jagex provides an official Debian-packaged installer ( .deb ) for the RuneScape client.

) for the RuneScape client. This can be installed as-is on Debian and Debian-based distributions such as Ubuntu.

You can proceed one of a few ways.

You can copy and paste the text Jagex provides as-is to install the package.

You can run the commands Jagex provides one-by-one.

You can run a different syntax of commands.

All provided methods accomplish the same thing.

Open a Terminal window and copy, paste all of the text in the following text block as-is, and press Enter.

sudo -s -- << EOF wget -O - https://content.runescape.com/downloads/ubuntu/runescape.gpg.key | apt-key add - mkdir -p /etc/apt/sources.list.d echo "deb https://content.runescape.com/downloads/ubuntu trusty non-free" > /etc/apt/sources.list.d/runescape.list apt-get update apt-get install -y runescape-launcher EOF

Individual commands [ edit | edit source ]

Same commands from the text block above, only with explanation and individually presented.

First, we enter a root shell:

sudo -s

Second, we add the Jagex-provided GPG key to ensure the package manager can validate the packages from the repo:

wget -O - https://content.runescape.com/downloads/ubuntu/runescape.gpg.key | apt-key add -

Third, we create a directory to store repo data for additional repos:

mkdir -p /etc/apt/sources.list.d

Fourth, we add the location of the RuneScape repo to a repo file in the above directory

echo "deb https://content.runescape.com/downloads/ubuntu trusty non-free" > /etc/apt/sources.list.d/runescape.list

Fifth, we tell the package manager to refresh its software sources

apt-get update

And finally, we install the RuneScape client:

apt-get install -y runescape-launcher

This is a slightly different method to the official instructions but may be a cleaner implementation of it.

Uses the same GPG key source and repo location as the official instructions

Reloads software sources and installs the runescape-launcher at the end

wget -O '/tmp/runescape-gpg.key' 'https://content.runescape.com/downloads/ubuntu/runescape.gpg.key' && sudo apt-key add '/tmp/runescape-gpg.key' && echo 'deb https://content.runescape.com/downloads/ubuntu trusty non-free' | sudo tee '/etc/apt/sources.list.d/runescape.list' > '/dev/null' && cat '/etc/apt/sources.list.d/runescape.list' && rm -f '/tmp/runescape-gpg.key' && sudo apt update && sudo apt install 'runescape-launcher' && sync

Other distributions [ edit | edit source ]

The following commands extract the RuneScape client from the officially-provided .deb installer.

installer. You will also create a hardware-tailored launcher for the RuneScape client.

You'll also get a multi-function integrated Desktop Launcher.

These commands can also be used on Debian and other Debian-based distros if you prefer.

wget is used to download the .deb installer

is used to download the installer unar is being used in order to extract the necessary files from the .deb installer

is being used in order to extract the necessary files from the installer truncate is used to erase the contents of runescape-launcher

is used to erase the contents of rm , cp , ls , and sync are used later for the management of files

Other dependencies [ edit | edit source ]

Prior to client 2.2.5, older versions of libpng12 and libGLEW were required.

and were required. With client 2.2.5, a specific version of OpenSSL libraries were required.

As of client 2.2.6, no additional dependencies are needed on Fedora 31 and likely other distributions.

The following command is provided for convenience.

This entire text block is intended to be copied and pasted directly into a Terminal window.

For the individual commands and explanation, go to the following section.

cd ~ && rm -Rf ~/'.runescape' ~/'Jagex/launcher' ~/'Jagex/updater' ~/'Jagex/mesa_shader_cache' ~/'Jagex/GLCache' ~/'Jagex/RuneScape/GlobalSettings.jcache' ~/'Jagex/RuneScape/Settings.jcache' ~/'Jagex/RuneScape/ShaderManager.jcache' ~/'Jagex/RuneScape/ObjCache.jcache' ~/'.local/share/icons/hicolor/'*'/apps/runescape.png' ~/'.local/share/applications/RuneScape.desktop' '/tmp/runescape' && mkdir -p ~/'Jagex/updater' '/tmp/runescape' && wget -O '/tmp/runescape/runescape-launcher-amd64.deb' 'https://content.runescape.com/downloads/ubuntu/pool/non-free/r/runescape-launcher/runescape-launcher_2.2.7_amd64.deb' && unar -o '/tmp/runescape' '/tmp/runescape/runescape-launcher-amd64.deb' && unar -o '/tmp/runescape' '/tmp/runescape/runescape-launcher-amd64/data.tar.xz' && cp '/tmp/runescape/data/usr/bin/runescape-launcher' '/tmp/runescape/data/usr/share/games/runescape-launcher/runescape' ~/'Jagex/updater' && cp -R '/tmp/runescape/data/usr/share/icons' ~/'.local/share' && ls ~/'Jagex/updater/runescape' ~/'Jagex/updater/runescape-launcher' > '/dev/null' && rm -Rf '/tmp/runescape' && sync

Individual commands [ edit | edit source ]

First, we clean-up any potentially-lingering files in order to do a clean installation:

cd ~ && rm -Rf ~/'.runescape' ~/'Jagex/launcher' ~/'Jagex/updater' ~/'Jagex/RuneScape/GlobalSettings.jcache' ~/'Jagex/RuneScape/Settings.jcache' ~/'Jagex/RuneScape/ShaderManager.jcache' ~/'.local/share/icons/hicolor/'*'/apps/runescape.png' ~/'.local/share/applications/RuneScape.desktop' '/tmp/runescape'

Second, we create the necessary folders to temporarily extract the client to and a folder to install it to:

mkdir -p ~/'Jagex/updater' '/tmp/runescape'

Third, we download the latest .deb client:

wget -O '/tmp/runescape/runescape-launcher-amd64.deb' 'https://content.runescape.com/downloads/ubuntu/pool/non-free/r/runescape-launcher/runescape-launcher_2.2.7_amd64.deb'

Fourth, we extract the .deb client to a temporary folder:

unar -o '/tmp/runescape' '/tmp/runescape/runescape-launcher-amd64.deb' && unar -o '/tmp/runescape' '/tmp/runescape/runescape-launcher-amd64/data.tar.xz'

Fifth, we copy the client files over from the temporary folder into the actual install location:

cp '/tmp/runescape/data/usr/bin/runescape-launcher' '/tmp/runescape/data/usr/share/games/runescape-launcher/runescape' ~/'Jagex/updater'

Sixth, we also copy over the official icons from the temporary folder into the current user's Icon folder:

cp -R '/tmp/runescape/data/usr/share/icons' ~/'.local/share'

Seventh, we check for the presence of the RuneScape launcher files to make sure they got moved properly:

ls ~/'Jagex/updater/runescape' ~/'Jagex/updater/runescape-launcher' > '/dev/null'

And finally, we clean-up the temporary files:

rm -Rf '/tmp/runescape' '/tmp/runescape/runescape-launcher-amd64.deb' && sync

This is the launcher script used by the RuneScape client

The following steps will implement GPU-specific environment variables for the best experience

Editing the launcher [ edit | edit source ]

This series of commands erases the contents of runescape-launcher via the truncate command, and opens it with your default text editor allowing you to copy and paste the following content below

via the command, and opens it with your default text editor allowing you to copy and paste the following content below gio open can be replaced with a command-line text editor like vim or nano if you want

truncate --size='0' ~/'Jagex/updater/runescape-launcher' && gio open ~/'Jagex/updater/runescape-launcher'

Launcher content [ edit | edit source ]

This is mostly the same contents as the official launcher.

Notice the Generic Environment Variables section; this is where you can add GPU-tailored environment variables, some of which are presented later on this page.

section; this is where you can add GPU-tailored environment variables, some of which are presented later on this page. This can be used as-is without additional tailoring.

#!/bin/sh if [ -z $1 ]; then configURI=http://www.runescape.com/k=5/l=\$\(Language:0\)/jav_config.ws else configURI=$1 shift fi export PULSE_PROP_OVERRIDE="application.name='RuneScape' application.icon_name='runescape' media.role='game'" export SDL_VIDEO_X11_WMCLASS="RuneScape" # Generic Environment Variables export PULSE_LATENCY_MSEC='100' export MESA_GLSL_CACHE_DIR=~/'Jagex' export __GL_SHADER_DISK_CACHE_PATH=~/'Jagex' unset XMODIFIERS ./runescape --configURI $configURI [email protected]

Desktop launcher [ edit | edit source ]

The following command creates the RuneScape.desktop desktop launcher file and opens it with your default text editor

Run this in a Terminal window:

truncate --size='0' ~/'.local/share/applications/RuneScape.desktop' && gio open ~/'.local/share/applications/RuneScape.desktop'

Add the following contents to the file once your text editor opens:

[Desktop Entry] Name=RuneScape Comment=A unique MMO set in the vast, fantasy world of Gielinor, brimming with diverse races, guilds and ancient gods battling for dominion. RuneScape now features more ways to play, brand new skills and over 200 gripping story-driven quests. Categories=Game;AdventureGame;RolePlaying Exec='/home/CHANGEME/Jagex/updater/runescape-launcher' Type=Application StartupNotify=false Path=/home/CHANGEME/Jagex/updater Icon=runescape StartupWMClass=RuneScape Actions=iGPU;Kill;Cache; [Desktop Action iGPU] Exec='/home/CHANGEME/Jagex/updater/runescape-launcher-igpu' Name=Use Integrated GPU (power-saving) [Desktop Action Kill] Exec='/bin/killall' -9 'rs2client' 'runescape' 'runescape-launcher' Name=Force-close [Desktop Action Cache] Exec='/bin/bash' -c "rm -Rf ~/'.runescape' ~/'Jagex/mesa_shader_cache' ~/'Jagex'/GLCache' ~/'Jagex/launcher/instance.lock' ~/'Jagex/RuneScape/ShaderManager.jcache' '/tmp/runescape' && sync && notify-send 'The RuneScape cache has been cleaned.'" Name=Cache Clean-up

And finally, run this command in order to correctly set the file paths in the desktop launcher to the current user's folder:

sed -i 's/'CHANGEME'/'$USER'/g' ~/'.local/share/applications/RuneScape.desktop'

You'll now be able to launch RuneScape from your desktop environment's Application launcher!

If you have a dual-graphics laptop and wish to use the iGPU option, see the Optimus notes below (this is also applicable to AMD dual-graphics laptops)

Direct launch [ edit | edit source ]

You can execute the runescape-launcher script directly without a desktop launcher.

script directly without a desktop launcher. This is useful for debugging purposes.

cd ~/'Jagex/updater' && ~/'Jagex/updater/runescape-launcher'

Steam client [ edit | edit source ]

If you wish to have RuneScape accessible from the Steam client, you can add runescape-launcher as a non-Steam game

as a non-Steam game You must show all files in the Browse section (change from the default .desktop Applications in File Type), and find runescape-launcher in the Jagex/updater folder from your Home folder

Applications in File Type), and find in the folder from your Home folder This will allow you to launch RuneScape from Steam, and allow you to access the in-game overlay

May be useful for users of game controllers (such as the Steam Controller) who wish to use them with RuneScape

Other resources [ edit | edit source ]

World ping [ edit | edit source ]

Create and execute '/tmp/rs3-ping.sh' :

nano ~/rs3-ping.sh && chmod +x ~/rs3-ping.sh && ~/rs3-ping.sh'

With the following contents:

#!/bin/bash min=1000 min_world=0 for world in {1..141}; do if ping -q world${world}.runescape.com -c 1 >/dev/null 2>&1; then res=$(ping world${world}.runescape.com -c 1 2>&0 | grep "time=" | cut -d' ' -f 8,9 | cut -d'=' -f 2) echo World ${world}: ${res} ms=$(echo $res | sed -r 's/\s+ms//g') if [[ $(echo "$ms < $min" | bc) == 1 ]]; then min=$ms min_world=$world fi fi done echo echo "Minimum ping was world $min_world: $min ms"

World ping latencies will be presented in the active Terminal window.

World numbers in the Terminal directly correlate with their number on the in-game world select menu.

GPU-specific environment variables [ edit | edit source ]

These can be added to the Desktop Launcher.

Some of these environment variables contain unstable options that may improve performance at the cost of stability in rare cases.

If you use open-source graphics drivers with a modern GPU and either don't require additional environment variables or are at all unsure:

# Generic export MESA_NO_ERROR='1' export PULSE_LATENCY_MSEC='100' export MESA_GLSL_CACHE_DIR=~/'Jagex'

The 4.5FC version can be increased if your Mesa stack and driver supports a higher OpenGL level.

If you use a NVIDIA graphics card in a typical single-GPU set-up along with their proprietary drivers:

# Generic export PULSE_LATENCY_MSEC='100' # NVIDIA Proprietary export __GL_SHADER_DISK_CACHE_PATH=~/'Jagex' export __GL_THREADED_OPTIMIZATIONS='1'

If you use an NVIDIA graphics card in a laptop with a Hybrid/Optimus set-up and are using the NVIDIA proprietary drivers with PRIME Render Offload:

# Generic export PULSE_LATENCY_MSEC='100' # NVIDIA Proprietary export __GL_SHADER_DISK_CACHE_PATH=~/'Jagex' export __GL_THREADED_OPTIMIZATIONS='1' # NVIDIA Proprietary Optimus export __NV_PRIME_RENDER_OFFLOAD='1' export __GLX_VENDOR_LIBRARY_NAME='nvidia'

Desktop launcher [ edit | edit source ]

Allows selecting the integrated Intel GPU for when increased battery life is desired over performance.

This was tested with an Intel integrated GPU but can be adapted for AMD dual-graphics laptops as well or used as-is.

nano ~/'Jagex/updater/runescape-launcher-igpu' && chmod +x ~/'Jagex/updater/runescape-launcher-igpu'

#!/bin/sh if [ -z $1 ]; then configURI=http://www.runescape.com/k=5/l=\$\(Language:0\)/jav_config.ws else configURI=$1 shift fi export PULSE_PROP_OVERRIDE="application.name='RuneScape' application.icon_name='runescape' media.role='game'" export SDL_VIDEO_X11_WMCLASS="RuneScape" # Generic export MESA_NO_ERROR='1' export PULSE_LATENCY_MSEC='100' export MESA_GLSL_CACHE_DIR=~/'Jagex' # Modern Intel Graphics export MESA_GL_VERSION_OVERRIDE='4.5FC' unset XMODIFIERS ./runescape --configURI $configURI [email protected]

Modern AMD [ edit | edit source ]

If you use an AMD graphics card:

# Generic export MESA_NO_ERROR='1' export PULSE_LATENCY_MSEC='100' export MESA_GLSL_CACHE_DIR=~/'Jagex' # Modern AMD Graphics export NIR_VALIDATE='0' export MESA_GL_VERSION_OVERRIDE='4.5FC' export AMD_DEBUG='unsafemath,sisched,gisel,nir'

nir may reduce or prevent random black-screen issues.

may reduce or prevent random black-screen issues. If using a recent Mesa stack, using nir also allows OpenGL 4.6 compliance, and you can thus increase the MESA_GL_VERSION_OVERRIDE version to 4.6 .

If you use an Intel graphics chip where RuneScape crashes on-startup or doesn't support OpenGL 2.0:

# Generic export PULSE_LATENCY_MSEC='100' export MESA_GLSL_CACHE_DIR=~/'Jagex' # Old Intel Graphics export MESA_GLSL_VERSION_OVERRIDE='130' export MESA_GL_VERSION_OVERRIDE='2.0'

Or use these flags if using the Flatpak:

flatpak run --env='MESA_GLSL_VERSION_OVERRIDE=130' --env='MESA_GL_VERSION_OVERRIDE=2.0' 'com.jagex.RuneScape'

This is likely required for Intel graphics chips that pre-date Sandybridge.

If RuneScape crashes on start-up without any error message, you'll likely need this.

Ping isn't shown for worlds [ edit | edit source ]

This is presumably a bug with the NXT client on Linux.

See World Ping if you want to verify worlds with the lowest ping via a script.

Can't open developer console [ edit | edit source ]

If using GNOME, the key combination to open the developer console is also bound by GNOME for another function. To unbind it:

gsettings set 'org.gnome.desktop.wm.keybindings' 'switch-group' "['disabled']"

And to rebind it back to GNOME/reset it:

gsettings reset 'org.gnome.desktop.wm.keybindings' 'switch-group'

See the Developer Console support page for usage examples, and the related wiki page for more information

Volume is lower than expected [ edit | edit source ]

If using PulseAudio, you can increase the volume of RuneScape beyond 100%.

First, have nothing else playing audio, start the RuneScape client, and have it playing audio (can be the log-in screen music).

Second, find the sink for the RuneScape client with the following command:

pactl list sink-inputs | grep '#'

Third, set that sink to have higher than 100% volume (change x to increased volume percentage wanted):

pactl set-sink-input-volume 'x' '135%'

Sometimes, the in-game world on-screen will turn to black, and only the UI will be shown.

This has been seen to happen at random on AMD GPUs (notably GCN/SI+ GPUs and not R600) using the open-source Mesa stack.

Using nir with AMD GPUs seems to reduce the chance of the black-screens from occuring

with AMD GPUs seems to reduce the chance of the black-screens from occuring See the Modern AMD desktop launcher snippet to add this to your desktop launcher.

It is not known why this occurs, and it's possible this was fixed in newer versions of the RuneScape client and/or Mesa stack.

If using the Flatpak, use this to launch the client with the nir environment variable:

flatpak run --env='AMD_DEBUG=nir' 'com.jagex.RuneScape'

Client crashes without error when loading [ edit | edit source ]

This is likely because an unsupported graphics stack being used.

Notably an issue when using pre-Sandybridge Intel graphics and likely other GPUs that don't advertise OpenGL 2.0 or 3.0

A potential fix is to spoof the required OpenGL level of at least 2.0 and the minimal required GLSL version of 1.30 using two environment variables.

The NXT client runs on graphics stacks with as low as OpenGL 2.0, but the renderer developer console command doesn't report any OpenGL extensions unless the version is 3.0.

developer console command doesn't report any OpenGL extensions unless the version is 3.0. It is possible that this will cause unexpected crashes and rendering issues if your graphics stack does not actually support the required OpenGL extensions.

This requires the open-source Mesa graphics stack.

See the Old/Unsupported desktop launcher snippet to add this to your desktop launcher.

See Issue #31 on the RuneScape Flatpak issue tracker also if you have anything to add to the discussion there.

This can also occur if you're missing a required dependency. See Direct Launch in order to launch the client through the Terminal, and observe any errors related to .so files.

MESA_GLSL_VERSION_OVERRIDE='130' MESA_GL_VERSION_OVERRIDE='3.0'

If using the Flatpak, use this to launch the client with the spoofing environment variables:

flatpak run --env='MESA_GLSL_VERSION_OVERRIDE=130' --env='MESA_GL_VERSION_OVERRIDE=3.0' 'com.jagex.RuneScape'

Audio is glitchy or sounds odd [ edit | edit source ]

This can be an issue with PulseAudio.

This may only happen for a short period of time when starting the client up, or it may continue on beyond the lobby for a longer period.

Try adjusting the latency with the PULSE_LATENCY_MSEC environment variable, or removing it altogether.

environment variable, or removing it altogether. Check the PulseAudio/Troubleshooting page on Arch Wiki for additional things you can try.

Additional resources [ edit | edit source ]