Playing WorldBuilder file as scenario

Archid

Warlord
Joined
Oct 30, 2009
Messages
296
Location
North Wales, UK
Now that I know how to get to the in-game worldbuilder and can create a map ... how do I play it without crashing the game :)

I played Civ 4 for many years where the worldbuilder was easy to use (especially the Platy improved one), I skipped Civ V and now in VI I seem to be stuck on how to use its output as the startingpoint for a game. I can save a new untouched map out into the .../Saves/Worldbuilder folder. If I immediately go back to the main menu I can select this under Single Player -> Load, but I get a CTD.

Anyone any ideas on how to use a Civ6Map file?

[EDIT] I have tried to add it to as mod as in the tutorial, but that doesn't seem to do anything, and the tutorial looks to be a special case anyway
 
Last edited:
In your modinfo file you need as like this:
Code:
<Mod id="17462E0F-1EE1-4819-A44A-052B5896B02A" version="1">
	<Properties>
		<Name>Civ6MapTest</Name>
		<Teaser>A Test Map</Teaser>
		<Description>This is a test map</Description>
		<Authors>LeeS</Authors>
	</Properties>
	<Files>
		<File>test.Civ6Map</File>
		<File>Lees_Config.xml</File>
		<File>TestMap_ConfigText.xml</File>
	</Files>
	<Settings>
		<Map id="RULESET_LEETEST_MAP">
			<Properties>
				<Group>Lees_Maps</Group>
				<Name>LOC_LEETEST_MAP_NAME</Name>
				<Description>LOC_LEETEST_MAP_DESCRIPTION</Description>
			</Properties>
			<Items>
				<File>test.Civ6Map</File>
			</Items>
		</Map>
		<Custom id="RULESET_LEETEST_SETTINGS">
			<Items>
				<File>Lees_Config.xml</File>
			</Items>
		</Custom>
		<LocalizedText id="RULESET_LEETEST_MAP_TEXT">
			<Items>
				<File>TestMap_ConfigText.xml</File>
			</Items>
		</LocalizedText>
	</Settings>
</Mod>
In your version of the file Lees_Config.xml you would need like this
Code:
<GameInfo>
	<RuleSets>
		<Row>
			<RuleSetType>RULESET_LEETEST</RuleSetType>
			<Name>Map Testing</Name>
			<Description>Map Testing</Description>
			<SupportsMultiPlayer>1</SupportsMultiPlayer>
		</Row>
	</RuleSets>
	<RulesetDomainOverrides>
		<Row Ruleset="RULESET_LEETEST" ParameterId="Map" Domain="Lees_Maps" />
	</RulesetDomainOverrides>
</GameInfo>
And in the text file called TestMap_ConfigText.xml I have
Code:
<GameData>
	<LocalizedText>
		<Row Tag="LOC_LEETEST_MAP_DESCRIPTION" Language="en_US">
			<Text>A Test Map with a preselected Trajan Start</Text>
		</Row>
		<Row Tag="LOC_LEETEST_MAP_NAME" Language="en_US">
			<Text>Trajan Test Map</Text>
		</Row>
	</LocalizedText>
</GameData>
You have to then enable the mod, and go through the Advanced Start Menu. Once there you will see a selector for the RuleSet to be used. What would show in this selection drop-down would be the "Standard" ruleset and the new ruleset that in this case would be "Lees_Maps". When you select "Lees_Maps", the map to be used will alter to the one you have made. Depending on what else you have added into the Lees_Config.xml file some other options in the advanced setup will also change.

One thing I have noticed is that you still need to select a world size. Even though this is being established by your map (because it has already been made), the game defaults to using "Small" as the map-size, and this will control how many AI players are added to the game you create.

One thing I noticed is that even though you can pre-place cities and units on a premade map, the game as it is does not do very well in using this info as a true scenario setup. I experimented with this to a small degree so I may have been doing something wrong in my config file, but when I pre-placed starting cities, the game used them as an individual player's capital city, for example, but as I built more cities it would reuse the same cityname as was used for the starting cities. This broke the "reports" panel, and was not recoverable from this breakage because as the game currently is you cannot rename cities (the problem did not appear to affect anything else).

I also encountered that while you can place CivX as the human player starting at pointX on the map while in WorldBuilder, the game does not actually treat this as the starting condition for CivX. It treats it as the starting position for the human player. Likewise for whatever you place as AI player #1: it is not treated by the game as the setup for that specific civilization, but rather for whichever player is inserted by the game into AI player slot #1. These players then get the cities & units for these player slots as they were placed on the premade map. So you could end up theoretically with Gorgo starting with a Legion if you made a map with Trajan used as the human player and you then selected to play the actual map as Gorgo.


[edit]although I haven't tried it yet they apparently fixed the issue of not being able to rename cities with the Fall2016 patch, so at least for the human player they could cure that issue.
 
