CubeCoders / AMP

Issue tracking and documentation for AMP
https://cubecoders.com/AMP
MIT License
207 stars 38 forks source link

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

Open marwanbd83487 opened 8 months ago

marwanbd83487 commented 8 months ago

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:

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

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:

marwanbd83487 commented 8 months ago

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

WirtsLegs commented 2 weeks ago

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

p0t4t0sandwich commented 2 weeks ago

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: