Difference between revisions of "Modding:Content packs"

From Stardew Valley Wiki
Jump to navigation Jump to search
(direct link)
(+ folder name convention)
Line 10: Line 10:
 
# [[Modding:Player Guide/Getting Started#Getting started|Install SMAPI]].
 
# [[Modding:Player Guide/Getting Started#Getting started|Install SMAPI]].
 
# Open your game's <tt>Mods</tt> folder (located in [[Modding:Player Guide/Getting Started#Find your game folder|your game folder]]).
 
# Open your game's <tt>Mods</tt> folder (located in [[Modding:Player Guide/Getting Started#Find your game folder|your game folder]]).
# Add a subfolder with the name you want (usually camelcase like <tt>YourModName</tt>).
+
# Add a subfolder with the name you want (see [[#Folder name|folder naming convention]]).
 
# Inside the subfolder:
 
# Inside the subfolder:
 
#* Add a <tt>manifest.json</tt> file with the <tt>ContentPackFor</tt> field (see [[Modding:Modder Guide/APIs/Manifest|manifest format]]).
 
#* Add a <tt>manifest.json</tt> file with the <tt>ContentPackFor</tt> field (see [[Modding:Modder Guide/APIs/Manifest|manifest format]]).
Line 35: Line 35:
 
===Consume a content pack===
 
===Consume a content pack===
 
If you're writing a SMAPI mod which will read content packs, see [[Modding:Modder Guide/APIs/Content Packs]].
 
If you're writing a SMAPI mod which will read content packs, see [[Modding:Modder Guide/APIs/Content Packs]].
 +
 +
==Conventions==
 +
These are recommended practices, but they're not required.
 +
 +
===Folder name===
 +
The folder name should use [https://en.wikipedia.org/wiki/Camel_case upper camel case] with a prefix showing which mod it's for. For example, a folder named <code>[CP] SampleName</code> is a content pack for Content Patcher.
 +
 +
Here are some common prefixes:
 +
{| class="wikitable"
 +
|-
 +
! prefix
 +
! for mod
 +
|-
 +
| <code>[ALL]</code>
 +
| {{nexus mod|2270|Advanced Location Loader}}
 +
|-
 +
| <code>[CFR]</code>
 +
| {{nexus mod|991|Custom Farming Redux}}
 +
|-
 +
| <code>[CP]</code>
 +
| {{nexus mod|1915|Content Patcher}}
 +
|-
 +
| <code>[JA]</code>
 +
| {{nexus mod|1720|Json Assets}}
 +
|}
  
 
[[Category:Modding]]
 
[[Category:Modding]]

Revision as of 19:22, 29 January 2019

Index

A content pack is a collection of files for a specific SMAPI mod to read (essentially a sub-mod). Content packs can contain any files, but usually consist of JSON files and images.

For players

If you want to use a content pack, install it just like a SMAPI mod (see player guide). Make sure you install the mod it needs too.

For modders

Create a content pack

  1. Install SMAPI.
  2. Open your game's Mods folder (located in your game folder).
  3. Add a subfolder with the name you want (see folder naming convention).
  4. Inside the subfolder:
    • Add a manifest.json file with the ContentPackFor field (see manifest format).
    • Add the files needed by the mod that will read it. (See the instructions for the mod for which you're creating the content pack.)
  5. Launch the game, and make sure your new content pack appears under "Loaded X content packs" in the SMAPI console.

Release your content pack

  1. Add an update key to your manifest (if you haven't already).
  2. Update the Version field in the manifest. (Increase it for each release! SMAPI will use it for update and compatibility checks.)
  3. Create a .zip file containing the content pack's folder.
  4. Upload that file to Nexus Mods.

In your mod description, providing clear install steps will help reduce support questions. Example BBCode:

[size=5]Install[/size]
[list=1]
[*][url=https://smapi.io]Install the latest version of SMAPI[/url].
[*][url=<url of required mod>]Install <name of required mod>[/url].
[*]Download this mod and unzip it into [font=Courier New]Stardew Valley/Mods[/font].
[*]Run the game using SMAPI.
[/list]

Consume a content pack

If you're writing a SMAPI mod which will read content packs, see Modding:Modder Guide/APIs/Content Packs.

Conventions

These are recommended practices, but they're not required.

Folder name

The folder name should use upper camel case with a prefix showing which mod it's for. For example, a folder named [CP] SampleName is a content pack for Content Patcher.

Here are some common prefixes:

prefix for mod
[ALL] Advanced Location Loader
[CFR] Custom Farming Redux
[CP] Content Patcher
[JA] Json Assets