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]] |