#making-mods-general
1 messages ยท Page 187 of 1
CP doesn't provide a way to do that, and that's probably for the best, otherwise you would very likely wind up with cyclic asset dependencies, which are very bad
You can do it with c#, but the potential cyclic dependency problem won't go away and you'll have to be very careful to handle it properly if it does happen
The one thing you can do, which is probably not helpful but might be, is if you set up a dynamic token with the love interest, you can set the field to be that value and use the dynamic token value elsewhere too
But this is tricky if, for example, another mod edits this value too
tbh I wouldn't be too fussed about using the "real" love interests in the code since they aren't currently used for anything and never have been, if you want a character to have a love interest just set it to whatever you want
I actually don't care about the love interest, I was just using that as an example. The real reason is that I'm too lazy and thick-headed to learn how to properly use mod-provided tokens and thought I could use the game's json assets instead
for like cross-mod compatibility. i have some dynamic tokens I'd like to let other mods change and that rabbit hole on mod-provided tokens went over my head
tbh i don't actually expect other mod authors to want to create content for my stuff, but if I could provide a template it would at least help as something to point to for people who are asking for cross-mod compatibility/content
Dynamic tokens are unique to your mod, other mods can't edit them
there's CMCT but idk if it's intended to be used as a way for mods to allow other mods to add content
It can read another mod's dynamic tokens, but I'm pretty sure it can't edit them and Button warns in the mod description to use that one as sparingly as possible
the correct way to do this is by loading things to a new asset and having the other mod change those afaik
OK, thank you, can you recommend an example of this?
I don't but I'm sure there's one on one of the wikis (make sure if you're searching in the main wiki that the modding namespace is enabled in advanced search)
Iirc it's used partially for flower dance
Iirc they tried getting rid of it during the 1.6 modding alpha but it broke things so it got put back
Huh 
is it directly used or is it just the same couples being referenced? /genq
oh dear
if that's true, I wonder how much I could break by changing them... 
It got reworked a bit to survive 8 player multiplayer, but its still somewhat fragile I think
I guess here's the dilemma. I use two beds in a prison cell, and I use conversation topics to know if those beds are occupied. ({{ModId}}_PrisonBed1 and {{ModId}}_PrisonBed2). I then use individual conversation topics to know who is in prison (for example {{ModId}}_PierreInJail. So somebody else could put their NPC in my prison, and set the PrisonBed1 conversation topic, but my mod has no way of knowing WHO is in that prisonbed. Which will break something when my mod tries to put that NPC's sleep frame in an event.
So I guess the easiest way is just to tell people if they want to put someone in the cell they need to make that event more generic
the flower dance calls a different love interest check, actually
Utility.getLoveInterest(string who) but its just a hardcoded switch statement
the actual field in the characterdata is used by literally nothing
idk if I'd use conversation topics for that tbh, I'm pretty sure your best bet IS custom assets?
but also, how are you planning on making sure that if an author doesn't want their custom npcs to be jailed that they won't be jailed by someone else making a mod that works with yours? (I guess that's not entirely on you because there's no way to truly stop it from happening but it is a concern you should consider imo)
Yeah I can't stop people from doing things they shouldn't do that's the case with any mod
I experimented with alternatives to conversation topics but so far that has worked the best for my needs. It's my first foray into mod-making though so I'm sure someone else could be doing things better. oh well 
I'll definitely put a disclaimer in the guide though that the template shouldn't be used to make events for other people's characters
That's what I was about to suggest, yeah.
like people want me to put morris in jail and I don't want to do that because I'm targeting compatibility with SVE which kind of makes morris a non-vanilla character. and i don't want to write events for other people's characters.
but i'll let people write events for mine as long as they follow certain guidelines
Morris is a vanilla character regardless of what SVE does with him
he gets a decent redemption arc in SVE though if you choose joja, and if you don't choose joja well he goes away for good. so that makes him less interesting as a jailed character. what I might do is create like a thing where if you choose the community center, morris comes back for revenge and you get the chance to lock him up.
Was gonna say... cos Emily and Shane arent each others love interests and they dance together.
@unique sigil About the recolour issues you mentioned in #modded-stardew, Kisaa, you could set up a safety net with the dynamic tokens if it's a common issue?
For example, all you'd need to do would be to add an extra block to the dynamic token for each of the recolours like so:
// recolor tokens
{
"Name": "recolor",
"Value": "Vanilla",
"When": { "Recolor Selection": "Off, Vanilla" }
},
{
"Name": "recolor",
"Value": "VPR",
"When": {
"HasMod": "grapeponta.VibrantPastoralRecolor",
"Recolor Selection": "Off, Vibrant Pastoral"
}
},
{
"Name": "recolor",
"Value": "Vanilla",
"When": {
"HasMod |contains= grapeponta.VibrantPastoralRecolor": false,
"Recolor Selection": "Vibrant Pastoral"
}
},
i followed the format daisyniko has, and the safety net for that is just 'don't pick any recolor option not installed'
but i'll try to implement that and test when i have the time 
I mean, ideally "don't pick any recolor option not installed" should be enough, but we both know how users are lol ๐
there's way too many reports for that and now that more people are using the tilesheets, i should do that
Where can I find the sprites for the character creation screen?
what do you mean? there's a lot there
I cant find the gender buttons, the outlines, ect
I checked through there
then you should have found it? ๐ค
i need the gender buttons in particular
yes they are in cursors.
i will check once more then
Looks like those are above the big OK button
theyre a bit small so it can be hard to see
but they're near the top of the sheet
(cursors is very long)
alright
let me see
found them, tysm
how much space does the gender button take up? like whats its frame?
small, 16x16 for each?
alright, ty!
Why do you need the gender buttons? 
(I'm a bit curious too ^^)
I am making a community made mod with all the suggstions by the community and one of them was a non binary gender option
...
i need to get better with the pings...
sorry...
๐
but follow up on the gender question, where can i find the data that defines it position and frame?
Much as I would appreciate seeing that mod be created, I don't think you'll be able to do it. The author of Gender Neutrality Mod has already looked at ways to implement it and come up short because there's a lot of finicky bits & pieces that break if the player's gender is undefined
XD
Unfortunately the game kind of just defaults "undefined" to "female" so you'd actually have to rewrite significant amounts of the game to make a true non-binary gender option work.
I have often wondered why they bothered changing the dialogue gender stuff to allow for the non-binary option when the game itself can't take it.
I am NOT using c#. I can instead make a new gender instead of using undefined.
Oh if you're not using C# you are...screwed lol
You can't make a new gender without C#
you can.. make a new one?
not using C#?
๐ what.
How were you planning to make a new gender if not by changing the actual game code? /gen curious
are you planning to change every strings in the game to reference male/non-binary or non-binary/female
because that's the only way I see this progressing
You can make a whole new NPC using CP. I didnt expect you needed c# for genders. It's dumb.
bird XKCD strikes again
Yeah you can make a new NPC with CP because that's working with the way the game already works.
Changing gender stuff is trying to change how the game itself works.
The best you can do with CP is just reskinning the two default genders as something else, which Gender Neutrality already does
I guess I could... Just use a value and if set to 3 (non-binary) it changes it to the replacement string.
Alright then.
I will leave it.
Yeah the gender neutral mod already does that part for the vanilla game and any mod that does compat with it.
I'm sorry to be discouraging! It's unfortunate when something that seems like it should be straightforward is really not.
i guess because of how the game was made, its hard to try and change if afterwards
I play my little non-binary character using the gender neutral mod and just close my eyes if I use mods that don't do compat with it lol
All good lol, I just hate how the most random pieces are hardcoded
like the crib
You could make your own compat patches if you wanted, Aba? I've got a tutorial on the modding wiki for how to do it
Koda's always happy to help out with doing GNMT compat too, they've done a few of them now
I can understand it with gender (if not agree with it) because CA did not consider diversity in many ways at all when making the game, imo.
CA's your average straight white guy in a lot of regards and it reflects in the game
That is so much work for someone who doesn't even bother getting rid of their many red errors when playing xD Or even bother updating mods haha
Unless...
it's nice that modding is so flexible
If I contact the person who made the gender neutral mod to use it as a baseplate that could work
As a baseplate for what?
I am so lazy that if one of my mods doesn't trigger an event properly I will just go read the event in the file rather than get it working in game haha
๐ญ
Like to add into my mod, (with credit) with all the other suggestions
So like 1/10 peices
pieces*
but, why? im a bit confused
I've asked you not to ping me ๐
๐ซ kill me.
i dont see why you'd need to include someone else's mod in your own (?)
I'd recommend that you just direct people to the gender neutral mod instead.
There's also little reason Hana would agree to that
Yeah... that sounds better.
Also, this might be a totally off-base guess, but if you're intending to make a sort of "bag of tweaks" mod that combines many disparate changes to the game, I don't know if you'll get much traction. Stardew modders tend to download mods that do one thing rather than one mod that changes many unrelated aspects of the game.
Ignore that if that wasn't your intention!
I was going to make each thing toggable (/nbr)
(It's probably because our mod file sizes are so small and mods are so easy to add and remove.)
true
Considering there's functionally no upwards limit on how many mods can be installed and the vast majority work fine together, there's not a lot of benefit to having a mixed bag of functions in a single mod instead of just leaving them separate
I'm not doing it for the traction, I was just doing it as a fun side project.
i think it would also just be hard to work with...
I didn't say you were, I'm just saying there's little benefit to it 
It's totally up to you, of course. If you'd rather make a mod that way then that should be your priority, I think.
Eh, I will select the interesting/important ones and make seperate mods of them.
Bug report I'm not used to seeing, [Content Patcher] Two content packs want to load the 'Maps/Desert' asset with the 'Exclusive' priority (Stardew Valley Expanded and Walk to the desert). Neither will be applied. You should remove one of the content packs, or ask the authors about compatibility.
I have to say I am also curious about what community suggestions you are getting for this. Are you cruising the mod ideas github?
Someone has this issue with SDV and WTDR, not sure what "Exclusive" means.
Maybe it means not checking for "When" with edits to the tilesheet and just editing it regardless.
Exclusive means that if your patch is loaded, no others can be. When CP comes across that situation where two mods are trying to exclusively load the same asset, it denies them both.
Well, I kinda need to edit the Desert map, and so does SDV.
This isn't an issue with Ridgeside Village with the Backwoods map when I edit it.
Yeah but you should both be using EditMap, not Load, unless there's something that means you need to Load instead.
I use EditMap, I don't use Load.
Straight from #town-square (I originally said "If you could change something about SDV what would it be")
There is no exclusive priority for EditMap, plus that error message is specifying Load.
Yeah, none of my entries for the Maps/Desert are Load, they're all EditMap.
Moving it to #modded-stardew
So I'm not sure why they're getting this error.
I will not risk my sanity looking at town square lol
Real
Are you sure they're actually using your Redux mod and not using the original mod?
Looking at the error, there is no redux in the name and Desert is lowercased.
I think they're being stupid, I'll direct them to do everything over properly.
(Not surprised that SVE uses exclusive on its loads
)
Yeah I would not be surprised if they're using the outdated mod and then reporting it to you by mistake.
Not sure how they managed to find my mod page instead of the original.
People are still reporting bugs on Tarniyar's original mod page btw lol.
For a while I would direct them to use the Redux but then I just gave up.
Before I even get started on this, I just want to make sure. Is making 2 pieces of clothing into 1 (making a dress) feasable with CP?
No
๐ฅฒ
the best you can do is make two pieces that look seamless when worn together
(top and skirt)
(the original walk to the desert also does not do any loading to Maps/Desert ftr, nor is "Walk to the desert" its name in the manifest)
i know plenty of people do it that way
yeah thats why im making the mod, because people are complaining its to hard to find that
petition to make the entire game CP compatible (/j)
A lot of what people in #town-square complain about will either already have a mod for or isn't possible without difficult C#, if at all
Of course they will...
If you really want to fulfill random requests, look on the modding ideas Github because that at least has tags that tell you whether something will need C# or not
I should do my research on resources...
@winter dust they installed this one, not the original
(anyway goodnight)
Oh yeah, this entire mod defeats the purpose of even having a shortcut tbh.
Hey @undone quail, are you the one maintaining Starblue? And are you still doing the Spring variants for it? Would love to know, thanks.
@winter dust what I meant by Vibrant Pastorals Green Fall token is the registered token VibrantPastoral.C/GreenFall
Okay, Walk to the Desert originally had the entry as a dynamic token back in SDV 1.4, I just carried it along through the versions.
What's the difference in using it rather than a DynamicToken, and what extra setup would it entail to use VibrantPastoral.C/GreenFall, and why would I want to use it? Not asking in a rude way or anything.
That was only done with the update in ...October? November?... who knows
no extra setup
Vibrant Pastoral feeds that token to CP, making it available for any other mod to call
so by calling on the value of that token in your query you can skip another config option doing the same job
So what, am I just doing this instead?
{
"Action": "EditImage",
"Target": "Maps/fall_z_wtd_tilesheet",
"FromFile": "assets/recolors/pastoral/fall_z_wtd_tilesheet-g.png",
"When": {
"VibrantPastoral.C/GreenFall": true
}
},
exactly
(we tried our best to tag things correctly but nobody knows every corner of every framework, so if you see something tagged wrong, comment on it saying that!)
https://github.com/StardewModders/mod-ideas/issues
this is the mod ideas repo, you're more than welcome to take any idea from there and turn it into a mod! once you do, comment a link to your mod so we know it's completed
Submit ideas for mods to create, or find your next mod project! - Issues ยท StardewModders/mod-ideas
ty!
and don't be afraid to look through the older ideas by the way, there are some absolute gems from as early as like 2017 that were never picked up by anyone for some reason
{
"Action": "EditImage",
"Target": "Maps/fall_z_wtd_tilesheet",
"FromFile": "assets/recolors/pastoral/fall_z_wtd_tilesheet-g.png",
"When": {
"HasMod": "grapeponta.VibrantPastoralRecolor",
"VibrantPastoral.C/GreenFall": true
}
},
Nevermind, I replaced the HasMod with "VibrantPastoral.C".
last info I have is that Cherry still maintains Starblue and there is a Blue Spring option in the latest update
Dear god....
@idle ginkgo Hey Yri, are you still supporting the Retro recolour mod? a few updates have happened and a few new tilesheets have been added so everynow and then you run into spots of vanilla tiles amongst all the recoloured ones.
I'm pretty sure Wittily is abandoned at this point.
wittily is being kept alive in the comments
And eemie is just gone.
but only dark dirt afaik
Yri's had severe medical issues and has been on hiatus for the last couple of years 
Guess I'll just dump support for Eemie and I might get around to Wittily eventually.
Oh that's unfortunate, I hope they'll get better soon.
It would be a lot of work (especially with 12 languages) to get vanilla to third gender, and even then nbs third gender differently
So I'm not surprised they tried a thing and are waiting for reports of what else to change, etc
Oh I'm not surprised they didn't change the underlying gender stuff. I'm surprised they changed the dialogue stuff.
It's the underlying gender stuff they tried to change!
I wouldn't be surprised if it ended up in 1.7, if 1.7 happens, etc
By adding a third gender to the dialogue gender options without adding a third gender that can make use of that?
You think they were preparing the ground, so to speak?
Yeah, the "third gender" is in the code, just not fully implemented so there isn't ui for it
You could even do more genders if you harmony hacked your way in
To do more would have to involve studying how nbs work in 12 separate languages lol
In a game that used to do jus de orange
Jus de orange...
(Vin de orange, sorry)
I keep wondering what either of those phrases mean and have no idea haha
I keep wanting to interpret "vin de orange" as "wine the orange" though lol
I assume that's what it means yeah, just probably grammatically incorrect or something similar
My (un)trusty source, Google translate, claims it should be Vin d'orange
Is it possible to make a specialized cooking bench (like a cooking bench that only shows specific subsets of recipes) with just CP?
with CP + Better Crafting yes
darn! ok, thanks Selph
@hallow prism Alright! I've added GSQ and LocationContext support to NiTV, along with some extra trigger actions and new GSQs you can use if you like. My tests showed things working, and you can check the optional file [NV]BossSlime for an extra example on how to make a complex creature. I think GSQs should be used where possible instead of location contexts ๐
GSQs are love GSQs are life
to be happy you must simply enable the GSQ for it /j
I want to test a new pet I just made out, how do i increase my current pet to max so I can try adopting the new one. is there a cheat to do this?
with making npc schedules how do you stop them walking through other peoples gardens and destorying stuff?
like npc garden furniture
that need a mod like non destructible NPC
are you spawning them with FTM? if so theres a setting for indestructibility that might work
if it's a user decoratable area (or if the above doesnt work) you probably have to ban them from going in with NPC barriers
no no, GSQs check if you're happy. to make yourself happy that's trigger actions 
when adding a custom item does the seasonal changes/recolor changes still only go in the content json or do they need to be defined in the recipe json, objects json and [insert item type] json too? there arent any mods for fences with recolors and seasonal changes and added as a custom recipe that i can look to on nexus for reference
I think you only make 1 recipe right
Hey everyone. I have an idea to create a mod that takes over the mechanics of the game Satisfactory. At least: drilling rigs, smelting furnace, conveyor belts, connectors and splitters, plants for the production of different materials, which will be connected to conveyor belts.
Basically, Factorio )
Would you like to see such mechanics in your game?
I'm having such a hard time with these new cp changes :( they're so vague now I'm not sure where to even start beyond my config schema and manifest
I think it would be a neat alternative to automate/junimatic but you gotta be mindful that sdv maps are small compared to those games
aye, I'm looking at sve's for the small hardwood fence but its laid out a bit differently than the wiki says for building/defining a recipe
so I'll look at the wiki a bit more
{
"Action": "EditData",
"Target": "Data/TriggerActions",
"Entries": {
"{{ModId}}_HappinessCheck": {
"Id": "{{ModId}}_HappinessCheck",
"Trigger": "DayStarted",
"Condition": "PLAYER_IS_HAPPY Current true",
"Actions": [
"AddConversationTopic GoodMoodToday 1",
],
},
}
}```
Vibe Check...
i don't think it really matters where the code is for that.
unless i'm misunderstanding the question
I think the easiest way would be to use CP to add a custom fence and then EditImage your tilesheet to change it seasonally
chu mentioned it but do take a look at Junimatic for existing art
within content.json still, like how things were... still are? I'm just seeing the hedge fence in sve's stuff has seasonal changes in the fences json so it threw me for a bit of a loop
but maybe its as jea says and it doesnt matter? and then I guess I could put recolor options in the content json...
I agree with that, but it would be fun to create your own plant for people to use.
the json location doesn't matter, unless you're using dynamic tokens for the code
there are also a bunch of separate industrial machines mod
but by all means there's definitely a market for those mods; the more important question is your capabilities and the time you're willing to put in
I'm not, no.
It shouldn't make a difference, yeah. I would highly recommend not using SVE as a guide in any way, it's all over the place in its coding and way too large to be helpful besides
I'll take a look, thanks!
yeah :( unfortunately its the only recent mod with a fence recipe to look at. Wehn i browsed nexus its all old CP stuff from before the overhaul and AT
edit: all cp stuff that just replaces the current fences
in general, different code jsons are just for convenience, there's no real purpose for em
(did i spell that right? buh spelling)
ok I'll try to go with what I know then and delve into the wiki a bit more for the other stuff
convenience?
is that what you meant by spelling?
yes that is the word, thank you
i think what Airyn said is your best course of action. load your fences tilesheet and editimage it according to season.
For me it will be like a hobby, yes a good opportunity to bring something new to the game. I have a good knowledge of C#, but I understand that the documentation has to be collected from scratch.
!startmodding feel free to read through the C# guide
Making mods can be broadly divided into two categories:
- Content packs are formatted text files, and don't need any programming knowledge. They can add/edit NPCs, maps, new items, shops, and more. To get started, see the list of framework mods, the wiki tutorial for Content Patcher, and there might be relevant guides on the tutorial wiki.
- C# mods use programming code to change fundamental game mechanics. See getting started with C# modding.
Usually itโs easier to start with making content packs, since you don't need to learn programming.
!decompile and read the source
If you want to make SMAPI mods with C#, one important resource is decompiling the game to read the game code. Here's how to do it: https://stardewvalleywiki.com/Modding:Modder_Guide/Get_Started#How_do_I_decompile_the_game_code.3F
So, I tried to debug it on a clean save, new clean mod list. To be precise, I noticed that the C# game code for the Summit event always takes the dialogue from .json/.xnb (if not edited with some mod) files. And as the third one acts like an event, I am trying to test if it works for the first & the second one as well - it should. And it also does, at least with the first one, as I keep running into an error with the second one:
Event '-1' has command 'pause 500/viewport move 0 -1 4000/pause 5000/speak StrojvedouciDenis.Eleanor It is so beautiful up here.../pause 500/message If I can see this, then the second one works!/pause 500' which couldn't be parsed: required index 1 (int pauseTime) has value '500/viewport move 0 -1 4000/pause 5000/speak StrojvedouciDenis.Eleanor It', which can't be parsed as an integer.
Full log: https://smapi.io/log/bbc9c09fc61f48b18a63d1de92e84e36
The changes I made to that dialogue (directing to the lines that are used): https://smapi.io/json/content-patcher/bf3aae57ef9643918f841944283335c0#L216
Does anyone know how to fix it?
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Pro, with 11 C# mods and 1 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
I think when I updated the Satoru NPC to fix his summit dialogue, I had to add SummitEvent_Dialogue3_<spouse> as a specific dialogue key.
For the third line, at least.
But as far as a string line, rather than a message reference... if I'm remembering right, don't you usually do /speak <npc> \"text\" ?
I could be wrong
That might also be the reason why the third one doesn't work...
Yeah, I tried with that and as it also didn't work, I changed it to message and forgot to change it back...
did i do the weird math correct for setting random chances. I want i 1/4 chance of the Peahen and then even chance for all the others. I think it is right but want to double check. https://smapi.io/json/none/bcb04314c32547fd87ffb7d03ba8c295
What do you mean by that?
Sorry, Discord ate the slash. Like this: /speak StrojvedouciDenis.Eleanor "It is so beautiful up here..."/
I don't think that'll work - the game code ends with /speak
stringBuilder.Append(name).Append(" 11 13 0/skippable/viewport 10 17 clamp true/pause 2000/viewport move 0 -1 4000/move farmer 0 -10 0/move farmer 1 0 0/pause 2000/speak ").Append(name).Append(" \"").Append(this.GetSummitDialogue("ExtraDialogue", "SummitEvent_Intro_Spouse")). etc.
The fact that the error says it can't be parsed as an integer makes it seem like an earlier slash is missing though
BTW, VS Code doesn't like that.
If you do a patch export for the Data/Events file, how does it show the result for that event?
A minute, please...
I think it's the railroad file you'd need?
I forget if Summit fires at Mountain or Railroad or somewhere else
And that would be why?
Use BACKSLASH"<Text>BACKSLASH"
\"Text\"
For that patch export, right?
VSCode will like it, and it still fits CP formatting
Yeah, you'll want to specify the event file that contains the summit event for the export
It was like that before, but we are, let's say, experimenting...
I suggested that before, 8AwA8, but Dennis said it didn't work when they'd tried it.
So I'm wondering if an earlier slash got eaten somehow and we're somehow in the wrong action
I think I can't export the Summit event, because it has unique code - it is not in Mountain nor Railroad
In that case, check Farm or Town
Oh
If it's on wakeup and stepping outside, it'd be in Farm
You want to change what your spouse says on the summit event?
Thats Summit_Dialogue3_<Spouse> Unless you're doing something else
this code doesnโt end with speak, fyi - itโs /speak, then a name, then \โ, then whatever dialogue is in SummitEvent_Intro_Spouse
Append here means just that, itโs appending to what was before it
I feel like most people just patch the Strings file for the first summit lines, though. >_>
Rather than the event
Yeah, thats what I'd do
Nope, not there 
When married to that NPC patch those strings
are you trying to use -1 as an event ID?
I don't have the game files in front of me at the moment, but I can take a peek after my work meeting if you still haven't resolved it
Of course these edits will be only for my NPC when the player will marry them, but as I didn't code that, I'm doing it for everyone right now. But I married her,
Like debug ebi -1?
(-1 is a code genetate event)
Because that won't work.
"SummitEvent_Dialogue1_Spouse": "I was just thinking about the last %year years...",
"SummitEvent_Dialogue1B_Spouse": "We've been through a lot together, haven't we?$h",
And then
"SummitEvent_Dialogue2_Spouse": "...But look how far we've come.",
"SummitEvent_Dialogue3_<Spouse>": "Something"
I think part of the issue is that you've put event commands (pause) inside your dialogue string rather than just the text.
"SummitEvent_Intro2_Spouse": "It's so beautiful up here...\"/pause 500/message \"If I can see this, then it works!\"",```
Yeah you don't use pause here
I am trying if also other event commands, like move, etc. will also work there.
thereโs an odd number of double quotes too, which canโt be right
thereโs no situation where you should ever have an odd number of double quotes
This is not part of the event string, so I don't think event commands will work
They do work in SummitEventDialogue3<Spouse>
can you fix the quoting first? because thatโs definitely broken
Thats cool that they do
"SummitEvent_Dialogue3_Haley": "giggle... $h"/faceDirection farmer 1 true/emote farmer 8/pause 1000/speak Haley "Oh, it's just that...#$b#As a little girl, I always dreamed that one day, I would climb to the summit with my true love, and share a kiss.$l"",
"SummitEvent_Intro_Spouse": "\"Hey, @.\"/pause 500/message \"If I can see this, then it works!\"",
Testing that one...
Oh, that example doesn't escape your quotes at all for the speech
also I know you guys were experimenting, but every quote other than the one at the very beginning and the one at the very end should have a slash before it.
iro, did my last example escape all the necessary ones?
looks like it to me!
I have to dip for a meeting in a few minutes so typing fast, LOL
haha dw
Don't worry and go or you'll be late! Thanks for help, though!
Iโll try to take over for you for now, I donโt know much about specific content patcher stuff but I do know syntax pretty well 
BTW, neither one of these work properly:
"SummitEvent_Intro_Spouse": "\"Hey, @.\"/pause 500/message \"If I can see this, then it works!\"",
"SummitEvent_Intro2_Spouse": "/speak StrojvedouciDenis.Eleanor \"It is so beautiful up here...\"/pause 500/speak StrojvedouciDenis.Eleanor \"If I can see this, then the second one works!\"/pause 500",
can you send the most recent log?
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Pro, with 11 C# mods and 1 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
No errors there, just the first dialogue was cutted at Hey, @. and the second was like /speak StrojvedouciDenis.Eleanor \"It, that's all.
Do you want pictures?
no, itโs okay, thatโs progress at least
one sec
"SummitEvent_Intro_Spouse": "Hey, @./pause 500/message \"If I can see this, then it works!\"",
"SummitEvent_Intro2_Spouse": "/speak StrojvedouciDenis.Eleanor \"It is so beautiful up here...\"/pause 500/speak StrojvedouciDenis.Eleanor \"If I can see this, then the second one works!\"/pause 500",
can you try this and see if the first one works now?
or at least if something changes
I have to go for like 30 mins, but I'll check that!
ping me when you get around to it!
Hey there! Yes I am the one maintaining Starblue, and yeah the spring variants are still there.
I'm not sure what you need the JSON for? I will be clear, though, the version I gave you is absolutely not finished or ready for release in any way! I thought you wanted it for testing/just to get the basics in place for your mod.
All of the keeping track of the items cooldowns, etc., will need the multiplayer stuff to be finished, and I'm not silly enough to promise when a multiplayer compatibility feature will be fully finished and tested. 
Heyo! I'm trying to register a custom token through extensibility. I managed to access the token and its value with a Pack, but the token never updates (saving the pack's config in GMCM does update the token)
The token implementation:
https://github.com/mikael-uhl/SimplyShirtless/blob/tokens-test/SimplyShirtless/extensibility/ContentPatcher.cs
The pack using the token:
"Action": "EditData",
"Target": "Strings/StringsFromCSFiles",
"Entries": {
"TV.cs.13114": "{{JhonnieMike.SimplyShirtless/CurrentShirt}}"
}```
Is it necessary to invalidate assets inside UpdateContext()?
There's a couple of issues with your approach:
- A token should only change during
UpdateContext, but you change its value wheneverGetValuesgets called depending on the input arguments. That will lead to strange behavior in content packs. - You're using the advanced API, which means you need to worry about internal Content Patcher concepts like context updates, immutability, boundedness, etc.
I suggest using the basic API instead, in which case Content Patcher will handle all the details for you and it should just work. Something like this:
contentPatcherApi.RegisterToken(_modManifest, "CurrentShirt", () =>
{
string shirtId =
Game1.player?.shirtItem.Value?.ItemId
?? SaveGame.loaded?.player?.shirtItem.Value?.ItemId;
return shirtId != null
[shirtId]
[]; // don't return null, which marks the token as non-ready
});
DH do u think u can hide the logs about fake farm animal spawning in next version of MEEP 
(I got spoiled about snails in the volcano)
Fortunately, already done for the next release!
@blissful panther
did you ever release this mod? https://github.com/StardewModders/mod-ideas/issues/704 and if not, would you like to be unassigned?
Before I click on it, let me guess that it's the VO one?
it is!
It is still one I'm very slowly making, but if me being assigned to it is preventing others from deciding to pick it up...
I do intend on implementing another token that accepts inputs, so i was trying to understand the correct use of the Advanced API. But i finally understood how the value is indeed changing outside of UpdateContext, i think i have a clue on how to use caching to my advantage
Tysm!
I doubt it's doing that, I just wanted to know if you're still interested since some people don't realise they're still assigned to old issues haha. Since you are I'll leave you on there!
@gentle rose my current project is not for this, per se but it could be used for it. i guess i should finish it sometime soon
because nicknames are a thing
that's their actual discord username
like how mine is wopr1234
I think there's something wrong with your Discord client.
it happens to me too, discord gets weird about nicknames sometimes
Ok it unbork once i restart, maybe it is funny caching with the server profiles?
actually, @blissful panther, how does yours work? maybe we should talk shop about it. i'm almost out of time right now but i'll be back in about seven hours
yeah, discord does have weird server member caching (makes developing bots real fun sometimes)
Got it working finally
this next update should fix your issue
(ignore the duplicate on the top left, that was an intentional test)
You're the best! โค๏ธ

by the way, the update is up. let me know if anything comes up!
I will
@gentle rose
I'm back, sorry for taking it quite longer than I expected!
It looks like this now...
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Pro, with 11 C# mods and 1 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
And the third one is broken like this.
Code:
"SummitEvent_Intro2_Spouse": "/speak StrojvedouciDenis.Eleanor \"It is so beautiful up here...\"/pause 500/speak StrojvedouciDenis.Eleanor \"If I can see this, then the second one works!\"/pause 500",
"SummitEvent_Dialogue3_<spouse>": "{{i18n:Dialogues.marriage.SummitEvent_Dialogue3A_{{ModId}} |PlayerName={{PlayerName}}}}/"```
I18n:
``` "Dialogues.marriage.SummitEvent_Dialogue3A_StrojvedouciDenis.Eleanor": "Such a nice view here, don't you think, {{PlayerName}}?#$b#I'm glad we came here...#$b#It is %years years since you came to Pelican Town, and I'm happy you did.#$b#Because my life is much better with you in it.#$b#Just think about it - how would my life look like if you didn't come here?#$b#Would I ever find out about myself? About my powers? About my parents's past?#$b#Because I can't...",
can you try the same strings in a regular, non-summit event? so we know if the issue is the event string or the summit specifically
Hello! I am very new to mods and but was hoping someone here would be able to provide a bit of guidance. I think my questions can be simplified to: can you mod another mod via content patcher and, if so, how?
Basically some of the expansion mods we're using (mainly SVE + Dwarven Expansion) add in more animals but we have Elle's Cuter Animals to retexture all the vanilla animals on the farm. The juxtaposition of those new animals next to our cute ones is very jarring. I have some tweaked sprite sheets that match the style of the Elle skins for the added animals but I don't know how to apply them. Would anyone be willing to help me change up some code so it works?
* I don't know much about the modding community or mod etiquette but this is meant as a jumble of tweaks for personal use in the farm my friends and I have so I haven't asked permission of any mod authors regarding the stuff I want to retexture
Oops - error sprite + no portraits
.
The log: https://smapi.io/log/b142db83a236493d993fa48088eae263
Code:
```
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Pro, with 11 C# mods and 1 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
I had to edit the dialogue formatting, otherwise it would be invalid. I'll try with the same one.
What happened to the config.json?
The dialogue worked correctly/the same in both variants...
Code:
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Pro, with 11 C# mods and 1 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
Then the problem is that the summit doesn't handle events the same way, apparently. Not sure if there's a workaround for that tbh
It's definitely possible for you to retexture another mod's asset - it would basically work the same way as a "basic" mod
But even for personal use, I think it's best if you asked and/or checked for permission on the mod page
Yeah... Never mind, I'll come back tomorrow, try some things out and report back here, in this channel. Thanks for help, though!
generally we consider personal use stuff to be okay with no permission requested tbh, just don't publish it
Can make and publish: a new mod with all original assets, inspired by or requiring other mods
Better to keep as personal use: mods that are minor edits to existing mods that can't work without the original assets packaged in
i am definitely not going to be publishing it. if i ever did consider putting anything out i would absolutely reach out to the mod authors and make sure they were okay with it first but like... i am very very far from something like that and not sure i even have the level of interest necessary to go through with publishing something ๐
Because of how content patcher is done, making the first one is pretty simple and manageable 99% of the time
is it possible in an event to combine "end invisible <NPC>" and "end position <x> <y>"?
actually now that I think about it I think I can manage without forcing the end position
Weird question - is there a simple way to make a dagger a sword?
I.e. make a dagger act like a sword
If you just change the type on a Weapon it'll probably work
Something to try when I get home (then immediately test via the Desert Festival testing XD)
howdy guys! could i get a fresh set of eyes on an issue im having getting my custom farm to boot up? ive gone over and over the JSON and Tiled files and i cant figure out why content patcher doesnt seem to be agreeing with it; every time i try to open it SMAPI says it cant find my farm in the /maps folder.
i have a zip of it on the forums, but so far no help and i dont have much more free time this week to mess with it haha
https://forums.stardewvalley.net/threads/custom-farm-map-cp-content-file-not-found.36612/
Hello! I'm brand new to modding, and I've been fumbling through making a map for myself and my friends. It's not totally complete, but as far as my understanding extends, it should definitely be done enough to test the warps and building placements?
I'm going to .zip up and attach my mod...
!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.
@toxic hornet Using -# is blocked, thus why your message isn't going through
Most likely you forgot to load something
Yeah
https://smapi.io/log/3d47cde91ba34a278585814a8cf8608a here you are! thanks for taking a look
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home, with 4 C# mods and 1 content packs.
Just to be clear, you have to have combat mastery in order to use any of the trinkets added via it, right?
This file is missing
FriendFarm\assets\FriendFarm.tmx
Or does it unlock trinkets earlier
Did you have file extensions off?
the file its asking for is definitely right where it says it isnt. what do you mean by file extensions being off?
Since it's a framework it doesn't impose any mechanic changes on trinkets, ie you don't get a trinket slot until you have mastery or some other mod that makes it unlock earlier
Thank you, that's all I needed to know 
Is your FromFile path in your Load Action "FriendFarm/assets/FriendFarm.tmx" ? If so, you should remove the FriendFarm/ part, assuming that's the name of your mod folder
It was discussed that unlocking the slot earlier is something doable via a trigger to set the stat, in content patcher
And I am thinking of alternate ways to equip trinkets, unrelated to having a slot
yes, sorry, i had had it that way and tried that just to see. let me fix it and send the Actual error log ๐
Thank you! I was trying to figure out what rules I was breaking ๐
-# become Farmer rank and you, too, can speak in a soft voice
or a loud one
https://smapi.io/log/5cc5b08a5ec547939591fcacdd4b8bef heres the relevant one, sorry about that
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home, with 4 C# mods and 1 content packs.
Depends on what you want voice wise 
looks like you are not using a relative path
!json send your json too please
JSON is a standard format for machine-readable text files that's used by Stardew Valley mods.
If you need help with a JSON file, you can upload it to smapi.io/json to see automatic validation and share the link here.
When making mods, it's recommended to edit your files in a text editor with JSON support, such as VS Code, Notepad++, or Sublime Text. These programs will check for syntax errors.
(im on mobile so i can't download your zip)
I was planning on the latter .... I thought that one would be easier than the first one 
An example of a small tweak I already did to Elle's Coop Animals:
My friend is obsessed with the blue chicken so I added an extra blue chicken recolor into Elle's mod and added some the sprites + code for blue bunnies and ducks to be possible skins. This is only so my friend can have an All Blue Coop. The assets are Elle's, I just did a recolor of them. I would never consider sharing this outside of the 3 friends who are playing on the farm with me. I also did a recolor of one of the Elle ragdoll cat sprites to look like my kitty and added a new breed of dog (Shiloh Shepherd) to the options in the cuter dogs mod. The Shioh Shepherd sprite and patterns were made by me but in Elle's style and with reference to a variety of Elle's existing breed sprites. Even though it's technically new I wouldn't consider it different enough to be something that could be published.
(In some hypothetical where I wanted the Shiloh Shepherd sprites available in a published mod I'd contact Elle, offer the sprite sheets, and see if she wanted to include them... and then leave it at that if she declined. Not something I'm looking to do but using it as an example of my current outlook with tweaking mods.)
Currently, my mini project is to use sprites I made (referenced Elle's art so nothing would clash since that's what made me want to start this in the first place but they are entirely new species and the patterns on the sprite bases are also made by me) to try to replace the goose, camel, & bear from SVE and the naked mole rat from Dwarven Expansion. Still not planning to publish though. I made the sprites with color variety and baby versions for each of them. I'm having trouble with:
- targeting the goose/camel/bear/mole rat to be reskinned since they're not from the base game
- having the randomly chosen color options for variety once they are targeted
- applying the skin to the baby version rather than just adult
- keeping the baby skin on the baby instead of having it be the permanent skin
โฌ๏ธ I had partial success with the goose but only when it is fully grown and it seems to go to a single adult skin, so no variety and no baby retextures.
here you go! ive tried my best with a very small understanding of how this works, so thank you for taking a look
okay, your Load is targetting Isaiah.FriendFarm, but your map name isn't using that.
i was told that would be the best way to lay it out, but ill try changing it to the maps file name!
yeah, just remove isiah. from the load
Or add Isaiah. to the MapName. ๐
yep
(do the one fireredlily said)
@uncut viper You leveled up to Cropmaster. That's level 500! The deepening purple represents your mad descent into the server.

- Look at SVE's content.json, find where it edits Data/Animals, and determine sprite path from then
- Add Skins with targeted fields
3 & 4. I forget if babies have skin support
Keeping Isaiah in there is safer because of unique IDs and all that
If you are set on 3 and 4 you may have no choice but to make alternate purchase
Skins have BabyTexture
Yeah, don't listen to me
https://smapi.io/log/0544aa3d66b341b7b29d3a2d2631d467 heres what it had to say after i changed that ๐ im not going to be publishing this, so for now i removed it from the load instead of adding it to the farm name
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home, with 4 C# mods and 1 content packs.
Your filepath for the v16_Waterfalls tilesheet is incorrect, you likely edited your map somewhere weird so it's not a relative path?
Are you using the vanilla Waterfalls tilesheet?
how can i fix that? => and yes, i opened the town map in tiled and pulled the sheet from there so they would still be animated
(in this case the error will persist regardless of what you have in the load or mapname, fyi)
If so, you can open your TMX in a text editor and change the image source for that one to remove everything but v16_Waterfalls in the image source name for that tilesheet ๐
No need to reopen Tiled to change the path, text editor will handle that just fine.
thanks! do i need to do anything to the file after, or can i save it and try opening again?
Dwarven Expansion has baby skins for the mole rat. I'm just struggling with how to target that vs adult properly. It either doesn't put in a baby skin at all or only does so once the mole rat is all grown up, turning it into a tiny permababy.
SVE seems to be using the baby white chicken for the baby goose skin. It shows up with the Elle retexture for baby white chicken but not my baby goose.
I believe the SVE baby camel uses the sprite of the adult camel they have but resized to be smaller. Not sure with that one.
I don't understand what FlashShifter did when it comes to the bear
After saving it in the text editor, that error should go away. Just don't reopen the map in Tiled without moving all relevant vanilla tilesheets into the same folder as your tmx first.
if its a .tsx, you might need to do it in the .tsx file as well
!json you can send what you have here
JSON is a standard format for machine-readable text files that's used by Stardew Valley mods.
If you need help with a JSON file, you can upload it to smapi.io/json to see automatic validation and share the link here.
When making mods, it's recommended to edit your files in a text editor with JSON support, such as VS Code, Notepad++, or Sublime Text. These programs will check for syntax errors.
Im not at a computer so I can't help you with verifying the edit targets but the important thing is 1. Make your mod dependent on SVE 2. Use TargetFields to drill down to skins
would i change the sources on these to the /assets/ folder my farm is in?
no. the sources should have no filepath in them. just the name of the tilesheet
If its a Tsx, make sure you've embeded the tilesheet into your tiled map.
Tilesheet sources all need to be relative, which in this case, means no filepath other than the name of the file itself and the file extension if applicable.
And if you're using the Town file as your basis and just made the mistake of doing "Save As" for your map and saved it directly to your mod folder, that creates the issues you saw.
there are only like one or two niche cases where a tsx is useful over embedded tilesheets but they do work
You have to do your Save As copy in the same location as the unpacked original, and then copy/paste it to your mod folder at the end after editing.
Right now I just shoved the goose skins and code into Elle's Cuter Coop Animals (which is why it keeps referencing Elle's mod IDs in the code) because I didn't know how to make an independent file that would work. I could make a new thing if that would keep things cleaner/make it work better but I'd need some help with how to go about making it in the first place, keeping in mind I don't want it published.
This is the code in the content.json that I added for the goose:
"AllowValues": "GooseAmerican, GooseCanadian, GooseCzech, GooseEmbden, GooseBlue, GooseCadBlue, false",
"AllowMultiple": false,
"AllowBlank": true,
"Default": "GooseCanadian",
"Description": "This is the default skin for your Geese and what Geese on an existing save will look like. List only one, leave blank or write false to disable"},
"Goose Skins": {
"AllowValues": "GooseAmerican, GooseCanadian, GooseCzech, GooseEmbden, GooseBlue, GooseCadBlue, false",
"AllowMultiple": true,
"AllowBlank": true,
"Default": "GooseAmerican, GooseCanadian, GooseCzech, GooseEmbden",
"Description": "These are the skins your Geese can have when purchased or hatched. You can list multiple options separated by commas, leave blank or write false to disable"},```
---
```{
"LogName": "Goose Default",
"Action": "EditImage",
"Target": "Mods/FlashShifter.StardewValleyExpandedCP/Goose",
"FromFile": "assets/Goose/{{Goose Default}}.png",
"When": { "Goose Default": "GooseAmerican, GooseCanadian, GooseCzech, GooseEmbden, GooseBlue, GooseCadBlue" }
},
{
"LogName": "Goose GooseAmerican",
"Action": "EditData",
"Target": "Mods/FlashShifter.StardewValleyExpandedCP/Goose",
"TargetField": [ "Goose", "Skins" ],
"Entries": {
"Elle.CuterBarnAnimals_Goose_GooseAmerican": {
"Id": "Elle.CuterBarnAnimals_Goose_GooseAmerican",
"Texture": "Mods\\Elle.CuterCoopAnimals\\Goose\\GooseAmerican",
"BabyTexture": "Mods\\Elle.CuterCoopAnimals\\Goose\\GooseAmericanBaby",
"Weight": "1.0",
},
},
"When": { "Goose Skins": "GooseAmerican" },
},
{
"LogName": "Goose GooseCanadian",
"Action": "EditData",
"Target": "Mods/FlashShifter.StardewValleyExpandedCP/Goose",
"TargetField": [ "Goose", "Skins" ],
"Entries": {
"Elle.CuterBarnAnimals_Goose_GooseCanadian": {
"Id": "Elle.CuterBarnAnimals_Goose_GooseCanadian",
"Texture": "Mods\\Elle.CuterCoopAnimals\\Goose\\GooseCanadian",
"BabyTexture": "Mods\\Elle.CuterCoopAnimals\\Goose\\GooseCanadianBaby",
"Weight": "1.0",
},
},
"When": { "Goose Skins": "GooseCanadian" },
},```
---
```{
"LogName": "Load Goose Images",
"Action": "Load",
"Target": "Mods\\Elle.CuterCoopAnimals\\Goose\\GooseAmerican, Mods\\Elle.CuterCoopAnimals\\Goose\\GooseAmericanBaby, Mods\\Elle.CuterCoopAnimals\\Goose\\GooseCanadian, Mods\\Elle.CuterCoopAnimals\\Goose\\GooseCanadianBaby, Mods\\Elle.CuterCoopAnimals\\Goose\\GooseCzech, Mods\\Elle.CuterCoopAnimals\\Goose\\GooseCzechBaby, Mods\\Elle.CuterCoopAnimals\\Goose\\GooseEmbden, Mods\\Elle.CuterCoopAnimals\\Goose\\GooseEmbdenBaby, Mods\\Elle.CuterCoopAnimals\\Goose\\GooseBlue, Mods\\Elle.CuterCoopAnimals\\Goose\\GooseBlueBaby, Mods\\Elle.CuterCoopAnimals\\Goose\\GooseCadBlue, Mods\\Elle.CuterCoopAnimals\\Goose\\GooseCadBlueBaby",
"FromFile": "assets/Goose/{{TargetWithoutPath}}.png"
},```
(not sure if this is what you were asking me to share or something else)
and theyve worked as long as ive been active in here, but that was only when 1.6 released, so ive not got old hat knowledge
JSON is a standard format for machine-readable text files that's used by Stardew Valley mods.
If you need help with a JSON file, you can upload it to smapi.io/json to see automatic validation and share the link here.
When making mods, it's recommended to edit your files in a text editor with JSON support, such as VS Code, Notepad++, or Sublime Text. These programs will check for syntax errors.
im pretty sure ive been careful not to move it during the save as, as the wiki was pretty explicit not to. after removing the source paths, its giving me this error; "Friend Farm loaded map 'assets/FriendFarm.tmx' with invalid tilesheet 'untitled tile sheet'. This tilesheet has no image source." does that have to do with imbedding them properly? ๐ or would it be easier to scrub them and add them in a more proper fashion, and redo the pieces of map affected?
And I've been inactive for the most part since 1.6 came out, but was there before content patcher could load maps, when we used TMXL, so all I've got is old hat knowledge.
pls send it through the https://smapi.io/json
with our knowledge combined, we have no real useful information about tsxs or their history 
(or well, the history of how they changed anyway)
did you just remove the first part of the source path?
All i know is I see TSX and my brain screams "EMBED IT".
That is the path of least resistance, Draylon
currently the sources are only quoting the names of the files
I read taxes
if you linked to a TSX in your TMX, did you update that TMX, too?
i just use them as savesets for animations on specific tilesheets, and when i need those animations i click the swirly arrows, click it, then click embed and voila I have them on my map.
I also have no useful information about taxes OR tsxs, can I join the secret club now?
the secret club is for level 500+ only
what would be the proper way to do that? ๐
basically-- is there a TSX in your mod folder, and is there supposed to be one (for extra animations and such), or are you using the vanilla tsx/tbin tile animations entirely?
what if I'm not level 500+ but I apparently started modding before you 
yeah that was pretty much the one niche case ive been told about for tsx advantages lol. but didnt know you could just limport a tsx as an embedded thing or whatever. (i dont do map stuff)
i said since i was active not since my first mod
considering he's new to it, id assume he's just stealing the animations off another map to use on his.
sorry i was double checking. i pulled the waterfall sheet from the town map, but ive also copied it into the mod folder to see if that would help. so there is a tsx in the assets folder with my tiled map, yes
I only ask because the reference was weird
i would happily remove it and add it in a better way if you could explain how to
Again, this is Elle's code and I just shoved in some stuff for the goose because I wasn't sure how else to do it. I can try to make a new file if that's an issue.
i was following (a kind of old) tutorial from youtube when i added it, so it could have been bad or outdated information and thats why this all went to spaghetti so bad
ah, video tutorials-- the bane of my existence
LOL
if a tutorial is uploaded before ~april of last year, its too old
good to know!
wait button did you literally just hit 500 half an hour ago? congratsssss 
ourple
okay, so a quick check here: in the Town base file, the waterfalls tilesheet is embedded, which looks like this: <tileset firstgid="5939" name="v16_Waterfalls" tilewidth="16" tileheight="16" tilecount="900" columns="36"> <image source="spring_Waterfalls" width="576" height="400"/> followed by tile IDs and an <animation> section with a bunch of frames and durations (that's your embedded tile animations from the TSX)
that makes sense! in that case yes, alright, ive added 2 tile sets (both vanilla, ones the island set and ones the waterfall tsx) so should i remove them and add them fresh, in a better way? lmao
alright. is that something that would need to be manually added to the farm then? to properly embed it?
If your aim is to edit SVE's Farm Animals data, then you shoud Target Data/FarmAnimals, the same exact target SVE edits.
(several people are typing LOL im trying my best sorry for the hassle)
Ideally you would START from a map that has the sheet already in it, for simplicity.
The Basics Are.
- Make sure that when you edit maps, you do so in an unpacked maps folder, only move it to your mod folder when you are testing/Done.
- Make sure any tilesheets you load or currently reference in your map, are in the same folder as your current map, aka maps. (Click the gear w Page icon and tileset at the top, then Tilesetproperties, and look at source under image, if its not in maps you should click image then edit and retarget the one in maps.) Each one is Seperate so you may have to do this multiple times.
- If you have a TSX, I'd just say embed it, if its in use on your maps. The arrow going onto the page (Each tileset is seperate so you might have to look through multiple).
I see that you have most of elle's mod's content json in here, don't do that. Only include the edits you are making
But that can be tricky since not all the farm bases have waterfalls on them. ๐
finally /lh
As for the actual edits, the goose ones look correct
I checked out of Curiousity and I'm currently lvl 499 with 2 pips from 500
Oh except for how they are targeting the wrong thing
Question? I am making a custom item that is found by foraging. I then want to put it in a preserve jar to process. But because I gave it the forage category the game keeps ignoring my output and making it pickeled instead. I can fix it by changing the category. But I want the category to say forage when you hover in game. Is there a way to make it prioritize the output I set up?
You still need to target Data/Animals
okay! i think im wrapping my head around this then. im trying to test that the warps and buildings are placed correctly, so im trying to boot up, but everything otherwise is saved to the unpacked content folder. i copy it into the mods folder when i save it. ill try embedding it and double checking all of the paths for the images and get back to you =>
Hopefully that fixes any tilesheet issues. 
But use a target field like
[
"FlashShifter.StardewValleyExpandedCP_Goose",
"Skins
]
(assuming this is the right internal id for goose)
What I'd suggest at this point if it's still acting up, is to go ahead and copy all the vanilla tilesheets you're using to your mod folder, reopen the map in Tiled, and then replace all your tilesheet sources with the ones in your mod folder, so that all the paths are updated to be relative.
You just need to remember to remove the vanilla tilesheets after you're done editing
You can do patch export Data/Animals to see what the fully loaded version of that asset looks like in game
Wow steem
Are you just trying to add more skins to the goose?
damn i looked away for like literally 10 seconds and i missed it
Would I be able to get the files you use to make the recolour please so I can update the tilesheets for WTDR?
removing the vanilla tile sheets ive moved into the mod folder and set the sources to? as in, removing them from the mod folder before i play it or?
you have to remove the vanilla tilesheets you've moved into your mod folder to edit your map with before you publish.
you shouldnt need any vanilla tilesheets in your mod folder at all.
They live there only during the Editing process. ๐
Apologies! Iโll change that as soon as I get back inside (irl dog demanded a potty break). Thank you for letting me know
Draylon, this is for editing in your mod folder rather than in the unpacked Maps folder.
Which some people do!
ah, 
You just have to remove the copied vanilla sheets after or you break every recolor mod ever on your map
unless you're okay with doing that 
Which I have done before, The Curse of wanting/needing custom tiles
I mean, I can see it, what if your map looks terrible with a recolor on?
So you just... break the recolor capability on your map. ๐
Or you add stuff from Tilesheets/Furniture that you've loaded to Maps instead of using the Arbitrary Tilesheet Access mod.
I've done it before to make certain maps work, yeah. i dont need to much anymore, as we have gotten a LOT of tiles since 1.4 Moving forward. but yeah, sometimes we just didnt have stuff
like how i know how to do chained corners of cliffs without extra layers, have it look nice and not break, now that we have extra layers inbuild i dont need to do that anymore. Old Man Knowledge!

I did want to ask, by using the basic normal vanilla tiles, it'll automatically go through the seasons right? lol
any tileset marked "Season_" in the front naturally rotates
(as long as there are actually seasonal variants! dont name a custom tilesheet spring_whatever and expect it to work if you dont make other ones
)
True
i guess technically it WILL rotate... it will rotate you into a crashed game
LOL okay, good to know! thank you!
im speedrunning every possible mistake so my next map is perfect ofc
There is always more to learn 
@lusty elm You leveled up to Cropmaster. That's level 500! The deepening purple represents your mad descent into the server.
congrats haha
copycat
Ironic comment to level up on
I find it interesting that the desert doesn't change in any of the seasons
Because deserts near green land do experience some changes.
steem communnuty, in fact
Several level 500s in one day eh
Also that is a great comment to level up on!... unlike my poop framework comment for level 1000 XD
its why i needed to make a custom winter layout for my Desert Farm map.
well technically I didnt HAVE to, but it was easier.
I'm happy with my level 213
I made a new version that is just what i added in for the goose edits
https://smapi.io/json/content-patcher/4d809edf804b49139deda01d3388664c
You need to enable the mod for events (asides from the default config), and it should work
So replace the bit that is highlighted in TargetField with what you wrote there?
I don't actually know if i have the right Id for the sve goose
So you would want to double check that
The other thing is that u probably want to use your own mod id rather than elles
Using the {{ModId}} token
The convention is author.ModName, so you can do something like pixie.ElleStyleSVEAnimals
This goes in uniqueid of the manifest
I wonder how much should I separate my classes, is there any drawback to having more of them, or even having multiple near-same methods or should I come up with a way to make one piece of code as multi-purpose as possible
Well if you have a chunk of code you use a lot then u should probably make a method
There's not really any drawback to having more classes
right now the edits were tossed into Elle's code because this is literally my first time coding anything and i didn't know what to do with all the different files (manifest vs config vs content) but i can try making my own. {{ModID}} would just take the place of Elle.CuterCoopAnimals and then reference whatever mod ID was listed in that particular folder's manifest, right?
Yep
To clarify, manifest.json defines a mod, all smapi mods have one of these
in your case, you are making a pack for content patcher, which is a C# mod
The Mod's passport
That's what content.json is, stuff provided to content patcher
where do i put this line?
well that much I know, but what if I have multiple methods that work on pretty much the same basis, ex. getting tile data and moving to it, am I fine with having as many as I want for purpose of clarity or should I condense the foundations into one? none of them are executed simultaneously though.. I'm probably overthinking aren't I
This is a command you put in smapi console, after loading into a save game
Reusing code is good because if you need to make a change then you only need to do it in one place, and it can be more clear if you organize things logically
How do I get the game to prioritize my recipe over a vanilla one. I tried to copy sturgeon roe. But the game still makes the base game version? Do I need to make my code appear "above" vanilla code? If so how do I do that.
You need to do MoveEntries
Put it before vanilla roe rule
Where is the format for that can't find it on the wiki
patch export Data/Animals
[Content Patcher] Couldn't load asset 'Data/Animals' using a likely type (tried: System.Object). Try either specifying the type, or waiting until the game loads it before exporting it. See the SMAPI log for details.
game is loaded and i'm standing with all my animals
I remember wrong it was Data/FarmAnimals
Basically this is the relative path in ur Content folder
This page discusses what the fields mean https://stardewvalleywiki.com/Modding:Animal_data
Thanks
grumbles
I'm really confused why it isn't pulling the portraits or characters for rain. It works with Penny_Spring_Rain, but not the _2 and _3 versions. Double checked spelling and pathing should be correct. What are some common errors I can look for. I don't fully get the smapi long error of what all it is saying is wrong.
https://smapi.io/log/b1ceb3d0d7f048f1ae8642ef0b563325
https://smapi.io/json/none/1b5375e809c3465ead50fb3598b0c40c
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home, with 39 C# mods and 48 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
you're not loading anything for Rain_2 or Rain_3
got it! (i think)
So should the target be FlashShifter.StardewValleyExpandedCP_Goose instead of Mods/FlashShifter.StardewValleyExpandedCP/Goose
jk doing that broke it so the geese went from all being the new skin i had set as default to the original SVE skin
thanks. Now to figure out why it isn't pulling the file when it does exist
@calm nebula: remove the atracore dependency listed for Less Mini Shipping Bin (17h ago)
No u
uhh should I even take into consideration compatibility with multiple spouses mods? I have no idea how to even get to that
A lot of people use those mods, but you don't have to do any compat if u don't wanna
Well it was quite straight forward. You could upload this as an optional file? (I will just say it isnt compatible with multiplayer)
the thing is, as far as I'm concerned it should work with one spouse, the last one married I think
cus it overwrites the player.getSpouse() value
but tbh I probably shouldn't even make them compatible as spouses would end up like slaves on the farm xD
yep, thats settled
doesnt really seem like a comfortable joke to be making
(I mean I'm not gonna do it)
Unfortunately I lost a lot of the resources I made a few months back due to a catastrophic hard drive failure. ๐ฆ
For more recent updates, I've just been using the eyedropper to get the colors I need from the existing assets.
@lucid iron when I changed it to FlashShifter.StardewValleyExpandedCP_Goose it stopped applying the new skin. With Mods/FlashShifter.StardewValleyExpandedCP/Goose as the target it applies the skin I have as the default goose skin to the adult but none of the other goose skin options and not to the baby
.. not the point
rule 6
yeah sorry, never had someone point that out to me
You have to buy a new goose to get any newly added skins
What is applying is the EditImage that was targeting the base texture
For testing skins u can use me mod if u like: livestock bazaar
It let you pick skins
You can also use alternative textures (bucket?) on ur goose
What would be the most appropriate way of having the player unlock catchable fish? I was thinking of having a specific machine recipe being crafted for the first time unlocking the new fish location data
but the only way I know I could check for this is if they have the crafting recipe, or using the player stat gsq for itemscrafted
it's the scissors and when i use them it says there are "no alternative textures for this season" available for my goose
about to buy a new baby goose just to see
The other thing to do is patch export Data/FarmAnimals again
See if you have the data you expect under the Skins field
yea the baby geese are broken too
When the game defines "Edibility", what does the number represent? Like how much health it gives?
So, these are basically two different things. If you open FarmAnimals.json in SVE, you can see there are basically two types of Edit actions, right? One is like { "Action": "Load", "Target": "Mods/FlashShifter.StardewValleyExpandedCP/Goose", "FromFile": "assets/FarmAnimals/Goose.png" }, Which loads an image asset into the game, and another is like { "Action": "EditData", "Target": "Data/FarmAnimals", "Entries": { "FlashShifter.StardewValleyExpandedCP_Goose": { "Texture": "Mods\\FlashShifter.StardewValleyExpandedCP\\Goose", "BabyTexture": "Animals\\BabyWhite Chicken", }, } } which edits the farm animals data in the game.
So if you want to edit the image of the goose already in the game, you do EditImage targetting Mods/FlashShifter.StardewValleyExpandedCP/Goose.
Determines both health and energy.
Edibility goes through a formula to determine health and energy
Ah, alright. Follow up on that, what does each "category" represent? I cant find anything on it on the wiki
But if you want to edit what assets the goose is using, you'd do EditData targetting Data/FarmAnimals and specify it to be FlashShifter.StardewValleyExpandedCP_Goose entry,
Ah, thank you!
"A numeric value that determines how much energy (edibility ร 2.5) and health (edibility ร 1.125) is restored when this item is eaten"
EW I have to do M-M-MATH to mod?!
Just a descriptive term, also used for things like what can go into certain machines
The wiki shows what each category does
Some have an effect, some dont
Ohhhh cool, thank you so much! Yall are such lifesavers sometimes lol
In this case, I assume you want to both edit the image already loaded (Mods/FlashShifter.StardewValleyExpandedCP/Goose) and also change the FlashShifter.StardewValleyExpandedCP_Goose Farm Animals entry to have baby texture other than Animals\\BabyWhite Chicken?
They actually want to add a new skin
So this is the thing that would allow me to make the goose randomly grab from the 6 skins I made for it? Or would EditImage allow for random image selection?
Oh, then you'd need to load both of your skins first and not touch Mods/FlashShifter.StardewValleyExpandedCP/Goose at all.
Im gonna be afk for a bit but hopefully others here can help
@calm nebula: check for tilesheet invalidation at season change (18h ago)
So I assume you have 12 textures? 1 for adult and 1 for baby each?
that feeling when you freehand the code and get it right the first time:
Meeeeeeeooooooowwwwwwwww
(Fine)
Do you also want to change the default SVE goose or leave it alone?
I would like to change
thwv
l[l
Sorry my dog face smashed the keyboard so I would pet him
Last, do you want it to be customizable like Elle's? So a user can choose what type of goose they want in the game or not?
I would like to change the default SVE goose to one of the skins I made for it so all our farm animals have the same style
Indifferent to this part because I wasn't planning to publish it atm. This was a personal project specifically for the little farm I have with my friends
Seems like a good thing to know how to do in general but that's like lowest priority
(also thank you)
Alright. So which one of the pngs would you like to be the default sprite?
Personal Projects/mods/alterations is how a lot of modders start 
My first mod was just changing every npc to krobus ๐
My first delve into modding was editing a custom farm map to remove tiling errors that were bothering me during play, then i found more, and before i knew it i was redoing about 20-25% of the map, and said $#&^ it, if imma draw a map, I'll Draw MY OWN!, so I did.
GooseCanadian
it wasn't a great map.... but it was mine, I also intentionally leave it pretty much untouched on nexus so i (and others) can see what I started from.
Let's take it step by step, then. What I'm about to say might not be the most efficient, coding-wise, but I think it would be easier to understand how things work. Do tell me if I'm going too slow.
pretend im a toddler
(i'm a tired grad student that has been studying pathology for hours, my brain has melted and comparing me to a toddler is pretty generous atm)
FarmAnimals.json in SVE use Mods\\FlashShifter.StardewValleyExpandedCP\\Goose as adult tetxure and Animals\\BabyWhite Chicken, right? So you want to change the base adult goose texture, but I assume you don't actually want to change Animals\\BabyWhite Chicken since that would also change the vanilla chicken.
So first thing first, you'd want to EditImage the asset already loaded by SVE and change it to your GooseCanadian. It should look something like this { "Action": "EditImage", "Target": "Mods/FlashShifter.StardewValleyExpandedCP/Goose", "FromFile": "assets/Goose/GooseCanadian.png" },
For the adult.
For the baby, since SVE doesn't actually load any asset for that, you'd have to Load that asset yourself. So it'd be something like { "Action": "Load", "Target": "Mods/<YourModID>/GooseCanadianBaby", "FromFile": "assets/Goose/GooseCanadianBaby.png" },
(Note that your Load Target can actually be anything as long as it's unique. Instead of Mods/<YourModID>/GooseCanadianBaby, it can be HeyMerryHohoItsNotaDuck if you want. This is just the accepted practice to make it easier for people to know which assets come from which mod.)
Lastly, you'd want to make the SVE Goose to data actually use your loaded baby texture as the base skin. (the adult one has already used Mods/FlashShifter.StardewValleyExpandedCP/Goose, so you can leave it alone.)
.Choose Small Pond, Normal Pond, Water Flows into underground.
Choose result: Small Pond
So you can see again in SVE's FarmAnimals.json, it does EditData on Data/FarmAnimals, and you can see that it has an entry of BabyTexture under FlashShifter.StardewValleyExpandedCP_Goose. So that's the field you need to target.
"Action": "EditData",
"Target": "Data/FarmAnimals",
"TargetField": [ "FlashShifter.StardewValleyExpandedCP_Goose" ]
"Entries": {
"BabyTexture": "Mods/<YourModID>/GooseCanadianBaby",
},
}```
Shoule be something like this. Note that on TargetField there's no "Skins" field. This is because currently we are altering the base texture first and hasn't touched the alternative skins.
Hiya, was wondering if anyone could tell me what I'm doing wrong with Appearances https://smapi.io/json/content-patcher/ab6e5f3831dc413c8dbcef5fc6e5fbeb That is my SMAPI log, I keep getting this error message. [Content Patcher] 'BestOfFriends' has multiple patches with the 'Exclusive' priority which load the 'Characters/Estelle' asset at the same time (BestOfFriends > Sprites #1, BestOfFriends > Sprites #3). None will be applied. You should report this to the content pack author. It has to do with trying to have my character have a certain sprite on saturday's but I cannot for the life of me figure out this 'Exclsive' priority??
And that's all for the base skins! You may want to test this first to see if it works.
that is my content.json**** not smapi log
OKay, two things! You can't do multiple Load into just one Target. If you want to load Assets/Characters/Estelle/Estelle_Drag.png, for example, then you may want to have that Target as Characters/Estelle_Drag.
you can Load into more than one target. you cannot do more than one load into the same target
Yar, I misspoke.
Secondly, you have your appearance field to use InternalAssetKey, so you don't actually need to Load, really.
If you Load your assets like this { { "LogName": "Portraits", "Action": "Load", "Target": "Portraits/Estelle", "FromFile": "Assets/Portraits/EstellePortrait.png" }, { "LogName": "Sprites", "Action": "Load", "Target": "Characters/Estelle", "FromFile": "Assets/Characters/Estelle/Estelle.png" },
also, targets are not folders. so Loading into just "Portraits" does not make sense
i love that???? were they all the same Krobus or like. Krobus with different hats
(i apologize for poofing, it was my pup's dinner time and i had to get some food too x.x)
i just changed all the sprites to krobus so all the dialouge, schedules, gifts and stuff were the same
Then your appearance field should use that Loaded assets like this { "ID": "Spring", "Season": "Spring", "Indoors": true, "Outdoors": true, "Portrait": "Portraits/Estelle", "Sprite": "Characters/Estelle", "Precedence": 0, "Weight": 1 },
well that's something
This bypass the Loaded assets entirely and go straight to the files { "ID": "Spring", "Season": "Spring", "Indoors": true, "Outdoors": true, "Portrait": "{{InternalAssetKey: Assets/Portraits/Estelle.png}}", "Sprite": "{{InternalAssetKey: Assets/Characters/Estelle/Estelle.png}}", "Precedence": 0, "Weight": 1 }, which would also work but generally not recommended because it'd make it harder for others to patch your image.
Ok!! Thank you so much for all of your help you two, always appreciated. I think I get what you are saying!!
If I need any further clarification ill be sure to ask
as unexpected as that was it was also not a problem, i didn't notice that it referred to a wrong library
It's fixed!!! TYSM'
Because I saw someone mention that they didn't need to Load because of InternalAssetKey: Please remember that using InternalAssetKey should be reserved to only assets that you never want anything else to edit (including portrait packs, seasonal outfit mods, or recolors) and anything you don't want to use an additional EditImage or EditMap on later.
For a personal mod, this is usually fine. But if you want anyone to be able to build upon your work in their own mods in the future, it's better to Load.
that was mentioned
I must have missed that, apologies
My comment was more meant as just a generic mod author reminder, regardless, but if that was explained in that much detail earlier, then I did not catch that message.
I only mentioned that it's not recommended because it'd make it harder for others to patch your image, but you explained it in much greater detail. 
I appreciate the explanation!! Ive been digging through lots of mods trying to learn myself and I think I personally used it because I saw another mod use it and didn't really know what I'm doing. So It is really nice to know what the reasoning and facts are!
Yar, so when you Load an asset, it generally means "here, game, I'll put my asset with this name here, so that I can use and edit it further easily, and so can others."
Anyone here know what happens if I omit putting roe as a produced item in the fish pond data, will it still produce roe or only the listed items?
This is off topic, but I was doing a Google search for help with a issue I had in my mod. Boy do I hate the AI blurb at the top of searches now.
I'll be focusing my attention elsewhere. If you have further specific questions, feel free to ping!
Oh lord... I was doing a depo idea and I didn't realise how big it would need to be. (They want every villager to have a sailors mouth, so I would have to edit each dialogue file)
Only listed items. SVE does it. Though roe will still show up on the cbj item spawner mod as an item
I think the roe is generated a just by adding the fish but the list is what is used for the actual ponds. Look at the alligator in SVE it does not make roe.
ok cool I don't mind roe showing, but its a shark so it doesnt produce roe instead itll produce shark teeth so thats good to know
and do you possibly know how the max/minstack is calculated, I have it set to drop a max of 2 and a min of 1 but I cant find anywhere that explains how the chance for additional drops is calculated? The shark tooth is worth a pretty penny so I don't want it to be a get rich quick thing
also does anyone know if the min and max stack is scaled with population
Afaict, minstack and maxstack just uses normal randomization, i.e. an equal chance of each number from min to max. For 1 and 2, it'd be a 50% chance of each. Fish ponds also modify their results like this, so I think animal crackers would affect your results:
if (item.Name.Contains("Roe"))
{
while (random.NextDouble() < 0.2)
{
item.Stack++;
}
}
if (this.goldenAnimalCracker.Value)
{
item.Stack *= 2;
}```
I don't see it modified by anything else, so population probably wouldn't affect the amounts
ok cool! thank you very much, I was getting worried I may make the best gold farm known to stardew....... XD
DOES NOBODY ELSE SEE 3 COOKIES??? SO WHY IS IT CALLED COOKIE!! ITS NOT 1 COOKIE OK, THERE IS CLEARLY 3 COOKIES!!! CONCERNEDDDDD APPPPPEEEEEEE WHYYYYYYYYY
I am making a mod that fixes the name so cookie is cookies.
Maybe it an upside down mickey mouse cookie (singular)
I never noticed. But I do agree I thought it was 3 cookies
Donโt play with me ๐ญ๐ญ๐ญ
Is it possible to change the name without the id so other mods donโt break that use the cookie
Iโve already started making the mod
hey be careful with this. there is special code in the game to handle this item because in some places it is Cookie and in others it is Cookies
I guess Iโll just die
(i'm dying at the variable names in SDV for that)
case "Cookie":
last_minute_1_5_hack_name = "Cookies";```
(Just change the display name)
but yeah I'd assume the display name is safe, just not the ID/name
And you know that was a podunk
yell at blueberry about it i guess
To be fair my only way to tell if it's myuu code is if it is recent and fuckign close to c, it's myuu
Just finished my first mod depo
(If it's a recent change related to multiplayer, Casey and/or Myuu wrote it while I fled.)
Hi Pathos!!!
Hi!
So how is central station gonna handle splitscreen 
Bye!
No come back I didn't mean it!!!!
I will try the display name
It should just work in theory, since it doesn't have any special per-player state. It just adds the maps/data to the content pipeline, and loads the stop data when you open the menu.
I recall Train Station having an issue with audio code in splitscreen
Ie, the whistle never ending
Iโm gonna have to change all the mail and everywhere else cookie is mentioned to cookies
Omg
That shouldn't be an issue with Central Station. It uses a different approach that's a lot safer.
just only play the audio on one screen. whats the problem 
I'm not sure how that is how audio works, button
Then again, I don't know how audio works and I've already asked y'all to hit me on the head if I start asking questions
Is Central Station a mod that combines all the train boxes into one. My train station is getting clogged with them.
Does anyone know if the NoSpawn All property will prevent truffles from being found on a tile?
What do you mean by train box?
Lol, I just went to make myself a final cup of coffee after my coworker told me I was the last person in the building
Five minutes later, tired brain hearing the coffee machine "ooh who else is here?"
Me.
Just me
The tickets stations. So far one is added for Aquarium, SVE, VMV. Why can't they just be one box with a list like minecarts
I don't see anything in the truffle logic that checks for it off-hand, so I don't think so.
Central Station just sounded like that to me. If it is different that's cool. You always do good work.
Stardew Aquarium uses the Train Station mod, so it'll automatically appear in Central Station's ticket machine (so you'll have one machine for both Central Station and Train Station). I'm not sure about SVE and VMV off-hand, but Central Station works in a way that'll let them easily add their destination to the Central Station menu while still (if they want) having a fallback if it's not installed.
So basically yes, it's meant to be the one train (and boat and bus) menu to combine them all. I also intend to support it at the same level as my other mods like Content Patcher, which should hopefully encourage more mod authors to use it instead of implementing their own separate machine in each mod.
To be fair, the multiple ticket stations are realistic to IRL
That cool. There are a bunch of mods that stop getting support and break other mods. I have more then once been tempted to learn C# just to make some old mods work agian. Not that you do that, you are great. I may learn it later, I am still learning CP.
That'd be great, more people updating old open-source mods is always welcome.
Hello there y'all! I'm working on a custom NPC mod; is it possible to have an NPC organically changed names throughout their story? As in, have conditional displaynames or anything of a sort so that when the player sees a future heart event, the npc is now listed under a different name?
Sure! See how the wizard works in sve
Yes, conditionally target the "DisplayName" field in their Entry in Data/Characters
what is the trigger action that sets player stat
i swear there was one i found it it was IncrementStat
How would I do that exactly? I've literally been self-teaching myself through this entire process
This is how I do it in Roses In The Sand
{ "Action": "EditData", "Target": "Data/Characters", "When": {"HasSeenEvent": "NAT_Sandy8", "OnlyDisplaySandy": "false"}, "Fields": { "Sandy": { "DisplayName": "{{RealName}}" } } },
In reference to an event with eventID "NAT_Sandy8"
IncrementStat
doesnt take a player argument
hm that's kinda bad
why
well wouldnt that unlock stats for everyone
it only does it on the current player
oh thats fine then yay
bc stats arent synced normal in MP
Oh also ignore the "OnlyDisplaySandy" thats a config token, so you can leave that out for your purposes
Oh, okay, I was looking into that
i wonder if i should just bundle in an early trinket cheat
so that mods dont have to roll their own trigger actions just for this
Where would I list the "RealName"
tbh if u ask me id leave that to another mod
For me thats also a config token, but you can just put their name there
You could also add it to your i18n, and then use a i18n token there if you are familiar with that
Add a console command?
I don't know what other mod could do this, and I also hoped it wouldn't be too big of a deal
But it's been turning out that way for the past few days...
(oh i was talking to chu, sorry!)
Oh! My bad
see that is how i feel originally, but since trinketSlots is tied directly to whether trinkets get to drop randomly
havin the displayname of your custom NPC change over time is ezpz
Not at all haha
by including feature in the framework i can also do the part where i edit data can drop random to false until mastery for reals
which is something that a modder who is making a trinket would know
But how do you identify your customtoken of RealName, I'd love to reference it
If you want to block them on purpose, it looks to me like NoFurniture T on the Back layer should do it, oddly enough
its not like people are making trinkets unaware of what trinkets are or how to unlock em
it is just convienance really 
You could either a: Just put their name there instead of {{RealName}} or b: learn how to add translations :p
I'll show it here
1 sec
That's super weird, but I'll take it hahahahaha. I'm tired of them spawning them behind front tiles, and me being like "WHY CAN' T I WALK BY MY HEDGES ;adkhf;alekja;dsj;fa" ๐ I want to deny them the whole row of tiles.
"RealName": {
"Default": "Valentina",
"Description": ""
}
}```
!codeblock
You can embed code in Discord using a series of three ` :
```
Your code can go here
Even if not a haiku
Just an example
```
For syntax highlighting, add the language code on the same line as the first
``` (with no space, like ```json).
The usual codes are cs (C#) and json.
The "is tile placeable?"* check does a NoFurniture check, but doesn't actually know what item is being checked, so it just says "if this is non-passable or inside, block it"
(and is a method used for truffle placement, etc)
the form would still be a trigger anyways, it'd just be custom action rather than generic IncrementStat
Why though
by including feature in the framework i can also do the part where i edit data can drop random to false until mastery for reals
Alright, I'm gonna give this a try and hope I get good results. Thank you so much!!!
why not just patch the places that call CanSpawnTrinket
Alright! Note that that section should be outside your changes section ๐
bc i dont want to 
its basically just one function, TrySpawnTrinket
can do your own prefix, check normal CanSpawnTrinket, if its false, then do your own "but can i spawn these specific trinkets?" and if so, spawn it
Gotcha
but i dont want to turn on harmony for no reason
well. this seems like A reason
i'd just do a second mod for this if it comes to it
if you need harmony (or if it would make your life easier), use harmony. it's not a badge of dishonor
i also dont really have strong feelings about controlling the random drops of trinkets
(SMAPI don't @ me)
use harmony to patch the SMAPI warning away
there r many other ways u can obtain an Object
What if I enjoy not using harmony
so i think ppl should just use these ways
i dont disagree. i personally wouldnt build it in as a cheat for a framework tho
thats just my onion however
yea i am on the fence about it myself
sure, i enjoy not using harmony. but using an UpdateTicked handler for something i could do with a patch hurts me inside
i prefer when frameworks are very "ill let you do something, but its up to you how you decide you want to do it" and dont do too much elsewise
(special power utilities doesnt do that, bc i was very new to things at the time. i wouldnt make it the same today)
Ah, but being able to hijack a netevent makes me happy
well i think SPU is more of an UI mod than a pure framework
I still owe button that PR
im pretty sure you can actually find a netevent for every vanilla way a trinket spawns
its monsters killed and objects broken, and both of those things are netlists on a gamelocation, yeah?
yea i can just steal debris again
that seems worse than just
doing a data edit pass though
(the only one idk about is the treasure rooms in the skull cavern. dont know about those)
i already have to do one to put in my class
im not sure how a data edit can make a trinket randomly drop upon killing a monster or breaking a crate
(without editing the drops of ALL monsters in the case of the former. but again, a mod can also do that on their own, no framework needed)
no im just preventing that from happening
So much Detailing Work
I've been at this for 4 hours and imma be at it for at least another 2-3 even if i shortcut it. maybe more like 4-5 if i don't.
Data/Trinkets DropsNaturally = false
thats it
and ill not do the edit once player has combat mastery
i thought what you wanted was a way for players to get a trinket early?
no ppl can sell trinket items whenever they want already
but they wont appear without the stat
or mail them or idk make a fish drop them from pond
not naturally
they r just regular old items
im confused what the cheat you were talkin about was for then i think
the only thing that i am preventing is dropping vanilla trinkets before mastery
this is so that a mod could add early game trinkets if they wish
just sell them at adv guild or something
but like you just said people can already do that
they dont have a slot to equip them to
so yea the final effect of this is just ez way to do
- set trinketSlots to 1
- Data/Trinkets DropsNaturally = false on all non trinket tinker trinkets, until mastery
- combat mastery unchanged
Where can I find the data that defines the rubish bins possible rewards?
it is just that if 2 mods desire this then they r duplicate some work right 
however i think if you made it so that a mod can give a Condition to each individual trinket that controlled its drop, that would be good, but that would be harmony territory
a lot of mods already duplicate work
i didnt say a CP mods purview
and CP is primary target audience so
im sayin it doesnt much fit in a framework for making new trinkets to also itself change when trinkets are available wholesale, unless you could edit it more granularly
this is just my subjective thoughts though
mostly bc like if you just toggle it for all trinkets at once then all the trinket mods using your framework have a lot less control over when their trinkets appear
Okay, I guess I'll try to do that then.
that goes back to "there are lots of ways to give the player an item" deal
yeah, and some mods might want to have that control of how they give the player the item, and might prefer to rely on knowing that trinkets cant drop before mastery
a player can just install another mod that does the "you get trinkets whenever" thing anyway and ruin that, yes, but the difference there is that when someone makes a trinket with Trinket Tinker, they know theyre signing up for just making a trinket. they can assume that trinket spawning rules will follow the defaults
Garbage cans? Theres a json with garbage or can in name
Or both
whereas if u add the toggle then they have to both accept that they are using a framework AND that the framework may override their preferences
but this would be a mod targeting cheat
Ridgeside Village has custom Garbage Cans.
its a thing a trinket tinker mod opts into
and that would be undesirable imo when Trinket Tinker is the only option for trinkets
Sure
but you're also changing the rules of the vanilla trinkets, though
even if the outcome might be the same, its still messing with expected behaviour
well i think we r just doing pendatry now
if you would rather not receive input on the idea then i will leave you to your decisions as ultimately you are the framework author
no i only feel confused about even if the outcome might be the same, its still messing with expected behaviour
@acoustic summit I finally got this portion of my mod to work. Thanks for helping me out!

can you elaborate on what you mean by this
For the many other mods which have logic depending on whether trinkets drop naturally 
I Just noticed a depth layer error, now i've gotta redo that bit of the map 
No problem! Happy it worked ๐
im saying that in my personal opinion i dont think a framework mod should change behaviour that it does not need to in order to provide frameworky things
and that i think "Making Trinkets Available Early" is not so much a framework thing as it is just a different mod idea
unless that framework provides a way for specific and fine-tunable customization of when a triunket is available
rather than a binary yes/no
yea this much i got
i think i was like
"how is doing data edit impl different than harmony impl"
my Harmony suggestion wouldnt touch the vanilla trinkets whatsoever
or the mastery requirement
but u r change the behavior of them regardless?
changing the behaviour of the trinkets that exist through your framework, not trinkets in general
lets say i am indeed just make "early game trinkets"
https://stardewvalleywiki.com/Modding:Machines
Is this the right wiki page for adding recipes to machines? and would anyone know a simple mod I could use for reference
im fairly sure "harmony patch CanSpawnTrinket" and "do data edit based on the stats trinketSlots and mastery_4" leads to same outcome from player side
Enjoy!
the latter effects everyone who installs Trinket Tinker all the time whereas the former only comes into effect if a user installs a specific trinket mod
oh its ok i already got nudged back over the fence on that one
it is lets say i am indeed just make "early game trinkets" mod and talking two hypothetical impl
if we're talking about a hypothetical other mod then the entire discussion no longer applies
because my point was that i think it would be better as a separate mod

if its a separate mod then there is no point. you did it
yea for a while there was just 2 convos going on bolb
but its ok i do feel reasonably convinced that i should do this 
*should leave this feature out i mean
that said, i am actually able to somewhat do the GSQ conditional drop thing i think
it'd just be more data invalidation than i like
they're new sdv1.6 content, i don't play the game
I genuinely cannot figure out how to add a recipe to the dehydrator what file is this info even in? machines.json?
but how am I supposed to read this XD
i seeee omg ๐
but what data am I editing just data/machines?
and the targeting the dehyrdator?
yes
use TargetField to add a new entry to the OutputRules array
there are two important things in an OutputRules entry : the Triggers field which contains a list of triggers for the rule (like an input item), and the OutputItem field, which is a list of possible outputs if one of said trigger is fulfilled
to start, fill them in first
no
oh no
there is no "Machines" field in the dehydrator entry
GOAT, if this is about the red mushroom thing, I'm testing code for that right now and happy to show you what I did if it works. xD
No this is for me adding a recipe to the dehydrator
there is one named OutputRules, which as mentioned as the one you need to add to
Gotcha, there's an open mod request for dehydrating red mushrooms, so I was unsure if it was related
i didnt know you couldnt dehydrate them lol
if u got vscode u can see the breadcrumb like this
(I think there's already a teeny mod somewhere for that)
(you can't normally, they are inedible and the base machine trigger wants edible_mushrooms only)
