Content packs

How to create a content pack

NPC Adventures supports content packs. We can create SMAPI content pack, target NPC Adventures mod in manifest file.

NPC adventure content pack is a folder with these file structure:

  • manifest.json for SMAPI to read (See content pack manifest on SDV wiki
  • companions/ in this directory are JSON files with your companions to add into game.
  • i18n/ (optional) this directory contains JSON files with i18n translations.

To add NPC Adventures related quests use Quest Framework and create QF content pack with your desired quests. Defining custom companion related quests is not necessary, but it may improve your companions with some extra content and make it more immersive and increase gameplay. Companions with their own story and quests are more interesting and makes more fun with the game.

Other content like dialogues, events and etc are outbound and you need to define it via Content Patcher. If you are author of a custom NPC you want to make as NPC companion, you can define NPC Adventures related dialogue lines, events and this stuff in your NPC's Content Patcher content pack.

If you added your custom NPC with SMAPI C# mod and you are an author of it, you can define your NPC Adventures related content (like dialogues or events) directly in your mod. This way is on your own risk and we can't recommend it. Our recommendation is: Use Content Patcher instead.

Define manifest

Target mod id is purrplingcat.npcadventure. Optional we can define a minimum version of mod was required for our content pack.

<your_cp_folder>/manifest.json

{
  "Name": "Your Project Name",
  "Author": "your name",
  "Version": "1.0.0",
  "Description": "One or two sentences about the mod.",
  "UniqueID": "<your name>.<your project name>",
  "MinimumApiVersion": "3.13.0",
  "UpdateKeys": [],
  "ContentPackFor": {
    "UniqueID": "purrplingcat.npcadventure",
    "MinimumVersion": "1.0.0-alpha"
  }
}

Define companions

In your content pack folder directory companions/ and here we can define companion dispositions JSON files. Every defined companion must reference an existing villager NPC. Content packs for NPC Adventures doesn't define the game's NPC(s), we have add that NPC in other SMAPI mod or content pack, usually via Content Patcher.

If we have an existing NPC which we wants to make as companion, let's follow How to define companion dispositions guide.

Define other content

You can define other content like dialogues or events with Content Patcher or quests with Quest Framework. Follow these guidelines:

Release a content pack

If we already have content pack with our companion(s), we can publish it. See content packs on the wiki for general info.

There are some suggestions about NPC Adventures content packs:

  • Prefix your content pack folder with [NA], like [NA] Ashley companion
  • Add all dependencies (optional or mandatory) which requires your content packs (in manifest file and in requirements section on Nexusmods)
  • Add specific install steps in your mod description to help players:
[size=5]Install[/size]
[list=1]
[*][url=https://smapi.io]Install the latest version of SMAPI[/url].
[*][url=https://www.nexusmods.com/stardewvalley/mods/4582]Install NPC Aventures[/url].
[*]Download this mod and unzip it into [font=Courier New]Stardew Valley/Mods[/font].
[*]Run the game using SMAPI.
[/list]

When editing the Nexus page, add It's time to adventure (NPC adventures) under 'Requirements'. Besides reminding players to install it first, it will also add your content pack to the list on the NPC adventures page.

See also