[Mod] True Culture Location and Territory Naming for the Giant Earth Map

got a Turn Pending freeze when phoenicians jumped era and got split, but i got to say i enjoyed it hugely while it lasted... amazing work as always, G!

Code:
22:31:04:522None

[Gedemon] in ApplyFactionChangePost.

22:31:04:523None

[Gedemon] City Byblos : update Administrative District visual in territory 188.

22:31:04:523None

[Gedemon] City Byblos : update Administrative District visual in territory 190.

22:31:04:523None

[Gedemon] EmpireSymbolDefinition_Era2_Carthage Era2_Carthage == Civilization_Era2_Carthage Era2_Carthage

22:31:04:625None

[Preview] Set PresentationUnit UnitVisualAffinity_Common_Era2_Asian #8260 visual status as Hidden (previous visual status: Standard)

22:31:04:625None

UpdatePawnsCountWhenNotMoving called while pawnsToCreate is zero! Nothing to do!

22:31:04:657None

UpdatePawnsCountWhenNotMoving called while pawnsToCreate is zero! Nothing to do!

22:31:04:682None

AI Synchronization took 59,5878ms at frame 7194 (entities created: 0 deleted: 0 synchronized: 0 last entity synchronized: 0 snapshots: 'synchronized').

22:31:04:839None

Metadata 'rmc0' has no policy registered; assuming None.

22:31:04:839None

Metadata 'IsEditingScenario' has no policy registered; assuming None.

22:31:05:342None

%ControlBannerReligionPopupReformationDescription Trying to get a parameter 0 out of bound 0.

22:31:05:343None

%NextTenetTitle Trying to get a parameter 0 out of bound 0.

22:31:07:701None

Index was outside the bounds of the array.

22:31:07:702None

Exception caught in sandbox state 'SandboxState_TurnBegin'.

If you can't zip the html, try to expand the stack for the critical/errors message (by clicking on "stack"), and the first one before the critical, TIA !

Spoiler not enough info :
upload_2021-11-12_0-32-52.png


Spoiler more info :
upload_2021-11-12_0-33-0.png


Can't be sure, but the critical error in your code happens far later than the last mod log, so it doesn't seem linked.

Was "%NextTenetTitle Trying to get a parameter 0 out of bound 0." critical/error ?
 
Development update, started to implement how to get external data, a Culture mod should be able to set himself compatible with the TCL mod.

I'm also adding the "core territory" list (keeping the long list for the first era Cultures to help AI unlocking them when not using the spawn outpost option) and the ability to set the data (cultures territory list, continent/territories name) for multiple maps.

I will use json files that you'll have to put in the Resource folder of a mod project

Spoiler :
upload_2021-11-12_0-46-37.png


Maps not being mod projects, a separate compatibility mod will be needed if you want to set TCL for one.

So if someone has a map he'd like to use with TCL, we should be soon able to test the framework...

And yes, you can prepare a territory list for your minor factions @SeelingCat
Code:
[
    {
        "MapTerritoryHash": [-819807177,-288044546],
        "MinorFactionTerritories": 
            {
                "IndependentPeople_Era1_Peaceful_SC_Dilmun": [ 0, 1 ],
                "IndependentPeople_Era1_Peaceful_SC_Dmt": [ 2, 3, 4 ]
            }
    }
]
 
Last edited:
Maps not being mod projects, a separate compatibility mod will be needed if you want to set TCL for one.
thinking of it, I should be able to read a json file zipped with the map if the game doesn't change the way it handles subscribed maps/mod (extracting everything in its own folder in ..\Documents\Humankind\Community\mod.io)
 
And so new alpha
Code:
- implement loading of .json files embedded in the assetbundle of another mod, or placed in a subfolder of "\Documents\Humankind\Community" to add or update data for this mod
- add a "core" territory list with less territory per Empire when evolving, activated by the "Keep only Core Empire" choice in the territory loss option, thanks to FoxFox
- try to not destroy immediately districts on minor faction decay
- bug fix: build the map territory hash with 256 entries, not 255.
The .json file names must end with "TCL" or "tcl" for example "MyMapTCL.json"

You can create a .json file in the "Resources" folder of your project, it will be embedded in the assetbundle when you build it and can be read by the mod.

You can also directly place a .json files in any subfolder of your "\Documents\Humankind\Community" folder (but not directly in that folder)

Spoiler .json example :

