Jump to content
colinm9991

Arma Preset Creator (Source Code included)

Recommended Posts

 

Hi all,

 

Some may remember a thread I created last year announcing a tool I created called the Arma Preset Creator, this thread has since been deleted as I thought to re-announce the latest updates and changes.

The application was originally hosted in Azure, which I decided to migrate away from several weeks back, and I took this as an opportunity to recreate the application with Angular as a learning experience, with a backend API.

 

Description

This aims to bridge the gap between Steam Workshop Items and the Arma 3 Launcher whereby any Steam Workshop items with dependencies require a preset to be created manually for these to be loaded in-game. The application solves this problem by generating the preset HTML file for you, which can then be imported into the Arma 3 Launcher.

To use it you simply have to retrieve the URL or ID of the Steam Workshop item and paste that into the site, then hit "Create" and it should download a HTML file which can be imported.

 

Alternatively you could share a link to embed on your website or in your Teamspeak, Discord or Steam communities. This allows people to instantly download a preset without having to retrieve the URL or ID. Sharing a link will generate the preset every time that it is clicked. This means that the preset will always be up to date with the collection or item.

 

Capabilities

  • Generate Arma 3 Launcher Presets based on the following Steam Workshop items
    • Collections
    • Missions with mod dependencies
    • Mods with dependencies
  • Generate embeddable/shareable links to embed on your website or community channel which allows people to download Presets in a single click.

 

Usage

Generating Preset

  1. Enter the URL or ID for a Steam Workshop item
  2. Click Create
  3. Import the downloaded HTML file into your Arma 3 launcher.

 

Sharing Preset

  1. Retrieve a Workshop item ID and enter it on the website
  2. Click "Share" and then "Copy", or manually copy if you prefer
  3. Share the link via Steam chat or embed in any platform that your community uses to communicate/share mod info.

 

URLs:

Arma Preset Creator

Arma Preset Creator - GitHub

 

Privacy Notice:

The API will log the Steam workshop item IDs used to generate presets, this is only to track usage statistics and also see the diversity between the types of workshop items which this application is used for.

No personally identifiable information is, nor will ever be logged with this application, no cookies are used, and no ads will ever run on the website.

 

Changelog:

[31/05/2022]:

UI Overhaul (see comments below)

[21/05/2022]:

Brought this back online under a new domain name.

 

[14/07/2021]:

I am no longer affiliated with this domain name as it has been handed over to a different team who will look after it going forward. Some time back I parted ways with Arma and this became less of a hobby for me. The code remains open source under the MIT GPLv3 (since the recent updates) license on GitHub.

[08/12/2020]:

  • Allow users to paste a URL linking directly to a Steam Workshop Item, as well as pasting an ID.
  • Having seen some errors from somebody trying to generate a preset for an item with no mods or dependencies, I have added some more descriptive error messages to say why a preset with no items won't be generated.

[30/11/2020]:

  • Switched it back on with a new host, having been asked by several people.

[27/11/2020]:

  • Ended support for this and have instead uploaded the server side source code to github.

[02/02/2019]:

  • Added HTTPS

[12/12/2018]:

  • Added support for workshop items whose dependencies contain dependencies.
    • Gracefully, duplicates will be filtered at request time so only unique items will be pulled back which is results in lighter load on the Steam Web API
  • Added integration tests (non client facing) to ensure quality and consistency with the API response when refactoring any of the underlying code.
    • Tests added for the scenarios where a workshop item has
      • No dependencies
      • Top level dependencies
      • Nested dependencies (The request resource has a dependency who also has dependencies)
      • Nested dependencies with duplicates (The request resource has a dependency who also has dependencies, some of which are duplicated in the parent resource)

[11/12/2018]:

  • Added some error handling around workshop items which have no children dependencies, this will be rejected as there is no need for this utility to create a preset for a single mod without dependencies.
  • Mods with dependencies will now generate correct presets, whereas previously the parent mod was not included in the final preset file.
  • API reference has updated with a breaking change removing the ArmaPresetRequest and instead passing the SteamWorkshopItem object back into the Arma Generate Preset operation. I will add semantic versioning in the future to protect developers against breaking changes.

