321BoltsOfLightning Posted October 11, 2025 Report Posted October 11, 2025 Distro / Kernel release : Linux Mint 22.2 Mono / .NET package version : dotnet-runtime-8.0/noble-updates,now 8.0.20-0ubuntu1~24.04.1 amd64 Graphics driver version : Nvidia 550.163.01 Works for client, mp server or both : client, haven't tested server yet Installation method used : install.sh Hacks (if needed) : the desktop / main menu shortcut only work if you install dotnet through your package manager; manual installation didn't make them work.
pretahr Posted October 11, 2025 Report Posted October 11, 2025 Vintage Story version : 1.21.4 Operating System: KUbuntu 25.04 KDE Plasma Version: 6.3.4 KDE Frameworks Version: 6.12.0 Qt Version: 6.8.3 Kernel Version: 6.14.0-33-generic (64-bit) Graphics Platform: X11 Processors: 2 × AMD Ryzen 5 7600X 6-Core Processor Memory: 30,5 GiB of RAM Graphics Processor: AMD Radeon RX 7600 XT Works for client, mp server or both : client, haven't yet tried MP or running a server start game: run.sh and vintagestory.desktop(manualy added path to game folder) managed to transfer world files and configs from win10
EWsssfhioewhg Posted October 11, 2025 Report Posted October 11, 2025 Distro: Fedora 42 Kernel: 6.16.7-200 .NET: dotnet-runtime-8.0 Vintage Story Version: 1.21.4 Installation method: install.sh The install went without a hitch. The game can be started from the menu entry.
adamantris Posted November 3, 2025 Report Posted November 3, 2025 Distro / Kernel release : Nobara Linux 42 (KDE Plasma Desktop Edition) / 6.17.5-200.nobara.fc42.x86_64 Mono / .NET package version : (Whatever the flatpak ships with) Graphics driver version : Mesa 25.2.5 (RADV) Works for client, mp server or both : Only client tested Installation method used : flatpak --user install https://flatpak.vintagestory.at/VintageStory.flatpakref GPU Radeon RX 9060 XT (16GB) CPU: Ryzen 5 7600 Memory: 30,4 GiB of RAM works pretty much OOTB, i set mesa_glthread=true for good measure and nothing bad has happened as of now.
Danweel Posted December 18, 2025 Report Posted December 18, 2025 (edited) Not bad at all, putting my (Linux newbie) notes here for posterity: Distro / Kernel release: Ubuntu Studio 24.04.3 LTS NobleNumbat (with KDE Plasma) Mono / .NET package version: .NET 7.0 - I had to install this manually (potentially my mistake though). 8.0 did not work. Graphics driver version: NVIDIA metapackage nvidia-driver-570-open (proprietary) Works for client, mp server or both: Only client tested Installation method used: Attempted: flatpak --user install https://flatpak.vintagestory.at/VintageStory.flatpakref which didn't appear to work - could be my fault, can't be sure. So I downloaded the tar.gz and extracted that to /downloads. At this point I ran the install.sh via the Terminal (which is where it detected needing .NET. I installed 10, since it was available, realized that didn't work, and then installed 8 as instructed in the installation instructions: https://wiki.vintagestory.at/Installing_the_game_on_Linux#Easy_installation_options ##Installing NET manually (Scripted version). Adding the environment variable worked as described, with the output echo $DOTNET_ROOT being: /home/USERNAME/.dotnet (success!) That still didn't work - despite being on Ubuntu 24.04+, I still needed to install .NET 7.0. So I did that too. The Root was still correctly set, so I didn't need to do that again. This time, it ran! install.sh never did put that icon on the desktop though. In the application menu, VintageStory appeared under Games, and by right-clicking on that I was able to add a shortcut to the desktop that way. GPU NVIDIA RTX3050 (12GB) [GA106] CPU: Ryzen 5 5500 Memory: 32GB Edited December 18, 2025 by Danweel
AcuteAangle Posted January 18 Report Posted January 18 Distro / Kernel release : NixOS Unstable / Linux 6.12.56 Mono / .NET package version : dotnet-runtime_8 v8.0.22 Graphics driver version : amdgpu Works for client, mp server or both : both Installation method used : vintagestory-nix
lumiera Posted February 21 Report Posted February 21 Distro / Kernel release : Debian Unstable (forky/sid) Mono / .NET package version : dotnet-runtime-8.0 (8.0.24-1) from Microsoft apt repo Graphics driver version : NVIDIA binary driver 550.163.01-4 from Debian official package on GTX 1050 Ti Mobile [10de:1c8c] GPU Works for client, mp server or both : tried only client, works fine Installation method used : manual Hacks (if needed) : fully manual install Installation steps: # Get the game .tar.gz and unpack # Debian has no official package for .NET 8 so installed manually from microsoft packages (as root): wget 'https://packages.microsoft.com/config/debian/13/packages-microsoft-prod.deb' dpkg -i packages-microsoft-prod.deb apt update apt install dotnet-runtime-8.0 apt purge packages-microsoft-prod # Inside the game dir, manually run this piece of code taken from install.sh, adding -v to ln call to see what it does - # it created a bunch of symlinks; no idea what it's for but oh well # NOTE: this requires specifically "bash" shell, may not work in zsh etc. for i in $(find "./assets"); do f="$(basename -- "$i")"; [ "$f" = "${f,,}" ] || { echo "Create LowercaseAlias for $f"; ln -svf "$f" "${i%/*}/${f,,}"; }; done # Manually (as root) confirm that this is larger than 262144. Root needed because as of now on Debian, regular user has no sysctl sysctl -n vm.max_map_count # Inside the game dir, Manually changed <dir> to <dir prefix="cwd"> in fonts.conf to get rid of the warning # Created my own launcher than chains into the game's run.sh. # This does a few things, all of them should be obvious. #!/bin/bash set -exuo pipefail cd /path/to/the/unpacked/game __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia ALSOFT_DRIVERS=pulse mesa_glthread=true exec taskset -c 4-7 ./run.sh Everything seems to work fine.
Teh Pizza Lady Posted February 21 Report Posted February 21 Please share in the comments your working VS linux configuration in the following way: Distro / Kernel release : Ubuntu Server 24.04 Mono / .NET package version : aspnetcore-runtime-10.0 Graphics driver version : None. Server runs headless Works for client, mp server or both : multiplayer server Installation method used : download tarball and run tar -zxf Hacks (if needed) : curl is needed to run a few scripts to help manage the server Additional scripts: update.sh #!/bin/bash if [ -z "$1" ]; then echo "Usage: $0 <URL>" exit 1 fi URL="$1" OUTPUT_FILE="vs.tar.gz" ASSETS_DIR="assets" mv server.sh server.sh.old curl -o "$OUTPUT_FILE" "$URL" if [ $? -ne 0 ]; then echo "Error: Failed to download $URL" exit 1 fi if [ -d "$ASSETS_DIR" ]; then rm -rf "$ASSETS_DIR" echo "Deleted existing $ASSETS_DIR folder." fi tar -xzf "$OUTPUT_FILE" --overwrite if [ $? -ne 0 ]; then echo "Error: Failed to extract $OUTPUT_FILE" exit 1 fi # Restore server.sh file rm server.sh mv server.sh.old server.sh echo "Successfully downloaded and updated Vintage Story." installMod.sh #!/bin/bash function download_file() { read -p "Enter the URL of the mod to install: " url filename=$(curl -sI "$url" | grep -o -E 'filename="?([^";]+)"?' | sed 's/filename=\"\?//' | sed 's/\"$//') if [ -z "$filename" ]; then filename=$(basename "$url") fi mkdir -p ./Mods echo "Downloading $filename . . ." curl -L -o "./Mods/$filename" "$url" if [ $? -eq 0 ]; then echo "Download of $filename is complete!" else echo "Download failed. Please check the URL and try again." fi } while true; do download_file echo "What would you like to do next?" echo "1. Restart the process" echo "2. Download another file" echo "3. Exit" read -p "Enter your choice (1/2/3): " choice case $choice in 1) echo "Restarting the Vintage Story server..." ./server.sh restart echo "Server successfully restarted! Exiting the script. Goodbye!" break ;; 2) echo "Preparing to download another file..." ;; 3) echo "Exiting the script. Goodbye!" break ;; *) echo "Invalid choice. Please enter 1, 2, or 3." ;; esac done modManager.sh #!/bin/bash MODS_DIR="$(dirname "$0")/Mods" SERVER_SCRIPT="./server.sh" function display_menu { clear echo "Vintage Story Mod Manager" echo "===========================" IFS=$'\n' MOD_FILES=($(find "$MODS_DIR" -maxdepth 1 -type f -name "*.zip" 2>/dev/null | sort)) unset IFS if [ ${#MOD_FILES[@]} -eq 0 ]; then echo "No .zip files found in $MODS_DIR." echo "Press Q to quit or B to reboot the server." else echo "Available Mods:" for i in "${!MOD_FILES[@]}"; do FILE_NAME=$(basename "${MOD_FILES[$i]}") echo "$((i+1)). $FILE_NAME" done echo "" echo "Options:" echo " [number] - Delete mod" echo " R - Replace mod" echo " B - Reboot server" echo " Q - Quit" fi } while true; do display_menu read -p "Your choice: " CHOICE if [[ "$CHOICE" =~ ^[qQ]$ ]]; then echo "Exiting..." exit 0 elif [[ "$CHOICE" =~ ^[bB]$ ]]; then echo "Rebooting the server..." $SERVER_SCRIPT restart exit 0 elif [[ "$CHOICE" =~ ^[rR]$ ]]; then if [ ${#MOD_FILES[@]} -eq 0 ]; then echo "No mods to replace." else read -p "Enter the number of the mod you want to replace: " REPLACE_NUM INDEX=$((REPLACE_NUM-1)) if [ $INDEX -ge 0 ] && [ $INDEX -lt ${#MOD_FILES[@]} ]; then FILE_TO_REPLACE="${MOD_FILES[$INDEX]}" FILE_NAME=$(basename "$FILE_TO_REPLACE") echo "Selected mod: $FILE_NAME" read -p "Enter the URL of the replacement mod: " URL if [[ -z "$URL" ]]; then echo "No URL entered. Replacement canceled." else echo "Downloading replacement..." NEW_FILE_PATH="$MODS_DIR/$(basename "$URL")" if wget -q -O "$NEW_FILE_PATH" "$URL"; then echo "Download successful. Replacing $FILE_NAME..." rm -f "$FILE_TO_REPLACE" echo "$FILE_NAME has been replaced with $(basename "$NEW_FILE_PATH")." else echo "Failed to download replacement file." rm -f "$NEW_FILE_PATH" fi fi else echo "Invalid selection. Please try again." fi fi elif [[ "$CHOICE" =~ ^[0-9]+$ ]]; then INDEX=$((CHOICE-1)) if [ $INDEX -ge 0 ] && [ $INDEX -lt ${#MOD_FILES[@]} ]; then FILE_TO_DELETE="${MOD_FILES[$INDEX]}" read -p "Are you sure you want to remove $(basename "$FILE_TO_DELETE")? (y-n): " CONFIRM if [[ "$CONFIRM" =~ ^[yY]$ ]]; then rm "$FILE_TO_DELETE" echo "$(basename "$FILE_TO_DELETE") has been removed." else echo "Deletion canceled." fi else echo "Invalid selection. Please try again." fi else echo "Invalid input. Please try again." fi echo "Press Enter to continue..." read done I have spent a fair bit of time working on these scripts. hope you can use them, too.
Recommended Posts