After a few sleepless nights, and a few rainy days (although I actually started the development around 3 weeks ago), I present to you...
Starfarer Mod Manager
version 0.1.3 (alpha)
Why at all? Well, right now we have ~50 mods in the Master Mod List thread. And Starfarer isn't even released! What is going to happen then? A boom of mods!
So even though I'm not too much into SF modding, I came up with an idea (yeah, very original idea) to write a separate mod manager - for those hardcore modding pros out there. The principle behind is to make mod installation, removal, and managing easier for everyone.
Without further ado:
(http://i45.tinypic.com/6iwozl.png)
Current features:
- it's fully compatible with built-in SF Launcher, so you can use them both
- shows which mod is a compilation/conversion, intended SF version, mod version
- sorting, by aforementioned criteria (unfortunately, you cannot sort by enabled/disabled property in this version)
- coversion detection, compilation detection (disables all/compiled mods)
- conflict detection for supported mods (look below)
- automatic installation from .zip/.rar/.7z/any-7zip-supported-archive
- drag'n'drop installation - just drag the mod archive to the Manager window, and the mod will be installed right away
Mod support
Every single mod that exists right now, will work with Mod Manager, just as it does with built-in Launcher. However, to take advantage of special features, there are a couple of new variables you (mod author) can add to the mod_info.json file. The format is exactly like it is for built-in variables.
m_incompatibleWith - this is a comma-separated list of mod's internal IDs that are incompatible with your mod. If you don't specify this variable, it means that your mod doesn't conflict with any other mods.
Example:
"m_incompatibleWith":"mrdavidoffs dump, nomads, relics, UomozCorvusIncursionsandRelics15",
m_isVanillaBalanced - this specifies whether your mod is balanced for vanilla game. Default is false.
Example:
"m_isVanillaBalanced":"true",
m_isCompilation - this specifies whether your mod is a compilation of other mods. Use it with additional variable m_compilationModList described below. Default is false.
Example:
"m_isCompilation":"true",
m_compilationModList - this, combined with m_isCompilation, provides a list of mods (internal IDs to be specific) included in your compilation. These mods, if installed before on user's machine, will be disabled when this compilation is enabled.
Example:
"m_compilationModList":"nomads, relics",
Possible future features:
- per-file conflict detection (working for any mod, and with deadly accuracy)
- automatic listing&downloading&updating mods (that would require a FTP mod hosting server)
- automatic handling of mod archives during downloading, by using new file extension (.sfmod, simply archive with changed extension to intercept the file during browser download and open it straightaway)
- all suggestions are taken under consideration so don't hesitate to comment!
Download
http://www.mediafire.com/?ku5jxricj6hio77 (http://www.mediafire.com/?ku5jxricj6hio77)
It requires .NET Framework 4.0, available here (http://www.microsoft.com/en-us/download/details.aspx?id=17851) if you don't have it already installed. It should work on Windows XP, Vista, 7 and 8.
You have to install it into your Starfarer directory, so if you edit installation directory, DO SO CAREFULLY.
Remember, this is alpha, so expect crashes all the time! But don't worry about your mods/game, the only time Manager modifies your disk is when installing (that is safe, since done by 7zip) a mod, or deleting (this is also safe, since done by Windows) a mod.
If you encounter a crash, or bug, please write in this thread/write me a PM/email-me and link smm_log.txt file, located in %APPDATA%\Starfarer Mod Manager\ (%APPDATA% is C:\Users\<username>\AppData\Roaming in default, though you can use %APPDATA% variable in the Explorer path). The log file enables me to find the cause of crash/bug.
About:
Written fully in C#, and WPF, with additional WPFExtended Toolkit, plus OokiiDialogs for .NET 4.0. 7zip used for unpacking mod archives.
Again, all comments, suggestions, constructive criticism are welcome and wanted!
Release notes:
0.1.3
- fixed mod_info parsing problems when dealing with unexpected whitespaces
- fixed conflict detection, now properly fires up only when two (or more) conflicting mods are enabled
- fixed the possibility of enabling mods while there is conversion enabled, or a compilation that already includes particular mod
- log file is now saved to a user-specific directory, located in %APPDATA%\Starfarer Mod Manager\ (%APPDATA% is C:\Users\<username>\AppData\Roaming in default, though you can use %APPDATA% variable in the Explorer path)
0.1.2
- fixed installation directory confusion in installer
- fixed some incompabilites with "replace" tag in mod_info.json file
- added logging capabilities
Also, I wanted to say that I will be on top of the world if even one person uses this. Really.
Spoiler
(http://i.imgur.com/519Oo.png)
i got something like that with the 1st ver.
EDIT: ok i got this, i delete all the folders so all .rar are in MOD folder & i managed to open the MOD window :)
now checking . . .
EDIT 2: so its crashing on some mods ( CAELUS ) maybe its some old ver , i dunno
but Menager still can't see conflicts like, Uomoz & Omega's
& do only i have to click "OK" like 10x everytime i lunch the manager luncher ?
Spoiler
(http://i.imgur.com/O4MFb.png)
ok thats my mods that works, but when i add CAELUS even if i instal it from Menager i got the "LoadModData - 1/2/3" & then its crashed, well i dont mind that, aint playing CAELUS anyway ^^ (cuz its crashes >: )
Neat things happen when you have total conversion selected first, then go on to select a compilation such as UC,
Think the error dialogs are a bit reversed but okay :D
Also another quirk.
And I tried adding into the mod_info.json like this to see what would happen, it'll make the manager unlaunchable without any real dialog specifying what's wrong
"gameVersion":"0.53.1a",
"m_isVanillaBalanced":"true",
"m_isCompilation":"false",
"m_incompatibleWith":"Collection, UomozCorvus",
Or
"gameVersion":"0.53.1a",
"m_isVanillaBalanced":"true",
"m_isCompilation":"false",
"m_incompatibleWith":"Collection, UomozCorvus",
smm.log
[INFO][35] ParseModFile: mod info: internalID = Neutrino
[INFO][35] ParseModFile: mod info: modName = Neutrino Corporation
[INFO][35] ParseModFile: mod info: modVersion = 1.35
[INFO][35] ParseModFile: mod info: modDescription = 13 neutrino ships, and 2 bombers with 3 fighters and 15 unique weapons
[INFO][35] ParseModFile: mod info: gameVersion = 0.53.1a
and it'll just end like that.
Error stems from the fact the manager doesn't work with blank spaces where it was expecting values which can be a bit misleading without any error messages saying so :)
Neat program though :D