A total rewrite of the FOMOD installer. Supports all features of the original FOMOD installer, and adds a few new ones.
- Highlight previously selected options.
- Select previously installed options (where feasible).
- Filter by mods installed via FOMOD. Pic
- A Scanner plugin to retroactively mark mods as FOMOD-installed where possible. Pic
- A nice wizard hat in the content column to indicate the mod was installed via FOMOD. Pic
- Window sizes and splitter positions persist between mod installs.
- FOMOD installer window won't block the main MO2 window. No more quitting the installer to check if you installed A, B, or C.
- Optimized image viewer
- Unzip the latest release into your MO2 plugins directory.
- If running for the first time, use the scanner to populate your mods.
- Install FOMODs as normal and enjoy the new features.
Since this is a WIP and barely in alpha stages, expect some bugs as things progress. Some of my plans, roughly ordered, include:
- Searchable installation notes (manual input and automatic)
- Introduce new optional features to the FOMOD XML schema to allow more fun~.
TODO: Icons for each heading
Tech stuff below
Development of this plugin is done within the context of mob
.
You'll want to follow all setup instructions for mob
before proceeding.
- Set up mob and all of its requirements.
- Clone this repository inside the generated
<rootDir>/build/modorganizer-super
directory. - Open in your IDE of choice. I prefer CLion and it should be fairly painless.
Note: I don't have a good setup for building to DLLs within the repo at the moment.
The project is divided into two targets, fomod_plus_installer
and fomod_plus_scanner
. Hopefully the
distinction is self-explanatory.
Technical Reasons
MO2 plugin architecture doesn't support providing multiple C++ plugins in one target. Even if it could,
FomodPlusScanner
implements IPluginTool
which conflicts in inheritence with IPluginInstaller
.
Sorry for the headache!
To debug:
- Make sure you are debugging the
fomod_plus_installer
target (unless you're debugging the scanner). - Set your target executable to the MO2 executable inside
<mobDir>/install/bin
.
NOTE Inside CMakeLists.txt
you'll see a pair of lines like this:
#set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO ${CMAKE_CURRENT_LIST_DIR}/../../../install/bin/plugins)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "D:/Modding/MO2/plugins")
for some reason on my main PC I can't use the mob
-built MO2 instance to debug without a lot
of exceptions. This is not the case on my laptop. So if you get lots of exceptions pointing to the
mob
dev build, try changing the hardcoded path in that second line to your real MO2 instance.
This project is licensed under the MIT License.
Much love and appreciation to the authors of the original FOMOD installer. Source can be read here if curious. Early development of this plugin was heavily influenced by the original codebase, and certain classes were lifted almost entirely from the original (with modifications and attribution in the file).