Getting rid of boosts

Deadseasquirrel1

Chieftain
Joined
Apr 30, 2020
Messages
6
I'm trying to get rid of boosts completely so they don't provide and advance toward completion of the tech or civic.

My sql:

UPDATE Boosts SET Boost = Boost / 2;

Just trying to cut it down some for testing. But that doesn't even work. First turn, settler founds city on coast - - boom, boost to sailing.

Can't seem to get it to work.
 
That's only going to divide the boost by 2, not get rid of the boost. Halved or not, it'll still give the boost to sailing.

Code:
UPDATE Boosts SET Boost = 0;

You can also try:

Code:
DELETE FROM Boosts;

The latter may have some references that need tending to, though.

If you're doing this as a mod, you may want to set expac DLC as dependencies and add LoadOrder in case expacs are overwriting your change.
 
Right. Yeah, I had originally put 0 in there to get rid of boosts completely but when it wasn't working, I tried half just to see if that worked.

Well, I *still* can't get this right. Smh. Here's what I got so far (and, btw this is my first ever Civ mod and I've been "1-more-turning" it since freshman year in college back in '91).

My Rule.sql
Code:
UPDATE Boosts SET Boost = 0 WHERE TechnologyType IS NOT NULL;
UPDATE Boosts SET Boost = 0 WHERE CivicType IS NOT NULL;

My Smaller Boosts.modinfo:
Code:
<?xml version="1.0" encoding="utf-8"?>
<Mod id="79a86bee-c255-45b4-ae34-5261c1154f86">
    <Properties>
        <Name>Smaller Boosts</Name>       
        <Teaser>Smaller Boosts</Teaser>
        <Description>Smaller Boosts</Description>
    </Properties>
    <Files>
        <File>Rule.sql</File>
    </Files> 
    <Settings>
        <Custom id="SmallerBoost">
            <Items>
                <Component>SmallerBoostComponent</Component>
            </Items>
        </Custom>
    </Settings>   
    <Components>
        <UpdateDatabase id="SmallerBoostComponent">
            <Properties>
                <Name>Smaller Boosts</Name>
            </Properties>
            <Items>
                <File>Rule.sql</File>
            </Items>
        </UpdateDatabase>
    </Components>
    <InGameActions>
        <UpdateDatabase id="SmallerBoost">
            <Properties>
                <LoadOrder>300</LoadOrder>
            </Properties>
        </UpdateDatabase>
    </InGameActions>
</Mod>
 
Try adding Gathering Storm and Rise & Fall as references in the mod's properties under Associations.
 
Also, your ModInfo looks off. You have the file loading under Components instead of InGameActions. There's a lot of weird stuff going on there. It should be as simple as:

Code:
<?xml version="1.0" encoding="utf-8"?>
<Mod id="79a86bee-c255-45b4-ae34-5261c1154f86">
   <Properties>
        <Name>Smaller Boosts</Name>       
        <Teaser>Smaller Boosts</Teaser>
        <Description>Smaller Boosts</Description>
    </Properties>
  <References>
    <Mod id="1B28771A-C749-434B-9053-D1380C553DE9" title="Expansion: Rise and Fall" />
    <Mod id="4873eb62-8ccc-4574-b784-dda455e74e68" title="Expansion: Gathering Storm" />
  </References>
  <InGameActions>
    <UpdateDatabase id="SmallerBoost">
      <Properties>
        <LoadOrder>300</LoadOrder>
      </Properties>
      <File>Rule.sql</File>
    </UpdateDatabase>
  </InGameActions>
  <Files>
    <File>Rule.sql</File>
  </Files>
</Mod>
 
Yup you were right about the dependencies. It's working like a charm now! Found first city on the coast on my first turn. Boom! Boost for Sailing. I go in and check the tech tree, click sailing and see 58 turns instead of 35! Yay!

Thank you very much for your assistance! Boosts begone!
 
No problem. But please keep in mind that adding the expacs as dependencies rather than references means they'll be required (in the event you want to play without or upload it to the workshop).
 
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.
 
There's a distinction to be made between wanting your code to load for an expac, and wanting an expac to load first. So I wouldn't use criteria for this.

I didn't know about the issue with references, though. In which case, I guess the only fallback is LoadOrder. Fortunately, I usually use both when applicable to cover all bases anyway.
 
I was merely pointing out a method that can be used when you only want part of the code to execute when a specific expansion is enabled.

Tho you are right that part of it is not really germaine to the method needed to set all Boosts to 0 -- it's all about LoadOrder when you don't need to worry about which expacs are enabled and only want to ensure the code loads after whichever of the expansions that may be enabled by a user alter stuff in the database.

References don't over-ride LoadOrder values, and only really apply correctly when no LoadOrder value is given -- but then the problem is that mod updates break the "Reference" connection, and so far as I am aware the game still loads stuff differently for a new game as opposed to a saved game when no LoadOrder is provided and all other things remain the same.
 
Back
Top Bottom