[10/12/2018]:

  • Presets can now be generated from missions and other workshop item types which have dependencies
    • Workshop item dependencies which no longer exist on the Steam Workshop will be ignored/excluded from the generated preset, and also will not return from the '/api/steam/workshop/publisheditems/{publishedItemId}' operation
  • As this application has been released, I have obsoleted (rather than removed) the '/api/steam/collections/{collectionId}' operation, developers should now use '/api/steam/workshop/publisheditems/{publishedItemId}'
  • Like 3
  • Thanks 2

Share this post


Link to post
Share on other sites

Idea is good but can you create a preset based on a scenario's mod requirements? I hate having to hunt down and create a preset just to play a couple of missions, each with their own presets. That would save a lot of time.

Share this post


Link to post
Share on other sites
2 minutes ago, Valken said:

Idea is good but can you create a preset based on a scenario's mod requirements? I hate having to hunt down and create a preset just to play a couple of missions, each with their own presets. That would save a lot of time.

 

Unfortunately, that functionality isn't implemented, mostly as I'd never thought of that - I'll have a look at how to handle this and differentiate between collections and missions.

 

The only problem I anticipate is where to draw the line in terms of mods if one mod has dependencies, although this is something which the Launcher will alert you about and take of.

 

Can you provide a mission URL which I could use as an example?

Share this post


Link to post
Share on other sites

Here is one example of a popular and great mission:

 

https://steamcommunity.com/sharedfiles/filedetails/?id=1517530157&searchtext=

 

You can check the author for more but he is a not a crazy mod user.

 

This one is just insane:

 

https://steamcommunity.com/sharedfiles/filedetails/?id=1452083550&searchtext=hunted

 

Would be amazing to make a working preset automatically!

 

Share this post


Link to post
Share on other sites
2 hours ago, Valken said:

Here is one example of a popular and great mission:

 

https://steamcommunity.com/sharedfiles/filedetails/?id=1517530157&searchtext=

 

You can check the author for more but he is a not a crazy mod user.

 

This one is just insane:

 

https://steamcommunity.com/sharedfiles/filedetails/?id=1452083550&searchtext=hunted

 

Would be amazing to make a working preset automatically!

 

 

Update

You can now generate presets from missions, and general workshop items which have dependencies. - Main post updated to reflect this

 

Any mods in the dependencies which are no longer available on Steam will be ignored from the generated preset.

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites

Updated:

Added some error handling around the creation of a preset where the workshop item is a single item with no dependencies, for this you should just use the Arma 3 launcher to create the preset - it's a single item and has no complexity behind it, I have no plans of adding support for this.

 

 

  • Thanks 1

Share this post


Link to post
Share on other sites

Updated:

The preset creator can now handle workshop items whose dependencies also contain dependencies, and can go n levels deep. It will also filter duplicates based on their published file ID.

 

Please report any issues, findings or suggestions in this thread and I will pick them up in due course depending on how severe, feedback also welcomed, I am now focusing on API integration & end to end testing to begin maintaining quality and backward compatibility.

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites

Change Notice:

I'm going to temporarily switch off the website this Saturday (02/02/2018) at 1800 GMT 0, I've had a certificate sitting on my desktop for a few weeks now waiting to be installed but I've been somewhat lazy, this will enable HTTPS support - there is nothing sensitive handled over the connection but it doesn't harm the SEO for being indexed on Google.

 

I'm also going to update the error handling, in one case I noticed that a single collection seems to cause Steam's Web API to return a 500 status code - there is nothing I can do about this but the preset creator currently leaves this fall through and doesn't return an error to the end user. I'm going to find this again in the logs and report this with Steam's API developers.

 

Update:

HTTPS is now enabled with HTTP being redirected.

Share this post


Link to post
Share on other sites

