{
  "Format": "2.0.0",
  // INCLUDES
  "Changes": [
    {
      "LogName": "Sword & Sorcery - Mateo Includes",
      "Action": "Include",
      "FromFile": "Data/Appearances/AppearanceData_Mateo.json, Data/Dialogue/Mateo/Dialogue_Mateo.json, Data/Dialogue/Mateo/ConcessionTastes_Mateo.json, Data/Dialogue/Mateo/ConversationTopics_Mateo.json, Data/Dialogue/Mateo/CustomFixed_Mateo.json,Data/Dialogue/Mateo/CustomGiftDialogue_Mateo.json,Data/Dialogue/Mateo/MarriageDialogue_Mateo.json, Data/Dispositions/Dispositions_Mateo.json, Data/Festival Data/FestivalData_Mateo.json, Data/Schedules/Schedule_Mateo.json, Data/Strings/Strings_Mateo.json, Data/Spouse Extras/SpouseExtras_Mateo.json"
    },
    {
      "LogName": "Sword & Sorcery - Hector Includes",
      "Action": "Include",
      "FromFile": "Data/Appearances/AppearanceData_Hector.json, Data/Dialogue/Hector/Dialogue_Hector.json, Data/Dialogue/Hector/ConcessionTastes_Hector.json, Data/Dialogue/Hector/ConversationTopics_Hector.json, Data/Dialogue/Hector/CustomFixed_Hector.json,Data/Dialogue/Hector/CustomGiftDialogue_Hector.json, Data/Dispositions/Dispositions_Hector.json, Data/Festival Data/FestivalData_Hector.json, Data/Schedules/Schedule_Hector.json, Data/Strings/Strings_Hector.json, Data/Spouse Extras/SpouseExtras_Hector.json"
    },
    {
      "LogName": "Sword & Sorcery - Quest Includes",
      "Action": "Include",
      "FromFile": "Data/Quests & Items/BuildQuest.json, Data/Quests & Items/BuildQuest2.json, Data/Quests & Items/CGSpecialOrders.json, Data/Quests & Items/PentacleQuest.json, Data/Quests & Items/RiverQuest.json"
    },
    {
      "LogName": "Sword & Sorcery - Custom Companions Includes",
      "Action": "Include",
      "FromFile": "Data/Custom Companions/BookPathing.json, Data/Custom Companions/DinoPathing.json"
    },
    {
      "LogName": "Sword & Sorcery - Data Includes",
      "Action": "Include",
      "FromFile": "Data/MapData.json, Data/ShopData.json,Data/Mail.json, Data/NPCExclusions.json, Data/BlankLoads.json, Data/MapPatches.json, Data/TemporaryActors.json, Data/ScheduleAnimations.json, Data/S&SMiscellaneous.json, Data/NPCGiftTastes.json, Data/Music.json, Data/Quests & Items/DruidicCrops.json, Data/Quests & Items/MagicItems.json, Data/Quests & Items/CustomFood.json, Data/Quests & Items/LegendaryWeapons.json, Data/Quests & Items/CustomPowers.json, Data/Festival Data/FestivalData_Dialogue.json, Data/Events/EventsData_Ch1.json, Data/Events/EventsData_Ch2.json, Data/Events/EventsData_Ch3.json"
    },

    // TRIGGER ACTIONS
    {
      "LogName": "Overrides Seen Today Flag Removal",
      "Action": "EditData",
      "Target": "Data/TriggerActions",
      "Entries": {
        "SnS.TriggerActions.OverrideSeenTodayRemoval": {
          "Id": "SnS.TriggerActions.OverrideSeenTodayRemoval",
          "Trigger": "DayStarted",
          "MarkActionApplied": false,
          "Condition": "Any \"PLAYER_HAS_MAIL Current SnS_M_Mateo_OverrideSeenToday Any\" \"PLAYER_HAS_MAIL Current SnS_M_Hector_OverrideSeenToday Any\" \"PLAYER_HAS_MAIL Current SnS_M_Cirrus_OverrideSeenToday Any\" \"PLAYER_HAS_MAIL Current SnS_M_Roslin_OverrideSeenToday Any\" \"PLAYER_HAS_MAIL Current SnS_M_Dandelion_OverrideSeenToday Any\" \"PLAYER_HAS_MAIL Current SnS_M_Solomon_OverrideSeenToday Any\"",
          "Actions": [
            "RemoveMail Current SnS_M_Mateo_OverrideSeenToday",
            "RemoveMail Current SnS_M_Hector_OverrideSeenToday",
            "RemoveMail Current SnS_M_Cirrus_OverrideSeenToday",
            "RemoveMail Current SnS_M_Roslin_OverrideSeenToday",
            "RemoveMail Current SnS_M_Dandelion_OverrideSeenToday",
            "RemoveMail Current SnS_M_Solomon_OverrideSeenToday"
          ]
        },
        "SnS.TriggerActions.MateoTrollHeritage.True": {
          "Id": "SnS.TriggerActions.MateoTrollHeritage.True",
          "Trigger": "DayStarted",
          "Condition": "{{MateoTrollHeritage}}",
          "Actions": [
            "AddMail Current SnS.Flag.MateoTrollHeritage received",
            "MarkActionApplied Current SnS.TriggerActions.MateoTrollHeritage.False false"
          ]
        },
        "SnS.TriggerActions.MateoTrollHeritage.False": {
          "Id": "SnS.TriggerActions.MateoTrollHeritage.False",
          "Trigger": "DayStarted",
          "Condition": "!{{MateoTrollHeritage}}",
          "Actions": [
            "RemoveMail Current SnS.Flag.MateoTrollHeritage all",
            "MarkActionApplied Current SnS.TriggerActions.MateoTrollHeritage.True false"
          ]
        },
        "SnS.TriggerActions.SetHairColorCoolDown": {
          "Id": "SnS.TriggerActions.SetHairColorCoolDown",
          "Trigger": "DayStarted",
          "MarkActionApplied": false,
          "Condition": "{{CirrusHealthyHairHabits}}, {{CirrusRainbowHair |contains=random}}, PLAYER_STAT Current CirrusHairCooldown 0 0",
          "Actions": [
            "IncrementStat CirrusHairCooldown {{Random: {{range: 3, 4}}}}",
            "IncrementStat CirrusHairColor -1",
            "RemoveMail Current SnS.Flag.CirrusHairColor.brown all",
            "RemoveMail Current SnS.Flag.CirrusHairColor.red all",
            "RemoveMail Current SnS.Flag.CirrusHairColor.orange all",
            "RemoveMail Current SnS.Flag.CirrusHairColor.yellow all",
            "RemoveMail Current SnS.Flag.CirrusHairColor.Blue all",
          ]
        },
        "SnS.TriggerActions.CooldownCountdown": {
          "Id": "SnS.TriggerActions.CooldownCountdown",
          "Trigger": "DayEnding",
          "MarkActionApplied": false,
          "Condition": "{{CirrusHealthyHairHabits}}, {{CirrusRainbowHair |contains=random}}, PLAYER_STAT Current CirrusHairCooldown 1",
          "Action": "IncrementStat CirrusHairCooldown -1"
        },
        
        //{{Random: Brown, Red, Orange, Yellow, Blue |key=CirrusHair}}
        "SnS.TriggerActions.SetPersistentHairColor": {
          "Id": "SnS.TriggerActions.SetPersistentHairColor",
          "Trigger": "DayStarted",
          "MarkActionApplied": false,
          "Condition": "{{CirrusHealthyHairHabits}}, {{CirrusRainbowHair |contains=random}}, PLAYER_STAT Current CirrusHairColor 0 0",
          "Actions":  [ 
            "IncrementStat CirrusHairColor",
            "AddMail Current SnS.Flag.CirrusHairColor.{{Random: Brown, Red, Orange, Yellow, Blue |key=CirrusHair}} received"
          ]
        }
      }
    },
  ],
  // CONFIG OPTIONS
  "ConfigSchema": {
    "Player Pronouns 1": {
      "Default": "They",
      "AllowBlank": false,
      "AllowMultiple": true,
      "Description": "Sets the player's desired pronouns.",
      "Section": "Pronouns"
    },
    "Player Pronouns 2": {
      "Default": "Them",
      "AllowBlank": false,
      "AllowMultiple": true,
      "Description": "Sets the player's desired pronouns.",
      "Section": "Pronouns"
    },
    "Player Pronouns 3": {
      "Default": "Theirs",
      "AllowBlank": false,
      "AllowMultiple": true,
      "Description": "Sets the player's desired pronouns.",
      "Section": "Pronouns"
    },
    "Player Pronouns 4": {
      "Default": "Themselves",
      "AllowBlank": false,
      "AllowMultiple": true,
      "Description": "Sets the player's desired pronouns.",
      "Section": "Pronouns"
    },
    "Player Pronoun Identifier": {
      "Default": "are",
      "AllowBlank": false,
      "AllowMultiple": true,
      "Description": "Would usually be \"is\" or \"are\", depending on context. Example: She IS so cool! VS. They ARE so cool!",
      "Section": "Pronouns"
    },
    "CustomMateoSoren": {
      "AllowValues": "true, false",
      "Default": "true",
      "AllowBlank": false,
      "Description": "Turns on male toddler sprites that look like Mateo.",
      "Section": "Custom Kids"
    },
    "CustomMateoDinah": {
      "AllowValues": "true, false",
      "Default": "true",
      "AllowBlank": false,
      "Description": "Turns on female toddler sprites that look like Mateo.",
      "Section": "Custom Kids"
    },
    "MermaidPendantEarring": {
      "AllowValues": "true, false",
      "Default": "true",
      "AllowBlank": false,
      "Description": "Adds the Mermaid Pendant earring for Mateo when married.",
      "Section": "Mermaid Pendant Overlays"
    },
    "MermaidPendantHairclip": {
      "AllowValues": "true, false",
      "Default": "true",
      "AllowBlank": false,
      "Description": "Adds the Mermaid Pendant hairclip for Hector when married.",
      "Section": "Mermaid Pendant Overlays"
    },
    "MermaidPendantChoker": {
      "AllowValues": "true, false",
      "Default": "true",
      "AllowBlank": false,
      "Description": "Adds the Mermaid Pendant choker for Cirrus when married.",
      "Section": "Mermaid Pendant Overlays"
    },
    "MateoSpouseRoomConfig": {
      "AllowValues": "true, false",
      "Default": "true",
      "AllowBlank": false,
      "Description": "Adds a spouse room when married.",
      "Section": "Spouse Rooms"
    },
    "MateoSpousePatioConfig": {
      "AllowValues": "true, false",
      "Default": "true",
      "AllowBlank": false,
      "Description": "Adds a spouse patio when married.",
      "Section": "Spouse Patios"
    },
    "HectorSpouseRoomConfig": {
      "AllowValues": "true, false",
      "Default": "true",
      "AllowBlank": false,
      "Description": "Adds a spouse room when married.",
      "Section": "Spouse Rooms"
    },
    "HectorSpousePatioConfig": {
      "AllowValues": "true, false",
      "Default": "true",
      "AllowBlank": false,
      "Description": "Adds a spouse patio when married.",
      "Section": "Spouse Patios"
    },
    "CirrusSpouseRoomConfig": {
      "AllowValues": "true, false",
      "Default": "true",
      "AllowBlank": false,
      "Description": "Adds a spouse room when married.",
      "Section": "Spouse Rooms"
    },
    "CirrusSpousePatioConfig": {
      "AllowValues": "true, false",
      "Default": "true",
      "AllowBlank": false,
      "Description": "Adds a spouse patio when married.",
      "Section": "Spouse Patios"
    },
    "SkipIntroQuest": {
      "AllowValues": "true, false",
      "Default": "false",
      "AllowBlank": false,
      "Description": "Removes the quest requirements for Hector's intro quest, in case of bugs or other issues.",
      "Section": "Miscellaneous"
    },
    "DumpsterWarp": {
      "AllowValues": "true, false",
      "Default": "false",
      "AllowBlank": false,
      "Description": "May cause some pathing issues, but offers a shortcut to the Druid Tower.",
      "Section": "Miscellaneous"
    },
    "HectorHeterochromatic": {
      "AllowValues": "true, false",
      "Default": "false",
      "AllowBlank": false,
      "Description": "Gives Hector Blue/Green heterochromatic eyes.",
      "Section": "Overlays"
    },
    "MateoTrollHeritage": {
      "AllowValues": "true, false",
      "Default": "false",
      "AllowBlank": false,
      "Description": "Gives Mateo horns and unique eye color based on their parentage.",
      "Section": "Overlays"
    },
    "CirrusRainbowHair": {
      "AllowValues": "Random, Brown, Red, Orange, Yellow, Blue",
      "Default": "Blue",
      "AllowBlank": false,
      "AllowMultiple": false,
      "Description": "Gives Cirrus a variety of dyed hair colors, or optionally choose a static one.",
      "Section": "Overlays"
    },
    "CirrusHealthyHairHabits": {
      "AllowValues": "true, false",
      "Default": "false",
      "AllowBlank": false,
      "AllowMultiple": false,
      "Description": "Adds an optional cooldown between Cirrus's hair color changes.\nFor use with CirrusRainbowHair: \"Random\"",
      "Section": "Overlays"
    }
  },
  // DYNAMIC TOKENS
  "DynamicTokens": [
    {
      "Name": "PlayerPronouns",
      "Value": "|PPN1={{Random: {{Player Pronouns 1}} |key=PlayerPronouns}} |PPN2={{Random: {{Player Pronouns 2}} |key=PlayerPronouns}} |PPN3={{Random: {{Player Pronouns 3}} |key=PlayerPronouns}} |PPN4={{Random: {{Player Pronouns 4}} |key=PlayerPronouns}} |PPNI={{Random: {{Player Pronoun Identifier}} |key=PlayerPronouns}}"
    },
    {
      "Name": "WeekDayList",
      "Value": "Sun, Mon, Tue, Wed, Thu, Fri, Sat"
    },
    {
      "Name": "WeekDay",
      "Value": "{{WeekDayList |valueAt={{Query: {{Day}}%7}}}}"
    },
    {
      "Name": "MateoRomance",
      "Value": "Romantic",
      "When": {
        "Relationship:Mateo |contains=Dating, Engaged, Married": true
      }
    },
    {
      "Name": "MateoRomance",
      "Value": "Platonic",
      "When": {
        "Relationship:Mateo |contains=Dating, Engaged, Married": false
      }
    },
    {
      "Name": "MateoArmor",
      "Value": "Armor_Mateo.png",
      "When": {
        "HasSeenEvent |contains=SnS.Ch1.Mateo.9": false,
        "MateoTrollHeritage": false
      }
    },
    {
      "Name": "MateoArmor",
      "Value": "Armor_ScarredMateo.png",
      "When": {
        "HasSeenEvent |contains=SnS.Ch1.Mateo.9": true,
        "MateoTrollHeritage": false
      }
    },
    {
      "Name": "MateoArmor",
      "Value": "Armor_Mateo_Horns.png",
      "When": {
        "HasSeenEvent |contains=SnS.Ch1.Mateo.9": false,
        "MateoTrollHeritage": true
      }
    },
    {
      "Name": "MateoArmor",
      "Value": "Armor_ScarredMateo_Horns.png",
      "When": {
        "HasSeenEvent |contains=SnS.Ch1.Mateo.9": true,
        "MateoTrollHeritage": true
      }
    },
    {
      "Name": "MateoBeach",
      "Value": "Beach_Mateo.png",
      "When": {
        "HasSeenEvent |contains=SnS.Ch1.Mateo.9": false,
        "MateoTrollHeritage": true
      }
    },
    {
      "Name": "MateoBeach",
      "Value": "Beach_ScarredMateo.png",
      "When": {
        "HasSeenEvent |contains=SnS.Ch1.Mateo.9": true,
        "MateoTrollHeritage": false
      }
    },
    {
      "Name": "MateoBeach",
      "Value": "Beach_Mateo_Horns.png",
      "When": {
        "HasSeenEvent |contains=SnS.Ch1.Mateo.9": false,
        "MateoTrollHeritage": true
      }
    },
    {
      "Name": "MateoBeach",
      "Value": "Beach_ScarredMateo_Horns.png",
      "When": {
        "HasSeenEvent |contains=SnS.Ch1.Mateo.9": true,
        "MateoTrollHeritage": true
      }
    },
    {
      "Name": "MateoHorns",
      "Value": ""
    },
    {
      "Name": "MateoHorns",
      "Value": "_Horns",
      "When": {
        "MateoTrollHeritage": true
      }
    },
    {
      "Name": "TenHeartRivalHeartsToggle",
      "Value": "stopMusic/quickQuestion \"Is there anything I can do to help you carry that weight?#You've got responsibilities of your own now, Mateo. Don't forget them!#Just keep being my friend, Mateo! That's the kind of support I need.(break)speak Mateo \"I could never, @! Don't worry. $1\"(break)speak Mateo \"Of course, @! I've got your back.$1\"",
      "When": {
        "HasFlag |contains=RivalHearts_AideenMateo": true
      }
    },
    {
      "Name": "TenHeartRivalHeartsToggle",
      "Value": "stopMusic/question fork0 \"Is there anything I can do to help you carry that weight?#Actually, there was something I wanted to talk to you about. (ROMANTIC)#Just keep being my friend, Mateo! That's the kind of support I need. (PLATONIC)\"/fork MateoRomantic",
      "When": {
        "HasFlag |contains=RivalHearts_AideenMateo": false
      }
    },
    {
      "Name": "MateoSpawn",
      "Value": "EastScarp_MateoHome 5 6",
      "When": {
        "HasFlag |contains=Mateo_SpecialOrders_BuildGuildMail": false
      }
    },
    {
      "Name": "MateoSpawn",
      "Value": "EastScarp_CoastalGuild 8 5",
      "When": {
        "HasFlag |contains=Mateo_SpecialOrders_BuildGuildMail": true
      }
    },
    {
      "Name": "MateoSpawnMap",
      "Value": "EastScarp_MateoHome",
      "When": {
        "HasFlag |contains=Mateo_SpecialOrders_BuildGuildMail": false
      }
    },
    {
      "Name": "MateoSpawnMap",
      "Value": "EastScarp_CoastalGuild",
      "When": {
        "HasFlag |contains=Mateo_SpecialOrders_BuildGuildMail": true
      }
    },
    {
      "Name": "MateoSpawnTilesX",
      "Value": "5",
      "When": {
        "HasFlag |contains=Mateo_SpecialOrders_BuildGuildMail": false
      }
    },
    {
      "Name": "MateoSpawnTilesX",
      "Value": "8",
      "When": {
        "HasFlag |contains=Mateo_SpecialOrders_BuildGuildMail": true
      }
    },
    {
      "Name": "MateoSpawnTilesY",
      "Value": "6",
      "When": {
        "HasFlag |contains=Mateo_SpecialOrders_BuildGuildMail": false
      }
    },
    {
      "Name": "MateoSpawnTilesY",
      "Value": "5",
      "When": {
        "HasFlag |contains=Mateo_SpecialOrders_BuildGuildMail": true
      }
    },
    {
      "Name": "MateoSpawn",
      "Value": "EastScarp_CoastalGuild 8 5",
      "When": {
        "HasFlag |contains=Mateo_SpecialOrders_BuildGuildMail": true
      }
    },
    {
      "Name": "MateoRelationshipStatus",
      "Value": "false",
      "When": {
        "Query: {{HasFlag |contains=RivalHearts_AideenMateo}} OR NOT {{HasFlag |contains=MateoRomanticFlag}}": true
      }
    },
    {
      "Name": "MateoRelationshipStatus",
      "Value": "true",
      "When": {
        "HasFlag": "MateoRomanticFlag"
      }
    },
    {
      "Name": "MateoHospitalScene_Setup",
      "Value": "farmer 10 19 0 Mateo 21 11 2 Harvey 20 11 1"
    },
    {
      "Name": "MateoHospitalScene_Setup",
      "Value": "{{MateoHospitalScene_Setup}} Nova.Eli -999 -999 2",
      "When": {
        "HasMod: |contains=TenebrousNova.EliDylan.CP": true
      }
    },
    {
      "Name": "MateoHospitalScene",
      "Value": "message \"{{i18n:Events.S&S.Ch1.7H1.Message.1}}\"/changeLocation Town/warp farmer 36 57/faceDirection farmer 2/addTemporaryActor MateoKrobus 16 32 39 62 1 true Character/changeName MateoKrobus Krobus/pause 500/playSound doorClose/globalFadeToClear/viewport 35 59/playsound leafrustle/advancedMove MateoKrobus false -3 0 0 -3 4 10/emote farmer 40/pause 100/jump farmer 5 true/emote farmer 16/speak MateoKrobus \"{{i18n:Events.S&S.Ch1.7H1.Krobus.1}}\"/pause 250/emote farmer 32/speak MateoKrobus \"{{i18n:Events.S&S.Ch1.7H1.Krobus.2}}\"pause 250/emote farmer 36/speak MateoKrobus \"{{i18n:Events.S&S.Ch1.7H1.Krobus.3}}\"/fade/viewport -999 -999/mail MateoHospital/end invisible Mateo"
    },
    {
      "Name": "MateoHospitalScene",
      "Value": "speak Harvey \"{{i18n:Events.S&S.Ch1.7H1.Harvey.6}}\"/pause 1000/warp Harvey -999 -999/warp farmer -999 -999/warp Mateo 20 11/showFrame Mateo 50/changeLocation EastScarp_LavaMine/bgColor 0 0 0/ambientLight 0 0 0/viewport 17 12/playMusic Upper_Ambient/pause 1000/showFrame Mateo 51/shake Mateo 1000/pause 500/showFrame Mateo 50/playSound stairsdown/pause 300/warp Nova.Eli 6 10/advancedMove Nova.Eli false 0 1 2 10/pause 500/showFrame Nova.Eli 56/pause 750/showFrame Nova.Eli 57/pause 500/emote Nova.Eli 16 true/showFrame Nova.Eli 87/pause 750/showFrame Nova.Eli 0/faceDirection Nova.Eli 1/speed Nova.Eli 5/advancedMove Nova.Eli false 13 0 1 10/textAboveHead Nova.Eli \"{{i18n:Events.S&S.Ch1.7H1.NovaEli.1}}\"/pause 1000/textAboveHead Mateo \"{{i18n:Events.S&S.Ch1.7H1.Mateo.9}}\"/pause 3000/showFrame Nova.Eli 20/speak Nova.Eli \"{{i18n:Events.S&S.Ch1.7H1.NovaEli.2}}\"/showFrame Mateo 0/pause 1000/shake Mateo 1000/pause 1000/showFrame Mateo 51/shake Mateo 1000/pause 1000/showFrame Mateo 50/emote Nova.Eli 28/showFrame Nova.Eli 21/speak Nova.Eli \"{{i18n:Events.S&S.Ch1.7H1.NovaEli.3}}\"/globalFade/viewport 1000 1000/pause 1000/speak Nova.Eli \"{{i18n:Events.S&S.Ch1.7H1.NovaEli.4}}\"/pause 100/playSound throw/stopMusic/changeLocation Town/warp farmer 36 57/faceDirection Nova.Eli 2/showFrame Nova.Eli 0/warp Nova.Eli 33 57/showFrame Nova.Eli 67/faceDirection farmer 2/addTemporaryActor MateoKrobus 16 32 39 62 1 true Character/changeName MateoKrobus Krobus/pause 500/playSound doorClose/globalFadeToClear/viewport 35 59/playsound leafrustle/advancedMove MateoKrobus false -3 0 0 -3 4 10/emote farmer 40/pause 100/jump farmer 5 true/emote farmer 16/speak MateoKrobus \"{{i18n:Events.S&S.Ch1.7H1.Krobus.1.2}}\"/speed Nova.Eli 2/advancedMove Nova.Eli false 0 2 2 0 4 10/pause 750/speak Nova.Eli \"{{i18n:Events.S&S.Ch1.7H1.NovaEli.5}}\"/pause 250/emote farmer 32/speak MateoKrobus \"{{i18n:Events.S&S.Ch1.7H1.Krobus.2}}\"/faceDirection Nova.Eli 1/emote Nova.Eli 28/faceDirection Nova.Eli 0/pause 250/emote farmer 36/speak MateoKrobus \"{{i18n:Events.S&S.Ch1.7H1.Krobus.3}}\"/fade/viewport 1000 1000/message \"{{i18n:Events.S&S.Ch1.7H1.Message.1}}\"/mail MateoHospital/end invisible Mateo",
      "When": {
        "HasMod: |contains=TenebrousNova.EliDylan.CP": true
      }
    },
    {
      "Name": "HectorIntroRequirement",
      "Value": "SnS.Ch2.Hector.1/e SnS.Ch1.Mateo.14/t 0800 2200/n Hector_SpecialOrders_Pentacle1/n Hector_SpecialOrders_Pentacle2/n Hector_SpecialOrders_Pentacle3/n Hector_SpecialOrders_Pentacle4/F",
      "When": {
        "SkipIntroQuest": false
      }
    },
    {
      "Name": "HectorIntroRequirement",
      "Value": "SnS.Ch2.Hector.1/e SnS.Ch1.Mateo.14/t 0800 2200/F",
      "When": {
        "SkipIntroQuest": true
      }
    },
    {
      "Name": "HectorRomance",
      "Value": "Romantic",
      "When": {
        "Relationship:Hector |contains=Dating": true
      }
    },
    {
      "Name": "HectorRomance",
      "Value": "Platonic",
      "When": {
        "Relationship:Hector |contains=Dating, Engaged, Married": false
      }
    },
    {
      "Name": "HectorRelationshipStatus",
      "Value": "false",
      "When": {
        "HasFlag |contains=HectorRomanticFlag": false
      }
    },
    {
      "Name": "HectorRelationshipStatus",
      "Value": "true",
      "When": {
        "HasFlag |contains=HectorRomanticFlag": true
      }
    },
    {
      "Name": "CirrusRelationshipStatus",
      "Value": "false",
      "When": {
        "HasFlag |contains=CirrusRomanticFlag": false
      }
    },
    {
      "Name": "CirrusRelationshipStatus",
      "Value": "true",
      "When": {
        "HasFlag |contains=CirrusRomanticFlag": true
      }
    },
    {
      "Name": "CirrusRomance",
      "Value": "Romantic",
      "When": {
        "Relationship:Cirrus |contains=Dating": true
      }
    },
    {
      "Name": "CirrusRomance",
      "Value": "Platonic",
      "When": {
        "Relationship:Cirrus |contains=Dating, Engaged, Married": false
      }
    },
    {
      "Name": "TrueName",
      "Value": "{{i18n:Core.Hector.Name}}",
      "When": {
        "HasSeenEvent |contains=SnS.Ch2.Hector.16": false
      }
    },
    {
      "Name": "TrueName",
      "Value": "{{i18n:Core.Biróg.Name}}",
      "When": {
        "HasSeenEvent |contains=SnS.Ch2.Hector.16": true
      }
    },
    {
      "Name": "TrueShape",
      "Value": "{{Random: male, female|key=hector-gender}}",
      "When": {
        "HasSeenEvent |contains=SnS.Ch2.Hector.16": false
      }
    },
    {
      "Name": "TrueShape",
      "Value": "{{Random: male, female, trueshape|key=hector-gender}}",
      "When": {
        "HasSeenEvent |contains=SnS.Ch2.Hector.16": true
      }
    },
    {
      "Name": "MateoNickname",
      "Value": "@",
      "When": {
        "Relationship:Mateo |contains=Dating, Engaged, Married": false
      }
    },
    {
      "Name": "MateoNickname",
      "Value": "Sunshine",
      "When": {
        "Relationship:Mateo |contains=Dating, Engaged, Married": true
      }
    },
    {
      "Name": "CirrusIntro_EnD_Setup",
      "Value": "farmer 23 18 2 Hector 24 19 3 Mateo 22 19 1 Cirrus 33 18 2 Sam 33 20 0 Abigail 34 19 0 Sebastian 32 19 0 Gus 13 18 2 Emily 17 17 0 Willy 17 22 2 Clint 19 23 3 Pierre 11 20 0 Shane 21 17 2 Pam 7 18 1 Leah 2 20 1 Elliott 4 19 2 Harvey 18 20 0 Marnie 8 22 3 Lewis 9 22 1"
    },
    {
      "Name": "CirrusIntro_EnD_Setup",
      "Value": "{{CirrusIntro_EnD_Setup}} Nova.Eli -999 -999 0 Nova.Dylan -999 -999 0",
      "When": {
        "HasMod: |contains=TenebrousNova.EliDylan.CP": true
      }
    },
    {
      "Name": "CirrusIntro_EnD",
      "Value": "pause 200/emote Cirrus 40/pause 200/speak Cirrus \"Sure! I'm actually staying in East Scarp...$1\"/globalFade/viewport -999 -999/speak Hector \"Excellent! An excuse to get out of here!$9\"/speak Mateo \"Oh, come on, Biróg. Be nice.\"/speak Cirrus \"No, actually, I agree with them.$6\"/message \"Cirrus seemed a little nervous at first, but warmed up in the company of you, Mateo & Biróg. You walk her safely back to her van, parked near one of East Scarp's gardens, and part ways for the night.\"/end"
    },
    {
      "Name": "CirrusIntro_EnD",
      "Value": "pause 200/playSound doorClose/warp Nova.Eli 14 23/speed Nova.Eli 5/advancedMove Nova.Eli false 0 -2 12 0 0 -2 5 0 0 -1 1 10/pause 1000/textAboveHead Nova.Eli \"SHE'S HERE!! Come on Dylan!\" true/faceDirection Clint 0/emote Clint 16 true/playSound doorClose/faceDirection Harvey 1/warp Nova.Dylan 14 23/speed Nova.Dylan 4/advancedMove Nova.Dylan false 0 -2 12 0 0 -2 5 0 1 10/faceDirection Cirrus 3/emote Cirrus 16 true/pause 250/textAboveHead Nova.Dylan \"Slow down, idiot!\" true/faceDirection Mateo 3/emote Mateo 8/faceDirection Harvey 0/advancedMove Mateo false 0 1 4 10/faceDirection Clint 3/pause 2000/shake Nova.Eli 1000/pause 1000/speak Nova.Eli \"Holy shit. It's really you!$7\"/speak Cirrus \"In the flesh!$1\"/pause 500/playSound throw true/positionOffset Nova.Eli 110 0/showFrame Nova.Eli 28/showFrame Cirrus 28/emote Nova.Eli 20 true/pause 500/emote Nova.Dylan 32/shake Nova.Eli 1000 true/shake Cirrus 1000/pause 1000/speak Nova.Eli \"I've missed you SO much! You're looking fantastic!$3\"/showFrame Nova.Eli 4 true/playSound dwop/shake Nova.Eli 200/warp Nova.Eli 32 18/pause 500/speak Mateo \"You two know each other?$36\"/faceDirection Cirrus 2 true/faceDirection Nova.Eli 2/emote Cirrus 60/speak Nova.Eli \"You could say that! Cirrus is our best mate, we go way back.$12#$b#We were meant to be waiting for her but Dylan slowed us down.$10\"/emote Nova.Dylan 16 true/jump Nova.Dylan/speak Nova.Dylan \"Excuse me? *I* slowed us down?? You're the one who was so anxious that you spilled coffee everywhere, which I had to mop up!$7\"/textAboveHead Hector \"Ehehehe!\"/advancedMove Cirrus false 0 1 -1 0 3 10/faceDirection farmer 3/pause 1500/speak Cirrus \"I missed you too, Dylan! Can I get a hug from you as well?$1\"/speak Nova.Dylan \"Oh go on then, if you must... it's good to see you again, Cirrus.$3\"/pause 250/positionOffset Cirrus -40 0/showFrame Nova.Dylan 28/showFrame Cirrus 28/shake Nova.Dylan 1000 true/shake Cirrus 1000 true/emote Nova.Eli 32 true/pause 250/emote farmer 32/showFrame Nova.Dylan 4 true/playSound dwop/shake Cirrus 200/warp Cirrus 32 19/250/speak Hector \"I guess we don't need to walk you to the Scarp after all, then?$0\"/faceDirection Cirrus 1/faceDirection farmer 0/speak Cirrus \"I should be good! Eli and Dylan offered to bring me to their place.$0\"/speak Nova.Dylan \"You and Mateo can feel free to join us, though. It sounded like you were getting on well with Cirrus before we showed up.$1\"/jump Nova.Eli/speak Nova.Eli \"Yeah! We can ask Gus for a few pizzas to go and put on a movie when we get home. How does that sound?$1\"/emote Hector 32 true/speak Mateo \"That sounds nice, actually. I'm game for it.$1\"/jump Hector/speak Hector \"Excellent! An excuse to get out of here!$9\"/speak Mateo \"Oh, come on, Biróg. Be nice.\"/speak Cirrus \"No, actually, I agree with them.$6\"/globalFade/viewport -999 -999/playSound doorClose/pause 1000/speak Sam \"No way! How come THEY get to hug her?!$8\"/speak Abigail \"Right?? Eli never told me he's besties with THE Cirrus!$7\"/speak Sebastian \"...$2\"/message \"Cirrus seemed a little nervous at first, but warmed up in the company of you, Mateo, Biróg and her best friends. Her van is parked in front of the Moray brother's house, and you have a fun time at the impromptu party.\"/end",
      "When": {
        "HasMod: |contains=TenebrousNova.EliDylan.CP": true
      }
    },
    {
      "Name": "CirrusSong1",
      "Value": "try looking at the sun. Keep your head high, and everything is alright.",
      "When": {
        "HasFlag |contains=CirrusSong1A": true
      }
    },
    {
      "Name": "CirrusSong1",
      "Value": "look into the blue sky, and your feelings might be soaked up in it's vastness.",
      "When": {
        "HasFlag |contains=CirrusSong1B": true
      }
    },
    {
      "Name": "CirrusSong2",
      "Value": "you might be able to find the answers that you want above the clouds.",
      "When": {
        "HasFlag |contains=CirrusSong2A": true
      }
    },
    {
      "Name": "CirrusSong2",
      "Value": "you might find that answers you want in the light of the moon.",
      "When": {
        "HasFlag |contains=CirrusSong2B": true
      }
    },
    {
      "Name": "CirrusSong3",
      "Value": "Be free of your mind, and let it flow.",
      "When": {
        "HasFlag |contains=CirrusSong3A": true
      }
    },
    {
      "Name": "CirrusSong3",
      "Value": "Open up your heart, and let things go.",
      "When": {
        "HasFlag |contains=CirrusSong3B": true
      }
    },
    //TRUESHAPE: FALSE
    {
      "Name": "HectorPN1", // He | She
      "Value": "{{Random: {{i18n:Core.HectorPN.M.1}}, {{i18n:Core.HectorPN.F.1}}|key=hector-gender}}",
      "When": {
        "HasSeenEvent |contains=SnS.Ch2.Hector.16": false
      }
    },
    {
      "Name": "HectorPN2", // Him | Her
      "Value": "{{Random: {{i18n:Core.HectorPN.M.2}}, {{i18n:Core.HectorPN.F.2}}|key=hector-gender}}",
      "When": {
        "HasSeenEvent |contains=SnS.Ch2.Hector.16": false
      }
    },
    {
      "Name": "HectorPN3", // His | Hers
      "Value": "{{Random: {{i18n:Core.HectorPN.M.3}}, {{i18n:Core.HectorPN.F.3}}|key=hector-gender}}",
      "When": {
        "HasSeenEvent |contains=SnS.Ch2.Hector.16": false
      }
    },
    {
      "Name": "HectorPN4", // Himself | Herself
      "Value": "{{Random: {{i18n:Core.HectorPN.M.4}}, {{i18n:Core.HectorPN.F.4}}|key=hector-gender}}",
      "When": {
        "HasSeenEvent |contains=SnS.Ch2.Hector.16": false
      }
    },
    //TRUESHAPE: TRUE
    {
      "Name": "HectorPN1", // He | She
      "Value": "{{Random: {{i18n:Core.HectorPN.M.1}}, {{i18n:Core.HectorPN.F.1}}, {{i18n:Core.HectorPN.F.1}}|key=hector-gender}}",
      "When": {
        "HasSeenEvent |contains=SnS.Ch2.Hector.16": true
      }
    },
    {
      "Name": "HectorPN2", // Him | Her
      "Value": "{{Random: {{i18n:Core.HectorPN.M.2}}, {{i18n:Core.HectorPN.F.2}}, {{i18n:Core.HectorPN.F.2}}|key=hector-gender}}",
      "When": {
        "HasSeenEvent |contains=SnS.Ch2.Hector.16": true
      }
    },
    {
      "Name": "HectorPN3", // His | Hers
      "Value": "{{Random: {{i18n:Core.HectorPN.M.3}}, {{i18n:Core.HectorPN.F.3}}, {{i18n:Core.HectorPN.F.3}}|key=hector-gender}}",
      "When": {
        "HasSeenEvent |contains=SnS.Ch2.Hector.16": true
      }
    },
    {
      "Name": "HectorPN4", // Himself | Herself
      "Value": "{{Random: {{i18n:Core.HectorPN.M.4}}, {{i18n:Core.HectorPN.F.4}}, {{i18n:Core.HectorPN.F.4}}|key=hector-gender}}",
      "When": {
        "HasSeenEvent |contains=SnS.Ch2.Hector.16": true
      }
    },
    {
      "Name": "HectorPronouns",
      "Value": "|HPN1={{HectorPN1}} |HPN2={{HectorPN2}} |HPN3={{HectorPN3}} |HPN4={{HectorPN4}}"
    },
    {
      "Name": "DynamicDnDClass",
      "Value": "Wizard",
      "When": {
        "HasFlag |contains=DnDWizard": true
      }
    },
    {
      "Name": "DnDClassQQ",
      "Value": "It's Wizard time. I cast FIREBALL!",
      "When": {
        "HasFlag |contains=DnDWizard": true
      }
    },
    {
      "Name": "DnDClassResponse",
      "Value": "The Count's side of the room is engulfed in flames. Thankfully, it's large enough that your party members aren't impacted.$13",
      "When": {
        "HasFlag |contains=DnDWizard": true
      }
    },
    {
      "Name": "DynamicDnDClass",
      "Value": "Ranger",
      "When": {
        "HasFlag |contains=DnDRanger": true
      }
    },
    {
      "Name": "DnDClassQQ",
      "Value": "I send my miniature giant space hamster after Brahd, then nock an arrow and shoot it at him while he's distracted!",
      "When": {
        "HasFlag |contains=DnDRanger": true
      }
    },
    {
      "Name": "DnDClassResponse",
      "Value": "The Count is distracted by the absurdity of your animal companion, and takes your arrow straight to the chest.$13",
      "When": {
        "HasFlag |contains=DnDRanger": true
      }
    },
    {
      "Name": "DynamicDnDClass",
      "Value": "Paladin",
      "When": {
        "HasFlag |contains=Paladin": true
      }
    },
    {
      "Name": "DnDClassQQ",
      "Value": "I charge at Brahd, bashing him with my shield for the first attack and smiting him for the second!",
      "When": {
        "HasFlag |contains=DnDPaladin": true
      }
    },
    {
      "Name": "DnDClassResponse",
      "Value": "He reels back! You got him right in the eye with the corner of the shield, and slashed his chest real good citing the power of your oath.$13",
      "When": {
        "HasFlag |contains=DnDPaladin": true
      }
    },
    {
      "Name": "DynamicDnDClass",
      "Value": "Bard",
      "When": {
        "HasFlag |contains=DnDBard": true
      }
    },
    {
      "Name": "DnDClassQQ",
      "Value": "I open by viciously mocking Brahd: 'I hate to judge a book by its cover, but you look all cover and no pages.'",
      "When": {
        "HasFlag |contains=DnDBard": true
      }
    },
    {
      "Name": "DnDClassResponse",
      "Value": "The Count, who's basically never had his feelings hurt by a mere mortal, is so flabbergasted that he's unable to do anything but process what you just said.$13",
      "When": {
        "HasFlag |contains=DnDBard": true
      }
    },
    {
      "Name": "DynamicDnDClass",
      "Value": "Cleric",
      "When": {
        "HasFlag |contains=DnDCleric": true
      }
    },
    {
      "Name": "DnDClassQQ",
      "Value": "I point my mace at Brahd, calling on my patron, The God of Light, to intervene!",
      "When": {
        "HasFlag |contains=DnDCleric": true
      }
    },
    {
      "Name": "DnDClassResponse",
      "Value": "Your God completely reinvigorates your entire party, and newly lent strength courses through everyone.$13",
      "When": {
        "HasFlag |contains=DnDCleric": true
      }
    },
    {
      "Name": "DynamicDnDClass",
      "Value": "Rogue",
      "When": {
        "HasFlag |contains=DnDRogue": true
      }
    },
    {
      "Name": "DnDClassQQ",
      "Value": "I meld with the darkness and move from shadow to shadow to sneak around Brahd, and attack him from behind!",
      "When": {
        "HasFlag |contains=DnDRogue": true
      }
    },
    {
      "Name": "DnDClassResponse",
      "Value": "You're able to step from the shadows right behind Brahd, getting him clean in the ribs with your daggers.$13",
      "When": {
        "HasFlag |contains=DnDRogue": true
      }
    },
    {
      "Name": "CirrusFlirt1",
      "Value": "Hey, @!$1",
      "When": {
        "HasFlag |contains=CirrusFlirt": false
      }
    },
    {
      "Name": "CirrusFlirt1",
      "Value": "Hey, sweet thing!$24",
      "When": {
        "HasFlag |contains=CirrusFlirt": true
      }
    },
    {
      "Name": "CirrusFlirt2",
      "Value": "Thanks for everything, @. Really. This wouldn't be the same without you.$6",
      "When": {
        "HasFlag |contains=CirrusFlirt": false
      }
    },
    {
      "Name": "CirrusFlirt2",
      "Value": "Thanks for everything, @. Maybe I can show my appreciation once everyone clears out.$24",
      "When": {
        "HasFlag |contains=CirrusFlirt": true
      }
    },
    {
      "Name": "CirrusFlirt3",
      "Value": "It means a lot, coming from you. You packed up and moved here, completely starting over... it was inspiring, really. Gave me the courage to do something similar.$1",
      "When": {
        "HasFlag |contains=CirrusFlirt": false
      }
    },
    {
      "Name": "CirrusFlirt3",
      "Value": "I'm proud of myself, too. But, ya'know, happiness is starting to look pretty you-shaped...$23",
      "When": {
        "HasFlag |contains=CirrusFlirt": true
      }
    },
    {
      "Name": "CirrusFlirt4",
      "Value": "fade/viewport -1000 -1000/message \"Half of The Lion's Mane is open for business, and everyone involved seems in good spirits!\"",
      "When": {
        "HasFlag |contains=CirrusFlirt": false
      }
    },
    {
      "Name": "CirrusFlirt4",
      "Value": "I'm proud of myself, too. But, ya'know, happiness is starting to look pretty you-shaped...$23",
      "When": {
        "HasFlag |contains=CirrusFlirt": true
      }
    },
    {
      "Name": "Cirrus10HEnding",
      "Value": "speak Cirrus \"Thank you for everything, @. If it was for you and your friends - sorry, our friends - I don't think any of this would've fallen into place.$17#$b#For the first time in ages, I feel passionate about music again... genuinely! Not just performatively for my job, or because of expectations I set for myself...$11#$b#I'm going to make good on these powers. Hone them to a sharp point! And you too, @! We'll do this together!$10\"/end",
      "When": {
        "Relationship:Cirrus |contains=Dating, Engaged, Married": false
      }
    },
    {
      "Name": "Cirrus10HEnding",
      "Value": "message \"Mateo and Biróg bid you both farewell for the evening.\"/warp Mateo -100 -100 true/warp Hector -100 -100 true/warp Cirrus 26 30 true/showFrame Cirrus 0 true/faceDirection Cirrus 2 true/warp farmer 26 31 true/faceDirection farmer 2 true/stopAnimation Cirrus/viewport 26 27/advancedMove farmer false 0 2 2 10/textAboveHead Cirrus \"Wait, Rockstar-\"/emote farmer 8/waitForAllStationary/advancedMove farmer false 0 -2 4 10/pause 500/speak Cirrus \"Kiss me before you go.$23\"/pause 500/positionOffset farmer 0 -4/pause 5/positionOffset farmer 0 -4/pause 5/positionOffset farmer 0 -4/showFrame farmer 15/specificTemporarySprite heart 26 28/showFrame Cirrus 39/pause 2000/fade/viewport -1000 -1000/speak Cirrus \"Now that I've got you, I don't want to let you go...$25\"/quickQuestion Stay the night? #Yes! (End the day). #I wish I could, but... (End the event).(break)\\warp farmer 18 5 true\\faceDirection farmer 1 true\\warp Cirrus 20 5 true\\faceDirection Cirrus 3 true\\positionOffset farmer 40 0 true\\positionOffset farmer 0 20 true\\positionOffset Cirrus -40 0 true\\changePortrait Cirrus beach\\changeSprite Cirrus beach\\globalFadeToClear\\viewport 27 14\\speak Cirrus \"@, you're very easy to love. Your actions speak so loudly, and they're always so kind.$4#$b#We'll master Bardics together. And that's not all - I see a future with you, @. You make me really happy, and I hope you feel the same.$23\"\\animate Cirrus false true 100 28 28\\animate farmer false true 100 101 101\\specificTemporarySprite heart 19 3\\positionOffset Cirrus -2 0\\positionOffset farmer 2 0\\pause 100\\positionOffset Cirrus -2 0\\positionOffset farmer 2 0\\positionOffset Cirrus -2 0\\positionOffset farmer 2 0\\pause 2500\\fade\\viewport -1000 -1000\\end newDay(break)speak Cirrus \"That's okay, babe. I know you're busy - there's always, always gonna be a next time. Good night, get home safe. Love you.$23\"\\end",
      "When": {
        "Relationship:Cirrus |contains=Dating, Engaged, Married": true
      }
    },
    /*"CirrusRainbowHair": {
      "AllowValues": "Random, Red, Orange, Yellow, Blue",
      "Default": "Blue",
      "AllowBlank": false,
      "AllowMultiple": false,
      "Description": "Gives Cirrus a variety of dyed hair colors, or optionally choose a static one.",
      "Section": "Overlays"
    }*/
    {
      "Name": "CirrusHairColor",
      "Value": "{{Random: Brown, Red, Orange, Yellow, Blue |key=CirrusHair}}",
      "When": {
        "CirrusRainbowHair": "random"
      }
    },
    {
      "Name": "CirrusHairColor1",
      "Value": "{{CirrusRainbowHair}}",
      "When": {
        "CirrusRainbowHair |contains=random": false
      }
    },
    {
      "Name": "CirrusHairColor",
      "Value": "Brown",
      "When": {
        "CirrusHealthyHairHabits": true,
        "HasFlag": "SnS.Flag.CirrusHairColor.Brown"
      }
    },
    {
      "Name": "CirrusHairColor",
      "Value": "Red",
      "When": {
        "CirrusHealthyHairHabits": true,
        "HasFlag": "SnS.Flag.CirrusHairColor.Red"
      }
    },
    {
      "Name": "CirrusHairColor",
      "Value": "Orange",
      "When": {
        "CirrusHealthyHairHabits": true,
        "HasFlag": "SnS.Flag.CirrusHairColor.Orange"
      }
    },
    {
      "Name": "CirrusHairColor",
      "Value": "Yellow",
      "When": {
        "CirrusHealthyHairHabits": true,
        "HasFlag": "SnS.Flag.CirrusHairColor.Yellow"
      }
    },
    {
      "Name": "CirrusHairColor",
      "Value": "Blue",
      "When": {
        "CirrusHealthyHairHabits": true,
        "HasFlag": "SnS.Flag.CirrusHairColor.Blue"
      }
    }
  ]
}