• We have updated our Community Code of Conduct. Please read through the new rules for the forum that are an integral part of Paradox Interactive’s User Agreement.
Hi.

I've volunteered to create a basic frontend for this using WPF. WPF is a built-in part of the .NET framework, so there should be no added requirements.

My main idea for the frontend is to do more or less the following:

  • Attempts to locate game installation paths (using registry lookup)
  • Let the user pick a save game using a normal windows file picker dialog.
  • A wizard or configuration window that takes the user through all the configuration options currently in configuration.txt
  • Do various error- and sanity checks
  • Write configuration.txt to disk
  • Copy/rename the chosen save game to the working directory
  • Run the conversion tool as an external executable
  • If successful, copy the converted save game to the eu3 save game directory.
  • Launch EU3

Basically, attempt to automate the 8-step process currently outlined in readme.txt.

Idhrendur has added me to the list of devs at sourceforge (as "kwsdev"), already, and I'll get something checked in as soon as I figure out how. I'm not used to mercurial (or any distributed version control systems), so I'm still trying to mentally map all the operations to their TFS equivalents.

I have a few questions:
  • Should I create a local repository to work against, or can I treat this as a non-distributed VCS if I want to?
  • Does anyone have any strong opinions on whether I create a new branch to work with or work directly in, say, the minor branch?
  • According to this post at least some of you guys work using Visual Studio 2010 Express Edition. I was thinking I should add a separate frontend project to the CK2ToEU3 solution, but since this will be a WPF Application/C# project, I suspect the C++ version of VSE might refuse to read it, and complain every time you open the solution. Is that a problem? Alternatively, I could just create a separate frontend solution. There will be no shared code, so it shouldn't really matter as long as the frontend knows where to find the converter .exe. I'm not sure how sourceforge updates the downloadable files based on the source code, but if it's automated, we might need to adjust some output paths or something to make sure the frontend .exe gets dumped in the same folder as the converter itself.


Known limitations:
  • My current prototype successfully locates the game installation paths for both games assuming they've been installed through steam. It relies on the game's SteamID to do this, so if either game is released with another steamID, it won't work. I'm not sure how likely this is, but one could imagine that, say a standalone "Gold Edition" or something is created, that doesn't require the original game to run (thus presumably requiring a new steam id), in which case the frontend will be unable to identify it automatically without code changes. In a later version I might move these settings to a configuration file instead, but we'll see.
  • I only own the steam versions of these games, so that's all that's located automatically at the moment. I'll try to add support for the non-steam versions as well, but probably not for the initial version.
 
I've volunteered to create a basic frontend for this using WPF. WPF is a built-in part of the .NET framework, so there should be no added requirements.

Technically we don't require .NET at all right now, so it adds one requirement ;) Sounds good to me, though.
* If successful, copy the converted save game to the eu3 save game directory.
* Launch EU3

How will you know if it was successful? Just creating output doesn't necessarily imply success. It may be a good idea to present the log, so the user can examine it for problems before trying to run EU3.

* Should I create a local repository to work against, or can I treat this as a non-distributed VCS if I want to?

You need to clone the repository. Then, when you would ordinarily either "get" or "check out", do "pull" instead; when you would "check in", do "commit", then "push."

* Does anyone have any strong opinions on whether I create a new branch to work with or work directly in, say, the minor branch?

If I were you I'd work directly in minor, but it's up to you.

* According to this post at least some of you guys work using Visual Studio 2010 Express Edition. I was thinking I should add a separate frontend project to the CK2ToEU3 solution, but since this will be a WPF Application/C# project, I suspect the C++ version of VSE might refuse to read it, and complain every time you open the solution. Is that a problem? Alternatively, I could just create a separate frontend solution. There will be no shared code, so it shouldn't really matter as long as the frontend knows where to find the converter .exe. I'm not sure how sourceforge updates the downloadable files based on the source code, but if it's automated, we might need to adjust some output paths or something to make sure the frontend .exe gets dumped in the same folder as the converter itself.

I use VS 2010 Professional, so I'm not the right guy to answer this. Mixed solutions is fine with me :) Also, builds are not automatic; we do them ourselves.

I only own the steam versions of these games, so that's all that's located automatically at the moment. I'll try to add support for the non-steam versions as well, but probably not for the initial version.

To get you started with non-Steam registry keys: branch "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Paradox Interactive\Europa Universalis III", key "app" will get you the executable name :) On Steam, remember that there are a variety of EU3 products. Technically I don't think we require Divine Wind.

It's probably also wise to allow the user to override the path. For instance, when converting a CK2 1.06 game, I would want to point it to my backup 1.06 directory, not the current (updated) steam directory.

EDIT: also, when you're building the thing, consider that someone will probably want to create a variation for EU3ToVic2 and possibly Vic2ToHOI3 also. Design generically :)

EDIT2: oh, and, uh....welcome to the team! :D
 
Last edited:
Technically we don't require .NET at all right now, so it adds one requirement ;) Sounds good to me, though.

Ah, ok - I didn't know :) Would it be preferable to distribute it separately, then? I'm happy either way.

How will you know if it was successful? Just creating output doesn't necessarily imply success. It may be a good idea to present the log, so the user can examine it for problems before trying to run EU3.

Logging is certainly intended (and partially implemented). Displaying the conversion log was certainly part of the idea. We could do color-coding of critical log entries assuming the required information (Severity: Information/Warning/Error) was outputted from the conversion tool itself, then prompting the user about running EU3 at the end.

Edit: Realized I didn't respond to the "how to know it was successful" question. And no, I guess we cannot. For now, I'll just add a button that starts EU3 for the user's convenience, and then we can streamline the process later.

You need to clone the repository. Then, when you would ordinarily either "get" or "check out", do "pull" instead; when you would "check in", do "commit", then "push."

If I were you I'd work directly in minor, but it's up to you.

So cloning actually creates a local repository? Maybe I'm just confused since Tortoise HG still displays context menu options for "Create repository here" when I right click on the Ck2ToEu3Converter folder I got after cloning. I wasn't sure whether you could have a local copy of the code without it actually being a repository or not.

I use VS 2010 Professional, so I'm not the right guy to answer this. Mixed solutions is fine with me :) Also, builds are not automatic; we do them ourselves.

Waiting for some more feedback on this before doing anything then.

To get you started with non-Steam registry keys: branch "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Paradox Interactive\Europa Universalis III", key "app" will get you the executable name :) On Steam, remember that there are a variety of EU3 products. Technically I don't think we require Divine Wind.

Thanks. I'm sure I'll have to go a few rounds to get this just right. Currently it's written to support a single source and a single target game - should I work with more than one of each instead? I assume expansions and dlc use the same SteamID as their parent game, but that might be naive.

It's probably also wise to allow the user to override the path. For instance, when converting a CK2 1.06 game, I would want to point it to my backup 1.06 directory, not the current (updated) steam directory.

Yeah, that's the idea. The very preliminary design is something like this:

ZrThz3t.png

EDIT: also, when you're building the thing, consider that someone will probably want to create a variation for EU3ToVic2 and possibly Vic2ToHOI3 also. Design generically :)

Yep. The source and target game configuration is currently stored in code, but I intend to move it out into an xml file or something equivalent. I'm currently trying to make the tool dynamically build one ore more preferences tabs (see "2 - Set preferences" in the screenshot above) based on what it reads from an xml file. If I can get it to work, moving everything else that is game dependent from code into the same xml file should be trivial.

If I can get it to work, no code changes could in theory be needed if someone, say, added a new configuration option to the converter and to configuration.txt - all it would take is an entry in the xml file.

Implicitly, the same configuration file could be used for an entirely different converter as well, assuming it uses the same configuration.txt format.


EDIT2: oh, and, uh....welcome to the team! :D

Thanks!
 
Last edited:
Ah, ok - I didn't know :) Would it be preferable to distribute it separately, then? I'm happy either way.

I think doing a single distribution is easiest. As long as the main exe is still visible, people can continue to use the original method to convert.

Logging is certainly intended (and partially implemented). Displaying the conversion log was certainly part of the idea. We could do color-coding of critical log entries assuming the required information (Severity: Information/Warning/Error) was outputted from the conversion tool itself, then prompting the user about running EU3 at the end.

Edit: Realized I didn't respond to the "how to know it was successful" question. And no, I guess we cannot. For now, I'll just add a button that starts EU3 for the user's convenience, and then we can streamline the process later.

Does that require any changes to the current log format, or just that we remember to say "Warning" or "Error" in either of those cases?


So cloning actually creates a local repository? Maybe I'm just confused since Tortoise HG still displays context menu options for "Create repository here" when I right click on the Ck2ToEu3Converter folder I got after cloning. I wasn't sure whether you could have a local copy of the code without it actually being a repository or not.

Yes, it does. The repository itself is just the files in the .hg directory insode the main folder, so you *could* create a repository that itself contains the existing repository...not that you'd want to


I use VS 2010 Professional, so I'm not the right guy to answer this. Mixed solutions is fine with me :) Also, builds are not automatic; we do them ourselves.
Waiting for some more feedback on this before doing anything then.
Hmmm, if you wanted to just add a project to the solution, I could try opening it and see if my VS Express complains. If it turns out to be a pain, it shouldn't be too hard to create a second solution then, right?

Thanks. I'm sure I'll have to go a few rounds to get this just right. Currently it's written to support a single source and a single target game - should I work with more than one of each instead? I assume expansions and dlc use the same SteamID as their parent game, but that might be naive.

I'm using the non-steam installs, so I can check what multiple installs look like in the registry. I do tend to keep multiple copies (all the different versions), but they aren't installed, just copied.

Yep. The source and target game configuration is currently stored in code, but I intend to move it out into an xml file or something equivalent. I'm currently trying to make the tool dynamically build one ore more preferences tabs (see "2 - Set preferences" in the screenshot above) based on what it reads from an xml file. If I can get it to work, moving everything else that is game dependent from code into the same xml file should be trivial.

If I can get it to work, no code changes could in theory be needed if someone, say, added a new configuration option to the converter and to configuration.txt - all it would take is an entry in the xml file.

Implicitly, the same configuration file could be used for an entirely different converter as well, assuming it uses the same configuration.txt format.

Nice!

Edit: Builds are just through the batch files. For a single solution, no changes should be needed (just make sure everything ends up under 'Release' or 'Debug' as appropriate). For two solutions, we'd need to add a line or two.
 
Last edited:
So i finished my savegame and tried to convert it. here is what happens

Reading configuration file.
13-04-01 19:18:43: No input file given, defaulting to input.ck2
13-04-01 19:18:43: Getting CK2 data.
13-04-01 19:18:43: Getting building types.
13-04-01 19:18:43: Getting CK2 religions
13-04-01 19:18:43: Getting CK2 cultures
13-04-01 19:18:43: Parsing landed titles.
13-04-01 19:18:43: Getting traits
13-04-01 19:18:43: Getting opinion modifiers
13-04-01 19:18:43: Adding dynasties from CK2 Install
13-04-01 19:18:43: Parsing CK2 save.
13-04-01 19:19:04: Importing parsed data.
13-04-01 19:19:05: Error: Ida Lowborn had extra trait 187
13-04-01 19:19:05: Error: Æthelflæd of Godwin had extra trait 185
13-04-01 19:19:05: Error: Ernõ Lowborn had extra trait 187
13-04-01 19:19:05: Error: Gerhard von Rheinfelden had extra trait 179
13-04-01 19:19:05: Error: Gerhard von Rheinfelden had extra trait 160
13-04-01 19:19:05: Error: Borte Lowborn had extra trait 185
13-04-01 19:19:05: Error: Gawel Wizlawid had extra trait 186
13-04-01 19:19:05: Error: Doregene Ajinai had extra trait 186
13-04-01 19:19:05: Error: Aamina Adamid had extra trait 187
13-04-01 19:19:05: Error: Gregers Ylving had extra trait 187
13-04-01 19:19:05: Error: Khadagan Kolno had extra trait 187
13-04-01 19:19:05: Error: Ponce Lowborn had extra trait 179
13-04-01 19:19:05: Error: Artal Gundestéiz had extra trait 134
13-04-01 19:19:05: Error: Doquz Batu had extra trait 187
13-04-01 19:19:05: Error: Oghul Lowborn had extra trait 179
13-04-01 19:19:05: Error: Megetu Lowborn had extra trait 185
13-04-01 19:19:05: Error: Gentile von Lenzburg had extra trait 185
13-04-01 19:19:05: Error: Temulun Mospyne had extra trait 187
13-04-01 19:19:05: Error: Samur Samarkandid had extra trait 145
13-04-01 19:19:05: Error: Samur Samarkandid had extra trait 187

this continues the entire time and then this happens

13-04-01 19:19:12: Error: bad relationship modifier in embargo
13-04-01 19:19:12: Error: bad relationship modifier in embargo
13-04-01 19:19:12: Error: bad relationship modifier in embargo
13-04-01 19:19:12: Warning: tried to create title k_netherlands, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title d_kleve, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title d_oldenburg, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title d_artois, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title d_ile_de_france, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title c_teate, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title b_gorgolainis, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title k_nikaea, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title d_podlasie, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title k_novgorod, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title d_pskov, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title k_volga, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title d_surgut, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title d_chuvash, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title k_crimea, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title d_sharukan, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title d_saray, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title k_azerbaijan, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title d_samarkand, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title d_baluchistan, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title d_karbala, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title k_wallachia, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title c_ibiza, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title k_algiers, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title d_atlas, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title k_morocco, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title d_taghaza, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title c_desert_taghaza, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title c_tafilalet, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title b_rissani, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title d_ifni, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title d_laayoune, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title c_el_aaiun, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title b_el_aaiun, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title b_boukra, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title b_semara, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title c_boujdour, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title b_boujdour, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title b_guelta_zemmur, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title c_dakhla, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title b_bir_anzarane, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title c_bir_gandlus, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title b_nouakchott, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title b_tichla, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title c_ouadene, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title b_ouadene, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title d_palmyra, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title c_sinkat, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title d_sennar, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title d_asosa, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title k_adal, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title d_berbera, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title c_socotra, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title b_socotra, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title b_hadibu, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title d_powys, but it is neither a potential title nor a dynamic title.

and after that repeats finally this shows up

13-04-01 19:19:12: Warning: tried to create title d_dummy, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title d_dummy2, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title d_dummy3, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title d_dummy4, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title d_dummy5, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title d_dummy6, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title d_dummy7, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Warning: tried to create title d_dummy8, but it is neither a potential title nor a dynamic title.
13-04-01 19:19:12: Error: Could not find building ca_study_1. Also tried ca_study_1
13-04-01 19:19:12: Error: Could not find building ca_study_2. Also tried ca_study_2
13-04-01 19:19:12: Error: Could not find building ca_study_1. Also tried ca_study_1
13-04-01 19:19:12: Error: Could not find building ca_study_2. Also tried ca_study_2
13-04-01 19:19:12: Error: Could not find building ca_study_1. Also tried ca_study_1
13-04-01 19:19:12: Error: Could not find building ca_study_2. Also tried ca_study_2
13-04-01 19:19:12: Error: Could not find building tp_school_3. Also tried tp_school_3
13-04-01 19:19:12: Error: Could not find building ca_study_1. Also tried ca_study_1
13-04-01 19:19:12: Error: Could not find building ca_study_2. Also tried ca_study_2
13-04-01 19:19:12: Error: Could not find building ca_study_1. Also tried ca_study_1
13-04-01 19:19:12: Error: Could not find building ca_study_2. Also tried ca_study_2
13-04-01 19:19:12: Error: Could not find building ca_study_1. Also tried ca_study_1
13-04-01 19:19:12: Error: Could not find building ca_study_2. Also tried ca_study_2
13-04-01 19:19:12: Error: Could not find building ca_study_1. Also tried ca_study_1
13-04-01 19:19:12: Error: Could not find building ca_study_2. Also tried ca_study_2
13-04-01 19:19:12: Error: Could not find building ca_study_1. Also tried ca_study_1
13-04-01 19:19:12: Error: Could not find building ca_study_2. Also tried ca_study_2
13-04-01 19:19:12: Error: Could not find building ca_study_1. Also tried ca_study_1
13-04-01 19:19:12: Error: Could not find building ca_study_2. Also tried ca_study_2
13-04-01 19:19:12: Error: Could not find building ca_study_1. Also tried ca_study_1

For quite a while. I would have posted the entire log but it's so huge that my browser crashed when i tried to copy it.
 
So i finished my savegame and tried to convert it. here is what happens



this continues the entire time and then this happens



and after that repeats finally this shows up



For quite a while. I would have posted the entire log but it's so huge that my browser crashed when i tried to copy it.

Odd. Are you running any mods? And what version of the converter are you using?
 
I think doing a single distribution is easiest. As long as the main exe is still visible, people can continue to use the original method to convert.

I certainly imagined that my frontend would simply be an extra .exe file in the downloadable .zip file, leaving user the choice of using whatever method they prefer.

Does that require any changes to the current log format, or just that we remember to say "Warning" or "Error" in either of those cases?

I haven't really looked at the log format yet, so I'm basically just thinking out loud. I assume both options would be technically possible.

Yes, it does. The repository itself is just the files in the .hg directory insode the main folder, so you *could* create a repository that itself contains the existing repository...not that you'd want to

That definitely doesn't sound like something I'd want to do, no. I'll see if I can't figure things out based on your comments so far.

Hmmm, if you wanted to just add a project to the solution, I could try opening it and see if my VS Express complains. If it turns out to be a pain, it shouldn't be too hard to create a second solution then, right?
Nope, should be pretty straight forward. I'm currently using VS2012 Premium, but can easily downgrade or run two versions in parallel.

I'm using the non-steam installs, so I can check what multiple installs look like in the registry. I do tend to keep multiple copies (all the different versions), but they aren't installed, just copied.

Thanks. If this gets too messy, I could just auto-detect from the registry for now, and perhaps - in a later version - keep a short history of "recently used paths" that would prevent the user from having to manually locate copies every time
 
Thanks. I'm sure I'll have to go a few rounds to get this just right. Currently it's written to support a single source and a single target game - should I work with more than one of each instead? I assume expansions and dlc use the same SteamID as their parent game, but that might be naive.

DLC uses the same ID, expansions use a different one (I think). So CK2 is OK with a single ID, while EU3 might need more than one.

Implicitly, the same configuration file could be used for an entirely different converter as well, assuming it uses the same configuration.txt format.

The different converters have different configuration options. Same basic Clausewitz-style format, but different required keys.

I haven't really looked at the log format yet, so I'm basically just thinking out loud. I assume both options would be technically possible.

We can change the log format, too, if it's helpful to do so, as long as it remains human-readable. Or we could just add a parameter to our log() function to make sure whatever keyword(s) you need get written out correctly.

Nope, should be pretty straight forward. I'm currently using VS2012 Premium, but can easily downgrade or run two versions in parallel

I was going to say I don't have a problem with updating, but actually I don't have a license for 2012 yet...so it's probably best to stick with 2010.

Thanks. If this gets too messy, I could just auto-detect from the registry for now, and perhaps - in a later version - keep a short history of "recently used paths" that would prevent the user from having to manually locate copies every time

Recently used would be good. It's fairly easy to do, too (but feel free to leave it for later).
 
DLC uses the same ID, expansions use a different one (I think). So CK2 is OK with a single ID, while EU3 might need more than one.
Noted.

The different converters have different configuration options. Same basic Clausewitz-style format, but different required keys.
Assuming "keys" refer to stuff like "land_spread", that's exactly what I want to keep in an external .xml file, for that very reason. :)

Recently used would be good. It's fairly easy to do, too (but feel free to leave it for later).
Yeah, should be easy. But I'm starting with the hard parts - the easy ones will be finishing touches.
 
newest version, i run Ck2+mod but used the Ck2+ converter files.

The converter is not smart about picking up files from the mod itself. I'm afraid you'll have to:
1. Make a copy of your CK2 install.
2. Put the CK2+ files in the main directory of the copy.
3. Point the converter at the copy.
4. Convert.

At least I think. I'm not really very knowledgeable about converting modded games.
 
The converter is not smart about picking up files from the mod itself. I'm afraid you'll have to:
1. Make a copy of your CK2 install.
2. Put the CK2+ files in the main directory of the copy.
3. Point the converter at the copy.
4. Convert.

At least I think. I'm not really very knowledgeable about converting modded games.

I will probably convert my ARR game if I ever finish it, an I was wondering what a Restored Roman Empire would become when transferred to EU III.
 
13-04-04 18:35:53: Error: Could not open G:\Steam\steamapps\common\Europa Universalis III - Complete/mod/Converter/common/religion.txt

Am I missing something? Wasn't aware there was supposed to be this file in EU3 folders. Is it something intended for later version?
 
I will probably convert my ARR game if I ever finish it, an I was wondering what a Restored Roman Empire would become when transferred to EU III.
I don't know, but I would guess BYZ
 
I don't know, but I would guess BYZ

Yep, at the moment the Roman Empire just goes back to Byzantium, hopefully that'll be changed through the eu3 mod I'm working on at the moment. By the way, all country changes can be found in country_mappings.txt

Sorry for the lack of updates by the way, busy few days. Got all of the country files for the empires done so far, still working on localisation and flags.
 
Why does the EU3 to Vic2 converter axctually generates new tags etc., but this can only use existing tags resulting in weird stuff?

Oh, and the program is crashing, here's my log:

