From 931f4bbb35280897ef3ba5c22e5f64a0a2529354 Mon Sep 17 00:00:00 2001 From: LocalIdentity Date: Sun, 24 May 2026 14:24:06 +1000 Subject: [PATCH 1/5] CurseTypes + NPCs fix + ArchnemesisModVisuals Missing rid and invalid table references --- dat-schema/3_17_Archnemesis.gql | 2 +- dat-schema/poe2/_Core.gql | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/dat-schema/3_17_Archnemesis.gql b/dat-schema/3_17_Archnemesis.gql index cd676aa..cbf35c4 100644 --- a/dat-schema/3_17_Archnemesis.gql +++ b/dat-schema/3_17_Archnemesis.gql @@ -25,7 +25,7 @@ type ArchnemesisMods { type ArchnemesisModVisuals { Id: string @unique MiscAnimated: MiscAnimated - StampFamily: StampFamily + BuffVisualOrbType: BuffVisualOrbTypes MiscEffectPack: MiscEffectPacks BuffVisual: [BuffVisuals] Monster: [MonsterVarieties] diff --git a/dat-schema/poe2/_Core.gql b/dat-schema/poe2/_Core.gql index 3c403ea..c13660f 100644 --- a/dat-schema/poe2/_Core.gql +++ b/dat-schema/poe2/_Core.gql @@ -1405,10 +1405,10 @@ type CurrencyUseEffectsFromItem { type CurseTypes { Id: string @unique - _: rid @unique + BuffDefinition: BuffDefinitions _: bool - HexproofStat: Stats @unique - _: rid @unique + HexproofStat: Stats + ActionType: ActionTypes } type CustomSocketArt { @@ -4205,7 +4205,7 @@ type NPCs { _: NPCs Portrait: NPCPortraits DialogueStyle: NPCDialogueStyles - ShopSet: NPCShopSets + ShopSet: NPCShops Gender: string _: bool _: string From ad84f428a3f2015727ec4fcd1d0326beb291ee72 Mon Sep 17 00:00:00 2001 From: LocalIdentity Date: Sun, 24 May 2026 14:26:18 +1000 Subject: [PATCH 2/5] Fix tables having multiple @unique tags --- dat-schema/poe2/_Core.gql | 92 +++++++++++++++++++-------------------- 1 file changed, 46 insertions(+), 46 deletions(-) diff --git a/dat-schema/poe2/_Core.gql b/dat-schema/poe2/_Core.gql index c13660f..52617d9 100644 --- a/dat-schema/poe2/_Core.gql +++ b/dat-schema/poe2/_Core.gql @@ -141,7 +141,7 @@ type AddMapStatGealAllowedStats { type AdditionalLifeScaling { IntId: i32 - ID: string + ID: string @unique DatFile: string @file(ext: ".dat") } @@ -442,13 +442,13 @@ type AtlasPrimordialBossOptions { } type AtlasTowerInventoryLayout { - Slot: i32 @unique - RequiredModifiers: i32 @unique # Required number of modifiers on waystone to unlock this slot + Slot: i32 + RequiredModifiers: i32 # Required number of modifiers on waystone to unlock this slot BlockedIcon: string @unique _: i32 - _: i32 @unique _: i32 - UnblockedIcon: string @unique + _: i32 + UnblockedIcon: string } type AttackSkillDamageScalingType { @@ -537,7 +537,7 @@ type BaseItemTypes @tags(list: ["item:def", "item:droptable"]) { Tags: [Tags] ModDomain: ModDomains ItemVisualIdentity: ItemVisualIdentity - HASH32: u32 @unique + HASH32: u32 VendorRecipe_AchievementItems: [AchievementItems] "the inflection identifier used for i18n in related fields" Inflection: string @@ -618,7 +618,7 @@ type BlightCraftingItems @tags(list: ["item:def"]) { Tier: i32 Achievements: [AchievementItems] UseType: i32 - NameShort: string @unique + NameShort: string EnchantedMod: Mods } @@ -875,7 +875,7 @@ type CaravanStops { type ChakraSlots { Id: i32 - ItemClass: ItemClasses + ItemClass: ItemClasses @unique } type Chanceableitemclasses { @@ -968,7 +968,7 @@ type CharacterVariationGroups { type Characters { Id: string @unique - Name: string @unique @localized + Name: string @localized AOFile: string @file(ext: ".ao") ACTFile: string @file(ext: ".act") BaseMaxLife: i32 @@ -979,7 +979,7 @@ type Characters { MaxDamage: i32 MaxAttackDistance: i32 Icon: string - IntegerId: i32 @unique + IntegerId: i32 BaseStrength: i32 BaseDexterity: i32 BaseIntelligence: i32 @@ -1508,7 +1508,7 @@ type DeliriumStashTabLayout { StoredItem: BaseItemTypes XOffset: i32 YOffset: i32 - FirstSlotIndex: i32 @unique + FirstSlotIndex: i32 Width: i32 Height: i32 SlotSize: i32 @@ -1710,8 +1710,8 @@ type EndgameMapObjectives { type EndgameMapPinIcons { Id: string @unique - Icon1: string @unique - Icon2: string @unique + Icon1: string + Icon2: string } type EndgameMapPins { @@ -1820,7 +1820,7 @@ type EssenceStashTabLayout { StoredItem: BaseItemTypes XOffset: i32 YOffset: i32 - FirstSlotIndex: i32 @unique + FirstSlotIndex: i32 Width: i32 Height: i32 ShowIfEmpty: bool @@ -1832,7 +1832,7 @@ type EssenceStashTabLayout { type EssenceTargetItemCategories { Id: string @unique ItemClasses: [ItemClasses] - Text: string @unique @localized + Text: string @localized } type EssenceType { @@ -1872,7 +1872,7 @@ type ExpeditionDealsDialogue { type ExpeditionStashTabLayout { Id: string @unique - BaseItemType: BaseItemTypes @unique + BaseItemType: BaseItemTypes } @@ -1923,14 +1923,14 @@ type FlavourText { type FragmentStashPages { Id: string @unique - Text: string @unique @localized + Text: string @localized Icon: string } type FragmentStashSubPages { Id: string @unique - Text: string @unique @localized - Icon: string @unique + Text: string @localized + Icon: string MainPage: FragmentStashPages } @@ -2221,7 +2221,7 @@ type GoldModPrices { type GoldRespecPrices { Level: i32 @unique - Cost: i32 @unique + Cost: i32 } type GoldVisualIdentities { @@ -2537,7 +2537,7 @@ type HideoutResistPenalties { # Added 0.3 type HideoutSalvageBenchDoodads { HideoutDoodads: HideoutDoodads @unique - InterfaceVisuals: HideoutSalvageBenchInterfaceVisuals @unique + InterfaceVisuals: HideoutSalvageBenchInterfaceVisuals } # Added 0.3 @@ -2757,7 +2757,7 @@ type ItemClasses @tags(list: ["crafting"]) { type ItemDisenchantValues { Rarity: Rarity @unique - BaseItemType: BaseItemTypes @unique + BaseItemType: BaseItemTypes BaseValue: i32 } @@ -2849,7 +2849,7 @@ type ItemVisualEffect { _: string TwoHandedSwordEPKFile: string @file(ext: ".epk") TwoHandedStaffEPKFile: string @file(ext: ".epk") - HASH16: i16 @unique + HASH16: i16 _: bool _: bool TwoHandedMaceEPKFile: string @file(ext: ".epk") @@ -2874,7 +2874,7 @@ type ItemVisualIdentity { DDSFile: string @file(ext: ".dds") AOFile: string @file(ext: ".ao") InventorySoundEffect: SoundEffects - HASH16: u16 @unique + HASH16: u16 AOFile2: string @file(ext: ".ao") MarauderSMFiles: [string] @file(ext: ".sm") RangerSMFiles: [string] @file(ext: ".sm") @@ -3103,7 +3103,7 @@ type LoginAreas { type MapAmbushVariations { Id: i32 - Stat: Stats + Stat: Stats @unique MonsterVariety: [MonsterVarieties] _: f32 _: i32 @@ -3374,7 +3374,7 @@ type MicrotransactionObjectEffects { type MicrotransactionPortalVariations { MtxTypeGameSpecific: MtxTypeGameSpecific @unique - Id: i16 @unique + Id: i16 AOFile: string @file(ext: ".ao") MapAOFile: string @file(ext: ".ao") _: f32 @@ -3426,7 +3426,7 @@ type MicrotransactionSlotFromShapeShiftForm { # Added 0.1 type MicrotransactionSocialFrameVariations { MtxTypeGameSpecific: MtxTypeGameSpecific @unique - Id: i16 @unique + Id: i16 BK2File: string @file(ext: ".bk2") } @@ -3451,7 +3451,7 @@ type MinionCommands { type MinionGemLevelScaling { GemLevel: i32 @unique - MinionLevel: i32 @unique + MinionLevel: i32 } type MinionStats { @@ -3840,8 +3840,8 @@ type MonsterResistances { # Added 0.1 type MonsterShapeShift { - Id: i32 @unique - MonsterSource: MonsterVarieties + Id: i32 + MonsterSource: MonsterVarieties @unique MonsterShapeshift: MonsterVarieties EffectSource: MiscEffectPacks EffectDestination: MiscEffectPacks @@ -4464,7 +4464,7 @@ type PassiveJewelSlots { type PassiveJewelUniqueArt { Id: i32 - Name: Words + Name: Words @unique _: rid # All rows empty JewelArt: string _: rid # All rows empty @@ -4502,7 +4502,7 @@ type PassiveSkillFilterOptions { type PassiveSkillMasteryEffects { Id: string @unique - HASH16: u16 @unique + HASH16: u16 Stats: [Stats] Stat1Value: i32 Stat2Value: i32 @@ -4535,7 +4535,7 @@ type PassiveSkills { Stat3Value: i32 Stat4Value: i32 "Id used by PassiveSkillGraph.psg" - PassiveSkillGraphId: u16 @unique + PassiveSkillGraphId: u16 Name: string Characters: [Characters] IsKeystone: bool @@ -4662,7 +4662,7 @@ type PassiveSkillTreeUIArt { # Added 0.1 type Pet { Id: string @unique - MtxTypeGameSpecific: MtxTypeGameSpecific @unique + MtxTypeGameSpecific: MtxTypeGameSpecific HASH16: u16 HASH32: u32 Size: i32 @@ -4999,7 +4999,7 @@ type RitualStashTabLayout { StoredItem: BaseItemTypes XOffset: i32 YOffset: i32 - FirstSlotIndex: i32 @unique + FirstSlotIndex: i32 Width: i32 Height: i32 ShowIfEmpty: bool @@ -5196,7 +5196,7 @@ type ShopItemRecommendation { # Added 0.3 type ShopItemToStashId { Id: string @unique - Id2: string @unique + Id2: string StashId: StashId } @@ -5249,7 +5249,7 @@ type ShrineVarieties { type SingleGroundLaser { Id: i32 - MiscBeams: MiscBeams + MiscBeams: MiscBeams @unique MiscAnimated: MiscAnimated _: i32 _: string @@ -5421,7 +5421,7 @@ type Strongboxes { type StrongboxPacks { Id: i32 _: i32 - MonsterPack: MonsterPacks + MonsterPack: MonsterPacks @unique } type StrongBoxVarieties { @@ -5435,7 +5435,7 @@ type SocketableStashTabLayout { StoredItem: BaseItemTypes XOffset: i32 YOffset: i32 - FirstSlotIndex: i32 @unique + FirstSlotIndex: i32 Width: i32 Height: i32 ShowIfEmpty: bool @@ -5528,7 +5528,7 @@ type StashTabAffinityId { type StashType { Id: string @unique - StashId: StashId @unique + StashId: StashId Id2: string _: i32 _: i32 @@ -5639,8 +5639,8 @@ type SupportGems { type SupportGemSocketedVisualIdentity { Id: string @unique - BackingIcon: string @unique - ItemIcon: string @unique + BackingIcon: string + ItemIcon: string } type TableCharge { @@ -5722,7 +5722,7 @@ type TempestTypes { } type ThreeToOneRecipes { - _: string @unique + Id: string InputBaseItem: BaseItemTypes @unique OutputBaseItem: BaseItemTypes _: i32 @@ -5986,8 +5986,8 @@ type UniqueGoldPrices { type UniqueMapSkillBooks { BaseItem: BaseItemTypes @unique - _: i32 @unique - _: i32 @unique + _: i32 + _: i32 } type UtilityFlaskBuffs { @@ -6015,7 +6015,7 @@ type VisualPinProperties { type WaystoneStashTabSubgroups { Tier: i32 @unique - Text: string @unique + Text: string Colour: i32 # 1 white 2 yellow 3 red ItemClass: ItemClasses } From 62c251aceb279fac9bdb68008273b3931daf5370 Mon Sep 17 00:00:00 2001 From: LocalIdentity Date: Sun, 24 May 2026 14:29:01 +1000 Subject: [PATCH 3/5] Fix Hash values not using unsigned integers --- dat-schema/2_02_Ascendancy.gql | 2 +- dat-schema/2_04_Essence.gql | 2 +- dat-schema/3_09_Metamorph.gql | 2 +- dat-schema/3_16_Scourge.gql | 2 +- dat-schema/_Core.gql | 18 +++++++++--------- dat-schema/poe2/_Core.gql | 6 +++--- 6 files changed, 16 insertions(+), 16 deletions(-) diff --git a/dat-schema/2_02_Ascendancy.gql b/dat-schema/2_02_Ascendancy.gql index a1e9a10..ab00a37 100644 --- a/dat-schema/2_02_Ascendancy.gql +++ b/dat-schema/2_02_Ascendancy.gql @@ -140,7 +140,7 @@ type LabyrinthCraftOptions { Text: string Script: string ScriptArgument: string - HASH16: i16 + HASH16: u16 _: bool Tier: LabyrinthCraftOptionTiers _: bool diff --git a/dat-schema/2_04_Essence.gql b/dat-schema/2_04_Essence.gql index e49976c..a49fc05 100644 --- a/dat-schema/2_04_Essence.gql +++ b/dat-schema/2_04_Essence.gql @@ -22,7 +22,7 @@ type Essences @tags(list: ["item:def", "crafting"]) { Display_BodyArmour_ModsKey: Mods Display_Helmet_ModsKey: Mods Display_Shield_ModsKey: Mods - HASH32: i32 + HASH32: u32 DropLevel: [i32] Monster_ModsKeys: [Mods] EssenceTypeKey: EssenceType diff --git a/dat-schema/3_09_Metamorph.gql b/dat-schema/3_09_Metamorph.gql index 91f5d5f..2d6d773 100644 --- a/dat-schema/3_09_Metamorph.gql +++ b/dat-schema/3_09_Metamorph.gql @@ -6,6 +6,6 @@ type AlternateQualityTypes @tags(list: ["item:def"]) { MapStats: [Stats] _: i32 IsCatalyst: bool - HASH16: i16 + HASH16: u16 CatalystMod: Mods } diff --git a/dat-schema/3_16_Scourge.gql b/dat-schema/3_16_Scourge.gql index 43eedd6..4f06910 100644 --- a/dat-schema/3_16_Scourge.gql +++ b/dat-schema/3_16_Scourge.gql @@ -1,6 +1,6 @@ type HellscapeAOReplacements { Original: string @file(ext: ".ao") - HASH32: i32 + HASH32: u32 Replacement: string @file(ext: ".ao") } diff --git a/dat-schema/_Core.gql b/dat-schema/_Core.gql index 4c74bfc..2d20810 100644 --- a/dat-schema/_Core.gql +++ b/dat-schema/_Core.gql @@ -34,7 +34,7 @@ type Achievements { Description: string SetId: AchievementSetsDisplay @ref(column: "Id") Objective: string - HASH16: i16 + HASH16: u16 _: bool HideAchievementItems: bool _: bool @@ -509,7 +509,7 @@ type AtlasNode { DivCards: [BaseItemTypes] DivCardsHardmode: [BaseItemTypes] Tier: i32 - HASH16: i16 + HASH16: u16 IsUniqueMap: bool Region: AtlasRegions Node_DDSFile: string @file(ext: ".dds") @@ -630,7 +630,7 @@ type BaseItemTypes @tags(list: ["item:def", "item:droptable"]) { TagsKeys: [Tags] ModDomain: ModDomains ItemVisualIdentity: ItemVisualIdentity - HASH32: i32 + HASH32: u32 VendorRecipe_AchievementItems: [AchievementItems] "the inflection identifier used for i18n in related fields" Inflection: string @@ -2256,7 +2256,7 @@ type HideoutRarity { type Hideouts { HideoutArea: WorldAreas - HASH16: i16 + HASH16: u16 HideoutFile: string @file(ext: ".hideout") SpawnAreas: [WorldAreas] ClaimSideArea: WorldAreas @@ -3203,7 +3203,7 @@ type MiscAnimated { PreloadGroupsKeys: [PreloadGroups] _: i32 _: i32 - HASH32: i32 + HASH32: u32 } type MiscAnimatedArtVariations { @@ -4726,7 +4726,7 @@ type QuestAchievements { type QuestFlags { Id: string - HASH32: i32 + HASH32: u32 } type QuestItems { @@ -5269,7 +5269,7 @@ type Stats @tags(list: ["crafting"]) { MainHandAlias_StatsKey: Stats OffHandAlias_StatsKey: Stats _: bool - HASH32: i32 + HASH32: u32 BelongsActiveSkillsKey: [ActiveSkills] @ref(column: "Id") Category: PassiveSkillStatCategories _: bool @@ -5760,7 +5760,7 @@ type Words { Text: string @unique SpawnWeight_Tags: [Tags] SpawnWeight_Values: [i32] - HASH32: i32 + HASH32: u32 Text2: string "the inflection identifier used for i18n in related fields" Inflection: string @@ -6510,7 +6510,7 @@ type MemoryLineModifiers { type MemoryLineType { Id: string @unique MemoryLine: AtlasMemoryLine - HASH16: i16 + HASH16: u16 Stats: [Stats] StatValues: [i32] _: i32 diff --git a/dat-schema/poe2/_Core.gql b/dat-schema/poe2/_Core.gql index 52617d9..760fd2e 100644 --- a/dat-schema/poe2/_Core.gql +++ b/dat-schema/poe2/_Core.gql @@ -2517,7 +2517,7 @@ type HideoutNPCs { # Added 0.1 type Hideouts { HideoutArea: WorldAreas @unique - HASH16: i16 + HASH16: u16 HideoutFile: string @file(ext: ".hideout") ClaimSideArea: WorldAreas HideoutImage: string @@ -2605,7 +2605,7 @@ type Incubators @tags(list: ["item:def"]) { BaseItemType: BaseItemTypes @unique _: i32 Reward: string @localized - HASH32: i32 + HASH32: u32 AchievementItemsKeys: [AchievementItems] _: bool RewardDescription: ClientStrings @@ -2849,7 +2849,7 @@ type ItemVisualEffect { _: string TwoHandedSwordEPKFile: string @file(ext: ".epk") TwoHandedStaffEPKFile: string @file(ext: ".epk") - HASH16: i16 + HASH16: u16 _: bool _: bool TwoHandedMaceEPKFile: string @file(ext: ".epk") From 6a2df709343414719e2ed7a818a75674a8fe1bf7 Mon Sep 17 00:00:00 2001 From: LocalIdentity Date: Sun, 24 May 2026 16:11:06 +1000 Subject: [PATCH 4/5] Fix more tables Use exported table data from PoE 2 to find tables that were missing rids or had incorrect schemas --- dat-schema/3_18_Sentinel.gql | 4 ++-- dat-schema/_Core.gql | 10 +++++----- dat-schema/poe2/_Core.gql | 24 ++++++++++++------------ 3 files changed, 19 insertions(+), 19 deletions(-) diff --git a/dat-schema/3_18_Sentinel.gql b/dat-schema/3_18_Sentinel.gql index f0751a2..a22817a 100644 --- a/dat-schema/3_18_Sentinel.gql +++ b/dat-schema/3_18_Sentinel.gql @@ -87,6 +87,6 @@ type SentinelTaggedMonsterStats { TaggedStat: Stats _: Stats BuffTemplate: [BuffTemplates] - _: rid - _: rid + RewardType1: GenericLeagueRewardTypes + RewardType2: GenericLeagueRewardTypes } diff --git a/dat-schema/_Core.gql b/dat-schema/_Core.gql index 2d20810..9b3ce01 100644 --- a/dat-schema/_Core.gql +++ b/dat-schema/_Core.gql @@ -3674,7 +3674,7 @@ type MonsterMortar { _: f32 _: f32 _: bool - _: rid # All rows empty + ImpactAnimation2: MiscAnimated _: string } @@ -4118,12 +4118,12 @@ type NPCDivinationWindowVisuals { type NPCVendorDialogueConditions { Id: string @unique - _: rid # All rows empty - _: rid # All rows empty + Rarity: Rarity + ItemClass: ItemClasses _: i32 _: rid # All rows empty _: i32 - _: rid # All rows empty + Words: Words } type NPCVendorDialogue { @@ -4643,7 +4643,7 @@ type PreloadFromStats { BuffVisual: [BuffVisuals] EffectPack: [MiscEffectPacks] _: i32 - GroundEffectType: [GroundEffectTypes] + GroundEffect: [GroundEffects] } type PreloadGroups { diff --git a/dat-schema/poe2/_Core.gql b/dat-schema/poe2/_Core.gql index 760fd2e..202f86d 100644 --- a/dat-schema/poe2/_Core.gql +++ b/dat-schema/poe2/_Core.gql @@ -5,7 +5,7 @@ type AbyssBenchTicketTypes { _: i32 MaximumItemLevel: i32 MinimumModLevel: i32 - _: i32 + _: f32 _: bool } @@ -22,10 +22,10 @@ type AbyssMonsterModReplacement { # Added 0.2 type AchievementItemRewards @tags(list: ["mtx:reward"]) { AchievementItem: AchievementItems - BaseItemType: BaseItemTypes - Message: string @localized + Rewards: MtxTypeGameSpecific + MessagePC: string @localized Id: string @unique - _: string @localized + MessageConsole: string @localized } type ActionTypes { @@ -181,8 +181,8 @@ type AegisVariations { DefinitionBuff: BuffDefinitions DefinitionDepleted: BuffDefinitions DefinitionValue: BuffDefinitions + AnimatedEffect: [MiscAnimated] _: bool - _: rid _: [string] } @@ -1313,8 +1313,8 @@ type CraftingSpreeType @tags(list: ["crafting"]) { type CrossbowSkillBoltOverride { ActiveSkill: ActiveSkills - ProjectileOverride: ProjectileOverrides _: i32 + ProjectileOverride: ProjectileOverrides } type CurrencyConsumeEffects { @@ -1474,8 +1474,8 @@ type DamageParticleEffects { DamageParticleEffectTypes: DamageParticleEffectTypes Variation: i32 _: i32 - _: rid - _: rid + DamageEffect: DamageEffectVariations + EffectAddon: DamageEffectVariations _: bool } @@ -1971,8 +1971,8 @@ type FragmentSubStashTabLayout { _: bool _: i32 ItemClass: ItemClasses - StashPages: FragmentStashPages - _: i32 # All rows empty + _: i32 + StashPages: FragmentStashSubPages } type GamblePrices { @@ -2792,7 +2792,7 @@ type ItemInherentSkills { # Added 0.1 type ItemisedVisualEffect { - EffectBaseType: BaseItemTypes @unique + Mtx: MtxTypeGameSpecific VisualEffect: ItemVisualEffect VisualIdentity: ItemVisualIdentity Stats: [Stats] @@ -5220,7 +5220,7 @@ type Shrines { Player_ShrineBuffsKey: BuffTemplates _: i32 _: i32 - Monster_ShrineBuffsKey: rid + Monster_ShrineBuffsKey: BuffTemplates SummonMonster_MonsterVarietiesKey: MonsterVarieties SummonPlayer_MonsterVarietiesKey: MonsterVarieties _: i32 From 6224902396469183ab26ceddc3422d2ec322b6c3 Mon Sep 17 00:00:00 2001 From: LocalIdentity Date: Sun, 31 May 2026 01:39:38 +1000 Subject: [PATCH 5/5] 0.5 Fixes Adds spec for all the new files and updates existing files --- dat-schema/_Core.gql | 2 +- dat-schema/poe2/_Core.gql | 1232 +++++++++++++++++++++++++++++++++---- 2 files changed, 1129 insertions(+), 105 deletions(-) diff --git a/dat-schema/_Core.gql b/dat-schema/_Core.gql index 9b3ce01..a2f8fc4 100644 --- a/dat-schema/_Core.gql +++ b/dat-schema/_Core.gql @@ -2385,7 +2385,7 @@ enum ItemClassFlags @indexing(first: 0) { type ItemConditions { Id: string - _: [_] # All rows empty + ItemClasses: [ItemClasses] _: i32 _: i32 _: bool diff --git a/dat-schema/poe2/_Core.gql b/dat-schema/poe2/_Core.gql index aa76ef1..c5feb23 100644 --- a/dat-schema/poe2/_Core.gql +++ b/dat-schema/poe2/_Core.gql @@ -7,9 +7,9 @@ type AbyssBenchTicketTypes { MinimumModLevel: i32 _: f32 _: bool + Tag: Tags } - type AbyssMonsterModReplacement { Mod: Mods @unique Mods: [Mods] @@ -101,7 +101,7 @@ type ActiveSkillWeaponRequirement { WieldableClasses: [WieldableClasses] String: ClientStrings _: i32 - _: rid + Stat: Stats } type Acts { @@ -157,6 +157,7 @@ type AdditionalMonsterPacksFromStats { StatsValues: [i32] _: i32 PackSizeStatsKey: Stats + Rarity: Rarity } type AdvancedCraftingBenchCustomTags { @@ -188,6 +189,74 @@ type AegisVariations { _: [string] } +type AfflictionBalancePerLevel { + _: i32 + _: f32 + _: f32 + _: f32 + _: f32 + _: i32 + _: i32 + _: i32 + _: i32 + _: i32 + _: i32 + _: i32 + _: i32 + _: f32 + _: f32 + _: i32 + _: i32 + _: i32 + _: i32 + _: i32 +} + +type AfflictionConstants { + Id: string + Value: i32 + _: rid +} + +type AfflictionEmotionCraftingAudio { + BaseItemType: BaseItemTypes + NPCAudio1: [NPCTextAudio] + NPCAudio2: [NPCTextAudio] +} + +type AfflictionQuestFogBankValues { + _: rid + _: [rid] + _: [i32] + _: [i32] + _: rid + _: i32 + _: [rid] +} + +type AfflictionSpecialEventVisuals { + Id: string + Icon: string @file(ext: ".dds") + IconBright: string @file(ext: ".dds") +} + +type AfflictionStartDialogue { + WorldAreasKey: WorldAreas + NPCAudio: [NPCTextAudio] + _: [i32] + _: i32 +} + +type AfflictionStartDialogueOverrides { + Id: i32 + _: i32 + _: i32 + QuestFlag: QuestFlags + QuestFlagHeard: QuestFlags + NPCAudio: [NPCTextAudio] + _: i32 +} + type AlternateCharacterSkin { Id: string _: string @@ -250,7 +319,7 @@ type AlternateQualityTypes @tags(list: ["item:def"]) { Item: BaseItemTypes ModEffectStat: ModEffectStats HASH16: u16 - _: [rid] + ItemClass: [ItemClasses] } @@ -313,6 +382,11 @@ type Animation { _: [Animation] } +type ArchnemesisModsFromChestMods { + ChestMod: Mods + ArchnemesisMod: ArchnemesisMods +} + type AreaDifficultyStats { Id: Stats Area: [WorldAreas] @@ -374,6 +448,34 @@ type AscendancyPassiveSkillOverrides { Override: PassiveSkills } +type AtlasClassPassiveClasses { + Id: string + Description: string + _: [i32] + _: i32 + TabActive: string @file(ext: ".dds") + TabInactive: string @file(ext: ".dds") + MasterNormal: string @file(ext: ".dds") + ActiveHover: string @file(ext: ".dds") + FrameBackground: string @file(ext: ".dds") + ButtonBase: string + ButtonActive: string + Tab: string +} + +type AtlasClassPassives { + Id: string + Class: AtlasClassPassiveClasses + KeystoneArt: string + KeystoneArtActive: string + Stats: [Stats] + StatValues: [i32] + Name: string + FlavourText: string + _: u16 + _: i32 +} + type AtlasInfluenceData { InfluencePack: AtlasInfluenceOutcomes MonsterPacks: [MonsterPacks] @@ -413,7 +515,7 @@ type AtlasPassiveSkillSubTrees { _: string _: string _: f32 - _: string + Description: string } type AtlasPrimordialBosses { @@ -451,11 +553,10 @@ type AtlasPrimordialBossOptions { type AtlasTowerInventoryLayout { Slot: i32 RequiredModifiers: i32 # Required number of modifiers on waystone to unlock this slot - BlockedIcon: string @unique - _: i32 _: i32 _: i32 - UnblockedIcon: string + _: [rid] + _: bool } type AttackSkillDamageScalingType { @@ -490,9 +591,10 @@ type AwardDisplay { _: string _: string ForegroundImage: string - OGGFile: string @file(ext: ".ogg") QuestFlag: QuestFlags _: i32 + AwardVideo: string + SoundEffect: SoundEffects } type AzmeriWoodsDustType { @@ -563,9 +665,9 @@ type BaseItemTypes @tags(list: ["item:def", "item:droptable"]) { ShopTag: ShopTag _: rid # All rows empty _: i32 - _: [rid] - _: [rid] - _: [rid] + _: [_] # All rows empty + _: [_] # All rows empty + _: [_] # All rows empty } type BattlePasses { @@ -706,6 +808,78 @@ type BreachArtVariations { CloseEffect: MiscAnimated } +type BreachStashTabLayout { + Id: string + BaseItemType: BaseItemTypes + _: i32 + _: i32 + _: i32 + _: i32 + _: i32 + _: i32 + _: i32 + _: bool + SlotStyle: StashTabInventorySlotStyle +} + +type BreachStashTabSubStashGroup { + Id: string + Name: string + Group: BreachStashTabSubStashGroup + Icon: string +} + +type BrequelCraftingItems { + BaseItemType: BaseItemTypes + _: bool +} + +type BrequelEncounterSkills { + Id: string @unique + _: rid + Description: string + Art: string + _: i32 + _: i32 + _: i32 + _: i32 + _: i32 + Stat: Stats +} + +type BrequelExchangeLayout { + Id: string + _: f32 + _: f32 + _: f32 +} + +type BrequelFruitRewardTypes { + Id: string @unique + Name: string + Description: string + PCPrompt: string + ConsolePrompt: string + _: [_] # All rows empty + _: i32 + _: i32 + _: rid # All rows empty +} + +type BrequelFruitTypes { + BaseItemType: BaseItemTypes @unique + Reward: BrequelFruitRewardTypes + _: i32 + _: i32 + _: rid # All rows empty +} + +type BrequelTreePassiveUnlocks { + Passive: PassiveSkills + Tree: BrequelPassiveSubTrees + _: i32 +} + type BuffDefinitions { Id: string @unique Description: string @@ -818,6 +992,7 @@ type BuffVisualOrbTypes { _: bool _: string _: bool + _: [string] } # Added 0.1 @@ -851,6 +1026,8 @@ type BuffVisuals { _: bool _: bool _: [i32] + FadeOutEffect: MiscEffectPacks + _: rid # All rows empty } type BuffVisualsArtVariations { @@ -867,6 +1044,14 @@ type BuffVisualShapeShiftOverride { EPKFiles: [string] @file(ext: ".epk") } +type BuildPlannerInventories { + Inventory: Inventories +} + +type BuildPlannerSkillTrees { + PassiveSkillTree: PassiveSkillTrees +} + type CaravanStops { Area: WorldAreas _: string @@ -882,6 +1067,7 @@ type CaravanStops { _: [WorldAreas] _: MapPins _: rid # All rows empty + _: MapPins } type ChakraSlots { @@ -913,6 +1099,8 @@ type CharacterAudioEvents { _: CharacterAudioEvents _: i32 _: i32 + _: i32 + NPCAudio: [NPCTextAudio] } type CharacterCreationButton { @@ -969,6 +1157,15 @@ type CharacterPanelStats { StatsKeys5: [Stats] _: bool StatsKeys6: [Stats] + _: i32 +} + +type CharacterPanelTabs { + Id: string @unique + _: i32 + Text: string + _: i32 + _: bool } type CharacterVariationGroups { @@ -1014,8 +1211,7 @@ type Characters { LevelUpEffect: MiscEffectPacks _: i32 PassiveTreeImage: string @file(ext: ".dds") - _: i32 - _: i32 + _: string AttrsAsId: string LoginScreen: string @file(ext: ".ao") PlayerCritter: string @@ -1152,6 +1348,9 @@ type Chests { _: i32 _: rid # All rows empty _: bool + _: [_] + _: [_] + _: [_] } type ChooseOneUniqueNPCs { @@ -1192,6 +1391,19 @@ type CompletionNotifications { _: [i32] _: Colours _: Colours + _: i32 + _: i32 +} + +type ContentCultures { + Id: string + Tags: [Tags] + _: rid # All rows empty + _: rid # All rows empty + _: [_] # All rows empty + _: [_] # All rows empty + _: i32 + _: i32 } type CoreLeagues { @@ -1215,6 +1427,10 @@ type CoreLeagues { _: bool _: i32 MapObjective: EndgameMapObjectives + _: i32 + MapContent: EndgameMapContent + _: i32 + AtlasStat: Stats } type CorpseExplosionGibs { @@ -1258,13 +1474,13 @@ type CraftingBenchOptions @tags(list: ["crafting"]) { _: rid _: i32 _: [rid] - _: [i32] - _: [rid] - _: [rid] _: [rid] + CraftingCategory: [CraftingItemClassCategories] + _: [_] + _: [_] _: bool - _: [rid] - _: [rid] + _: [_] + _: [_] _: rid _: rid _: bool @@ -1370,7 +1586,7 @@ type CurrencyStashTabLayout { ShowIfEmpty: bool SlotGroup: i32 SlotSize: i32 - SlotIcon: DynamicStashSlots + SlotStyle: StashTabInventorySlotStyle } # Added 0.1 @@ -1458,6 +1674,19 @@ type DamageCalculationTypes { _: Stats } +type DamageEffectVariations { + Id: string @unique + MiscAnimated: [MiscAnimated] + Particles: [string] @file(ext: ".pet") + _: i32 + _: i32 + _: [string] + _: [string] + EffectPack: MiscEffectPacks + _: bool + _: bool +} + # Added 0.1 type DamageParticleEffects { DamageParticleEffectTypes: DamageParticleEffectTypes @@ -1502,7 +1731,7 @@ type DeliriumStashTabLayout { Height: i32 SlotSize: i32 _: i32 - SlotIcon: DynamicStashSlots + SlotStyle: StashTabInventorySlotStyle ShowIfEmpty: bool } @@ -1559,6 +1788,21 @@ type DestructiveDamageEffects { _: bool } +type DisplayCaseTypes { + Id: string @unique + _: i32 + Base: string + HoverMiddle: string + HoverRight: string + Glass: string + CrackedGlass: string + TopLeftCorner: string + TopRightCorner: string + BottomLeftCorner: string + BottomRightCorner: string + _: bool +} + type DivinationCardArt @tags(list: ["item:def"]) { BaseItemTypesKey: BaseItemTypes VirtualFile: string @@ -1590,33 +1834,89 @@ type Emote { type EndgameCleansedMods { Mod: Mods @unique _: [i32] # Might be a weight for specific mod to appear + _: bool } type EndgameCorruptionMods { CorruptionMod: Mods SpawnWeight: [i32] + _: bool +} + +type EndgameExtraMapStatsToDisplayOnAtlas { + Id: string + Stats: [Stats] +} + +type EndgameMapAtlas { + _: PassiveSkills + _: [EndgameMaps] + _: i32 + _: [rid] + _: i32 + _: rid + Stats: [Stats] + StatValues: [i32] + _: rid + _: i32 + _: rid + _: bool + _: bool + _: bool + _: rid + _: i32 + _: i32 + _: rid + _: i32 + _: EndgameMapAtlas + _: rid + _: rid + _: rid + _: rid + _: i32 + _: i32 + _: bool + _: bool + _: rid +} + +type EndgameMapAtlasTowers { + _: rid + _: i32 + _: [rid] + _: rid + _: [rid] + _: [rid] +} + +type EndgameMapBiomeGroundTypes { + Id: string + _: string @file(ext: ".gt") + _: string @file(ext: ".gt") + _: string @file(ext: ".gt") + _: string @file(ext: ".gt") + _: string @file(ext: ".gt") + _: string @file(ext: ".gt") } type EndgameMapBiomes { Id: string @unique _: f32 _: f32 - GroundType1: string @file(ext: ".gt") _: f32 _: f32 _: f32 _: f32 - GroundType2: string @file(ext: ".gt") - _: [i32] _: f32 _: i32 - _: i32 - _: i32 - _: i32 - GroundTypeCorrupted1: string @file(ext: ".gt") - GroundTypeCorrupted2: string @file(ext: ".gt") Name: string - GroundTypeSanctified: string @file(ext: ".gt") + _: rid + WorldArea: WorldAreas + _: [i32] + AreaTag: Tags + MonsterTag: Tags + Stat: Stats + GroundType: EndgameMapBiomeGroundTypes } type EndgameMapCompletionQuests { @@ -1635,27 +1935,58 @@ type EndgameMapConstants { # Added 0.1 type EndgameMapContent { Id: string @unique - SpawnChance: [i32] - _: i32 - _: i32 - _: i32 - _: i32 - InherentStat: [Stats] - InherentStatValues: [i32] - Icon: string @file(ext: ".dds") - Description: string @localized - Name: string @localized - KeywordPopup: KeywordPopups - _: [i32] Stats: [Stats] + StatValues: [i32] + Description: string + Name: string _: i32 MapObjective: EndgameMapObjectives + VisualIdentity: EndgameMapContentVisualIdentity + _: bool +} + +type EndgameMapContentAddition { + Id: string + Mods: [Mods] + WorldAreas: [WorldAreas] + _: [_] + _: bool + _: i32 + _: i32 + _: [EndgameMapContent] + CompletionNotification: CompletionNotifications + _: [rid] + _: bool + _: bool + _: bool + _: bool + _: bool +} + +type EndgameMapContentFrameType { + Id: string + Frame: string } # Added 0.1 type EndgameMapContentSet { Id: string @unique Content: [EndgameMapContent] + _: bool +} + +type EndgameMapContentVisualIdentity { + Id: string + AtlasIcon: string + PassiveArt: string @file(ext: ".dds") + _: rid +} + +type EndgameMapContentWeightings { + MapContent: EndgameMapContent + _: i32 + _: [rid] + _: [i32] } type EndgameMapDecorations { @@ -1669,6 +2000,8 @@ type EndgameMapDecorations { _: i32 _: i32 _: bool + _: bool + _: bool } type EndgameMapFastTravelPins { @@ -1689,6 +2022,27 @@ type EndgameMapLocation { AdjacentBiomes: [EndgameMapBiomes] } +type EndgameMapLocations { + Map: EndgameMaps + _: i32 + Biomes: [EndgameMapBiomes] + AdjacentBiomes: [EndgameMapBiomes] + _: i32 + _: [i32] +} + +type EndgameMapNodeStats { + Stat: Stats + _: i32 + MiscAnimated: MiscAnimated + Mods: Mods + _: [_] # All rows empty + MapVisualIdentity: EndgameMapContentVisualIdentity + Name: ClientStrings2 + Description: ClientStrings2 + _: bool +} + type EndgameMapObjectives { Id: string ObjectiveText: string @@ -1710,6 +2064,18 @@ type EndgameMapPins { ActivePin: MiscAnimated FailedPin: MiscAnimated CompletePin: MiscAnimated + HighlightEPK: string @file(ext: ".epk") + RevealAnimation: MiscAnimated + RitualHighlightEPK: string @file(ext: ".epk") + RitualSelectedEPK: string @file(ext: ".epk") + DeliriumHighlightEPK: string @file(ext: ".epk") + AudioAnimation: MiscAnimated +} + +type EndgameMapRevealTypes { + Id: string + Script1: string + Script2: string } type EndgameMapTablets { @@ -1719,8 +2085,7 @@ type EndgameMapTablets { TowerStat: Stats MapObjective: EndgameMapObjectives MapContent: EndgameMapContent - QuantityStat: [Stats] - QuantityStatValues: [i32] + League: CoreLeagues } type EndgameMaps { @@ -1737,10 +2102,63 @@ type EndgameMaps { _: i32 MapPinCompleted: EndgameMapPins ObjectiveDescription: ClientStrings2 - MapLocations: [EndgameMapLocation] SpecialMapText: string @localized SpecialMapFlavourText: string @localized SpecialMapHelpText: string @localized + _: i32 + _: i32 + _: f32 + _: f32 + _: f32 + _: bool + _: bool + _: [rid] + _: bool + _: string + _: f32 +} + +type EndgameQuickTravelHubs { + Area: EndgameMaps + Button: string @file(ext: ".dds") + ButtonHover: string @file(ext: ".dds") + AtlasSubTree: AtlasPassiveSkillSubTrees + Description1: ClientStrings + _: [i32] + _: i32 + Description2: ClientStrings + Sound: SoundEffects +} + +type EndgameRegionActionButtons { + Id: string + QuickUseIcon: string + Description: ClientStrings2 + ButtonArt: string + SoundEffectImpact: SoundEffects + SoundEffectStart: SoundEffects + _: bool + _: f32 +} + +type EndgameRegionActionButtonsRequiredQuestFlags { + Button: EndgameRegionActionButtons + _: i32 + _: rid + _: i32 + QuestFlag: QuestFlags + _: rid + _: bool + KeywordPopup: KeywordPopups +} + +type EndgameRegionActionCurrencyItems { + Region: EndgameRegionActionButtons + _: i32 + BaseItemTypes: BaseItemTypes + KeywordPopup: KeywordPopups + _: rid # All rows empty + _: bool } type EndgameSplinterInfoDisplay { @@ -1787,21 +2205,24 @@ type EssenceMods { OutcomeModWeights: [i32] } +type EssenceReplacementType { + Id: string +} type Essences { BaseItemType: BaseItemTypes @unique HASH32: u32 - _: [i32] - _: [Mods] + TankModValues: [i32] + MonsterTankMods: [Mods] _: [i32] MonsterMod: Mods Perfect: bool UpgradeResult: Essences Tier: i32 MapStat: Stats - _: rid - _: [rid] - _: [rid] + _: rid # All rows empty + _: [_] # All rows empty + ReplacementType: [EssenceReplacementType] } @@ -1815,7 +2236,7 @@ type EssenceStashTabLayout { Height: i32 ShowIfEmpty: bool SlotSize: i32 - SlotIcon: DynamicStashSlots + SlotStyle: StashTabInventorySlotStyle } # Added 0.3 @@ -1832,6 +2253,166 @@ type EssenceType { WordsKey: Words } +type Expedition2AnimatedPerArea { + Area: WorldAreas + RemnantAnimation: MiscAnimated + PlinthAnimation: MiscAnimated +} + +type Expedition2CraftingAchievements { + BaseItemType: BaseItemTypes + AchievementItem: AchievementItems +} + +type Expedition2ElementalModConversions { + Id: string + FireMod: Mods + ColdMod: Mods + LightningMod: Mods + ChaosMod: Mods + _: bool +} + +type Expedition2HeathRemnantSeenLeagueQuestFlags { + Id: i32 + QuestFlag: i32 +} + +type Expedition2MonsterFactions { + Id: string + MonsterPack: [MonsterPacks] + _: i32 + _: i32 + _: i32 +} + +type Expedition2OlrothsLegacyRuneClient { + Id: string + BaseItemType: [BaseItemTypes] + UniqueName: [Words] +} + +type Expedition2Recipes { + Id: string + Runes: [Expedition2Runes] + Description: string + RuneCountRequired: i32 + MinLevelReq: i32 + MaxLevelReq: i32 + Reward: BaseItemTypes + RewardCount: i32 + _: rid # All rows empty + _: rid # All rows empty + _: string + _: string + _: bool + _: i32 + _: bool + _: i32 + QuestFlag: QuestFlags + Category: ExpeditionCategory + RuneWeights: [Expedition2RunesWeights] + DisabledText: ClientStrings +} + +type Expedition2RemnantRewardPerArea { + Area: WorldAreas + Reward: BaseItemTypes + RewardCount: i32 + QuestFlag: QuestFlags +} + +type Expedition2Runes { + Id: string + _: rid # All rows empty + ArchnemesisMod: ArchnemesisMods + ArchnemesisModPower: ArchnemesisMods + _: i32 + TomeArt: string + RemnantArt: string + HitEffect: Stats + EnemyArt: string + _: string +} + +type Expedition2RunesWeights { + Id: string + _: i32 + _: i32 + Rune: Expedition2Runes + _: i32 + _: i32 + _: i32 + _: i32 + _: i32 + _: bool + _: i32 +} + +type Expedition2ShipNames { + Id: i32 + Description: string +} + +type Expedition2VerisiumCrafts { + OriginalBaseType: BaseItemTypes + UniqueName: Words + NewBaseType: BaseItemTypes + CraftingItem: [BaseItemTypes] + CraftingItemCount: [i32] + _: [i32] + _: [_] # All rows empty + _: i32 + _: Words +} + +type Expedition2WarpingRuneStatToTag { + Stat: Stats + Tag: Tags +} + +type ExpeditionAreas { + Area: WorldAreas + PosX: i32 + PosY: i32 + _: bool + TextAudio: NPCTextAudio + CompletionAchievements: [AchievementItems] + _: bool + _: bool + _: i32 + _: i32 + _: bool + _: bool +} + +type ExpeditionBalancePerLevel { + Level: i32 + _: bool + _: i32 + _: i32 + _: i32 + _: i32 + _: i32 + _: i32 + _: f32 + _: i32 + _: i32 + _: i32 + _: i32 + _: i32 + _: i32 + _: i32 + _: i32 + _: i32 +} + +type ExpeditionCategory { + Id: string + Art: string + Name: string +} + # Added 0.1 type ExpeditionCurrency @tags(list: ["item:def"]) { BaseItemType: BaseItemTypes @unique @@ -1839,7 +2420,6 @@ type ExpeditionCurrency @tags(list: ["item:def"]) { LootSound: SoundEffects } - type ExpeditionDeals { Id: i32 Function: string @unique @@ -1860,9 +2440,45 @@ type ExpeditionDealsDialogue { NPCTextAudio: NPCTextAudio } +type ExpeditionDroneTypes { + Id: string + MonsterVariety: MonsterVarieties + _: string + _: string + _: string + _: string +} + +type ExpeditionRelics { + Id: string @unique + Name: string + ItemTag: Tags + AOFile: string + MinLevel: i32 + MaxLevel: i32 + WorldArea: WorldAreas + _: i32 + _: i32 + MiscObject: MiscObjects + _: bool + _: bool + _: i32 + _: i32 + _: i32 +} + type ExpeditionStashTabLayout { Id: string @unique BaseItemType: BaseItemTypes + XOffset: i32 + YOffset: i32 + Tab: i32 + HideIfEmpty: bool + FirstSlotIndex: i32 + SlotSize: i32 + Width: i32 + Height: i32 + SlotStyle: StashTabInventorySlotStyle } @@ -1911,6 +2527,11 @@ type FlavourText { Text: string } +type FlavourTextDialogue { + FlavourText: FlavourText + NPCDialogue: NPCTextAudio +} + type FragmentStashPages { Id: string @unique Text: string @localized @@ -1931,15 +2552,20 @@ type FragmentStashTabLayout { FirstSlotIndex: i32 Width: i32 Height: i32 - _: bool + HideIfEmpty: bool Tab: i32 SlotSize: i32 - HideIfEmpty: bool - Subtab: i32 - StoredItems: [BaseItemTypes] + BaseItemType: BaseItemTypes + _: bool + SlotStyle: StashTabInventorySlotStyle +} + +type FragmentStashTabSubStashGroup { + Id: string + Name: string + Art: string + ParentTab: FragmentStashTabSubStashGroup _: bool - _: string - _: i32 } type FragmentSubStashes { @@ -1972,6 +2598,10 @@ type GamblePrices { CostExponentPerLevel: f32 NewTab: bool TabName: ClientStrings + InShop: [NPCShop] + NotInShop: [NPCShop] + _: rid + QuestFlag: QuestFlags } type GameLogos { @@ -2185,6 +2815,7 @@ type GeometryTrigger { _: i32 _: bool _: bool + _: bool } type GoldBaseTypePrices { @@ -2240,9 +2871,9 @@ type GrantedEffectQualityStats @tags(list: ["item:droptable"]) { AddMinionTypes: [ActiveSkillType] "Apply to these stat sets, if not specified apply to all sets" ApplyToStatSets: [i32] - _: [rid] - _: [i32] - _: [i32] + AltStats: [Stats] + AltStatValuesPermille: [i32] + AltApplyToStatSets: [i32] } type GrantedEffects { @@ -2354,37 +2985,84 @@ type GrantedSkillSocketNumbers { Sockets: i32 } +type GraphicalItemExchange { + Id: string + BackgroundArt: string + Red: i32 + Green: i32 + Blue: i32 + _: i32 + _: i32 + _: i32 + ButtonLabel: ClientStrings2 + _: rid + _: i32 +} + +type GraphicalItemExchangeSlot { + Item: GraphicalItemExchange + _: i32 + Inventory: Inventories + _: i32 + _: i32 + _: i32 + _: i32 + _: i32 + _: i32 + _: i32 + _: bool + _: bool + ItemCondition: [ItemConditions] + GlowArt: string + _: i32 + _: string +} + # Added 0.1 type GraphicalItemReceptacle { Id: string @unique - _: string - _: ClientStrings + BackgroundArt: string + HoverMessage: ClientStrings _: bool _: bool SoundEffect: SoundEffects _: string ErrorMessage: ClientStrings Script: string - _: ClientStrings _: bool + AreaName: ClientStrings2 + Icon: string + Description: ClientStrings + _: f32 + _: f32 + _: i32 + _: i32 + _: i32 + _: i32 +} + +type GraphicalItemReceptacleAdditionalButton { + Receptacle: GraphicalItemReceptacle + _: i32 + Instructions: ClientStrings2 + _: i32 _: string - _: string + BaseItemType: BaseItemTypes + _: [i32] _: bool - Name: ClientStrings2 - _: string - _: ClientStrings - _: string + _: i32 + _: i32 } # Added 0.1 type GraphicalItemReceptacleSlot { - GraphicalItemReceptacle: GraphicalItemReceptacle + GraphicalItemReceptacle: GraphicalItemReceptacle @unique Key: i32 _: rid # All rows empty _: i32 _: string _: string - BaseItemType: BaseItemTypes @unique + BaseItemType: [BaseItemTypes] SoundEffect: SoundEffects _: string } @@ -2505,6 +3183,7 @@ type HideoutNPCs { _: i32 Ruleset: Rulesets _: bool + HideoutDoodads: [HideoutDoodads] } # Added 0.1 @@ -2558,6 +3237,7 @@ type HudEnergyShieldVisuals { _: bool _: string _: string + _: i32 } type HudLifeVisuals { @@ -2645,6 +3325,7 @@ type Incursion2Medallions { Description: string @localized SoundEffect: SoundEffects _: i32 + Stat: Stats } # Added 0.4 @@ -2678,6 +3359,7 @@ type Incursion2Rooms { IsBossReward: bool Name: string @localized Icon_DDSFile: string @file(ext: ".dds") + RewardUnlockStat: Stats } # Added 0.4 @@ -2712,6 +3394,19 @@ type InterpolateBuffEffect { Duration: i32 } +type Inventories { + Id: string + InventoryIdKey: i32 + InventoryTypeKey: InventoryType + _: bool + _: bool + _: i32 + _: bool + _: i32 + _: rid # All rows empty + EffectPack: [MiscEffectPacks] +} + type IslandCompleteFlags { QuestFlag: QuestFlags MapPin: MapPins @@ -2748,6 +3443,18 @@ type ItemClasses @tags(list: ["crafting"]) { _: bool } +type ItemConditions { + Id: string + ItemClasses: [ItemClasses] + _: i32 + _: i32 + _: bool + MinLevel: i32 + MaxLevel: i32 + BaseItemTypes: [BaseItemTypes] + Tags: Tags + Words: Words +} type ItemDisenchantValues { Rarity: Rarity @unique @@ -2776,6 +3483,8 @@ type ItemFrameType { Rarity: Rarity DisplayString: ClientStrings ColorMarkup: string + _: string + _: ItemFrameType } type ItemInherentSkills { @@ -2810,6 +3519,7 @@ type ItemisedVisualEffect { _: bool GameObjectTask: GameObjectTasks _: i32 + _: bool } type ItemNoteCode { @@ -2951,8 +3661,8 @@ type ItemVisualIdentity { OneHandSoundType: WeaponSoundTypes DropSoundEffect: SoundEffects Animation: MiscAnimated - _: string - _: string + ShieldHeldAnimatedObject: string @file(ext: ".ao") + SheathAnimatedObject: string @file(ext: ".ao") } enum ItemVisualCompositions @indexing(first: 0) { @@ -3006,21 +3716,31 @@ type ItemVisualsReplacedWithStat { VisualIdentity: ItemVisualIdentity } +type KalguuranGemLevelCurrency { + BaseItemType: BaseItemTypes + GemLevel: i32 +} + +type KalguuranSupportGemLimitPerLevel { + Level: i32 + SupportCount: i32 +} + type KeywordPopupItemReference { - Id: string @unique - BaseItemType: BaseItemTypes @unique - _: rid + Id: string + BaseItemType: BaseItemTypes + UniqueName: Words ItemVisualIdentity: ItemVisualIdentity - _: rid - _: rid - _: i32 + FlavourText: FlavourText + Rarity: Rarity + ItemLevel: i32 _: bool } type KeywordPopupModReference { - Id: string @unique - Mod: Mods @unique - CSDFile: string @file(ext: ".csd") + Id: string + Mod: Mods + StatDescription: string @file(ext: ".csd") } type KeywordPopups { @@ -3046,6 +3766,40 @@ type KiracLevels { MapCompletion: i32 } +type LeaderboardMapDevice { + Doodad: HideoutDoodads + Leaderboard: string + Counter: string + TrackerPin: string + Icon: string + IconHover: string + IconGlow: string + Tracker: string + _: i32 + _: i32 + _: i32 + _: i32 + _: i32 + _: i32 + _: i32 +} + +type LeaderboardMapDeviceLabel { + MapDevice: LeaderboardMapDevice + _: i32 + _: i32 + _: i32 + _: i32 + _: i32 + Text: ClientStrings2 + ClientString: ClientStrings + _: i32 + _: i32 + _: i32 + _: i32 + _: i32 +} + type LeagueFlag { Id: string @unique Image: string @@ -3053,7 +3807,6 @@ type LeagueFlag { IsSSF: bool Banner: string IsRuthless: bool - FlagArt: string BannerArt: string LogoArt: string } @@ -3078,6 +3831,8 @@ type LeagueStaticRewards { _: i32 _: rid _: rid + _: [rid] + _: [i32] } # Added 0.1 @@ -3109,12 +3864,37 @@ type LegionRanks { _: i32 } +type LiquidEmotionOutcomes { + BaseItemType: BaseItemTypes + RadiusJewel: i32 + RubyPrefix: Mods + RubySuffix: Mods + SapphirePrefix: Mods + SapphireSuffix: Mods + EmeraldPrefix: Mods + EmeraldSuffix: Mods + DiamondPrefix: Mods + DiamondSuffix: Mods + HASH32: u32 +} + +type LoggedTriggerStats { + Stat: Stats +} + type LoginAreas { Id: string WorldArea: WorldAreas Environment: Environments } +type LoreweaveExchangeLayout { + Id: string + _: f32 + _: f32 + _: f32 +} + type MapAmbushVariations { Id: i32 Stat: Stats @unique @@ -3127,6 +3907,20 @@ type MapAmbushVariations { _: f32 } +type MapConditions { + Id: string + Area: WorldAreas + RequiredStats: [Stats] + IgnoreStats: [Stats] + RequiredTag: [Tags] + IgnoreTag: [Tags] + MinLevel: i32 + MaxLevel: i32 + TagStats: [Stats] + Tags: [Tags] + _: i32 +} + # Added 0.1 type MapConnections { MapPinsKey0: MapPins @@ -3194,6 +3988,12 @@ type MapFragmentMods { _: bool } +type MapInhabitants { + StatsKey: Stats + MonsterPacksKeys: [MonsterPacks] + BossMonsters: [MonsterVarieties] +} + type MapPins { Id: string @unique WorldArea: WorldAreas @@ -3215,6 +4015,7 @@ type MapPins { _: i32 _: i32 _: bool + _: i32 } type Maps @tags(list: ["item:def", "item:recipe"]) { @@ -3340,6 +4141,7 @@ type MicrotransactionCategory { _: i32 _: i32 ShopTag: ShopTag + Description: string } type MicrotransactionChargeVariations { @@ -3430,6 +4232,7 @@ type MicrotransactionSlot { SlotName: string FrameArt: string _: i32 + _: string } type MicrotransactionSlotFromShapeShiftForm { @@ -3500,6 +4303,7 @@ type MinionType { _: bool _: rid _: bool + _: bool } type MiniQuestStates { @@ -3612,6 +4416,7 @@ type ModEffectStats { _: bool _: i32 _: bool + MaxStacks: i32 } type ModGrantedSkills { @@ -3731,6 +4536,23 @@ type MonsterCategories { _: i32 } +type MonsterConditions { + Id: string + Rarity: Rarity + Stat: Stats + NotRarity: Rarity + NotStat: [Stats] + MapBoss: bool + NotMapBoss: bool + Tags: [Tags] + NotTags: [Tags] + _: i32 + MinimumLevel: i32 + MaximumLevel: i32 + HASH32: u32 + BuffDefinition: BuffDefinitions +} + # Added 0.1 type MonsterDeathAchievements { Id: string @unique @@ -3803,6 +4625,7 @@ type MonsterPacks { AdditionalMonsters: [MonsterVarieties] AdditionalCounts: [i32] _: bool + _: rid # All rows empty } @@ -4014,6 +4837,10 @@ type MonsterVarieties { _: rid _: bool _: [i32] + _: [_] # All rows empty + _: [i32] + _: [_] # All rows empty + _: string } @@ -4054,6 +4881,21 @@ type MoveDaemon { _: f32 _: i32 _: bool + _: f32 + _: i32 + _: bool +} + +type MtxPreviewCameras { + Id: string + _: f32 + _: f32 + _: f32 + _: f32 + _: f32 + _: f32 + _: f32 + _: f32 } type MtxTypeGameSpecific { @@ -4084,8 +4926,8 @@ type NPCAudio { Audio: [string] @file(ext: ".ogg") _: [i32] VolumePercentage: i32 - QuestFlag1: QuestFlags - QuestFlag2: QuestFlags + QuestFlag1: [QuestFlags] + QuestFlag2: [QuestFlags] _: [i32] _: [i32] } @@ -4162,6 +5004,7 @@ type NPCFollowerVariations { _: i32 _: string _: rid # All rows empty + _: i32 } type NPCMaster { @@ -4261,10 +5104,10 @@ type NPCTalk { _: [QuestFlags] _: [QuestFlags] Script: string - TextAudio: NPCTextAudio + QuestFlags1: [QuestFlags] Category: NPCTalkCategory QuestRewardOffersKey: QuestRewardOffers - QuestFlag: QuestFlags + QuestFlag2: QuestFlags NPCTextAudioKeys: [NPCTextAudio] Script2: string _: bool @@ -4273,7 +5116,7 @@ type NPCTalk { _: [i32] _: i32 _: [i32] - _: i32 + _: [i32] _: bool BaseItemTypes: BaseItemTypes _: [i32] @@ -4282,15 +5125,25 @@ type NPCTalk { ConsoleQuickAction: NPCTalkConsoleQuickActions Music1: Music _: i32 - _: [_] # All rows empty + _: [rid] _: i32 Music2: Music _: i32 - QuestFlag2: QuestFlags + QuestFlag3: QuestFlags _: bool _: i32 _: NPCTalk TalkDialogue: [NPCTalkDialogue] + _: bool + Ascendancy: [Ascendancy] + _: bool +} + +type NPCTalkCategory { + Id: string + _: bool + _: bool + _: bool } # Added 0.1 @@ -4333,8 +5186,8 @@ type NPCTalkDialogueTextAudio { QuestFlag1: [QuestFlags] QuestFlag2: [QuestFlags] QuestFlag3: [QuestFlags] - QuestFlag4: [QuestFlags] - QuestFlag5: [QuestFlags] + QuestFlag4: [i32] + QuestFlag5: [i32] Video: NPCTalkVideo Script: string } @@ -4397,6 +5250,11 @@ type OngoingTriggerVariations { Stats: [Stats] } +type Origin { + Id: string + Format: string +} + type PackFormation { Id: string _: i32 @@ -4477,6 +5335,17 @@ type PassiveJewelSlots { _: bool } +type PassiveJewelTransformations { + Stat: Stats + _: i32 + BaseStat: Stats + TransformedStat: Stats +} + +type PassiveJewelTransformationTypes { + Stat: Stats +} + type PassiveJewelUniqueArt { Id: i32 Name: Words @unique @@ -4513,6 +5382,7 @@ type PassiveSkillFilterOptions { _: bool _: bool _: bool + KeywordPopup: KeywordPopups } type PassiveSkillMasteryEffects { @@ -4602,17 +5472,17 @@ type PassiveSkills { _: bool _: i32 _: bool - _: rid - _: i32 - _: i32 + BrequelTree: BrequelPassiveSubTrees _: i32 + _: bool + StatValue6: i32 + StatValue7: i32 _: i32 _: i32 - _: bool _: rid _: i32 - _: rid - _: rid + QuestFlag: QuestFlags + Requirement: ClientStrings } @@ -4668,6 +5538,7 @@ type PassiveSkillTrees { _: f32 _: f32 _: f32 + _: bool } type PassiveSkillTreeUIArt { @@ -4689,6 +5560,31 @@ type PassiveSkillTreeUIArt { MultipleChoiceFrame: PassiveSkillTreeNodeFrameArt } +type PassiveSkillVariants { + Type: PassiveSkillVariantTypes + Variant: PassiveSkills +} + +type PassiveSkillVariantTypes { + Id: string + _: bool + _: bool +} + +type PassiveTreeDecorators { + Id: string + BackgroundArt: string + BlockedArt: string + Description: string + _: i32 + _: i32 + _: f32 + _: f32 + _: f32 + SkillTree: PassiveSkillTrees + _: f32 +} + # Added 0.1 type Pet { Id: string @unique @@ -4799,6 +5695,13 @@ type Quest { QuestFlag: [QuestFlags] } +type QuestFlagVisuals { + QuestFlag: QuestFlags + Ascendancy: Ascendancy + _: i32 + ItemVisualIdentity: ItemVisualIdentity +} + type QuestItemNPCAudio { QuestItem: QuestItems NPCAudio1: NPCTextAudio @@ -4925,6 +5828,7 @@ type QuestStaticRewards { Message: ClientStrings _: i32 _: bool + Achievement: QuestAchievements } # Added 0.1 @@ -4978,6 +5882,18 @@ type ResistancePenaltyPerAreaLevel { Penalty: i32 } +type RitualAtlasLineMods { + Mod: Mods + Weighting: i32 + ConditionStat: Stats + Mod2: Mods +} + +type RitualAtlasLineQuestMaps { + Map: EndgameMapAtlas + _: bool +} + type RitualBalancePerLevel { MinLevel: i32 _: i32 @@ -4995,6 +5911,7 @@ type RitualBalancePerLevel { _: i32 _: i32 _: i32 + _: i32 } type RitualRuneTypes { @@ -5022,6 +5939,8 @@ type RitualRuneTypes { _: i32 _: i32 _: i32 + EnableStat: Stats + ChanceStat: Stats } type RitualStashTabLayout { @@ -5034,7 +5953,7 @@ type RitualStashTabLayout { Height: i32 ShowIfEmpty: bool SlotSize: i32 - SlotIcon: DynamicStashSlots + SlotStyle: StashTabInventorySlotStyle MiniIcon: string # mini icon in top left corner } @@ -5056,13 +5975,20 @@ type RogueExiles { _: rid # All rows empty _: rid # All rows empty _: rid # All rows empty - _: [i32] AudioCharacter: AudioCharacterClass _: rid # All rows empty _: rid # All rows empty _: rid # All rows empty _: rid # All rows empty Name: Words + SpawnChanceStats: [Stats] + _: i32 + VariationStat1: [Stats] + VariationStat2: [Stats] + _: [_] # All rows empty + _: [_] # All rows empty + _: rid # All rows empty + _: i32 } type Rulesets { @@ -5070,6 +5996,8 @@ type Rulesets { _: [Rulesets] _: bool _: bool + _: [_] # All rows empty + _: string } type SanctumBalancePerLevel { @@ -5122,6 +6050,30 @@ type Scarabs { BaseItemType: BaseItemTypes @unique } +type SentinelPassiveTypes { + Id: string + DefaultIcon: string + ActiveIcon: string + _: rid # All rows empty + _: i32 +} + +type SentinelStorageLayout { + Id: string + StoredItem: BaseItemTypes + _: rid # All rows empty + _: bool + TabIcon: string + XOffset: i32 + YOffset: i32 + _: i32 + _: i32 + Width: i32 + Height: i32 + SlotSize: i32 + _: ItemClasses +} + type ShapeShiftArtVariations { Id: ShapeShiftForms VariationId: i32 @@ -5269,6 +6221,9 @@ type Shrines { _: rid # All rows empty MapSpawnChanceStat: Stats MapShrineEffectStat: Stats + ElementalShrineChanceStat: Stats + EnableStat: [Stats] + BossBuffTemplate: BuffTemplates } type ShrineVarieties { @@ -5371,9 +6326,9 @@ type SkillGems @tags(list: ["item:def"]) { _: bool SearchTerms: [SkillGemSearchTerms] Tier: i32 - GroundEffect: [GroundEffects] + GroundEffect: [i32] _: [_] # All rows empty - _: SkillGems + BaseSkillGem: SkillGems _: bool _: bool _: bool @@ -5396,6 +6351,20 @@ type SkillGemSupports { Supports: [SkillGems] } +type SkillMorphDisplay { + Skill: ActiveSkills + BuffDefinitions: [BuffDefinitions] + DDSFiles: [string] @file(ext: ".dds") + _: i32 + Overlay: [string] + _: i32 + _: [f32] + _: bool + _: bool + ActiveSkill: ActiveSkills + _: bool +} + # Added 0.1 type SkillSurgeEffects { Id: string @unique @@ -5474,7 +6443,16 @@ type SocketableStashTabLayout { Height: i32 ShowIfEmpty: bool SlotSize: i32 - SlotIcon: DynamicStashSlots + SlotStyle: StashTabInventorySlotStyle + SubGroup: SocketableStashTabSubGroup +} + +type SocketableStashTabSubGroup { + Id: string + Name: string + Icon: string + PageArt: string + FirstPage: bool } # Added 0.3 @@ -5492,12 +6470,12 @@ type SoulCores { Limit: SoulCoreLimits Description: ClientStrings2 Type: SoulCoreTypes - _: SoulCores + TierHigher: SoulCores _: bool _: bool _: bool _: bool - _: rid + ExtraDescription: ClientStrings2 _: bool } @@ -5528,6 +6506,14 @@ type SoulCoreTypes { SocketedStat: Stats } +type StandaloneBosses { + Monster: MonsterVarieties + _: i32 + _: bool + InvisibleMonster: [MonsterVarieties] + _: [i32] +} + enum StashId @indexing(first: 0) { NORMAL PREMIUM @@ -5567,6 +6553,17 @@ type StashTabAffinityId { Id: string @unique } +type StashTabInventorySlotStyle { + Id: string + BackgroundArt: string + _: i32 + _: i32 + _: i32 + _: i32 + _: i32 + _: i32 +} + type StashType { Id: string @unique StashId: StashId @@ -5619,6 +6616,8 @@ type StatisticTrackingMicrotransactionsStatistics { Description: ClientStrings2 CounterType: StatisticTrackingMicrotransactionCounterType _: i32 + _: i32 + _: bool } type Stats @tags(list: ["crafting"]) { @@ -5817,6 +6816,7 @@ type Topologies { _: [i32] _: [i32] _: i32 + _: i32 } @@ -5851,6 +6851,10 @@ type TormentSpirits { _: i32 _: i32 _: [i32] + MapChanceStat: Stats + MapEnabledStat: [Stats] + ChestMod: Mods + MiscBeam: MiscBeams } type TotemDefenderVarieties { @@ -5909,6 +6913,14 @@ type TriggerBeam { _: bool } +type TriggerStats { + Stat: Stats + _: bool + _: bool + _: bool + _: bool +} + type Tutorial { Id: string @unique UIFile: string @file(ext: ".ui") @@ -6019,6 +7031,7 @@ type UniqueChests { _: i32 _: i32 _: bool + RequiredMapStat: Stats } type UniqueGoldPrices { @@ -6039,6 +7052,11 @@ type UniqueMapSkillBooks { _: i32 } +type UniqueOrigins { + Unique: Words + Origin: Origin +} + type UtilityFlaskBuffs { BuffDefinition: BuffDefinitions StatValues: [i32] @@ -6177,6 +7195,7 @@ type WorldAreaLeagueChances { _: i32 # StrongboxChance? StoneCirclesChance: i32 VaalTempleChance: i32 # Fate of the Vaal league + ExpeditionChance: i32 } type WorldAreas { @@ -6258,6 +7277,10 @@ type WorldAreas { _: i32 _: i32 _: bool + _: [rid] + _: [i32] + _: [_] # All rows empty + _: [i32] } @@ -6290,6 +7313,7 @@ type WorldMapQuickTravelButtons { ButtonArt: string ButtonHoverArt: string _: bool + EndgameArea: WorldAreas } type WorldPopupIconTypes {