Modding:Special orders: Difference between revisions
imported>Lumisteria m Adding mention of this page being a guide for modders |
imported>Pathoschild expand, add raw data, copyedit |
||
| Line 1: | Line 1: | ||
← [[Modding:Index|Index]] | ← [[Modding:Index|Index]] | ||
This page explains the | [[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. | |||
; <tt>Collect</tt> | |||
: 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. | |||
; <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. | |||
; <tt>Fish</tt> | |||
: TODO | |||
; <tt>Gift</tt> | |||
: 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. | |||
; <tt>JKScore</tt> | |||
: TODO | |||
; <tt>ReachMineFloor</tt> | |||
: 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. | |||
; <tt>Slay</tt> | |||
: TODO | |||
===Rewards=== | |||
Each order can have any number of rewards of the given types. | |||
; <tt>Friendship</tt> | |||
: TODO | |||
; <tt>Gems</tt> | |||
: TODO | |||
<tt>Mail</tt> | |||
: Sets a mail flag, which can be used to trigger custom events, dialogue, or other changes. | |||
<tt>Money</tt> | |||
: TODO | |||
<tt>ResetEvent</tt> | |||
: TODO | |||
===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: | |||
{| 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. | |||
|} | |||
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. | |||
[[Category:Modding]] | |||
Revision as of 16:40, 3 January 2021
← Index
Special orders are a more flexible and customizable quest system unlocked in late game. Special orders can be added to 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
Special orders are stored in Content\Data\SpecialOrders.xnb, which can be unpacked for editing. Here's the raw data as of 1.5.1:
| Data |
{
"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"
}
}
]
}
}
|
Format
Objectives
Each order can have any number of objectives of the given types.
- Collect
- The player must add items that match the AcceptedContextTags 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.
- Deliver
- The player must give items that match the AcceptedContextTags field to a given character. This doesn't count towards the character's gift limit.
- Fish
- TODO
- Gift
- The player must give items that match the AcceptedContextTags field to a given character. This does count towards the character's gift limit. Parameters can include a minimum gift taste level.
- JKScore
- TODO
- ReachMineFloor
- TODO
- Ship
- The player must ship items through their shipping bin which match the AcceptedContextTags field. The quest objective progresses when the items are collected, not when they're put in the bin.
- Slay
- TODO
Rewards
Each order can have any number of rewards of the given types.
- Friendship
- TODO
- Gems
- TODO
- Sets a mail flag, which can be used to trigger custom events, dialogue, or other changes.
Money
- TODO
ResetEvent
- TODO
Context tags
The AcceptedContextTags fields specify context tags for required items. This consists of a string with the following format:
| syntax | effect |
|---|---|
!
|
When prefixed to a context tag, indicates that an item must not have that tag. |
,
|
Separates any number of required context tags. For example, A, B, C matches items that have all of those tags.
|
/
|
Separates any number of alternate context tags. For example, A/B/C matches items that have at least one of those tags.
|
For example, !forage_item, category_vegetable/category_fruit, quality_gold would match non-forage gold-quality items which are either fruits or vegetables.