#making-mods-general
1 messages · Page 114 of 1
they'll start pulling from the Default location which has a 100% trash entry with low precedence
oh hm whats the sunfish entry then
where is this, farm?
greenhouse
i made it outdoor and stuff
in general i think any map w/o fish data get sunfish?
for some reason
It's hardcoded
it should return a tastier fish such as bass
The first fish, if it's trash or a hard fish, is replaced with sunfish
wait, is that why i fished a single (1) sunfish from my custom farm cave and never get any ever again despite the fish data not containing sunfish??
thats kinda silly
Yup
anti disappointment measures, hmm
i think content patcher is aggressively optimizing me again
seasons all get lowercased even if i use Summer in config
Yes
rip ppl named Summer i guess
i thought that was fixed 
Log Info: SMAPI 4.1.7 with SDV 1.6.14 build 24317 on Microsoft Windows 10 Home, with 19 C# mods and 10 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
oh, i guess it was only fixed for i18n
I think it's more that the progress bar doesn't decrease on the first catch because it's a tutorial, and if it doesn't override it you could easily exploit that to catch very difficult fish easily
did CP support title only configs
ah makes sense
no one can really answer why without a json
...that makes sense, considering i tested the farm cave fish immediately without fishing someplace else first
wait i swear i saw a speedrun video that used this factor
they saved first catch for legend
it was a run to catch all fish in 1 in game day
It's more me screaming into the void first
Ok, now I seriously don't know why...
https://smapi.io/json/none/1e00516aab264415a6ce801517e18f27
Yesh
do you have more than one content file? it says the value of your currentChannel field has a duplicate entry in whatever internal dict the framework is adding it to
just one
possibly one of Food Safety, Gardening, Gossip Girl, and Interdimensional Cable TV shares the same channel ID
I checked them, also no
doublecheck your files and use a more unique ID if possible
And no matter what number I put its still giving the same error
does the key remain the same in the error? eg. Key: 295041
no
If I change the currentChannel it changes the error to that key
I even rewrote it for testing the error... T-T CustomTVChannel doesn't like the food safety trivia
if you remove the other tv channel mods, do you still get the same error?
that'd narrow down whether it's a conflict or a local issue
you have two copies of the mod in your Mods folder?
If it's on its own it works fine, no errors
thats what the trace seems to indicate
No I only have one >->
well, it successfully adds the content.json from the "Food Safety Channel - Copy" folder
if you look at the trace messages in that error log, it shows it adds that one, then the gardening channel, then fails on the third
which i presume is an unintended copy
No, that was an intended copy (I copied it after getting the error to test)
It shows the error whenever another mod adds a TV channel is present :s
How's that possible? Fish don't appear in every weather or every season, and magic bait requires a baitable rod, which requires at least one fishing level, which requires not to be on the very first fish.
fishing level can be aquired without getting fish added to the collection through fishponds
its not day 1, just 1 in game day
(buy one fish from traveling merchant or other shop that sells fish and add to fishpond, you can fulfill quest, then get them out to gain fishing xp, which does not add the fish to the collection)
u can do as much prep as u want prior to that day as long as you never fish
I... suppose you could maybe call it a challenge run then, certainly doesn't sound like a "speed run" since it would require hundreds of in-game days of prep.
If you do that much prep though, it seems pointless to worry about that particular exploit for Legend?
it is a challenge run and rng grind fest, one guy did it in 1.5 and it took hundreds of attempts to get a single successful run of entire fishing collection filled in one in game day
yea wrong word probably
i think its important for EXP maybe, but i gotta find that vid again first
i guess the speedrun starts as soon as you catch your first fish
Love it or hate it, fishing is a skill you have to get used to in Stardew Valley if you eventually want to complete your collection. But what if you wanted to go one step further and fill that collection, start to finish, in a single in-game day? Is something like that even theoretically possible, let alone actually achievable?
Well, there's on...
I mean, with unlimited prep you can be at level 10 fishing (or higher with buffs), and whatever tackle you want, so Legend should be pretty easy.
ah yes
Sunfish is a very old thing IIRC.
I haven’t watched this one but I did watch the one with getting to level 10 fishing in one day
🤔 sunfish being the first catch thing?
sunfish was in 1.5, i have watched the video and can confirm it was done in 1.5
No that’s super old
Sunfish replaces trash though
So you’re not guaranteed sunfish
he did use the tutorial for the legend as the exploit of the first ever fish not escaping still works/worked
first catch pulls from a pool of low level fish right? if i fish at the ocean, i can catch a herring as my first fish
Yeah, herring and other easy fish don’t get replaced iirc
that's at least the same vid i saw at least, and he did end up filling the entire fishing collection in one in game day in the end
first catch will also guarantee you a lava eel if you do it on mines 100
or at least it did last time i checked, which may have been in 1.5
change the filename for your ScreenFile asset. it errors because it matches exactly the ScreenFile in Hisame's gardening channel (presumably you used it as a base to edit off of). im not sure why this happens and its probably worth reporting to the custom tv framework author
(technically, it was actually erroring when trying to add the gardening channel, not yours, because your channel info was somehow being used for hisame's content pack. but changing your ScreenFile from assets/Speaker.png to assets/Speaker2.png stopped that from happening)
and sure enough, changing your ScreenFile to match Gossip Girl's filename instead breaks Gossip Girl
i was looking at the framework in ilspy because the source is unavailable and could not see any reason why this would happen
might have something to do with their ChannelData class having a constructor that takes an argument but is loaded in via contentPack.ReadJsonFile but i dont know how a constructor even really works in that context or why it'd carry things over into the next json file it reads or why it doesnt do that if the screenfile is different
(tbh given that possibility i cant even say im 100% certain its not something to do with SMAPI's ReadJsonFile)
Yeah the zero arg is what would be used
There is always a zero arg
I think
i dont know how or why thatd cause this kind of error, though
internal class ChannelData
{
public ChannelData(ChannelInfo info)
{
this.channelInfos = new List<ChannelInfo> { info }.ToArray();
}
public ChannelInfo[] channelInfos;
}
}
this is their class theyre reading into with the json
ignore the mismatched brackets i copied it wrong
That's....okay
That's an attempt at a copy constructor but Jesus christ wow that is weird
yeah their whole setup in this mod is what i would describe as "not like, wrong or anything (except for this bug ig) but weird"
Bloody hell you are brilliant Button, also yesh I based off of Garden TV caz I made that one too 😄
like idk where trhe ChannelInfo info argument even comes from when ReadFromJsonFile is called
but it must come from.... something? because it sets it to Kath's food safety info, which is the only top level field inside the content.json... but then every json read after it also gets kath's info
even though the ReadFromJsonFile is done in a foreach loop on GetOwnedContentPacks
Is there not an implicit zero arg constructor
I dunno
i have no clue! ive no clue how any of that class works with this
I've been out of the c# game for too long
but if there was, wouldnt channelInfos be null?
Tbh I have an extremely strong bias against non open source frameworks
Newtonsoft would populated it with reflection
Like for nonframeworks whatever
For frameworks, I think it's important for someone else to be able to take over if you leave
i mean, so do i, but i more just care bc i just cant figure out why it breaks in such a weird way
like, why the fuck does changing the ScreenFile field, nested inside channelInfo and inside channeltype inside that, fix it?
ScreenFile isnt even used for any keys
have fun dont drop a barbell on your foot
also @ Kath re: reporting it to the mod author: they havent been online since august 3rd, so. dont get your hopes up. just rely on not matching your screenfile name, i guess. maybe prefix it with your modid
Another mod checked off the 1.6 update list!
Yesh 
And thank you so much 😭
hm i cant seem to ungreenhouse the greenhouse
alright ! it's done! now time to update in nexus! 😛 (also a meteorite randomly landed while testing)
yahooo my books
is there any worse feeling than finding a showstopping bug in your 1.0.0 release and having to slam a fix into production at attack speed
Not finding a showstopping bug in your 1.0.0 release and having it reported a week later?
ok, yeah, you got me there
Not finding a showstopping bug in any release, nobody ever reporting it despite a decent amount downloading it, and only stumbling upon it when you decide to play for the first time in months?
Depends on how you rank being totally invisible vs. being a highly-visible failure.
Such is the plight of a cheeto
if nobody reports it, does it exist? 
Worse: a bug you can’t reproduce but players reliably report
Like the one where some harmony stuff didn’t work on macOS specifically
oh no
Something something compiler inlining
All that said, there's truly no worse bug than whatever one you happen to be dealing with at any given moment
Some bugs can be fun.
Any idea how to make cars move like Zuzu City? 
well are you making a CP mod or a C# mod
CP :>
then the answer is you do not
dang it
anyhow, thank you!

I contemplated trying something like that with tile animations but that's a timing problem
make an animated tileset consisting of 2000 tiles that span the length of the map and--
this XD HAHAHA
I thought about it but I thought it would look off xd
its only something I would do if I wanted to be buried a week later
I'd rather sooner figure out making a custom critter or somehow duplicate the train
And the car didn't stop for pedestrians
Just have a long, complex animation with thousands of frames that only repeat after a few minutes.
Yup, it's simple
(Soon: "the SMAPI update causes lag, when will it be fixed?")
Pathos, Canadian drivers are super nice and pause for pedestrians
This is very weird to this American
in a map?
thats giving wolfcreek vibes
Just make everything bicycles, they never stop for no one
if you make map updates ontimechanged, you could have cars move really slowly, one tile at a time. just pretend its bumper to bumper traffic
I think it's more accurate to say that rural drivers stop for pedestrians, pretty much regardless of country.
Oh god
That could work, I'm pretty sure there's an option for CCs to path from one point to another
hi ichor, bye ichor
With a good enough outlook, you too can understand smapi events
HAHAHAHA WAT.
Atra if you're dumb then I'm a grain of sand
a little more push and im goiing there xd
reminds me of the cows in Ridgeside that were pepper rexes in disguise
Someday I'll actually get the motivation to learn C#.
When I successfully use CP to make the deconstructor accept copper, gold, iridium, and radioactive bars and don't have to rely on PFM for that. That's when I'll feel smart enough to start learning C#.
I'd like to learn at some point
There are a couple things I want to do with my shop mod that aren't possible in CP in 1.6 that I'd love to have the C# knowledge to enact.
like what, out of curiosity?
Snap giveaway for the first person who wants it: LEGO: The Hobbit on GOG. (Just reply here and I'll DM you the game key.)
[Edit: claimed by Button!]
(do you still need help with this)
I wish they'd finished the trilogy with that game.
i mean i would take it but only if no one else wanted the game particularly
Maybe someday. I gave up for now and just kept the PFM component in the mod. I tried the move entries and it still didn't work so I moved on to less tear-my-hair-out items.
Oh, I made an example of this since I gave wrong information the other day
If you want it
Sure. Would be good for future reference since I have other mods that rely on PFM that I'd like to move to CP for the stability.
Probably should have made sure that output method doesn't increase a stat or something...
Doesn't seem like it, should be good
@forest moat I updated Culinary Delight's recipe_replacements.json with the new IDs in WAG 2.0. since both you and flour used generic tags the vast majority of your recipes actually still works, so I didn't need to do much work!
(stuff like lemon_item or cream_item or etc.)
OMG you are my hero, thank you so much! Can I please send you something for your time?
Well yay! I'm glad there wasn't much to do
The mod compatibility list is now mostly up-to-date for 1.6.9–1.6.14!
(Some mods marked compatible still log errors, but they at least don't seem to cause issues in-game. We can update the list incrementally for the remaining ones if they don't work correctly.)
Well then thank you so so much! It's a big weight off me haha
whew, finally tweaked FTM's readme to talk about data/additionalfarms instead of MTN, just under 4 years after the latter stopped working 
(and also to stop calling content.json a "config file")
Say do you have stats about how many/what % of mods broke with 1.6.9+ and haven't yet been updated
Guys. Is it possible to start with an iridium pickaxe or rod? Im asking cause in trying the new tool but this is what i get [(T)Iridiu${^^
}$mPickaxe] and it dosent fit
what are you trying to do?
We'll have full stats at the end of the month, but currently looks like compatibility drops from 74.4% (1.6.8) to 70.8% (1.6.14).
But i get this [(T)Iridiu${^^
}$mPickaxe]
And it dosent fit
Using the recent tool arround internet
unless youre trying to make a mod out of it?
wasnt there something like a starter pack mod 
i have no idea what the recent tool around internet is or where you got that from, but if you just want to spawn a tool in then you can either use [[Modding:Console commands]] or CJB Item Spawner
hi guys sooooo i'm the current maintainer of adventurer's guild expanded and evidently i'm not all that amazing at coding (even if its just CP).
i did update it from 1.5 to 1.6 but i've seen people talk about the bugs and how messy my update was
so if you guys wouldn't mind, are there any suggestions you would make regarding the coding to help make it smoother or idk, less messy? 
also sorry if thats not what this channel is for
It is the right channel dw ^^
ah okay thank you 
is there really no way to apply seasonal tilesheet changes to indoor maps without creating a whole new LocationContext for it or use the Outdoors T map property?
i ran into a roadblock with one of my farm cave maps; it uses spring_outdoorsTileSheet.png but the seasonal changes and recolor only applies to spring and for the rest of the seasons it uses the vanilla spring color which is not good. but if i change the location to outdoors it would probably make weather effects apply in FarmCave (also not good)
some other dilemmas to consider is that the map needs to have the TreatAsOutdoors T property because i want the farm cave to be able to have forage bushes. i would hate to have to sacrifice this feature because of what's essentially a visual issue
Use the same tmx map file, copy it to 3 different files, change the tilesheet name of these files to the correct season then replace it with your map conditionally? (I don't even know if this can works but you can try)
Either by load the whole tmx file or do EditMap Replace mode for the entire map?
That's how I usually do it. It works, but it's a bit of a pain, I do wish there was an easier way (like a map property "seasonal" or something like that)
the problem with that is i'm not sure if that will still work correctly with recolors. ive cut my losses and decided to just make a non seasonal foliage tilesheet (with 3 variants to accommodate recolors) just for this map and set a dynamic token to automatically replace the tilesheet depending on what recolor mod the user has. it doesnt work.
then i removed the dynamic tokens and just used a config. for some reason even that is not working. i'm stuck with the vanilla variant regardless of what i'm doing. at this rate i'm just going to do away with recolor compat entirely
I did think about recolor compat, as long as the recolor is set up properly it should not be an issue
and by the way, the original issue i had was that i used the forest foliage from spring_outdoorsTileSheet.png, which was recolored correctly in spring by VPR (the recolor i use). but when the season changed i found out that the foliage didnt change to VPR's summer color; instead it reverted to vanilla spring for some reason
That might have to do with vpr doing it's edits conditionally on season
Hmm, the new vpr update should be fixing that problem already
Let me check our code again
it was a VPR thing? then to be fair ive held back on updating to VPR 2.0. lemme check this first by changing my recolor to something else
It was an old vpr thing
if my tokens still arent working then i will just have to take the L and get rid of recolor compat
Grapeponta old code editing seasonal tilesheet by checking the season token, which cause that issue you said
tbh im a bit concerned that this was because of my map properties. but thats the thing, that is the feature of this cave layout and i refuse to get rid of that
We have changed for it to always change the seasonal tilesheets to their correct season so it should fix that issue
i see. could this explain why the custom tilesheet i made still doesnt change even when i dont have seasonal variants though?
because i think at that point its no longer a VPR issue
Might be easier if you've got a specific example of something you're wanting to improve or would like suggestions about? Most people aren't gonna have the time to go through all the code for a mod as large as AGE
It should work fine with recolour compat in general though if you replace the tmx with different season versions
That's why I was suggesting this way, I just don't know if it works because I can't personally test it right now on my PC :D
Not sure, how did you set up the change?
like this (the basic tilesheet is named foliage_vanilla and it's the one loaded in the .tmx)
note: the colors apply correctly in spring but not other seasons, which is the biggest mystery here
Basically the code was "if it's currently summer then edit summer tilesheet to vpr version", but it doesn't take account on maps that use different fixed season tilesheet (for example, your map), so when your map use spring and season change to summer, the code stopped editing spring tilesheet, reverting it back to vanilla
I don't think you should use the recolour token in the target, the way it is now it loads different tilesheets depending on the recolour
Instead of overwriting the one you are actually using in the map
i was applying the method i use for my tilesheet
so i shouldn't do that with maps? (i never made a map with a tilesheet specifically made for it, they're all dependencies)
I am really glad to hear that's fixed btw, it caused some trouble in my pif rioms
So you're the tilesheet you're using in the map is called foliage_vanilla right? So when recolour is set to desaturated, it will load the tilesheet to foliage_desaturated, which is a completely different tilesheet so the changes won't be applied in the map
I would just call it foliage and then replace with whatever version the token gives
Actually I don't think you should do that in the tilesheet either as it should cause the same problem there
right i swapped to earthy and this still happens, so not a VPR specific issue but the way things are set up
i've tried naming it to just foliage.png and putting the token as the folder name where each foliage.png is, but i got a "cannot find asset relative to the content folder" or whatever it is called error
i've done so many tweaks to the method in the past 2 hours i forgot exactly what i was doing. i'll try to redo this from the beginning
Either you change the name everywhere or you keep it at vanilla like pooh said, I think you might have some not matching names now
Actually keeping it foliage_vanilla makes more sense in your case, I was thinking of how I did it in my tilesheet but there I had them in different folders so the token was in the folder name
Oh you did the folder thing I guess I should read properly, I still think the issue is in your tmx though
what did i do wrong.....
Post your tilesheet load code here again
wdym invalid tilesheet path i've set this up the way i usually do stuff 
dynamic tokens:
{
"Name": "recolor",
"Value": "vanilla",
"When": {
"Farm Cave Type": "Fantasy",
"Foliage Recolor": "Vanilla"
}
},
{
"Name": "recolor",
"Value": "desaturated",
"When": {
"Farm Cave Type": "Fantasy",
"Foliage Recolor": "Desaturated"
}
},
{
"Name": "recolor",
"Value": "bright",
"When": {
"Farm Cave Type": "Fantasy",
"Foliage Recolor": "Bright"
}
}
],```
tilesheet load:
```{
"Action": "Load",
"Target": "Maps/foliage",
"FromFile": "assets/{{recolor}}/foliage.png",
"When": {
"Farm Cave Type": "Fantasy"
}
},```
the .tmx file image source is the vanilla variant of foliage.png (which is in the unpacked Maps folder i usually make maps already), and the tilesheets in the release folder are sorted like in the image so the token is the folder name
im confused by the fact that if i use this method i get that error and the map won't load entirely, but if i put the foliage.png files in the assets folder and name them so the token is in the filename, the changes wont stick past spring (image source in .tmx file is changed accordingly of course)
"When": {
"Farm Cave Type": "Fantasy"
}
What's the current farm cave type? If you set it like that your foliage only load if the type is fantasy and won't load if it's anything else
it is that type currently
ooh if you had it in the assets folder together with your tmx then it pulls directly from the assets folder and not where you load it to, that should explain that
that type is the only type that hasn't made it through playtesting because of this stupid recolor issue
Doesn't solve the tilesheet path problem though
Do you put the load tilesheet code before the load tmx map?
honestly at this point i'm ready to take the L but im concerned if even if i do that the colors would still remain vanilla after spring...
after. could this be the cause?
alright i'll try that
you could compare your code to what I did since that sounds very similar to my approach (but separating maps from tilesheets)
https://github.com/notsemisu/MixedBag-s-Tilesheets
As a minor thing unrelated to the tilesheet issues, I think you should be able to just use the config directly in the filepath instead of needing a dynamic token, since the token values are the same as the config option names
Like "FromFile": "assets/{{Foliage Recolor}}/foliage.png",
this reminds me that i am honestly tempted to just slap the foliage tiles into my own mines tilesheet and be done with it 
i see, this would simplify the code if i needed to do this. thanks 
no compatibility deeds go unpunished etc etc
oh my fucking god this actually worked. i am so DONE with this map
thank you so much

i give up with the seasonals, it's not worth the hassle to set up (again, not sure it can automatically do that given the map is still indoors, just with TreatAsOutdoors to spawn the forage bushes)

now i can simplify stuff and prep for publishing at long last
i am not messing around with LocationContext for this since it's a vanilla location and all
as long as all the files have a season prefix/suffix I think it should just work by loading all of them (PIF does that one way or the other)
welp, i'll try that for another time
for now i will just say the cave is evergreen 
okay this whole debacle made me forgot to say thanks for this solution because it did work in setting up the FTM spawns esca! the CustomFields -> GSQ setup was enough, i did not need to set up trigger actions (i think because each farm cave map already has a specific load condition tied to the config token?). but it's working perfectly regardless! 
ah right, of course. i just asked in case there were any huge in-your-face problems that i wasn't aware of. ill probably be asking about things here and there in the future. thanks for the response!
Hi there, new to modding and will want to try it out soon. Can Content Patcher be used for entirely new items or would that be a thing for Json Assets? - I'm assuming as well that things like Alternative Texture may be better in the long run for certain "props"
CP does that now, yes
If its purely for aesthetic/visual changes not functional changes
AT is only for textures, not new items
yes, you should avoid JA for new projects. it's only still around to keep the lights on for old mods
Gotcha, so CP has got functionality for entirely new items now and AT is better suited for changing appearance of base-game items
think AT is the way forward then
I like the idea of not having mods clashing and luckily mods like AT allow you to grab as many as you like
- you can still use CP to change appearances, but CP changes what every instance looks like, while AT lets you change it per-item
That's very nice
- strictly speaking, CP didn't gain any functionality, but the game's data structure allows modders to use CP to add items more easily and without fear of conflicts with other mods (starting with 1.6)
Oh right the 1.6 update allowed that
Yeah
In terms of clothing, is it best to mostly stick to Fashion Sense?
it depends on your taste. like with other items, it's easier to add new clothing items with CP now due to data changes in 1.6
fashion sense has fewer restrictions on what's possible to achieve (check out The Toppest Of Hats for an extreme example of not having limits)
The the what
personally, i prefer mods that add "real" items, since that gives me more space to interact with the mods, instead of just firing up the mirror
I'm of two minds of it
For cosmetics I like the mirror
But I also tend to dislike items for the sake of items
for me, acquiring the items is at least half of the fun, and more than that if it's memorable in some way. then when i wear the thing, i remember how i got it, which i love to do
(With the latest Fashion Sense update, you can now have a single Content Patcher pack which add items while also registering them with Fashion Sense if it's installed, so they appear in the mirror and such.)
oh, what a nice feature!
Yeah I feel that. I was kinda disappointed to see that there were not many "male" related mods even with FS but maybe I might have more luck with CP but I am worried because I know sometimes people don't state whether it replaces existing files or adds them completely new
oh i can finally have tags for the fashion sense stuff 
yeah, FS is also a known quantity (the clothing items will be in the mirror), so that's handy.
i doubt you'll have much more luck with masc clothing with CP. it's simply a much, much less popular category for mods
however, would you like one of 19180233 varieties of witch hat
i have an addiction to the witch aesthetic
Morning, pathos!
can i offer you a witch hat or a cottagecore dress in this trying time
i'll take 1 scrunggly oversized snuggie
yeah 4 pixels per leg, borders included, are not much to work with (provided you're sticking with vanilla scaling)
Yeah, most of the masc or unisex stuff tends to be shirts and hats (e.g., the Digimon Survive FS pack)
Can someone make a slanket
What the hell is a slanket?
snuggy blanket i assume, which sounds neat but i'm short so that'd be more like a snuggy ballgown to me 
Misread that as "snakelet" and was like "a bracelet for snakes?" (I'm a dumb dumb)
Hey guys
excuse me
what is that site that you can send your code and it will generate a link or something like that?
!json
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.
Thanks!
Yup you're telling me. Female hair mod #48127217312
Well if its simple enough, I would be more than happy to make some of my own for males. Will have to freshen up on my pixel art
Yeah, can't get proper "black" pants without it just looking like a block ⬛ and it misses all its detail
Mike NPC is fighting the users again, he either duplicates or ceases to exist... Who knows why, the users never give me a proper log 😔
Also I shouldn't be trying to see what's wrong with it... on my phone, in ze bus >->
Hey all. Dumb question and Im a bit stumped. So im making a custom Farmhouse. Ive checked the wiki, googled, checked out other farms and I cant figure out how to change the danged Bed start location from 9,8 . I've set the DefaultBedPosition Tile property on the back layer...and nada. Am I missing something?
btw? if i use the converters for shop tile framework to content pacther will it work for mods like stardew aquarium? or is it too complicated to convert that part?
im just thinking since shop tile framework isn't really constantly updated like say content patcher i figured it'd make it easier to convert the stf files to cp
perhaps, though aquarium also does some of the asset stuff in C#
It Depends™️
if memory serves, aquarium still uses all of the obsolete dependencies it does because its creator(s) didn't have enough time to redo everything, so it's probably not that straightforward
true true
just wondering since i assume the converts mainly do straight forward mods? like ones that just add extra items to vanilla shops rather than fixing whole expansion shops
it still works for me but i just was simply pondering
since idk how long shop tile framework will be updated for and i know that for now at least content patcher likely will be updated and actively maintained
// turns a line into a comment, right?
What are the other symbols that are used for longer comments/paragraphs?
text here
*/```
Thank you!
content patcher is extremely unlikely to die or be abandoned. it was made by pathoschild, who also makes the mod loader
true true
so the converters are mostly good for say stf mods that add items to vanilla shops? while anything adding to outside vanilla is a bit harder?
converters are mostly for 1.5.6 mods and xnb mods
not sure what you mean by "adding to outside vanilla" here, unless you mean making content packs for other frameworks? Which is still supported, it's just that a lot of those legacy frameworks got their features pulled into Content Patcher or the features got dehardcoded in vanilla at this point (custom music, shops, etc.), so it's easier to just use Content Patcher to accomplish those tasks.
GetHarvestSpawnedObjectQuality(Farmer who, bool isForage, Vector2 tile, Random random = null)
I understand that the base game doesn't care what the object is. But the introduction of this method now makes it a lot more clunky to set quality based on the object.
Would be great if we could pass the object instance as a parameter instead of passing obj.isForage() and obj.TileLocation
example like when i tried to convert christmas sweets? it didn't really work since the required ingredients used another mod as a dependency and not vanilla
That's not really related?
my converters do not support JA items
wait really?
like the ocnversion will work
Why do you need to convert an STF mod anyways
but I severely doubt it will work without manual changes
iirc I made it when stf's future was unlikely to be continued
well mostly to ensure that it runs smoothly plus i plan to convert some ja recipe mods for personal use unless i am able to get permission from the mod author
Just wanted to make sure its for personal use
so more than likely it's more so under the hood changed rather than a simple conversion?
it is unless i get the green light from the original creator!
for now unless i get permission i'll have to create my own recipe mod inspired by it
!converters
A lot of converter tools have been made by helpful members of the community to update outdated mods or convert existing mods to modern or alternative frameworks, and for 1.6. Here's a list:
- Convert XNB mods to Content Patcher
- Convert pants/skirt spritesheets to Fashion Sense
- Convert Custom Furniture mods to DGA/1.6 Content Patcher
- Convert visual Content Patcher mods to Alternative Textures
- Convert BFAV mods to work with 1.6 Content Patcher
- Convert TMXLoader mods to 1.6 Content Patcher
- Convert Custom Music mods to 1.6 Content Patcher
- Convert Shop Tile Framework mods to 1.6 Content Patcher
- Convert hair spritesheets and JSON Assets shirts & hats to Fashion Sense
- Convert regular Content Patcher to i18n format
- Convert JSON Assets to Content Patcher
- Convert fish data from field names to slash delimited values
- Convert markdown text to Nexus' bbcode
- Convert Custom Ore Nodes and Custom Resource Clumps mods to Item Extensions Framework
- Convert Content Patcher Animations to SpaceCore
- Convert More than Necessary to Content Patcher
- Convert SAAT to Content Patcher
if you're not suggesting and you're using it to find links please use #governors-mansion
oh ok
sorry bout that
does anyone who has made recipe mods for content patcher mind helping me out with it? mostly the content files. i've reviewed the tutorials several times but i still don't entirely get it
not like make it for me but showing me the steps
sorry if i am being rude. i am trying not to be.
since it's just a string, each "field" on the wiki is determined by each /, so when you're seeing "field 0, 1, 2, 3" etc, you can count it like this: 0/1/2/3/4/5/6/7
it's also best to look through the unpack for how the vanilla recipes run
mhm mhm!
so for the custom recipes i should have it like this:
Blueberry muffins
1 blueberry: 258 1
2 wheat flour: 246 2
1 sugar: 245 1
1 egg: 194 1
dang it didn't finish
that's correct right??
yeah they'd need to be within the field used for the ingredients, i can't access the wiki right now but it should look like /258 1 246 2 245 1 194 1/
(sorry, tangent, but i am thinking of a recipe that calls for two sacks of flour and one (1) blueberry /lh)
ohhhhh thank u so much!
a blueberry bite, or one of those shortbread cookies with a singular smashed blueberry as the centerpiece imo
lol wasn't really thinkin!
Hi, can anyone give me the basic template for replacing character portraits and sprites(including winter+festivals)? I have no experience in coding
can anyone tell me what file SpawnFishData is being read from?
specifically CatchLimit
as a class, SpawnFishData seems to be a single "Fish" entry from Data/Locations
!cp
Content Patcher (https://www.nexusmods.com/stardewvalley/mods/1915) is a mod which loads content packs to change the game's images and data without replacing XNB files. If you want to make mods using Content Patcher, start at https://stardewvalleywiki.com/Modding:Content_Patcher.
So CatchLimit is just set to -1 on the constructor and never read from any file?
CatchLimit is a field in Data/Locations fish entries
the Quick Start section has an example for swapping in a portrait
Thank you!
ok so that's probably not relevant to legendary fishes, right?
I'm trying to figure out how 1.6 limits legendary fish catches
I'm pretty sure it's set to 1 for those
bit hard to tell because I don't know the fish IDs, but there are 5 entries with "CatchLimit": 1, in the base game, and the rest are -1
in Data/Locations it's only set to -1
where can I see that?
in the Data/Locations asset, e.g. the first entry in Town's Fish list
Was wondering why Leo ct dialogue wasn't appearing, forgot he has LeoMainland ><
Is it normal for marriage dialogue separated by #$e# to be cut off completely for the day at random? Like the spouse has more text boxes to display but you cannot talk to them anymore after the first one.
This happens frequently to two different NPCs of mine, and has happened since 1.5.
i haven't tested in depth but it probably has something to do with the spouse kissing effect, i've kind of left the initial spouse dialogues with either all #$b# or just single lines, and if i wanted more in depth ones i use BETAS for after kiss dialogues
I wonder if this happens in vanilla too, would be nice if it could be fixed if it's really as simple as it sounds
considering an npc dies, figuratively, upon marriage, it'd have to rewrite the marriageDuties method
Hm, can't say I've noticed any weird marriage dialogues with vanilla NPC's. Only just got married in SVE but all the lines I've gotten so far have been the correct number of boxes as far as I can tell looking at the code
Wonder if it's something specific with those NPC's
@brittle pasture Hey, sorry for the noob question. I'm wondering if there's a docs or something like that for your API?
which ones?
https://github.com/zombifier/My_Stardew_Mods/blob/master/ExtraMachineConfig/Api/IExtraMachineConfigApi.cs ? it's purely mostly for informational purposes though, to read data for mods like Lookup Anything or chu's Machine Control Panel
what are you trying to do galaxy?
Yeah GetExtraOutputs
ah, I keep forgetting I put that function there
wait no, I was thinking of GetFuelsForThisRecipe
yeah GetExtraOutputs should work
though it returns item queries, not the items themselves
I still haven't implemented display for category emc fuels
Is there mod out there using that 
if you want to get the actual extra outputs for a certain recipe, the most reliable way to do so is reading the chest inside the primary output after the machine's already outputted
^
for a split second I saw emc and thought someone had ported Equivalent Exchange / ProjectE to stardew
don't think so, I implemented it only because PFM supported it, and the 1.6 way of using context tags is superior
Sorry I wasn't clear, I meant input items. As for what though, still not clear atm lol. I was thinking maybe I could use it for custom preservatives.
if I yeet it tomorrow probably nobody would notice
How do I add a custom mineral to geode item pools? I assume they aren't added automatically, at least
rrrggghh I gotta fix my controller input system and I don't wanna
they are not. see [[Modding:Items]]
oh right wiki is dying
Yeah, I'm talking about RequirementId thing from the mod. Is that fuel?
well there's a field on the item data for the geode that you can add entries to
Wiki died? What happened?
if you unpack your gamedata you'll see it
Tl; DR too many mods. pathos and crew are working on it
GetExtraRequirements and GetExtraTagRequirements (call both, I split it in two because I was stupid) will get the item IDs and context tag fuel requirements for a certain recipe
but can you be clearer as to what you're trying to do?
I thought that's unrelated
(the wiki compat table is already replaced with a github repo)
is it? funny coincidence then
Wiki fine for me
I wonder what's up
it's probably the console release surge
It was getting really fat
maybe it's just me then
But yeah wiki getting ddos'd basically
wiki has been hideously slow for me lately
It's slow for me too
all of my info is packed in this peanut brain 
aaaah right console release
It was hitting page size limits tho, had to be moved
Ppl check smapi.io which is basically a cached version of the wiki page
Now it'll be a cached version of the github
(silver lining is that console/mobile players will stop editing the wiki to revert gift tastes back to 1.5)
praise be the wiki moderators, constantly checking for trolling as well as seeing my dumb minimal edits because i made (1) typo
Why did they keep doing that...
i think it was just edits to the wiki page that were the main source of the problem
Was it 1 particularly motivated person
well meaning ppl who don't know 1.6 exists, seeing that ||Caroline likes horseradishes|| on the wiki, went to give her one and getting lowered hearts and deciding to "correct" it
That assumes I'm adding a custom item to my own custom geode, when I actually want to add a custom item to something like the omnigeode. I know it should use targetfield in theory, but I'm still not entirely sure how to go about it
So, basically I wanted to make a product that takes two or three items. It's kinda similar to Wine and other similar objects where it's named based on its inputs. But since the product I'm thinking of also has "fuels" unlike wine I also wanted to take those into consideration and name them accordingly. I don't think that's gonna be possible with CP so I was thinking of resorting to C# and learn how I can achieve that.
Sorry if that makes things even more confusing. I am not very good at explaining things.
you shouldn't need the C# API for that. This section of the doc explains how multiflavored items work: https://github.com/zombifier/My_Stardew_Mods/tree/master/ExtraMachineConfig#items-with-multiple-flavors-and-colors and https://github.com/zombifier/My_Stardew_Mods/tree/master/ExtraMachineConfig#inheriting-the-used-fuels-flavor-and-color-in-addition-to-the-primary-input-item-as-detailed-below
though if you do use a custom OutputMethod I suppose you need the API to get the fuels that will be eaten before applying your own changes
Yeah, there's that but for the time being, I hope the one in the docs is enough. Thanks!
Gotcha 
what happened to darkwings for it to jump 0.0.9 versions
I was too lazy to move the text cursor 2 characters to the right
when incrementing the version number
also theres infinite versions between 0.0.0 and 0.1.0
Might be wrong channel, yell if so, but how many individual npc tastes do folks think is good when adding new objects?
I.e. does everyone need to care about this new item or can I be lazy 😭
tbh whatever your heart desires
I have added 0 
But it's a creative writing thing u know
Would penny enjoy this Object
My heart is torn unfortunately. I guess the better question is, is it weird to have some custom tastes but not all
The kids hate this vegetable thing and nobody else really cares
i do a flat loved/liked/hated but that's dependent on what i've made
Food and how folks feel about it is just such a varied thing
I think at a certain point I will just go with my gut and make myself stop overthinking it
you could also leave it to the whims of vanilla
cause iirc vanilla has categories set
I thought it was just like “all milks all eggs all fruits all veggies” sort of thing, no?
yeah
Hello 👋 . I need help with a CP mod. The cask in my mod Uppergrade does not use the production time I've set. For example, I've set a production time of 56 days for wine, but it actually takes 62 days and 1 hour. Why is this happening? I think this behavior is new since the 1.6.9 update or so.
https://github.com/Molenfeuer/Uppergrade/blob/main/data/cask.json#L190
that file looks fine to me, weird. UI Info/Lookup Anything shows 62 days?
I've noticed the time in UIIS2 is wrong
Yes! Lookup Anything! And It actually need more days than 56!
Or maybe it's Lookup Anything that's wrong
Lookup Anything shows the correct time based on math
no, you can edit any existing entry too
what gave you the idea that you could only change data for new items?
But UIIS2 always shows longer times, maybe as if it's skipping the time between 2 and 6
I thought there was built in math to deal with sleeping time though
that seems plausible
is the 62 days coming from the mouse hover or F1? the former's UI Info, the latter's LA
Maybe I have it backwards, for a wine I didn't add but is being added by a mod, UIIS2 is showing a shorter time and LA is showing longer
I was testing earlier with the Crystalarium when I noticed it
Crystalarium is way off
This is my log file btw:
https://smapi.io/log/b750ec59984d4722b25008ee8ca9791c
Log Info: SMAPI 4.1.7 with SDV 1.6.14 build 24317 on Microsoft Windows 10 Pro, with 31 C# mods and 37 content packs.
@tropic walrus
{
"Target": "Data/Objects",
"TargetField": ["749", "GeodeDrops", "Default", "RandomItemId"],
"Entries": {
"MyItemId": "MyItemId"
}
}
``` This would add an item with the id `MyItemId` to the drop pool for the omni geode at the same rate as everything else
for more info, use the `!unpacking` command to get instructions to unpack your game files for use as a reference, and see here <https://github.com/Pathoschild/StardewMods/blob/stable/ContentPatcher/docs/author-guide/action-editdata.md> for detailed documentation on using CP for data edits
Only in theory. In practice there are 2147483647 versions between 0.0.0 and 0.1.0.
who says semver is limited to int
The System.Version fields are limited to int.
the SMAPI source code
i thought u could just -Whatever
well yea, but semver isnt just smapi. just bc smapi limits to ints doesnt mean there are limited version numbers
or that limit, anyway
so what is stop u from 0.0.2147483647-1
I'm allowed as many prerelease versions as i want
i dont think smapi handles negative version numbers
well yes, but this is #making-mods-general and not #programmers-off-topic, so only SMAPI's implementation is relevant :P
Nothing says I can't put the entire script of bee movie there
i would disagree with this but its not important bc it was a joke throwaway comment anyway and i dont actually care
(sorry)
no you're fine! i just dont want another situation where people think im serious about something im entirely not about and get on my case about it lmao
0.0.0-bee.movie
Pshaw, no one downloads the prerelease versions. Say goodbye to your hot mods listing.
(So was my reply, incidentally)
gotta implement that, "Ability To Read" mod, with the "Good On You For Reading" secondary mod, and if only one is installed, it sends the bee movie in smapi
i kind of admire the bravery to release incomplete mod
(dw i didnt think yours was serious either but i didnt want the convo to go further and for people to start thinking we Were)
no such thing as a complete mod
only mods that meet mvp
will mods be complete when vanilla stops updating
I'm not sure if bravery is the word I would use for mods that do nothing except crash on startup.
yea so incomplete as in
updates are temporary, scope creep is forever
mods that r arguably not even mvp
I know I'm just joking
What hot mods listing I'm retired
I think it's like the modder's version of patent trolling. You know it doesn't actually do anything useful, but it's important to occupy the name and page before anyone else can take it.
just do the thing that happened to WAILA and name it with increaingly deranged reinterpretations of the existing name
In my mental map of semver, 0.0.1 means "ludicrously unstable" and 0.0.0 means "literally doesn't do anything".
what is WAILA 
and now we're on to WTHIT (What The Hell Is That)

don't we already have that? sampi, scampi, smepi, spami
time to dig into 'i can't remember the history of why it's called "smapi"'
Stardew Modding API
so we can butcher it
call it by its full name
Stardew Modding Application Programming Interface
Please, Mr. Application Programming Interface was my father
@brittle pasture @rancid temple Seems legit. I need to correct something: the machine works as expected. It actually takes 56 days, not 62 as shown by Lookup Anything! Bug?
Probably
I think the issue is with LA since it's showing longer, maybe missing the math for sleeping times
Yes
I can watch machines finish in time with UIIS2
Do tastes for whatever you want. Most NPCs have categorical tastes so it's not like they'll do something weird if you dont
when I've done items it's generally been poking the people whose NPCs I enjoy and going "Hey, would your character like/hate X?"
Makes sense! Thank you
(Re: semantic versions being negative - I tried that the other day and SMAPI didn't accept it)
The semver spec is pretty clear about that:
A normal version number MUST take the form X.Y.Z where X, Y, and Z are non-negative integers, and MUST NOT contain leading zeroes.
Ah, interesting, I didn't realize that. I mainly tried it because SMAPI's SemanticVersion stores it as int
PR pathos to make it a uint
That'd probably be considered a braeking change 😛
what would it break
Mods referencing the version numbers
negative values would underflow to an absurdly high number instead of just throwing an error about negative values?
No, SMAPI won't parse a negative sign. (Source: I tried it)
is the tag fish_pond_ignore a base game tag?
(As for mods using SemanticVersion... CP uses it a fair bit for all the migration stuff)
hrm i still cant figure out how to ungreenhouse a greenhouse
Apparently according to my phone I walked 16 km today
Yes
(Not like I matter anymore but I used to check version all the time for intermod apis)
you mentioned this yesterday and i still have no idea what you mean lol
well i want to let people decide if they want to obey season rules in the greenhoues, for planting
That said, breaking my mods more is good, not bad now
Why would someone want that 
i thought unsetting map prop IsGreenhouse would work but it didnt
doesn't that void the propose of the greenhouse?
yea
its just a setting, bc i did make the greenhouse seasonal
anyways i prob just give up cus it is hardly essential feature
That's because "IsGreenhouse" just sets GameLocation.IsGreenhouse to true, while the greenhouse location has that flag set to true by default
(Hardcoded in GameLocation constructor)
You're a c#
the map having IsGreenhouse is a red herring then
You can do what you want
i am but i put my content modder hat
It makes it so that item can't be used in fish ponds
hi do you have any essentials mod for a witchcore modpack ?
im working on making one and if you have any advices, mod etc ill be grateful
thanks
can you in a mod remove a tag and only that one tag
context tag, yes you can
if you know how to add a tag, then do the same thing but set the tag value to null (no quote) instead of the tag value
if you dont know how to add a tag, ill grab an example rq
"Action": "EditData",
"Target": "Data/Objects",
"TargetField": ["928", "ContextTags"],
"Entries": {
"fish_pond_ignore": null
}
},```
where 928 is the id of the fish
thx
I should update my wiki snippet for context tags
also is there a list of all tags in the base game
same
but there is a list somewhere on that page hidden under a dropdown
wow it jsut spat outa 503 error!
Maybe related to how fish move in aquariums?
i'm following the Content Patcher page on the fandom for mod-making and it says to use "2.3.0" because it is the most recent version. Is this referring to smapi? In that case, do i have to use "4.1.7"?
its the version of content patcher
although, it should actually be 2.4.0 now
i didnt know we had fandom for mod-making
might be the wiki section on modding
thank you!
also what is the difference between "load" and "editimage"
wait so do i use both?
As a general rule: Edit is for changes to existing assets, Load is for brand new assets/targets that don't exist yet.
If you're doing total portraits replacement it probably doesnt matter what you use
Using Edit for things like portraits avoids running into mod conflict issues where two mods try to load the same asset exclusively, so neither works.
but specifically what does it mean by editing? like you're transforming the location?
You're replacing the image
the guide says "load" is for replacements though
EditImage in this case would tell the code to replace an image at your Target with the asset in your FromFile
Load tells it to create a file at your Target, using the asset at your FromFile. But this can also overwrite if it already exists.
So both technically will do the same thing, but EditImage avoids the conflict if someone's using another portrait mod, too, and both of you are trying to Load in the same destination.
okay, thank you
Is reload_i18n supposed to... reload i18n? It's not reloading i18n for me. Does it not work on the default.json?
If it's CP I think you need to also patch reload afterwards
reloading a C# mod's i18n always worked for me
Not CP. I'm looking at the TranslationHelper and it hasn't updated.
if you put the strings into assets you might need to invalidate them
Nope, none of that. Just regular, vanilla, string in default.json, change it while running, and after a reload_i18n command, the translation helper still has the old string.
uhhhh make sure you're modifying the file in the Mods folder?
Reload command only lists i18n reloading in reference to CP, does it for sure work with C# mods?
what does {TargetWithoutPass} do?
Hmm, it says This only affects new translations the mods fetch; if they cached some text, it may not be updated.. I guess maybe the "they" here includes SMAPI itself.
(I may have also Berenstain'ed myself and reload_i18n never worked with smapi)
It's listed under SMAPI in the help, not Content Patcher.
It should work
What you are doing should work
everything you are asking is explained in the content patcher documentation:
https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide.md
for targetwithoutpath specifically, you want to look at the conditions and tokens guide.
Ah well, it's not really important enough to chase down, just irritating.
okay, thank you for your help!
Oh geez, I know what the problem was... sigh, I've already been spoiled by my own tools, I was editing the json file in the source path instead of the mod path.
Nothing to see here, please disperse!
wow
avg me when i get hooked and code till 7 AM and then fall asleep
Lol
Is it intended that Object.onReadyForHarvest only runs when the object is in the current location?
Edit: Only happens with CJB instant ready cheat.
can someone help me look over a mod?
what do you need help with?
if you have code feel free to post them
!json
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.
i'm trying to learn how to mod by studying some other ones but I found this one sprite mod that uses both load and edit and i'm kind of confused if I should also be using both
op put editimage before load actions
are they the same image
same image, yes
that part doesn't matter
that could also be faulty code
are they the same target?
oh yeah loads always run before edits
you can edit image on a load you did if it's something you want to conditionally change
nvm you're right, it was for the winter sprites
but yea pls link mod?
https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide.md
this is what you want to read btw
but why did they use edit for the winter sprites but not for the regular sprites?
if the regular sprites includes e.g. summer and fall outfits, then it's because vanilla doesn't have summer and fall outfits, only winter and not-winter
theres no summer/fall, just default
can you tell us what mod it is? that might help
okay
if it's pre-1.6, then that might also explain it, since winter outfits were added in 1.6. it's hard to guess without seeing some code or knowing what the mod is
(the reason we need it is because there is no one correct way to do almost anything with sdv modding or content patcher, and context matters a lot)
i was studying this one: https://www.nexusmods.com/stardewvalley/mods/17289
i think you might be right, op probably just added a small code at the beginning for the update
yeah the original release was during 1.5, so that's probably it
just downloaded, yeah in this case there isn't really a difference
i would probably choose a different mod to study from, or just study from the content patcher docs themselves
i have trouble understanding some terms, im not super familiar with coding 😓
well, it would be very difficult to get far at all if you're just copying things from other mods without understanding at all what they do, since everything in this content.json is also on the content patcher docs, but you're always welcome to ask in here for help understanding things too
one thing to keep in mind is that other mods are sometimes badly made
it's best to look at a few examples to get a broader idea, and figure out what's the same/different
I love when I'm helping someone and I point out some misconception in their code and theyre like "oh i got it from <other mod>", when i know that the other mod got it from another mod, and another mod misunderstood an example I gave them in the first place
That's both a very vague and very specific sequence of events but I feel like it's happened a few times.
my favorite game of telephone
and everyone in the chain is just doing it because they assume the person before them knows what theyre doing!
jokes on them i hope no one uses my mods as references, it's a mess in there
do as i say not as i do yadda yadda yadda
anyways looking at other mods generally teaches you what works (ofc, always check if it does work in the first place), but its up to you to learn the best practices
which is not an overnight thing
Real modders cobble something together from documentation without any examples. And then proceed to take at least ten times as long to learn or do anything
Is there a way to know if the player has something in their hand? Like when they're in their inventory, and they click on an item so it follows the cursor. It's not considered in their inventory, which make sense.
in what context? in C# you can check Farmer.ActiveItem and/or Farmer.ActiveObject
i can have as many %item as i want in mail right
yes
hm
unless you ask certain people in here who will say you can have only as many %items until you reach the max length of int32 for the length of your mail string
/lh
doesnt it take qualified item ids
wiki's prob outdated
the new mail commands are still only on 1.6 migration page
%item id (T)IridiumMilkPail
you need a milk pail for birds 
Gotta carry those eggs in something, right?
That's not what I'm looking for exactly. I'm looking for when you have selected with your cursor
that's usually handled per-menu instance in IClickableMenu menu.heldItem
i mean technically this is the best way to learn, smack at it until it works 
i don't believe heldItem is a single inherited member between many menu types, maybe a member of MenuWithInventory?
quick question: is it possible for a farm map to just... not have a greenhouse?
i format this mail wrong somehow 
"Dear @, ^^Your grandmother, an avid birder of many years, left you this. We hope you find a way to continue her tradition this spring. ^^Good luck, and watch for bird's nests! ^The Pelican Town Ornithologist's Guild%item id (T)Ivy_OrnithologistsGuild_LifeList %item conversationTopic (T)Ivy_OrnithologistsGuild_LifeList 14 %%[#]Ornithologist's Guild: Introduction
Guild%item maybe?
oh i thought it was only 1 time
"{{i18n:Mail.HandHolder}} %item id (O)FlashShifter.StardewValleyExpandedCP_Fungus_Seed 1 %% %item id (O)FlashShifter.StardewValleyExpandedCP_Stalk_Seed 1 %% %item id (O)FlashShifter.StardewValleyExpandedCP_Void_Seed 1 %% %item id (O)FlashShifter.StardewValleyExpandedCP_Slime_Seed 1 %%[#]{{i18n:Mail.HandHolder.Title}}",
it might be one time actually idk
this is what i get away with 
i forget what i did last time i needed two commands
no it's every time
ok good i didnt gaslight myself
yay worked i got da book
all of us depending on memory cause some of us have wiki access with no lag, and others do
not even i18ning it smh
oh ok. forgiven
but hm
the mfm delegate was
(l) =>
!Game1.player.mailReceived.Contains(l.Id) &&
(SDate.From(Game1.Date) >= new SDate(5, "spring", 1) ||
SaveDataManager.SaveData.ForPlayer(Game1.player.UniqueMultiplayerID).LifeList.Count > 0),
i dun remember what checks for later than spring 5 year 1
was gonna just use DAYS_PLAYED 5
spring 5 is community center isn't it?
oh, yeah days played 5 works
might actually be 4
if you wanna keep to syntax you can do SEASON spring, DAY 5... right?
or was it SEASON_DAY spring5
i'd check days played then
it might act weird on people who use the day skipper (probably) but eh
someone can correct me if im wrong but i dont know if days played would account for farmhands joining late
Also days played would be more annoying to test
it just gets incremented on newdayafterfade but if theyre not there when it happens, then...
no, removing the boulder to the mines
1.6.9 added a DAY_RANGE GSQ though i believe so you can just check for spring 5 or later
CC intro is first Sunday (assuming you activate the cutscene) iirc
DATE_RANGE <min season> <min day> <min year> [max season] [max day] [max year]
so DATE_RANGE spring 5 1
vanilla really did eat up mfm
well thats not really an mfm specific thing thats just a gsq
are you adding mail into the correct mailbox
in fairness 1.5 already had a lot of mail stuff available to CP
so 1.6 was more nail in the coffin kind of thing
this mail stuff sure is complicated 
iunno i find machines the most complicated
CC intro cutscene is available starting on the 5th of Spring
I'M NOT CRAZY
oh hm
actually yeah, I think boulder triggers overnight so you don't actually see it until the 6th
is it because mail has so many ways to get it that you're just like 

tbh it's only complicated because of all the layering, and TargetField isn't exactly the most straightforward to comprehend for new modders
i dont like machines because i dont like whatever the fuck goes on with flavoured items
yeah that's pretty cursed
i have no idea how it works and i probably will not bother to Figure It Out
I don't like flavored items in general
Reminds me of the dumb meta data shit from Minecraft
Does anyone....
Does anyone like flavored items?
mid sip of flavored water 
Yeah
i assume, the people who make EBAGI content packs do
I bet CA did when he first made it
Because it saved a shit ton of time making a bunch of extra assets
so is there way to get mail immediately on install
i now gotta use it, sorry
(because I'm sure there's like ten thousand bugs)
"{{ModId}}_Mail_Introduction": {
"Id": "{{ModId}}_Mail_Introduction",
"Trigger": "DayStarted",
"Condition": "!Ivy.OrnithologistsGuild_HAS_LIFELIST, DATE_RANGE spring 5 1",
"HostOnly": false,
"Action": "AddMail Current Mods_Ivy_OrnithologistsGuild_Introduction",
"MarkActionApplied": true
}
You can send mail on day started now
you can set Now after the mail ID
i did this but it still took sleeping
that's default tomorrow without it
custom GSQ 
ah ok
yeah needs Now
yea thats just SaveDataManager.SaveData.ForPlayer(Game1.player.UniqueMultiplayerID).LifeList.Count > 0)
i didnt want to figure out what this is in detail 
i added the gsq as part of the changes
Why do i keep misreading gsq as je ne sais quoi
it moreso just made me curious why you didnt just add the mail with C# on day start after spring 5
if you're already in c# territory
fair enough
"if it can be done in cp it be done in cp"
tbf you could also just as easily add to Data/TriggerActions with C# too if it was the desire for a trigger action specifically
but yeah it doesnt matter
you dont need MarkActionApplied
or HostOnly
i'll prob get rid of hostonly yes
but i was thinking it could be MarkActionApplied: false in case ppl lose their book somehow?
Aren't those just the default values?
its a tool tho so u would need cjb to do that
they are yes
ah true 
the book is a tool? should auto keep
does lost and found still exist in the manor or was that usurped by 1.6.9
right, but you can still lose it some other way
Do custom tools go to lost and found?
no
u gotta add it
Ah
MarkActionApplied: false wouldnt work anyway though, it'd give you the mail every day forever
you need to condition on the farmer not possessing the tool somehow
but theres a gsq guarding it
i dont know what a lifelist is
anyways i prob won't do any additional operational changes
but i'll put suggest when i send PR
lifelist is the book/birbdex from birb mod
it's a tool
Does the GSQ check everywhere for it?
how does the LifeList counter keep track of when they lose the tool?
i have no idea
didnt read that part of code
but i could very well just search all inventories for it, not that bad
Wouldn't that ping off multiplayer then?
putting it in ||crow shop|| is pretty on brand tho
so yea i'll just leave this mail alone
yeah actually if the lifelist counter works off of player uniqueid then im not sure how it'd determine if the players tool is in a chest or not without searching globally, in which case im not sure how it accounts for other players
it feels like it would either give you a new mail if you put your lifelist in a chest for a day or alternatively only the first player would get this mail
why not just check for them having the mail flag
its part of an OR that comes after a thing which is nearly always true
so it just get shortcircuited anyways
MarkActionApplied is sufficient here
Can anyone tell me why the Greenhouse_Dirt map is not loading properly? I've been messing with it for a while now and nothing seems to fix it. Here's what my content.json looks like
Log Info: SMAPI 4.1.7 with SDV 1.6.14 build 24317 on Microsoft Windows 10 Home, with 35 C# mods and 143 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
Working on my mermaid farm mod. Went and broke the game so bad BusStop would not load.
im so bad with writing dialogue... This is take 3 of it now? Oh boy...
I found it with this
Game1.player.CursorSlotItem
Which now looking at this, it's very obvious, but took me 30 minutes to find. This is why I have a love/hate relationship with programming 😅
not quite sure what the aim is here, are you trying to place the greenhouse at that position? it should be in the FourCorners' map properties itself
no, it's the dirt that replaces the greenhouse when it's moved. The greenhouse itself spawns in the right location, but the Greenhouse_Dirt.tmx that's supposed to replace it is not working
i don't think you need to do this anymore when setting up the greenhouse. you can just design the map as usual, set the greenhouse position with GreenhouseLocation in map properties, and the ground texture won't need to be changed at all to account for when the greenhouse is moved
I needed that, thanks Kisaa!
Also, is there a way to set where the incoming warp from BusStop (forest, backwoods too) puts one, or does that all need to be manual map edits to those respective maps? Or does one typically just lop the warp points where vanilla lops them, all willynilly?
all can be set in map properties. the incoming warps are listed as (location)Entry
off the line, but are you using a re-shade? 
e.g. BackwoodsEntry is the tile you warp to when entering the farm map FROM backwoods.
oh seriously? 😭 I haven't made a modded map since the last update. Well, at least that solve my problems haha thank you
yes! I'm using the natural color reshade https://www.nexusmods.com/stardewvalley/mods/1213
OOOOHH i love that! I guess I'm going baack to it afterall xd Thanks!
Thanks! 🙂
you're welcome, the mapping system got changed up with the recent updates. you can have as many layers as you want in a map too now, but do note that the tile data still has to be set on the original layer(s) (Back, Building, etc.)
I had a weird dream i was trying to romance lewis,
So ...

I guess that's going to the wip pile
weirdest nonsequitur ive ever read in this server /lh
Too much sdv brain XD
haunted by my previous "be the change you wanna see, make a lewis romance mod"
Indeed . .
@velvet narwhal #making-mods-art message Honestly I think you do actually have a special talent for ~~derailing ~~giving inspiration and motivation cause last time I ended up releasing a whole mod for 1000+ wallpapers after you asked one innocent question! :bongo_cat_heart: :VMVLmaoDog:
- @worn coral (Jump)
also i just noticed this but - are you using my tilesheets? 
oh my gosh yes I am! I love your tilesheets very much
didn't realize it was you
my nexus name is different from the server nickname so i understand
go forth and make that map because i can't be the only one who uses them tilesheets to make stuff!
I've been working on it for quite a long time now so I hope to release it soon! 
thank you! I was getting frustrated because I couldn't find a map large enough to play split funds with my friends. I wanted a map large enough for us all to have our own private spaces. So I just made one myself 😭
i think this is one of the ideal maps for multiplayer-mode.
fair enough. all my maps are also the result of me wanting my own food
i also have a giant four corners map planned - it may not be for me, but i know a lot of you like a giant farm map lol
i zoomed in this image bc i want to see the details and i found some missing ground textures by the way. no idea why that was the first thing i noticed, but i figured i should point it out (top rightmost waterfalls).
i like the amount of detail - playtesting this to ensure everything has proper collisions seemed like it would take a while 
LOL thank you! I was messing with the top layer of the map and completely missed those
my friends and I have been playtesting the hell out of the map together. I'm constantly updating it and I think they're sick of it 😭
by the way, if you have the latest version of my tilesheets, there are magic circles now, if you're into making magic warps 
thinks about how far out i'm gonna need tilesheets
i'm sick of playtesting my own maps sometimes because i can be inattentive when tired (missing layers, wrong collisions, stray transparent tiles on buildings layer), i relate to this haha
Luckily we have mods to help with it at least
Data Layers
Data Layers shows some useful information
Like which tile is passable and which isn't
I believe you can also see which ones are warps
i forgot that one existed. will have to check that out 
Oh yeah, also buildable and tillable tiles
there's also this one https://www.nexusmods.com/stardewvalley/mods/28257
Sorry for the late reply. I just tested this out on my farm and included the following line before the if statement which only printed Weeds (O)674 even though I have a chest with parsnip seeds on the farm. Do you have any idea with this could be happening?
this.Monitor.Log(item.Name + " " + item.QualifiedItemId, LogLevel.Debug);
Do you have a train on the farm?
I know people have made mods that genderswapped certain NPCs and then had to make a sweeping pass over dialogue and text. Was that all done by manually combing through each dialogue file and text reference or is there a clever way to index and find all uses of a name across multiple unpacked files?
i mean you can find all the uses of a word in a set of files very easily but if you wanna make a content patcher mod for it it needs to be manually edited
bc you need to edit every entry specifically
hi!! i want to ask something about custom map. prior 1.6.9, it works perfectly fine but after the update, the game cant load it. what can i do to fix this?
Is there something faster than opening each file and 'ctrl+F'ing? I reckon it'll still be a chore to catch he/she or brother/sister, etc.
Basically I know how to make the content patch, and I know obviously the NPCs close to the one I'm editing will have dialogue to target, but I'd be happy to rule out the other long list of NPCs without checking a few dozen files one at a time
notepad++ and VSC and most other more-featured text editors have a "Find in Files..." sort of search alongside the usual "Find" Ctrl+F search
You can use a software like VSCode that has a global word search and replace in a whole folder
Which map?
my own custom map
What errors is it making?
did you ever edit and save the map when the tilesheets werent present?
Open the map back up, make sure you have all your tilesheets in the same folder and make an edit and save it
are you maybe using a tilesheet that was removed in 1.6.9?
theres a tilesheet that got removed?
That typically means you mussed up your tilesheet somehow, yes, as they say. if the error persists, open the tmx file in notepad, find the gid which is in error, and replace it with 0. You will need to reedit the map after.
That said, most of them were pretty obviously not intended for actual use
If you have resized a image which the tilesheet used, that will cause this error.
You don't have to edit the gid value, just making an edit in Tiled with all the tilesheets present will do that for you
Maps/cavedarker
Maps/FarmhouseTiles
Maps/GreenhouseInterior
Maps/spring_BusStop
Maps/TownIndoors
Maps/WizardHouseTiles
Maps/WoodBuildings
these are the removed tilesheets
ahh i had wizardhousetiles tilesheet in my custom map



