Cross Compatibility

From Stardew Modding Wiki
Jump to navigation Jump to search

Cross compatibility means making your mod compatible with another mod. Those who play with mods often love to change as many things as possible. Obviously, you can't be compatible with every mod (for example, two mods that both change the farmhouse exterior will not both be able to apply changes at the same time!) But considering whether your mod and another mod come into conflict can be a good idea, as the fewer conflicts there are, the more people can enjoy your work.

Be aware of other mods

Check the most recent and popular mods to see if you were wanting to add a doorway at the same point they already used or if you both plopped an NPC in the same location. There's enough space at the Luau for everyone :)

It doesn't hurt to check the more popular mods, such as Project Populate Json Assets (which has a reference database) or search for the same type of mod (for example, if you want to add a grape crop, search Nexus for "grape") in order to avoid conflicts.

Remember that many mod users are Two Cake enthusiasts and will probably download both yours and the other mod if given a chance!

Understand how frameworks resolve conflicts

A "conflict" is when two or more mods try to edit or add the same thing.

Many frameworks, like Content Patcher, will resolve conflicts internally and choose one or the other for you (or sometimes a weird combination of both). Players can use dependencies to help the game choose which to load. For example, you may not want your mod to load the dinosaur reskin in your mod Animal Reskins if someone is already using your Cute Dinosaur Reskin.

Some frameworks, however, will just throw an error and refuse to load at all if they encounter a conflict. Json Assets is notorious for problems with duplicate items (objects named the exact same thing). There are a few ways around this. If you're making a Baking with Chocolate Mod and don't want to come into conflict with Tia's Chocolate Mod which has a "chocolate" object, you can call yours "choco" or "melted chocolate" or "baking chocolate". Alternately, you can set your "chocolate" object to simply not load if the mod user has both mods installed, allowing the other "chocolate" item to be used in your recipes. You can also use a package name, such as BakingChocolateMod.chocolate, and then set its display name separately.

Use Wiki resources

Look at the list of Birthdays and Custom NPC List and try to avoid duplicating NPC birthdays and festival locations with your new NPC, and add your own to the list after your mod is published.

Also be aware of NPC schedules and how they may differ across mods. Some mods choose to add a Configuration option depending on which other mods are installed (like SVE).

Create new areas instead of modifying existing ones

Consider creating a new area rather than updating a Vanilla map. When making a connector from the vanilla map to your new area, consider what might also be using that area. If you're doing a connector through the desert, search "desert" and check popular mods to see what else alters the desert.

Train Station and Bus Stations are two easy ways to connect to the vanilla map without having to worry about who's adding a door to which ridge. (And we need more bus stops and train stations!)

Stardew Valley Expanded

Play Stardew Valley Expanded at least once, or get a friend to playtest with SVE, because it is the mod players are most likely to ask about compatibility for. It is also one of the most difficult to assume compatibility for, as it makes many changes to vanilla maps. SVE does have an extensive wiki showing their maps and NPC changes that you can use as a reference.

Decide how much you care about story consistency

Story compatibility is tricky, as getting characters consistent across a wide variety of mods (even vanilla NPCs) is a bit too much to ask - everyone has their own interpretation of a character. Most (most) users won't bat an eye at slight inconsistencies across mods, though. Depending on what you're trying to make, you may decide to specifically go for compatibility with specific mods (e.g., "This mod is compatible with Canon Friendly Dialogue Additions") or make notes of specific incompatibilities (e.g., "My mod Lovey-Dovey Sebastian is not compatible with Serial Killer Sebastian".)

Just like fanfiction, alternate takes and versions of a character can exist! And while working with other mod makers to form character connections across mods can be fun, but don't stress yourself out about it, either.