Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update README #237

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
127 changes: 121 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,30 @@
# mint

3rd party mod integration tool for Deep Rock Galactic to download and integrate mods completely
externally of the game. This enables more stable mod usage as well as offline mod usage. Works for
both Steam and Microsoft Store versions.
> **Disclaimer**
>
> `mint` is not officially endorsed by Ghost Ship Games (GSG), not are `mint` contributors
> affiliated with GSG**. `mint` is a **third-party tool**, use at your own risk.

`mint` is third-party party mod integration tool for **Deep Rock Galactic** (DRG) to download and
integrate mods completely externally of the game. This enables more stable mod usage as well as
offline mod usage.

## Supported game versions

`mint` is intended to work for both Steam and Microsoft Store versions of DRG.

## Supported environments

Contributor bandwidth is very limited, so only select environments are intentionally supported
depending on what environments the contributors have access to test in. We are unable to help
diagnose your problems if you are using an environment that we don't have access to.

- `mint` is intended to run on:
- Windows 11. Windows 7 is *not* supported as it is considered a [Tier 3 platform as per rustc's
Target Tier Policy][win7-tier-3].
- Common Linux distros. Ubuntu is what I have access to. Your mileage may vary depending on the
exact distro and compositor.
- Running on macOS is *not* supported.

<img alt="Graphical User Interface" src="https://github.com/trumank/mint/assets/1144160/0305419f-a2af-4349-9d63-12e19d97102f">

Expand All @@ -18,12 +40,105 @@ when prompted.

Most mods work just as if they were loaded via the official integration, but there are still some
behavioural differences. If a mod is crashing or otherwise behaving differently than when using the
official integration, *please* create an
[issue](https://github.com/trumank/mint/issues/new) so it can be addressed.
official mod.io integration, *please* create an [issue](https://github.com/trumank/mint/issues/new)
so it can be addressed.

## Usage etiquette

`mint` does not enforce sandbox saves. As such:

- **Use mods responsibly**.
- **Respect other people who wish to preserve progression**.
- **Do not host unmarked modded lobbies**. `mint` will automatically prepend a `[MODDED]` tag in
front of your lobby name. We consider behaviors such as removing this prefix and hosting unmarked
lobbies **disrespectful** to other players who probably did not consent to joining your modded
lobby and has no means of telling otherwise.

For more details, please consult our [user guide](https://github.com/trumank/mint/wiki).

## Usage
---

## Compiling from Source

`mint` can be tricky to build from source, because it has two components:

1. GUI and supporting library code (the "**app**")
2. DLL hook (the "**hook**")

The **app** needs to be built for your **host** target.

- If you are on Windows, this could be something like `x86_64-pc-windows-msvc`.
- If you are on Linux, this could be something like `x86_64-unknown-linux-gnu`.

The **hook** must be cross-compiled as a C dynamic library for the `x86_64-pc-windows-msvc` or
`x86_64-pc-windows-gnu` target depending on your environment. This means that you will need a
suitable cross-compiler to build the hook if your host environment is not one of
`x86_64-pc-windows-msvc` or `x86_64-pc-windows-gnu`.

### Requirements

You need a working Rust distribution to build `mint`, which can be acquired via the [`rustup`
installer][rustup].

`mint` requires a [**nightly** rust toolchain][rustup-nightly-toolchain].

You can acquire a nightly toolchain suitable for your host environment by:

```bash
$ rustup install nightly
```

`mint` also requires [`gtk` dependencies][gtk].

#### Linux / WSL

On Linux, you will need a cross-compiler for `x86_64-pc-windows-gnu`. For example,
`x86_64-w64-mingw32-gcc`.

I only have access to Ubuntu, so the exact package names and installation instructions will depend
on your specific Linux distro.

##### Ubuntu

```bash
$ sudo apt-get update
$ sudo apt-get upgrade
# Basic build utils
$ sudo apt-get install build-essential pkg-config
# C cross-compiler
$ sudo apt-get install gcc-mingw-w64
# gtk3
$ sudo apt-get install libgtk-3-dev
```

#### Windows

On Windows, you'll need the latest Visual C++ build tools. It's easiest if you acquire it via
[`rustup-init`][rustup] and follow the recommended installation settings. See
<https://rust-lang.github.io/rustup/installation/windows-msvc.html> for more details.

### Compiling and running

For development builds,

```rs
$ cargo build
```

For actual usage, you should build with release profile

```rs
$ cargo build --release
```

[win7-tier-3]: https://doc.rust-lang.org/rustc/platform-support/win7-windows-msvc.html
[rustup]: https://rustup.rs/
[rustup-nightly-toolchain]: https://rust-lang.github.io/rustup/concepts/toolchains.html
[gtk]: https://www.gtk.org/docs/installations/

---

## Basic Usage

This section assumes that you are on Windows and is using the steam version of DRG, working with
either local `.pak`s or mod.io mods.
Expand Down
Loading