Installing the game on Linux

From Vintage Story Wiki
Other languages:

If you do not wish to perform a manual install, here are the options for unofficial, but easy and convenient install:

If you install the game using any of these methods, you can start it by clicking the Vintage Story menu entry in your desktop environment's application launcher.

Disclaimer: Packages above are maintained by volunteers to the open-source community. Anego Studios can't held responsible if they don't work as intended or don't work at all. In addition, the game itself may not be always up to date with the latest stable version that's released officially.

Manual installation

The Vintage Story game client relies on three main components: the .NET Runtime, OpenAL, and OpenGL. As of recent

To perform a manual installation, you are expected to know how to open a terminal, what package manager your Linux distribution uses, and how to use your package manager's search, list, and install commands or command flags.

Some common package managers (apt, dnf, yum, and apk) share a similar command format, so the following apt examples can be used by substituting apt with a near-equivalent command. Other package managers may stray slightly from the above four or use a completely different format, as is the case with pacman in Arch.

Installing .NET

The easiest way to install the .NET Runtime on your Linux system is to use a package available in your distribution's official package repository (see example below). Package names for some popular distributions are as follows:

A screenshot of a terminal searching for and installing .NET 7.
A screenshot of the process of searching for and installing the .NET 7 Runtime in Ubuntu with apt. The commands used and desired search results are highlighted.

If your distribution isn't listed or if you want to check whether the package is installed, you can search for dotnet.*runtime or dotnet runtime in your package manager and copy the name for version 7 into an install command (see example below).

For advanced users, Microsoft also offers official package repositories for several Linux distributions and guides for manual or scripted installations as alternatives. An overview of these options is available on dotnet's GitHub.

As an example, these are two ways to search for the .NET Runtime with apt (in Ubuntu); the example using grep is slower but provides a cleaner output:
Search with Grep: sudo apt list | grep -E dotnet.*runtime
Normal Search: sudo apt search dotnet.*runtime

Once the .NET Runtime's package name is found (in this case, dotnet-runtime-7.0), the package can be installed:
Install: sudo apt install dotnet-runtime-7.0

If it is already installed, the search list entry will have some text indicating so near the beginning or end of the line, usually [Installed].

Installing OpenAL

OpenAL is a cross-platform audio library, needed to play game sounds in Vintage Story. Recent versions of the game (since the update to .NET 7) include the library, so this section may be skipped. Even with older versions however, OpenAL may already be installed, either by default as part of another game's or application's installation.

If you don't have it already, the OpenAL library should be present in your distribution's package repository. Search for openal, libopenal, libopenal-dev or anything that provides the required libopenal.so library.

As an example, searching for and installing OpenAL with apt might be done with these commands (in Ubuntu); prefer the grep variant here as there are many more extraneous results:
Search: sudo apt list | grep openal OR sudo apt search openal
Install: sudo apt install libopenal-dev

Installing Graphics Drivers

OpenGL is the 3D graphics library the game uses, which needs to be supported by a graphics driver. If you have a graphics card (integrated or dedicated) but do not have drivers installed, you will need to search online for installation instructions for your specific hardware, Linux distribution, and package manager. The process will be similar to the installation of .NET above, but may include additional steps to add third-party repositories to your package manager.

NVIDIA graphics cards can make use of nvidia driver packages, while Intel and AMD graphics will need to use mesa driver packages. You can use the following command to check if parts of the mesa or nvidia packages are installed (in Ubuntu):
Search Installed: sudo apt list --installed | grep -E "mesa|nvidia"

Launching the game

Once you have its dependencies installed, you're ready to download and run the game.

Sign in and find the client download for Linux in the Vintage Story website's client area. The Linux download is a tarball (.tar.gz archive) that will need to be extracted. Most desktop environments will allow you to right click the archive and extract it from the context menu, or double-click it to open an archive viewer with an "Extract" option.

