Discussion in 'CivBE - Requests and Ideas' started by Crash757, Nov 12, 2014.
I need a mod like this, but for Civ:BE
I've only done DB level changes so far, and never released any real mods, so if someone could point me to a tutorial on how to package UI stuff into a mod (I don't see any obvious way in ModBuddy), that would be appreciated. Maybe I could wrap this into a proper little mini-mod.
To tweak your own installation:
Find the "ModsMenu.xml" file. Mine is at "C:\Program Files (x86)\Steam\SteamApps\common\Sid Meier's Civilization Beyond Earth\assets\UI\FrontEnd\Modding\ModsMenu.xml" (the exact path may change depending on your Steam path)
Make a backup of the file before editing it
On line 24, there is a <GridButton> for multiplayer which has Hidden="True" near the end of line. Just change that to Hidden="False"
Next time you launch your game, you can play multiplayer with mods.
Note I have no idea if everything beyond the UI actually works. The button may have been disabled partly because there was some bug preventing mods from working correctly in multiplayer. Also, I seem to remember in Civ5 we could start hotseat games with mods, the custom advanced setup screen was only required to load modded hotseat saved games. Not sure how BE will behave there.
Actually, after doing a couple of tests, it's not actually that simple. The multiplayer button appears, but your mod is not actually loaded when you go into the game
I think I have it narrowed down to a bug/feature in OnStart() in MPGameSetupScreen.lua, but I don't understand what various function calls in there are doing. Seems that mods are loaded correctly until you click "Host Game" at which point the OnStart() function is called and the stock game data is reloaded.
You can see this by inspecting the game DB. I'm testing with a simple data mod in my case, and my modded values appear correctly as I go through menu up until the point I click "Host Game". Then the mod values get reverted back. You also see the "Configuring game data..." dialog, which is a giveaway.
Separate names with a comma.