1. We have added a Gift Upgrades feature that allows you to gift an account upgrade to another member, just in time for the holiday season. You can see the gift option when going to the Account Upgrades screen, or on any user profile screen.
    Dismiss Notice

Fall Update 2017 BUGS

Discussion in 'Civ6 - Bug Reports' started by MaFiA ImPaLerZs, Oct 19, 2017.

  1. Cram

    Cram Chieftain

    Joined:
    Jan 5, 2007
    Messages:
    6
  2. PYITE

    PYITE Chieftain

    Joined:
    Dec 14, 2016
    Messages:
    392
    Gender:
    Male
    Can you please change the link you posted on Reddit to the permanent one I just posted.

    Thanks for posting there and helping that community as well.
     
  3. Gedemon

    Gedemon Modder Moderator

    Joined:
    Oct 4, 2004
    Messages:
    8,643
    Location:
    France
    PYITE and SammyKhalifa like this.
  4. Atlas627

    Atlas627 Chieftain

    Joined:
    Aug 25, 2011
    Messages:
    2,563
    This is a problem with the Production Queue mod you're using. It is not currently compatible with the patch.

    The mod was likely removed when Firaxis added it to the base game. You do not need a mod for this. Just use the "Alert" button when selecting a unit.
     
  5. KyivanRusCivPlease

    KyivanRusCivPlease Chieftain

    Joined:
    Feb 13, 2017
    Messages:
    366
    Gender:
    Male
    Location:
    Ukraine
    @PYITE What does Assignstartingplots.Lua from v. 1.0.0.167 exactly do? What about starting biases for Khmer and Indonesia? Are the biases for specific civs in another file?
     
  6. PYITE

    PYITE Chieftain

    Joined:
    Dec 14, 2016
    Messages:
    392
    Gender:
    Male
    It doesn't change start biases, they are in the civilizations Lua. It also uses the minimum start distances and minimum fertility values from the global parameters lua.

    The file assigns start plots and then evaluates if they meet requirements such as distance to other civ and CS. If the plot doesn't meet all requirements it is thrown out and another attempt is made with a different plot. That is the part that seems to not be working correctly in the Fall 2017 version.
     
    KyivanRusCivPlease and Cram like this.
  7. JonR43

    JonR43 Chieftain

    Joined:
    Sep 1, 2017
    Messages:
    7
    Gender:
    Male
    Since the patch the scroll bar on the city screen on mine has disappeared meaning I can’t see the detail of the housing or any recomendations for improving amenities or housing?

    Just me?
     
  8. blackbutterfly

    blackbutterfly Chieftain

    Joined:
    May 9, 2016
    Messages:
    714
    Gender:
    Male
    Location:
    Leeds, UK
    Thanks for posting this. I've found testing another map it spawns two AI on each other's doorstep. It's pretty rubbish how Firaxis change one thing and break another :cringe:

    The game needs our mods/hotfixes in order to run.

    BTW have you figured out why it's spawning civs so weirdly? Are there changes to the maps we can make to mitigate this?
     
  9. Gedemon

    Gedemon Modder Moderator

    Joined:
    Oct 4, 2004
    Messages:
    8,643
    Location:
    France
    You're using map scripts in your mods?
     
  10. blackbutterfly

    blackbutterfly Chieftain

    Joined:
    May 9, 2016
    Messages:
    714
    Gender:
    Male
    Location:
    Leeds, UK
    All my maps are scripts. They're based off the map script from the Outback Tycoon scenario, fashioned after Civ V's "Scrambled" maps →
    https://forums.civfanatics.com/threads/scrambled-maps-pack.616588/

    BTW I had a look at the standard maps and the start conditions haven't changed. So the hotfix/mod is the only solution RN.
     
  11. Gedemon

    Gedemon Modder Moderator

    Joined:
    Oct 4, 2004
    Messages:
    8,643
    Location:
    France
    Alternate solution: add the old placement code directly in your scripts:

    Spoiler :

    Code:
    ------------------------------------------------------------------------------
    function AssignStartingPlots:__SetStartMajor(plots)
        -- Sort by fertility of all the plots
        -- eliminate them if they do not meet the following:
        -- distance to another civilization
        -- distance to a natural wonder
        -- minimum production
        -- minimum food
        -- minimum luxuries
        -- minimum strategic
    
        sortedPlots ={};
    
        local iSize = #plots;
        local iContinentIndex = 1;
    
        for i, plot in ipairs(plots) do
            row = {};
            row.Plot = plot;
            row.Fertility = self:__WeightedFertility(plot);
            table.insert (sortedPlots, row);
        end
    
        if(self.uiStartConfig > 1 ) then
            table.sort (sortedPlots, function(a, b) return a.Fertility > b.Fertility; end);
        else
            self.sortedFertilityArray = {};
            sortedPlotsFertility = {};
            sortedPlotsFertility = self:__PreFertilitySort(sortedPlots);
            self:__SortByFertilityArray(sortedPlots, sortedPlotsFertility);
            for k, v in pairs(sortedPlots) do
                sortedPlots[k] = nil;
            end
            for i, newPlot in ipairs(self.sortedFertilityArray) do
                row = {};
                row.Plot = newPlot.Plot;
                row.Fertility = newPlot.Fertility;
                table.insert (sortedPlots, row);
            end
        end
    
        local bValid = false;
        while bValid == false and iSize >= iContinentIndex do
            bValid = true;
            local NWMajor = 0;
            pTempPlot = Map.GetPlotByIndex(sortedPlots[iContinentIndex].Plot);
            iContinentIndex = iContinentIndex + 1;
            --print("Fertility: ", sortedPlots[iContinentIndex].Fertility)
    
            -- Checks to see if the plot is impassable
            if(pTempPlot:IsImpassable() == true) then
                bValid = false;
            end
    
            -- Checks to see if the plot is water
            if(pTempPlot:IsWater() == true) then
                bValid = false;
            end
    
            -- Checks to see if there are resources
            if(pTempPlot:GetResourceCount() > 0) then
               local bValidResource = self:__BonusResource(pTempPlot);
                if(bValidResource == false) then
                   bValid = false;
                end
            end
    
            -- Checks to see if there are luxuries
            if (math.ceil(self.iDefaultNumberMajor * 1.25) + self.iDefaultNumberMinor > self.iNumMinorCivs + self.iNumMajorCivs) then
                local bLuxuryCheck = self:__LuxuryBuffer(pTempPlot);
                if(bLuxuryCheck  == false) then
                    bValid = false;
                end
            end
            
    
            --Checks to see if there are strategics
            -- local bStrategicCheck = self:__StrategicBuffer(pTempPlot);
            -- if(bStrategicCheck  == false) then
            --     bValid = false;
            -- end
    
            -- Checks to see if there is fresh water or coast
            local bWaterCheck = self:__GetWaterCheck(pTempPlot);
            if(bWaterCheck == false) then
                bValid = false;
            end
    
            local bValidAdjacentCheck = self:__GetValidAdjacent(pTempPlot, 0);
            if(bValidAdjacentCheck == false) then
                bValid = false;
            end
    
            -- Checks to see if there are natural wonders in the given distance
            local bNaturalWonderCheck = self:__NaturalWonderBuffer(pTempPlot, false);
            if(bNaturalWonderCheck == false) then
                bValid = false;
            end
    
            -- Checks to see if there are any major civs in the given distance
            local bMajorCivCheck = self:__MajorCivBuffer(pTempPlot);
            if(bMajorCivCheck == false) then
                bValid = false;
            end
    
            -- Checks to see if there is an Oasis
            local featureType = pTempPlot:GetFeatureType();
            if(featureType == g_FEATURE_OASIS) then
                bValid = false;
            end
    
            -- If the plots passes all the checks then the plot equals the temp plot
            if(bValid == true) then
                self:__TryToRemoveBonusResource(pTempPlot);
                self:__AddBonusFoodProduction(pTempPlot);
                return pTempPlot;
            end
        end
     
        return nil;
    end
    
    ------------------------------------------------------------------------------
    function AssignStartingPlots:__SetStartMinor(plots)
        -- Sort by fertility of all the plots
        -- eliminate them if they do not meet the following:
        -- distance to another civilization
        -- distance to a natural wonder
        -- minimum production
        -- minimum food
    
        sortedPlots ={};
    
        local iSize = #plots;
        local iContinentIndex = 1;
    
        for i, plot in ipairs(plots) do
            row = {};
            row.Plot = plot;
            row.Fertility = self:__WeightedFertility(plot);
            table.insert (sortedPlots, row);
        end
    
        table.sort (sortedPlots, function(a, b) return a.Fertility > b.Fertility; end);
    
        local bValid = false;
        while bValid == false and iSize >= iContinentIndex do
            bValid = true;
            local NWMinor = 2;
            pTempPlot = Map.GetPlotByIndex(sortedPlots[iContinentIndex].Plot);
            iContinentIndex = iContinentIndex + 1;
            --print("Fertility: ", sortedPlots[iContinentIndex].Fertility)
    
            -- Checks to see if the plot is impassable
            if(pTempPlot:IsImpassable() == true) then
                bValid = false;
            end
    
            -- Checks to see if the plot is water
            if(pTempPlot:IsWater() == true) then
                bValid = false;
            end
    
            -- Checks to see if there are resources
            if(pTempPlot:GetResourceCount() > 0) then
                local bValidResource = self:__BonusResource(pTempPlot);
                if(bValidResource == false) then
                    bValid = false;
                end
            end
    
            local bValidAdjacentCheck = self:__GetValidAdjacent(pTempPlot, 2);
            if(bValidAdjacentCheck == false) then
                bValid = false;
            end
    
            -- Checks to see if there are natural wonders in the given distance
            local bNaturalWonderCheck = self:__NaturalWonderBuffer(pTempPlot, true);
            if(bNaturalWonderCheck == false) then
                bValid = false;
            end
    
            -- Checks to see if there are any minor civs in the given distance
            local bMinorCivCheck = self:__MinorCivBuffer(pTempPlot, 1);
            if(bMinorCivCheck == false) then
                bValid = false;
            end
    
            -- Checks to see if there is an Oasis
            local featureType = pTempPlot:GetFeatureType();
            if(featureType == g_FEATURE_OASIS) then
                bValid = false;
            end
    
            -- If the plots passes all the checks then the plot equals the temp plot
            if(bValid == true) then
                self:__TryToRemoveBonusResource(pTempPlot);
                return pTempPlot;
            end
        end
     
        return nil;
    end
    
     
  12. blackbutterfly

    blackbutterfly Chieftain

    Joined:
    May 9, 2016
    Messages:
    714
    Gender:
    Male
    Location:
    Leeds, UK
    Thanks. I think I'll wait until the next update/patch just in case they fix it :)
     
  13. BWS

    BWS Big Bradd Wolfe

    Joined:
    Jan 4, 2009
    Messages:
    403
    Location:
    San Jose, CA
    I think I understand why AssignStartingPlots.lua misbehaves the way it does. The fallback code consistently uses this logic, where X increases as you pass more validity checks:
    Code:
    if(validity test fails) then
        bValid = false;
    else
        local iFallBackScoreTemp = X;
        if (iFallBackScore <= iFallBackScoreTemp) then
            pFallback = pTempPlot;
            iFallBackScore = iFallBackScoreTemp;
        end
    end
    The apparent intent is to choose the plot that passes as many checks as possible, if it's not possible to pass all of them.

    I think the <= comparison is the root cause of the problem. The game checks plots from best (very fertile) to worst (arctic wasteland). Using <= to check the validity score means that the game will keep updating the fallback when validity scores are tied between two plots. Roughly speaking, that means it will choose the worst possible tile that hits a given validity score. If the problem is that there is not enough room left between civs, it will effectively throw the remaining civs together in the arctic.

    If my suspicion is correct, then probably the easiest fix is to replace all of those <= tests with < tests instead, and increase all of the X scores by 1.
     
  14. Rosty K

    Rosty K Chieftain

    Joined:
    Jan 26, 2017
    Messages:
    958
    Gender:
    Male
    It looks like Alert is broken again. Barb scouts are walking past my units on alert without being noticed, pillaging my traders...
     
    Zuizgond likes this.
  15. Piruparka

    Piruparka Chieftain

    Joined:
    May 1, 2010
    Messages:
    564
    Gender:
    Male
    Location:
    Germany
    I wonder how this starting position problem came up in the first place. They didn't introduce any changes to the game that would require a change to the starting position code, did they. So how come this doesn't work anymore when it worked fine for a year now.

    Apart from that : could someone kindly summarize how to actually fix this myself? I see some solutions here and there, but I did not quite understand if they fix the problem completely or if I'll have to deal with other problems then. And what code has to be replaced by which code and where in which file?

    Highly appreciated.
     
  16. peezartiste

    peezartiste Chieftain

    Joined:
    Jan 10, 2017
    Messages:
    13
    Gender:
    Male
    peezartiste said:
    Cannot get the game past turn 3 before it crashed, so have deleted all mods and was going to start again. First mod I wanted was Alert Guard, but cannot find it anywhere on the mod page. anyone know if there is another mod that will cause a sentry to wake up when threatened?

    The mod was likely removed when Firaxis added it to the base game. You do not need a mod for this. Just use the "Alert" button when selecting a unit.

    Formerly known as GamerKG

    Alert doesn't Alert! Units just stand there and get hammered by Barbs, and no noticication. Ok if you are on that screen but not if your view is a different part of the map.
     
    Zuizgond likes this.
  17. Brackenspore

    Brackenspore Chieftain

    Joined:
    May 5, 2015
    Messages:
    599
    Anyone know what is it?
    [1034600.935] [Localization]: Validating Foreign Key Constraints...
    [1034600.936] [Localization]: Passed Validation.
    [1034601.097] [Configuration]: Validating Foreign Key Constraints...
    [1034601.098] [Configuration]: Passed Validation.
    [1034610.044] [FullTextSearch]: Initializing FullTextSearch
    [1034623.136] [Gameplay]: Validating Foreign Key Constraints...
    [1034623.152] [Gameplay]: Passed Validation.
    [1034643.638] [Configuration]: Validating Foreign Key Constraints...
    [1034643.639] [Configuration]: Passed Validation.
    [1034643.860] [Database] ERROR: UNIQUE constraint failed: IconTextureAtlases.Name, IconTextureAtlases.IconSize
    [1034643.860] [Database] ERROR: UNIQUE constraint failed: IconTextureAtlases.Name, IconTextureAtlases.IconSize
    [1034670.067] [FullTextSearch]: FTS - Creating Context
    [1034764.989] [Configuration]: Validating Foreign Key Constraints...
    [1034764.989] [Configuration]: Passed Validation.
    [1034765.075] [Database] ERROR: UNIQUE constraint failed: IconTextureAtlases.Name, IconTextureAtlases.IconSize
    [1034765.075] [Database] ERROR: UNIQUE constraint failed: IconTextureAtlases.Name, IconTextureAtlases.IconSize
    [1034772.894] [Gameplay]: Validating Foreign Key Constraints...
    [1034772.916] [Gameplay]: Passed Validation.
    [1034773.043] [Database] ERROR: UNIQUE constraint failed: IconTextureAtlases.Name, IconTextureAtlases.IconSize
    [1034773.043] [Database] ERROR: UNIQUE constraint failed: IconTextureAtlases.Name, IconTextureAtlases.IconSize
    [1034804.790] [FullTextSearch]: FTS - Creating Context
    [1034811.872] [FullTextSearch]: FTS - Creating Context
    [1034823.286] [FullTextSearch]: FTS - Creating Context

    I play with mods.
     
  18. peezartiste

    peezartiste Chieftain

    Joined:
    Jan 10, 2017
    Messages:
    13
    Gender:
    Male
    Alert doesn't do anything. Units on alert just sit there and get hammered by Barbs/Other civs and do nothing. Ok if you are on that screen, but not if you are looking at a different part of the map. No notification
     
  19. peezartiste

    peezartiste Chieftain

    Joined:
    Jan 10, 2017
    Messages:
    13
    Gender:
    Male
    After building a barracks, you are still offered the choice of building a stable (not grayed out), but cannot select it.
    I'm fed up with having to work for a couple of weeks to sort out the problems caused by these updates. Who is writing these and is any testing done on them. Think I'll leave it a couple of weeks and see what transpires.
    Or go back to WoW.
     
  20. Swissy

    Swissy Chieftain

    Joined:
    Jun 8, 2002
    Messages:
    172
    Location:
    Chicago
    Since 2K acquired Firaxis and the Civ franchise, Firaxis no longer does anything but in-house QA testing and the majority of that is automated just looking for script running errors. So it seems they use their limited human testing resources to test only if the code they write does what they want for the specific situation they wrote it for. It appears no overall testing is done as I recall happening in Civ 4, I was a beta tester for Civ 4 and all of its expansions.
     

Share This Page