Code:
[
    {
        "LoadOrder": 1,
        "MapTerritoryHash": [ -819807177, -288044546 ],
        "MajorEmpireTerritories":
            {
                "Civilization_Era1_Phoenicia": [ 188, 190, 106, 127, 95, 100, 99, 22 ],
                "Civilization_Era1_EgyptianKingdom": [ 128 ]
            },
        "MajorEmpireCoreTerritories":
            {
                "Civilization_Era1_Phoenicia": [ 188, 190 ],
                "Civilization_Era1_EgyptianKingdom": [ 128 ]
            },
        "MinorFactionTerritories":
            {
                "IndependentPeople_Era1_Peaceful_Akkadians": [ 142, 123 ],
                "IndependentPeople_Era1_Peaceful_Elamites": [ 243 ],
                "IndependentPeople_Era1_Peaceful_Noks": [ 220 ],
                "IndependentPeople_Era1_Peaceful_SC_Dilmun": [ 0, 1 ],
                "IndependentPeople_Era1_Peaceful_SC_Dmt": [ 2, 3, 4 ]
            },
        "ExtraPositions":
            {
                "0": { "Column": 32, "Row": 41},
                "1": { "Column": 40, "Row": 51},
                "2": { "Column": 56, "Row": 55}
            },
        "ContinentNames": { "0": "Oceans", "1": "Americas", "2": "Eurasiafrica" },
        "TerritoryNames": { "202": "Pampa", },
        "NomadCultures": [ "Civilization_Era2_CelticCivilization", "Civilization_Era2_Goths" ],
    },
]


The only mandatory section is the "MapTerritoryHash", used to identify the map to use the data with, the mod output it in the log when starting a game, "-288044546" is the Giant Earth Map 1.1.1.1.

upload_2021-11-13_0-44-19.png


The other optional sections:

  • LoadOrder : data from the file with the higher value will overwrite data from files with a lower value
  • MajorEmpireTerritories : the default list of territory indexes used for TCL, representing a Major Empire territories, the Capital being the first entry
  • MajorEmpireCoreTerritories : a reduced list of territories, activated with the "Keep only Core Empire" option
  • MinorFactionTerritories : TCL for independent people
  • ContinentNames : pairs of Continent index - name
  • TerritoryNames : pairs of Territory index - name
  • ExtraPositions : allows to set a list of alternate start positions, used when there are more than 10 player slots in a game (described as "old world only" in the options)
  • ExtraPositionsNewWorld : alternate start positions, full map
  • NoCapital : list of Cultures without capital (any territory from the list will unlock them, and they can be adopted by more than one empire)
  • NomadCultures : list of Cultures that never need a city to unlock a new culture
When there is a default entry set directly in the mod (all vanilla cultures and all territory/continent names for the Giant Earth Map), any entry with the same "key" (faction name, territory/continent/slot index) will replace it's value, and when it does not exists it's added.

For example that section in the example above
Code:
        "MajorEmpireCoreTerritories":
            {
                "Civilization_Era1_Phoenicia": [ 188, 190 ],
                "Civilization_Era1_EgyptianKingdom": [ 128 ]
            },
means that the existing list of "core" territories of Phoenicia and Egypt will be replaced by the territories listed here.
 
Last edited:
Took a crack at providing TCL support for the new Independent Peoples in my mod - seemed pretty straightforward (assuming it works of course!)
 
thanks, and so new alpha
Code:
- change search behavior to be consistent between folders and assetbundles: ignore case, check for ending string ("*tcl.json"), not full string ("tcl.json")

should correctly support the "More Independent Peoples" mod now

(edit: deprecated alpha file removed)
 
Last edited:
this sounds amazing! i will attempt to set 2 more ips in africa to up the pressure. we already have the nok culture, i'd see if i can do the sao and the khoisan peoples

--

edit: had another turn pending. this time when two grey OUTPOSTS ended decline fase in libya and mauretania. both were remnants of phoenicians that went carthago of course. their other city in sahara, sidon, remained grey

critical error after DestroyAllDistrictsFromSettlement

acording to the fame ranking there's only one new major, olmecs from the original 8 minus eliminated egypt

Code:
16:54:59:706None

[Gedemon] in DepartmentOfTheInterior, DestroyAllDistrictsFromSettlement for Mauretania, empire index = 22

16:54:59:706None

[Gedemon] in DepartmentOfTheInterior, DestroyAllDistrictsFromSettlement for Libya, empire index = 22

16:54:59:725None

Object reference not set to an instance of an object

