A responsive cross platform launcher for GZDoom and similar ports based on QT.
Website and Downloads: http://nephrite.uk/arachnotron
Gitlab: https://gitlab.com/Lycanite/arachnotron
About
So I wanted to learn how to make a QT Quick App as well as the basics of C++ and decided that I would work on a new Doom Launcher to do this! Also Arachnotron are the best Doom monsters so naturally that was the launcher's name. Please report any problems on Gitlab.
JSON Configs
Arachnotron uses human readable json files to manage profiles into categories, these can be editing within the launcher or by hand with a text editor. My current WIP project makes use of this through git to keep the files I use in multiplayer with my friends in sync for example. Multiple jsons can also be imported together to make things much quicker and easier.
Relative Paths
Arachnotron can use paths relative to the location of the profile json file, this means that people wanting to package together several wads/pk3s can do so and include a category and profile jsons at the root of their project ready for others to import. All paths use forward slashes / even in Windows.
Profile and Launch Level Resources
A list of files/folders can be added to a profile in a specific load order in the profile edit page. Then on the launch page, more files or folders can be added, this is good if for example you are using several gun wads and but want to keep changing map wads as the profile resources remain unchanged, but the launch resources can be constantly changed. In the future I want to add Engine level resources for things such as brightmaps.pk3 and lights.pk3 for GZDoom, for now only configs can be set per Engine.
Profile Art
Category and Profile icons and backgrounds can be included to make things look fancy!
Categories
Profiles can have a comma separated list of category names that they are allowed to show up in (case sensitive currently).

Profiles
Profiles provide a list of files or folders to load as well as commonly used cvars, you can also add any other arguments you want at the profile level.

The profile launch page.

The profile edit page.

An example of a profile for my project showing the cvars that are commonly used with their reset to profile default buttons as well as a custom background image. You can also see the launch command preview that I've generated which is use for copying into launch scripts or for testing the launch commands out.

A busier edit page of my project's main profile, many resources are loaded from paths that are relative to where the profile's json file is located, absolute paths can also be used but should be avoided if you plan on sharing the profile with others or bundling one with a project. This profile is quite large and all my other profiles inherit from it making managing them all at once incredibly easy.
Iwads
Iwad names and paths are set separately, this allows for profiles to be easily shared across multiple devices as there are no absolute paths needed, instead they just refer to an Iwad by name (currently case sensitive, but the edit profile page offers a drop down for selecting Iwads easily). The "Find Iwads In Folder" button can be used to be automatically find and add Iwads in a folder (based on their filenames).

Engines
Multiple engines can be added which are then set in profiles by name much like how Iwads work. The config path for an engine can also be set if needed as well.
