How to Run UNHUMAN Natively on Linux

UNHUMAN ships as an NW.js application, which is a bundle of Chromium and Node with the actual game inside as plain HTML, JavaScript and assets. That payload is platform-neutral, which means the Windows build you normally push through Proton can instead be fed to a native Linux NW.js runtime. The result is the same game with one less translation layer.

Two prerequisites before anything else. You should be comfortable doing basics in a terminal, like unpacking a tarball. And you should launch the game through Proton at least once first. That first run creates the Wine prefix where your save data lives, and the native setup will keep pointing at it, so nothing is lost either way.

Get the matching NW.js runtime

Every NW.js release pairs a specific Node with a specific Chromium, and the runtime you grab should match what the game was built against. At the time of writing the game runs on Chrome 150.0.7871.0, which corresponds to NW.js v0.114.0. Check this again after big patches, since it can move. Grab the Linux x64 build from dl.nwjs.io; the SDK flavour bundles DevTools, but the normal build is all you need.

Unpack it somewhere permanent, because the launcher will reference it from now on:

tar xzf nwjs-sdk-v0.114.0-linux-x64.tar.gz

Collect your three paths

The launcher needs three locations.

The AppData saves path. On Windows the game writes saves under AppData, and thanks to that first Proton run the same directory now exists inside your Wine prefix. A quick search will output your AppData directory:

The locate command printing the AppData saves directory

locate -r '289340/pfx/drive_c/users/steamuser/AppData/Roaming/UNHUMAN/saves$'

The runtime path. Wherever you extracted NW.js. You want to point at the nw executable inside that folder.

The extracted NW.js runtime folder with the nw executable

The game path. The playable payload sits in your Steam library at:

The package.nw path inside the Steam library

<SteamLibrary>/steamapps/common/UNHUMAN/package.nw

Write the launcher

Create a launch.sh anywhere outside the game folder, since a future patch can wipe anything stored next to the game files. Three lines is all it takes: export the AppData location, then hand package.nw to the runtime. So that’s the whole script:

A finished three-line launch script

#!/bin/sh
APPDATA=/path/to/compatdata/.../AppData/Roaming \
/path/to/nwjs-sdk-v0.114.0-linux-x64/nw /path/to/SteamLibrary/steamapps/common/UNHUMAN/package.nw

The trailing backslash continues the line; if you prefer, collapse everything onto a single line and skip it. Then don’t forget to make the script executable:

Marking the launch script executable with chmod

chmod +x launch.sh

Point Steam at it

Inside Steam, right-click UNHUMAN in your library and open its properties, the last option in the menu. In the Launch Options field, enter the full path of your launcher followed by # %command%:

UNHUMAN's Steam launch options pointing at the script

/path/to/launch-unhuman.sh # %command%

The # %command% tail is not optional. Steam insists that its own launch command appear somewhere in the line; parking it behind a comment satisfies the requirement while making sure only your script actually runs.

If you’d rather not keep a script at all, the same thing works inline: put the AppData assignment, the runtime path and the game path directly into the Launch Options field as one long line.

Launch the game from Steam as normal and it comes up on the native runtime, with no Proton in sight and your saves intact.

UNHUMAN running on the native Linux runtime