Skip to content

Completely eliminate the awkward installer with a runtime script instead #83

@zekesonxx

Description

@zekesonxx

Introducing: blt4l_launcher. A single-file bash launcher script, designed for distro packaging with no external dependencies (except zenity for error messages, but that's wholly optional).

Features:

  • Automatically copy in mods/ if missing
  • Automatically copy in mods/base/ if missing
  • Detects the Steam runtime and switches binaries as needed
  • Loads a binary in the gamedir if present (so, will look for $PAYDAY2/libblt_loader.so before /usr/lib/blt4l/libblt_loader.so)
  • Fail gracefully

Rough idea of new blt4l install instructions:

  1. Install the respective blt4l package for your distro: Debian, Fedora, Arch, etc
  2. Set PAYDAY 2's launch options in Steam to blt4l %command%
  3. Run the game

Pros over the old system:

  • Distro packaging friendly
    • Easily change library or mods dir paths using simple patch files on the script
    • No install time scripts
  • Handles running with or without the Steam runtime without missing a beat
  • No user interaction needed to install the mods directory
  • Simply delete mods/base and run the game again to repair/update the base mod
  • Easily distribute updates or modifications to the base mod, just tell the user to delete mods/base to update.
  • Don't have to figure out where the game is (Steam will automatically put us there)

Cons over the old system:

  • Doesn't automatically modify the game's launch options
    but it is a lot simpler to explain to a user on how to do it
  • Less friendly to installing outside of a package manager

Folder mockup of a proper package install (Arch standards here):

/usr
└── bin
    └──blt4l (installer script)
└── lib
    └── blt4l
        ├── libblt_loader.so (compiled for the distro)
        ├── libblt_loader_steamrt.so (compiled for the steam runtime)
        └── mods (mods folder from the repo)
            └── ...

Metadata

Metadata

Assignees

No one assigned

    Labels

    installerRelating to the BLT4L installation system

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions