It's great that this game is as moddable as it is, but one major shortcoming of the system is the inability to easily combine mods. I got fed up with hunting and merging changes by hand before I even started it. What we need is a mod switcher and since there are apparently none available yet, I decided to take up the job.
The basic idea is to store each mod as a set of changes instead of complete files. I will store these in a single XML file. It will be possible to convert a "standard" mod to this format with the program. The main window will have a list of all available mods with checkboxes to enable or disable them. When you click the "Apply" button, it will compile modified versions of all relevant files in the CustomAssets directory based on the activated mods.
Last updated 2006-07-04
Homepage: http://civ4.tdb.fi
Download: http://civ4.tdb.fi/downloads/civ4modder-0.5-win32-bin.zip
Changes since last version:
- Add support for more xml files (thanks Impaler)
- No conflict for two mods adding a file with exactly same contents
- Handle containers/objects with duplicate elements correctly
- Remove the previous entry when recreating a mod
- Bugfixes
-- The conflict resolution dialog actually has some effect now
-- Don't treat CR and LF as binary when determining need for base64 encoding
Notes:
- You will need to install the gtkmm runtime environment in order to use this program. You can get it from http://www.pcpm.ucl.ac.be/~gustin/win32_ports/
- Remember to specify the directories in the Preferences dialog before creating/using mods
Known problems:
- Recreating a mod doesn't remove the old instance from the list. Restart the program to clean it up.
- There are some XML files that are not supported yet. This is because the program needs some basic knowledge about which elements are containers and what's the key element in definitions. Please report any non-working things and I'll add support for them.
If you find any problems that are not on the above list, please report them with as much accuracy as you can. I need a detailed description on how to reproduce the problem and the versions of the involved mods at least. If the problem occurred when applying mods, it may be helpful to send the .Civ4Mod files for all enabled mods.
Todo for 1.0
- Add a feature for direct merging of a bunch of mods
- Support all of the most used XML files
Maybe:
- Split python files into functions and diff each one separately
- Mod dependencies
- Add support for temporarily disabling context for .py files (useful for imports, but will modders use it?)
Todo for 2.0
- Built-in mod editor
-- Edit units, civilizations and such with a nice interface
-- Edit python files with changes highlighted (removed lines in red, added in green)
-- Import / export dds files
How to install the gtkmm runtime environment
Download these two files (These files do not reside on my server so I cannot guarantee the links will stay valid):
http://gladewin32.sourceforge.net/modules/wfdownloads/visit.php?cid=10&lid=84 (This should result in gtk-win32-2.6.10-rc1.exe after the redirection and mirror selection)
http://www.pcpm.ucl.ac.be/~gustin/win32_ports/binaries/gtkmm-runtime-2.6.2-1.exe
Install the first one (gtk-win32-2.6.10-rc1.exe) and reboot when prompted.
Install the second one (gtkmm-runtime-2.6.2-1.exe).
You should now be able to run civ4modder.
Civ4Modder for dummies
After installing the program, the first thing to do is specify the directories in the Preferences dialog. Civ4 directory should be set to the directory the game is installed to ("C:\Program Files\Firaxis Games\Sid Meier's Civilization 4" by default). The program expects to find an Assets directory with the original datafiles in this directory.
Custom assets directory should generally be an Assets directory under some mod directory. Something like "C:\Program Files\Firaxis Games\Sid Meiers Civilization 4\Mods\MyCombinationMod\Assets" if you've installed the game into the default directory. You can also use the CustomAssets directory in My Documents, if you want to get the combination mod enabled permanently.
With the directories set, you can start combining mods. This is a two-step process. First you need to create difference files for all the mods you want to combine. Select Create Mod from the Mod menu to bring up the mod creation dialog. For the mod directory, you should specify the directory containing the mod's .ini file. If such a file was found, the name and description fields will be pre-filled for you. Click the Ok button when you're happy with the value to create the difference file.
When you have created a bunch of difference mods, you can use the checkboxes on the list to enable/disable particular mods. Press the Apply button to create a combination mod in your custom assets directory. If all goes well, there won't be any conflicts between the mods. If there are, you will (for now) need to disable one of each conflicting pair.
The basic idea is to store each mod as a set of changes instead of complete files. I will store these in a single XML file. It will be possible to convert a "standard" mod to this format with the program. The main window will have a list of all available mods with checkboxes to enable or disable them. When you click the "Apply" button, it will compile modified versions of all relevant files in the CustomAssets directory based on the activated mods.
Last updated 2006-07-04
Homepage: http://civ4.tdb.fi
Download: http://civ4.tdb.fi/downloads/civ4modder-0.5-win32-bin.zip
Changes since last version:
- Add support for more xml files (thanks Impaler)
- No conflict for two mods adding a file with exactly same contents
- Handle containers/objects with duplicate elements correctly
- Remove the previous entry when recreating a mod
- Bugfixes
-- The conflict resolution dialog actually has some effect now
-- Don't treat CR and LF as binary when determining need for base64 encoding
Notes:
- You will need to install the gtkmm runtime environment in order to use this program. You can get it from http://www.pcpm.ucl.ac.be/~gustin/win32_ports/
- Remember to specify the directories in the Preferences dialog before creating/using mods
Known problems:
- Recreating a mod doesn't remove the old instance from the list. Restart the program to clean it up.
- There are some XML files that are not supported yet. This is because the program needs some basic knowledge about which elements are containers and what's the key element in definitions. Please report any non-working things and I'll add support for them.
If you find any problems that are not on the above list, please report them with as much accuracy as you can. I need a detailed description on how to reproduce the problem and the versions of the involved mods at least. If the problem occurred when applying mods, it may be helpful to send the .Civ4Mod files for all enabled mods.
Todo for 1.0
- Add a feature for direct merging of a bunch of mods
- Support all of the most used XML files
Maybe:
- Split python files into functions and diff each one separately
- Mod dependencies
- Add support for temporarily disabling context for .py files (useful for imports, but will modders use it?)
Todo for 2.0
- Built-in mod editor
-- Edit units, civilizations and such with a nice interface
-- Edit python files with changes highlighted (removed lines in red, added in green)
-- Import / export dds files
How to install the gtkmm runtime environment
Download these two files (These files do not reside on my server so I cannot guarantee the links will stay valid):
http://gladewin32.sourceforge.net/modules/wfdownloads/visit.php?cid=10&lid=84 (This should result in gtk-win32-2.6.10-rc1.exe after the redirection and mirror selection)
http://www.pcpm.ucl.ac.be/~gustin/win32_ports/binaries/gtkmm-runtime-2.6.2-1.exe
Install the first one (gtk-win32-2.6.10-rc1.exe) and reboot when prompted.
Install the second one (gtkmm-runtime-2.6.2-1.exe).
You should now be able to run civ4modder.
Civ4Modder for dummies
After installing the program, the first thing to do is specify the directories in the Preferences dialog. Civ4 directory should be set to the directory the game is installed to ("C:\Program Files\Firaxis Games\Sid Meier's Civilization 4" by default). The program expects to find an Assets directory with the original datafiles in this directory.
Custom assets directory should generally be an Assets directory under some mod directory. Something like "C:\Program Files\Firaxis Games\Sid Meiers Civilization 4\Mods\MyCombinationMod\Assets" if you've installed the game into the default directory. You can also use the CustomAssets directory in My Documents, if you want to get the combination mod enabled permanently.
With the directories set, you can start combining mods. This is a two-step process. First you need to create difference files for all the mods you want to combine. Select Create Mod from the Mod menu to bring up the mod creation dialog. For the mod directory, you should specify the directory containing the mod's .ini file. If such a file was found, the name and description fields will be pre-filled for you. Click the Ok button when you're happy with the value to create the difference file.
When you have created a bunch of difference mods, you can use the checkboxes on the list to enable/disable particular mods. Press the Apply button to create a combination mod in your custom assets directory. If all goes well, there won't be any conflicts between the mods. If there are, you will (for now) need to disable one of each conflicting pair.