Change Notice:

I've just today noticed that this was no longer working due to DNS problems. I have migrated away from Azure DNS and this is now up and running again. Azure DNS certainly wasn't the issue, but as the domain was previously registered via Azure; it was time to finally migrate away.

 

This is now up & running again.

  • Like 1

Share this post


Link to post
Share on other sites

The cloud server went offline over the past week, I've just given it a swift & hard kick and it's back online again.

Share this post


Link to post
Share on other sites

Brought this back online after being contacted by several people and I've also introduced link sharing so that you can embed links on your site or in Discord, Teamspeak or Steam groups.

 

A donation button has been added, but not mandatory of course. I earn more than enough to cover the costs of the server, this is optional.

 

All source code is available on GitHub.

  • Thanks 1

Share this post


Link to post
Share on other sites

There may be some downtime experienced over the coming days/weeks.

 

I've created a Raspberry Pi cluster and will be moving this to k3s fronted by a web proxy. Domain names and what not will stay the same. Currently doing some internal testing prior to switching the domain over.

Share this post


Link to post
Share on other sites

I'm no longer in control of this domain as I decided to move away from this project some time back.

 

Unfortunately the license has not been upheld as my name has been removed from the website. The source code, however, remains to be open source on GitHub

Share this post


Link to post
Share on other sites

Pushed an update to overhaul the UI and update to Bootstrap 5.

 

Inspired and motivated, to stop being lazy, by the great work on arma3pregen, I've added support to specify multiple collections so you can generate a preset based on mandatory and optional items.

 

You can specify up to 5 collections.

The first item is always mandatory, so this should be your required mods.

All other items can be specified as optional or mandatory.

 

There is now a new page where you can toggle which optional mods you'd like included in your preset.

 

There are of course similarities between this and arma3pregen as there are only so many ways to skin a cat (as the saying goes).

 

In the coming days I'll begin tweaking the UI to make it a bit cleaner and nicer (feedback welcome), as well as de-duping the mods so, as an example, CBA_A3 only appears in the mandatory mods and not as a selectable optional mod. Also, I'll include an option to name the preset when there's more than 1 collection ID specified.

  • Like 2

Share this post


Link to post
Share on other sites

There is never a dull moment with Namecheap.

 

I've no idea what's happened, but the DNS is no longer resolving. I've shifted DNS responsibilities over to DigitalOcean. Please bear with as this takes some time to propagate.

 

It's back online now.

Share this post


Link to post
Share on other sites

Hi @colinm9991. I love your tool. Any chance you can lift the limit of 5 collections to 15 collections? The tool would be perfect, but 5 is too few for my needs.

Share this post


Link to post
Share on other sites

Hi, a small request - it would be very useful to have this script (or at least your website) detect CDLCs as required items. When you generate a preset in Arma Launcher, it will save the CDLC as a requirement in a separate container, visually speaking. Seeing this being done in APC would be great.

Share this post


Link to post
Share on other sites

Sorry, I went AWOL for a while.

 

On 1/22/2023 at 7:20 PM, KNlGHT said:

Hi @colinm9991. I love your tool. Any chance you can lift the limit of 5 collections to 15 collections? The tool would be perfect, but 5 is too few for my needs.

The limit has been increased to 20.

 

On 1/23/2023 at 10:33 PM, honger said:

Hi, a small request - it would be very useful to have this script (or at least your website) detect CDLCs as required items. When you generate a preset in Arma Launcher, it will save the CDLC as a requirement in a separate container, visually speaking. Seeing this being done in APC would be great.

This is an issue I ran into also when I started playing Vietnam. I'll see what I can do to streamline this.

 

Other updates I've done recently:

* The website now supports dark mode. Your choice of Light or Dark are remembered for when you next browse to the site.

* Your optional addons will be remembered for a specific preset, so you won't have to manually enable the optional addons every time you wish to download an updated Preset HTML.

 

Both of the aforementioned features use the browser's local storage to persist.

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×