Changes

Jump to navigation Jump to search
34,888 bytes added ,  16:40, 3 January 2021
expand, add raw data, copyedit
Line 1: Line 1:  
← [[Modding:Index|Index]]
 
← [[Modding:Index|Index]]
   −
This page explains the basics of Special Orders. This is a guide for mod developers.  
+
[[Special Orders|Special orders]] are a more flexible and customizable [[quest]] system unlocked in late game. Special orders can be added to [[#Raw data|the data file]] with options like duration, repeatability, objectives, and rewards.
 +
 
 +
This page explains how the game stores and uses special orders. This is an advanced guide for mod developers.
    
==Raw data==
 
==Raw data==
Special orders are stored in <tt>Content\Data\SpecialOrders.xnb</tt>, which can be [[Modding:Editing XNB files#unpacking|unpacked for editing]].
+
Special orders are stored in <tt>Content\Data\SpecialOrders.xnb</tt>, which can be [[Modding:Editing XNB files#unpacking|unpacked for editing]]. Here's the raw data as of {{version|1.5.1}}:
 +
{{collapse|Data|content=<source lang="json">
 +
{
 +
  "Willy": {
 +
    "Name": "[Willy_Name]",
 +
    "Requester": "Willy",
 +
    "Duration": "Week",
 +
    "Repeatable": "False",
 +
    "RequiredTags": "",
 +
    "OrderType": "",
 +
    "SpecialRule": "",
 +
    "Text": "[Willy_Text]",
 +
    "ItemToRemoveOnEnd": null,
 +
    "MailToRemoveOnEnd": null,
 +
    "RandomizedElements": null,
 +
    "Objectives": [
 +
      {
 +
        "Type": "Collect",
 +
        "Text": "[Willy_Objective_0_Text]",
 +
        "RequiredCount": "100",
 +
        "Data": {
 +
          "AcceptedContextTags": "item_bug_meat"
 +
        }
 +
      },
 +
      {
 +
        "Type": "Donate",
 +
        "Text": "[Willy_Objective_1_Text]",
 +
        "RequiredCount": "100",
 +
        "Data": {
 +
          "DropBox": "WillyBarrel",
 +
          "DropBoxGameLocation": "Beach",
 +
          "DropBoxIndicatorLocation": "37 32",
 +
          "AcceptedContextTags": "item_bug_meat"
 +
        }
 +
      }
 +
    ],
 +
    "Rewards": [
 +
      {
 +
        "Type": "Money",
 +
        "Data": {
 +
          "Amount": "3000"
 +
        }
 +
      },
 +
      {
 +
        "Type": "Mail",
 +
        "Data": {
 +
          "MailReceived": "willyBugWadCutscene"
 +
        }
 +
      }
 +
    ]
 +
  },
 +
  "Pam": {
 +
    "Name": "[Pam_Name]",
 +
    "Requester": "Pam",
 +
    "Duration": "TwoWeeks",
 +
    "Repeatable": "False",
 +
    "RequiredTags": "season_spring",
 +
    "OrderType": "",
 +
    "SpecialRule": "",
 +
    "Text": "[Pam_Text]",
 +
    "ItemToRemoveOnEnd": null,
 +
    "MailToRemoveOnEnd": null,
 +
    "RandomizedElements": null,
 +
    "Objectives": [
 +
      {
 +
        "Type": "Collect",
 +
        "Text": "[Pam_Objective_0_Text]",
 +
        "RequiredCount": "12",
 +
        "Data": {
 +
          "AcceptedContextTags": "juice_item, preserve_sheet_index_192"
 +
        }
 +
      },
 +
      {
 +
        "Type": "Donate",
 +
        "Text": "[Pam_Objective_1_Text]",
 +
        "RequiredCount": "12",
 +
        "Data": {
 +
          "DropBox": "PamKitchen",
 +
          "DropBoxGameLocation": "Trailer",
 +
          "DropBoxIndicatorLocation": "10 5",
 +
          "AcceptedContextTags": "juice_item, preserve_sheet_index_192"
 +
        }
 +
      }
 +
    ],
 +
    "Rewards": [
 +
      {
 +
        "Type": "Money",
 +
        "Data": {
 +
          "Amount": "3000"
 +
        }
 +
      },
 +
      {
 +
        "Type": "Mail",
 +
        "Data": {
 +
          "MailReceived": "pamPotatoJuice"
 +
        }
 +
      },
 +
      {
 +
        "Type": "Friendship",
 +
        "Data": {}
 +
      }
 +
    ]
 +
  },
 +
  "Pierre": {
 +
    "Name": "[Pierre_Name]",
 +
    "Requester": "Pierre",
 +
    "Duration": "Month",
 +
    "Repeatable": "False",
 +
    "RequiredTags": "",
 +
    "OrderType": "",
 +
    "SpecialRule": "",
 +
    "Text": "[Pierre_Text]",
 +
    "ItemToRemoveOnEnd": null,
 +
    "MailToRemoveOnEnd": null,
 +
    "RandomizedElements": null,
 +
    "Objectives": [
 +
      {
 +
        "Type": "Collect",
 +
        "Text": "[Pierre_Objective_0_Text]",
 +
        "RequiredCount": "25",
 +
        "Data": {
 +
          "AcceptedContextTags": "!forage_item, category_vegetable, quality_gold"
 +
        }
 +
      },
 +
      {
 +
        "Type": "Donate",
 +
        "Text": "[Pierre_Objective_1_Text]",
 +
        "RequiredCount": "25",
 +
        "Data": {
 +
          "DropBox": "PierreBox",
 +
          "DropBoxGameLocation": "SeedShop",
 +
          "DropBoxIndicatorLocation": "18.5 27",
 +
          "AcceptedContextTags": "!forage_item, category_vegetable, quality_gold"
 +
        }
 +
      }
 +
    ],
 +
    "Rewards": [
 +
      {
 +
        "Type": "Money",
 +
        "Data": {
 +
          "Amount": "2500"
 +
        }
 +
      },
 +
      {
 +
        "Type": "Mail",
 +
        "Data": {
 +
          "MailReceived": "pierreQualityCrops"
 +
        }
 +
      }
 +
    ]
 +
  },
 +
  "Robin": {
 +
    "Name": "[Robin_Name]",
 +
    "Requester": "Robin",
 +
    "Duration": "Week",
 +
    "Repeatable": "False",
 +
    "RequiredTags": "",
 +
    "OrderType": "",
 +
    "SpecialRule": "",
 +
    "Text": "[Robin_Text]",
 +
    "ItemToRemoveOnEnd": null,
 +
    "MailToRemoveOnEnd": null,
 +
    "RandomizedElements": null,
 +
    "Objectives": [
 +
      {
 +
        "Type": "Collect",
 +
        "Text": "[Robin_Objective_0_Text]",
 +
        "RequiredCount": "80",
 +
        "Data": {
 +
          "AcceptedContextTags": "item_hardwood"
 +
        }
 +
      },
 +
      {
 +
        "Type": "Donate",
 +
        "Text": "[Robin_Objective_1_Text]",
 +
        "RequiredCount": "80",
 +
        "Data": {
 +
          "DropBox": "RobinWood",
 +
          "DropBoxGameLocation": "ScienceHouse",
 +
          "DropBoxIndicatorLocation": "10.5 18",
 +
          "AcceptedContextTags": "item_hardwood"
 +
        }
 +
      }
 +
    ],
 +
    "Rewards": [
 +
      {
 +
        "Type": "Money",
 +
        "Data": {
 +
          "Amount": "2000"
 +
        }
 +
      },
 +
      {
 +
        "Type": "Mail",
 +
        "Data": {
 +
          "MailReceived": "robinDeluxeBed"
 +
        }
 +
      },
 +
      {
 +
        "Type": "Friendship",
 +
        "Data": {}
 +
      }
 +
    ]
 +
  },
 +
  "Emily": {
 +
    "Name": "[Emily_Name]",
 +
    "Requester": "Emily",
 +
    "Duration": "Week",
 +
    "Repeatable": "False",
 +
    "RequiredTags": "event_992559",
 +
    "OrderType": "",
 +
    "SpecialRule": "",
 +
    "Text": "[Emily_Text]",
 +
    "ItemToRemoveOnEnd": null,
 +
    "MailToRemoveOnEnd": null,
 +
    "RandomizedElements": null,
 +
    "Objectives": [
 +
      {
 +
        "Type": "Deliver",
 +
        "Text": "[Emily_Objective_0_Text]",
 +
        "RequiredCount": "1",
 +
        "Data": {
 +
          "AcceptedContextTags": "item_ruby",
 +
          "TargetName": "Emily"
 +
        }
 +
      },
 +
      {
 +
        "Type": "Deliver",
 +
        "Text": "[Emily_Objective_1_Text]",
 +
        "RequiredCount": "1",
 +
        "Data": {
 +
          "AcceptedContextTags": "item_topaz",
 +
          "TargetName": "Emily"
 +
        }
 +
      },
 +
      {
 +
        "Type": "Deliver",
 +
        "Text": "[Emily_Objective_2_Text]",
 +
        "RequiredCount": "1",
 +
        "Data": {
 +
          "AcceptedContextTags": "item_emerald",
 +
          "TargetName": "Emily"
 +
        }
 +
      },
 +
      {
 +
        "Type": "Deliver",
 +
        "Text": "[Emily_Objective_3_Text]",
 +
        "RequiredCount": "1",
 +
        "Data": {
 +
          "AcceptedContextTags": "item_jade",
 +
          "TargetName": "Emily"
 +
        }
 +
      },
 +
      {
 +
        "Type": "Deliver",
 +
        "Text": "[Emily_Objective_4_Text]",
 +
        "RequiredCount": "1",
 +
        "Data": {
 +
          "AcceptedContextTags": "item_amethyst",
 +
          "TargetName": "Emily"
 +
        }
 +
      }
 +
    ],
 +
    "Rewards": [
 +
      {
 +
        "Type": "Money",
 +
        "Data": {
 +
          "Amount": "1000"
 +
        }
 +
      },
 +
      {
 +
        "Type": "Friendship",
 +
        "Data": {}
 +
      },
 +
      {
 +
        "Type": "Mail",
 +
        "Data": {
 +
          "MailReceived": "emilyStones",
 +
          "NoLetter": "false"
 +
        }
 +
      }
 +
    ]
 +
  },
 +
  "Demetrius": {
 +
    "Name": "[Demetrius_Name]",
 +
    "Requester": "Demetrius",
 +
    "Duration": "Week",
 +
    "Repeatable": "True",
 +
    "RequiredTags": "",
 +
    "OrderType": "",
 +
    "SpecialRule": "",
 +
    "Text": "[Demetrius_Text]",
 +
    "ItemToRemoveOnEnd": null,
 +
    "MailToRemoveOnEnd": null,
 +
    "RandomizedElements": [
 +
      {
 +
        "Name": "FishType",
 +
        "Values": [
 +
          {
 +
            "RequiredTags": "season_spring",
 +
            "Value": "PICK_ITEM Sunfish, Sardine, Flounder, Largemouth Bass, Halibut"
 +
          },
 +
          {
 +
            "RequiredTags": "season_summer",
 +
            "Value": "PICK_ITEM Rainbow Trout, Dorado, Tilapia, Tuna, Red Mullet"
 +
          },
 +
          {
 +
            "RequiredTags": "season_fall",
 +
            "Value": "PICK_ITEM Tiger Trout, Albacore, Midnight Carp, Salmon"
 +
          },
 +
          {
 +
            "RequiredTags": "season_winter",
 +
            "Value": "PICK_ITEM Squid, Perch, Lingcod"
 +
          }
 +
        ]
 +
      }
 +
    ],
 +
    "Objectives": [
 +
      {
 +
        "Type": "Fish",
 +
        "Text": "[Demetrius_Objective_0_Text]",
 +
        "RequiredCount": "10",
 +
        "Data": {
 +
          "AcceptedContextTags": "{FishType:Tags}"
 +
        }
 +
      }
 +
    ],
 +
    "Rewards": [
 +
      {
 +
        "Type": "Money",
 +
        "Data": {
 +
          "Amount": "{FishType:Price}",
 +
          "Multiplier": "10"
 +
        }
 +
      },
 +
      {
 +
        "Type": "Mail",
 +
        "Data": {
 +
          "MailReceived": "DemetriusReward",
 +
          "NoLetter": "false"
 +
        }
 +
      }
 +
    ]
 +
  },
 +
  "Demetrius2": {
 +
    "Name": "[Demetrius2_Name]",
 +
    "Requester": "Demetrius",
 +
    "Duration": "Week",
 +
    "Repeatable": "True",
 +
    "RequiredTags": "",
 +
    "OrderType": "",
 +
    "SpecialRule": "",
 +
    "Text": "[Demetrius2_Text]",
 +
    "ItemToRemoveOnEnd": null,
 +
    "MailToRemoveOnEnd": null,
 +
    "RandomizedElements": [
 +
      {
 +
        "Name": "FishType",
 +
        "Values": [
 +
          {
 +
            "RequiredTags": "",
 +
            "Value": "Text|[Demetrius2_RE_FishType_0_Text]|Tags|fish_river"
 +
          },
 +
          {
 +
            "RequiredTags": "",
 +
            "Value": "Text|[Demetrius2_RE_FishType_1_Text]|Tags|fish_ocean"
 +
          },
 +
          {
 +
            "RequiredTags": "",
 +
            "Value": "Text|[Demetrius2_RE_FishType_2_Text]|Tags|fish_lake"
 +
          }
 +
        ]
 +
      }
 +
    ],
 +
    "Objectives": [
 +
      {
 +
        "Type": "Fish",
 +
        "Text": "[Demetrius2_Objective_0_Text]",
 +
        "RequiredCount": "20",
 +
        "Data": {
 +
          "AcceptedContextTags": "{FishType:Tags}"
 +
        }
 +
      }
 +
    ],
 +
    "Rewards": [
 +
      {
 +
        "Type": "Money",
 +
        "Data": {
 +
          "Amount": "1500"
 +
        }
 +
      },
 +
      {
 +
        "Type": "Mail",
 +
        "Data": {
 +
          "MailReceived": "DemetriusReward",
 +
          "NoLetter": "false"
 +
        }
 +
      }
 +
    ]
 +
  },
 +
  "Gus": {
 +
    "Name": "[Gus_Name]",
 +
    "Requester": "Gus",
 +
    "Duration": "TwoWeeks",
 +
    "Repeatable": "True",
 +
    "RequiredTags": "",
 +
    "OrderType": "",
 +
    "SpecialRule": "",
 +
    "Text": "[Gus_Text]",
 +
    "ItemToRemoveOnEnd": null,
 +
    "MailToRemoveOnEnd": null,
 +
    "RandomizedElements": [
 +
      {
 +
        "Name": "Greeting",
 +
        "Values": [
 +
          {
 +
            "RequiredTags": "!mail_gusGiantOmelet",
 +
            "Value": "[Gus_RE_Greeting_0]"
 +
          },
 +
          {
 +
            "RequiredTags": "mail_gusGiantOmelet",
 +
            "Value": "[Gus_RE_Greeting_1]"
 +
          }
 +
        ]
 +
      }
 +
    ],
 +
    "Objectives": [
 +
      {
 +
        "Type": "Collect",
 +
        "Text": "[Gus_Objective_0_Text]",
 +
        "RequiredCount": "24",
 +
        "Data": {
 +
          "AcceptedContextTags": "egg_item"
 +
        }
 +
      },
 +
      {
 +
        "Type": "Donate",
 +
        "Text": "[Gus_Objective_1_Text]",
 +
        "RequiredCount": "24",
 +
        "Data": {
 +
          "DropBox": "GusFridge",
 +
          "DropBoxGameLocation": "Saloon",
 +
          "DropBoxIndicatorLocation": "18 15",
 +
          "MinimumCapacity": "30",
 +
          "AcceptedContextTags": "egg_item"
 +
        }
 +
      }
 +
    ],
 +
    "Rewards": [
 +
      {
 +
        "Type": "Money",
 +
        "Data": {
 +
          "Amount": "3000"
 +
        }
 +
      },
 +
      {
 +
        "Type": "Mail",
 +
        "Data": {
 +
          "MailReceived": "gusGiantOmelet",
 +
          "NoLetter": "false"
 +
        }
 +
      }
 +
    ]
 +
  },
 +
  "Lewis": {
 +
    "Name": "[Lewis_Name]",
 +
    "Requester": "Lewis",
 +
    "Duration": "Month",
 +
    "Repeatable": "True",
 +
    "RequiredTags": "!season_winter",
 +
    "OrderType": "",
 +
    "SpecialRule": "",
 +
    "Text": "[Lewis_Text]",
 +
    "ItemToRemoveOnEnd": null,
 +
    "MailToRemoveOnEnd": null,
 +
    "RandomizedElements": [
 +
      {
 +
        "Name": "Crop",
 +
        "Values": [
 +
          {
 +
            "RequiredTags": "season_spring",
 +
            "Value": "PICK_ITEM Potato, Green Bean, Garlic, Cauliflower"
 +
          },
 +
          {
 +
            "RequiredTags": "season_summer",
 +
            "Value": "PICK_ITEM Tomato, Blueberry, Radish, Melon, Hot Pepper, Wheat"
 +
          },
 +
          {
 +
            "RequiredTags": "season_fall",
 +
            "Value": "PICK_ITEM Pumpkin, Eggplant, Cranberries, Bok Choy, Amaranth, Grape, Yam, Artichoke"
 +
          }
 +
        ]
 +
      },
 +
      {
 +
        "Name": "Text",
 +
        "Values": [
 +
          {
 +
            "RequiredTags": "",
 +
            "Value": "[Lewis_RE_Text_0]"
 +
          },
 +
          {
 +
            "RequiredTags": "",
 +
            "Value": "[Lewis_RE_Text_1]"
 +
          },
 +
          {
 +
            "RequiredTags": "",
 +
            "Value": "[Lewis_RE_Text_2]"
 +
          },
 +
          {
 +
            "RequiredTags": "",
 +
            "Value": "[Lewis_RE_Text_3]"
 +
          },
 +
          {
 +
            "RequiredTags": "",
 +
            "Value": "[Lewis_RE_Text_4]"
 +
          }
 +
        ]
 +
      }
 +
    ],
 +
    "Objectives": [
 +
      {
 +
        "Type": "Collect",
 +
        "Text": "[Lewis_Objective_1_Text]",
 +
        "RequiredCount": "100",
 +
        "Data": {
 +
          "AcceptedContextTags": "{Crop:Tags}"
 +
        }
 +
      },
 +
      {
 +
        "Type": "Ship",
 +
        "Text": "[Lewis_Objective_0_Text]",
 +
        "RequiredCount": "100",
 +
        "Data": {
 +
          "AcceptedContextTags": "{Crop:Tags}"
 +
        }
 +
      }
 +
    ],
 +
    "Rewards": [
 +
      {
 +
        "Type": "Money",
 +
        "Data": {
 +
          "Amount": "{Crop:Price}",
 +
          "Multiplier": "50"
 +
        }
 +
      },
 +
      {
 +
        "Type": "Mail",
 +
        "Data": {
 +
          "MailReceived": "MSB_Lewis",
 +
          "Host": "true",
 +
          "NoLetter": "false"
 +
        }
 +
      }
 +
    ]
 +
  },
 +
  "Wizard": {
 +
    "Name": "[Wizard_Name]",
 +
    "Requester": "Wizard",
 +
    "Duration": "Week",
 +
    "Repeatable": "False",
 +
    "RequiredTags": "",
 +
    "OrderType": "",
 +
    "SpecialRule": "",
 +
    "Text": "[Wizard_Text]",
 +
    "ItemToRemoveOnEnd": "875",
 +
    "MailToRemoveOnEnd": "ectoplasmDrop",
 +
    "RandomizedElements": null,
 +
    "Objectives": [
 +
      {
 +
        "Type": "Deliver",
 +
        "Text": "[Wizard_Objective_0_Text]",
 +
        "RequiredCount": "1",
 +
        "Data": {
 +
          "AcceptedContextTags": "item_ectoplasm",
 +
          "Message": "[Wizard_Objective_0_Message]",
 +
          "TargetName": "Wizard"
 +
        }
 +
      }
 +
    ],
 +
    "Rewards": [
 +
      {
 +
        "Type": "Money",
 +
        "Data": {
 +
          "Amount": "2500"
 +
        }
 +
      },
 +
      {
 +
        "Type": "Mail",
 +
        "Data": {
 +
          "MailReceived": "WizardReward2",
 +
          "NoLetter": "false"
 +
        }
 +
      }
 +
    ]
 +
  },
 +
  "Clint": {
 +
    "Name": "[Clint_Name]",
 +
    "Requester": "Clint",
 +
    "Duration": "Week",
 +
    "Repeatable": "True",
 +
    "RequiredTags": "",
 +
    "OrderType": "",
 +
    "SpecialRule": "",
 +
    "Text": "[Clint_Text]",
 +
    "ItemToRemoveOnEnd": null,
 +
    "MailToRemoveOnEnd": null,
 +
    "RandomizedElements": [
 +
      {
 +
        "Name": "Monster",
 +
        "Values": [
 +
          {
 +
            "RequiredTags": "",
 +
            "Value": "Target|Bat|LocalizedName|[Clint_RE_Monster_0_LocalizedName]"
 +
          },
 +
          {
 +
            "RequiredTags": "",
 +
            "Value": "Target|Dust Spirit|LocalizedName|[Clint_RE_Monster_1_LocalizedName]"
 +
          },
 +
          {
 +
            "RequiredTags": "",
 +
            "Value": "Target|Skeleton|LocalizedName|[Clint_RE_Monster_2_LocalizedName]"
 +
          },
 +
          {
 +
            "RequiredTags": "",
 +
            "Value": "Target|Grub|LocalizedName|[Clint_RE_Monster_3_LocalizedName]"
 +
          }
 +
        ]
 +
      }
 +
    ],
 +
    "Objectives": [
 +
      {
 +
        "Type": "Slay",
 +
        "Text": "[Clint_Objective_0_Text]",
 +
        "RequiredCount": "50",
 +
        "Data": {
 +
          "TargetName": "{Monster:Target}"
 +
        }
 +
      }
 +
    ],
 +
    "Rewards": [
 +
      {
 +
        "Type": "Money",
 +
        "Data": {
 +
          "Amount": "6000"
 +
        }
 +
      },
 +
      {
 +
        "Type": "Mail",
 +
        "Data": {
 +
          "MailReceived": "ClintReward",
 +
          "NoLetter": "false"
 +
        }
 +
      }
 +
    ]
 +
  },
 +
  "Linus": {
 +
    "Name": "[Linus_Name]",
 +
    "Requester": "Linus",
 +
    "Duration": "Week",
 +
    "Repeatable": "False",
 +
    "RequiredTags": "",
 +
    "OrderType": "",
 +
    "SpecialRule": "",
 +
    "Text": "[Linus_Text]",
 +
    "ItemToRemoveOnEnd": null,
 +
    "MailToRemoveOnEnd": null,
 +
    "RandomizedElements": null,
 +
    "Objectives": [
 +
      {
 +
        "Type": "Collect",
 +
        "Text": "[Linus_Objective_0_Text]",
 +
        "RequiredCount": "20",
 +
        "Data": {
 +
          "AcceptedContextTags": "trash_item"
 +
        }
 +
      },
 +
      {
 +
        "Type": "Donate",
 +
        "Text": "[Linus_Objective_1_Text]",
 +
        "RequiredCount": "20",
 +
        "Data": {
 +
          "DropBox": "Dumpster",
 +
          "DropBoxGameLocation": "Railroad",
 +
          "DropBoxIndicatorLocation": "28.5 36",
 +
          "AcceptedContextTags": "trash_item"
 +
        }
 +
      }
 +
    ],
 +
    "Rewards": [
 +
      {
 +
        "Type": "Money",
 +
        "Data": {
 +
          "Amount": "500"
 +
        }
 +
      },
 +
      {
 +
        "Type": "Mail",
 +
        "Data": {
 +
          "MailReceived": "linusTrashCleanup",
 +
          "NoLetter": "false"
 +
        }
 +
      },
 +
      {
 +
        "Type": "Friendship",
 +
        "Data": {}
 +
      }
 +
    ]
 +
  },
 +
  "Evelyn": {
 +
    "Name": "[Evelyn_Name]",
 +
    "Requester": "Evelyn",
 +
    "Duration": "Month",
 +
    "Repeatable": "False",
 +
    "RequiredTags": "season_spring",
 +
    "OrderType": "",
 +
    "SpecialRule": "",
 +
    "Text": "[Evelyn_Text]",
 +
    "ItemToRemoveOnEnd": null,
 +
    "MailToRemoveOnEnd": null,
 +
    "RandomizedElements": null,
 +
    "Objectives": [
 +
      {
 +
        "Type": "Collect",
 +
        "Text": "[Evelyn_Objective_0_Text]",
 +
        "RequiredCount": "12",
 +
        "Data": {
 +
          "AcceptedContextTags": "item_leek"
 +
        }
 +
      },
 +
      {
 +
        "Type": "Donate",
 +
        "Text": "[Evelyn_Objective_1_Text]",
 +
        "RequiredCount": "12",
 +
        "Data": {
 +
          "DropBox": "EvelynKitchen",
 +
          "DropBoxGameLocation": "JoshHouse",
 +
          "DropBoxIndicatorLocation": "3 15",
 +
          "AcceptedContextTags": "item_leek"
 +
        }
 +
      }
 +
    ],
 +
    "Rewards": [
 +
      {
 +
        "Type": "Money",
 +
        "Data": {
 +
          "Amount": "2000"
 +
        }
 +
      },
 +
      {
 +
        "Type": "Mail",
 +
        "Data": {
 +
          "MailReceived": "georgeGifts",
 +
          "NoLetter": "false"
 +
        }
 +
      }
 +
    ]
 +
  },
 +
  "Wizard2": {
 +
    "Name": "[Wizard2_Name]",
 +
    "Requester": "Wizard",
 +
    "Duration": "Week",
 +
    "Repeatable": "False",
 +
    "RequiredTags": "",
 +
    "OrderType": "",
 +
    "SpecialRule": "",
 +
    "Text": "[Wizard2_Text]",
 +
    "ItemToRemoveOnEnd": "876",
 +
    "MailToRemoveOnEnd": "prismaticJellyDrop",
 +
    "RandomizedElements": null,
 +
    "Objectives": [
 +
      {
 +
        "Type": "Slay",
 +
        "Text": "[Wizard2_Objective_0_Text]",
 +
        "RequiredCount": "1",
 +
        "Data": {
 +
          "TargetName": "Prismatic Slime"
 +
        }
 +
      },
 +
      {
 +
        "Type": "Deliver",
 +
        "Text": "[Wizard2_Objective_1_Text]",
 +
        "RequiredCount": "1",
 +
        "Data": {
 +
          "AcceptedContextTags": "item_prismatic_jelly",
 +
          "TargetName": "Wizard",
 +
          "Message": "[Wizard2_Objective_1_Message]"
 +
        }
 +
      }
 +
    ],
 +
    "Rewards": [
 +
      {
 +
        "Type": "Money",
 +
        "Data": {
 +
          "Amount": "5000"
 +
        }
 +
      },
 +
      {
 +
        "Type": "Mail",
 +
        "Data": {
 +
          "MailReceived": "WizardReward",
 +
          "NoLetter": "false"
 +
        }
 +
      }
 +
    ]
 +
  },
 +
  "Robin2": {
 +
    "Name": "[Robin2_Name]",
 +
    "Requester": "Robin",
 +
    "Duration": "Week",
 +
    "Repeatable": "True",
 +
    "RequiredTags": "",
 +
    "OrderType": "",
 +
    "SpecialRule": "",
 +
    "Text": "[Robin2_Text]",
 +
    "ItemToRemoveOnEnd": null,
 +
    "MailToRemoveOnEnd": null,
 +
    "RandomizedElements": [
 +
      {
 +
        "Name": "Resource",
 +
        "Values": [
 +
          {
 +
            "RequiredTags": "",
 +
            "Value": "PICK_ITEM Wood, Stone"
 +
          }
 +
        ]
 +
      }
 +
    ],
 +
    "Objectives": [
 +
      {
 +
        "Type": "Collect",
 +
        "Text": "[Robin2_Objective_0_Text]",
 +
        "RequiredCount": "1000",
 +
        "Data": {
 +
          "AcceptedContextTags": "{Resource:Tags}"
 +
        }
 +
      }
 +
    ],
 +
    "Rewards": [
 +
      {
 +
        "Type": "Money",
 +
        "Data": {
 +
          "Amount": "2500"
 +
        }
 +
      },
 +
      {
 +
        "Type": "Mail",
 +
        "Data": {
 +
          "MailReceived": "robinResource",
 +
          "NoLetter": "false"
 +
        }
 +
      }
 +
    ]
 +
  },
 +
  "Gunther": {
 +
    "Name": "[Gunther_Name]",
 +
    "Requester": "Gunther",
 +
    "Duration": "Week",
 +
    "Repeatable": "False",
 +
    "RequiredTags": "",
 +
    "OrderType": "",
 +
    "SpecialRule": "",
 +
    "Text": "[Gunther_Text]",
 +
    "ItemToRemoveOnEnd": null,
 +
    "MailToRemoveOnEnd": null,
 +
    "RandomizedElements": null,
 +
    "Objectives": [
 +
      {
 +
        "Type": "Collect",
 +
        "Text": "[Gunther_Objective_1_Text]",
 +
        "RequiredCount": "100",
 +
        "Data": {
 +
          "AcceptedContextTags": "bone_item"
 +
        }
 +
      },
 +
      {
 +
        "Type": "Donate",
 +
        "Text": "[Gunther_Objective_0_Text]",
 +
        "RequiredCount": "100",
 +
        "Data": {
 +
          "DropBox": "GuntherBox",
 +
          "DropBoxGameLocation": "ArchaeologyHouse",
 +
          "DropBoxIndicatorLocation": "6 8",
 +
          "AcceptedContextTags": "bone_item"
 +
        }
 +
      }
 +
    ],
 +
    "Rewards": [
 +
      {
 +
        "Type": "Money",
 +
        "Data": {
 +
          "Amount": "3500"
 +
        }
 +
      },
 +
      {
 +
        "Type": "Mail",
 +
        "Data": {
 +
          "MailReceived": "guntherBones",
 +
          "NoLetter": "false"
 +
        }
 +
      }
 +
    ]
 +
  },
 +
  "Caroline": {
 +
    "Name": "[Caroline_Name]",
 +
    "Requester": "Caroline",
 +
    "Duration": "Month",
 +
    "Repeatable": "True",
 +
    "RequiredTags": "island",
 +
    "OrderType": "",
 +
    "SpecialRule": "",
 +
    "Text": "[Caroline_Text]",
 +
    "ItemToRemoveOnEnd": null,
 +
    "MailToRemoveOnEnd": null,
 +
    "RandomizedElements": [
 +
      {
 +
        "Name": "Crop",
 +
        "Values": [
 +
          {
 +
            "RequiredTags": "",
 +
            "Value": "PICK_ITEM Pineapple, Taro Root, Ginger"
 +
          }
 +
        ]
 +
      }
 +
    ],
 +
    "Objectives": [
 +
      {
 +
        "Type": "Collect",
 +
        "Text": "[Lewis_Objective_1_Text]",
 +
        "RequiredCount": "100",
 +
        "Data": {
 +
          "AcceptedContextTags": "{Crop:Tags}"
 +
        }
 +
      },
 +
      {
 +
        "Type": "Ship",
 +
        "Text": "[Caroline_Objective_0_Text]",
 +
        "RequiredCount": "100",
 +
        "Data": {
 +
          "AcceptedContextTags": "{Crop:Tags}"
 +
        }
 +
      }
 +
    ],
 +
    "Rewards": [
 +
      {
 +
        "Type": "Money",
 +
        "Data": {
 +
          "Amount": "{Crop:Price}",
 +
          "Multiplier": "50"
 +
        }
 +
      },
 +
      {
 +
        "Type": "Mail",
 +
        "Data": {
 +
          "MailReceived": "carolineSO",
 +
          "NoLetter": "false"
 +
        }
 +
      }
 +
    ]
 +
  },
 +
  "Willy2": {
 +
    "Name": "[Willy2_Name]",
 +
    "Requester": "Willy",
 +
    "Duration": "Week",
 +
    "Repeatable": "False",
 +
    "RequiredTags": "island, mail_Island_Resort",
 +
    "OrderType": "",
 +
    "SpecialRule": "",
 +
    "Text": "[Willy2_Text]",
 +
    "ItemToRemoveOnEnd": null,
 +
    "MailToRemoveOnEnd": null,
 +
    "RandomizedElements": null,
 +
    "Objectives": [
 +
      {
 +
        "Type": "Fish",
 +
        "Text": "[Willy2_Objective_0_Text]",
 +
        "RequiredCount": "5",
 +
        "Data": {
 +
          "AcceptedContextTags": "item_lionfish"
 +
        }
 +
      },
 +
      {
 +
        "Type": "Fish",
 +
        "Text": "[Willy2_Objective_1_Text]",
 +
        "RequiredCount": "5",
 +
        "Data": {
 +
          "AcceptedContextTags": "item_blue_discus"
 +
        }
 +
      },
 +
      {
 +
        "Type": "Fish",
 +
        "Text": "[Willy2_Objective_2_Text]",
 +
        "RequiredCount": "5",
 +
        "Data": {
 +
          "AcceptedContextTags": "item_stingray"
 +
        }
 +
      }
 +
    ],
 +
    "Rewards": [
 +
      {
 +
        "Type": "Money",
 +
        "Data": {
 +
          "Amount": "2500"
 +
        }
 +
      },
 +
      {
 +
        "Type": "Mail",
 +
        "Data": {
 +
          "MailReceived": "WillyTropicalFish",
 +
          "NoLetter": "false"
 +
        }
 +
      }
 +
    ]
 +
  },
 +
  "QiChallenge": {
 +
    "Name": "[QiChallenge_Name]",
 +
    "Requester": "Qi",
 +
    "Duration": "Week",
 +
    "Repeatable": "True",
 +
    "RequiredTags": "NOT_IMPLEMENTED, !rule_QI_BEANS",
 +
    "OrderType": "Qi",
 +
    "SpecialRule": "FIVE_PLAGUES, QI_BEANS",
 +
    "Text": "[QiChallenge_Text]",
 +
    "ItemToRemoveOnEnd": null,
 +
    "MailToRemoveOnEnd": null,
 +
    "RandomizedElements": null,
 +
    "Objectives": [
 +
      {
 +
        "Type": "Ship",
 +
        "Text": "[QiChallenge_Objective_0_Text]",
 +
        "RequiredCount": "500",
 +
        "Data": {
 +
          "AcceptedContextTags": "item_qi_fruit"
 +
        }
 +
      }
 +
    ],
 +
    "Rewards": [
 +
      {
 +
        "Type": "Gems",
 +
        "Data": {
 +
          "Amount": "50"
 +
        }
 +
      }
 +
    ]
 +
  },
 +
  "QiChallenge2": {
 +
    "Name": "[QiChallenge2_Name]",
 +
    "Requester": "Qi",
 +
    "Duration": "Month",
 +
    "Repeatable": "True",
 +
    "RequiredTags": "!rule_QI_BEANS",
 +
    "OrderType": "Qi",
 +
    "SpecialRule": "QI_BEANS, DROP_QI_BEANS",
 +
    "Text": "[QiChallenge2_Text]",
 +
    "ItemToRemoveOnEnd": null,
 +
    "MailToRemoveOnEnd": null,
 +
    "RandomizedElements": null,
 +
    "Objectives": [
 +
      {
 +
        "Type": "Ship",
 +
        "Text": "[QiChallenge2_Objective_0_Text]",
 +
        "RequiredCount": "500",
 +
        "Data": {
 +
          "AcceptedContextTags": "item_qi_fruit"
 +
        }
 +
      }
 +
    ],
 +
    "Rewards": [
 +
      {
 +
        "Type": "Gems",
 +
        "Data": {
 +
          "Amount": "100"
 +
        }
 +
      }
 +
    ]
 +
  },
 +
  "QiChallenge3": {
 +
    "Name": "[QiChallenge3_Name]",
 +
    "Requester": "Qi",
 +
    "Duration": "Week",
 +
    "Repeatable": "True",
 +
    "RequiredTags": "",
 +
    "OrderType": "Qi",
 +
    "SpecialRule": "",
 +
    "Text": "[QiChallenge3_Text]",
 +
    "ItemToRemoveOnEnd": null,
 +
    "MailToRemoveOnEnd": null,
 +
    "RandomizedElements": null,
 +
    "Objectives": [
 +
      {
 +
        "Type": "JKScore",
 +
        "Text": "[QiChallenge3_Objective_0_Text]",
 +
        "RequiredCount": "50000",
 +
        "Data": {
 +
          "AcceptedContextTags": "placeholder"
 +
        }
 +
      }
 +
    ],
 +
    "Rewards": [
 +
      {
 +
        "Type": "Gems",
 +
        "Data": {
 +
          "Amount": "10"
 +
        }
 +
      }
 +
    ]
 +
  },
 +
  "QiChallenge4": {
 +
    "Name": "[QiChallenge4_Name]",
 +
    "Requester": "Qi",
 +
    "Duration": "Month",
 +
    "Repeatable": "True",
 +
    "RequiredTags": "!dropbox_QiChallengeBox",
 +
    "OrderType": "Qi",
 +
    "SpecialRule": "",
 +
    "Text": "[QiChallenge4_Text]",
 +
    "ItemToRemoveOnEnd": null,
 +
    "MailToRemoveOnEnd": null,
 +
    "RandomizedElements": null,
 +
    "Objectives": [
 +
      {
 +
        "Type": "Donate",
 +
        "Text": "[QiChallenge4_Objective_0_Text]",
 +
        "RequiredCount": "4",
 +
        "Data": {
 +
          "DropBox": "QiChallengeBox",
 +
          "DropBoxGameLocation": "QiNutRoom",
 +
          "DropBoxIndicatorLocation": "1 3",
 +
          "AcceptedContextTags": "item_prismatic_shard"
 +
        }
 +
      }
 +
    ],
 +
    "Rewards": [
 +
      {
 +
        "Type": "Gems",
 +
        "Data": {
 +
          "Amount": "40"
 +
        }
 +
      }
 +
    ]
 +
  },
 +
  "QiChallenge5": {
 +
    "Name": "[QiChallenge5_Name]",
 +
    "Requester": "Qi",
 +
    "Duration": "Week",
 +
    "Repeatable": "True",
 +
    "RequiredTags": "",
 +
    "OrderType": "Qi",
 +
    "SpecialRule": "SC_NO_FOOD",
 +
    "Text": "[QiChallenge5_Text]",
 +
    "ItemToRemoveOnEnd": null,
 +
    "MailToRemoveOnEnd": null,
 +
    "RandomizedElements": null,
 +
    "Objectives": [
 +
      {
 +
        "Type": "ReachMineFloor",
 +
        "Text": "[QiChallenge5_Objective_0_Text]",
 +
        "RequiredCount": "100",
 +
        "Data": {
 +
          "SkullCave": "true"
 +
        }
 +
      }
 +
    ],
 +
    "Rewards": [
 +
      {
 +
        "Type": "Gems",
 +
        "Data": {
 +
          "Amount": "25"
 +
        }
 +
      }
 +
    ]
 +
  },
 +
  "QiChallenge6": {
 +
    "Name": "[QiChallenge6_Name]",
 +
    "Requester": "Qi",
 +
    "Duration": "TwoWeeks",
 +
    "Repeatable": "True",
 +
    "RequiredTags": "",
 +
    "OrderType": "Qi",
 +
    "SpecialRule": "QI_COOKING",
 +
    "Text": "[QiChallenge6_Text]",
 +
    "ItemToRemoveOnEnd": null,
 +
    "MailToRemoveOnEnd": null,
 +
    "RandomizedElements": null,
 +
    "Objectives": [
 +
      {
 +
        "Type": "Ship",
 +
        "Text": "[QiChallenge6_Objective_0_Text]",
 +
        "RequiredCount": "100000",
 +
        "Data": {
 +
          "AcceptedContextTags": "quality_qi",
 +
          "UseShipmentValue": "True"
 +
        }
 +
      }
 +
    ],
 +
    "Rewards": [
 +
      {
 +
        "Type": "Gems",
 +
        "Data": {
 +
          "Amount": "25"
 +
        }
 +
      }
 +
    ]
 +
  },
 +
  "QiChallenge7": {
 +
    "Name": "[QiChallenge7_Name]",
 +
    "Requester": "Qi",
 +
    "Duration": "Week",
 +
    "Repeatable": "True",
 +
    "RequiredTags": "",
 +
    "OrderType": "Qi",
 +
    "SpecialRule": "",
 +
    "Text": "[QiChallenge7_Text]",
 +
    "ItemToRemoveOnEnd": null,
 +
    "MailToRemoveOnEnd": null,
 +
    "RandomizedElements": null,
 +
    "Objectives": [
 +
      {
 +
        "Type": "Gift",
 +
        "Text": "[QiChallenge7_Objective_0_Text]",
 +
        "RequiredCount": "50",
 +
        "Data": {
 +
          "MinimumLikeLevel": "Loved"
 +
        }
 +
      }
 +
    ],
 +
    "Rewards": [
 +
      {
 +
        "Type": "Gems",
 +
        "Data": {
 +
          "Amount": "40"
 +
        }
 +
      }
 +
    ]
 +
  },
 +
  "QiChallenge8": {
 +
    "Name": "[QiChallenge8_Name]",
 +
    "Requester": "Qi",
 +
    "Duration": "ThreeDays",
 +
    "Repeatable": "True",
 +
    "RequiredTags": "",
 +
    "OrderType": "Qi",
 +
    "SpecialRule": "LEGENDARY_FAMILY",
 +
    "Text": "[QiChallenge8_Text]",
 +
    "ItemToRemoveOnEnd": null,
 +
    "MailToRemoveOnEnd": null,
 +
    "RandomizedElements": null,
 +
    "Objectives": [
 +
      {
 +
        "Type": "Fish",
 +
        "Text": "[QiChallenge8_Objective_0_Text]",
 +
        "RequiredCount": "1",
 +
        "Data": {
 +
          "AcceptedContextTags": "item_ms._angler"
 +
        }
 +
      },
 +
      {
 +
        "Type": "Fish",
 +
        "Text": "[QiChallenge8_Objective_1_Text]",
 +
        "RequiredCount": "1",
 +
        "Data": {
 +
          "AcceptedContextTags": "item_glacierfish_jr."
 +
        }
 +
      },
 +
      {
 +
        "Type": "Fish",
 +
        "Text": "[QiChallenge8_Objective_2_Text]",
 +
        "RequiredCount": "1",
 +
        "Data": {
 +
          "AcceptedContextTags": "item_son_of_crimsonfish"
 +
        }
 +
      },
 +
      {
 +
        "Type": "Fish",
 +
        "Text": "[QiChallenge8_Objective_3_Text]",
 +
        "RequiredCount": "1",
 +
        "Data": {
 +
          "AcceptedContextTags": "item_radioactive_carp"
 +
        }
 +
      },
 +
      {
 +
        "Type": "Fish",
 +
        "Text": "[QiChallenge8_Objective_4_Text]",
 +
        "RequiredCount": "1",
 +
        "Data": {
 +
          "AcceptedContextTags": "item_legend_ii"
 +
        }
 +
      }
 +
    ],
 +
    "Rewards": [
 +
      {
 +
        "Type": "Gems",
 +
        "Data": {
 +
          "Amount": "20"
 +
        }
 +
      }
 +
    ]
 +
  },
 +
  "QiChallenge9": {
 +
    "Name": "[QiChallenge9_Name]",
 +
    "Requester": "Qi",
 +
    "Duration": "Week",
 +
    "Repeatable": "True",
 +
    "RequiredTags": "",
 +
    "OrderType": "Qi",
 +
    "SpecialRule": "MINE_HARD",
 +
    "Text": "[QiChallenge9_Text]",
 +
    "ItemToRemoveOnEnd": null,
 +
    "MailToRemoveOnEnd": null,
 +
    "RandomizedElements": null,
 +
    "Objectives": [
 +
      {
 +
        "Type": "ReachMineFloor",
 +
        "Text": "[QiChallenge9_Objective_0_Text]",
 +
        "RequiredCount": "120",
 +
        "Data": {}
 +
      }
 +
    ],
 +
    "Rewards": [
 +
      {
 +
        "Type": "Gems",
 +
        "Data": {
 +
          "Amount": "50"
 +
        }
 +
      }
 +
    ]
 +
  },
 +
  "QiChallenge10": {
 +
    "Name": "[QiChallenge10_Name]",
 +
    "Requester": "Qi",
 +
    "Duration": "Week",
 +
    "Repeatable": "True",
 +
    "RequiredTags": "",
 +
    "OrderType": "Qi",
 +
    "SpecialRule": "SC_HARD",
 +
    "Text": "[QiChallenge10_Text]",
 +
    "ItemToRemoveOnEnd": null,
 +
    "MailToRemoveOnEnd": null,
 +
    "RandomizedElements": null,
 +
    "Objectives": [
 +
      {
 +
        "Type": "ReachMineFloor",
 +
        "Text": "[QiChallenge10_Objective_0_Text]",
 +
        "RequiredCount": "100",
 +
        "Data": {
 +
          "SkullCave": "true"
 +
        }
 +
      }
 +
    ],
 +
    "Rewards": [
 +
      {
 +
        "Type": "Gems",
 +
        "Data": {
 +
          "Amount": "40"
 +
        }
 +
      }
 +
    ]
 +
  },
 +
  "QiChallenge11": {
 +
    "Name": "[QiChallenge11_Name]",
 +
    "Requester": "Qi",
 +
    "Duration": "Day",
 +
    "Repeatable": "True",
 +
    "RequiredTags": "NOT_IMPLEMENTED",
 +
    "OrderType": "Qi",
 +
    "SpecialRule": "QI_DOUBLE",
 +
    "Text": "[QiChallenge11_Text]",
 +
    "ItemToRemoveOnEnd": null,
 +
    "MailToRemoveOnEnd": null,
 +
    "RandomizedElements": null,
 +
    "Objectives": [
 +
      {
 +
        "Type": "Custom",
 +
        "Text": "[QiChallenge11_Objective_0_Text]",
 +
        "RequiredCount": "120",
 +
        "Data": {
 +
          "AcceptedContextTags": "placeholder"
 +
        }
 +
      }
 +
    ],
 +
    "Rewards": [
 +
      {
 +
        "Type": "Gems",
 +
        "Data": {
 +
          "Amount": "10"
 +
        }
 +
      }
 +
    ]
 +
  },
 +
  "QiChallenge12": {
 +
    "Name": "[QiChallenge12_Name]",
 +
    "Requester": "Qi",
 +
    "Duration": "TwoWeeks",
 +
    "Repeatable": "True",
 +
    "RequiredTags": "!dropbox_QiChallengeBox",
 +
    "OrderType": "Qi",
 +
    "SpecialRule": "",
 +
    "Text": "[QiChallenge12_Text]",
 +
    "ItemToRemoveOnEnd": null,
 +
    "MailToRemoveOnEnd": null,
 +
    "RandomizedElements": null,
 +
    "Objectives": [
 +
      {
 +
        "Type": "Donate",
 +
        "Text": "[QiChallenge12_Objective_0_Text]",
 +
        "RequiredCount": "100",
 +
        "Data": {
 +
          "DropBox": "QiChallengeBox",
 +
          "DropBoxGameLocation": "QiNutRoom",
 +
          "DropBoxIndicatorLocation": "1 3",
 +
          "MinimumCapacity": "36",
 +
          "AcceptedContextTags": "color_red/color_dark_red"
 +
        }
 +
      },
 +
      {
 +
        "Type": "Donate",
 +
        "Text": "[QiChallenge12_Objective_1_Text]",
 +
        "RequiredCount": "100",
 +
        "Data": {
 +
          "DropBox": "QiChallengeBox",
 +
          "DropBoxGameLocation": "QiNutRoom",
 +
          "DropBoxIndicatorLocation": "1 3",
 +
          "AcceptedContextTags": "color_orange/color_copper/color_dark_orange"
 +
        }
 +
      },
 +
      {
 +
        "Type": "Donate",
 +
        "Text": "[QiChallenge12_Objective_2_Text]",
 +
        "RequiredCount": "100",
 +
        "Data": {
 +
          "DropBox": "QiChallengeBox",
 +
          "DropBoxGameLocation": "QiNutRoom",
 +
          "DropBoxIndicatorLocation": "1 3",
 +
          "AcceptedContextTags": "color_yellow/color_dark_yellow/color_gold"
 +
        }
 +
      },
 +
      {
 +
        "Type": "Donate",
 +
        "Text": "[QiChallenge12_Objective_3_Text]",
 +
        "RequiredCount": "100",
 +
        "Data": {
 +
          "DropBox": "QiChallengeBox",
 +
          "DropBoxGameLocation": "QiNutRoom",
 +
          "DropBoxIndicatorLocation": "1 3",
 +
          "AcceptedContextTags": "color_green/color_dark_green/color_lime/color_yellow_green/color_jade"
 +
        }
 +
      },
 +
      {
 +
        "Type": "Donate",
 +
        "Text": "[QiChallenge12_Objective_4_Text]",
 +
        "RequiredCount": "100",
 +
        "Data": {
 +
          "DropBox": "QiChallengeBox",
 +
          "DropBoxGameLocation": "QiNutRoom",
 +
          "DropBoxIndicatorLocation": "1 3",
 +
          "AcceptedContextTags": "color_blue/color_dark_blue/color_dark_cyan/color_light_cyan/color_cyan/color_aquamarine"
 +
        }
 +
      },
 +
      {
 +
        "Type": "Donate",
 +
        "Text": "[QiChallenge12_Objective_5_Text]",
 +
        "RequiredCount": "100",
 +
        "Data": {
 +
          "DropBox": "QiChallengeBox",
 +
          "DropBoxGameLocation": "QiNutRoom",
 +
          "DropBoxIndicatorLocation": "1 3",
 +
          "AcceptedContextTags": "color_purple/color_dark_purple/color_dark_pink/color_pale_violet_red/color_poppyseed/color_iridium"
 +
        }
 +
      }
 +
    ],
 +
    "Rewards": [
 +
      {
 +
        "Type": "Gems",
 +
        "Data": {
 +
          "Amount": "35"
 +
        }
 +
      }
 +
    ]
 +
  }
 +
}
 +
</source>}}
    +
==Format==
 +
===Objectives===
 +
Each order can have any number of objectives of the given types.
   −
==Basic concepts==
+
; <tt>Collect</tt>
===What are Special Orders?===
+
: The player must add items that match the [[#Context tags|<tt>AcceptedContextTags</tt> field]] to a dropbox. The items must never have been in a player inventory. This applies to any method of collecting items (e.g. harvesting crops, slaying monsters, collecting from a machine, cooking a dish, etc). There's no restriction to how the item can be collected; e.g. a special order for emeralds will be equally find with gems found in the mines or produced in a crystalarium.
   −
1.5 adds a new 'special orders' quest system which is much more flexible and supports custom quests. You can add special orders to Data/SpecialOrders with options like duration, repeatability, objectives, and rewards etc. Each order can have any number of objectives of predefined types (Collect, Deliver, Fish, Gift, JKScore, ReachMineFloor, Ship, Slay) and rewards (Friendship, Gems, Mail, Money, ResetEvent). The Mail reward sets a mail flag, which can be used to trigger custom events, dialogue, or other changes.
+
; <tt>Deliver</tt>
 +
: The player must give items that match the [[#Context tags|<tt>AcceptedContextTags</tt> field]] to a given character. This doesn't count towards the character's gift limit.
   −
===Objectives===
+
; <tt>Fish</tt>
 +
: TODO
   −
====Collect====
+
; <tt>Gift</tt>
Any item that never was in a player inventory before and that is meeting the AcceptedContextTags value will count toward the objective. This includes (but isn't limited to) things like crops harvested, drop obtained from monsters, production of a machine, dish being cooked.
+
: The player must give items that match the [[#Context tags|<tt>AcceptedContextTags</tt> field]] to a given character. This '''does''' count towards the character's gift limit. Parameters can include a minimum gift taste level.
It is important to keep in mind that a special order asking to collect an item will not limit the ways this item can be collected. Example : a special order asking the player to collect emerald will count emerald collected in the mine but also emerald made with the crystalarium.
      +
; <tt>JKScore</tt>
 +
: TODO
   −
====Deliver====
+
; <tt>ReachMineFloor</tt>
This objective requires to give the item(s) to a specific character. The item will not count toward the gift limit of this character.
+
: TODO
    +
; <tt>Ship</tt>
 +
: The player must ship items through their [[Shipping Bin|shipping bin]] which match the [[#Context tags|<tt>AcceptedContextTags</tt> field]]. The quest objective progresses when the items are collected, not when they're put in the bin.
   −
====Gift====
+
; <tt>Slay</tt>
 +
: TODO
   −
This objective requires to gift the item(s). Parameters can include a minimum Like Level.
+
===Rewards===
 +
Each order can have any number of rewards of the given types.
    +
; <tt>Friendship</tt>
 +
: TODO
   −
====Ship====
+
; <tt>Gems</tt>
Item(s) shipped. The quest objective progresses when the item(s) are collected, not when they are put in the Shipping Bin.
+
: TODO
    +
<tt>Mail</tt>
 +
: Sets a mail flag, which can be used to trigger custom events, dialogue, or other changes.
    +
<tt>Money</tt>
 +
: TODO
   −
===Context Tags===
+
<tt>ResetEvent</tt>
See [[Modding:Context_tags|Context Tags]] for generic informations about Context Tags and where to find them.
+
: TODO
   −
When the objective(s) are accepting item(s), the field <code>AcceptedContextTags</code> will list the context tags this item must have. A context tag prefaced by <code>!</code> mean that this tag is excluded. Context tags separated by <code>,</code> are all needed. Context tags separated by <code>/</code> means that either are accepted. Example.
+
===Context tags===
 +
The <tt>AcceptedContextTags</tt> fields specify [[Modding:Context tags|context tags]] for required items. This consists of a string with the following format:
   −
        <code> "AcceptedContextTags": "!forage_item, category_vegetable, quality_gold"</code>
+
{| class="wikitable"
 +
|-
 +
! syntax
 +
! effect
 +
|-
 +
| <code>!</code>
 +
| When prefixed to a context tag, indicates that an item must ''not'' have that tag.
 +
|-
 +
| <code>,</code>
 +
| Separates any number of required context tags. For example, <code>A, B, C</code> matches items that have ''all'' of those tags.
 +
|-
 +
| <code>/</code>
 +
| Separates any number of alternate context tags. For example, <code>A/B/C</code> matches items that have ''at least one'' of those tags.
 +
|}
   −
A special order offered by Pierre is requesting this specific list of context tags to determine the valid items. In this case, this mean that any item that is of the category "vegetable", and of quality "gold" and that doesn't have the "forage_item" tag is eligible.  
+
For example, <code>!forage_item, category_vegetable/category_fruit, quality_gold</code> would match non-forage gold-quality items which are either fruits or vegetables.
   −
Fiddlehead Fern would be excluded of this special order accepted item, since it does have the tag "forage_item".
+
[[Category:Modding]]
translators
8,403

edits

Navigation menu