Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Stardew Valley docs #913

Merged
merged 3 commits into from
Feb 8, 2024

Conversation

erri120
Copy link
Member

@erri120 erri120 commented Feb 7, 2024

No description provided.

@erri120 erri120 added the Documentation This is related to our documentation. label Feb 7, 2024
@erri120 erri120 requested a review from a team February 7, 2024 13:13
@erri120 erri120 self-assigned this Feb 7, 2024

### C# Mods

C# Mods can target an incompatible version of SMAPI or of the game itself. Conflicts between SMAPI mods are logic/functionality based.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For design it might be good to have a list of possible incompatibilities:

  • Can a mod require a newer version of SMAPI?
  • Can a mod require an older version of SMAPI (or is forward compatibility guaranteed?)
  • Same for Game versions
  • Same for Mod dependencies versions
  • Can mods define other mods they are incompatible with in the manifest?
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mods can use the manifest.json to define a minimum SMAPI version. Since SMAPI versions are tied to game versions, you indirectly specify what game versions the mod supports.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SMAPI also offers a mod compatibility list: https://smapi.io/mods

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, so it assumes that a mod working with version 1.0 of SMAPI will work on 1.1, and same for mod dependencies. This is good info to know. Could you add it to the doc? Same for the Game being indirect dependency.

SMAPI ver-> Game ver on the other hand is exact? So new game version is not compatible usually?


SMAPI will first load the C# mod `Pathoschild.ContentPatcher`. The Content Patcher mod will get a list of owned Content Packs from SMAPI. This list is already sorted for dependencies. In the example above, `Foo` will be applied _before_ `Bar` because `Bar` has a dependency on `Foo`. If both `Foo` and `Bar` edit the same asset, the edits of `Bar` will be applied last.

Detecting if two Content Packs are in conflict with one another depends on the Content Pack Framework. Each framework has its own way of modifying existing, or adding new assets.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this to say that this out of scope for the app or that we need to find out that info for each framework?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's something I want to bring up today.

@halgari halgari merged commit 15bea93 into Nexus-Mods:main Feb 8, 2024
3 checks passed
@erri120 erri120 deleted the chore/update-stardew-vallley-docs branch February 8, 2024 14:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Documentation This is related to our documentation.
3 participants