Skip to main content

Discoveries

Discoveries are a subset of Narrative Events, replacing the various “goody huts” from previous games in the series. Discoveries are triggered by moving onto one of a variety of landmarks that appear on the map. Making a Discovery is mostly the same as making a Narrative Event with a few quirks.
    <Types>
        <Row Type="DISCOVERY_FXS_MY_EVENT" Kind="KIND_NARRATIVE_STORY"/>
    </Types>
<NarrativeStories>
    <Row
        NarrativeStoryType="DISCOVERY_FXS_MY_EVENT"
        Name="LOC_DISCOVERY_FXS_MY_EVENT_NAME"
        Description="LOC_DISCOVERY_FXS_MY_EVENT_DESCRIPTION"
        Completion="LOC_DISCOVERY_FXS_MY_EVENT_COMPLETION"
        StoryTitle="LOC_DISCOVERY_FXS_MY_EVENT_STORYTITLE"

        Age="AGE_ANTIQUITY"
        Queue="NARRATIVE_GROUP_DISCOVERY_CAMPFIRE_BASIC"

        StartEveryone="TRUE"
        FirstOnly="TRUE"
        ForceChoice="TRUE"

        Activation="AUTO"
        UIActivation="DISCOVERY"
        RequirementSetId="REQSET_DISCOVERY_BASE_NARRATIVE"
    />
 </NarrativeStories>
<NarrativeStoryOverrides>
    <Row NarrativeStoryType="DISCOVERY_FXS_MY_EVENT" OverriddenStoryType="DISCOVERY_BASE"/>
 </NarrativeStoryOverrides>
For the initial Discovery:
  1. Set StartEveryone, FirstOnly, and ForceChoice to true.
  2. Set Activation to AUTO.
  3. Set UIActivation to DISCOVERY.
  4. Set RequirementSetId to REQSET_DISCOVERY_BASE_NARRATIVE.
  5. Add the new event to the NarrativeStoryOverrides table, overriding the DISCOVERY_BASE Story Type.
  6. Choose a Queue for the Discovery.
The Queue determines two things:
  1. In what type of Landmark can your custom event be found. (e.g. Campfire, Cave, Shipwreck)
  2. How likely the Discovery is to spawn. (e.g. Basic, Investigation, or Mythic)
You can see a full list of queues in the NarrativeStory_Queues table. You will also want to assign the DISCOVERY_BASE_REWARD to this initial Narrative Event.
<NarrativeStory_Rewards>
    <Row
        NarrativeStoryType="DISCOVERY_FXS_MY_EVENT"
        NarrativeRewardType="DISCOVERY_BASE_REWARD"
        Activation="COMPLETE"
        BonusEligible="FALSE"
    />
 </NarrativeStory_Rewards>
The DISCOVERY_BASE_REWARD NarrativeRewardType is just a predefined Reward Type that is used to remove the landmark from the tile when the discovery is triggered. The process to add choices to your new Discovery is the same as with standard Narrative Events: just create further Narrative Events exactly how you would normally (the only difference is you will likely want to use DISCOVERY for the UIActivation). You can define icons, text replacements, quests/imperatives, for those linked Narratives events if you want as well.
    <Types>
        <Row Type="DISCOVERY_FXS_MY_EVENT_A" Kind="KIND_NARRATIVE_STORY"/>
    </Types>
    <NarrativeStories>
        <Row
            NarrativeStoryType="DISCOVERY_FXS_MY_EVENT_A"
            Name="LOC_DISCOVERY_FXS_MY_EVENT_A_NAME"
            Description="LOC_DISCOVERY_FXS_MY_EVENT_A_DESCRIPTION"
            Completion="LOC_DISCOVERY_FXS_MY_EVENT_A_COMPLETION"
            StoryTitle="LOC_DISCOVERY_FXS_MY_EVENT_A_STORYTITLE"

            Age="AGE_ANTIQUITY"

            Activation="LINKED"
            UIActivation="DISCOVERY"
            RequirementSetId="Met"
        />
    </NarrativeStories>
    <NarrativeStory_Links>
        <Row
            FromNarrativeStoryType="DISCOVERY_FXS_MY_EVENT"
            ToNarrativeStoryType="DISCOVERY_FXS_MY_EVENT_A"
            Priority="0" Name="LOC_DISCOVERY_FXS_MY_EVENT_A_NAME"
            Description="LOC_DISCOVERY_FXS_MY_EVENT_A_DESCRIPTION"
        />
    </NarrativeStory_Links>

Appendix

REQUIREMENT_PLAYER_HAS_AT_LEAST_NUM_GOSSIPS

Introduction

REQUIREMENT_PLAYER_HAS_AT_LEAST_NUM_GOSSIPS is a very flexible RequirementType frequently used with Narrative Events. It overlaps with various other RequirementTypes, but can be easier to set up than a more complicated RequirementSet. It works with the Gossip system, which keeps tracks of various goings-on in the game. This can be everything from founding cities, and meeting players, to killing units. To use REQUIREMENT_PLAYER_HAS_AT_LEAST_NUM_GOSSIPS, you provide a list of Gossip types. For each provided Gossip type, you may also provide additional parameters to check for. Then for each provided Gossip type, it checks that there is at least one gossip that matches it and the provided parameters. If the number of Gossip Types with at least one match is equal to at least the provided Amount, the requirement is met.
<Requirement type="REQUIREMENT_PLAYER_HAS_AT_LEAST_NUM_GOSSIPS">
    <Argument name="GossipTypes">GOSSIP_CONSTRUCT_BUILDING01,GOSSIP_TRADITION_ACTIVATED02</Argument>
    <Argument name="GOSSIP_CONSTRUCT_BUILDING01">Hash,ConstructibleType,BUILDING_BLACKSMITH</Argument>
    <Argument name="GOSSIP_TRADITION_ACTIVATED02">Hash,TraditionType,TRADITION_CRAFTSMANSHIP</Argument>
    <Argument name="Amount">2</Argument>
 </Requirement>
