[BTS] Giant Earth Map with LOTS of Civs? How do I edit one?

LGWolf

Chieftain
Joined
Jun 30, 2019
Messages
22
Hi,

I've found my ideal map: it's huge: https://forums.civfanatics.com/threads/earth-map-440x200.625529/

(440x200) but it only has 18 civs and not the ones I want to add.

How do I add the English for example, by editing the ".civbeyondthesword.WBSave" - where do I get a list of each civilization's details for the BeginTeam and BeginPlayer attributes that need to be added in order to add those civs to this map?

Also do I need to use the 50 civ DLL that's on this forum somewhere (I found it before but can't now)
 
Hello LGWolf,

It looks like you're trying to figure out how to fill in the definitions for civs in the WBSave, the most effective way for you to find those definitions is to grab them from another scenario, but they can all be found in three files: CIV4CivilizationInfos, CIV4ArtDefines_Civilization, and CIV4LeaderHeadInfos
These files are found in the BTS XML directory, unless you're using mods which overwrite them.

So if you wanted to change the Celts to the English, you'd need the LeaderType and LeaderName from LeaderHeadInfos. The CivShortDesc, CivDesc, and adjective are in CIV4CivilizationInfos, but they can be text. The FlagDecal path is in CIV4ArtDefines_Civilization. After that the CivType, color, and Artstyle are in the CIV4CivilizationInfos, please note that CivType refers to Type in the file. The rest of the details are for scenario makers, except RandomStartLocation, set that to false.

And about the 50 civ DLL since the hard limit in BTS is 18 you'll need that for more civs, just download the correct version.
 
Wow Talvamiir, thank you so much. I'll get cracking right away!!
 
How do I get the right StartingX and StartingY values so that I can place the civs correctly in their countries?
 
You don't need to use those, you can just place the units directly on the tiles you want, with the BeginUnit. To find the values I would use a map editor, I like MapView but it won't load the map you linked. Another way is to use the units in the map as a reference.

So the values begin in the bottom left corner, X-values are left to right, and Y-values are up and down. So on that map, if you wanted to move the Aztec two tiles up and two to the left, you would add two to the Y-axis, and subtract two from the X-axis.
 
I think most of the player data in Math_slz's scenario is actually superfluous. The Vanilla Earth18Civs scenario for example only has
Code:
BeginPlayer
   LeaderType=LEADER_QIN_SHI_HUANG
   CivType=CIVILIZATION_CHINA
   Team=2
   PlayableCiv=1
   StartingX=102, StartingY=47
   Handicap=HANDICAP_NOBLE
EndPlayer
PlayableCiv=1 and Handicap=HANDICAP_NOBLE should also be dispensable.
As for the DLL: I'd recommend against using one with an unnecessarily high player limit. The unused players increase AI turn times a bit and need to have BeginTeam/EndTeam and BeginPlayer/EndPlayer sections in the WBSave file (extra work). If 34 players are enough, you could use the DLL from this minimod.
 
Hi f1rpo, I tried installing the 34 Civ DLL and when I select an earth map on collosal size it just creates a flat rectangle, not a large Earth map.
 
I had assumed that you'd use only the DLL from vincentz's mod. The mod's world size settings in XML look correct to me but shouldn't be needed for a scenario. I see that the 440x220 Terra scenario you linked to sets its world size to HUGE. With vincentz's Civ4WorldInfos.xml, it should be possible to use WORLDSIZE_COLOSSAL instead. This wouldn't actually make a difference because COLOSSAL differs from HUGE only in grid size, terrain grain and default players, all of which are only relevant for map scripts ("Custom Game" or "Play Now"). It sounds like you've tried to use COLOSSAL for the "Earth2" map script. That should, in theory work, but it's possible that the script somehow doesn't support such a large grid. (The 50x30 is actually taken times 4, so it's 200x120 tiles.) Do other scripts work with COLOSSAL?

Edit: At the start of Earth2.py, it says:
Code:
grid_sizes = {
        WorldSizeTypes.WORLDSIZE_DUEL:      (10,6),
        WorldSizeTypes.WORLDSIZE_TINY:      (15,9),
        WorldSizeTypes.WORLDSIZE_SMALL:     (20,12),
        WorldSizeTypes.WORLDSIZE_STANDARD:  (25,15),
        WorldSizeTypes.WORLDSIZE_LARGE:     (30,18),
        WorldSizeTypes.WORLDSIZE_HUGE:      (40,24)
    }
I guess you'd have to add the two new world sizes to that list. However, this will only work if the new sizes are also fully supported by the DLL, which I wouldn't bet on.

Edit #2: This table in line 89 also hardcodes the world sizes:
Spoiler :
Code:
 sizevalues = {
            WorldSizeTypes.WORLDSIZE_DUEL:      (3,2,1),
            WorldSizeTypes.WORLDSIZE_TINY:      (3,2,1),
            WorldSizeTypes.WORLDSIZE_SMALL:     (4,2,1),
            WorldSizeTypes.WORLDSIZE_STANDARD:  (4,2,1),
            WorldSizeTypes.WORLDSIZE_LARGE:     (4,2,1),
            WorldSizeTypes.WORLDSIZE_HUGE:      (5,2,1)
            }
 
Last edited:
Top Bottom