Modding:Special orders

From Stardew Valley Wiki
Revision as of 12:52, 3 January 2021 by Lumisteria (talk | contribs) (Created page with "← Index This page explains the basics of Special Orders. ==Raw data== Special orders are stored in <tt>Content\Data\SpecialOrders.xnb</tt>, which can be...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Index

This page explains the basics of Special Orders.

Raw data

Special orders are stored in Content\Data\SpecialOrders.xnb, which can be unpacked for editing.


Basic concepts

What are Special Orders?

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.

Objectives

Collect

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


Deliver

This objective requires to give the item(s) to a specific character. The item will not count toward the gift limit of this character.


Gift

This objective requires to gift the item(s). Parameters can include a minimum Like Level.


Ship

Item(s) shipped. The quest objective progresses when the item(s) are collected, not when they are put in the Shipping Bin.


Context Tags

See Context Tags for generic informations about Context Tags and where to find them.

When the objective(s) are accepting item(s), the field AcceptedContextTags will list the context tags this item must have. A context tag prefaced by ! mean that this tag is excluded. Context tags separated by , are all needed. Context tags separated by / means that either are accepted. Example.

         "AcceptedContextTags": "!forage_item, category_vegetable, quality_gold"

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.

Fiddlehead Fern would be excluded of this special order accepted item, since it does have the tag "forage_item".