Last edited:
Thanks for the detailed reply, that's certainly a lot more complicated than the Civ IV world I am used to!

By the sounds of what you have identified the map doesn't actually have any Civ info in it, rather it has potential locations that it will fill in when a game is started. Very different from what I am used to, but it's a start and hopefully there may be some updates to the way it works in the future.
 
Thanks for the detailed reply, that's certainly a lot more complicated than the Civ IV world I am used to!
Note that the modding tools are not released yet, we are experimenting blindly here, so of course it's more complicated.

Once the tools are released, one can hope to find a decent worldbuilder with them, and at least an equivalent to modbuddy that will create the modinfo file for us.
 
What Gedemon said. And pursuent to that I am not 100% sure I'm not omitting something simple but fundamental in trying to create a 'true scenario'. Though I suspect it is more to do with the WorldBuilder not being really finished.

I've experimented with
Code:
	<RulesetSupportedValues>
		<!-- Human Player == Slot # 0 -->
		<!-- but this configuration seems to make no real difference -->
		<Row Ruleset="RULESET_LEETEST" PlayerId="0" Domain="StandardPlayers" Value="LEADER_TRAJAN" />
but this also does not seem to affect who the human player is in a map. It only affects who can be used as part of that map, as does the reverse table like as used here to exclude
Code:
	<RulesetUnsupportedValues>
		<!-- Unwanted Major PLayers -->
		<Row Ruleset="RULESET_LEETEST" Domain="StandardPlayers" Value="LEADER_MVEMBA" />
		<Row Ruleset="RULESET_LEETEST" Domain="StandardPlayers" Value="LEADER_BARBAROSSA" />

-----------------------------------------------------------

so far civ6 is more like civ5 in its use of WorldBuilder in the sense that it cannot be accessed while playing a game. You have to create a map, which will then be the map you play on. This is as it was in civ3, unless you had some mod that allowed you to enter a WorldBuilder mode mid-game.

I used to make really complex maps for my own play in civ4, by creating a civ4 scenario, but I was always dissatisfied that it was essentially impossible without some kind of a mod running to allow it to open a civ4 'scenario map' and change who the players were going to be.

Full disclosure: I never used or knew there were such things as mods back in civ3 and civ4 days
 
Last edited:
btw I'm looking at the diff from the patch on XML/Lua files, and there are some changes in the in game WorldBuilder code which seems related to starting position.
 
Units can definitely be placed via lua script. You just make the lua part of the "Ruleset". Starting positions you would want to look-see how Gedemon is handling it in his Earth Maps for civ6 (assuming his mod is making proper realworld starting placements. I haven't looked into his mod yet to see what he is doing). Placing cities via lua is theoretically possible: I think it is a Player:GetCities():Create() method, but have not experimented with it as yet.

Custom map generating script IDK
 
This works for me as far as playing the scripted map.

Code:
<?xml version="1.0" encoding="utf-8"?>
<Mod id="ae02af36-58bf-46e1-b53f-0d1d9775ad82" version="1">
  <Properties>
    <Name>The Viking Age Scenario</Name>
    <Stability>Alpha</Stability>
    <Teaser>A Scenario for the Viking Age</Teaser>
    <Description>A Scenario for the Viking Age</Description>
    <Authors>Craig Sutter</Authors>
  </Properties>
  <Dependencies />
  <References />
  <Blocks />
    <Settings>
        <Custom>
            <Items>
                <File>The_Viking_Age_Scenario_Config.xml</File>
            </Items>
        </Custom>
    </Settings>
    <Components>
        <ImportFiles>
            <Items>
                <File>Viking_Age_Scenario_Map.lua</File>
            </Items>
        </ImportFiles>
    </Components>
    <Files>
        <File>Viking_Age_Scenario_Map.lua</File>
        <File>The_Viking_Age_Scenario_Config.xml</File>
    </Files>
</Mod>

I've been looking at Gedemon's code... haven't figured it out yet. I need to figure out how to set starting positions, not certain if that's what he does in his Earth maps. I also see he has natural wonder code and some for cliffs that I need to work out. He has a customized AssignStartingPlots that may be used, but I'm not sure.
 
Everything is in the modified AssignStartingPlot, the map file only contains the map data in 2 or 3 tables depending of the export format (3 for civ5 + NW + cliffs placed in civ6 WB, or 2 a complete civ6 map data + NW)

The TSL and other stuff for placement (I may put NW there too) is in the corresponding map's XML file, the maps settings/options are in the XML in the configuration folder, I may move things around to be more consistent.

The code used for the export is commented out in AssignStartingPlot and to be used in firetuner in a civ5 game or the civ6 WB

(edit : search for YnAMP in AssingStartingPlots)
 
Top Bottom