If neither option is available, right click in empty space next to the archive to open a terminal in (or use the cd command to set the terminal's directory to) the directory containing the archive, then use the tar command to extract the contents of the archive:
Change Directory: cd /home/myusername/Downloads
Extract Archive: tar -xvf ./vintagestory_tarball.tar.gz

Be aware that path and file names are case-sensitive, but you can press TAB while typing to auto-complete them. Make sure to substitute the directory in the cd command and archive name in the tar command with the location and filename of your download.

Once the vintagestory directory has been fully extracted, you can enter it and double-click to execute the run.sh or Vintagestory files, or open a terminal in that directory (using the same process as above) and run one of them from the command line:
Run the Game: ./run.sh OR ./Vintagestory

The game files also contain a script, install.sh that is intended to install the game in ~/.local/share/vintagestory/ (prior to 1.19.2 ~/ApplicationData/vintagestory/) and create a shortcut on your desktop as well as add support for moddb 1 click install and connect via URL (vintagestoryjoin://ip:port). This install script may not work for everyone, so you may need to take these steps manually or create the target install folder before running the script (there may be a permissions issue?). For more details please refer to the Forum thread linked below.

Updating the game

To update the game you can run the install.sh from any location, it will move the old installation to a backup location and after that move the new files to the default installation directory and reinstall the desktop entries. At the end, it will ask you if you want to delete the old installation files.

You can also update the game by extracting game binary files from the tar.gz downloaded from vintagestory.at. That should work fine, except that it is a good idea to extract those files into an empty folder where possible. If that is not possible for some reason, then we strongly recommend that you at least delete the /assets/ folder from your previous Vintage Story installation. If you simply extract the archive into an existing game installation folder without deleting /assets/, some previous asset files will remain, leading to minor issues - e.g. unintended blocks or items in the game, duplicated guides in the Handbook Guides tab.

(To make things more complicated, some of the downloads with sizes around 50MB contain all the game files except for music. In that case, you shouldn't delete the whole of the /assets/ folder because you would lose the music you already have: instead delete everything in /assets/ except for the subfolders /assets/game/music and /assets/survival/music - keep those subfolders.)

If you use a package manager, that may take care of some of this for you.

Troubleshooting

If you have any issues, the Forum thread on working linux setups might help you considerably. Please do share your own experiences there. You might also want to use the mesa_glthread optimization, which works well for some players.

GL threading issues

However, many users have reported problems with the game with OpenGL threading enabled.

OpenGL threading optimization is enabled by default in some configurations and can lead to the following problems:

  • Mouse cursor not registering clicks properly
  • Inability to resize the game window
  • Hanging, freezing, etc.

To disable OpenGL threading, you will need to create a mesa_glthread environment variable and set it to false. You can easily test it, by launching the command line, navigating to the directory where Vintage Story resides and running the mesa_glthread=false ./Vintagestory command. If you don't want to use the command, look up how to make Linux environment variables permanent and restart the system.

If you installed the game using Flatpak instead, try launching it with the command: flatpak run --env=mesa_glthread=false at.vintagestory.VintageStory vintagestory. You can make it permanent by typing: flatpak override --env=mesa_glthread=false at.vintagestory.VintageStory

sudo for first time run

Some players have reported needing to run sudo ./Vintagestory to launch the game the first time: this may depend on how it was installed.

Graphical glitches

Some people report minor graphical issues which are platform and driver dependent. Vintage Story makes use of a large variety of GLSL shaders for its rendering effects including commonplace elements such as grass and leaf colors in different climates. Bugs in the GPU driver's implementation of GLSL may cause artifacts with some of these. There's a chance a driver update might improve the situation. The in-game Graphics settings give high level control over many of the effects, you can try different settings.

Video Walkthrough

Manual installation walkthrough.


Wiki Navigation
Vintage Story Guides[[::Category:Guides| ]]Frequently Asked Questions Soundtrack Versions Controls
Game systems Crafting Knapping Clay forming Smithing Cooking Temperature Hunger Mining Temporal stability Mechanical power Trading Farming Animal husbandry
World World generation Biomes Weather Temporal storms
Items Tools Weapons Armor Clothing Bags Materials Food
Blocks Terrain Plants Decorative Lighting Functional Ore
Entities Hostile entities Animals NPCs Players
Miscellaneous List of client commands List of server commands Creative Starter Guide Bot System WorldEdit Cinematic Camera Adjustable FPS Video Recording ServerBlockTicking