This can be done a few different ways, but Content Patcher makes it pretty simple (at least, if you are already used to it!). The Wizard's door is checked manually in the game code, but CP lets you make all your changes/additions to game assets
dependent on all kinds of conditions -- including stuff like whether you've
received a particular letter.
So you could easily combine a
simple map edit with the
HasFlag
or
HasReadLetter
tokens to conditionally change a tile's properties. Example:
Code:
{
"Action": "EditMap",
"Target": "Maps/Forest",
"MapTiles": [
{
"Position": { "X": 90, "Y": 15 },
"Layer": "Buildings",
"SetProperties": {
"Action": "Dialogue @ keep out!"
}
}
],
"When": "HasFlag |contains=mouse_MyCoolLetter": "false"
}
should theoretically set Marnie's door to, instead of warping you, pop up a messaging saying, "<farmername> keep out!" unless you have received the mail called mouse_MyCoolLetter or otherwise been given that flag (like, say, during an event). On the map file itself you could just use keep the normal
LockedDoorWarp
.
(I just wrote this in the post and haven't tested it, so it's totally possible there is an error in it, but that's the general idea :P Feel free to ask if anything is unclear or you wanted to do it a different way, etc. The modding channels of the
Stardew Valley Discord server are also much more active and are very helpful.)