Changes

Jump to navigation Jump to search
→‎Usage: remove deleted 'pull request' parameter
Line 8: Line 8:  
! source
 
! source
 
!  
 
!  
</noinclude>
+
</noinclude><!--
|- class="mod" id="{{{name}}}" data-id="{{#if:{{{id|}}}{{{old ids|}}}|{{#ifeq:{{{id}}}|none||{{{id}}}{{#if:{{{old ids|}}}|,}}}}{{{old ids|}}}}}" {{#if:{{{nexus id|}}}|data-nexus-id="{{{nexus id|}}}"}} {{#if:{{{cf id|}}}|data-chucklefish-id="{{{cf id|}}}"}} {{#if:{{{github|}}}|data-github="{{{github}}}"}} {{#if:{{{source|}}}|data-custom-source="{{{source|}}}"}} {{#if:{{{url|}}}|data-custom-url="{{{url}}}"}} data-status="{{Modding:SMAPI compatibility/entry/status|source={{{source|{{{github|}}}}}}|unofficial={{{unofficial url|}}}|broke in={{{broke in|}}}|status={{{status|}}}|no subtag=1}}" data-beta-status="{{Modding:SMAPI compatibility/entry/status|source={{{source|{{{github|}}}}}}|unofficial={{{unofficial url|}}}|broke in={{{broke in|}}}|status={{{status|}}}|beta unofficial={{{beta unofficial|}}}|beta broke in={{{beta broke in|}}}|beta status={{{beta status|}}}|no subtag=1}}" {{#if:{{{unofficial version|}}}|data-unofficial-version="{{{unofficial version}}}"}} {{#if:{{{beta unofficial version|}}}|data-beta-unofficial-version="{{{unofficial version}}}"}} style="line-height: 1em; {{#ifeq:{{Modding:SMAPI compatibility/entry/compare status|source={{{source|{{{github|}}}}}}|unofficial={{{unofficial url|}}}|broke in={{{broke in|}}}|status={{{status|}}}|beta unofficial={{{beta unofficial|}}}|beta broke in={{{beta broke in|}}}|beta status={{{beta status|}}}}}|different|background: #FFC;|{{#switch:{{Modding:SMAPI compatibility/entry/status|source={{{source|{{{github|}}}}}}|unofficial={{{unofficial url|}}}|broke in={{{broke in|}}}|status={{{status|}}}|no subtag=1}} |ok|optional=background: #9F9; |workaround|unofficial=background: #CF9; |broken=background: #F99; |obsolete|abandoned=background: #999}}}}"
+
 
| {{#if:{{{nexus id|}}}|[{{nexus mod|{{{nexus id}}} {{{name|}}}]}}|{{#if:{{{cf id|}}}|[https://community.playstarbound.com/resources/{{urlencode:{{{cf id}}}}} {{{name}}}]|{{#if:{{{url|}}}|[{{{url}}} {{{name}}}]|{{{name}}}}}}}}}{{#if:{{{name2|}}}|<br /><small style="font-size:0.75em;">(aka {{{name2}}})</small>}}
+
Define a few variables here:
| {{{author}}}{{#if:{{{author2|}}}|<br /><small style="font-size:0.75em;">(aka {{{author2}}})</small>}}
+
  {{#arrayindex:has_source|0}}     = set if a GitHub project name or custom source URL is set, else blank
|class="summary"|<!--
+
  {{#arrayindex:status|0}}       = compatibility status for the stable SMAPI/SDV release
 +
  {{#arrayindex:beta_status|0}}   = compatibility status for the beta SMAPI/SDV release
 +
 
 +
-->{{#arraydefine:has_source|{{#if:{{{github|}}}{{{source|}}}|1}}}}<!--
 +
 
 +
-->{{#arraydefine:status|{{#if:{{{status|}}}
 +
  |{{{status}}}
 +
  |{{#if:{{{unofficial url|}}}
 +
    |unofficial
 +
    |{{#if:{{{broke in|}}}
 +
      |broken
 +
      |ok
 +
    }}
 +
  }}
 +
}}}}<!--
 +
 
 +
Parse input arrays
 +
 
 +
-->{{#arraydefine:names|{{{name|}}}}}{{#arrayslice:altNames|names|1}}<!--
 +
-->{{#arraydefine:authors|{{{author|}}}}}{{#arrayslice:altAuthors|authors|1}}<!--
 +
-->{{#arraydefine:ids|{{{id|}}}}}<!--
 +
-->{{#arraydefine:warnings|{{{warnings|}}}}}<!--
 +
 
 +
Build output
   −
stable label (if different)-->{{#ifeq:{{Modding:SMAPI compatibility/entry/compare status|source={{{source|{{{github|}}}}}}|unofficial={{{unofficial url|}}}|broke in={{{broke in|}}}|status={{{status|}}}|beta unofficial={{{beta unofficial|}}}|beta broke in={{{beta broke in|}}}}}|different|'''1.3.28 (stable):'''&#32;}}<!--
+
-->
 +
|- class="mod" style="line-height: 1em; {{#switch:{{#arrayindex:status|0}} |ok|optional=background: #9F9; |workaround|unofficial=background: #CF9; |broken=background: #F99; |obsolete|abandoned=background: #999}}" <!--
 +
-->id="{{anchorencode:{{#arrayindex:names|0}}}}" <!--
 +
-->data-id="{{#arrayprint:ids|,|@@@|@@@}}" <!--
 +
-->data-name="{{#arrayprint:names|,|@@@|@@@}}" <!--
 +
-->data-author="{{#arrayprint:authors|,|@@@|@@@}}" <!--
 +
-->{{#if:{{{chucklefish id|}}}|data-cf-id="{{{chucklefish id}}}"}} <!--
 +
-->{{#if:{{{curseforge id|}}}|data-curseforge-id="{{{curseforge id}}}"}} <!--
 +
-->{{#if:{{{curseforge key|}}}|data-curseforge-key="{{{curseforge key}}}"}} <!--
 +
-->{{#if:{{{nexus id|}}}|data-nexus-id="{{{nexus id}}}"}} <!--
 +
-->{{#if:{{{moddrop id|}}}|data-moddrop-id="{{{moddrop id}}}"}} <!--
 +
-->{{#if:{{{github|}}}|data-github="{{{github}}}"}} <!--
 +
-->{{#if:{{{source|}}}|data-custom-source="{{#tag:nowiki|{{{source}}}}}"}} <!--
 +
-->data-url="{{#tag:nowiki|{{#if:{{{nexus id|}}}|{{nexus mod|{{{nexus id}}}}}|{{#if:{{{moddrop id|}}}|{{ModDrop mod|{{{moddrop id}}}}}|{{#if:{{{curseforge key|}}}|https://www.curseforge.com/stardewvalley/mods/{{urlencode:{{{curseforge key}}}}}|{{#if:{{{chucklefish id|}}}|https://community.playstarbound.com/resources/{{urlencode:{{{chucklefish id}}}}}|{{{url|}}}}}}}}}}}}}" <!--
 +
-->data-status="{{#arrayindex:status|0}}" <!--
 +
-->{{#if:{{{broke in|}}}|data-broke-in="{{{broke in}}}"}} <!--
 +
-->{{#if:{{{unofficial version|}}}|data-unofficial-version="{{{unofficial version}}}"}} <!--
 +
-->{{#if:{{{unofficial url|}}}|data-unofficial-url="{{#tag:nowiki|{{{unofficial url}}}}}"}} <!--
 +
-->{{#if:{{{pull request|}}}|data-pr="{{#tag:nowiki|{{{pull request}}}}}"}} <!--
 +
-->{{#ifexpr:{{#arraysize:warnings}} > 0|data-warnings="{{#arrayprint:warnings|, |@@@|@@@}}"}} <!--
 +
-->{{#if:{{{content pack for|}}}|data-content-pack-for="{{{content pack for}}}"}} <!--
 +
-->{{#if:{{{dev note|}}}|data-dev-note="{{{dev note}}}"}} <!--
 +
-->{{#if:{{{map local versions|}}}|data-map-local-versions="{{{map local versions}}}"}} <!--
 +
-->{{#if:{{{map remote versions|}}}|data-map-remote-versions="{{{map remote versions}}}"}}<!--
 +
-->{{#if:{{{change update keys|}}}|data-change-update-keys="{{{change update keys}}}"}}
 +
| {{#if:{{{nexus id|}}}|[{{nexus mod|{{{nexus id}}}}} {{#arrayindex:names|0}}]|{{#if:{{{moddrop id|}}}|{{ModDrop mod|{{{moddrop id}}}|{{#arrayindex:names|0}}}}|{{#if:{{{curseforge key|}}}|[https://www.curseforge.com/stardewvalley/mods/{{urlencode:{{{curseforge key}}}}} {{#arrayindex:names|0}}]|{{#if:{{{chucklefish id|}}}|[https://community.playstarbound.com/resources/{{urlencode:{{{chucklefish id}}}}} {{#arrayindex:names|0}}]|{{#if:{{{url|}}}|[{{{url}}} {{#arrayindex:names|0}}]|{{#arrayindex:names|0}}}}}}}}}}}}{{#ifexpr:{{#arraysize:altNames}} > 0|<br /><small style="font-size:0.75em;">(aka {{#arrayprint:altNames|, |@@@|@@@}})</small>}}
 +
| {{#arrayindex:authors|0}}{{#ifexpr:{{#arraysize:altAuthors}} > 0|<br /><small style="font-size:0.75em;">(aka {{#arrayprint:altAuthors|, |@@@|@@@}})</small>}}
 +
|<!--
   −
stable summary--><span class="data-summary">{{#switch:{{Modding:SMAPI compatibility/entry/status|source={{{source|{{{github|}}}}}}|unofficial={{{unofficial url|}}}|broke in={{{broke in|}}}|status={{{status|}}}}}
+
summary--><span class="mod-summary">{{#switch:{{#arrayindex:status|0}}
 
  |ok        = ✓ {{#if:{{{summary|}}}|{{{summary}}}|use latest version.}}
 
  |ok        = ✓ {{#if:{{{summary|}}}|{{{summary}}}|use latest version.}}
  |optional  = ✓ {{#if:{{{summary|}}}|{{{summary}}}|use optional download<ref name="optional-update" />.}}
+
  |optional  = ✓ {{#if:{{{summary|}}}|{{{summary}}}|use optional download.}}
 
  |unofficial = ⚠ broken{{#if:{{{unofficial url|}}}|, use [{{{unofficial url}}} unofficial update]{{#if:{{{unofficial version|}}}|&#32;(<small>{{{unofficial version}}}</small>)}}|{{{unofficial url}}}}}.
 
  |unofficial = ⚠ broken{{#if:{{{unofficial url|}}}|, use [{{{unofficial url}}} unofficial update]{{#if:{{{unofficial version|}}}|&#32;(<small>{{{unofficial version}}}</small>)}}|{{{unofficial url}}}}}.
 
  |workaround = ⚠ broken, {{{summary}}}
 
  |workaround = ⚠ broken, {{{summary}}}
  |broken-open  = ↻ broken, {{#if:{{{summary|}}}|{{{summary}}}|not updated yet.}}
+
  |broken     = ↻ broken, {{#if:{{{summary|}}}|{{{summary}}}|{{#if:{{#arrayindex:has_source|0}}|not updated yet.|not open-source.}}}}
  |broken-closed = ✖ broken, {{#if:{{{summary|}}}|{{{summary}}}|not open-source.}}
+
  |obsolete  = ✖ {{#if:{{{summary|}}}|{{{summary}}}|remove this mod (obsolete).}}
  |obsolete  = ✖ {{#if:{{{summary|}}}|{{{summary}}}|obsolete.}}
+
  |abandoned  = ✖ {{#if:{{{summary|}}}|{{{summary}}}|remove this mod (no longer maintained).}}
  |abandoned  = {{#if:{{{summary|}}}|{{{summary}}}|no longer maintained.}}
+
  |unknown    = {{#if:{{{summary|}}}|{{{summary}}}|not tested yet.}}
}}</span><!--
+
}}</span>{{#ifeq:{{#arrayindex:status|0}}|optional|<ref name="optional-update" />}}<!--
   −
beta summary (if different)-->{{#ifeq:{{Modding:SMAPI compatibility/entry/compare status|source={{{source|{{{github|}}}}}}|unofficial={{{unofficial url|}}}|broke in={{{broke in|}}}|status={{{status|}}}|beta unofficial={{{beta unofficial|}}}|beta broke in={{{beta broke in|}}}}}|different|<br />'''1.3.29 (beta):'''&#32;<span class="data-beta-summary">{{#switch:{{Modding:SMAPI compatibility/entry/status|source={{{source|{{{github|}}}}}}|unofficial={{{unofficial url|}}}|broke in={{{broke in|}}}|status={{{status|}}}|beta unofficial={{{beta unofficial|}}}|beta broke in={{{beta broke in|}}}}}
+
warnings-->{{#if:{{{warnings|}}}|<br />&#32;{{#arrayprint:warnings|<br />⚠&#32;}}}}
|ok        = ✓ {{#if:{{{beta summary|}}}|{{{beta summary}}}|use latest version.}}
+
| <small>{{{broke in|}}}</small>
|optional  = ✓ {{#if:{{{beta summary|}}}|{{{beta summary}}}|use optional download<ref name="optional-update" />.}}
  −
|unofficial = broken{{#if:{{{beta unofficial url|}}}|, use [{{{beta unofficial url}}} unofficial update]{{#if:{{{beta unofficial version|}}}|&#32;(<small>{{{beta unofficial version}}}</small>)}}|{{{beta unofficial url}}}}}.
  −
|workaround = ⚠ broken, {{{beta summary}}}.
  −
|broken-open  = ↻ broken, {{#if:{{{beta summary|}}}|{{{beta summary}}}|not updated yet}}.
  −
|broken-closed = ✖ broken, {{#if:{{{beta summary|}}}|{{{beta summary}}}|not open-source}}.
  −
|obsolete  = ✖ {{#if:{{{beta summary|}}}|{{{beta summary}}}|obsolete.}}
  −
|abandoned  = ✖ {{#if:{{{beta summary|}}}|{{{beta summary}}}|no longer maintained.}}
  −
}}</div>}}
  −
| <small>{{#if:{{{beta broke in|}}}|{{{beta broke in}}}|{{{broke in|}}}}}</small>
   
| {{#if:{{{github|}}}|[https://github.com/{{{github}}} source]|{{#if:{{{source|}}}|[{{{source}}} source]|<span style="color: red; font-size: 0.85em; opacity: 0.5;">closed source</span>}}}}
 
| {{#if:{{{github|}}}|[https://github.com/{{{github}}} source]|{{#if:{{{source|}}}|[{{{source}}} source]|<span style="color: red; font-size: 0.85em; opacity: 0.5;">closed source</span>}}}}
| <small>[[#{{{name|}}}|#]] {{#if:{{{hide-url|}}}|&#32;[{{{hide-url}}} o]}}{{#if:{{{links|}}}|&#32;{{#arraydefine:linkArray|{{{links}}}}}{{#arrayprint:linkArray|&#32;|@@@@|[@@@@ {{#expr:{{#arraysearch:linkArray|@@@@}} + 1}}]}}}} {{#if:{{{id|}}}||⚠ no id}}</small><noinclude>
+
| class="no-wrap"|<small><!--
 +
 
 +
anchor-->[[#{{#arrayindex:names|0}}|#]] <!--
 +
pull request-->{{#if:{{{pull request|}}}|&#32;[{{{pull request}}} PR]}} <!--
 +
developer note-->{{#if:{{{dev note|}}}|<abbr title="{{{dev note|}}}">[dev note]</abbr>}}<!--
 +
 
 +
validation-->{{#ifeq:{{#if:{{{curseforge id|}}}|1|0}}|{{#if:{{{curseforge key|}}}|1|0}}||<abbr title="The mod data is invalid: can't specify CurseForge key or ID without the other.">[invalid data]</abbr>}}</small><noinclude>
 
|}
 
|}
   −
==Usage==
+
==Examples==
===Templates===
+
===Compatible mod===
For a compatible mod:
   
<pre>
 
<pre>
 
{{/entry
 
{{/entry
Line 55: Line 101:  
</pre>
 
</pre>
   −
For a broken mod:
+
{| class="wikitable plainlinks"
 +
|-
 +
! mod name
 +
! author
 +
! compatibility
 +
! broke in
 +
! source
 +
! &nbsp;
 +
{{Modding:Mod compatibility/entry
 +
  |name    = Lookup Anything
 +
  |author  = Pathoschild
 +
  |id      = Pathoschild.LookupAnything
 +
  |nexus id = 541
 +
  |github  = Pathoschild/StardewMods
 +
}}
 +
|}
 +
 
 +
===Broken mod===
 
<pre>
 
<pre>
 
{{/entry
 
{{/entry
Line 64: Line 127:  
   |github  = Pathoschild/StardewMods
 
   |github  = Pathoschild/StardewMods
 
   |summary  =  
 
   |summary  =  
 +
 
   |broke in = Stardew Valley 1.2
 
   |broke in = Stardew Valley 1.2
 
}}
 
}}
 
</pre>
 
</pre>
 +
{| class="wikitable plainlinks"
 +
|-
 +
! mod name
 +
! author
 +
! compatibility
 +
! broke in
 +
! source
 +
! &nbsp;
 +
{{Modding:Mod compatibility/entry
 +
  |name    = Lookup Anything
 +
  |author  = Pathoschild
 +
  |id      = Pathoschild.LookupAnything
 +
  |nexus id = 541
 +
  |github  = Pathoschild/StardewMods
 +
  |summary  =
 +
 +
  |broke in = Stardew Valley 1.2
 +
}}
 +
|}
   −
For an unofficial update, use the broken-mod template and add these under the other fields:
+
===Unofficial update===
 +
For an unofficial update, use the broken-mod template and add these under <samp>broke in</samp>:
 
<pre>
 
<pre>
   |unofficial url    = https://community.playstarbound.com/attachments/201345000
+
   |unofficial url    = https://community.playstarbound.com/threads/updating-mods-for-stardew-valley-1-3.142524/page-62#post-3329160
 
   |unofficial version = 1.18.2-unofficial.1-example
 
   |unofficial version = 1.18.2-unofficial.1-example
 +
  |pull request      = https://github.com/Pathoschild/Example/pull/1
 
</pre>
 
</pre>
 +
{| class="wikitable plainlinks"
 +
|-
 +
! mod name
 +
! author
 +
! compatibility
 +
! broke in
 +
! source
 +
! &nbsp;
 +
{{Modding:Mod compatibility/entry
 +
  |name    = Lookup Anything
 +
  |author  = Pathoschild
 +
  |id      = Pathoschild.LookupAnything
 +
  |nexus id = 541
 +
  |github  = Pathoschild/StardewMods
 +
  |summary  =
 +
 +
  |broke in          = Stardew Valley 1.2
 +
  |unofficial url    = https://community.playstarbound.com/threads/updating-mods-for-stardew-valley-1-3.142524/page-62#post-3329160
 +
  |unofficial version = 1.18.2-unofficial.1-example
 +
  |pull request      = https://github.com/Pathoschild/Example/pull/1
 +
}}
 +
|}
 +
 +
==Usage==
 +
===Limitations===
 +
* Avoid using quotes (<code>"</code>) in argument values; use <code>&amp;quot;</code> instead.
 +
* The <nowiki>name</nowiki>, <nowiki>author</nowiki>, and <nowiki>id</nowiki> arguments are comma-separated. If the actual value contains a comma, use <code>&amp;#44;</code> instead.
    
===Main fields (shown above)===
 
===Main fields (shown above)===
Line 81: Line 193:  
|-
 
|-
 
| <code>name</code>
 
| <code>name</code>
| The normalised display name for the mod. Combine with <code>name2</code> (see below) to add alternate names.
+
| The normalised display name for the mod. Delimit alternate names with commas.
 
|-
 
|-
 
| <code>author</code>
 
| <code>author</code>
| The name of the author, as shown on Nexus or in its <tt>manifest.json</tt> file. Combine with <code>author2</code> (see below) to add alternate names.
+
| The name of the author, as shown on Nexus or in its <samp>manifest.json</samp> file. Delimit alternate names with commas.
 
|-
 
|-
 
| <code>id</code>
 
| <code>id</code>
| The latest unique mod ID, as listed in its <tt>manifest.json</tt> file. In rare cases where there are parallel current releases with different IDs, this can be comma-delimited. For very old mods with no ID, use <tt>none</tt> to disable validation checks.
+
| The unique mod ID, as listed in its <samp>manifest.json</samp> file. Delimit alternate/older IDs with commas (ideally in latest to oldest order). For very old mods with no ID, use <samp>none</samp> to disable validation checks.
 
|-
 
|-
 
| <code>nexus id</code>
 
| <code>nexus id</code>
Line 93: Line 205:  
|-
 
|-
 
| <code>github</code>
 
| <code>github</code>
| The mod's GitHub repository in the form <tt>owner/repo</tt>.
+
| The mod's GitHub repository in the form <samp>owner/repo</samp>.
 
|-
 
|-
 
| <code>summary</code>
 
| <code>summary</code>
Line 117: Line 229:  
| The unofficial update's version number, if any.
 
| The unofficial update's version number, if any.
 
|-
 
|-
| <code>old ids</code>
+
| <code>chucklefish id</code>
| IDs which identify older versions of this mod.
+
| The mod's ID in the [https://community.playstarbound.com/resources/categories/stardew-valley.22/ Chucklefish mod repository].
 +
|-
 +
| <code>curseforge id</code>
 +
| The mod's project ID in the [https://www.curseforge.com/stardewvalley CurseForge mod repository]. This is the value shown on the mod page next to "Project ID".
 +
|-
 +
| <code>curseforge key</code>
 +
| The mod's key in the [https://www.curseforge.com/stardewvalley CurseForge mod repository]. This is the mod key shown in the mod page's URL.
 
|-
 
|-
| <code>cf id</code>
+
| <code>moddrop id</code>
| The mod's ID in the Chucklefish mod repository.
+
| The mod's ID in the [https://www.moddrop.com/stardew-valley/ ModDrop mod repository].
 
|-
 
|-
 
| <code>url</code>
 
| <code>url</code>
| The arbitrary mod URL, if not on Nexus or Chucklefish. Avoid if possible, since this makes crossreferencing more difficult.
+
| The arbitrary mod URL, if not on a known mod site. Avoid if possible, since this makes crossreferencing more difficult.
 
|-
 
|-
 
| <code>source</code>
 
| <code>source</code>
 
| An arbitrary source code URL, if not on GitHub. Avoid if possible, since this makes crossreferencing more difficult.
 
| An arbitrary source code URL, if not on GitHub. Avoid if possible, since this makes crossreferencing more difficult.
 
|-
 
|-
| <code>name2</code><br /><code>author2</code>
+
| <code>warnings</code>
| Adds alternate mod and author names.
+
| Text explaining additional compatibility warnings about the mod (''e.g.,'' not compatible with Linux/Mac).
 
|-
 
|-
| <code>hide-url</code>
+
| <code>content pack for</code>
| Use this instead of (<code>url</code>) to move it into a superscript link. Mainly useful for broken mods with a workaround, so players don't automatically click through to the old mod.
+
| The name of the mod which loads this content pack.
 
|-
 
|-
| <code>links</code>
+
| <code>dev note</code>
| A comma-delimited list of URLs to add as superscript links. Mainly useful for linking to pull requests.
+
| Special notes intended for developers who maintain unofficial updates or submit pull requests.
 
|}
 
|}
   −
===Beta fields===
+
===Override fields===
When there's a Stardew Valley beta, some mods may have different compatibility statuses for stable vs beta. You can specify these optional fields to specify a different beta status.
+
These fields override information provided by the author in the <samp>manifest.json</samp> or mod page, so they should only be used as a last resort.
    
{| class="wikitable"
 
{| class="wikitable"
Line 147: Line 265:  
! purpose
 
! purpose
 
|-
 
|-
| <code>beta summary</code>
+
| <code>change update keys</code>
| Specify custom notes or instructions about the mod's compatibility. Should usually be blank.
+
| Overrides the [[Modding:Modder Guide/APIs/Update checks|update keys]] from the <samp>manifest.json</samp> or other compatibility list fields. Remove a key with <code>-</code>, add a key with an optional <code>+</code>, and separate keys with commas. For example:
 +
<pre>
 +
|override update keys = -Nexus:991, +Nexus:991@CFA
 +
</pre>
 
|-
 
|-
| <code>beta broke in</code>
+
| <code>map remote version</code>
| The SMAPI or Stardew Valley update which broke this mod (if applicable).
+
| When SMAPI performs an update check for the mod, this field overrides the version returned by the server. SMAPI will match the original version using [https://semver.org/ semantic rules] if it's parseable (''e.g.,'' <code>1.0</code> and <code>1.0.0</code> are equivalent), else it'll fallback to case-insensitive string comparison (''e.g.,'' <code>1.01</code> and <code>1.01.0</code> are ''not'' equivalent). If an invalid format is specified or the new version can't be parsed, the mapping will be ignored.
|-
+
 
| <code>beta status</code>
+
'''This is a specialised field; it's better to correct the mod page if possible.'''
| Whether the mod is compatible with the latest versions of Stardew Valley and SMAPI (see [[#Valid statuses]]). If not specified, it defaults to <code>unofficial</code> if an unofficial URL is given, else <code>broken</code> if <code>broke in</code> is specified, else <code>ok</code>.
+
 
|-
+
Mappings are specified with an arrow, and multiple mappings can be separated by a semi-colon:
| <code>beta unofficial url</code>
+
<pre>
| A page URL where the player can download an unofficial update, if any.
+
|map remote versions = 0.01 → 0.0.1; 0.0.1-beta → 0.0.1
 +
</pre>
 
|-
 
|-
| <code>beta unofficial version</code>
+
| <code>map local version</code>
| The unofficial update's version number, if any.
+
| Equivalent to <code>map remote version</code>, but for the manifest version.
 
|}
 
|}
   Line 176: Line 298:  
|-
 
|-
 
| <code>unofficial</code>
 
| <code>unofficial</code>
| The mod is compatible using an unofficial update. There's no need to specify this; if you also set <tt>unofficial url</tt> and <tt>unofficial version</tt>, you can remove the status field.
+
| The mod is compatible using an unofficial update. There's no need to specify this; if you also set <samp>unofficial url</samp> and <samp>unofficial version</samp>, you can remove the status field.
 
|-
 
|-
 
| <code>workaround</code>
 
| <code>workaround</code>
| The mod isn't compatible, but the player can fix it or there's a good alternative. A summary should be provided manually. If you also set <tt>unofficial url</tt> and <tt>unofficial version</tt>, you can remove the status field.
+
| The mod isn't compatible, but the player can fix it or there's a good alternative. A summary should be provided manually. If you also set <samp>unofficial url</samp> and <samp>unofficial version</samp>, you can remove the status field.
 
|-
 
|-
 
| <code>broken</code>
 
| <code>broken</code>
Line 189: Line 311:  
| <code>obsolete</code>
 
| <code>obsolete</code>
 
| The mod is no longer needed and should be removed.
 
| The mod is no longer needed and should be removed.
 +
|-
 +
| <code>unknown</code>
 +
| The mod's compatibility status hasn't been tested. This should only be used as a placeholder (''e.g.,'' when adding a new beta), it should never be used long since that defeats the purpose of the compatibility list.
 
|}
 
|}
   −
==Script==
+
[[de:Modding:SMAPI Kompatibilität/entry]]
This script generates the template call when run from a Nexus or Chucklefish mod page.
  −
<source lang="javascript">
  −
switch(location.host)
  −
{
  −
case "www.nexusmods.com":
  −
var url = location.origin + location.pathname.replace(/\/*$/, '');
  −
var name = $(".header-name").text();
  −
var author = $(".uploader a").text();
  −
var author2 = $(".header-author strong").text();
  −
break;
     −
case "community.playstarbound.com":
+
[[Category:Modding]]
var url = location.origin + location.pathname.replace(/\/*$/, '');
+
</noinclude>
var name = $.trim($("h1:first").contents().first().text());
  −
var author = $(".primaryContent[data-author]:first").attr("data-author");
  −
break;
  −
 
  −
default:
  −
throw `Unknown domain: ${location.host}`;
  −
}
  −
 
  −
var template = `
  −
{{/entry
  −
  |name    = ${name}
  −
  |author  = ${author}`;
  −
if(author2 && author2 != author)
  −
  template += '\n' + `  |author2 = ${author2}`;
  −
template += `
  −
  |url    = ${url}
  −
  |status  = ok
  −
  |summary =
  −
  |source  =
  −
}}
  −
`;
  −
</source>
  −
 
  −
[[Category:Modding]]</noinclude>
 
translators
8,438

edits

Navigation menu