This example checks that a Blacksmith has been built (GOSSIP_CONSTRUCT_BUILDING01) and the Craftsmanship Policy has been slotted (GOSSIP_TRADITION_ACTIVATED02. Remember that it checks for the number of Gossip Types that have at least one match (as opposed to the total number of Gossips that matches one of the provided Gossip Types + Parameters) so you cannot simply build two Blacksmiths to meet this requirement. Note how each Gossip Type is followed by a two digit number: this determines the order in which the Gossips are processed. Additionally, note that for each Gossip Type there is a matching additional argument. These additional arguments are the parameters to check for that Gossip Type. A parameter comes as a set of three keywords in this order: “Parameter Type”, “Parameter Name”, “Value to Check for”. From the above example Hash,ConstructibleType,BUILDING_BLACKSMITH checks for a parameter named ConstructibleType, which is set to BUILDING_BLACKSMITH, which is a Hash value.
Note: The surest way to figure how what GossipTypes you can use, and what parameters you can use for each type, is to check the game files for examples how this requirement has already been used. Alternatively see below for a list of GossipTypes and parameters you can use with each type.
There can be multiple parameters per argument, as seen below. Remember that a single parameter comes as a set of three.
<Requirement type="REQUIREMENT_PLAYER_HAS_AT_LEAST_NUM_GOSSIPS">
    <Argument name="GossipTypes">GOSSIP_CONQUER_CITY01,GOSSIP_CONQUER_CITY02</Argument>
    <Argument name="GOSSIP_CONQUER_CITY01">Hash,OriginalCivilization,CIVILIZATION_GREECE,Hash,OtherPlayer,Other</Argument>
    <Argument name="GOSSIP_CONQUER_CITY01">Hash,IsCapital,True,Hash,OriginalCivilization,CIVILIZATION_ROME,Hash,OtherPlayer,Other</Argument>
    <Argument name="Amount">2</Argument>
 </Requirement>
This example checks that the player has conquered a Greek city and the Roman Capital. Like the previous requirement, you cannot simply conquer two cities from Greece to meet this requirement. These additional requirements can also be omitted entirely, in which case, any gossip of the correct type will count towards the Gossip Type being met.

Arguments

Amount

Minimum amount of Gossip Types with a match found for this Requirement to be met. If omitted, defaults to one.

GossipTypes

Comma separated list of one or more Gossip Types. Each listed Gossip Type should be followed by a two digit number starting at 01 (for example GOSSIP_CONSTRUCT_BUILDING01). Each listed Gossip Type can be added as an additional Modifier Argument with a list of parameters to check for.

DuplicateCount

Sometimes you will want to check for multiple instances of a single Gossip type, with identical parameters. For instance, you may want to check that a player has built 3 Monuments. The sample below tells the modifier to check for multiple instances of the GOSSIP_CONSTRUCT_BUILDING Modifier, with its ConstructibleType set to BUILDING_MONUMENT. So you will have to have built three separate monuments for this requirement to be met. This argument can ONLY be used when a single Gossip Type is provided. It cannot be used with multiple Gossip Types.
    <Requirement type="REQUIREMENT_PLAYER_HAS_AT_LEAST_NUM_GOSSIPS">
        <Argument name="GossipTypes">GOSSIP_CONSTRUCT_BUILDING01</Argument>
        <Argument name="GOSSIP_CONSTRUCT_BUILDING01">Hash,ConstructibleType,BUILDING_MONUMENT</Argument>
        <Argument name="DuplicateCount">3</Argument>
    </Requirement>

Distance

Most (but not all), Gossips have an associated plot location for where the Gossip occurs. When exactly two Gossip Types are provided, this tells the game, to ensure that the met gossip instances occur within a specified distance of each other. If there are more than two gossips in the requirement and this argument is set, the requirement will never be met. In the example below, the game is instructed to check that a Library and an Academy are built on the same tile (distance 0).
<Requirement type="REQUIREMENT_PLAYER_HAS_AT_LEAST_NUM_GOSSIPS">
    <Argument name="GossipTypes">GOSSIP_CONSTRUCT_BUILDING01,GOSSIP_CONSTRUCT_BUILDING02</Argument>
    <Argument name="GOSSIP_CONSTRUCT_BUILDING01">Hash,ConstructibleType,BUILDING_LIBRARY</Argument>
    <Argument name="GOSSIP_CONSTRUCT_BUILDING02">Hash,ConstructibleType,BUILDING_ACADEMY</Argument>
    <Argument name="Distance">0</Argument>
    <Argument name="Amount">2</Argument>
 </Requirement>

AfterInit

Tells the game to only check Gossips that occur after the associated event has been initialised. This should be a boolean value (True/False).

AfterTurn

Similar to AfterInit, but works with a provided turn number instead. If provided, Gossips that occur before the provided turn number are ignored. This should be an integer.

TurnWindow

Checks that earliest and latest gossips occur within a specific number of turns of each other. It takes the earliest turn of the met gossips and the latest turn of the met gossips, and finds the difference. The difference must be equal to or equivalent to the TurnWindow for the requirement to be met.

OrderedTurnWindow

This argument only works when exactly two Gossip Types are provided. It check for gossips in the ordered provided. It gets the turn the second gossip occurred, and subtracts the turn the first gossip occurred. The resulting difference must be less than or equal to OrderedTurnWindow, but must also be greater than or equal to 0. In other words, the first gossip must occur before the second gossip, and both must occur within the provided OrderedTurnWindow of each other.

List of Gossip Types

The following is a list of Gossip Types and their parameters. The list also notes whether each gossip type has an associated location. Not all Gossip Types and/or parameters will make sense for use with the REQUIREMENT_PLAYER_HAS_AT_LEAST_NUM_GOSSIPS Requirement Type.

GOSSIP_ACTIVATE_GREAT_PERSON

  • Has Location?: Yes
  • Hash, GreatPersonIndividualType, GreatPersonIndividualType
  • Hash, IsForeignHemisphere, True/False

GOSSIP_ALLIED

  • Has Location?: Yes (capital of the other player)
  • Hash, OtherPlayer, Self/Other
  • Hash, IsForeignHemisphere, True/False
  • Hash, Civilization, CivilizationType
  • Numeric, NavalStrengthRatio, 0-100
  • Numeric, LandStrengthRatio, 0-100

GOSSIP_ARMY_FILLED

  • Has Location?: Yes
  • Numeric, CombatCount, (number of combat units)
  • Numeric, CivilianCount, (number of civilian units)
  • Numeric, CombatStrength, (total combat strength of the army)
  • Numeric, DifferentUnitCount, (number of different unit types in the army)
  • Numeric, CivUniqueUnitCount, (number of units with an assigned TraitType)

GOSSIP_ARTIFACT_EXTRACTED

  • Has Location?: Yes
  • Hash, Urban, True/False
  • Hash, Civilization, CivilizationType
  • Hash, RelationshipLevel, DiplomacyPlayerRelationshipType
  • Hash, AtWar, True/False

GOSSIP_ATTACK_LAUNCHED

  • Has Location?: No
  • Hash, OtherPlayer, Self/Other

GOSSIP_BANKRUPT_UNIT_DISBAND

  • Has Location?: Yes
  • Has, UnitType, UnitType

GOSSIP_BECOME_SUZERAIN

  • Has Location?: Yes
  • Hash, CityState, (ID of the City-State)
  • Has, CityStateBonus, CityStateBonusType
  • Hash, IsForeignHemisphere, True/False
  • Numeric, PlayerCount, (number of city states that the player has suzerained)
  • Hash, CityStateType, CityStateType (e.g. CULTURAL or SCIENTIFIC)

GOSSIP_BELIEF_ADDED

  • Has Location?: Yes (the location of the Holy City)
  • Hash, ReligionType, ReligionType;
  • Hash, BeliefType, BeliefType

GOSSIP_CHANGE_GOVERNMENT

  • Has Location?: No
  • Hash, NewGovernment, GovernmentType
  • Hash, OldGovernment, GovernmentType

GOSSIP_CITY_BESIEGED

  • Has Location?: Yes
  • Hash, CityID, (Id of the City)

GOSSIP_CITY_LIBERATED

  • Has Location?: Yes
  • Hash, OtherPlayer, Self/Other
  • Hash, CityID, (Id of the City)

GOSSIP_CITY_POPULATION_HEIGHT_CHANGED

  • Has Location?: Yes
  • Hash, CityID, (Id of the City)
  • Numeric, TotalPop, (Total population of the City)
  • Numeric, RuralPop, (Rural population of the City)
  • Hash, IsCapital, True/False
  • Hash, IsForeignHemisphere, True/False

GOSSIP_CITY_RAZED

  • Has Location?: Yes
  • Hash, OtherPlayer, Self/Other
  • Hash, IsForeignHemisphere, True/False

GOSSIP_CITY_REVOLTED

  • Has Location?: Yes
  • Hash, OtherPlayer, Self/Other

GOSSIP_CITY_UNREST

  • Has Location?: Yes
  • Hash, ConstructibleType, ConstructibleType
  • Hash, IsForeignHemisphere, True/False
  • Hash, BiomeType, BiomeType
  • Hash, IsCapital, True/False

GOSSIP_COMPLETED_PROGRESSION_TREE_NODE

  • Has Location?: No
  • Hash, ProgressionTreeType, ProgressionTreeType
  • Hash, ProgressionTreeNodeType, ProgressionTreeNodeType
  • Numeric, TreeDepth, (tier of the node completed)

GOSSIP_CONQUER_CITY

  • Has Location?: Yes
  • Hash, OtherPlayer, Self/Other (this is the old owner of the settlement)
  • Hash, CityID, (Id of the City)
  • Hash, OriginalCivilization, CivilizationType (this is the original civ that founded the settlement)
  • Hash, Civilization, CivilizationType (Civilization that last owned the settlement)
  • Hash, Leader, LeaderType (Leader that last owned the settlement)
  • Hash, IsCapital, True/False (was this settlement a Capital?)
  • Hash, UnitType, UnitType (Unit that conquered the settlement)
  • Hash, IsForeignHemisphere, True/False
  • Hash, IsMinorPlayer, True/False (Was the old owner a Minor?)
  • Hash, ConqueringCivilization, CivilizationType
  • Hash, IsTown, True/False (Was the settlement a town?)
  • Hash, BiomeType, BiomeType
  • Hash, IsOriginalOwner, True/False (Is the conqueror the original owner of this settlement?)
  • Hash, IsDefeated, True/False (Did this conquest eliminate the previous owner from the game?)

GOSSIP_CONSTRUCTIBLE_DAMAGED

  • Has Location?: Yes
  • Hash, CityID, (Id of the City)
  • Hash, ConstructibleType, ConstructibleType
  • Hash, IsCapital, True/False
  • Hash, IsForeignHemisphere, True/False

GOSSIP_CONSTRUCTIBLE_REPAIRED

  • Has Location?: Yes
  • Hash, CityID, (Id of the City)
  • Hash, ConstructibleType, ConstructibleType
  • Hash, IsCapital, True/False
  • Hash, IsForeignHemisphere, True/False

GOSSIP_CONSTRUCT_BUILDING

  • Has Location?: Yes
  • Hash, CityID, (Id of the City)
  • Hash, ConstructibleType, ConstructibleType
  • Hash, IsCapital, True/False
  • Hash, BiomeType, BiomeType
  • Hash, IsCapital, True/False
  • Hash, IsLake, True/False
  • Hash, IsTown, True/False
  • Hash, IsCoastal, True/False
  • Numeric, AdjacencyBonus, (the value of the highest adjacency bonus this constructible has)
  • Numeric, PlayerCount, (number of constructibles of the same that the player has built)
  • Hash, IsForeignHemisphere, True/False
  • Hash, IsWonder, True/False
  • Hash, FeatureType, FeatureType
  • Hash, IsQuarter, True/False

GOSSIP_CREATE_GREAT_PERSON

  • Has Location?: Yes
  • Hash, GreatPersonIndividualType, GreatPersonIndividualType

GOSSIP_CREATE_PANTHEON

  • Has Location?: No
  • Hash, BeliefType, BeliefType

GOSSIP_DIPLOMACY_ACTION_STARTED

  • Has Location?: No
  • Hash, DiplomacyActionType, DiplomacyActionType
  • Hash, DiplomacyActionGroup, DiplomacyActionGroupType
  • Hash, Civilization, CivilizationType
  • Hash, WereEverAtWar, True/False
  • Numeric, RelationshipCount, (Current relationship value with the other player)
  • Hash, OtherPlayer, Self/Other

GOSSIP_DIPLOMACY_RESPONSE

  • Has Location?: No
  • Hash, OtherPlayer, Self/Other
  • Hash, DiplomacyActionType, DiplomacyActionType
  • Hash, DiplomacyResponseType, DiplomacyResponseType
  • Hash, DiplomacyActionGroup, DiplomacyActionGroupType
  • Hash, Civilization, CivilizationType

GOSSIP_DISBANDED_UNIT

  • Has Location?: Yes
  • Hash, UnitType, UnitType

GOSSIP_FIND_CONTINENT

  • Has Location?: Yes
  • Hash, Continent, ContinentType
  • Hash, IsForeignHemisphere, True/False

GOSSIP_FIND_NATURAL_WONDER

  • Has Location?: Yes
  • Hash, FeatureType, FeatureType (natural wonders count as features)
  • Hash, BiomeType, BiomeType
  • Hash, IsForeignHemisphere, True/False

GOSSIP_FIND_RIVER

  • Has Location?: Yes
  • Hash, RiverType, NamedRiverType
  • Hash, FirstDiscover, True/False
  • Hash, IsForeignHemisphere, True/False

GOSSIP_FIND_VOLCANO

  • Has Location?: Yes
  • Hash, VolcanoType, NamedVolcanoType
  • Hash, FirstDiscover, True/False
  • Hash, IsForeignHemisphere, True/False

GOSSIP_FOUND_CITY

  • Has Location?: Yes
  • Hash, CityID, (Id of the City)
  • Hash, BiomeType, BiomeType
  • Hash, Continent, ContinentType
  • Hash, IsCoastal, True/False
  • Numeric, PlayerCount, (Number of settlements the player owns)
  • Hash, IsForeignHemisphere, True/False
  • Hash, AdjacentToNaturalWonder, True/False
  • Hash, AdjacentToNavigableRiver, True/False

GOSSIP_FOUND_RELIGION

  • Has Location?: Yes (the location of the Holy City)
  • Hash, ReligionType, ReligionType;
  • Hash, IsForeignHemisphere, True/False

GOSSIP_GATHER_RESOURCE

  • Has Location?: Yes (the location of the improved resource)
  • Hash, ResourceType, ResourceType
  • Numeric, CityCount, (number of this resource produced in this settlement)
  • Numeric, PlayerCount, (number of this resource produced by this player)
  • Hash, BiomeType, BiomeType
  • Hash, FeatureType, FeatureType
  • Hash, IsForeignHemisphere, True/False
  • Hash, IsCapital, True/False

GOSSIP_GOLDEN_AGE

  • Has Location?: No
  • Hash, GoldenAgeType, GoldenAgeType (the specific bonus chosen for the celebration)

GOSSIP_INDEPENDENT_ASSAULT

  • Has Location?: Yes
  • Hash, CityID, (Id of the City)
  • Hash, IndependentType, IndependentType

GOSSIP_INDEPENDENT_DISPERSE

  • Has Location?: Yes
  • Hash, UnitType, UnitType (UnitType that dispersed the Independent)
  • Hash, IndependentType, IndependentType
  • Hash, IsForeignHemisphere, True/False

GOSSIP_INDEPENDENT_INFLUENCE

  • Has Location?: Yes
  • Numeric, Influence, (Amount of influence invested)
  • Hash, IndependentType, IndependentType

GOSSIP_LOST_WONDER_RACE

  • Has Location?: Yes (location of the city that lost the race)
  • Hash, OtherPlayer, Self/Other (Player who won the race)
  • Hash, WinningCityID, (Id of the City)
  • Hash, LosingCityID, (Id of the City)
  • Hash, ConstructibleType, ConstructibleType
  • Numeric, ProductionRefund, (amount of production refunded)
  • Numeric, PercentComplete, (how much of the wonder was completed when the wonder was lost)
  • Hash, IsLoserFavoredWonder, True/False
  • Hash, IsWinnerFavoredWonder, True/False

GOSSIP_MAKE_DOW

  • Has Location?: No
  • Hash, OtherPlayer, Self/Other
  • Hash, IsForeignHemisphere, True/False
  • Hash, WarType, WarType

GOSSIP_MAKE_PEACE

  • Has Location?: No
  • Hash, OtherPlayer, Self/Other

GOSSIP_MEET_INDEPENDENT

  • Has Location?: Yes
  • Hash, IndependentType, IndependentType
  • Hash, BiomeType, BiomeType
  • Hash, IsForeignHemisphere, True/False
  • Numeric, Influence, (Amount of influence invested)

GOSSIP_NEW_RELIGIOUS_MAJORITY

  • Has Location?: Yes
  • Hash, ReligionType, ReligionType;
  • Hash, OldReligionType, ReligionType;

GOSSIP_PILLAGE

  • Has Location?: Yes
  • Hash, UnitType, UnitType
  • Hash, UnitTypeReplaces, UnitType
  • Hash, ConstructibleType, ConstructibleType
  • Hash, OtherPlayer, Self/Other
  • Hash, IsForeignHemisphere, True/False
  • Hash, IsCapital, True/False
  • Hash, ResourceType, ResourceType

GOSSIP_PLACED_WORKER

  • Has Location?: Yes
  • Hash, IsForeignHemisphere, True/False
  • Hash, UniqueQuarter, UniqueQuarterType

GOSSIP_PLAYERS_MEET

  • Has Location?: No
  • Hash, OtherPlayer, Self/Other
  • Hash, IsForeignHemisphere, True/False
  • Hash, Civilization, CivilizationType
  • Hash, Leader, LeaderType

GOSSIP_PLAYER_DEFEATED_INDEPENDENT_RAID

  • Has Location?: Yes
  • Hash, IndependentType, IndependentType
  • Hash, IsForeignHemisphere, True/False

GOSSIP_PLUNDER_TRADE_ROUTE

  • Has Location?: Yes
  • Hash, UnitType, UnitType
  • Hash, OtherPlayer, Self/Other
  • Hash, IsForeignHemisphere, True/False

GOSSIP_RANDOM_EVENT_DAMAGE

  • Has Location?: Yes
  • Hash, RandomEventType, RandomEventType
  • Hash, EffectOperatorType, EffectOperatorType
  • Hash, EventClass, EventClass
  • Numeric, Severity, (Severity of the event)
  • Numeric, TilesDamaged, (number of tiles affected)
  • Numeric, PopLost, (Population lost)
  • Numeric, UnitsKilled, (number of units killed)
  • Numeric, OwnedPlotsTargeted, (Number of owned plots targeted by the event)
  • Hash, BiomeType, BiomeType
  • Numeric, Fertility, (Fertility gained)

GOSSIP_RANDOM_EVENT_DAMAGED_CONSTRUCTIBLE

  • Has Location?: Yes
  • Hash, RandomEventType, RandomEventType
  • Hash, EffectOperatorType, EffectOperatorType
  • Hash, EventClass, EventClass
  • Hash, BiomeType, BiomeType
  • Hash, ConstructibleType, ConstructibleType

GOSSIP_RANDOM_EVENT_UNIT_KILLED

  • Has Location?: Yes
  • Hash, RandomEventType, RandomEventType
  • Hash, EffectOperatorType, EffectOperatorType
  • Hash, EventClass, EventClass
  • Hash, BiomeType, BiomeType
  • Hash, IsDyingUnitPlotOwner, (is the owner of the unit and the plot where the unit died the same?)
  • Hash, UnitType, UnitType

GOSSIP_REJECT_DEAL

  • Has Location?: No
  • Hash, OtherPlayer, Self/Other
  • Hash, DealType, (Type from the DealItemAgreements table)

GOSSIP_RELATIONSHIP_CHANGED

  • Has Location?: No
  • Hash, RelationshipLevel, DiplomacyPlayerRelationshipType
  • Hash, OldRelationshipLevel, DiplomacyPlayerRelationshipType
  • Hash, OtherPlayer, Self/Other

GOSSIP_RELIC_RECEIVED

  • Has Location?: No
  • Hash, GreatWorkType, GreatWorkType

GOSSIP_SCORED_VP

  • Has Location?: No
  • Hash, VictoryType, LegacyPathType
  • Numeric, Amount, (number of points scored)

GOSSIP_SCORE_DISBAND_UNIT

Note: this Gossip primarily used with the Treasure Fleets Legacy Path.
  • Has Location?: Yes
  • Hash, IsOriginalOwner, True/False
  • Hash, OriginalCivilization, CivilizationType
  • Numeric, Amount, (amount of points earned from disbanding the unit)

GOSSIP_TRADE_ROUTE_STARTED

  • Has Location?: Yes (location of the unit starting the route)
  • Hash, OtherPlayer, Self/Other
  • Hash, DomainType, DomainType (DOMAIN_SEA/DOMAIN_LAND)
  • Hash, IsForeignHemisphere, True/False
  • Hash, Civilization, CivilizationType
  • Hash, Leader, LeaderType
  • Hash, IsCapital, True/False
  • Hash, WereEverAtWar, True/False

GOSSIP_TRADITION_ACTIVATED

Note: Policies do count towards this gossip.
  • Has Location?: No
  • Hash, TraditionType, TraditionType
  • Hash, CivilizationTrait, TraitType (TraitType that unlocks the tradition/policy, where applicable)

GOSSIP_TRADITION_DEACTIVATED

Note: Policies do count towards this gossip.
  • Has Location?: No
  • Hash, TraditionType, TraditionType
  • Hash, CivilizationTrait, TraitType (TraitType that unlocks the tradition/policy, where applicable)

GOSSIP_TRAIN_UNIT

  • Has Location?: Yes
  • Hash, UnitType, UnitType
  • Numeric, WorldCount, (number of this unit trained in the entire game)
  • Numeric, PlayerCount, (number of this unit trained by this player)
  • Hash, IsForeignHemisphere, True/False
  • Hash, IsCapital, True/False
  • Hash, UnitTypeReplaces, UnitType
  • Hash, DomainType, DomainType
  • Hash, InfantryUnit, True/False (is this an Infantry Unit?)
  • Hash, CavalryUnit, True/False (is this a Cavalry Unit?)
  • Hash, RangedUnit, True/False (is this a Ranged Unit?)

GOSSIP_UNIT_COMBAT_DEATH

  • Has Location?: Yes
  • Hash, DyingUnitType, UnitType
  • Hash, KillingUnitType, UnitType
  • Hash, OtherPlayer, Self/Other (this is the player who owns the killing unit)
  • Hash, IsDyingUnitStronger, True/False (Does the defeated unit have greater combat strength?)
  • Hash, IsDyingUnitFaster, True/False (Does the defeated unit have greater movement speed?)
  • Hash, CombatType, CombatType
  • Hash, IsDyingUnitForeignHemisphere, True/False
  • Hash, IsKillingUnitForeignHemisphere, True/False
  • Hash, IsPackedArmy, True/False
  • Numeric, KillingUnitKillCount, (kill count of the killing unit)
  • Numeric, DyingUnitKillCount, (kill count of the dyring unit)
  • Hash, BiomeType, BiomeType
  • Hash, IsDyingUnitPlotOwner, True/False (Is the plot owner the same as the dying unit owner?)
  • Hash, IsKillingUnitPlotOwner, True/False (Is the plot owner the same as the killing unit owner?)
  • Hash, IsDyingUnitWalled, (Was the dying unit fortified?)
  • Hash, DyingCivilization, CivilizationType
  • Hash, KillingCivilization, CivilizationType
  • Numeric, DyingWarSupport, (War support of the dying unit owner)
  • Numeric, KillingWarSupport, (War support of the killing unit owner)
  • Hash, DyingUnitInCommandRadius, True/False
  • Hash, KillingUnitInCommandRadius, True/False
  • Hash, DomainType, DomainType
  • Hash, KillingDomainType, DomainType
  • Hash, IsDyingUnitInfantry, True/False (is the dying unit an Infantry Unit?)
  • Hash, IsDyingUnitCavalry, True/False (is the dying unit a Cavalry Unit?)
  • Hash, IsDyingUnitRanged, True/False (is the dying unit a Ranged Unit?)
  • Hash, IsDyingUnitCommander, True/False (is the dying unit a Ranged Unit?)
  • Numeric, DyingUnitLevel, (level of the dying unit)

GOSSIP_UNIT_DESTROYED

  • Has Location?: Yes
  • Hash, UnitType, UnitType
  • Hash, UnitTypeReplaces, UnitType
  • Hash, IsForeignHemisphere, True/False
  • Hash, IsDyingUnitPlotOwner, True/False (Is the plot owner the same as the dying unit owner?)
  • Hash, BiomeType, BiomeType

GOSSIP_UNIT_USES_ABILITY_CHARGE

  • Has Location?: Yes
  • Hash, UnitType, UnitType
  • Hash, Ability, UnitAbilityType

GOSSIP_URBAN_CONTROL_CHANGED

  • Has Location?: Yes
  • Hash, OtherPlayer, Self/Other
  • Hash, IsForeignHemisphere, True/False
  • Hash, BiomeType, BiomeType
  • Hash, IsCapital, True/False

GOSSIP_VICTORY_STRATEGY_CHANGED

  • Has Location?: No
  • SetVariant(Parameters::Strategy, strategyDef->GetTypeHash());
  • Hash, Strategy, StrategyType
  • Hash, IsStarted, True/False

GOSSIP_WAR_PREPARATION

  • Has Location?: No
  • Hash, OtherPlayer, Self/Other

GOSSIP_WMD_BUILT

  • Has Location?: No
  • Numeric, WMDCount, (number of WMD built)

GOSSIP_WMD_STRIKE

  • Has Location?: No
  • Hash, WMDType,

GOSSIP_WONDER_STARTED

  • Has Location?: Yes
  • SetVariant(Parameters::CityID, constructible->GetCityID());
  • SetVariant(Parameters::ConstructibleType, constructible->GetTypeHash());
  • SetVariant(Parameters::IsCapital, pkItem->GetBoolHash(pkCity != nullptr ? pkCity->IsCapital() : false));
  • SetVariant(Parameters::BiomeType, plot->GetBiomeTypeHash());
  • SetVariant(Parameters::IsForeignHemisphere, pkItem->GetBoolHash(pkItem->IsForeignHemisphere()));