#making-mods-general
1 messages ¡ Page 208 of 1
Now it won't happen, if I encounter it again I'll let you know.
Hey Pathos, JA had color.png images for flowers and such, do I only need to define TintColors for the crops now?
Then atra said it and I essentially went đ¤Ż
But I think my mod is ready for release.
That depends on the ColorOverlayFromNextIndex value you specify in Data/Objects:
- If it's true, then you need to add the untinted sprite (which I assume is what
color.pngwas) in the next slot after the object's main sprite. - If it's false and the item is tinted, the color will be applied directly to the main sprite.
Oh nice.
Ah, so I do need it, I do already have it on my objects.png sprite right next to the original sprite, thanks for that. Where is ColorOverlayFromNextIndex documented?

It's only on the 1.6.9 migration page currently; I'll move it to Modding:Objects now.
Oh cool thanks, I was gonna do that if you hadn't but epic.
hey @blissful panther can you do me a favor?
This page on the wiki has ide guides for...monodevelop (dead) and VS
can you add equivalent images for Rider?
I updated the wiki to point at just VS, Rider, and grudgingly VSCode
shouldnt VSCode also go in the windows bullet point too if Rider is also in both
what
im not sure what your emphasis is there for
grudgingly
is bad
vsc is not an IDE and microsoft is delusional for pretending it is a replacement for VS for C#
this is my opinion but I think this is maybe also atra's
(feel free to edit it to be different)
VSCode is terrible.
i mean, im not disagreeing, but i think that misses my point which was "it says VSCommunity and Rider for Windows, and Rider and VSC for Linux/Mac, why doesnt it say VSCommunity, VSCode, and Rider for Windows" (which was not too serious a point anyway, just an observation based on that screenshot since i dont even see that text on the wiki page)
VSCode is fine for python
maybe we should just say (worse) in front of VSCode and put it on both
Fair point.
someone had a launch.json that worked
i was only noting my own confusion as to why Rider was repeated for both but not VSCode, is all
can we go find it, and by that, I mean find a chue
Rider and VS are both fully featured
unless a chue is a vim
The wiki should just suggest the best option(s). If someone already prefers VS Code and has it set up for C#, they won't need the recommendation; if they don't, they probably shouldn't do that.
The annoying thing is that microsoft itself will recommend that
good idea to remove MonoDevelop from the wiki instructions 
Idk if people will run into that just like.,,, out on the internet
They certainly tried to cram it on me during the dying months of VS
So I don't have to do anything else other than specifying TintColors for my crops? Also thanks for letting me know about that.
It's almost impossible to find the Migration guides on the wiki when you're searching for them unless you put Modding: infront of Migrate.
Assuming you set "ColorOverlayFromNextIndex": true in your Data/Objects entry, yep that should be all you need to do.
Awesome, thanks for the help!
(The migration guides are listed on the main index page.)
I also hope they end up updating the wiki sooner than later, search indexing issues like I mentioned are fixed in later versions. And so are all the security vulnerabilities.
is there a When Has Value condition to identify if an npc is a marriage candidate or not???
where can i check for something like this?^
Uh... I know in their character data there's a "CanBeRomanced" thing
would it be "HasValue:{{CanBeRomanced}}": "true"?
ohhh yay i found that on my own ^_^
i don't know of a way to check the value of data fields like that in CP
Im not quite sure how you would actually go about doing Stuff to the json to make it work though
no, that will not work
oh man, is there any way for CP to recognize romanceable token? 
romanceable isnt a token
oh, how would i be able to do it then?
a mod could provide a token for that (maybe button is already adding it?)
you cannot do it with base CP
oh thank you
i do not add any tokens
oh, my mistake
Is this like for your divorced spouses
Esca's GSQ token may be able to do it
(the only thing BETAS adds that is CP specific is a PatchUpdate action, otherwise there is nothing requiring content patcher at all in it)
hopefully npc's from different mods dont have the same name
Can you not just check for when relationship with x npc is divorced (?) or is that not how it works
i had that and it does work but i'd need to do it for every npc and i got over 100 on the roster rn lolol

they won't have the same internal name (not possible), and i think all of CP's character tokens use that and not display name
if the name of the NPC you care about is in a dynamic token or config token or something, and is just a single name, you can possibly use trigger actions to send mail flags that you can then check
Hopefully their internal names are unique? I haven't seen any whose names overlap before
i dont know off the top of my head if there is a GSQ though that checks if an NPC is romanceable
the internal names from sve, rsv, were just standard names so i kinda just assumed the rest of the mods were 
SVE and RSV are old and from before it was convention
as ichor says it is literally not possible for different NPCs to share an internal name
kk ill just check the top left of npc's in lookup anything from every mod just in case then
before it was convention to add the modid* i mean in case it wasnt clear
i didnt realize it hadnt been said
ah okay so the ModID part will show in the top left of lookup anything? if it applies
if the NPC maker added it, yeah
thank you!
the convention is not commonly followed for NPCs, but most newer ones have some sort of convolution in there to keep them unique (even some old ones did)
e.g. JeanCat and JortsCat (they predate the convention)
(there doesnt seem to be a GSQ to check romanceable status anyway though so it seems a bit moot)
i guess my point is there's no guarantee of what the internal name is
Best to just check in the mod files
no
that would be the displayname
you need to find where they are editing Data/Characters
ahh okay thank you!
ah yep downtown zuzu uses unique string id convention for names 
For curiousity, what mod are you making, Anaira?
i made a child custody mod!
i got bothered that npc's divorce and just forget about their kids
i have them come on sundays now
Aah, that's cool. And all these are config for us to decide who the ex-spouses are?
yep!! thanks to tia it makes it a lot easier for me lol
i have npc's included from sve, rsv, es, vmv, dz, mt, pc, stoffton
You're making custom dialogue for all of them?
no dialogue just warping in farmhouse
Aah.
Hmm, I wonder if there' a way to determine who the divorced parents are so you don't have to manually set config for so many NPCs...
every npc i see in lookup anything just has their first name
no i did that earlier thats why i had to change it to config 
Oh, what's the problem?
doesnt recognize the kid's parent
Oh yeah huh, it can only recognize whether the NPC is divorced or not.
yep yep
and i'd have to write a unique line for every npc
tia's huge brain of config just works a lot better lolol
i do wish there was a way to tell if npc was romanceable tho 
Wouldn't they already be romanceable if you're able to divorce them?
i mean so that npc's with same names as non-romanceables would be pulled
since most expansion mods dont have unique ID
That wouldn't happen. All expansions have unique ID or they'd not work.
Like there is no other NPC with Claire as their internal name, so SVE's Claire is already unique.
ok just making sure, i wouldnt be surprised if there was a non romanceable npc in one expansion named John 
If somebody want to make a second NPC named Claire, they'd have to use MyMod.Claire or Claire2 or something as her internal name. And thus both Claires would still be unique.
I think there have actually been mods across the years that have used the same ID for NPCs sometimes but I don't know of any existing clashes.
I'm talking about different expansions with different internal names
but i think im fine
76 marriage candidates in my mod
You can have a gus expansion where every new npc in the mod is also named gus and have them still be unique internally
Yes, NPC internal names need to always be unique across all different expansions or they wouldn't be compatible.
Can you romance John from Passerby Cemetery? I thought he was nonromanceable.
the mod author said in comments he was so idk
Huh maybe I just never noticed because I chose not to lol
Yar, The Northern Gulf expansion has an NPC named Thomas, which clashed with Mineral Town's Thomas.
oh no, another expansion? 
So TNG changed their Thomas's internal name into TNG.Thomas.
!unpack
Follow this guide to unpack the game's content files in order to see and explore how the game data is structured.
It's helpful when making your own mods, or just to learn about how the game works!
it seems like TNG isnt compatible with 1.6 anymore?
can someone explain how this works please?
(phew)
Yet.
(Mineral Town) also wasn't compatible with 1.6 until just a week ago. đ
What do you need explaining? The reason for it and the steps for how to do it are both at the link.
theres a big announcement in comments that that was the final version for tng lol
its sticky posted
The final version for 1.5.
ahh i see
what does unpacking do exactly?
Are you asking me this after reading the wiki page in the link?
But honestly, I don't think you'd need to fret about adding every NPC from every mod. If I were you, I'd just add NPCs from mods I actually use and then consider adding more if people requested it.
yeah im done for now
Else, have you seen The Daybreak, that expansion with 200 characters...?
It would be cool to get a list of NPCs automatically from installed mods but I don't know how to get them into the config. I assume it's not actually possible to.
Alternatively, just use a user input field in config instead of a dropdown, then provide the list of names in an Article.
You'd get so many bug reports with that because people wouldn't realise you have to use internal names and would manage to get them wrong if they did. Plus if you had to include a list of them anyway why not in your config already?
Because copying and pasting i18n names and keys is a bit more boring. đ
... I have so much power, i could finish and upload a mod right now
well i have a problem anyway, im testing each mod.. RSV and SVE worked so now i tried ES and DZC right now and they arent loading
Aren't loading?
Oh.
You can't use the mod Id token
oh for the allow values?
{{ModId}} is DTZ's own mod id.
You need to type out the mod id
Mod id will resolve to your mod's id
oh, how would i change it so that its DTZ's?
Look in dtz's manifest
You need to look in DTZ's CP manifest.
Replace the token with the actual unique id
so {{DTZ.DowntownZuzuCP}}_Cal?
Without the brackets.
No, the curly braces are indicative of a token which this will not be
For Condition field, can we put an ANY inside an ANY?
Like "ANY \"SEASON Winter\" \"SEASON Spring, ANY \"DAY_OF_WEEK Friday\" \"DAY_OF_MONTH 3\"\""
ill say "tentatively yes but i get lost in the quote sauce trying to parse it so i cant guarantee theyre actually escaped right"
(Sorry, I know you've answered but I was already in the middle of typing this example and wasn't willing to just erase that.)
(you can use single quotes for the outermost quotes if it makes it easier)
aside from the weirdness of nested quotes, yes, "ANY" is just a condition that takes any number of string arguments and runs them recursively
so it can call itself any number of times
(whoops, opened in a tiny window and didn't scroll up enough, basically redundant
but can confirm)
Every time I need to do this ANY thing, I need to make sense of the logic all over again...
But in any case, that's good to hear, thanks all!
ughhhh its been like 2 hours and my mod still hasnt been verified
Is it in .rar?
I has done a thing. I got Junimos that pop out and play with crib babies. But you can see it's just a bunch of emotes and running around and a few meeps. I'm looking for ideas for the crawler and toddler stage, any ideas? (Note, I have no kinda art skills.)
possibly one of the cutest things ive seen
no really its so cute bc kids are always alone all day 
One thing I love from the base game is the high-speed toddling. I'm trying to conceive a way to add on to that. The current toddler logic is just to randomly pick a clear spot in the house and have the toddler run to it. Perhaps I could find a thing that looks like a ball and have the Junimo huck it somewhere and the two race to get to it.
Anyone know where I can find this in the unpacked game files? In the event it's "specificTemporarySprite shaneCliffs"
Yup just above the word "Max" in cursors
thank you
Sigh it's always cursors
-# It's not always cursors. Sometimes it's spring objects...
Hey I just struck gold in bobbers.png for the ball I was thinking of having the kids kick around.
#mod-showcase message Yayyy! I can sleep now 
big thanks to tia and button for helping me a lot
and everyone else in here! <3 good night 
Somebody who is good at logic please give me assurance. DAY_OF_WEEK Friday, DAY_OF_WEEK Saturday would always be false, and ANY "!DAY_OF_WEEK Friday" "!DAY_OF_WEEK Saturday" would always be true, right?
correct
GSQ, GSQ (with a comma) is an AND
ANY "GSQ" "GSQ" is an OR
Day is Friday AND Saturday
Day is Not Friday OR Not Saturday
where are code files for different animals located? like i see the base farm animal within stardewvalley.dll, but i can't find the code for specifically the pig
!unpack
Follow this guide to unpack the game's content files in order to see and explore how the game data is structured.
It's helpful when making your own mods, or just to learn about how the game works!
Data/FarmAnimals
are you looking for assets or code?
code
Yar, I'm just always confused all over again by what happens in "NOT something OR NOT something" / "NOT something AND NOT something". đ Thank you for the assurance.
this helped though, thank you!
(with the promise of "this isnt pedantic but i think this will help")
it isn't "OR NOT" it is just "OR". it will likely confuse more if you group up the OR with the not
same with the AND
the "not something" is always parsed on its own, so e.g. "!DAY_OF_WEEK Saturday" means "not saturday" which, if its monday, is just "true"
Don't forget de morgans
so itd be "true" OR "true" for example
was just gonna say de morgans
but I don't feel like writing it out
!a OR !b = !(a and b)
de morgans is fine until you start making me write complex proofs to go from one thing to another
(those admittedly werent that bad either but man did they take up a lot of space when i needed to show all the steps)
and conversely,
!a AND !b = !(a OR b)
Yes! I think this is always my conclusion every time I try to logic this out, but after some time I just need to be assured I'm not remembering wrong and then I go through the process all over again.
logic proofs are always annoying
they're never as elegant as the nice maths proofs
(what i really hated was anything with âˇ)
oh I liked that
but that's probably the maths half of my degree talking
"Condition": "!PLAYER_HAS_MAIL Any ccMovieTheaterJoja, ANY \"!PLAYER_HAS_MAIL Any ccMovieTheater, !{{Clerk|contains=Naufal}}\" \"PLAYER_HAS_MAIL Any ccMovieTheater, ANY \"{{HasMod|contains=FlashShifter.StardewValleyExpandedCP}}\" \"{{HasMod|contains=LemurKat.JulietHouse.NPC}}\", !{{Ticket|contains=Naufal}}\" \"PLAYER_HAS_MAIL Any ccMovieTheater, !{{HasMod|contains=FlashShifter.StardewValleyExpandedCP}}, !{{HasMod|contains=LemurKat.JulietHouse.NPC}}, !{{Ticket|contains=Naufal}}, !{{ConcessionOh|contains=Naufal}}\"", In other news, I have made a monstrosity that would surely confuse myself when I get back to it in the future.
on its own is fine, just remembering all the other rules in order to use it..
memory not so good
Oh god
i think you should consider single quotes
We're talking about the implication operator, right? just to make sure we aren't talking about two different arrows
the if and only if one
Okay, single quotes is like a'?
correct
if you use single quotes, then regular quotes dont need a \
(but single quotes will then need a )
.. a \
avi has desensitised me to content pack madness but this is nearly on her level for some things
I'm still trying to figure it out
Oh god
Can you do a CP map patch only while an event is playing? or better to use changeToTemporaryMap and just load a whole map replacement?
So like this? "Condition": '!PLAYER_HAS_MAIL Any ccMovieTheaterJoja, ANY "!PLAYER_HAS_MAIL Any ccMovieTheater, !{{Clerk|contains=Naufal}}" "PLAYER_HAS_MAIL Any ccMovieTheater, ANY "{{HasMod|contains=FlashShifter.StardewValleyExpandedCP}}" "{{HasMod|contains=LemurKat.JulietHouse.NPC}}", !{{Ticket|contains=Naufal}}" "PLAYER_HAS_MAIL Any ccMovieTheater, !{{HasMod|contains=FlashShifter.StardewValleyExpandedCP}}, !{{HasMod|contains=LemurKat.JulietHouse.NPC}}, !{{Ticket|contains=Naufal}}, !{{ConcessionOh|contains=Naufal}}"',
The Notepad++ doesn't like this, though. đ
oh wait
ok minor correction on my part my apologies
the first layer of quotes will no longer need to be escaped
but i think bc i didnt notice it means your original would not have worked anyway.... i think
Ticket contains naufaul or concession oh lord
Tbh this is why in additional special orders I just edited my "Condition" with text operations
i actually dont think my brain is capable of parsing this to know if this condition actually even works
It works! I've tested it!
like... as you intend it to?
Yeah.
Sure, it's more verbose. But I can ducking read it
with all the logical combinations
interesting
i was just going to suggest turning some of these hasmod conditions into dynamic tokens
but if it works it works
That would've been my next step if it didn't work.
I always have to prioritise readability because even if I can understand something enough to write it the first time there's no guarantee I will ever understand it again lol
For me im mainly still looking for a way in Monaco/vscode to be willing to accept the sheer number of non standard explicitly against json spec that most content packs use and newtonsoft accepts
I was doing experimentation ages ago with a json validator rewrite that was built on Monaco to do real-time feedback.
And from there explore a vscode extension for further integration
Quick question, I'm working on a mod with a custom shop and I wanted to make it so clicking on the vendor would open a dialogue box with a choice of buying something or leaving.
Choosing yes would open the shop menu, and choosing no would just close the dialogue box and nothing else would happen.
Can this be done purely through Content Patcher or is C# required for something like this?
Can anyone tell me what the reason for, when making a custom object, i need to define both a type and a category? What's the difference/use of either?
Not sure how you'd manage it, but you would need to use C#.
doesn't jsonl cover most of them?
if you don't mind me asking, why not just open the shop menu directly without a confirmation dialogue? players can just exit out if they want, so the confirmation dialogue seems like an extra step for no practical change
also, opening the shop directly wouldn't require any custom stuff to be set up (I'd imagine it's possible to do via content patcher either way, possibly using BETAS, but it would still be a lot simpler to just open directly)
they have a lot of overlap but have custom stuff associated, i don't however exactly remember the details
https://stardewvalleywiki.com/Modding:Items#Categories for the categories
okok so it's a god-works-in-mysterious-ways kinda situation
it's "only some chosen ones are initiate to the mysteries" (you can read the code or have some clues in docs)
Hey! Does anyone happen to know where I can find the data for the dialogue immediately after the wedding ceremony? Where they stand outside and say something like âthe ceremony was wonderful wasnât it dear? Well, best get to work.â I wanna change it for my custom npcs mostly because âdearâ just doesnât match their personalities but I canât seem to find it anywhere in the unpacked content
you searched with a "search in all the folder" feature?
Oh man, that's one of those dialogues. That's in the strings from c s files thing isn't it
It was in a different section in one point five point six, not sure if its in the same area one point six.
Thatâs it!! Thank you so much it was in strings from cs files
I think you can probably use custom fixed dialogue to change it for only your spouse rather than change it for everyone.
Never mind
I forgot the key is n p c after wedding
Yeah weirdly I did that first but when I tested it it didnât work. He just didnât say anything
I'm used to having to use CFD For those keys
Yo, I'm testing the new Lights system for FF, and I can't help but notice that Abby's window in the Spouse room stays lit up when I use a debug time 2000 command, is this normal?
Hi,
sorry if this is the wrong channel to ask for this kind of help.
Today, I got an e-mail from GitHub that my codespace is approaching the end of its retention period, so it will get deleted within a week. They sent me a link, under the "Continue using" text, but that link is not accessible and gives their error 404 screen.
My question is simple yet hard - how to prevent GitHub from deleting my repo?
The link to it is here: https://github.com/DenisSilent/Eleanor
Please note that I am a beginner on GitHub, so expect questions like where some setting is.
Don't hesitate for asking more info!
This Github repo is a repo for upcoming NPC Eleanor, which is a mod created by StrojvedouciDenis (a.k.a. DenisSilent or Denis001 (at Discord)) for game Stardew Valley. - DenisSilent/Eleanor
is there a tool for viewing the context of stardew dialogues? (asking for translations)
Do you mean something like this?
https://www.nexusmods.com/stardewvalley/mods/21317
not that (still thanks!)
Not to sound dramatic but
That email sounds like a scam
I had a free "pro" GitHub for education purposes, which recently came to an end
Since I had private repo, I was worried about them, but it looks like I can keep them as is
So yeah, check whether or not that email is legit
we're translating in raw JSON but sometimes it's confusing because we don't know the context behind a certain string
Here is what the email looks like. I suppose it is an official e-mail.
You mentioned you had a free "pro" GitHub for education purposes. Does that mean that if I want to have a public repo, it is not free?
I dont know what codespaces are, but it seems to be a cloud coding thing
your repo will not be deleted
No, GitHub is free, but there is a "pro", paid GitHub licence allowing you more control over your repos, notably having fully private repo
Because I was in school, we had a licence for a free github pro
only whatever VM you're using to code online
Err... I am using desktop VS Code, connected with add-ons to my GitHub account.
And btw, I created a codespace today, after the e-mail came.
(GitHub Codespaces is essentially a code editor + IDE in the cloud; it's separate from the Git repo.)
Some quick search is telling me there are scams going around on GitHub where, if you get mentioned anywhere on GitHub, you may automatically receive an email from a real GitHub which is actually phishing
So even if it looks like it's from GitHub, it may be malicious
I don't really understand how that work, but be careful when clicking links on mail
So, I asked ChatGPT (https://chatgpt.com/share/67ab7371-5b54-8003-9830-b97b16a28d77), and it told me that they are NOT planning to delete my repo. So I guess I shouldn't worry?
Don't worry, I am extra safe on the internet. But thanks for noting and reminding that.
Question - should I delete the codespace I created like half a hour ago? I never used it and I'm not even planning to.
probably yeah, lets not create internet waste
Hi @ivory plume. I noticed Automate's special behaviors for Junimo Chests only handles chests with the SpecialChestType JunimoChest. Would it be possible for Automate to handle other placed chests connected to machines using GlobalInventoryId?
So, I guess it is all OK, then, and I can continue with my SV coding. Sorry for potentially overreacting/panicking, but I think it's always better to stay safe and ask someone than wonder about what happened and why.
codespaces are those editors you can open inside github that look like vscode. You can ignore.
ChatGPT is unlikely to be a reliable source of information on anything that could be termed a "recent event" â in this case it would be much better to go to Github's own website to check their policies. Regardless it sounds like this isn't an email to worry about unless you mistakenly kept anything important in your codespaces, which it sounds like you didn't.
I mean, ChatGPT also isn't fully reliable for non-recent events, but there's much sounder reasons to believe it could be correct in those cases
Making a custom starter farmhouse furniture placement for my new map and I wondering if there was tool or something out there that makes this easier, rather than me looking up the item id of each piece and coding it in individually
are you familiar with the item id website? you'd still have to look them up but it's a bit easier to do it through that
thats what ive been doing. i was just wondering if there was an easier method x.x but i suppose not
there still might be tbh, I'm far from an authority on this đ
(You can also search item IDs through the SMAPI console window, but probably not much different from using the item IDs site aside from always being up-to-date.)
General support for GlobalInventoryId (e.g. so there's a separate network for each one) is definitely on my to-do list, but not sure when I'll be able to get to it since it'll probably require some rewriting in Automate's code.
I was doing a bit of initial research, and I wonder if doing something like changing MachineManager.JunimoMachineGroup into a Dictionary<string, JunimoMachineGroup> would be along the lines of where you see that future implementation going. The main issue being how to handle intersecting machine groups.
Probably something like, any connected machine groups combines them all into one.
(I think you're making a joke, but just in case, ChatGPT does no fact checking whatsoever so please do not rely on it for accurate answers
)
Yep, it would probably be something like List<GlobalMachineGroup> (not indexed by inventory ID since one group may include multiple).
Yeah, I know that, but either way, I wanted to see what it'll come with. Of course, I don't rely on responses from ChatGPT or any other AI, but I thought I'd give it a try.
With its info about the 404 error, it makes sense to me why did that happen - because I had no codespace for that (nor any other) repo.
So at least it helped me in some way...
!itemids
So this would probably deprecate JunimoMachineGroup and properties like IsJunimoChest or IsJunimoGroup. I'd be interested in taking an initial stab at this as a Draft PR. I think the biggest challenge is how to rebuild when global inventories are added/removed since that would possibly need to queue a bunch of locations.
i cant remember how the game adds in furniture. is it the top leftmost tile of the placeable part or the topleft most part of the item itself?
Sure, a PR would be welcome! The rebuild would probably work essentially the same way it does for Junimo chests now, just with multiple global groups to check.
topleftmost tile of the furniture's footprint
ty
also - unfortunately there is no easy way to set up custom starter farmhouse furniture, but i do remember furniture framework displaying the coordinates of placed furniture in the SMAPI console (but i think it's not available anymore bc FF is yet to be updated, afaik)
Hey Pathos - just wondering if the Data Layers API is something that could still possibly happen I know you'll address PRs in whatever order suits you (as would I), but if it's something you've changed your mind on then that would be good to know so that I can turn my own custom layers into their own mini-mod.
(I don't really care that much about the Automate PR since that was for something far-off in the future anyway, but the Data Layers change is one that I actually use for runs, and since the mod is receiving multiple updates, it's getting harder to keep in sync.)
Currently the new 1.6 furnitures which has text in the item ID cannot be spawned as starter farmhouse furniture. afaik this is not something that could be worked around at all (or maybe until the next game update?)
dangit. sadly there's no numbered alternative that would work...
so im just gonna have to change the layout
Oh, I can do that! I'll even switch to dark mode for it.
Also, shouldn't we really remove the MonoDevelop section? Does it even support SDK-style projects?
Sorry for the long time it's been open! Yep, I still plan to merge that PR (and I'll handle rebasing it to fix the merge conflicts).
Just for context to avoid the impression I've been ignoring your PR: I was focused on Stardew Valley 1.6 development until recently, so I'm still catching up on the big PRs. I only merge one or two of those at a time since I'll often need time for testing, documenting, refactoring, and follow-up updates. That especially applies to public API changes, since that can't easily be changed after it's released (so I'll want to make extra sure it's perfect first).
My high-level short-term task list since I switched back to modding is:
- [X]
clear backlog of Nexus messages(done!); - [X]
initial updates for all the mods I maintain, including a few big PRs(done!); - [X]
refactor & update all of CherryChain's mods(done!); - [X]
rewrite Stardew Aquarium to mostly use Content Patcher(done!); - [X]
create Central Station(done!); - [ ] follow-up updates for Central Station (mostly done);
- [ ] next set of updates for my own mods, including at least one more big PR (in progress).
I'm not sure if the Data Layers API PR will be next until I review it in detail, but it probably will based on a quick glance through the PR list.
+@merry rampart (That's fixed in the upcoming Stardew Valley 1.6.16, but there's no estimated date for that release.)
oh, nice! thank you!
sweet!
Thank you!!! Yeah, probably best to remoce it
Petition to replace all of the instructions with dotnet new classlib --framework "net6.0" -o "MyStardewMod" /j
All you need is dotnet and nano anyway.
Who needs nano when you can ```bash
cat > ModEntry.cs << EOM
using StardewModdingAPI;
public class ModEntry : Mod {
public override void Entry(IModHelper helper) {
Monitor.Log("Hello world.", level: LogLevel.Info);
}
}
EOM```
Seeing Khloe typing makes me think of how I've wanted to include the manifest builder for the longest time in these instructions. 
I, for one, think that would be a good addition to the instructions, but I am admittedly biased.
(I've thought about supporting tokens like $MSBuild:Version$ in manifests automatically, but at this point I don't want to just invalidate the purpose of the manifest builder package.)
I would be pro including it
Not as A Step. But like an optional
It's sooo good
Okay, Rider instructions are in.
I also didn't remove MonoDevelop, because apparently it does sort of support .NET 6?
I should switch to rider...
it might technically support it, but I second the sentiment from earlier that we shouldnât be recommending it to anyone
if someone is already on it then they donât need the recommendation, and if they arenât, then they should be using, well, anything else
Alright, thanks for the update. Not trying to influence your priorities! Just wanted to get a handle on where things are realistically going.
I mean, if those instructions still work lol
Tbh I will not be checking
FWIW, I include it in the Stardew UI instructions, so at least 3 people have seen it.
I miss the "Let's put all stardew mod code in a single repository" repository so I could spy on people and see how many are using manifest builder, lol
Good evening!
I have a question, if I want to put two decorative fish in my greenhouse with the pond I can't put them in that pond because it is an indoor?
You could still use the smapi mod dump to do the same
I was just doing the same! 
Please, does anyone know if you can put fish on typical indoor maps?
@rancid musk
From the big ol' monthly mod dump...
Found: 423 items (300.72 KB)
Text: 423 hits
Searched: 1,250,481 items (80.76 GB)
Pending search: 0 items (0.00 KB)
Checked: 1,651,577 items (80.76 GB)
Problem quite a few of those are sort of... false hits, because the mod dump includes files other than the main release file on Nexus, so some are duplicated.
With... I think most of the duplicates removed, 134 mods!
You can absolutely add fish to the location data of indoor locations, I think all you'd need to do is edit the "Fish" field in the Greenhouse location in Data/Locations. If anyone else knows a reason for that not to work they can lmk
What is this counting
Sorry if i missed prior convo
@late dust when you say decorative fish, does that mean you want them to visually appear in the water source? Because that's something which is added by Visible Fish, but not vanilla behavior.
Or do you mean a Pond like the buildable ones
Mods using Khloe's ModManifestBuilder package, because it's super underused.
I tried with CP and when I go to look in the greenhouse there are no fish
I was under impression that everyone with more than 3 c# mod used it
It's in my dotnet template 
The vanilla game does not visually add fish to water sources so your location must be a buildable game location with a Pond building for it to appear in the vanilla game.
No I mean having fish, then it's normal that if you also have visible fish the fish can be seen
(i dont,)
Hmm. Today might be a good day to dive back into the code generator project.
That sounds like a question for the mod author of Visible Fish. I'm not sure whether it handles indoors or not, but it doesn't appear to be open sourced so it's not something that anyone can easily research.
You don't understand, I'm interested in there being fish that can be caught in that pond
I do understand, you're describing behavior that the vanilla game doesn't support anywhere. You don't normally see fish in water in the vanilla game.
Does your map have the proper tiledata for the water tiles?
Just to clarify in general: You aren't able to catch fish there at all, right?
And thats what you want to fix
Nope just garbage
Did you add the fish to Data/Objects and Data/Fish?
Sorry exactly
Oh I see now, when you say decorative, you didn't mean as a decoration/visual, but non-decorative as in catchable.
Do you have treat as outdoors
{
"Format": "2.4.0",
"Changes": [
{
"Action": "Load",
"Target": "Maps/Greenhouse",
"FromFile": "assets/Serra2.tmx"
},
{
"Action": "EditData",
"Target": "Data/Locations",
"TargetField": [ "Greenhouse", "FishAreas" ],
"Entries": {
"GreenhousePond_Tigertrout": {
"Chance": 1.0,
"Season": null,
"Id": "(O)699",
"ItemId": "(O)699",
},
"GreenhousePond_Bluediscus": {
"Chance": 1.0,
"Season": null,
"Id": "(O)838",
"ItemId": "(O)838",
}
}
}
]
}
I forget if that was required
Is Decorative a term that means something different in the map data fields?
You want to target "Fish" not "FishAreas", I think. Fish areas is used if you want different fish in different areas of one location
I'm not really sure, I think it defaults so it isnt needed
yes
But yes see my example 
oh crab pots, true
Thanks, I'll take a look now
I canât find the mod idea depo in the pins, can someone give me the link?
(just fyi, itâs repo, not depo) https://github.com/StardewModders/mod-ideas
I donât know if itâs actually in the pins
ty!
(It's the third link in the main pinned message.)
I have another silly mod idea in mind 
I am on mobile so sometimes some pins donât show
(Pins are even worse to find in threads on mobile!)
mobile discord just sucks all around
And the desktop refresh is coming.
Is there any way to make a conversation topic response have higher priority than some of the marriage dialogue? Specifically the normal "Rainy_Day_xx" dialogue lines
I thought they automatically would because they are more specific, but the Rainy_Day stuff went first and I didn't see the conversation topic response until that evening
hmm, usually CT do indeed have higher priority
but marriage dialogues must have some special behaviour
if it was just one key i would suggest editing the key based on the CT being active
Maybe it's because it was a CT_memory_oneday thing?
no i bet more on marriage having different way to be added since it varies based on time of day
Alright, I can go ahead and make a different set of Indoor or Rainy stuff based on the CT being active I guess. I was really trying to get a line to show up after the first wedding night, so _oneday seemed perfect
Doesn't have the same impact if said in the evening xD
marriage dialogue is checked first right before CTs
note that oneday will last 4 days
afaik
(just in case this matters)
It does, so thanks for the reminder
And crap đŚ
Alright, will rework with new knowledge. Thanks guys!
What are these Shane lines from? "event_room1": "Okay... that'll require a great script. Maybe I'll ask Elliott for advice next time I see him at the saloon.$s", "event_room2": "Sounds great. I'll have to create a bunch of practical effects to make it look cool.",
Don't recognize the lines and I'm writing an event that may have something to do with this, maybe?
probably cut content
Maybe it's an unused precursor for the commercial event?
Yeah, it feels like it was meant to either be for the commercial or for some other event (a TV debut for Charlie or the blue chickens would be a funny event using those actually)
A bit of a tangent, but I am SHOCKED that Shane has access to Blue chickens and didn't use them for the Joja Bluu commercial
I think the chickens come after which makes me wonder... I mean Clint turned blue after drinking the soda... and now suddenly his chickens are turning blue? suspicious.
Is Shane going to be locked up for crimes against chickenkind now
Nope, Shane is just helping with some plot development : )
Love the idea of shane getting involved
does someone know if the author of alex - stay hydrated is on discord?
hiiii @hallow prism ! odd timing, i was about to tap in for some help on updating the mod lol
can i dm you about a compat thing?
been MIA since getting back to work and finally have some time! what's up? i'm currently working on adding $q and $r dialogue so folx can opt in/out in conversation. current circular conundrum is that 1) i want Alex to ALWAYS ask a question at the start of each season, using "#$q -1 null #<question>", but also 2) i only want the mod dialogue to run if players respond YES to his question ... so does that mean the response ID should be saved or should not be saved??
sure!
save it and delete it on the last day with a trigger action?
okie so last day meaning...last day of the season?
yeah
Hello, I am trying to make 2 mod compatible with each other. I am getting this message in SMAPI
17:47:23 WARN Content Patcher Can't apply data patch "(CP) Roosters! > Include data/machines.json > EditData Data/Machines #2 > entry #1" to Data/Machines: failed converting entry to the expected type 'StardewValley.GameData.Machines.MachineData': Error converting value "ItemPlacedInMachine1" to type 'StardewValley.GameData.Machines.MachineOutputTrigger'. Path 'OutputRules[6].Triggers[0].Trigger'..
This is the JSON. What do I have wrong?
didn't even noticed i did that.
the error pointed it out
I thought it was saying the item I was trying to place was wrong. I need to read more carefully.
oh maybe it's not my code but the fact that i'm resizing the window after the event starts... edit: confirmed, pay no attention to the man behind the curtain
hmm can anyone suggest some mods to review/analyze that use a similar trigger action feature? basically, dialogue mods that only run if the player responds "yes" to using the mod in $q and $r dialogue at the start of each season, or something similar? đ
i don't have exact similar example. I know cornucopia use trigger actions to set some flags based on config
Another question about Marriage Dialogue, if @Button is around. The wiki states: "Daily dialogue added when the day starts, based on the <weather> (Rainy if it's raining, else Indoor even if they're not indoors) and <random> (a random number between 0 and 4). If the game chooses a <random> value that doesn't have a dialogue, it'll use the default text instead."
What is the "default text"? Is it the entry labeled "Indoor_Day_<Spouse>" for example?
Thr generic MarriageDialogue file
Ooo by MizuJakkaru on nexus? and any of them, flowers, crops, etc?
Alright, the generic file has an entry called "Indoor_Day_Sebastion" with none of the numbered entries. That one?
I'm trying to figure out which things specifically I need to overwrite to get a one-time single line of dialogue to happen
I think the default is whatever dialogue key applies from the MarraigeDialogueNPC file?
I guess you can do it like $action AddMail flag now on the Yes option
Not sure how to check this tho, does When work here
What are you trying to do specifically? Load a dialogue line if a mail flag is set?
I'm doing something similar to give career-flavored dialogue for Sebastian
"Action": "EditData",
"Target": "Characters/Dialogue/MarriageDialogueSebastian",
"When": {
"HasFlag": "{{ModId}}_Flag_CareerSchool",
"HasSeenEvent": "{{ModId}}_Event_11h",
"HasConversationTopic": "{{ModId}}_Timer_Career",
},
"Entries":{}
}```
And then I just overwrite all of the "Indoor_" entries
oh for my mod? i'm trying to have the dialogue mod run if the player answers yes to Alex's question, he'll ask if you want reminders to drink water at the start of each season LOL
you seem way further along
Yeah, if you can set a flag during the dialogue you should be able to check it later
If not, you'll have to set it with a trigger action somehow. Is Alex's question happening during an event?
so it's not just 1 line of dialogue -- Ooo ok, i haven't used flags or trigger actions yet, but i have played around with Marriage Dialogue edits
Nah it's not triggered by an event, just a dialogue key like spring_2 or Mon2 if the player has the mod enabled
i've created a mod config, so players could just toggle the mod on or off if they don't want to use it during a specific season...but i did wanna make it more interactive
If you put that in your dialogue, I bet it would work. Then you just use the "When" condition for CP to change Alex's dialogue later
Right now, I'm trying to do something similar, but I don't know which entries I have to overwrite for sure to make sure that the line gets used.
i'm guessing the $action AddMail can be used,not just in relation to mail/letters? thanks for the help btw! currently ~ digesting ~ lol
do you have a specific season/date/time you want it used?
Mail = Flag
ohwuhhhh LOL
Just need to make sure u don't send real letter
Yeah, it's called a "mail flag" because you set it with AddMail, but it is really just a boolean that you can check later. If you use "AddMail Current {{ModId}}_Letter1 Now" and that corresponds to an acutal letter, it will go to the mailbox
I forgor the args exactly pls double check wiki
That's why my example used "Received" instead of "Now"
"Received" says: set the flag. Don't bother with the mailbox, the player has already "seen" this
Then you can unset the flag later if you need to
Actually, I just want to line to trigger the morning after the player gets married
I have all of that figured out (I think), but I still need to make sure the right entries get overwritten
And wasn't sure if I needed to kill "Indoor_Day 0-9" or if I can just overwrite "Indoor_Day Sebastian"
I'm going to try to overwrite the generic MarriageDialogue file and see if that's the "default" that it will fall back on
Hmm i think i saw a specific dialogue key for AfterMarriage, but i think it's for talking to NPC Day of...sorry not super helpful
Yeah đ It's ok. I tried using a conversation topic, but those lines get used AFTER all the stuff in MarriageDialogue, so the line shows up in the evening
I'll just overwrite everything to be safe xD And then put it back the next day
yah that's what i would do, esp if i knew how to put it back next day lul. still very much n00b here đ
g2g, but feel free to ping me if you think I can help more. I'll respond if someone else hasn't by then!
okie, appreciate it and good luck!
hi! i'm stella, i don't speak english hehe, i'm making a june expansion mod, with a cafe in pelican town, but i'm having problems with opening the door hehe. if someone could help me i would be very grateful.
Is your door outside or on an indoor map?
Another question! Is there a way to specify a random chance in CP's "When" field? As in, 60% of the time, this set of patches will get loaded in?
"When": {
"Random: {{Range: 1, 10}}": "6, 7, 8, 9, 10"
}
something to that effect i think
NICE. Thanks, Button!
Technically speaking button that is 50%
im only like 80% confident in that ftr
To be more specific about my question for stellar, whenever they pop back in: Is this a door with an intended open/close animation, or a door you interact with to teleport to the inside of a building?
yeah see
i didnt pay too close atention to the percentages with the min and max exclusive/inclusive yada yada
"When": {
"Random: a,a,a,b,b": "a"
}
i would say that is "something to that effect" therefore i am absolved of all incorrectness
no further questions
Alright, so I can put anything in there, including strings. Really cool!
technically its all a string. dont put objects in there tho
is teleport to the inside, the building is outdoor
Does anyone have a method or mod that lets you change the name of a mod added npc? I really like this character but they share names with someone I know irl and it's a little awkward
Depends on if the NPCs name is already a dynamic token, I think
if you want you can just go in the mods files and change their DisplayName
it would be super easy to just make your own CP mod to change their display name but if its entirely for personal use just going in their files and tweaking it is probably just easier
Though would be a bit trickier if the mod also mention their name a lot in the dialogues.
Is it really as easy as that? I was expecting something worse
(do NOT change anything BUT the DisplayName though. keep their name the same everywhere else. only the DisplayName is shown in game)
somewhere in their files is a json file that has something doing something to Data/Characters
as Dolphin says it wont catch mentions in dialogue but nothing will short of a C# mod
If the mod has i18n files, the simplest way is open default.json and change every line that mention their name there.
I mean... you could just search and replace in the files
unless you didnt mind doing more Ctrl F searches
If you are on MacOs or Linux, I could give you a command that would do this through the terminal
That would also potentially change the internal name and so a no no unless you really know what you're doing.
it isnt always as simple as Ctrl F though anyway bc sometimes people use tokens for names
and the token name may not be the name of the NPC to find it
Yep. Hopefully the mod she's using is well behaved and has made it into a nice token
but changing the DisplayName field in the CharacterData will at the very least consistently change the name in most places
Would it help if I mentioned it's an npc from the SDV expanded mod?
Hiya. o/
JSON validator says my content.json is fine, but my EditImage patch isn't being applied. Did I do something wrong with the DynamicTokens, and/or is there a better way to conditionally apply my patch? (https://smapi.io/json/content-patcher/26f43a1accd549079e665b0e4d373ef2) Anyone mind taking a look, please?
no the process is the same no matter what mod its from
Ok got it
it does become more important to emphasize, JUST the DisplayName.
If it's SVE, then not at all. đ
since in SVE the internal name and the display name are the same
Can you post a patch summary?
!log
Important note: Your computer username may appear in the log. If your username is your full name, please be aware of this before uploading it.
Please share your SMAPI log file. To do so:
- Open this page: smapi.io/log.
- Follow the instructions at the top of the page to upload the log file. (Don't copy & paste from the console window!)
- After uploading, it will show a green box with a URL to share. Post that URL here.
Please do it even if you don't see any errors. This has useful info like what mods and versions you have, what the mods are doing, etc. If the issue didnât occur in your last session, please load the game to the point where the issue occurs, then upload the log.
why r u destroying cursors as we know it
Will sprinklers render if they are on the front layer, or will they only render on the buildings layer?
that looks like its just replacing the water texture
doesnt seem very destructive unless the coords are wrong
wow til water is cursors
also im pretty sure you wanna reverse the order of your dynamic tokens
i had assumed it was a sensible place like Maps
its just always becoming false as is
If it's SVE and you want to change every mention of their name, then the simplest way is just to open i18n file and change their name in all the lines there.
why would water be in a sensible place đ
That's right. Water gets everywhere
If you just want to change the name under their dialogue box portrait and menu, then changing their DisplayName is enough.
That's just logic
water is not just in cursors, it's hardcoded beyond that
the tint of red water is C# p sure
and green water?
did i apply this correctly?
i assumed {{ModId}}_FlagToCheck meant I can create custom flag names, so i did it for each season
yeah that works fine
yeeee! thanks guize
fix the dialogue tho ur missing a #
I would recommend prepending your RKAB_ flags with {{ModId}}_RKAB though
before the action
{{ModId}} is a dynamic token that CP will replace with your mod's name everywhere
(regular token. not trying to be pedantic, but dont wanna confuse with actual DynamicTokens)
What they said
!
Thanks đ
Ummmm. So I just wrote 300+ unique lines of marriage dialogue and I am becoming increasingly scared to i18nify this thing at the end xD
Wish me luck!
the quicker you start i18ning the less work it is later
This is why I directly write my lines in the i18n file from the start.
Bump
I was afraid that I wouldn't be able to understand the context if I moved them out of the file đŚ
But yeah, I guess
sprinklers are objects, i don't understand your question
i kind just put // context for everything as like side notes
Will the sprinkler render if I place it on any other layer than Building in tiled?
and thanks for clarifying everyone!
you dont place sprinklers in tiled
they are not map tiles
for what im doing I am
they are objects
then theyre not sprinklers. they wont do asnything
they are just a texture
they will behave the same way any other map tile does
you need to spawn them with some framework (spacecore/ftm) if you want them to work
Also has the added benefit of providing context to potential translators.
them being sprinklers is irrelevant
Okay, thank you.
tiled does not know or care if a tile is a picture of a sprinkler or a picture of water texture or a picture of 100% transparency
Do I need to change the name of the npc file as well, or just display name and the i18n file?
If you change the i18n, you won't need to change the DisplayName.
And don't change the NPC file names.
(And don't change the line keys in the i18n file.)
The only thing I did was replace all instances of the character name and the display name
Well, thanks for the input. Turned out the priority needed to be set later. Now, another question: how would I go about setting up a DynamicToken for a map property? Is it possible in the first place? I'd like to apply my water patch only to pond/lake water and am unsure if I'd need to write a C# mod for it. :/
Like if you encounter a line like this "Config.OlderSophiaPortraits.name": "Older Sophia Portraits", Just change the name on the right side. Don't touch the left side. So like this. "Config.OlderSophiaPortraits.name": "Older Stephen Portraits",
it's best to leave the internal name alone, especially if you already have a save going with the character in it
Don't touch anything not within the i18n file.
I used ctrl+h replace all...
Oh that's ruined.
Yeah XD
okie last question, shekurika suggested earlier deleting the response ID in the save file on the last day of the season using a trigger action (i want the question repeated every season, regardless of year, if the mod is enabled) ... wiki is pointing me towards "MarkActionApplied": false to make it repeatable, but...this is only for trigger actions, not mail flags, right?
this has me considering making a derivative of the j club that lets you just decide what characters' names should be 
MarkActionApplied only refers to the Data/TriggerActions trigger you are adding. it means the trigger action itself can happen more than once if its false
hmm kay that's what it seemed like...what would you suggest if i didn't use a trigger action, is there another way to make the question repeatable? or that's the only way
does anyone have any examples of using the question fork command in an event?
Also would be useful for the upcoming Everyone Is Clint Expanded` mod.
(There actually is no upcoming Everyone Is Clint Expanded` mod.)
Then you need to set a TileData object / Tile property for Action Warp for your door, if it's on a map in Tiled. đ
So to confirm cause I know nothing about coding. I should only be replacing instances of a name on the right side of a colon, right?
Example on a vanilla map for @unreal robin :
not with that attitude-
Stellar: If you've done that and it still isn't working, you may need to set your Location properly in Data/Locations first. đ
clearly this is the apotheosis of the j club having alt modes
What is J club? The only J club I know of is the J novel club, but that's does not seem like it.
This is probably a rather niche question but would anyone be able to confirm that if you marry Sebastian and talk to him while he's at his spouse patio working on his bike, he's just using his default portrait instead of the one where he's lying on his rolling car mechanic thing?
Oh, I saw that mod. Missed the name. Only remember it by the description.
This is your future under Joja
i think it's default portrait...there's no $# after the "patio_Sebastian" dialogue in MarriageDialogueSebastian to change the portrait
Yeah, I saw that but asked on the very slim chance there was something else in the code for it or something 
(thank you, DecidedlyHuman, for updating the rider instructions!)
lul yah he's one of my spouses in a save and i think i'd remember if that pic kept popping up too xP now i'm more annoyed that he just single-eye side-eyes the farmer before going back to work 
Feck
i didn't test SVE with j club's boncher mode so i'd have to check what her name would actually become
i noticed that MailFrameworkMod describes this: "Repeatable": false, // If true the mod won't check it the letter Id has already been delivered. Default is false. so assuming i'm using it correctly đŹ i would set a $q & $r with a mail flag to true? in the content.json? to make the question repeatable đ đ
...............yeahhhhhh lol. dang
also theres no reason to be looking at MFM at all
yea
i think digus is adding features to it, but until those are released it has almost no uses over vanilla
Hmm, so... if all I want to do is switch this Sebastian patio dialogue from the neutral portrait to $8, would an Append TextOperation be all I have to do? 
i got confused between using mail flags and literal mail xD i was doing Find in File "trigger" in my Mods folder to see how others are using trigger actions...chaos is how i learn
{
"LogName": "Alex asking me things",
"Action": "EditData",
"Target": "Data/TriggerActions",
"Entries": {
"{{ModId}}_AlexPlsAskMeThings": {
"Id": "{{ModId}}_AlexPlsAskMeThings",
"Condition": "DAY_OF_MONTH 28",
"Trigger": "DayEnding",
"Action": "RemoveMail Current {{ModId}}_AlexDontAskMeThings now",
"MarkActionApplied": false
}
}
}
something like this?
it's easy to get confused about that. the game using mail for large parts of its game/player state is one of Stardew's inspired choices, lol
this action is basically, on the end of the day of the 28th, yeet this particular mail
idk if u need the now actually
OHHHHHKAY, so i could do Day of Month for condition, theoretically (and hopefully in practice)!
i was only seeing DayEnding as a trigger and trying to find something in the wiki explicitly saying it could be on a specific date
GSQ 
okieee thank uuu, i'll try that! also been reading in circles for a few hours, so the thingz are scrambled, time for break 
MFM already has some features you canât do with CP, Iâm just expanding on those.
You can implement replay option to your letter that adds additional mail received. This way you can trigger different mail, events and whatever based on the player answer to the letter.
Other stuff is minimal, like you can add quality to the attachments, easer to configure triggers.
in this case thou they dont want a real mail, just mail flag
MFM also handles that with AutoOpen property.
(You know about the converter right)
(See the recommended Tiled settings to avoid that issue.)
Can someone help me with getting started on recolouring already existing content packs? For example, Iâm trying to record the roof on Italian country side buildings to be more brown, but I donât know how to do that without also discoloring the leaves ( Iâve been using the airbrush bc idk how to do this lol )
Do I just need to go in and do it pixel by pixel?
Use the magic wand to select all pixels of one colour and then the paint bucket tool to recolour them all in one go.
Another thing you can also do if you just want all the roof to be more brown is use the select tool to only select the roof (you'd probably have to manually add more pixels in to the selection around the leaves or remove pixels from the selection if you get any leaf inside the selection) and then apply a hue/saturation or other colour adjustment to just the selection area. I'd personally probably copy and paste the roof onto another layer first so I could fiddle with the adjustment without worrying about losing the selection.
Can this be done on Krita?
I've never used it but yes I expect so. Anything except the most basic art program can.
hello everyone! i've got one question about translating a mod from eng to rus. First of all, its quite routine and monotonous action, and i decided to use external programs to help me with translation. So my question is "Is "scripts" or whatever it is which goes for instance like "kid1_Events_01" is case sensetive or not? I've already translated half of this mod and wanted to know should i fix it or is it okay due to mod eventually will find translated part of the modded event even with some case mistakes?"
Thanks in advance for help!
You'll need to be careful to only edit display text in the event script, not commands. For example, in /speak Abigail "Hi!" only the Hi! part should be translated. (See the event docs on the wiki.)
"kid1_intro1_penny":"Seems like %kid1 is sproutin' up real fast. I reckon it's time I prepare some new homework for %kid1.",
like here i know i shouldn't translate "%kid1" and "kid1_intro1_penny", but my question is "In the modding is calling those "scripts" are strictly case sensitive or not?
can i write "kid1_intro1_penny" like for instance "Kid1_Intro1_Penny" or it will cause some error? (Sorry, i am simply new in these type of things and quite lazy đĽ˛)
I think you should keep them as is to be safe
I recommend keeping the original capitalization for keys to avoid issues (e.g. if the mod is replacing an event, changing the capitalization would add a new entry with that capitalization instead of replacing the original one).
Ok, I'm super new at modding anything for real. But is there any mod that makes something (animals etc) follow NPCs around?
Thank you so much

Tinker Trinket is a framework than can facilitate this. There's also Pet Enhanced that can make your vanilla cats and dogs follow you around.
Can you give NPCs trinkets?
Like as a gift? I'm fairly sure you can.
I also think Pet Enchaned is for the player, too
No for things following NPCs around.
Oh wait, I misread the question, sorry...
Yar, there is none that I know of that could make things follow NPCs around.
That's ok :3 I can at least try to get a feel for what the programming looks like for trinkets, so that will help.
I didn't think there was one. It was a silly idea about giving everyone partner pokemon, but tbh it's probably waaaay out of my ability currently lol. I should start smaller.
Had people asking about Better Crafting for Android again. I wish I could just run the android build on PC... or if not the exact android build, then access the android UI stuff so I can design something similar.
The Android emulator ecosystem is... decent. Some might be able to run Stardew.
You could do this in Content Patcher by making antisocial NPCs that have the same schedules (with a few tiles off so they're not on top of each other). It's all manual and there's not anything that tethers them to the NPC, so anything that changes the NPC's schedule would lose the mon (unless you took the modded schedule into account).
Ok guys, an i18n question: does absolutely everything go in the same file when I'm done, or is it customary to split i18n lines between events/dialogue/etc ?
The example mod I have sticks it all into one big file
!i18n
So you'd like to stop writing all of \"your strings straight in your content.json?\" and/or you'd like the capability to see all of your strings across all of your .jsons?
Introducing i18n!
-
How to make your mod compatible with other languages: stardewmodding.wiki.gg
-
The file where you can put all of your strings is called default.json, and it sits in a folder at the same level of your assets, named "i18n".
-
If you're converting from an older version of the game, there's a converter for ease-of-access.
Not to be confused with
{{DynamicTokens}}since these require the specific{{i18n:<KEY>}}modifier
being able to split your i18n into multiple files in a folder was only addedin SMAPI in october
so it has not been customary for years bc it was not allowed
That's very clever! I'll take a look at it and see what I can figure out.
Would this be better practice now, then?
its entirely subjective bc it changes absolutely nothing functionally
say there's stuff for building upgrade to move stuff around right
It's still not customary or best practice, it's for mods with thousands of translation lines that really need to organize it that way.
yes
... I probably have at least a thousand, if you include events. Haven't counted recently.
Ridgeside is over 30,000 
Wow!
i have a (mild) string assets agenda, in that u should load ur stuff to actual asset and use translation keys wherever its supported
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Enterprise, with 19 C# mods and 3 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
But yeah, for 1000 you're fine with one file. Jorts and Jean are around 1200 I think?
unfortunately i dont actually make dialogue mods and thus i cant push my agenda 
Alright, I'll try one file with lots of comments and header sections
If it gets overwhelming, i'll split
i will try anyways
if u do this
{
"Action": "Load",
"Target": "{{ModId}}/i18n",
"FromFile": "i18n/default.json"
},
{
"Action": "Load",
"Target": "{{ModId}}/i18n",
"TargetLocale": "zh-CN",
"FromFile": "i18n/zh.json",
}
u can then do [LocalizedText {{ModId}}/i18n:Opossum.DisplayName] or just {{ModId}}/i18n:Opossum.DisplayName in events
if u choose to do this then whether u split up i18n matters a lil
This would be in content.json ?
Alright, I know that you do translations so your words carry some weight
You offered to translate for Pathos recently. So i just assumed you did it more frequently
There are people on nexus with like a hundred translation mods including dialogue mods, how they have that time and why they donate it is beyond me
Some of them are translations of 2 lines.
It was fine before I added a 4th warp
MTL got pretty decent honestly
enough that doing mtl and then a human pass is alright/10
instead of making more work 4 urself
A lot of them are machine translation too. There are still some folks doing good translations though 
This is also why I don't accept translations as PRs. I can't tell the difference between a human translation, a human-edited machine translation, and a straight up machine translation.
When people give me translations I do a quick untranslation to see if the vibe was about right. After that my thought is its better to *have a translation that hopefully is good but maybe bad than no translation at all. If players of that language feel it is bad I trust they'd let me know.
Yeah, but if they did let you know, what would you do about it?
Remove the translation
I guess so. Seems like a lot of overhead when they could just put the translation up as a translation on Nexus.
Yeah thats preferred, but I get if they don't want to
i think its also about the scale right
if it is like 10 lines ill take anything
if its 50 with some minor creative writing going on i prob will ask them to post on other page
I've had a French translation that translated "smoking pipe" (as in, a pipe for smoking) as "tuyau qui fume" (as in, a tube that emits smoke) and I have no idea how that happened because I'm pretty certain MTL isn't that bad.
Hello I have returned from a nap to ask this again :]
i was going to make a joke with that but i would be breaking the rule for not speaking english
is there no documentation with examples?
The wiki doesnt help me with it and i dont know any events that actually use it off the top of my head :(
im pretty sure its the way I get an event to have different endings based on how the question is answered
(normally I would just use a quick question like the lazy person i am to avoid learning a new thing but the specific way I want the event to go would require two different endings for it to make sense... unless I wanted to scrap the end response and try something else)
oh is this C#?
https://stardewvalleywiki.com/Modding:Event_data its also on this page - no
just content patcher
If you see me suddenly working with C# run because that aint me
now if you see me asking a billion questions about C# in the future... that is me because I DO plan on learning it
good luck lol
fair enough, i dont touch that yucky stuff
but yeah i dont understand the question fork either, srry
This person requires help with modding.
on my phone but I'm sure there's a more than a couple events in vanilla that uses it
you can do a filesystem search for question fork
I... dont actually know how to do that
the first one I found was Data/Events/Beach, with the key "20/f Alex 500/z winter/p Alex/w sunny"
which looks like this:
.../question fork1 \"#I believe in you!#Wow, you're really arrogant.\"/fork arrogantJosh/faceDirection Alex 1/pause 500/speak Alex \"Thanks, @. I'll remember that.\"/move Alex 1 0 1/pause 500/end dialogue Alex \"Hey, that was fun, huh?\"",
"arrogantJosh": "pause 500/faceDirection Alex 3/emote Alex 12/faceDirection Alex 2/speak Alex \"Hmmph... I think someone's a little jealous.$a\"/move Alex 0 -15 0 true/speak Alex \"I'm out of here.$a\"/faceDirection farmer 0/end dialogue Alex \"...$a\"",
so basically, that says question fork1 \"alex's text here#player's fork 0 choice#player's fork 1 choice\", and if the player chooses the second fork, it sets a special variable
then when fork <other event ID> happens, if that special variable was set, it stops the current event and goes to the fork event's instructions
Thank you Esca! it really helps to have an actual example lol
Sometimes code formatting gets all mixed up and jumbled in my brain and i dont understand it when its just the variables on the wiki
Aside from vanilla, Ridgeside uses it in a couple of events, but tbh I don't find much it can do that quickQuestion can't
its mostly just the ending part, due to the nature of the question i cant really find a way to make the ending of both answers make sense without making them different
To search the files in future you can use n++ or VSC or sublime to do a "find in files" search. That lets you search for a word or phrase in every file in a folder or group of folders without having to open each file individually.
You can use it to split your event into two complete separate parts. I guess the formatting might be annoying if it's long though.
i guess im not really sure how id do that? (which is why i was looking at the question fork instead)
How i see the two is that quick question is like a thread that you split up in the middle but it still connects at both ends, where question fork is starting with the same thread but splitting it from the middle onwards
like this (drawn with my mouse in microsoft paint)
Here is Thylak's guide to events, it might have some info for how to use quickQuestion the way you want: https://stardewmodding.wiki.gg/wiki/Events_for_Everyone#Questions
He also has a bit of info about question forks but he recommends not using them lol
I'm not speaking from my own experience but I'm pretty sure the experienced event makers do use quickQuestion to make diverging paths like in your second drawing.
Tia just showed me an example of it with the /end command being the only shared command, however I also have different dialogues i want them to have at the end
(i dont know why i didnt think of the end command thing though, that would be good going forward)
Does anyone know where the sprites that are used in the fishing game are located? I've looked through Stardew Valley\Content entirely twice now and I can't seem to find it. Honestly just the sprite for the fishing pole is needed and I can recreate everything else myself. Sorry for the newbie question, I didn't expect to not be able to find it.
did you check in Cursors?
Cursors
Wheeze

well lookie ther
yeah i think i could marry you all
we all know that cursed spritesheet too well
when in doubt, check that one
got it, appreciate you
if it isn't there it's in springobjects 
it's a very .. cursed sprite sheet
ginormous and creatively organised
very much so
that is the most accurate description for cursors ive ever seen
the little bobber icons are a bit above the actual fishing thing as well
some of these icons i have no clue what they're for or why.... or why theyre even ON here in the first place
cursed cursed cursed i hate looking at it every time i do
I didnât realize legendary fish had crowns for hats I thought it was just a fedora for being âextra coolâ
yeah idk when searching i found the chinese tencent texture with the qr code
average china god bless
they aren't all even in the game 
i know i saw some weird stuff on there
this game has some weird files in it
some are fun to discover, like the purple dog and cat that exist but arent ever used
several names are just gibberish
:] that i took and am using in MY mod
like the bigfoot
my favorite texture is NEW
oh my god yeah i saw the bigfoot filename while looking for something the other day
and I just...
why
it's not the only thing named like that 
open cjb item spawner and type asdf
also there's an old map property too
As someone who is a bit neurotic about file organization and naming I would die
(I couldnt figure out how to draw things from sub folders so my maps and sprites are all in the same assets folder and THAT annoys me so i would cease)
(i think i know how to do that now by the way, but it is far too late to change it, i aint doin allat)

Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Enterprise, with 19 C# mods and 3 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
your map is having issues? might be some kind of name mismatch
Sprites as in tilesheets you're using in the maps?
everything asset wise is in the same folder
i will see if i can fix it first
That means that nobody - including you - can edit any custom tilesheet you use in your maps just fyi
Like if someone made a recolour compat mod for your mod it would not work.
Yes
Because your maps will always be pulling the tilesheets directly from your mod folder and not from the game
well i dont know how to change that
is that the full vanilla furniture tilesheet i see in there?
not for my own tilesheets anyways
Put them in a different folder
you shouldnt do that
Load them into the game
I mean... why not
redistributing vanilla game assets and causing problems with recolor compatibility, if any
Im already aware of the vanilla furniture thing with the recolors and what not (i decided i dont care about that)
I did make an early version of it that didnt use the vanilla furniture but I didnt like the way it looked
(laptop unavailable to me so i cant link fast, but you should check it out)
I know it exists
It's possible to use the arbitrary tilesheet access mod now to avoid having to include them. But if you don't want to use it you can also load the vanilla furniture into the game and use it that way so people can recolour if they want to.
is having more frameworks really that much of a problem? to me i juse see it as "oh hey now i dont have to do this thing the hard way"
(My answer included redundant information because I was typing slowly lol)
you would not believe the amount of people who complain about having more than one framework
I already have Content Patcher, Item Extensions, and another mod that button made for me
thats rookie numbers /lh
not for me considering it was only supposed to use content patcher originally
back in the day mods like SVE or RSV required 8-10 dependencies, and we somehow managed /s
but like if youre concerned users dont want to download your mod bc of too many frameworks, usually people already have those frameworks from other mods
i mean I know that
(if Lily does not want more dependencies, and is aware of the downsides, there is no reason to keep trying to convince Lily to use more dependencies)
Trust me, guiding people on how to install SVE was a pain when it had that many in 1.5
you wont be able to conditionally make edits to your tilesheets and no one else wil be able to touch them either, but if you're fine with that and never need them to change ever during gameplay then its fine
đ i know im going to be testing user's patience with my self proclaimed "frameworks georg" of a mod
I do want to change where my own custom tilesheets are pulled from if it will cause an issue if people want to recolor them though,
I dont care about the furniture, qi's room has a specific vibe to bring to the function and if people don't like it so be it
but if they realllly wanna change his wallpaper to match the wallpaper of their recolor mod im not gonna say no to someone making that
Using different folders or sub folders looks like this btw
"FromFile": "assets/maps/tilesheets/tilesheet.png"
(considering i did make new wall tilesheets and stuff like that)
so if i just made a folder called 'tilesheets'
in my assets folder
note sure where to ask this - i wanna see what all seeds, bushes, saplings i have available. I have about 450 mods. how can i do that?
id really like to export it to a file if possible. ( i know i have over 1100 seeds, saplings, and bushes)
patch export Data/Objects
patch export Data/Objects darn Selph beat me
Or Data/Crops or Data/FruitTrees
Yup do that and then load your tilesheets into the game into Maps/ just like you do with your map.
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Enterprise, with 19 C# mods and 3 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
how about flowers? is there a special command for them under crops?
Will do, thats not something I have to worry about too much with the tilesheets. I would do it with all the maps and stuff but it would be a whole process to change where all the stuff is located ... and i dont want to do that so i will not
Flower seeds will be in data/objects and so will forage iirc
I remember Goat getting this issue at some point but not why. Is this happening on new saves?
I havnt tested, let me check.
wait where would I target for this?
Yes it is
When you load your tilesheets this way, other recolor mods or actions (via EditImage) will have to target Maps/{{your loaded asset}}
see examples in Central Station and my companion recolor compat mod
It's literally just Maps/theNameOfYourTilesheet
"Target": "Maps/TilesheetName"
I can never remember if it goes off the tilesheet name or tileset name because I keep them the same.
and "FromFile": "assets/{{TargetWithoutPath}}.png is sufficient
i am typing all this very slowly from my phone
i keep the target the same name as the asset name so i can use the TargetWithoutPath token 
But! Note that Kisaa has not included the subfolder in her example FromFile but you need to.
so if I load the vanilla furniture as a tilesheet like this would people be able to just... make a patch to recolor it as well
Not wrong, but I still believe this is an unnecessary step if those are unchanged vanilla tilesheets and you dont use arbitrary tilesheet access
Bump
you can do the same to your fully custom tilesheets if you do not want to include native recolor compat and allow other mods to target your custom assets for recolors
Like I said I can't remember whether it's the tilesheet file or the tileset name that it has to match but it does have to match one of them regardless. You can't just use an arbitrary Target even if you weren't using {{TargetWithoutPath}} (sorry if you know that, I thought perhaps people might read your message and think they could use an arbitrary Target if they weren't using the token)
Again I DO want to allow people to be able to recolor the custom tilesheets I made, I just didn't care that using the vanilla furniture wouldn't offer recolor compatibility in that regard because of how I wanted QI's room to look
where's the content patcher format version?
if that makes sense
This is another JSON that is included in content.json.
try adding the format version in this one too.
would animals also be under objects?
if i do it will break the formatting
Format won't work in an include iro
i have tried before
I thought you couldnt add format- yeah
Let me hop on my laptop and look at your log again in a sec Person
Alright, I will see what I can do in the mean time.
I think its the tilesheet name? i've never used tilesets (also sorry if i misunderstood something, im not feeling very well rn
)
fyi I'm pretty sure you can do all the data/locations edits in one patch
you don't need a separate patch for each one
I don't think I understood this message. If she wants people to be able to recolour the vanilla furniture and she's not using ATA she does need to Load them.
well im already this far into doing a seperate patch for each one so i will continue, plus it helps me understand it easier
What have you changed since the last time it worked?
you can :]
I added a new map, "DisplayFarm3".
You didn't edit your Farmer's Market map at all? Didn't even open it?
I have it open almost all the time so I can refrence back to it for thing such as tilesheets, tiledata, warps, ect.
But I didn't touch anything apart from the warps.
Last time this happened here in mmg I remember it ended up being because someone was trying to add trees via map property and included the same tile location twice
Yeah, im not disagreeing with that (the need to Load the tilesheet so it can be targeted). I just think the more efficient method is to just use ATA so nobody has to do any extra recolor work if the tilesheets are completely unchanged from vanilla. then again, it's not my mod, i am simply suggesting a more streamlined method
I will take a look at the map properties then
If i could make the compatibility optional then I would
to export all the types of animals, what data/ would i use?
This is all I have in there
But I can't really see a way to make that optional so I will not be adding another framework mod
I didn't even want to add Item Extensions u_u
I don't think those line breaks are accepted characters
The \n bits
I'm going to have so many dependencies because it's more important to me that I have fun than that my players do 
I will remove them and see how it gors
I mean in theory that's the same for me... less work to add in a framework
(same reason why I wanted to use the vanilla furniture tiles anyways tee hee)
Yeah I assume we are just having fun in different ways. For me it is fun to play around with frameworks.
If this works can you add it to the wiki that line breaks aren't accepted characters in map properties?
recolors would make room look weird anyways, i was going for a ⨠certain aesthetic â¨
I mean I love to see what mods can do, the things people make for people TO make things are amazing
It worked, ty!

But I forgot to add a warp back to the main map so now I'm stuck on a farm with just textures.
I'm not sure. To me it kind of goes without saying that the only accepted characters are the ones already specified for the commands and if we start listing exceptions to that it could get really long.
Yeah but sometimes people just instinctivly do line breaks and I didn't even know they added the /n when done.
in general in programming, donât add unspecified characters
Well I didn't know pressing "Enter" would add a character, seems a bit dumb.
a newline is a character though?
i have never heard of a new line as a character before
you and avi running for the frameworks georg spot i see
i was summoned
I don't think there's a section on the wiki page that references the pop-up box you can use for properties.


of course there isnt
I donât think itâs within the scope of the wiki to explain that, but now you know!
everything