summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md37
1 files changed, 21 insertions, 16 deletions
diff --git a/README.md b/README.md
index 4eaba9b4..dcb4310f 100644
--- a/README.md
+++ b/README.md
@@ -59,35 +59,38 @@ section isn't relevant to you; see the previous sections to use or create mods._
### Compiling from source
Using an official SMAPI release is recommended for most users.
-If you'd like to compile SMAPI from source, you can do that on any platform using
-[Visual Studio](https://www.visualstudio.com/vs/community/) or [MonoDevelop](http://www.monodevelop.com/).
-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. Compile output will be
-placed in a `bin` folder at the root of the git repository.
+SMAPI uses some C# 7 code, so you'll need at least
+[Visual Studio 2017](https://www.visualstudio.com/vs/community/) on Windows,
+[MonoDevelop 7.0](http://www.monodevelop.com/) on Linux,
+[Visual Studio 2017 for Mac](https://www.visualstudio.com/vs/visual-studio-mac/), or an equivalent
+IDE to compile it. It uses build configuration derived from the
+[crossplatform mod config](https://github.com/Pathoschild/Stardew.ModBuildConfig#readme) to detect
+your current OS automatically and load the correct references. Compile output will be placed in a
+`bin` folder at the root of the git repository.
### Debugging a local build
Rebuilding the solution in debug mode will copy the SMAPI files into your game folder. Starting
-the `StardewModdingAPI` project with debugging will launch SMAPI with the debugger attached, so you
-can intercept errors and step through the code being executed.
+the `StardewModdingAPI` project with debugging from Visual Studio (on Mac or Windows) will launch
+SMAPI with the debugger attached, so you can intercept errors and step through the code being
+executed. This doesn't work in MonoDevelop on Linux, unfortunately.
### Preparing a release
To prepare a crossplatform SMAPI release, you'll need to compile it on two platforms. See
-_[crossplatforming a SMAPI mod](http://canimod.com/guides/crossplatforming-a-smapi-mod#preparing-a-mod-release)_
-for the first-time setup. For simplicity, all paths are relative to the root of the repository (the
-folder containing `src`).
+[crossplatforming info](http://stardewvalleywiki.com/Modding:Creating_a_SMAPI_mod#Test_on_all_platforms)
+on the wiki for the first-time setup.
1. Update the version number in `GlobalAssemblyInfo.cs` and `Constants::Version`. Make sure you use a
[semantic version](http://semver.org). Recommended format:
build type | format | example
:--------- | :-------------------------------- | :------
- dev build | `<version>-alpha.<timestamp>` | `1.0.0-alpha.20171230`
- beta | `<version>-beta.<incrementing ID>`| `1.0.0-beta`, `1.0.0-beta.2`, …
- release | `<version>` | `1.0.0`
+ dev build | `<version>-alpha.<timestamp>` | `1.0-alpha.20171230`
+ prerelease | `<version>-prerelease.<ID>` | `1.0-prerelease.2`
+ release | `<version>` | `1.0`
2. In Windows:
1. Rebuild the solution in _Release_ mode.
- 2. Rename `bin/Packaged` to `SMAPI <version>` (e.g. `SMAPI 1.6`).
+ 2. Rename `bin/Packaged` to `SMAPI <version>` (e.g. `SMAPI 1.0`).
2. Transfer the `SMAPI <version>` folder to Linux or Mac.
_This adds the installer executable and Windows files. We'll do the rest in Linux or Mac,
since we need to set Unix file permissions that Windows won't save._
@@ -110,7 +113,8 @@ folder containing `src`).
StardewModdingAPI.AssemblyRewriters.dll
StardewModdingAPI.config.json
StardewModdingAPI.exe
- StardewModdingAPI.exe.mdb
+ StardewModdingAPI.pdb
+ StardewModdingAPI.xml
steam_appid.txt
System.Numerics.dll
System.Runtime.Caching.dll
@@ -129,7 +133,7 @@ folder containing `src`).
5. Copy & paste the `SMAPI <version>` folder as `SMAPI <version> for developers`.
6. In the `SMAPI <version>` folder...
* edit `internal/Mono/StardewModdingAPI.config.json` and
- `internal/Windows/StardewModdingAPI.config.json` to disable developer mode;
+ `internal/Windows/StardewModdingAPI.config.json` to disable developer mode;
* delete `internal/Windows/StardewModdingAPI.xml`.
7. Compress the two folders into `SMAPI <version>.zip` and `SMAPI <version> for developers.zip`.
@@ -143,6 +147,7 @@ field | purpose
`DeveloperMode` | Default `false` (except in _SMAPI for developers_ releases). Whether to enable features intended for mod developers. Currently this only makes `TRACE`-level messages appear in the console.
`CheckForUpdates` | Default `true`. Whether SMAPI should check for a newer version when you load the game. If a new version is available, a small message will appear in the console. This doesn't affect the load time even if your connection is offline or slow, because it happens in the background.
`ModCompatibility` | A list of mod versions SMAPI should consider compatible or broken regardless of whether it detects incompatible code. Each record can be set to `AssumeCompatible` or `AssumeBroken`. Changing this field is not recommended and may destabilise your game.
+`VerboseLogging` | Whether SMAPI should log more information about the game context.
### Command-line arguments
SMAPI recognises the following command-line arguments. These are intended for internal use or