CubeCoders / AMP

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

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

Open marwanbd83487 opened 4 months ago

marwanbd83487 commented 4 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 4 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