data

package
v1.5.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 16, 2026 License: GPL-3.0 Imports: 4 Imported by: 0

Documentation

Overview

Code generated by scripts/parse_presets.go — DO NOT EDIT.

Index

Constants

View Source
const (
	CanMountBitDLCHandToHandArts  uint8 = 36
	CanMountBitDLCThrowingBlades  uint8 = 37
	CanMountBitDLCPerfumeBottles  uint8 = 38
	CanMountBitDLCBeastClaws      uint8 = 39
	CanMountBitDLCBackhandBlades  uint8 = 40
	CanMountBitDLCGreatKatanas    uint8 = 41
	CanMountBitDLCLightGreatsword uint8 = 42
	CanMountBitDLCThrustingShield uint8 = 43
)
View Source
const (
	// BSTBlockSize is the number of bytes per BST block (1000 flags / 8 = 125 bytes).
	BSTBlockSize = 125
	// BSTFlagDivisor is the number of flags per BST block.
	BSTFlagDivisor = 1000
)
View Source
const (
	CrackedPotKeyItemID      uint32 = 0x4000251C
	RitualPotKeyItemID       uint32 = 0x4000251D
	PerfumeBottleKeyItemID   uint32 = 0x40002526
	HeftyCrackedPotKeyItemID uint32 = 0x401EA99C
)

Container key item IDs.

View Source
const (
	ItemSpectralSteedWhistle = uint32(0x40000082)

	// Multiplayer pickup items (tools, SubcatToolsMultiplayer).
	ItemSmallGoldenEffigy    = uint32(0x4000006D)
	ItemDuelistsFurledFinger = uint32(0x40000065)
	ItemSmallRedEffigy       = uint32(0x4000006E)
	ItemWhiteCipherRing      = uint32(0x40000068)
	ItemBlueCipherRing       = uint32(0x40000069)
)

Item IDs with companion flags.

View Source
const (
	// EventFlagObtainedSpectralSteedWhistle unlocks Torrent. Without this flag
	// the game refuses to summon Torrent even when the whistle is in inventory.
	EventFlagObtainedSpectralSteedWhistle = uint32(60100)

	// EventFlagMelinaGaveWhistle marks the Melina quest-give step as complete.
	// Prevents the "accept Torrent?" dialogue from re-triggering at graces.
	EventFlagMelinaGaveWhistle = uint32(4680)

	// EventFlagWhistleWorldState is the map/world counterpart set simultaneously
	// with 60100 during the in-game event.
	EventFlagWhistleWorldState = uint32(710520)

	// EventFlagMelinaAcceptRefusePopup marks the accept/refuse popup as shown.
	// Set as prerequisite before the give step in the Melina quest chain.
	EventFlagMelinaAcceptRefusePopup = uint32(4681)
)

EventFlag IDs for Spectral Steed Whistle companion set.

View Source
const (
	// EventFlagObtainedSmallGoldenEffigy marks the item as obtained.
	// Without it the pickup/interact state at Effigies of the Martyr can remain
	// visible even when the item is already in inventory.
	EventFlagObtainedSmallGoldenEffigy = uint32(60230)

	// EventFlagObtainedDuelistsFurledFinger marks the item as obtained.
	// Without it the pickup/interact state can remain visible in the world.
	EventFlagObtainedDuelistsFurledFinger = uint32(60240)

	// EventFlagObtainedSmallRedEffigy marks the item as obtained.
	// Without it the pickup/interact state at Effigies of the Martyr can remain
	// visible even when the item is already in inventory.
	EventFlagObtainedSmallRedEffigy = uint32(60250)

	// EventFlagObtainedWhiteCipherRing marks the item as obtained / shop sold-out.
	// Source: er-save-manager event_flags_db.py + ShopLineupParam.csv row 101800 eventFlag_forStock.
	EventFlagObtainedWhiteCipherRing = uint32(60280)

	// EventFlagObtainedBlueCipherRing marks the item as obtained / shop sold-out.
	// Absent from er-save-manager db, but confirmed by two independent sources:
	// (1) ShopLineupParam.csv row 101801 eventFlag_forStock=60290 (regulation.bin param data);
	// (2) Steam Deck before/after shop purchase diff: only flag in 60xxx range that changed 0→1.
	// Without it, the Twin Maiden Husks shop continues to offer the item after editor-add.
	EventFlagObtainedBlueCipherRing = uint32(60290)
)

EventFlag IDs for multiplayer pickup item companion sets.

View Source
const (
	SubcatToolsFlasks        = "Flasks"
	SubcatToolsConsumables   = "Consumables"
	SubcatToolsThrowingPots  = "Throwing Pots"
	SubcatToolsPerfumeArts   = "Perfume Arts"
	SubcatToolsThrowables    = "Throwables"
	SubcatToolsCatalystTools = "Catalyst Tools"
	SubcatToolsGrease        = "Grease"
	SubcatToolsReusable      = "Reusable Tools"
	SubcatToolsMisc          = "Miscellaneous Tools"
	SubcatToolsQuest         = "Quest Tools"
	SubcatToolsGoldenRunes   = "Golden Runes"
	SubcatToolsRemembrances  = "Remembrances"
	SubcatToolsMultiplayer   = "Multiplayer Items"
)

Tools (13 sub-groups, in-game order)

View Source
const (
	SubcatBolsteringFlaskEnhancers       = "Flask Enhancers"
	SubcatBolsteringShadowRealmBlessings = "Shadow Realm Blessings"
	SubcatBolsteringSmithingStones       = "Smithing Stones"
	SubcatBolsteringSomberstones         = "Somberstones"
	SubcatBolsteringGraveGlovewort       = "Grave Glovewort"
	SubcatBolsteringGhostGlovewort       = "Ghost Glovewort"
)

Bolstering Materials (6 sub-groups)

View Source
const (
	SubcatKeyActiveGreatRunes  = "Active Great Runes"
	SubcatKeyCrystalTears      = "Crystal Tears"
	SubcatKeyContainers        = "Containers + Slot Upgrades"
	SubcatKeyInactiveRunesKeys = "Inactive Great Runes + Keys + Medallions"
	SubcatKeyDLCKeys           = "DLC Keys"
	SubcatKeyLarvalDeathroot   = "Larval Tears + Deathroot + Lost Ashes of War"
	SubcatKeyCookbooks         = "Cookbooks"
	SubcatKeyWorldMaps         = "World Maps"
	SubcatKeySpellScrolls      = "Sorcery Scrolls + Incantation Scrolls"
)

Key Items (9 sub-groups, in-game order)

View Source
const (
	SubcatMeleeDaggers              = "Daggers"
	SubcatMeleeThrowingBlades       = "Throwing Blades"
	SubcatMeleeStraightSwords       = "Straight Swords"
	SubcatMeleeLightGreatswords     = "Light Greatswords"
	SubcatMeleeGreatswords          = "Greatswords"
	SubcatMeleeColossalSwords       = "Colossal Swords"
	SubcatMeleeThrustingSwords      = "Thrusting Swords"
	SubcatMeleeHeavyThrustingSwords = "Heavy Thrusting Swords"
	SubcatMeleeCurvedSwords         = "Curved Swords"
	SubcatMeleeCurvedGreatswords    = "Curved Greatswords"
	SubcatMeleeBackhandBlades       = "Backhand Blades"
	SubcatMeleeKatanas              = "Katanas"
	SubcatMeleeGreatKatanas         = "Great Katanas"
	SubcatMeleeTwinblades           = "Twinblades"
	SubcatMeleeAxes                 = "Axes"
	SubcatMeleeGreataxes            = "Greataxes"
	SubcatMeleeHammers              = "Hammers"
	SubcatMeleeGreatHammers         = "Great Hammers"
	SubcatMeleeFlails               = "Flails"
	SubcatMeleeSpears               = "Spears"
	SubcatMeleeGreatSpears          = "Great Spears"
	SubcatMeleeHalberds             = "Halberds"
	SubcatMeleeReapers              = "Reapers"
	SubcatMeleeWhips                = "Whips"
	SubcatMeleeFists                = "Fists"
	SubcatMeleeHandToHand           = "Hand-to-Hand"
	SubcatMeleeClaws                = "Claws"
	SubcatMeleeBeastClaws           = "Beast Claws"
	SubcatMeleeColossalWeapons      = "Colossal Weapons"
	SubcatMeleePerfumeBottles       = "Perfume Bottles"
)

Melee Armaments (29 weapon classes — base + DLC interleaved)

View Source
const (
	SubcatRangedBows             = "Bows"
	SubcatRangedLightBows        = "Light Bows"
	SubcatRangedGreatbows        = "Greatbows"
	SubcatRangedCrossbows        = "Crossbows"
	SubcatRangedBallistas        = "Ballistas"
	SubcatRangedGlintstoneStaffs = "Glintstone Staffs"
	SubcatRangedSacredSeals      = "Sacred Seals"
)

Ranged Weapons / Catalysts (7 sub-groups)

View Source
const (
	SubcatArrowsArrows      = "Arrows"
	SubcatArrowsGreatarrows = "Greatarrows"
	SubcatArrowsBolts       = "Bolts"
	SubcatArrowsGreatbolts  = "Greatbolts"
)

Arrows / Bolts (4 sub-groups)

View Source
const (
	SubcatShieldsTorches      = "Torches"
	SubcatShieldsSmall        = "Small Shields"
	SubcatShieldsMedium       = "Medium Shields"
	SubcatShieldsGreatshields = "Greatshields"
	SubcatShieldsThrusting    = "Thrusting Shields"
)

Shields (5 sub-groups, in-game sortGroupId order: Torch=10, Small=20, Medium=30, Great=40, Thrusting=50)

View Source
const (
	SubcatInfoLettersMaps        = "Letters / Maps / Paintings"
	SubcatInfoDLCLettersMaps     = "Letters / Maps / Paintings (DLC)"
	SubcatInfoMechanicsLocations = "Mechanics / Locations Info"
)

Info (3 sub-groups)

View Source
const AoWMenuUnlockedFlag uint32 = 65800

AoWMenuUnlockedFlag is the event flag that enables the "Ashes of War" menu at Sites of Grace. Set when the first whetblade is obtained.

View Source
const DefaultFemalePresetName = "Ciri, the Princess of Cintra (Witcher)"

DefaultFemalePresetName is the appearance preset applied when switching to female body type.

View Source
const DefaultMalePresetName = "Geralt of Rivia, the Witcher"

DefaultMalePresetName is the appearance preset applied when switching to male body type.

View Source
const GatefrontGraceEventFlagID = uint32(0x0001294F) // = 76111

GatefrontGraceEventFlagID is the Site of Grace EventFlag for Gatefront (Limgrave West).

View Source
const GestureEmptySentinel = uint32(0xFFFFFFFE)

GestureEmptySentinel is the value used for empty gesture slots in the save file.

View Source
const StormStompDupFlag uint32 = 65841

StormStompDupFlag is the AoW duplication flag for Storm Stomp.

View Source
const StormStompItemID uint32 = 0x8000C418

StormStompItemID is the inventory item ID for Ash of War: Storm Stomp, found together with the Whetstone Knife at Gatefront Ruins.

View Source
const WhetstoneKnifeFlag uint32 = 60130

WhetstoneKnifeFlag is the event flag for the base Whetstone Knife.

Variables

View Source
var AboutTutorialID = map[uint32]uint32{
	0x40002399: 2010,
}

AboutTutorialID maps "About *" / Note / tutorial-trigger Goods item ID → TutorialParam row ID that the game appends to slot's TutorialData list when the corresponding popup fires.

Mechanism (verified via save diff at slot 5, 2026-04-29):

  • EquipParamGoods.itemGetTutorialFlagId is 0 for About items themselves, non-zero for "trigger" items (e.g. Crafting Kit 8500 → flag 710570).
  • When the game would give an About item, it first checks slot's TutorialData chunk. If the row ID is already in the list → skip the give (= no inventory add → no on-ground duplicate when cap=1).
  • Therefore: pre-populating the list with the tutorial row ID prevents the world copy from spawning when player has the inv copy already.

This map is grown empirically from save diffs. Each entry is one verified "trigger event → tutorial row added" observation. Unverified inferred entries may be added with the comment "(inferred)" — to be confirmed.

EMPTY for now — populate as we test each About item.

First confirmed entry (pending in-game verification):

  • 0x40002399 (About Item Crafting) → 2010 — observed when player bought Crafting Kit at Kalé; ID 2010 was the only new entry appended to the TutorialData list in the save diff.
View Source
var AllGestures = []GestureDef{

	{ID: 1, Name: "Bow", Category: "Greetings", ItemID: 0x40002328},
	{ID: 3, Name: "Polite Bow", Category: "Greetings", ItemID: 0x40002329},
	{ID: 5, Name: "My Thanks", Category: "Greetings", ItemID: 0x4000232A},
	{ID: 7, Name: "Curtsy", Category: "Greetings", ItemID: 0x4000232B},
	{ID: 9, Name: "Reverential Bow", Category: "Greetings", ItemID: 0x4000232C},
	{ID: 11, Name: "My Lord", Category: "Greetings", ItemID: 0x4000232D},
	{ID: 13, Name: "Warm Welcome", Category: "Greetings", ItemID: 0x4000232E},
	{ID: 15, Name: "Wave", Category: "Greetings", ItemID: 0x4000232F},
	{ID: 17, Name: "Casual Greeting", Category: "Greetings", ItemID: 0x40002330},
	{ID: 19, Name: "Strength!", Category: "Greetings", ItemID: 0x40002331},
	{ID: 21, Name: "As You Wish", Category: "Greetings", ItemID: 0x40002332},
	{ID: 229, Name: "Let Us Go Together", Category: "Greetings", ItemID: 0x401EA7AB},

	{ID: 41, Name: "Point Forwards", Category: "Gesturing", ItemID: 0x40002333},
	{ID: 43, Name: "Point Upwards", Category: "Gesturing", ItemID: 0x40002334},
	{ID: 45, Name: "Point Downwards", Category: "Gesturing", ItemID: 0x40002335},
	{ID: 47, Name: "Beckon", Category: "Gesturing", ItemID: 0x40002336},
	{ID: 49, Name: "Wait!", Category: "Gesturing", ItemID: 0x40002337},
	{ID: 51, Name: "Calm Down!", Category: "Gesturing", ItemID: 0x40002338},
	{ID: 61, Name: "Nod In Thought", Category: "Gesturing", ItemID: 0x40002339},
	{ID: 225, Name: "The Two Fingers", Category: "Gesturing", ItemID: 0x401EA7AA},

	{ID: 81, Name: "Extreme Repentance", Category: "Submissive", ItemID: 0x4000233A},
	{ID: 83, Name: "Grovel For Mercy", Category: "Submissive", ItemID: 0x4000233B},

	{ID: 101, Name: "Rallying Cry", Category: "Battle", ItemID: 0x4000233C},
	{ID: 103, Name: "Heartening Cry", Category: "Battle", ItemID: 0x4000233D},
	{ID: 105, Name: "By My Sword", Category: "Battle", ItemID: 0x4000233E},
	{ID: 107, Name: "Hoslow's Oath", Category: "Battle", ItemID: 0x4000233F},
	{ID: 109, Name: "Fire Spur Me", Category: "Battle", ItemID: 0x40002340},
	{ID: 111, Name: "The Carian Oath", Category: "Battle", ItemID: 0x40002341, Flags: []string{"cut_content", "ban_risk"}},
	{ID: 223, Name: "May the Best Win", Category: "Battle", ItemID: 0x401EA7A9},

	{ID: 121, Name: "Bravo!", Category: "Celebration", ItemID: 0x40002342},
	{ID: 141, Name: "Jump for Joy", Category: "Celebration", ItemID: 0x40002343},
	{ID: 143, Name: "Triumphant Delight", Category: "Celebration", ItemID: 0x40002344},
	{ID: 145, Name: "Fancy Spin", Category: "Celebration", ItemID: 0x40002345},
	{ID: 147, Name: "Finger Snap", Category: "Celebration", ItemID: 0x40002346},

	{ID: 161, Name: "Dejection", Category: "Emotion", ItemID: 0x40002347},
	{ID: 197, Name: "What Do You Want?", Category: "Emotion", ItemID: 0x40002350},

	{ID: 181, Name: "Patches' Crouch", Category: "Resting", ItemID: 0x40002348},
	{ID: 183, Name: "Crossed Legs", Category: "Resting", ItemID: 0x40002349},
	{ID: 185, Name: "Rest", Category: "Resting", ItemID: 0x4000234A},
	{ID: 187, Name: "Sitting Sideways", Category: "Resting", ItemID: 0x4000234B},
	{ID: 189, Name: "Dozing Cross-Legged", Category: "Resting", ItemID: 0x4000234C},
	{ID: 191, Name: "Spread Out", Category: "Resting", ItemID: 0x4000234D},
	{ID: 193, Name: "Fetal Position", Category: "Resting", ItemID: 0x4000234E, Flags: []string{"cut_content", "ban_risk"}},
	{ID: 195, Name: "Balled Up", Category: "Resting", ItemID: 0x4000234F},

	{ID: 201, Name: "Prayer", Category: "Prayer", ItemID: 0x40002351},
	{ID: 203, Name: "Desperate Prayer", Category: "Prayer", ItemID: 0x40002352},
	{ID: 205, Name: "Rapture", Category: "Prayer", ItemID: 0x40002353},
	{ID: 207, Name: "Erudition", Category: "Prayer", ItemID: 0x40002355},
	{ID: 209, Name: "Outer Order", Category: "Prayer", ItemID: 0x40002356},
	{ID: 211, Name: "Inner Order", Category: "Prayer", ItemID: 0x40002357},
	{ID: 213, Name: "Golden Order Totality", Category: "Prayer", ItemID: 0x40002358},
	{ID: 231, Name: "O Mother", Category: "Prayer", ItemID: 0x401EA7AC},

	{ID: 217, Name: "The Ring (Pre-Order)", Category: "Special", ItemID: 0x40002359, Flags: []string{"pre_order", "ban_risk"}},
	{ID: 219, Name: "The Ring (Co-op)", Category: "Special", ItemID: 0x4000235A},
	{ID: 221, Name: "?GoodsName?", Category: "Special", ItemID: 0x40002354, Flags: []string{"cut_content", "ban_risk"}},
	{ID: 227, Name: "Ring of Miquella (Pre-Order)", Category: "Special", ItemID: 0x401EA7A8, Flags: []string{"pre_order", "ban_risk"}},
	{ID: 233, Name: "Ring of Miquella", Category: "Special", ItemID: 0x401EA7A8, Flags: []string{"dlc_duplicate", "ban_risk"}},
}

AllGestures is the canonical list of all known gestures (51 base + 6 DLC). Cut-content entries (e.g. "The Carian Oath", "Fetal Position") are kept so existing saves that already contain them can be displayed correctly.

View Source
var AoWCompatMasks = map[uint32]uint64{}/* 242 elements not displayed */

AoWCompatMask maps AoW item ID → 36-bit canMountWep bitmask. Bit N is set iff canMountWep_<col> is 1 in EquipParamGem, where col ordering matches CANMOUNT_NAMES (bit 0 = Dagger, bit 35 = Torch). AoW item ID = EquipParamGem.rowID | 0x80000000.

View Source
var AoWItemToFlagID = map[uint32]uint32{}/* 116 elements not displayed */

AoWItemToFlagID maps AoW inventory item ID → duplication event flag ID. When an AoW item is added to inventory, set the corresponding flag so the AoW appears in the Lost Grace duplication menu.

View Source
var Aows = map[uint32]ItemData{}/* 116 elements not displayed */
View Source
var Arms = map[uint32]ItemData{}/* 122 elements not displayed */
View Source
var ArrowsAndBolts = map[uint32]ItemData{

	0x02FAF080: {Name: "Arrow", Category: "arrows_and_bolts", SubCategory: SubcatArrowsArrows, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/arrow.png", Flags: []string{"stackable"}},
	0x02FB1790: {Name: "Fire Arrow", Category: "arrows_and_bolts", SubCategory: SubcatArrowsArrows, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/fire_arrow.png", Flags: []string{"stackable"}},
	0x02FB3EA0: {Name: "Serpent Arrow", Category: "arrows_and_bolts", SubCategory: SubcatArrowsArrows, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/serpent_arrow.png", Flags: []string{"stackable"}},
	0x02FB65B0: {Name: "Bone Arrow (Fletched)", Category: "arrows_and_bolts", SubCategory: SubcatArrowsArrows, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/bone_arrow_fletched.png", Flags: []string{"stackable"}},
	0x02FB8CC0: {Name: "St. Trina's Arrow", Category: "arrows_and_bolts", SubCategory: SubcatArrowsArrows, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/st_trinas_arrow.png", Flags: []string{"stackable"}},
	0x02FBDAE0: {Name: "Shattershard Arrow (Fletched)", Category: "arrows_and_bolts", SubCategory: SubcatArrowsArrows, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/shattershard_arrow_fletched.png", Flags: []string{"stackable"}},
	0x02FC2900: {Name: "Rainbow Stone Arrow (Fletched)", Category: "arrows_and_bolts", SubCategory: SubcatArrowsArrows, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/rainbow_stone_arrow_fletched.png", Flags: []string{"stackable"}},
	0x02FC5010: {Name: "Golden Arrow", Category: "arrows_and_bolts", SubCategory: SubcatArrowsArrows, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/golden_arrow.png", Flags: []string{"stackable"}},
	0x02FC7720: {Name: "Dwelling Arrow", Category: "arrows_and_bolts", SubCategory: SubcatArrowsArrows, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/dwelling_arrow.png", Flags: []string{"stackable"}},
	0x02FC9E30: {Name: "Bone Arrow", Category: "arrows_and_bolts", SubCategory: SubcatArrowsArrows, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/bone_arrow.png", Flags: []string{"stackable"}},
	0x02FCEC50: {Name: "Firebone Arrow (Fletched)", Category: "arrows_and_bolts", SubCategory: SubcatArrowsArrows, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/firebone_arrow_fletched.png", Flags: []string{"stackable"}},
	0x02FD1360: {Name: "Firebone Arrow", Category: "arrows_and_bolts", SubCategory: SubcatArrowsArrows, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/firebone_arrow.png", Flags: []string{"stackable"}},
	0x02FD3A70: {Name: "Poisonbone Arrow (Fletched)", Category: "arrows_and_bolts", SubCategory: SubcatArrowsArrows, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/poisonbone_arrow_fletched.png", Flags: []string{"stackable"}},
	0x02FD6180: {Name: "Poisonbone Arrow", Category: "arrows_and_bolts", SubCategory: SubcatArrowsArrows, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/poisonbone_arrow.png", Flags: []string{"stackable"}},
	0x02FD8890: {Name: "Sleepbone Arrow (Fletched)", Category: "arrows_and_bolts", SubCategory: SubcatArrowsArrows, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/sleepbone_arrow_fletched.png", Flags: []string{"stackable"}},
	0x02FDAFA0: {Name: "Sleepbone Arrow", Category: "arrows_and_bolts", SubCategory: SubcatArrowsArrows, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/sleepbone_arrow.png", Flags: []string{"stackable"}},
	0x02FDD6B0: {Name: "Stormwing Bone Arrow", Category: "arrows_and_bolts", SubCategory: SubcatArrowsArrows, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/stormwing_bone_arrow.png", Flags: []string{"stackable"}},
	0x02FDFDC0: {Name: "Lightningbone Arrow (Fletched)", Category: "arrows_and_bolts", SubCategory: SubcatArrowsArrows, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/lightningbone_arrow_fletched.png", Flags: []string{"stackable"}},
	0x02FE24D0: {Name: "Lightningbone Arrow", Category: "arrows_and_bolts", SubCategory: SubcatArrowsArrows, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/lightningbone_arrow.png", Flags: []string{"stackable"}},
	0x02FE4BE0: {Name: "Rainbow Stone Arrow", Category: "arrows_and_bolts", SubCategory: SubcatArrowsArrows, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/rainbow_stone_arrow.png", Flags: []string{"stackable"}},
	0x02FE72F0: {Name: "Shattershard Arrow", Category: "arrows_and_bolts", SubCategory: SubcatArrowsArrows, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/shattershard_arrow.png", Flags: []string{"stackable"}},
	0x02FE9A00: {Name: "Spiritflame Arrow", Category: "arrows_and_bolts", SubCategory: SubcatArrowsArrows, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/spiritflame_arrow.png", Flags: []string{"stackable"}},
	0x02FEE820: {Name: "Magicbone Arrow (Fletched)", Category: "arrows_and_bolts", SubCategory: SubcatArrowsArrows, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/magicbone_arrow_fletched.png", Flags: []string{"stackable"}},
	0x02FF0F30: {Name: "Magicbone Arrow", Category: "arrows_and_bolts", SubCategory: SubcatArrowsArrows, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/magicbone_arrow.png", Flags: []string{"stackable"}},
	0x02FF3640: {Name: "Haligbone Arrow (Fletched)", Category: "arrows_and_bolts", SubCategory: SubcatArrowsArrows, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/haligbone_arrow_fletched.png", Flags: []string{"stackable"}},
	0x02FF5D50: {Name: "Haligbone Arrow", Category: "arrows_and_bolts", SubCategory: SubcatArrowsArrows, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/haligbone_arrow.png", Flags: []string{"stackable"}},
	0x02FF8460: {Name: "Bloodbone Arrow (Fletched)", Category: "arrows_and_bolts", SubCategory: SubcatArrowsArrows, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/bloodbone_arrow_fletched.png", Flags: []string{"stackable"}},
	0x02FFAB70: {Name: "Bloodbone Arrow", Category: "arrows_and_bolts", SubCategory: SubcatArrowsArrows, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/bloodbone_arrow.png", Flags: []string{"stackable"}},
	0x02FFD280: {Name: "Coldbone Arrow (Fletched)", Category: "arrows_and_bolts", SubCategory: SubcatArrowsArrows, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/coldbone_arrow_fletched.png", Flags: []string{"stackable"}},
	0x02FFF990: {Name: "Coldbone Arrow", Category: "arrows_and_bolts", SubCategory: SubcatArrowsArrows, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/coldbone_arrow.png", Flags: []string{"stackable"}},
	0x030020A0: {Name: "Rotbone Arrow (Fletched)", Category: "arrows_and_bolts", SubCategory: SubcatArrowsArrows, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/rotbone_arrow_fletched.png", Flags: []string{"stackable"}},
	0x030047B0: {Name: "Rotbone Arrow", Category: "arrows_and_bolts", SubCategory: SubcatArrowsArrows, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/rotbone_arrow.png", Flags: []string{"stackable"}},
	0x03032DE0: {Name: "Piquebone Arrow (Fletched)", Category: "arrows_and_bolts", SubCategory: SubcatArrowsArrows, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/piquebone_arrow_fletched.png", Flags: []string{"dlc", "stackable"}},
	0x030354F0: {Name: "Piquebone Arrow", Category: "arrows_and_bolts", SubCategory: SubcatArrowsArrows, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/piquebone_arrow.png", Flags: []string{"dlc", "stackable"}},

	0x030A32C0: {Name: "Great Arrow", Category: "arrows_and_bolts", SubCategory: SubcatArrowsGreatarrows, MaxInventory: 30, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/great_arrow.png", Flags: []string{"stackable"}},
	0x030A59D0: {Name: "Golem's Great Arrow", Category: "arrows_and_bolts", SubCategory: SubcatArrowsGreatarrows, MaxInventory: 30, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/golems_great_arrow.png", Flags: []string{"stackable"}},
	0x030A80E0: {Name: "Golden Great Arrow", Category: "arrows_and_bolts", SubCategory: SubcatArrowsGreatarrows, MaxInventory: 30, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/golden_great_arrow.png", Flags: []string{"stackable"}},
	0x030AA7F0: {Name: "Golem's Magic Arrow", Category: "arrows_and_bolts", SubCategory: SubcatArrowsGreatarrows, MaxInventory: 30, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/golems_magic_arrow.png", Flags: []string{"stackable"}},
	0x030ACF00: {Name: "Radahn's Spear", Category: "arrows_and_bolts", SubCategory: SubcatArrowsGreatarrows, MaxInventory: 30, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/radahns_spear.png", Flags: []string{"stackable"}},
	0x030AF610: {Name: "Bone Great Arrow (Fletched)", Category: "arrows_and_bolts", SubCategory: SubcatArrowsGreatarrows, MaxInventory: 30, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/bone_great_arrow_fletched.png", Flags: []string{"stackable"}},
	0x030B1D20: {Name: "Bone Great Arrow", Category: "arrows_and_bolts", SubCategory: SubcatArrowsGreatarrows, MaxInventory: 30, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/bone_great_arrow.png", Flags: []string{"stackable"}},

	0x0311D3E0: {Name: "Igon's Harpoon", Category: "arrows_and_bolts", SubCategory: SubcatArrowsGreatbolts, MaxInventory: 30, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/igons_harpoon.png", Flags: []string{"dlc", "stackable"}},
	0x03197500: {Name: "Bolt", Category: "arrows_and_bolts", SubCategory: SubcatArrowsBolts, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/bolt.png", Flags: []string{"stackable"}},
	0x03199C10: {Name: "Lightning Bolt", Category: "arrows_and_bolts", SubCategory: SubcatArrowsBolts, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/lightning_bolt.png", Flags: []string{"stackable"}},
	0x0319C320: {Name: "Perfumer's Bolt", Category: "arrows_and_bolts", SubCategory: SubcatArrowsBolts, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/perfumers_bolt.png", Flags: []string{"stackable"}},
	0x0319EA30: {Name: "Black-Key Bolt", Category: "arrows_and_bolts", SubCategory: SubcatArrowsBolts, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/black_key_bolt.png", Flags: []string{"stackable"}},
	0x031A1140: {Name: "Burred Bolt", Category: "arrows_and_bolts", SubCategory: SubcatArrowsBolts, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/burred_bolt.png", Flags: []string{"stackable"}},
	0x031A3850: {Name: "Meteor Bolt", Category: "arrows_and_bolts", SubCategory: SubcatArrowsBolts, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/meteor_bolt.png", Flags: []string{"stackable"}},
	0x031A5F60: {Name: "Explosive Bolt", Category: "arrows_and_bolts", SubCategory: SubcatArrowsBolts, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/explosive_bolt.png", Flags: []string{"stackable"}},
	0x031A8670: {Name: "Golden Bolt", Category: "arrows_and_bolts", SubCategory: SubcatArrowsBolts, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/golden_bolt.png", Flags: []string{"stackable"}},
	0x031AAD80: {Name: "Lordsworn's Bolt", Category: "arrows_and_bolts", SubCategory: SubcatArrowsBolts, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/lordsworns_bolt.png", Flags: []string{"stackable"}},
	0x031AD490: {Name: "Bone Bolt", Category: "arrows_and_bolts", SubCategory: SubcatArrowsBolts, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/bone_bolt.png", Flags: []string{"stackable"}},
	0x031AFBA0: {Name: "Firebone Bolt", Category: "arrows_and_bolts", SubCategory: SubcatArrowsBolts, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/firebone_bolt.png", Flags: []string{"stackable"}},
	0x031B22B0: {Name: "Lightningbone Bolt", Category: "arrows_and_bolts", SubCategory: SubcatArrowsBolts, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/lightningbone_bolt.png", Flags: []string{"stackable"}},
	0x031B49C0: {Name: "Magicbone Bolt", Category: "arrows_and_bolts", SubCategory: SubcatArrowsBolts, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/magicbone_bolt.png", Flags: []string{"stackable"}},
	0x031B70D0: {Name: "Haligbone Bolt", Category: "arrows_and_bolts", SubCategory: SubcatArrowsBolts, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/haligbone_bolt.png", Flags: []string{"stackable"}},
	0x031B97E0: {Name: "Poisonbone Bolt", Category: "arrows_and_bolts", SubCategory: SubcatArrowsBolts, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/poisonbone_bolt.png", Flags: []string{"stackable"}},
	0x031BBEF0: {Name: "Bloodbone Bolt", Category: "arrows_and_bolts", SubCategory: SubcatArrowsBolts, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/bloodbone_bolt.png", Flags: []string{"stackable"}},
	0x031BE600: {Name: "Coldbone Bolt", Category: "arrows_and_bolts", SubCategory: SubcatArrowsBolts, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/coldbone_bolt.png", Flags: []string{"stackable"}},
	0x031C0D10: {Name: "Rotbone Bolt", Category: "arrows_and_bolts", SubCategory: SubcatArrowsBolts, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/rotbone_bolt.png", Flags: []string{"stackable"}},
	0x031C3420: {Name: "Sleepbone Bolt", Category: "arrows_and_bolts", SubCategory: SubcatArrowsBolts, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/sleepbone_bolt.png", Flags: []string{"stackable"}},
	0x031C5B30: {Name: "Flaming Bolt", Category: "arrows_and_bolts", SubCategory: SubcatArrowsBolts, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/flaming_bolt.png", Flags: []string{"stackable"}},
	0x03216440: {Name: "Piquebone Bolt", Category: "arrows_and_bolts", SubCategory: SubcatArrowsBolts, MaxInventory: 99, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/piquebone_bolt.png", Flags: []string{"dlc", "stackable"}},

	0x0328B740: {Name: "Ballista Bolt", Category: "arrows_and_bolts", SubCategory: SubcatArrowsGreatbolts, MaxInventory: 20, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/ballista_bolt.png", Flags: []string{"stackable"}},
	0x0328DE50: {Name: "Lightning Greatbolt", Category: "arrows_and_bolts", SubCategory: SubcatArrowsGreatbolts, MaxInventory: 20, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/lightning_greatbolt.png", Flags: []string{"stackable"}},
	0x03290560: {Name: "Explosive Greatbolt", Category: "arrows_and_bolts", SubCategory: SubcatArrowsGreatbolts, MaxInventory: 20, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/explosive_greatbolt.png", Flags: []string{"stackable"}},
	0x03292C70: {Name: "Bone Ballista Bolt", Category: "arrows_and_bolts", SubCategory: SubcatArrowsGreatbolts, MaxInventory: 20, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/bone_ballista_bolt.png", Flags: []string{"stackable"}},
	0x03305860: {Name: "Rabbath's Greatbolt", Category: "arrows_and_bolts", SubCategory: SubcatArrowsGreatbolts, MaxInventory: 20, MaxStorage: 600, MaxUpgrade: 0, IconPath: "items/arrows_and_bolts/rabbaths_greatbolt.png", Flags: []string{"dlc", "stackable"}},
}

ArrowsAndBolts — projectile ammunition for ranged weapons. 1:1 with in-game "Arrows / Bolts" tab.

Sub-groups (in-game order):

  1. Arrows — short-bow / long-bow / light-bow ammunition
  2. Greatarrows — greatbow ammunition (incl. Radahn's Spear)
  3. Bolts — crossbow ammunition
  4. Greatbolts — ballista ammunition (incl. Igon's Harpoon)
View Source
var BellBearingFlagToItemID = func() map[uint32]uint32 {
	out := make(map[uint32]uint32, len(BellBearingItemToFlagID))
	for itemID, flagID := range BellBearingItemToFlagID {
		out[flagID] = itemID
	}
	return out
}()

BellBearingFlagToItemID is the reverse of BellBearingItemToFlagID. Used by World → Unlocks toggle to add/remove the corresponding key item from inventory when the acquisition flag is flipped.

View Source
var BellBearingItemToFlagID = map[uint32]uint32{
	0x400022CE: 11109710,
	0x400022CF: 11109711,
	0x400022D0: 11109712,
	0x400022D1: 11109713,
	0x400022D3: 11109715,
	0x400022D4: 11109716,
	0x400022D5: 11109717,
	0x400022D6: 11109718,
	0x400022D7: 11109719,
	0x400022D8: 11109720,
	0x400022D9: 11109721,
	0x400022DA: 11109722,
	0x400022DB: 11109723,
	0x400022DC: 11109724,
	0x400022DD: 11109725,
	0x400022DE: 11109726,
	0x400022DF: 11109727,
	0x400022E0: 11109728,
	0x400022E1: 11109729,
	0x400022E2: 11109730,
	0x400022E3: 11109731,
	0x400022E4: 11109732,
	0x400022E5: 11109733,
	0x400022E7: 11109735,
	0x400022E8: 11109736,
	0x400022E9: 11109737,
	0x400022EA: 11109738,
	0x400022EB: 11109739,
	0x400022EC: 11109740,
	0x400022ED: 11109741,
	0x400022EE: 11109742,
	0x400022EF: 11109743,
	0x400022F0: 11109744,
	0x400022F1: 11109745,
	0x400022F2: 11109746,
	0x400022F3: 11109747,
	0x400022F4: 11109748,
	0x400022F7: 11109751,
	0x400022F8: 11109752,
	0x400022F9: 11109753,
	0x400022FA: 11109754,
	0x400022FB: 11109755,
	0x400022FC: 11109756,
	0x400022FD: 11109757,
	0x400022FE: 11109758,
	0x400022FF: 11109759,
	0x40002300: 11109760,
	0x40002301: 11109761,
	0x40002302: 11109762,
	0x40002303: 11109763,
	0x40002304: 11109764,
	0x40002305: 11109765,
	0x401EA744: 11109790,
	0x401EA745: 11109791,
	0x401EA746: 11109792,
	0x401EA747: 11109793,
	0x401EA748: 11109794,
	0x401EA749: 11109795,
	0x401EA74A: 11109796,
	0x401EA74B: 11109797,
	0x401EA74C: 11109798,
	0x401EA74D: 11109799,
}

BellBearingItemToFlagID maps Bell Bearing inventory item ID → acquisition event flag ID. When a BB is added to inventory via the editor, set this flag so Twin Maiden Husks recognise the BB as legitimately turned in (expands their wares). Flag IDs come from BellBearings (er-save-manager event_flags_db.py). 59 entries matched by exact name; 3 by manual alias (Kale, Spell-Machinist, String-seller). Cut-content item Nomadic [11] (0x400022E6, flagged ban_risk) is intentionally excluded.

View Source
var BellBearings = map[uint32]BellBearingData{

	11109710: {Name: "Pidia's Bell Bearing", Category: "npc"},
	11109711: {Name: "Seluvis's Bell Bearing", Category: "npc"},
	11109712: {Name: "Patches' Bell Bearing", Category: "npc"},
	11109713: {Name: "Sellen's Bell Bearing", Category: "npc"},
	11109715: {Name: "D's Bell Bearing", Category: "npc"},
	11109716: {Name: "Bernahl's Bell Bearing", Category: "npc"},
	11109717: {Name: "Miriel's Bell Bearing", Category: "npc"},
	11109718: {Name: "Gostoc's Bell Bearing", Category: "npc"},
	11109719: {Name: "Thops's Bell Bearing", Category: "npc"},
	11109720: {Name: "Kale's Bell Bearing", Category: "npc"},
	11109740: {Name: "Iji's Bell Bearing", Category: "npc"},
	11109741: {Name: "Rogier's Bell Bearing", Category: "npc"},
	11109742: {Name: "Blackguard's Bell Bearing", Category: "npc"},
	11109743: {Name: "Corhyn's Bell Bearing", Category: "npc"},
	11109744: {Name: "Gowry's Bell Bearing", Category: "npc"},

	11109721: {Name: "Nomadic Merchant's Bell Bearing [1]", Category: "merchant"},
	11109722: {Name: "Nomadic Merchant's Bell Bearing [2]", Category: "merchant"},
	11109723: {Name: "Nomadic Merchant's Bell Bearing [3]", Category: "merchant"},
	11109724: {Name: "Nomadic Merchant's Bell Bearing [4]", Category: "merchant"},
	11109725: {Name: "Nomadic Merchant's Bell Bearing [5]", Category: "merchant"},
	11109726: {Name: "Isolated Merchant's Bell Bearing [1]", Category: "merchant"},
	11109727: {Name: "Isolated Merchant's Bell Bearing [2]", Category: "merchant"},
	11109728: {Name: "Nomadic Merchant's Bell Bearing [6]", Category: "merchant"},
	11109729: {Name: "Hermit Merchant's Bell Bearing [1]", Category: "merchant"},
	11109730: {Name: "Nomadic Merchant's Bell Bearing [7]", Category: "merchant"},
	11109731: {Name: "Nomadic Merchant's Bell Bearing [8]", Category: "merchant"},
	11109732: {Name: "Nomadic Merchant's Bell Bearing [9]", Category: "merchant"},
	11109733: {Name: "Nomadic Merchant's Bell Bearing [10]", Category: "merchant"},
	11109735: {Name: "Isolated Merchant's Bell Bearing [3]", Category: "merchant"},
	11109736: {Name: "Hermit Merchant's Bell Bearing [2]", Category: "merchant"},
	11109737: {Name: "Abandoned Merchant's Bell Bearing", Category: "merchant"},
	11109738: {Name: "Hermit Merchant's Bell Bearing [3]", Category: "merchant"},
	11109739: {Name: "Imprisoned Merchant's Bell Bearing", Category: "merchant"},

	11109745: {Name: "Bone Peddler's Bell Bearing", Category: "peddler"},
	11109746: {Name: "Meat Peddler's Bell Bearing", Category: "peddler"},
	11109747: {Name: "Medicine Peddler's Bell Bearing", Category: "peddler"},
	11109748: {Name: "Gravity Stone Peddler's Bell Bearing", Category: "peddler"},

	11109751: {Name: "Smithing-Stone Miner's Bell Bearing [1]", Category: "smithing"},
	11109752: {Name: "Smithing-Stone Miner's Bell Bearing [2]", Category: "smithing"},
	11109753: {Name: "Smithing-Stone Miner's Bell Bearing [3]", Category: "smithing"},
	11109754: {Name: "Smithing-Stone Miner's Bell Bearing [4]", Category: "smithing"},
	11109755: {Name: "Somberstone Miner's Bell Bearing [1]", Category: "smithing"},
	11109756: {Name: "Somberstone Miner's Bell Bearing [2]", Category: "smithing"},
	11109757: {Name: "Somberstone Miner's Bell Bearing [3]", Category: "smithing"},
	11109758: {Name: "Somberstone Miner's Bell Bearing [4]", Category: "smithing"},
	11109759: {Name: "Somberstone Miner's Bell Bearing [5]", Category: "smithing"},
	11109760: {Name: "Glovewort Picker's Bell Bearing [1]", Category: "smithing"},
	11109761: {Name: "Glovewort Picker's Bell Bearing [2]", Category: "smithing"},
	11109762: {Name: "Glovewort Picker's Bell Bearing [3]", Category: "smithing"},
	11109763: {Name: "Ghost-Glovewort Picker's Bell Bearing [1]", Category: "smithing"},
	11109764: {Name: "Ghost-Glovewort Picker's Bell Bearing [2]", Category: "smithing"},
	11109765: {Name: "Ghost-Glovewort Picker's Bell Bearing [3]", Category: "smithing"},

	11109790: {Name: "Moore's Bell Bearing", Category: "dlc"},
	11109791: {Name: "Ymir's Bell Bearing", Category: "dlc"},
	11109792: {Name: "Herbalist's Bell Bearing", Category: "dlc"},
	11109793: {Name: "Mushroom-Seller's Bell Bearing [1]", Category: "dlc"},
	11109794: {Name: "Mushroom-Seller's Bell Bearing [2]", Category: "dlc"},
	11109795: {Name: "Greasemonger's Bell Bearing", Category: "dlc"},
	11109796: {Name: "Moldmonger's Bell Bearing", Category: "dlc"},
	11109797: {Name: "Igon's Bell Bearing", Category: "dlc"},
	11109798: {Name: "Spell-Machinist Bell Bearing", Category: "dlc"},
	11109799: {Name: "String-seller's Bell Bearing", Category: "dlc"},
}

BellBearings maps event flag ID → bell bearing metadata. Source: er-save-manager/event_flags_db.py

View Source
var BolsteringMaterials = map[uint32]ItemData{

	0x4000271A: {Name: "Golden Seed", Category: "bolstering_materials", SubCategory: SubcatBolsteringFlaskEnhancers, MaxInventory: 30, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/bolstering_materials/golden_seed.png", Flags: []string{"stackable"}},
	0x40002724: {Name: "Sacred Tear", Category: "bolstering_materials", SubCategory: SubcatBolsteringFlaskEnhancers, MaxInventory: 12, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/bolstering_materials/sacred_tear.png", Flags: []string{"stackable"}},

	0x401EAB90: {Name: "Scadutree Fragment", Category: "bolstering_materials", SubCategory: SubcatBolsteringShadowRealmBlessings, MaxInventory: 50, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/bolstering_materials/scadutree_fragment.png", Flags: []string{"dlc", "stackable"}},
	0x401EABF4: {Name: "Revered Spirit Ash", Category: "bolstering_materials", SubCategory: SubcatBolsteringShadowRealmBlessings, MaxInventory: 25, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/bolstering_materials/revered_spirit_ash.png", Flags: []string{"dlc", "stackable"}},

	0x40002774: {Name: "Smithing Stone [1]", Category: "bolstering_materials", SubCategory: SubcatBolsteringSmithingStones, MaxInventory: 999, MaxStorage: 999, MaxUpgrade: 0, IconPath: "items/bolstering_materials/smithing_stone_1.png", Flags: []string{"stackable"}},
	0x40002775: {Name: "Smithing Stone [2]", Category: "bolstering_materials", SubCategory: SubcatBolsteringSmithingStones, MaxInventory: 999, MaxStorage: 999, MaxUpgrade: 0, IconPath: "items/bolstering_materials/smithing_stone_2.png", Flags: []string{"stackable"}},
	0x40002776: {Name: "Smithing Stone [3]", Category: "bolstering_materials", SubCategory: SubcatBolsteringSmithingStones, MaxInventory: 999, MaxStorage: 999, MaxUpgrade: 0, IconPath: "items/bolstering_materials/smithing_stone_3.png", Flags: []string{"stackable"}},
	0x40002777: {Name: "Smithing Stone [4]", Category: "bolstering_materials", SubCategory: SubcatBolsteringSmithingStones, MaxInventory: 999, MaxStorage: 999, MaxUpgrade: 0, IconPath: "items/bolstering_materials/smithing_stone_4.png", Flags: []string{"stackable"}},
	0x40002778: {Name: "Smithing Stone [5]", Category: "bolstering_materials", SubCategory: SubcatBolsteringSmithingStones, MaxInventory: 999, MaxStorage: 999, MaxUpgrade: 0, IconPath: "items/bolstering_materials/smithing_stone_5.png", Flags: []string{"stackable"}},
	0x40002779: {Name: "Smithing Stone [6]", Category: "bolstering_materials", SubCategory: SubcatBolsteringSmithingStones, MaxInventory: 999, MaxStorage: 999, MaxUpgrade: 0, IconPath: "items/bolstering_materials/smithing_stone_6.png", Flags: []string{"stackable"}},
	0x4000277A: {Name: "Smithing Stone [7]", Category: "bolstering_materials", SubCategory: SubcatBolsteringSmithingStones, MaxInventory: 999, MaxStorage: 999, MaxUpgrade: 0, IconPath: "items/bolstering_materials/smithing_stone_7.png", Flags: []string{"stackable"}},
	0x4000277B: {Name: "Smithing Stone [8]", Category: "bolstering_materials", SubCategory: SubcatBolsteringSmithingStones, MaxInventory: 999, MaxStorage: 999, MaxUpgrade: 0, IconPath: "items/bolstering_materials/smithing_stone_8.png", Flags: []string{"stackable"}},
	0x4000279C: {Name: "Ancient Dragon Smithing Stone", Category: "bolstering_materials", SubCategory: SubcatBolsteringSmithingStones, MaxInventory: 18, MaxStorage: 18, MaxUpgrade: 0, IconPath: "items/bolstering_materials/ancient_dragon_smithing_stone.png", Flags: []string{"stackable"}},

	0x400027B0: {Name: "Somber Smithing Stone [1]", Category: "bolstering_materials", SubCategory: SubcatBolsteringSomberstones, MaxInventory: 999, MaxStorage: 999, MaxUpgrade: 0, IconPath: "items/bolstering_materials/somber_smithing_stone_1.png", Flags: []string{"stackable"}},
	0x400027B1: {Name: "Somber Smithing Stone [2]", Category: "bolstering_materials", SubCategory: SubcatBolsteringSomberstones, MaxInventory: 999, MaxStorage: 999, MaxUpgrade: 0, IconPath: "items/bolstering_materials/somber_smithing_stone_2.png", Flags: []string{"stackable"}},
	0x400027B2: {Name: "Somber Smithing Stone [3]", Category: "bolstering_materials", SubCategory: SubcatBolsteringSomberstones, MaxInventory: 999, MaxStorage: 999, MaxUpgrade: 0, IconPath: "items/bolstering_materials/somber_smithing_stone_3.png", Flags: []string{"stackable"}},
	0x400027B3: {Name: "Somber Smithing Stone [4]", Category: "bolstering_materials", SubCategory: SubcatBolsteringSomberstones, MaxInventory: 999, MaxStorage: 999, MaxUpgrade: 0, IconPath: "items/bolstering_materials/somber_smithing_stone_4.png", Flags: []string{"stackable"}},
	0x400027B4: {Name: "Somber Smithing Stone [5]", Category: "bolstering_materials", SubCategory: SubcatBolsteringSomberstones, MaxInventory: 999, MaxStorage: 999, MaxUpgrade: 0, IconPath: "items/bolstering_materials/somber_smithing_stone_5.png", Flags: []string{"stackable"}},
	0x400027B5: {Name: "Somber Smithing Stone [6]", Category: "bolstering_materials", SubCategory: SubcatBolsteringSomberstones, MaxInventory: 999, MaxStorage: 999, MaxUpgrade: 0, IconPath: "items/bolstering_materials/somber_smithing_stone_6.png", Flags: []string{"stackable"}},
	0x400027B6: {Name: "Somber Smithing Stone [7]", Category: "bolstering_materials", SubCategory: SubcatBolsteringSomberstones, MaxInventory: 999, MaxStorage: 999, MaxUpgrade: 0, IconPath: "items/bolstering_materials/somber_smithing_stone_7.png", Flags: []string{"stackable"}},
	0x400027B7: {Name: "Somber Smithing Stone [8]", Category: "bolstering_materials", SubCategory: SubcatBolsteringSomberstones, MaxInventory: 999, MaxStorage: 999, MaxUpgrade: 0, IconPath: "items/bolstering_materials/somber_smithing_stone_8.png", Flags: []string{"stackable"}},
	0x400027D8: {Name: "Somber Smithing Stone [9]", Category: "bolstering_materials", SubCategory: SubcatBolsteringSomberstones, MaxInventory: 999, MaxStorage: 999, MaxUpgrade: 0, IconPath: "items/bolstering_materials/somber_smithing_stone_9.png", Flags: []string{"stackable"}},
	0x400027B8: {Name: "Somber Ancient Dragon Smithing Stone", Category: "bolstering_materials", SubCategory: SubcatBolsteringSomberstones, MaxInventory: 15, MaxStorage: 15, MaxUpgrade: 0, IconPath: "items/bolstering_materials/somber_ancient_dragon_smithing_stone.png", Flags: []string{"stackable"}},

	0x40002A94: {Name: "Grave Glovewort [1]", Category: "bolstering_materials", SubCategory: SubcatBolsteringGraveGlovewort, MaxInventory: 999, MaxStorage: 999, MaxUpgrade: 0, IconPath: "items/bolstering_materials/grave_glovewort_1.png", Flags: []string{"stackable"}},
	0x40002A95: {Name: "Grave Glovewort [2]", Category: "bolstering_materials", SubCategory: SubcatBolsteringGraveGlovewort, MaxInventory: 999, MaxStorage: 999, MaxUpgrade: 0, IconPath: "items/bolstering_materials/grave_glovewort_2.png", Flags: []string{"stackable"}},
	0x40002A96: {Name: "Grave Glovewort [3]", Category: "bolstering_materials", SubCategory: SubcatBolsteringGraveGlovewort, MaxInventory: 999, MaxStorage: 999, MaxUpgrade: 0, IconPath: "items/bolstering_materials/grave_glovewort_3.png", Flags: []string{"stackable"}},
	0x40002A97: {Name: "Grave Glovewort [4]", Category: "bolstering_materials", SubCategory: SubcatBolsteringGraveGlovewort, MaxInventory: 999, MaxStorage: 999, MaxUpgrade: 0, IconPath: "items/bolstering_materials/grave_glovewort_4.png", Flags: []string{"stackable"}},
	0x40002A98: {Name: "Grave Glovewort [5]", Category: "bolstering_materials", SubCategory: SubcatBolsteringGraveGlovewort, MaxInventory: 999, MaxStorage: 999, MaxUpgrade: 0, IconPath: "items/bolstering_materials/grave_glovewort_5.png", Flags: []string{"stackable"}},
	0x40002A99: {Name: "Grave Glovewort [6]", Category: "bolstering_materials", SubCategory: SubcatBolsteringGraveGlovewort, MaxInventory: 999, MaxStorage: 999, MaxUpgrade: 0, IconPath: "items/bolstering_materials/grave_glovewort_6.png", Flags: []string{"stackable"}},
	0x40002A9A: {Name: "Grave Glovewort [7]", Category: "bolstering_materials", SubCategory: SubcatBolsteringGraveGlovewort, MaxInventory: 999, MaxStorage: 999, MaxUpgrade: 0, IconPath: "items/bolstering_materials/grave_glovewort_7.png", Flags: []string{"stackable"}},
	0x40002A9B: {Name: "Grave Glovewort [8]", Category: "bolstering_materials", SubCategory: SubcatBolsteringGraveGlovewort, MaxInventory: 999, MaxStorage: 999, MaxUpgrade: 0, IconPath: "items/bolstering_materials/grave_glovewort_8.png", Flags: []string{"stackable"}},
	0x40002A9C: {Name: "Grave Glovewort [9]", Category: "bolstering_materials", SubCategory: SubcatBolsteringGraveGlovewort, MaxInventory: 999, MaxStorage: 999, MaxUpgrade: 0, IconPath: "items/bolstering_materials/grave_glovewort_9.png", Flags: []string{"stackable"}},
	0x40002A9D: {Name: "Great Grave Glovewort", Category: "bolstering_materials", SubCategory: SubcatBolsteringGraveGlovewort, MaxInventory: 12, MaxStorage: 12, MaxUpgrade: 0, IconPath: "items/bolstering_materials/great_grave_glovewort.png", Flags: []string{"stackable"}},

	0x40002A9E: {Name: "Ghost Glovewort [1]", Category: "bolstering_materials", SubCategory: SubcatBolsteringGhostGlovewort, MaxInventory: 999, MaxStorage: 999, MaxUpgrade: 0, IconPath: "items/bolstering_materials/ghost_glovewort_1.png", Flags: []string{"stackable"}},
	0x40002A9F: {Name: "Ghost Glovewort [2]", Category: "bolstering_materials", SubCategory: SubcatBolsteringGhostGlovewort, MaxInventory: 999, MaxStorage: 999, MaxUpgrade: 0, IconPath: "items/bolstering_materials/ghost_glovewort_2.png", Flags: []string{"stackable"}},
	0x40002AA0: {Name: "Ghost Glovewort [3]", Category: "bolstering_materials", SubCategory: SubcatBolsteringGhostGlovewort, MaxInventory: 999, MaxStorage: 999, MaxUpgrade: 0, IconPath: "items/bolstering_materials/ghost_glovewort_3.png", Flags: []string{"stackable"}},
	0x40002AA1: {Name: "Ghost Glovewort [4]", Category: "bolstering_materials", SubCategory: SubcatBolsteringGhostGlovewort, MaxInventory: 999, MaxStorage: 999, MaxUpgrade: 0, IconPath: "items/bolstering_materials/ghost_glovewort_4.png", Flags: []string{"stackable"}},
	0x40002AA2: {Name: "Ghost Glovewort [5]", Category: "bolstering_materials", SubCategory: SubcatBolsteringGhostGlovewort, MaxInventory: 999, MaxStorage: 999, MaxUpgrade: 0, IconPath: "items/bolstering_materials/ghost_glovewort_5.png", Flags: []string{"stackable"}},
	0x40002AA3: {Name: "Ghost Glovewort [6]", Category: "bolstering_materials", SubCategory: SubcatBolsteringGhostGlovewort, MaxInventory: 999, MaxStorage: 999, MaxUpgrade: 0, IconPath: "items/bolstering_materials/ghost_glovewort_6.png", Flags: []string{"stackable"}},
	0x40002AA4: {Name: "Ghost Glovewort [7]", Category: "bolstering_materials", SubCategory: SubcatBolsteringGhostGlovewort, MaxInventory: 999, MaxStorage: 999, MaxUpgrade: 0, IconPath: "items/bolstering_materials/ghost_glovewort_7.png", Flags: []string{"stackable"}},
	0x40002AA5: {Name: "Ghost Glovewort [8]", Category: "bolstering_materials", SubCategory: SubcatBolsteringGhostGlovewort, MaxInventory: 999, MaxStorage: 999, MaxUpgrade: 0, IconPath: "items/bolstering_materials/ghost_glovewort_8.png", Flags: []string{"stackable"}},
	0x40002AA6: {Name: "Ghost Glovewort [9]", Category: "bolstering_materials", SubCategory: SubcatBolsteringGhostGlovewort, MaxInventory: 999, MaxStorage: 999, MaxUpgrade: 0, IconPath: "items/bolstering_materials/ghost_glovewort_9.png", Flags: []string{"stackable"}},
	0x40002AA7: {Name: "Great Ghost Glovewort", Category: "bolstering_materials", SubCategory: SubcatBolsteringGhostGlovewort, MaxInventory: 9, MaxStorage: 9, MaxUpgrade: 0, IconPath: "items/bolstering_materials/great_ghost_glovewort.png", Flags: []string{"stackable"}},
}

BolsteringMaterials — items used to upgrade Sacred Flasks, Spirit Ashes, weapons, and Shadow Realm progression. 1:1 with in-game "Bolstering Materials" tab.

Sub-groups (in-game order):

  1. Flask Enhancers (Golden Seed + Sacred Tear)
  2. Shadow Realm Blessings (DLC: Scadutree Fragment + Revered Spirit Ash)
  3. Smithing Stones [1-8] + Ancient Dragon Smithing Stone
  4. Somberstones [1-9] + Somber Ancient Dragon Smithing Stone
  5. Grave Glovewort [1-9] + Great Grave Glovewort
  6. Ghost Glovewort [1-9] + Great Ghost Glovewort
View Source
var BolsteringPickupFlags = map[uint32][]uint32{

	0x4000271A: {
		400191, 400220, 510280, 520160, 520180,
		10007195, 10007730, 11007990, 11007993,
		12017100, 12017997, 12027040, 12057010,
		13007980, 13007990, 14007990, 15001200,
		1035467100, 1035507300, 1036447300, 1036547400,
		1037507100, 1037537400, 1038517400, 1039517400,
		1041387100, 1041547400, 1042507020, 1042517400,
		1042517410, 1042547400, 1043527400, 1043527410,
		1044327020, 1046367100, 1048577800, 1049377020,
		1049527800, 1049557800, 1050397100, 1051437020,
		1052537800, 1052577800,
	},

	0x40002724: {
		39207170,
		1036497000, 1037497100, 1039397000, 1039527400,
		1040517400, 1041337200, 1043357100, 1044337100,
		1046387100, 1050387020, 1051537800, 1054557800,
	},

	0x401EAB90: {
		510440, 12017460,
		20007620, 20007820, 20017350, 20017470, 20017550,
		21007400, 21017200, 21017500, 22007000,
		2044457000, 2045427700, 2046427700, 2046457040,
		2046467000, 2046477750, 2047397070, 2047407100,
		2047447720, 2047447750, 2047467500, 2048377050,
		2048417700, 2048437700, 2048447500, 2048457520,
		2048467510, 2049447530, 2049457510, 2049487000,
		2049497500, 2049497520, 2049497530, 2049497540,
		2049497550, 2050437010, 2050437500, 2050457730,
		2051447500, 2051447510, 2053397020, 2053417500,
	},

	0x401EABF4: {
		20007170, 20007700, 20007800, 20017200, 20017400,
		21017020, 21017460, 28007110,
		2044467000, 2045417700, 2046447700, 2046457720,
		2047417700, 2047437700, 2049447500, 2050437720,
		2050447500, 2050467700,
	},

	0x4000272E: {60400, 60410, 60420, 60430, 60440, 60450, 60460, 60470},
}

BolsteringPickupFlags maps bolstering material item ID → list of world pickup event flags (one per world location where the item spawns).

Setting these flags tells the game "already collected" — prevents duplicate spawns when items are added via the editor's inventory system.

Source: regulation.bin ItemLotParam_map.csv, column getItemFlagId (col 42), filtered by lotItemId matching the raw goods ID.

Items covered:

  • Golden Seed (0x4000271A / raw 10010) — 43 locations
  • Sacred Tear (0x40002724 / raw 10020) — 13 locations
  • Scadutree Fragment (0x401EAB90 / raw 2010000) — 43 locations (DLC)
  • Revered Spirit Ash (0x401EABF4 / raw 2010100) — 18 locations (DLC)
  • Memory Stone (0x4000272E / raw 10030) — 8 locations (7 world + 1 shop)
View Source
var Bosses = map[uint32]BossData{}/* 110 elements not displayed */

Bosses maps synchronized defeat event flag IDs (9xxx range) to boss definitions. These global flags are set by the game when a boss is defeated. Flag IDs use standard event flag formula: byte = id/8, bit = 7-(id%8). Source: soulsmods/elden-ring-eventparam, er-save-manager/boss_data.py, SoulSplitter Boss.cs

~97 open-world field bosses (Night's Cavalry, Deathbirds, Dragons, Evergaol, etc.) only have per-map flags (10000000+) which exceed the event flags bitfield size and are NOT included here.

View Source
var CanMountWepNames = []string{
	"Dagger",
	"SwordNormal",
	"SwordLarge",
	"SwordGigantic",
	"SaberNormal",
	"SaberLarge",
	"katana",
	"SwordDoubleEdge",
	"SwordPierce",
	"RapierHeavy",
	"AxeNormal",
	"AxeLarge",
	"HammerNormal",
	"HammerLarge",
	"Flail",
	"SpearNormal",
	"SpearLarge",
	"SpearHeavy",
	"SpearAxe",
	"Sickle",
	"Knuckle",
	"Claw",
	"Whip",
	"AxhammerLarge",
	"BowSmall",
	"BowNormal",
	"BowLarge",
	"ClossBow",
	"Ballista",
	"Staff",
	"Sorcery",
	"Talisman",
	"ShieldSmall",
	"ShieldNormal",
	"ShieldLarge",
	"Torch",
	"DLCHandToHandArts",
	"DLCThrowingBlades",
	"DLCPerfumeBottles",
	"DLCBeastClaws",
	"DLCBackhandBlades",
	"DLCGreatKatanas",
	"DLCLightGreatsword",
	"DLCThrustingShield",
}

CanMountWepNames lists the canMountWep_* column names in bit order (bit 0 = index 0).

View Source
var Chest = map[uint32]ItemData{}/* 252 elements not displayed */
View Source
var ColosseumFlagSets = map[uint32]ColosseumFlagSet{
	60350: {Activate: 60350, MapPOI: 62720, NPC: 69450, Gate: 710850},
	60360: {Activate: 60360, MapPOI: 62730, NPC: 69460, Gate: 710860},
	60370: {Activate: 60370, MapPOI: 62740, NPC: 69470, Gate: 710870},
}

ColosseumFlagSets keyed by the Activate flag ID. Δ=10 stride verified against Tester slot 2 (legit Limgrave-only) at tmp/coloseum-debug/.

View Source
var ColosseumGlobalFlags = []uint32{
	6080,
	60100,
	69480,
}

ColosseumGlobalFlags fire when any colosseum is unlocked. Verified set in Tester slot 2 (after.sl2) after legit Limgrave-only unlock.

View Source
var Colosseums = map[uint32]SummoningPoolData{
	60350: {Name: "Caelid Colosseum", Region: "Caelid"},
	60360: {Name: "Limgrave Colosseum", Region: "Limgrave"},
	60370: {Name: "Royal Colosseum", Region: "Leyndell"},
}

Colosseums maps event flag IDs to colosseum definitions. Setting flag to 1 unlocks the corresponding colosseum. Source: The-Grand-Archives/Elden-Ring-CT-TGA

ContainerItemIDs is the set of key-item container IDs referenced as required containers. Membership means "this item IS a container" — used to total the owned container quantity that caps how many gated craftables may be carried.

View Source
var ContainerPickupFlags = map[uint32][]uint32{
	CrackedPotKeyItemID: {
		66000, 66010, 66020, 66030, 66040, 66050, 66060, 66070, 66080, 66090,
		66100, 66110, 66120, 66130, 66140, 66150, 66160, 66170, 66180, 66190,
	},
	RitualPotKeyItemID: {
		66400, 66410, 66420, 66430, 66440, 66450, 66460, 66470, 66480, 66490,
	},
	PerfumeBottleKeyItemID: {
		66700, 66710, 66720, 66730, 66740, 66750, 66760, 66770, 66780, 66790,
	},
	HeftyCrackedPotKeyItemID: {
		66900, 66910, 66920, 66930, 66940, 66950, 66960, 66970, 66980, 66990,
	},
}

ContainerPickupFlags maps a container key item ID to the list of event flag IDs the game uses to gate world pickups for that container. Setting flag N (0-indexed) marks the (N+1)th world pickup as already collected, so the game won't offer that container key item to the player again — preventing stack duplication when the editor pre-fills the container.

Flag groups (step 10) per er-save-manager event_flags_db.py:

Cracked Pot:       66000–66190 (20 used, 66200–66230 unused per param)
Ritual Pot:        66400–66490 (10 used, 66500–66590 unused)
Perfume Bottle:    66700–66790 (10 used)
Hefty Cracked Pot: 66900–66990 (10 used)

Only "used" flags are listed (= active world pickup locations). The number of entries per container matches the container's MaxInventory cap, so auto-setting flags 1..MaxInventory covers every world pickup for that container and the editor never produces an inconsistent state.

View Source
var ContainerVendorPurchaseFlags = map[uint32][]uint32{
	CrackedPotKeyItemID: {710580},
}

ContainerVendorPurchaseFlags maps a container key item ID to additional event flags that gate vendor sales. Separate from world-pickup flags — vendors track their own purchase state. Setting these flags removes the container from the listed vendor's stock for the current NG cycle.

IMPORTANT: NG+ resets these flags (vanilla behavior). The editor cannot prevent NG+ from re-stocking vendors — that's by-design vanilla behavior.

Source: er-save-manager quest_flags_db.py "Kale" → "Purchasing Cracked Pot". In vanilla, only Kale (Church of Elleh, Limgrave) sells a container key item, and only Cracked Pot. Ritual Pot, Hefty Cracked Pot, and Perfume Bottle have no merchant — only world pickups.

View Source
var CookbookFlagToItemID = map[uint32]uint32{}/* 104 elements not displayed */

CookbookFlagToItemID maps cookbook event flag ID → inventory item ID (Key Items). Built by matching cookbook names between Cookbooks and KeyItems.

View Source
var CookbookItemToFlagID map[uint32]uint32

CookbookItemToFlagID is the reverse of CookbookFlagToItemID.

View Source
var Cookbooks = map[uint32]CookbookData{}/* 104 elements not displayed */

Cookbooks maps event flag ID → cookbook metadata. Event flags sourced from ER-Save-Editor (Rust) cookbooks.rs.

View Source
var CraftingMaterials = map[uint32]ItemData{}/* 108 elements not displayed */
View Source
var Descriptions map[uint32]ItemDescription

Descriptions maps item IDs to their descriptions and stats. Populated by generated code in descriptions.go.

View Source
var EventFlagBST map[uint32]uint32

EventFlagBST maps block numbers (flag_id / 1000) to BST positions. Loaded from embedded eventflag_bst.txt on first access. BST formula: byte = bst_pos*125 + (flag_id%1000)/8, bit = 7 - (flag_id%1000)%8

View Source
var EventFlags = map[uint32]EventFlagInfo{}/* 865 elements not displayed */
View Source
var FP = []float32{}/* 793 elements not displayed */
View Source
var GameLimitsByItemID = map[uint32]GameLimitData{}/* 2398 elements not displayed */

GameLimitsByItemID contains technical per-record limits sourced from regulation.bin. Goods storage uses maxRepositoryNum (independent of isDeposit). Ammunition storage uses the game's fixed 600-unit repository cap.

View Source
var GeneratedPresets = []AppearancePreset{
	{
		Name: "Geralt of Rivia, the Witcher", Image: "geralt-of-rivia-the-witcher.jpg",
		BodyType: 1, VoiceType: 2,
		FaceModel: 1, HairModel: 9, EyeModel: 0, EyebrowModel: 2,
		BeardModel: 4, EyepatchModel: 1, DecalModel: 7, EyelashModel: 3,
		FaceShape: [64]uint8{255, 100, 0, 0, 158, 128, 178, 225, 148, 128, 255, 218, 138, 0, 98, 128, 138, 138, 118, 198, 170, 128, 111, 88, 78, 0, 118, 108, 225, 95, 0, 108, 128, 0, 128, 38, 38, 148, 98, 178, 128, 18, 78, 128, 108, 128, 138, 108, 128, 108, 138, 108, 78, 105, 83, 108, 143, 28, 128, 128, 128, 148, 128, 128},
		Body:      [7]uint8{128, 218, 148, 218, 208, 218, 208},
		Skin:      [91]uint8{180, 131, 113, 178, 35, 255, 210, 40, 30, 35, 0, 0, 0, 0, 25, 30, 20, 20, 30, 50, 25, 0, 36, 60, 80, 90, 18, 183, 133, 111, 88, 220, 98, 218, 81, 27, 24, 128, 0, 0, 209, 190, 177, 255, 155, 55, 190, 31, 255, 155, 55, 255, 255, 255, 128, 255, 155, 55, 190, 31, 255, 155, 55, 255, 255, 255, 128, 209, 190, 177, 78, 225, 0, 209, 190, 177, 78, 129, 128, 29, 20, 17, 78, 255, 0, 30, 20, 5, 0, 0, 0},
	},
	{
		Name: "Sekiro, the Wolf Shinobi", Image: "sekiro-the-wolf-shinobi.jpg",
		BodyType: 1, VoiceType: 2,
		FaceModel: 6, HairModel: 10, EyeModel: 0, EyebrowModel: 8,
		BeardModel: 2, EyepatchModel: 1, DecalModel: 2, EyelashModel: 3,
		FaceShape: [64]uint8{255, 108, 0, 0, 178, 98, 108, 68, 190, 128, 218, 108, 168, 38, 68, 128, 158, 68, 191, 0, 106, 216, 118, 148, 206, 0, 108, 88, 98, 115, 0, 198, 128, 0, 128, 148, 38, 128, 48, 154, 128, 150, 228, 118, 78, 168, 68, 0, 105, 118, 108, 178, 98, 138, 148, 100, 168, 195, 68, 158, 85, 108, 158, 100},
		Body:      [7]uint8{128, 138, 138, 138, 138, 138, 138},
		Skin:      [91]uint8{153, 113, 82, 160, 255, 255, 120, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 120, 0, 0, 0, 10, 0, 0, 0, 50, 0, 0, 0, 255, 210, 10, 218, 0, 0, 0, 128, 0, 0, 0, 0, 0, 26, 15, 5, 225, 0, 0, 0, 0, 0, 0, 0, 138, 26, 15, 5, 225, 0, 0, 0, 0, 0, 0, 0, 138, 58, 46, 38, 78, 128, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
	},
	{
		Name: "Ragnar Lodbrok, a Viking Warrior", Image: "ragnar-lodbrok-a-viking-warrior.jpg",
		BodyType: 1, VoiceType: 2,
		FaceModel: 1, HairModel: 15, EyeModel: 0, EyebrowModel: 7,
		BeardModel: 3, EyepatchModel: 1, DecalModel: 8, EyelashModel: 3,
		FaceShape: [64]uint8{200, 0, 0, 0, 155, 97, 140, 125, 145, 173, 147, 125, 168, 125, 128, 128, 122, 107, 107, 183, 126, 135, 135, 130, 130, 0, 130, 130, 128, 128, 0, 125, 149, 0, 148, 143, 85, 130, 65, 127, 75, 0, 127, 104, 146, 0, 66, 175, 216, 153, 120, 100, 115, 50, 135, 155, 204, 49, 125, 105, 145, 165, 100, 145},
		Body:      [7]uint8{130, 255, 168, 255, 255, 255, 255},
		Skin:      [91]uint8{169, 124, 110, 255, 255, 255, 0, 0, 0, 0, 80, 227, 148, 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 200, 119, 119, 51, 190, 92, 190, 110, 30, 30, 128, 0, 131, 0, 0, 0, 145, 225, 65, 130, 0, 0, 0, 0, 0, 0, 0, 150, 145, 225, 65, 130, 0, 0, 0, 0, 0, 0, 0, 150, 167, 98, 48, 66, 127, 117, 167, 98, 48, 66, 127, 117, 0, 0, 0, 66, 127, 117, 0, 0, 0, 0, 0, 0},
	},
	{
		Name: "Trevor Belmont, Vampire Hunter (Castlevania)", Image: "trevor-belmont-vampire-hunter-from-castlevania.jpg",
		BodyType: 1, VoiceType: 2,
		FaceModel: 1, HairModel: 8, EyeModel: 0, EyebrowModel: 9,
		BeardModel: 2, EyepatchModel: 1, DecalModel: 4, EyelashModel: 2,
		FaceShape: [64]uint8{0, 0, 0, 0, 128, 78, 138, 125, 128, 100, 95, 108, 125, 157, 58, 118, 188, 108, 108, 120, 124, 118, 131, 138, 130, 0, 140, 48, 145, 115, 0, 170, 135, 0, 148, 78, 118, 131, 135, 132, 110, 108, 135, 134, 126, 140, 118, 121, 125, 133, 118, 128, 88, 125, 153, 118, 133, 148, 124, 138, 125, 118, 138, 128},
		Body:      [7]uint8{138, 138, 108, 168, 128, 168, 128},
		Skin:      [91]uint8{235, 165, 125, 78, 0, 255, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 60, 164, 118, 188, 0, 0, 0, 128, 0, 200, 0, 0, 0, 87, 171, 255, 200, 0, 0, 0, 0, 0, 0, 0, 128, 87, 171, 255, 200, 0, 0, 0, 0, 0, 0, 0, 128, 80, 60, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
	},
	{
		Name: "Yennefer, Sorceress from the Witcher", Image: "yennefer-sorceress-from-the-witcher.jpg",
		BodyType: 0, VoiceType: 2,
		FaceModel: 6, HairModel: 22, EyeModel: 0, EyebrowModel: 15,
		BeardModel: 1, EyepatchModel: 1, DecalModel: 9, EyelashModel: 4,
		FaceShape: [64]uint8{200, 152, 0, 0, 150, 109, 130, 82, 148, 110, 130, 154, 160, 120, 124, 144, 127, 141, 103, 131, 129, 159, 96, 145, 65, 0, 100, 105, 70, 183, 0, 140, 181, 0, 144, 42, 109, 78, 214, 130, 130, 151, 204, 127, 118, 160, 157, 218, 127, 137, 90, 160, 124, 150, 133, 110, 111, 125, 150, 210, 164, 131, 141, 100},
		Body:      [7]uint8{150, 36, 56, 110, 146, 110, 146},
		Skin:      [91]uint8{250, 185, 180, 170, 255, 0, 57, 0, 0, 0, 75, 115, 26, 43, 57, 0, 0, 0, 205, 0, 0, 0, 150, 100, 102, 158, 110, 166, 35, 125, 78, 70, 128, 58, 0, 0, 0, 128, 0, 0, 0, 0, 0, 70, 52, 178, 240, 30, 0, 0, 0, 255, 255, 255, 115, 70, 52, 178, 240, 30, 0, 0, 0, 255, 255, 255, 115, 0, 0, 0, 200, 105, 0, 0, 0, 0, 200, 105, 0, 0, 0, 0, 0, 105, 0, 0, 0, 0, 0, 0, 0},
	},
	{
		Name: "Obi-Wan Kenobi, a Jedi Master", Image: "obi-wan-kenobi-a-jedi-master.jpg",
		BodyType: 1, VoiceType: 0,
		FaceModel: 1, HairModel: 8, EyeModel: 0, EyebrowModel: 9,
		BeardModel: 10, EyepatchModel: 1, DecalModel: 9, EyelashModel: 3,
		FaceShape: [64]uint8{0, 108, 0, 0, 255, 148, 108, 98, 168, 108, 178, 128, 168, 98, 88, 118, 148, 118, 108, 98, 168, 168, 108, 138, 178, 0, 128, 78, 118, 115, 0, 178, 148, 0, 98, 68, 158, 118, 118, 178, 118, 255, 198, 98, 28, 138, 148, 158, 75, 255, 48, 148, 148, 185, 168, 128, 198, 225, 68, 188, 185, 148, 198, 70},
		Body:      [7]uint8{128, 68, 28, 78, 78, 78, 78},
		Skin:      [91]uint8{255, 173, 150, 160, 0, 0, 20, 255, 173, 150, 32, 255, 65, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, 212, 128, 148, 171, 117, 104, 128, 0, 100, 140, 98, 69, 51, 153, 255, 191, 0, 0, 0, 0, 255, 255, 255, 138, 51, 153, 255, 191, 0, 0, 0, 0, 255, 255, 255, 138, 140, 98, 69, 88, 128, 20, 140, 98, 69, 0, 0, 20, 140, 98, 69, 88, 128, 40, 0, 0, 0, 0, 0, 0},
	},
	{
		Name: "Lord Voldemort, the Dark Wizard", Image: "lord-voldemort-the-dark-wizard.jpg",
		BodyType: 1, VoiceType: 2,
		FaceModel: 6, HairModel: 1, EyeModel: 0, EyebrowModel: 1,
		BeardModel: 1, EyepatchModel: 1, DecalModel: 7, EyelashModel: 1,
		FaceShape: [64]uint8{205, 108, 0, 0, 255, 128, 138, 88, 168, 178, 158, 148, 158, 255, 94, 120, 218, 158, 78, 108, 128, 158, 68, 68, 198, 0, 108, 0, 0, 113, 0, 0, 155, 0, 148, 0, 0, 69, 88, 195, 178, 255, 0, 88, 148, 0, 178, 108, 135, 158, 255, 148, 222, 0, 204, 0, 188, 75, 0, 0, 122, 176, 0, 0},
		Body:      [7]uint8{140, 60, 45, 90, 130, 90, 130},
		Skin:      [91]uint8{230, 230, 230, 100, 0, 0, 130, 0, 0, 0, 185, 117, 56, 56, 255, 0, 0, 0, 255, 0, 0, 0, 100, 51, 81, 100, 85, 71, 24, 24, 50, 140, 128, 30, 71, 24, 24, 128, 1, 0, 0, 0, 0, 86, 255, 255, 200, 0, 0, 0, 0, 255, 255, 255, 138, 86, 255, 255, 200, 0, 0, 0, 0, 255, 255, 255, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 70, 70},
	},
	{
		Name: "Red Skull, a Mutated Humanoid", Image: "red-skull-a-mutated-humanoid.jpg",
		BodyType: 1, VoiceType: 2,
		FaceModel: 2, HairModel: 1, EyeModel: 0, EyebrowModel: 1,
		BeardModel: 1, EyepatchModel: 1, DecalModel: 1, EyelashModel: 1,
		FaceShape: [64]uint8{255, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 255, 128, 0, 128, 0, 0, 128, 0, 255, 255, 0, 128, 255, 255, 255, 255, 0, 0, 255, 255, 0, 255, 128, 255, 128, 128, 128, 255, 255, 255, 0, 255, 0, 255, 0, 0, 0, 0, 255, 0, 0},
		Body:      [7]uint8{128, 128, 128, 128, 128, 128, 128},
		Skin:      [91]uint8{102, 11, 4, 255, 255, 0, 255, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 102, 11, 4, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 102, 11, 4, 128, 0, 0, 0, 255, 0, 0, 0, 0, 102, 11, 4, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
	},
	{
		Name: "Isaac, the Devil Forgemaster (Castlevania)", Image: "isaac-the-devil-forgemaster.jpg",
		BodyType: 1, VoiceType: 0,
		FaceModel: 1, HairModel: 1, EyeModel: 0, EyebrowModel: 1,
		BeardModel: 1, EyepatchModel: 1, DecalModel: 1, EyelashModel: 1,
		FaceShape: [64]uint8{0, 128, 0, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 0, 128, 128, 128, 128, 0, 128, 128, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128},
		Body:      [7]uint8{128, 128, 128, 128, 128, 128, 128},
		Skin:      [91]uint8{46, 29, 27, 128, 128, 0, 128, 5, 26, 15, 0, 0, 0, 0, 128, 0, 0, 0, 128, 0, 0, 0, 128, 26, 5, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 174, 65, 34, 200, 0, 0, 0, 0, 255, 255, 255, 128, 174, 65, 34, 200, 0, 0, 0, 0, 255, 255, 255, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
	},
	{
		Name: "Thornkettle, the Forest Gnome", Image: "thornkettle-the-forest-gnome.jpg",
		BodyType: 1, VoiceType: 4,
		FaceModel: 1, HairModel: 1, EyeModel: 0, EyebrowModel: 1,
		BeardModel: 1, EyepatchModel: 1, DecalModel: 1, EyelashModel: 1,
		FaceShape: [64]uint8{255, 0, 0, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 255, 128, 0, 128, 255, 128, 128, 0, 128, 128, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128},
		Body:      [7]uint8{255, 128, 128, 128, 128, 128, 128},
		Skin:      [91]uint8{189, 139, 123, 128, 255, 255, 128, 0, 0, 0, 128, 0, 0, 0, 128, 0, 0, 0, 128, 50, 25, 0, 128, 0, 25, 40, 128, 163, 132, 101, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 201, 196, 170, 71, 48, 24, 200, 128, 100, 100, 100, 255, 255, 255, 128, 71, 48, 24, 200, 128, 100, 100, 100, 255, 255, 255, 128, 201, 196, 170, 128, 128, 128, 184, 182, 172, 128, 128, 128, 208, 183, 167, 128, 128, 128, 30, 20, 5, 0, 0, 0},
	},
	{
		Name: "Kratos, God of War", Image: "kratos-the-god-of-war.jpg",
		BodyType: 1, VoiceType: 2,
		FaceModel: 1, HairModel: 1, EyeModel: 0, EyebrowModel: 1,
		BeardModel: 1, EyepatchModel: 1, DecalModel: 1, EyelashModel: 1,
		FaceShape: [64]uint8{255, 0, 0, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 0, 128, 128, 128, 128, 0, 128, 128, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128},
		Body:      [7]uint8{128, 255, 128, 255, 255, 255, 255},
		Skin:      [91]uint8{143, 126, 119, 128, 255, 255, 128, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 128, 0, 0, 0, 128, 40, 20, 30, 128, 98, 80, 75, 0, 0, 0, 0, 100, 41, 41, 128, 0, 0, 0, 0, 0, 211, 126, 119, 200, 0, 100, 100, 100, 255, 255, 255, 128, 211, 126, 119, 200, 0, 100, 100, 100, 255, 255, 255, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 28, 20, 0, 0, 0, 0, 0, 0, 60, 60, 60},
	},
	{
		Name: "Queen Marika, the God of Elden Ring", Image: "queen-marika-the-god-of-elden-ring.jpg",
		BodyType: 0, VoiceType: 0,
		FaceModel: 3, HairModel: 1, EyeModel: 0, EyebrowModel: 1,
		BeardModel: 1, EyepatchModel: 1, DecalModel: 1, EyelashModel: 1,
		FaceShape: [64]uint8{0, 128, 0, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 0, 128, 128, 128, 128, 0, 128, 128, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128},
		Body:      [7]uint8{128, 128, 128, 128, 128, 128, 128},
		Skin:      [91]uint8{239, 164, 160, 128, 128, 0, 128, 30, 5, 16, 128, 255, 85, 85, 128, 0, 0, 0, 128, 0, 0, 0, 128, 30, 5, 16, 128, 255, 55, 56, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 206, 158, 98, 255, 155, 0, 200, 128, 255, 45, 0, 255, 255, 255, 128, 255, 155, 0, 200, 128, 255, 45, 0, 255, 255, 255, 128, 206, 158, 98, 128, 128, 128, 206, 158, 98, 128, 128, 128, 148, 115, 70, 128, 128, 128, 0, 0, 0, 0, 0, 0},
	},
	{
		Name: "Ciri, the Princess of Cintra (Witcher)", Image: "ciri-the-princess-of-cintra-from-witcher.jpg",
		BodyType: 0, VoiceType: 0,
		FaceModel: 5, HairModel: 1, EyeModel: 0, EyebrowModel: 1,
		BeardModel: 1, EyepatchModel: 1, DecalModel: 1, EyelashModel: 1,
		FaceShape: [64]uint8{0, 128, 0, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 0, 128, 128, 128, 128, 0, 128, 128, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128},
		Body:      [7]uint8{128, 128, 128, 128, 128, 128, 128},
		Skin:      [91]uint8{212, 156, 139, 128, 128, 0, 128, 0, 0, 0, 128, 117, 56, 56, 128, 0, 0, 0, 128, 0, 0, 0, 128, 51, 81, 100, 128, 71, 24, 24, 0, 0, 0, 0, 71, 24, 24, 128, 1, 0, 185, 185, 185, 20, 56, 44, 200, 128, 255, 255, 255, 255, 255, 255, 128, 20, 56, 44, 200, 128, 255, 255, 255, 255, 255, 255, 128, 185, 185, 185, 128, 128, 128, 185, 185, 185, 128, 128, 128, 0, 0, 0, 128, 128, 128, 0, 0, 0, 70, 70, 70},
	},
	{
		Name: "Makima, the Devil Hunter (Chainsaw Man)", Image: "makima-the-devil-hunter-from-chainsaw-man.jpg",
		BodyType: 0, VoiceType: 1,
		FaceModel: 6, HairModel: 24, EyeModel: 0, EyebrowModel: 10,
		BeardModel: 1, EyepatchModel: 1, DecalModel: 1, EyelashModel: 4,
		FaceShape: [64]uint8{15, 160, 10, 0, 115, 70, 201, 87, 113, 78, 115, 130, 128, 105, 96, 100, 120, 128, 112, 162, 128, 253, 115, 154, 119, 0, 158, 78, 128, 75, 0, 143, 157, 0, 128, 53, 54, 114, 148, 108, 104, 150, 148, 98, 155, 192, 150, 222, 122, 176, 65, 163, 106, 82, 124, 153, 59, 145, 255, 127, 114, 130, 145, 137},
		Body:      [7]uint8{110, 20, 10, 40, 90, 40, 90},
		Skin:      [91]uint8{230, 180, 170, 160, 0, 0, 50, 20, 30, 25, 45, 255, 152, 139, 40, 0, 0, 0, 220, 255, 51, 51, 60, 100, 100, 100, 70, 255, 51, 51, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 255, 152, 139, 253, 211, 2, 255, 55, 245, 24, 24, 255, 255, 255, 128, 253, 211, 2, 255, 55, 245, 24, 24, 255, 255, 255, 128, 255, 152, 139, 210, 70, 0, 255, 152, 139, 210, 70, 0, 125, 72, 69, 210, 70, 0, 0, 0, 0, 0, 0, 0},
	},
	{
		Name: "Melina, the Tarnished Finger Maiden", Image: "melina-the-tarnished-finger-maiden.jpg",
		BodyType: 0, VoiceType: 1,
		FaceModel: 6, HairModel: 22, EyeModel: 0, EyebrowModel: 16,
		BeardModel: 1, EyepatchModel: 1, DecalModel: 29, EyelashModel: 4,
		FaceShape: [64]uint8{55, 155, 10, 0, 76, 114, 185, 75, 125, 148, 134, 112, 104, 171, 75, 105, 118, 130, 108, 132, 104, 248, 178, 97, 147, 0, 143, 100, 67, 85, 0, 43, 78, 0, 123, 50, 5, 90, 132, 118, 137, 183, 188, 88, 138, 190, 143, 209, 175, 125, 73, 158, 100, 115, 114, 117, 71, 167, 213, 128, 195, 146, 162, 130},
		Body:      [7]uint8{78, 18, 18, 38, 78, 38, 78},
		Skin:      [91]uint8{230, 169, 149, 160, 0, 0, 50, 20, 30, 25, 20, 255, 65, 65, 20, 0, 0, 0, 185, 0, 0, 0, 40, 42, 21, 31, 50, 101, 101, 163, 54, 184, 158, 0, 0, 0, 0, 128, 0, 0, 189, 111, 104, 255, 153, 51, 250, 0, 100, 100, 100, 255, 255, 255, 138, 87, 87, 255, 250, 0, 100, 100, 100, 255, 255, 255, 138, 189, 111, 104, 148, 128, 30, 189, 111, 104, 148, 128, 30, 79, 46, 43, 148, 128, 30, 0, 0, 0, 60, 60, 60},
	},
	{
		Name: "Helga, the Tarnished Barbarian", Image: "helga-the-tarnished-barbarian.jpg",
		BodyType: 0, VoiceType: 2,
		FaceModel: 3, HairModel: 31, EyeModel: 0, EyebrowModel: 16,
		BeardModel: 1, EyepatchModel: 1, DecalModel: 1, EyelashModel: 4,
		FaceShape: [64]uint8{75, 181, 18, 0, 163, 149, 167, 179, 108, 125, 120, 133, 107, 198, 146, 156, 157, 131, 149, 161, 129, 229, 76, 181, 175, 0, 108, 69, 76, 106, 0, 32, 131, 0, 120, 112, 119, 128, 157, 82, 104, 121, 187, 77, 134, 155, 127, 208, 127, 179, 156, 130, 244, 106, 143, 70, 191, 145, 145, 97, 124, 131, 151, 160},
		Body:      [7]uint8{168, 222, 132, 180, 206, 180, 206},
		Skin:      [91]uint8{189, 139, 123, 150, 134, 0, 47, 20, 30, 25, 20, 255, 65, 65, 57, 0, 0, 0, 65, 0, 0, 0, 40, 40, 20, 30, 177, 255, 87, 87, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 79, 69, 59, 70, 70, 70, 220, 0, 70, 70, 70, 255, 255, 255, 128, 70, 70, 70, 220, 0, 70, 70, 70, 255, 255, 255, 128, 79, 69, 59, 148, 128, 30, 79, 69, 59, 148, 128, 30, 79, 69, 59, 148, 128, 30, 0, 0, 0, 0, 0, 0},
	},
	{
		Name: "Witch of Salem, the Blackflame Apostle", Image: "witch-of-salem-the-blackflame-apostle.jpg",
		BodyType: 0, VoiceType: 0,
		FaceModel: 3, HairModel: 37, EyeModel: 0, EyebrowModel: 10,
		BeardModel: 1, EyepatchModel: 1, DecalModel: 33, EyelashModel: 3,
		FaceShape: [64]uint8{90, 110, 10, 0, 225, 144, 150, 155, 115, 115, 148, 119, 91, 123, 90, 75, 89, 102, 133, 0, 160, 65, 120, 136, 255, 0, 140, 149, 156, 176, 0, 0, 130, 0, 133, 68, 124, 80, 35, 218, 225, 40, 54, 181, 88, 165, 165, 65, 148, 5, 153, 118, 120, 65, 159, 145, 48, 168, 20, 215, 165, 200, 186, 127},
		Body:      [7]uint8{150, 22, 65, 0, 155, 0, 155},
		Skin:      [91]uint8{230, 230, 230, 255, 0, 0, 70, 44, 21, 68, 95, 255, 255, 255, 145, 0, 0, 0, 255, 0, 0, 0, 120, 100, 50, 50, 255, 0, 0, 0, 128, 228, 128, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 255, 255, 255, 220, 255, 93, 93, 93, 255, 255, 255, 128, 255, 255, 255, 220, 255, 93, 93, 93, 255, 255, 255, 128, 0, 0, 0, 145, 255, 0, 0, 0, 0, 145, 255, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0},
	},
	{
		Name: "Eleonora, the Sexy Twinblade Queen", Image: "eleonora-the-sexy-twinblade-queen.jpg",
		BodyType: 0, VoiceType: 0,
		FaceModel: 3, HairModel: 24, EyeModel: 0, EyebrowModel: 15,
		BeardModel: 1, EyepatchModel: 1, DecalModel: 12, EyelashModel: 4,
		FaceShape: [64]uint8{20, 170, 0, 0, 200, 134, 210, 175, 100, 110, 171, 137, 141, 0, 80, 99, 105, 131, 113, 185, 206, 205, 92, 126, 102, 0, 140, 119, 116, 128, 0, 120, 152, 0, 124, 78, 55, 90, 115, 128, 172, 215, 167, 181, 98, 107, 172, 0, 40, 181, 43, 128, 161, 160, 149, 97, 112, 130, 225, 235, 165, 125, 160, 135},
		Body:      [7]uint8{148, 90, 165, 68, 255, 68, 255},
		Skin:      [91]uint8{230, 230, 230, 170, 35, 0, 100, 39, 29, 41, 0, 0, 0, 0, 180, 0, 0, 0, 155, 15, 9, 3, 130, 24, 71, 71, 225, 71, 24, 24, 125, 123, 128, 255, 132, 38, 38, 128, 0, 0, 255, 255, 255, 0, 0, 0, 225, 255, 183, 183, 183, 0, 0, 0, 128, 0, 0, 0, 225, 255, 183, 183, 183, 0, 0, 0, 128, 255, 255, 255, 146, 155, 0, 255, 255, 255, 146, 155, 0, 0, 0, 0, 146, 155, 0, 0, 0, 0, 0, 0, 0},
	},
	{
		Name: "Casca, Berserk's Band of the Falcon Commander", Image: "casca-berserks-band-of-the-falcon-commander.jpg",
		BodyType: 0, VoiceType: 0,
		FaceModel: 3, HairModel: 6, EyeModel: 0, EyebrowModel: 3,
		BeardModel: 1, EyepatchModel: 1, DecalModel: 1, EyelashModel: 4,
		FaceShape: [64]uint8{0, 150, 0, 0, 255, 87, 217, 178, 91, 89, 163, 135, 139, 126, 130, 145, 112, 148, 107, 123, 114, 255, 54, 92, 9, 0, 172, 94, 151, 93, 0, 0, 15, 0, 129, 72, 0, 115, 118, 168, 29, 133, 138, 125, 118, 172, 217, 105, 181, 36, 99, 141, 74, 182, 88, 116, 86, 108, 65, 109, 56, 152, 137, 175},
		Body:      [7]uint8{158, 30, 88, 100, 148, 100, 148},
		Skin:      [91]uint8{153, 93, 64, 195, 100, 0, 20, 0, 0, 0, 40, 71, 24, 24, 70, 26, 5, 5, 163, 0, 0, 0, 40, 26, 5, 5, 20, 255, 51, 51, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 59, 37, 14, 69, 24, 1, 255, 0, 70, 70, 70, 255, 255, 255, 128, 69, 24, 1, 255, 0, 70, 70, 70, 255, 255, 255, 128, 59, 37, 14, 210, 5, 0, 59, 37, 14, 210, 5, 0, 0, 0, 0, 210, 5, 0, 0, 0, 0, 0, 0, 0},
	},
	{
		Name: "Fire Keeper, the Dark Souls 3 NPC", Image: "fire-keeper-the-dark-souls-3-npc.jpg",
		BodyType: 0, VoiceType: 0,
		FaceModel: 6, HairModel: 22, EyeModel: 0, EyebrowModel: 10,
		BeardModel: 1, EyepatchModel: 1, DecalModel: 18, EyelashModel: 4,
		FaceShape: [64]uint8{75, 165, 10, 0, 119, 127, 180, 121, 85, 100, 111, 132, 119, 111, 125, 103, 147, 136, 98, 157, 102, 243, 108, 129, 181, 0, 172, 58, 103, 75, 0, 94, 139, 0, 130, 68, 36, 105, 124, 118, 124, 153, 181, 105, 148, 200, 173, 211, 118, 170, 68, 156, 127, 100, 93, 135, 83, 166, 177, 98, 111, 109, 146, 175},
		Body:      [7]uint8{68, 28, 8, 68, 88, 68, 88},
		Skin:      [91]uint8{230, 177, 172, 160, 0, 0, 50, 20, 30, 25, 30, 255, 85, 85, 40, 0, 0, 0, 225, 0, 0, 0, 50, 70, 70, 70, 70, 255, 51, 51, 128, 153, 128, 208, 71, 24, 24, 128, 0, 0, 255, 226, 196, 58, 255, 145, 240, 80, 255, 255, 255, 255, 255, 255, 128, 58, 255, 145, 240, 80, 255, 255, 255, 255, 255, 255, 128, 255, 226, 196, 208, 68, 0, 255, 226, 196, 208, 68, 0, 167, 138, 108, 208, 68, 0, 35, 30, 26, 70, 70, 70},
	},
}

GeneratedPresets contains all appearance presets parsed from tmp/characters/characters.md.

View Source
var Gestures = map[uint32]ItemData{
	0x40002328: {Name: "Bow", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/bow.png"},
	0x40002329: {Name: "Polite Bow", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/polite_bow.png"},
	0x4000232A: {Name: "My Thanks", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/my_thanks.png"},
	0x4000232B: {Name: "Curtsy", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/curtsy.png"},
	0x4000232C: {Name: "Reverential Bow", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/reverential_bow.png"},
	0x4000232D: {Name: "My Lord", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/my_lord.png"},
	0x4000232E: {Name: "Warm Welcome", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/warm_welcome.png"},
	0x4000232F: {Name: "Wave", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/wave.png"},
	0x40002330: {Name: "Casual Greeting", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/casual_greeting.png"},
	0x40002331: {Name: "Strength!", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/strength.png"},
	0x40002332: {Name: "As You Wish", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/as_you_wish.png"},
	0x40002333: {Name: "Point Forwards", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/point_forwards.png"},
	0x40002334: {Name: "Point Upwards", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/point_upwards.png"},
	0x40002335: {Name: "Point Downwards", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/point_downwards.png"},
	0x40002336: {Name: "Beckon", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/beckon.png"},
	0x40002337: {Name: "Wait!", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/wait.png"},
	0x40002338: {Name: "Calm Down!", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/calm_down.png"},
	0x40002339: {Name: "Nod In Thought", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/nod_in_thought.png"},
	0x4000233A: {Name: "Extreme Repentance", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/extreme_repentance.png"},
	0x4000233B: {Name: "Grovel For Mercy", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/grovel_for_mercy.png"},
	0x4000233C: {Name: "Rallying Cry", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/rallying_cry.png"},
	0x4000233D: {Name: "Heartening Cry", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/heartening_cry.png"},
	0x4000233E: {Name: "By My Sword", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/by_my_sword.png"},
	0x4000233F: {Name: "Hoslow's Oath", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/hoslows_oath.png"},
	0x40002340: {Name: "Fire Spur Me", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/fire_spur_me.png"},
	0x40002341: {Name: "The Carian Oath", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/missing_icon.png"},
	0x40002342: {Name: "Bravo!", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/bravo.png"},
	0x40002343: {Name: "Jump for Joy", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/jump_for_joy.png"},
	0x40002344: {Name: "Triumphant Delight", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/triumphant_delight.png"},
	0x40002345: {Name: "Fancy Spin", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/fancy_spin.png"},
	0x40002346: {Name: "Finger Snap", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/finger_snap.png"},
	0x40002347: {Name: "Dejection", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/dejection.png"},
	0x40002348: {Name: "Patches' Crouch", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/patches_crouch.png"},
	0x40002349: {Name: "Crossed Legs", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/crossed_legs.png"},
	0x4000234A: {Name: "Rest", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/rest.png"},
	0x4000234B: {Name: "Sitting Sideways", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/sitting_sideways.png"},
	0x4000234C: {Name: "Dozing Cross-Legged", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/dozing_cross_legged.png"},
	0x4000234D: {Name: "Spread Out", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/spread_out.png"},
	0x4000234E: {Name: "Fetal Position", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/missing_icon.png"},
	0x4000234F: {Name: "Balled Up", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/balled_up.png"},
	0x40002350: {Name: "What Do You Want?", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/what_do_you_want.png"},
	0x40002351: {Name: "Prayer", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/prayer.png"},
	0x40002352: {Name: "Desperate Prayer", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/desperate_prayer.png"},
	0x40002353: {Name: "Rapture", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/rapture.png"},
	0x40002355: {Name: "Erudition", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/erudition.png"},
	0x40002356: {Name: "Outer Order", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/outer_order.png"},
	0x40002357: {Name: "Inner Order", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/inner_order.png"},
	0x40002358: {Name: "Golden Order Totality", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/golden_order_totality.png"},
	0x4000235A: {Name: "The Ring", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/the_ring.png"},
	0x401EA7A8: {Name: "Ring of Miquella", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/ring_of_miquella.png", Flags: []string{"dlc"}},
	0x401EA7A9: {Name: "May the Best Win", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/may_the_best_win.png", Flags: []string{"dlc"}},
	0x401EA7AA: {Name: "The Two Fingers", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/missing_icon.png", Flags: []string{"dlc"}},
	0x401EA7AB: {Name: "Let Us Go Together", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/let_us_go_together.png", Flags: []string{"dlc"}},
	0x401EA7AC: {Name: "O Mother", Category: "gestures", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/gestures/o_mother.png", Flags: []string{"dlc"}},
}

Gestures is the item database for gestures (for the item browser / DatabaseTab). These use ITEM IDs (0x4000xxxx), not gesture slot IDs.

View Source
var Graces = map[uint32]GraceData{}/* 419 elements not displayed */
View Source
var HP = []float32{}/* 793 elements not displayed */
View Source
var Helms = map[uint32]ItemData{}/* 212 elements not displayed */
View Source
var Incantations = map[uint32]ItemData{}/* 128 elements not displayed */
View Source
var Information = map[uint32]ItemData{}/* 102 elements not displayed */

Information holds items that appear on the in-game "Information" tab (Polish: "Informacje"). The split was created after the user verified in-game that several letters and maps that er-save-manager classifies in `KeyItems.txt` / `Tools.txt` actually live in the Information tab.

Source of truth: Fextralife "Info Items" master list cross-checked against per-item Fextralife pages and in-game verification by the user. See spec/33-info-tab-category.md for the audit trail.

View Source
var ItemSortKeys = map[uint32]SortKey{}/* 4531 elements not displayed */

ItemSortKeys maps base item ID to its in-game sort key. Auto-generated by tools/import_sort_ids.go — do not edit.

View Source
var ItemTexts map[uint32]ItemTextData

ItemTexts maps item IDs to their displayable text data. Populated by generated code in item_text_generated.go.

View Source
var ItemWeights = map[uint32]float64{}/* 4409 elements not displayed */

ItemWeights maps base item ID to weight in kg. Auto-generated by tools/import_weights.go — do not edit.

View Source
var KeyItems = map[uint32]ItemData{}/* 349 elements not displayed */
View Source
var Legs = map[uint32]ItemData{}/* 137 elements not displayed */
View Source
var MaleHairUIToPartsID = map[uint8]uint8{

	1: 0,
	2: 113,
	3: 112,
	4: 1,
	5: 3,
	6: 100,
	7: 5,
	8: 10,
	9: 101,

	10: 9,
	11: 8,
	12: 6,
	13: 7,
	14: 115,
	15: 114,
	16: 2,
	17: 4,
	18: 102,
	19: 103,
	20: 104,
	21: 105,
	22: 106,
	23: 107,
	24: 109,
	25: 108,
	26: 111,
	27: 110,
	28: 117,
	29: 119,
	30: 118,
	31: 116,

	32: 121,
	33: 125,
	34: 122,
	35: 120,
	36: 123,
	37: 124,
}

MaleHairUIToPartsID maps male hair UI position (1-based, as shown in Mirror) to the internal PartsId stored in save files. Source: empirical mapping from save file analysis (tmp/save/ER0000-wlosy.sl2). Hair IDs are NOT sequential — the game sorts hair styles differently from their internal database IDs.

Confirmed mappings (all 37 styles):

Base game (UI 1-9, from save slot analysis):

UI 1 → 0     UI 4 → 1     UI 7 → 5
UI 2 → 113   UI 5 → 3     UI 8 → 10
UI 3 → 112   UI 6 → 100   UI 9 → 101

Base game (UI 10-31, from Mirror Favorites preset extraction):

UI 10 → 9     UI 14 → 115   UI 18 → 102   UI 22 → 106   UI 26 → 111   UI 30 → 118
UI 11 → 8     UI 15 → 114   UI 19 → 103   UI 23 → 107   UI 27 → 110   UI 31 → 116
UI 12 → 6     UI 16 → 2     UI 20 → 104   UI 24 → 109   UI 28 → 117
UI 13 → 7     UI 17 → 4     UI 21 → 105   UI 25 → 108   UI 29 → 119

DLC / Shadow of the Erdtree (UI 32-37, confirmed):

UI 32 → 121   UI 34 → 122   UI 36 → 123
UI 33 → 125   UI 35 → 120   UI 37 → 124
View Source
var MapAcquired = map[uint32]MapRegionData{
	63010: {Name: "Limgrave, West", Area: "Limgrave"},
	63011: {Name: "Weeping Peninsula", Area: "Limgrave"},
	63012: {Name: "Limgrave, East", Area: "Limgrave"},
	63020: {Name: "Liurnia, East", Area: "Liurnia"},
	63021: {Name: "Liurnia, North", Area: "Liurnia"},
	63022: {Name: "Liurnia, West", Area: "Liurnia"},
	63030: {Name: "Altus Plateau", Area: "Altus"},
	63031: {Name: "Leyndell, Royal Capital", Area: "Altus"},
	63032: {Name: "Mt. Gelmir", Area: "Altus"},
	63040: {Name: "Caelid", Area: "Caelid"},
	63041: {Name: "Dragonbarrow", Area: "Caelid"},
	63050: {Name: "Mountaintops of the Giants, West", Area: "Mountaintops"},
	63051: {Name: "Mountaintops of the Giants, East", Area: "Mountaintops"},
	63052: {Name: "Consecrated Snowfield", Area: "Mountaintops"},
	63060: {Name: "Ainsel River", Area: "Underground"},
	63061: {Name: "Lake of Rot", Area: "Underground"},
	63062: {Name: "Mohgwyn Palace", Area: "Underground"},
	63063: {Name: "Siofra River", Area: "Underground"},
	63064: {Name: "Deeproot Depths", Area: "Underground"},
	63080: {Name: "Gravesite Plain", Area: "DLC"},
	63081: {Name: "Scadu Altus", Area: "DLC"},
	63082: {Name: "Southern Shore", Area: "DLC"},
	63083: {Name: "Rauh Ruins", Area: "DLC"},
	63084: {Name: "Abyss", Area: "DLC"},
}

MapAcquired contains map fragment acquisition flags (63xxx). These are transient "pickup notification pending" triggers — the game clears them after showing the "Map Fragment acquired" popup. NOT used for map visibility or items.

View Source
var MapFragmentItemToFlagID map[uint32]uint32

MapFragmentItemToFlagID is the reverse of MapFragmentItems (item ID → visible flag ID).

View Source
var MapFragmentItems = map[uint32]uint32{

	62010: 0x40002198,
	62011: 0x40002199,
	62012: 0x4000219A,
	62020: 0x4000219B,
	62021: 0x4000219C,
	62022: 0x4000219D,
	62030: 0x4000219E,
	62031: 0x4000219F,
	62032: 0x400021A0,
	62040: 0x400021A1,
	62041: 0x400021A2,
	62050: 0x400021A3,
	62051: 0x400021A4,
	62052: 0x400021AA,
	62060: 0x400021A5,
	62061: 0x400021A6,
	62062: 0x400021A8,
	62063: 0x400021A7,
	62064: 0x400021A9,

	62080: 0x401EA618,
	62081: 0x401EA619,
	62082: 0x401EA61A,
	62083: 0x401EA61B,
	62084: 0x401EA61C,
}

MapFragmentItems maps visible flag IDs (62xxx) to their corresponding map fragment inventory item IDs (0x400021xx / 0x401EAxxx). Used by SetMapRegion/RevealAllMap to add map items to inventory.

View Source
var MapSystem = map[uint32]MapRegionData{
	62000: {Name: "Allow Map Display", Area: "System"},
	62001: {Name: "Allow Underground Map Display", Area: "System"},
	82001: {Name: "Show Underground", Area: "System"},
	82002: {Name: "Show Shadow Realm Map", Area: "System"},
}

MapSystem contains system-level map display flags.

View Source
var MapUnsafe = map[uint32]MapRegionData{
	62004: {Name: "Center (sub-region)", Area: "Limgrave"},
	62005: {Name: "SW (sub-region)", Area: "Limgrave"},
	62006: {Name: "NW (sub-region)", Area: "Limgrave"},
	62007: {Name: "SE (sub-region)", Area: "Limgrave"},
	62008: {Name: "NE (sub-region)", Area: "Limgrave"},
	62009: {Name: "N (sub-region)", Area: "Limgrave"},
	62053: {Name: "Mountaintops, North (sub-region)", Area: "Mountaintops"},
	62065: {Name: "Underground (sub-region)", Area: "Underground"},
}

MapUnsafe contains sub-region visibility flags that can cause black map tiles when set without the game's normal discovery flow. Shown in UI but excluded from "Reveal All" to prevent visual corruption.

View Source
var MapVisible = map[uint32]MapRegionData{}/* 263 elements not displayed */

MapVisible contains safe map region visibility flags (62xxx). Setting these reveals the map texture for each region. Only includes flags verified as safe — see MapUnsafe for risky sub-region flags.

Presets contains all available appearance presets. Generated from tmp/characters/characters.md by scripts/parse_presets.go. Source: https://eldensliders.com/

View Source
var QuestData = map[string][]QuestStep{
	"Brother Corhyn": {
		{"Initial dialogue with Brother Corhyn and telling him that you see the Light, leading to menu pop-up", "Roundtable Hold", []QuestFlag{{60841, 1}, {11109855, 1}, {11102814, 1}, {11102812, 1}, {11109857, 0}, {1040529256, 0}, {1040529258, 0}, {1040549206, 0}, {11009456, 0}, {11009458, 0}, {1051569356, 0}, {1051569358, 0}, {1051569360, 0}, {11109886, 0}, {11109860, 0}, {11109861, 0}, {11109862, 0}, {11109863, 0}, {11109864, 0}, {11109865, 0}, {11109866, 0}, {11109867, 0}, {11109868, 0}, {11109869, 0}, {11109870, 0}}},
		{"Giving him \"Assasins Prayerbook\"", "", []QuestFlag{{11109886, 0}, {11109864, 0}}},
		{"Giving him \"Godskin Prayerbook\"", "", []QuestFlag{{11109876, 1}}},
		{"After visiting the Academy for the first time, speaking to Brother Corhyn has a new \"Talk\" option", "", []QuestFlag{{11109857, 1}}},
		{"Choosing \"Talk\", dialogue talking about leaving RTH and about Goldmask ends", "", []QuestFlag{{11109858, 1}}},
		{"\"Talk\" option disappears", "", []QuestFlag{{11109857, 0}}},
		{"Talking to Corhyn for the first time here, \"About the noble Goldmask\" option appears in the menu", "Altus Highway Junction in Altus Plateau", []QuestFlag{{1040529255, 1}, {1040522712, 1}, {1040529256, 1}}},
		{"Choosing \"About the noble Goldmask\", option stays, repeating dialogue", "", []QuestFlag{{1040529256, 0}, {1040529256, 1}}},
		{"Interacting with The Noble Goldmask after using the teleporter next to Forest-Spanning Greatbridge grace", "Forest-Spanning Greatbridge in Altus Plateau", []QuestFlag{{1040549255, 1}}},
		{"Talking to him after interacting with Goldmask, \"Tell the noble Goldmask's whereabouts\" appears now", "Altus Highway Junction in Altus Plateau", []QuestFlag{{1040529256, 0}, {1040529258, 1}}},
		{"Choosing \"Tell the noble Goldmask's whereabouts\", disappears afterwards, after a reload of the area, Corhyn will move next to Goldmask", "", []QuestFlag{{1040529259, 1}, {1040529258, 0}}},
		{"Speaking to him next to Goldmask, \"About the noble Goldmask\" option appears", "Forest-Spanning Greatbridge in Altus Plateau", []QuestFlag{{1040549205, 1}, {1040542702, 1}, {11109887, 0}, {1040549206, 1}, {1040549202, 1}}},
		{"Choosing \"About the noble Goldmask\", option disappears afterwards, they will move towards Leyndell now", "", []QuestFlag{{1040549207, 1}, {1040549206, 0}}},
		{"Hearing him talk to Goldmask", "Royal Colosseum in Leyndell", []QuestFlag{{11002733, 1}, {11002734, 1}}},
		{"Talking to him, \"About the noble Goldmask\" appears", "", []QuestFlag{{11009460, 1}, {11002732, 1}, {11109857, 0}, {1040529256, 0}, {1040529258, 0}, {1040549206, 0}, {11009456, 0}, {11009458, 0}, {1051569356, 0}, {1051569358, 0}, {1051569360, 0}, {11109886, 0}, {11109860, 0}, {11109861, 0}, {11109862, 0}, {11109863, 0}, {11109864, 0}, {11109865, 0}, {11109866, 0}, {11109867, 0}, {11109868, 0}, {11109869, 0}, {11109870, 0}, {11109887, 0}, {11009456, 1}, {11109863, 1}, {11109886, 1}, {11009452, 1}}},
		{"Choosing \"About the noble Goldmask\", option remains, repeating dialogue", "", []QuestFlag{{11009457, 1}, {11009456, 0}, {11109886, 0}, {11109863, 0}, {11009456, 1}, {11109863, 1}, {11109886, 1}}},
		{"Giving him the \"Two Finger Prayerbook\"", "", []QuestFlag{{11109877, 1}}},
		{"\"Give prayerbook\" option disappears", "", []QuestFlag{{11109886, 0}, {11109863, 0}, {11009456, 1}}},
		{"Talking to Goldmask \"...\"", "", []QuestFlag{{11009557, 1}}},
		{"Picking up the \"Golden Order Principia\" prayerbook", "Erdtree Sanctuary in Leyndell", []QuestFlag{{11007910, 1}}},
		{"\"Give a prayerbook\" appears, \"About the noble Goldmask\" still present", "Royal Colosseum in Leyndell", []QuestFlag{{11009456, 0}, {11009456, 1}, {11109867, 1}, {11109886, 1}}},
		{"Giving him \"Golden Order Principia\" prayerbook", "", []QuestFlag{{11109881, 1}}},
		{"Doing the Law of Regression on the statue, transforming it and making a new message appear", "Near Erdtree Sanctuary in Leyndell", []QuestFlag{{11009556, 1}, {11009469, 1}, {11009468, 0}, {11003723, 1}}},
		{"Telling Goldmask Radagon is Marika, receiving \"Golden Order Totality\" gesture", "Royal Colosseum in Leyndell", []QuestFlag{{60848, 1}, {11009555, 1}, {4611, 1}, {11009452, 0}, {11009452, 1}}},
		{"Speaking to Corhyn after talking to Goldmask, now sells Immutable Shield incantation", "", []QuestFlag{{11009455, 1}, {11009456, 0}, {11009458, 1}}},
		{"Choosing \"About the noble Goldmask\" now, option disappears this time", "", []QuestFlag{{11009459, 1}, {11009458, 0}}},
		{"Talking to Goldmask on the bridge", "Stargazers' Ruins in Mountaintop of the Giants", []QuestFlag{{1051569455, 1}}},
		{"Talking to Corhyn, menu pops up afterwards, \"About the noble Goldmask\" option appears", "", []QuestFlag{{1051569355, 1}, {1051562732, 1}, {11109857, 0}, {1040529256, 0}, {1040529258, 0}, {1040549206, 0}, {11009456, 0}, {11009458, 0}, {1051569356, 0}, {1051569358, 0}, {1051569360, 0}, {11109886, 0}, {11109860, 0}, {11109861, 0}, {11109862, 0}, {11109863, 0}, {11109864, 0}, {11109865, 0}, {11109866, 0}, {11109867, 0}, {11109868, 0}, {11109869, 0}, {11109870, 0}, {11109887, 0}, {1051569356, 1}}},
		{"Choosing \"About the noble Goldmask\", gets replaced with a new one", "", []QuestFlag{{1051569357, 1}, {1051569356, 0}, {1051569358, 1}}},
		{"Choosing it again, disappears afterwards, they will stay here until you unlock the Ash capital", "", []QuestFlag{{1051569359, 1}, {1051569358, 0}}},
		{"Talking to him, repeating dialogue", "", []QuestFlag{{11059207, 1}}},
		{"Receiving \"Mending Rune of Perfect Order\" from Goldmask's corpse", "", []QuestFlag{{9500, 1}, {11055019, 1}}},
		{"Reloading the area after picking up the \"Mending Rune of Perfect Order\" causes Brother Corhyn to die", "", []QuestFlag{{4200, 0}, {4201, 0}, {4202, 0}, {4203, 0}, {4203, 1}}},
		{"Picking up \"Corhyn's Bell Bearing\",\"Flail\" and \"Corhyn's Robe\"", "", []QuestFlag{{400370, 1}}},
		{"Picking up Goldmask's armor set", "", []QuestFlag{{400500, 1}, {11055020, 1}}},
		{"Giving him \"Fire Monks' Prayerbook\"", "", []QuestFlag{{11109874, 1}}},
		{"Giving him \"Giant's Prayerbook\"", "", []QuestFlag{{11109875, 1}}},
		{"Giving him \"Godskin Prayerbook\"", "", []QuestFlag{{11109876, 1}}},
		{"Giving him \"Two Fingers' Prayerbook\"", "", []QuestFlag{{11109877, 1}}},
		{"Giving him \"Assassin's Prayerbook\"", "", []QuestFlag{{11109878, 1}}},
		{"Giving him \"Dragon Cult Prayerbook\"", "", []QuestFlag{{11109883, 1}}},
		{"Giving him \"Ancient Dragon Prayerbook\"", "", []QuestFlag{{11109884, 1}}},
	},
	"Gatekeeper Gostoc": {
		{"Initial dialogue pop-up when approching him", "Stormveil Castle Gate in Limgrave", []QuestFlag{{10009549, 1}}},
		{"Talking to him, choosing Very well", "", []QuestFlag{{10009351, 1}, {10009549, 0}, {10009549, 1}, {10002731, 0}, {10002724, 1}, {10009352, 1}, {10002731, 1}, {10002724, 0}}},
		{"Choosing that you will use the gate instead", "", []QuestFlag{{10002731, 0}, {10002724, 1}}},
		{"Approaching the gate and having it open", "", []QuestFlag{{10002731, 1}, {10002724, 0}, {10009500, 1}, {10003726, 1}, {10009355, 1}, {10009378, 1}, {10000500, 1}, {10009501, 1}, {10002500, 1}}},
		{"Talking to Gostoc at the gate again, being able to buy goods now", "", []QuestFlag{{10009350, 0}, {10009353, 1}, {10009549, 0}, {10009549, 1}}},
		{"Stomping on Godricks Head and talking to himself", "Godrick the Grafted grace in Limgrave", []QuestFlag{{10009506, 1}}},
		{"Talking to him", "", []QuestFlag{{10009549, 1}, {10009399, 1}, {10009549, 0}}},
		{"Talking to him again saying \"I'm free\", repeating dialogue", "", []QuestFlag{{10009549, 1}}},
		{"Talking to him inside the Throne Room after beating Morgott", "Godrick the Grafted grace in Limgrave", []QuestFlag{{10009549, 1}}},
		{"Dialogue ends", "", []QuestFlag{{10009516, 1}}},
		{"Talking to him again, can purchase stuff, including a now \"Ancient Dragon Smithing Stone\", nothing new afterwards", "", []QuestFlag{{10009517, 1}}},
	},
	"D Hunter of the Dead": {
		{"Initial dialogue with D", "Roundtable Hold", []QuestFlag{{1044399206, 1}}},
		{"Speaking to D after killing a Tibia Mariner, showing him a Deathroot and accepting to take his place to deliver Deathroots to Gurranq, marking your map, leading to repeating dialogue", "", []QuestFlag{{1045399206, 1}, {11105013, 1}, {3095, 1}, {1045399200, 1}}},
		{"Talking to D after meeting Gurranq for the first time, menu pop up", "", []QuestFlag{{11109617, 1}, {1044399206, 1}, {11102770, 1}, {11109620, 0}, {11109622, 0}, {11109624, 0}, {11109620, 1}, {11109622, 1}, {11109620, 0}}},
		{"Dialogue ends after choosing \"About Rogier\"", "", []QuestFlag{{11109620, 1}}},
		{"Dialogue ends after choosing \"About D\", option disappears afterwards", "", []QuestFlag{{11109621, 1}, {11109620, 0}}},
		{"After reloading at a grace and talking to him again, thanking you for giving Gurranq a Deathroot, menu popup", "", []QuestFlag{{11109618, 1}}},
		{"\"Give the Weathered Dagger\" appears in D's menu now", "", []QuestFlag{{11109624, 1}}},
		{"Giving him the dagger", "", []QuestFlag{{11109625, 1}}},
		{"\"Give the Weathered Dagger\" disappears", "", []QuestFlag{{11109624, 0}}},
		{"After reloading D is set to survival 0 and dead 1", "RTH backroom", []QuestFlag{{4040, 0}, {4041, 0}, {4042, 0}, {4043, 0}, {4043, 1}}},
		{"Looting D's dead body in the backroom, receiving his armor and bell bearing", "", []QuestFlag{{400349, 1}, {11105012, 1}}},
		{"\"Hand over the Twinned Armor set?\" prompt on D's brother", "", []QuestFlag{{12029015, 1}}},
		{"Choosing yes, repeating dialogue afterwards", "", []QuestFlag{{12029016, 1}}},
		{"Receiving \"Inner Order\" gesture", "", []QuestFlag{{60847, 1}}},
		{"Approaching D, hearing him talk", "Summonwater Village Outskirts in Limgrave", []QuestFlag{{1044399210, 1}, {1044395007, 1}, {1044399210, 0}, {1044399211, 1}, {1044399212, 1}}},
		{"Talking to him", "", []QuestFlag{{1044399213, 1}}},
		{"Dialogue finishes, repeating dialogue", "", []QuestFlag{{1044399205, 1}, {1044399207, 1}, {1044399206, 1}}},
		{"Reloading the area", "", []QuestFlag{{1044399214, 0}}},
		{"Talking to him again, still repeating dialogue, unlocking the RTH will make him move", "", []QuestFlag{{1044399214, 1}}},
	},
	"Diallos": {
		{"Initial dialogue with Diallos", "Roundtable Hold", []QuestFlag{{11109406, 1}}},
		{"Dialogue when you approach him", "on a sunken building roof near the Academy Gate Town grace", []QuestFlag{{1037449202, 1}}},
		{"Dialogue ends after talking to him on the roof, repeating dialogue, will move back to the RTH", "", []QuestFlag{{1037449205, 1}}},
		{"Dialogue ends after talking to him at the RTH after the conversation at the Academy Gate Town, repeating dialogue, reloading the area makes him disappear", "Roundtable Hold", []QuestFlag{{11109430, 1}}},
		{"Talking to Diallos for the first time", "Drawing Room in Volcano Manor", []QuestFlag{{16009405, 1}, {16009412, 1}}},
		{"Talking to him again, repeating dialogue", "", []QuestFlag{{16009406, 1}}},
		{"Diallos reappears after a reload again, talking to him, repeating dialogue after", "", []QuestFlag{{16009415, 1}, {16002730, 1}}},
		{"Approaching Diallos after the second invasion, talks to himself, no new dialogue, after a reload he will be gone again tho", "", []QuestFlag{{16009416, 1}}},
		{"After defeating Rykard, Diallos moves to Jarburg, he talks to a living jar when you approach him", "Jarburg in Liurnia", []QuestFlag{{1039442721, 1}, {1039449302, 1}}},
		{"Talking to him, repeating dialogue", "", []QuestFlag{{1039449305, 1}}},
		{"Talking to the now wounded Diallos in the middle of the town, he asks if he defended the jars, you say no, he says hes a fool and dies", "", []QuestFlag{{1040, 1}, {1039449315, 1}, {3440, 0}, {3441, 0}, {3442, 0}, {3443, 0}, {3444, 0}, {3443, 1}, {1039445049, 1}}},
		{"Looting Diallos, receiving his mask, a Numen Rune and Hoslow's whip", "", []QuestFlag{{400452, 1}, {400451, 1}}},
	},
	"Dung Eater": {
		{"First time talking to him, repeating dialogue", "Roundtable Hold", []QuestFlag{{11109955, 1}}},
		{"Picking up Seedbed Curse in Volcano Manor", "", []QuestFlag{{16007700, 1}}},
		{"Talking to Dung Eater after picking up 1 Seedbed Curse, receiving \"Sewer-Gaol Key\"", "", []QuestFlag{{400380, 1}, {11109957, 1}}},
		{"Picking up second Seedbed Curse in Leyndell", "", []QuestFlag{{11007340, 1}}},
		{"Picking up third Seedbed Curse in Leyndell", "", []QuestFlag{{11007850, 1}}},
		{"Hearing Dung Eater in the Sewers", "Underground Roadside grace in Leyndell", []QuestFlag{{4603, 1}, {35009302, 1}}},
		{"Opening his cell door", "", []QuestFlag{{35008564, 1}, {35000564, 1}, {35005017, 1}}},
		{"Talking to him and choosing \"say nothing\"", "", []QuestFlag{{35009307, 1}, {35002723, 1}}},
		{"Choosing \"Leave your gaol!\"", "", []QuestFlag{{35009306, 1}}},
		{"Talking to him again, repeating dialogue, he will now be gone from the RTH", "", []QuestFlag{{35009308, 1}}},
		{"Getting invaded by Dung Eater, has some dialogue while attacking", "Small moat near Capital Rampart in Leyndell", []QuestFlag{{1045522181, 1}, {1044523710, 1}, {35009316, 1}, {35002727, 1}, {710630, 1}, {35009315, 0}, {35009315, 1}}},
		{"Killing him and receiving \"Sword of Milos\"", "", []QuestFlag{{1045522182, 1}, {1045520180, 1}, {400381, 1}, {1045525025, 1}, {1045525024, 1}, {1045525003, 1}, {1045525026, 1}}},
		{"Picking up the items on Boggart's dead body, \"Seedbed Curse\", his Bell Bearing, \"Iron Ball\" and \"Blackguard's Iron Mask\"", "", []QuestFlag{{400308, 1}, {400309, 1}, {1044525004, 1}, {65831, 1}, {3088, 1}, {1044529252, 0}, {1036439218, 1}, {1044529252, 1}, {1044529253, 1}}},
		{"Using 4 Seedbed Curses on him in the Sewers, cutscene starts", "Underground Roadside in Leyndell", []QuestFlag{{35009327, 1}, {35009328, 1}, {35009329, 1}, {35009330, 1}, {35002725, 1}, {35002725, 0}, {2200, 1}}},
		{"Cutscene ends", "", []QuestFlag{{2200, 0}, {35003722, 1}, {35009338, 1}, {35009325, 1}}},
		{"Picking up 5th Seedbed Curse", "", []QuestFlag{{15007840, 1}}},
		{"Picking up the 6th and final Seedbed Curse", "", []QuestFlag{{15007750, 1}}},
		{"Using the last Seedbed Curses on him, cutscene", "", []QuestFlag{{35009334, 1}, {35002726, 1}, {35009323, 1}, {35002726, 0}, {2200, 1}}},
		{"Cutscene ends, Dung Eater dies, Mending Rune able to be picked up", "", []QuestFlag{{2200, 0}, {35009333, 1}, {4240, 0}, {4241, 0}, {4242, 0}, {4243, 0}, {4243, 1}, {35003722, 1}, {35005034, 1}}},
		{"Receiving \"Mending Rune of the Fell Curse\"", "", []QuestFlag{{9504, 1}, {35003724, 1}}},
		{"Reloading the area, he is lootable now", "", []QuestFlag{{4243, 0}, {4243, 1}, {35009336, 1}, {4243, 0}, {4243, 1}, {35009303, 0}, {35009337, 1}, {35003725, 1}}},
		{"Picking up his armor set", "", []QuestFlag{{400382, 1}, {35005038, 1}, {35005039, 1}}},
	},
	"Ensha": {
		{"Receiving \"What do you want?\" emote", "Roundtable Hold", []QuestFlag{{60840, 1}}},
		{"Full Ensha invasion, loading screen flags when porting to the RTH until after spawning back to the normal RTH and receiving \"Clinging Bone\"", "", []QuestFlag{{2000, 0}, {2000, 1}, {11109655, 1}, {2200, 1}, {11102100, 1}, {11100690, 1}, {11002548, 1}, {4719, 1}, {4611, 1}, {4609, 1}, {4608, 1}, {4607, 1}, {4606, 1}, {4604, 1}, {4603, 1}, {4602, 1}, {4601, 1}, {4600, 1}, {4259, 1}, {4239, 1}, {4219, 1}, {4199, 1}, {4179, 1}, {4159, 1}, {4139, 1}, {4079, 1}, {4059, 1}, {3979, 1}, {3919, 1}, {3899, 1}, {3879, 1}, {3839, 1}, {3819, 1}, {3799, 1}, {3779, 1}, {3759, 1}, {3739, 1}, {3719, 1}, {3699, 1}, {3679, 1}, {3659, 1}, {3639, 1}, {3619, 1}, {3599, 1}, {3579, 1}, {3479, 1}, {3459, 1}, {3439, 1}, {3419, 1}, {3399, 1}, {3379, 1}, {3279, 1}, {3239, 1}, {3199, 1}, {3119, 1}, {3099, 1}, {3098, 1}, {3097, 1}, {3096, 1}, {3095, 1}, {3094, 1}, {3093, 1}, {3092, 1}, {3091, 1}, {3090, 1}, {3089, 1}, {3088, 1}, {3087, 1}, {3086, 1}, {3085, 1}, {3084, 1}, {3083, 1}, {3082, 1}, {3081, 1}, {3080, 1}, {3059, 1}, {3056, 1}, {3052, 1}, {3051, 1}, {3050, 1}, {3049, 1}, {3046, 1}, {3044, 1}, {3040, 1}, {9807, 0}, {9807, 1}, {551, 0}, {200, 0}, {201, 1}, {2200, 0}, {11105002, 1}, {11105001, 1}, {11105000, 1}, {11105013, 1}, {11105021, 1}, {11105022, 1}, {11105012, 1}, {11105019, 1}, {11105020, 1}, {11105023, 1}, {11105015, 1}, {11105014, 1}, {11105016, 1}, {11105009, 1}, {11105010, 1}, {11105011, 1}, {11105017, 1}, {11105018, 1}, {11105004, 1}, {11105006, 1}, {11105003, 1}, {11105005, 1}, {11103775, 1}, {11105026, 1}, {11105025, 1}, {11105024, 1}, {11103720, 1}, {11103706, 1}, {11102652, 1}, {11102651, 1}, {11102650, 1}, {11102620, 1}, {11102606, 1}, {11102602, 1}, {11100797, 1}, {11100796, 1}, {11100795, 1}, {11100794, 1}, {11100793, 1}, {11100792, 1}, {11100791, 1}, {11100790, 1}, {11100765, 1}, {11100737, 1}, {11100732, 1}, {11100704, 1}, {11100031, 1}, {11100030, 1}, {11100020, 1}, {1635, 1}, {1634, 1}, {1633, 1}, {1632, 1}, {1631, 1}, {1630, 1}, {1618, 1}, {1617, 1}, {1616, 1}, {1615, 1}, {1614, 1}, {1613, 1}, {1612, 1}, {1611, 1}, {1610, 1}, {1609, 1}, {1608, 1}, {1607, 1}, {1606, 1}, {1605, 1}, {1411, 1}, {1410, 1}, {910, 1}, {900, 1}, {551, 1}, {11103712, 1}, {11103707, 1}, {11102680, 1}, {11109656, 1}, {1035429211, 0}, {11100680, 1}, {2000, 0}, {2000, 1}, {2200, 1}, {1039409252, 0}, {1039409252, 1}, {4160, 0}, {4160, 1}, {11109648, 0}, {11109649, 0}, {11109648, 1}, {11109649, 1}, {3967, 0}, {3966, 1}, {3966, 0}, {3967, 1}, {16009464, 0}, {16009464, 1}, {3708, 0}, {3719, 0}, {3707, 1}, {3707, 0}, {3708, 1}, {3687, 0}, {3699, 0}, {3686, 1}, {1038419270, 1}, {1038419271, 0}, {3686, 0}, {3687, 1}, {1038419270, 0}, {1038419271, 1}, {3626, 0}, {3626, 1}, {3446, 0}, {3446, 1}, {3426, 0}, {3439, 0}, {3426, 1}, {3269, 0}, {3269, 1}, {3188, 0}, {3199, 0}, {3187, 1}, {3187, 0}, {3191, 1}, {3191, 0}, {3188, 1}, {1045399200, 0}, {1045399200, 1}, {1036439202, 0}, {1036439202, 1}, {1042389252, 0}, {1042389252, 1}, {1043359252, 0}, {1043359252, 1}, {1036419202, 0}, {1036419202, 1}, {551, 0}, {530, 1}, {532, 0}, {200, 1}, {201, 0}, {2200, 0}, {11102844, 0}, {11102621, 0}, {11102622, 0}, {11102790, 1}, {551, 1}, {11109355, 0}, {11009248, 0}, {11107900, 1}}},
		{"Picking up Ensha's armor set", "", []QuestFlag{{400490, 1}}},
	},
	"Fia": {
		{"Initial dialogue with Fia, accepting to be held", "Roundtable Hold", []QuestFlag{{11102845, 1}, {11102848, 1}, {11102846, 1}, {11102847, 1}, {11102849, 1}, {11102847, 0}}},
		{"Getting held by Fia, she says \"Ah, you are so very warm\" and receiving \"Baldachin's Blessing\"", "", []QuestFlag{{11102844, 1}, {11105016, 1}, {11102844, 0}, {11109006, 1}}},
		{"Being let go by Fia, finishing dialogue", "", []QuestFlag{{11102845, 0}, {11102848, 0}, {11102849, 0}, {11102846, 0}}},
		{"Standup animation finishes after letting go from Fia, letting you move around again", "", []QuestFlag{{11105014, 1}, {11105015, 1}}},
		{"Letting Fia hold you again, menu pop-up", "", []QuestFlag{{11109020, 1}}},
		{"Finishing \"Talk in secret\" dialogue with Fia / stand up animation", "", []QuestFlag{{11102845, 0}, {11102848, 0}, {11102849, 0}, {11102846, 0}}},
		{"Letting Fia hold you, after exhausting Rogier's dialogue, new option \"Do you know...?\" appears", "", []QuestFlag{{11109668, 0}, {11109668, 1}, {11102845, 1}, {11102848, 1}, {11102846, 1}, {11102847, 1}, {11102849, 1}, {11102847, 0}, {11102844, 1}, {11102844, 0}, {11109023, 1}}},
		{"Choosing \"About the Black Knifeprint\", receiving \"Knifeprint Clue\"", "", []QuestFlag{{11109017, 1}, {400334, 1}}},
		{"Letting you go after receiving the clue", "", []QuestFlag{{11102845, 0}, {11102848, 0}, {11102849, 0}, {11102846, 0}}},
		{"Letting Fia hold you again (I'm guessing after Rogier's death or after beating Radahn, unsure), \"May I ask a favor?\" appears now", "", []QuestFlag{{11109020, 0}, {11109021, 0}, {11109022, 0}, {11109023, 0}, {11109024, 0}, {11109025, 0}, {11109026, 0}, {11109021, 1}, {11109024, 1}}},
		{"Choosing \"May I ask a favor?\"", "", []QuestFlag{{11109008, 1}}},
		{"Receiving \"Weathered Dagger\"", "", []QuestFlag{{400331, 1}}},
		{"After receiving the Dagger, \"May I ask a favor disappears\", \"About the dagger\" appears, it's just repeating the dialogue", "RTH backroom", []QuestFlag{{11109021, 0}, {11109024, 0}, {11109022, 1}, {11109024, 1}}},
		{"Leaving her after the dagger dialogue", "", []QuestFlag{{11105014, 1}, {11105015, 1}}},
		{"After reloading, Fia stands over D's dead body in the backroom, talking to her", "", []QuestFlag{{11102843, 1}}},
		{"After she is done talking, she will disappear", "", []QuestFlag{{11109015, 1}, {11100737, 1}}},
		{"Talking to her after the bossfight, saying \"That's right\"", "Prince of Death's Throne in Deeproot Depths", []QuestFlag{{12039155, 1}, {3094, 1}, {12039150, 1}}},
		{"Choosing \"No I want to be held\"", "", []QuestFlag{{12039156, 1}, {12032715, 1}, {12032718, 1}, {12039150, 0}, {12039150, 1}, {12032716, 1}, {12032717, 1}, {12032719, 1}, {12032717, 0}}},
		{"Receiving Baldachin's Blessing", "", []QuestFlag{{12032714, 1}, {12035055, 1}, {12032714, 0}}},
		{"Menu pop-up, \"Talk in secret\" option appears", "", []QuestFlag{{12039170, 0}, {12039171, 0}, {12039172, 0}, {12039173, 0}, {12039174, 0}, {12039175, 0}, {12039176, 0}, {12039173, 1}}},
		{"Choosing \"Talk in secret\", option stays afterwards", "", []QuestFlag{{12039159, 1}, {12039173, 0}, {12039174, 1}}},
		{"Choosing it again, now gets replaced with \"Give Cursemark of Death\"", "", []QuestFlag{{12039160, 1}, {12039174, 0}, {12039176, 1}}},
		{"Choosing \"Give Cursemark of Death\", holds you tight afterwards, receiving \"Radiant Baldachin's Blessing\"", "", []QuestFlag{{12032723, 1}, {12032720, 1}, {12039161, 1}, {400333, 1}}},
		{"Letting loose of you again ( :c )", "", []QuestFlag{{12032724, 1}, {12030708, 1}, {12032721, 1}, {12030707, 1}, {12032723, 0}, {12032720, 0}}},
		{"\"Talk in secret\" appears again", "", []QuestFlag{{12039176, 0}, {12039170, 1}}},
		{"Choosing it again, \"Talk in secret\" stays, repeating dialogue", "", []QuestFlag{{12039157, 1}, {12039170, 0}, {12039171, 1}}},
		{"Leaving her", "", []QuestFlag{{12032715, 0}, {12032718, 0}, {12032719, 0}, {12032716, 0}}},
		{"Animation after leaving her stopped", "", []QuestFlag{{12035051, 1}, {12035052, 1}}},
		{"Reloading the area", "", []QuestFlag{{12039150, 0}, {12039150, 1}, {12032503, 1}}},
		{"\"Talk in secret\" appears again after a reload", "", []QuestFlag{{12032714, 1}, {12032714, 0}}},
		{"Choosing \"Talk in secret\", saying goodbye, option stays", "", []QuestFlag{{12039158, 1}}},
		{"Examining Fia's body and choosing to enter the dream", "", []QuestFlag{{9021, 1}, {1020, 1}, {9021, 0}}},
		{"Lichdragon Fortissax full fight, receiving the Remembrance", "", []QuestFlag{{12032725, 0}, {12032726, 0}, {12035056, 1}, {12032858, 1}, {12030852, 1}, {12032860, 1}, {553, 1}, {551, 0}, {12032870, 1}, {4138, 1}, {12030705, 1}, {4138, 0}, {4130, 0}, {4137, 1}, {12030701, 1}, {12032106, 1}, {12032861, 1}, {12030850, 1}, {9111, 1}, {61111, 1}, {12035092, 1}, {9319, 1}, {510110, 1}, {1111, 1}}},
		{"Loading screen + after bossfight flags", "", []QuestFlag{{12039150, 0}, {12039150, 1}, {12059163, 0}, {12059163, 1}, {12032850, 1}, {12032503, 0}, {12030706, 1}, {551, 1}, {12035091, 1}, {12032503, 1}}},
		{"Receiving \"Mending Rune of the Death-Prince\" from her body", "", []QuestFlag{{9502, 1}, {12035053, 1}}},
		{"Reloading the area, Fia now dead", "", []QuestFlag{{12039162, 1}, {4120, 0}, {4121, 0}, {4122, 0}, {4123, 0}, {4123, 1}, {12039150, 0}, {12039150, 1}, {12032503, 1}}},
		{"Hearing D's brother talk over Fia's dead body", "", []QuestFlag{{12039011, 1}}},
		{"Talking to D's brother, repeating dialogue", "", []QuestFlag{{12039005, 1}}},
		{"Picking up Fia's armor set", "", []QuestFlag{{400339, 1}, {12035054, 1}}},
		{"Reloading the area, D's brother now gone, loot on the ground", "", []QuestFlag{{12032503, 0}, {12039150, 0}, {12039150, 1}, {12032503, 1}}},
		{"Picking up \"Inseparable Sword\" and the \"Twinned\" armor set", "", []QuestFlag{{400348, 1}, {12035047, 1}}},
	},
	"Finger Reader Cone": {
		{"Exhausting single dialogue", "Near Stormveil Castle in Limgrave", []QuestFlag{{1041399200, 1}}},
		{"Exhausting single dialogue", "South Raya Lucaria Gate in Liurnia", []QuestFlag{{1036449200, 1}}},
		{"Exhausting single dialogue", "Smoldering Wall in Caelid", []QuestFlag{{1048399200, 1}}},
		{"Exhausting single dialogue", "Forest-Spanning Greatbridge in Altus Plateau", []QuestFlag{{1040529350, 1}}},
		{"Exhausting single dialogue", "Outer Wall Phantom Tree in Capital Outskirts", []QuestFlag{{1043359300, 1}}},
		{"Exhausting single dialogue", "Deeproot Depths", []QuestFlag{{12039101, 1}, {12039100, 1}}},
		{"Exhausting single dialogue", "Grand Lift of Rold", []QuestFlag{{1049539300, 1}}},
	},
	"Gideon Ofnir": {
		{"Getting welcomed by Gideon Ofnir", "Roundtable Hold main grace room", []QuestFlag{{11109658, 1}}},
		{"Advise from Gideon Ofnir", "", []QuestFlag{{11109659, 1}}},
		{"Initial dialogue with Gideon Ofnir, telling you to get Great Runes", "Roundtable Hold Gideon's room", []QuestFlag{{11109661, 1}}},
		{"Second dialogue with Gideon Ofnir, telling you that you will be getting a proper welcome once the Two Fingers door is open, leading to repeating \"We've spoken long enough...\" dialogue", "", []QuestFlag{{11109660, 1}}},
		{"Initial dialogue with Gideon Ofnir after receiving the Two Fingers' wisdom", "", []QuestFlag{{11109662, 1}}},
		{"Second dialogue with Gideon Ofnir, telling you about all the Great Runes, menu popup with all the \"About\" options", "", []QuestFlag{{11109664, 1}, {11102782, 1}, {11109668, 0}, {11109675, 0}, {11109677, 0}, {11109679, 0}, {11109681, 0}, {11109683, 0}, {11109684, 0}, {11109686, 0}, {11109688, 0}, {11109689, 0}, {11109691, 0}, {11109692, 0}, {11109693, 0}, {11109695, 0}, {11109697, 0}, {11109699, 0}, {11109551, 0}, {11109555, 0}, {11109668, 1}, {11109675, 1}}},
		{"Choosing \"About Godrick\"", "", []QuestFlag{{11109668, 0}, {11109675, 0}, {11109668, 1}, {11109675, 1}}},
		{"Choosing \"About Radahn\"", "", []QuestFlag{{11109670, 1}, {11109668, 0}, {11109675, 0}, {11109668, 1}, {11109675, 1}}},
		{"Choosing \"About Rykard\"", "", []QuestFlag{{11109668, 0}, {11109675, 0}, {11109668, 1}, {11109675, 1}}},
		{"Choosing \"About Morgott\"", "", []QuestFlag{{11109671, 1}, {11109668, 0}, {11109675, 0}, {11109668, 1}, {11109675, 1}}},
		{"Choosing \"About Rennala\"", "", []QuestFlag{{11109672, 1}, {11109668, 0}, {11109675, 0}, {11109668, 1}, {11109675, 1}}},
		{"Choosing \"About Nepheli\" - option disappears afterwards", "", []QuestFlag{{11109676, 1}, {11109668, 0}, {11109675, 0}, {11109668, 1}}},
		{"\"About Ensha\" appears after the invasion", "", []QuestFlag{{11109679, 1}}},
		{"Choosing \"About Ensha\" makes it not disappear, but different dialogue", "", []QuestFlag{{11109680, 1}}},
		{"Chosing \"About Ensha\" the second time", "", []QuestFlag{{11109681, 1}, {11109682, 1}}},
		{"\"About Ensha\" disappears, \"About the secret medallions\" takes it's place", "", []QuestFlag{{11109683, 1}}},
		{"Repeating dialogue, telling you about the Albinauric Woman (Latenna)", "", []QuestFlag{{11109683, 1}}},
		{"\"Nephali's despair...\" dialogue option at Gideon appears", "", []QuestFlag{{11109677, 1}}},
		{"After choosing it, it disappears", "", []QuestFlag{{11109677, 0}}},
		{"Talking to Gideon after beating Renalla", "", []QuestFlag{{11109665, 1}}},
		{"\"Show him Seluvis's Potion\" appears after getting the potion", "", []QuestFlag{{11109551, 1}}},
		{"Refusing to give him Seluvis's Potion when choosing that option, afterwards \"Give Gideon Seluvis's Potion\" appears", "", []QuestFlag{{11109551, 0}, {11109552, 1}, {11109555, 1}}},
		{"After giving Gideon the potion", "", []QuestFlag{{11109553, 1}}},
		{"\"Using the secret medallions\" option appears", "", []QuestFlag{{11109693, 1}}},
		{"\"The secret medallions are reunited\" appears", "", []QuestFlag{{11109684, 1}}},
		{"Choosing \"The secret medallions are reunited\", disappears afterwards", "", []QuestFlag{{11109684, 0}, {11109685, 1}}},
		{"Choosing \"Using the secret medallions\", option disappears, receiving \"Black Flame's Protection\" as a reward", "", []QuestFlag{{11109694, 1}, {400282, 1}, {11100791, 1}, {11109693, 0}}},
		{"After defeating Malenia, \"About the Haligtree roots\" appears", "", []QuestFlag{{11109695, 1}}},
		{"Choosing it and receiving \"Lord's Divine Fortification\", option disappears", "", []QuestFlag{{11109696, 1}, {400283, 1}, {11100792, 1}, {11109695, 0}}},
		{"Talking to Gideon after burning the tree and defeating Mohg, \"About the Lord of Blood's cocoon\" and \"Talk\" appear", "", []QuestFlag{{11109666, 1}, {11109692, 0}, {11109692, 1}, {11109699, 1}, {11109689, 1}}},
		{"Choosing \"Talk\", option stays afterwards", "", []QuestFlag{{11109690, 1}, {11109689, 0}, {11109692, 0}, {11109699, 0}, {11109692, 1}, {11109699, 1}, {11109691, 1}}},
		{"Choosing \"Talk\" again, option disappears afterwards", "", []QuestFlag{{11109556, 1}, {11109691, 0}, {11109692, 0}, {11109699, 0}, {11109692, 1}, {11109699, 1}}},
		{"Choosing \"About the Lord of Blood's cocoon\", receiving \"Law of Causality\" as a final reward, afterwards no menu at all anymore, just repeating dialogue", "", []QuestFlag{{11109550, 1}, {400285, 1}, {11100794, 1}, {11109692, 0}, {11109699, 0}}},
	},
	"Gowry": {
		{"Initial dialogue at his Shack, requesting", "Gowry's Shack in Caelid", []QuestFlag{{1050389209, 0}}},
		{"Refusing", "", []QuestFlag{{1050389206, 1}, {4606, 1}, {1050389202, 1}}},
		{"Hearing the request, wanting you to find Millicent", "", []QuestFlag{{1050389205, 1}, {1050389202, 0}, {1050389202, 1}}},
		{"Talking to him again, wants you to find an unalloyed gold needle, repeating dialogue", "", []QuestFlag{{1050389208, 1}}},
		{"Millicent Invasion at the swamp", "Aeonia Swamp in Caelid", []QuestFlag{{1049385008, 1}, {1048382182, 1}, {1048380180, 1}, {1048387500, 1}, {1048385005, 1}, {1048385004, 1}, {1048385006, 1}}},
		{"Commander O'Neil full fight, receiving \"Commander's Standard\" and \"Unalloyed Golden Needle\"", "", []QuestFlag{{1049385017, 1}, {9290, 1}, {1049382300, 1}, {1049382820, 1}, {1049382301, 1}, {1049382824, 1}, {1049385020, 1}, {9290, 0}, {1049385018, 1}, {1049380800, 1}, {1049385006, 1}, {1049385000, 1}, {1049382161, 1}, {1049385005, 1}, {1049382821, 1}, {530405, 1}, {1049385019, 1}}},
		{"Giving him the Unalloyed Gold Needle dialogue, repeating dialogue", "Gowry's Shack", []QuestFlag{{1050389207, 1}}},
		{"Receiving \"Sellia's Secret\"", "", []QuestFlag{{400311, 1}}},
		{"Talking to him after a reload", "", []QuestFlag{{1050389210, 1}}},
		{"Receiving \"Unalloyed Gold Needle\" back", "", []QuestFlag{{400310, 1}}},
		{"Talking to him again, telling you that he found her in the swamp, repeating dialogue", "", []QuestFlag{{1050389211, 1}}},
		{"Talking to him again, after giving Millicent the needle and after she was at the Shack, selling you his wares now. \"Millicent paid a visit\" option appears", "", []QuestFlag{{1050389215, 1}, {1050382704, 1}, {1050389218, 0}, {1050389220, 0}, {1050389222, 0}, {1050389224, 0}, {1050389226, 0}, {1050389229, 0}, {1050389231, 0}, {1050389236, 0}, {1050389218, 1}}},
		{"Choosing \"Millicent payed a visit\", option disappears afterwards", "", []QuestFlag{{1050389219, 1}, {1050389218, 0}}},
		{"New dialogue after leaving the menu and talking to him again, asking you to take care of Millicent, afterwards standard shop dialogue", "", []QuestFlag{{1050389216, 1}}},
		{"Talking to him after giving Millicent the prosthesis, \"I gave Millicent the prosthesis\" option appears", "", []QuestFlag{{1051395000, 1}, {1050389209, 0}, {1050382704, 1}, {1050389218, 0}, {1050389220, 0}, {1050389222, 0}, {1050389224, 0}, {1050389226, 0}, {1050389229, 0}, {1050389231, 0}, {1050389236, 0}, {1050389220, 1}}},
		{"Choosing \"I gave Millicent the prosthesis\", option disappears, \"About Millicent\" appears afterwards", "", []QuestFlag{{1050389221, 1}, {1050389220, 0}, {1050389222, 1}}},
		{"Choosing \"About Millicent\", option disappears afterwards", "", []QuestFlag{{1050389223, 1}, {1050389222, 0}}},
		{"Buying the \"Pest Threads\" incantation from him, has new dialogue after leaving the menu", "", []QuestFlag{{1050389228, 1}, {1050383702, 1}}},
		{"\"About Malenia\" appears now too", "", []QuestFlag{{1050389217, 1}, {1050389224, 1}}},
		{"Choosing \"About Malenia\", receiving \"Desperate Prayer\" gesture, option disappears", "", []QuestFlag{{60842, 1}, {1050389225, 1}, {1050389224, 0}}},
		{"Talking to Gowry after aiding Millicent, repeating dialogue", "", []QuestFlag{{1050389234, 1}}},
		{"Attacking him", "", []QuestFlag{{1050383704, 1}}},
		{"Killing him", "", []QuestFlag{{4160, 0}, {4163, 1}, {1050389238, 1}, {1050383703, 1}}},
		{"Looting him, receiving \"Flock's Canvas Talisman\" and \"Gowry's Bell Bearing\"", "", []QuestFlag{{400312, 1}, {1050385004, 1}}},
	},
	"Gurranq": {
		{"\"...\" dialogue when talking to him the first time", "Bestial Sanctuary in Caelid", []QuestFlag{{1051439205, 1}}},
		{"Choosing \"Hand over Deathroot\"", "", []QuestFlag{{1051439206, 1}}},
		{"Dialogue after handing him first Deathroot ends, receiving \"Clawmark Seal\" and \"Beast Eye\"", "", []QuestFlag{{1051432706, 1}, {1051432705, 1}, {400238, 1}, {400239, 1}}},
		{"After receiving items and having no deathroot anymore", "", []QuestFlag{{1051439206, 0}}},
		{"Giving Gurranq the second Deathroot, receiving \"Bestial Sling\"", "", []QuestFlag{{1051432705, 1}, {400237, 1}}},
		{"Sitting down at a grace after giving him the second Deathroot moves him outside near the cliff, he is howling", "At the cliff next to the Bestial Sanctuary in Caelid", []QuestFlag{{1051432702, 1}}},
		{"Talk prompt when he is outside just returning \"...\", sitting a grace grace afterwards moves him back inside", "", []QuestFlag{{1051432704, 1}}},
		{"Giving Gurranq the third Deathroot, receiving \"Bestial Vitality\"", "Bestial Sanctuary in Caelid", []QuestFlag{{400236, 1}}},
		{"Giving Gurranq the fourth Deathroot, receiving \"Ash of War: Beast's Roar\"", "", []QuestFlag{{710600, 1}, {400235, 1}, {65869, 1}}},
		{"Gurranq turns hostile after resting at a grace", "", []QuestFlag{{1051439212, 1}}},
		{"Fighting him for a while and he stops, resting at the grace makes him return to his default postition, non-hostile", "", []QuestFlag{{1051439211, 1}, {1051439212, 0}, {1051430702, 1}}},
		{"Resting at a grace afterwards, x249 0 means you havent given him the full deathroots yet", "", []QuestFlag{{1051439249, 0}}},
		{"Amount of deathroot given: 4 (I think those 2 are connected to that event)", "", []QuestFlag{{1051439243, 1}}},
		{"Giving him the fifth Deathroot, new dialogue, receiving \"Beast Claw\"", "", []QuestFlag{{1051439206, 1}, {1051432705, 1}, {400234, 1}, {1051439206, 0}}},
		{"Picking up the seventh Deathroot", "", []QuestFlag{{30187900, 1}}},
		{"Picking up eighth Deathroot", "", []QuestFlag{{1051577720, 1}}},
		{"Giving him the seventh Deathroot, receiving \"Beastclaw Greathammer\"", "", []QuestFlag{{1051432705, 1}, {400232, 1}}},
		{"Giving him the eighth Deathroot, dialogue stays the same, receiving \"Gurranq's Beast Claw\"", "", []QuestFlag{{400231, 1}}},
		{"Picking up the ninth and last Deathroot", "", []QuestFlag{{30207910, 1}}},
		{"Giving him the last Deathroot, receiving \"Ancient Dragon Smithing Stone\"", "", []QuestFlag{{400230, 1}, {1051439212, 1}, {1051430703, 1}, {1051435004, 1}, {1051435003, 1}}},
		{"He howls and disappears", "", []QuestFlag{{1051432709, 1}, {1051439206, 0}}},
		{"Gets set after a reload", "", []QuestFlag{{1051439212, 0}}},
	},
	"Hyetta": {
		{"Initial dialogue ends at Lake-Facing Cliffs site of grace in Liurnia", "Lake-Facing Cliffs in Liurnia", []QuestFlag{{1039409205, 1}}},
		{"Giving her a Shabiri Grape, repeating dialogue afterwards", "", []QuestFlag{{1039409206, 1}}},
		{"Receiving \"As You Wish\" emote", "", []QuestFlag{{60810, 1}}},
		{"Flags that printed after sitting down at a grace after talking to Hyetta, causing her to disappear (may be flags that remove her from this spot?) (Looked similar to the dialogue ones, so i included them)", "", []QuestFlag{{1039409252, 0}, {1039409252, 1}}},
		{"Initial dialogue asking for a Grape", "Purified Ruins in Liurnia", []QuestFlag{{1038419200, 1}}},
		{"Picking up second Shabiri Grape", "", []QuestFlag{{1039417200, 1}}},
		{"Giving Hyetta her second Grape, leads to repeating dialogue, she disappears after a reload", "", []QuestFlag{{1038419205, 1}}},
		{"Giving Hyetta her third Grape", "Gate Town Bridge in Liurnia", []QuestFlag{{1038439200, 1}, {1038439205, 1}, {3096, 1}}},
		{"Telling her the Grapes are really human eyes", "", []QuestFlag{{1038439206, 1}}},
		{"Moving away from her, hearing her puke", "", []QuestFlag{{1038439207, 1}}},
		{"After resting at a grace and speaking to her again, she tells you she will become a Finger Maiden, disappears after a reload now", "", []QuestFlag{{1038439209, 1}}},
		{"Initial dialogue, asking for a Fingerprint Grape, repeating dialogue", "Bellum Church in Liurnia", []QuestFlag{{1036499205, 1}}},
		{"Giving her the Fingerprint Grape, repeating dialogue, disappears from here after a reload", "", []QuestFlag{{1036499206, 1}, {1036499207, 1}}},
		{"Talking to her, telling you to go to the door", "Frenzied Flame Proscription site of grace in Altus Plateau", []QuestFlag{{35009205, 1}, {3096, 1}, {35009200, 1}}},
		{"GOING MAD, + full cutscene and after cutscene flags, Hyetta dies", "", []QuestFlag{{35000500, 1}, {108, 1}, {7500, 1}, {35000501, 1}, {9021, 1}, {2200, 1}, {2200, 0}, {35003790, 1}, {3620, 0}, {3621, 0}, {3622, 0}, {3623, 0}, {3624, 0}, {3623, 1}, {35003730, 1}, {35000501, 0}, {9431, 1}, {9430, 1}, {35002500, 1}, {1020, 1}, {9421, 1}, {1801, 1}, {9420, 1}, {9021, 0}, {35003500, 1}, {1800, 1}}},
		{"Talking to Hyetta afterwards, she wants you to touch her with the flame", "", []QuestFlag{{35009206, 1}, {35009200, 0}, {35009200, 1}}},
		{"Touching Hyetta", "", []QuestFlag{{35009210, 1}, {35002705, 1}, {35002708, 1}, {35002706, 1}, {35002707, 1}, {35002709, 1}}},
		{"After touching her", "", []QuestFlag{{35002707, 0}, {35002705, 0}, {35002706, 0}, {35005031, 1}, {35000701, 1}, {35002708, 0}, {35009210, 0}}},
		{"Talking to her after touching her", "", []QuestFlag{{35009208, 1}}},
		{"Dialogue ends", "", []QuestFlag{{35009209, 1}}},
		{"She burns away and dies", "", []QuestFlag{{35009211, 1}, {35000703, 1}}},
		{"Looting her body, receiving \"Frenzied Flame Seal\" and \"Frenzyflame Stone\"", "", []QuestFlag{{400089, 1}, {35005033, 1}}},
	},
	"Iji": {
		{"Initial dialogue", "Road to Manor in Liurnia", []QuestFlag{{1034499205, 1}, {3092, 1}, {1034499200, 1}}},
		{"Menu pop up after second dialogue ends, options are \"Purchase\", \"Strengthen armaments\", \"Please take care\"", "", []QuestFlag{{1034499206, 1}, {1034499208, 1}, {1034499209, 1}, {1034499230, 1}, {1034492702, 1}, {1034499213, 0}, {1034499214, 0}, {1034499215, 0}, {1034499216, 0}, {1034499214, 1}, {1034499213, 1}, {1034499215, 1}, {1034499213, 0}, {1034499215, 0}}},
		{"Choosing \"Please take care\", option gets replaced with \"Talk\" afterwards", "", []QuestFlag{{1034499211, 1}, {1034499214, 0}, {1034499213, 1}, {1034499215, 1}, {1034499215, 0}}},
		{"Choosing \"Talk\", gets replaced with \"About advice\" afterwards - also repeats, \"Blaidd sent me\" appears now", "", []QuestFlag{{1034499210, 1}, {1034499213, 0}, {1034499216, 1}, {1034499215, 1}}},
		{"Choosing \"Blaidd sent me\", disappears afterwards, now also sells \"Carian Filigreed Crest\"", "", []QuestFlag{{1034509360, 1}, {1034499215, 0}, {1034499216, 0}, {1034499216, 1}}},
		{"Talking to Spirit Iji", "Ranni's Rise in Liurnia", []QuestFlag{{1034509355, 1}, {1034509357, 1}}},
		{"Talking to Spirit Iji again, saying sorry for the warning he gave, repeating dialogue", "", []QuestFlag{{1034509358, 1}}},
		{"Talking to Iji again after searching for Nokron and going with Blaidd, options \"About Nokron\" and \"About Blaidd\" appear", "Road to Manor in Liurnia", []QuestFlag{{1035502701, 0}, {1035502701, 1}, {1034495010, 1}, {1034499225, 0}, {1034499226, 0}, {1034499227, 0}, {1034499228, 0}, {1034499229, 0}, {1034499244, 0}, {1034499245, 0}, {1034499246, 0}, {1034499221, 0}, {1034499249, 0}, {1034499247, 0}, {1034499248, 0}, {1034499231, 0}, {1034499234, 0}, {1034499235, 0}, {1034499225, 1}, {1034499227, 1}}},
		{"After choosing \"About Nokron\", option doesn't disappear, repeating dialogue on it", "", []QuestFlag{{1034499222, 1}, {1034499225, 0}, {1034499227, 0}, {1034499226, 1}, {1034499227, 1}}},
		{"After choosing \"About Blaidd\", option disappears afterwards", "", []QuestFlag{{1034499223, 1}, {1034499226, 0}, {1034499227, 0}, {1034499226, 1}}},
		{"After exhausting all of Jar-Bairn's first dialogue, this got set, apparently a flag for Iji (has no new talking options, so idk why this was set)", "Jar-Burg in Liurnia", []QuestFlag{{1039442739, 1}}},
		{"Talking to Iji after defeating Radahn and having been to Blaidd in the Evergaol, \"Why is Blaidd in the Evergaol?\" option appears", "Road to Manor in Liurnia", []QuestFlag{{1034499225, 0}, {1034499226, 0}, {1034499227, 0}, {1034499228, 0}, {1034499229, 0}, {1034499244, 0}, {1034499245, 0}, {1034499246, 0}, {1034499221, 0}, {1034499249, 0}, {1034499247, 0}, {1034499248, 0}, {1034499231, 0}, {1034499234, 0}, {1034499235, 0}, {1034499247, 1}, {3092, 1}, {1034499200, 0}, {1034499200, 1}}},
		{"Choosing \"Why is Blaidd in the Evergaol?\", option disappears afterwards", "", []QuestFlag{{1034499241, 1}, {1034499247, 0}}},
		{"Talking to Iji after Ranni leaves for her Journey, \"Talk\" option appears", "", []QuestFlag{{1034499233, 1}, {1034499234, 1}, {1034499200, 0}, {1034499200, 1}}},
		{"Choosing \"Talk\" option, now a repeating dialogue option", "", []QuestFlag{{1034499232, 1}, {1034499234, 0}, {1034499235, 1}}},
		{"Talking to Iji after Blaidd's death", "", []QuestFlag{{1035482260, 1}, {1034482261, 1}, {1034482260, 1}}},
		{"Menu pop-up, \"Blaidd's death\" option appears", "", []QuestFlag{{1034492702, 1}, {1034499225, 0}, {1034499226, 0}, {1034499227, 0}, {1034499228, 0}, {1034499229, 0}, {1034499244, 0}, {1034499245, 0}, {1034499246, 0}, {1034499221, 0}, {1034499249, 0}, {1034499247, 0}, {1034499248, 0}, {1034499231, 0}, {1034499234, 0}, {1034499235, 0}, {1034499248, 1}}},
		{"Choosing \"Blaidd's death\", option disappears afterwards", "", []QuestFlag{{1034499242, 1}, {1034499248, 0}}},
		{"After a reload, Iji is now dead", "", []QuestFlag{{9809, 0}, {9804, 1}, {1035502701, 0}, {1035502701, 1}, {1034495002, 1}, {1034495006, 1}, {1042379200, 0}, {1042379202, 0}, {1042379206, 0}, {1046389201, 0}, {1043349250, 0}, {1038509250, 0}, {1043539250, 0}, {11009255, 0}, {1043509200, 0}, {1054559200, 0}, {1036489250, 0}, {1039519250, 0}, {1037519200, 0}, {10009656, 0}, {11009270, 0}, {11009275, 0}, {1054539210, 0}, {35009350, 0}, {35009352, 0}, {1054539215, 0}, {1042379208, 0}, {11009265, 0}, {35009355, 0}, {35009358, 0}}},
		{"Picking up \"Iji's Bell Bearing\" and \"Iji's Mirrorhelm\"", "", []QuestFlag{{400240, 1}, {400241, 1}, {1034495011, 1}}},
	},
	"Irina": {
		{"Initial dialogue with Irina", "Bridge of Sacrifice in Limgrave", []QuestFlag{{1045349205, 1}}},
		{"Second dialogue with Irina, agreeing to deliver letter to her father", "", []QuestFlag{{1045349207, 1}}},
		{"Receiving \"Irina's Letter\" - repeating dialogue afterwards", "", []QuestFlag{{400080, 1}}},
		{"Talking to Edgar for the first time, receiving \"Sacrificial Twig\" talisman", "Castle Morne in Limgrave", []QuestFlag{{1043319205, 1}, {400060, 1}}},
		{"Delivering Irina's Letter to Edgar, repeating dialogue afterwards", "", []QuestFlag{{1043319206, 1}, {3398, 1}, {1043310706, 1}, {3399, 1}, {3398, 0}, {3385, 0}, {3386, 0}, {3387, 0}, {3388, 0}, {3389, 0}, {3390, 0}, {3391, 0}, {3392, 0}, {3393, 0}, {3394, 0}, {3395, 0}, {3396, 0}, {3397, 0}, {3386, 1}, {3386, 0}, {3387, 1}}},
		{"Defeating Leonine Misbegotten and talking to Edgar afterwards", "", []QuestFlag{{1043319207, 1}}},
		{"Finding Irina dead", "Bridge of Sacrifice in Limgrave", []QuestFlag{{1045349215, 1}}},
		{"Talking to Edgar at Irina's dead body - repeating dialogue", "", []QuestFlag{{1045349255, 1}}},
		{"Defeating the Invader Edgar and receiving a Shabiri Grape and Banished Knight's Halberd+8", "Revenger's Shack in Liurnia", []QuestFlag{{1033447040, 1}, {1033442181, 1}, {1033447000, 1}, {1033442182, 1}, {1033440180, 1}, {400061, 1}, {1033445018, 1}, {1033445017, 1}, {1033445019, 1}, {65836, 1}}},
	},
	"Iron Fist Alexander": {
		{"Hearing Alexander asking for help", "Saintsbridge in Limgrave", []QuestFlag{{1043399302, 1}}},
		{"Initial dialogue with Alexander, choice popup", "", []QuestFlag{{1043399305, 1}, {1043399313, 1}}},
		{"Accepting to help him get out of the hole", "", []QuestFlag{{1043399306, 1}}},
		{"Smacking him out of the hole, receiving \"Triumph!\" emote", "", []QuestFlag{{1043399312, 1}, {1043399311, 1}, {1043392715, 0}, {1043392711, 0}, {60828, 1}, {1043393721, 1}, {1043399314, 0}, {1043390724, 1}}},
		{"First dialogue after helping him out of the hole, receiving \"Exalted Flesh\" as a reward", "", []QuestFlag{{1043399307, 1}, {400170, 1}}},
		{"Dialogue after receiving reward, telling you about the festival at Redmane Castle, leads to repeating dialogue", "", []QuestFlag{{1043399308, 1}}},
		{"Talking to him at the Festival, repeating dialogue", "Festival Plaza in Caelid", []QuestFlag{{1051369255, 1}}},
		{"Initiating dialogue after Radahn's fight", "Radahn's arena in Caelid", []QuestFlag{{1043399313, 1}}},
		{"First dialogue ends", "", []QuestFlag{{1051369265, 1}}},
		{"Talking to him again", "", []QuestFlag{{1051369266, 1}}},
		{"Talking to him twice again, repeating dialogue afterwards, disappears after a reload", "", []QuestFlag{{1051369267, 1}}},
		{"Alexander being stuck in yet another hole", "South of Carian Study Hall in Liurnia", []QuestFlag{{4607, 1}, {1039449202, 1}, {1039443702, 1}, {1039442702, 0}, {1039442703, 0}, {1039442702, 1}, {1039442703, 1}}},
		{"Initiating dialogue", "", []QuestFlag{{1043399313, 1}}},
		{"After he is done talking, menu pop-up, either helping him or not, saying no does nothing", "", []QuestFlag{{1043392716, 1}, {1039449205, 1}, {1039442702, 0}, {1039442703, 0}, {1039442702, 1}}},
		{"Saying youll help him out", "", []QuestFlag{{1039449206, 1}}},
		{"Attacking him, telling you to stop, since he's stuck, asking you to use something slippery", "", []QuestFlag{{1039449211, 1}}},
		{"Talking to him", "", []QuestFlag{{1039449208, 1}}},
		{"Using an Oil Pot on him", "", []QuestFlag{{1039449208, 1}, {1039449207, 1}}},
		{"Attacking him again, freeing him this time", "", []QuestFlag{{1039443705, 1}, {1043399312, 1}, {1039449214, 1}, {1043392715, 0}, {1043392711, 0}, {1043399314, 0}, {1039443706, 1}, {1039443701, 1}}},
		{"Talking to him again", "", []QuestFlag{{1039449209, 1}}},
		{"Receiving \"Exalted Flesh\" as a thanks", "", []QuestFlag{{400171, 1}}},
		{"Talking to him again, telling you he will move to a mountain, repeating dialogue", "", []QuestFlag{{1039449210, 1}}},
		{"Interacting with his message infront of Volcano Manor", "Volcano Manor", []QuestFlag{{710630, 1}, {400179, 1}}},
		{"Hearing him scream inside the Lava", "near Fort Laiedd in Altus Plateau", []QuestFlag{{1035539206, 1}, {1035532702, 1}, {1035535016, 1}, {1035532702, 0}, {1035532703, 1}, {1035539202, 1}}},
		{"Talking to him", "", []QuestFlag{{1043399313, 1}}},
		{"Dialogue ends, he gives you \"Jar\" helmet, repeating dialogue, he does not disappear after a reload", "", []QuestFlag{{1035539205, 1}, {1035539209, 1}, {400172, 1}}},
		{"Talking to Alexander", "Dragon Temple Lift site of grace in Crumbling Farum Azula", []QuestFlag{{1043399313, 1}}},
		{"Dialogue ends, wants you to fight him", "", []QuestFlag{{13009255, 1}}},
		{"Talking to him and fighting him afterwards", "", []QuestFlag{{13009256, 1}, {13005031, 1}, {13005032, 1}, {3660, 0}, {3661, 0}, {3662, 0}, {3663, 0}, {3662, 1}, {400175, 1}, {13009261, 1}, {13009262, 1}, {13002712, 1}, {3662, 0}, {3660, 1}, {13009258, 1}}},
		{"Talking to him after the fight, he will die, you receive \"Shard of Alexander\" and \"Alexander's Innards\"", "", []QuestFlag{{13009257, 1}, {3660, 0}, {3663, 1}, {13005033, 1}, {400174, 1}, {3663, 0}, {3663, 1}, {13003711, 1}}},
		{"Talking to him, repeating dialogue, when festival starts he will move", "Gael Tunnel in Caelid", []QuestFlag{{32009206, 1}}},
	},
	"Jar-Bairn": {
		{"Initial dialogue, choosing the bottom option, saying you are not the new Potentate", "Jar-Burg in Liurnia", []QuestFlag{{1039449256, 1}, {4608, 1}, {1039449252, 1}}},
		{"Talking to Jar-Bairn again, showing your hands, telling you you are not fit for it, repeating dialogue", "", []QuestFlag{{1039449255, 1}, {1039449252, 0}, {1039449252, 1}}},
		{"Dialogue after reloading the area, telling you, you are free to pick any flowers, repeating dialogue", "", []QuestFlag{{1039449258, 1}, {1039442713, 1}}},
		{"Reloading the area again, talking to you about Alexander", "", []QuestFlag{{1039449260, 1}}},
		{"Talking again, telling you he is a warrior jar aswell, repeating dialogue", "", []QuestFlag{{1039449261, 1}}},
		{"Reloading yet again, telling you about the poachers, repeating dialogue, even after reload now", "", []QuestFlag{{1039449263, 1}}},
		{"After defeating Rykard, Jar-Bairn has dialogue about Diallos, who moved here", "", []QuestFlag{{1039449265, 1}}},
		{"Talking to him again, repeating dialogue", "", []QuestFlag{{1039449266, 1}}},
		{"Reloading the area, you can hear Jar-Bairn talking in his dreams when interacting with him, repeating dialogue", "", []QuestFlag{{1039442730, 1}, {1039442715, 1}, {1039449275, 1}, {1039442716, 1}}},
		{"Reloading the area again", "", []QuestFlag{{1039442732, 1}, {1039449276, 1}}},
		{"These are the flags in daytime for Jar-Bairn, he will be awake", "", []QuestFlag{{1039442732, 0}, {1039442715, 0}, {1039442736, 1}, {1039449277, 1}}},
		{"Talking to Jar-Bairn again, who now moved into the middle of the town, repeating dialogue", "", []QuestFlag{{1039449270, 1}}},
		{"Reloading the area, Jar-Bairn now kneels over Diallos", "", []QuestFlag{{1039443746, 1}, {1039443745, 1}, {1039443744, 1}, {1039443743, 1}, {1039443742, 1}, {1039443741, 1}, {1039443740, 1}, {1039442730, 0}, {1039442731, 0}, {1039442732, 0}, {1039442733, 0}, {1039442734, 0}, {1039442735, 0}, {1039442736, 0}, {1039442737, 0}, {1039442738, 0}, {1039442739, 0}, {1039442715, 0}, {1039443731, 1}, {1039443728, 1}, {1039443727, 1}, {1039443712, 1}, {1039443701, 1}, {1043399303, 0}, {1039449252, 0}, {1039449252, 1}, {1236475008, 1}, {1039432340, 1}, {1039445054, 1}, {1039435003, 1}, {1238475006, 1}, {1237485005, 1}, {1237485050, 1}, {1038432260, 1}}},
		{"Talking to Jar-Bairn after the reload, repeating dialogue", "", []QuestFlag{{1039442712, 1}, {1039449285, 1}}},
		{"After reloading the area again, Jar-Bairn will now move back to his initial position, Diallos' body will be gone and loot now present", "", []QuestFlag{{1042379200, 0}, {1042379202, 0}, {1042379206, 0}, {1046389201, 0}, {1043349250, 0}, {1038509250, 0}, {1043539250, 0}, {11009255, 0}, {1043509200, 0}, {1054559200, 0}, {1036489250, 0}, {1039519250, 0}, {1037519200, 0}, {10009656, 0}, {11009270, 0}, {11009275, 0}, {1054539210, 0}, {35009350, 0}, {35009352, 0}, {1054539215, 0}, {1042379208, 0}, {11009265, 0}, {35009355, 0}, {35009358, 0}}},
		{"Talking to him after the reload, saying he wants to go on a journey, repeating dialogue", "", []QuestFlag{{1039449280, 1}, {1039442713, 1}}},
		{"Reloading the area, he is still here, talking to him again, saying he'll go once ready, repeating dialogue", "", []QuestFlag{{1039449282, 1}}},
		{"After reloading the area again, this gets set", "", []QuestFlag{{1039442733, 1}}},
		{"Reloading again, 2 more flags", "", []QuestFlag{{1039442733, 0}, {1039442738, 1}}},
		{"Reloading again, he's sleeping, repeating dialogue", "", []QuestFlag{{1039442738, 0}, {1039442731, 1}, {1039442715, 1}, {1039442716, 1}}},
		{"Reloading again, he is awake again, this cycle repeats", "", []QuestFlag{{1039442731, 0}, {1039442715, 0}, {1039442736, 1}}},
		{"Giving Jar-Bairn Alexander's innards", "", []QuestFlag{{1039449289, 1}}},
		{"Talking to him again, saying goodbye", "", []QuestFlag{{1039449291, 1}}},
		{"After a reload he will be gone, picking up \"Companion Jar\" where he was", "", []QuestFlag{{400460, 1}, {1039445027, 1}}},
	},
	"Jerren": {
		{"Initial automatic dialogue when you get near him at the Plaza, welcoming everyone to the festival", "Festival Plaza in Caelid", []QuestFlag{{1051362701, 1}, {3097, 1}, {1051369222, 1}}},
		{"Object Flag when approaching Jerren", "", []QuestFlag{{1051362500, 1}}},
		{"Talking to Jerren and saying you are ready, Cutscene begins to play", "", []QuestFlag{{9411, 1}, {3618, 1}, {2200, 1}, {9021, 1}, {3619, 1}}},
		{"Cutscene ends", "", []QuestFlag{{3618, 0}, {3605, 0}, {3606, 0}, {3607, 0}, {3608, 0}, {3609, 0}, {3610, 0}, {3611, 0}, {3612, 0}, {3613, 0}, {3614, 0}, {3615, 0}, {3616, 0}, {3617, 0}, {3612, 1}}},
		{"Making Blaidd summonable in the fight", "", []QuestFlag{{1051369359, 1}}},
		{"These get set after the cutscene ends, they have no reference in the sheet, i have no idea what they do", "", []QuestFlag{{1252382433, 1}, {1252382417, 1}, {1252382401, 1}, {1252382385, 1}, {1252382377, 1}, {1252382369, 1}, {1252382273, 1}, {1252382257, 1}, {1252382241, 1}, {1252382225, 1}, {1252382217, 1}, {1252382209, 1}, {9021, 0}}},
		{"Receiving \"Heartening Cry\" after he is done talking after the cutscene, repeating dialogue", "", []QuestFlag{{60821, 1}}},
		{"Talking to him after Radahn's fight", "", []QuestFlag{{1051369235, 1}}},
		{"Talking to him again, repeating dialogue, disappears afterwards, festival will set to end", "", []QuestFlag{{1051369236, 1}}},
		{"After a reload, festival set to be ended", "", []QuestFlag{{9413, 1}}},
		{"Talking to him again, repeating dialogue", "", []QuestFlag{{1041339256, 1}}},
		{"Checking the Invading sign to help Jerren and choosing no", "Raya Lucaria Grand Library in Liurnia", []QuestFlag{{14002142, 1}, {14002142, 0}}},
		{"Choosing yes, spawning in", "", []QuestFlag{{14002141, 1}, {14002140, 1}}},
		{"Defeating Sellen, receiving her Bell Bearing and \"Witch's Glintstone Crown\"", "", []QuestFlag{{14002145, 1}, {7608, 1}, {14005028, 1}, {14002141, 0}, {14002660, 0}, {1034509259, 0}, {14002660, 1}, {400106, 1}, {400107, 1}}},
		{"Speaking to Jerren outside, receiving an \"Ancient Dragon Smithing Stone\"", "", []QuestFlag{{400400, 1}, {14009355, 1}}},
		{"Talking to him again, repeating dialogue", "", []QuestFlag{{14009356, 1}}},
	},
	"Kale": {
		{"First Kalé dialogue finished / Kalé menu pop-up", "Church of Elleh in Limgrave", []QuestFlag{{1042362712, 1}, {1042369308, 1}, {1042369306, 0}, {1042369307, 0}, {1042369319, 0}, {1042369321, 0}, {1042369322, 0}, {1042369319, 1}, {1042369320, 0}, {1042369325, 0}}},
		{"Purchasing Crafting Kit", "", []QuestFlag{{710570, 1}, {1042362713, 1}, {1042369309, 1}}},
		{"Purchasing Cracked Pot", "", []QuestFlag{{710580, 1}}},
		{"Finishing \"About Kalé\" dialogue", "", []QuestFlag{{1042362714, 1}, {1042369319, 0}}},
		{"Kalé \"Talk\" prompt, dialogue 1", "", []QuestFlag{{1042369321, 1}, {1042369322, 1}}},
		{"Kalé \"Talk\" prompt, dialogue 2 -> \"Talk\" disappears afterwards", "", []QuestFlag{{1042369317, 1}, {1042369322, 0}}},
		{"Approaching Kalé after hearing Blaidd howl", "", []QuestFlag{{1043365001, 1}, {1042365003, 1}, {1042363730, 1}, {1043362215, 1}, {1043362217, 1}, {1043362211, 1}, {1043362212, 1}, {1043362216, 1}, {1042362712, 1}, {1042369306, 0}, {1042369307, 0}, {1042369319, 0}, {1042369321, 0}, {1042369322, 0}, {1042369320, 0}, {1042369325, 0}, {1042369320, 1}, {1043362213, 1}}},
		{"\"About the howling in the woods\" prompt, receiving \"Finger Snap\" emote", "", []QuestFlag{{1042369328, 1}, {60830, 1}, {1042369320, 0}}},
		{"After receiving \"Finger Snap\" exiting out of Kalés menu", "", []QuestFlag{{1042369307, 1}}},
		{"Menu option \"About Blaidd\", after having met Blaidd", "", []QuestFlag{{1042369325, 1}}},
		{"After choosing \"About Blaidd\" dialogue end", "", []QuestFlag{{1042369329, 1}}},
		{"Menu option \"About Blaidd\" disappears", "", []QuestFlag{{1042369325, 0}}},
	},
	"Kenneth Haight": {
		{"Initiating first dialogue with Kenneth Haight", "Mistwood Outskirts in Limgrave", []QuestFlag{{1045382705, 1}}},
		{"End of first dialogue of Kenneth Haight", "", []QuestFlag{{1045389205, 1}}},
		{"End of second dialogue with Kenneth Haight, telling you about a reward for clearing out the Fort", "", []QuestFlag{{1045389206, 1}}},
		{"End of the third time using \"Talk\" with Kenneth Haight", "", []QuestFlag{{1045389207, 1}}},
		{"Fourth time using \"Talk\" with Kenneth Haight -> repeating dialogue \"What are you waiting for...\"", "", []QuestFlag{{1045389208, 1}}},
		{"Receiving \"Ash of War: Bloody Slash\" from the Godrick Knight on the top of Fort Haight -> possibly triggering the Fort to be empty after a reload of the area", "Fort Haight in Limgrave", []QuestFlag{{65877, 1}}},
		{"Talking to Kenneth Haight after clearing the Fort Haight", "Mistwood Outskirts in Limgrave", []QuestFlag{{1045389220, 1}}},
		{"Receiving \"Erdsteel Dagger\" as a reward from Kenneth Haight", "", []QuestFlag{{400221, 1}}},
		{"Talking to Kenneth Haight after receiving \"Erdsteel Dagger\"", "", []QuestFlag{{1045389221, 1}}},
		{"Second dialogue with Kenneth Haight after receiving \"Erdsteel Dagger\", asking you to enter his service - prompt to choose pops up", "", []QuestFlag{{1045389223, 1}}},
		{"After agreeing to enter his service dialogue with Kenneth Haight, leading to repeated dialogue", "", []QuestFlag{{1045389222, 1}, {1046360706, 1}}},
		{"Approaching Fort Haight after exhausting dialogue with Kenneth Haight at Mistwood Outskirts", "Fort Haight in Limgrave", []QuestFlag{{1045365003, 1}, {1045365005, 1}, {1045365006, 1}, {1045365007, 1}, {1045365008, 1}}},
		{"End of first dialogue with Kenneth Haight", "", []QuestFlag{{1046369205, 1}}},
		{"End of second dialogue with Kenneth Haight", "", []QuestFlag{{1046369206, 1}}},
		{"End of third dialogue with Kenneth Haight -> leading to repeating dialogue", "", []QuestFlag{{1046369207, 1}}},
		{"Talking to him after killing Morgott, he will be moved here", "Godrick the Grafted grace in Limgrave", []QuestFlag{{10009755, 1}}},
		{"Talking to him again, repeating dialogue", "", []QuestFlag{{10009756, 1}}},
	},
	"Knight Bernahl": {
		{"Initial dialogue at \"Warmaster's Shack\" - menu pop-up", "Warmaster's Shack in Limgrave", []QuestFlag{{1042389255, 1}, {1042382713, 1}, {3087, 1}, {1042389252, 1}}},
		{"\"Talk\" dialogue -> exhuasted dialogue afterwards", "", []QuestFlag{{1042389257, 1}}},
		{"Talking to Bernahl the first time, saying you don't understand", "Drawing Room in Volcano Manor", []QuestFlag{{16009456, 1}, {16009452, 1}}},
		{"Talking to him again, saying you understand", "", []QuestFlag{{16009455, 1}, {16002740, 1}, {16009452, 0}, {16009452, 1}}},
		{"Talking to Bernahl after the first Invasion, able to buy something, \"Talk\" option appears in the menu", "", []QuestFlag{{16009457, 1}, {16002741, 1}}},
		{"Choosing \"Talk\", option disappears afterwards", "", []QuestFlag{{16009459, 1}}},
		{"Talking to Bernahl after the first Invasion, able to buy something, \"Talk\" option appears in the menu", "", []QuestFlag{{16009457, 1}, {16002741, 1}}},
		{"Choosing \"Talk\", option disappears afterwards", "", []QuestFlag{{16009459, 1}}},
		{"Talking to Bernahl after the second invasion, receiving \"Letter to Bernahl\", repeating dialogue", "", []QuestFlag{{16009458, 1}, {400290, 1}, {16005038, 1}}},
		{"Saying no to invading \"Vargram the Raging Wolf and Errant Sorcerer Wilhelm's world\"", "Fortified Manor, First Floor in Leyndell", []QuestFlag{{11002142, 1}, {11005036, 1}, {11002142, 0}}},
		{"Saying yes", "", []QuestFlag{{11002141, 1}, {11002140, 1}, {11008544, 1}}},
		{"Killing them", "", []QuestFlag{{7605, 1}, {11002155, 1}}},
		{"Spawning back in your world, receiving \"Raging Wolf\" armor set", "", []QuestFlag{{11002141, 0}, {11000511, 0}, {11000516, 1}, {11000522, 0}, {11000527, 0}, {11000531, 1}, {11009500, 1}, {11007985, 1}}},
		{"Talking to him after the invasion, receiving \"Gerlmir's Fury\", no new dialogue", "Drawing Room in Volcano Manor", []QuestFlag{{16002840, 1}, {16009461, 1}, {400291, 1}}},
		{"Talking to Bernahl after defeating Rykard, repeating dialogue", "", []QuestFlag{{16009460, 1}, {16009452, 0}, {16009452, 1}}},
		{"Getting invaded by Bernahl", "Beside the Great Bridge site of grace in Crumbling Farum Azula", []QuestFlag{{13009300, 0}, {13009300, 1}}},
		{"Defeating Bernahl, receiving \"Blasphemous Claw\", \"Devourer's Scepter\" and Beast Champion armor set", "", []QuestFlag{{13002182, 1}, {13000180, 1}, {400292, 1}, {400293, 1}, {400294, 1}, {13005029, 1}, {13005028, 1}, {13005205, 1}, {13005206, 1}, {13005207, 1}, {13005208, 1}, {13005209, 1}, {13005030, 1}, {3087, 1}}},
	},
	"Latenna": {
		{"Initiating dialogue with Latenna at Slumbering Wolfs Shack", "Slumbering Wolf's Shack in Liurnia", []QuestFlag{{1036419206, 1}, {3084, 1}}},
		{"First dialogue ends, repeating dialogue if no Medallion half in possesion", "", []QuestFlag{{1036419202, 1}}},
		{"Breaking Ablus' Illusion in the Albinaurics Village", "Village of the Albinaurics in Liurnia", []QuestFlag{{1035429206, 1}}},
		{"Initial dialogue with Albus", "", []QuestFlag{{1035429207, 1}}},
		{"First dialogue ends, receiving \"Haligtree Secret Medallion (Right)\"", "", []QuestFlag{{1035429209, 1}, {400130, 1}, {1035429211, 1}, {1035429213, 1}}},
		{"Dialogue ends after receiving the Medallion", "", []QuestFlag{{1035429212, 1}}},
		{"Talking to him again, he dies afterwards", "", []QuestFlag{{1035429210, 1}}},
		{"Albus dies", "", []QuestFlag{{3540, 0}, {3541, 0}, {3542, 0}, {3543, 0}, {3544, 0}, {3543, 1}, {1035425006, 1}, {1035423702, 1}}},
		{"Returning to Latenna, showing her the Medallion", "Slumbering Wolf's Shack in Liurnia", []QuestFlag{{1036419205, 1}, {1036419202, 0}, {1036419202, 1}}},
		{"Refusing to hear her request when talking to her again", "", []QuestFlag{{1036419208, 1}}},
		{"Hearing her request, she disappears, saying goodbye to the wolf Lobo, you receive \"Latenna the Albinauric\" ashes", "", []QuestFlag{{1036419207, 1}, {1036419209, 1}, {1036412703, 1}, {1036419202, 0}, {1036419202, 1}, {1036419213, 1}, {1036412703, 0}, {710550, 1}, {400410, 1}, {1036419210, 1}, {1036419211, 1}}},
		{"Summoning Latenna", "Apostate Derelict in West Mountaintops of the Giants", []QuestFlag{{1047582700, 1}, {1036419213, 0}, {1036419213, 1}, {1047589202, 1}, {1047583701, 1}}},
		{"She talks after being summoned", "", []QuestFlag{{1047583704, 1}}},
		{"Talking to her, receiving \"Somber Ancient Dragon Smithing Stone\"", "", []QuestFlag{{1047589206, 1}, {400411, 1}, {1036419213, 0}, {1047589202, 0}, {1036419213, 1}, {1047589202, 1}}},
		{"Finishes dialogue, disappears afterwards", "", []QuestFlag{{1047589205, 1}, {1047589210, 1}, {1047583703, 1}}},
	},
	"Melina": {
		{"Dying to Grafted Scion", "Chapel of Anticipation in Limgrave", []QuestFlag{{10010030, 1}}},
		{"First Melina Cutscene", "Cave of Knowledge in Limgrave", []QuestFlag{{2200, 1}, {2200, 0}, {62101, 1}, {18000530, 1}, {18002520, 1}, {1020, 1}, {18005012, 1}, {18000533, 0}, {18000531, 1}, {18000532, 1}, {18005001, 1}, {18002570, 0}, {18002571, 0}, {18000511, 0}, {18000516, 0}, {18002580, 1}, {18002510, 1}, {18002400, 1}, {18002270, 1}, {18002251, 1}, {18002250, 1}, {18000870, 1}, {18000820, 1}, {18000050, 1}, {101, 1}, {9021, 0}, {2200, 1}}},
		{"After first Melina Cutscene, spawning in the Cave of Knowledge, Receiving Flasks", "", []QuestFlag{{60000, 1}, {18000020, 1}, {18002855, 0}, {18002805, 0}, {810, 1}, {530, 1}, {532, 0}, {1042365010, 1}, {1042362217, 1}, {1042362216, 1}, {1042362215, 1}, {1042360750, 1}, {1042360711, 1}, {1042369201, 0}, {1042369301, 0}, {1042369327, 0}, {1042369303, 0}, {1042369249, 0}, {1042365009, 1}, {1042369205, 0}, {1042363730, 1}, {1042382290, 1}, {18002411, 1}, {1040, 1}}},
		{"Melina cutscene", "Gatefront in Limgrave", []QuestFlag{{4698, 1}, {9000, 1}, {9020, 1}, {2200, 1}, {4160, 0}, {4160, 1}, {10009614, 0}, {10009614, 1}, {16009464, 0}, {16009464, 1}, {3626, 0}, {3626, 1}, {1042369202, 0}, {1042369202, 1}, {9803, 0}, {9804, 1}, {9001, 1}, {951, 1}, {953, 1}, {9021, 1}}},
		{"Melina cutscene ends", "", []QuestFlag{{968, 1}, {967, 1}, {964, 1}, {963, 1}, {962, 1}, {961, 1}, {9001, 0}, {4653, 1}, {4651, 1}, {9021, 0}, {531, 0}, {532, 1}, {553, 1}, {551, 0}, {823, 1}, {553, 0}, {551, 1}, {4652, 1}, {2200, 0}}},
		{"Accept/Refuse pop-up after Melina dialogue", "", []QuestFlag{{4681, 1}}},
		{"Accepting / Getting the \"Spectral Steed Whistle\"", "", []QuestFlag{{4680, 1}, {710520, 1}, {60100, 1}, {1042379204, 1}, {1042373701, 1}, {1042363744, 1}, {1042363742, 1}, {1041383761, 1}, {1042372701, 0}, {1042373700, 1}}},
		{"\"Gatefront\" Grace menu pop-up, after Melina dialogue", "", []QuestFlag{{4670, 0}, {4698, 0}, {4652, 0}, {4653, 0}}},
		{"\"Level Up\" select", "", []QuestFlag{{4652, 1}, {4656, 1}}},
		{"Melina disappears from \"Gatefront\" grace", "", []QuestFlag{{710770, 1}, {69090, 1}, {69370, 1}, {1042372651, 1}}},
		{"First \"Talk to Melina\" dialogue while sitting down at a grace, after Gatefront/Ranni", "Church of Elleh in Limgrave", []QuestFlag{{1042373702, 1}, {1042369453, 1}, {1042363745, 1}, {1042363743, 1}, {1042379202, 0}, {1042372702, 1}, {1042379208, 1}}},
		{"Second \"Talk to Melina\" dialogue while sitting down at a grace, after Gatefront/Ranni", "", []QuestFlag{{1042379209, 1}, {1042379208, 0}, {1042379208, 1}}},
		{"Melina disappears after standing up from a grace after finishing \"Talk to Melina\" dialogues", "", []QuestFlag{{1042372702, 0}, {1042363747, 1}, {1042372701, 0}}},
		{"\"Talk to Melina\" at grace, dialogue starting with \"Me?\"", "Any grace in Limgrave", []QuestFlag{{1042379207, 1}, {1042379206, 0}}},
		{"Melina appearing at Grace taking you to Roundtable Hold", "Margit, the Fell Omen grace or first grace outside of Limgrave", []QuestFlag{{10009655, 1}}},
		{"Accepting going to Roundtable Hold prompt", "", []QuestFlag{{11109786, 1}}},
		{"Dialogue at a grace starting with \"Words linger here...\"", "Any grace in Limgrave (might be Churches)", []QuestFlag{{4651, 1}, {4652, 1}, {4655, 1}, {1043349252, 1}}},
		{"Choosing you want to hear them, menu pop up afterwards, done talking to Melina", "", []QuestFlag{{1043349251, 1}, {1046389200, 1}, {4652, 0}, {4655, 0}, {1043349250, 0}}},
		{"Melina spawns in at Third Church of Marika when choosing \"Talk to Melina\"", "", []QuestFlag{{4651, 1}, {4652, 1}, {4655, 1}}},
		{"Talk to Melina \"Spoken echos of Queen Marika...\" dialogue at Third Church of Marika", "", []QuestFlag{{1046389203, 1}}},
		{"Dialogue over, \"Talk to Melina\" disappears", "", []QuestFlag{{1046389202, 1}, {1046389200, 1}, {4652, 0}, {4655, 0}, {1046389201, 0}}},
		{"Melina disappears when standing up from grace", "", []QuestFlag{{4651, 0}}},
		{"\"Talk to Melina\" dialogue about Boc", "East Raya Lucaria Gate in Liurnia", []QuestFlag{{1036489251, 1}, {1036489250, 0}}},
		{"Sitting at \"Grand Lift of Dectus\" grace, \"Talk to Melina\" option appears", "Grand Lift of Dectus in Liurnia", []QuestFlag{{1038509250, 1}}},
		{"\"Spoken echos...\" dialogue of her", "", []QuestFlag{{1038509252, 1}}},
		{"Saying \"I'm not interested\"", "", []QuestFlag{{1046382700, 1}, {1038509250, 0}, {1038509250, 1}}},
		{"Finishing the dialogue, option \"Talk to Melina\" disappears", "", []QuestFlag{{1038509251, 1}, {1046389200, 1}, {1038509250, 0}}},
		{"Activating the first grace in Altus Plateau", "Altus Plateau grace", []QuestFlag{{1038502711, 1}, {76301, 1}, {1038513701, 1}, {3063, 1}, {3044, 1}}},
		{"First Load at grace in Altus Plateau, \"Talk to Melina\" appears at grace", "", []QuestFlag{{1038502711, 0}, {1038502711, 1}, {1036489202, 0}, {1036489202, 1}, {1039449252, 0}, {1039449252, 1}, {1050389202, 0}, {1050389202, 1}, {4220, 0}, {4220, 1}, {4160, 0}, {4160, 1}, {4145, 0}, {4146, 0}, {4147, 0}, {4148, 0}, {4149, 0}, {4150, 0}, {4151, 0}, {4152, 0}, {4153, 0}, {4154, 0}, {4155, 0}, {4156, 0}, {4157, 0}, {4159, 0}, {4146, 1}, {4106, 0}, {4119, 0}, {4106, 1}, {4119, 1}, {3967, 0}, {3966, 1}, {3966, 0}, {3967, 1}, {16009464, 0}, {16009464, 1}, {3708, 0}, {3707, 1}, {3707, 0}, {3708, 1}, {3687, 0}, {3686, 1}, {1038419270, 1}, {1038419271, 0}, {3686, 0}, {3687, 1}, {1038419270, 0}, {1038419271, 1}, {3630, 0}, {3626, 1}, {3626, 0}, {3627, 1}, {3627, 0}, {3630, 1}, {3486, 0}, {3499, 0}, {3486, 1}, {3499, 1}, {3448, 0}, {3446, 1}, {3446, 0}, {3447, 1}, {3447, 0}, {3448, 1}, {3426, 0}, {3426, 1}, {3269, 0}, {3269, 1}, {1045399200, 0}, {1045399200, 1}, {1034509300, 0}, {1034509300, 1}, {1034499200, 0}, {1034499200, 1}, {1034509400, 0}, {1034509400, 1}, {1034449200, 0}, {1034449200, 1}, {1036439202, 0}, {1042389252, 0}, {1042389252, 1}, {1036419213, 0}, {1036419213, 1}, {12059163, 0}, {12059163, 1}, {9808, 0}, {9807, 1}, {1038519255, 0}, {4197, 0}, {1038519255, 1}, {4197, 1}, {1038513703, 1}, {1038513702, 1}, {1037519200, 1}, {2200, 0}}},
		{"Choosing \"Talk to Melina\"", "", []QuestFlag{{1037519201, 1}}},
		{"\"Talk to Melina\" option disappears", "", []QuestFlag{{1037519200, 0}}},
		{"\"Talk to Melina\" appears", "Outerwall Battleground in Captial Outskirts", []QuestFlag{{1043539250, 1}}},
		{"Choosing \"Talk to Melina\"", "", []QuestFlag{{1043539252, 1}}},
		{"Dialogue ends, \"Talk to Melina\" disappears", "", []QuestFlag{{1043539251, 1}, {1046389200, 1}, {1043539250, 0}}},
		{"Melina pays a visit", "East Capital Rampart", []QuestFlag{{11009260, 1}}},
		{"She appears at the grace after interacting with the thorns on the Erdtree, giving you the \"Rold Medallion\"", "", []QuestFlag{{11009251, 1}, {11002745, 1}, {11109687, 1}, {11009252, 1}, {400001, 1}, {11005058, 1}}},
		{"\"Talk to Melina\" option appears, just repeating dialouge", "", []QuestFlag{{11009265, 1}}},
		{"\"Talk to Melina\" option appears, saying im not interested", "Minor Erdtree Church in Capital Outskirts", []QuestFlag{{1043509202, 1}, {1046382700, 1}, {4652, 0}, {4655, 0}, {1043509200, 0}, {1043509200, 1}}},
		{"Choosing \"Talk to Melina\" again to hear the words, receiving \"Outer Order\" gesture afterwards", "", []QuestFlag{{4652, 1}, {4655, 1}, {1043509201, 1}, {1046389200, 1}, {60846, 1}}},
		{"Option disappears", "", []QuestFlag{{4652, 0}, {4655, 0}, {1043509200, 0}}},
		{"\"Talk to Melina\" prompt", "Underground Roadside in Leyndell", []QuestFlag{{11009270, 1}}},
		{"Choosing \"Talk to Melina\", disappears afterwards", "", []QuestFlag{{11009271, 1}, {11009270, 0}}},
		{"\"Talk to Melina\"", "Cathedral of the Forsaken in Leyndell", []QuestFlag{{35009350, 1}}},
		{"Choosing \"Talk to Melina\", warning you about the Frenzied Flame, \"Talk to Melina\" option stays, repeating dialogue", "", []QuestFlag{{35009351, 1}, {35002732, 1}, {35009350, 0}, {35009355, 1}}},
		{"Leaving the grace makes the option disappear on next grace sit", "", []QuestFlag{{35009355, 0}}},
		{"\"Talk to Melina\"", "Frenzied Flame Proscription in Leyndell", []QuestFlag{{35009352, 1}}},
		{"Choosing \"Talk to Melina\", option stays", "", []QuestFlag{{35009353, 1}, {35002733, 1}, {35009352, 0}, {35009358, 1}}},
		{"Choosing \"Talk to Melina\" again, option still stays, now repeating dialogue", "", []QuestFlag{{35009359, 1}, {35009358, 0}, {35009358, 1}}},
		{"Option disappears on next grace sit", "", []QuestFlag{{35009358, 0}}},
		{"Melina appears at the grace after you've gone mad, saying she will kill you and a final goodbye", "", []QuestFlag{{12032503, 1}, {4653, 1}, {4651, 1}, {2200, 0}, {4652, 1}, {35009360, 1}, {4652, 0}, {4653, 0}, {4651, 0}}},
		{"Gets set after standing up from the grace", "", []QuestFlag{{35002731, 0}}},
		{"\"Talk to Melina\" appears", "Church of Repose in Mountaintops of the Giants", []QuestFlag{{1054539210, 1}}},
		{"Choosing it, disappears afterwards", "", []QuestFlag{{1054539211, 1}, {1054539210, 0}}},
		{"\"Talk to Melina\" appears", "First Church of Marika in Mountaintops of the Giants", []QuestFlag{{1054559200, 1}}},
		{"She talks to you", "", []QuestFlag{{1054559202, 1}}},
		{"Saying you are not interested", "", []QuestFlag{{1046382700, 1}, {1054559200, 0}, {1054559200, 1}}},
		{"Choosing \"Talk to Melina\" again, disappears afterwards", "", []QuestFlag{{1054559201, 1}, {1046389200, 1}, {1054559200, 0}}},
		{"\"Talk to Melina\" appears", "Forge of the Giants", []QuestFlag{{1054539215, 1}}},
		{"Choosing it, can now choose between \"I'm ready\" and \"I'd like you to wait\"", "", []QuestFlag{{1054539216, 1}}},
		{"Telling her \"I'd like you to wait\"", "", []QuestFlag{{1054539215, 0}, {1054539215, 1}}},
		{"Choosing \"I'm ready\"", "", []QuestFlag{{1054539205, 1}, {1054539200, 1}, {9000, 0}, {9020, 0}, {9001, 1}, {110, 1}, {302, 1}, {9021, 1}, {780010, 0}, {780011, 1}, {111, 1}, {2200, 1}}},
		{"Cutscene ends, next one starts", "", []QuestFlag{{2200, 0}, {220, 1}, {221, 1}, {210, 1}, {211, 1}, {2200, 1}}},
	},
	"Millicent": {
		{"Millicent Invasion at the swamp", "Aeonia Swamp in Caelid", []QuestFlag{{1049385008, 1}, {1048382182, 1}, {1048380180, 1}, {1048387500, 1}, {1048385005, 1}, {1048385004, 1}, {1048385006, 1}}},
		{"Automatic dialogue, in pain", "Church of the Plague in Caelid", []QuestFlag{{1050389252, 1}}},
		{"Talking to her, getting an option to give her the needle or not", "", []QuestFlag{{1050389256, 1}, {1050382715, 1}}},
		{"Giving her the needle, screen turns black", "", []QuestFlag{{1050382719, 1}, {1050382719, 0}, {1050382716, 1}, {1050389255, 1}, {1050389259, 0}, {4178, 1}, {1050383701, 1}, {4179, 1}, {4178, 0}, {4160, 0}, {4160, 1}, {4166, 0}, {4167, 1}, {2200, 1}}},
		{"Dialogue after the screen turns black, fainting, afterwards repeating \"...\" dialogue", "", []QuestFlag{{2200, 0}, {1050382717, 1}, {1050383713, 1}, {1050382718, 1}}},
		{"Talking to her again, she is considering leaving, repeated dialogue", "", []QuestFlag{{1050389258, 1}}},
		{"After reloading the area, she disappears", "", []QuestFlag{{1050389265, 1}}},
		{"Millicent will be at Gowry's Shack and Gowry gone", "Gowry's Shack in Caelid", []QuestFlag{{1050389265, 0}, {1050389265, 1}, {1050362650, 1}, {1050362653, 1}}},
		{"Talking to her, she was expecting someone here, repeating dialogue", "", []QuestFlag{{1050389266, 1}, {1042559206, 1}, {1042559207, 0}, {1042559208, 0}, {1042559209, 0}, {1050389262, 1}}},
		{"After a reload, Millicent will be gone and Gowry will be back", "", []QuestFlag{{1050362650, 0}, {1050362653, 0}, {1050389265, 0}, {1050362650, 1}, {1050362653, 1}, {1050389202, 1}, {1050389262, 0}}},
		{"Gets set after killing the Magmar Wyrm and spawning her, no idea if it is at all relevant, I believe this sets her to be at the next site she will be seen, every load includes this flag", "", []QuestFlag{{1038519255, 0}, {1038519255, 1}}},
		{"Talking to Millicent", "Erdtree-Gazing Hill in Altus Plateau", []QuestFlag{{1038519256, 1}, {1038519252, 1}}},
		{"Talking to her again, saying she wants to take the path Malenia took, repeating dialogue", "", []QuestFlag{{1038519258, 1}}},
		{"Picking up \"Valkyrie's Prosthesis\"", "The Shaded Castle in Altus Plateau", []QuestFlag{{1039547300, 1}}},
		{"Giving her the \"Valkyrie's Prosthesis\", repeating dialogue", "Erdtree-Gazing Hill in Altus Plateau", []QuestFlag{{1038519257, 1}, {1042559206, 0}, {1042559207, 1}, {1042559208, 1}, {1042559209, 1}}},
		{"Spawning her for the Godskin Apostle fight", "Dominula, Windmill Village in Altus Plateau", []QuestFlag{{1042552160, 1}}},
		{"Talking to Millicent after the bossfight, repeating dialogue, will move away after a reload", "", []QuestFlag{{1042559205, 1}}},
		{"Summoning Millicent for the bossfight right before Rold Lift", "", []QuestFlag{{1049522160, 1}}},
		{"Talking to her", "Ancient Snow Valley Ruins in Mountaintop of the Giants", []QuestFlag{{1051569255, 1}}},
		{"Talking to her again, repeating dialogue, reloading the area will have her move away from here", "", []QuestFlag{{1051569256, 1}}},
		{"Initial dialogue here", "Prayer Room in Haligtree", []QuestFlag{{15009205, 1}}},
		{"Talking to her again, repeating dialogue, does not move", "", []QuestFlag{{15009206, 1}}},
		{"Killing the Tree Spirit", "Drainage Channel in Haligtree", []QuestFlag{{15009208, 1}, {15009209, 1}, {1042559207, 0}, {1042559208, 0}, {1042559209, 0}, {15000710, 1}}},
		{"Choosing no on her assist summon sign", "", []QuestFlag{{15002142, 1}, {15005002, 1}, {15002142, 0}}},
		{"Choosing no on her challenge summon sign", "", []QuestFlag{{15002152, 1}, {15005004, 1}, {15002152, 0}}},
		{"Choosing yes on challenging her", "", []QuestFlag{{15002151, 1}, {2000, 0}, {2000, 1}, {15002150, 1}, {2200, 1}}},
		{"Loading in", "", []QuestFlag{{15005161, 1}, {15005162, 1}, {15005159, 1}, {15005157, 1}, {15005154, 1}, {15005155, 1}, {15005156, 1}, {15005158, 1}, {15002570, 0}, {15002575, 0}, {15002810, 1}, {15000713, 1}, {15000701, 1}, {15000700, 1}, {1634, 1}, {1612, 1}, {1411, 1}, {1410, 1}, {900, 1}, {551, 1}, {15000626, 1}, {15001625, 1}, {15000526, 1}}},
		{"Defeating Millicent", "", []QuestFlag{{7611, 1}, {15005005, 1}}},
		{"Loading back into your own world", "", []QuestFlag{{4193, 0}, {4194, 1}, {15009208, 0}, {15009209, 0}, {15002151, 0}, {15000526, 0}, {15000626, 0}, {15000712, 1}}},
		{"Receiving \"Millicent's Prosthesis\"", "", []QuestFlag{{400323, 1}}},
		{"Choosing yes on aiding her", "", []QuestFlag{{15002141, 1}, {15002140, 1}}},
		{"Loading into the invasion world", "", []QuestFlag{{15000626, 1}, {15000526, 1}}},
		{"Defeating the sisters", "", []QuestFlag{{7610, 1}, {15005003, 1}}},
		{"Loading back into your world", "", []QuestFlag{{4194, 0}, {4191, 1}, {15002141, 0}, {15000526, 0}, {15000626, 0}}},
		{"Receiving \"Rotten Winged Sword Insignia\"", "", []QuestFlag{{400480, 1}}},
		{"Talking to Millicent after the invasion", "", []QuestFlag{{15009207, 1}}},
		{"Talking to her again", "", []QuestFlag{{15009210, 1}}},
		{"Talking to her again, saying goodbye, repeating dialogue", "", []QuestFlag{{15009211, 1}}},
		{"Reloading the area, Millicent is now dead", "", []QuestFlag{{4191, 0}, {4192, 1}}},
		{"Looting her body, receiving \"Unalloyed Gold Needle\"", "", []QuestFlag{{400321, 1}}},
		{"Returning \"Unalloyed Gold Needle\" to Malenia's Flower and receiving \"Miquella's Needle\" and \"Somber Ancient Dragone Smithing Stone\"", "Malenia's bossroom in the Haligtree", []QuestFlag{{9020, 0}, {400324, 1}, {400325, 1}, {15000713, 1}}},
	},
	"Miriel": {
		{"Finishing first dialogue", "Church of Vows in Liurnia", []QuestFlag{{1037469256, 1}, {1037462719, 1}}},
		{"Finishing second dialogue, menu pop-up afterwards, with the options \"Study sorcery\", \"Study incantations\", \"Give scroll\", \"Give a prayerbook\" and \"About Radagon\"", "", []QuestFlag{{1037469257, 1}, {1037469270, 0}, {1037469260, 0}, {1037469262, 0}, {1037469271, 0}, {1037469272, 0}, {1037469273, 0}, {1037469274, 0}, {1037469275, 0}, {1037469272, 1}, {1037469274, 1}, {1037469274, 0}}},
		{"Giving him the Carian Scroll", "", []QuestFlag{{1037469300, 1}}},
		{"Giving him the Academy Scroll", "", []QuestFlag{{1037469316, 1}}},
		{"Giving him the Dragon Cult Prayerbook", "", []QuestFlag{{1037469314, 1}}},
		{"Choosing \"About Radagon\", \"About Rennala\" appears afterwards", "", []QuestFlag{{1037469265, 1}, {1037469272, 0}, {1037469273, 1}, {1037469274, 1}}},
		{"Choosing \"About Radagon\" again, after this \"About Radagon\" stays, but is a repeating dialogue", "", []QuestFlag{{1037469266, 1}, {1037469273, 0}, {1037469274, 0}, {1037469273, 1}, {1037469274, 1}}},
		{"Choosing \"About Rennala\"", "", []QuestFlag{{1037469267, 1}, {1037469273, 0}, {1037469274, 0}, {1037469273, 1}, {1037469275, 1}}},
		{"Choosing \"About Rennala\" again, option disappears afterwards", "", []QuestFlag{{1037469268, 1}, {1037469273, 0}, {1037469275, 0}, {1037469273, 1}}},
		{"\"About absolution\" appears", "", []QuestFlag{{1037469262, 1}}},
		{"Choosing \"About absolution\", disappears, afterwards \"Talk\" appears", "", []QuestFlag{{1037469261, 1}, {1037469262, 0}, {1037469271, 1}}},
		{"Choosing \"Talk\", option disappears afterwards", "", []QuestFlag{{1037469264, 1}, {1037469271, 0}}},
		{"Giving him the Giantflame's Prayerbook", "", []QuestFlag{{1037469306, 1}}},
		{"Giving him the Ancient Dragons' Prayerbook", "", []QuestFlag{{1037469315, 1}}},
		{"Giving him \"Fire Monks' Prayerbook\"", "", []QuestFlag{{1037469305, 1}}},
		{"Giving him \"Giant's Prayerbook\"", "", []QuestFlag{{1037469306, 1}}},
		{"Giving him \"Godskin Prayerbook\"", "", []QuestFlag{{1037469307, 1}}},
		{"Giving him \"Two Fingers' Prayerbook\"", "", []QuestFlag{{1037469308, 1}}},
		{"Giving him \"Assassin's Prayerbook\"", "", []QuestFlag{{1037469309, 1}}},
		{"Giving him \"Erdtree Prayerbook\" *doesn't exist in the game", "", []QuestFlag{{1037469310, 1}}},
		{"Giving him \"Dragon Cult Prayerbook\"", "", []QuestFlag{{1037469314, 1}}},
		{"Giving him \"Ancient Dragon Prayerbook\"", "", []QuestFlag{{1037469315, 1}}},
		{"Giving him \"Conspectus Scroll\"", "", []QuestFlag{{1037469300, 1}}},
		{"Giving him \"Royal House Scroll\"", "", []QuestFlag{{1037469301, 1}}},
		{"Giving him \"Academy Scroll\"", "", []QuestFlag{{1037469316, 1}}},
	},
	"Nepheli Loux": {
		{"Initial automatic dialogue when you approach her", "Stormveil Castle in Limgrave", []QuestFlag{{10002785, 1}}},
		{"Talking to her the first time", "", []QuestFlag{{10009705, 1}}},
		{"Talking to her again and she asked you to call her when fighting Godrick, repeating dialogue afterwards", "", []QuestFlag{{10009706, 1}, {10009709, 1}}},
		{"Spawning in Nepheli Loux before Godricks bossroom", "", []QuestFlag{{10002160, 1}, {10003775, 1}, {10002910, 1}}},
		{"Talking to Nepheli after beating Godrick, receiving the Arsenal Charm", "Roundtable Hold", []QuestFlag{{3055, 1}, {400420, 1}}},
		{"Dialogue after receiving the Arsenal Charm ends", "", []QuestFlag{{11109905, 1}}},
		{"Second dialogue ends, telling you about her foster father", "", []QuestFlag{{11109906, 1}}},
		{"Third and final dialogue with Nepehli after beating Godrick, saying she is heading off", "", []QuestFlag{{11109909, 1}}},
		{"Initial dialogue", "Village of the Albinaurics in Liurnia", []QuestFlag{{1034429205, 1}}},
		{"Second dialogue ends, repeating dialogue", "", []QuestFlag{{1034429209, 1}}},
		{"Summoning her for the Omenkiller fight, after the fight ends, she will move back to the Roundtable Hold", "", []QuestFlag{{1035422160, 1}, {1034420700, 1}}},
		{"Approaching her at the bottom of the stairs", "Roundtable Hold", []QuestFlag{{10009714, 1}}},
		{"Talking to her, she tells you to leave her be, repeating dialogue", "", []QuestFlag{{11109923, 1}}},
		{"\"Nephali's despair...\" dialogue option at Gideon appears", "", []QuestFlag{{11109677, 1}}},
		{"After choosing it, it disappears", "", []QuestFlag{{11109677, 0}}},
		{"\"I heard about Gideon\" chose option appears when talking to Nepheli again", "", []QuestFlag{{11109916, 1}}},
		{"Talking to her again after the \"I heard about Gideon\" dialogue, leads to repeating dialogue", "", []QuestFlag{{11109917, 1}}},
		{"Picking up \"The Stormhawk King\" ash", "Chapel of Anticipation in Limgrave", []QuestFlag{{10017010, 1}}},
		{"Giving her \"The Stormhawk King\" ash", "Roundtable Hold", []QuestFlag{{11109921, 1}}},
		{"Dialogue ends after talking to her again, repeating dialogue", "", []QuestFlag{{11109922, 1}}},
		{"She moved inside the throne room after defeating Morgott, dialogue with her", "Godrick the Grafted grace in Limgrave", []QuestFlag{{10009715, 1}}},
		{"Talking to her again, receiving \"Ancient Dragon Smithing Stone\"", "", []QuestFlag{{400422, 1}, {10009716, 1}}},
		{"Talking to her again, repeating dialogue", "", []QuestFlag{{10009717, 1}}},
	},
	"Patches": {
		{"Entering \"Murkwater Cave\" bossfight", "Murkwater Cave in Limgrave", []QuestFlag{{31002830, 1}, {31008821, 1}, {31002810, 1}}},
		{"Opening Patches' chest", "", []QuestFlag{{31008521, 1}, {31003702, 1}, {31009210, 1}, {31000811, 1}, {31002813, 1}}},
		{"Taking items from chest -> Patches giving up, give-up dialogue finishes, bossfight ends", "", []QuestFlag{{31007010, 1}, {31009208, 1}, {31002704, 1}, {31009811, 1}, {31009211, 1}, {31003704, 1}, {31002703, 1}, {31009215, 1}, {31009810, 1}, {3682, 0}, {3680, 1}, {31000800, 1}, {61232, 1}, {9232, 1}, {400183, 1}, {31002811, 1}, {31009214, 1}, {60819, 1}, {31009219, 0}, {31003703, 1}, {31002833, 1}, {31002832, 1}, {520320, 1}, {31002845, 1}, {31000845, 1}, {1232, 1}, {31009217, 1}}},
		{"First dialogue after bossfight, choosing \"Forgive and Forget\", repeating dialogue afterwards", "", []QuestFlag{{31009206, 1}}},
		{"Taking the teleport to go back to the entrance", "", []QuestFlag{{31002840, 1}, {31002876, 1}}},
		{"Returning and initiating dialogue with Patches again, menu popup", "", []QuestFlag{{31009229, 1}, {31009207, 0}, {31002708, 1}, {31009240, 1}, {31009243, 0}, {31009244, 0}, {31009245, 0}, {31009246, 0}, {31009243, 1}}},
		{"\"About those bandits\" dialogue option in the menu", "", []QuestFlag{{31009244, 1}}},
		{"\"This chest...\" dialogue option, afterwards only shop available", "", []QuestFlag{{31009228, 1}, {31002706, 1}, {31009244, 0}}},
		{"Talking to him again after leaving menu", "", []QuestFlag{{31009241, 1}, {31009225, 1}}},
		{"Talking to him yet again after not buying anything and leaving menu again, changes leaving dialogue", "", []QuestFlag{{31009242, 1}, {31009226, 1}}},
		{"Opening the chest, getting ensnared, short Patches dialogue plays", "", []QuestFlag{{31008522, 1}, {31003707, 1}}},
		{"Returning to Patches after being teleported, receiving \"Calm Down!\" emote from him", "", []QuestFlag{{31009234, 1}, {60816, 1}}},
		{"Attacking Patches, receiving \"Extreme Repentance\" emote when being at low health", "", []QuestFlag{{31005003, 1}, {31005000, 1}, {31005005, 1}, {31005008, 1}, {31005006, 1}, {31003701, 1}, {31009205, 1}, {31002700, 1}, {31005002, 1}, {31002711, 1}, {31009218, 1}, {60818, 1}}},
		{"Either dying to Patches or using the emote, returning him to normal, dialogue after that happens", "", []QuestFlag{{31009207, 1}, {31009205, 0}, {31009207, 0}}},
		{"Initial dialogue with Patches, menu popup with \"Purchase, Sell, Speaking of..., Talk and Leave\" options", "Scenic Isle in Liurnia", []QuestFlag{{1038419255, 1}, {1038419265, 0}, {1037422730, 1}, {1038419262, 0}, {1038419263, 0}, {1038419262, 1}}},
		{"Choosing \"Speaking of...\", talking about Rya, option disappears afterwards", "", []QuestFlag{{1038419258, 1}}},
		{"Choosing \"Talk\", tells you about the Abductor Virgin under the waterwheel in the academy, option disappears afterwards", "", []QuestFlag{{1038419259, 1}}},
		{"\"What you spoke of before\" option appears (repeat of Talk about the Virgin)", "", []QuestFlag{{1038419263, 1}}},
		{"Talking to Patches", "Volcano Manor", []QuestFlag{{16009355, 1}}},
		{"Talking to him again, he offers you his wares again, \"About Patches\" option appears", "", []QuestFlag{{16009356, 1}, {16002720, 1}, {16009362, 0}, {16009363, 0}, {16009364, 0}, {16009365, 0}, {16009366, 0}, {16009365, 1}}},
		{"Choosing \"About Patches\", option disappears afterwards", "", []QuestFlag{{16009361, 1}, {16009365, 0}}},
		{"Receiving \"Letter to Patches\" from Patches after the first invasion", "", []QuestFlag{{16009357, 1}, {400180, 1}, {16005039, 1}}},
		{"Examining the Great Horned Tragoth invasion sign and saying no", "Magma Wyrm Makar bossroom", []QuestFlag{{39202142, 1}, {39205016, 1}, {39202142, 0}}},
		{"Saying yes", "", []QuestFlag{{39202141, 1}, {39209201, 1}, {39203701, 1}, {39202140, 1}}},
		{"Defeating Great horned Tragoth", "", []QuestFlag{{7606, 1}, {39205017, 1}}},
		{"Spawning back into the world, receiving the full Bull-Goat armor set", "", []QuestFlag{{1038519255, 0}, {4197, 0}, {1038519255, 1}, {4197, 1}, {39207500, 1}}},
		{"Talking to Patches after the invasion, \"The request is done\" option appears", "Volcano Manor", []QuestFlag{{16009364, 1}}},
		{"Choosing \"The request is done\", option disappears afterwards", "", []QuestFlag{{16009358, 1}, {16002721, 1}, {16009364, 0}}},
		{"Reloading the area and talking to him again, \"What about my reward?\" appears", "", []QuestFlag{{16009366, 1}}},
		{"Choosing \"What about my reward?\", receiving Magma Whip Candlestick", "", []QuestFlag{{16009367, 1}, {400182, 1}}},
		{"\"What about my reward?\" option disappears", "", []QuestFlag{{16009366, 0}}},
		{"Talking to Patches after defeating Rykard", "", []QuestFlag{{16009359, 1}}},
		{"Talking to him again, menu pop-up, no new options", "", []QuestFlag{{16009362, 0}, {16009363, 0}, {16009364, 0}, {16009365, 0}, {16009366, 0}}},
		{"Reloading the area, Patches and Bernahl are now gone from the Manor", "", []QuestFlag{{16009464, 0}, {16009464, 1}, {16009452, 0}, {16009322, 0}, {16003723, 1}}},
		{"Talking to Patches, receiving \"Dancer's Castanets\"", "The Shaded Castle in Altus Plateau", []QuestFlag{{1039549205, 1}, {400181, 1}}},
		{"Talking to him again, he falls asleep, reloading the area moves him now", "", []QuestFlag{{1039549206, 1}, {1039543702, 1}, {1039549207, 1}}},
		{"Entering Patches's bossroom again", "Murkwater Cave in Limgrave", []QuestFlag{{31002855, 1}, {31008871, 1}}},
		{"full bossfight, after getting him lower on health he realizes it's you and you can spare him again. Receiving \"Patches' Crouch\" gesture", "", []QuestFlag{{31008523, 1}, {31009258, 1}, {31007030, 1}, {31000861, 1}, {31009257, 1}, {31002721, 1}, {31002724, 1}, {31002730, 1}, {31002720, 1}, {31002728, 1}, {31009889, 1}, {3682, 0}, {3680, 1}, {31000850, 1}, {61232, 1}, {9232, 1}, {31002727, 1}, {60832, 1}, {31009269, 0}, {31002845, 1}, {31000845, 1}, {31009267, 1}}},
		{"Talking to him after sparing him", "", []QuestFlag{{31009255, 1}, {31009266, 0}}},
		{"Talking to him again, repeating dialogue", "", []QuestFlag{{31009256, 1}}},
		{"After a reload he will move closer to the campfire and sell his wares again", "", []QuestFlag{{31009275, 1}, {31002708, 1}}},
		{"Leaving the menu without buying something one time", "", []QuestFlag{{31009225, 1}}},
		{"Doing it again", "", []QuestFlag{{31009226, 1}}},
		{"Attacking Patches", "", []QuestFlag{{3680, 0}, {3681, 1}, {31005008, 1}, {31009205, 1}, {31002700, 1}}},
		{"Killing him, says \"What a shit show...\" xD", "", []QuestFlag{{3681, 0}, {3683, 1}, {31005007, 1}}},
		{"Picking up Patches' Bell Bearing, his Spear+7 and his armor set", "", []QuestFlag{{400189, 1}, {1039549203, 1}}},
		{"Talking to him near the shimmering stones, repeating dialogue", "First Mt. Gelmir Campsite", []QuestFlag{{1037549206, 1}, {1037549209, 0}, {1037549202, 1}}},
		{"Getting near the last stone and cutscene starts where Patches kickes you off", "", []QuestFlag{{1037549210, 1}, {9021, 1}, {2200, 1}}},
		{"After the cutscene flags", "", []QuestFlag{{3698, 1}, {1037543701, 1}, {1037549202, 0}, {1037549202, 1}, {1037549212, 0}}},
		{"Going back to Patches and talking to him, repeating dialogue, he will move to Volcano Manor after talking to Tanith and joining them", "", []QuestFlag{{1037549207, 1}, {1037549202, 0}, {1037549202, 1}}},
	},
	"Pidia": {
		{"Initial dialogue", "Caria Manor", []QuestFlag{{1035509205, 1}}},
		{"Talking to Pidia again, being able to purchase something now", "", []QuestFlag{{1035509206, 1}}},
		{"Approaching Pidia, hearing him scream", "", []QuestFlag{{1035502705, 1}, {1035500703, 1}, {1035509210, 1}}},
		{"Hearing him die", "", []QuestFlag{{1035502706, 1}, {1035500704, 1}, {1035509211, 1}}},
		{"Picking up \"Pidia's Bell Bearing\" and \"Dolores the Sleeping Arrow Puppet\" from his corpse", "", []QuestFlag{{710550, 1}, {400149, 1}, {1035505066, 1}}},
	},
	"Ranni the Witch": {
		{"Ranni saying \"This way Tarnished, may I have a word?\" when porting to \"Church of Elleh\" grace", "Church of Elleh in Limgrave", []QuestFlag{{1042369406, 1}, {1042369412, 1}}},
		{"Approaching Ranni", "", []QuestFlag{{1042372701, 0}}},
		{"First dialogue part of Ranni ends, after saying yes to having Torrent", "", []QuestFlag{{1042369407, 1}}},
		{"Receiving \"Spirit Calling Bell\" and \"Lone Wolf Ashes\"", "", []QuestFlag{{60110, 1}, {710550, 1}, {400390, 1}}},
		{"Second dialogue part of Ranni ends, after receiving Bell and Ashes, also ends dialogue completely, \"Talk\" pop-up appearing", "", []QuestFlag{{1042369405, 1}, {69110, 1}, {1725, 1}}},
		{"Activating third dialogue part from Ranni, dialogue ending, she disappears", "", []QuestFlag{{1042369409, 1}, {1042362732, 1}, {1042369410, 1}, {1042360713, 1}, {1042369415, 0}, {1042362734, 1}, {4718, 1}, {4719, 1}, {4718, 0}, {4717, 0}, {4719, 0}, {4705, 1}, {1042360724, 1}, {1042369413, 1}, {3758, 1}, {1042360712, 1}, {3758, 0}, {3746, 0}, {3747, 1}, {1042365012, 1}, {3091, 1}}},
		{"Riding up the elevator to Ranni printed these flags", "Ranni's Rise in Liurnia", []QuestFlag{{1034500512, 1}, {1034500510, 1}, {1034500511, 1}, {1034509422, 0}, {1034509419, 1}, {3758, 1}, {1034500731, 1}, {3758, 0}}},
		{"Standing in the middle of Ranni's room prints this", "", []QuestFlag{{12012713, 1}}},
		{"Standing right infront of her or just outside her room prints this", "", []QuestFlag{{12012713, 0}}},
		{"Approaching Ranni", "", []QuestFlag{{1034503740, 1}}},
		{"Going near Ranni", "", []QuestFlag{{12012713, 0}}},
		{"Distancing yourself from Ranni", "", []QuestFlag{{12012713, 1}}},
		{"Talking to Ranni the first time and choosing to refuse to enter her service", "", []QuestFlag{{1034509411, 1}, {1034509431, 1}, {1034509400, 1}}},
		{"Choosing to enter her service", "", []QuestFlag{{1034509410, 1}, {1034509412, 1}, {3618, 1}, {3778, 1}, {3578, 1}, {1034500738, 1}, {1034500732, 1}, {1034500736, 1}, {1034505015, 1}, {3778, 0}, {3765, 0}, {3766, 0}, {3767, 0}, {3768, 0}, {3769, 0}, {3770, 0}, {3771, 0}, {3772, 0}, {3773, 0}, {3774, 0}, {3775, 0}, {3776, 0}, {3777, 0}, {3766, 1}, {1034509361, 1}, {3618, 0}, {3605, 0}, {3606, 0}, {3607, 0}, {3608, 0}, {3609, 0}, {3610, 0}, {3611, 0}, {3612, 0}, {3613, 0}, {3614, 0}, {3615, 0}, {3616, 0}, {3617, 0}, {3609, 1}, {3578, 0}, {3565, 0}, {3566, 0}, {3567, 0}, {3568, 0}, {3569, 0}, {3570, 0}, {3571, 0}, {3572, 0}, {3573, 0}, {3574, 0}, {3575, 0}, {3576, 0}, {3577, 0}, {3566, 1}, {1034500715, 1}, {1034500710, 1}, {1034500700, 1}, {1034490701, 1}, {1034490700, 1}}},
		{"Talking to her again, telling you about Blaidd, Iji and Seluvis, repeating dialogue", "", []QuestFlag{{1034509413, 1}, {1034509418, 1}}},
		{"Talking to Spirit Iji", "", []QuestFlag{{1034509355, 1}, {1034509357, 1}}},
		{"Talking to Spirit Iji again, saying sorry for the warning he gave, repeating dialogue", "", []QuestFlag{{1034509358, 1}}},
		{"Talking to Spirit Blaidd, telling you he is still in Limgrave, repeating dialogue", "", []QuestFlag{{1034509205, 1}, {1045379208, 1}}},
		{"Talking to Spirit Seluvis", "", []QuestFlag{{1034509305, 1}}},
		{"Talking to Spirit Seluvis again, having talked to all 3 now", "", []QuestFlag{{1034509306, 1}, {1034509417, 1}, {1034500734, 1}}},
		{"Talking to Ranni after having talked to Blaidd, Iji and Seluvis, telling you she will soon enter her slumber, repeating dialogue, can teleport after this again, all 3 Spirits also disappear", "", []QuestFlag{{1034509416, 1}, {3618, 1}, {3778, 1}, {3578, 1}, {1034500738, 0}, {1034500739, 1}, {1034500733, 1}, {1034502610, 1}, {1034505002, 1}, {1034505003, 1}, {1034505004, 1}, {3778, 0}, {3766, 0}, {3767, 1}, {3618, 0}, {3609, 0}, {3610, 1}, {3578, 0}, {3566, 0}, {3567, 1}, {1034500716, 1}, {1034503600, 1}}},
		{"Sitting at the grace after Ranni tells you she will enter her slumber (thought it might be useful to include this one), Ranni will only return a \"...\" after sitting at a grace+", "", []QuestFlag{{9000, 1}, {9020, 1}, {2200, 1}, {1034512620, 0}, {1036489202, 0}, {1036489202, 1}, {4220, 0}, {4220, 1}, {4160, 0}, {4160, 1}, {4106, 0}, {4119, 0}, {4106, 1}, {4119, 1}, {11109648, 0}, {11109649, 0}, {11109648, 1}, {11109649, 1}, {3967, 0}, {3966, 1}, {3966, 0}, {3967, 1}, {16009464, 0}, {16009464, 1}, {3745, 0}, {3746, 0}, {3747, 0}, {3748, 0}, {3749, 0}, {3750, 0}, {3751, 0}, {3752, 0}, {3753, 0}, {3754, 0}, {3755, 0}, {3756, 0}, {3757, 0}, {3748, 1}, {3708, 0}, {3707, 1}, {3707, 0}, {3708, 1}, {3687, 0}, {3686, 1}, {1038419270, 1}, {1038419271, 0}, {3686, 0}, {3687, 1}, {1038419270, 0}, {1038419271, 1}, {3630, 0}, {3626, 1}, {3626, 0}, {3627, 1}, {3627, 0}, {3630, 1}, {3486, 0}, {3499, 0}, {3486, 1}, {3499, 1}, {3448, 0}, {3446, 1}, {3446, 0}, {3447, 1}, {3447, 0}, {3448, 1}, {3426, 0}, {3426, 1}, {3269, 0}, {3269, 1}, {1045399200, 0}, {1045399200, 1}, {1034499200, 0}, {1034499200, 1}, {1034509400, 0}, {1034509400, 1}, {1034449200, 0}, {1034449200, 1}, {1036439202, 0}, {1036439202, 1}, {1042389252, 0}, {1042389252, 1}, {1036419213, 0}, {1036419213, 1}, {12059163, 0}, {12059163, 1}, {9805, 0}, {9803, 1}, {530, 1}, {532, 0}, {1035502701, 0}, {1035502701, 1}, {1034512620, 1}, {2200, 0}}},
		{"Loading into Ranni's Rise, after the whole festival and freeing Blaidd from the Evergaol, picking up the Amber Starlight for Seluvis", "", []QuestFlag{{1035502849, 1}, {1035502842, 1}, {1035502841, 1}, {1035502840, 1}, {1035502810, 1}, {1035502580, 1}, {1035502510, 1}, {1035502500, 1}, {1035500800, 1}, {1035509208, 0}, {1034512580, 1}, {1034502804, 1}, {1034502803, 1}, {1034502802, 1}, {1034502801, 1}, {1034502800, 1}, {1034502620, 1}, {1034502580, 1}, {1034502510, 1}, {1034500734, 1}, {1034500733, 1}, {1034500732, 1}, {1034500731, 1}, {1034500718, 1}, {1034492273, 1}, {1034492272, 1}, {1034492271, 1}, {1034492270, 1}, {1034505002, 1}, {1034505003, 1}, {1034505004, 1}, {1034505006, 1}, {1034509347, 0}, {1034509401, 0}, {1034509301, 0}, {1034499201, 0}, {1034499203, 0}, {1035505068, 1}, {1034502711, 0}, {1034512621, 0}, {1034512622, 0}, {1034512620, 0}, {1034505008, 1}, {1034505009, 1}, {1035505006, 1}, {1034500512, 0}, {1034500511, 1}, {1034505010, 1}, {1035500512, 0}, {1035505003, 1}, {1035505004, 1}, {1035505002, 1}, {558, 1}, {1035502700, 0}, {1035502701, 0}, {1035502702, 0}, {1035502701, 1}, {1034509253, 0}, {1034509258, 1}, {1034509403, 0}, {1034502748, 0}, {1034509302, 0}, {1034509346, 0}, {1034500712, 1}, {1034499204, 0}, {1034499202, 0}, {1034512620, 1}, {78223, 1}, {1034495000, 1}, {78224, 1}, {1035505000, 1}, {1035505077, 1}, {1035505074, 1}, {1034505018, 1}}},
		{"Opening the Fingerslayer Blade's chest", "Night's Sacred Ground in Nokron", []QuestFlag{{12028670, 1}, {12023721, 1}}},
		{"Receiving the Fingerslayer Blade", "", []QuestFlag{{12027080, 1}}},
		{"Porting to Ranni's Rise after aquiring the Blade", "Ranni's Rise in Liurnia", []QuestFlag{{1034512620, 0}, {558, 1}, {1035502701, 0}, {1035502702, 1}, {1034512620, 1}}},
		{"Talking to Ranni after aquiring the Blade", "", []QuestFlag{{1034502745, 1}}},
		{"Dialogue ends", "", []QuestFlag{{1034509420, 1}, {1034509429, 1}}},
		{"Talking to her again", "", []QuestFlag{{1034509421, 1}}},
		{"Receiving \"Carian Inverted Statue\", repeating dialogue afterwards", "", []QuestFlag{{400391, 1}}},
		{"Instead of Ranni there will now be a grace in her room", "", []QuestFlag{{76247, 1}, {78230, 1}, {1034505001, 1}}},
		{"Receiving the \"Cursemark of Death\", Renna's Rise will now be unlocked", "Divine Tower of Liurnia", []QuestFlag{{34117500, 1}}},
		{"Spawning in Ainsel River after using the teleporter in Renna's Rise", "Ainsel River Main", []QuestFlag{{1035469205, 0}, {12015063, 1}, {12015074, 1}, {12015078, 1}, {12015076, 1}}},
		{"Picking up \"Miniature Ranni\"", "", []QuestFlag{{400394, 1}, {12015062, 1}}},
		{"First time choosing \"Talk to Miniature Ranni\", \"...\"", "", []QuestFlag{{12019255, 1}}},
		{"Second time choosing \"Talk to Miniature Ranni\", \"...\"", "", []QuestFlag{{12019256, 1}}},
		{"Third time choosing \"Talk to Miniature Ranni\", she will speak afterwards, \"Talk to Ranni\" appears now", "", []QuestFlag{{12019257, 1}}},
		{"Choosing \"Talk to Ranni\", telling you to kill the Bareful Shadow, repeating dialogue afterwards", "", []QuestFlag{{12019258, 1}}},
		{"Talking to her again at \"Nokstella, Eternal City\" grace", "Nokstella, Eternal City", []QuestFlag{{12019260, 1}}},
		{"Talking to her again, turns into repeating dialogue", "", []QuestFlag{{12019261, 1}}},
		{"Talking to her", "Nokstella Waterfall Basin", []QuestFlag{{12019265, 1}}},
		{"Talking to her again, saying she said too much", "", []QuestFlag{{12019266, 1}}},
		{"Distancing from the grace", "", []QuestFlag{{12012712, 0}, {12012711, 0}, {12012710, 0}}},
		{"Bareful Shadow spawn in until death", "", []QuestFlag{{12017800, 1}, {12017810, 1}, {12012715, 1}, {12010705, 1}, {12010516, 1}, {12015059, 1}, {12019270, 1}, {12019271, 1}, {12010707, 1}, {12019280, 1}, {12012716, 1}, {12010706, 1}, {12019272, 1}, {12019273, 1}}},
		{"She stops talking, you receive \"Discarded Palace Key\"", "", []QuestFlag{{12012716, 0}, {400159, 1}, {3050, 1}, {12010708, 1}}},
		{"Porting to the Library", "Raya Lucaria Grand Library in Liurnia", []QuestFlag{{140028122, 1}, {140028121, 1}, {14002141, 0}, {14002142, 0}, {14002143, 0}, {14002144, 0}, {14005025, 1}, {14005024, 1}, {14009351, 0}, {14002661, 0}, {14002662, 0}, {14002660, 0}, {14005014, 1}, {14005015, 1}, {14005016, 1}, {14005011, 1}, {14005006, 1}, {14005007, 1}, {14005002, 1}, {14005004, 1}, {14000512, 0}, {14000517, 0}, {14000516, 0}, {14005009, 1}, {14000522, 0}, {14005012, 1}, {14005013, 1}, {14005018, 1}, {14005021, 1}, {14005022, 1}, {14005023, 1}, {14003978, 1}, {14003915, 1}, {14003838, 1}, {14003837, 1}, {14003836, 1}, {14003835, 1}, {14003834, 1}, {14003829, 1}, {14003828, 1}, {14003826, 1}, {14003825, 1}, {14003823, 1}, {14003822, 1}, {14003821, 1}, {14003820, 1}, {14002889, 1}, {14002860, 1}, {14002850, 1}, {14002849, 1}, {14002811, 1}, {14002810, 1}, {14002800, 1}, {14002689, 1}, {14002665, 1}, {14002594, 1}, {14002592, 1}, {14002590, 1}, {14002580, 1}, {14002510, 1}, {14002498, 1}, {14002343, 1}, {14002342, 1}, {14002341, 1}, {14002340, 1}, {14002339, 1}, {14002338, 1}, {14002337, 1}, {14002336, 1}, {14002335, 1}, {14002334, 1}, {14002333, 1}, {14002332, 1}, {14002331, 1}, {14002330, 1}, {14002329, 1}, {14002328, 1}, {14000700, 1}, {14005000, 1}, {14005001, 1}, {14002660, 1}, {14003977, 1}, {14000702, 1}, {14005168, 1}, {14005163, 1}, {14005165, 1}, {14005161, 1}, {14003814, 1}}},
		{"Opening the chest", "", []QuestFlag{{14000676, 1}, {14002606, 1}}},
		{"Receiving the \"Dark Moon Ring\"", "", []QuestFlag{{114, 1}}},
		{"Reloading the area", "", []QuestFlag{{14002660, 1}}},
		{"\"Put on the ring\" cutscene", "Cathedral of Manus Celes in Liurnia", []QuestFlag{{780000, 1}, {9021, 1}, {2200, 1}}},
		{"Cutscene ends, Ranni appears afterwards", "", []QuestFlag{{2200, 0}, {780000, 0}, {1035420150, 1}, {1035422150, 1}, {9021, 0}, {1035422151, 1}, {3758, 1}, {1035422714, 1}, {1035420712, 1}, {1937, 1}, {3758, 0}, {3740, 0}, {3741, 0}, {3742, 0}, {3743, 0}, {3740, 1}, {3745, 0}, {3746, 0}, {3747, 0}, {3748, 0}, {3749, 0}, {3750, 0}, {3751, 0}, {3752, 0}, {3753, 0}, {3754, 0}, {3755, 0}, {3756, 0}, {3757, 0}, {3750, 1}, {1042369415, 0}, {1035420710, 1}}},
		{"Talking to Ranni, she disappears afterwards", "", []QuestFlag{{1034509406, 1}, {1035429255, 1}, {1035420711, 1}}},
		{"Picking up the \"Dark Moon Greatsword\"", "", []QuestFlag{{400393, 1}, {1035425013, 1}}},
		{"\"Talk to Miniature Ranni\", gets replaced with \"Talk to Ranni\" afterwards", "Ranni's Rise in Liurnia", []QuestFlag{{12019275, 1}, {1034509407, 1}}},
		{"Choosing \"Talk to Ranni\", repeating dialogue afterwards", "", []QuestFlag{{12019276, 1}}},
		{"Talking to Ranni about the Cursemark", "Ranni's Rise in Liurnia", []QuestFlag{{1034509432, 1}, {1034509405, 1}, {1034509400, 1}}},
		{"Talking to her again asking where the Cursemark is, she says its not here and sends you away", "", []QuestFlag{{1034509409, 1}}},
		{"Going back to Ranni after talking to Rogier, you can now enter her service this way", "", []QuestFlag{{1034509410, 1}, {1034509412, 1}, {3618, 1}, {3778, 1}, {3578, 1}, {1034500738, 1}, {1034500732, 1}, {1034500736, 1}, {1034505015, 1}, {3779, 1}, {3619, 1}, {3579, 1}, {3778, 0}, {3765, 0}, {3766, 1}, {1034509360, 1}, {1034509361, 1}, {3618, 0}, {3605, 0}, {3609, 1}, {3578, 0}, {3565, 0}, {3566, 1}, {1034500715, 1}, {1034500710, 1}, {1034500700, 1}, {1034490701, 1}, {1034490700, 1}}},
	},
	"Roderika": {
		{"First time initiating dialogue with Roderika at \"Stormhill Shack\"", "Stormhill Shack in Limgrave", []QuestFlag{{1041382735, 1}}},
		{"End of first dialogue with Roderika at \"Stormhill Shack\", receiving \"Sitting Sideways\" emote", "", []QuestFlag{{1041389406, 1}}},
		{"\"Sitting Sideways\" emote", "", []QuestFlag{{60835, 1}}},
		{"End of second dialogue with Roderika at \"Stormhill Shack\"", "", []QuestFlag{{1041389407, 1}}},
		{"Third dialogue start at \"Stormhill Shack\", receiving \"Spirit Jellyfish Ashes\"", "", []QuestFlag{{1041389411, 1}}},
		{"Receiving \"Spirit Jellyfish Ashes\"", "", []QuestFlag{{710550, 1}, {400190, 1}}},
		{"End of fourth dialogue with Roderika at \"Stormhill Shack\" (\"It was a pleasure to see you.\") -> repeating dialogue", "", []QuestFlag{{1041389408, 1}}},
		{"Activating her shield when trying to attack Roderika (it was accidental I swear :( )", "", []QuestFlag{{1041382736, 1}, {1041385005, 1}, {1041382731, 1}, {1041383731, 1}}},
		{"Picking up Chrysalids' Memento", "", []QuestFlag{{10007450, 1}}},
		{"Giving Roderika the Chrysalids' Memento", "", []QuestFlag{{1041389412, 1}}},
		{"Talking to her again after giving her the Memento at Stormhill Shack, telling you she will move to the Roundtable Hold, repeating dialogue", "", []QuestFlag{{1041389409, 1}, {1041389413, 1}}},
		{"Initial dialogue with Roderika at Roundtable Hold", "Roundtable Hold, next to the grace", []QuestFlag{{1041382735, 1}}},
		{"First dialogue at Roundtable Hold ends", "", []QuestFlag{{11109255, 1}}},
		{"Talking to her again at Roundtable Hold, receiving Golden Seed, looking for purpose repeating dialogue afterwards", "", []QuestFlag{{11109258, 1}, {400191, 1}}},
		{"Telling Roderika about Master Hewg after talking to him", "", []QuestFlag{{11109256, 1}}},
		{"After reloading at the grace, Roderika moved to her new place, talking to her, telling you she is a Spirit Tuner prentice now. Menu pop up afterwards, Spirit Tuning is now unlocked", "Roundtable Hold, in the same room as Master Hewg, now a Spirit Tuner", []QuestFlag{{11109265, 1}, {11109260, 0}, {11109261, 0}, {11109262, 0}, {11109263, 0}, {11109264, 0}}},
		{"Clicking on Spirit Tuning", "", []QuestFlag{{1041389415, 1}, {1041389415, 0}, {1041389416, 1}, {11103713, 1}}},
		{"Leaving Spirit Tuning menu", "", []QuestFlag{{1041389416, 0}}},
		{"Reloading at grace after exhausting Roderika's and Master Hewg's dialogue printed this flag", "", []QuestFlag{{11102715, 1}}},
		{"Picking up \"Crimson Hood\" where you found the Memento after she turned into a Spirit Tuner", "", []QuestFlag{{10007452, 1}}},
		{"Going back to the Roundtable Hold after picking up Crimson Hood printed this flag", "", []QuestFlag{{11102712, 1}}},
		{"Talking to her", "", []QuestFlag{{1041382735, 1}}},
		{"Receiving \"Curtsy\" gesture", "", []QuestFlag{{60803, 1}, {11109267, 1}}},
		{"Talking to her after visiting Altus Plateau, \"There's something you should know\" appears now", "", []QuestFlag{{1041382735, 1}, {11109260, 0}, {11109261, 0}, {11109262, 0}, {11109263, 0}, {11109264, 0}, {11109260, 1}}},
		{"Choosing \"There's something you should know\"", "", []QuestFlag{{11109268, 1}}},
		{"\"There's something you should know\" disappears, gets replaced with a repeating one", "", []QuestFlag{{11109260, 0}, {11109261, 1}}},
		{"Choosing the repeating \"There's something you should know\", stays even after reload", "", []QuestFlag{{11109269, 1}}},
		{"Speaking to her after Dung Eater left the RTH, \"About the voices\" option appears", "", []QuestFlag{{11109260, 0}, {11109261, 0}, {11109262, 0}, {11109263, 0}, {11109264, 0}, {11109262, 1}}},
		{"Choosing \"About the voices\", disappears afterwards", "", []QuestFlag{{11109270, 1}, {11109262, 0}}},
		{"Talking to Roderika again after Dung Eater moves back to RTH, \"Please take care\" option appears", "", []QuestFlag{{11109264, 1}}},
		{"\"About the voices...\"option appears again after giving Dung Eater some Seedbed Curses, causing him to leave the RTH", "", []QuestFlag{{11109263, 1}}},
		{"Choosing \"About the voices...\", disappears afterwards", "", []QuestFlag{{11109271, 1}, {11109263, 0}}},
		{"Talking to Roderika after burning the tree, she is now next to the grace, wanting you to talk to Master Hewg, repeating dialogue", "", []QuestFlag{{11109275, 1}}},
		{"Talking to Hewg after burning the tree, \"About the god-slaying weapon\" and \"Why are you still making weapons?\" options appear", "", []QuestFlag{{11109238, 1}, {11109235, 1}, {11109233, 1}}},
		{"Choosing \"About the god-slaying weapon\", stays afterwards", "", []QuestFlag{{11109230, 1}, {11109235, 0}, {11109233, 0}, {11109235, 1}, {11109234, 1}}},
		{"Choosing it again, calling you Lord ( :'( ), option disappears afterwards", "", []QuestFlag{{11109231, 1}, {11109235, 0}, {11109234, 0}, {11109235, 1}}},
		{"Choosing \"Why are you still making weapons?\", option disappears afterwards", "", []QuestFlag{{11109227, 1}, {11109235, 0}}},
		{"Talking to Roderika again after talking to Hewg, \"About Hewg\" appears", "", []QuestFlag{{11109227, 1}}},
		{"Choosing \"About Hewg\", option disappears afterwards", "", []QuestFlag{{11109276, 1}}},
		{"Talking to Hewg after talking to Roderika again, \"What happened to her?\" appears", "", []QuestFlag{{11109236, 1}}},
		{"Choosing \"What happened to her?\", option disappears afterwards", "", []QuestFlag{{11109232, 1}, {11109236, 0}}},
	},
	"Rya": {
		{"Initial dialogue with Rya next to the Telescope in Liurnia Lake, accepting her request, repeating dialogue", "Near the telescope that is near Boilprawn Shack in Liurnia", []QuestFlag{{1037429209, 1}, {1037429202, 0}, {1037429202, 1}}},
		{"Giving Rya her necklace back, receiving \"Volcano Manor Invitation\" letter", "", []QuestFlag{{1037429210, 1}}},
		{"\"Volcano Manor Invitation\"", "", []QuestFlag{{400090, 1}}},
		{"Talking to her again after receiving the letter, she is telling you about the shortcut to Altus Plateau, repeating dialogue, disappearing from Liurnia after resting/reloading, after this step is done", "", []QuestFlag{{1037429211, 1}}},
		{"Talking to her and refusing to take her hand", "Grand Lift of Dectus", []QuestFlag{{1038519206, 1}, {3081, 1}, {1038509202, 1}}},
		{"Taking her hand", "", []QuestFlag{{1038502705, 1}, {1038502708, 1}, {1038502706, 1}, {1038502707, 1}, {1038502709, 1}, {1038502707, 0}}},
		{"After animation stops taking her hand, loading screen starts right after", "", []QuestFlag{{1038519205, 1}, {1038502705, 0}, {1038502708, 0}, {16008540, 1}, {1038503703, 1}}},
		{"Talking to Rya in the Drawing Room, repeating dialogue", "Drawing Room in Volcano Manor", []QuestFlag{{16009305, 1}, {16009302, 1}}},
		{"Talking to Rya after the first Invasion, saying she hears strange sounds, repeating dialogue", "", []QuestFlag{{16009308, 1}, {16002710, 1}}},
		{"Talking to Rya after the first Invasion, saying she hears strange sounds, repeating dialogue", "", []QuestFlag{{16009308, 1}, {16002710, 1}}},
		{"Talking to Rya as a serpent for the first time", "Different room in Volcano Manor", []QuestFlag{{16009306, 1}, {16002711, 1}, {3081, 1}, {16009302, 0}, {16009312, 1}}},
		{"Talking to her again, telling you Tanith is her mother, repeating dialogue", "", []QuestFlag{{16009307, 1}}},
		{"Talking to Rya after the second invasion, choosing not to tell her about the secret part of Volcano Manor", "", []QuestFlag{{16009315, 1}}},
		{"Telling her about the secret, repeating dialogue", "", []QuestFlag{{16009318, 1}}},
		{"Picking up \"Serpent's Amnion\"", "", []QuestFlag{{16007710, 1}}},
		{"Giving her the \"Serpent's Amnion\", repeating dialogue", "", []QuestFlag{{16009319, 1}, {16009312, 0}, {16009312, 1}}},
		{"Gets set after a reload, Rya will have moved", "", []QuestFlag{{16009312, 0}}},
		{"Talking to Rya and not giving her the Tonic, asking you to kill her", "Side room deeper inside Volcano Manor", []QuestFlag{{16009326, 1}, {16002715, 1}, {16009322, 1}}},
		{"Killing Rya, thanking you while dying", "", []QuestFlag{{3420, 0}, {3421, 0}, {3422, 0}, {3423, 0}, {3424, 0}, {3423, 1}, {16005043, 1}}},
		{"Picking up \"Daedicar's Woe\"", "", []QuestFlag{{400091, 1}, {16009322, 0}, {16009322, 1}}},
		{"Giving Rya the Tonic", "Side room deeper inside Volcano Manor", []QuestFlag{{16009327, 1}, {16009322, 0}, {16009322, 1}}},
		{"Rya just falls asleep", "", []QuestFlag{{16009329, 1}}},
		{"After defeating Rykard and having everyone else leave the Manor and having given Rya the tonic from Tanith: Rya will be back in the Drawing Room. Talking to her, single dialogue, repeating dialogue afterwards", "Drawing Room inside Volcano Manor", []QuestFlag{{16009335, 1}, {16009312, 1}}},
		{"Reloading the area", "", []QuestFlag{{16009464, 0}, {16009464, 1}, {16009312, 0}, {16009312, 1}}},
		{"After reloading the area, Rya will be gone too, leaving behind loot you can pick up", "", []QuestFlag{{16009338, 1}}},
		{"Picking up the loot, receiving \"Daedicar's Woe\" - second Rya ending", "", []QuestFlag{{400091, 1}, {16005045, 1}, {16009312, 0}, {16009312, 1}, {16009313, 1}}},
		{"Talking to Rya after killing Rykard and not giving her the tonic, repeating dialogue", "Side room deeper inside Volcano Manor", []QuestFlag{{16009328, 1}, {16009322, 0}, {16009322, 1}}},
	},
	"Seluvis": {
		{"Talking to Spirit Seluvis", "Ranni's Rise in Liurnia", []QuestFlag{{1034509305, 1}}},
		{"Talking to Spirit Seluvis again, having talked to all 3 now", "", []QuestFlag{{1034509306, 1}, {1034509417, 1}, {1034500734, 1}}},
		{"Talking to him for the first time in his Rise and refusing", "Seluvis's Rise in Liurnia", []QuestFlag{{1034509310, 1}, {1034502726, 0}, {1034509300, 1}}},
		{"Accepting and receiving \"Seluvis's Potion\"", "", []QuestFlag{{1034509312, 1}, {400140, 1}, {1034509300, 0}, {1034509300, 1}}},
		{"Talking to him again, he telling you he has no time for chit-chat, option \"Ask about Nokron\" appears (after speaking to Blaidd in Sofria)", "", []QuestFlag{{1034509317, 0}, {1034509318, 0}, {1034509319, 0}, {1034509320, 0}, {1034509321, 0}, {1034509322, 0}, {1034509323, 0}, {1034509324, 0}, {1034509325, 0}, {1034509326, 0}, {1034509327, 0}, {1034509319, 1}, {1034509317, 1}, {1034509321, 1}}},
		{"Choosing \"Ask about Nokron\", telling you about Sellen", "", []QuestFlag{{1034509330, 1}}},
		{"Receiving \"Seluvis's Introduction\"", "", []QuestFlag{{400143, 1}}},
		{"Returning to Seluvis after giving Gideon the potion", "", []QuestFlag{{1034509313, 1}}},
		{"Talking to him again, menu pop-up with the options \"Study sorcery\", \"About Nepheli\" and \"About your chambers\"", "", []QuestFlag{{1034509314, 1}, {1034509346, 1}, {1034509317, 0}, {1034509321, 0}, {1034509317, 1}, {1034509321, 1}}},
		{"After choosing \"About Nepheli\", option disappears", "", []QuestFlag{{1034509317, 0}, {1034509321, 0}, {1034509317, 1}}},
		{"Choosing \"About your chambers\", being able to choose a puppet ash, choosing the Finger Maiden ash, \"About your chambers\" disappears", "", []QuestFlag{{1034509328, 1}, {1034509347, 1}, {1034509317, 0}, {1034505024, 1}, {1034509347, 0}}},
		{"Picking up a Starlight Shard, causing him to update so he sells the puppets, sometimes you need to aquire a couple more", "", []QuestFlag{{1041377020, 1}}},
		{"\"I want a new puppet\" dialogue option appears in the menu", "", []QuestFlag{{1034509318, 1}}},
		{"After choosing \"I want a new puppet\", \"Obtain a puppet\" appears after his dialogue", "", []QuestFlag{{1034509329, 1}}},
		{"\"I want a new puppet\" disappears", "", []QuestFlag{{1034509318, 1}}},
		{"Buying the other puppet", "", []QuestFlag{{1034509345, 1}, {1034500718, 1}}},
		{"\"About the scheme\" appears now after talking to him again", "", []QuestFlag{{1034509322, 1}}},
		{"Choosing to be not interested when choosing \"About the scheme\"", "", []QuestFlag{{1034509334, 1}}},
		{"\"About your scheme\" appears afterwards", "", []QuestFlag{{1034509323, 1}}},
		{"Choosing \"About your scheme\" and saying you are interested, talking about an Amber Starlight Shard", "", []QuestFlag{{1034509333, 1}}},
		{"\"About your scheme\" disappears", "", []QuestFlag{{1034509323, 0}}},
		{"\"About Amber Starlight\" appears", "", []QuestFlag{{1034509324, 1}}},
		{"Choosing \"About Amber Starlight\", repeating dialogue", "", []QuestFlag{{1034509324, 0}, {1034509324, 1}}},
		{"Picking up \"Amber Starlight\"", "Altus Plateu", []QuestFlag{{1040527000, 1}}},
		{"Approaching Seluvis, after picking up the Amber Starlight", "Ranni's/Seluvis's Rise", []QuestFlag{{1035505001, 1}, {1035515000, 1}}},
		{"\"Give Amber Starlight\" appears", "", []QuestFlag{{1034509325, 1}}},
		{"Choosing \"Give Amber Starlight\"", "", []QuestFlag{{1034509335, 1}}},
		{"Dialogue ends", "", []QuestFlag{{1034502726, 0}}},
		{"Talking to him again", "", []QuestFlag{{1034509315, 1}}},
		{"Receiving \"Magic Scorpion Charm\" as a reward", "", []QuestFlag{{400141, 1}}},
		{"\"Give Amber Starlight\" disappears", "", []QuestFlag{{1034509325, 0}}},
		{"Reloading at a grace", "", []QuestFlag{{1034509346, 0}}},
		{"Talking to Seluvis after a reload", "", []QuestFlag{{1034509316, 1}}},
		{"Receiving \"Amber Draught\"", "", []QuestFlag{{400145, 1}}},
		{"Dialogue ends after receiving \"Amber Draught\", \"About the draught\" option appears", "", []QuestFlag{{1034509346, 1}, {1034509326, 1}}},
		{"Choosing \"About the draught\"", "", []QuestFlag{{1034509336, 1}}},
		{"\"About the draught\" disappears afterwards", "", []QuestFlag{{1034509326, 0}}},
		{"After a reload", "", []QuestFlag{{1034509346, 0}}},
		{"Trying to talk to Ranni", "", []QuestFlag{{1034509423, 1}}},
		{"Option pop-up, asking if sure to give the Draught", "", []QuestFlag{{1034509422, 1}}},
		{"Giving Ranni the Draught (This will turn Ranni's quest incompletable)", "", []QuestFlag{{1034509424, 1}, {1034509425, 1}, {1034502745, 1}, {3578, 1}, {1034500735, 1}, {3579, 1}, {3578, 0}, {3568, 0}, {3569, 1}, {1035509215, 1}, {1035500701, 1}, {1035500700, 1}, {1034500717, 1}, {1034500716, 1}, {1035502700, 0}, {1035502702, 1}}},
		{"Dialogue ends", "", []QuestFlag{{1034509426, 1}, {1034509422, 0}}},
		{"Talking to her again", "", []QuestFlag{{1034509427, 1}}},
		{"Talking to her the third time, she instantly kills you", "", []QuestFlag{{1034509428, 1}}},
		{"Seluvis will now be dead at his Rise, you can loot his Bell Bearing and armor", "Seluvis's Rise", []QuestFlag{{400148, 1}, {1034505025, 1}}},
	},
	"Sorcerer Rogier": {
		{"Talking to Rogier, telling him you want to defeat Godrick, menu pop-up", "Stormveil Castle in Limgrave", []QuestFlag{{10009606, 1}, {10009617, 1}, {10009616, 1}, {10009619, 1}, {10002770, 1}}},
		{"After buying a Skill, enables \"Talk\" prompt, dialogue of it, afterwards disappears", "", []QuestFlag{{10009609, 1}, {10009608, 1}, {11109538, 1}}},
		{"Initial dialogue with Rogier after beating Godrick", "Roundtable Hold", []QuestFlag{{11109505, 1}, {11102750, 1}, {10009618, 0}, {11109511, 0}, {11109512, 0}, {11109508, 0}, {11109510, 0}, {11109509, 0}, {11109513, 0}, {11109516, 0}, {11109514, 0}, {11109515, 0}, {11109541, 0}, {11109542, 0}, {11109531, 0}, {11109512, 1}, {11109513, 1}, {11109511, 1}}},
		{"Choosing \"I've defeated Godrick\", receiving \"Rogier's Rapier+8\"", "", []QuestFlag{{11109520, 1}, {400358, 1}, {65854, 1}}},
		{"After receiving his Rapier, dialogue finishes, menu popup, no more \"I've defeated Godrick\" option", "", []QuestFlag{{11109511, 0}, {11109512, 0}, {11109513, 0}, {11109512, 1}, {11109513, 1}}},
		{"Choosing \"About the corpse under Stormveil\", option disappears afterwards, menu popup", "", []QuestFlag{{11109521, 1}, {11109512, 0}, {11109513, 0}, {11109513, 1}}},
		{"Choosing \"About D\", option does not disappear afterwards, menu popup", "", []QuestFlag{{11109522, 1}, {11109513, 0}, {11109516, 1}}},
		{"Choosing \"About D\" again, dialogue ends, option disappears, menu popup", "", []QuestFlag{{11109525, 1}, {11109516, 0}}},
		{"\"Talk\" option appears, telling you he might fall into a slumber soon", "", []QuestFlag{{11109531, 1}}},
		{"\"Talk\" dialogue ends, option disappears", "", []QuestFlag{{11109532, 1}, {11109531, 0}}},
		{"Returning to RTH he is in a slumber", "", []QuestFlag{{11109535, 1}, {10009619, 1}, {10009617, 1}}},
		{"Looting his dead body, receiving his Bell Bearing and his armor", "", []QuestFlag{{400359, 1}, {11105019, 1}}},
		{"Picking up \"Rogier's Letter\"", "", []QuestFlag{{400356, 1}, {11105020, 1}}},
		{"\"Give the Black Knifeprint\" appears", "RTH", []QuestFlag{{11109508, 1}}},
		{"Option disappears after choosing it", "", []QuestFlag{{11109527, 1}, {11109517, 1}, {400357, 0}, {11109508, 0}}},
		{"Reloading the area", "", []QuestFlag{{11109529, 1}}},
		{"Talking to him again, getting the Knifeprint back", "", []QuestFlag{{11109506, 1}, {400357, 1}}},
		{"\"About Ranni's whereabouts\" appears", "", []QuestFlag{{11109510, 1}, {11109507, 1}}},
		{"Choosing it, get's replaced with a new version, that just has repeated dialogue", "", []QuestFlag{{11109510, 0}, {11109541, 1}}},
		{"After talking to Ranni, \"About Ranni's whereabouts\" disappears and \"Ranni cast off her cursemark\" appears", "", []QuestFlag{{11109541, 0}, {11109509, 1}}},
		{"Choosing it, disappears, \"Rogier's proposition\" appears, repeating dialogue", "", []QuestFlag{{11109518, 1}, {11109509, 0}, {11109542, 1}}},
		{"\"Why do you want the cursemark\" appears after he tells you that he might fall into a slumber", "", []QuestFlag{{11109516, 1}}},
		{"Choosing it, option disappears", "", []QuestFlag{{11109515, 1}, {11109516, 0}}},
		{"2x \"About D\" dialogue, disappears afterwards", "", []QuestFlag{{11109524, 1}, {11109515, 0}, {11109516, 1}, {11109525, 1}, {11109516, 0}}},
	},
	"Sorceress Sellen": {
		{"Initiating first ever dialogue with Sellen", "Waypoint Ruins Cellar in Limgrave", []QuestFlag{{1044369202, 1}}},
		{"End of first dialogue -> \"I want to learn sorcery\" prompt", "", []QuestFlag{{1044369206, 1}}},
		{"End of second dialogue after choosing \"I want to learn sorcery\" and leading to menu pop-up, receiving \"Nod In Thought\" emote", "", []QuestFlag{{1044369209, 1}, {60817, 1}, {1044369211, 0}, {1044369212, 0}, {1044369213, 0}, {1044369214, 0}, {1044369215, 0}, {1044369216, 0}, {1044369218, 0}, {1044369219, 0}, {1044369217, 0}, {1044369220, 0}, {1044369249, 0}, {1044369238, 0}, {1044369239, 0}, {1044369240, 0}, {1044369243, 0}}},
		{"Talking to her again after leaving the menu the first time", "", []QuestFlag{{1044369210, 1}, {1044362705, 1}}},
		{"Talking to her while she is trapped for the first time", "Witchbane Ruins in Limgrave", []QuestFlag{{1041339206, 1}}},
		{"Talking to Sellen after talking to Seluvis about Nokron, \"Show letter of introduction\" option appears", "Waypoint Ruins in Limgrave", []QuestFlag{{1044369214, 1}, {1043362212, 1}, {1043362213, 1}, {1043362215, 1}, {1043362217, 1}}},
		{"Receiving Comet Azur from Azur", "Hermit Village in Altus Plateau", []QuestFlag{{400440, 1}}},
		{"Talking to Sellen after receiving Comet Azur", "Waypoint Ruins in Limgrave", []QuestFlag{{1044369202, 1}}},
		{"Menu pop-up, now with \"Show Azur's sorcery\"", "", []QuestFlag{{1044362705, 1}, {1044369211, 0}, {1044369212, 0}, {1044369213, 0}, {1044369214, 0}, {1044369215, 0}, {1044369216, 0}, {1044369218, 0}, {1044369219, 0}, {1044369217, 0}, {1044369220, 0}, {1044369249, 0}, {1044369238, 0}, {1044369239, 0}, {1044369240, 0}, {1044369243, 0}, {1044369215, 1}}},
		{"Choosing \"Show Azur's sorcery\", gets replaced with \"Tell me your story\" afterwards", "", []QuestFlag{{1044369224, 1}, {1044369215, 0}, {1044369216, 1}}},
		{"Choosing \"Tell me your story\" and saying let me think about it (refusing), afterwards \"I'll help restore the primeval current\" appears", "", []QuestFlag{{1044369226, 1}, {1044369216, 0}, {1044369217, 1}}},
		{"Choosing \"I'll help restore...\", disappears afterwards, \"I have a favor to ask\" appears", "", []QuestFlag{{1044369229, 1}, {1044369217, 0}, {1044369218, 1}}},
		{"Choosing \"I have a favor to ask\", receiving \"Glintstone Sealbreaker\", \"Lead on Lusat\" appears", "", []QuestFlag{{1044369227, 1}, {400102, 1}, {1044369218, 0}, {1044369249, 1}}},
		{"Choosing \"Lead on Lusat\", stays and is repeating dialogue", "", []QuestFlag{{1044369249, 0}, {1044369249, 1}}},
		{"Buying 3, then all of Sellen's sorceries", "", []QuestFlag{{1044369237, 1}, {1044369235, 1}, {1044363713, 1}}},
		{"\"About glintstone sorcery\" appears after buying more sorceries", "", []QuestFlag{{1044369220, 1}}},
		{"\"Choosing \"About glintstone sorcery\", disappears afterwards", "", []QuestFlag{{1044369230, 1}, {1044369220, 0}}},
		{"New dialogue when leaving, after buying all sorceries, saying she is proud", "", []QuestFlag{{1044369236, 1}}},
		{"Reloading the area after buying all sorceries, \"About the request\" appears", "", []QuestFlag{{1044369221, 1}, {1044369212, 1}}},
		{"Choosing \"About the request\"", "", []QuestFlag{{1044369222, 1}}},
		{"Dialogue ends, \"About the request\" is still present, repeats dialogue", "", []QuestFlag{{1044369212, 0}, {1044369213, 1}}},
		{"All these got printed when I ported to Sellia Hideaway after talking to Sellen, looked too interesting to not include", "Sellia Hideaway in Caelid", []QuestFlag{{1252382860, 1}, {1252382850, 1}, {1252382820, 1}, {1252382810, 1}, {1252382800, 1}, {1252382695, 1}, {1252382689, 1}, {1252382688, 1}, {1252382687, 1}, {1252382686, 1}, {1252382685, 1}, {1252382684, 1}, {1252382683, 1}, {1252382682, 1}, {1252382681, 1}, {1252382680, 1}, {1252382679, 1}, {1252382678, 1}, {1252382675, 1}, {1252382673, 1}, {1252382668, 1}, {1252382666, 1}, {1252382662, 1}, {1252382659, 1}, {1252382657, 1}, {1252382655, 1}, {1252382654, 1}, {1252382653, 1}, {1252382652, 1}, {1252382651, 1}, {1252382648, 1}, {1252382647, 1}, {1252382645, 1}, {1252382644, 1}, {1252382643, 1}, {1252382641, 1}, {1252382640, 1}, {1252382638, 1}, {1252382636, 1}, {1252382635, 1}, {1252382629, 1}, {1252382625, 1}, {1252382624, 1}, {1252382623, 1}, {1252382621, 1}, {1252382619, 1}, {1252382618, 1}, {1252382617, 1}, {1252382616, 1}, {1252382614, 1}, {1252382613, 1}, {1252382612, 1}, {1252382609, 1}, {1252382608, 1}, {1252382606, 1}, {1252382602, 1}, {1252382600, 1}, {1252382599, 1}, {1252382598, 1}, {1252382595, 1}, {1252382593, 1}, {1252382588, 1}, {1252382586, 1}, {1252382582, 1}, {1252382579, 1}, {1252382577, 1}, {1252382575, 1}, {1252382574, 1}, {1252382573, 1}, {1252382572, 1}, {1252382571, 1}, {1252382568, 1}, {1252382567, 1}, {1252382565, 1}, {1252382564, 1}, {1252382563, 1}, {1252382561, 1}, {1252382560, 1}, {1252382558, 1}, {1252382556, 1}, {1252382555, 1}, {1252382549, 1}, {1252382545, 1}, {1252382544, 1}, {1252382543, 1}, {1252382541, 1}, {1252382539, 1}, {1252382538, 1}, {1252382537, 1}, {1252382536, 1}, {1252382534, 1}, {1252382533, 1}, {1252382532, 1}, {1252382529, 1}, {1252382528, 1}, {1252382526, 1}, {1252382522, 1}, {1252382520, 1}, {1252382519, 1}, {1252382518, 1}, {1252382515, 1}, {1252382513, 1}, {1252382508, 1}, {1252382506, 1}, {1252382502, 1}, {1252382499, 1}, {1252382497, 1}, {1252382495, 1}, {1252382494, 1}, {1252382493, 1}, {1252382492, 1}, {1252382491, 1}, {1252382488, 1}, {1252382487, 1}, {1252382485, 1}, {1252382484, 1}, {1252382483, 1}, {1252382481, 1}, {1252382480, 1}, {1252382478, 1}, {1252382476, 1}, {1252382475, 1}, {1252382469, 1}, {1252382465, 1}, {1252382464, 1}, {1252382463, 1}, {1252382461, 1}, {1252382459, 1}, {1252382458, 1}, {1252382457, 1}, {1252382456, 1}, {1252382454, 1}, {1252382453, 1}, {1252382452, 1}, {1252382449, 1}, {1252382448, 1}, {1252382446, 1}, {1252382442, 1}, {1252382440, 1}, {1252382439, 1}, {1252382438, 1}, {1252382435, 1}, {1252382433, 1}, {1252382428, 1}, {1252382426, 1}, {1252382422, 1}, {1252382419, 1}, {1252382417, 1}, {1252382415, 1}, {1252382414, 1}, {1252382413, 1}, {1252382412, 1}, {1252382411, 1}, {1252382408, 1}, {1252382407, 1}, {1252382405, 1}, {1252382404, 1}, {1252382403, 1}, {1252382401, 1}, {1252382400, 1}, {1252382398, 1}, {1252382396, 1}, {1252382395, 1}, {1252382389, 1}, {1252382385, 1}, {1252382384, 1}, {1252382383, 1}, {1252382381, 1}, {1252382379, 1}, {1252382378, 1}, {1252382377, 1}, {1252382376, 1}, {1252382374, 1}, {1252382373, 1}, {1252382372, 1}, {1252382369, 1}, {1252382368, 1}, {1252382366, 1}, {1252382362, 1}, {1252382360, 1}, {1252382359, 1}, {1252382358, 1}, {1252382355, 1}, {1252382353, 1}, {1252382348, 1}, {1252382346, 1}, {1252382342, 1}, {1252382339, 1}, {1252382337, 1}, {1252382335, 1}, {1252382334, 1}, {1252382333, 1}, {1252382332, 1}, {1252382331, 1}, {1252382328, 1}, {1252382327, 1}, {1252382325, 1}, {1252382324, 1}, {1252382323, 1}, {1252382321, 1}, {1252382320, 1}, {1252382318, 1}, {1252382316, 1}, {1252382315, 1}, {1252382309, 1}, {1252382305, 1}, {1252382304, 1}, {1252382303, 1}, {1252382301, 1}, {1252382299, 1}, {1252382298, 1}, {1252382297, 1}, {1252382296, 1}, {1252382294, 1}, {1252382293, 1}, {1252382292, 1}, {1252382289, 1}, {1252382288, 1}, {1252382286, 1}, {1252382282, 1}, {1252382280, 1}, {1252382279, 1}, {1252382278, 1}, {1252382275, 1}, {1252382273, 1}, {1252382268, 1}, {1252382266, 1}, {1252382262, 1}, {1252382259, 1}, {1252382257, 1}, {1252382255, 1}, {1252382254, 1}, {1252382253, 1}, {1252382252, 1}, {1252382251, 1}, {1252382248, 1}, {1252382247, 1}, {1252382245, 1}, {1252382244, 1}, {1252382243, 1}, {1252382241, 1}, {1252382240, 1}, {1252382238, 1}, {1252382236, 1}, {1252382235, 1}, {1252382229, 1}, {1252382225, 1}, {1252382224, 1}, {1252382223, 1}, {1252382221, 1}, {1252382219, 1}, {1252382218, 1}, {1252382217, 1}, {1252382216, 1}, {1252382214, 1}, {1252382213, 1}, {1252382212, 1}, {1252382209, 1}, {1252382208, 1}, {1252382206, 1}, {1252382202, 1}, {1252382200, 1}, {1051392582, 1}, {1051392581, 1}, {1051392580, 1}, {1050402800, 1}, {1050402206, 1}, {1050402205, 1}, {1050402208, 1}, {1050402207, 1}, {1050402204, 1}, {1050402203, 1}, {1050402202, 1}, {1050402201, 1}, {1050392580, 1}, {1050392303, 1}, {1050392301, 1}, {1050392300, 1}, {1050392214, 1}, {1050392213, 1}, {1050392212, 1}, {1050392211, 1}, {1050392210, 1}, {1050392209, 1}, {1050392208, 1}, {1050392207, 1}, {1050392206, 1}, {1050392205, 1}, {1050392204, 1}, {1050392201, 1}, {1050392200, 1}, {1050383714, 1}, {1050383713, 1}, {1050389251, 0}, {1050389261, 0}, {78494, 0}, {1051395000, 1}, {1050395001, 1}, {31115003, 1}, {31115004, 1}, {31115006, 1}, {1050395000, 1}, {1050405007, 1}, {31112849, 1}, {31112811, 1}, {31112810, 1}, {31112803, 1}, {31112802, 1}, {31112801, 1}, {31112800, 1}, {551, 1}, {1038519255, 0}, {4197, 0}, {1252385008, 1}, {31115035, 1}, {31115033, 1}, {1038519252, 0}, {1051405002, 1}, {1050402210, 1}, {1050402209, 1}, {1050392203, 1}, {1050392202, 1}}},
		{"Using the Sellian Sealbreaker on the Seal", "", []QuestFlag{{31118700, 1}, {31112400, 1}}},
		{"Receiving Stars of Ruin from Lusat", "", []QuestFlag{{400430, 1}}},
		{"Talking to Sellen after receiving \"Stars of Ruin\", \"Lusat's location\" appears now", "Waypoint Ruins in Limgrave", []QuestFlag{{1044369249, 0}, {1044369219, 1}}},
		{"Choosing \"Lusat's location\" and receiving Starlight Shards as a rewards", "", []QuestFlag{{1044369228, 1}, {400103, 1}}},
		{"Dialogue ends, \"Lusat's location\" disappears", "", []QuestFlag{{1044369219, 0}}},
		{"Talking to Sellen after her requesting to go there", "Witchbane Ruins in Limgrave", []QuestFlag{{1041339206, 1}}},
		{"Dialogue ends and you are able to \"Accpet primal glintstone\"", "", []QuestFlag{{1044369233, 1}}},
		{"Animation for \"Accept primal glintstone\"", "", []QuestFlag{{1044362702, 1}, {1044362708, 1}, {1044362703, 1}, {1044362704, 1}, {1044362709, 1}, {1044362704, 0}}},
		{"Receiving \"Sellen's Primal Glintstone\", animation stops", "", []QuestFlag{{1044369231, 1}, {400100, 1}, {1044362702, 0}, {1044362703, 0}, {1041335013, 1}, {1044362708, 0}, {1044362709, 0}, {1041335014, 1}}},
		{"Talking to her after aquiring the Glintstone, thanking you, repeating dialogue", "", []QuestFlag{{1044369232, 1}}},
		{"Transplanting the glintstone into the puppet of her", "Ranni's Rise in Liurnia", []QuestFlag{{1034509258, 0}, {1034509256, 1}, {3460, 0}, {3461, 0}, {3462, 0}, {3463, 0}, {3460, 1}, {1034503707, 1}}},
		{"Dialogue ends", "", []QuestFlag{{1034509255, 1}, {1034509259, 1}}},
		{"Talking to her again", "", []QuestFlag{{1034509257, 1}}},
		{"Talking to her again for the third time, you can buy sorceries again, she disappears after a reload", "", []QuestFlag{{14009256, 0}, {14009257, 0}, {14009258, 0}, {14009259, 0}}},
		{"Checking her summoning sign and choosing no", "Raya Lucaria Grand Library in Liurnia", []QuestFlag{{14002144, 1}, {14002144, 0}}},
		{"Choosing yes", "", []QuestFlag{{14002143, 1}}},
		{"Defeating Jerren, receiving his amor", "", []QuestFlag{{14003822, 0}, {14003822, 1}, {14002143, 0}, {14002660, 0}, {14002660, 1}}},
		{"Spawning into the Library after the fight", "", []QuestFlag{{14003977, 1}, {14000702, 1}, {14005168, 1}, {14005163, 1}, {14005165, 1}, {14005161, 1}, {14003814, 1}}},
		{"Talking to her after the fight", "", []QuestFlag{{14009255, 1}}},
		{"Talking to her again, receiving \"Glintstone Kris\"", "", []QuestFlag{{14009266, 1}, {400101, 1}}},
		{"Talking to her again, menu opens to buy", "", []QuestFlag{{14009265, 1}, {14009256, 0}, {14009257, 0}, {14009258, 0}, {14009259, 0}, {1044369214, 0}, {1044369238, 0}, {1044369239, 0}, {1044369240, 0}, {1044369243, 0}}},
		{"Leaving the menu and talking to her again", "", []QuestFlag{{14009264, 1}, {1044362706, 1}}},
		{"After reloading the area Sellen transforms and Rennala is back", "", []QuestFlag{{4698, 0}, {1034509259, 0}}},
		{"All these get set too, but i dont think they have anything to do with Sellen", "", []QuestFlag{{14002660, 1}, {1042379200, 0}, {1042379202, 0}, {1042379206, 0}, {1046389201, 0}, {1043349250, 0}, {1038509250, 0}, {1043539250, 0}, {11009255, 0}, {1043509200, 0}, {1054559200, 0}, {1036489250, 0}, {1039519250, 0}, {1037519200, 0}, {10009656, 0}, {11009270, 0}, {11009275, 0}, {1054539210, 0}, {35009350, 0}, {35009352, 0}, {1054539215, 0}, {1042379208, 0}, {11009265, 0}, {35009355, 0}, {35009358, 0}}},
		{"Talking to the now transformed Sellen, repeating dialogue, just menu popup", "", []QuestFlag{{1044362705, 1}}},
		{"Picking up \"Witch's Glintstone Crown\" next to her, Sellen will now remain here transformed with her quest complete", "", []QuestFlag{{400107, 1}, {14005031, 1}}},
		{"These get set when porting over to Azur's location, who is now dead and you can loot him", "Primeval Sorcerer Azur in Mt. Gelmir", []QuestFlag{{1040542300, 1}, {1038542580, 1}, {1038542500, 1}, {1038542453, 1}, {1038542452, 1}, {1038542451, 1}, {1038542450, 1}, {1038542400, 1}, {1038542272, 1}, {1038542271, 1}, {1038542270, 1}, {1038542262, 1}, {1038542261, 1}, {1038542260, 1}, {1038532580, 1}, {1038532208, 1}, {1038532207, 1}, {1038532206, 1}, {1038532205, 1}, {1038532204, 1}, {1038532203, 1}, {1038532202, 1}, {1038532201, 1}, {1038532200, 1}, {1038522350, 1}, {1038520340, 0}, {1038520341, 0}, {1038520343, 0}, {1038522349, 1}, {1038522348, 1}, {1038522347, 1}, {1038522346, 1}, {1038522344, 1}, {1038522345, 1}, {1038522343, 1}, {1038522339, 1}, {1037543706, 1}, {1037543703, 1}, {1037542580, 1}, {1037542569, 1}, {1037542505, 1}, {1037542458, 1}, {1037542457, 1}, {1037542456, 1}, {1037542455, 1}, {1037542454, 1}, {1037542453, 1}, {1037542452, 1}, {1037542451, 1}, {1037542450, 1}, {1037540223, 1}, {1037542354, 1}, {1037540222, 1}, {1037542353, 1}, {1037540221, 1}, {1037542352, 1}, {1037540220, 1}, {1037542351, 1}, {1037542260, 1}, {1037542255, 1}, {1037542253, 1}, {1037542252, 1}, {1037542251, 1}, {1037542250, 1}, {1037533700, 1}, {1037532350, 1}, {1037532345, 1}, {1037532201, 1}, {1036542580, 1}, {1036542500, 1}, {1036542458, 1}, {1036542457, 1}, {1036542456, 1}, {1036542455, 1}, {1036542454, 1}, {1036542453, 1}, {1036542452, 1}, {1036542451, 1}, {1036542450, 1}, {1036542350, 1}, {1036542301, 1}, {1036542250, 1}, {1036533700, 1}, {1036532500, 1}, {1036532452, 1}, {1036532451, 1}, {1036532450, 1}, {1036532300, 1}, {1038545012, 1}, {1038545011, 1}, {1038545010, 1}, {1038545009, 1}, {1037522700, 0}, {1037545044, 1}, {1036545022, 1}, {1037549201, 0}, {1037549216, 0}, {1037549256, 0}, {1037549257, 0}, {30090503, 0}, {1038525001, 1}, {1037545028, 1}, {1038532570, 0}, {1038532571, 0}, {1038525000, 1}, {1038525006, 1}, {30095002, 1}, {1037535000, 1}, {1036525000, 1}, {1036545000, 1}, {1036545002, 1}, {1037525000, 1}, {1036525014, 1}, {30090511, 0}, {30091510, 0}, {30095000, 1}, {1237485003, 1}, {1036545021, 1}, {1037535007, 1}, {1037545002, 1}, {30092849, 1}, {30092811, 1}, {30092810, 1}, {30092800, 1}, {30092580, 1}, {30092510, 1}, {30092500, 1}, {30092401, 1}, {30092400, 1}, {30092399, 1}, {30090790, 1}, {30090100, 1}, {1037549212, 0}, {1037543705, 1}, {31009205, 0}, {1037543702, 1}, {1037543701, 1}, {1037545036, 1}, {1038545070, 1}, {1038545078, 1}, {1038545086, 1}, {1038545094, 1}, {1037545055, 1}, {1037545063, 1}, {1037545071, 1}, {1037545079, 1}, {1037545087, 1}, {1037545095, 1}, {1037545103, 1}, {1037545111, 1}, {1037545119, 1}, {1036545030, 1}, {1036545038, 1}, {1036545046, 1}, {1036545054, 1}, {1036545062, 1}, {1036545070, 1}, {1036545078, 1}, {1036545086, 1}, {1036545094, 1}, {1036535011, 1}, {1036535019, 1}, {1036535027, 1}, {78353, 1}, {1036545001, 1}, {78352, 1}, {1038545001, 1}, {30095051, 1}, {30095049, 1}, {1037535002, 1}, {1036545005, 1}, {1037545026, 1}, {1038525005, 1}, {1237485005, 1}, {1237485050, 1}}},
		{"Picking up Azur's armor pieces", "", []QuestFlag{{400441, 1}}},
		{"New flags that didn't get set before, when porting to Sellia Hideaway again, where Lusat will now be dead and lootable", "Sellia Hideaway in Caelid", []QuestFlag{{1050395001, 1}, {31115003, 1}, {31115004, 1}, {31115006, 1}, {1050395000, 1}, {1244365017, 1}, {1244365016, 1}, {31113700, 1}, {31112400, 1}, {1050389253, 0}, {1050389265, 0}}},
		{"Picking up Lusat's armor pieces", "", []QuestFlag{{400431, 1}}},
	},
	"Tanith": {
		{"First time talking to Tanith, refusing to join", "Volcano Manor", []QuestFlag{{16009206, 1}, {3083, 1}, {16009202, 1}}},
		{"Talking to her again, agreeing to join, receiving the Drawing-Room Key, repeating dialogue", "", []QuestFlag{{16009208, 1}, {16009207, 1}, {400072, 1}, {3898, 1}, {3438, 1}, {16003721, 1}, {3899, 1}, {3439, 1}, {16009202, 0}, {16009202, 1}, {16009450, 1}, {16003741, 1}, {3898, 0}, {3885, 0}, {3886, 0}, {3887, 0}, {3888, 0}, {3889, 0}, {3890, 0}, {3891, 0}, {3892, 0}, {3893, 0}, {3894, 0}, {3895, 0}, {3896, 0}, {3897, 0}, {3899, 0}, {3886, 1}, {16009464, 0}, {3438, 0}, {3427, 0}, {3439, 0}, {3427, 1}, {16003740, 1}, {3087, 1}, {1042389252, 0}}},
		{"Picking up the first \"Letter from Volcano Manor\"", "", []QuestFlag{{400073, 1}, {16005030, 1}, {16005040, 1}, {3118, 1}, {16003702, 1}, {3119, 1}, {3118, 0}, {3105, 0}, {3106, 0}, {3107, 0}, {3108, 0}, {3109, 0}, {3110, 0}, {3111, 0}, {3112, 0}, {3113, 0}, {3114, 0}, {3115, 0}, {3116, 0}, {3117, 0}, {3119, 0}, {3106, 1}, {16009202, 0}, {16009202, 1}}},
		{"Talking to Tanith after picking up the first letter, repeating dialogue", "", []QuestFlag{{16009215, 1}}},
		{"Finishing the first Invasion, receiving \"Magma Shot\", repeating dialogue", "", []QuestFlag{{16009216, 1}, {400076, 1}}},
		{"Talking to Tanith about Rya, repeating dialogue, after a reload, Rya will be human again and Tanith has her other repeating dialogue back", "", []QuestFlag{{16002702, 1}, {16009219, 1}}},
		{"Talking to Tanith again, receiving the reward for the second invasion, \"Serpentbone Blade\", repeating dialogue", "", []QuestFlag{{16009217, 1}, {400077, 1}}},
		{"Talking to Tanith after telling Rya the secret, repeating dialogue", "", []QuestFlag{{16009220, 1}}},
		{"Telling Tanith that Rya is dead", "", []QuestFlag{{16009224, 1}}},
		{"Telling Tanith that you gave Rya the Tonic", "", []QuestFlag{{16009223, 1}}},
		{"Talking to Tanith after the third invasion, receiving \"Taker's Cameo\"", "", []QuestFlag{{16009237, 1}, {400078, 1}}},
		{"Choosing don't see the Lord", "", []QuestFlag{{16009236, 1}}},
		{"Saying yes, cutscene starts", "", []QuestFlag{{16009235, 1}, {16009213, 1}}},
		{"Cutscene ends, now inside the room before Rykard", "", []QuestFlag{{16009213, 0}, {16009000, 1}, {16002670, 1}}},
		{"Talking to Tanith after defeating Rykard", "", []QuestFlag{{16009245, 1}}},
		{"Talking to her again, saying she will leave the Manor, repeating dialogue", "", []QuestFlag{{16009246, 1}}},
		{"After a reload, Tanith is now gone", "", []QuestFlag{{16009464, 0}, {16009464, 1}, {16009452, 0}, {16009452, 1}, {16009322, 0}, {16009322, 1}}},
		{"Teleporting into Rykard's arena, Tanith will be here", "Rykard, Lord of Blasphemy grace in Volcano Manor", []QuestFlag{{16002752, 1}}},
		{"Talking to her, repeating dialogue, even after a reload", "", []QuestFlag{{16009255, 1}, {16002703, 1}, {16009252, 1}}},
		{"Killing Tanith, afterwards her Knight will invade you", "", []QuestFlag{{16009265, 1}, {16009258, 1}, {16009252, 0}, {16009252, 1}}},
		{"Killing her invading Knight, receiving \"Aspects of the Crucible: Breath\"", "", []QuestFlag{{16009264, 1}, {16007950, 1}, {16003706, 1}, {16009266, 1}, {16003708, 1}}},
		{"Picking up the \"Consort\" armor set from Tanith's body", "", []QuestFlag{{400071, 1}, {16005034, 1}}},
		{"Found this flag for Tanith: If you kill Rykard before speaking to Tanith and receiving the Drawing Room key, it will then be on her chair in the Manor", "", []QuestFlag{{16009270, 1}}},
		{"Tanith will never be considered as \"dead\" as other NPC's with the isDead flag, instead she has event flags like these. This one is: \"Event status_initial state\" - Being at the Manor on the chair", "", []QuestFlag{{3105, 1}}},
		{"\"Event status_Request in progress\" - Still at the Manor on the chair while the invasion requests are ongoing", "", []QuestFlag{{3106, 1}}},
		{"\"Event status_Audience granted to the king\" - When you kill the 3 invasions and she grants you to visit Rykard", "", []QuestFlag{{3107, 1}}},
		{"\"Event state_After Rycard is defeated\" - Rykard is defeated, but she will still be on the chair, need to exhaust dialogue", "", []QuestFlag{{3108, 1}}},
		{"\"Event Status_Like Card Eating\" after Rykard's death and exhausting dialogue she will move into the arena and will eat Rykard", "", []QuestFlag{{3109, 1}}},
		{"\"Event status_nowhere\" lol, gets set after killing her and reloading the area", "", []QuestFlag{{3110, 1}}},
		{"\"Event status_.\" just a simple event status flag, but it also gets set with the above, these two consider her as \"dead\"", "", []QuestFlag{{3111, 1}}},
	},
	"Thops": {
		{"Initial dialogue", "Church of Irith in Liurnia", []QuestFlag{{1039397000, 1}}},
		{"Dialogue ends, propmt being able to donate 10 runes or not", "", []QuestFlag{{1039392704, 0}}},
		{"Saying no", "", []QuestFlag{{1039399205, 1}}},
		{"Donating 10 runes, menu popup, \"Talk\" option available", "", []QuestFlag{{1039399206, 1}, {1039392702, 1}, {1039399208, 0}, {1039399209, 0}, {1039399210, 0}, {1039399211, 0}, {1039399223, 0}, {1039399226, 0}, {1039399209, 1}}},
		{"Buying all of the sorceries (changes \"Talk\" to be a thank you for buying all of the sorceries)", "", []QuestFlag{{1039399218, 1}, {1039393701, 1}}},
		{"Dialogue of \"Talk\" after buying all sorceries", "", []QuestFlag{{1039399213, 1}}},
		{"After choosing \"Talk\" when having bought all sorceries", "", []QuestFlag{{1039399208, 0}}},
		{"\"Talk\" option, that is about the glintstone key he wants", "", []QuestFlag{{1039399209, 1}}},
		{"Dialogue after \"Talk\" prompt ends, \"Talk\" disappears, \"About the glintstone key\" and \"About Sellen\" appear now", "", []QuestFlag{{1039399214, 1}, {1039399209, 0}, {1039399223, 1}, {1039399210, 1}}},
		{"Choosing \"About the glintstone key\", option stays afterwards", "", []QuestFlag{{1039399215, 1}, {1039399210, 0}, {1039399223, 0}, {1039399223, 1}, {1039399210, 1}}},
		{"Dialogue ends after choosing \"About Sellen\"", "", []QuestFlag{{1039399221, 1}, {1039399210, 0}}},
		{"Removes \"About Sellen\"", "", []QuestFlag{{1039399223, 0}}},
		{"Dialogue ends after choosing \"About Sellen\"", "", []QuestFlag{{1039399210, 1}}},
		{"Menu pop-up after acquiring the second Glintstone Key, \"Give the Academy Glintstone Key\" option appears", "", []QuestFlag{{1039392704, 0}, {1039399207, 1}, {1039392702, 1}, {1039399208, 0}, {1039399209, 0}, {1039399210, 0}, {1039399211, 0}, {1039399223, 0}, {1039399226, 0}, {1039399211, 1}}},
		{"Choosing \"Give the Academy Glintstone Key\"", "", []QuestFlag{{1039392704, 1}}},
		{"Receiving \"Erudition\" emote", "", []QuestFlag{{60845, 1}}},
		{"Dialogue ends after giving him the key", "", []QuestFlag{{1039399220, 1}}},
		{"Porting to the grace", "Schoolhouse Classroom grace in Liurnia", []QuestFlag{{14002660, 0}}},
		{"Looting his dead body and receiving \"Thops's Bell Bearing\", \"Academy Glintstone Staff\" and \"Thops's Barrier\"", "", []QuestFlag{{14002660, 1}, {400360, 1}, {400361, 1}, {400362, 1}, {14005036, 1}}},
	},
	"White Mask Varre": {
		{"Finishing first part of dialogue with White Mask Varré", "First Step in Limgrave", []QuestFlag{{1042369202, 1}}},
		{"Finishing second part of dialogue with White Mask Varré", "", []QuestFlag{{1042369207, 1}}},
		{"Finishing third part of dialogue with White Mask Varré", "", []QuestFlag{{1042369208, 1}}},
		{"Going back after speaking to the Two Fingers, finding a message and receiving \"Bravo!\" emote", "", []QuestFlag{{400035, 1}, {60826, 1}, {1042365011, 1}, {1043362215, 1}}},
		{"Initial dialogue choosing the option \"They were magnificent\"", "Rose Church in Liurnia", []QuestFlag{{1035449205, 1}, {3082, 1}, {1035449202, 1}}},
		{"Talking to him again, repeating dialogue", "", []QuestFlag{{1035449208, 1}}},
		{"Reloading the area (Seamless' way of completing the quest, you have that already) and refusing him", "", []QuestFlag{{1035449215, 1}}},
		{"Talking to him and choosing \"Anoint me\", repeating dialogue", "", []QuestFlag{{1035449216, 1}}},
		{"Receiving \"Lord of Blood's Favor\"", "", []QuestFlag{{400031, 1}}},
		{"Activating the prompt \"Dye cloth with maiden's blood\" and receiving \"Lord of Blood's Favor\" (This time soaked)", "Chapel of Anticipation in Limgrave", []QuestFlag{{400033, 1}}},
		{"Talking to him after soaking \"Lord of Blood's Favor\" with blood of a maiden, \"Offer finger\" prompt appears", "Rose Church in Liurnia", []QuestFlag{{1035449225, 1}}},
		{"Choosing \"Offer finger\" animation starts", "", []QuestFlag{{1035442705, 1}, {1035442708, 1}, {1035442706, 1}, {1035442707, 1}, {1035442709, 1}, {1035442707, 0}}},
		{"Animation ends and you receive \"Bloody Finger\"", "", []QuestFlag{{1035449227, 1}, {9432, 1}, {60270, 1}, {9420, 1}, {1800, 1}, {1035442705, 0}, {1035442706, 0}, {1035445003, 1}, {1035442708, 0}, {1035442709, 0}, {1035445004, 1}}},
		{"Talking to him again after offering your finger, repeating dialogue afterwards", "", []QuestFlag{{1035449226, 1}}},
		{"Receiving \"Pureblood Knight's Medal\"", "", []QuestFlag{{400032, 1}}},
		{"Invading him", "Dynasty Mausoleum Midpoint in Mohgwyn Palace", []QuestFlag{{12052141, 1}, {2000, 0}, {2000, 1}, {12052140, 1}, {1039532145, 1}, {12055120, 1}, {12055109, 1}, {12055112, 1}, {12055115, 1}, {12055126, 1}, {12055123, 1}, {12055122, 1}, {12055124, 1}, {12055127, 1}, {12053701, 1}, {12053700, 1}}},
		{"Defeating him", "", []QuestFlag{{12055121, 1}, {710650, 1}, {12052141, 0}}},
		{"Talking to him next to where his invasion sign was", "", []QuestFlag{{12059165, 1}}},
		{"Talking to him again, he dies, lootable items appear", "", []QuestFlag{{12059166, 1}}},
		{"Picking up Festering Bloody Finger and Varré`s Bouquet, questline ends here and his corpse disappears after a reload", "", []QuestFlag{{400036, 1}, {400037, 1}, {12059163, 1}}},
		{"Talking to him after beating Godrick, repeating dialogue", "First Step in Limgrave", []QuestFlag{{1042369235, 1}, {1042369202, 0}, {1042369202, 1}}},
	},
}

QuestData maps NPC name to their questline steps.

View Source
var RangedAndCatalysts = map[uint32]ItemData{
	0x02625A00: {Name: "Shortbow", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 25, IconPath: "items/ranged_and_catalysts/shortbow.png"},
	0x02628110: {Name: "Misbegotten Shortbow", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 25, IconPath: "items/ranged_and_catalysts/misbegotten_shortbow.png"},
	0x0262A820: {Name: "Red Branch Shortbow", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 25, IconPath: "items/ranged_and_catalysts/red_branch_shortbow.png"},
	0x0262CF30: {Name: "Harp Bow", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 10, IconPath: "items/ranged_and_catalysts/harp_bow.png"},
	0x02631D50: {Name: "Composite Bow", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 25, IconPath: "items/ranged_and_catalysts/composite_bow.png"},
	0x0269FB20: {Name: "Bone Bow", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 25, IconPath: "items/ranged_and_catalysts/bone_bow.png", Flags: []string{"dlc"}},
	0x02719C40: {Name: "Longbow", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 25, IconPath: "items/ranged_and_catalysts/longbow.png"},
	0x0271C350: {Name: "Albinauric Bow", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 25, IconPath: "items/ranged_and_catalysts/albinauric_bow.png"},
	0x0271EA60: {Name: "Horn Bow", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 25, IconPath: "items/ranged_and_catalysts/horn_bow.png"},
	0x02721170: {Name: "Erdtree Bow", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 10, IconPath: "items/ranged_and_catalysts/erdtree_bow.png"},
	0x02723880: {Name: "Serpent Bow", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 10, IconPath: "items/ranged_and_catalysts/serpent_bow.png"},
	0x027286A0: {Name: "Pulley Bow", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 10, IconPath: "items/ranged_and_catalysts/pulley_bow.png"},
	0x0272ADB0: {Name: "Black Bow", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 10, IconPath: "items/ranged_and_catalysts/black_bow.png"},
	0x02796470: {Name: "Ansbach's Longbow", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 10, IconPath: "items/ranged_and_catalysts/ansbachs_longbow.png", Flags: []string{"dlc"}},
	0x0280DE80: {Name: "Lion Greatbow", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 10, IconPath: "items/ranged_and_catalysts/lion_greatbow.png"},
	0x02810590: {Name: "Golem Greatbow", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 10, IconPath: "items/ranged_and_catalysts/golem_greatbow.png"},
	0x028153B0: {Name: "Erdtree Greatbow", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 10, IconPath: "items/ranged_and_catalysts/erdtree_greatbow.png"},
	0x02817AC0: {Name: "Greatbow", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 25, IconPath: "items/ranged_and_catalysts/greatbow.png"},
	0x02887FA0: {Name: "Igon's Greatbow", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 25, IconPath: "items/ranged_and_catalysts/igons_greatbow.png", Flags: []string{"dlc"}},
	0x029020C0: {Name: "Soldier's Crossbow", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 25, IconPath: "items/ranged_and_catalysts/soldiers_crossbow.png"},
	0x02906EE0: {Name: "Light Crossbow", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 25, IconPath: "items/ranged_and_catalysts/light_crossbow.png"},
	0x029095F0: {Name: "Heavy Crossbow", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 25, IconPath: "items/ranged_and_catalysts/heavy_crossbow.png"},
	0x0290E410: {Name: "Pulley Crossbow", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 10, IconPath: "items/ranged_and_catalysts/pulley_crossbow.png"},
	0x02910B20: {Name: "Full Moon Crossbow", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 10, IconPath: "items/ranged_and_catalysts/full_moon_crossbow.png"},
	0x02915940: {Name: "Arbalest", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 25, IconPath: "items/ranged_and_catalysts/arbalest.png"},
	0x0297C1E0: {Name: "Repeating Crossbow", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 10, IconPath: "items/ranged_and_catalysts/repeating_crossbow.png", Flags: []string{"dlc"}},
	0x0297E8F0: {Name: "Spread Crossbow", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 25, IconPath: "items/ranged_and_catalysts/spread_crossbow.png", Flags: []string{"dlc"}},
	0x029F6300: {Name: "Hand Ballista", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 25, IconPath: "items/ranged_and_catalysts/hand_ballista.png"},
	0x0291CE70: {Name: "Crepus's Black-Key Crossbow", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 10, IconPath: "items/ranged_and_catalysts/crepuss_black_key_crossbow.png"},
	0x029F8A10: {Name: "Jar Cannon", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 10, IconPath: "items/ranged_and_catalysts/jar_cannon.png"},
	0x02A70420: {Name: "Rabbath's Cannon", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 10, IconPath: "items/ranged_and_catalysts/rabbaths_cannon.png", Flags: []string{"dlc"}},
	0x016116A0: {Name: "Rotten Staff", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 10, IconPath: "items/ranged_and_catalysts/rotten_staff.png"},
	0x01F78A40: {Name: "Glintstone Staff", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 25, IconPath: "items/ranged_and_catalysts/glintstone_staff.png"},
	0x01F82680: {Name: "Crystal Staff", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 10, IconPath: "items/ranged_and_catalysts/crystal_staff.png"},
	0x01F84D90: {Name: "Gelmir Glintstone Staff", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 25, IconPath: "items/ranged_and_catalysts/gelmir_glintstone_staff.png"},
	0x01F874A0: {Name: "Demi-Human Queen's Staff", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 25, IconPath: "items/ranged_and_catalysts/demi_human_queens_staff.png"},
	0x01F8E9D0: {Name: "Carian Regal Scepter", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 10, IconPath: "items/ranged_and_catalysts/carian_regal_scepter.png"},
	0x01F95F00: {Name: "Digger's Staff", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 25, IconPath: "items/ranged_and_catalysts/diggers_staff.png"},
	0x01F98610: {Name: "Astrologer's Staff", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 25, IconPath: "items/ranged_and_catalysts/astrologers_staff.png"},
	0x01FA2250: {Name: "Carian Glintblade Staff", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 25, IconPath: "items/ranged_and_catalysts/carian_glintblade_staff.png"},
	0x01FA4960: {Name: "Prince of Death's Staff", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 25, IconPath: "items/ranged_and_catalysts/prince_of_deaths_staff.png"},
	0x01FA7070: {Name: "Albinauric Staff", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 25, IconPath: "items/ranged_and_catalysts/albinauric_staff.png"},
	0x01FA9780: {Name: "Academy Glintstone Staff", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 25, IconPath: "items/ranged_and_catalysts/academy_glintstone_staff.png"},
	0x01FABE90: {Name: "Carian Glintstone Staff", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 25, IconPath: "items/ranged_and_catalysts/carian_glintstone_staff.png"},
	0x01FB0CB0: {Name: "Azur's Glintstone Staff", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 10, IconPath: "items/ranged_and_catalysts/azurs_glintstone_staff.png"},
	0x01FB33C0: {Name: "Lusat's Glintstone Staff", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 10, IconPath: "items/ranged_and_catalysts/lusats_glintstone_staff.png"},
	0x01FB5AD0: {Name: "Meteorite Staff", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 25, IconPath: "items/ranged_and_catalysts/meteorite_staff.png"},
	0x01FB81E0: {Name: "Staff of the Guilty", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 25, IconPath: "items/ranged_and_catalysts/staff_of_the_guilty.png"},
	0x01FBA8F0: {Name: "Rotten Crystal Staff", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 10, IconPath: "items/ranged_and_catalysts/rotten_crystal_staff.png"},
	0x01FBD000: {Name: "Staff of Loss", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 25, IconPath: "items/ranged_and_catalysts/staff_of_loss.png"},
	0x01FF5270: {Name: "Staff of the Great Beyond", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 10, IconPath: "items/ranged_and_catalysts/staff_of_the_great_beyond.png", Flags: []string{"dlc"}},
	0x01FF7980: {Name: "Maternal Staff", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 25, IconPath: "items/ranged_and_catalysts/maternal_staff.png", Flags: []string{"dlc"}},
	0x0206CC80: {Name: "Finger Seal", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 25, IconPath: "items/ranged_and_catalysts/finger_seal.png"},
	0x0206F390: {Name: "Godslayer's Seal", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 25, IconPath: "items/ranged_and_catalysts/godslayers_seal.png"},
	0x02071AA0: {Name: "Giant's Seal", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 25, IconPath: "items/ranged_and_catalysts/giants_seal.png"},
	0x020741B0: {Name: "Gravel Stone Seal", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 25, IconPath: "items/ranged_and_catalysts/gravel_stone_seal.png"},
	0x020768C0: {Name: "Clawmark Seal", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 25, IconPath: "items/ranged_and_catalysts/clawmark_seal.png"},
	0x0207B6E0: {Name: "Golden Order Seal", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 10, IconPath: "items/ranged_and_catalysts/golden_order_seal.png"},
	0x0207DDF0: {Name: "Erdtree Seal", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 10, IconPath: "items/ranged_and_catalysts/erdtree_seal.png"},
	0x02080500: {Name: "Dragon Communion Seal", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 10, IconPath: "items/ranged_and_catalysts/dragon_communion_seal.png"},
	0x02082C10: {Name: "Frenzied Flame Seal", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 10, IconPath: "items/ranged_and_catalysts/frenzied_flame_seal.png"},
	0x020E6DA0: {Name: "Dryleaf Seal", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 25, IconPath: "items/ranged_and_catalysts/dryleaf_seal.png", Flags: []string{"dlc"}},
	0x020E94B0: {Name: "Fire Knight's Seal", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 25, IconPath: "items/ranged_and_catalysts/fire_knight_s_seal.png", Flags: []string{"dlc"}},
	0x020EBBC0: {Name: "Spiraltree Seal", Category: "ranged_and_catalysts", MaxInventory: 1, MaxStorage: 1, MaxUpgrade: 25, IconPath: "items/ranged_and_catalysts/spiraltree_seal.png", Flags: []string{"dlc"}},
}
View Source
var Regions = map[uint32]RegionData{}/* 274 elements not displayed */

Regions maps region IDs to their human-readable name and grouping area.

View Source
var RequiredContainer = map[uint32]uint32{

	0x4000012C: CrackedPotKeyItemID,
	0x40000140: CrackedPotKeyItemID,
	0x4000014A: CrackedPotKeyItemID,
	0x40000154: CrackedPotKeyItemID,
	0x4000015E: CrackedPotKeyItemID,
	0x40000172: CrackedPotKeyItemID,
	0x4000017C: CrackedPotKeyItemID,
	0x40000258: CrackedPotKeyItemID,
	0x40000280: CrackedPotKeyItemID,
	0x4000028A: CrackedPotKeyItemID,
	0x40000294: CrackedPotKeyItemID,

	0x40000190: CrackedPotKeyItemID,
	0x400001A4: CrackedPotKeyItemID,
	0x400001AE: CrackedPotKeyItemID,
	0x400001B8: CrackedPotKeyItemID,
	0x400001C2: CrackedPotKeyItemID,
	0x400001CC: CrackedPotKeyItemID,
	0x400001D6: CrackedPotKeyItemID,
	0x400001E0: CrackedPotKeyItemID,
	0x400001EA: CrackedPotKeyItemID,
	0x400001FE: CrackedPotKeyItemID,

	0x401E873C: CrackedPotKeyItemID,
	0x401E8746: CrackedPotKeyItemID,
	0x401E8778: CrackedPotKeyItemID,

	0x4000D17E: CrackedPotKeyItemID,

	0x4000012D: RitualPotKeyItemID,
	0x40000141: RitualPotKeyItemID,
	0x4000012E: RitualPotKeyItemID,
	0x4000015F: RitualPotKeyItemID,
	0x40000168: RitualPotKeyItemID,
	0x40000186: RitualPotKeyItemID,
	0x40000187: RitualPotKeyItemID,
	0x40000262: RitualPotKeyItemID,
	0x40000276: RitualPotKeyItemID,
	0x40000295: RitualPotKeyItemID,
	0x4000029E: RitualPotKeyItemID,
	0x401E8764: RitualPotKeyItemID,

	0x401E85AC: HeftyCrackedPotKeyItemID,
	0x401E85B6: HeftyCrackedPotKeyItemID,
	0x401E85C0: HeftyCrackedPotKeyItemID,
	0x401E85CA: HeftyCrackedPotKeyItemID,
	0x401E85D4: HeftyCrackedPotKeyItemID,
	0x401E85E8: HeftyCrackedPotKeyItemID,
	0x401E85F2: HeftyCrackedPotKeyItemID,
	0x401E85FC: HeftyCrackedPotKeyItemID,
	0x401E86D8: HeftyCrackedPotKeyItemID,
	0x401E86EC: HeftyCrackedPotKeyItemID,
	0x401E870A: HeftyCrackedPotKeyItemID,
	0x401E8714: HeftyCrackedPotKeyItemID,
	0x401E871E: HeftyCrackedPotKeyItemID,
	0x401E8728: HeftyCrackedPotKeyItemID,
	0x401E8732: HeftyCrackedPotKeyItemID,

	0x40000DAC: PerfumeBottleKeyItemID,
	0x40000DB6: PerfumeBottleKeyItemID,
	0x40000DC0: PerfumeBottleKeyItemID,
	0x40000DDE: PerfumeBottleKeyItemID,
	0x40000DFC: PerfumeBottleKeyItemID,
	0x40000E1A: PerfumeBottleKeyItemID,
	0x401E90C4: PerfumeBottleKeyItemID,
}

RequiredContainer maps a craftable item ID (Throwing Pot or Aromatic) to the key-item container it requires. The container's MaxInventory cap limits how many distinct items mapping to it the character may carry in Inventory. Storage is NOT subject to this cap.

View Source
var SP = []float32{}/* 793 elements not displayed */
View Source
var Shields = map[uint32]ItemData{}/* 165 elements not displayed */
View Source
var Sorceries = map[uint32]ItemData{
	0x40000FA0: {Name: "Glintstone Pebble", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/glintstone_pebble.png"},
	0x40000FA1: {Name: "Great Glintstone Shard", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/great_glintstone_shard.png"},
	0x40000FAA: {Name: "Swift Glintstone Shard", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/swift_glintstone_shard.png"},
	0x40000FB4: {Name: "Glintstone Cometshard", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/glintstone_cometshard.png"},
	0x40000FB5: {Name: "Comet", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/comet.png"},
	0x40000FBE: {Name: "Shard Spiral", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/shard_spiral.png"},
	0x40000FC8: {Name: "Glintstone Stars", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/glintstone_stars.png"},
	0x40000FD2: {Name: "Star Shower", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/star_shower.png"},
	0x40000FDC: {Name: "Crystal Barrage", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/crystal_barrage.png"},
	0x40000FE6: {Name: "Glintstone Arc", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/glintstone_arc.png"},
	0x40000FF0: {Name: "Cannon of Haima", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/cannon_of_haima.png"},
	0x40000FFA: {Name: "Crystal Burst", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/crystal_burst.png"},
	0x40001004: {Name: "Shatter Earth", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/shatter_earth.png"},
	0x4000100E: {Name: "Rock Blaster", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/rock_blaster.png"},
	0x40001018: {Name: "Gavel of Haima", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/gavel_of_haima.png"},
	0x40001022: {Name: "Terra Magica", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/terra_magica.png"},
	0x4000102C: {Name: "Starlight", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/starlight.png"},
	0x40001068: {Name: "Comet Azur", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/comet_azur.png"},
	0x40001072: {Name: "Founding Rain of Stars", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/founding_rain_of_stars.png"},
	0x4000107C: {Name: "Stars of Ruin", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/stars_of_ruin.png"},
	0x400010CC: {Name: "Glintblade Phalanx", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/glintblade_phalanx.png"},
	0x400010CD: {Name: "Carian Phalanx", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/carian_phalanx.png"},
	0x400010CE: {Name: "Greatblade Phalanx", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/greatblade_phalanx.png"},
	0x40001108: {Name: "Rennala's Full Moon", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/rennalas_full_moon.png"},
	0x40001109: {Name: "Ranni's Dark Moon", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/rannis_dark_moon.png"},
	0x40001112: {Name: "Magic Downpour", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/magic_downpour.png"},
	0x4000111C: {Name: "Loretta's Greatbow", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/lorettas_greatbow.png"},
	0x4000111D: {Name: "Loretta's Mastery", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/lorettas_mastery.png"},
	0x40001126: {Name: "Magic Glintblade", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/magic_glintblade.png"},
	0x40001130: {Name: "Glintstone Icecrag", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/glintstone_icecrag.png"},
	0x4000113A: {Name: "Zamor Ice Storm", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/zamor_ice_storm.png"},
	0x40001144: {Name: "Freezing Mist", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/freezing_mist.png"},
	0x4000114E: {Name: "Carian Greatsword", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/carian_greatsword.png"},
	0x4000114F: {Name: "Adula's Moonblade", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/adulas_moonblade.png"},
	0x40001158: {Name: "Carian Slicer", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/carian_slicer.png"},
	0x40001162: {Name: "Carian Piercer", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/carian_piercer.png"},
	0x4000116C: {Name: "Scholar's Armament", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/scholars_armament.png"},
	0x40001176: {Name: "Scholar's Shield", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/scholars_shield.png"},
	0x40001180: {Name: "Lucidity", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/lucidity.png"},
	0x4000118A: {Name: "Frozen Armament", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/frozen_armament.png"},
	0x40001194: {Name: "Shattering Crystal", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/shattering_crystal.png"},
	0x4000119E: {Name: "Crystal Release", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/crystal_release.png"},
	0x400011A8: {Name: "Crystal Torrent", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/crystal_torrent.png"},
	0x400011F8: {Name: "Ambush Shard", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/ambush_shard.png"},
	0x40001202: {Name: "Night Shard", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/night_shard.png"},
	0x4000120C: {Name: "Night Comet", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/night_comet.png"},
	0x4000122A: {Name: "Eternal Darkness", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/eternal_darkness.png"},
	0x40001234: {Name: "Unseen Blade", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/unseen_blade.png"},
	0x4000123E: {Name: "Unseen Form", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/unseen_form.png"},
	0x4000125C: {Name: "Meteorite", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/meteorite.png"},
	0x4000125D: {Name: "Meteorite of Astel", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/meteorite_of_astel.png"},
	0x40001266: {Name: "Rock Sling", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/rock_sling.png"},
	0x40001270: {Name: "Gravity Well", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/gravity_well.png"},
	0x40001271: {Name: "Collapsing Stars", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/collapsing_stars.png"},
	0x400012C0: {Name: "Magma Shot", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/magma_shot.png"},
	0x400012CA: {Name: "Gelmir's Fury", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/gelmirs_fury.png"},
	0x400012D4: {Name: "Roiling Magma", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/roiling_magma.png"},
	0x400012DE: {Name: "Rykard's Rancor", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/rykards_rancor.png"},
	0x40001324: {Name: "Briars of Sin", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/briars_of_sin.png"},
	0x4000132E: {Name: "Briars of Punishment", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/briars_of_punishment.png"},
	0x40001388: {Name: "Rancorcall", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/rancorcall.png"},
	0x40001389: {Name: "Ancient Death Rancor", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/ancient_death_rancor.png"},
	0x40001392: {Name: "Explosive Ghostflame", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/explosive_ghostflame.png"},
	0x4000139C: {Name: "Fia's Mist", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/fias_mist.png"},
	0x400013A6: {Name: "Tibia's Summons", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/tibias_summons.png"},
	0x400013EC: {Name: "Oracle Bubbles", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/oracle_bubbles.png"},
	0x400013F6: {Name: "Great Oracular Bubble", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/great_oracular_bubble.png"},
	0x401E9CC2: {Name: "Mass of Putrescence", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/mass_of_putrescence.png", Flags: []string{"dlc"}},
	0x401E9CB8: {Name: "Vortex of Putrescence", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/vortex_of_putrescence.png", Flags: []string{"dlc"}},
	0x401E9560: {Name: "Rellana's Twin Moons", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/rellanas_twin_moons.png", Flags: []string{"dlc"}},
	0x401E9614: {Name: "Glintstone Nail", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/glintstone_nail.png", Flags: []string{"dlc"}},
	0x401E961E: {Name: "Glintstone Nails", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/glintstone_nails.png", Flags: []string{"dlc"}},
	0x401E96DC: {Name: "Blades of Stone", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/blades_of_stone.png", Flags: []string{"dlc"}},
	0x401EA17C: {Name: "Cherishing Fingers", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/cherishing_fingers.png", Flags: []string{"dlc"}},
	0x401EA172: {Name: "Fleeting Microcosm", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/fleeting_microcosm.png", Flags: []string{"dlc"}},
	0x401E9556: {Name: "Glintblade Trio", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/glintblade_trio.png", Flags: []string{"dlc"}},
	0x401E96E6: {Name: "Gravitational Missile", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/gravitational_missile.png", Flags: []string{"dlc"}},
	0x401E954C: {Name: "Miriam's Vanishing", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/miriams_vanishing.png", Flags: []string{"dlc"}},
	0x401E9808: {Name: "Rings of Spectral Light", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/rings_of_spectral_light.png", Flags: []string{"dlc"}},
	0x401E97AE: {Name: "Impenetrable Thorns", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/impenetrable_thorns.png", Flags: []string{"dlc"}},
	0x401E97A4: {Name: "Mantle of Thorns", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/mantle_of_thorns.png", Flags: []string{"dlc"}},
	0x40001216: {Name: "Thops's Barrier", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/thopss_barrier.png"},
	0x40001964: {Name: "Night Maiden's Mist", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/night_maidens_mist.png"},
	0x401EA302: {Name: "Rain of Fire", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/rain_of_fire.png", Flags: []string{"dlc"}},
	0x40001220: {Name: "Carian Retaliation", Category: "sorceries", MaxInventory: 1, MaxStorage: 0, MaxUpgrade: 0, IconPath: "items/sorceries/carian_retaliation.png"},
}
View Source
var StandardAshes = map[uint32]ItemData{}/* 924 elements not displayed */
View Source
var SummoningPools = map[uint32]SummoningPoolData{}/* 213 elements not displayed */

SummoningPools maps event flag IDs to summoning pool definitions. These flags track whether the player has activated a Martyr Effigy. All IDs use BST block 670 (position 107 in eventflag_bst.txt) — standard lookup applies. Source: Elden-Ring-CT-TGA "Unlock all Summoning Pools.cea" — active block (game >= v1.12 / v2.02.0) Pre-v1.12 IDs (10000040, 1035530040, etc.) are ignored by the current game engine.

View Source
var SwordArtsNames = map[int32]string{}/* 129 elements not displayed */

SwordArtsNames maps EquipParamWeapon.swordArtsParamId / SwordArtsParam row IDs to display names from the local ERDB SwordArtsParam dump. DLC rows missing display names intentionally fall back at call sites.

View Source
var Talismans = map[uint32]ItemData{}/* 155 elements not displayed */
View Source
var TechnicalItemAliases = map[uint32]uint32{

	0x400000BF: 0x40001FD4,
	0x400000C0: 0x40001FD5,
	0x400000C1: 0x40001FD6,
	0x400000C2: 0x40001FD7,
	0x400000C3: 0x40001FD8,
	0x400000C4: 0x40001FD9,

	0x40001FDA: 0x40001FDB,
	0x40002004: 0x40002310,
	0x4000230F: 0x40002310,

	0x401E8932: 0x401E8930,
	0x401E8931: 0x401E8933,
}

TechnicalItemAliases maps a technical duplicate GoodsParam item ID (the "alias") to the canonical item ID that already carries the item's metadata in the app DB. These are NOT separate items: every alias shares its canonical twin's name, caption and caps. They exist only because the regulation exposes two (or three) rows for one logical item, and a real save can legitimately carry either row.

Purpose: resolver-safety. When GetItemDataFuzzy sees an alias ID it returns the canonical metadata so the scanner stops firing false-positive unknown_item_id. It is NOT a save rewrite - the raw ID/handle is preserved by the caller; only the metadata lookup follows the alias.

Deliberately NOT a DB entry (unlike the "(Variant)" rows in key_items.go): because aliases never enter any category map or globalItemIndex, they can never appear in the item picker as separate addable items. That property is structural, not a filter.

Scope is intentionally narrow — only exact-name Goods/key-item duplicates whose canonical twin is already in the DB. This is NOT for: armor normal/altered (distinct items), empty container vs crafted consumable (distinct mechanics), or weapon reinforcement/affinity variants (out of scope). Derived from a local regulation audit of exact-name Goods duplicate rows.

View Source
var Tools = map[uint32]ItemData{}/* 313 elements not displayed */
View Source
var WeaponGemMounts = map[uint32]WeaponGemMount{}/* 3059 elements not displayed */

WeaponGemMounts maps weapon base item ID → AoW mount data. Only includes weapons with gemMountType != 0. Key is the base item ID (matching Weapons map keys).

View Source
var WeaponStatsV1ByID map[uint32]WeaponStatsV1

WeaponStatsV1ByID maps weapon-like item IDs (melee_armaments, shields, ranged_and_catalysts, arrows_and_bolts) to their generated V1 stats. Populated by generated code in weapon_stats_generated.go.

View Source
var Weapons = map[uint32]ItemData{}/* 439 elements not displayed */
View Source
var WepTypeToCanMountBit = map[uint16]uint8{
	1:  0,
	3:  1,
	5:  2,
	7:  3,
	9:  8,
	11: 9,
	13: 6,
	14: 5,
	15: 4,
	16: 7,
	17: 7,
	19: 11,
	21: 13,
	23: 10,
	24: 10,
	25: 12,
	28: 14,
	29: 14,
	31: 15,
	32: 17,
	33: 18,
	35: 20,
	37: 19,
	39: 20,
	41: 21,
	43: 22,
	50: 23,
	51: 24,
	52: 25,
	53: 26,
	54: 27,
	55: 28,
	57: 29,
	61: 30,
	65: 32,
	66: 33,
	67: 34,
	69: 34,
	68: 35,
	87: 25,
	88: CanMountBitDLCHandToHandArts,
	89: CanMountBitDLCPerfumeBottles,
	90: CanMountBitDLCThrustingShield,
	91: CanMountBitDLCThrowingBlades,
	92: CanMountBitDLCBackhandBlades,
	93: CanMountBitDLCLightGreatsword,
	94: 6,
	95: 21,
}

WepTypeToCanMountBit maps weapon wepType integer → bit position in AoWCompatMasks.

View Source
var WhetbladeFlagToItemID = map[uint32]uint32{
	60130: 0x4000218E,
	65610: 0x4000230A,
	65640: 0x4000230B,
	65660: 0x4000230C,
	65680: 0x4000230D,
	65700: 0x4000230E,
}

WhetbladeFlagToItemID maps whetblade event flag → inventory item ID.

View Source
var WhetbladeItemToFlagID map[uint32]uint32

WhetbladeItemToFlagID is the reverse of WhetbladeFlagToItemID.

View Source
var WhetbladeRelatedFlags = map[uint32][]uint32{
	60130: {65600, 1042378601},
	65610: {65620, 65630},
	65640: {65650},
	65660: {65670},
	65680: {65690},
	65700: {65710, 65720},
}

WhetbladeRelatedFlags maps whetblade event flag → affinity unlock flags. These flags are set/cleared together with the whetblade flag.

View Source
var Whetblades = map[uint32]WhetbladeData{
	60130: {Name: "Whetstone Knife"},
	65610: {Name: "Iron Whetblade"},
	65640: {Name: "Red-Hot Whetblade"},
	65660: {Name: "Sanctified Whetblade"},
	65680: {Name: "Glintstone Whetblade"},
	65700: {Name: "Black Whetblade"},
}

Whetblades maps event flag ID → whetblade metadata. Whetblades unlock weapon affinities at the smithing table. Source: er-save-manager/event_flags_db.py

View Source
var WorldPickupFlagID = map[uint32]uint32{}/* 318 elements not displayed */

WorldPickupFlagID maps inventory item ID → world pickup event flag ID.

Many "1/0 cap" items in the game (Notes, Map fragments, About * tutorials, Letters, Paintings, Cookbooks, Whetblades, Prayerbooks, Crystal Tears, quest items) exist at exactly one fixed world location (chest, corpse, or shop). Cap is enforced by the inventory definition, but the game still SPAWNS the world copy when the player walks past — and if their inventory is full, the duplicate drops on the ground.

Setting the corresponding pickup flag tells the game "the world copy is already collected" — preventing the duplicate spawn.

Source: regulation.bin (post-DLC build) extracted via /tmp/dump_all_params.py

  • ItemLotParam_map.getItemFlagId where lotItemCategory==1 (goods)
  • ShopLineupParam.eventFlag_forStock where equipType==3 (goods)

Filtering rules:

  • flags < 10000 excluded — those are progression/boss/status flags, not pickup flags (e.g. Great Rune flags 171–176, Dark Moon Ring flag 114).
  • Bell Bearings excluded — they have a separate "Unlocked" toggle in the World tab that handles the dual-state (in-inv vs given-to-TM).
  • Great Runes / Mending Runes excluded — touching their flags can affect boss state, ending paths, or rune-effect activation. Spawning them via editor is fine; auto-flagging is not.

Inferred entries (extrapolated from adjacent confirmed ranges, unverified):

  • 0x400023AA..0x400023B4 (About Fast Travel ... About Wielding Armaments): these tutorials are EMEVD-spawned with no ItemLotParam reference, but adjacent IDs 9100..9129 (0x238C..0x23A9) all use 550000+(id-9100)*10, so we extrapolate the same pattern. Setting the flag is harmless if unchecked, beneficial if EMEVD reuses the pattern.

Intentional shared flag (NOT a duplicate bug):

  • 0x401EA3C8 (Hole-Laden Necklace) and 0x401EA3D0 (Ruins Map) both map to flag 400660. Verified in regulation.bin: lot 106600 places the Necklace with flag 400660, lot 106601 places the Map with flag 400660. This is FromSoftware quest-design (Igon's questline gate — collecting either advances quest), so adding either via editor blocks BOTH world copies. Both items are kept in the map per design.

Items NOT in this map (no flag in regulation, no derivable pattern):

  • 0x40002202 (Note: Great Coffins) — VERIFIED cut content; flagged cut_content+ban_risk in info.go. Polish FMG broken ([ERROR] prefix), no Lot/Shop reference, only in dev CharaInit row 8515.
  • 0x401EA848 (About the Scadutree Blessing), 0x401EA84A (About New Inventory Features) — purely EMEVD-spawned in DLC, nothing in ItemLotParam_map or ShopLineupParam to extrapolate from. TODO: extract Data0.bdt EMEVD from Steam Deck to find their flags.
  • 0x401EA443 (Note: Sealed Spiritsprings) — params unfinished in DLC build, flagged cut_content+ban_risk in info.go.

Functions

func CanMountBitsForWepType added in v1.0.0

func CanMountBitsForWepType(wepType uint16) ([]uint8, bool)

func CompanionEventFlagsForGrace added in v0.13.2

func CompanionEventFlagsForGrace(graceID uint32) []uint32

CompanionEventFlagsForGrace returns the list of event flags that must be SET when a grace is activated (visited=true). Returns nil if the grace has no companion flags. These flags are never cleared on deactivation — they may be shared with item companion flags or reflect irreversible game progression.

func CompanionEventFlagsForItem added in v0.13.2

func CompanionEventFlagsForItem(itemID uint32) []uint32

CompanionEventFlagsForItem returns the list of event flags that must be SET when an item is added to a character's save, or nil if the item has no companion flags.

func GetRequiredContainer

func GetRequiredContainer(itemID uint32) (uint32, bool)

GetRequiredContainer returns the container key-item ID that the given craftable item requires, and ok=true if the item is gated by a container.

func HasTutorialMapping

func HasTutorialMapping(id uint32) bool

HasTutorialMapping returns true if we know which TutorialParam row to append for the given Goods item ID.

func IsBellBearingItemID

func IsBellBearingItemID(id uint32) bool

IsBellBearingItemID returns true if the item ID is a Bell Bearing key item managed by World → Unlocks. Used to hide BBs from the Item Database and render them read-only in the Inventory tab — mirrors IsCookbookItemID.

func IsContainerItem added in v1.1.0

func IsContainerItem(itemID uint32) bool

IsContainerItem reports whether itemID is one of the container key items.

func IsCookbookItemID

func IsCookbookItemID(id uint32) bool

IsCookbookItemID returns true if the item ID is a cookbook Key Item. Checks both the mapped IDs and any Key Item with "Cookbook" in the name.

func IsDLCMapFlag

func IsDLCMapFlag(flagID uint32) bool

IsDLCMapFlag returns true if the visible flag ID belongs to a DLC (Shadow of the Erdtree) map region.

func IsDLCRegion

func IsDLCRegion(id uint32) bool

dlcRegionIDs is the authoritative set of Shadow of the Erdtree region IDs, derived from the DLC column of the data table above. The DLC ID space is non-contiguous (2xxxxxx legacy, 4xxxxxx minor dungeons, 68xxxxx/69xxxxx overworld), so a simple numeric range cannot identify DLC regions.

func IsDLCSummoningPool added in v0.13.0

func IsDLCSummoningPool(id uint32) bool

IsDLCSummoningPool reports whether a summoning pool ID belongs to Shadow of the Erdtree DLC.

func IsWhetbladeItemID

func IsWhetbladeItemID(id uint32) bool

IsWhetbladeItemID returns true if the item ID is a whetblade Key Item.

func IsWorldPickupItem

func IsWorldPickupItem(id uint32) bool

IsWorldPickupItem returns true if the item ID has an associated world pickup flag that should be auto-set when added to inventory.

func LoadBST

func LoadBST()

LoadBST initializes the EventFlagBST map from the embedded data. Safe to call multiple times; only the first call does actual work.

func LookupFemaleModelIDs added in v1.4.0

func LookupFemaleModelIDs(p AppearancePreset) ([8]uint8, bool)

LookupFemaleModelIDs resolves a Type B preset's eight UI model values to their verified raw save-file PartsIds. The returned tuple order is Face, Hair, Eye, Eyebrow, Beard, Eyepatch, Decal, Eyelash.

It returns (tuple, true) only when every model maps within the verified table; if any single value is unmapped it returns (zero, false) with no fallback, so callers never write a guessed or scrambled female appearance.

func LookupGestureBySlotID

func LookupGestureBySlotID(id uint32) (int, bool)

LookupGestureBySlotID returns the gesture index and true if found, -1 and false otherwise.

func LookupMaleHairPartsID

func LookupMaleHairPartsID(uiIndex uint8) (uint8, bool)

LookupMaleHairPartsID returns the save-file PartsId for a male hair UI index. Returns (partsId, true) if found, or (0, false) if the UI index is not in the mapping.

func SanitizeGestureSlots

func SanitizeGestureSlots(slots []uint32) int

SanitizeGestureSlots rewrites the gesture array in-place: any entry that is even but (entry+1) is a known gesture is replaced with (entry+1). This repairs saves written by the previous editor build, which incorrectly used "even/odd body type" variants and produced gestures the game silently ignored. Returns the number of slots changed.

Types

type AppearancePreset

type AppearancePreset struct {
	Name      string
	Image     string // filename in frontend/public/presets/ (e.g. "geralt.jpg")
	BodyType  uint8  // 1=TypeA(male), 0=TypeB(female)
	VoiceType uint8  // 0=Young1, 1=Young2, 2=Mature1, 3=Mature2, 4=Aged1, 5=Aged2

	// Model IDs (u8 stored as u32 LE with 3 padding bytes)
	FaceModel     uint8 // Bone Structure
	HairModel     uint8 // Hair Style
	EyeModel      uint8 // Eye model (usually 0)
	EyebrowModel  uint8 // Brow Style
	BeardModel    uint8 // Beard Style
	EyepatchModel uint8 // Eyepatch
	DecalModel    uint8 // Tattoo/Mark
	EyelashModel  uint8 // Eyelashes

	// Face shape: 64 bytes at blob offset 0x30-0x6F
	// Order: apparent_age, facial_aesthetic, form_emphasis, unk,
	//   brow_ridge_height, inner_brow_ridge, outer_brow_ridge,
	//   cheekbone_height, cheekbone_depth, cheekbone_width, cheekbone_protrusion, cheeks,
	//   chin_tip_position, chin_length, chin_protrusion, chin_depth, chin_size, chin_height, chin_width,
	//   eye_position, eye_size, eye_slant, eye_spacing,
	//   nose_size, nose_forehead_ratio, unk,
	//   face_protrusion, vertical_face_ratio, facial_feature_slant, horizontal_face_ratio, unk,
	//   forehead_depth, forehead_protrusion, unk,
	//   jaw_protrusion, jaw_width, lower_jaw, jaw_contour,
	//   lip_shape, lip_size, lip_fullness, mouth_expression, lip_protrusion, lip_thickness,
	//   mouth_protrusion, mouth_slant, occlusion, mouth_position, mouth_width, mouth_chin_distance,
	//   nose_ridge_depth, nose_ridge_length, nose_position, nose_tip_height,
	//   nostril_slant, nostril_size, nostril_width,
	//   nose_protrusion, nose_bridge_height, bridge_protrusion1, bridge_protrusion2, nose_bridge_width,
	//   nose_height, nose_slant
	FaceShape [64]uint8

	// Body proportions: 7 bytes at blob offset 0xB0-0xB6
	// Order: head, chest, abdomen, arm_r, leg_r, arm_l, leg_l
	Body [7]uint8

	// Skin & cosmetics: 91 bytes at blob offset 0xB7-0x111
	// Order: skin_r/g/b, skin_luster, pores, stubble, dark_circles, dark_circle_r/g/b,
	//   cheeks_int, cheek_r/g/b, eyeliner, eyeliner_r/g/b,
	//   eyeshadow_lower, lower_r/g/b, eyeshadow_upper, upper_r/g/b,
	//   lipstick, lipstick_r/g/b, tattoo_h/v/angle/exp, tattoo_r/g/b, tattoo_unk, tattoo_flip,
	//   body_hair, body_hair_r/g/b,
	//   right_iris_r/g/b, right_iris_size, right_clouding, right_cloud_r/g/b, right_white_r/g/b, right_eye_pos,
	//   left_iris_r/g/b, left_iris_size, left_clouding, left_cloud_r/g/b, left_white_r/g/b, left_eye_pos,
	//   hair_r/g/b, luster, root, white,
	//   beard_r/g/b, luster, root, white,
	//   brow_r/g/b, luster, root, white,
	//   lash_r/g/b, patch_r/g/b
	Skin [91]uint8
}

AppearancePreset holds a complete character appearance configuration. Field order in FaceShape and Skin arrays matches the FaceData blob layout documented in spec/09-face-data.md and verified against hex dumps.

type ArmorStats

type ArmorStats struct {
	Weight     float64
	Physical   float64
	Strike     float64
	Slash      float64
	Pierce     float64
	Magic      float64
	Fire       float64
	Lightning  float64
	Holy       float64
	Immunity   uint32
	Robustness uint32
	Focus      uint32
	Vitality   uint32
	Poise      float64
}

ArmorStats holds damage negation and resistance values for armor.

type BellBearingData

type BellBearingData struct {
	Name     string
	Category string // "npc", "merchant", "smithing", "peddler", "dlc"
}

BellBearingData holds metadata for a bell bearing.

type BossData

type BossData struct {
	Name        string
	Region      string
	Type        string // "main" or "field"
	Remembrance bool   // Drops a Remembrance item
}

BossData holds the static definition of a boss encounter.

type CapDecision

type CapDecision struct {
	EffectiveQty int // target stack qty actually used (after cap)
	CutQty       int // qty trimmed because container would overflow
}

CapDecision is the result of applying a container cap to one item add.

func ApplyContainerCap

func ApplyContainerCap(
	id uint32, targetQty int,
	existingItemQty map[uint32]int,
	existingByContainer map[uint32]int,
	containerCap func(uint32) int,
) CapDecision

ApplyContainerCap enforces a per-container TOTAL QUANTITY cap on a single add operation. Cap counts total pot units across all stacks mapped to that container — NOT distinct types.

Semantics match `addToInventory` in core/writer.go: `targetQty` is the SET value for the item's stack (not a delta). The container occupancy delta is `targetQty - existingItemQty[id]`.

Mutates `existingItemQty[id]` and `existingByContainer[cID]` to reflect the post-decision state, so caller can chain calls per item in batch.

For non-gated items (no RequiredContainer entry), simply records the new stack qty and returns EffectiveQty = targetQty.

`containerCap` returns the cap (e.g. 20 for Cracked Pot).

type ColosseumFlagSet

type ColosseumFlagSet struct {
	Activate uint32 // 60xxx — primary unlock, enables matchmaking
	MapPOI   uint32 // 62xxx — colosseum icon on world map
	NPC      uint32 // 69xxx — NPC/event-memory marker
	Gate     uint32 // 710xxx — matchmaking gate marker
}

ColosseumFlagSet sets the matchmaking + map-marker flags for a colosseum. These make the arena appear on the world map and enable the fight menu. They DO NOT open the physical gate — that state is stored outside event flags (in WorldGeom binary blob) and cannot be edited from a save editor. Player must open the gate once in-game; thereafter the open state persists.

func (ColosseumFlagSet) AllFlags

func (c ColosseumFlagSet) AllFlags() []uint32

AllFlags returns every per-colosseum flag in a stable order.

type CookbookData

type CookbookData struct {
	Name     string
	Category string // series name for grouping
}

CookbookData holds metadata for a cookbook item.

type EventFlagInfo

type EventFlagInfo struct {
	Byte uint32
	Bit  uint8
}

type GameLimitData added in v1.1.0

type GameLimitData struct {
	MaxInventory   uint32
	MaxStorage     uint32
	InventoryKnown bool
	StorageKnown   bool
}

GameLimitData is generated from regulation parameter data. Known flags are deliberately independent because some item families expose an authoritative inventory limit without an equally authoritative repository limit.

A known zero is a real prohibition. An unknown value must never be treated as zero by editors, scanners, or repair primitives.

type GestureDef

type GestureDef struct {
	Name     string
	Category string
	ID       uint32   // canonical gesture slot ID written to GestureGameData (always odd)
	ItemID   uint32   // matching key item ID in the inventory (0x4000xxxx / 0x401EA7xx)
	Flags    []string // "cut_content" | "pre_order" | "ban_risk" | "dlc_duplicate"
}

GestureDef defines a single gesture. The ID is the canonical save-slot ID the game writes into the gesture array. All vanilla gesture IDs are odd — previous versions of this editor encoded an "EvenID/OddID body type" theory that turned out to be wrong (the game silently ignored even values, leaving edited gestures invisible in-game). Source: er-save-manager/data/gestures.py.

type GraceData

type GraceData struct {
	Name        string
	BossArena   bool   // true if this grace appears in/after a boss fight
	DungeonType string // "catacomb", "hero_grave", or "" for regular graces
	DoorFlag    uint32 // overworld ObjAct event flag that opens the entrance door (0 = none)
}

GraceData holds metadata for a Site of Grace.

func B

func B(name string) GraceData

B is a shorthand constructor for boss-arena graces.

func Cat

func Cat(name string, doorFlag uint32) GraceData

Cat is a shorthand constructor for catacomb graces (sealed entrance doors).

func G

func G(name string) GraceData

G is a shorthand constructor for regular graces.

func HG

func HG(name string, doorFlag uint32) GraceData

HG is a shorthand constructor for hero's grave graces (sealed entrance doors).

type ItemData

type ItemData struct {
	Name                  string
	Category              string
	SubCategory           string // sub-category within Category (1:1 with in-game grouping); empty = no sub-grouping
	MaxInventory          uint32 // conservative Normal Mode cap
	MaxStorage            uint32 // conservative Normal Mode cap
	GameMaxInventory      uint32 // technical game cap; meaningful only when GameMaxInventoryKnown
	GameMaxStorage        uint32 // technical game cap; meaningful only when GameMaxStorageKnown
	GameMaxInventoryKnown bool   // distinguishes an authoritative zero cap from missing data
	GameMaxStorageKnown   bool   // distinguishes an authoritative zero cap from missing data
	MaxUpgrade            uint32
	IconPath              string
	Flags                 []string
	// Weapon AoW compatibility (populated from EquipParamWeapon via weapon_gem_mount.go):
	//   0 = cannot mount AoW, 1 = special/unique AoW (somber), 2 = standard infusable
	GemMountType uint8
	// Weapon type category integer from EquipParamWeapon.wepType (populated for weapons).
	WepType uint16
	// AoW → weapon compatibility bitmask from EquipParamGem.canMountWep_* (populated for AoWs).
	// Bit N = 1 means this AoW can be mounted on weapons whose wepType maps to bit N.
	// Bit ordering: 0=Dagger, 1=StraightSword, 2=Greatsword, ... see data.CanMountWepNames.
	AoWCompatBitmask uint64
}

ItemData represents the metadata for an item in the game database.

Flags reference (string set; combine freely):

  • "stackable" — item stacks in a single inventory slot (vs. unique drops)
  • "dlc" — Shadow of the Erdtree content
  • "cut_content" — never shipped legitimately; spawning may flag EAC
  • "ban_risk" — adding this item carries elevated EAC ban risk
  • "scales_with_ng" — vanilla obtainable count scales linearly with NG+ cycle: effective_cap = MaxInventory * (ClearCount + 1) (ClearCount: 0 = NG, 1 = NG+1, ..., 7 = NG+7) Used for: Stonesword Key, Dragon Heart, Larval Tear, Golden Seed, Sacred Tear, Scadutree Fragment, Revered Spirit Ash. See spec/34-item-caps.md.

type ItemDescription

type ItemDescription struct {
	Description string
	Location    string
	Weight      float64
	Weapon      *WeaponStats
	Armor       *ArmorStats
	Spell       *SpellStats
}

ItemDescription holds an item's in-game description text and optional stats.

type ItemStatsData added in v1.0.0

type ItemStatsData struct {
	Kind        ItemStatsKind  `json:"kind"`
	Weapon      *WeaponStatsV1 `json:"weapon,omitempty"`
	SourceParam string         `json:"sourceParam,omitempty"`
	SourceRowID uint32         `json:"sourceRowId,omitempty"`
	Warnings    []string       `json:"warnings,omitempty"`
}

ItemStatsData is a Phase 3C.3 wrapper exposing generated stats payloads (V1+) on ItemEntry without disturbing the legacy `Weapon` / `Armor` / `Spell` pointers. The wrapper is intentionally minimal: only the concrete payload pointers that are actually generated today appear as fields, so the Wails TS bindings stay strongly typed (no `any` / `interface{}` projections).

Resolution rule (Phase 3C.3): set Kind=Weapon and Weapon=&copy(v) when data.WeaponStatsV1ByID has an entry for the item ID. Future kinds will add their own pointers as the corresponding generated tables land.

type ItemStatsKind added in v1.0.0

type ItemStatsKind string

ItemStatsKind tags an ItemStatsData payload with the category of stats it carries. Phase 3C.3 only emits "weapon"; future sub-phases will extend the enum (armor, spell, goods, ash_of_war) as their generators land. The empty string is the absence sentinel and is never emitted when ItemStatsData is non-nil at runtime.

const (
	ItemStatsKindNone   ItemStatsKind = ""
	ItemStatsKindWeapon ItemStatsKind = "weapon"
	ItemStatsKindArmor  ItemStatsKind = "armor"
	ItemStatsKindSpell  ItemStatsKind = "spell"
	ItemStatsKindGoods  ItemStatsKind = "goods"
	ItemStatsKindAoW    ItemStatsKind = "ash_of_war"
)

type ItemTextData added in v1.0.0

type ItemTextData struct {
	DisplayName       string
	CanonicalName     string
	Caption           string
	Description       string
	Location          string
	DisplayNameSource TextSource
	CanonicalSource   TextSource
	CaptionSource     TextSource
	DescriptionSource TextSource
	LocationSource    TextSource
	// DLCSource records which FMG variant contributed the FMG fields:
	// "base", "dlc01", "dlc02". Empty when no FMG entry was found.
	DLCSource string
	Notes     string
}

ItemTextData carries all displayable text for one item, with per-field provenance.

Resolution rules (applied by the generator, not at runtime):

  • DisplayName always = app ItemData.Name (preserves app overrides such as "Letter from Volcano Manor (Istvan)" or "Chain Gauntlets"). Source = App when FMG canonical is missing or matches the app name; Mixed when FMG canonical exists and differs from the app name.
  • CanonicalName = FMG canonical when known (always populated for items with an FMG name). Source = FMG.
  • Caption = FMG *Caption.fmg text. Source = FMG.
  • Description = FMG *Info.fmg text (Goods concat Info + Info2); falls back to curated descriptions.go Description when FMG is empty. Source = FMG, Curated, or Mixed.
  • Location = curated descriptions.go Location only (no FMG equivalent exists). Source = Curated.

All string fields use "" as the absence sentinel; the struct itself is a value type, so map lookups for unknown IDs return the zero value safely.

type MapRegionData

type MapRegionData struct {
	Name string
	Area string // "Limgrave", "Liurnia", "Altus", "Caelid", "Mountaintops", "Underground", "DLC", "System"
}

MapRegionData holds the static definition of a map region.

type QuestFlag

type QuestFlag struct {
	ID    uint32
	Value uint8 // 0 or 1
}

QuestFlag is a single event flag target for a quest step.

type QuestStep

type QuestStep struct {
	Description string
	Location    string
	Flags       []QuestFlag
}

QuestStep represents one step in an NPC questline.

type RegionData

type RegionData struct {
	Name string
	Area string
	DLC  bool
}

RegionData describes an "unlocked region" entry stored in the per-slot Regions struct (count: u32 followed by count * u32 region IDs). Each ID corresponds to a discrete map area. The list controls:

  • Invasion eligibility (PvP / NPC invaders) for that area
  • Blue summons (Recusant Henricus, Bloody Finger questlines)
  • The "You have entered <X>" map label after teleport

IMPORTANT — this map is a CURATED invasion/blue-summon ALLOWLIST, not the full PlayRegionParam table and not the full set of raw IDs a save may carry:

  • A real region ID is merely a row in regulation.bin PlayRegionParam (594 rows).
  • A curated region is one confirmed to be a standard invasion / blue-summon target. This set is the Elden-Ring-CT-TGA "Invasion Regions" table — a dedicated invasion-targeting list curated by invaders (Dasaav; DLC by Joel/SeriouslyCasual). Its open-world / dungeon / boss-fog entries are all valid invasion contexts; it deliberately omits multiplayer hubs (Roundtable Hold has no PlayRegion row at all) and colosseums (separate matchmaking).
  • Internal sub-area / network-only PlayRegionParam rows are deliberately excluded. The World tab's "Unlock All" therefore unlocks all VERIFIED legal PvP regions, never "PvP everywhere", and preserves any non-curated raw IDs.

Every ID below is a real PlayRegionParam Row ID and present 1:1 in the TGA list. The 6800000/6900000 labels are corrected per the game's PlaceName_dlc01 FMG (680000 = "Gravesite Plain", 690000 = "Scadu Altus") + BonfireWarpParam. Totals: 274 curated regions (208 base, 66 DLC).

type SortKey added in v1.0.0

type SortKey struct {
	SortId      uint32
	SortGroupId uint8
}

SortKey holds the in-game sort identifiers for an item.

  • SortId determines position within a group (higher = later in list). Values come from sortId columns of EquipParamWeapon/Protector/Accessory. Sentinel 9999999 = item has no defined sort order (sorts to end).
  • SortGroupId determines the type group the item belongs to (e.g. 10 = dagger, 20 = straight sword; grouping mirrors in-game "Type" filter). Max observed value: 255 — fits in uint8.

type SpellStats

type SpellStats struct {
	FPCost uint32
	Slots  uint32
	ReqInt uint32
	ReqFai uint32
	ReqArc uint32
}

SpellStats holds FP cost, slot count, and attribute requirements for spells.

type SummoningPoolData

type SummoningPoolData struct {
	Name   string
	Region string
}

SummoningPoolData holds the static definition of a summoning pool (Martyr Effigy).

type TextSource added in v1.0.0

type TextSource string

TextSource identifies where a piece of item text originated.

Used to record provenance on each ItemTextData field so the UI and tests can reason about whether content came from the app's curated ItemData.Name, the FMG canonical strings extracted from regulation.bin, the curated descriptions.go (community/Fextralife sourced), or a combination of sources where the app value overrides FMG.

const (
	TextSourceNone    TextSource = ""
	TextSourceApp     TextSource = "app"
	TextSourceFMG     TextSource = "fmg"
	TextSourceCurated TextSource = "curated"
	TextSourceMixed   TextSource = "mixed"
)

type WeaponGemMount added in v1.0.0

type WeaponGemMount struct {
	WepType      uint16 // EquipParamWeapon.wepType (weapon category integer)
	GemMountType uint8  // 0=none, 1=special/somber, 2=standard infusable
}

WeaponGemMount holds AoW-mount metadata for a weapon base item ID.

type WeaponPassiveEffect added in v1.0.0

type WeaponPassiveEffect struct {
	Kind       string
	Source     string
	SpEffectID int32
	Label      string
	Value      int32
	Known      bool
}

WeaponPassiveEffect describes a single SpEffect attached to a weapon — either an on-hit proc (spEffectBehaviorId0..2) or a resident effect held while equipped (residentSpEffectId/1/2).

  • Kind: "on_hit" | "resident"
  • Source: CSV column name of the slot ("spEffectBehaviorId0", "residentSpEffectId1", …) — preserves slot identity for diagnostics and stable ordering.
  • SpEffectID: row ID in SpEffectParam.
  • Label: human-readable name. For on-hit status procs this is "Poison" / "Scarlet Rot" / "Blood Loss" / "Frost" / "Sleep" / "Madness" / "Death Blight"; for resident effects it comes from a small curated label map. "Unknown on-hit effect" / "Unknown resident effect" is used as a fallback so the UI can still surface something.
  • Value: buildup amount for status procs; 0 otherwise.
  • Known: true when Label was resolved from SpEffectParam data or the curated map; false for the unknown fallback.

type WeaponStats

type WeaponStats struct {
	Weight     float64
	PhysDamage uint32
	MagDamage  uint32
	FireDamage uint32
	LitDamage  uint32
	HolyDamage uint32
	ScaleStr   uint32
	ScaleDex   uint32
	ScaleInt   uint32
	ScaleFai   uint32
	ReqStr     uint32
	ReqDex     uint32
	ReqInt     uint32
	ReqFai     uint32
	ReqArc     uint32
}

WeaponStats holds base stats for a weapon (before upgrades/infusions).

type WeaponStatsV1 added in v1.0.0

type WeaponStatsV1 struct {
	ItemID uint32 // app item ID (matches category map keys, == regulation row ID)

	// Source classification
	WepType         uint16 // EquipParamWeapon.wepType
	SortGroupID     uint8  // EquipParamWeapon.sortGroupId
	ReinforceTypeID int32  // EquipParamWeapon.reinforceTypeId (band base in ReinforceParamWeapon)
	GemMountType    uint8  // EquipParamWeapon.gemMountType (0=none, 1=somber, 2=infusable)

	Weight float64 // EquipParamWeapon.weight

	// Base attack power (level +0). AttackHoly is sourced from attackBaseDark.
	AttackPhysical  int32 // EquipParamWeapon.attackBasePhysics
	AttackMagic     int32 // EquipParamWeapon.attackBaseMagic
	AttackFire      int32 // EquipParamWeapon.attackBaseFire
	AttackLightning int32 // EquipParamWeapon.attackBaseThunder
	AttackHoly      int32 // EquipParamWeapon.attackBaseDark — see R-STA-01
	AttackStamina   int32 // EquipParamWeapon.attackBaseStamina

	// Guard cut rates (percentages) and guard boost (staminaGuardDef).
	GuardPhysical  int32 // EquipParamWeapon.physGuardCutRate
	GuardMagic     int32 // EquipParamWeapon.magGuardCutRate
	GuardFire      int32 // EquipParamWeapon.fireGuardCutRate
	GuardLightning int32 // EquipParamWeapon.thunGuardCutRate
	GuardHoly      int32 // EquipParamWeapon.darkGuardCutRate — see R-STA-01
	GuardBoost     int32 // EquipParamWeapon.staminaGuardDef

	// Wielding stat requirements (properStrength etc.).
	StatReqStr int32 // EquipParamWeapon.properStrength
	StatReqDex int32 // EquipParamWeapon.properAgility
	StatReqInt int32 // EquipParamWeapon.properMagic
	StatReqFai int32 // EquipParamWeapon.properFaith
	StatReqArc int32 // EquipParamWeapon.properLuck

	// Critical damage rate displayed in-game. Sourced from
	// EquipParamWeapon.throwAtkRate which stores the *offset* above a
	// base of 100 (Misericorde row stores 40 → in-game shows 140,
	// Lordsworn's Straight Sword stores 10 → 110, default 0 → 100).
	// The generator pre-adds the 100 base so consumers can render the
	// value verbatim.
	Critical int32

	// Raw stat scaling coefficients (correctStrength etc.). NOT letter
	// grades — those require CalcCorrectGraph and are deferred to V2.
	ScalingStrRaw int32 // EquipParamWeapon.correctStrength
	ScalingDexRaw int32 // EquipParamWeapon.correctAgility
	ScalingIntRaw int32 // EquipParamWeapon.correctMagic
	ScalingFaiRaw int32 // EquipParamWeapon.correctFaith
	ScalingArcRaw int32 // EquipParamWeapon.correctLuck

	// Status-effect damage applied by the weapon. Phase 3C.1 leaves
	// these zero — derivation requires SpEffect / AtkParam traversal.
	StatusPoison     int32
	StatusBleed      int32
	StatusFrost      int32
	StatusSleep      int32
	StatusMadness    int32
	StatusScarletRot int32

	// PassiveEffects enumerates on-hit and resident SpEffects attached
	// to the weapon. Generated by resolving
	// EquipParamWeapon.spEffectBehaviorId0..2 (on-hit) and
	// residentSpEffectId/1/2 (resident) against SpEffectParam plus a
	// small curated label map for well-known resident IDs. Entries with
	// Known=false carry an unresolved SpEffect ID so the UI can still
	// surface the existence of an effect.
	PassiveEffects []WeaponPassiveEffect

	// Default Ash of War (swordArtsParamId — not a Gem item ID).
	DefaultAoWID int32 // EquipParamWeapon.swordArtsParamId

	// Reinforcement classification derived from ReinforceParamWeapon
	// band size at ReinforceTypeID:
	//   - band size 26 → IsInfusable=true,  IsSomber=false, MaxUpgrade=25
	//   - band size 11 → IsInfusable=false, IsSomber=true,  MaxUpgrade=10
	//   - band size 1  → IsInfusable=false, IsSomber=false, MaxUpgrade=0
	IsInfusable bool
	IsSomber    bool
	MaxUpgrade  int32

	// Provenance
	SourceRowID uint32   // EquipParamWeapon Row ID (always == ItemID)
	Warnings    []string // empty for fully-resolved rows
}

WeaponStatsV1 holds weapon-like base stats for a single item, sourced directly from EquipParamWeapon / ReinforceParamWeapon and shipped as a generated Go map. Covers melee_armaments, shields, ranged_and_catalysts and arrows_and_bolts.

IMPORTANT — R-STA-01: Elden Ring's EquipParamWeapon CSV stores Holy damage in legacy "Dark"-named columns (`attackBaseDark`, `darkGuardCutRate`, `correctType_Dark`). AttackHoly / GuardHoly below ARE sourced from those columns — there is no separate "Holy" CSV column. App UI surfaces them as "Holy" so consumers do not see the `Dark` naming.

Status damage applied by a weapon (poison/bleed/etc.) is NOT sourced from EquipParamWeapon directly; it requires traversing SpEffect / AtkParam tables which Phase 3C.1 intentionally does not interpret. Status* fields therefore stay zero in V1 and a "status-deferred" warning is recorded.

Field provenance is documented per-field; numbers are taken verbatim from the CSV (with the documented "Dark"→"Holy" rename). Guard cut rates are stored as int32 — CSV values are integer percentages such as 30, 45, etc. in the rows surveyed.

type WhetbladeData

type WhetbladeData struct {
	Name string
}

WhetbladeData holds metadata for a whetblade unlock.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL