Differences between Assets folders?

voigt

Chieftain
Joined
Aug 13, 2023
Messages
9
Location
Paris, France
Hello,

I quite new to Civ4 modding and would like to know about the difference between BTS Assets folders.
For instance, with BTS there are two Assets folder located in Sid Meier's Civilization IV Beyond the Sword/Assets and Sid Meier's Civilization IV Beyond the Sword/Beyond the Sword/Assets.
Which folder is checked first by the Python interpreter?
I guess this question has already been raised, but I can't find any information about it.
Thanks!
 
The Complete Edition on DVD has a folder Sid Meier's Civilization 4 with the base game assets, and subfolders Warlords and Beyond the Sword for the two expansions, each with their own assets. When a file (Python scripts, but also XML, CvGameCoreDLL.dll and various other moddable files) is present in multiple Assets folders, the order of precedence is the current mod's assets before CustomAssets (unless the mod's INI file disables those) before BtS assets before Warlords assets before the base game assets. (And within a mod that uses modular loading, module folders have an even higher priority.) Sounds like you have a Steam edition that only allows launching the BtS expansion. At least you're not mentioning a Warlords folder, so it doesn't seem to be a complete edition. I'm not sure what exactly the outer folder contains then; surely the base game files, possibly with the Warlords files merged in. Maybe someone who has the same edition as you can clarify. In any case, the inner assets folder should have higher priority than the outer one.
 
Okay, thank you for your clear explainations.
Yes, I own the complete edition on Steam (and use it on Linux). So I also have the Warlords expansion and the base game. They are considered standalone games by Steam if I understand correctly. I just noticed that the Warlords and BTS have their own Assets subfolder in the game's root folder (resp. Warlords and BTS). But it's clearer with our explanations!
In fact, I use these paths for my Python linter at the root of my mod :
Code:
    # Folders of the project
    "Assets/Python/",
    "Assets/Python/data",
    "Assets/Python/utils",
    "Assets/Python/components",
    "Assets/Python/EntryPoints",
    "Assets/Python/pyWB",
    "Assets/Python/screens",
    # Folders from Sid Meier's Civilization IV Beyond the Sword/Beyond the Sword/Assets/Python
    "../../Assets/Python",
    "../../Assets/Python/EntryPoints",
    "../../Assets/Python/pyWB",
    "../../Assets/Python/Screens",
    "../../Assets/Python/pyUnit",
    "../../Assets/Python/pyHelper",
    "../../Assets/Python/PitBoss",

It's just that the Popup module is not found by the linter. Looking in Steam games folder I found the following paths and I don't know which one the interpreter is looking for (with your explanation, I assume it's the BTS one).
Bash:
Sid Meier's Civilization IV Warlords/Assets/Python/pyHelper/Popup.py
Sid Meier's Civilization IV Beyond the Sword/Assets/Python/pyHelper/Popup.py
Sid Meier's Civilization IV/Assets/Python/pyHelper/Popup.py
 
Top Bottom