Code:
Reading configuration file.
13-04-07 10:07:55: No input file given, defaulting to input.ck2
13-04-07 10:07:55: Getting CK2 data.
13-04-07 10:07:55: 	Getting building types.
13-04-07 10:07:55: 	Getting CK2 religions
13-04-07 10:07:55: 	Getting CK2 cultures
13-04-07 10:07:56: 	Parsing landed titles.
13-04-07 10:07:56: 	Getting traits
13-04-07 10:07:56: 	Getting opinion modifiers
13-04-07 10:07:56: 	Adding dynasties from CK2 Install
13-04-07 10:07:56: Parsing CK2 save.
13-04-07 10:08:05: Importing parsed data.
13-04-07 10:08:08: 		Warning: tried to create title b_dyn_576104, but it is not a potential title.
13-04-07 10:08:08: 		Warning: tried to create title b_dyn_566919, but it is not a potential title.
13-04-07 10:08:08: 		Warning: tried to create title b_dyn_579313, but it is not a potential title.
13-04-07 10:08:08: 		Warning: tried to create title b_dyn_579314, but it is not a potential title.
13-04-07 10:08:08: 		Warning: tried to create title b_dyn_579315, but it is not a potential title.
13-04-07 10:08:08: 		Warning: tried to create title b_dyn_584350, but it is not a potential title.
13-04-07 10:08:09: 	There are a total of 4843 titles
13-04-07 10:08:09: 	There are a total of 189 independent titles
13-04-07 10:08:09: 	There are a total of 31 hre members
13-04-07 10:08:09: Merging top-level titles.
13-04-07 10:08:09: 	There are a total of 4843 titles
13-04-07 10:08:09: 	There are a total of 172 independent titles
13-04-07 10:08:09: 	There are a total of 31 hre members
13-04-07 10:08:09: Parsing province mappings.
13-04-07 10:08:09: Setting up tech groups.
13-04-07 10:08:09: Adding historical EU3 nations.
13-04-07 10:08:16: Getting blocked EU3 nations.
13-04-07 10:08:16: Getting EU3 cultures
13-04-07 10:08:16: Getting EU3 religions
13-04-07 10:08:17: Parsing culture mappings.
13-04-07 10:08:17: Parsing religion mappings.
13-04-07 10:08:17: Parsing continents.
13-04-07 10:08:17: Importing adjacencies
13-04-07 10:08:17: Importing trade good data.
13-04-07 10:08:17: Converting countries.
13-04-07 10:08:17: 	Warning: title d_sardinia never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title d_sardinia never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title d_venice never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title d_venice never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title e_arabia never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_arabia never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title e_arabia never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_arabia never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title e_britannia never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title e_britannia never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title e_persia never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title e_persia never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title e_russia never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title e_russia never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title e_scandinavia never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title e_scandinavia never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title e_spain never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title e_spain never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_alania never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_alania never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_arabia never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_arabia never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_byzantium never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_byzantium never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_dacia never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_dacia never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_finland never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_finland never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_ireland never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_ireland never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_khwarizm never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_khwarizm never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_lithuania never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_lithuania never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_perm never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_perm never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_pomerania never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_pomerania never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_portugal never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_portugal never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_ruthenia never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_ruthenia never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_syria never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_syria never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_taurica never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_taurica never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: Setting up provinces.
13-04-07 10:08:30: Converting provinces.
13-04-07 10:08:30: 	Total historical base tax is 2737.000000.
13-04-07 10:08:30: 	Total historical population is 5908198.000000.
13-04-07 10:08:30: 	Total historical manpower is 1664.000000.
 
Last edited:
13-04-04 18:35:53: Error: Could not open G:\Steam\steamapps\common\Europa Universalis III - Complete/mod/Converter/common/religion.txt

Am I missing something? Wasn't aware there was supposed to be this file in EU3 folders. Is it something intended for later version?

It's the converter trying to take advantage of the converter mod (particularly the religions). If you don't have the mod, you get this error instead.
 
Why does the EU3 to Vic2 converter axctually generates new tags etc., but this can only use existing tags resulting in weird stuff?

Oh, and the program is crashing, here's my log:

