#making-mods-general
1 messages ยท Page 481 of 1
okay so do I do the HasMod check for CMCT or for Free Love in the include?
wait my when syntax is off i think
Yes it is
The Include patch (so not this one) should have the HasMod for both mods if you're not doing a hard dependency on CMCT
Ahhh okay! thank you so much! 
"HasMod: |contains=aedenthorn.FreeLove, Spiderbuttons.CMCT": true, would it work like this?
No, you need to do two separate checks for an AND. That's doing an OR check.
"HasMod |contains=aedenthorn.FreeLove": true,
"HasMod |contains=Spiderbuttons.CMCT": true
Okay, got it! Thanks a ton!!
You're welcome :)
@outer glacier ^
Wh...why in the world has my mod decided that my "EditData" for "Data/Events/Farm" just... doesn't exist/work? When i try to debug the events there, it just says that the event doesn't even exist
Did you forget to save? Put it in an Include but then forget your Include patch?
No, I've saved and its together in the same file as all the other events but those work???
What's your patch summary say?
Lemme get a proper one but it just says that the event im calling on doesn't exist and that's it 
Ah my bad, I googled but had too many thoughts going on cus the current patch was a desperate attempt one so i wanted fix that before I actually sent a proper one ^^ Gimme 2 sec
Yeah okay it seems to just totally be blind to the Farm events
Im not sure what the best way to show all this info is but like, all the other even changes are there but not the Farm one
Look at the actual line for the events to see if it's telling you that a condition hasn't been met or something
If there are no lines for the events whatsoever, then the problem is that Content Patcher itself is not even seeing the patch.
In which case you have accidentally commented it out, not saved as recently as you thought you did, or are accidentally editing the wrong file.
Or you have an error message telling you that the patch was ignored but missed seeing that.
Aaah its my i18n issue again, that embarrassing
I had players say a certain event wouldn't load so I thought i'd look at it, but seems like i had made a new issue and wasn't actually looking at the players issue.
Whoops ๐ญ i18n is difficult dude, i shouldn't have set it up when in the middle of the night-
Well it's not really difficult, but one tired mistake ended up creating many lolol
Ah yeah, attention to detail slips can be a problem
Truly
Well time to actually fix the original problem my player was having lolol
Good luck!
It was apparently that the event doesn't like the "Season Spring Summer Fall" precondition? It's working on another event in town, but it won't play on the Farm event??
How exactly have you written it?
'/Season Spring Summer Fall"' , is that.. not how you write it? I couldn't find any example on the modding wiki so i've been just assuming
"{{ModId}}_MirrenHeartEvent14/t 610 2000/f {{Mirren}} 3500/SawEvent {{ModId}}_GettingHaleyToHelp/Weather rainy/Season Spring Summer Fall
Ah it's not a type in the actual code, i just remade it in discord lolol
And it's definitely listed on the wiki, were you on the official one?
Oh I've just been looking at the stardew valley wiki for this one, where it's pretty ambigious
The + sign indicates that you can list multiples, which is done how you have done it
But why are you rewriting it instead of copying and pasting it to show me? The real one might have a typo in it
Also, what's making you think it's specifically the season condition that is the problem?
Yeah, it's how it's worked for all the other + ones. And it was just so i wouldn't backtrack the actual code, which is laziness I'll fully admit ๐ I did copy and paste it from the working event and had checked for misspellings, as well as "spring" instead of "Spring", and i'm thinking it's that because it works when i take it out, and then stops working when i put it back in
Ah well putting !Season Winter made it work! And I was thinking it might not be a huge deal if it doesn't work as i don't think it can't rain without a rain naturally during winter and that's the more important part ^^"
Well, not winter is a more succinct way of putting it anyway so that works lol
Yeah very much, i forogt you could do the whole "if not" way of doing it until just now lololol
(github markdown woes) i am trying to put together a table of color swatches in github markdown and most/all of github's rendering strips CSS and won't accept an <img> with a base64 src. i'm unlikely to create 143 colored pngs for this (if that would even work; it might block all direct html images), so does anybody know a way to display a block of color? (css is ideal, since i already have the colors in a nice, css-friendly rgb(r,g,b) format)
i guess i could just bake an enormous image for it. that might have to do
svg?
i don't speak svg 
if you know a way to embed it directly as html without github stripping it (and if it's easy to generate on the fly from a known rgb value), i could try it, but i think i might be consigned to the big image at this point
(i don't fancy including 143 small images in the repo, but i can justify one big one)
Svg makes sense to me
also, related but not related, TIL monogame has a color called MonoGameOrange (R:231,G:60,B:0,A:255)
You can use a placeholder image https://anyplaceholder.com/placeholder?width=100&height=100&bg=09f&color=fff&text=%23fff&fontSize=20&radius=0&format=png
The text, size, and color can be customized. Created using this https://anyplaceholder.com
Generate customizable placeholder images instantly in PNG, JPG, SVG, or WebP formats. Set dimensions, background color, text color, font size, corner radius, and download high-quality placeholders for web and design projects.
It can still be text form
thanks! this looks useful, but i don't wish to link to an external host
<svg> seems to be stripped out entirely (<img> gets gutted but a vestige remains)
okay, big image it is then ๐
But it is a text format s.t. versioning is slightly better thab bitmap i suppose
I do not think average modder person knows what an svg is
if you have the colors in a neat format, I can help with generating the readme.
respectfully, i think you have misunderstood my problem
No problem, I thought you were having issues with displaying content using github markdown. Since github doesnt really support outside links. You can write HTML using github pages, and embed it using iframe. Or host the images on the repo.
I was suggesting automating this process of updating the colors on readme.
Sorry my bad, github readme.md doesnt allow iframe. It seems like the only way is to host the images on the repo.
Hey yalls, I came to ask some questions about making mods. How would you go about making a modded farmhouse interior layout? I've been trying to use google to find tutorials but I keep getting guides for installing mods lol
!tiled
If you want to make mods that add or edit maps:
-
Use Tiled to edit .tmx or .tbin files.
-
Refer to the Maps wiki page for details on how maps work in Stardew Valley.
-
Content Patcher allows you to create custom locations through editing Data/Locations
-
Vanilla Maps can be edited via Content Patcher as well: EditMap
u need tiled
!unpack
there are maps for farmhouse interior in the unpacked game to use as a base :)
dammit
!unpack
Follow this guide to unpack the game's content files in order to see and explore how the game data is structured.
It's helpful when making your own mods, or just to learn about how the game works!
okay there we go
Great, thanks :)
Follow up question, how exactly do i import the tile set in tiled so it can auto fill the map files
you should be working with your tilesheets in the same folder as your map
and this little button to embed them
When editing vanilla maps, you want to make sure to start with copy of the original
Once you unpacked you can copy the tmx + needed sheets to working dir for that
If I have a mod related gameplay question, is this the right chat to ask?
better to ask #modded-stardew for gameplay questions
this is for making mods yourself
This is for making mods @sage pollen if you have a playing the game with mods question go to #modded-stardew if you're having technical issues with a mod, #1272025932932055121
Oh, I see that now. I am really turned around trying to find this one fish 
Thanks guys 
i speak a few words of svg now https://github.com/ichortower/FontSmasher/blob/dev/docs/color-table.md
i ended up generating all of the svgs. i don't care for having all those files, but it turns out i also don't care for having a big clunky image (and, critically, having to create the big clunky image)
i spent an inappropriate amount of time on this extremely minor feature so i hope someone appreciates it /lh
i would if it worked on mobile 
simply do not look at github on your phone. skill issue /s
just make your own docs site. skill issue 
Can i borrow yer script but for color context tags?
I wrote this down by hand it was terrible https://github.com/Mushymato/DynamicItemSpriteCompositor/blob/main/docs/colortags.md
hm. I wonder how to use CP to update the machine rules generated by PFM..
okay i have an idea- would it be possible to enable other NPC shops to open geodes?? considering making it possible for dwarf to open geodes for ppl who hate clint (me)
you dont
is this for compat with another mod
yes
i considered adding this to my custom blacksmith mod months ago
oooh you have a blacksmith mod?
(more specifically, I'm adding stuff that patches furnaces to a mod that adds custom furnaces, or looking into feasibility of it.)
if the qustion is "would it be possible" the answer is always yes. if the question is "would it be possible with CP" the answer is much less likely to be yes.
why joke fuck clint
gotchaaaa
which mod is this out of curiosity
ty 
would it be possible for an idiot like me who doesn't wanna do too much work but is open to looking at framework and dependencies to enable other NPC shops to open geodes?
if selph only considered adding it but did not actually then id say probably not
oof okay
https://www.nexusmods.com/stardewvalley/mods/22401 is the PFM mod
glancing at it's code I'm hoping I do not have to learn PFM for it
hmm yeah, I was asking because I vaguely heard of similar CP mods
no 100% replacement though it seems
hmmm okay
and yeah, your best course of action to change PFM rules is ||file replacement||

i saw there was a mod to make calico eggs and qi fruit not disappear from the inventory, but im assuming making them a wallet currency kind of deal like qi gems and golden walnuts is a c# thing
to mod ideas github i go
unlockable bundles support that
oh?
custom currency i mean
would double check if that actually lets them able to be used where the game normally expects them
was thinking of like maybe seeing if clint's shop is a map tile action thing and then adding that action to an anvil in dwarf's cave and then having a location change trigger action that changes clint's geode opening sprites to dwarf- as well as changing the geode opening bckg
i mean if you add calico eggs as a custom currency will that just make em that forever
.. that one I can't doubletest as I'm well past the festival window, lol
yeah can you still spend em? thonk
hmmm i think spacecore has some custom wallet item/currency stuffs?? not sure tho
its not a map action to open the geode menu. its a response to choosing a dialogue choice when you talk to clint
OH
okay gotcha
...i'm not going to do that then. (telling myself this bc omggg scope creep)
you cant do that without C# anyway
okay thank god i'm not that ambitious
.. does anyone have a save at the desert festival I can borrow?
you can cheat the date using console!
well, that works, I guess.
If you just unlock bus then you can get desert fest on save y1
Normally I cjb unlock that
Just make 40k in the first 2 weeks without cheating np
The localized text strings of the Desert Festival occur today!!!
the mod works but interacts oddly with the dropdown that's present in the festival (in that you'll see it drop down and rise up a few times)
wow my favorite festival has always been [LocalizedText Strings\1_6_Strings:DesertFestival]
Is the tooltip your mod
can i eat da eggs

