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-superdirectory. - 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.
I recommend setting the following system environment variables to make building super seamless:
| Variable | Example Value |
|---|---|
Qt6_DIR |
C:\Qt\6.7.1\msvc2019_64\lib\cmake |
The project is divided into two targets, fomod_plus_installer and fomod_plus_scanner. Hopefully the
distinction is self-explanatory.
This repo includes vcpkg.json + vcpkg-configuration.json pointing at the MO2 registry. With VCPKG_ROOT
set and Qt installed locally (Qt is not pulled via vcpkg), you can configure using the vcpkg preset:
cmake --preset vs2022-windows-vcpkg
cmake --build vsbuild-vcpkg --config RelWithDebInfo --target package
That preset expects the standard triplet x64-windows and uses the vcpkg toolchain at %VCPKG_ROOT%.
It installs the built DLLs to D:/Modding/Mod.Organizer-2.5.3beta2/plugins and packages outputs under package/.
vs2022-windows— builds against an existing MO2 super checkout (setDEPENDENCIES_DIR) and installs toD:/Modding/MO2/plugins.vs2022-windows-beta— targets the MO2 2.5.3 beta sources atD:/Mod.Organizer-2.5.3beta2-srcand installs toD:/Modding/Mod.Organizer-2.5.3beta2/plugins.vs2022-windows-vcpkg— fetches MO2 dependencies via vcpkg (MO2 registry), still requires Qt installed locally, installs toD:/Modding/Mod.Organizer-2.5.3beta2/plugins.
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_installertarget (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.
MO2 upstream dependencies have started migrating to VCPKG and have different builds and sources vs 2.5.2. As such,
have to do some very odd/painful workarounds to build against the stable release. Inside CMakePresets.json there's the DEPENDENCIES_DIR
variable which you should point to the 2.5.2 sources directory you can download from the MO2 github releases page.
https://github.com/ModOrganizer2/modorganizer/releases/tag/v2.5.2
They've also consolidated game_gamebryo to this repo.
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).
