Files
Elsword-GE/README.md
T
magges a00efc4266
build-elsword-ge / build (push) Has been cancelled
fix: switch Elsword GE to Steam Runtime 4
2026-06-27 11:28:00 +02:00

5.9 KiB

Elsword-GE Build Project

This repository builds two custom Proton-GE 11 compatibility tools for Elsword on Linux/Steam:

  • Elsword-GE-11-1
  • Elsword-GE-11-1+dxvk-git

It is designed for NixOS and for hosting on a private or public Gitea server with Gitea Actions.

What this project does

  • Builds a Proton-GE 11 / Wine 11 based compatibility tool for Elsword.
  • Uses Steam Linux Runtime 4 (soldier, appid 4183110).
  • Builds DXVK for both x86 and x64.
  • Produces release archives that other users can install into Steam.
  • Disables optional extras that are known to be risky for game stability by default:
    • PROTON_DISCORD_BRIDGE=0
    • PROTON_USE_OPTISCALER=0
    • PROTON_USE_D7VK=0
    • MANGOHUD=0
    • ENABLE_VKBASALT=0

What this project does not do

  • No GameGuard bypass.
  • No anti-cheat bypass.
  • No patching or hooking of GameGuard.
  • No hard override of LOW_LATENCY_LAYER.
  • No global hard override of LD_PRELOAD.

Variant difference

  • Elsword-GE-11-1

    • Proton-GE 11 base
    • DXVK stable/latest release tag
  • Elsword-GE-11-1+dxvk-git

    • Proton-GE 11 base
    • DXVK from current upstream Git

Repository layout

.
├── flake.nix
├── README.md
├── LICENSE
├── .gitignore
├── .gitea/
│   └── workflows/
│       └── build.yml
├── scripts/
│   ├── common.sh
│   ├── build.sh
│   ├── package.sh
│   ├── install-to-steam.sh
│   ├── validate-build.sh
│   └── create-release-archive.sh
├── patches/
│   └── proton-defaults-elsword.patch
├── profiles/
│   └── elsword-launch-options.md
└── dist/

NixOS prerequisites

Use the provided flake:

nix develop

The shell includes build dependencies such as:

  • git
  • bash
  • coreutils
  • findutils
  • gnused
  • gnugrep
  • gawk
  • jq
  • curl
  • wget
  • tar
  • zstd
  • meson
  • ninja
  • python3
  • pkg-config
  • cmake
  • perl
  • patchelf
  • binutils
  • mingw-w64 toolchains for i686 and x86_64
  • Wine / wow64 support

Local build

Build the stable DXVK variant:

nix develop -c ./scripts/build.sh stable

Build the DXVK Git variant:

nix develop -c ./scripts/build.sh dxvk-git

Build both:

nix develop -c ./scripts/build.sh all

Package both into release archives:

nix develop -c ./scripts/create-release-archive.sh

Output files

After packaging, the main release files are:

dist/Elsword-GE-11-1.tar.zst
dist/Elsword-GE-11-1+dxvk-git.tar.zst
dist/Elsword-GE-11-1-dxvk-git.tar.zst
dist/SHA256SUMS.txt
dist/release-notes.md

If + causes issues in a filesystem or upload target, the safe alias is:

Elsword-GE-11-1-dxvk-git.tar.zst

The Steam compatibility tool name still remains exactly:

Elsword-GE-11-1+dxvk-git

Install into Steam

Install a built archive:

./scripts/install-to-steam.sh dist/Elsword-GE-11-1.tar.zst
./scripts/install-to-steam.sh dist/Elsword-GE-11-1+dxvk-git.tar.zst

Target path:

~/.local/share/Steam/compatibilitytools.d/

After install:

  1. Fully restart Steam.
  2. Open Elsword properties in Steam.
  3. Select the matching compatibility tool.

The documented profiles live in profiles/elsword-launch-options.md.

Safe / GameGuard test:

LD_PRELOAD="" PROTON_DISCORD_BRIDGE=0 PROTON_USE_OPTISCALER=0 PROTON_USE_D7VK=0 LOW_LATENCY_LAYER=0 MANGOHUD=0 ENABLE_VKBASALT=0 VK_INSTANCE_LAYERS="" DXVK_HUD=0 %command%

Performance / low-latency test:

LD_PRELOAD="" PROTON_DISCORD_BRIDGE=0 PROTON_USE_OPTISCALER=0 PROTON_USE_D7VK=0 LOW_LATENCY_LAYER=1 MANGOHUD=0 ENABLE_VKBASALT=0 VK_INSTANCE_LAYERS="" DXVK_STATE_CACHE=1 DXVK_LOG_LEVEL=none %command%

Operational advice:

  • Disable Steam Overlay for Elsword if possible.
  • Do not launch with gamemoderun.
  • Keep MangoHud disabled.
  • Keep vkBasalt disabled.
  • Keep Discord Bridge disabled.
  • Keep OptiScaler disabled.
  • Keep D7VK disabled.
  • Test LOW_LATENCY_LAYER=1 separately.
  • If GameGuard kicks the game, go back to the Safe profile first.

Debugging

For Proton logs:

PROTON_LOG=1 %command%

Gitea Actions behavior

Workflow file:

Behavior:

  • Push to main: builds both variants and stores build artifacts.
  • Tag matching v*: builds both variants, packages them, generates checksums, and creates or updates a Gitea release with uploaded assets.

Expected secrets:

  • GITEA_TOKEN
  • GITEA_SERVER_URL
  • GITEA_REPOSITORY

No tokens or passwords are stored in the repository.

Manual fallback if release upload needs to be done by hand

If your Gitea release upload path differs or the API step needs adjustment for your instance, build locally or through Actions and upload these files manually in the release UI:

  • dist/Elsword-GE-11-1.tar.zst
  • dist/Elsword-GE-11-1+dxvk-git.tar.zst
  • dist/Elsword-GE-11-1-dxvk-git.tar.zst
  • dist/SHA256SUMS.txt
  • dist/*.sha256
  • dist/release-notes.md

Push to Gitea

git init
git add .
git commit -m "Initial Elsword-GE build project"
git remote add origin ssh://git@DEIN-GITEA-SERVER/USER/elsword-ge.git
git push -u origin main

Create a release by tag

git tag v11-1
git push origin v11-1

Gitea attachment size note

Built Proton archives are usually much larger than 50 MB. Your Gitea instance may need larger release attachment limits.

Example configuration hint only; exact keys can vary by Gitea version:

[repository.upload]
FILE_MAX_SIZE = 2048
MAX_FILES = 20

[attachment]
MAX_SIZE = 2048
MAX_FILES = 20

[actions]
ENABLED = true

Security and anti-cheat note

This project intentionally avoids:

  • GameGuard bypasses
  • anti-cheat bypasses
  • GameGuard patches
  • GameGuard hooks

The goal is only a clean Proton-GE build with complete DXVK payloads and conservative defaults for optional extras.