#making-mods-general
1 messages · Page 284 of 1
and then using that dynamic token inside the i18n, which would then be parsed as the token passthru
as a quick n easy way to auto-passthru any token you might need
wonder if it's possible to make meads colors change based on the honey color used?? with just content patcher??
so the initial idea was to just let you set a bool that makes CP auto pass thru certain tokens automatically so you dont need to do that
Yeah or give it a set of tokens to do that on
just wondering since content patcher is likely to be updated for a very long time
I didn't implement that in prototype
That's possible i think, wag kombucha works like that
Although that's with entirely custom artisan goods that copy color all the way
imma check out the inner workings for that mod! i love the idea of meads being various colored based on honey colors since i know there's packs that add honey colors!
I think there's already mods that do this tho
wait really? for meads right??
The emc flavored mead pack, better honey mead, some others im sure
i kinda want em to match fancy artisan goods icons tho
it's just figuring that out ya know?
it'll likely take months in the best case scenario due to my current skill level and attending a day program a few times a week
a few months is better than never!
5 years later is also better than never
"the time will pass anyway"
In the context of video game, are you sure about that
Go mod that new one, silksong or smth
you need either Better Honey Mead or Colored Honey Labels
whats a silksong
it's not possible with CP alone because honey by itself isn't colored
can i eat it
thats atras line
its what the spider in hades2 does when singing while using her web as a harp
you can make a CP pack that retextures Better Honey Mead's custom colored mead icon if you want
arachne? 🤔 the spider?
(why does atra know what silksong is...)
so best case scenario i'd have to do a fancy recolor of it for better honey mead or colored honey labels?
imma check which is more up to date but i'll likely make compat for both
yeah
though keep in mind the latter doesn't color mead, you need to do that part yourself (it only colors honey)
atra learned about solksing unwillingly
solk...sing
Your Apple tree wasn't able to grow last night... but where? This simple mod gives an additional notification that includes the name of the location where the fruit tree is. https://www.nexusmods.com/stardewvalley/mods/33035
(for anyone aware, this isn't my current main mod - I made this in half an hour just now)
My coworker's boyfriend is excited about it
(What is it?)
i think the silk sings songs
im content to let atra wonder forever for this one
"CanBeTrGreyed": false,
😭 i was wondering what the hell this was but i remembered i just replaced all mentions of "Ash" to "Grey" and this was one of the victims
Is there a way to send a letter on the condition that the game has a flag, like a when condition using HasFlag? I know to make the entry within a new EditData thing, but I'm not sure how to actually send the letter
The primary way to send mail now is using a trigger action. You check for the presence of a flag with the GSQ PLAYER_HAS_MAIL in the "Condition" field of the trigger action.
Thank you for your help!
No problem :) there's actually an example of sending mail after the player gets a mail flag on the trigger actions page of the wiki, too.
😭😭😭 coming in to see everyone was talking about silk song and I missed it
I'm having trouble making ambient light for a map- is the RGB what the game subtracts instead of adds? The color seems to be the opposite of what I want it to be (red instead of green)
I come here every once and a while to read what going on. It is amazing how often Mail flags are mentioned.
Seem like 1/2 the game is mail flags. 😀
I think it is subtractive, yeah.
yeah this is how the lighting works™️
subtract from 255 to get the values you want
Ahhh.... Okay, ty, time to do some simple math
I can't seem to find the font that dialogue boxes use. I didn't see it in cursors or in the fonts folder... can someone tell me where I'm missing it?
🤔 it should be something like Font Bold or... no?
(Or flip each bit 😛 )
geh, its in loosesprites
XD
when in doubt check there
font_bold yes yes
Oh, thanks! I thought I had checked there already.. must've missed it
Is there a way to create a custom category for items?
Not easily
You can do it with C#
Changing the display name is much easier
And more compatible
do you need an actual custom category or just a category displayed to the user?
doing the second one is very easy with spacecore, doing the first one is hard and requires c#
What you do is make it some category and then use a framework that lets you rename what it shows. Like Trash category but rename it to Junk
Or Vegetable category but make it show Herbs
im making dna item but stardewvalley's category is not good for me
Should I use the tools category?
are you making a custom tool in C#
what does DNA do
Nope, Im using only CP
put into custom incubator and I gonna make custom egg
I've been toying with the idea of making a mod that tweaks the backstory of date able vanilla characters in order to age them up. For example, Alex is a personal trainer and his grandparents moved in with him when they couldn't live on their own anymore, Abigail moved in with her parents after a divorce and started grad school, and Sam is Jodi's brother/Vincent's dad.
Before I start figuring out more specifics, are there already mods like this? I haven't been able to find any, but it's totally possible I missed them!
Kantrip's older sebastian is one https://www.nexusmods.com/stardewvalley/mods/31574
That's cool. Kantrip has made an older Seb mod where he's Robin's brother rather than son and is working on an older Sam mod too, but two cakes!
Oh, awesome, ty! I'd only found portrait edits, I'm going to check out older Sebastian! (I didn't have an idea for him, so I'm glad one already exists 😂)
As an Old who plays I need older marriage candidates so I don't feel creepy!
if you are making a mod like this the main thing to be aware of is that you are automatically incompatible with everyone else 
There will always be people who ask for compatibility--I had someone the other day comment on one of my mods that's already compatible with SVE about how I should move my map to be compatible with SVE in a different part of the map
Yeah, I considered that! I think in that sense Alex would probably be easiest to age up, because there are less friendship connections, but it would be good practice before trying an NPC!
Which I will be ignoring that post on my mod page, because I already made sure the current location is compatible and if I followed their suggestion, I would break every other mod that tries for SVE compatibility with the suggested different map.
never forget the users who asked:
- whether upcoming SVE content would be compatible with SVE
- to remove the star wars references from the mando mod
I would definitely be interested in "older X" mods, even if I wasn't romancing them.
In my "maybe one day" list I also have a mom's club expansion mod for Robin/Jodi/Caroline, because Jodi is probably who I relate to most
More older characters and story lines!!
Just gotta be careful to limit which characters you age up if they're not already romanceable.
I specifically had to move Penny and Jas's character replacements around for my upcoming Legend of Zelda NPC mod so that Jas (even replaced and aged up as a completely different charcter) didn't become a romanceable character and I didn't run afoul of NexusMods ToS.
The idea I have would basically be either separate mods or one where you could toggle which ones
Ohhh, yeah, I wouldn't make the kids romanceable
Or probably age them up much if at all
Just wanted to make it clear to be safe! Some people don't realize where that line is.
Idk, I always have huge ideas but the follow through is the hard part!
!npc
Keep in mind that making NPCs is a complex process that requires learning many different aspects of Stardew modding.
Here are a few links that can help get you started on all that you need to know:
-
Tiakall has a great tutorial on making a custom NPC for 1.6.
-
NPCs no longer use dispositions, check the wiki page for the new NPC data.
-
Aviroen has put together a template that will allow you to easily create a romanceable NPC.
-
Feel free to jump into the https://discord.com/channels/137344473976799233/1277457201077813280 thread for more interactive feedback and help!
-
Fireredlily has a WIP NPC Builder Please do report any errors you get with it into the NPC thread!
the stuff you need to make a vanilla character overhaul is about the same as new npc
I've looked at the wiki, but will poke around that thread! Where they'd live was one of my questions
finding a place for your NPC to live is one of the toughest problems. however, there is an apartment building mod by fireredlily that can give you a place https://www.nexusmods.com/stardewvalley/mods/30295
Awesome, ty!
(funnily enough, that's the mod I was referring to that's already SVE compatible but had one user wanting me to move where it is in SVE, LOL)
is there a way to do random number for the available stock in a shop?
I believe you can set RANDOM <#> as a Condition for the Item entry?
i believe so 🤔 ? unless im thinking about the wrong thing
with AvailableStockModifiers
basically add entries for "if RANDOM 0.2 then Add 2"
Ah thanks Selph I don't know how I missed that ..
anyone know how to mod on mac
!gs
If you would like a guide to setting up mods for Stardew Valley, check out the getting started guide! https://stardewvalleywiki.com/Modding:Player_Guide
and wrong channel
so fast chu... such speed
I was looking at this one from the Carpenter: https://smapi.io/json/none/1800798f918b46058531a06a538102e0
oops, sorry, that's long
Not random items, I got that down, I meant a random number of said items
like ... sometimes sell 3 bread or 1 bread
Traveling Cart has a lot of entries that use the multiplier though.
but the uhh thing that Selph mentioned helped
that's true
I forget that the base game has examples sometimes
Hi all! I have a technical question about texture load times. Anyone experiment with converting a mod's .PNG files to .XNB files to speed things up? And is this the best place to ask?
pathos/sinz probably knows the best, you can try pinging them
but my hunch is that it's not going to make a difference
I don't think SMAPI does any conversion to XNBs and just loads it into a Texture2D in memory
I would feel like a guy on the street desperately waving at a celebrity I recognize, trying to get their attention. xD
same tbh, but this is a highly technical question that I'm also not qualified to answer
turning your stuff into xnbs would be a major annoyance to anyone who ever had to deal with your mod for compatibility purposes
or to try and debug things
I've started a new run on my Steam Deck, playing splitscreen co-op. We just got done with a Perfection Run that had some QoL mods, and now we're going again with Ridgeside Village and Stardew Expanded in the mix. Great fun! Unfortunately, adding these two huge mods has started a labor dispute with my Steam Deck. Once we're in the game, things are mostly OK (60 FPS framerate), but when one of us loads in as Farmer 2, it takes 20-30 seconds to load that player in. If one of us goes in to Pelican Town while the other is on the farm, we get a big ol' half-second lag spike, and that's repeatable. We get other infrequent, not-so-repeatable lag spikes too. It's not so fun. I installed SinZ's Profiler to troubleshoot. It tells me that Content Patcher is taking thousands of MS to load, which makes perfect sense to me - RSV and SVE are big mods.
I tried removing all mods except SVE and RSV and their pre-reqs, and the behavior is largely the same (if not slightly better).
SMAPI isn't complainig about aything being out-of-date, and to wit, I have similar issues on both my Steam Deck and my gaming PC (a custom desktop with an AMD 78700X3D, RTX 3080, & 64 GB of RAM; the game is loading from an NVME SSD). The issues on my PC are far less noticeable, but still measurable.
So I had a moment of idiocy:
I play with lots of expansions mod on my SD (albeit only single player) and I don't have any loading/stuttering issues. same with my desktop. are you sure it's not multiplayer latency
Why not convert those mod's assets into XNB files? See if it speeds up load times?
It's not multiplayer latency. We're both on the same Steam Deck, same couch, playing split-screen co-op.
Oh, and that's another thing - none of this appears if I'm testing in single player on the SD. Only on multi-player. If I do this on my PC and bring up Task Manager, I can see SDV takes up a lot more RAM when you host a local multiplayer game, at least when another player joins in.
that sounds like its less a problem with the file format which i imagine impacts little once its loaded, and more so just the processing required for per-screen stuff
sve/rsv can't function as pure xnb mods though
Sure, but can I convert some of the PNGs into XNBs and make the game load those assets that way?
yea but cp has to edit a Texture2D
as button said once those textures are loaded into memory the deed is done
it really doesnt matter whether the info came from a png or xnb
i mean CP is not going to be constantly reloading files if it doesnt need to
give this page a read https://stardewvalleywiki.com/Modding:Modder_Guide/APIs/Content
I am under the impression that the lag I'm experiencing (half-second freezes and such) happens only when the game loads assets. If I leave an area and come back, the game loads some assets again, unavoidably I'd assume. I've seen some much shorter lag spikes when one of us triggers a cutscene or opens a menu. The biggest spike happens when one of us enters Pelican Town.
since you are doing local coop though, i believe CP maintains a separate context for each of you
Next up, I saw a video (I'll try to dig it up) where someone had a texture replacement mod for Terraria (another XNA game), and loading the replacements as PNGs took like, 20 seconds. Loading XNBs took far less time, like 3 seconds.
My understanding is that XNB files are bigger, file-size wise, but they are textures that GPUs can use straight up without any translation. PNGs have to be loaded into memory and then converted into something the PGU can use.
they depend on CP features to do things
Lemme find that video real quick.
https://old.reddit.com/r/Terraria/comments/1g91bnc/psa_make_your_texture_packs_load_faster_by_using/
and idk why terraria would be relevant here tbh its a different game
It's relevant because both Terraria and Stardew are built on XNA (or rather, MonoGame). Apples and Oranges, sure. But I think there may be something to converting PNGs to XNBs and telling mods to load those XNBs.
I don't want to convert a whole mod to some labarynthian XNB file, I want to convert individual assets to XNBs and see if there's a marked performance improvement. Just wanted to see if anyone else had been down this road before and could warn me off of it.
well it is a thing content patcher supports for Load at least? idk what its gonna do with editimage though
(well we kind of are warning you off it or directing you to someone(s) more knowledgeable but you seem determined to try anyway, so i say it cant hurt to try if you really want to, but i just wouldnt be surprised if the results didnt help or if they broke a mod completely)
That's fair. 😄
I'm expecting file size to balloon, RAM usage might also go up, and it'll be way harder for anyone else to customize the assets, but it might load 10% faster.
before doing all that maybe try sinz's experiments
you gotta build it yourself but these are things to try and improve map and texture edits
Woah, those are some major improvements!
Alright, with that and the wiki link, I've got some work to do. I'll try to keep you all posted with any updates I have, including benchmarks.
Thanks for the advice and the links!
Does HasSeenEvent in ContentPatcher return all event IDs, or can be used e.g. "HasSeenEvent": "1, 2, 3"?
Do you want to check if any of them have been seen or if all of them have?
All of them I think
That would look like this (so it will only return true if event 1 has been seen AND event 2 has been seen AND event 3 has been seen):
"When": {
"HasSeenEvent |contains=1": "true",
"HasSeenEvent |contains=2": "true",
"HasSeenEvent |contains=3": "true"
}
And in case you decide you want to check for seeing any of them (so it will return true if event 1 has been seen OR event 2 has been seen OR event 3 has been seen):
"When": {
"HasSeenEvent": "1, 2, 3"
}
OR
"When": {
"HasSeenEvent |contains=1, 2, 3": "true" // this one is handy in case you want to check a player has NOT seen any listed event, by setting it to "false" instead
}
And link to docs in case you would like the reference yourself in future: https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide/tokens.md#global-input-arguments
Oh yeah I've read this but forgot. Thank you!
If i use the winter tilesets when tiling my map will it still be compatible with recolors
(the map im making only shows up in winter and itll be hard to visualize it otherwise)
I don't see why not.
I make my maps in winter
Well I was about to see if I could make an event conditional on a player's heart level with their pet. I forgot that people can forego the starting pet entirely 
Making maps in winter sounds cool
Most players probably have pets, so I don’t think the few who would miss it would be a big deal
I feel like itd be pretty blinding to do it cause of all the white but ... wait was that a pun-
u get to have pet in like y2 anyways
I mean it would be an NPC introduction event that unlocks the NPC so yeah that's a pretty big deal
just do a OR maybe?
oh
Making maps in winter is mostly blinding, but winter has the worst tile joins so I got sick of getting everything to line up nicely in spring and then seeing a bunch of mismatches in winter.
That would be different
it's no big deal I'll just do something a bit different
Oh no… I didn’t know that
I just dont think about it
I've been having my mod load without red errors in the console after doing large edits more frequently.. its scary /lh
I don't think about it until I test my spring map in winter and see how bad it looks. there's just some grass tiles etc that looks fine together in spring but not in winter
what do you mean im not missing six commas ... what do you mean all of my syntax was right first try...
I can overlook many, many issues in the game to do with mismatches, including entire tiles not being recoloured - unless it's my own mod in which case it must line up perfectly at all times.
Perfectionism can hit creators hard. It can be good, but also has the potential to steal a lot of valuable time
it truly does
It's fine when other people's stuff isn't perfect but MY stuff... 
It's a hard mentality to get over for sure
I like to think that all the time I’ve lost due to it is going to be worth it in the end…
so in an event can make an npc lose friendship or gain it; but what about normal non question dialogue. Can I still make someone lose it as like a response to talking to Abby after X event or would I have to just include it in X event before hand instead of the response dialouge when spoken to at a later point?
I feel more satisfied if I make something I like but I have to find a balance between making something I like and it being impossible to do the thing
im not quite sure I follow
you can have question responses where the player loses friendship with them (in general dialogue)
I'm working on an event with roughly six possible answers; effecting several different npc's and while working on the responses of them hearing about what player said about them I thought it would be cute if they gained or loss friendship the next time you spoke to them; I just don't know if I'd have to add into the event or if It could added onto the dialouge without an additional question.
You would have to put it in the event but you can add in an end dialogue response from each npc
(or do the question thing)
You could make it happen the next time you spoke to them, I think, by checking for a specific dialogue answer from the event.
you could also set different CTs in the answers probably
the other one
There's a lot of ways to do it though
Losing friendship at the end of each branch as well as an end dialogue for each npc, conversation topics, checking for specific dialogue answers( if you're using the other... thing i still cant remember)
$p would work if the answer from the question in the event counts as dialogue answers.
I am referring to doing the friendship loss in the dialogue, not during the event, as I think Lily is meaning.
This is oddly more complicated then I thought it might be
Can you use end dialogue for multiple NPCs?
you can!
For their situation they can also just have an individual end dialogue for each ending since it sounds like ieach one is focused on one npc
/end dialogue {{ModId}}_TheMrQi \"{{i18n:Aos.FriendQiEventSW8H11|QiPlayerTitle= {{QiPlayerTitle}}}}\" Wizard \"{{i18n:Aos.FriendQiEventSW8H12}}\"", - I have this one for one of my events
oh hm... not separate ones no
You can still have multiple NPCs in the same end dialogue but not individual ones if there's no branches
I was trying to add the removal or addition using a conversation topic; considering said npc wouldn't be present in the event
Using a CT would work
That is good to know, I was worried it wouldn't because I could never get actions to work inside dialogue so I feared it would not and testing the addition to friendship is a lot harder.
Is there something weird about my advancedMove command here? The farmer is just walking in place instead of walking north. I checked my map and there are no obstructions broadcastEvent skippable changeToTemporaryMap {{ModId}}_AnimalShopSpork false pause 2000 warp farmer 13 20 true pause 200 playSound doorClose pause 2000 advancedMove farmer false 0 -4 1 100 pause 6000
wouldn't they be facing right when doing that
I'm not sure if that matters though... it might be the pause at the end? Is there a reason why you're using advanced move for this as a singular movement?
Usually they do that because there's another command coming after it but you have enough of a pause that it shouldnt happen theoretically
hmmm if I warp the farmer in one tile higher it works, I'm guessing the problem is that my temporary map is one tile taller than the location the event starts in
also I just need to say this is making me laugh harder than it really truly should
compressed qi...
I was going to say it might be related to the change to temp map
Movement stuff can be so fiddly.
I have given up on the move command almost entirely.
Not that advancedMove doesn't have its own challenges, but I tend to be able to wrangle it better.
are you using spacecore to make a warp item that goes to that statue? I was thinking of making a warp statue but ended up using FTM instead of spacecore for monster spawning.
I am! I have an obelisk (for Content Patcher) and a totem
Chu scope creeped her into doing an obelisk lol
The Obelisk makes it so that people who can't use spacecore can still eventually warp here (even if its harder)
It was the worst thing ive ever textured to this date
It's handy to know that Hiria will not be mobile compatible. Sorry mobile players but I will not give up SpaceCore for you.
(I also switched to FTM for monster and forage spawning)
Mobile players just don't get cool stuff
Well now I want to scope creep chu into adding warp totem functionality for mmap so I don't have to require spacecore
My shop is fully implemented
now I just need to do three more maps...
But spacecore saves us all from Willy choosing terrible pathing options
It truly does, but if mobile players REALLY wanna play with my mod they'll have to deal with it B)
'Why does the village go into qi's room'
He's popular idk
also second what was said about advancedMove, the basic move command is a mess
It is a mess at times, but for simple movements I still use it 
its even better in game 
I can't use move for simple movements because I do so much movement-breaking stuff in my events that it rarely works even for the most basic movement.
I tried using it for one of my jumps and it was working okay until I added more stuff to the event and then it broke lol
yeah for me it was mixing move with advancedmove broke everything so now I just use advancedmove
also shortening my temporary map to use the same dimensions as the original event location fixed it so I guess that was the issue
I just wanted to expand Marnie's kitchen a bit to accommodate some movement and guessed people wouldn't notice. Now I'll have to see if they also don't notice that I made the bedrooms shorter to keep the map the same size 😛
Hello there👋 , I am new here. And I am here in search of modding questions... Is there Anyone familiar with modding the PC and mobile version stardew here ?
This channel is for mod authoring, if you need help installing mods try #1272025932932055121
hi dudes i wonder if anyone debug via mac rider? just moved from windows rider to mac's and the debug config did not pop as it was on windows
sry im fresh on c sharp and the dot net launch profile seems kinda hard for me now XP
i guess pathoschild's mod build config package did the stuff on config the run profile for rider in windows?
ModBuildConfig is only setup for running on Windows, correct
here is the relevant part https://github.com/Pathoschild/SMAPI/blob/develop/src/SMAPI.ModBuildConfig/build/smapi.targets#L39-L44
you could copy-paste that into your project without the condition and try figuring out a way to make it run properly on Mac
although i don't think you'd have access to GamePath then
you'd have to declare that manually
wow thats so kindly, im just brain storming the keywords that should google
🥰
like declare permission for term during installing smapi?
i have no clue what you'd have to do unfortunately
i assume if it was very simple, it would already be a part of SMAPI's ModBuildConfig
or maybe no one bothered yet
Yes I understand, and I am seeking to make a mod for PC and perhaps the mobile too, not to install mods
oh it makes
Perhaps if anyone has an idea about the question, I need help for idea/suggestions to proceed please
Terraria is technically not monogame but FNA
Sin have you looked more into the performance optimizations since the last experiments?
Just curious
Neg
!startmodding We can help for making mods on PC. Probably not much help to be found for anything specific to mobile here though.
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.
I see, thank you mate ^^
SMAPI's asset pipeline intercepts XNB loading and only goes back to xnb if nothing in the asset pipeline tries to load.
And once smapi has loaded and edited the asset, it will be in an in-memory cache of that asset until something invalidates it (i.e. due to wanting to have it change.
In addition, only 'game' assets can be xnb, i.e. stuff in the Content folder.
reading from a mod folder directly can't be an xnb, and you aren't doing custom locations or npcs in a modular fashion as an XNB without baking all your mods into singular files, and even then I don't think you will even see meaningful performance wins.
The performance wins I have in my WIP changes come from adding caching to reading from the mod folder, as unless you are a mod dev working on a mod in progress, the filesystem may as well be immutable and caching there gives serious performance wins, along with some other map caching behaviour in content patcher
Using explosionAt, a gamelocation method. I added logic to detect when a bomb hits specific tiles and trigger a mail flag, which then starts an event tied to a map patch.
Profiler Peformance Probing
For future reference, my stance is to ping me when there is profiler logs containing unexplained lag.
I need data to make performance fixes
Is stuff from 1.6.8 any use to you, SinZ? My game lags up to 20 seconds randomly during play after a few in-game days but I'm still back in 1.6.8. I suspect it will be the same once I'm playing on 1.6.15 but it will be quite a while before I can manage to build up a mod list for that and therefore get the same impressive lag levels.
probably, follow the instructions in the thread.
I'm not sure if I'll need to backport the smapi or cp builds or not
If it needs to be these versions of CP and SMAPI to be useful for you then I don't think they will be happy with game version 1.6.8 but I can try them and see.
Profiler and its content pack wont need them, but will need a separate CP build at minimum to have its logging added back in
making a content patcher build now for 1.6.8 with just the logging
Is coding required to make custom outfit mods?
Some background: I mostly play vanilla so idk much about mods.. but I'm currently commissioning a custom hair and outfit for a streamer friend so that she can look like her vtuber character while streaming Stardew..;;
Could I trouble yall to direct me to where I can find info regarding understanding custom outfit mods? I'd like to know what exactly is needed for an outfit mod? I imagine all that's needed is the png of the outfit, pants, sleeves, hair and hat in all directions angles and when interacting with things/people? beyond that.. is there coding the artist will need to do too? or would that be covered by fashion sense?
Apologies in advance if this is posted in the wrong channel 
Not coding in the sense of using a programming language, no. But making a Fashion Sense mod (or Content Patcher mod) requires writing json.
Here's the Fashion Sense docs:
- Hair: https://github.com/Floogen/FashionSense/wiki/Creating-a-Hairstyle-Content-Pack
- Shirt: https://github.com/Floogen/FashionSense/wiki/Creating-a-Shirt-Content-Pack
- Sleeves: https://github.com/Floogen/FashionSense/wiki/Creating-a-Sleeves-Content-Pack
- Pants: https://github.com/Floogen/FashionSense/wiki/Creating-a-Pants-Content-Pack
- Shoes: https://github.com/Floogen/FashionSense/wiki/Creating-a-Shoes-Content-Pack
Also, is this artist using the unpacked game sprites as a base to know what to draw? There's quite a lot to account for, as far as I understand. Here's the wiki page about how the farmer sprite works: https://stardewvalleywiki.com/Modding:Farmer_sprite
Also, this is the right channel to ask this stuff :)
Anyone know of a good way to use 2 character sprite/ portrait mods at once? I’m trying to make a mod that changes the outfit of the marriageable candidates to be pajamas while at home, but I’m struggling to get it to work with other mods (specifically I wanted it to work with the Seasonal Outfits mods so the characters would wear the seasonal outfits outside the house and the pajamas when inside.) any suggestions?
I think SCA uses the appearances system now? So you can add an entry for your indoor pjs to Appearances that has a stronger (lower) Precedence value
Can someone help me understand what I am doing wrong here? https://smapi.io/json/none/cc5995c0969b47c994b0e80787695959
I am trying to get the forage to spawn in a specific area but even with testing and setting the spawn rate to 15-15 I am still not getting any forage...
I want the forage spawned here on the grass
What is this ?
Farm type manager
Ohhh thx
esca I need your help 😭
I thought Farm type manager overrided that????
maybe, i don't remember but it's a direction to explore
since well, your stuff doesn't work so you may want to like, test solutions
you also have no terrain selected
I don't even know how do the forage allow....
so i would :
- select a terrain
- then set a property
@royal stump can you tell me if I've done something wrong with your beautiful mod?
Looking at the little questionmarks on the config editor html, I don't think I Need a terrain type...
i don't really care if you're not willing to test some stuff yourself 🙂
I am testing myself...I was just letting you know
trying to figure out the tile properies I need to set rn...
"Exclude" settings override "Include" settings, so your first "ExcludeCoordinates" entry is preventing spawns on the entire map, basically:
"IncludeCoordinates": [
"3,125/40,146"
],
"ExcludeCoordinates": [
"0,0/184,122",```
The way FTM handles the include/exclude stuff is that it makes a list of any tiles with something from IncludeTerrainTypes , then adds any tiles in IncludeCoordinates, then removes any tiles from that list that match* the Exclude ones
(which is also why using both include terrain types & coordinates usually makes a mess; they only need to match one or the other)
I don't have the forage area put into the exclude area unless tiled isn't showing x/y and is instead showing y/x
Hi all. I need to create a multi crop for culture. But I just can’t find an example of how to do it correctly. About a year ago, I found an example of how to do this, but it seems now it does not work.
oh, I misread of of those numbers, one sec
multicrop needs usually one external mod for that
I try to do this on CP
yes it's what i'm saying, i'm pretty sure CP alone isn't enough
I mean I can totally see if I screwed up somewhere...I've been....scatter brained of recent due to external circumstances
i use Spacecore for that but it has some few limitation (that i'm fine with, but some users are annoyed by it)
Have heard good things abt space core...need to learn how to use it myself 
Also, just so I might understand this, technically I COULD remove the exclude all together and just have the included area?
or am I mistaken?
And there is an example of fashion, how to use Spacecore for multicultures?
yes, you should probably just remove those and only use the include coordinates
excludes are just necessary to "cut out" areas from the includes, basically
which doesn't seem to be the case here, though the numbers were a bit confusing
All I know is the last time I had only include coords, I was getting forrage spawned near the farmhouse
Thank you very much, I will try 😊
given the file you uploaded at least, FTM could only spawn anything in the 2-tile-tall strip at 3,125/40,146, regardless of which excludes are there
(in the forage section, at least)
So if I want only this area I have circled to be spawnable, I need to make sure that it is ONLY those tiles in the include?
sorry for so many clarifying questions
Pretty much, yes. The way I'd do that is to put the top left and bottom right grass tiles in "IncludeCoordinates", then put "Dirt" in "ExcludeTerrainTypes" to avoid the non-grass tiles within that, assuming you have the dirt type applied to those
Ok, and then another question... are these tiles no longer considdered quarry tiles? cuz tiled is calling them dirt only...Do I have to set my quarry tiles manually in FTM?
it's not the quarry tiles, quarry tiles have a specific index, but i believe you can list your own tiles somewhere
The quarry and custom tile lists in FTM are based on sprite index only, it's not a property like the others
(I think those are the right ones, assuming you're using the same sheet as the hilltop farm/etc)
I could've sworn at one point they were qualified as quarry tiles in the settings and meta data of the tilesheets...
the game's never used "quarry" as a type, it just hardcodes the spawns for the vanilla farms and the mountain anyway, etc
though 1.6 may have added some map properties related to that
Ah
Ok Pokemon fans, I have given pokemon partners to everyone (alphabetically) up to Morris and I have reached a problem. Do I give Morris a partner? Since he's kinda the "bad guy" I don't want to call any pokemon "bad" 'cause every pokemon is somebody's favorite...
Meowth... Give him Meowth...But give him the Galarian form
The pokemon villains all still have pokemon, I don't think that will be a problem
Morris to me is more team rocket over villain
The trick is to find a redeeming quality of Morris and choose a pokemon connected to that
Ohhh that might work 'cause I was thinking I'd give Pierre Kantonian Meowth.
believe it or not, there are people whose favourite character in vanilla stardew is Morris too
I don't get it but they are out there
I admit I've never played the Joja route or interacted with Morris much 'cause it makes me sad @w@;
I just like watching him get punted when you finish the cc
I'm sure that's true. He's just the antagonist which frames him as "bad" in vanilla stardew, and I don't want someone to be like "That pokemon is my favorite and so good so why does Morris have it?"
Also, esca, if you're still around, can you clarify if the Find existing object locations for large items (IE stumps) will override the include locations? And if so, does this work for making sure that the stumps will respawn here only? I am only asking because I have had some people dm me on nexus saying that they're having stumps respawn EVERYWHERE
I think if I give him Galarian Meowth and Pierre gets Kantonian Meowth, then it puts them in opposition with each other rather than putting Morris in the position of "bad guy with bad pokemon" and I kinda like that
I don't recommend using that setting, it's mostly still there for legacy reasons. The first time a large object area spawns anything (e.g. the first time someone plays with your content pack), if it has that setting enabled, it'll create a list of all existing stumps/etc (whatever types you're spawning), save it, and add those tiles as extra "include coordinates" every time it spawns things.
The default FTM config settings use it to make all the original* stumps respawn every day, wherever they happen to be on a farm, but it's pretty confusing to use in any other case
Ok. So I should just select random 2x2 areas in the spot I want my stumps?
Pretty much, yeah, it'll help to simply it down to just some basic include coordinates. Although I think you should just use 1x1 areas (the top left tile of each stump), though I'm not entirely sure, since that changed at one point. 
I'll try out both and test to see which one I like more.
If you're doing stumps specifically you can use the stumps map property as well
fucking kill me, VScode is rolling out their AI tool to automatically scan and 'fix' everything you do in it as the default setting for eveyone
I mean it should be nothing really, but if it HAS to exist then yes
then, final question relating to layering...I had someone mention that when they put buildings in the quarry area, the fence tops clipped through the buildings, I originally made this map back when vanilla didn't support the Front 2 front 3 etc. layering. So the fence tops are on always front, if I make a Front 2 layer and put the tops on that, will it fix the issue with the tops clipping through the buildings placed?
(Just tested, and yeah)
"IncludeCoordinates": ["5,5/6,6"],```
A stump in this area can spawn with its top left corner in 5,5, 5,6, 6,5, or 6,6, so to keep it in a specific position, just use a 1x1
Oh yeah no I mean I agree with that. I don't think it should exist in the first place but there's no stopping it especially now. So opt in it is..
But nooo they just auto enable every ai feature ever it's so awful
the sprite index is the same as the ID when looking at them in tiled right?
yep, that should match
kk, thank you so much for the explainations and such XD At this point people should just call me the questions girl...seeing as I ask so many clarifying questions lol
(also FTM just looks at the Back layer to check those, for the record)
kk
one more, maybe stupid, question. If I want to omit certain ores from spawning, I can just delete them from the content.json right?
so like if I don't want clay nodes to spawn, I can just delete that entry right?
Do any of u do mods for mobile
me? no...Mainly because I have ZERO way of testing them due to me being an Apple user
yep, just make sure you delete it from all 3 lists, e.g. this should work fine
"MiningLevelRequired": {"Stone": 0},
"StartingSpawnChance": {"Stone": 1},
"LevelTenSpawnChance": {"Stone": 1},```
or just set the chances to 0, but both work

!androidsmapi
There is an unofficial port of SMAPI for Stardew 1.6 to Android. Please see the wiki instructions for more information.
IMPORTANT: This is a highly experimental build and may be prone to glitches, bugs, or incompatibilities. We are not able to provide support if you run into trouble or compatibility issues; please use the discord linked on the Android SMAPI github.
Do not harass mod authors to make Android specific compatibility patches.
main problems with making mobile mods is platform specific code
But if you are making CP only mods it's not so bad
I'm not familiar with coding terms 💀
I'm so sorry, I'm just here to look at cool mods
This channel is for making mods, for general discussion about mods there's #modded-stardew
I'm trying to add some recipes to my crops mod, I am not sure what I'm missing there's a an error recipe in the cooking menu. Might have to do with the recipe itself, I'm not sure what the function of the /25 5/ is that I'm seeing in other mods
the 25 5 is an unused field and the numbers are meaningless
difficult to help without seeing the code
!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.
Oh my bad, I asked this in the wrong server oof
The 25 5 doesn't do anything, remnants of something never implemented
does "error recipe" mean it shows a torch and wood as the ingredients or that the icon is an error?
(You can just do // if you want as long as you still have that section there)
it shows as a greyed out circle with a cross through icon in the menu
but the ingredients do display correctly?
are you able to spawn your Princess Soup item via CJB Cheats or a console command?
It's not showing the ingredients. I'll try to spawn it
Try removing the none at the end of your recipe
"-6 1 Towerstalk 1 RapunzelLettuce 1/25 5/Princess_Soup" so it's like this
it's showing an error item there but with the correct buffs on it. notranslation:PrincessSoup.description
The no translation issue is with your object not the recipe, it means the token you used for the i18n doesn't match what's in the default json
if thats an error icon but with the right data (minus the incorrect i18n token evidently) then I think you want to double check your Texture
hmm. but the i18n names do match between the object json and the default json. What do you mean by texture?
the i18ns dont need to match those
(ah wait i misread)
**
also, those dont match
your default.json uses _name but your object.json uses .name
and so on for all the other i18ns too
the desc i mean
Thanks I would never have caught that
as for the texture Lily is correct your "Texture" line might be mistyped or you may have forgotten to Load your spritesheet or perhaps its in an Include that was never actually included
fixing the texture may not be the exact/only solution to the recipe but its a good step to get out of the way as it makes debugging much easier when there's only one thing broken
I think I did forget to add the sprite sheet to the content json. Modding is hard
lotsa little steps, many easy to forget
ok so it is now i think properly in the cooking menu but it is not unlocked. How to make it default?
replace your none from earlier with default
none means the mod author manually decides when its unlocked via a trigger action or event or some such
default will make it so that the player learns it automatically

Was able to cook it, thanks everyone
happy to help! though it may be good to make sure your recipes and items and such will be compatible with other mods, if you're open to the suggestion/advice?
yeah of course!
sorry stepped away for my dogs for a minute
no worries! its just that none of your items or recipes have a modid in them- you'll usually see people use the {{ModId}} token in places, as this guarantees that your internal names will be unique and not clash with any other mods
like Jellybeans, for instance. if any other mod also added an item called "Jellybeans", you two would conflict and one of you would overwrite the other
but if you made its internal name {{ModId}}_Jellybeans then it'll always be unique, even if you both do that, because you will both have different mod ids
So like WWG_Jellybeans?
using just the token is fine! recommended, even
{{ModId}} is a token like {{i18n}} is a token, content patcher will replace any instance of {{ModId}} with whatever your UniqueID is in your manifest.json for you
just WWG can work but it technically doesnt guarantee it's unique
whereas its literally impossible for two loaded mods to have the same uniqueid
So I should just type it in as {{ModId}}_Jellybeans exactly?
its usually recommended to do this for anywhere that can possibly conflict, so mostly in things like Entries keys, location IDs, recipe names, etc
yeah, you'd change it to like this:
"{{ModId}}_Jellybeans": {
"Name": "{{ModId}}_Jellybeans",
"DisplayName": ...
...
}
you'd wanna do it for more than just the jellybeans ofc for consistency, even if its unlikely that someoine else might add items that match your other names
and you'd need to replace it everywhere that the internal name is used, so for example if you changed princess soup to {{ModId}}_Princess_Soup then you'd need to use it like that in the recipe data, too
Ok. I'll try to add that in
I have broken the descriptions again X(
is it maybe because i'm nesting the tokens? eg.
"DisplayName": "{{i18n:{{ModId}}_Adderroot_Flour_name}}",
"Description": "{{i18n:{{ModId}}_Adderroot_Flour_description}}",
you don't need to use {{ModId}} for i18n, your internal translation keys can be simpler.
furniture.table.1.name
furniture.table.1.description
furniture.table.2.name
furniture.table.2.description
furniture.chair.1.name
furniture.chair.2.description
summer.plant.1.name
etc
would it mess it up though?
mess what up? translation keys are all just contained within your mod, it doesn't matter what you call them, as no other mod sees or uses them.
A lot of Map stuff was cleaned up for 1.6 and some never used stuff was removed.
afaict using them now will only disable normal forage spawn, though I was never familiar with them to begin with
basically what it says on the tin. those do things in very niche circumstances
so basically dont worry about them
they wont disable anything but they will force things to spawn in aforementioned very niche circumstances
can you spawn desert forage on a farm?
(oh, sorry, yeah, it causes another spawn call, I misread some of the !s)
if the FarmHouse has those properties along with forceLoadObjects (or its treated as outdoors) then you can spawn forage from the Data/Locations data whenever you upgrade your house, get married, or get divorced.
otherwise its only when a GameLocation is very initially created
(the forage will spawn INSIDE the FarmHouse, i mean)
Data/Locations should be able to spawn any basic objects as forage, if you edit the right entry, yeah
(thats also the only context in which forceLoadObjects is used too, probably why its not bothered to be listed)
Just to follow up, this is fixed now. One of my transpilers was technically working but actually not working because of branch instructions. Things are fixed now.
everyone loves transpiler branching
oh I remember you add the farm to data locations
Yes. Love. That is the correct word definitely.
Sanity check: I can use i18n tokens in a file i Load with CP, right?
no
i see
absolutely no tokens will be parsed in a Loaded file
wasnt me
back to loading blanks and editdata-ing i go
Oh no i no longer have excuse to avoid split screen testing \lh
Barley y not just Load your i18n
Solves everything forever trust
i do not trust this
its not actually an untrustworthy or out there idea
More seriously you can do it if your i18n is organized just like dialogue
I'd have to do a fair bit of i18n splitting that i think it doesn't save time
The other reason to do it is if you want LocalizedText for whatever reason
i have my old versions (thanks git) so i can just copy/paste em back lol
(thats the case for my books mod)
Whether it work 4 u without refactoring is separate concern
Something i discovered the other day is that
CP sometimes treat Load as new data model, and sometimes as string string dict
If the former happens it's annoying cus I can't EditData in more entries
what would be a usecase for such a situation
Almost none i think
I was just getting errors when i was doing the i18n token thing until i changed my target from strings/demetriums to Data/Events/demetriums
Still the implications for Load i18n is that u can't merge them into 1 asset ig
why would you need to editdata more entries into it tho, why not include them from the start
In the case where u design a framework to do custom asset that works like dialogue assets you can hint at base type and itll be fine maybe?
thats just string string dicts tho innit? so there should be no issue right?
ok i went back to editdata-ing and all my problems are fixed and it means my harmony patch was not the issue thank you all
does make me more curious about how CP decides what the asset is though if you're just loading somethin fresh
you're welcome! (i didnt do anything)
happy to help
etc.
Well as mentioned when I tried to Load strings/demetriums CP decided it was a data model

I switched to Data/Events and that works (otherwise so many mod wouldn't work lol)
"must be one of: Item, Next, Parent, Previous" interesting
seems to happen in ContentPatcher.Framework.Patches.EditData.KeyValueEditorFactory.TryGetConstructorWithoutCache(). couldnt tell you what this code really does tho but thats where it makes it a ModelKeyValueEditor which gets CanAddEntries set to false
when you forget what you were doing
greetings fellers. i have a 5-day CT, and i want 1 of 5 keys to be played each day of the CT. i thought i could do this with _memory keys, but it only has one for oneday and not any other metric. how would i make sure a unique line plays each day, for 5 days, during this ct?
example if i wasnt clear
day 1 of ct: play line 1
day 2: play line 2
day 3: play line 3
have one CT trigger the next CT which triggers the next and so on
oh. blergh. is there any other way to do that?
not unless you want to increment a counter stat and make your dialogue have a 5 way GSQ ternary
if theres no way other than that way ill just do a random and not care
ewwww nevermind HAHAHA
ill just take the L
one CT = gotta stuff them all into one dialogue entry somehow
my favorite way of doing that: random
anyone know which track would be good for a magic room?
What about the track for Emily's dream
"Of Dwarves"
or just "WizardSong" if you want to use the Wizard's one again
also kind of depends on the magic vibe you want
is there a place for modding help?
as in making or using
making
here is your place
thank god
alright so im tryna make a mod that replaces the eat sound with my own custom one
what is the audio id for ofdwarves so I can listen to it
and ive been trying to make it with content patcher and it just not working no matter what i try
!json post what you have
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.
example
i have axchop there to test it quickly
{
"Action": "EditData",
"Target": "Data/AudioChanges",
"Entries": {
"slimedead": {
"ID": "slimedead",
"Category": "Music",
"FilePaths": [ "{{AbsoluteFilePath: assets/audio/ball_out.wav}}" ],
"StreamedVorbis": false,
"Looped": false
},
"rockGolemDie": {
"ID": "rockGolemDie",
"Category": "Music",
"FilePaths": [ "{{AbsoluteFilePath: assets/audio/firered_007B.wav}}" ],
"StreamedVorbis": false,
"Looped": false
},
"monsterdead": {
"ID": "monsterdead",
"Category": "Music",
"FilePaths": [ "{{AbsoluteFilePath: assets/audio/ball_faint.wav}}" ],
"StreamedVorbis": false,
"Looped": false
}
}
}```
debug ps "Of Dwarves" it also uses the name of "LavaMine" but that is shared by 2 other tracks
just a quick question but how did you get this code
"Of Dwarves" is it's unique name
yeah dont do that lmao
DONT USE AI
AI will have no idea how to do any steps involved, yeah
see here: https://www.stardewvalleywiki.com/Modding:Audio
!chatgptcode
Please stop trying to get ChatGPT to write your C# mods for you, especially if you don't know how to write C#. It won't work without heavy editing, and it wastes everyone's time.
Large language models fundamentally are reguritating something from their input—which is roughly speaking, the written output of humanity up until 2021 or so, for ChatGPT. For specific, niche topics like "is this framework going to do what I want" or "which things does Game1.cs have access to", it probably has no idea! But it's good at detecting that people in the past have....said things about frameworks and written things in C#, so it does its best to assemble words and symbols into a nice order for you. Sometimes it tells you true things, and sometimes it tells you false things, and if you can't detect when, you're in trouble. When you're writing code, this usually produces garbage, because you can't be "sort of similar", you have to be exactly correct or it won't work.
oh i see the track id has a space in it though
I don't even know why people think AI understands how to even make SV mods
that could be problematic
didnt ask chat gpt, i thought ai overview just summarized whats on google
That's kinda also what ChatGPT does, none of it is smart
i thought chat gpt didnt use google
It doesn't matter what it uses, it's the same mechanism
It produces something plausible based on a database, not correct
It is made to lie and sound real
they're both LLMs that know nothing about SDV modding and like to make stuff up
they are very much made to make stuff up in the shape of something that sounds plausible
anyway, pls follow the wiki link above
i dont fw ai generated stuff, idk why i keep trusting ai overview cus its wrong a lot of the time
and the example posted by dreamygloom
Hi! If I wanted to reduce the prices of a shop by percentage..maybe like 25% off everything, is that possible? I know I can change prices individually, tho! Thanks!
Selph can smell AI code
that's how I did it for replacing the slime defeat squish sound
its usually pretty clear when someone gets somethin from AI tbh "where/how did you get this" is just the polite way to get someone to say so 
I remember the first time someone posted AI code on here,, we were confused at first and then eventually realised what was going on
It looks like you can edit the PriceModifiers section in Data/Shops to have a conditional price multiplier or some such, following this format:
https://stardewvalleywiki.com/Modding:Common_data_field_types#Quantity_modifiers
Oh okay I see!! So by default it's set to multiply, or it is for the shop itself want to edit, so I would change it to divide and alter the number?
oh, and see game state queries for the Condition field, unless you want it active all the time
e.g. for 25% off on sundays:
"PriceModifiers": [
{
"Modification": "Multiply",
"Amount": 0.75,
"Condition": "DAY_OF_WEEK 0"
}
]```
Got it! Okay thank you!
the default shops all have it set to null, like this:
"AnimalShop": {
/*...*/
"PriceModifiers": null,```
but you can use CP's EditData to set it up like that instead, with any of the settings or values needed
Thank you thank you!! I'll test this out!!
the brave browser works good for searches
I had an idea for a mod but think it would take c#, so it may be beyond me. I want to make it so if you put a heater in the farm cave it can act like a green house. Can that be done with CP? Or is it c# territory?
I replaced your stuff with mine, does this look right? I went n game and tried it but it doesnt replace the sound. I originally thought this was just to add your own new sounds.
could it be an issue with my audio file or something
what does your smapi log say?
i get no errors
and are you sure you're editing the sound you want to edit?
is axchop the sound for chopping wood
you can type debug ps axchop in your smapi console to play the sound changed or not changed
possibly the C# since you will need to update the map in real time once the item has been placed...
that looks right to me. is that file in content.json in your mod?
yeah
I suppose you could also think about making a greenhouse that looks like a cave :p
and assets/sounds/MCeat.ogg exists?
that looks like your content.json is inside the assets folder?
content.json (and manifest.json) should be at the mod's top level folder
ah got it (the layers confusing me lol)
try running patch export Data/AudioChanges to see if your changes are applied in game
it should create a file in the patch export folder in the game folder
I know how to use CP to make the cave a green house all the time. I just wanted the extra step of needing a heater for realism.
if you can then i dont think my changes are being made
the patch export file is blank
So what i think you can do is map patch conditioned on buying the upgrade from robin's shop
hmm that means your mod's not being loaded then
!log post your log?
Important note: Your computer username may appear in the log. If your username is your full name, please be aware of this before uploading it.
Please share your SMAPI log file. To do so:
- Open this page: smapi.io/log.
- Follow the instructions at the top of the page to upload the log file. (Don't copy & paste from the console window!)
- After uploading, it will show a green box with a URL to share. Post that URL here.
Please do it even if you don't see any errors. This has useful info like what mods and versions you have, what the mods are doing, etc. If the issue didn’t occur in your last session, please load the game to the point where the issue occurs, then upload the log.
I don't think there's a good way to check if heater the object is in cave
You won't even need additional frameworks for this (as long as you are fine with getting an actual object during the purchase)
where do i find the log
!log
Important note: Your computer username may appear in the log. If your username is your full name, please be aware of this before uploading it.
Please share your SMAPI log file. To do so:
- Open this page: smapi.io/log.
- Follow the instructions at the top of the page to upload the log file. (Don't copy & paste from the console window!)
- After uploading, it will show a green box with a URL to share. Post that URL here.
Please do it even if you don't see any errors. This has useful info like what mods and versions you have, what the mods are doing, etc. If the issue didn’t occur in your last session, please load the game to the point where the issue occurs, then upload the log.
one sec ts taking forever to load
tbh taking forever to a load is a small hint that audio changes might have worked
Oh a Robin upgrade, did not think of doing it that way. That would work too.
no i mean the website
I mean Robin's shop shop btw, the house upgrade stuff is hardcoded as hell
But shop you can actiononpurchase
To set mailflag
alr here we go
Log found, uploaded to: https://smapi.io/log/df175452cff949b5b3e2c3b371fdd42f
that log doesn't look like it even made it to the main menu
should i load into my world
shouldn't need to for the audio change
but I don't see your mod even listed
what's in your manifest?
a content patcher mod shouldn't have EntryDll and instead have the ContentPackFor block pointing to content patcher
oh right
and shouldn't be using a random manifest of some other mod
should make your own one
wdym
though looks like you did have a dll, so the smapi and cp components should be separate folders with independent manifests
I misread, I thought you were copying a dll from another mod
Is there a special way to do it so the purchase does not replace stuff already in the cave? Or is that going to happen because of the nature of the change? Just realized things like mushroom boxes might get deleted if I patch in a new map.
so make 2 manifests?
you only have 1 manifest
If u wanna add a lil heater thing have it replace some wall tile i guess
But no shroom boxes are machines, immune to map changes 
okay lemme grab the content patcher block rq
I'm not? Oh that makes sense. I was thinking of patching the whole map. But map properties seem easier.
{
"Name": "Your Project Name",
"Author": "your name",
"Version": "1.0.0",
"Description": "One or two sentences about the mod.",
"UniqueID": "YourName.YourProjectName",
"UpdateKeys": [],
"ContentPackFor": {
"UniqueID": "Pathoschild.ContentPatcher"
}
}
preesh
pls work
im tryna eat food
hey it works
thanks guys i appreciate ur help
i probably be back some time in the future lmao
I tried using Of Dwarves in the map property for my map but yeah it doesn't work
because of the Space in the music id
if i add a garbage can to my building in town, do i have to define a set of items it can give? i see the TileData has the name of whose house it belongs to, so what would happen if i used Mayor for example
There is a wiki page for everything it seems. 😀
yeah i found how to add a new one, but wasn't sure if i had to make one or if i could just reuse one that's already defined in there if i don't care about it giving specific garbage
You can use a predefined one if you want. It will just have the liked items for whoever you pick.
okay awesome yeah i'm fine with that
in fact mayor even looks empty so that would ensure no specific items, if i'm reading it correctly?
"BaseChance": -1.0,
"Items": [],
"CustomFields": null
},```
I wouldn't use an existing key tbh
Just make your own
It also is used to track which trash cans a player has checked today
Hi, I'm experiencing a bug in a map mod I'm making that has stumped me. It's a problem with the berry bush, which I added in the "path" layer. In my map, I had a berry bush next to the pink tree, then I decided I didn't want it and deleted the berry bush. But the berry bush still appears when I start the game up and select my character save "Sabrina". However, when I load another save file "Link", the berry bush is absent like it should be. What could be going on here? It seems like my "Sabrina" save is loading an older version of my tmx file, even though the older version doesn't exist. Pic #1 shows what my map looks like in Tiled (no berry bush next to pink tree). Pic #2 shows in "Sabrina" a berry bush next to the pink tree. Pic #3 shows in "Link" no berry bush.
things on the Paths layer like that are generated on save/location creation
they wont go away when you then remove the paths layer later
thats what Reset Terrain Features is for
Oooooo!
https://www.nexusmods.com/stardewvalley/mods/30964 added in the Sounds of Rain Music pack to the new mod.. so now there's rain music once again ❤️
thank you so much
how do you make a mod i need dean winchester
!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.
to make an NPC there are also a lot of good tutorials and templates out there
Is that show still around? Isn't it from like 20 years ago. Cool that it is still popular.
is there an updated version of Reset Terrain Features on Nexus? The one there is too old and won't work
!rtf
Reset Terrain Features (https://smapi.io/mods/#Reset_Terrain_Features) is a mod that lets you reset, clear, or generate everything that spawns on a map using an in-game menu. That's especially useful when changing maps mid-save, as the debris will otherwise use the old layout (causing things like trees in the water or bushes blocking exits).
Hey, guys. I made a github action to build my projects. I would like some feedback. After fleshing it out, I will implement deployment to various platforms: https://github.com/bmarquismarkail/SpaceBaby.Stardew/blob/master/.github/workflows/dotnet.yml
It only requires your steam username and password as secrets. If you need help understanding, I am glad to help you
while i will never use this bc it would be overkill for me if i had any feedback id say it seems kinda unoptimal to hardcode the SMAPI version it downloads
but maybe if you always remember to update it as necessary its fine, though forgetting once can cause some unseen headaches
True; I think using the nexus API to check the current version might suffice
At the time, poorly. you have to use your mobile device to authenticate, but there are ways to auto authenticate
I am researching on Steam TOTP to do so
i think when thinking about using the nexus api for smapi instead that might cause the opposite issue where you do want to set a specific version, bc you might be building against two different versions in two different branches, maybe, but im not sure if there'd really be a way to grab what version of smapi you built against without just writing it down yourself somewhere. so maybe it is just best, idk
yup 
I'm making a portrait replacement mod to replace an HD portrait with a vanilla sized one. The original mod loads the HD portrait without any code that accounts for it being HD, and I plan to EditImage that. Are there any issues with the fact that the FromFile is not the same dimensions as the target?
well there has to be something that makes it work in HD, so whatever that is will probably mess you up if you dont change that
that is assuming the other mod is even using Content Patcher for it
and not portraiture or something
It doesn't work in HD, as it is it just shows the corner of the portrait
And the user has to pull the portrait from the mod file and drop in portraiture to get it to work
It's just there's no regular sized portrait that get loaded first
oh. well just using EditImage might not work, the game might still calculate the size of things wrong and thus fuck up the portrait indices, but you might have luck Loading over it instead
though, i guess thatd make them potentially error... hm
I can use a load priority, right?
you can but you said they arent loading a regular sized portrait
do you just mean the image is not regular sized? or that they arent using Load at all?
They are using load, the code looks as it would if it were a normal portrait
i took it to mean they were simply EditImaging on top of a vanilla portrait or something to expand it
Just the image is HD size
And if theirs is exclusive? (by default, not priority specified)
then if EditImage-ing it to be smaller doesnt work i think you're SOL
Let's try an edit image first
Hmm it looks like I can't override that
Just try it
It won't be smaller
I don't recall how dialogue dozen work
But I will laugh if a 4 wide portrait strip works
it must calculate things based on width, right? since you can have one long row of portraits if you want
hopefully the image is a nice power of 2 in width and height then
Now please excuse me, I'm off to do laundry and slep because I be old
i'm fairly sure that portraits used to be hardcoded in some way that required two columns, but no longer are
(can portraiture even do non-powers of 2?)
like can i make a portrait thats 367x412 in size
it's just convention by now to do two columns, and usually it's more helpful/convenient anyway
I didn't realise they no longer has to be two columns, that might confuse things
its still better to use two columns in general bc following the convention people expect with no downsides to doing so is almost objectively better
if its for an existing NPC its super definitely better, bc doing otherwise fucks up coordinates for any editimages
technically there's a downside if your NPC has 104 portraits and somebody wants to do a 256x256 HD version of it and exceeds their GPU's maximum texture height
i wouldnt call that a downside, either
i think if you have that situation, its better for people to Not have that situation
pls reign urself in
I'll try some things and see what happens ^.^
(all very /lh ofc)
You'll be pleased to know there are not 104 portraits !
i am in fact pleased
anyone good video torotial
video tutorial for what
most video tutorials for making mods are outdated. you're better off reading the wiki
I dunno what you want a video tutorial for exactly but im going to preemptively say "no" due to like how nic said, video tutorials are largely outdated
If you could be more specific on what it is you need that would be great
(that's why I asked for what lol) there's most likely no actual good video tutorials out there but if we knew the subject we might be able to help :D
Nobody had any ideas on how to make NPC Map Locations not squish the Bookseller sprite, yeah?
MugShotSourceRect?
does NPCMapLoc. do the Traveling Cart Lady? cause maybe you can go off of that? (sorry if this was already said I haven't been around for The Discussion TM)
its been a while so sorry if someone remembers me asking this before BUT do the $b and $e commands work within the gender switch one? for exmple, would i be able to go ${blah blah blah#$b#blah^blee bloo blah}$ ? or does adding breaks like that mess it up?
lemme find the previous code block that was pointed out to me. It looks like it draws from the town map, but the aspect ratio is wrong
Should work fine
The gender switch is processed first
It's grabbing it from Cursors_1_6 (the bookseller sprite)
the dimensions being weird is what's throwing me off
thank you atra!!
DisplayName = I18n.MarkerNames_Bookseller(),
LocationName = "Town",
CropOffset = 0,
Sprite = Game1.mouseCursors_1_6,
SpriteSourceRect = new Rectangle(181, 490, 12, 18),
SpriteZoom = 1.5f,
WorldMapPosition = mapPos
});```
That's the bit of relevant code in NPC Map Locations
Technically you can sidestep the problem by Loading your portraits as different assets, then patching the NPC's character data to use those assets instead of their default ones using the Appearance field.
Ah! Interesting idea. I haven't used appearance yet, so that could be good to try!
What mod do you want to do this for?
I'm also separately doing a translation and doing what I can to make sure it works in 1.6
How does Portraiture interact with the Appearance field?
Portraiture just overrides everything.
Ok cool, so it wouldn't require any extra stuff if someone wanted to use portraiture to switch back and forward
Mhm.
Oh, this mod still use the old way of doing NPC Dispositions. So if you wanted to modernize it for 1.6, you'd need to determine a new character data anyway.
Ah, ok. So do I like, null their disposition line and EditData in the new format? (I don't know much about NPC making let alone updating so learning on the fly)
I don't think you'd actually need to null their disposition line. But yeah, EditData the new format.
Oh yeah the target doesn't exist anymore
You can just copy the new format from one of the vanilla villagers and set the Appearance field with no Condition.
This is in Data/Characters right?
Yep yep!
Do I need all the fields or can I leave out ones that would have nothing in them?
I will do once I've got something I can load up in game 😉
No, CP rewrites the old system to the new
You can just flat out patch expoet
Data/characters
See what cp edited it to
Then edit that
is it possible to layer audio on maps? Like have a map be playing both ocean sounds and a music track?
Mmap feature in 3-2-1
There's features for that in my map toolkit thing
Both positional audio and separate music areas
The music areas thing is a bit funky though, I need to change how it works so it's less spaghettish.
Splitscreen music logic is horrible.
Maybe I just will straight up ignore splitscreen to simplify things
I wish
No, what it does is each screen instance has a field for requested track and track type, and then on the main screen only, it iterates all screens to see what tracks they want to play, and then using a combination of the requested type and some hardcoded priorities for specific tracks, it chooses the "most important" one to play, and if that's not the same one that's currently playing, it starts the fade out/in
And then of course there's the per-instance logic for determining which song that specific instance wants to play
It makes sense, but it's complicated and hard to work with externally
I was going to layer music here if possible but I'll be honest, the simple sound of the ocean is a certain aesthetic
is there a way to give a quest/raise a mailflag to give a quest later, when a player has clicked on a TileData?
for example, there's a note on the counter, and when you read it, you get a quest
Hm.. I don't see anything like that with what's available outright
BETAS might let you do it though?
How does the game handle the original Mr Qi quest, where you put the battery in the box and a note falls out and starts that quest? Does it appear as a quest, or just tell you what to do next and you have to remember? I can't remember
those are individual tile data things iirc
I know the sanddragon one has its own specific thing
Ahh yeah, that makes sense, specific spots with actions
does this also apply to DynamicTokens that are defined in the content.json?
https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide/translations.md#can-i-use-content-patcher-tokens-in-i18n-files
Are you asking if you can also use the dynamic tokens in your i18n translation stuff because the answer is yes
I do that with the honorifics that Qi uses as well as what he calls the player with my mod
hmm, where are Actions defined? could i edit that to make my own like the qi quest?
youd probably have to use C# to do that unfortunately
darn
more asking if they have to be passed into default the same way as the built in tokens!
or if they can be used in the default.json without doing so
OH with the whole uhh |token={{token}} thing?
because yes as well
{{i18n:Aos.FriendQiEventSW8H11|QiPlayerTitle= {{QiPlayerTitle}}}}
thank you! glad i checked instead of just pressing play and hoping for the best lolol
Happy to help :D
Depending on what you want to accomplish, you might be able to use Misc Map Actions & Properties (MMAP) and mushymato.MMAP_QuestionDialogue to open a question box from a TileData object with different additional actions based on the choices.
@urban patrol ^
i’ll check it out! worst case scenario it’s not even that important, i can just send a letter with a quest whenever lol
i thought it might be cute to lock a fishing quest behind a note in the butcher shop that says she’s running low on stock, and then you could go catch fish for her
WAIT LMAO what if i lock it behind fishing level 5 or something with the subtext being the farmer has caught all the fish and deprived the regular market of fish 😂
I cannot understand the code well enough to explain why the bookseller gets stretched, but I was able to unsquish him.
I changed the sprite source rect: SpriteSourceRect = new Rectangle(179, 490, 16, 18),
Aba saving the day again
It's something to do with the way the draw code draws the destination rectangle at 32x30px, which for the regular NPCs neatly doubles their 16x15px sprites. Because he's 12x18px, however, it more than doubles his sprite horizontally and then less than doubles it vertically. I fixed the horizontal thing by simply making his sprite source rect wider, but I'm not sure how to fix the vertical one without losing part of his hat or his beard.
The draw code in question: b.Draw(marker.Sprite, new Rectangle(this.mapBounds.X + marker.WorldMapPosition.X, this.mapBounds.Y + marker.WorldMapPosition.Y, 32, 30), spriteRect, markerColor);
As you can see from this very zoomed in view, his map icon has got some mixels going on vertically, like his very flat eyes and hat band. Compare to his actual sprite in cursors (second image).
It's far less noticeable in game than his width issue was and might be worth keeping to avoid cutting off part of his hat or beard.
Wide bookseller isn't real he can't hurt you -
Wide bookseller:
(My fix, by the way, is just in my own copy of NPC Map Locations that I forked - Pathos would need to add it to his version for it to be available to others.)
Just for completeness's sake, here is the zoomed in version of his map icon without my edits. Mixeled both horizontally and vertically (various bits of him - like the whites of his eyes - are 3 pixels wide instead of two).
he looks more tired like this 
you can trigger an event by clicking on a tile
and then this event can do basically whatever (send a letter, give a quest, have the npc enter and complains about lack of fish)
When are assets re-loaded and patches reapplied? Specifically, if you add a new entry to gift tastes only when a certain event has not been seen, what happens when the event is seen - does the entry disappear from gift tastes overnight, or would you have to specifically remove it?
that explains update rate
and how you can change it if required
but default is on day start
Ok, so to make sure I understand, when it says "update their fields", that includes checking whether a condition is met
And also, does 'update' start by setting the asset back to base game state (i.e. removing all the patches done the previous day), or does it just update and reapply patches on top of the ones from the previous day?
what is the targetfield for the horse? is it farmanimals?..i want to try making randome skins for the horse ÖvÖ...i tryed horse and Horse but both say it doesn´t exist
i could find alot about horse modding to be fair >->
is it a pet? XD
Would having {{ModId}} in the default.json work like this?
content.json like this
{
"LogName": "Summit Dialogue",
"Action": "EditData",
"Target": "Data/ExtraDialogue",
"Entries": {
"SummitEvent_Dialogue3_{{ModId}}_Nino": "{{i18n:SummitEvent}}"
}
}```
and then having this in the default.json like this
```json
//summit
"SummitEvent": "Being up here... it's like the noise finally stops.\"/pause 700/speak {{ModId}}_Nino \"I always thought I'd feel alone at the top... but I'm not.\"/pause 600/speak {{ModId}}_Nino \"Somehow, you kept showing up. Even when I was at my worst.\"/pause 500/speak {{ModId}}_Nino \"I don't think I ever said it right, but... you saved me from becoming just a punchline.\"/pause 500/speak {{ModId}}_Nino \"And for once, I'm not scared of what comes next.\""
nervermind i try this instead
You run the risk of having translators break the summit event by putting all of those commands into i18n so I would strongly advise against it, but you can use {{ModId}} if you pass it through like this "SummitEvent_Dialogue3_{{ModId}}_Nino": "{{i18n:SummitEvent |ModId = {{ModId}} }}".
I see, thank you! :3
Also run the risk of desync between the locales and the events having different behaviour rather than just different text
yeah I'll just put it in one long dialogue and don't to the pause stuff
If I want to add an entry (to a schedule), but only if the entry doesn't already exist, how can I do that? Is it some use of HasValue?
Off the top of my head, I can't think of a way to do that in cp
d'oh
Oh well, it was mainly a failsafe for if the mod whose asset I'm patching updated, I wouln't overwrite it
In general nothing in the asset pipeline is a token, and the timing that conditions run is subtly different to when the patch itself is applied
Do you happen to know the answer to the question I asked earlier?
this one
The asset pipeline is always strictly a singular load, and then a set of edits and then the assets ready to use
If cp or another mod wants to make changes after it's ready, the assets invalidated, and if it's a vanilla asset smapi will invoke the relevant vanilla code to request the asset again
Which will run the load, and then edits
My head spins a bit with the technical speak, but I think maybe you mean that it will 'unload' before it runs again? I'll give the specific use case:
The old assets thrown in the bin and a brand new one is made
So an EditData adds an entry to NPCGiftTastes on the following condition: "When": {"HasSeenEvent |contains=9654908": false}
Once the event has been seen, that edit would not be made, but does that mean that the previously added entry will be deleted? (i.e. NPCGiftTastes reset to vanilla)
Or do I need to edit the entry to null if the event is seen.
on day start it should be reloaded unless you set the update rate for it to be reloaded quicker
(I'm asking if 'reload' means what I think it means)
so for every cp patch (includes included), they are either Ready, or Not ready.
At DayStarted (and if UpdateRate is set, TimeChanged or LocationChanged) the patches conditions are reevaluated.
if a ready patch becomes unready, or an unready patch becomes ready, cp will invalidate that asset, and cause the asset pipeline to run again, causing the load to occur, and all ready edit patches for that asset to evaluate
for an asset like NPCGiftTastes, no one is likely to be loading it, so the vanilla xnb will be loaded instead
Ok, so the change in condition triggers a complete restart of the asset
Cool, thanks for your patience with my lack of understanding exactly what each term means 😉
the other way an asset becomes unready is if the tokens themselves aren't ready i.e the Relationship token isn't going to do anything on the main menu, so patches using that as a condition wont be ready and thus wont run during initial load, and only run once the saves loaded
HasSeenEvent actually is another example of that, you have neither seen nor not seen 9654908 if the save hasn't loaded yet, so the condition wont even bother running and the patch wont apply
As long as it runs at day change 🙂
also since 1.6 you don't need the event to be a number anymore
Oh yeah, this is an old mod's event, I'm patching in a translation and a couple of updates for 1.6, so I was just trying to understand how the code works
Hi,
I'd like to ask - I'm adding an object that will be lying on the ground in an event I'm making.
On the wiki, there is a command addObject <x> <y> <sprite index> [layer]. X and Y is the upper left corner of the sprite, if I recall correctly (I'm adding Dwarf Scroll 2, which is X=16,Y=64). And then I'm lost - what is that sprite index, and what is that optional layer?
sprite index would be the 1.5.6 naming of it, 1.6 calls it an item id, and [layer] is some depth offset thing
Oh, now it makes sense!
So when I remove the optional layer, I should have addObject 64 16 97/, right? (the ID is 97)
dwarf sscroll II, sure
oooh yeah good suggestion
The x and y are the coordinates for which tile you want to put the object on, nothing to do with the object's sprite.
Already found that out, but thanks for confirming that!
I'll edit the wiki page so each argument is explained more clearly.
Carrot face farmer
Also, I think that for the switchEvent command, there should be something about the fact that you can switch only between the events in the location where your event is right before the command and that you have to use changeLocation to switch to an event from another location.
Oops...
Are both of those things not evident from the description already?
Oh, sorry, I just can't read!
It is evident...
Haha that's okay xD
There we go, wiki entry edited
In case you were not aware, you're allowed to edit the wiki too. There are rules and you have to be careful that you pay close attention to detail (or your edits will get reverted) but it's open to anyone.
I'm always happy to be asked to edit the wiki in someone else's stead though because it can be scary and takes a fair bit of work to get used to.
Is it better to have 5 different events that are automatically triggered or 1 really big event?
(when you realize when struggling in event switches that it is not necessary to have more than 1 event)
I know, but I am pretty sure I'd edit it wrong and mess up everything, of course unintentionally... 
I would recommend having different events that consecutively trigger just based on the fact that some commands appear to have very frustratingly far-reaching effects which means that when testing it's not always useful to break your large event into chunks that you recombine later because they can behave totally differently between chunk and part of large event.
Apologies for the terrible run-on sentence lol
I understand. I was terrified when I first started editing the wiki.
That's true...
Now to solve what is wrong...
The event that I did the other day is across three different maps but is just one event with two location changes. I did it in chunks and then had to redo several parts of it when I combined it because the event command behaviour changed when I joined the parts up.
I'm doing something pretty similar right now...
5 different maps, few switchEvent commands work without problem and others won't work...
Can I ask is there a list somewhere of all of the different commands you can do in an event? So far im just kinda figuring it out by looking at others.
Oh poor you! Yes, definitely use the event data page.
perfect thanks
When I delete e {{ModId}}_14hearts-p3, it works (at least on the trigger debug event)... Others have this too and don't struggle with it...
There's also several tutorials/tips pages on the modding wiki (be sure to cross-reference their advice against the official wiki though because some of it is outdated):
https://stardewmodding.wiki.gg/wiki/Tips_for_Making_Events_from_a_Novice_by_LenneDalben
https://stardewmodding.wiki.gg/wiki/Tutorial:_Anatomy_of_an_Event
https://stardewmodding.wiki.gg/wiki/Tips_for_Making_Events_by_Arknir
https://stardewmodding.wiki.gg/wiki/Tutorial:_Events_For_Babies
https://stardewmodding.wiki.gg/wiki/Events_for_Everyone
If that's a precondition,
use its proper name please /lh
Will do for all of them!
Aba in the Campaign Against Precondition Aliases™️
I don't set preconditions until ages after actually writing and testing my events.
In fact, none of my events have preconditions at all right now. I will not be surprised if I actually forget to add them before release lol
That's why I created them in the first place 
But you're right, I should test the events without them.
Well since they don't affect whether you can use debug ebi, it's neither here nor there whether you have them for testing the script itself.
I am just not up to the point where I actually know what any of my preconditions are. Mine are going to be complex.
Sounds like it's cork-board and string time!
What if u don't have any preconditions and exclusively trigger them by spacecore
And then not be able to look up my own events with Event Lookup and/or Aba's I Can't Believe It's Not Butter?
If someone wants to avoid spoilers they can just not use the spoilers mods


