Weidu Mod Manager
Jothay
Member Posts: 11
Hi, if you have ever played World of Warcraft and made use of the Rawr Project (a character optimizer found at http://rawr.codeplex.com/) you might recognize my name. Thanks to the Overhaul team releasing this plethora of nostalgia that is BG:EE I'm coming back to this game 13 years after I last played it. I ran through BG:EE over the course of like 50 hours in 6 days, now I find out about this whole modding community for the game that I never knew existed!
After playing around with different mods and learning what a weidu installer is, I have found that there are literally dozens of different mods out there and a somewhat legitimate fear of one mod screwing up another if I'm not careful. My question to the community is: Has anyone made a mod manager for BG1, BGEE and/or BG2? I ask because if there isn't one, I would like to make one.
Something that will perform the following actions (at minimum):
1. Provide the user a list of all known mods (over various sites) including their detailed (maybe even more detailed than was originally written) descriptions, file sizes, compatibility impacts with different mods and versions of the game
2. Allow the user to download the mod directly from inside the program, or place it in a download queue with multiple mods once your decisions of what to include are made
3. Install the mod silently (no command prompts) with selected install options
4. Re-install and Uninstall mods and if that would create conflicts, re-install other mods as necessary to prevent in-game issues
Additional, optional actions:
1. Allow the user to select the install options for the mod, maybe even work with the original developers to break a large fix/pack etc mod up so that they can pick and choose the parts they want.
2. Provide a nice clean UI that breaks out every part of every mod so instead of selecting mods, you select what you want your game to do and it will install exactly what you want from that (so instead of having to look up The Long Road for Irenicus, the user would just select New Party Members > Irenicus and that would have details about where it came from, how it works, what you need to do in game to trigger it (like going to a specific zone) etc
3. Cross-Platform compatibility so it can be installed to Win/Mac/Linux. I have worked a lot with Qt4 projects (which is a cross-platform design kit) and can readily make Windows and Linux versions but Mac versions I'm a bit light on. I could do this with a Silverlight built (like how Rawr is made) but it would only work in Windows and Mac and there would be a lot of file access issues trying to touch your program files folder. I could whip this mother up pretty quickly in straight C# using a WPF executable but that would only work in Windows with a possibility of Linux users having Mono or something run it there.
4. Character and Save file editing. Credits to the Shadowkeeper and EE Keeper guys but I don't really like their UI and I would rather have something that also directly correlated with mods (showing how they made changes, single clicks to revert between vanilla, mod a, mod b, etc.)
5. Combining all the different "fix packs" that are included in various mods to be a single action for the end user so if they just want vanilla with bug fixes, they can do that
Side-note: While working on the source code, I will either GPL or MIT licence it and post it to Codeplex.com so that community developers can join in and work on it with me. I would even be willing to use that as a hosting point for source codes of community mods, allowing developers a place to save revisions of their code safely and ensure better cooperation between cdevs for cross-mod compatibility.
After playing around with different mods and learning what a weidu installer is, I have found that there are literally dozens of different mods out there and a somewhat legitimate fear of one mod screwing up another if I'm not careful. My question to the community is: Has anyone made a mod manager for BG1, BGEE and/or BG2? I ask because if there isn't one, I would like to make one.
Something that will perform the following actions (at minimum):
1. Provide the user a list of all known mods (over various sites) including their detailed (maybe even more detailed than was originally written) descriptions, file sizes, compatibility impacts with different mods and versions of the game
2. Allow the user to download the mod directly from inside the program, or place it in a download queue with multiple mods once your decisions of what to include are made
3. Install the mod silently (no command prompts) with selected install options
4. Re-install and Uninstall mods and if that would create conflicts, re-install other mods as necessary to prevent in-game issues
Additional, optional actions:
1. Allow the user to select the install options for the mod, maybe even work with the original developers to break a large fix/pack etc mod up so that they can pick and choose the parts they want.
2. Provide a nice clean UI that breaks out every part of every mod so instead of selecting mods, you select what you want your game to do and it will install exactly what you want from that (so instead of having to look up The Long Road for Irenicus, the user would just select New Party Members > Irenicus and that would have details about where it came from, how it works, what you need to do in game to trigger it (like going to a specific zone) etc
3. Cross-Platform compatibility so it can be installed to Win/Mac/Linux. I have worked a lot with Qt4 projects (which is a cross-platform design kit) and can readily make Windows and Linux versions but Mac versions I'm a bit light on. I could do this with a Silverlight built (like how Rawr is made) but it would only work in Windows and Mac and there would be a lot of file access issues trying to touch your program files folder. I could whip this mother up pretty quickly in straight C# using a WPF executable but that would only work in Windows with a possibility of Linux users having Mono or something run it there.
4. Character and Save file editing. Credits to the Shadowkeeper and EE Keeper guys but I don't really like their UI and I would rather have something that also directly correlated with mods (showing how they made changes, single clicks to revert between vanilla, mod a, mod b, etc.)
5. Combining all the different "fix packs" that are included in various mods to be a single action for the end user so if they just want vanilla with bug fixes, they can do that
Side-note: While working on the source code, I will either GPL or MIT licence it and post it to Codeplex.com so that community developers can join in and work on it with me. I would even be willing to use that as a hosting point for source codes of community mods, allowing developers a place to save revisions of their code safely and ensure better cooperation between cdevs for cross-mod compatibility.
1
Comments
What I would probably do different is make a more clearly broken out "guided" install process like section 1: bug fixes, section 2: things that make the game easier, section 3: things that make the game harder, section 4: Major Campaigns (IWD inserts, BG1 inserts, etc), section 5: NPC Mods and so on
This evening I've been messing around with character management GUI (see attached). I had to research a Dock Panel system for tool windows in WPF and then added an expression dark theme to it (still needs work so those white layout parts aren't white).
Maybe with an option to check if Mods override strings or parts of each other.
You could also check this out: http://forum.baldursgate.com/discussion/6100/creating-a-modding-tool/p1 it is modding tool hopefully not abandoned that while developed could be synchronized with your installer that automatically adds newest versions to your library it would be pretty handy and if you had everything in one program it would be really amazing.
All Mods within the BWS can be found in this linklist http://baldurs-gate.eu/bwpmods.php the description to every mod... is in german. So perhaps not the perfect way for all of you.
This linklist is converted to the input files for Big World Setup automatically every 1 hour. So when the Kerzenburg Community stumbles upon a new Mod it will be entered there and with the next linkupdate of BWS you will also get that in the setup.
Newest BWS can be found here: http://dabus.bplaced.net/BWP/bws.php or here: http://baldurs-gate.eu/downloads.php?id=2
Cheers
Tim
Many mod authors complain if you try and host their mods on other than official sites AND this exactly happened when people tried to mirror the G3 mods. A difficulty us mod users had was G3 eventually put up an official G3 mirror which had mods that were sometimes several versions old on it while the main site is down.
I ama long time BWS user and I think it's super great. Recently, it's added support for PST and IWD. How cool is that?
I realize this is long-winded and only one example out of a possible thousands and there are many human factors that could result in NO I WONT DO THAT YOU ______!!!@#!#!! but hey, I somehow still have some faith in humanity.
Of course, now that I've just written that out, I almost wonder if this tool could just turn into a straight up editor for original and mod files so we can manually fix the conflicts and send them back to their devs that way, at least for stuff that is truly conflicting for no real reason. I definitely think that would work best for the Bug Fix mod, since that's really just for fixing animations, typos, etc.
If someone would be so kind as to get a list of each of the tool maker dev's contact info (either a PM on this site or their email address) I'll draft a point out to see if we can share source code and cull things down. Maybe I can work directly with BWS to just redo their UI so its more user friendly and then expand it to things like what shadow keeper does, etc. In the meantime, I'm gonna keep futzing around with my own UI and post it so people can see what I mean by pretty UIs (UI design is actually my day job)
Anything that uses a non-weidu installer I will ignore completely and state that it could fubar your install if you use it. I'll contact that dev to see if we can "weidu-ize" it to support it.
I think part of what I have in mind is to do like a "Diff vs Base Install" on every mod I find, so I know exactly what has changed, then in a spell browser for example, I can click on Magic Missile and see what mods intend to modify this spell in any way, let the user choose which one they want, and build it into the mod application.
I own http://jothay.com and have the ability to store and host mods (I could do just about anything with the site I want).
Expanding the Diff vs Base Install concept, basically the tool would become an IDE for making your own mods, by taking the parts you want from other dev mods, like the BG1 import, turn it into a single weidu and just run that, each time having the tool revert your install to base, then making a new custom weidu and installing that. I think with that level of capability, managing the mods would become largely a piece of cake, if a little time consuming, because you could literally see every change the dev's mod intends to make and make a detailed summary. I'm familiar enough with some reporting tools that I could generate reports that show conflicts, resolve as needed, generate a new report... rinse & repeat.
One thread I saw was asking for some way to make custom Dialogues? Can someone explain what the need is to me? I could probably whip something up for that without too much trouble.
As part of hosting SVN for devs, set up nightly builds of all mods and move them into the hosting center (whatever that is) so that users never download an old revision mod. Maybe this means making it a requirement that if you want your mod supported by the tool you have to put your source code up there? As changes are made using this IDE style tool, you can see if something you want to change would make a conflict and have the option of preventing it in the first place.
Another example is dialogues--state weighting is important in compatibility, and is the reason many mods must be installed in a certain order. Unfortunately there's no way to tell, mechanically, what that order should be; there's nothing in the code to indicate what mod dialogues should be weighted more heavily/less heavily than other mod dialogues.
I'm all for a mod managing tool, but you'll need to find ways around these issues to make it work--the only thing that has succeeded thus far has been a hell of a lot of user input, and I can't really see that changing.
The other thing is, I could be reading your posts wrong, but most modders won't let you host their mods on your server. And many modders would be unhappy putting their source on an SVN, I think, but I could be wrong there.
Once I have a Qt (for cross-platform) build up and running for Windows, I will take community submissions on what changes have to be made for OSX and Linux clients (meaning which mods don't work where) so that I can flag mods in the UI to only show up in those OS's.