summaryrefslogtreecommitdiff
path: root/README.md
blob: dcb9e04bd7e90087ddf5c1d9f1ddfd4aa6f47f8d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
![](https://raw.githubusercontent.com/Gormogon/SMAPI/master/docs/imgs/SMAPI.png)

**SMAPI** is an [open-source](LICENSE) modding API for [Stardew Valley](http://stardewvalley.net/).
It takes care of loading mods into the game context, and exposes events they can use to interact
with the game. It's safely installed alongside the game's executable, and doesn't change any of
your game files.

## For players

* [How to install SMAPI & use mods](http://canimod.com/guides/using-mods#installing-smapi)
* [Support forums](http://community.playstarbound.com/threads/stardew-modding-api-0-40-1-1.108375/)
* [Stardew Valley Discord](https://discord.gg/KCJHWhX) (chat with players and developers)

## For mod developers

* [How to develop mods](http://canimod.com/guides/creating-a-smapi-mod)
* [Release notes](release-notes.md)
* [SMAPI/Farmhand Discord](https://discordapp.com/invite/0t3fh2xhHVc6Vdyx) (chat with SMAPI developers)

## For SMAPI developers

### Compiling from source
Using one of the SMAPI releases is recommended for most users.

If you'd like to compile SMAPI from source, you can do that on any platform. SMAPI uses build
configuration derived from the [crosswiki mod config](https://github.com/Pathoschild/Stardew.ModBuildConfig#readme)
to detect your current OS automatically and load the correct references.

### Preparing a release

1. Open the project in [Visual Studio](https://www.visualstudio.com/vs/community/) or [MonoDevelop](http://www.monodevelop.com/).
2. Switch to _Release_ build mode.
3. Update the version number in `AssemblyInfo.cs`.
4. Update the version number in `Constants::Version`. Add the minimum game version and target
   platform at the end of the version number (like `0.41.0 1.1 for Windows`).
5. Build the solution.
6. Copy the files for the target platform into the archive structure below.
7. Repeat for each platform.

The release should consist of three files like this:

```
SMAPI-1.0-Linux.tar.gz
   Mods/*
   Newtonsoft.Json.dll
   StardewModdingAPI
   StardewModdingAPI.exe
   StardewModdingAPI.mdb
   System.Numerics.dll

SMAPI-1.0-Mac.tar.gz
   Mods/*
   Newtonsoft.Json.dll
   StardewModdingAPI
   StardewModdingAPI.exe
   StardewModdingAPI.mdb
   System.Numerics.dll

SMAPI-1.0-Windows.zip
   Mods/*
   StardewModdingAPI.exe
   StardewModdingAPI.pdb
```