civfanatics / CQUI_Community-Edition

Civilization 6 mod - UI enhancements, reduce clicks and manage your empire faster!
MIT License
154 stars 28 forks source link

Civics Tree sometimes does not expand #286

Closed elldritch closed 3 years ago

elldritch commented 3 years ago

I'm not sure how to reproduce this, but sometimes the Civics Tree doesn't open when I click the "expand tree" icon.

Saving and restarting doesn't seem to help. I've attached a save game (with the extension renamed to "txt", so I can upload to GH) where this issue occurs.

TEDDY ROOSEVELT (BULL MOOSE) 22 3475 BC.Civ6Save.txt

elldritch commented 3 years ago

This might be crazy, but... I think this happens when the map or game seed is zero?

the-m4a commented 3 years ago

Does it only happen when CQUI is loaded? That's a weird one. I wasn't able to reproduce it, so I'm not sure.

elldritch commented 3 years ago

I haven't tried without CQUI yet, but never encountered this issue until I added CQUI (so ~70 hours in). Does the save game really not reproduce the problem for you? It reproduces reliably on my computer.

Hmm, more possibly relevant details:

I'll try to get a more minimal reproduction case when I have time, but hopefully this helps you reproduce the issue.

elldritch commented 3 years ago

Yeah, I just tried again, this bug doesn't reproduce on singleplayer. Start a LAN multiplayer game (you don't need any other humans), and set the game random seed and map random seed to nil (i.e. set the fields to empty values). Then, on game start, try to expand the Civics Tree. The expanded banner won't appear.

My new suspicion is that maybe only multiplayer games can have nil random seeds, and this is causing the issue? This bug does not reproduce on singleplayer, nor when the seeds are set (i.e. not nil).

Infixo commented 3 years ago

This error is not related to CQUI - it happens when CQUI is disabled too. Runtime Error: C:\Games\Steam\steamapps\common\Sid Meier's Civilization VI\Base\Assets\UI\Screens\CivicsTree.lua:297: operator + is not supported for number + nil stack traceback: C:\Games\Steam\steamapps\common\Sid Meier's Civilization VI\Base\Assets\UI\Screens\CivicsTree.lua:297: in function 'GetRandomizedTreeRow' C:\Games\Steam\steamapps\common\Sid Meier's Civilization VI\Base\Assets\UI\Screens\CivicsTree.lua:532: in function 'LayoutNodeGrid' C:\Games\Steam\steamapps\common\Sid Meier's Civilization VI\Base\Assets\UI\Screens\CivicsTree.lua:2352: in function 'BuildTree' C:\Games\Steam\steamapps\common\Sid Meier's Civilization VI\Base\Assets\UI\Screens\CivicsTree.lua:2368: in function 'LateInitialize' C:\Games\Steam\steamapps\common\Sid Meier's Civilization VI\Base\Assets\UI\Screens\CivicsTree.lua:2387: in function 'OnInit'

Infixo commented 3 years ago

Seems that this is related to Game Seed. Here the game seed is 0, but somehow the engine returns nil. Should be an easy fix.

Infixo commented 3 years ago

Funny thing is that the same issue doesn't happen with TechTree yet the tree is randomized and contains m_gameSeed. Probably for TechTree Firaxis acutally forgot to add this piece of code and the tree is randomized but the techs are always in the same order within a given column. Sad.