Tutorial: Adding a Special Order (2023)

If you are interested in the details of how to create a basic special order, you are in the right place! thisWiki page for special ordersContains some basic information on what a special order is and what some of the components are, so if you want to learn more about the various options it is recommended to read through.

assumptions we're dealing with[edit]

This tutorial assumes you are familiar withContent Patches (CPs)For formatting, we'll use the frame pattern. If you're new, take a look atWiki page on CP, especially the introduction to JSON.

This tutorial also assumes that you know how to set up files for content packs, specifically creating content.json and manifest.json files (Tutorial here).

The basis of the example[edit]

In this tutorial we'll break down a special order component and show how it looks in CP. More intermediate topics are covered in other tutorials.

The example mod we'll be using is Abigail requesting 10 Quartz and 10 Amethyst in Fall and Winter, and the player will have 1 week to complete the order. Players will deliver Quartz and Amethyst directly to Abigail. Orders will also be repeatable, and rewards will be money (4026 coins) and friendship.

Name the mod and special order[edit]

First, we need to come up with a name for the mod and special order so we can create an "Order ID". This is how we mark the order, it will be used forentry, and the translated i18n implementation (Included in the Intermediate Topic Tutorial). In this example,ExampleMod_Abigail_CrunchyTreatsis the order ID.

(Video) SPECIAL ORDER ILLUSTRATION

Note that you can also format it asExampleMod_CrunchyTreats,Abigail_CrunchyTreats, or something else entirely; it's a matter of personal preference.

Next, we need a descriptivelog-in name, which will make it easier for us to check that our order is loading using the patch summary (more info hereandhere). For this example, we will useAbigail's Crunchy Snacksforlog-in name.

Here's what our patch looks like so far (we'll keep adding more):

{ "log-in name": “Abigail's Crunchies”, // Name here make ITon Easier Tono look Tonhe PaTonaisle In Tonhe log "action": "Edit data", "Target": "Data/Special Order", "entry": { “ExampleMod_Abigail_CrunchyTreats”: { } }}

Special order content[edit]

Next we need the actual contents of the special order: Abigail asks for 10 Quartz and 10 Amethyst, Fall and Winter, the player has 1 week to complete the order, and the order is repeatable. Rewards will be money (4026 coins) and friendship.

Name, Requester, Duration, Repeatability, Required Tags[edit]

We'll start with Name, Requester, Duration, Repeatability, and Season.

(Video) Accept or Reject Special Order | Managerial Accounting

{ "log-in name": “Abigail's Crunchies”, // Name here make ITon Easier Tono look Tonhe PaTonaisle In Tonhe log "action": "Edit data", "Target": "Data/Special Order", "entry": { “ExampleMod_Abigail_CrunchyTreats”: { "Name": “crunchy snack”, // this yes Tonhe special Order alreadyI TonhaTon will exhibit on Tonhe Order board And In Tonhe player Dayfinal "requester": "Abigail", // WHO LocationTS Tonhe RequireTon on Tonhe Order board "period": "Week", // operateTonIOns yes two days, three days, Week, two weeks, or moNew Taiwan dollarH "repeatable": "real", // calciumn yes real or Incorrect "Required label": "!season_spring, !season_summer", // this Order will oNetherlandsyes yes usable In Tonhe fall And wirelessenter. } }}

Note that for seasons, you can specify in which season it should be available, or in which season it should be availablenoavailable. For our example here, I am inrequired labelpart!season_springand!season_summerSeparated by commas, it means "spring is not summer, not summer". It's an interesting double negative, meaning the order is only available for fall and winter.

Other options for RequiredTags includeSeason_X,safe deposit box_X,Rule_X,Complete_X,mail_X,Event_X,know_X, andisland.tags may be case sensitive.

  • Season_Xis a generic version of the label used in this example to specify the season
  • safe deposit box_XUse if your order type is Donation and you want to ensure that the dropbox has not already been used. X is the name of the dropbox. you need to addat first,!dropbox_X, as you will check it is not used.
  • Rule_XMostly used for Qi's challenges.
  • Complete_XUsed to check if another special order is used, where X represents the order ID.
  • mail_XUsed to check if the host player has received an email, X stands for the email ID.
  • Event_XUsed to check if the host player has seen the event, where X represents the event ID.
  • know_XUsed to check if any player (not just the host) knows the NPC, X is the NPC name. This is case sensitive, so make sure to capitalize NPC names!
  • islandUsed to check if any player has been to the island. It also has decorative island paper applied on the order board.

See also: atravita's explanation of labelshere.

Additional details about the season in the required tab[edit]

For such seasonal requirements, userequired labelsection, this is the vanilla way of having seasonal orders instead of using CP's seasonalwhenCheck. This is because of aLimitations on how the game handles special orders.

Be very careful when adding conditions with CPwhenexamine. It would be nice if the condition could change from false to true, for example to check how many in-game days have elapsed, since it would add a special order to the pool. The problem arises when a condition changes from true to false, such as a season check and it is no longer that season because the special order is then removed from the pool.

(Video) Special Orders

This isalways saferUse tags if available, as it's an original feature - other mods may break your assumptions by removing mail flags, or resetting skill levels, etc.

other sections to include[edit]

Next we'll add the parts I just left, since they seem to be part of each special order, we didn't use any of them in the example (Order Type,special rules,ItemToRemoveOnEnd,MailToRemoveOnEnd, andrandom element).

{ "log-in name": “Abigail's Crunchies”, // Name here make ITon Easier Tono look Tonhe PaTonaisle In Tonhe log "action": "Edit data", "Target": "Data/Special Order", "entry": { “ExampleMod_Abigail_CrunchyTreats”: { "Name": “crunchy snack”, // this yes Tonhe special Order alreadyI TonhaTon will exhibit on Tonhe Order board And In Tonhe player Dayfinal "requester": "Abigail", // WHO LocationTS Tonhe RequireTon on Tonhe Order board "period": "Week", "repeatable": "real", "Required label": "!season_spring, !season_summer", // this Order will oNetherlandsyes yes usable In Tonhe fall And wirelessenter "Order Type": “”, "Special Rules": “”, “ItemToRemoveOnEnd”: Invalid, “MailToRemoveOnEnd”: Invalid, "random element": Invalid, } }}

Text and target details[edit]

Next, let's add the text that players will see in the order board and journal, along with objective information.

{ "log-in name": “Abigail's Crunchies”, // Name here make ITon Easier Tono look Tonhe PaTonaisle In Tonhe log "action": "Edit data", "Target": "Data/Special Order", "entry": { “ExampleMod_Abigail_CrunchyTreats”: { "Name": “crunchy snack”, // this yes Tonhe special Order alreadyI TonhaTon will exhibit on Tonhe Order board And In Tonhe player Dayfinal "requester": "Abigail", // WHO LocationTS Tonhe RequireTon on Tonhe Order board "period": "Week", "repeatable": "real", "Required label": "!season_spring, !season_summer", // this Order will oNetherlandsyes yes usable In Tonhe fall And wirelessenter "Order Type": “”, "Special Rules": “”, “ItemToRemoveOnEnd”: Invalid, “MailToRemoveOnEnd”: Invalid, "random element": Invalid, "text": "I'm craving something crunchy! Can someone give me 10 Quartz and 10 Amethyst?", // this thisXTon exhibitn on Tonhe special Order board And Tonhe Dayfinal }, "Target": [ { "type": "deliver", "text": "Give 10 Quartz to Abigail", // this thisXTon For Tonhe objectTonI have In Tonhe Dayfinal "required": “10”, "data": { "Accept contextual labels": “item_quartz”, "information": "Quartz is really shiny, isn't it? Thanks @!$h", // world health assemblyTon Tonhe National People's Congress explain whenn you deliver Tonhe Ithisrice "target name": "Abigail" // which National People's Congress Tono deliver Tonhe Ithisrice Tono } }, { "type": "deliver", "text": "Give 10 Amethysts to Abigail", "required": “10”, "data": { "Accept contextual labels": “item_amethyst”, "information": “It definitely smells like purple! $h”, "target name": "Abigail" } } ] } }

Note that the message line is a dialog, the example uses the vertical command ($h) and the substitution command (@). You can findModify the conversation wiki page.

(Video) Special Orders

award[edit]

The last piece of the special order is the reward. Since this is a basic example, it's money and friendship. As you become more familiar with modding, you might want to trytopic of conversationand events as rewards (a tutorial,A tips and tricks page, andEvent modification wiki page).thisSpecial Orders mod wiki pageMore detailed reward information is available.

{ "log-in name": “Abigail's Crunchies”, // Name here make ITon Easier Tono look Tonhe PaTonaisle In Tonhe log "action": "Edit data", "Target": "Data/Special Order", "entry": { “ExampleMod_Abigail_CrunchyTreats”: { "Name": “crunchy snack”, // this yes Tonhe special Order alreadyI TonhaTon will exhibit on Tonhe Order board And In Tonhe player Dayfinal "requester": "Abigail", // WHO LocationTS Tonhe RequireTon on Tonhe Order board "period": "Week", "repeatable": "real", "Required label": "!season_spring, !season_summer", // this Order will oNetherlandsyes yes usable In Tonhe fall And wirelessenter "Order Type": “”, "Special Rules": “”, “ItemToRemoveOnEnd”: Invalid, “MailToRemoveOnEnd”: Invalid, "random element": Invalid, "text": "I'm craving something crunchy! Can someone give me 10 Quartz and 10 Amethyst?", // this thisXTon exhibitn on Tonhe special Order board And Tonhe Dayfinal, "Target": [ { "type": "deliver", "text": "Give 10 Quartz to Abigail", // this thisXTon For Tonhe objectTonI have In Tonhe Dayfinal "required": “10”, "data": { "Accept contextual labels": “item_quartz”, "information": "Quartz is really shiny, isn't it? Thanks @!$h", // world health assemblyTon Tonhe National People's Congress explain whenn you deliver Tonhe Ithisrice "target name": "Abigail" // which National People's Congress Tono deliver Tonhe Ithisrice Tono } }, { "type": "deliver", "text": "Give 10 Amethysts to Abigail", "required": “10”, "data": { "Accept contextual labels": “item_amethyst”, "information": “It definitely smells like purple! $h”, "target name": "Abigail" } } ], "award": [ { "type": "money", "data": { "quantity": “4026” } }, { "type": "friendship", "data": {} // I imitate Tonhis Aafter how VAnserious special Order yes Fwormtted } ] } } }

test special order[edit]

After writing the order, you can create content.json by runningjson validator siteand set the format to Content Patcher. This will check for syntax issues, but won't catch everything. Alternatively, you can viewHow to set the modeThis way your mod is validated as you write it.

You can test your mod by going to the Special Order Board on an in-game Monday to see if it works. Note that this may take several attempts, as the game chooses from all available special orders. Use the debug commandDebug Day#Make the day the next Sunday (depending on the number, i.e. 7, 14, 21 or 28) and sleep in until Monday, then the check-board will become part of the routine. For more information, please viewConsole commands wiki page.

If you don't see your special order (may take several tries), or have other questions,Using Patch SummaryWill also be part of the troubleshooting procedure.

  • Additional details on the commands available in the CP, such aspatch summaryaboveTroubleshooting GuideUnder Author Guidelines on Github.

If you made it this far, congratulations, you've made your first Special Order mod! There are more intermediate topics to cover and these will be in separate tutorials.

(Video) How To Create Special Orders in Dynamics 365 Business Central

see also[edit]

Videos

1. Special Orders
(FTC Global)
2. Managerial Accounting - Special Order Decisions
(Mark Taylor)
3. Special Orders - Microsoft Dynamics 365 Business Central
(Use Dynamics)
4. Create And Process A Special Order Transaction In Microsoft Dynamics AX POS
(System Solutions LLC)
5. EVERY Special Order Quest and Reward - a Stardew Valley 1.5 Guide
(brandiganBTW)
6. Special Orders Made Easy
(Paladin Data Corporation)

References

Top Articles
Latest Posts
Article information

Author: Dong Thiel

Last Updated: 09/01/2023

Views: 5947

Rating: 4.9 / 5 (79 voted)

Reviews: 86% of readers found this page helpful

Author information

Name: Dong Thiel

Birthday: 2001-07-14

Address: 2865 Kasha Unions, West Corrinne, AK 05708-1071

Phone: +3512198379449

Job: Design Planner

Hobby: Graffiti, Foreign language learning, Gambling, Metalworking, Rowing, Sculling, Sewing

Introduction: My name is Dong Thiel, I am a brainy, happy, tasty, lively, splendid, talented, cooperative person who loves writing and wants to share my knowledge and understanding with you.