[BTS] Help with a mod.

InverM

Chieftain
Joined
Feb 6, 2021
Messages
9
I have been trying to merge 'the Road to war' mod and the 'Advanced diplomacy 2' mods together. What I want is the advanced diplomacy options in 'Advanced diplomacy 2' and the better aircraft missions and the ranged artillery/ship bombard from 'the road to war' mod.
I have merged and compiled the game core DLL file and merged the python/XML files and there seems to be no errors.
However when I load the mod, when the game loads up I get a message saying my computer specs are too low and the game has automatically set it to minimum graphics.
upload_2021-2-6_13-10-10.png

When I go to options to turn the graphics up there is no options on the screen. All the tabs like graphics/audio are there but the menus have nothing in them.
upload_2021-2-6_13-10-54.png

If I play the game it works without crashing and I have played a few turns without fault, but there are no interfaces. All the menus work if I use the short cuts to activate them but the buttons do not appear. The only menu that refuses to work is the City screens.
I just do not know what I have done to remove these or how to find out where the error lies. I have never had these faults with any other mod. I would like to know if anybody knows what I should do or if there is already a mod with these features in it.
Here is the Mod on Google drive
https://drive.google.com/drive/folders/1juU26Xnd5sVml1igWIXNEkbq5BF8o4gI?usp=sharing

The game needs 74 civs so here is a scenario I intend to use it with
https://drive.google.com/file/d/1AsZcnaOV6MaL1E4HoVIT1YWc2XDxbKkR/view?usp=sharing
 
Moderator Action: Welcome to CivFanatics. Moved your question to the C&C forum as this the best place to get help. Best of luck.
 
The message you get is just standard CIV4. It's nothing to do with your mod. Basically CIV4 detects your fancy modern hardware and fails to recognize WTH its supposed to be so it issues a warning and goes to absolute minimum mode. As for the missing graphic options though that's definitively to do with your mod.
 
Sounds like there is a Python exception (or several). If you haven't already, you should set LoggingEnabled=1 in \My Games\Beyond the Sword\CivilizationIV.ini, and check the PythonErr.log in \My Games\Logs after launching the mod/ opening the options menu/ starting a new game. Or if you like cascades of popups, you could also set HidePythonExceptions=0. If the specs warning isn't also somehow tied to a Python problem, then HideMinSpecWarning=1 should disable it.

Edit: But since the specs warning appears only with this (non-functional) mod, I'd assume that it's a side-effect of a Python crash at game launch.
 
Last edited:
Edit: But since the specs warning appears only with this (non-functional) mod, I'd assume that it's a side-effect of a Python crash at game launch.
To some people it happens every time you load a different mod.
 
Sounds like there is a Python exception (or several). If you haven't already, you should set LoggingEnabled=1 in \My Games\Beyond the Sword\CivilizationIV.ini, and check the PythonErr.log in \My Games\Logs after launching the mod/ opening the options menu/ starting a new game. Or if you like cascades of popups, you could also set HidePythonExceptions=0. If the specs warning isn't also somehow tied to a Python problem, then HideMinSpecWarning=1 should disable it.

Edit: But since the specs warning appears only with this (non-functional) mod, I'd assume that it's a side-effect of a Python crash at game launch.

Thank you for your suggestion, I did as you suggested and got the following errors:

Traceback (most recent call last):

File "CvScreensInterface", line 106, in showOptionsScreen

File "CvOptionsScreen", line 243, in interfaceScreen

File "CvOptionsScreen", line 292, in drawGameOptionsTab

AttributeError: 'CyGlobalContext' object has no attribute 'getPlayerOptionsInfoByIndex'
ERR: Python function showOptionsScreen failed, module CvScreensInterface

I will need to think on this and have a better look tomorrow, but at least I have a clue now thanks.
 
Well have been trying all day so far to find the fault but I am just not good enough to see the reason. The two mods that were merged do not seem to affect the files where the error seems to be.
This is all the Errors logged
Traceback (most recent call last):

File "CvScreensInterface", line 98, in showOptionsScreen

File "CvOptionsScreen", line 243, in interfaceScreen

File "CvOptionsScreen", line 292, in drawGameOptionsTab

AttributeError: 'CyGlobalContext' object has no attribute 'getPlayerOptionsInfoByIndex'
ERR: Python function showOptionsScreen failed, module CvScreensInterface
Traceback (most recent call last):

File "CvAppInterface", line 74, in preGameStart

File "CvScreensInterface", line 67, in showMainInterface

File "CvMainInterface", line 143, in interfaceScreen

AttributeError: 'CyGlobalContext' object has no attribute 'getNumHurryInfos'
ERR: Python function preGameStart failed, module CvAppInterface
Traceback (most recent call last):

File "CvWBInterface", line 18, in writeDesc

File "CvWBDesc", line 1567, in write

File "CvWBDesc", line 115, in write

AttributeError: 'CyGlobalContext' object has no attribute 'getCalendarInfo'
ERR: Python function writeDesc failed, module CvWBInterface

If anybody has any Ideas that could help it would be much appreciated.
 
Those three missing CyGlobalContext methods are all exposed to Python through
CyGlobalContextInterface3.cpp
I don't think the DLL would compile without that file, but – for lack of a better hypothesis – maybe a chunk of its contents is commented out by accident.
 
Those three missing CyGlobalContext methods are all exposed to Python through
CyGlobalContextInterface3.cpp
I don't think the DLL would compile without that file, but – for lack of a better hypothesis – maybe a chunk of its contents is commented out by accident.

Thanks, I had a problem with CyGlobalContextInterface3.cpp when compiling so that must be the source of the problem. I think there was two files defining the same thing so I changed CyGlobalContextInterface4.cpp for CyGlobalContextInterface3.cpp and it compiled. As soon as the kids goto bed I can have a look. Thank you so much!
 
Those three missing CyGlobalContext methods are all exposed to Python through
CyGlobalContextInterface3.cpp
I don't think the DLL would compile without that file, but – for lack of a better hypothesis – maybe a chunk of its contents is commented out by accident.

Thank you for your help, I managed to get the graphics and menus back now. I just have one more question. The mod works fine for playing and saving/reloading but it will no work on a scenario and world builder will not save games. The python errors are:
Traceback (most recent call last):

File "CvWBInterface", line 18, in writeDesc

File "CvWBDesc", line 1570, in write

File "CvWBDesc", line 313, in write

AttributeError: 'CyTeam' object has no attribute 'isLimitedBorders'
ERR: Python function writeDesc failed, module CvWBInterface
Traceback (most recent call last):

File "CvWBInterface", line 18, in writeDesc

File "CvWBDesc", line 1570, in write

File "CvWBDesc", line 313, in write

AttributeError: 'CyTeam' object has no attribute 'isLimitedBorders'
ERR: Python function writeDesc failed, module CvWBInterface

Again It must be something I have done wrong with compiling the Gamecore DLL and I was hoping you could tell me where to look. I really appreciate all the help you have given me so far. There is nothing worse than spending hours on a project that ends in failure. Thanks
 
Thank you for your help, I managed to get the graphics and menus back now.
No problem, great that you've gotten it to work.

I assume that CvTeam::isLimitedBorders is an Advanced Diplomacy function. I've found it in my local copy of the DLL source code of the "Rise of Mankind - A New Dawn 2" mod (RoM). On that note, it seems that RoM contains at least some version of Advanced Diplomacy, and it also includes various ranged-attack missions, I think from Dale's Combat Mod -- since you've asked, initially, if there's already a mod with those features. Well, maybe not those exact features; and RoM makes a great many other changes that you might or might not welcome.

Anyway, I don't see Python\pyWB among the files you've uploaded, but apparently someone has added a call to isLimitedBorders there. In RoM, that (DLL) function isn't exposed to Python at all, but I suppose your version of Advanced Diplomacy does expose it and that it's only another case of some line that was lost in the merge, this time in CyTeamInterface.cpp.
 
No problem, great that you've gotten it to work.

I assume that CvTeam::isLimitedBorders is an Advanced Diplomacy function. I've found it in my local copy of the DLL source code of the "Rise of Mankind - A New Dawn 2" mod (RoM). On that note, it seems that RoM contains at least some version of Advanced Diplomacy, and it also includes various ranged-attack missions, I think from Dale's Combat Mod -- since you've asked, initially, if there's already a mod with those features. Well, maybe not those exact features; and RoM makes a great many other changes that you might or might not welcome.

Thank you for the help again. I will take a look at the RoM mod to see if it is what I am looking for. I just love slow games with 70+ civs on huge maps, there is nothing better than a game with lots of history.
 
Top Bottom