Conexus: your load order, simplified. Conexus works around the often broken in-game mod UI by using a Steam collection or list of links to ensure your load order is preserved in-game.
Other user's assetsAll the assets in this file belong to the author, or are from free-to-use modder's resources
Upload permissionYou can upload this file to other sites but you must credit me as the creator of the file
Modification permissionYou are allowed to modify my files and release bug fixes or improve on the features so long as you credit me as the original creator
Conversion permissionYou can convert this file to work with other games as long as you credit me as the creator of the file
Asset use permissionYou are allowed to use the assets in this file without permission as long as you credit me
Asset use permission in mods/files that are being soldYou are not allowed to use assets from this file in any mods/files that are being sold, for money, on Steam Workshop or other platforms
Asset use permission in mods/files that earn donation pointsYou are not allowed to earn Donation Points for your mods if they use my assets
Author notes
This project, source and release, is licensed under MIT. Please see the following link for further info. https://raw.githubusercontent.com/Hypocrita20XX/Conexus/master/LICENSE
File credits
This author has not credited anyone else in this file
Donation Points system
Please log in to find out whether this mod is receiving Donation Points
Merged modes (download/update), both are now handled automatically
Merged methods (collection/list), provide a URL to use a collection, if none is given, Links.txt will be used
Adjusted UI to accommodate these changes
Made log window bigger to keep overall window the same size
Cleaned up XML, specifically comments, adding/changing/removing
Cleaned up CS, again comments, removed version tags, felt more like bloat than help
Log window should now properly scroll to the bottom of the window with each new window
New log tag, DEBUG, to hopefully help with specific troubleshooting steps
Changed log level in generic exception from WARNING to ERROR (because this only happens when everything irreparably breaks)
Removed duplicate log message
Corrected spelling in certain log messages
Added lengthy debug/diagnostics when SteamCMD fails to download mods
Added download verification that complements the aforementioned diagnostics
Conexus will now try twice to download mods
If more than 1/4th of your list fails to download, Conexus will stop processing mods (to account for hidden mods)
Removed deleting mods in \262060, to save users of large mods lists time with subsequent use of Conexus
Changed check for Links.txt, from * to "steamcommunity", should be less error-prone
This means you don't need to preface comments with an asterisk starting with this version
Changed how the asterisk works, it now denotes mod names
Links file is now much more flexible, and can be formatting in a variety of ways
Implemented a character limit of 120 for the mod name, windows supports upwards of 260, but that seems excessive for this
Make sure your mod name comes before the link, otherwise odd stuff can/will happen
Changed data saving, if you delete the URL after a saved URL is loaded, it will be deleted from the config when you close Conexus
Added data text file verification (for HTML, Mods, and ModInfo in \Data and \Links)
Added missing exception handling when downloading HTML from source
Added check to make sure you're got an internet connection before anything is processed
Added check to make sure the user didn't accidentally forget to select a SteamCMD\mods directory
Added message to let the user know when debug info is being generated
Version 1.3.0
Log now saves much more often, to hopefully catch any possible breaks
Better debug info in logs: includes OS, mode, and method used
Moved generated files to Documents\Conexus
New directories are Conexus\Config, Conexus\Data, Conexus\Links, and Conexs\Logs
User data is now stored in Documents\Conexus\Config\config.ini
Updating from previous version? Please delete the AppData\Local\Conexus folder!
Methods are now properly separated: data specific to each is stored in Data (collection) and Links (list)
This means that you can technically use both methods without issue (not advised, but it shouldn't break too much)
Steam credentials are no longer saved (security concerns after switch from AppData)
User can manually enter this into the config.ini file, Conexus still loads them (still unencrypted)
Added exception handling in a lot of places (more plainly, Conexus should crash gracefully most of the time and recover without much issue)
Conexus should now remember if you've downloaded mods, and automatically set the mode to update, for convenience
Fixed odd creation of "_DD_TextFiles" folder outside of game's root directory
Fixed odd creation of "Select Mods Directory" folder in Conexus' root directory
Greatly expanded logging and saving of the log file
Implemented log tags:
INFO: General info
PROC: Conexus is, will, or has processed something
INPUT: User provided some kind of input
VERIFY: Some user>specific info was verified
WARN: Problems arose, but program did not break
ERROR: Problems arose, program was going to break, but was able to recover
Updated header information, to include new API, Peanut Butter INI
Header information was also updated to include each API's author(s) and version
Changed header info to show current version of Conexus
Known oddities:
After a fresh SteamCMD install, Conexus might crash if SteamCMD asks for a SteamGuard code prior to downloading/updating
Not entirely sure why, or how to prevent this, but it's highly inconsistent
Version 1.2.1
UI update, new colors, new layout - fancy!
New buttons, which lead to Conexus on Nexus Mods, Github
New buttons, which lead to the wiki, issue track on Github
Added some more logging to provide information regarding OS, method, and mode used
Updated some comments
Version 1.2.0
Probable fix for error when downloading mods
Epic and GOG are not supported (see https://github.com/Hypocrita20XX/Conexus/issues/11 for details)
Steam credentials are now required
Two new fields added, for username and password (and are automatically obscured)
Two new checkboxes next to each field to reveal the username/password
Credentials are saved locally, and used securely through steamcmd
Verification for the collection URL, runs when you hit the "Organize Mods" button
Verification for the steamcmd and mods directory, runs after you close the file browser
Added Extended WPF Toolkit API
Added watermark/hint text to URL, username, and password text boxes
Added asynchronous operation for most functions (resulting in a responsive UI)
Added message box (thanks to async) and a ton of message logs during operation
Because of the new logging system, operation may be a bit slower (but hopefully not by much)
Messages are saved to a text file, Log_<Date/Time>, in DarkestDungeon\mods\_Logs
Added very basic, untested exception handling, so when Conexus crashes, check the logs and send them to me
Changed all inputs so that they're disabled during operation, enabled when completed
Changed "Mod Directory" label to "Mods Directory"
Changed update functionality so that you can now modify your collection more easily
Updated header summary to further explain functionality of Conexus
Updated header summary to include credit to Extended WPF Toolkit and DaisyTian-MSFT (for password reveal functionality)
Started using version tags in comments to better differentiate when something was added
Disabled window resizing, so Conexus is always the same size
Updated quickstart guide
Version 1.1.3
Added a check to ensure that _DD_TextFiles is created
Version 1.1.2
Fixed "Update Mods" mode not working in list mode
Added a few checks to see if you're missing relevant text files when trying to update in either mode
Rolled back safety checks, just don't try to use both modes for different operations
Version 1.1.1
Fixed Conexus failing to start up when exiting after downloading mods
Fixed Conexus crashing when trying to update mods
Added safety check to ensure _DD_TextFiles and all files inside are properly deleted when switching methods (collection to list, or vice versa)
Version 1.1.0
Removed requirement for Steam credentials, opting for anonymous login
Removed Steam login verification (the main cause of Conexus failing to work)
Removed default text for the Collection URL field
Fixed an issue that could occur if the user selects "update mods" without first downloading mods
Added a dropdown for "Steam Collection" or "List" (for multi-platform operation)
Added functionality to allow either a Steam collection or a list of links (for non-Steam users)
Added checks to prevent a crash after folders/files are deleted
Updated Ookii.Dialogs to 3.1.0, from 1.1.0
Version 1.0.0
Features included in this release:
GUI Functionality
An option to provide a URL
An option to provide the location of the SteamCMD executable
An option to provide the Darkest Dungeon mod directory
Options to switch between downloading and updating mods
An option to provide Steam credentials
An option to enable or disable the saving of Steam credentials (will be saved unencrypted, default will not save credentials)
Underlying Functionality
Download source HTML from a provided URL, save that to a file
Parse through the source HTML and extract all relevant mod information, including the creation of functional folder names
Download all mods, then move and rename, then delete the original folders/files from the SteamCMD directory
Update mods by moving them from the mods directory to the SteamCMD directory, and removing what's in the mods directory
Updating also will move the updated mods back to the mods directory (with proper renaming) after updating is finished
Ensure that all relevant user data is saved locally for repeated use of the tool
Welcome To Conexus! Conexus is an all-in-one tool to convert a Steam collection or list of links into a load order for the game Darkest Dungeon
Your Load Order, Simplified If you've modded Darkest Dungeon for any length of time, you've more than likely discovered that the in-game UI breaks after an unknown amount of mods are loaded in.
Enter Conexus...
With the help of a straightforward GUI, Conexus will analyze your Steam collection, download or update those mods (you can do both!) and then move those folders to the correct location with names that you can understand, and that the game will read in the exact order your Steam collection is in. Not using a Steam collection? No problem, Conexus has got your back! Just provide links in a text file, and Conexus will make sure your mods are organized as you decide.
Disclaimers Please keep in mind that Conexus was developed on a machine running Windows 10. I don't have any experience with Linux or Mac, and cannot provide support for those operating systems. Thanks to the MIT license though, feel free to modify the code to create builds for those platforms! Just be sure to link back here, I would appreciate it. Ideally, you'll have a Steam collection where you've got all your mods organized in whatever order you like. However, with version 1.1.0, you can now provide a list of links, and Conexus will work all the same.
You'll need to get SteamCMD up and running, go ahead and download it, then I would recommend extracting to C:\SteamCMD, or any other drive/location you would prefer. Best not to have spaces though.
To get all the necessary files downloaded, you'll need to open the command prompt (Windows key + R, type in "cmd.")
Once you've done that, type "cd: <location of steamcmd>"
Next, type "steamcmd" and hit enter, SteamCMD should do its thing!
Lastly, you'll need to download and install the latest releaseof Conexus, it'll save to C:\Conexus by default
That's all the really hard stuff out of the way, let's get to organizing!
Operating Conexus You'll need four bits of information:
The URL of your Steam collection or list of links (saved in DarkestDungeon\mods\Links.txt)
The directory that SteamCMD was extracted/installed to
The directory of Darkest Dungeon's mod folder
Your Steam credentials Once you have that, you're ready to begin your adventure with Conexus!
When you have all the needed information stored with Conexus, simply hit the "organize mods" button and Conexus will do his best to ensure your in-game load order is of the highest quality.
Do note that this can take some time, depending on how large your mod list is. If you want to make sure everything is operating normally, just navigate to your Darkest Dungeon mod directory and your SteamCMD workshop directory. If you see folders appearing, disappearing, and/or doing a fine jig, everything is as it should be.
Just be patient, quality work takes time!
As of version 1.1.0, Conexus now offers a second method to utilize his services. This comes in the form of a text file, that you can enter URLs to all your mods. This file is located in Documents\Conexus\Links\Links.txt, and all you need to do is provide one URL per line. You can add mod names, starting with v1.4.0, using an asterisk (*), and Conexus will append that to the end of the folder name. Other than that, you're free to format your file in whatever suits you best! For more information, please see Understanding Links.txt on the wiki, in the user's guide, or in the video "Understanding Links.txt".
As of version 1.3.0, Conexus saves all data to Documents\Conexus. All user data is saved to Documents\Conexus\Config\config.ini
He'll no longer save your Steam credentials, but you can modify this file with that information, and he'll load them just fine!
Potential Issues If you encounter any issues, do let me know! Unfortunately I don't have a PHD in pest control, so bugs could happen spontaneously. As of v1.2.0, there's now a log file that gets created after Conexus has done his job. This is located in Documents\Conexus\Logs. If you have an issue, send that to me via the Github issue tracker. Also include the logs stored in steamcmd\logs. Thanks!
Documentation I've done my very best to provide adequate documentation in various forms. If you're more into videos, you can check out the video tab or this playlist on Youtube for a series of videos covering every aspect of Conexus. If you would prefer text, you can check out the PDF guides available in the files tab as well as on Github Every release archive also contains a short quickstart guide that should get you up and running, if you prefer shorter documentation. If you don't like Youtube or just want a copy of the video series, that's also available in the files tab. I've made two archives available, one without captions, and another with captions baked into each video. There's also a transcript, if you would like that as well! Lastly, if you're a developer, I've got an archive containing source code for several recent releases. The code for the latest release is available on Github, and basic setup for a dev environment can be found in this readme. Please keep in mind that I can't help you set up a dev environment. I know how to set it up on my system, but have no experience doing so for anyone else. Sorry about that!
Closing Thoughts As I mentioned earlier, this entire project, source code included, is licensed under MIT This means that if you, or anyone else, knows of a game that could use Conexus, you're more than welcome to modify him as needed to work with those games. I'm also very much open to others taking what I've done here and making it even better. Knowledge should be open to everyone, and I intend on doing my best to share what I can without any limitations. Just be sure to provide credit where it's due.
I Hope Conexus Will Take You On Many Fulfilling Adventures!