References don't accomplish anything. They do not actually force loading order, and are wildly unstable even when it seems like they are working -- they work once or twice and then don't work anymore for reasons which are just
Firaxis to the unitiate.
<Components> and <InGameActions> are equivalent to each other, and only one can be used within the same modinfo file, which was why the code was not executing from the original version of the modinfo file.
For future reference don't try something like this
Code:
<Settings>
<Custom id="SmallerBoost">
<Items>
<Component>SmallerBoostComponent</Component>
</Items>
</Custom>
</Settings>
<Settings> is equivalent in a modinfo file to <FrontEndActions>, and also only allows one or the other in the same modinfo file. Attempting to create a "Custom" action in the FrontEnd to affect something done in the InGame is going to have weird results to say the least.
When you want a part of your code to only load when one of the Expacs is enabled by a user, you need to use a Criteria and specify that the InGame Action is only to be applied when that Criteria is met:
Code:
<ActionCriteria>
<Criteria id="Expansion1">
<GameCoreInUse>Expansion1</GameCoreInUse>
</Criteria>
</ActionCriteria>
<InGameActions>
<UpdateDatabase id="RiseAndFallCompatibility" criteria="Expansion1">
<Properties>
<LoadOrder>150</LoadOrder>
</Properties>
<File>SQL/RiseAndFallCompatibility.sql</File>
</UpdateDatabase>
</InGameActions>
Which is the way Firaxis does it for the Rise and Fall modinfo file.
Theoretically you can get modbuddy to create all the criteria data but I usually find it far simpler to manually edit the modinfo file with Notepad or Notepad++ once I generate the mod from Modbuddy. The Modbuddy method for adding cirteria is obtuse and one wrong click in the wrong order can make the whole thing fail when attempting to get Modbuddy to generate the data in the modinfo file.