Skip to content

[BUG] - Linux native modding doesn't work #1848

@Damglador

Description

@Damglador

Describe the bug
I configured EtG launch parameters with what r2modman gave me "/home/damglador/.config/r2modmanPlus-local/ETG/linux_wrapper.sh" %command%, installed BepInEx_EtG and mod the gungeon API, but when I try to launch the game from the launcher as modded or just through Steam it just instantly closes

To Reproduce
Steps to reproduce the behavior:

  1. Install native EtG
  2. Launch r2modman
  3. Select EtG
  4. Copy the command it gives and paste it in Steam launch arguments for EtG
  5. Try to launch EtG from Steam or r2modman

Expected behavior
You know, working

Additional context
I wasted some time playing with the bepinex script and was able to fix it.

The script didn't work at all for Enter The Gungeon, but after some rewriting, though also removing MacOS code, it launches the game and can successfully switch profiles. I just need to move the script in game directory and add ./doorstop %command% in launch parameters (doorstop being the script), after that Gale and r2modman can mod the game without an issue, and it doesn't have to use linux_wrapper.sh.

My script https://gist.github.com/Damglador/8063983f424a800531699cdc7e894462

Issues

List of general and per-game issues and how users can workaround them

General

  • Linux wrapper is broken Fix posix scripts to preserve arguments with spaces #1843
  • BepInEx run scripts are broken
    • Spaces in path issue like in Linux wrapper
    • The script expects game executable to be in the same directory as itself, but placed in the profile directory
    • Script checks for SteamLaunch as the second argument, but right now it's the fourth argument
    • Script tries to re-execute itself with exec $cmd $@, but fails
    • It shifts 4 arguments on shift 4, but the Steam right now gives ~12, it also doesn't account for the case of another wrapper or an argument placed after the script and before %command%, which will likely break the script. My script just discards all arguments between itself and the game executable, which is also not ideal, but at least reliable
  • Changing game installation directory is not possible, because r2modman looks for exe files, and it gives wrong filter for file picker

Solution: use https://gist.github.com/Damglador/8063983f424a800531699cdc7e894462

Enter the Gungeon

  • BepInEx requires mono installed on the system

Workaround: install mono, on Arch sudo pacman -S mono, on Ubuntu and alike sudo apt install libmono-2.0-dev

As a small note, you also need SDL2 on the system for the game to work, on Arch it's sdl2-compat, on Ubuntu it's libsdl2-2.0-0 or libsdl2-compat (I think).

Inscryption

  • Can't run at all from r2modman, gives:
Error
An unhandled error occurred
ENOENT: no such file or directory, open '/home/Games/SteamLibrary/steamapps/compatdata/1092790/pfx/user.reg'

Workaround: move BepInEx, doorstop_libs and my doorstop.sh to the game directory and launching it from Steam with ./doorstop.sh %command%. You can symlink BepInEx directory if you don't want to copy over newly installed mods

Ultimate Chicken Horse

  • r2modman doesn't even download bepinex run script and doorstop_libs

Workaround: steal doorstop_libs a profile of another Linux-native game

Straftat

  • r2modman doesn't download bepinex run script and doorstop_libs

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugMinor issue

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions