MPMPM - Multiplayer Mod DLC-hack (Updated!)

I've tested it and it still doesn't work. It's loading the incorrect lua files. This is what firetuner says:

Runtime Error: Assets\DLC\MP_MODSPACK\Mods\Community Balance Patch (v 13)\LUA\Inactive\HealthandPlague + CSD\CityBannerManager.lua:360: attempt to call global 'IsPlagued' (a nil value)

It shouldn't be loading anything from the "Inactive" folder.
if I delete the "Inactive" folder it works fine.

oo, I thought this might happen. So if you remember the previous discussion, in mods, the lua files that are loaded are specified by the modinfo, either via Import=1 or or some other special part of the file. In the DLC, all lua files are just loaded, period. So of course, a folder that's "Inactive" and not included in the mod will get erroneously encoded by the DLC. To fix this automatically, we'd have to parse the modinfo.

For now, you say it works fine as long as you remove the "Inactive" folder? I could just add a special instruction to the wall of text in the first post...
 
Oh, I see...

Is there a specific reason? I mean, we can have lots of dlcs at once. (Not trying to be pedantic, just curious ^^)

Well, since you asked...

It's basically to preserve compatibility with mods that use SQL. SQL files can have effects on the game database that are non-additive, and while fully supported by the mod engine, are completely ignored by civ 5 outside of 5 specific files in the coregame (i.e. they do nothing when included in DLC packs).

Thus, to translate SQL mods to DLC pack, MPMP actually starts a game with mods on (after the mod engine has loaded the SQL) and then copies the entire game database into a few giant-sized XML files and places it in the DLC pack, overriding the original game database. That's in fact most of what CreateMP() does when you're running it in firetuner.

But if each dlc pack contains the entire game database, then only one is going to take priority, essentially neutralizing all the other dlc packs.

To illustrate the reasons behind all of this, let me use a few examples:

Example 1: This would work fine to combine packs together, without the database trick:
Mod 1: XML files->add things to database
Mod 2: XML files->add things to database

will generally work fine if you mash them together, and you could probably just drop the mods into a handmade dlc pack without the whole database copy and have it work. However:

Example 2: This would not work at all
Mod 1: Adds "Mother Russia" Wonder
Mod 2: Gives all wonders +1 culture (which can only be done robustly in SQL, given other mods)

In this case, adding the mods directly to the DLC would cause mod 2 not to work, because civ 5 would ignore the SQL. Thus the only way to translate it would be to do the database copying trick. However, if this were done on each mod individually, we would get:

Mod 1: Game database + one more wonder ("Mother Russia")
Mod 2: Game database + all wonders now have +1 culture (BUT ONLY THE WONDERS ORIGINALLY IN THE GAME)

Any attempt to combine these two game databases simply (i.e. by just doing the union) would result in a final game where all the wonders have +1 culture...except the Mother Russia Wonder. Which is not what's supposed to happen.

1) Why copy the entire game database? Why not just part of it?
SQL can perform arbitrary functions on the database, thus there is no way to predict where the changes are made. It would be possible, with a lot (lot) more work, to copy only the subtables that are different from the original civ 5 game database, but there would be no way to guarantee no conflicts between multiple dlc packs without running a separate program to check. It wouldn't be a good solution.

2) Why not have MPMPM interpret the SQL itself, and figure out what changes need to be made?
This is hard, and the best way would be to read all the xml files itself, load it into a SQL database, then apply the SQL commands. That would be a lot to build. Fortunately, there is already compiled code that does this, in the Civ 5 DLL itself! The most straightforward way to do this would be to call the functions in the DLL the way they are intended to be called, which can be done easily by...starting a modded game in Civ 5.

Or in other words, what is already being done.

3) Why not mod Civ 5 to read SQL in DLC packs for normal, unmodded games?
We do not have access to the source code for the parts of Civ 5 to do this.

