From d6a008ded05075eea75d3cbcc66e3ad8634d5540 Mon Sep 17 00:00:00 2001 From: norimicry Date: Fri, 3 May 2024 11:04:44 -0400 Subject: [PATCH] Add Unlimited Players Mod to both Docker compose files Incorporated the Unlimited Players Mod in the docker compose files for both steam and gog versions. This mod allows for a dynamic number of players to join, and the number can be set via the UNLIMITED_PLAYERS_PLAYER_LIMIT environment variable. Additionally, new configuration and manifest files were added for the UnlimitedPlayers mod. --- README.md | 4 ++++ docker-compose-gog.yml | 4 ++++ docker-compose-steam.yml | 4 ++++ .../mods/UnlimitedPlayers/UnlimitedPlayers.dll | Bin 0 -> 23040 bytes .../mods/UnlimitedPlayers/config.json.template | 9 +++++++++ docker/mods/UnlimitedPlayers/manifest.json | 9 +++++++++ 6 files changed, 30 insertions(+) create mode 100644 docker/mods/UnlimitedPlayers/UnlimitedPlayers.dll create mode 100644 docker/mods/UnlimitedPlayers/config.json.template create mode 100644 docker/mods/UnlimitedPlayers/manifest.json diff --git a/README.md b/README.md index f3bff3f..72c361d 100644 --- a/README.md +++ b/README.md @@ -104,6 +104,10 @@ environment: - AUTO_LOAD_GAME_LAST_FILE_LOADED=${AUTO_LOAD_GAME_LAST_FILE_LOADED-null} - AUTO_LOAD_GAME_FORGET_LAST_FILE_ON_TITLE=${AUTO_LOAD_GAME_FORGET_LAST_FILE_ON_TITLE-true} - AUTO_LOAD_GAME_LOAD_INTO_MULTIPLAYER=${AUTO_LOAD_GAME_LOAD_INTO_MULTIPLAYER-true} + + # Unlimited Players Mod + - ENABLE_UNLIMITEDPLAYERS_MOD=${ENABLE_UNLIMITEDPLAYERS-true} + - UNLIMITED_PLAYERS_PLAYER_LIMIT=${UNLIMITED_PLAYERS_PLAYER_LIMIT-8} # Save Backup mod ## Disabling this will stop saves being backed up diff --git a/docker-compose-gog.yml b/docker-compose-gog.yml index b692703..d5193c7 100644 --- a/docker-compose-gog.yml +++ b/docker-compose-gog.yml @@ -52,6 +52,10 @@ services: - AUTO_LOAD_GAME_FORGET_LAST_FILE_ON_TITLE=${AUTO_LOAD_GAME_FORGET_LAST_FILE_ON_TITLE-true} - AUTO_LOAD_GAME_LOAD_INTO_MULTIPLAYER=${AUTO_LOAD_GAME_LOAD_INTO_MULTIPLAYER-true} + # Unlimited Players Mod + - ENABLE_UNLIMITEDPLAYERS_MOD=${ENABLE_UNLIMITEDPLAYERS-true} + - UNLIMITED_PLAYERS_PLAYER_LIMIT=${UNLIMITED_PLAYERS_PLAYER_LIMIT-10} + # Save Backup mod ## Disabling this will stop saves being backed up - ENABLE_SAVEBACKUP_MOD=${ENABLE_SAVEBACKUP_MOD-true} diff --git a/docker-compose-steam.yml b/docker-compose-steam.yml index 30ff962..1f9f45e 100644 --- a/docker-compose-steam.yml +++ b/docker-compose-steam.yml @@ -61,6 +61,10 @@ services: - AUTO_LOAD_GAME_FORGET_LAST_FILE_ON_TITLE=${AUTO_LOAD_GAME_FORGET_LAST_FILE_ON_TITLE-true} - AUTO_LOAD_GAME_LOAD_INTO_MULTIPLAYER=${AUTO_LOAD_GAME_LOAD_INTO_MULTIPLAYER-true} + # Unlimited Players Mod + - ENABLE_UNLIMITEDPLAYERS_MOD=${ENABLE_UNLIMITEDPLAYERS-true} + - UNLIMITED_PLAYERS_PLAYER_LIMIT=${UNLIMITED_PLAYERS_PLAYER_LIMIT-10} + # Save Backup mod ## Disabling this will stop saves being backed up - ENABLE_SAVEBACKUP_MOD=${ENABLE_SAVEBACKUP_MOD-true} diff --git a/docker/mods/UnlimitedPlayers/UnlimitedPlayers.dll b/docker/mods/UnlimitedPlayers/UnlimitedPlayers.dll new file mode 100644 index 0000000000000000000000000000000000000000..74926ad6662fa1ea8fbfe91b2d359afdff2dcc3c GIT binary patch literal 23040 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