Modding:Modder Guide/Release

From Stardew Valley Wiki
Jump to: navigation, search
Modder's guide to creating mods SMAPI mascot.png

Once you're ready to share your mod, it's time to release it!

Prepare the release package

The 'release package' for a SMAPI mod is just a .zip file containing a mod with your compiled files, manifest.json, any i18n files, etc. The NuGet package will create it for you automatically.

Generate package

  1. Edit your mod's manifest.json to increase the version.
  2. Click Build > Rebuild Solution (Visual Studio) or Build > Rebuild All (MonoDevelop) to make sure the project is compiled.
  3. Open your mod project's bin/Debug or bin/Release folder (depending on your build configuration).
  4. There should be a .zip file there for your mod version.

That .zip file is the release package for your mod, ready to upload.

Troubleshoot package

Here's how to fix common issues with the generated .zip file.

  • The .zip file is missing:
    • Make sure you're looking at the right folder (either bin/Debug or bin/Release).
    • Make sure there are no build errors.
  • Some mod files aren't in the package:
    • If it's a mod file: right-click on the file in Visual Studio or MonoDevelop, choose Properties, and change 'Copy to Output Directory' to 'copy if newer'.
    • If it's an assembly reference: right-click on the reference in Visual Studio or MonoDevelop, choose Properties, and change 'Copy Local' or 'Local Copy' to true.
  • Some mod files that shouldn't be in the package are included:
    • If it's a mod file: right-click on the file in Visual Studio or MonoDevelop, choose Properties, and change 'Copy to Output Directory' to 'do not copy'.
    • If it's an assembly reference: right-click on the reference in Visual Studio or MonoDevelop, choose Properties, and change 'Copy Local' or 'Local Copy' to false.

Release the mod

Create a mod page

If you haven't already, create a mod page on Nexus Mods. Ideally your mod description should...

  • explain what the mod does and how to use it;
  • provide clear install steps;
  • explain which version of the game it works with;
  • say whether it works in multiplayer (and list any multiplayer limitations);
  • link to release notes, source code, discussion thread, etc if applicable.

Here's a recommended template for the mod description:

  1. Click the "[BBCODE]" button above the mod description on Nexus. This will switch to raw text mode.
  2. Paste this template in:
    This mod adds pineapples everywhere in the game. Replace this line with a few sentences explaining your mod.
    
    [size=5]Install[/size]
    [list=1]
    [*][url=https://smapi.io]Install the latest version of SMAPI[/url].
    [*]Download this mod and unzip it into [font=Courier New]Stardew Valley/Mods[/font].
    [*]Run the game using SMAPI.
    [/list]
    
    [size=5]How to use[/size]
    Provide a few sentences explaining how to use your mod. For example, the default buttons to press, where to find a menu, etc. You can remove this section if it's self-evident.
    
    [size=5]Compatibility[/size]
    [list]
    [*]Works with Stardew Valley 1.3 beta on Linux/Mac/Windows.
    [*]Works in single player and multiplayer. If there are multiplayer limitations, explain them here.
    [/list]
    
    [size=5]See also[/size]
    Add links below for your mod, and remove any that don't apply. Don't forget to remove this sentence.
    
    [list]
    [*]Official discussion thread
    [*]Release notes
    [*]Source code
    [/list]
    
  3. Click the "[BBCODE]" button to switch back to the formatted view.
  4. Edit the template for your mod.

Add update keys to your manifest

Update keys tell SMAPI where your mod is released, so it can let players know when a new version is available. This requires your mod ID, which is available as soon as you create the mod page (before uploading the mod files). See the update check docs for more info.

Upload the mod release

Nexus 'new file' screen.

To upload a file to Nexus:

  1. From your mod page, go to Manage > Files.
  2. Fill in the form:
    • 'File name' should have the mod name and version (like PineapplesEverywhere 1.0).
    • 'File version' field should match the version in your manifest.json! If it doesn't, players may get incorrect update alerts.
    • Tick the "this is the latest version" checkbox so players get update alerts.
    • 'File description' is up to you. You can mention the minimum SMAPI version (if any), what changed, link to release notes, etc.
  3. Upload the .zip file you prepared above.