Wonder how it deals with egg gone tho
uh.. >_>
can i fry the eggs.
i suspect that it wouldn't actually erase at the end of the festival like it should
Well the good thing is that it's ez to test and just a bug report if it no work 
would that even be considered a bug? i dont see much of a point to making it a currency if you didnt want to keep it permanently
Feature request to delixx then
The purpose of currency is just to not have inventory slot tho
There's other non persistent currency like star tokens
star tokens is a secret hardcoded festival points thing right
yes, star tokens use a shared int across all festivals
i don't think you could use CP to remove them
not without a dependency framework
and tbh, personally, I'd rather just keep them in the wallet
.. lol, PFM machines don't have logic in the Data/Machine asset
welp I guess I'm learning PFM syntax
Could you just rewrite the mod in data/machines
PFM rules still take precedence if the user has the original mod
I could, and I'll rpobably end up doing so for local use
.. but on the other hand
really not sure I could convert the PFM config to anything else, so
(I guess the main reason I wanted to do it in CP was for HasMod stuff. )
that mod has always showed it like that, yeah
so it's not broken! It just doesn't know what a localized string is
ah
it controls the animation and stuff of the machine itself
Well I am fairly sure you can do all that in Data/Machines, questions is just permission and purpose of your mod
it's mostly to make three mods play nice together. If it's an issue with permissions I'd probably just not release it, lol
Congrats on your mod, Midnight!
okay i have a question- what on earth are blank.json files for???
initialising, thats entirely it to my knowledge, EditData only works on assets that are already present, loading a blank.json makes said thing present
if you load something you cant use content patcher features such as tokens. but if you edit something you can. so you load the blank to create the asset and then edit it so you can have all the thingies
...i got no clue what that means but ty for responding LOL
its not just for tokens but both answers combined paint the whole picture
you cannot use tokens like {{ModId}} inside a .json file loaded with a Load action. they dont get parsed
hmmm okay
unless you meant you dont know what Atlas meant?
you can do EditData on something like Characters/Dialogue/Penny or whatever because that asset already exists, you can see it in your unpacked content folder. there's already stuff in there. It contains a bunch of strings for the dialogue, so you can edit that list of strings just fine
but for a custom NPC, Characters/Dialogue/MyNpcName doesnt exist. you cant edit its list of strings bc there is no list of strings
a blank json file, just { } is an empty list of things for you to edit
(or an empty dictionary, but for the purpose of explaining that difference is semantics)
so you use the blank.json file to give the empty list, the blank canvas, to Characters/Dialogue/MyNpcName
then you can edit that blank canvas
hm, okay i think i got it
gotchaaa okay
if you know you're not going to use any tokens at all inside your dialogue (or schedule, or event, or whatever) then you can just Load the json directly to the target in question
and not use an empty one
hmm, maybe someone should make that a command?
the 'what's the blank.json for' question answer thing
mail flags can be used to load patches right?
can it be used to remove patches too?
ugh i thought so
And a patch is either loaded or not loaded, possibly conditioned on mailflag
If you consider that removal then sure
so it can make the patch unload
sure, everything's MIT, take whatever you can find in the repo 
as usual, i don't really recommend other people use awk or my terrible bash svg generator, but you may, if you are into that sort of thing
I think unload is the wrong terminology here
so lets say I have a patch that turns alex into a girl
If you had patch A B C and B got a When HasFlag
down the line i might automate the color data file by dumping it from within the game somehow, but that's later. i'm mostly confident i didn't mistype any of them
When the flag is not set the patches that apply is A C
yeah if you unset the flag that gates the patch, the patch will stop being applied when your context updates
In that case what you actually want is a trigger action that toggles the mailflag controlling the "alex is girl" patch, whatever that might be
Common ways to do few days count down is conversation topics and IncrementStat
alex is going through some things
it was an example
the key thing is just that you do not control when content patcher rechecks patches, that is fixed by the updaterate (default daily)
you would make the condition true or false so that the next time content patcher rechecks, it will do something different
Congrats on your transition Alex
at least i dont have to make a second alex npc
Well ig it depends on what alex is girl should actually affect
sprite, portrait, and dialogue
Cus if it's just sprites then using appearance system is better
appearance system?
Yeah the Appearance field in character data
You can use that to change npc sprite and portrait conditionally
It's what seasonal outfit mods use
The reason why you should use that even if you have to do HasFlag elsewhere is cus you can give girl alex a very low precedence so that your appearance win
Otherwise you'd have to editimage all these other mods 
Hi y'all, not quite sure where I would ask such a broad question but I figured I'd start here. I've been playing modded Stardew for quite a while now (like 600+ hours whoops!) and finally got the urge to create my own mod. Does anyone know where I'd find resources to build custom bundles in the community center? I was looking at basically building on Custom Community Center Bundles and expanding it to include a few other mods (Alchemistry, Grapes of Ferngill, Sunberry Village) alongside their optional Cornucopia, RSV, and SVE bundles.
I don't really have too much coding experience, but I've been editing JSON files to make mods interact with each other in a cleaner way so I know how to find basic stuff like itemID's and the like \
Theres a framework that lets you make your own bundles called Unlockable Bundles and another called Custom Community Center Bundles, check out both of these and see if they fit your needs! I'm not sure how different they are so it's entirely which would fit your needs better
Oh wait it seems the Custom Community Center Bundles isn't a framework my bad!
I forgot about Unlockable Bundles, I'll have to check them out!
I don't think the regular bundles in the game are hard coded either? but I'm not sure about that though if you just want to edit them
That's what I was thinking, the Custom Community Center pack I downloaded is shockingly simple
Found it, looks like they are editable with just CP https://stardewvalleywiki.com/Modding:Bundles
Alright, I'm gonna study this and compare it with the Content.JSON in the CCCB pack I have and just strip it down to understand it
I'd love to work on restoring the old Love of Cooking Community Center bundle afterwards, but that'd probably be waaaaaay more work
One step at a time
And I'm not much of an artist so ๐ if there's sprite editing involved, I'll probably leave that alone
!anyonecancook everyone had to draw their first pixel art at one point
Pixel art is also different from "manual" art in that you don't have to learn the ergonomic "crafty" parts of painting and drawing. That's what helped me, as someone who still can't properly hold a pen due to developmental dexterity issues, I recently realized that with pixel art I don't have all these issues that made me hate art lessons in school. I'm still a beginner, but finally art is fun.
Just to clarify, I don't want to say that it's easier, just that it requires a different skill set which might make it easier for people who have difficulties with the skill set required for "manual" (is there a word for that?) art.
Just edit vanilla stuff tbh, that'll get you farther than you might think
And you might pick up the basics from that
https://smapi.io/json/content-patcher/618f0d673f2b4a148129a85508e59453 any idea why the recipe that gets sold at moonlight jelllies isnt appearing in cooking menu and why the recipe is showing torch recipe?
you need to change "Name": "Irish Moss Pudding" to "Name": "{{ModId}}_IrishMossPudding"
and of course correct the other Name fields for each item
ideally you should also ModId prefix your buff Id fields
got it ty
Got a question, is it ModId, or ModID? I've seen both
content patcher is case insensitive (*when reading tokens), you can use {{season}} or {{MODid}} if you like
phew okay haha good to know, ty
god i love case-insensitivity
it's all fun and games until you start using case insensitive file paths
idk if i spelled that right but
and then it all falls to bits
windows users occasionally create an Assets folder and use assets in their FromFile values, and then the changes are never applied for linux users
ohhh okay
there are also some gotchas sprinkled throughout stardew modding in general. lots of it is case-insensitive, until you hit something that isn't and oopsie doopsie
the same applies to pretty much anywhere that would use file paths if you're inconsistent, not necessarily just CP fromfiles
ideally you should follow as it's presented in the documentation
yeahhh like character names
since of course programming is nothing if not inconsistent
and npc sleeping animations
thank god the npcs im working on dont sleep-
..speaking of... i'm gonna force myself to go bed 
a tragedy
truly a tragedy
its 10pm, i gotta sleep and wake up at 4 am
will i do that? no
will i sleep at 12 am? yes
it is i wanna be cryptid without biological needs
lucy no sleep
Just be me and dont sleep
damn, just take care of yourself okay?
your right, i just have a skill issue, i gotta not sleep 100%
pfft i wish i have disorders i'll start hallucinating-
..which doesn't sound not entertaining.....
hmmmm
lol yeah not the best..i heard some get hallucinations, I get more of like
in and out of sleep mid text
and my mind jumps from like
"yeah i love chocolate cause the trains in ohio went fast thats why we have space"
it starts to lose track on where its at ๐คฃ
hmmm yeah i can't fall alseep without meds so that's not really my issue
OH i thought you meant rapidly falling in out of sleep lol
ohh
yeahhhh i've been there-
mine is like 5 seconds asleep and i wake up and continue typing and then again
its like...power saving mode
๐ hii I'm starting to make my first custom npc
i need to stop banging my head against the wall of TargetField and "a list of models", can someone please tell me how to format this?
"LogName": "World Map - Base Texture",
"Action": "EditData",
"TargetField": [ "Valley", "BaseTexture" ],
"Entries": {
// docks
"{{ModId}}_Docks": {
"Id": "{{ModId}}_Docks",
"Texture": "{{ModId}}_WorldMap/{{Recolor}}",
"SourceRect": { "X": 239, "Y": 134, "Width": 41, "Height": 26 },
"MapPixelArea": { "X": 239, "Y": 134, "Width": 41, "Height": 26 },
},
// ... etc
},```
(i had been doing EditImage on the world map before, but BaseTexture is supposed to be more performant and also won't get overwritten by recolors, for example)
Is that not working, nic? What error are you getting?
"must set the Target Field" (can send log if you need but that's it)
what asset are you editing?
ohh
Oh yeah haha you don't have a Target
bc it doesnt say so in your patch
๐คฆ
i can see why thatd be a confusing error to get if you arent sure you're using TargetField right
yeah after like 6 revisions i was like well clearly i don't understand TargetField
thank you for the second and third pair of eyes on that lol
a load bearing space in that error message
I was no help lol
Except for making you feel better for missing it I guess because I did the same thing xD
Help!
https://smapi.io/log/7049a94ede2e4f1da59735b51574f475 at 21:33:19 I don't know what to do with this error
Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on Microsoft Windows NT 10.0.26200.0, with 62 C# mods and 143 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
Would the error message must set the 'Target' field have been less ambigious?
It would for me, yep
i think so, and also me not accidentally reading 'Field' as capitalized (it's actually "must set the Target field"
i think appropriate channel would be #1272025932932055121 or #modded-stardew
but the errors in the code for the mod I made?
why do people stop using json assets?
It means that it's looking for a file called PremiumBarn_winter.png in the assets folder but it can't find one.
Don't need to use it anymore because we can use CP instead
ohhhh okay I know the problem now
json assets had one job in 1.5 (prevent collision of numerical item ids), which is now obsolete (mods can choose string ids, and if properly namespaced they will never collide)
ichor's explanation is better
what abt producer framework?
iirc it has some niche usecases still but for 90% of things can be done directly in CP using vanilla machine rules
PFM is still maintained though
what r those niche cases? im rlly curious
no idea
k
https://smapi.io/log/bade12653361423382431a0c73ff5f88
https://smapi.io/json/content-patcher/c80a76e241a5442b903c7c3c4652aa3f
sighhh now i'm not seeing any (visual) changes to the world map (the tooltips etc still work, not the base texture)
Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on Microsoft Windows NT 10.0.22631.0, with 20 C# mods and 1 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
patch is being applied but
Did you do a patch export to make sure it's in the right place?
of Data/WorldMap or the map texture?
the answer is neither but which would you like
Data/worldmap
I do that when I am not sure why my change isn't applying
(Not specifically for world map, haven't done that before)
hmmm is this perhaps a case where i need to MoveEntries inside a list? they're in there, but the vanilla BaseTexture is above them
oh this aint the format i was meaning
๐
ill brb cus its annoying to explain in words anyways
okay np
you beat me by literally 5 seconds
thank you so much though
now to test stupid recolors
i deliberately mismatched recolors 
the benefits now is that ppl can just editimage you to add compat
cus you are loading stuff to actual target that is not just worldmap
That might be the first time I've actually seen the texture field used for a map area outside of vanilla
i'm chu is a pioneer
Last time I did a scan in mods I got zero results
i do think u should prob use season conditions but shrug doing a bunch of loads is also ok
does remapping use this?
i do at least tokenize it so hopefully it's better?
ah.
well, it's more like if the data is invariant
then game never has to invalidate it
or uh, content patcher never has to
It would have been back in March or something I did the scan
if u put a token that is variable then it means at some point content patcher will have to invalidate the whole asset 
but as content modder i wouldnt worry about this just do what feels nice
i think for the sake of my own sanity and not have 4x the amount of code, i shall live with poorer performance for now
๐
if people complain that i get too bulky i'll revisit it
i was actually thinking you do a bunch of loads instead
hmm i guess that wouldn't be too much extra work
{
"Action": "Load",
"Target": "{{ModId}}/worldmap",
"FromFile": "assets/maps/tilesheets/spring_worldmap.png",
"Priority": "Low"
},
{
"Action": "Load",
"Target": "{{ModId}}/worldmap",
"FromFile": "assets/maps/tilesheets/summer_worldmap.png",
"Priority": "Low+1",
"When": {"Season": "Summer"}
},
like this + fall and winter
+2 and +3?
sure u can do that, they r likely essentially invariant
go make a DT for worldmapflavor or something
that's what i already got :)
anyways the thing to avoid is just EditImage LooseSprites/map
once u get out of that its alright to play a little loose with your own assets 
if someone else wish to do compat with you they can do Default priority When loads Season to nic.dbd/worldmap
and they'd just win
and their loads are preferable to them EditImaging mine, for performance?
editimage cost more than load yes
That reminds me, I should check to see how load priority works in cp and if it's smart enough to not bother invalidating if a higher priority patch was winning anyway
The key with loads is that only one load is actually going to win and touch the filesystem for the image
and so even seeing multiple loads and throwing the rest out is still better over edit+edit+edit+edit, makes sense
yeah, names and buff ids look good 
also need to check how asset propagation happens for worldmap and textures it tries loading
loads that dont activate never actually goes into the part where a Color[] is allocated for texture editing operations
that is why it's strictly better when 1. you can do it, no Exclusives flying around 2. no need to do any Edit
color crimes?
ok worldmap maparea textures are fine, vanilla keeps references to them all and renders them all, rather than compositing a new image
does the game ever do any composition of new texture2d on the fly
game does plenty of map modifications on the fly which wont track the source changing (spouserooms/patios for example)
ah yes, the building paint mask does
staminarect ๐โโ๏ธ
pretty sure farmer sprites are also constructed for skin colour and arms
I should have gone to the smapi propagation code first
not sure if it uses a new for that or just edits the loaded texture
playersprites, the tool spritesheet and building masks
hmm tool spritesheet looks like kinda dead code, nothing seems to mutate it anymore but still has the plumbing to be in a different texture2d from the content pipeline
unless it was for old mod support?
oh yea building masks those r funny 
ok ancient history https://github.com/Pathoschild/SMAPI/issues/346 for stardew 1.2.30โ1.2.33
Well... I used the template I found on the Wiki, and since it didnโt cause any issues before, I just left it as is.
Actually, I donโt know what to do with these tokens.
Have you changed his schedule recently?
yes, I adjusted his time.
You have to sleep in game after making schedules changes
So try that and see if it helps
ok! I'll go try it now!
And if it doesn't, please paste patch summary full LuoLi.Zayne into your SMAPI console while in your save and then get your log again
OMG, I did it! Thank you so much!! โค๏ธโค๏ธ
Is there a debug command that opens the pause menu? I can't find it in the wiki, but maybe it's a combination of a few different commands.
The pause menu?
Like, the pause mode where the whole game is paused outside of an inventory?
all menus pause in single player, none do in multiplayer
Nope, I just realized I meant the inventory, sorry.
True. I tend to forget about multiplayer.
don't let button hear you say that 
You need to have friends for multiplayer.
Also, multiplayer is much more stressful because nothing pauses. It feels like the days go by so fast.
Hello, I'm kind of a beginner in modding.
This is the first time I'm modding a game and I would like to know something.
So basically, Iโd like to use Harmony to modify the power of my pickaxe, and I wanted to know if there is any documentation with Stardewโs functions, like the Pickaxe Do function, etc.
Sorry to disturb you all ๐ฅฒ
there is not, no. I'm guessing you have some programming experience from the sound of it?
the difficult thing with modding in general is that the source code isn't intended to be used as a library so it typically isn't super well documented, most of this part of figuring things out is done via decompiling
(or by asking here for help if you can't figure it out, of course)
Oh okay, thank you ๐ซก
Yes, I have some programming experience, but it's only been about 2 years of making games in Unity, so I'm not a very advanced programmer.
But I am familiar with some design patterns and the basics
the most important skill in (non content pack) modding in my opinion is the ability to read code, and it's also a great way to develop that skill. I'd start with decompiling the game.
I don't know if Harmony is the right tool for that. You generally don't want to override game methods. I know the power of the pickaxe is stored in variables (which I'm still kinda deciphering), so modifying these variables is the safer choice.
The thing is that I am feeling lost, I donโt know how to do it without harmony
By "power", do you mean how many hits it requires to break stuff?
Yes
I'm sorry if I seem clueless or if my questions sound stupid
I don't have a lot of time to create this mod, so it adds a bit of stress
what's the time pressure?
I only have 4 days before I show the mod to some of my friends and I have a lot of ideas I want to include in it so I am working on it 24/7
as far as I can tell, the only "variables" relating to the pickaxe are a state variable (changing it is pointless, it changes all the time) and some consts, so this would require harmony like you thought
The pickaxe has a variable of type NetInt called additionalPower. Without testing I assume that this will be what you want to target.
I think
The method seems to use it to calculate the full power.
int damage = Math.Max(1, (int)upgradeLevel + 1) + additionalPower.Value;
I have already did it but it doesnโt work
it will work on stones but not boulders
Maybe I am using it wrong
which don't use that netfield at all
(also, you still need a way of setting that variable, it isn't static so you can't just set it once)
using StardewValley;
using StardewModdingAPI;
using StardewValley.Mobile;
namespace ifthisdoesntworkidk
{
public class Test : Mod
{
public override void Entry(IModHelper helper)
{
var harmony = new Harmony(this.ModManifest.UniqueID);
harmony.Patch(
original: AccessTools.Method(typeof(VirtualJoypad), nameof(VirtualJoypad.CheckForTapJoystickAndButtons)),
postfix: new HarmonyMethod(typeof(Test), nameof(Test.ButtonBPressed_Postfix))
);
}
private static void ButtonBPressed_Postfix(VirtualJoypad __instance)
{
if (__instance.buttonBHeld)
{
Game1.currentLocation.tapToMove.mobileKeyStates.actionButtonPressed = true;
}
}
}
}```
Finally, ended up learning Harmony just for this
hey nice!
How often does it change?
well, every time a pickaxe is created it gets a new one, so you can't just set it once for all pickaxes
as for how often they're created, at the very least whenever you get a new one from clint, but I wouldn't be surprised if more often
Fair.
are you the one who made the virtual B button mod on nexus?
Maybe I can just check the current tool of the player and upgraded it ?
you'd end up upgrading the pickaxe every time the player selects it. I think you were right that this will need harmony
Yeah, sorry. I just really dislike the idea of modifying game methods, so I always try to search for alternatives.
a prefix with a power ref argument might work 
And you were right I think because even the wiki says that itโs better to use Harmony as a last resort
we've actually debated whether that warning is a bit too scary in the past ๐ harmony can be absolutely fine and even a better way to do things sometimes
Yes, it does, but Iโm not really familiar with refโฆ so is a ref a real reference to a variable in the game?
Let's convert all my Content Patcher mods to harmony then 

