#making-mods-general
1 messages · Page 14 of 1
yes
Huh. Nothing in the source suggests any reason for incompatibility.
oops it was harmony_summary
Yeah, it's harmony_summary, definitely run that to see if your postfix is even installed.
We see a screenshot of the postfix itself but no indication of where/how it's supposed to get added.
(If this mod is open source, would be a lot easier to just post a link to it on GitHub than to post screenshots of code)
- Rafseazz.RidgesideVillage (postfix)
- ytsc.QualityFishPonds (prefix, postfix)```
- Rafseazz.RidgesideVillage (postfix)```
" - ytsc.QualityFishPonds (prefix, postfix)" that's mine
Postfix on DoFunction wouldn't cause the issue.
Would have to be a prefix/transpiler.
Does harmony_summary list transpilers?
@final arch what the heck?
Oh, the WateringCan ref maybe? Is that what you were pointing to?
Yeah, how does that not die
It's a weird, obvious copy/paste error, but hard to see why it would prevent other postfixes from running.
I mean yes but also like what
I don't really see how either of these postfixes would cause an issue though
Or maybe it does. Maybe Harmony barfs on it and doesn't process other postfixes.
Could be Harmony silently fails because of the signature.
Silently failing would be bad but not as bad as what I would expect
One way to tell would be to uninstall RSV, and make the same signature error on your own mod, and see if that postfix runs with the error.
Which is a segfault
WateringRod 
Maybe it's fine since it's not actually using it?
.NET probably isn't going to segfault, Harmony would just throw an exception.
But since it's a ref then perhaps the casted type got kept 
It's totally possible to get segfaults
Right, but at the IL level, I don't think having a wrong receiver type would segfault.
I'll note that HarmonyDebug might also produce no output, if it's failing to run at all because of the RSV version dying.
I guess if it isn't used at all
I know that the patch works, and it throws no errors (unless it does and I just didn't notice)
Hello again! One more quick question, does anyone know in which file are the new wallpapers stored? (specifically this one)
It is squirrely. Fact is, __instance is never used so not that likely to be causing big problems, and that's on DoFunction postfix anyway which would happen long after the call to pullFishFromWater (whose patch signature appears to be fine).
Maps/wallpapers_2
It's suspicious though.
did you catch teaguvnor's SDV mango farming while waiting for patch stream? He made an entire Dota 2-themed custom SDV map
I have no idea what is this
I didn't know that damnn
though afaik he didn't post the mods he created/commissioned anywhere lol
(also this convo should probably go on #modded-stardew )
Huh I see the post fix in there fine
Looks fine to me, at a glance anyway.
But it's DoFunction that's patched weird in RSV, not pullFishFromWater.
Yeah
Actually I am wondering why there are so many ldargs, but I don't dive into IL stuff all that often, there might be a good reason.
The mod has two args, and two ldargs, which is expected.
this func just has a lot of args
Oh wait, derp, I was looking at the DoFunction postfix instead of pullFishFromWater again. Yeah, args are correct.
Geez tho, why is RSV taking so many args it doesn't need?
It uses one of those 8 parameters.
One other thing. Have we verified that the breakpoint can be hit? As in, it's not some issue with VS having a different version of the assembly from the game? @odd badge have you checked that your breakpoint is it when RSV is removed?
also for this saying i'm patching prefix also, It's only for testing if the problem was only on the postfix.
the breakpoint is reached inside the patch without RSV, and also everything else inside works fine
To be clear, the "works fine" and the "breakpoint hit" are two entirely separate questions. But if you're sure you've tested that under controlled conditions and RSV is definitely what causes the breakpoint not to be hit, then I think the next step would be to pull the RSV source, comment out its Harmony patches one by one, and see which one is actually interfering.
By appearances there are only 2 or 3 possibilities. But for all we know, there could be something totally unrelated going on.
If you can build RSV, comment out its Harmony patches and still not hit your breakpoint, then it means the problem is elsewhere. OTOH, maybe you'll find that correcting the postfix signature actually fixes the issue through some crazy magical action at a distance.
I took the modpack and removed the mods one by one, when I removed RSV it started working again. Then I added RSV again and it stopped.
https://github.com/YTSC/StardewValleyMods/tree/master/QualityFishPonds that's my source, I just updated it
"Working" = "is everything OK within the game state"
"Hitting breakpoint" = "is the assembly loaded by the game consistent with what VS is trying to debug".
Different things.
Anecdotally, I received a few complaints that my mod wasn't working with a CP mod installed, turns out it was actually Downtown Zuzu causing the issue
without RSV it hits the breakpoint, I used it multiple times to debug
But the people affected were saying as soon as they removed the CP mod it started working again
Anyway, I think playing around a bit with RSV is the next logical step, try commenting/removing its patches to see if it really is a Harmony issue.
When a bug is elusive like that, all you can do is work through it methodically, eliminate variables. Unless someone else here is seeing something that none of us have noticed.
i'll try comment the fishing rod patch from RSV
Wasn't that posted already?
I'm using a definition of "we" that doesn't include me rn since I need to head out
Oh.
Serves me right for not backreading, sorrry!
Harmony summary showed both postfixes installed. (As did the IL)
To get a little more info, can you:
- Load into the game (the title screen is fine).
- Type
harmony_summaryinto the SMAPI window and press enter. - Upload your SMAPI log to https://smapi.io/log (instructions on page)
- Post the log link here?
This
it's this
we did that earlier i thought
i'm using the user's modpack so that's why it has a lot of mods
As I've often had to explain in other situations, the fact that you can add/remove one thing to trigger/eliminate an issue doesn't necessarily prove that the problem is in that thing. It could be something else depending on that thing, or some common state that they're fighting over, or some totally unrelated component that subtly breaks both of them.
Correcting the signature in RSV's patch is an easy thing to test; after that, knowing whether disabling the patches has any effect will help narrow the field.
you see, both a wateringCan and a FishingRod are tools and runs hurriedly away
Technically that's correct
do you have your source somewhere? Ill try it tomorrow
well today cus its 2am already x.x
@final arch
Im scared
I turned it into a source package
There's no multi-threading, only async.
remind me in 12 hours to check rsv fish issue
grumbles, mutters some vulgarities about humans...shekurika in particular... fiiiine. (#6207756) (12h | <t:1724846026>)
(that... is scarily on topic?)
I'll leave these here encase anyone else is obsessed with badges like I am:
https://custom-icon-badges.demolab.com/badge/Stardew_Valley-FFD58E.svg?logo=stardewvalley
https://custom-icon-badges.demolab.com/badge/SMAPI-C%23-%23239120.svg?logo=smapi
I'm only gonna slightly steal borrow those and add them to any and all of my repos 
what about the build passing 
i am kind of confused about purpose of the vanilla stardew valley badge
All automated tests pass!
could be for CP mods
(There are no automated tests)
You can't run automated tests in a GitHub runner, not without also automating sailing the seven seas.
I mean, I suppose you could set up a self hosted runner on your local machine, but that's so overkill.
I've got one for that too
https://custom-icon-badges.demolab.com/badge/Content_Patcher-JSON-000.svg?logo=smapi
ah, but what if I'm making an AT pack I kid, I kid
I thought about doing this, but it seemed kinda wrong to me for some reason.
https://custom-icon-badges.demolab.com/badge/Stardew_Valley-Mod-6B3407.svg?logo=stardewvalley
@vernal crest: read the BETAS documentation (6h ago)
Badges
- Stardew Valley: https://custom-icon-badges.demolab.com/badge/Stardew_Valley-FFD58E.svg?logo=stardewvalley
- Stardew Valley Mod: https://custom-icon-badges.demolab.com/badge/Stardew_Valley-Mod-6B3407.svg?logo=stardewvalley
- SMAPI: https://custom-icon-badges.demolab.com/badge/SMAPI-C%23-%23239120.svg?logo=smapi
- Content Patcher: https://custom-icon-badges.demolab.com/badge/Content_Patcher-JSON-000.svg?logo=smapi
- JSON Assets: https://custom-icon-badges.demolab.com/badge/JSON_Assets-JSON-000.svg?logo=smapi
- Space Core: https://custom-icon-badges.demolab.com/badge/Space_Core-C%23-%23239120.svg?logo=smapi
- PyTK: https://custom-icon-badges.demolab.com/badge/PyTK-Lua-%232C2D72.svg?logo=smapi
- Alternative Textures: https://custom-icon-badges.demolab.com/badge/Alternative_Textures-Art-786C65.svg?logo=smapi
- Legacy XNB: https://custom-icon-badges.demolab.com/badge/Legacy-XNB-600.svg?logo=smapi
I was just looking for things to make badges for tbh
not easily i imagine
spring 2 electric boogaloo you'd probably have to strip the whole game and rewrite a lot of things
Patch like half the game using harmony and C#, and then also make a IL rewriter to rewrite every mod so they don't break compatibility 
Make Stardew 2
it’s so over i know what like 3 of those words are
its not somethint you can do without extensive C#
you're basically doing the first person/3d stardew mod but with seasons
i guess you could change the name of the seasons to like. Sprang, Sommer, etc. on even numbered years to play pretend. as long as they go in the same order
i just wanna have january through december
stardew doesnt have months in general in the first place it just has seasons
the problem comes with the actual world's changing of seasons, it's a farming consistent problem
You could just change the name of the season with content patcher based on the date and have really short months.
wait there's a real world analytic hold on it was wild
wouldn’t it be the same amount of time
like uh
30-31 days for each month
well
other then february
cuz it’s weird
itd be 9.3 days for each month
i'm learning only now that pytk used lua? why (pytk was, thankfully, before my time)
bc you cannot actually add days or months
what linkoid was suggesting was just changing what text is shown on the screen every (in this case) 9.3 days to pretend like it was months changing
Use a CP token to change the name of the season based on the day. So like, the first 7 days of spring you would change the name of spring to March, The second 7 days, you would change the name of summer to April, etc.
what about this
Sometimes you might think you have a really great idea about how people should interact with your framework, even if you're wrong
ah yes, harmony
I was gonna say, there's literally only one spot in Game1 where it checks how long a season is
It's doing if (Game1.dayOfMonth > 28)
i should have added the "without C#" part again but tbf you can do basically anything once you dig into the code
I MIGHT HAVE JUST FIXED THE MULTIPLAYER SPOUSE BUG WHICH PERSISTENTLY BIT MY HEELS!!!!!!
But after you harmony patch that, you then have to fix the calendar and a bunch of other things
and that also doesnt provide a way to do different days of month per . uh. month
like you cant have a 28 day february followed by a 31 day march
I think if you changed how the calendar and dates are drawing based on what day of the season it's in
with that mod? reading the description it didnt seem like that was an option
Well, that mod alone it wouldn't be enough
unless im misunderstanding the mod description though you can only choose one number that every month will have as the number of days in a month, and im not sure how content patcher will change that
you can shove 4 months worth of days into one of the current seasons and change the text, yes, but then you'd have 4 months of days but all on the same calendar page
__instance.Season = Season.Spring;
}``` *clueless.gif* me i'm clueless
Actually wonder, it does say you can change how many months are in a season, what does that entail
i assume you'd get 28 days of spring followed by 28 more days of spring for example
Oh yeah, absolutely lol
what would this new season be
see above: sprang
(also minor correction it does create new calendar pages as necessary but the numbering would be off still)
This might be a dumb question, but is the MakeInvisible event command supposed to work on the farm? I can't get it to work there. (It's fine in the farmhouse though.)
it makes things like forageables, trees, bushes ...(maybe?) invisible
there are a few other places in the code which assume four 28-day seasons in a year. i am thinking in particular of the _memory CTs, which have a oneyear value, although that one is slightly shorter than the expected 112 days (it's 104)
Gotcha! I thought it would make furniture invisible like it does inside.
that one isn't too damaging for this, though. people will just think it's been a year when it hasn't
bookseller assumes four seasons too
though if you're still using the same season names internally that shouldnt matter i guess
Set each season to be 122 days
On Spring 1-31, change the name of Spring to "January"
On Spring 32-61, change the name of Spring to "February"
On Spring 62-93, change the name of Spring to "March"
On Spring 94-122, change the name of Spring to "April"
Repeat for the other 2 seasons
but it wont go past day 28
anyway i'll just assume that mod thought of all this and move on /lh
this wont fix the wonky calendar, though, which will still show days numbered 1-122
I'm more like to assume they didn't and nobody has tested it well enough to know it's broken lmao
idk i don't wanna read code /lh
https://github.com/FlyingTNT/StardewValleyMods/tree/main/LongerSeasons maybe linkoid will have fun picking it apart
The goal of having all the months is still achieved without the need for C#
well yeah, having a C# mod do it for you does eliminate the need for you to write C# i suppose. i did last say that before i knew the mod existed, though
Technically still true, it's just not you who has to write and maintain the C# portion
i think i'd just be distracted from april being day 94 "give it up for day 94"
This looks very through. It even patches SMAPI to fix SDate
harmony scares me
Patching SMAPI is the scariest thing I've heard today
The spookiest of patches
this is the same vein as "c++/CLI to create a stardew mod"
I mean at least the version number /lh
No, it's worse, it's basically a self-modifying program using assembly. (as in ASM)
"mom come pick me up i'm scared"
i should make a mod that patches SMAPI just to change the title on the console to a random one of the wrong names people call it in the help channels (smarpy, scampi, spami, etc.)
"spam"
snapi
A transpilier basically rewrites this part, modifying itself while it's running.
transpilers are also the most enjoyable kind of patch to write
True
that line doesnt need a tone indicator bc im being genuine
lalala i'm not listening, ya'll already screwed me for my pop quiz because i couldn't parse anything in c++ lalala /lh
(there's a tone indicator for being genuine, though)
true. i did forget about that one. i need to brush up on them
I just recently learned how to transpiling, and I concur, they are delightful!
Any leftover bitterness is from before I was using a code matcher
Common, this isn't that scary is it?
i write transpilers without a code matcher, so that is a little scary to me
wow is that a use case for Repeat
https://github.com/Spiderbuttons/ButtonsExtraBooks/blob/main/Button's Extra Books/Powers/ArtisanMachines.cs
this is still my scariest example i think bc this was early on before i realized i could just call a function instead of transpiling in a whole foreach loop (and also before i used codematcher too)
on one hand, i should really go back and clean this up one day. but on the other hand, if its not broken...
i had a really gnarly one in NPC Geometry that i couldn't get to work, which is when i learned i could just farm the nasty part out to C#
now that i think about it this might be the first transpiler i ever wrote, which makes the mess make a whole lot more sense
(if it ain't broke and smapi/vanilla hasn't broken it.....)
the two big milestones in writing transpilers: realizing you can outsource the nasty parts, and codematcher (or your own codematcher you made yourself)
I wrote a fun reverse transpilier one time too, I can't remember what it was for though...
I had to edit the stack itself though, so it was extra fun.
dont forget the milestone where u realise u were dum and refactor the transpiler back to a postfix 
Oh, there's this one where I had to crawl through an arbitrary type's constructor to find the default field initializers.
what if i wanna turn my postfixes into transpilers
jail /lh
lethalcom modding
i guess i could transfer what ive learned here to there pretty easily huh
Unity is a different beast, the only similarity is C# and harmony really.
(i have one mod for it but now i actually know how to use harmony and C# and stuff instead of fumbling my way through it. but thats also not relevant to this channel so)
C# and harmony is what i was missing! learned that pretty much entirely bc of stardew modding, had none experience beforehand in either
or close to none. i had one SDV mod for 1.5 that technically used harmony but really stupidly
Well there you go!
i'm excited but also scared when i finally get into c#
I think it's easier than C++ but I'm also more familiar with it
C# is not bad compared to some other languages you could start with
i...... am the most familiar with c++ so it's trying to wring my brain backwards
whats the matter? just use std::smapi
it's good to be aware of pointers and memory stuff even when u are in other lang
AT LEAST... because of ya'll, i understand args for c++ now >_>;; i was having the worst time because my comm college didn't help with that
how do i make prices of a certain item for example parsnip go up when it's not spring?
yeah starting with a language where you have to make sure you dont needlessly create objects or allocate memory is real important i think, even if other languages will clean up after you
would when patching work on that?
you can use Content Patcher for this, you can edit the objects data using content patcher when conditions to check the season (if you mean the price to buy it from a shop instead, you can edit the shop entry instead. i mean you can do both but yknow)
distracting myself from looking at my assignment "Price": 35, i don't remember what quality does to it though
but yeah a content patcher When checking for when the season is NOT spring and then conditionally editing the price in Data/Objects would work. are you familiar with content patcher cryztax?
This contains a good example for the patch itself, but look at the one that only edits the Description
just edit the Price instead of the Description, obviously
Then look here for the When condition stuff
i think you can get away with "Season": "Summer, Fall, Winter"
c#himkin 
either that or "Season |contains=Spring": false would work too i think
i almost instinctively put a comma after this brace, i'm doing fUNCTIONS dammit
Question, since I've seen a mod that hikes up the price when it's on season and marks it down when it's off season, you code the specific conditions for it, right?
yessuh
yeah, you choose the conditions for the patch
For setting prices on quality items, that still applies right? I read the coding for Reciprocate and I think it indicated some values.
quality has it's own modifier somewhere that escapes me
iirc quality just applies hardcoded multipliers on the Price depending on the quality level
That, too. I wanted to try incorporate quality modifiers in my items in my dialogue mod (I made Elliott give me gifts lol), and I just didn't wanna mess with it for my first mod.
uh it's --somewhere
how it would work in dialogue, unsure, you could probably do the $action since it uses game state queries
Yeah, it made sense to me in Reciprocate but for dialogue, I wasn't too sure how.
oh wait you can literally do it in a simpler form
$action AddItem <item ID> [count] [quality]
When triggering dialogue?
i wrote the whole skeleton for my assignment, my husband cannot yell at me now
outside of your {{i18n}} token prefferably
yeah you can put that action command in the dialogue itself and itll trigger after you click out of the dialogue
i see you selph
Ah 
that action command will still work you're fine
just not a different unrelated thing
yeah you just can't do qualities/flavored items/etc.
(but related to what avi said earlier is why selph brought it up)
oh will it ignore the optionals
item queries are just a different thing in general
A harmony reverse transpilier that modifies the stack to add and remove arguments from the function.
oh the link, yeah i rescind that yeet
the AddItem command will work for spawning an item with a specific amount and quality though so you're fine there CSS
why is it versioned 👀
Because the game was updated so I need to support multiple different versions
(And half the community refused to update their game)
So instead of just the id code, it's this then?
yeah ignore my previous statement of item query, i was thinking of something unrelated
I still need to learn how to properly do events (at a late time) but that'll probably pop out in creative writing, honestly
you still put the item ID there
me, constantly thinking of item queries because of button
i make no apologies
it's my one weakpoint, i just have a hard time parsing them sometimes
if you want Elliott to give you 3 iridium quality Raisins after talking to him, put $action AddItem (O)Raisins 3 4 somewhere in that dialogue
same way you'd do other dialogue commands like $b or $q or something
(on the topic of CSS's mod, my discord was begging me to gaslight ask you to have an expansive mod)
i told them you were in law school so they all sobbed a lil and told ME, to tell YOU, good luck we wish you well
"Hello,Junimo.#$b#Raisins?$action AddItem (O)Raisins 3 4",
Wha
i think you need to separate it with a # from the rest of the dialogue still but someone who actually writes dialogue can correct me if im wrong
I just wing id codes and hope it works honestly, idk about quality modifiers 
the 4 in this case is the quality modifier, the 3 is the count
Oh yeah, $e !
"WipedMemory": "I can't believe you.#$action AddMail Current EdelWipe received",
0 is normal, 1 is silver, 2 is gold, and 4 is iridium
Oh damn, it's still in the ii18n 
What did they want btw? I'm thirsty for ideas (and sleep)
no don't let them gaslight you
HAHA..... uh.....
sleep do sound good
Respectfully, thank you, but pass 
* | TODO. Stands for "quickResponseDelineator".
so uh. whats the deal with quickResponseDelineator in dialogue commands
/? or \\
no the * is a special token for dialogue like # or % but that all it says on the wiki
...delineator.... when do i ever use it in dialogue
It's one of the weird ones
Ignore it
Don't use it
That’s simple
I'MMA DO IT
When I wrote out the event commands wiki page I was lazy
So some of the more complex commands I left with todos
For some godforsaken reason the dialogue parser parses strings from one string system to another string system
i thought the * was a form of escapetext
That particular one is an edge case in $y commands
Ignore it.
Look
It's been literally months since I've seen that code
Also, thank you Button. I'll try to search for this in uh... weeks..
i dont write dialogue anyway so ignoring it is easy, was mostly just curious
I still remember it
ah, a scorned memory, okay
was it you or casey that wrote that $y can be triggered indenitelly 
Probably casey
its a fun sounding word
i should edit the hospitaldeath minedeath since uh, i like to fiddle with event commands
(Why does the GitHub mobile app suck so much)
not enough devs at github
There’s no search in the file view????
(is that why they're making me code a git for my first c++ assignment? /lh)
almost a googlewhack
can you search for files larger than a certain size anyway. GitHub apparently doesn't like indexing files larger than, uh, a medium-quality PNG
Oh I thought we were talking about event commands
I can’t recall if I did dialogue commands or if that was someone else
actually i don't remember what the hospitaldeath/minedeath do, lemme just go test those real quick
Lose you items
And money deduction
or if it reroutes to the hospitaldeath cutscenes
Wrote a custom one for SVE 1.15 for more money loss
does it still do that if you do minedeath but the location the event takes place in is a safe passout spot?
(Specifically for one of their zones, not generally)
i'm checking both so we'll find out
okay after reading the github thing if i wanted to make the price of a parsnip go up during seasons that arent spring would it be something like action, edit data, price, and then a when condition in that order?
Off to bed I go
as long as the formatting/'indentation' is correct (that is the things that should be inside Fields are inside fields and not at the same level of indentation as the other stuff) the order doesnt matter
(Technically not indentation but brackets that do that)
thats why i put it in quotes!
Ah, I wouldn’t consider that formatting 
doing this instead of listening to my lesson is great
its not technically correct but i tend to use it as a shorthand f or explaining object heirarchy and whatnot and it usually gets the point across enough if we're looking at the same example
plus it helps remind people to indent their stuff nicely when they post their jsons
I propose a JSON extension - JSONW, or JSON with whitespace - to remove confusion once and for all
isnt that kinda yaml
does json5 do that?
darn they stole my idea
yaml enforces specific spacing. not tabs, spacing
(well. it should anyway. technically a parser can ignore it ig)
(actually it might not be technically the yaml standard but in most cases where ive used yaml it has been enforced so. its stuck in my mind as enforced, which is probably the point)
strikes me as learning the wrong lesson from make
i dont think i know enough about make to understand (ive only ever needed to do make stuff for uni)
make recipe lines must start with a tab character
i guess i just never noticed 
Cheeto-related question, how do y'all deal with being incentivized with fixing mod bugs or typos when you feel like you want to but lack motivation or will for it
im not a cheeto so i will stay silent
Why no cheeto role^
you're basically cheeto incognito
(i like blue better than orange and purple better than all)
Cheeto related and cheeto incognito question*
i feel motivated to fix bugs
i dont feel motivated to deal with nexus mod page management ui
mod bugs/typos in my own mod? i fix that immediately
(but also the answer for me is the thought of someone having their mod/playthrough messed up by a b ug i introduced is worse than the effort of fixing it (most of the time). and also if someone in this channel especially came to me like "hey you have a bug here" i dont think i would ever feel more shame (personally) than having to say "oh yeah i know i just dont wanna fix it")
typically i have an easy time working on bugs and other minor fixes. it's new features or upgrades (or pushing out a release with the fixes i've been working on) that give me trouble
I usually think to myself "would this be something that can happen to me and bother me about it"
(assuming it was a bug that actually had consequences)
(all of my bugs have consequences and i have paid the price)
My current dilemma with my own is that it's so minor that I don't think it's that urgent but a user was like "uh hey... thought I'd bring it to your attention" and now I'm stuck
i've mentioned it before but i do triage on bug reports (and "bug" reports), and only critical ones get me to change my release "schedule"
i know of my own bugs, but i post it on my "bugs" page so i don't have to hear the outcry
if its super minor or fixable in like 5 minutes or less than i usually just think "ill add this to my TODO" list, which i keep with my other files, and then when i open my IDE with my todo list i then think "well im already here... might as well fix it"
e.g. in Lacey's 1.0.0 release the music didn't work if you had SAAT installed (extremely common in 1.5), so i had to put out 1.0.1 very fast
I don't think I get bothered by typos too much
How about mod compats tho? I feel like I'm more inclined on dialogue (and events) and I do want to be considerate with other existing mods when I make future updates. Do y'all just amicably message the mod author about it, too?
Write a GitHub workflow to deploy your mod straight to Nexus.
oh if someone brings up an incompat, it's most likely my fault (like how my wedding code was defaulting) then i immediately push an update because i feel dumb
Might be good use of nexus premium
i wish it were that simple. i care too much, so my nexus description is bespoke and different from the git repo's README.md
I feel bad overwriting other people's work but I mean they did download it so something's gonna get patched
Then deploy it with the Nexus Readme.
well you made an elliott mod, that comes with the territory 
the only mod compatibility i actually ever care about personally is SVE and maybe Ridgeside, but only because I know that if they specifically dont work with them, i will get comments about it. otherwise i dont go out of my way to make my mods compatible with everything else
for a mod that patches a character like Elliott, i wouldnt even care about SVE or Ridgeside either, no point to it really. let the user decide which Elliott they want imo
The great thing about github workflows is you have the power of the borne again shell on a complete ubuntu operating system (or any other OS / docker container). You can literally do anything.
always best to write/code things in such a way that compatibility comes for free ofc, but in cases where you have to make something incompatible with something else to even make it at all, then... well, thats modding for ya. it shouldnt be the expectation that a user should be able to install every mod they see just fine and it'll all work
When I do end up making an event for him, I do wanna make it compatible for SVE (more cuz I wanna use it and I'm doing a SVE run and less about "Is this compatible w SVE or X expansion). So I'm also thinking how I'm gonna pull it off. Since his usual hangout place is the usual vanilla spots, hopefully I wouldn't have to be confused.
i side-eyed the 732 mod bug report, and it turned out i was the one in the wrong
SVE compatibility is easy (the one who's suffering)
if you really don't like an SVE event, you yoink the event code and location, and either silence it and make your own, or you use the same specs and rewrite it
then you'll be like me, with a trigger action as long as santa's naughty list /lh
can you guys point me out what's wrong with my farm map mod?
so apparently there's this invisible barrier blocking the front of the house, there's also one invisible block on the spouse patio, and on the backwoods entry:(
i checked all my layers in tiled and Ive deleted all the possible tiles that could make that invisible block but it's still there everytime I load my farm, idk what to do
Log Info: SMAPI 4.0.8 with SDV 1.6.8 build 24119 on Microsoft Windows 10 Pro, with 7 C# mods and 3 content packs.
the only blocks would be the buildings layer, and a restart would refresh the map if i'm... remembering correctly
can you throw your tmx here?
lemme pull up additionalfarms
haven't read that, skxhanjd
i see the data/farm edit, i'm reading over it, select tool isn't showing anything blocking the door though
man, what should I do to fix it?
...is it just because it's using the standard farm data/location?....
I'm still new to modding so I really suck at it atm
Can you install data layers and show ss of the accessable layer
its a custom farm
It'll tell you what tiles are not passable in the game
aye hol'up
Tile look ups with lookup anything is also useful
You can see if the tile is actually on building layer
lemme yeet it into my testbed
seems fine to me except that tree
oh- i lied there it is

what happens if i scoot the farmhouse one tile down, we'll find out
those tiles are impassable for me
(it works if i scoot it one down)
lemme go look at the spouse spot
alright fixed those two
where's the backwoods
greenhouse area is fine
i found the invisitile for the spouse area, i'm looking at backwoods right now
okay all fixed
here you go
woah 😍
you did well though! the invis-tiles get us all
IT WORKEDDD!! omagha I've been trying to figure it out all nighttt!n+_#(*(#(# THANK YOUUU, gawd I wanna kiss you with my hot mouth 😻😻
I'm feeling romanticalle
The upcoming Stardew Valley 1.6.9 now adds a new debug logWallAndFloorWarnings command, which logs warnings when it can't apply wallpaper or flooring.
In your case:
Couldn't apply floors for area ID 'FireredlilyBathroom' (tilesheet 'zzzzz_rokugin.exbathroomrenovation_add_bathroom_walls_and_floors' isn't a wall and floor tilesheet, expected 'walls_and_floors' or a tilesheet ID starting with 'x_WallsAndFloors_')
Also 1.6.9 will now recognize any tilesheet whose ID contains walls_and_floors as a walls-and-floors tilesheet:
Oogh I wanna work on code and stuff, but I gotta trade in my laptop in a few days and I don't wanna screw up files too much and forget to back them up 
Tbh my git commits annoy me because I do it so often
Could set a repo to private but idk if you do code in vscode/vs22
I haven’t done anything w GitHub yet besides make a mod idea post
I should probably get on that at some point
I use vscode tho yeah
Okay, I have a new question then, in response to the upcoming walls and floors change: In AdditionalWallpaperFlooring, it shows adding Walls and Floors as separate files.
How would one go about adding a new walls-and-floors tilesheet that includes both via CP?
Sorry if it's an obvious answer that I'm missing, it's late and my brain is struggling
There's two things:
- Your custom wallpaper/flooring has a tilesheet, which is set via
TextureinData/AdditionalWallpaperFlooring. - The floor tiles in the
.tmxfile are linked to a map tilesheet, which sets their default appearance.
The change in 1.6.9 applies to the latter: the game will only replace a floor tile's appearance with the flooring if the map tile is linked to a walls_and_floors tilesheet, regardless of what texture the flooring being applied has.
Okay, so if I add a tilesheet (based from wallpapers_3.png, for instance) and name it zFireredlily_walls-and-floors, and then add the second (flooring_3.png) as zFireredlily_walls-and-floors2, is that sufficient to not cause issues?
I'm mostly just trying to make sure that it won't look for both when there's only one type in the Tiled tilesheet, as long as I have them defined correctly in Data/AdditionalWallpaperFlooring
walls_and_floors with underscores, but otherwise yep. The game will recognize the tile as a valid floor tile, which can be swapped with a flooring.
Noted. Thank you for clarifying! ❤️
additional flooring and wallpapers
i only just noticed that nexus stripped the link to my BETAS documentation out of the description entirely bc i guess it might not like my domain name? which means all day i didnt realize my mod page for it has just said "Usage for Content Patcher Mod Authors: [literal blank space]" without a link to the correct docs at all 
"Nexus ate my documentation" sounds just a wee bit like "dog ate my homework"
only in this case it's reproducible
If I am reading this correctly, this finds the first int less than ten and changes it to ten?
for (int i = 0; i < codes.Count; i++)
{
if (startLooking)
{
if (codes[i].opcode == OpCodes.Ldc_I4_S && int.Parse(codes[i].operand.ToString()) < -10)
{
Monitor.Log($"got int!");
codes[i] = new CodeInstruction(OpCodes.Ldc_I4_S, 10);
break;
}
}
else if ((codes[i].operand as string) == "Strings\\StringsFromCSFiles:NPC.cs.3981")
{
Monitor.Log($"got string!");
startLooking = true;
}
}
so im making a mod where the prices of crops will increase when theyre out of season, how do i make it so that the increase applies to higher quality crops?
Less than negative ten, yes.
also is it possible to make it so that the price of a crop increases out of season and then increases more in winter? ex: 35g becomes 50g out of season then 65g in winter
Although the startLooking flag adds some behavior, it's only supposed to find the ldc_i4_s <int> if it happens after that NPC string is loaded. Kind of a sketchy transpiler tbh, the second condition doesn't even look at the opcode.
the modifier that quality places on crops is applied automatically. as for your second question, you can do that yeah, just do another patch with a different When condition for winter specifically
Thanks Focustense! I am not sure what the purpose of it is, might totally junk it.
Basically, it seems to just make the character turn to face the farmer... it's rather odd...
Really hard to say without knowing the context.
We don't even know what method it's patching.
(the next number less than ten is this here, base.faceTowardFarmerForPeriod(4000, 3, faceAway: false, who);
Sorry, it's patching NPC.tryToReceiveObject.
That 3 is the radius. This seems like a needless thing to have.
Yeah, I see that NPC is the only place where 3981 is referenced.
My guess would be that it's trying to target this line:
who.changeFriendship(spouseData?.SpouseGiftJealousyFriendshipChange ?? (-30), spouse);
Maybe it's succeeding, maybe not.
Once again, the code does not search for less than ten, it's less than negative ten. So the line you've identified is not the correct one.
It's a fragile-looking transpiler but might still be doing what it's supposed to (apparently, changing friendship loss to friendship gain).
I think it is working correctly then, and I will not smite it. I will later make it a much better transpiler, tho. But right now, I am solving the mysterious engagement causes crash when entering farmhouse mystery. The fix for that destroyed multiplayer compatability for rooms, so now, it is time to fix why. The fiancee was being set to spouse on engagement, which I believe to be the source of the error, because it would try to draw spouse rooms, and die.
so would i write it like "Price": 50 "When": <Season> (?)
you need to write it like the examples I linked you earlier on the content patcher documentation
So, I don't swan in often, was BFAV deprecated, or something?
I think it was. Also, you can make animals with CP now.
!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
There we go, there's a converter to swap BFAV mods over to CP
so ConPat just does it all now?
For the most part, yes
Wow. So, full disclosure, I have zero coding ability, I can just fenangle things that already exist. Would tghis need any tweaks to work if I made say, a private, non-distributed conversion of the mod it's meant to keep around?
PFM is essentially deprecated too so... it's a mod to add support for one deprecated mod to another deprecated mod, lol. Just do the whole thing in CP.
There's the rub. The mod I linked is mine, and it exists to move an abandoned mod off of a deprecated thing, lol. I don't know how to code.
Another good reason to go with CP then, since it doesn't involve writing any code.
Ooof, Neonify's fens may well and truly be dead then. THey're tangled up in several deprecated things
All of my NPCGiftTastes from mods suddenly broke. Now all gifts from mods are perceived as hateful. Has anyone encountered this?
I haven't, but by CGifttastes. is that a mod in iteself?
No, this is the file NPCGiftTastes.yu. Probably something went wrong because of some mod and someone also encountered this.
Did you manage to solve the spouse room issue? 🫀
@next plaza Hi, i have question about mod Space Core V.1.17 for SV 1.5.6 Mobile | Android
in file "SerializationPatcher.cs" it's patch & custom properties for Serialize & Deserialize only "Stardew Save Game"?
I understood what the problem was. This is all because of the MissingGifts mod - it does not correctly reflect the reaction of residents to objects from mods.
Yes, in part; the thing breaking the rooms was the thing preventing the just engaged and entered farmhouse crash... amworking on that now... Thanks so much for asking!!! ❤️
im making something that depends on the change of seasons, does that mean i put the 'when' or 'seasons' condition (?) under "fields"?
What are you making? Some things have a built-in condition field where you could use a GSQ to change it based on season (like NPC Appearance data) and some things you would need to use a "When" field to affect which patch CP applies.
basically a mod where the price of crops increase when the season has changed (ex: parsnips growing more expensive once it turns summer)
Other things (like a texture load) you can just use the CP {{Season}} token in the file name to change it.
also when i change the price of something do i also have to change the price of the higher quality items?
I am not very familiar with item data but I think that will be a "When" field to affect the CP patch.
You should be able to test this yourself but I think that the quality modifier on price is automatic so it should automatically increase your adjusted prices.
ahh i see ty ty :3
do i need to specify a *year if the affected thing doesn't rely on it?
in the when condition
No, if the only part that matters is the season, just include season
theoretically this should work right? i dont have actual amaranth in the game rn so i cant play test it
Are you writing that in Notepad?
yep
Risky
You should use console commands or get CJB Item Spawner so you can get yourself some amaranth to test
https://stardewvalleywiki.com/Modding:Console_commands
https://mateusaquino.github.io/stardewids/
Those two links will help you use console commands to get amaranth
However, now that I am actually reading what you wrote: no, that will not work.
damn did i do the formatting wrong 
The "When" field needs to be at the same level as "Fields", not inside it.
soo ill put it above "fields'?
im sorry if im asking really dumb questions im going into modding blind 
Have you been reading the Content Patcher documentation?
yes but i dont understand it very well
I'm also not sure if that's the right way to Target Amaranth. I am trying to check that now. As I said, not familiar with objects.
But yeah, you can move "When" above "Fields".
okay thank you 
Extremely expensive Amaranth!
You need to change "Amaranth" to "300" because that is its ID in game.
In your code, I mean
the travelling cart is trembling in fear 
ahh okay, i know how to do tha
When you are testing it in game, you will need to test it in one season, then trash it. Then change to the new season and then spawn another instance of it. If you try to just spawn one instance and check it in both seasons it will keep the data from whichever season you spawned it in.
I don't know what that means for gameplay - maybe Amaranth grown outdoors will never cost more in spring or summer because it was harvested in fall.
Yeah, I planted and harvested some amaranth, then waited until spring to sell it. It still sold for 150 in spring.
I don't know enough about objects to know if there is a way around that problem.
can someone help me out with an idea I have?
I have trouble finding out if ||Sebastian's frog tank after the 14 hearts events|| is considered an object by the game?
I'd love to add the possibility that if you interact with it, that there is a small chance it gives you the ||frog egg trinket|| but I have no idea where to start with this
- I put 1.6 things behind spoiler bars
!remind me in 8 hours to figure out exactly where the crash is happening by spamming ten million break points.
yep sure sure np (#6208544) (8h | <t:1724869955>)
Good nught loves! it's 3:30 here.... I need to sleep/
you could check in the event file how its added
ohh thanks!
I think the || sebastian frog || is a temporary sprite added in the location, and not an object
if its not working out you could alternatively make a furniture item out of the sprite and somehow let sebastian give it to the farmer and use that one? idk
hmm okay thank you, i dont know how to fix that so ill try to find a way
mhmhm i checked the unpacked event file for farmhouse and found the event and it is referred to as ||specificTemporarySprite sebastianFrogHouse|| but I dont see or understand if there is a part that explains how it is added after the event
oh thats it
||"9333220/e 9333219/O Sebastian/A sebastianFrog/t 620 1900": "distantBanjo/-1000 -1000/farmer 51 25 2 Sebastian 52 25 2/addWorldState sebastianFrog/addConversationTopic sebastianFrog2 6/specificTemporarySprite sebastianFrogHouse/skippable/makeInvisible 44 16 4 4/makeInvisible 50 25 4 4/viewport -100 -100 true unfreeze/pause 3000/faceDirection farmer 1/emote farmer 8/speak Sebastian "Our little friend's doing much better, see?"/pause 500/faceDirection farmer 2/pause 250/showFrame farmer 4/pause 800/showFrame Sebastian 51/playSound thudStep/pause 800/speak Sebastian "...but I don't think he can go back into the wild... he's not fast enough to avoid predators anymore.#$b#...So I set up this terrarium.#$b#He looks happy, doesn't he?$h"/pause 400/emote farmer 32/pause 500/showFrame farmer 0/pause 400/faceDirection farmer 1/speak Sebastian "I wonder if he'll get lonely, though..."/pause 500/faceDirection farmer 2/pause 600/quickQuestion #Why not start a 'frog sanctuary'?#He'll be fine.(break)speak Sebastian "...a haven for frogs and toads who can't make it on their own? Not a bad idea."(break)speak Sebastian "He does look pretty tough. But still, If I find another injured frog, I think he'd be better off with a friend."/faceDirection farmer 1/pause 1200/quickQuestion #Why do you like frogs so much, anyway?#I don't really want this in the house#I'm glad you've found a new hobby(break)speak Sebastian "Hmm... Well, I like going out in the rain. So I guess I encountered a lot of frogs that way.#$b#I ended up feeling a common bond with the little guys."\faceDirection farmer 1 true\emote farmer 20(break)emote Sebastian 12\showFrame Sebastian 12\pause 400\speak Sebastian "Well it's not up for debate. This is my corner of the house and I can do what I want with it."\showFrame Sebastian 0(break)speak Sebastian "Yeah, it'll be fun. I spend a lot of time on the computer, so it's nice to have some real, physical hobbies.#$b#I might even try my hand at some frog breeding!$h"\faceDirection farmer 1 true\emote farmer 16\pause 500/faceDirection farmer 2/showFrame farmer 0/pause 1000/playSound croak/specificTemporarySprite frogJump/pause 250/playSound slimeHit/pause 250/showFrame farmer 94/jump Sebastian/pause 250/playSound slimeHit/pause 500/playSound slimeHit/pause 250/fade/viewport -1000 -1000/pause 600/message "Today our family grew a little larger..."/pause 1000/playSound slimeHit/pause 500/playSound slimeHit/pause 500/playSound slimeHit/pause 1000/message "...and a lot slimier!"/pause 1000/end"
}||
as feared it is just a temporary sprite
lmao
so its not an actual "thing" ingame
I mean me having no knowledge about things that are more complex than AT textures and replace a texture with CP, and seeing your answer - this seems to be way above my abilities
that was me once too
then i made a wholeass npc and am turning it into an expansion rn
ah the good ol days
hm...wheres the sprite located again...i vaguele remember seeing it somewhere
Well, at some point it becomes part of his spouse room so there's potential there to make a map action to give you the froggie
I mean if you can direct me in the direction (can you word it like this? lol) I would appreciate that a lot to see if I can make this work somehow!
that is true! didnt think of that
where are the spouse room data stores in the unpacked files?
if you happen to know that^^
ah! farmhouse marriage tmx
I think I found it
I am not sure how the tank gets added to his spouse room, because it's not in spouseRooms.tmx to start with
huh
are we remembering that wrong
oh aparently it replaces the table at some point, hm
probs after you watched the event
Ah there's an addWorldState command in the event. That might be it.
but...you need the event for marriage, no?
That means it'll be hardcoded, I think.
i admit i never married him lol
Not necessarily the end of the world though since you'd just patch the map after the event, I think.
Though whether or not you can actually make a map action that complex...I have no idea.
not gonna lie, I just downloaded Tiled, opened the farmhouse_marriage1.tmx and farmhouse_marriage2.tmx, looked at it, looked at loosesprites, cursors, then at the event data and

If my thinking is in any way on track, doing this shouldn't require Tiled
I think actually editing the map to add a map action will just be a case of having a conditional CP patch that waits until you have seen the froggy house event and then patches the farmhouse (though I can foresee problems if anyone is using a mod that moves spouse rooms around, but we will cross that bridge if we come to it). The obstacle is in finding a map action that could even add the trinket at all, let alone have any percentage-value on it.
I also love how unhinged this spritesheet is
do you think I could use this property maybe for the tiles that the ||frog enclosure|| is standing in and combine it with (if I can even add a precondition to a tile) "check preconditions - has seen event" and modify the tile to include an invisible starting gift containing the ||frog egg||?
If I am correctly understanding what you're asking, no. The starter gift is hardcoded to appear at the start of the game so if you tried adding a frog trinket to it they would get it on their first day.
lmao
it is weird that I cannot seem to find an action that gives the player an item
Doesn't SpaceCore have tile actions that can do trigger actions?
Okay, I got a map (tile?) action going
Now to investigate mods that add additional ones. So excellent timing, thank you rokugin xD
It does indeed have that
Time to figure out how to write a trigger action that will have a chance of giving the trinket
I have no idea how trinkets work.
They're just items
Nice, Pathos answered regarding the walls and floors issue and it looks like there should be some solutions in 1.6.9
Yeah!
Though, I'm on it so I'm guessing it'll be in one of the upcoming nightly builds
Makes sense if it was changed because of your report
Ok let's see if I got my trigger action and stuff correct
I'm terrible at discord search, but I didn't find anyone else with a similar problem before, technically would have been an issue since 1.5 lol
i am back on the grind of adding Constance to festivals and I am sitting here like....man i am so glad i only tried animating her in one of the festivals cuz idk what i am doing
Though Lumina said they had somewhat of a similar issue, theirs was related to missing some map properties
For the wallpaper reno thing? I also couldn't find it anything.
It works!
However, the player can just spam-click it to get more than one as long as they do it on the same day.
Maybe?
what are you currently doing, there's probably a way to fix that
Camiska had an idea to make it so that once you have Sebastian's frog tank in his spouse room you could interact with it for a small chance to get the frog egg. I have achieved that but don't currently have a way to prevent the spam-clicking giving them more as long as they haven't slept. https://smapi.io/json/content-patcher/3536491d67054e1088ed6f47938ffef6
@verbal narwhal pinging you so you can see what I have so far
oh wow!!!
I think it should also be possible to remove or change the tile action after getting the frog egg so that you could make it say "I already have one frog egg, I shouldn't be greedy" or something as well.
Although again, I wouldn't know how to do that on the same day.
Give me a second
@final arch: check rsv fish issue (12h ago)
I love this
thank you so much q.q
this is so incredibly kind of you
if you want an idea that I - someone with no knowledge of modding and triggering actions had and that I am not qualified to say because the chance is high that it is either completly unrelated - could "Trigger": "DayStarted" help with preventing the spam clicking and make the chance depending on the day?
I'd do this so the player can only get one per day:
https://smapi.io/json/content-patcher/afcdeaab9e07413ca0773e2f726d6639
Trigger has to be Manual for the SpaceCore tile action thing
It is
Ah, good idea to use the mail flags. I've been doing renovation mail flag stuff and those are only added at the end of the day (or start of the next, whatever) so I think I got muddled about how fast they could be applied and then checked. My idea was that the player should only be able to get one ever. Which should work using your edit if I took out the reset, I think.
I can see your thinking, but it has to be "Trigger": "Manual", in order for the click on the tile action to be able to try to make the action happen. You could add something about checking the day to the condition as well if you wanted to though, so that it only had the chance on some days.
Yup that'd work, you could actually remove the If <query> ## part and just add the !PLAYER_HAS_MAIL query to the condition field instead
though if you want the chance to be per day instead of per each time you click on the tile then i'd probably use SYNCED_RANDOM day GiveFrog 0.005 @addDailyLuck instead of RANDOM 0.005 @addDailyLuck since random would reroll with each interaction
Sorry, I was responding to camiska in that regard, not as proficient with discord on mobile
Probably easier than just making the chance really, really, really tiny lol
Okay, EnderTedi's version worked perfectly, yay!
oh wow
I have no clue about the !PLAYER_HAS_MAIL query and what that is or does
but I will try to understand this
ive been trying to figure this out for a while but im stumped, i made it so that a crop's price increases for different seasons (ex: amaranth become 205g in summer and spring and 230g in winter) but when abagaianye playtested it (thank you so much btw) the amaranth that was grown and harvested in fall had the same sell price once the season went to winter / spring or summer. does anyone know what could fix this?
does !PLAYER_HAS_MAIL come from spacecore specifically?
The game uses a thing called mail flags to track some changes (for example, if the Mountain landslide has been cleared yet). EnderTedi made use of that to add the !PLAYER_HAS_MAIL query to the trigger action conditions so that when the player clicks on the frog tank, the game checks to see if the player has a mail flag a mail flag called GotFrogEggToday. It also checks if the random probability check comes back true. If both of those things pass (as in the player doesn't have the mail flag GotFrogEggToday AND the random probability check returned true) then it will run the actions - one of which then adds the mail flag GotFrogEggToday to the player so that any time the player clicks on the tank after that, the !PLAYER_HAS_MAIL query will see that the player does have the mail flag and won't let the actions run anymore.
Nope, it's one of the vanilla game state queries: https://stardewvalleywiki.com/Modding:Game_state_queries#Player_info_.26_progress
thank you so so much for taking your time and explaining this to me
Pretty sure you would need C# to fix a crops price after you harvest it
Object data is not refreshed ever again, unless it's like a newly spawned item anyways
You're welcome! Something to note is the exclamation mark in front of PLAYER_HAS_MAIL means the query is checking that the player does NOT have the flag. If you wanted to do something only if the player does have a flag, you would not use the exclamation mark.
and the reason you need spacecore for this to work is so that a tile can trigger the addItem action?
Yep
Though I thought I had heard something about that becoming a SMAPI thing eventually
Or CP, whatever
Part of the vanilla pipeline
The frog one?
Yeah
Are you trying to modify it separately or something?
I want to swap it to a message once the frog egg has been received (or at this point just removing it would be nice too)
Maybe make the whole block based on the flag condition
And have a separate block for doing the message based on the opposite condition
{
"LogName": "Add tile action to the tank once Seb has the frog",
"Action": "EditMap",
"Target": "Maps/spouseRooms",
"When": {
"HasSeenEvent": "9333220",
"HasFlag |contains=GotFrogEgg": "false"
},
"Update": "OnTimeChange",
"MapTiles": [
{
"Position": { "X": 1, "Y": 16 },
"Layer": "Buildings",
"SetProperties": {
"Action": "spacechase0.SpaceCore_TriggerAction GiveFrog"
}
}
]
},
{
"LogName": "Remove tile action!",
"Action": "EditMap",
"Target": "Maps/spouseRooms",
"When": {
"HasSeenEvent": "9333220",
"HasFlag": "GotFrogEgg"
},
"Update": "OnTimeChange, OnLocationChange",
"MapTiles": [
{
"Position": { "X": 1, "Y": 16 },
"Layer": "Buildings",
"SetProperties": {
"Action": null
}
}
]
},
I have tried without the OnLocationChange for the update rate as well
`using StardewValley.Menus;
string message = "There is something in the terrarium...";
Game1.activeClickableMenu = new DialogueBox(message);`
would you use this kind of command for that?
Nope because that's C#

https://stardewvalleywiki.com/Modding:Maps#Action
Scroll down to Action Message
But as for getting rid of the property
I wonder if it's because it's through SpaceCore that there's an issue getting rid of it
I am not sure. When I do a patch export of spouseRooms it shows the correct thing
What's it doing that is indicating that it hasn't changed?
I can still click on it (though nothing happens because it has no more frog eggs to give) and LookupAnything shows this
You have time set up to move while indoors?
Yup
I now can't even create a new tile property on another tile so I suspect PEBCAK lol
Oh I know
It's probably because spouse rooms aren't patch on time changed
Like you need to add those actions to the farmhouse map and not the spouse room
Hmm
If I'm right it means it wouldn't be multi-spouse friendly
How did I manage to patch the spouse room in the first place?
The initial patch would work because that's applied before the room is put on the map
Ahh
But then the room isn't updated again
I see
Ok so I need to add a buildings tile to the farmhouse somehow and then add the property to that
Ok that should be possible with MapTiles
But I had better go eat first
Thank you!!!
I have no idea what is possible with spacecore and what is possible with content patcher alone, but would superimposing (English isn’t my first language but I mean “placing over”) a new custom object that has a transparent/invisible sprite over the frog terrarium a possibility to include the possibility to interact with it - and then the whole thing with probability to get the egg and a text box?
No idea if this makes any sense at all but maybe that could help and circumvent the need for spacecore?
No matter what you'll have to use SpaceCore
It's not a built in feature of CP, not sure if it will be
Once again, I can't use discord search for shit to find where I thought someone said it might be eventually
So for now, it's just a SC feature
As for the other idea, you can use CP to place whatever kind of Buildings tile you want anywhere on a map and then put tile actions on that spot
The problem is going to be making sure that they don't stick around when you don't want them
It's also kind of a high specificity patch, so if it's a mod you want to release then people will have to know that it won't work with multiple spouses if the specific location chosen isn't Sebastian's room
Though it may be possible to make that configurable, it's a bit of a lot to ask users to find coordinates though
Is there a guide or reference page to see the features, possibilities and limitations of the different frameworks? Currently I’m using the modders guide on the sdv wiki and GitHub pages of the various frameworks/mods but with my understanding which is rudimentary at best, I am struggling
there are so many different random features of various frameworks that its not possible to have it be that specific
especially spacecore
!startmodding
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.
https://stardewmodding.wiki.gg/wiki/Main_Page
The modding wiki has a few updated specific guides, but there's nothing that'll give you a really detailed walkthrough of every framework
list of framework mods (first link)
like the best way is just to ask here if anyone has ideas for how to do something. which you are doing
Thank you both!!
Looking at other mods that people have released is a good way as well, as long as it's content pack based you'll be able to see what they're doing just by downloading the mod and opening the files
My favorite is just finding whatever documentation I can, finding any mods that do similar stuff and just experimenting
Mhmm and every mod including a .dll file is C sharp based, right?
yea
Basically, though some like SVE use multiple methods
but some have multiple components, C# and json
May I ask you two if you have prior experience in coding and programming before making mods?
I had never used json before this, but make relatively bad indie games in Unity lol
i had some intro compsci classes in high school (like literally, making basic webpages and scratch games), but I dont program w/ C#, and using json/framework mods is pretty simple to pick up without experience
hey 6480 i thought you might enjoy seeing someone ask about "croptopia" (they edited it, but i had a sensible chuckle about it) #modded-stardew message
I have no formal education in programming, everything I've learned about Harmony (advanced C# stuff) has been from this community
i've just been modding sdv for like 5 years so i know a lot of info thats very relevant to this scene but literally nothing else 😂
(I have some formal training, but relatively little and learned most of the programming concepts I know on my own.)
I did take a formal algorithms course
And a formal assembly course
I think having some background in programming is helpful, but a lot of people come here without any and make great stuff, like anything worth doing it just takes time
a tiny farm good for a lesbian (●’3)♡(ε`●)
https://www.nexusmods.com/stardewvalley/mods/27352?tab=description
huges thanks to you bros @velvet narwhal and @lucid iron for helping me fix it:33
can you guys help me post this on #mod-showcase perchance 👉👈
thank you all!
Hi, what do you want the description to be? 
Also, it looks so cozy
great work!
thank youu!! that means so much time:))
just the cool text over the link pls:3
Is it possible to have functional chairs on a custom building exterior?
I expect no
Possible, though a bit more complex then just IsChair: true https://stardewvalleywiki.com/Modding:Maps#Sitting_on_non-furniture_chairs
You'd need to edit Data\ChairTiles, but it doesn't specify anywhere it's indoors only
yeah that's what I'm trying to figure out
I expected you were talking about farm buildings (Data/Buildings)
i'm using hxw tilesheets which has the chairtiles set as the exterior texture for a building
if it's just a map building then yeah it's possible
it doesn't seem to work that way though
Hi
I was scrolling through Nexus, and realid that a lot of mods have really nice cover photos
How could I make one thats similar to theirs?
yeah farm buildings
https://www.nexusmods.com/stardewvalley/mods/27337 https://www.nexusmods.com/stardewvalley/mods/27305
These all have super pretty cover photos
then no, not yet (in base game or any framework I can think of)
ok, I thought that might be the case
Most likely handmade, in photoshop or something
Are you looking for advice that's more specific than "use image editing software?"
#making-mods-art can give art advice
Just from seeing 2 of them, they use the frame
Thanks!
Something Something Bundle Bundles
Right, Buildings tile time
Pikmins!
https://streamable.com/tlzf1w
Watch "Stardew Valley 1.6.8 - running SMAPI 4.0.8 with 29 mods 2024-08-28 10-52-03" on Streamable.
omg they're so cute mangupix !
hey guys.... i could have sworn i had this fixed already but im getting more text with the yellow shadow. id like to change it to match the dark background. anyone kno a quick bit of code i can add to my content json to fix it?
most text stuff is hard-coded unfortunately... BUT
https://www.nexusmods.com/stardewvalley/mods/14525
this framework lets you change some of those parts c:
cool, i will take a look, thanks
ah i already have this downloaded
so what am i looking for in here? cuz id like to add something to my own mod that does it
someone already helped me with the other text. i thought it fixed all of it but i guess i was wrong
Hardcoded means you will need to write C# to change it
Do you already have a C# element to your UI mod?
i think so
https://github.com/KhloeLeclair/StardewMods/blob/main/ThemeManager/author-guide.md
this is the author guide for the mod I linked you, located towards the end of the mod description
Khloe's experiments with Stardew Valley modding. Contribute to KhloeLeclair/StardewMods development by creating an account on GitHub.
ahh i found some of the code i need
im noob at these things so i need a little help.
im trying to use my own font for sv (i need it because i'm translating the game) but it keeps looking for a "xnb"
file. why?
SMAPI LOG: "https://smapi.io/log/83b9740e82b84a2d9c92c2184fbaa1e7"
MY JSON:"(attached)"
Log Info: SMAPI 4.0.8 with SDV 1.6.8 build 24119 on Microsoft Windows 11 Home, with 25 C# mods and 23 content packs.
Suggested fixes: One or more mods are out of date, consider updating them


hallo avi i hopr ur day is going well
I'm about to take the 30min drive to uni to suffer, it's goin 
The code where you load your font files is incorrect, according to the example on the wiki. You have file extensions (.fnt and .png) inside your Targets, which you should not do. Your Target for the font file is "Fonts/{{ModId}}/latvian_bold.fnt" but it should be "Fonts/{{ModId}}/latvian_bold". Your Target for the .png texture file is "Fonts/{{ModId}}/latvian_bold_0.png" but it should be "Fonts/{{ModId}}/latvian_bold_0".
Also, the reason that it's looking for an .xnb file is that the game uses .xnb files. But the reason that you shouldn't be turning your mod into an .xnb file is because Content Patcher does that for you. So when the error log says The content file was not found. ---> FileNotFoundException: Content\Fonts/mickthechaos.latviantranslation/latvian_bold.xnb it doesn't mean that you should try to give it an .xnb file instead, it means that you didn't write your Content Patcher mod correctly.
What have I done wrong? Because now it's even more weird. It says ---> FileNotFoundException: Could not find file 'C:\Games\GOG Games\Stardew.Valley.v1.6.8\Content\Fonts\latvian_bold.png.xnb'
What have you changed?
This
Can you show me the entire file please?
the json?
Yes
teehee i fell asleep and didnt continue on my festival posistions 
oops wrong emote
that looks about right void ugiuag did you rest well at least :)
tysm!!!! i found what to do and i got it to work. it was so simple ;o;
hell yeah im glad its working for you ralo

i think? At least I dont feel mushy or anything
if you make your theme Theme Manager compatible, people who have Theme Manager can select your theme from the menu in GMCM too
oh yeah. do i need to have ppl download that mod inorder for mine to work?
yes
required now since you changed stuff with theme manager
you can make Theme Manager a required download when you upload your mod
i didnt changed it with it. i just made a theme json and added the code it told me to
i just added this as a theme.json
Thanks. I have to read through the wiki page now to see if I can understand what is going wrong.
Ofcourse! Take your time. :)
im just gonna remove that mod and see if it works without it which i think it will
yeah it still works
but yeah glad i got it fixed cuz it was super bad looking with the yellow shadow
I don’t understand your question (please ping reply, I’m not actively checking this channel while I’m at work)
did you make sure to completely remove Theme Manager from your mods folder
because Patches is from Theme Manager
yes
odd because your stuff shouldve worked in the first place
well, if it works it works 
Can you please send me the latvian_bold.fnt file so I can check inside it? You can DM it to me if you would prefer. Edit: In case anyone comes looking for this in future and wants to know if we got it working the answer is yes! The problem was that the pages section inside the .fnt file had file="latvian_bold.png" when it needed to be file="latvian_bold" instead.
sorry, i see your code "SerializerPatcher.cs" in Space Core Mod 1.17.1, SV Version 1.5.6
Is it made for Serializer Custom Field for "Save Game"?
It’s for fields using SpaceCore’s API’s RegisterCustomProperty method. Those can attach to any object that is saved (like Farmer, Object, etc.) not just SaveGame specifically
ah, ok so it's mean made for custom field & Load & Save Only Save Game System?
If I’m understanding you correctly, yes. There’s also code patching SaveGame that handles new custom types
ok i got it, because now on mobile it's not work
such as mod Rsv it's have custom Special Items
and add field "hasRiveraSecret" to class FarmerTeam
i will try fix it, thanks you 🙏
your use case might be doable with just vanilla mail flags
Ahhhh map stuff always gets me with its bizarre inconsistency between tileset names and filenames.
hmmm
currently wondering how i do the festival positions for spirits eve to make a sve compat for y1 and y2
its not in the template im suing
Run the game with SVE?
oh no i mean for the festival code
Oh do you mean how to write it?
i have spots but i meant as in i just got a general sve compat for it rn and not for the two variants(and I know y2 map will have her in the void lol)
I got this for now
{
"LogName": "Spirit's Eve - SVE compat",
"Action": "EditData",
"When": { "HasMod: |contains=FlashShifter.StardewValleyExpandedCP": true},
"Target": "Data/Festivals/fall27",
"TextOperations":
[
//SetUp (SVE) - SVE changes the maps from year to year but I don't know the specifics, so you may need more than one set of positions for SVE compat.
{
"Operation": "Append",
"Target": ["Entries", "Set-Up_additionalCharacters"],
"Value": "TheFishmonger 12 55 down",
"Delimiter": "/"
},
],
},
(bless tia for the template)
For the year 2 stuff I think it's just "Set-Up_additionalCharacters_Y2"
so i can jsut copypaste, change positions and add the _Y2?
that would be really swell
I am trying to find an existing mod to check
Ah ha, finally found the RSV stuff
"Target": ["Entries", "Set-Up_additionalCharacters_y2"],
Yup, you'd just add it under your existing "Operation": "Append", block
wait, so not a whole new block?
?
{
"LogName": "Spirit's Eve - SVE compat Y1",
"Action": "EditData",
"When": { "HasMod: |contains=FlashShifter.StardewValleyExpandedCP": true},
"Target": "Data/Festivals/fall27",
"TextOperations":
[
//SetUp (SVE) - SVE changes the maps from year to year but I don't know the specifics, so you may need more than one set of positions for SVE compat.
{
"Operation": "Append",
"Target": ["Entries", "Set-Up_additionalCharacters"],
"Value": "TheFishmonger 12 55 down",
"Delimiter": "/"
},
],
},
{
"LogName": "Spirit's Eve - SVE compat Y2",
"Action": "EditData",
"When": { "HasMod: |contains=FlashShifter.StardewValleyExpandedCP": true},
"Target": "Data/Festivals/fall27",
"TextOperations":
[
//SetUp (SVE) - SVE changes the maps from year to year but I don't know the specifics, so you may need more than one set of positions for SVE compat.
{
"Operation": "Append",
"Target": ["Entries", "Set-Up_additionalCharacters_y2"],
"Value": "TheFishmonger 33 57 down",
"Delimiter": "/"
},
],
},
No, not a whole new block
RSV weirdly does have their Spirits Eve stuff in separate Action blocks but their Luau stuff in one Action block. I don't see any reason to use separate ones unless you need to have some other conditions differing between the odd and even years.
hmm
{
"LogName": "Spirit's Eve - SVE compat Y1",
"Action": "EditData",
"When": { "HasMod: |contains=FlashShifter.StardewValleyExpandedCP": true},
"Target": "Data/Festivals/fall27",
"TextOperations":
[
{
"Operation": "Append",
"Target": ["Entries", "Set-Up_additionalCharacters"],
"Value": "TheFishmonger 12 55 down",
"Delimiter": "/"
},
{
"Operation": "Append",
"Target": ["Entries", "Set-Up_additionalCharacters_y2"],
"Value": "TheFishmonger 33 57 down",
"Delimiter": "/"
},
],
},
Yup
No worries
@rancid temple The FarmHouse does not like me patching it
Just hanging out with the frog in what is meant to be Seb's spouse room
On the bright side, I can change it to a message like intended now
Farmer team doesn’t get serialized so that’s why
It probably doesn’t work on PC either
im not sure, but i will check it again
maybe you jsut need to patch the exact spot where the frog enclosure is
huh, ok thats weird
Behold! Hacky nonsense! (This is terrible - I patched the entire spouseRoom over the FarmHouse. It's SO incompatible with anything.)
theres some mod changing shanes room to look nicer, maybe that'll hold the answer on how to do it?
Does it do it over time?
Or is it just a fix right from the beginning of the existence of his spouse room?
hm, i think its just a fix overall
Then unfortunately that is not useful to me, since I already know how to patch a spouse room. The problem is wanting to patch after the spouse room has been placed - roku pointed out that changing the spouseRooms.tmx after the spouse room has been added to the farmhouse doesn't actually update the room in the farmhouse.
Hence my approach of patching the farmhouse itself, which then yeeted the spouse room entirely lol
my spouseroom is hacky too
It's potentially not a huge deal since this was never going to be compatible with multi-spouses anyway (at least, not any way that I could think of and implement). @verbal narwhal since it's for you, what do you think?
Known bug
"just don't touch yknow THIS CORNER :')"
Check the smapi github
@final arch see here
I have no idea what I am meant to be looking for. The bug? A fix? Just a general enjoyment of the SMAPI Github?
I also realise I have never visited the SMAPI Github before
ohh thank you! I personally do not play with anything that changes spouses rooms or multiple spouses, so I am very happy!!
does the random egg drop chance still work with the text box there?
and is there a message when an egg is dropped?
Bug is detailed there
I'd also love to see your file/code of this, if that is ok for you!
I would love to undestand your process behind this
Oh, I am going to zip it all up and send it to you, don't worry!
thanks so much!!!!
There is not a message when the egg is received, I'm sorry. I don't know how to do that.
Don’t worry please
What you did is still way above my level and so incredibly kind of you to do!!!
You're very welcome :) Would you prefer to have one chance per day for it to give you the egg, or a much smaller chance but you can click on it as many times as you like to try to get it? (You'd still be able to click on it a bunch in the same day the first way, but if you didn't get it the first time you won't get it any other time that day either.)
One chance per day pls!! 
Okay, here you go! The chance is currently set at 5% per day but you can adjust that if you want. Let me know if you run into any problems or have any questions about it (including what any of it is for).
My first mod!
What should happen with the message is that 10 minutes after you received the Frog Egg it should switch from a hand icon to a magnifying glass icon and once you interact with it after that it will give you the message instead of giving you a chance for an egg anymore.
I forgot about the Issues part of Github and was scouring the .md files xD
what's the mod name for the pikminsssss, I'll give you my liver
I forgot to add a dependency on SpaceCore before so have this version instead.
My understanding is that SVE uses its Y1 map, vanilla Y2, SVE Y2, and vanilla Y2 on a four year rotation, but I haven't confirmed that myself.
Well that changes things.
Oh, I see. This is from the SVE fall27.json file. Sorry for leading you astray, Void! Thank you for the correction, Tia 
/*
If you're here as a modder working on compat, this is the festival that's changed the most.
*
EVEN SVE years map = EVEN VANILLA Years map
ODD SVE years will rotate between the existing two SVE maps.
Formerlly ODD year = 1, 5, 9, 13, 17, 21, 25, 29, 33, 37, 41, 45, 49, 53, 56, 59, 63, 67, 71, 75, 79, 83, 87, 91, 95, 99
Formerly EVEN year = 3, 7, 11, 15, 19, 23, 27, 31, 35, 39, 43, 47, 51, 55, 57, 61, 65, 69, 73, 77, 81, 85, 89, 93, 97
*/
(Tia I have finally been making some more progress on the nested questions stuff. There are so many possible variable changes to test.)
thanks, i hate it (i thought it just continued to use its own even-odd maps. i probably have to fix some shit now!)
Wait… this is your first mod?!!!
huh how would i do this then?
Hello
It's not my first work on anything mod-related, but it is the first "full" thing that I have done. Since I started modding in May I've just been working on a new NPC and that's super intensive so I still have months of work left on her.
confusion.jpeg
Oh wow, I cannot believe you put your time into this
Thank you so so much q.q
For a random person on discord (me)
❤️❤️❤️
time to open stardrop and update my mods
I think means that you can have the y2 setup stay the same but you'd need different patches for the non-y2 because they are going to have to be one for year 1,5, 9 and another for 3, 7, 11 etc
And I’m excited to see your NPC whenever she’s ready!!
ew....I jsut keep it as is and hope for the best when testing
Does anyone know if the map property NoSpawn all will disable farm type manager enabled spawns?
Thank you! I have a thread for her if you would like to peep at her https://discord.com/channels/137344473976799233/1256552123202539561 (no pressure though :))
stardrop pls...I just wanna test my mod...
i dont wnna manually update 50-60 mods jsut so i can test my shit
you can click the links in the smapi window
I know. im using stardrop and can click there too but i dont wanna click 60 times then unpack 60 things and move these 60 things is the thing
hmmm
ah finally, at least i am donw to the typical 20 offenders
7zip can unpack everything
If that is what you are talking about?
theres a few mods that never want to update for some reason and I always gotta do them by hand
just copy and paste all the links and make a script to open them all up at the same time.
Unpacking multiple zips?
lol
no thats not what I am talking bout
Ok sorry then :D
i am using a mod manager
and it likes to go "hurr nexus connection issues no install for u"
Mhm I didn’t trust updating with stardrop so far, I only use it for profiles but update things manually 🙈
do you have nexus premium it really helps. Keep posting mods and they will gift it.
30k unique dls for forever premium, no?
I was told that with Stardrop, you just have to click "Mod Manager Download" on the mod page and then Stardrop will handle the rest of it. (I am not talking about the Update All button inside Stardrop itself which requires Nexus Premium)
No, but that should be fairly easy to test, right?
Yeah I'm already adding it to all the maps I made.
Eating at the moment but there was something I wanted to try, I'll let you know when I've had a chance
I have nexus premium, thats exactly the issue i am talking bout. i use stardrop to auto-update all but it keeps telling me theres connection issues so i gotta do it manually afterall
Issue with your API key?
I didn't know it had the feature