Code:
Reading configuration file.
13-04-07 10:07:55: No input file given, defaulting to input.ck2
13-04-07 10:07:55: Getting CK2 data.
13-04-07 10:07:55: 	Getting building types.
13-04-07 10:07:55: 	Getting CK2 religions
13-04-07 10:07:55: 	Getting CK2 cultures
13-04-07 10:07:56: 	Parsing landed titles.
13-04-07 10:07:56: 	Getting traits
13-04-07 10:07:56: 	Getting opinion modifiers
13-04-07 10:07:56: 	Adding dynasties from CK2 Install
13-04-07 10:07:56: Parsing CK2 save.
13-04-07 10:08:05: Importing parsed data.
13-04-07 10:08:08: 		Warning: tried to create title b_dyn_576104, but it is not a potential title.
13-04-07 10:08:08: 		Warning: tried to create title b_dyn_566919, but it is not a potential title.
13-04-07 10:08:08: 		Warning: tried to create title b_dyn_579313, but it is not a potential title.
13-04-07 10:08:08: 		Warning: tried to create title b_dyn_579314, but it is not a potential title.
13-04-07 10:08:08: 		Warning: tried to create title b_dyn_579315, but it is not a potential title.
13-04-07 10:08:08: 		Warning: tried to create title b_dyn_584350, but it is not a potential title.
13-04-07 10:08:09: 	There are a total of 4843 titles
13-04-07 10:08:09: 	There are a total of 189 independent titles
13-04-07 10:08:09: 	There are a total of 31 hre members
13-04-07 10:08:09: Merging top-level titles.
13-04-07 10:08:09: 	There are a total of 4843 titles
13-04-07 10:08:09: 	There are a total of 172 independent titles
13-04-07 10:08:09: 	There are a total of 31 hre members
13-04-07 10:08:09: Parsing province mappings.
13-04-07 10:08:09: Setting up tech groups.
13-04-07 10:08:09: Adding historical EU3 nations.
13-04-07 10:08:16: Getting blocked EU3 nations.
13-04-07 10:08:16: Getting EU3 cultures
13-04-07 10:08:16: Getting EU3 religions
13-04-07 10:08:17: Parsing culture mappings.
13-04-07 10:08:17: Parsing religion mappings.
13-04-07 10:08:17: Parsing continents.
13-04-07 10:08:17: Importing adjacencies
13-04-07 10:08:17: Importing trade good data.
13-04-07 10:08:17: Converting countries.
13-04-07 10:08:17: 	Warning: title d_sardinia never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title d_sardinia never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title d_venice never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title d_venice never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title e_arabia never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_arabia never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title e_arabia never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_arabia never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title e_britannia never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title e_britannia never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title e_persia never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title e_persia never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title e_russia never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title e_russia never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title e_scandinavia never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title e_scandinavia never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title e_spain never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title e_spain never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_alania never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_alania never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_arabia never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_arabia never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_byzantium never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_byzantium never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_dacia never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_dacia never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_finland never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_finland never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_ireland never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_ireland never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_khwarizm never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_khwarizm never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_lithuania never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_lithuania never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_perm never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_perm never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_pomerania never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_pomerania never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_portugal never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_portugal never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_ruthenia never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_ruthenia never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_syria never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_syria never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_taurica never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: 	Warning: title k_taurica never had a holder.  Using arbitrary de jure vassal for EU3 country parameters.
13-04-07 10:08:17: Setting up provinces.
13-04-07 10:08:30: Converting provinces.
13-04-07 10:08:30: 	Total historical base tax is 2737.000000.
13-04-07 10:08:30: 	Total historical population is 5908198.000000.
13-04-07 10:08:30: 	Total historical manpower is 1664.000000.


The EU3 -> V2 converter actually doesn't create new tags as needed. The mod just has everything added. It was only a few dozen countries, IIRC.

For this converter, it would require a few thousand countries (which would bog EU3 down so much enough to be unplayable). We'll eventually do something about it, but getting all the mechanics converted is top priority.

As for your crash, can you upload your save? There's nothing obvious in the log.
 
It's the converter trying to take advantage of the converter mod (particularly the religions). If you don't have the mod, you get this error instead.

Ah, okay. Where is the converter mod found?
 
Ok, quick update on the UI.

  • Game configuration now loaded from XML.
  • Configuration (as in, the data from Configuration.txt) now loaded from XML. Currently working on a proposal for how to display the data to the user.
  • UI project added to Converter solution. Everything is located in the UI subfolder.
  • I had to add a couple of extra assemblies, currently located in UI\Library for some Prism and/or Unity stuff. They'll be distributed along with the .exe, so it shouldn't matter for the user.

I'll probably post a few screenshots and examle xml code in not too long. You guys are more familiar with the type of input/output we need for this, so any feedback will be welcome.

Currently, I'm working on the idea that we need to support two types of settings in configuration.txt:
* Pre-defined strings. The user has, say, three options, and must pick one. Both keys and values are stored as strings. Visually, these will probably be radiobuttons.
* Numeric. May or may not have pre-defined alternatives. Needs a minimum and maximum value. Keys are stored as strings, values as strings (but need to be numerical, as they may be converted to numbers at runtime)

I also suspect that I'm working in the wrong branch. I assume I got Major when I followed the instruction in one of the first posts. However, moving the code over is easy, and I'll probably spend more time trying to figure out how to get the correct branch. :)