# Elsword-GE Build Project This repository builds two custom Proton-GE 11 compatibility tools for Elsword on Linux/Steam: - `Elsword-GE-10-34` - `Elsword-GE-10-34+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 10-34 / Wine 10 based compatibility tool for Elsword. - Uses Steam Linux Runtime Sniper (appid `1628350`), matching GE-Proton 10. - 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-10-34` - Proton-GE 11 base - DXVK newest stable release at build time - `Elsword-GE-10-34+dxvk-git` - Proton-GE 11 base - DXVK from current upstream Git ## Repository layout ```text . ├── 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: ```bash 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: ```bash nix develop -c ./scripts/build.sh stable ``` Build the DXVK Git variant: ```bash nix develop -c ./scripts/build.sh dxvk-git ``` Build both: ```bash nix develop -c ./scripts/build.sh all ``` Package both into release archives: ```bash nix develop -c ./scripts/create-release-archive.sh ``` ## Output files After packaging, the main release files are: ```text dist/Elsword-GE-10-34.tar.zst dist/Elsword-GE-10-34+dxvk-git.tar.zst dist/Elsword-GE-10-34-dxvk-git.tar.zst dist/SHA256SUMS.txt dist/release-notes.md ``` If `+` causes issues in a filesystem or upload target, the safe alias is: ```text Elsword-GE-10-34-dxvk-git.tar.zst ``` The Steam compatibility tool name still remains exactly: ```text Elsword-GE-10-34+dxvk-git ``` ## Install into Steam Install a built archive: ```bash ./scripts/install-to-steam.sh dist/Elsword-GE-10-34.tar.zst ./scripts/install-to-steam.sh dist/Elsword-GE-10-34+dxvk-git.tar.zst ``` Generic installer for release archives, including Flatpak Steam users: ```bash ./scripts/install-compat-tool.sh /path/to/Tool.tar.zst ./scripts/install-compat-tool.sh --flatpak /path/to/Tool.tar.zst ./scripts/install-compat-tool.sh --all /path/to/Tool.tar.zst ``` Target path: ```text ~/.local/share/Steam/compatibilitytools.d/ ``` After install: 1. Fully restart Steam. 2. Open Elsword properties in Steam. 3. Select the matching compatibility tool. ## Debugging For Proton logs: ```bash PROTON_LOG=1 %command% ``` ## 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.