Hellow
This Guide will Help you install Engine Mesh Updater on Linux Device (steamdeck too)
Most reasonable solution i found: Thru Wine: https://www.winehq.org/
Some people Recommend the Bottles: https://flathub.org/apps/com.usebottles.bottles
- it is obvious, but important to mention that Wine is not my application so i can't promise it will always work

This will work on MeshUpdater, but PSO require manual version and PerformanceFix will break
use Water optimizer instead... https://steamcommunity.com/sharedfiles/filedetails/?id=2974077189
Thanks to Discord user Satellite for help and tests for the wine workaround
Have fun playing the game :)
7 comments
WINEPREFIX=~/.steam/steam/steamapps/compatdata/233860/pfx wine /path/to/Whatever_Job.bat
(if you use a non-standard path for Steam, you'll obviously need to change where that first part points to to whatever you changed it to)
This will use the "windows environment" you're already using for Kenshi to run the program. I've done this for MeshUpdater, PSO, PerformanceFix, and stuff like RE_Kenshi. All works fine
And just to note it cuz a lot of pages redirect here, for some of these they'll give you dlls to place next to your Kenshi.exe. To make sure wine loads those, you need to something like this to your launch options in steam:
WINEDLLOVERRIDES="dxgi,d3d11=n,b" %command%
(this example is for the vulkan mod, but add into those quotes whatever other stuff some particular mod tells you too)
https://wiki.winehq.org/Wine_User's_Guide#WINEDLLOVERRIDES=DLL_Overrides
/Kenshi/data/newland/land/overlaymaps/colour.0.1.png
I ran the bat file on steam deck from inside desktop steam client with the following launch optionSTEAM_COMPAT_DATA_PATH=/home/deck/.local/share/Steam/steamapps/compatdata/233860/pfx %command%
But .MESH files seem to have been properly modified. I thought since it was saying "found", it wasn't modifying them immediately, and would do it in batch at the end, but that wasn't the case. Maybe mod author should reword it like "modified" instead of found. And only use "not found" for the error message.Here's the modified section of FixALL.bat that worked for me:
:compress
Set FILEPATH=%~1
if NOT exist "%FILEPATH%" goto :eof
echo Converting %FILEPATH%
bin\nvcompress -bc3 -silent "%FILEPATH%" >nul
:: Don't delete png's which are used in internal mods.
if /I "x%FILEPATH:%MATERIALS%\=%" == "x%FILEPATH%" if /I "x%FILEPATH:%TEXTURES%\=%" == "x%FILEPATH%" del "%FILEPATH%"
goto :eof
:replace
Set TARGETPATH=%~1
bin\fart -r -c -- "%TARGETPATH%\*.material","%TARGETPATH%\*.pu","%TARGETPATH%\*.os","%TARGETPATH%\*.xml","%TARGETPATH%\*.cfg","%TARGETPATH%\*. " ".png" ".dds"
goto :eof
I had the same issue as @barashka.
Your fix seems to solve the issue, but it will still throw errors because it seems like using batch variable substitution in an if /I statement is not valid. At least for me that was the case, idk if the same behaviour can be observed on Windows.
What solved it for me was replacing the :compress and :replace sections of the script with the following (Btw I almost never use batch, but this works without any errors):
:compress
Set FILEPATH=%~1
CALL :dequote FILEPATH
if NOT exist "%FILEPATH%" goto :eof
echo Converting %FILEPATH%
bin\nvcompress -bc3 -silent "%FILEPATH%" >nul
:: Skip deletion if %MATERIALS% is found in %FILEPATH%
echo %FILEPATH% | findstr /i "%MATERIALS%" >nul
if %errorlevel% == 0 goto :eof
:: Skip deletion if %TEXTURES% is found in %FILEPATH%
echo %FILEPATH% | findstr /i "%TEXTURES%" >nul
if %errorlevel% == 0 goto :eof
del "%FILEPATH%"
goto :eof
:replace
Set TARGETPATH=%~1
CALL :dequote TARGETPATH
bin\fart -r -c -- "%TARGETPATH%\*.material","%TARGETPATH%\*.pu","%TARGETPATH%\*.os","%TARGETPATH%\*.xml","%TARGETPATH%\*.cfg","%TARGETPATH%\*." ".png" ".dds"
goto :eof
EDIT: I have updated the script to use findstr /I instead of variable substitution. For anyone that saw the last edit: the artifacts were due to me using hardware mouse in settings, idk why that causes artifacts but whatever.