-
Notifications
You must be signed in to change notification settings - Fork 8
Linux Guide
Running Vermintide Mod Builder on Linux requires Steam Proton to be installed in your Steam client.
Prerequisites: nodejs
, npm
.
Linux support resides in a separate branch (linux_support
). In order to use it, you should
- Clone this repository:
git clone https://github.com/Vermintide-Mod-Framework/Vermintide-Mod-Builder.git
- Switch to
linux_support
branch:cd ./Vermintide-Mod-Builder git checkout linux_support
Then you have 3 ways of running VMB.
-
Run it directly through
npm
:npm run vmb [opts]
-
Compile the binary.
npm run setup npm rub build
This should create
./vmb
executable. You can call it directly or put it somewhere in your$PATH
. -
Install VMB as a global package. While considered bad practice, it's the easiest way to get everything going.
sudo npm install -g .
This will make
vmb
command to be instantly available in your shell.
Note: It will symlink VMB project to a bunch of places. This means you shouldn't (re)move cloned VMB directory, otherwisevmb
will stop working.
-
Steam Workshop tools are supported for Vermintide 1 only
The way
ugc_tool.exe
concatenate paths is very convoluted. I simply couldn't find a way to get it working for VT2. So, for now, all the VT2 Workshop operations can be performed only inside Windows. -
Compiling mod with 8+ resource files (lua scripts, textures, etc.) throws an error
If there are 8+ resource files, stingray compiler spawns additional worker threads to balance the load, but only the files processed by the last thread will be compiled. It is a bug in Proton. Usually, the solution is as simple as running
vmb build
multiple times, until all the compiled files are cached.But if your mod is very simple with no inner dependencies (for example, it consists of only lua files), the cache will not be utilized, making Stingray recompile the same files over and over, making complete compilation impossible. To fix this, you need to create some dummy resource file to create an inner dependency. For example, you can put
linux_compilation_fix.material
in the root of your mod with the following contents:linux_compilation_fix = { shader = "gui:DIFFUSE_MAP" textures = { diffuse_map = "this/non-existent/path/creates/dependency" } }
You can check if cache is utilized by checking if
$CACHE_DIR/compile/dependency_database.db
exists.
-
VMB config location?
~/.vmbrc
-
How do I make VMB work with Proton?
- Figure out Steam ID of the Proton version you have installed. You can use https://steamdb.info/. For example, Proton 6.3's Steam ID is
1580130
. - Open your config and put it alongside
proton_id
key. If there's none, create one.
- Figure out Steam ID of the Proton version you have installed. You can use https://steamdb.info/. For example, Proton 6.3's Steam ID is
-
Why Steam Proton instead of Wine?
Wine lacks Steam runtime, thus it cannot run
ugc_tool.exe
(SDK Steam Workshop uploader). Also, Steam Proton is required to play Vermintide so it is most likely already installed in your system. -
Is WSL supported?
No.
- Figure out templating status.
- Make it work with VT2 workshop. Not sure if possible.
- Make discovering Proton automatic. Hopefully, after Steam Deck release, Proton's SteamID stabilises.
- Proton fallback folder for folks using GE / TKG editions.