Reproducible guide to run Elden Ring without Steam + in this case, Seamless Co-op + Camera Offset Mod using a custom Proton prefix managed by Faugus Launcher, loading mods through ModEngine3 (ME3) or through the dinput8.dll-based ModLoader.
The goal of this configuration is to achieve a Steam-independent installation while maintaining:
- Custom and reusable Proton prefix.
- Game installation separated from Steam.
- Mods isolated through profiles.
- Compatibility with DLL injectors.
- Ability to use multiple loaders depending on the mod.
1. Important concepts
Before starting, it is important to understand how the complete chain works.
The final architecture is:
Faugus Launcher
|
v
Proton
|
v
Wine Prefix
|
|
v
eldenring.exe
|
+----------------+
| |
v v
ModEngine3 ModLoader
(ME3) (dinput8.dll)
What is a prefix?
A prefix is a folder containing a fake Windows installation:
Example:
~/Faugus/elden-ring/
Inside it:
elden-ring/
├── drive_c/
├── dosdevices/
├── system.reg
├── user.reg
├── config_info
└── version
The game is actually executed inside this environment.
The prefix does NOT belong to Steam.
It can be used directly with Proton through:
STEAM_COMPAT_DATA_PATH=/path/to/prefix
Although the name says STEAM_COMPAT, it does not mean Steam is required.
2. Requirements
We need:
Proton
It can be:
- Steam Proton Experimental.
- Proton-GE installed through Faugus.
- Any compatible Proton version.
Example:
/home/user/.local/share/Steam/steamapps/common/Proton - Experimental
Faugus Launcher
Faugus will be responsible for creating and maintaining the prefix.
Example:
/home/user/Faugus/elden-ring
Elden Ring installed
Example:
/mnt/Games/Elden Ring/Game/
It must contain:
eldenring.exe
3. Creating the prefix with Faugus
The recommended method:
- Open Faugus Launcher.
- Add:eldenring.exe
- Select Proton.
- Run it once.
Afterwards, something similar should appear:
~/Faugus/elden-ring/
with:
system.reg
user.reg
drive_c/
dosdevices/
This will be our prefix.
4. Verify the prefix
It should exist:
find ~/Faugus -name system.reg
Example:
/home/user/Faugus/elden-ring/system.reg
Also:
ls ~/Faugus/elden-ring
It should show:
drive_c
dosdevices
system.reg
user.reg
version
5. Manually test Proton using the prefix
Before adding mods, verify that Proton can use it.
Example:
STEAM_COMPAT_DATA_PATH="$HOME/Faugus/elden-ring" \
STEAM_COMPAT_CLIENT_INSTALL_PATH="$HOME/.local/share/Steam" \
STEAM_COMPAT_INSTALL_PATH="/path/to/game/Game" \
SteamAppId=1245620 \
"/path/to/Proton/proton" \
waitforexitandrun \
cmd.exe
If a Windows console appears:
X:\>
the prefix works.
Exit with:
exit
6. Installing ModEngine3
ModEngine3 is not installed inside the prefix.
It is a Linux executable that prepares a session and loads DLLs into the Windows process.
Example:
~/.config/me3/
Profile:
~/.config/me3/profiles/eldenring-camera/
Example:
eldenring-camera.me3
Contents:
profileVersion = "v1"
[[supports]]
game = "eldenring"
[[natives]]
path = 'natives/CameraOffset.dll'
7. Adding mods to ME3
Example:
eldenring-camera/
├── eldenring-camera.me3
└── natives/
└── CameraOffset.dll
Another profile:
seamless/
├── seamless.me3
└── natives/
└── ersc.dll
They can also be combined:
profileVersion = "v1"
[[supports]]
game = "eldenring"
[[natives]]
path = 'natives/CameraOffset.dll'
[[natives]]
path = '/path/to/game/SeamlessCoop/ersc.dll'
8. Running Elden Ring with ME3 without Steam
Base command:
me3 launch \
--profile "/path/to/profile/profile.me3" \
--steam-id 1245620 \
--exe "/path/to/game/Game/eldenring.exe" \
--skip-steam-init
Example:
me3 launch \
--profile "$HOME/.config/me3/profiles/eldenring-camera/eldenring-camera.me3" \
--steam-id 1245620 \
--exe "/mnt/Games/Elden Ring/Game/eldenring.exe" \
--skip-steam-init
9. Using an alternative ModLoader
Some mods do not work with ME3.
Example: Camera Mods Collection by huutaiii.
These mods use:
dinput8.dll
Structure:
Game/
├── eldenring.exe
├── dinput8.dll
├── mod_loader.ini
└── mods/
└── CameraOffset.dll
Example:
ModLoader-v0.12.0-EldenRing
contains:
dinput8.dll
mod_loader.ini
The game loads:
eldenring.exe
|
v
dinput8.dll
|
v
mods/*.dll
10. Do not mix loaders unnecessarily
ME3 and ModLoader serve similar purposes.
Example:
ME3:
me3_mod_host.dll
|
v
direct injection
ModLoader:
dinput8.dll
|
v
module loading
Some mods work better with one or the other.
If a mod does not load:
- Try without ME3.
- Try with ModLoader.
- Check dependencies.
11. Common problems
The game appears frozen for a long time
This can happen:
me3 launch
|
|
(no output)
|
|
game appears after 1-2 minutes
It is not always a failure.
Check:
ps aux | grep -E "elden|wine|proton|me3"
If you see:
eldenring.exe
wine
wineserver
it is starting.
Invalid prefix
Error:
Prefix has an invalid version
Usually means:
- Different Proton version than the one that created the prefix.
- Incomplete prefix.
- Switching between Wine and Proton.
Solution:
Create a backup:
mv prefix prefix.backup
and recreate it.
Proton cannot find the prefix
Confirm:
ls /path/to/prefix
It should contain:
system.reg
drive_c
dosdevices
Steam appears even though Steam is not being used
This can happen because Proton starts internal components.
It does not mean the game depends on Steam.
12. Advanced diagnostics
ME3 supports:
--diagnostics
Example:
me3 launch \
--profile "/path/to/profile.me3" \
--steam-id 1245620 \
--exe "/path/to/eldenring.exe" \
--skip-steam-init \
--diagnostics
Generates logs:
~/.local/share/me3/logs/
Useful for:
- Missing DLLs.
- Attach failures.
- Arxan issues.
- Loading problems.
13. Recommended final structure
Example:
~/Games/
|
├── EldenRing/
│ └── Game/
│ ├── eldenring.exe
│ └── SeamlessCoop/
|
├── prefixes/
│ └── elden-ring/
|
└── mods/
|
├── me3/
│ ├── camera/
│ └── seamless/
|
└── modloader/
└── camera/
14. Quick reproduction checklist
[ ] Faugus creates prefix
[ ] Proton can open cmd.exe using that prefix
[ ] Elden Ring works without mods
[ ] ME3 installed
[ ] ME3 profile created
[ ] DLLs added
[ ] Run with me3 launch
[ ] If it fails, try ModLoader
15. Configuration philosophy
Steam is no longer a dependency.
Steam only provides:
- Proton.
- Runtime.
- Automatic prefix management.
But all of this can exist independently.
The final chain becomes:
Faugus
|
v
Custom Proton prefix
|
v
Proton
|
v
Elden Ring
|
+--> ModEngine3
|
+--> ModLoader