local npcDialogKeys = {}

npcDialogKeys.fieldType = "string"
npcDialogKeys.validator = function(value)
    return true -- All strings are valid dialog keys
end

-- Dialog key suggestions based on English.txt content
npcDialogKeys.options = {
    -- Character-specific dialogs from English.txt
    
    -- Chapter 0 - Prologue
    "DZ_CH0_MODINTRO",
    "DZ_CH0_THEO_A",
    "DZ_CH0_THEO_0_B", 
    "DZ_CH0_END",
    
    -- Chapter 1 - Forbidden City
    "DZ_CH1_MAGOLOR_A",
    "DZ_CH1_MAGOLOR_B",
    "DZ_CH1_MAGOLOR_C",
    "DZ_CH1_MAGOLOR_D",
    "DZ_CH1_ENDMADELINE",
    "DZ_CH1_KIRBY_INTRO",
    "DZ_CH1_KIRBY_FIRST_STEP_INTRO",
    "DZ_CH1_KIRBY_MAGALOR_INTRO",
    "DZ_CH1_KIRBY_MAGALOR_EXPLAIN",
    "DZ_CH1_KIRBY_TUTORIAL",
    "DZ_CH1_CHECKINGONTHEO",
    
    -- Chapter 2 - Nightmare and Despaired
    "DZ_CH2_POEM",
    "DZ_CH2_WAKEUP",
    "DZ_CH2_CHARA_BREAKSOUT",
    "DZ_CH2_CHARA_BREAKSOUT0",
    "DZ_CH2_CHARA_INTRO",
    "DZ_CH2_SEEKERS_INTROA",
    "DZ_CH2_SEEKERS_INTROB", 
    "DZ_CH2_SEEKERS_INTROC",
    "DZ_CH2_SEEKERS_INTROD",
    "DZ_CH2_CHARA_PHASE2",
    "DZ_CH2_MADDY_FREAK_OUTA",
    "DZ_CH2_CHARA_CREEPYA",
    "DZ_CH2_MADDY_FREAK_OUTC",
    "DZ_CH2_BADDY_FREAK_OUTA",
    "DZ_CH2_BADDY_FREAK_OUTB",
    "DZ_CH2_CHARA_CREEPYB",
    "DZ_CH2_MADDY_FREAK_OUTD",
    "DZ_CH2_BADDY_FREAK_OUTC",
    "DZ_CH2_MADDY_BADDY_FREAKOUT0",
    "DZ_CH2_MADDY_BADDY_FREAKOUT1",
    "DZ_CH2_DREAM_PHONECALL_TRAP",
    "DZ_CH2_BADELINE_GRIEFA",
    "DZ_CH2_BADELINE_GRIEFB",
    "DZ_CH2_BADELINE_GRIEFC",
    "DZ_CH2_BADELINE_GRIEFD",
    "DZ_CH2_WITH_MAGOLOR_HELP",
    "DZ_CH2_CALLING_KIRBY",
    
    -- Chapter 3 - Rise of Star Warrior
    "DZ_CH3_END_KIRBY",
    "BADDY_WAKE_UP",
    "BADDY_DELTARUNE",
    "BROKEN_DELTARUNE",
    "FIRST_LEGEND",
    "TALK_TO_BADDY_0",
    "TALK_TO_BADDY_1", 
    "TALK_TO_BADDY_2",
    "RALSEI_PREINTRO",
    "RALSEI_INTRO",
    "RALSEI_FREE",
    
    -- Chapter 4 - Unexpected Alliances
    "DZ_CH4_CHARA_2ND_INTRO",
    "KIRBY_PAYPHONE_DREAM_END",
    "KIRBY_PAYPHONE_AWAKE_END",
    "DZ_CH4_UNDERTALE",
    "DZ_CH4_FULLSTORY",
    "DZ_CH4ALT_ENDING",
    
    -- Chapter 5 - Resortment Factoteria
    "DZ_CH5_OSHIRO_FRONT_DESK",
    "DZ_CH3_RALSEI_SUS",
    "DZ_CH5_GUESTBOOK",
    "DZ_CH5_OSHIRO_HALLWAY_A",
    "DZ_CH5_OSHIRO_HALLWAY_B",
    "DZ_CH5_MEMO_OPENING",
    "DZ_CH5_MEMO",
    "DZ_CH5_OSHIRO_CLUTTER0",
    "DZ_CH5_OSHIRO_CLUTTER0_B",
    "DZ_CH5_OSHIRO_CLUTTER1",
    "DZ_CH5_OSHIRO_CLUTTER1_B",
    "DZ_CH5_OSHIRO_CLUTTER2",
    "DZ_CH5_OSHIRO_CLUTTER2_B",
    "DZ_CH5_OSHIRO_LAST_CLUTTER_HINT",
    "DZ_CH5_OSHIRO_LAST_CLUTTER",
    "DZ_CH5_OSHIRO_CLUTTER_ENDING",
    "DZ_CH5_THEO_NEVER_MET",
    "DZ_CH5_THEO_NEVER_INTRODUCED",
    "DZ_CH5_THEO_INTRO",
    "DZ_CH5_THEO_ESCAPING",
    "DZ_CH5_THEO_VENTS",
    "DZ_CH5_OSHIRO_BREAKDOWN",
    "DZ_CH5_DIARY",
    "DZ_CH3_OSHIRO_SUITE",
    "DZ_CH3_OSHIRO_SUITE_SAD0",
    "DZ_CH3_OSHIRO_SUITE_SAD1",
    "DZ_CH3_OSHIRO_SUITE_SAD2",
    "DZ_CH3_OSHIRO_SUITE_SAD3",
    "DZ_CH3_OSHIRO_SUITE_SAD4",
    "DZ_CH3_OSHIRO_SUITE_SAD5",
    "DZ_CH3_OSHIRO_SUITE_SAD6",
    "DZ_CH3_OSHIRO_STARTDZ_CHASE",
    "DZ_CH3_OSHIRODZ_CHASE_END",
    "DZ_CH3_ENDING",
    "DZ_CH5_KIRBY_ENTRANCE",
    "DZ_CH5_SHADOWDZ_CHARA_0",
    "DZ_CH5_SHADOWDZ_CHARA_1",
    "DZ_CH5_SHADOWDZ_CHARA_2",
    "DZ_CH5_SHADOWDZ_CHARA_3",
    "DZ_CH5_RALSEI_HINT",
    
    -- Chapter 6 - The Stronghold
    "DZ_CH6_INTRO",
    "DZ_CH6_HEART_GEM",
    "DZ_CH6_GONDOLA_FEATHER_1",
    "DZ_CH6_GONDOLA_FEATHER_2",
    "DZ_CH6_GONDOLA_FEATHER_3",
    "DZ_CH6_GONDOLA_FEATHER_4",
    "DZ_CH6_GONDOLA_FEATHER_5",
    "DZ_CH6_GASTERLAB",
    "DZ_CH6_RESETIANATION0",
    "DZ_CH6_RESETIANATION1",
    "DZ_CH6_RESETIANATION2",
    "DZ_CH6_RESETIANATION3",
    "DZ_CH6_RUN0",
    "DZ_CH6_RUN1",
    "DZ_CH6_RUN2",
    "DZ_CH6_RUN3",
    "DZ_CH6_RUN4",
    "DZ_CH6_RUN5",
    "DZ_CH6_ESCAPE",
    "DZ_CH6_GASTERVOICE",
    "DZ_CH6_GASTER0",
    "DZ_CH6_GASTER1",
    "DZ_CH6_GASTER2",
    "DZ_CH6_GASTER3",
    "DZ_CH6_GASTER4",
    "DZ_CH6_GASTER5",
    "DZ_CH6_GASTER6",
    "DZ_CH6_GASTER7",
    "DZ_CH6_ENDING",
    
    -- Chapter 7 - Mirror of Hell
    "DZ_CH7_PHONE",
    "DZ_CH7_MADELINE_MIRROR",
    "DZ_CH7_REFLECTION",
    "DZ_CH7_SEE_MADDY",
    "DZ_CH7_SEE_MADDY_B",
    "DZ_CH7_FOUND_MADDY",
    "DZ_CH7_MADDY_SAVING_LIFT",
    "DZ_CH7_MADDY_SAVING_A",
    "DZ_CH7_MADDY_SAVING_NICE",
    "DZ_CH7_MADDY_SAVING_B",
    "DZ_CH7_MADDY_SAVING_C",
    "DZ_CH7_MADDY_SAVING_SWITCH",
    "DZ_CH7_MADDY_SAVING_DUNK",
    "DZ_CH7_MADDY_SAVING_REALLY",
    "DZ_CH7_MADDY_SAVING_D",
    "DZ_CH7_MADDY_SAVING_E",
    "DZ_CH7_MADELINE_CRUSHING_SEEKERSA",
    "DZ_CH7_MADELINE_CRUSHING_SEEKERSB",
    "DZ_CH7_MADELINE_CRUSHING_SEEKERSC",
    "DZ_CH7_MADELINE_FLYINGA",
    "DZ_CH7_MADELINE_FLYINGB",
    "DZ_CH7_DARKMATTER_SPEAKA",
    "DZ_CH7_DARKMATTER_SPEAKB",
    "DZ_CH7_DARKMATTER_SPEAKC",
    "DZ_CH7_DARKMATTER_SPEAKD",
    "DZ_CH7_DARKMATTER_SPEAKE",
    "DZ_CH7_DARKMATTER_SPEAKF",
    "DZ_CH7_2_MADDY_A",
    "DZ_CH7_2_MADDY_B",
    "DZ_CH7_2_MADDY_C",
    "DZ_CH7_2_MADDY_D",
    "DZ_CH7_2_MADDY_FINAL",
    "DZ_CH7_2_MADDY_ASK_TO_THROW",
    
    -- Chapter 8 - Get Outrunned
    "DZ_CH8_MADELINE_INTRO",
    "DZ_CH8_MADELINE_ASK_JOURNEY",
    "DZ_CH8_MADELINE_SAY_JOURNEY",
    "DZ_CH8_MADELINE_ASK_GASTER",
    "DZ_CH8_MADELINE_SAY_GASTER",
    "DZ_CH8_MADELINE_ASK_ELS",
    "DZ_CH8_MADELINE_SAY_ELS",
    "DZ_CH8_MADELINE_ASK_MONSTER",
    "DZ_CH8_MADELINE_SAY_MONSTER",
    "DZ_CH8_MADELINE_ASK_GOAL",
    "DZ_CH8_MADELINE_SAY_GOAL",
    "DZ_CH8_MADELINE_ASK_ANYTHING",
    "DZ_CH8_MADELINE_SAY_ANYTHING",
    "DZ_CH6_THEO_ASK_ZERO",
    "DZ_CH6_THEO_SAY_ZERO",
    "DZ_CH8_MADELINE_ASK_BADELINE",
    "DZ_CH8_MADELINE_SAY_BADELINE",
    "DZ_CH8_MADELINE_ASK_VOID",
    "DZ_CH8_MADELINE_SAY_VOID",
    "DZ_CH6_THEO_ASK_GRANDPA",
    "DZ_CH6_THEO_SAY_GRANDMA",
    "DZ_CH8_MADELINE_ASK_GRANNY",
    "DZ_CH8_MADELINE_SAY_GRANNY",
    "DZ_CH8_MADELINE_ASK_STORY",
    "DZ_CH8_MADELINE_SAY_STORY",
    "DZ_CH8_MADELINE_ASK_SELFIE",
    "DZ_CH8_MADELINE_SAY_SELFIE",
    "DZ_CH8_MADELINE_ASK_SLEEP",
    "DZ_CH8_MADELINE_SAY_SLEEP",
    "DZ_CH8_MADELINE_ASK_SLEEP_CONFIRM",
    "DZ_CH8_MADELINE_SAY_SLEEP_CONFIRM",
    "DZ_CH8_MADELINE_ASK_SLEEP_CANCEL",
    "DZ_CH8_MADELINE_SAY_SLEEP_CANCEL",
    "DZ_CH8_MADELINE_TRUTH",
    "DZ_CH8_DREAMING",
    "DZ_CH8_MAGOLOR_WATCHOUT",
    "DZ_CH8_MADDY_HURT_FOR_REAL",
    "DZ_CH8_THEO",
    "DZ_CH8_CHARA_BOSS_START",
    "DZ_CH6_BOSS_USED_SAVE_FILE",
    "DZ_CH6_BOSS_SAVE_FILE_FAILED",
    "DZ_CH6_BOSS_USED_SAVE_FILE1",
    "DZ_CH6_BOSS_SAVE_FILE_FAILED1",
    "DZ_CH6_BOSS_USED_SAVE_FILE2",
    "DZ_CH6_BOSS_SAVE_FILE_FAILED2",
    "DZ_CH8_CHARA_BOSS_TIRED_A",
    "DZ_CH8_CHARA_BOSS_TIRED_B",
    "DZ_CH8_CHARA_BOSS_TIRED_C",
    "DZ_CH8_CHARA_BOSS_MIDDLE",
    "DZ_CH8_CHARA_BOSS_PISSED",
    "DZ_CH6_CHARA_BOSS_ENDING",
    
    -- Chapter 9 - Grand Summit
    "DZ_CH9_ASCEND_0",
    "DZ_CH9_ASCEND_1",
    "DZ_CH9_ASCEND_2",
    "DZ_CH9_ASCEND_3",
    "DZ_CH9_ASCEND_4",
    "DZ_CH9_ASCEND_5",
    "DZ_CH9_ASCEND_6",
    "DZ_CH9_VORTEX",
    "DZ_CH9_ARRIVIAL_TO_MT_INGESTE",
    "DZ_CH9_SPACE_SAVE_FILEA",
    "DZ_CH9_SPACE_SAVE_FILEB",
    "DZ_CH9_SPACE_SAVE_FILEC",
    "DZ_CH9_SPACE_SAVE_FILED",
    "DZ_CH9_SPACE_SAVE_FILEPRETRAP",
    "DZ_CH9_SPACE_TRAP_SAVE_FILE",
    "DZ_CH9_MADELINE_FREAKOUT",
    "DZ_CH9_1_ASCEND",
    "DZ_CH9_2_ASCEND",
    "DZ_CH9_2_MADDY",
    "DZ_CH9_2_BADDY",
    "DZ_CH9_TORIEL_AND_SANS_VOICEPHONECALLMESSAGE",
    
    -- Chapter 10 - Ruins
    "DZ_CH10_RUINS_INTRO",
    "DZ_CH10_MADDY_AND_BADDY",
    "DZ_CH10_TALK_TO_BADDY_ANDDZ_CHARA0",
    "DZ_CH10_TALK_TO_BADDY_ANDDZ_CHARA1",
    "DZ_CH10_TALK_TO_BADDY_ANDDZ_CHARA2",
    "DZ_CH10_TALK_TO_BADDY_ANDDZ_CHARA3",
    "DZ_CH10_FLOWEY_INTRO",
    "DZ_CH10_WELCOME_2_MT_INGESTE_A",
    "DZ_CH10_WELCOME_2_MT_INGESTE_B",
    "DZ_CH10_WELCOME_2_MT_INGESTE_C",
    "DZ_CH10_WELCOME_2_MT_INGESTE_D",
    "ch10_arrival_to_tori_and_asgore_house",
    
    -- Chapter 16 - Core of Determination
    "DZ_CH16_TORIEL_A",
    "DZ_CH16_TORIEL_B",
    "DZ_CH16_TORIEL_C",
    "DZ_CH16_TORIEL_D",
    "DZ_CH16_TORIEL_LOCKED",
    "DZ_CH16_ENDING",
    
    -- Chapter 18 - The Deepest Secrets
    "DZ_CH18_INTRO",
    "DZ_CH18_THEO_A",
    "DZ_CH18_THEO_B",
    "DZ_CH18_GETTING_TOGETHER",
    "DZ_CH18_END",
    
    -- Chapter 19 - The End
    "DZ_CH19_GRAVESTONE",
    "DZ_CH19_FLYING_TO_THE_VOID",
    "DZ_CH19_LANDING",
    "DZ_CH19_WRONG_HEART",
    "DZ_CH19_KEEP_GOING_KIRBY",
    "DZ_CH19_MISS_THE_BIRD",
    "DZ_CH19_HELPING_HAND",
    "DZ_CH19_KILL_THE_BIRD",
    "DZ_CH19_TRAP_IN_LOOP",
    "DZ_CH19_MONSTER_CAME_A",
    "DZ_CH19_MONSTER_CAME_B",
    "DZ_CH19_MONSTER_CAME_C",
    "DZ_CH19_MONSTER_CAME_D",
    "DZ_CH19_MONSTER_CAME_E",
    "DZ_CH19_THEO_CAME",
    "DZ_CH19_MONSTER_CAME_F",
    "DZ_CH19_LAST_ROOM",
    "DZ_CH19_LAST_ROOM_ALT",
    "DZ_CH19_LAST_ROOM_ALT_2",
    "DZ_CH19_CHARA_LAST_BOOST",
    
    -- Chapter 20 - The Beginning (Final Battle)
    "DZ_CH20_OMEGAZEROINTRO",
    "DZ_CH20_OMEGAZEROREVEAL",
    "DZ_CH20_FINALBOSS_POWERUP_1",
    "DZ_CH20_FINALBOSS_POWERUP_2",
    "DZ_CH20_FINALBOSS_POWERUP_3",
    "CP_FINALBOSS_DEFEATED",
    "FINALBOSS_GETTROLLED",
    "FINALBOSS_EXPRESSHIMSELF",
    "DZ_CH20_MADANDBADAFTERLIFE",
    "DZ_CH20_BADFOLLOWMAD1",
    "DZ_CH20_BADFOLLOWMAD2",
    "DZ_CH20_BADFOLLOWMAD3",
    "DZ_CH20_MADANDBADFINALLYMEETGRANNY",
    "DZ_CH20_MADTALKTOGRANNY",
    "DZ_CH20_GET_FINALHEART",
    "DZ_CH17_GET_ZERO_A",
    "DZ_CH20_SAVE_THE_UNIVERSE",
    "Thank_You",
    "DZ_CH20_END_CINEMATIC",
    "DZ_CH20_KIRBY_DO_NOT_WANT_TO_FIGHT",
    "DZ_CH20_ASRIEL_FIRST_SPECIAL_ATTACK",
    "DZ_CH20_MADELINE_AND_BADELINE_SAVE_KIRBY_FROM_ASRIEL_FIRST_SPECIAL_ATTACK",
    
    -- Epilogue
    "EPMOD_CABIN",
    "EP_PIE_START",
    "EPMOD_PIE_DISAPPOINTED",
    "EPMOD_PIE_GROSSED_OUT",
    "EPMOD_PIE_OKAY",
    "EPMOD_PIE_REALLY_GOOD",
    "EPMOD_PIE_AMAZING",
    "APP_INTROMOD",
    
    -- RMX Side
    "RMXDZ_CHITCHAT",
    "RMX_RESETIA_HEART",
    "RMX_KEEP_GOING_KIRBY",
    
    -- Memorial/Special
    "MEMORIAL_DARKSIDE",
    "DZ_CH2_DAN_MEMORIAL",
    "HOPESANDDREAMS",
    "Introduction",
    
    -- Wavefaze Tutorial
    "WAVEFAZE_PAGE1_TITLE",
    "WAVEFAZE_PAGE1_SUBTITLE", 
    "WAVEFAZE_PAGE2_TITLE",
    "WAVEFAZE_PAGE2_LIST",
    "WAVEFAZE_PAGE2_IMPOSSIBLE",
    "WAVEFAZE_PAGE3_TITLE",
    "WAVEFAZE_PAGE3_INFO",
    "WAVEFAZE_PAGE3_EASY",
    "WAVEFAZE_PAGE4_TITLE",
    "WAVEFAZE_PAGE4_LIST",
    "WAVEFAZE_PAGE5_TITLE",
    "WAVEFAZE_PAGE5_INFO1",
    "WAVEFAZE_PAGE5_INFO2",
    "WAVEFAZE_PAGE6_TITLE",
    
    -- Test and character faces
    "Test_kirby_face",
    "CHARACATER_TEST",
    "CHARACATER_TEST_AGAIN",
    
    -- Chapter and location names
    "DZ_Main",
    "DZ_B_Side",
    "DZ_C_Side", 
    "DZ_D_Side",
    "DZ_RMX_Side",
    
    -- Generic/Common dialogs
    "HELLO_PLAYER",
    "WELCOME_MESSAGE",
    "HELP_OFFERED",
    "QUEST_GIVEN",
    "QUEST_COMPLETE",
    "INFORMATION_SHARED",
    "WARNING_GIVEN",
    "ENCOURAGEMENT_GIVEN",
    "FAREWELL_MESSAGE",
    "THANKS_GIVEN",
    "FIRST_MEETING",
    "REPEAT_INTERACTION",
    "FINAL_GOODBYE",
    "CONDITIONAL_DIALOG"
}

npcDialogKeys.editable = true
npcDialogKeys.description = "Dialog key to display (from Dialog/English.txt)"

return npcDialogKeys