You can just mark it as modified no?
Get pickaxe increase the power only if no modData
that would still require harmony, wouldn't it?
did you mean to reply to the message about setting it too many times
Nah inventory changed is sufficient
tbh I forgor about moddata
I think the main deal is actually making sure it's not slow as hell 
in this case I mean using ref int power as one of the prefix arguments, which I hope would give you a reference to the actual int that will get passed to the method
How did you all learn about modding? Iโm really fascinated by how well you understand what youโre doing 
It works ๐ซก
It's a hobby
wait additionalpower isn't even applied to boulders 
boulders are hardcoded 4 'power's
"Learn" implies that I know what I'm doing, which I don't.
(so power == 4 => instant break)
Welcolme to the club ๐ญ
power is weird though. I think it's simply hardcoded as 1 when using a tool.
who.CurrentTool.DoFunction(who.currentLocation, (int)who.GetToolLocation().X, (int)who.GetToolLocation().Y, 1, who);
Oh, wait, no, it immediatly gets assigned a new value.
power = who.toolPower;
public override void DoFunction(GameLocation location, int x, int y, int power, Farmer who)
{
base.DoFunction(location, x, y, power, who);
power = who.toolPower;
yeah but we overrode that with their prefix
I should probably stop using Nano to quickly look at the files.
Reading the wiki, reading the code, experimenting, and talking endlessly with other modmakers here and other discord servers lol
I decompiled the code, and since then I understand a big part of it better
Than you for your advices ๐
Considering my first mod was a shitpost mod i just kinda went for it lmao. It's what i get for hanging around the modded stardew channel all the time
what mod was it?
my first mod was cuz a wanted to build a fish pond army and there was no ez way so I got sent down the generational sidequest of a lifetime
ty
ahaha, it's not up anymore
nope. lol.
then i assume it was cursed beyond human imagination?
I thought my mod was causing compatibility issues with Fashion Sense, but then I ran the game with only FS installed and it still happened. does anyone know if this is a problem with FS, or if I'm doing something wrong?
That's what usually happens, you have to also install a pack with shoes and arms that fit, FS has one available on the mod page I believe
but I have it installed, the Player Height Variety mod from PeacefulEnd
so weird... I'm patching FarmerRenderer so I thought this was the cause but it seems not
Did you manually select the FS specific shoes in the shoe tab? They're not automatically added when choosing a different farmer height sprite, but this is normal FS behaviour regardless of whether you touch farmer renderer
no... I didnt knew I had to do this, so if im changing player height I have to change other stuff too?
Yep, all have to be done manually, a tad annoying but when you have many FS packs its rare the base sprites will be used anyway
thank you! now everything makes sense ^^
@nimble marlin while you are here I have compat ask for act of cooking
Do you think you could load your custom sprites to the content pipeline so that people can EditImage them?
how do you make a dependency required?
ooh one sec lemme paste the code
{
"UniqueID": "dependencymod",
"IsRequired": true
},
I think IsRequired is true by default.
you do that in manifest?
Yep in the manifest, under the dependacy field
Either dependency or dependencies I don't remember off the top of my head
here, I can attach a screenshot of my manifest for reference
and i will replace the update key thing dw
i think u shud maybe consider updating the unique id lol
must've been the wind
BOOOOO
lmao im js joking chill out
anyways i made new portraits for them it's fine ๐
oopsie
-# ik lol i'm just dramatic
my computer glitched
I THOU THEE THY TRAITOR
its funny
medieval insult dw
ok lmao

๐ this sentence didnt even make sense?
YES IT DOES
you're just uneducated
fr thats why im confudsed
shakespear in 2025 ahh ๐ฅ ๐
it makes sense in context okay ๐ญ
I you you the traitor?
exactly
explain
using 'thou' as a pronoun could be considered offensive depending on the context- i was literally quoting something a judge said to someone accused of treason ๐ญ
since when
tf is english anymore ๐
the elizabethan era
anyway, reads more as a fee fi fo fum
you're jealous of my way with words
THAT GOES FOR YOU TOO /lh
ok buddy
anyway, mods
oh yeah those are a thing
oopsie
they sure are
nah. mods arent real.
just early modern english insults
new mod idea unlocked 
How do I make seasonal tilesheets?
if this is for maps, then if you prefix the tilesheet name with spring_ then the game will automatically swap in the season name as appropriate
you do need a Load block to load the other variants
Also it's outside maps only
helloooo how can one only edit a small portion of a vanilla PNG?
EditImage has ToArea
Do I need to create new saves to test if they're working?
gotcha, tysm! hmmm specifically i wanna edit the sprite for an item, is there another i way i can do that?
Bc I did all that, and is still stuck on spring, no matter the season
You can either edit image or edit data the Data/Objects entry to use new texture
New tx that you are loading
that will break existing instances of the object though
hmm as long as you dont change the sprite index it should be fine right (granted this will need you to use a big ol empty sheet)
One of the back of mind things is to ask tai about switching vanilla tweaks to that
Perf reasons
wish i could help but maps are my mortal nemesis ๐
i believe the tilesheets need to have the season at the start of the name or something?
I did mention that
maybe some context (code, etc.) could help
I am thinking of coming back to mod make. Has there been any development in the music adding side. Like adding a victory theme to floor 120 or making custom song appear in the skull caverns
heyy I'm back, is there a way to edit an entry from another mod without directly stealing the code of that entry?
it's easy enough to add new tracks, afaik (Modding:Audio), but temporary levels might be weird about editing music with the vanilla Locations/LocationContexts assets
(and there's a music map property, but it's deprecated for w/e reason)
I'd probably recommend a framework, e.g. BETAS's ChangeMusicTrack trigger action, which could set a new track when you arrive on specified floors
in CP terms, you should just be able to EditData on the asset in question like normal, though you might need "Priority": "Late" or some such
https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide/action-editdata.md#usage
oooh awesome tysm Esca 
and possibly Fields to keep the stuff you don't want to edit intact
Yea the one framework from a few years ago that got me those results was the custom music one but now I have switch to content patcher
I wonder if u can play music via map edits then
Since the map of f120 mines is an actual editable map asset
The location should be undegroundmine120 or something?
Thanks
I you you your traitor?
The traitor was Paul.
cmon i already explained this
I looked it up, it's not really an insult, but disrespect. Thou is the informal version of thee. In french and german there are two different types of you, (tu/vous, du/sie), tu/du is like first name basis, there's even a friendship ceremony sort of for putting someone on "du" status. Basically it's the equivalent of calling your teacher/boss/doctor by their first name
learned a new thing today! "I thou thee, thou traitor". neat!
yup! you put it better than me lol
afaik it is considered more intimate though, but yeah
its like if you said mr harvey instead of dr harvey
or maybe like straight-up like a fairly intimate nickname
hey, here in the UK that's the more respectful way to address surgeons 
THE BRI' ISH!!! /j
that's cool, it's considered really disrespectful if you did it to a professor here in canada
surgeons historically weren't doctors, and calling them "Mr." stuck. I've actually had some correct me in the past haha
Here in Germany you'd always use "Mr." (or other gendered terms) and only append the professional title when you want to be really, really formal, as in a letter.
Like, "Mr. Dr."
Guys, I just uploaded my mod in my repo, here:
https://github.com/kazutopi1/ButtonBHeld/tree/main
Should I upload this in Nexus as well or nah? cuz there already a mod that does this, though through a different method
!twocakes
If you discover that someone has made or is making a mod with a similar concept to yours, don't stress! Our community promotes the idea of "two cakes", where two versions of the same idea can peacefully co-exist. Your mod will have your own unique stamp on it that makes it special.
Most people use Nexus to get their mods. You don't have to upload it there, but it should be your personal decision only.
Don't stress out about similar mods.
yes always upload if comfortable cuz you never know if someone will benefit
I personally don't like using Nexus, but that's where the community is.
If you want you can make a release on github so that people can download from there
Nexus/no nexus is your choice
Does anyone have a solution to or know of a workaround for config files being reset / overwritten when updating a mod?
That shouldn't happen if you don't ship your mod with config files.
the config is saved in config.json file in the mod folder
dont ship it yeah
SMAPI will create one if it's not present
The defaults will be taken from content.json, so no need to provide one.
If you are a C# mod you may choose to store your configs in other places
Global app data for example
I don't ship it, but users are stating that it gets overwritten whenever they update with Stardrop
is this a feature of the config api?
if you're not shipping the config with your mod and not purposely overwriting them via C# then any config being overwritten is not you or your mods fault
stardrop warns you that updating mods using it will overwrite config settings yeah
usually i think the recommended course of action is to move the config file outside of the folder, update, then drop it back in
Hello again, I would like to change the gameโs music but I canโt manage to do itโฆ. My mod doesnโt show any errors, but when I launch the game, it still plays the same default music
If someone knows what the issue is, please tell me ๐ญ
post the code that you have?
Global app data is a different kind of mod data to store
I am using Content Patcher for the music
But nothing stops you from using that for configs
!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.
It will be next to the save files in sdv app data folder
gotcha. thanks for the additional context
{
"Format": "2.7.0",
"Changes": [
{ "Action": "Load", "Target": "Music/spring_day_music", "FromFile": "Music/Dayy.ogg" },
{ "Action": "Load", "Target": "Music/spring_day_ambient", "FromFile": "Music/Dayy.ogg" },
{ "Action": "Load", "Target": "Music/spring", "FromFile": "Music/Dayy.ogg" },
{ "Action": "Load", "Target": "Music/summer_day_music", "FromFile": "Music/Dayy.ogg" },
{ "Action": "Load", "Target": "Music/summer_day_ambient", "FromFile": "Music/Dayy.ogg" },
{ "Action": "Load", "Target": "Music/summer", "FromFile": "Music/Dayy.ogg" },
{ "Action": "Load", "Target": "Music/fall_day_music", "FromFile": "Music/Dayy.ogg" },
{ "Action": "Load", "Target": "Music/fall_day_ambient", "FromFile": "Music/Dayy.ogg" },
{ "Action": "Load", "Target": "Music/fall", "FromFile": "Music/Dayy.ogg" },
{ "Action": "Load", "Target": "Music/winter_day_music", "FromFile": "Music/Dayy.ogg" },
{ "Action": "Load", "Target": "Music/winter_day_ambient", "FromFile": "Music/Dayy.ogg" },
{ "Action": "Load", "Target": "Music/winter", "FromFile": "Music/Dayy.ogg" },
{ "Action": "Load", "Target": "Music/farm", "FromFile": "Music/Dayy.ogg" },
{ "Action": "Load", "Target": "Music/town", "FromFile": "Music/Dayy.ogg" },
{ "Action": "Load", "Target": "Music/forest", "FromFile": "Music/Dayy.ogg" },
{ "Action": "Load", "Target": "Music/mountain", "FromFile": "Music/Dayy.ogg" },
{ "Action": "Load", "Target": "Music/beach", "FromFile": "Music/Dayy.ogg" },
{ "Action": "Load", "Target": "Music/desert", "FromFile": "Music/Dayy.ogg" }
]
}
here it is
I personally don't do this because I treat configs as transient stuff
please use the json uploader in the governor command in the future, but that is not how you target audio
If you used the link in the bot's message you could have uploaded it there and shared the link.
pls use the json site as requested, and that code is also not how you load/edit music with content patcher
Mod should have sensible defaults and config is for accomodations of ppl with different opinions than me
"Music/<whatever>" is not a thing
I am sorry
thank you !
And sorry again
so the next time, if I want to upload my json, I have to hit !json ?
Mods should have sensible defaults and ppl with different opinions than me are wrong
FTFY
Don't put words in my metaphorical mouth :)
read the governor command and follow its link to upload your json. you can just go to the same link next time, you dont need the command every time
It's what you think though. It's the same people think when I tell them that I use Discord in light mode.
What does fifty mean
ah makes sense. Thank you
fifty?
Maybelline i
Fixed That For You
oh, FTFY. fixed that for you
Punish it by not charging it tonight.
If I truly feel an option is "wrong" then I wouldn't invest time supporting it
well, when my mod is dynamically loading content and interacting with any number of objects in the game, its better for players to have control for their own sanity sake. Auto Forager is meant to be QoL mod, not a headache of inventory management
I also have a few mods where my personal defaults is not what's in the code because I know I'm the weird one this time
True. I was joking, sorry if that didn't come across.
See i hate discord light mode but prefer word and vscode in light mode
Yeah I also had a case like that (machine control panel) and I decided the data lives not in config.json from the start
Previously I actually made it save specific so that people could have different concurrent saves with different mods n settings
So yeah it's ultimately your mod's data, store it however desired 
are locations created every time a save is loaded if the "CreateOnLoad" field is true? trying to figure out if i can spawn a hardwood log in my already-existing map for the next update
You should/could just use ftm/spacecore for that
The create on load stuff doesn't recreate location that exists in the save file psure
hmm darn yeah then i'll have to
just wanted to transform this from plain cliff to minecart but make it a lil difficult
I forget if betas had a regenerate terrain feature thing
(yes)
It definitely has a clear terrain
Yeah that should work 4 this right
i dont know what all is on the paths layer i dont make maps
this log is paths yes
i know theres a stumps map property so if it was that it wouldnt work
Trees
RegeneratePathsLayer takes a rectangle
so you can regenerate just the stump
it just calls the vanilla function GameLocation.loadPathsLayerObjectsInArea(int x, int y, int w, int h) lol
Hm how does this stuff work anyway
I know paths lights actually just secretly edit the lights map prop
are trigger actions having been run stored in the game save? i don't want the log to come back every time someone downloads the file again
can you make an event thats just a text box on a black screen?
Yeah i mean does the path stump secretly becomes map prop too
I don't know the answer
how dare
no all those get added to the maps objects or terrainFeatures lists
or largeTerrainFeatures
or resourceClumps.... i can never remmeber which is which
yes, set the viewport to 1000 1000 and use message
sidenote that viewport is weird and differs between indoors and outdoors
you may have to deal with clamp
(related to terrain features, id still love to know who is responsible for the method name GameLocation.checkForTerrainFeaturesAndObjectsButDestroyNonPlayerItems(int x, int y) because i still love it. so wordy)
is that what happens when an NPC paths through debris and stuff?
probably not, id imagine that would be GameLocation.characterDestroyObjectWithInrectangle() or GameLocation.characterTrampleTile()
as far as i can tell the one i mentioned is only used to make sure trout derby and squid derby temporary NPCs dont overwrite chests or other player-placed objects
these are so specific lol
i just like how overly descriptive and specific that one is and also because it holds the record for longest method name in the stardew codebase (last i checked anyway, which was sometime after 1.6.9)
ig theyโre the only passive festivals without their own map whose npcs move 
wait DO they move
they dont move, but they are actual NPCs
and not animated tiles
they just need to not destroy a chest if they happen to get placed on top of a chest
they got actual npc sprites before gil did 
which means if you know where theyre meant to spawn, you couldprevent them all from spawning
you know the little red or green rectangles that show up on the map when you're trying to move or place a building or something to tell you where you are and are not allowed to place it
does any C# modder here happen to know where the drawing of those things is actually handled
CarpenterMenu.draw handles the little red and green boxes, if I read things correctly
Object.drawplacementtiles for objects and then carpentermenu.draw yep
It's not rly unified
Is there a way I can make a machine recipe only work if a mod is installed
Put the patch for that recipe behind a hasmod condition
yea i figured it out (sort of)
thank ye
I should separate it from my main crops file right
Up to you. No change in behaviour as far as CP is concerned regardless of what file it's in.
ah so it's just for ease of access for me then
Yep. You only need to use includes if you want to local token them or if you're using something like CMCT with an optional dependency because you need to gate the cmct check behind a hasmod first so it doesn't try to find a token from a mod that isn't installed.
HasMod include json is nice for organization
Thanks Aba but ye lost me
If you don't use CMCT, it probably doesn't matter.
If you have a machine rule that requires a input item that doesn't exist
Then that rule is just inert cus it never activates
Hasmod includes are just nice with Cross-Mod Compatibility Tokens becuase it won't throw (probably harmless) errors
They r kinda important errors
II'm trying now to make the item not appear if the mod isn't active even if it's part of my mod. I already have it so it won't drop and the recipe won't work
(theyre definitely not harmless)
Yeah in this scenario gating everything related to that item in 1 json included by hasmod is nice
But y'know it's ur mod ur organization
I stand corrected, didn't think they'd be harmful if you had the thing set not to activate without the mod anyway.
Content Patcher is the one that decided that a token failing is a warning and not an error
so wait I can set it up so everything I need for a compat is in it's own json and then i won't have to individually disable the things
HasMod is a special token that cp optimizes away after the first load
Cus it is invariant
until someone makes a load-mods-at-runtime mod 
Yep, if you want to organize that way
yea no i'm doing that it seems way easier
Having a mod compat folder is neat, just don't forget to make a correct include, so you won't catch yourself having something that never works in your mod for a year and a half without noticing (that definitely did not not happen to me
)
LOL Oh no, I've done that
got it before release anyway...
always update your includes
I used to have it in allcaps on my Trello before I started just remembering to do it, UPDATE YOUR INCLUDES
Not so fast criminal scum
probably not, it'd probably be pretty slow, performance-wise
Not so slow criminal scum
hey all, super niche question for events, and conditions to start events
I want an event to start in the desert if its raining in the valley. According to the modding wiki, the weather condition is for the players current location
is there anyway to add a condition for the weather is another location?
you can use the GameStateQuery precondition with the WEATHER GSQ that can take anyu location
GameStateQuery WEATHER Town Rain should be all it takes
maybe GameStateQuery WEATHER Town Rain Storm GreenRain if you want to cover all types of falling liquid water weathers
I technically have, but did it at early startup to not cause problems
i meant more like a user being able to just add a mod whenever they wanted
even in the middle of the day
first mod compat for ARC is done thanks y'all
otherwise SMAPI itself fits the bill of loading mods at runtime
isn't too hard, but would require CP to do a full rebuild of its state model because hasmod being immutable means its decisions get baked into the runtime view of the json
and making hasmod not immutable would suuuck
the thing ive never cared to put too much thought about is what the potential consequences would be for running peoples GameLaunched events at far after the actual game launch
my hunch is "not much actually" but thats about as far as my thinking ever goes with it
can probably cause problems if a mod is relying on loading before another mod to do things first, but since you cant guarantee that afaik anyway tats probably very minor consideration
or hitting apis that have assumpsions on timing (like registering cp tokens)
well if we're already gonna be forcing CP to redo some stuff for HasMod im sure we could knock down a few more reflective barriers to make it figure out tokens again
should be super easy trust
I mean its the exact same problem
it needs tokens ahead of time for the same reason hasmod is immutable
genuine thank you for this, that's a future bug fix I hadn't even thought of
in this hypothetical scenario where someone is making this mod and putting in the effort to make it work properly, i think "needs" would be a strong word to use
Yeah this hypothetical scenario is someone taking a jackhammer to content patcher and bonking it until it do what they need
Hi
PLAYER_LOCATION_NAME Current BeachNightMarket
Is there a way that you can check if there is either BeachNightMarket or Beach instead of just one? I want both to be acceptable for my quest conditions
"Condition": "DATE_RANGE Winter 1 Winter 28, PLAYER_LOCATION_NAME Current BeachNightMarket, PLAYER_BASE_FISHING_LEVEL Current 4, PLAYER_HAS_CAUGHT_FISH (O){{ModID}}_Gingerfin, !PLAYER_HAS_MAIL Current {{ModID}}_QuestWillyGingerfinLetter",
that query accepts multiple location names, so PLAYER_LOCATION_NAME Current Beach BeachNightMarket or some such
Oh I am so silly, thank you so much!! this is very good to know : )
there's also the more generic "any" query, e.g. ANY \"query 1\" \"query 2\" if needed, but that's how the multiple names will work anyway
Ohh, and lastly for a friend of mine, how can you make it so for af ish to spawn with Conditions it can spawn on a custom map? Is it using like {{ModId}}MapName? Or similar?
Just curious since they have a custom map
if not totally fine
I'm not super familiar with the post-1.6 fish system, but it's controlled by a section in Data/Locations for each location, so their custom location should have an entry there and include the custom fish*
https://www.stardewvalleywiki.com/Modding:Location_data
this tutorial might help too https://stardewmodding.wiki.gg/wiki/Tutorial:_Adding_a_New_Fish
tyytyy
I know how to add them to vanilla maps
just wondered if I had to do something special for custom mod maps
from the games pov, there is no difference between a custom map and a vanilla map
it doesnt know the difference
awesome ty
speaking of queries..
i did for instance DATE_RANGE Winter 1 Winter 28, it errors, so I did
Winter 1 1, Winter 28 1, and that works, but only for year one
How can I make it any year? I dont want a min or max year, just between x month and x day of said month(s)
things in < > are required, things in [ ] are optional. the first year is required, the second one is not
Winter 1 1, Winter 28
it will keep it only in winter tho?
cause im worried if its gonna go from
Winter 1 year 1 to winter 28 year infinite
shrugs. i actually dont really understand how that query works exactly tbh after rereading it
ahh oki
the comma will break that, but for "any day in winter of any year", just DATE_RANGE Winter 1 1 should do it
(oops, my bad. i didnt mean to put that comma)
hmmm i see, however isnt that just saying Winter 1, year 1?
if not included, it assumes the whole [] [] [] part is winter 28 999999 or some such
or if its only one like here it encapsulates the whole month
I had DATE_RANGE Fall 22 1 Fall 28 in a mod of mine and it stayed true after Fall 22 year 1. It never went back to false.
I think it was checking between Fall 22 Y1 and Fall 28 Y99999
yeah i think cause it still weas going until fall 28 year infinite lie in incremengts
...ah, then it probably isn't designed for what I assumed at a glance, yeah
so it's a single timespan from one date to another
I ended up having to do SEASON_DAY fall 22 fall 23 fall 24 fall 25 fall 26 fall 27 fall 28 so it would check those days every year
Eeee yeah I feared that
but probably for the best
if the goal is just a query that's true on any day in winter, SEASON winter should cover it
p
o*
tyty
P
๐ต
oh god that ai modder made a weather mod. angrish
the who ๐ญ
https://www.nexusmods.com/stardewvalley/mods/39848 zeroxpatch, uses gai for everything
note this mod was first released yesterday
wait like even the code??
(he "checks the AI output" but.)
hm.
"Stardew Valleyโs built-in weather forecast is often:
easy to miss
vague
buried inside the TV
missing for modded weathers"
uh..
it's not vague, it's very easy to find, and most weather mods mod the ..
...
okay, sure, whatever.
(I rran across it checking for latest mods)
I don't wanna hate on anyone (...in this scenario ..yet /j), but i agree it's so frustrating when ppl use AI to make acutal ART like cmon
(art also applies to other creative shit like mods imo)
im troubleshooting a cp mod (my first mod!) and ran smapi without any other mods, including cp lmao
im just glad AI is banned here
whoops 
ough i hate people using ai for mods
REAL it's just soooo irritating
congrats on your wip mod btw!!!
like mods are a community thing why would i use a mod someone couldnt even be bothered to make a thumnail for
let alone code
ty!!!
ok the same issue still happens without any other mods 
i just followed this https://stardewmodding.wiki.gg/wiki/Tutorial:_Your_First_Content_Patcher_Pack but the item shows up as this thing??
Last edited by AtlasVBot on 2025-09-13 18:58:05
Welcome to creating your first Content Patcher Pack. I wanted a quick and easy way someone could copy, paste, and run their first content patch to prove to themselves everything's working as expected. I always find that creating my first, simple, working code gave me the confidence that I could tin...
this tutorial uses Entries when it should use Fields
oh ok
Entries practically speaking erases all the data about the item, and then fills in that newly erased item with the stuff you wrote (description and displayname in this case)
Fields will not erase anything and only change what you wrote it should change
ohh tysm!
the reason it turned into the green weeds is because since the data is erased its actually all being reset to default values, so its using the very first texture on the objects spritesheet
among other default values for things like edibility and type and whatnot
ah yea, i assumed it was something like a missing texture issue
Weedses
weedses
Guys, when does our logic runs in the game? Does the game prioritize vanilla logics over our logic? Or Do they all run in the same tick?
I'm still trying to manipulate a certain vanilla logic(the one that stops button B from being fire continuously)
There's no 1 answer
For something like that you'd have to look into how and where this is being done
Do you think it even works?
i know it's generated bullshit but the preview on this one is just nonsense
https://staticdelivery.nexusmods.com/mods/1303/images/39848/39848-1764652746-1115570415.jpg
the lost arts of farhing
{
buttonBHeld = true;
Game1.currentLocation.tapToMove.mobileKeyStates.actionButtonPressed = true;
return;
}
if (buttonBHeld)
{
Game1.currentLocation.tapToMove.mobileKeyStates.actionButtonPressed = false;
}
if (!_touchingButtonB && buttonBHeld)
{
buttonBHeld = false;
}```
This is the vanilla logic, and I'm trying to manipulate it with these
```if (pad.buttonBHeld && !state.actionButtonPressed)
{
state.actionButtonPressed = true;
}```
missed opportunity to bring back fan-favorite CLEAB on the last column
Each weather type provides buffs and debuffs, with buffs always totaling +1 more for fair progression.
Buff totals always equal or exceed debuffs by exactly 1 point.
our results determined this to be a misleading answer
appreciate muddy rain for farming +2 mining +1 foraging -2 mining -1 just to make sure your mining is better and also worse
i wouldn't normally have anything bad to say about a mod page, but really the entire thing feels generated hahah
smapi only
which stardew animal is this?
(it is, code included. they say so in their github repo)
No clue, I wasn't inclined to look
I updated Font Smasher. Now it lets you change the colors used to draw the spritefonts, including overrides for item category text.
https://www.nexusmods.com/stardewvalley/mods/38900
hmmmgggrrrhhhfsfs
in my perfect world this type of shit would be illegal
ah yes, giant bunny head over a firestove(?), while crawling below the hanging diploma was the โโโโโ[CORRUPTED DATA DETECTED. UNIVERSE INTEGRITY BELOW CRITICAL LEVEL]
Does anyone know offhand if it's possible to call farmer's name in a message in events?
message "{{i18n: sam.event.movingforward.6}}"
I know @ gives you a left arrow, and I've tried {0} and some other numbers... pretty much everything I've seen used in code.
if all else fails use the farmer name token
Oh, you mean create a token calling farmer's name?
Ah ha... thanks!
..............
why can i not put recipes in the stardew fair shop

Bruh
Wait no
It's obviously because my test save has already learned every recipe in the game
.....
when you're adding an animation for a schedule do you use an NPCs internal ID for the key so it calls from their sprite sheet? like "{{ModId}}_Fable_sit"?
A Data/animationDescriptions entry only specifies which frames the animation uses, it does not affect spritesheets, the key/name is arbitrary, it will use whichever spritesheet your NPC currently is using
oh I see, so if I add fable_sit as the key and use that in her schedule it'll automatically pull from her sprites. do I have that right?
Yes
thank you!


