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

Import,download and load mods from a mods preset file #995

Open
1 task done
marwanbd83487 opened this issue Mar 8, 2024 · 3 comments
Open
1 task done

Import,download and load mods from a mods preset file #995

marwanbd83487 opened this issue Mar 8, 2024 · 3 comments
Labels
enhancement New features or enhancements to existing ones

Comments

@marwanbd83487
Copy link

marwanbd83487 commented Mar 8, 2024

Feature Request

Import, download, and load mods from a mods preset file. This file will be parsed for mod installation and loading mods

Feature Information:

  • What should it do?
    enable an option to import,download, and load mods via a one click solution
    make a textbox called "Modlist File (Exported from A3 Launcher)" in the Arma 3 game server startup configuration,
    the user inputs a Filename for an exported mod list. This file will be parsed for mod installation and loading.
    the user uploads the HTML file to the root directory (eg. /home/container/modlist.html). Leave blank to disable loading mods from a mod list ( html file is generated by the game automatically as a mods preset file)
    the script will check the mods if they exist on the server, and are up to date, and a quick checksum check and load all the mods to start with the server
    If mods don't exist
    It downloads each mod and has its folder and files changed to lowercase (to prevent errors).
    It also checks for .bisign files in downloaded mods and copies them to the keys folder in the game directory

The settings JSON for pterodactyl egg arma 3 is here
https://github.com/parkervcp/eggs/blob/master/game_eggs/steamcmd_servers/arma/arma3/egg-arma3.json

"name": "Modlist File (Exported from A3 Launcher)",
            "description": "Filename for an exported modlist. This file will be parsed for mod installation and loading. Upload your HTML file to the root directory (eg. \/home\/container\/modlist.html). Leave blank to disable loading mods from a mod list.",
            "env_variable": "MOD_FILE",
            "default_value": "modlist.html

  • Is it specific to a given application module?
  • Yes,Arma 3

i made 2 short videos explaining this
1st video showing how the whole mods system work on arma 3 game - https://youtu.be/N0LjbLOjUHw
2nd video showing how Ptero panel handles mods ( it has this feature) - https://youtu.be/xTGiWPBU504

I confirm:

  • that I have searched for an existing feature request matching the description.
@marwanbd83487
Copy link
Author

marwanbd83487 commented Mar 9, 2024

How it works, I think is
the HTML file contains links to mods
the script loads all the mods id's in an array or something from the HTML file then checks if they exist on the server and does a quick integrity/update check
if not,
then download each mod with steamcmd
workkshop_download_item <appid> <modworkshopid>
Arma 3's app id is: 107410

A mod's workshop ID is in the URL for its' workshop page. example mod URL is https://steamcommunity.com/sharedfiles/filedetails/?id=463939057
to download that mod you would type:
workshop_download_item 107410 463939057
the downloaded mod would be in a folder called @463939057
anyways the script downloads each mod,
after downloading a mod, the script will have the mod folder and files changed to lowercase
( NO capital letters, or spaces, to prevent errors).
and then checks each downloaded mod for keys, and moves them to the Keys folder server root directory, which is where the are MPMission folder and Arma 3 EXE are located

after all is finished it adds the mods id's listed in the HTML file to the -mod= startup parameter so the server launches with these mods ( example -mod=@463939057;@2NDMODHERE;@3RDMODHERE; )

(.bikey files are called keys, they are used by the server will allow the client to use the mod)
sample .html mods preset file here https://s3.amazonaws.com/guildtag/file/12395/67509-483799.html
https://community.bistudio.com/wiki/Arma:_Mod_Folders
https://community.bistudio.com/wiki/Arma_3:_Startup_Parameters

list of all the extra configs that can be changed in this JSON file
https://github.com/parkervcp/eggs/blob/master/game_eggs/steamcmd_servers/arma/arma3/egg-arma3.json

@marwanbd83487 marwanbd83487 changed the title Import mods from a mods list preset html page Import,download and load mods from a mods preset file Mar 11, 2024
@IceOfWraith IceOfWraith added the enhancement New features or enhancements to existing ones label Apr 11, 2024
@WirtsLegs
Copy link

+1 for this, would be great for all bohemia games such as Arma 3, DayZ etc.

@p0t4t0sandwich
Copy link
Contributor

I've been toying with the idea of creating an AMP plugin that can work with steam workshop mods, download them, view mod info, and save different "presets" for when you want to switch things up.
I aim to have it generalized so it could work with any instance that uses workshop mods.

So to make sure my understanding is correct:

  • Upload the HTML file
  • Have a script that checks to see if the mods are present
    • If not, pass the list of mod ids off to AMP to download them
  • Move the mod keys into the right folder
  • Add the mod ids to the startup parameter

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New features or enhancements to existing ones
Projects
None yet
Development

No branches or pull requests

4 participants