=========================
OPEN PROJECT FOR THOSE INTERESTED
=========================
As you might have gathered from the explanation above, the only part of the DLC pack that isn't modular is the game override databases, in the Override folder of the DLC pack. Everything else can be merged together by simple file copying from the mods folder. But the Override folder as a whole is only ~10mb, whereas the larger dlc-packs are easily over 1gb, which is a lot to be passing between friends.

In theory, it is possible to store only the Override folder for each possible combination of mods, and have an external tool handle copying files in from the Mods folder. In such a case, it would be possible to only pass around:

1) Override folder
2) A file that indicates which mods needs to be copied from the mods folder
3) A tool that reads file 2 and does the copying (and errors if it can't find a necessary mod)

This wouldn't be more than like 20 mb at the most, assuming everyone already had the mods downloaded from steam.

That would be much more convenient for sharing among friends but...is also a lot of work. So.
 
oo, I thought this might happen. So if you remember the previous discussion, in mods, the lua files that are loaded are specified by the modinfo, either via Import=1 or or some other special part of the file. In the DLC, all lua files are just loaded, period. So of course, a folder that's "Inactive" and not included in the mod will get erroneously encoded by the DLC. To fix this automatically, we'd have to parse the modinfo.

For now, you say it works fine as long as you remove the "Inactive" folder? I could just add a special instruction to the wall of text in the first post...

Yeah, in this mod in particular its easy because the unused lua files are grouped in a special folder. But in other mods it may not be that simple.

=========================
OPEN PROJECT FOR THOSE INTERESTED
=========================
As you might have gathered from the explanation above, the only part of the DLC pack that isn't modular is the game override databases, in the Override folder of the DLC pack. Everything else can be merged together by simple file copying from the mods folder. But the Override folder as a whole is only ~10mb, whereas the larger dlc-packs are easily over 1gb, which is a lot to be passing between friends.

In theory, it is possible to store only the Override folder for each possible combination of mods, and have an external tool handle copying files in from the Mods folder. In such a case, it would be possible to only pass around:

1) Override folder
2) A file that indicates which mods needs to be copied from the mods folder
3) A tool that reads file 2 and does the copying (and errors if it can't find a necessary mod)

This wouldn't be more than like 20 mb at the most, assuming everyone already had the mods downloaded from steam.

That would be much more convenient for sharing among friends but...is also a lot of work. So.

So, if i understood right: Instead of copying the entire game database, you want to copy only the mod specific database for each mod?
 
So, if i understood right: Instead of copying the entire game database, you want to copy only the mod specific database for each mod?

More like, keeping the entire database (which is tiny), and not sending the mods with it. It leverages the user's own mods folder to build it on their own computer. This means we can pass tiny little packs around rather than the hulking monstrosities that include custom music mods.

I was going to do this, but needing a handy project to present for class made me burn out all desire to actually finish it.
 
More like, keeping the entire database (which is tiny), and not sending the mods with it. It leverages the user's own mods folder to build it on their own computer. This means we can pass tiny little packs around rather than the hulking monstrosities that include custom music mods.

I was going to do this, but needing a handy project to present for class made me burn out all desire to actually finish it.

Ok, so the new file that we would share would be .rar containing the override folder, a file describing which mod file goes where, and a tool which does the copying. Seems easy.

We would need to specify what will this new file type have inside.
it would look something like this

Code:
{
  "array": [
    {
      "name": "modname1",
      "id": 1231241235,
      "version": "13",
      "blacklist": [
        "folder1/file1",
        "folder2/file2"
      ]
    },
    {
      "name": "modname2",
      "id": 1231254356,
      "version": "12",
      "blacklist": [
        "folder1/file1",
        "folder2/file2"
      ]
    }
  ]
}

then the tool would read this info and search for the mod, then copy the files (except those blacklisted), along with the override folder.
 
Hi,

I've been trying to create a multiplayer mod pack using this mod, by I repeatedly get the

Trying to run CreateMP() gives "attempt to call field 'DeleteMPMP' (a nil value)

error message. As far as I am aware, my Civ V is the latest version, and I have no dll mods in my mods list. I had previously moved a dll file into my main Civ (this one: http://steamcommunity.com/sharedfiles/filedetails/?id=321368085&searchtext=multiplayer+fix ), however I have since deleted it, cleared every db file in the cache folder, verified my game cache through steam, and re-installed the game.

Thanks for any help troubleshooting.

My complete list of mods:
Spoiler :
This one
Artificial UnIntelligence Lite
Promotions-Expansion Pack
Colonialist Legacies Inuit Civ
Colonialist Legacies Canada Civ
Colonialist Legacies Australia Civ
Colonialist Legacies Boer Civ
Civ Names by Policy
Hypereon's Finland (Mannerheim)
JDF's The Papal States
Top Gear Civ
Area 51 Wonder
Gabenism
Great Prophet Historical Names
Abdul Alhazred Great Prophet Name
Ocean Cities
Koopa Troop Civ
Metal Gear Armstrong Civ
Metal Gear MSF (Subsistence) Civ +soundtrack
Metal Gear Outer Heaven Civ
Philosopher's Legacy Project
Shoshone Expansion Nerf
Faster Aircraft Animations
Infoaddict
Barbarian Immersion Enhancements
Columbia Civ
Quick Turns
Bold and Brash Great Work
Arstotzka Civ
Strange Religions
Default Strange Religions
Pastafarianism
Eggman Empire Civ
Kramer + Timeless Art of Seduction Great Work
America Expansion Buff
Byzantine Buff
Events and Decisions
Hiawatha Reborn
Krajzen's Buffs Collection
 
Ok, so the new file that we would share would be .rar containing the override folder, a file describing which mod file goes where, and a tool which does the copying. Seems easy.

We would need to specify what will this new file type have inside.
it would look something like this

Code:
{
  "array": [
    {
      "name": "modname1",
      "id": 1231241235,
      "version": "13",
      "blacklist": [
        "folder1/file1",
        "folder2/file2"
      ]
    },
    {
      "name": "modname2",
      "id": 1231254356,
      "version": "12",
      "blacklist": [
        "folder1/file1",
        "folder2/file2"
      ]
    }
  ]
}

then the tool would read this info and search for the mod, then copy the files (except those blacklisted), along with the override folder.

Something along those lines yes. I believe you have the idea. Regarding folders that are blacklisted - that would be the fastest thing in the shortrun. In the longrun, I don't see any options other than to eventually parse the modfile to look for which lua not to include.
 
Hi,

I've been trying to create a multiplayer mod pack using this mod, by I repeatedly get the

Trying to run CreateMP() gives "attempt to call field 'DeleteMPMP' (a nil value)

error message. As far as I am aware, my Civ V is the latest version, and I have no dll mods in my mods list. I had previously moved a dll file into my main Civ (this one: http://steamcommunity.com/sharedfiles/filedetails/?id=321368085&searchtext=multiplayer+fix ), however I have since deleted it, cleared every db file in the cache folder, verified my game cache through steam, and re-installed the game.

Thanks for any help troubleshooting.

My complete list of mods:
Spoiler :
This one
Artificial UnIntelligence Lite
Promotions-Expansion Pack
Colonialist Legacies Inuit Civ
Colonialist Legacies Canada Civ
Colonialist Legacies Australia Civ
Colonialist Legacies Boer Civ
Civ Names by Policy
Hypereon's Finland (Mannerheim)
JDF's The Papal States
Top Gear Civ
Area 51 Wonder
Gabenism
Great Prophet Historical Names
Abdul Alhazred Great Prophet Name
Ocean Cities
Koopa Troop Civ
Metal Gear Armstrong Civ
Metal Gear MSF (Subsistence) Civ +soundtrack
Metal Gear Outer Heaven Civ
Philosopher's Legacy Project
Shoshone Expansion Nerf
Faster Aircraft Animations
Infoaddict
Barbarian Immersion Enhancements
Columbia Civ
Quick Turns
Bold and Brash Great Work
Arstotzka Civ
Strange Religions
Default Strange Religions
Pastafarianism
Eggman Empire Civ
Kramer + Timeless Art of Seduction Great Work
America Expansion Buff
Byzantine Buff
Events and Decisions
Hiawatha Reborn
Krajzen's Buffs Collection

Have you tried Troubleshooting #3 in the opening post? For your convenience:

Problem 3: Trying to run CreateMP() gives "attempt to call field 'DeleteMPMP' (a nil value)". There is a dll mod included in the set of mods.
Possible Solution 3: Ensure that your dll mod has "CvGameCore_Expansion2.dll" temporarily removed. If the error still occurs, open the .modinfo for the dll mod and temporarily remove the following line (YOURS WILL BE DIFFERENT):

Code:

<File md5="{Your md5 will vary}" import="0">CvGameCore_Expansion2.dll</File>

DO NOT LOSE THIS LINE. PASTE IT SOMEWHERE AND SAVE IT.

After compiling, copy this line back into the .modinfo in both ""\Steam\SteamApps\common\Sid Meier's Civilization V\assets\DLC\MP_MODSPACK\" and the original mod in
"Documents\My Games\Sid Meier's Civilization 5\MODS".

For some reason, even if the .dll file itself is gone, sometimes just having that line still in the .modinfo will confuse Civ 5. I don't know why, but taking it out for modpack making resolves it. I don't even really think you have to put it back, other than just to be safe.

EDIT: Oh wait, you said you had no dll mods at all. Hmm. Then I will have to think on this further.
 
Courtesy of Bacon Bomb on Steam:

http://www.filedropper.com/ultimatemoddedcivmultiplayerexperiencev4 The "Ultimate Civ Modded MP Experience"

NOTE: Updated Feb 21, 2015. Nonworking E&D removed, a few more JFD civs and custom buildings added.

Being even more of a miracle than V1, V2. This mod introduces some flavor and some enhancement Sadl I have removed the Bridges and Canals Mod and the Ocean Cities mod for some bugs. If you can't live without them, contact me and I will give you V1. I hope you enjoy!

Buildings- Upgrade System!
Civ IV Diplomatic features!
Enhanced Information Era!
Europe with Capitals!
Extra Victory Conditions!
Greatest Cities!
Industrial City Pack!
All of JFD's civilizations as of 1/25/15!
Justice and Government buildings!
Legendary Earth Mod!
Medieval and Renaissance Building pack!
New Beliefs Pack!
International Monetary Fund
Trading Posts Grow into Towns!
Unique Policy Buildings!
Colonist Legacies- Vietnam!
Civ Names by Policies!
Exploration Continued!
Gibraltar and Reef Optimizations!
LS Civilization Set II!
Krakatoa Fix!
Legendary Earth! (Find the folder and place the map in the Civ V maps folder to work)
Music Changer!
Like Moses! (Replaces old Canal mod)
Oman Civilization!
Throne Room!
Unique Cultural Influence!

Has been played for 6 hours + with few bugs, though there are a few noticed:

Bacon Bomb: Only bugs are
Bacon Bomb: Rice and Maize icons do not show up
Bacon Bomb: Europe with Capitals has no scenario

Still, should be good stuff.
 
I've downloaded the most recent version of your mod- tried both the steam workshop version and the one attached to this post- and everything proceeds mostly fine except none of the custom music works- I just get loops of the menu music. I thought that was fixed in the most recent version. Any ideas?
 
Actually I just noticed you mentioned a known issue about Touhou civilizations back on page 7. Weird, considering all the music works just fine when loaded as mods. I don't use any Touhou Civs in my modpack but perhaps they aren't the only ones that break audio?"

I noticed the Audio Defines and 2D defines in Override are labelled as 'Expansion1'. Interestingly, if I rename it to 'Expansion2' it disables all BNW audio, implying that it is at least attempting to load the audio file, but something in the code itself is breaking all of the audio it seems.
 
So for a long time we (my friend and I) have been trying to make various modpacks with varying levels of success. In our most recent attempt to get the Community Patch and the Community Balance Patch to play nicely with the packs we have run into an issue.

All custom text from mods is missing and replaced by TXT_KEY stuff. In the event default text exists for the game that is used instead (such as in the policy tree). We've stripped out every other mod and made a modpack consisting only of the Community Patch and the Community Balance Patch and are still having the issue. Other DLL mods we used in the past we got going, and the word here is that they should be compatible now but it just won't click for us.

We have current versions of all the files in question from the forum and have no idea what the issue is. Any help or insight would be greatly appreciated, thank you.
 
So for a long time we (my friend and I) have been trying to make various modpacks with varying levels of success. In our most recent attempt to get the Community Patch and the Community Balance Patch to play nicely with the packs we have run into an issue.

All custom text from mods is missing and replaced by TXT_KEY stuff. In the event default text exists for the game that is used instead (such as in the policy tree). We've stripped out every other mod and made a modpack consisting only of the Community Patch and the Community Balance Patch and are still having the issue. Other DLL mods we used in the past we got going, and the word here is that they should be compatible now but it just won't click for us.

We have current versions of all the files in question from the forum and have no idea what the issue is. Any help or insight would be greatly appreciated, thank you.

Well for the previous versions of the mod make sure the dll is in the mp_modpacks folder, and that you delete the "inactive" folder in the CBP /lua.

I think in the new version the file structure has changed, and i haven't tested it yet. So i can't help you there.
 
Also I experience crashing when exiting to menu or desktop when loading the DLC packs. My DLC pack is fairly large- is this normal/expected?
 
Just an FYI: I just made a new version of my personal mod pack and I got an error about not being able to find a folder for one of my mods. (I edited a mod that removed the penalties for a new city to only remove science penalties (because it's stupid that having a new city makes your entire civilization stupider.) and renamed it to "New Cities Remove Science Penalties (v1)" but it wanted me to remove the V1 part to correct it.

Just wanted to report that in the longest run on sentence I could imagine.

I'll post the mod pack if it works well after a few games. (I classify 1-3 total crashes per standard pace game well.)
 
Yeah I need to eventually investigate the Touhou music issue. I don't know what causes, and casual checking has not found me the solution. That being said, the music does break sometimes on its own...but it should work if you restart civ 5. The Touhou music just never works. What's really odd is it *used* to work, and doesn't now, after the most recent civ 5 patch.

I noticed the Audio Defines and 2D defines in Override are labelled as 'Expansion1'. Interestingly, if I rename it to 'Expansion2' it disables all BNW audio, implying that it is at least attempting to load the audio file, but something in the code itself is breaking all of the audio it seems.

Yeah, I overrode the Expansion 1 audio because it seems the audio system is hardcoded to check a few specific files for music, so any other identical file with the wrong name will not work (or will override something). I overrode Expansion 1 specifically because its audio files contain nothing terribly important - a few minor sounds like great prophet founding religion, basically. One of the insturctions in the OP is how to fix that if it really bugs you...I've never gotten around to teaching the code to add it automatically.

Crashing to desktop on exit happens sometimes even in normal civ 5. It's never been fixed because presumably no one cares enough about it. It's only notable if it happens *every* time.

Just an FYI: I just made a new version of my personal mod pack and I got an error about not being able to find a folder for one of my mods. (I edited a mod that removed the penalties for a new city to only remove science penalties (because it's stupid that having a new city makes your entire civilization stupider.) and renamed it to "New Cities Remove Science Penalties (v1)" but it wanted me to remove the V1 part to correct it.

Just wanted to report that in the longest run on sentence I could imagine.

I'll post the mod pack if it works well after a few games. (I classify 1-3 total crashes per standard pace game well.)

For the missing folder thing, are you using the most recent version of the modpack?
 
Top Bottom