Amplitude.Mercury.Simulation.TradeController:DestroyTradeRoad(System.Reflection.MonoParameterInfo, System.Reflection.MonoParameterInfo, System.Reflection.MonoParameterInfo, System.Reflection.MonoParameterInfo)
Amplitude.Mercury.Simulation.TradeController:DestroyTradeRoad(System.Reflection.MonoParameterInfo, System.Reflection.MonoParameterInfo, System.Reflection.MonoParameterInfo, System.Reflection.MonoParameterInfo)
Amplitude.Mercury.Simulation.TradeController:OnTerritoryUnclaimed(System.Reflection.MonoParameterInfo)
Amplitude.Mercury.Simulation.TradeController:OnTerritoryOwnerChanged(System.Reflection.MonoParameterInfo, System.Reflection.MonoParameterInfo)
Amplitude.Mercury.Simulation.SimulationEvent+Event`1[[Amplitude.Mercury.Simulation.SimulationEvent_TerritoryOwnerChanged, Amplitude.Mercury.Firstpass, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]:Amplitude.Mercury.Simulation.SimulationEvent.ISimulationEventInvoker.Invoke(System.Reflection.MonoParameterInfo, System.Reflection.MonoParameterInfo)
Amplitude.Mercury.Simulation.SimulationEvent`1[[Amplitude.Mercury.Simulation.SimulationEvent_TerritoryOwnerChanged, Amplitude.Mercury.Firstpass, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]:Raise(System.Reflection.MonoParameterInfo, System.Reflection.MonoParameterInfo)
Amplitude.Mercury.Simulation.SimulationEvent_TerritoryOwnerChanged:Raise(System.Reflection.MonoParameterInfo, System.Reflection.MonoParameterInfo, System.Reflection.MonoParameterInfo, System.Reflection.MonoParameterInfo)
Amplitude.Mercury.Simulation.World:UnclaimTerritory(System.Reflection.MonoParameterInfo, System.Reflection.MonoParameterInfo)
Amplitude.Mercury.Simulation.DepartmentOfTheInterior:DestroyRegion(System.Reflection.MonoParameterInfo, System.Reflection.MonoParameterInfo)
Amplitude.Mercury.Simulation.DepartmentOfTheInterior:FreeSettlement(System.Reflection.MonoParameterInfo, System.Reflection.MonoParameterInfo)
Amplitude.Mercury.Simulation.BaseHumanMinorFactionSpawner`1[[Amplitude.Mercury.Data.Simulation.HumanSpawnerDefinition, Amplitude.Mercury.Data, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]:SetMinorFactionDead(System.Reflection.MonoParameterInfo)
Amplitude.Mercury.Simulation.BaseHumanMinorFactionSpawner`1[[Amplitude.Mercury.Data.Simulation.HumanSpawnerDefinition, Amplitude.Mercury.Data, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]:UpdateLifeTimes()
Amplitude.Mercury.Simulation.MinorFactionManager:NewTurnBeginPass_UpdateMinorFactionsLifeTime(System.Reflection.MonoParameterInfo, System.Reflection.MonoParameterInfo)
Amplitude.Mercury.Simulation.SimulationPasses:InvokePasses(System.Reflection.MonoParameterInfo)
Amplitude.Mercury.Sandbox.SandboxState_TurnBegin+d__1:MoveNext()
Amplitude.Coroutine:Run()

16:54:59:726None

Exception caught in sandbox state 'SandboxState_TurnBegin'.

Amplitude.Mercury.Sandbox.SandboxState:ExceptionHandler(System.Reflection.MonoParameterInfo, System.Reflection.MonoParameterInfo)
Amplitude.Mercury.Sandbox.SandboxState:ExceptionHandler(System.Reflection.MonoParameterInfo, System.Reflection.MonoParameterInfo)
Amplitude.Coroutine:Run()
Amplitude.Mercury.Sandbox.SandboxState:Run()
Amplitude.Framework.FiniteStateMachine:Update()
Unknown Type:Unknown Method

16:54:59:814None

AI Synchronization took 66,1795ms at frame 22460 (entities created: 0 deleted: 0 synchronized: 0 last entity synchronized: 0 snapshots: 'synchronized').

16:55:06:720UI Steam

Index was outside the bounds of the array.

Amplitude.Mercury.UI.CampPin_Docket:Refresh(System.Reflection.MonoParameterInfo)
Amplitude.Mercury.UI.CampPin_Docket:Refresh(System.Reflection.MonoParameterInfo)
Amplitude.Mercury.UI.CampPin:Refresh()
Amplitude.UI.Windows.UIContainer:RefreshNow()
Amplitude.UI.Windows.UIContainer:InternalRequestShow()
Amplitude.UI.UIAbstractShowable:RequestShow(System.Reflection.MonoParameterInfo)
Amplitude.UI.Windows.UIContainer:RequestShow(System.Reflection.MonoParameterInfo)
Amplitude.UI.Windows.UIPanel:Show(System.Reflection.MonoParameterInfo)
Amplitude.Mercury.UI.AbstractSettlementPin:Amplitude.Mercury.UI.IPin.Show(System.Reflection.MonoParameterInfo)
Amplitude.Mercury.UI.PinsSubset:ShowPin(System.Reflection.MonoParameterInfo, System.Reflection.MonoParameterInfo)
Amplitude.Mercury.UI.PinsSubset:RefreshPinsPosition(System.Reflection.MonoParameterInfo, System.Reflection.MonoParameterInfo)
Amplitude.Mercury.UI.PinsSubset:Amplitude.Mercury.UI.IPinsSubset.OnPreRender(System.Reflection.MonoParameterInfo, System.Reflection.MonoParameterInfo)
Amplitude.Mercury.UI.PinsWindow:UIUpdatingManager_PreRender()
Unknown Type:Unknown Method
Amplitude.UI.UIUpdatingManager:Render()

16:55:10:406UI Steam

Index was outside the bounds of the array.

Amplitude.Mercury.UI.CampPin_Docket:Refresh(System.Reflection.MonoParameterInfo)
Amplitude.Mercury.UI.CampPin_Docket:Refresh(System.Reflection.MonoParameterInfo)
Amplitude.Mercury.UI.CampPin:Refresh()
Amplitude.UI.Windows.UIContainer:RefreshNow()
Amplitude.UI.Windows.UIContainer:UpdateAndCheckDirty()
Amplitude.UI.Windows.UIContainerManager:SpecificUpdate()
Amplitude.UI.UIUpdatingManager:LateUpdate()

16:55:25:159UI Steam

Index was outside the bounds of the array.

Amplitude.Mercury.UI.CampPin_Docket:Refresh(System.Reflection.MonoParameterInfo)
Amplitude.Mercury.UI.CampPin_Docket:Refresh(System.Reflection.MonoParameterInfo)
Amplitude.Mercury.UI.CampPin:Refresh()
Amplitude.UI.Windows.UIContainer:RefreshNow()
Amplitude.UI.Windows.UIContainer:UpdateAndCheckDirty()
Amplitude.UI.Windows.UIContainerManager:SpecificUpdate()
Amplitude.UI.UIUpdatingManager:LateUpdate()
 
Last edited:
No errors, just some feedback on the Mod.Io release. 10 starting in the neolithic, 16 slots, full territory loss, spawn from split or minor faction, no reviving dead players. Oarly boats.

Went with Slot 5, thoroughly enjoyed the central Chinese plains, had so many mammoths I just abandoned the legacy trait entirely.

As I transcended with Zhou, I noticed a few issues. First, slots 9 and 10 did not both end up in the New World, but rather one of them ended up in the Urals. The other chose the Olmecs, so no issue there. Second, the majority of cultures transcended either indefinitely or after one transition, including Nubians, Harappans, Olmecs, and Babylon after evolving into the Persians. The Phoenicians became the Carthaginians and then the Ghanaians, spawning other powers in their wake. Mycenae transcended and then evolved into the Byzantines, but they did not lose any territory. The Babylon->Persia and Assyria->Goth transitions spawned a bunch of players between Ukraine and Mesopotamia.

When I finally evolved into the Ming, it was a complete mess. Although I was able to secure Mongolia Ulterior and the western territories easily, Korea, Japan, and Cambosia showed no signs of evolving into their own factions. Finally, when the odds and ends territories reached the end of their lifespan, Formosa up and disappeared, cutting off nearly all sea trade. That was pretty intense, and while I anticipated loss of territory, I was completely blown away by the destruction of trade routes due to a territory fading away.

Now I know better! Makes me think why the map you posted seemed so barren to me. Could it be that the offshoot minor factions have too short a lifespan? Up to the early modern, Iberia, Western Europe, and Scandinavia alternated between major/minor faction control and sheer wasteland. The only factions that seemed to pursue widespread colonization/expansion were those that transcended. I would also like for there to be more of a penalty for transcending.

On the plus side, while I moved the starting outpost one tile to the east, China is a very rich and playable region of the map.
 
this sounds amazing! i will attempt to set 2 more ips in africa to up the pressure. we already have the nok culture, i'd see if i can do the sao and the khoisan peoples

--

edit: had another turn pending. this time when two grey OUTPOSTS ended decline fase in libya and mauretania. both were remnants of phoenicians that went carthago of course. their other city in sahara, sidon, remained grey

critical error after DestroyAllDistrictsFromSettlement

acording to the fame ranking there's only one new major, olmecs from the original 8 minus eliminated egypt

Code:
16:54:59:706None

[Gedemon] in DepartmentOfTheInterior, DestroyAllDistrictsFromSettlement for Mauretania, empire index = 22

16:54:59:706None

[Gedemon] in DepartmentOfTheInterior, DestroyAllDistrictsFromSettlement for Libya, empire index = 22

16:54:59:725None

Object reference not set to an instance of an object

Amplitude.Mercury.Simulation.TradeController:DestroyTradeRoad(System.Reflection.MonoParameterInfo, System.Reflection.MonoParameterInfo, System.Reflection.MonoParameterInfo, System.Reflection.MonoParameterInfo)
Amplitude.Mercury.Simulation.TradeController:DestroyTradeRoad(System.Reflection.MonoParameterInfo, System.Reflection.MonoParameterInfo, System.Reflection.MonoParameterInfo, System.Reflection.MonoParameterInfo)
Amplitude.Mercury.Simulation.TradeController:OnTerritoryUnclaimed(System.Reflection.MonoParameterInfo)
Amplitude.Mercury.Simulation.TradeController:OnTerritoryOwnerChanged(System.Reflection.MonoParameterInfo, System.Reflection.MonoParameterInfo)
Amplitude.Mercury.Simulation.SimulationEvent+Event`1[[Amplitude.Mercury.Simulation.SimulationEvent_TerritoryOwnerChanged, Amplitude.Mercury.Firstpass, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]:Amplitude.Mercury.Simulation.SimulationEvent.ISimulationEventInvoker.Invoke(System.Reflection.MonoParameterInfo, System.Reflection.MonoParameterInfo)
Amplitude.Mercury.Simulation.SimulationEvent`1[[Amplitude.Mercury.Simulation.SimulationEvent_TerritoryOwnerChanged, Amplitude.Mercury.Firstpass, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]:Raise(System.Reflection.MonoParameterInfo, System.Reflection.MonoParameterInfo)
Amplitude.Mercury.Simulation.SimulationEvent_TerritoryOwnerChanged:Raise(System.Reflection.MonoParameterInfo, System.Reflection.MonoParameterInfo, System.Reflection.MonoParameterInfo, System.Reflection.MonoParameterInfo)
Amplitude.Mercury.Simulation.World:UnclaimTerritory(System.Reflection.MonoParameterInfo, System.Reflection.MonoParameterInfo)
Amplitude.Mercury.Simulation.DepartmentOfTheInterior:DestroyRegion(System.Reflection.MonoParameterInfo, System.Reflection.MonoParameterInfo)
Amplitude.Mercury.Simulation.DepartmentOfTheInterior:FreeSettlement(System.Reflection.MonoParameterInfo, System.Reflection.MonoParameterInfo)
Amplitude.Mercury.Simulation.BaseHumanMinorFactionSpawner`1[[Amplitude.Mercury.Data.Simulation.HumanSpawnerDefinition, Amplitude.Mercury.Data, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]:SetMinorFactionDead(System.Reflection.MonoParameterInfo)
Amplitude.Mercury.Simulation.BaseHumanMinorFactionSpawner`1[[Amplitude.Mercury.Data.Simulation.HumanSpawnerDefinition, Amplitude.Mercury.Data, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]:UpdateLifeTimes()
Amplitude.Mercury.Simulation.MinorFactionManager:NewTurnBeginPass_UpdateMinorFactionsLifeTime(System.Reflection.MonoParameterInfo, System.Reflection.MonoParameterInfo)
Amplitude.Mercury.Simulation.SimulationPasses:InvokePasses(System.Reflection.MonoParameterInfo)
Amplitude.Mercury.Sandbox.SandboxState_TurnBegin+d__1:MoveNext()
Amplitude.Coroutine:Run()

16:54:59:726None

Exception caught in sandbox state 'SandboxState_TurnBegin'.

Amplitude.Mercury.Sandbox.SandboxState:ExceptionHandler(System.Reflection.MonoParameterInfo, System.Reflection.MonoParameterInfo)
Amplitude.Mercury.Sandbox.SandboxState:ExceptionHandler(System.Reflection.MonoParameterInfo, System.Reflection.MonoParameterInfo)
Amplitude.Coroutine:Run()
Amplitude.Mercury.Sandbox.SandboxState:Run()
Amplitude.Framework.FiniteStateMachine:Update()
Unknown Type:Unknown Method

16:54:59:814None

AI Synchronization took 66,1795ms at frame 22460 (entities created: 0 deleted: 0 synchronized: 0 last entity synchronized: 0 snapshots: 'synchronized').

16:55:06:720UI Steam

Index was outside the bounds of the array.

Amplitude.Mercury.UI.CampPin_Docket:Refresh(System.Reflection.MonoParameterInfo)
Amplitude.Mercury.UI.CampPin_Docket:Refresh(System.Reflection.MonoParameterInfo)
Amplitude.Mercury.UI.CampPin:Refresh()
Amplitude.UI.Windows.UIContainer:RefreshNow()
Amplitude.UI.Windows.UIContainer:InternalRequestShow()
Amplitude.UI.UIAbstractShowable:RequestShow(System.Reflection.MonoParameterInfo)
Amplitude.UI.Windows.UIContainer:RequestShow(System.Reflection.MonoParameterInfo)
Amplitude.UI.Windows.UIPanel:Show(System.Reflection.MonoParameterInfo)
Amplitude.Mercury.UI.AbstractSettlementPin:Amplitude.Mercury.UI.IPin.Show(System.Reflection.MonoParameterInfo)
Amplitude.Mercury.UI.PinsSubset:ShowPin(System.Reflection.MonoParameterInfo, System.Reflection.MonoParameterInfo)
Amplitude.Mercury.UI.PinsSubset:RefreshPinsPosition(System.Reflection.MonoParameterInfo, System.Reflection.MonoParameterInfo)
Amplitude.Mercury.UI.PinsSubset:Amplitude.Mercury.UI.IPinsSubset.OnPreRender(System.Reflection.MonoParameterInfo, System.Reflection.MonoParameterInfo)
Amplitude.Mercury.UI.PinsWindow:UIUpdatingManager_PreRender()
Unknown Type:Unknown Method
Amplitude.UI.UIUpdatingManager:Render()

16:55:10:406UI Steam

Index was outside the bounds of the array.

Amplitude.Mercury.UI.CampPin_Docket:Refresh(System.Reflection.MonoParameterInfo)
Amplitude.Mercury.UI.CampPin_Docket:Refresh(System.Reflection.MonoParameterInfo)
Amplitude.Mercury.UI.CampPin:Refresh()
Amplitude.UI.Windows.UIContainer:RefreshNow()
Amplitude.UI.Windows.UIContainer:UpdateAndCheckDirty()
Amplitude.UI.Windows.UIContainerManager:SpecificUpdate()
Amplitude.UI.UIUpdatingManager:LateUpdate()

16:55:25:159UI Steam

Index was outside the bounds of the array.

Amplitude.Mercury.UI.CampPin_Docket:Refresh(System.Reflection.MonoParameterInfo)
Amplitude.Mercury.UI.CampPin_Docket:Refresh(System.Reflection.MonoParameterInfo)
Amplitude.Mercury.UI.CampPin:Refresh()
Amplitude.UI.Windows.UIContainer:RefreshNow()
Amplitude.UI.Windows.UIContainer:UpdateAndCheckDirty()
Amplitude.UI.Windows.UIContainerManager:SpecificUpdate()
Amplitude.UI.UIUpdatingManager:LateUpdate()
thanks for the report, can you try your save (if you still have it) with this version ?

(edit: deprecated alpha file removed)
 
Last edited:
Finally, when the odds and ends territories reached the end of their lifespan, Formosa up and disappeared, cutting off nearly all sea trade. That was pretty intense, and while I anticipated loss of territory, I was completely blown away by the destruction of trade routes due to a territory fading away.

Now I know better! Makes me think why the map you posted seemed so barren to me. Could it be that the offshoot minor factions have too short a lifespan? Up to the early modern, Iberia, Western Europe, and Scandinavia alternated between major/minor faction control and sheer wasteland.
Yep, my first try at handling independent people end of life to keep districts and trade routes ended in the error reported by NombreyApellido, longer lifespan will just delay the issue, so I'm not sure how to handle that.

Those are the independent territories not attached to a city, handled by a minor rebel factions.

The goal of splitting the cities/territories of spawned minors on culture change was to prevent bribing one faction to get back a large empire.

I can try to set that particular faction to be able to spawn a city, with a longer lifespan (currently 10*GameSpeedMultiplier turns) but also set them "on decline" which would force capture as the only way to get the territory back.
 
i don't have a save for that one, sorry. i think i can reproduce it from an earlier save though in order to test the new build afterwards

update: got to the same decline phase on a previous save WITHOUT having updated to the last fix on post 308 but this time both outposts involved in the previous error disappeared with no problems

Code:
14:08:18:671None

[Gedemon] in DepartmentOfTheInterior, DestroyAllDistrictsFromSettlement for Mauretania, empire index = 23

14:08:18:671None

[Gedemon] in DepartmentOfTheInterior, DestroyAllDistrictsFromSettlement for Libya, empire index = 23

14:08:18:672None

[Gedemon] in NewTurnBeginPass_UpdateMinorFactionsSpawning, (PostFix) for NewTurnBegin, GlobalEra index = 2, Game Turn = 64, EmpireCanSpawnFromMinorFactions = True

14:08:18:672None

[Gedemon] Check Minor Faction IndependentPeople_Era2_Peaceful_Scythians ID#17, Era=2, Status=Zenith, HomeStatus=City, RemainingLife=43.00, Spawn=42, Life=22, hasEnoughLifeTime=True, lifeRatio = 0.50, FirstPatron ID#14

14:08:18:672None

[Gedemon] Minor Faction own territory Omium, a potential Major Empire location

14:08:18:672None

[Gedemon] - Civilization_Era2_Huns, Era Index = 2

14:08:18:672None

[Gedemon] - Civilization_Era3_MongolEmpire, Era Index = 3

14:08:18:672None

[Gedemon] Check Minor Faction Civilization_Era1_Nubia ID#21, Era=1, Status=Zenith, HomeStatus=City, RemainingLife=55.00, Spawn=35, Life=29, hasEnoughLifeTime=True, lifeRatio = 0.50, FirstPatron ID#0

14:08:18:672None

[Gedemon] Check Minor Faction Civilization_Era1_Phoenicia ID#22, Era=1, Status=InDecline, HomeStatus=City, RemainingLife=5.00, Spawn=49, Life=15, hasEnoughLifeTime=True, lifeRatio = 0.50, FirstPatron ID#13

14:08:18:673None

[Gedemon] in MinorFactionManager, IsTerritoryValidForSpawnFaction for Caledonia, Found (IndependentPeople_Era2_Violent_Picts) !

14:08:18:674None

[Gedemon] in MinorFactionManager, IsTerritoryValidForSpawnFaction for Occitania, Found (IndependentPeople_Era2_Violent_Arverni) !

14:08:18:674None

[Gedemon] in MinorFactionManager, IsTerritoryValidForSpawnFaction for Mexicum, Found (IndependentPeople_Era2_Peaceful_Zapotecs) !

14:08:18:675None

[Gedemon] in MinorFactionManager, IsTerritoryValidForSpawnFaction for Peruvia, Found (IndependentPeople_Era2_Peaceful_Mochicas) !

14:08:18:675None

[Gedemon] in MinorFactionManager, IsTerritoryValidForSpawnFaction for Atacama, Found (IndependentPeople_Era2_Peaceful_Nazcans) !

14:08:18:677None

[Gedemon] in MinorFactionManager, IsTerritoryValidForSpawnFaction for Andalusia, Found (IndependentPeople_Era2_Violent_Vandals) !

14:08:18:677None

[Gedemon] in MinorFactionManager, IsTerritoryValidForSpawnFaction for Castella, Found (IndependentPeople_Era2_Violent_Cantabris) !

14:08:18:677None

[Gedemon] in MinorFactionManager, IsTerritoryValidForSpawnFaction for Aragonia, Found (IndependentPeople_Era2_Violent_Cantabris) !

14:08:18:677None

[Gedemon] in MinorFactionManager, IsTerritoryValidForSpawnFaction for Sardinia, Found (IndependentPeople_Era2_Violent_Vandals) !

14:08:18:677None

[Gedemon] in MinorFactionManager, IsTerritoryValidForSpawnFaction for Italia Annonaria, Found (IndependentPeople_Era2_Peaceful_Etruscans) !

14:08:18:677None

[Gedemon] in MinorFactionManager, IsTerritoryValidForSpawnFaction for Italia Suburbicaria, Found (IndependentPeople_Era2_Peaceful_Etruscans) !

14:08:18:677None

[Gedemon] in MinorFactionManager, IsTerritoryValidForSpawnFaction for Graecia, Found (IndependentPeople_Era2_Violent_Molossians) !

14:08:18:677None

[Gedemon] in MinorFactionManager, IsTerritoryValidForSpawnFaction for Illyria, Found (IndependentPeople_Era2_Violent_Molossians) !

14:08:18:677None

[Gedemon] in MinorFactionManager, IsTerritoryValidForSpawnFaction for Dacia, Found (IndependentPeople_Era2_Violent_Dacians) !

14:08:18:677None

[Gedemon] in MinorFactionManager, IsTerritoryValidForSpawnFaction for Germania, Found (IndependentPeople_Era2_Violent_Burgundians) !

14:08:18:678None

[Gedemon] in MinorFactionManager, IsTerritoryValidForSpawnFaction for Polonia, Found (IndependentPeople_Era2_Violent_Burgundians) !

14:08:18:678None

[Gedemon] in MinorFactionManager, IsTerritoryValidForSpawnFaction for Baltica, Found (IndependentPeople_Era2_Violent_Vandals) !

14:08:18:678None

[Gedemon] in MinorFactionManager, IsTerritoryValidForSpawnFaction for Libya, Found (IndependentPeople_Era2_Peaceful_Garamantes) !

14:08:18:681None

[Gedemon] in MinorFactionManager, IsTerritoryValidForSpawnFaction for Numidia, Found (IndependentPeople_Era2_Violent_Numidians) !

14:08:18:682None

[Gedemon] in MinorFactionManager, IsTerritoryValidForSpawnFaction for Yucatania, Found (IndependentPeople_Era2_Peaceful_Zapotecs) !

14:08:18:682None

[Gedemon] in MinorFactionManager, IsTerritoryValidForSpawnFaction for Parthia, Found (IndependentPeople_Era2_Peaceful_Parthians) !

14:08:18:683None

[Gedemon] in HumanMinorFactionSpawner, SpawnMinorFactionAt for tileIndex = 9498, territoryIndex = 41, Territory Name = Mexicum, numAvailableFaction = 10
[]/code

update2: followed the same game up to the early modern era as ottomans, did not get any errors whatsoever. several empires split, a few grew from independent people and even carthaginians came back as a major faction (with a different persona leader) after being liberated independent people for several turns
 
Last edited:
Finally, when the odds and ends territories reached the end of their lifespan, Formosa up and disappeared, cutting off nearly all sea trade. That was pretty intense, and while I anticipated loss of territory, I was completely blown away by the destruction of trade routes due to a territory fading away.
need more testing, but should be less dramatic in next version.

below my land trade route for Greek silver from Danubia going through Transcaucasia (owned by a low lifespan rebel faction that just died) has been immediately replaced automatically without cost by the cheapest route possible (going by sea now)

upload_2021-11-23_2-51-26.png
 
So new alpha, with an important fix for Empires expansions
Code:
- try to restore trade routes on city loss after adopting a new Culture
- try to restore trade routes after the removal of an Independent People faction
- allows reading of all *TCL.json files from the "Maps" and "Community" folders
- bug fix: do not prevent Empires from the "reserve" pool to settle new territories
- bug fix: allow major Empire to spawn from a minor faction that only own the capital territory of that Empire's Culture (but doesn't have a city)
- add all loaded faction definition names (including mods) to the log when starting a game
 
Hi, may I ask for help with insatlling the mod with the giant earth map?

I put BepInEx here:
upload_2021-11-24_18-42-57.png


then I did a run of the game, so I have the cfg file
upload_2021-11-24_18-43-51.png


then I have put the mod dll here:
upload_2021-11-24_18-44-46.png


and subscribed to the Giant Earth map at mod-io

How do I start a proper game?

I started one but that gave me option with them map with 8 players only, and with Beauwolf I could have any ancient culture to pick...
 
Check if the main TCL option is on in the difficulty screen (but should have been by default)



Which version of the Giant Earth Map did you get from subscribing on mod.io ?

Maybe you have an older version in the maps folder ?
 
I started one but that gave me option with them map with 8 players only
should be 10 players even without this mod, check the map version.
 
ok, please open the BepInEx.cfg file with any text editor like notepad, and search this section

Code:
[Logging.Console]

## Enables showing a console for log output.
# Setting type: Boolean
# Default value: false
Enabled = false

then change "Enabled = false" to "Enabled = true"

should show a console log on game's initialization and list the plugin that are loaded
 
Code:
- bug fix: do not prevent Empires from the "reserve" pool to settle new territories
Spoiler Seems to be working... :
Clipboard-37.jpg


And now I may need to add that option to eliminate the last Empire in an Era to recycle slots for later Eras...
 
By the way, how are you able to zoom out so amazingly far?
 
Top Bottom