#making-mods-general
1 messages · Page 393 of 1
all the way back to the beginning 😂
fr lmao
Thanks
https://smapi.io/json/content-patcher/d2a0950c3d8c405ba8ce67cd006797f7 yeah back to the beginning issue, it works but the light is super dark
what happens if you change the color to white
Oh, it's a glow! Invert the color!
ooh
wdym?
it does look green you’re right
light color in SDV are inverted in some cases
To apply glows, the game draws the colored glow texture on a white background, then invert everything and applies it to give the dark effect
From what I got tinkering with it
ohhhh, that makes sense actually bc when i was looking in the data files from vanilla the first instance of this rule i came across was cyan and i was like what vanilla object glows cyan??? now it makes sense lmao
yeah if you want your desired color subtract all 3 RGB values from 256
So to get a pink glow, you need to give it a green-ish color, try inverting the color you want in an image editor
It's a bit more annoying when using keyworded colors
does color take ints as well as a string?
No idea for this one in particular
Pink is very bright, so no wonder why the "glow" was so dark
yeaaah
How so?
Isn't it literally just ^ 0xfffff?
You could make the framework invert the colors
Well, for someone who doesn't know color code, it requires a few step to find out the rgb values of the color they know the name of
Back in the old days (waves cane)
Spot on, that's what I ended up doing for FF for user qol
immediate bookmark ty
i'm making an event that needs to occur at least one day after a previous event. Is this possible to set up using content patcher?
yes, you can use a conversation topic and set the length of it to 1 day
have the previous event set a one-day conversation topic, then have the second event use a precondition that says that CT must not be active
sick, thanks!
still need to experiement but thats already way better omggggg
i think sea green is our winner 
oh and one more question, i added a patch to my catfish mod to add "fish_upright" tags to my fish and it got flagged as suspicious on nexus? anything i can do while waiting for a reply from support?
cause the first version uploaded fine and so i was very surprised
unfortunately only thing you can do there is wait for nexus
dang, well good to know anyway
Where can I find the main menu images? Like the Chicken, the melon growing and the planet?
Minigames/TitleButtons
Thanks a lot!
Hey, is there something up with editing NPCGiftTastes and Haley specifically? I'm adding a couple items and editing gift tastes and for whatever reason Haley is only "liking" the things I'm giving her, rather than loving them, despite the coding being the same as other characters who are working properly. Thought to double check a previous mod and I just realized it's doing the same thing, too. The items are all natural likes, so I can't tell if the edit is going in wrong or not going in at all. I'm married to Haley, not sure if that does anything.
do you have code
you can also try patch export Data/NPCGiftTastes to see if your edits are being applied
{
"Operation": "Append",
"Target": [
"Fields",
"Haley",
1
],
"Value": "PerfumeYellow",
"Delimiter": " "
}```
pretty sure loved is field 0
and 1 is field of text
oh no
i misread with universal love 🙂 you're good
is the patch applied?
what happens if you patch export gift tastes?
i assume you're trying to add a context tag?
if you're adding an actual item id you may want to check if it's the proper id, as mods shouldn't have ids without prefixing
Currently making some final modifications to a mod before I upload it, and I'm just wondering if I can make the entire building show in the carpenter menu instead of looking like this
"Haley": "Oh my god, this is my favorite thing!!/221 421 610 88 PerfumeYellow/*gasp*...for me? Thank you!/18 60 62 64 70 88 222 223 232 233 234 402 418/Ugh...that's such a stupid gift./-5 -6 -75 -79 -81 80 -27/Gross!/-4 16 330 74/Thank you. I love presents.//",
Patch export, it's in there
I will add the prefixes, I'm updating an older, personal mod for public posting
can you show the item?
you can't, buildings are always drawn in 1:1 scale so big buildings are always cut off
you can use the BuildMenuDrawOffset field if you want to move it down to show the full roof for example
or move it up to show the base
I can't zoom out however? to show the whole thing?
Oh wait you already said I can't oops
(I forgot the 't in my initial post 😌 )
(Oh I probably saw it without the "'t" and looked away to the wiki before seeing it)
Got called away, I'll have to do this later
What's weird is the Patch Export isn't showing the Amaretto from another mod that she's also supposed to love
I have some items in my mod I'd like to convert to different types and categories.
A) Should I use Category 0 for Type: Basic items?
B) Will existing saves with said items acquired have them turn into errors as a result of changing type and category?
They're mostly Litter items I'd like to change to Basic.
types and categories are persisted into the item instances, so existing items will be unchanged + not turned into error items
That sounds perfect. Is Category 0 safe?
yes
Great, thank you.
Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on Microsoft Windows NT 10.0.26100.0, with 2 C# mods and 1 content packs.
when i get rid of the the lines past 11 it goes back to normal. i edited the town map and it loads by itself but when i add the other things it messes with the whole thing
you can't do two separate Format/Changes block in one file
OH
merge them into one
okay !!!
the file should have one block, inside of which is a Format field and a Changes field containing a list of changes you want to apply
HI THANKS im changed it im gonna go chec k if it works
Hello all. Could I please request a link to any JA to CP converters that are functional?
!converters
These community tools help update mods to newer formats or frameworks:
- Convert to Content Patcher from Custom Furniture, Better Farm Animal Variety (BFAV), Custom Music, JSON Assets, More than Necessary (MTN), SAAT, Shop Tile Framework (STF), TMXLoader, or XNB.
- Convert to other frameworks:
- Other tools:
Thank you~! ^^
...well, that was a minor mis-step. I'll try specifics! :P
-ahem- Does anybody have examples of CP shirts in their proper format, or am I vastly expected to make an FS pack instead? I do have my reasons for not using FS over CP, though they won't make sense to anyone but me. ;_;
it's going to sound a bit strange, but desert bus has a simple shirt and pants as an example
it's covered in content.json, assets/base.json, and assets/base/shirt.png
inshallah we shall reach 200 downloads one way or another
does any smart person having an idea why this is happening? calling Layer.drawTile on Front layer tiles during Layer.Draw causes my farmer's clothes to disappear. If I force the FarmerRenderer to draw on layer 321 or higher, it draws the shirt but not the pants. This is the most bizarre bug I've ever encountered.
I’m scared of FarmerRenderer ngl
if it's anything like the usual oversized map rendering issues, it's to do with the arbitrary layerdepth calculations resulting in values outside the range of 0~1
with the build-ready mod author decompile, have you tried breakpointing the draw method and peeking the layerdepth value?
for layer.Draw it's at 0.012 or smth
that makes sense that it's because the map is so big
it only happens if I stand near the drawn tiles; if I move away from them, it draws the clothes again
even if some of them are being drawn on screen
if nothing else i respect the confidence/optimism of making a 100000x100000 map with 500 layers and asking us why it's broken 
lmao
another option might be to have position only be the offset within a "chunk" and then use transform shenanigans to offset location draw calls or something
oh yeah the farmer position is very big ig
although you'd probably also have to fuck with the viewport since some stuff is drawn based on that
right, viewport is very big too
thanks! now I at least understand why it might be happening
oh yeah ofc it uses StandingPixel.Y for the drawLayer; i can fix that
"Category": -26,
"Description": "{{i18n:HarrisonGrey.PerfumeYellow2}}",
"Displayname": "{{i18n:HarrisonGrey.PerfumeYellow1}}",
"Name": "{{i18n:HarrisonGrey.PerfumeYellow1}}",
"Price": 300,
"Texture": "assets/PerfumeYellow",
"ColorOverlayFromNextIndex": true,
"Type": "Basic",
"ContextTags": [ "perfume_item", "color_yellow" ],
"Edibility": -300,
}, ```
Here's what I got
success!! thank you all so much ❤️
i think name shouldn't be passed through i18n, it should match the key of data/objects
so "PerfumeYellow"
last thing is to figure out tile collisions and then I can start to look at how to handle objects and terrainfeatures
Huh, didn't realize. All of mine do that
they should not ✅ displayname is there for translated player-visible names, name is internal use
as soon as another language changes what that gets read as, it'll break all your items
...So I have to update some mods
hi guys
I'm trying to edit the Backwoods map in order to add a path to a custom map I am making. But I'm struggling to get the edit to show up and the Backwoods map remains unchanged. Can someone help point out what I'm doing wrong?
(this is the path I'm trying to add in case it matters)
.tmx does not go in Target
you're using Action: Load, which will try and exclusively replace the entire Target asset -- use Action: EditMap instead
also what blueberry said
you probably want a different PatchMode as well if you plan to erase tiles
Is it possible to restrict a fish so that it only shows up in Green Rain?
Targets do not use filetype extensions, which is why nothing is happening-- you're not actually pointing your edit to a valid asset.
But if you only fixed that and not the PatchMode and Action, you'll run into new problems.
Ooo okay I see I see
What would be the Target then?
I'll change the Action to EditData. Would the PatchMode then be Replace?
change to EditMap, i made a typo
Maps/Backwoods
you want the WEATHER query
thank you guys! I'll try that right now 
Okay.
XNB2CP Web doesn't add code for the mods
I have tried 2, and neither one has worked.
I found a replacement for the first one, but can someone help me with the code for the second one?
I need code to replace Bouncer's portrait and sprite.
have you read the getting started guide on the wiki?
Does "Condition": "WEATHER weather_green_rain" suffice for it?
I should
I will
that link should have everything you need to get your xnb in as a CP mod
Nice, thanks
Alright so I need a bit of help from those of you who know the nitty-gritty of the code. I've received the following log: https://smapi.io/log/b08f7d803d92451dbf9c7c420d3bac55
It looks like attempting to switchEvent while in the farmhouse as a secondary player results in a broken event. This could be because of Farmhouse Fixes, but I'm trying to figure out how the vanilla code would handle a switchEvent in a Cabin, or if I need to make a separate patch for a multiplayer version that patches to Data/Events/Cabin, or if I need to load that or something in order for the event to work, or if I'm just absolutely screwed coding it in Content Patcher
Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on Microsoft Windows NT 10.0.26100.0, with 20 C# mods and 9 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
So, thank you for this, I have some fixes to put out for stability. But unfortunately this isn't fixing the issue I currently have.
I did suggest in 1.6-alpha that farmhouse switch events would also look at data/events/farmhouse but that didn't happen
Feel free to suggest it again
.... going to the alpha thread to do just that XD But in the interim - do I load a Data/Events/Cabin or is this just "event borked in multiplayer" type deal?
Or making a different event end if in multiplayer 
Try the first yeah
Add your switchevent target to data/events/cabin
In 1.6.16 you'll also be able to do goto tbh
Having an issue with my personal CP pack. If this is the right place to discuss it, I can provide a log and a description of what my issue is outside the log?
If it's a mod that you are making or editing, then this is the place to ask!
I will have to do some recodes for that with go-tos yeah
Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on Microsoft Windows NT 10.0.26100.0, with 53 C# mods and 20 content packs.
The issue is that I'm trying to use a single asset to cover 5 different footwear items, but I'm not sure the format even allows me to use a sprite index for boots.
The first index loads just fine, the other remaining 4 don't.
They function, but their graphics just show up as placeholder NO signs.
Wait, why aren't they all using the first index?
You're saying the single asset covers 5 different ones, right?
so what's the need for the other indexes?
Because they're all diferent sprites, and I'm trying to use the same system that weapons do.
Hmmmmm
Different sprites, different shoe colors.
...I could do worse than upload the content json somehow?
!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.
just toss it in the validator then paste the link here
Okay. Give me a few minutes, please, my internet and computer are being really wonky rn.
https://smapi.io/json/content-patcher/296baa61313e45ae854d2e08b50b13cb
Ignore the error it throws on line 59, I see it already and know what I need to do.
how would I go about making the premium coop and barn from sve the same texture as the deluxe barn and coop from elle's seasonal buildings? bc it's a lot bigger. so I can't just copy paste the texture over it
you can edit the premium coop/barn's size down, and set its texture field to be the same as the deluxe coop/barn's
uh how would I do that? (sorry im new to this)
that would also avoid bundling elle's textures with your mod, which I hope you're not trying to do
EditData Data/Buildings
this is for personal use
if this is personal use only and you don't feel like making an entire new CP pack you can edit SVE in place
yall ever just peek in a content.json only to realize an annoying error you'd been dealing with was all because you forgot to include a folder name in a file path......

yeah that's what I wanted to do. so I can just make the texture smaller to match? is the editdata data/buildings in the content.json?
You haven't filled in the sprite index field for any of them
Argh no please ignore that
You have
oh wait I think I see
I got thrown by your asset having slashes after the {{ModId}}
But 1 seems an unlikely choice for a sprite index for your second set because that's only the second frame in the image
No, it seems this is just "Aba is not on top of things" day
Oh, I have actually found the problem now. Only your first set of boots has the texture written correctly. The other four have {{ModId}}FootwearBasis without the backslashes between {{ModId}} and FootwearBasis
ok nope I'm super confused. I see where I'm supposed to edit but I'm not really sure what to edit it to (with the barn and coop thing)
And that's it for today's episode of "Watch Aba fumble around and make a bit of a fool of themselves but get there in the end", thanks for watching! Same time next week!
It's always, always something minor like that, innit?
Usually is yeah haha
Thank you very much, Aba. I really appreciate it. <3
I think Size, HumanDoor, AnimalDoor, and Texture should do it
change them to be identical to the Deluxe version's
should the deluxe version's be in elle's mod to reference?
im a newbie where would I find that sorry
I have it unpacked
sve only has animaldoor but vanilla has animaldoor top and bottom?
if you're replacing the entire texture file just copy them all over
wdym? I've just been changing the values to match
"AnimalDoor": { /*whatever in here*/ }
replace everything between the outer brackets
so just this?
yes
the code you were looking at was the draw layers, which you should replace as well
but what do I do for the one that is just animaldoor in sve but animaldoor top and animaldoor bottom in vanilla?
"DrawLayers": [ /*whatever in here*/ ]
replace everything between the outer brackets
if im not planning to paint it can I just ignore it
Yeah, you can just leave it as the default deluxe barn
Hi! so a user downloaded the auto sorting building mod I have up on nexus and added it to their save and went to sleep and their SMAPI log filled with errors, they sent their log (https://smapi.io/log/a771b5421f754badb21223295a012874) and while looking through it I can't see any reference that AtlasV.AutoSorterBuilding or AtlasV.AutoSorterBuildingCore is the cause of the crash, however I thought someone whos more well versed in C# mods and harmony could have have a look at it and see if it's actually my mod causing the crash if possible? the source of the errors seems to be from PeacefulEnd.SolidFoundations however I don't know if it's an interaction between my mod and theirs that's causing the crashes or if something else is going on, (They do also have over 800 mods so there's plenty that could actually be going on, and the log says some XNB files are modified or corrupted leading me to believe they had xnb mods installed too)
Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on Microsoft Windows NT 10.0.19045.0, with 137 C# mods and 703 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
hmm I think this crash will happen if you have items in the exterior chest but no chest in the interior map
so there's still items in the exterior chest when you go to sleep
cant test for myself currently, but I think it's because you didn't have destination chest set, and the game has a null check for source chest but not destination chest
I shall give it a go on a test save to see if that's caused it, thank you for the insight!
Yep that's the issue! I would've never figured it out
objects and collisions work, sort of \o/, just need to work on caching objects that are out of chunk range
When moving tilled dirt from an old building to a new one, I end up with a NullReferenceException from spacecore, and I cannot figure out how to fix it. Here's the log if anyone wants to look at it.
https://smapi.io/log/c5242598364247348224357dea5147c4
Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on Microsoft Windows NT 10.0.26100.0, with 19 C# mods and 1 content packs.
is there a way on github or othewise to compare two different versions of a file and accept some changes from each version?
that's a 3 way merge, but im not sure how to do it on github web
on local i'd checkout older commit and branch, then pull from a different branch
i have github desktop, could try to do it with that?
It is probably not the 'right' way to move it, but I am getting the data for each terrain feature and copying it to the new location in the same spot.
the spacecore patch is irrelevant there, since it just blanks the destroyCrop(false) call in HoeDirt.dayUpdate()
you'll need to look at HoeDirt.dayUpdate's code in general to see where something might end up null after your move/copy
alright, thank you. I was trying to read into space core and would have no looked there for a while still.
for reference, the spacecore patch on that method is here
https://github.com/spacechase0/StardewValleyMods/blob/develop/SpaceCore/Patches/HoeDirtPatcher.cs
it swaps destroyCrop for a similar method that just doesn't do anything, but that's it
Is there a website online I can upload json files to and auto format tabs/etc to be consistent? I haven't found anything that quite works well with content patcher formating. https://jsonformatter.curiousconcept.com/# This one seems to work okay if I click "Fix Json" but none of them seem to support // comments. It just removes them or errors.
Tried but couldn't get it to work well
Content Patcher formatting is just json5 formatting
Not exactly a coder, I just know how to use content patcher, so visual studio code feels complex to me (I just use Notepad++ usually)
i wouldn't say vscode is much more complex than notepad++, it just shows more to you at once
it's still just a text editor with a lot of added extras
shift+alt+F to auto-format your file while it's open 
let me install it and give it a try again, haven't used VSC in awhile
why oh why couldn't they have called it Visual Studio Script or something
That makes too much sense
this is microsoft, the company of 2 different, completely unrelated Skypes
and 4 different unrelated Outlooks
there's JSTool (and a couple other plugins, iirc) for Notepad++
I haven't really used it with stardew at all, but it seems to leave comments as-is
hmm okay that seems to work, thanks... but I can't find any mention of that shortcut anywhere in the menus or how to customize how it formats
it formats to a standard style, i wouldn't recommend trying to customise that
sounds good, thanks
took me a while to find it, but it's actually very accessible, shows up when you right-click anywhere in your file (but not in the explorer or tab or in any of the command tray panels)
and don't forget third Skype Teams
Got it working TY for the help.
One more question.. is this an AND or and OR? (does that make sense? lol)
i think that's a NEVER
oh yeah, lol
here, i just so happen to have this open from the last time i forgot how to format it:
https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide/tokens.md#global-input-arguments
thanks very helpful
so according to this, yours would be an OR
Yup, I knew there was a way to specify but I always get confused which is AND and which is OR. Gonna have to bookmark.
(HasMod without an input like that is completely valid, it works the same as HasFlag, HasVisitedLocation, etc)
just dont get your GSQ syntax mixed up with CP syntax
in the former commas are ANDs
in the latter they typically represent ORs
So this would be AND if I am not mistaken?
yes, assuming both Shops and Sell Prices are valid tokens
they are config options
then yeah, they both need to be enabled for that When to pass
"When": {
"Merge: {{Shops}}, {{Sell Prices}}": true
}
interesting thanks
If for example Shops is true and Sell Prices is false thatll turn out to be "true, false": true
so because it contains true it will pass
likewise for vice versa or if both of them are true (though in the last case it'll just be "true": true but w/e)
yeah I would have never figured that out, thanks
O my god how did I only find this out now. That's super handy.
https://smapi.io/json/content-patcher/f0855e8315af4f14965c4cf44bea107a need some troubleshooting help, my seeds are the wrong price at pierre's, and my recipe shows the ingredients as wood and sap instead of one of each of the plants from this mod
Shop prices default to 2x the Price set in the Data/Objects entry. Pierre has a 2x markup on top of that
even if i manually enter a price in my code?
if you manually set the price in the shop entry that will be used instead of the object price, though the shop as a whole for Pierre has a price modifier. you'll have to exclude it the same way vanilla seeds are
wood and sap are the ingredients for a torch, which is the default recipe. can you share your recipe via https://json.smapi.io so we can see what you've entered?
the json link is in my original message, at line 230
whoops, blinded by pierre
i dont know off-hand what the field is. you can take a look at the vanilla seeds in Pierre's shop
iirc they are excluded
kk i'll try to find those
your Data/Objects and Data/Shops entry is named {{ModId}}.catcake, but your Data/CookingRecipes entry is named {{ModId}}_Catcake
ah gotcha, let me switch that and see if it works
incidentally, Lookup Anything won't be able to read your ModId from your items, since they're separated with a . instead of a _
unless that's changed since i last heard
i will double check that, ty for letting me know
it does still split it by _, though technically its SMAPI that does that now, and Lookup Anything now calls the SMAPI function
yeah it works fine with the period too, at least from what i can tell
no thats not working fine, its not identified your mod
Add this line in your shop entry to make pierre not do his 2x
"IgnoreShopPriceModifiers": true,
ty!
using the ID convention with an underscore means that Lookup Anything would be able to say "This is from the Add A TigerLily Mod by So and So" or whatever
I saw this convo and was like "oh i know this one!!!! I did it in my mod!!"
ohhh gotcha, i'll switch that then
its also used by more mods than just LA, though it is the most common reason
(and i think i have to switch it for my catfish mod which means another update that nexus will flag
)
still waiting on my support reply lmao
so if i've already published the mod i should leave it as is, even if its with periods?
yes
gotcha gotcha, i'll just switch it for this one then before publishing
its a minor thing all things considered and no mod should be relying on being able to identify a mod with 100% certainty like that
just keep it in mind for future mods
We cant change the past but we can always learn new best practice for the future
will do, ty for letting me know!!!
very fitting words for your pfp oclarina lmao
correct recipe and prices ty everyone for helping!
oh also quick question, will my seeds automatically be included in pierre's missing stocklist? like if a player uses that will they become avaliable in all seasons or do i need to add something to make that happen
Looks like according to the wiki...
If the player found Pierre's Missing Stocklist, season conditions in the Condition field are ignored in Pierre's General Store.
ok awesome, ty!
does anyone have a list of which trees are which tree ids?
oh nvm they're in a json file now 
Sadly not in a nicely identifiable manner, but the info's there at least!
is it possible to make a character walk backwards in a heart event?
Could someone help me with putting custom music in the game? I followed the example that was on https://stardewvalleywiki.com/Modding:Audio , but I don't really know how to make it so that it replaces a certain song instead of playing when you enter a certain area like what was in the example.
This is what I have written in the json file
{
"Format": "2.7.0",
"Changes": [
/* add music cue*/
{
"Action": "EditData",
"Target": "Data/AudioChanges",
"Entries": {
"{{ModId}}_Music": {
"ID": "{{ModId}}_Music",
"Category": "Music",
"FilePaths": [
"{{AbsoluteFilePath: assets/brinstarjungle.wav}}"
],
"StreamedVorbis": false,
"Looped": false
}
}
}
{
"Action": "EditData",
"Target": "Cavern"
}
]
}
Thanks in advanced :)
The easiest way would be to switch to a special sprite sheet specifically for that event that has the walking sprites reversed.
so what you do is load the sprite sheet as Characters/(NPCName)_Reversed
then when you need them to walk backwards in the event do /changeSprite (NPCName) Reversed/
thank you so much!
treeees
I can populate the entire open world with trees, but they won't grow or remember whether they were cut or not
you can cut them down, but they don't give wood for some reason
even draw layering is working \o/
Is there a way to change fruit tree grow time with content patcher? Not seeing anything in the fruit trees json
I have a question where do you type the code for stardew- /gen (I am sorry if it sounds stupid I just wanna make sure I am doing this right.)
You should provide more information for what you're trying to do
they all grow the same
I am trying to add npc into the game, so I just wanted to know if I do it in a new place or in modentery
Yes but is there a way to change it from 28 days to like.. 14 days easily?
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!
No
Need C#
maybe fruit tree tweaks does it
Alright thanks
Oh should i start over?
Try following the first link in that governor message since its a full start to finish guide to make an npc
Okay.
If you're in modentry you're in C# land, and while you could do it there, it's like using a sledgehammer at full force to nail in a nail, and you'd be reinventing a lot of CP's features along the way, and there's no need to reinvent the wheel
Basically theres two main methods to make a mod and you probably ended up on the wrong page, which is fine
I haven't even started to code, I am confused on all this. This is my first time of doing this...
I was watching a youtube mod tutorial
It wasn't what I wanted and I thought they were the same. that's on me
Hey hello, I actually made a map with Tiled, but my question is, how added this map to a "PIF" (Personal Room) mod ?
Possibly quite outdated, ngl. The links provided by 6480 are very instructive on guiding you to NPC making tho. Good luck!
I suggest you take a look at PIF's documentation, you could also use another PIF mod as an example and if needed feel free to ask specific questions here
It was on how to make rocks pickable. Something that isn't just how to make ncp, I was on loop on how to get the context unzip due to not knowing where to go. I feel like another goose chase is gonna have just because I have never done this before...
Ty 🫰
Does it matter what I use to type my code in?
Yeah, that's why it wouldn't be helpful in your case. Making rocks pickable isn't something you can do with just data, it requires C#,
NPCs, on the other hand, require just data to work, which can be done in CP
!startmodding I’d suggest reading the documentation here, just so you could familiarize yourself with the basics of Stardew modding.
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.
As long as the file you produce is valid JSON, it doesn't matter what program you write it in, however I would suggest using a program which does format highlighting for JSON like VSCode
Okay great to know.
Npc making is also quite the complex task for a first time modder but if you’re dedicated to learn, I say go for it
It's something that is intersting to do. I have some coding knowledge just not how to mod a game. That is still new but i am willing to learn this just to get a grip on how this all works.
Many different ways to learn tbh, you could start with a simple mod that adds a customized item or say, alter dialogue in the game. Good way to gauge the basics. Either way, good luck!
Thank you
Once you get the basic concepts down, it's not hard at all to get going yourself, whether it be following tiakall's npc making guide (linked earlier in a Governor command), or just looking through [[Modding:NPC_Data]] and seeing what data you need to make a functioning NPC
and if you do need some practice Avery I can always make you some item sprites or smth to test with before we go into makinf Bronco
Lots of NPC makers in the channel, if you need clarifications, don’t hesitate to ask 
Will do, and thank you.
I only made I NPC so far but if you need a blue print for a romanceable NPC, you can have crack at my mods files 
That would lovely to see if you don't mind sharing with me.
#mod-showcase message
there might be some stuff you don't really need because I made a funky branching story line but feel free to use it as a template to learn or to create 
also sorry if I have not commented stuff too well 
It's okay, and thank you
wait- I just realize who this is. That's crazy. Amazing btw just crazy to know who this is.
yeah it was in colab with a streamer friend of mine, lol
speaking of npcs
amazing
mixed forests
Hm what happened to that pinned message with all the basic links
I was trying to find pufferchick art
#making-mods-general message this? it still shows as pinned for me
Thanks, mobile nonsense then

So like. Last time I messaged here I think someone mentioned xnb mods being bad. What do y'all mean by that? like is that just any mod that loads in an xnb anywhere? why would it be bad to do that?
they are hard to troubleshoot in case of issue, less convenient to modify, and more prone to compat issue
"xnb mods" is a term generally used to refer to mods that replace the xnb files within stardew's vanilla code. which is bad because it's overwriting game code and might break things
gross oversimplification on my part but maybe it gets the point across
hi! im very new to modding if i wanted to update this mod for my own personal use what exactly would i need to do? https://www.nexusmods.com/stardewvalley/mods/11840
hmm, so If I'm just using xnb files to store sprites and not modifying the stardew xnbs in any way, thats fine?
while you can repack your sprites into xnb files, there's not really much point
png and xnb are interchangeable for spritesheets as long as you're referencing the correct file and target asset, and the filesize savings are so minimal given the lightweight nature of sdv mods that it's hardly a consideration
fair enough
The github source code is linked on that page so you could probably just load that up as normal and modify it as you want. Defo best to keep that to personal use only though. If you aren't familiar at all with stardew modding you might wanna follow the wiki tutorial on cs modding first so you can get some understanding of whats going on in the source code
modifying an existing mod seems like a hard place to jump into stardew modding though honestly. If you're planning to actually make your own mods this is prob not the best place to start, but if you just wanna slightly modify this existing thing for your own use then thats fair enough
How much C# do you know?
the basics
like i can understand c# logic for the most part
I think you would have to just rewrite this mod it'll be faster
!startmodding Then maybe give the wiki tutorial a go to get yourself a working mod in game/set up your work environment and then start poking around in the mod source?
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.
1.6 changed how buildings work a lot
i see thanks for the info!
Historically, how long has it been on average from a pre-Alpha SMAPI version to when it's released? I recognize that this can vary, I'm just looking for a general idea.
It's not a pre alpha for smapi
Pathos has said 1.6.16 could be years away, assuming you're talking about Stardew 1.6.16.
Oh, of course, ^_^;;;; This is why I shouldn't Discord at 6am
In that case, I won't delay the release of my mod waiting for those features to be implemented! XD And I have all the more reason to be grateful to @lucid iron for making the features available now. ❤️
Thank you to you both.
Yep we cross that bridge when we get there 
I'll probably just keep the tractions for changing wallpaper flooring anyways
It's potentially useful for other things
In general pathos runs on a strict develop/main branching model and the various stardew branches generally get rebased on top of wherever develop is at
Ugh, I wish I could get my temporary cellar to warp to the right spot in the farmhouse instead of the door. >_< I know it's a small thing, it's just annoying
don't suppose anyone has any knowledge of projectiles? I have a class that inherits from BasicProjectiles and it works pretty well but in multiplayer if a non-local player creates the projectile it likes to go a bit through walls before it realises its supposed to break
wondering if there is anything I can do about that... its a minor thing for sure but it'd definitely be nice to fix
The netcode is 3 ticks late yeah
I believe the collision thing is handled on the player who fired projectile only, that why it be like that
Official recommendation is dw about it 
In trinkets one thing i did is make a hitscan ability that directly damages a monster
Wait, is it more or less doing a SYN/SYN-ACK/ACK equivalent? One step per tick?
And then have my own stuff handling the hit visuals
Rolling your own logic here may work better for some effects
I dunno you will have to ask atra
I feel like it's more the reflection syncing taking few ticks?
Iirc it only syncs once per three or smth like that
Much simpler, then! 
Hey! And that makes more sense. Syncing every tick would be a lot.
Warps are in, all map properties are in... base farm map itself seems 100% functional. Includes an 80 hay silo by default...
Hi folks! I was wondering if anyone knows if there is any way to edit NPC schedules without ending up with a huge horizontal line of text?
Tbh if you have huge horizontal lines of text you probably have too many points anyways
Word wrap? But you can also multi line schedules
Npcs move slowly
Yeah depending on where the points are you're only going to get 5ish in a day
Fwiw I'm not sure we are allowed to mention that site
After a quick Google, confirmed! 
is it possible to change the NPC walk speed?
oop sorry. Thought itd be fine to just imply for the sake of the joke
Nothing from content afaik
No harm done, but yeah, we keep even the references to things like that out of the server for the sake of the 13+ age thing.
yeah thats fair enough. still tryna pinpoint the vibes of this server in regards to that kinda talk.
Pretend there is a 13 year old reading over your shoulder at all times /j
We have 13ish year old active participants, even sometimes in this channel. I think it's nice that we can be supportive and encouraging to modders of all ages and abilities.
Hey, I made a map mods with Tiled, I add "Can buy here : Robin", Outdoors is True, Grass is in Buildable & IsFarm in proprieties, It loaded ingame but not appears in Robin Shop, what's wrong ?
oh yeah for sure! it's just kind of funny to me that even in here there's a wide age range, given how modded farmers tends to lean older 
we'd need a bit more info, (disclaimer i am no expert here this is more so other ppl can help you)
back in my day we didn't have these newfangled modding tools we just put the computer in the microwave and hoped that the radiation would change the RAM values in the way we wanted
kids these days
You say that, but I still use butterflies.
You can't buy a map at Robin's. Do you mean you're trying to make a building?
sounds like it
if i had to guess the error's in the json not in the building's map but. cant say without more info
The problem is the map doesn't appear at Robin's buildings shop, when I want her to build something
So in map properties, there's CanBuildHere, IsFarm, Outdoors in T
In Tilesheet property for the tile that's the most used, there's Buildable T
Also "can buy here: Robin" is not a thing at all as far as I know
Oh you mean you're trying to make a farm map?
yeah this is out of my knowledge field xd
god they really have an xkcd for everything huh
Have you used the info on this page to set up your farm? https://stardewvalleywiki.com/Modding:Farm_data
Or is this a custom extra map that you just want people to be able to farm and build on?
I've used the modding tools as best as I could
It's not exactly a farm map but used as a 2nd Farm location
I have both one that's gonna be used as a PIF and one that isn't
Do you need the JSON?
(Either way I have to go to bed so over to you alab!
)
On a surface level, it does look like you have the right map properties for building to work there...
For PIF I think the location needs always active maybe?
Check if you can build in this mod's pif
I can and I copy/pasted most of the map properties from it
Did you copy the location data
From the content.json?
Yeah
I'm currently trying to figure out how events work, and in particular I'm struggling to understand a bit of eventId 36, Penny's 6 heart event
Gimme a second to refresh my Discord markdown before continuing to describe my confusion
/end dialogue Penny \"Thanks for being my taste-tester.$h\""
I've run the event repeatedly, without saving between them, and have never actually figured out what the last section, seen here, does
When would she say "Thanks for being my taste-tester"
if you speak to npc after event they'll have this dialogue line
the wiki has a lot of info on event commands, althought it's of course useful to know when you know how it works already so...
Oh! Neat. Sorry, I probably could've figured that out on my own
I currently have that page open, and am just struggling to process the sheer quantity of information present
it's good to search a bit when possible but also, asking is a shortcut
it's all about balance
I'm having a hard time finding more information about specificTemporarySprite as well. It doesn't seem to have its own wiki page or anything
Ah, wait, I've found enough to explain that it's not really worth looking into for recreational use
You want temporaryAnimatedSprite for custom stuff
Profession bonuses are hardcoded in 1.6, right? Like Artisan +40%
I saved the tmx files and tilesets into an external desktop mod folder, then exported the tmx files to the mod folder but when I open the game it refuses to work because it registers the tilesets as not existing
I don't know how to not have the tilesets in the folder with the mod, because it doesn't work otherwise
Hello everyone! Can someone tell me how to create custom tokens in C# not CP?
ok i think a few steps are missing here
What steps have I skipped over?
can you tell/show where exactly you're putting the tmx files into
like, for example when im working on a map, (it looks this way because im using ATA, please imagine you see the towninterior.png) i have my map tmx, and then the actual tilesheets im working with in the same folder
and show like, what exactly the error youre getting is too
This is what is inside my assets folder
And the error codes talk about directory climbing (when I move the tilesheets out of this folder)
It's all working fine with them existing in the same folder, but the egg festival map edit I've made isn't spawning the eggs when the main event starts and someone told me to remove the festivals tilesheet from the mod folder
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.
Yeah that is the normal tilesheet climbing problem, the reason why it works while in your mod folder is probably because xTile loads the png next to the tmx first?
So how do I make it so the tilesheets I've used to make the map edit don't need to be in the mod folder with the tmx?
They're not all vanilla tilesheets
Map Fixer: Upload .tmx files to fix common map errors.
So besides actually fixing the tmx you need to do a Load to Maps/yourtilesheet from your asset/yourtilesheet.png
Oh wow I didn't know this existed!
Sorry, what does this mean? Is that like content.json instructions?
Yes, content patcher Action Load
It currently reads
"Action": "EditMap",
"Target": "Maps/Town",
"FromFile": "assets/Custom_NewTown.tmx"
Also I just put it through the map fixer, but when I unzipped it and opened it again in tiled it was like this
You can have many patches in a content patcher mod
Action Load is a different patch that you also need
Oh so I Action Load all the tilesheets I need?
For tiled, you need to have files in the same folder to edit, which is why normally people have a separate wip folder that is not their final mod folder
Oh so it's showing the 'can't find files' error just because I'm trying to edit it?
Yeah you need to do things different when you edit vs when you load the mod
Keep sheets in same folder as tmx when edit
Sorry to continue asking the obvious but what was that about Action Load for the tilesheets?
Okay I've put all the tmxs through that website, it only needed to fix one of them. They are now moved over into my mod folder, with the tilesheets still in my desktop folder
Unsure of what other steps there are
I have an example
This tmx has this image source https://github.com/Mushymato/LivestockBazaar/blob/main/[CP] Buy All Vanilla Animals/assets/SewerChickens_Void.tmx#L45
Thus this is the actual asset name Maps/mushymato.BuyAllVanillaAnimals/SewerChickens
Derived from
source="mushymato.BuyAllVanillaAnimals/SewerChickens.png"
I do not have a file like that, only SewerChickens.png
And where is that file kept?
This brings assets/SewerChickens.png to Maps/mushymato.BuyAllVanillaAnimals/SewerChickens
can someone please tell me if I'm wrong/a way around this? It seems that the preconditions part of an event has a character limit?
When i am editing the tmx, i do it in a different folder arranged like this
SewerChickens.tmx
mushymato.BuyAllVanillaAnimals/SewerChickens.png
This allows tiled to find the image
You don't have to set everything up exactly like me, but I hope this helps illustrate the difference between file on disk and loaded game asset
I will admit I don't understand it completely. So your tilesets are in a folder somewhere randomly on your computer (e.g. desktop) while the mod folder itself only has the tmx files. But the Load command pulls the tilesets from the external folder on your computer?
No
My actual mod as uploaded to nexus looks like this https://github.com/Mushymato/LivestockBazaar/tree/main/[CP] Buy All Vanilla Animals
Since sewer chickens is a custom tilesheet I do have to include it in my mod
open world monster spawning
However i put the SewerChicken.png in a slightly different location when I edit vs when I load into game for testing
I'm so confused. People keep telling me to not have the pngs in the same folder as the tmxs
The slightly different location is the important bit here
Do any of these loaded "maps" fire a location change event when they get loaded in?
Another thing you can do is to name your actual pngs like .Gef.ModName_Tilesheet.png
This will make tiled able to find the filesheet while making smapi require a separate actual load
The people who recommended this likely assumed you only had vanilla sheets
Aaaah I see
Because tbh it's all working fine as it was, but the eggs on the egg hunt weren't spawning during the main event
And I was told to remove the festival png, but that in itself isn't vanilla
It's good practice to do Load for your custom tilesheet so that recolors can edit them
However it'd be more helpful to show the actual crash before we started doing changes
It doesn't crash, the egg hunt happened (Abigail won) but no eggs actually spawned to pick up. They are there on the Tiled tmx on the Paths layer though
I wonder if the eggs are hardcoded to look for vanilla sheet indices
afaict earlier, it spawns eggs if any index on the Paths layer is from a sheet starting with "fest"
Layer pathsLayer = Game1.currentLocation.map.RequireLayer("Paths");
for (int i = 0; i < pathsLayer.LayerWidth; i++)
{
for (int j = 0; j < pathsLayer.LayerHeight; j++)
{
Tile tile2 = pathsLayer.Tiles[i, j];
if (tile2 != null && tile2.TileSheet.Id.StartsWith("fest"))
{
this.festivalProps.Add(new Prop(this.festivalTexture, tile2.TileIndex, 1, 1, 1, i, j));```
the tilesheet I'm using is titled 'festivals'
But is it called festivals in tiled
In tiled its 'fest'
festivalTexture in that code is "Maps\\Festivals" specifically from the asset system, so I could see it maybe causing issues if you included your own copy of that, but idk much about the game's tilesheet loading
Do you think it would work if I just removed the eggs from the custom tilesheet?
Or maybe I should just delete the festival mod, it's only really editing the aesthetics to match my town's redesign
you may need to just do what chu mentioned here & load your edit to the Maps/Festivals image separately in CP, while using the original tilesheet in your map edit
(idk about tilesheet embedding in maps enough to explain how to change that, though)
for w/e reason it doesn't seem to be treating yours as "fest" once it's in the game
Does this look like the correct way?
Action: Load
Maps/Festivals
FromFile: assets/festivals.png
(Obviously with the added brackets and such)
yep, that or EditData for the action to accomodate other mods' edits
Thank you @lucid iron and @royal stump and everyone else, sorry for going around and around in circles
Oh. GameLocation.doesTileHaveProperty() returns a string.
yep, those methods are pretty inconsistent between classes, and that one's null if the property doesn't exist
(and there's doesTileHavePropertyNoNull, which is just the same method with ?? "" at the end)
Is it 'LoadTilesheet' rather than 'Load' or 'LoadMap'?
it's only ever Load
Load is just Load, yeah (and Maps/Festivals is an image)
there aren't varieties of Load
EditImage; as far as CP is concerned, tilesheets are the same as any image
{
"Action": "EditImage",
"Target": "Maps/Festivals.png",
"FromFile": "assets/festivals.png"
}
any data on them is technically in the map file, which is Load or EditMap
(and not what you're dealing with in this case)
"Target": "Maps/Festivals", but otherwise correct
remove file extensions from Target, generally
And now this farm has a little patch of goop that will turn trees green and mossy. 
ooo
Slimed
I intend this to be the most C#'d farm map of all time... so far.
Hoping it kicks off a bit of a trend of farm maps with more fun little functional things to them.
When putting in coordinates in an EditMap command is it Width: 16 Height: 16?
The wiki gives an example and puts 16 13
I love this! Finally some farms with actual new mechanics, and not just new layouts.
And this is the teeny tiny mechanic of the map. The big one's waiting until it's completed so I can show it off fully in a video!
I will be eagerly waiting for it.
Btw, I asked this question earlier, but there weren't that many active people then. How do I create custom tokens in C#?
hey, pathos' small beach farm has no content patcher component iirc 
Gonna assume you want a content patcher token, but what is the usecase
I have C# code that chooses a random item from the merchant's stock and I want to set the names and the price to tokens to be used in the CP part.
the content patcher docs have a section on mod provided tokens
Where will it be used?
Asking these questions mainly cus I wonder if you actually want an item query
In the dialogue of the channel in the CP content file.
are you making a QVC shopping mod?
that sounds fun
(Ooh, I suppose I could fairly easily strip the CP component out of this entirely... but nah!)
I barely know anything about CP, and I am new to modding SDV so by all means ask, I don't know that much.
What is a QVC shopping mod?
QVC like the TV shopping channel
Hm I suppose you can make your own localized text?
Yes I am doing just that.
They might supply a string like You bought {0}!
And then you can supply the item display name for usage in format
Game1.content.LoadString has args for this purpose
though I support the tokenisable string approach
Then the content mod don't have to worry about tokens they just give you a template string
This kinda thing is what game does for dried weedses
Really (hopefully) basic question: If I want to load a map from the top corner to 51, 78 what would that be in the content.json?
I've used
"FromArea": { "X": 0, "Y": 0, "Width": 16, "Height": 16},
"ToArea": { "X": 51, "Y": 78, "Width": 16, "Height": 16}
How would I use that in CP? Can you give an example?
what festival is this and what map are you loading into it?
I know how to do it in C# (or at least I believe so) but I don't understand how I am supposed to use it in CP.
Egg festival and I'm loading a slightly modded version I made, but wanted to keep the majority of the vanilla map because the egg hunt wasn't working
So decided to just do that section of the map
I don't have example on hand but on your data model simply have a string field for people to put You bought {0}!
Oh and thanks @gentle rose I took a look at the guide you sent me it looks very helpful 
"FromArea": { "X": 0, "Y": 0, "Width": 16, "Height": 16}, //use 0,0 through 15,15 from your mod's map
"ToArea": { "X": 51, "Y": 78, "Width": 16, "Height": 16} //overwrite 51,78-66,93 on the target map
well this looks correct to me, it loaded the top left corner into the middle of the map like you said
then u do the string interpolation stuff on your side in C# when you go display the dialogue
the highlighted area in that screenshot didn't seem to match what the to/from numbers are
Now if you wanted to expose a cp token anyways you can follow official docs on that
oh I thought that was just showing where they wanted to move it to
However I recommend putting qualified item id instead of display name
I don't want to move the top corner into the middle, I wanted to replace the vanilla map with a modding map specifically the area from the top corner to 38, 75
And leave the rest of the map vanilla
I am still not getting how I could use it in CP because I don't have that much knowledge in the game but why do you suggest qualified item id instead of display name?
you can skip FromArea if your map is the correct size, and you'd probably want to use this for the other part
"ToArea": { "X": 0, "Y": 0, "Width": 51, "Height": 78}
(you may need to +1 or -1 the width and height, I'm not sure)
There's [ItemName (O)blah] if they need the name
That will just look weird for the player, right?
If you give display name then you won't be able to use as language agnostic When condition
Oh! I assumed the width height was the individual tile size
You have a content patcher pack for your framework right? Perhaps you can show people what dafa models you got rn for feedback
My suggestion might not actually make sense in your usecase cus I might've misunderstood stuff
fields with X/Y/Width/Height specify a rectangular area, so in map edits, they describe a space in tiles on each map (FromArea = yours, ToArea = the target map you're editing)
e.g. "ToArea": { "X": 0, "Y": 0, "Width": 51, "Height": 78} means "start at 0,0 on the town and edit a 51x78 area"
if either of those isn't included in an EditMap, it just uses the entire map, depending on their sizes
Ok so I tried to look it up, but I am sorry I do not know how this could work with CP 😭 I am prob just too dumb to understand but for now I will just go with tokens and maybe in the future when I get better I will do what you said.
public string Name { get; set; } = "";
public string Displayname { get; set; } = "";
public List<string> Dialogues { get; set; } = new();
public string? Texture { get; set; }
public Point SpriteIndex { get; set; } = new Point(0, 0);
public float AnimationInterval { get; set; } = 150f;
public int AnimationLength { get; set; } = 2;
public bool Flicker { get; set; } = false;
public bool Flipped { get; set; } = false;
public float AlphaFade { get; set; } = 0f;
public Color Color { get; set; } = Color.White;
public bool HideFromMenu { get; set; } = false;
public string? NextChannel { get; set; } = null;
public List<string>? Actions { get; set; }
public List<string>? Overlays { get; set; } = null;
{
"Action": "EditData",
"Target": "Astraios.MoreTVChannels/CustomChannels",
"Entries": {
"{{ModId}}_ShoppingChannel":{
"Name": "{{ModId}}_ShoppingChannel",
"Displayname": "The Shopping Channel",
"Dialogues": [
"Welcome to the Shopping Channel!",
"Today's special offer: {{RandomItemDisplayName}} for {{RandomItemPrice}} only!",
"Call now and get a free bonus gift!"
],
"Texture": "{{ModId}}/ShoppingScreen",
"NextChannel": "ShoppingNextChannel",
"Overlays": [
"{{ModId}}_RandomItemOverlay"
]
}
}
}
!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.
Ok one sec
So for today's special offer you can just do like
"Today's special offer: {0} for {1} only!"
And then do normal C# string interpolation stuff
As long as you communicate that {0} is item name and {1} is price i think people who are making the packs will get it
Tokens are useful mainly because you can use em in When
For a string that you control there's not much point going all the way around imo
Ok I understand what you mean now, I just didn't know the terminology.
Or to be more precise, didn't remember it.
I will try it now. thanks chu 
Still looking into why my NPCGiftTastes don't seem to affect Haley, and I tried running patch export gift tastes again today and got a different response than I did yesterday. Specifically, this
"Haley": "#$c .8#Oh my god! For me, honey? Thank you! You know this is my favorite thing!!$h#No way! Thank you so much, honey! I got something for you too! [797 221 446 204 645 373 279 341]/221 421 610 88/#$c .7#*gasp*...you saved this for me? Thank you, dear!$h#That looks nice, dear-Huh? It's for me? Well, thanks! Um. Oh, I know! You can have this in return. [240 275 226 220 72 730 621 347]/18 60 62 64 70 88 222 223 232 233 234 402 418/I'm... sorry, dear. This is kind of a dumb gift./-75 -79 -81 80 -27/Ew! Gross! What am I, your garbage disposal?/-4 2 16 330 74/Thanks, dear. I'll happily accept a present from you.//",
Which seems to me that because I'm married to her, the game is patching in a different string here in order to use marriage-specific dialogue, but it appears to be superceding the Content Patcher edit.
Hi I'm trying to make a mod that essentially just changes the food, and I was watching a tutorial to do something similar with the portraits, but I cannot find where's the sprites that I should replace with Content Patcher, any idea where can I find these sprites to edit them directly?
Maps/springobjects
Thanks, why is there several images for different languages?
some items have writing on them that varies, like these
Basically any tilesheet with text has some kind of translation i guess 🤔 what's interesting though is the desert festival signs like the free cactus, only had zh and a general "international" with no actual words. Maybe because of how the text wouldnt fit?
I believe https://gamebanana.com is a great mod platform to look into.
While mods can be found there, it is not maintained
Gamebanana is used for modding games like persona but not sure it's a Stardew repository
...also am I missing context as to why it was brought up?
there are a grand total of nine stardew mods on there?
and they're all like seven years old
and same
the license for smapi is wrong
Ive never seen a single stardew mod on that site, i never knew there were all of 9
Last ones are from 6M and last month
the seeming lack of an author name as far as I can see is probably a sign this isn't super compatible with stardew modding
but again, what brought this up? I'm confused
it doesn't even have content patcher, and I wouldn't download a version of SMAPI uploaded by someone whose name isn't even public because who knows if it's legit
You can add multiple authors
right but I can't see them as a user
are they paying you or something? /hj
oh their mobile layout is just bad on my phone
There is an author name somewhere on the page, or uploader name, something like that
But yeah its weird on mobile
Do they have upload api
Its behind this abysmally tiny arrow 😭
gamebanana is something i only have mods on because it's popular for console mods, the ui just isn't pleasant
how does iridium have 96 downloads
Iridium?
my switch mod manager
I've only ever used GameBanana for 1 mod, and it was for Mario Odyssey and I vowed never to use GameBanana again bc of how clunky it is
Lol
Doesn't the site also have a habit of just randomly deleting mods with no rhyme or reason? (not to mention the amount of game assets uploaded without permission)
Hello everyone, I have a simple question:
I want to create a mod that adds a new sound effect that is played everytime you open a certain menu. I am really new to modding. I am thinking about making two different mods. One of them is for SMAPI events and other is for adding the custom sound effect. Is that right way to do this?
You can add the sound effect with c#
Is the menu a custom C# one
People do sometimes split mods into a c# and cp component, but for trivial edits like adding a sound it's probably better to just make it one c# mod
Or one that exists
how do I go about manually taking control of the camera from the farmer? I looked through the API docs but there doesn’t seem to be anything on that
For what purposes?
The way I did it was to just modify ViewportCenter IIRC
no, I will probably add this feature to dialoguebox menu
Which may not be the best option idk. But it does work and it respects map bounds and whatnot
This is my viewport mod lol https://github.com/atravita-mods/StardewMods/blob/alpha/CameraPan/HarmonyPatches/ViewportAdjustmentPatches.cs
I want a feature in my mod where you can edit ghost objects on the farm before they are placed, which would be awkward if it made the player run around to edit everything
For most maps, repeatedly calling Game1.moveViewportTo should be fine
That feature is technically still on Smart Building's backlog! 
I did use Game1.panScreen() for the prototype teleport mod UI, though.
The game doesn't really have infrastructure for shader stuff. Monogame can apply effects to draw calls but you'd have to do the buffering and state management for it yourself
What specifically are you trying to do pam?
It sounds like Smart Building more or less but with screen panning so you don't need to walk around?
Sounds good if that is it!
How can I do that? I am looking at the moddin guide right now but I didn't understand how to add new files. Is there an example I can look?
the ideas I have probably far outweigh my C# skills lol
Honestly just having a separate freecam mod alongside Smart Building might be the way to go. I don't really use SB but I'd love to have a freecam mod
the shader thing I was thinking of applying in a variety of places, since shaders are pretty cheap performance wise while giving flexible effects
Is it something like this, but with screen panning instead of needing to walk around?
Yeah, that'd work perfectly. It doesn't really rely on the player position at all. It's all the cursor tile.
Try looking at the content event section of the smapi documentation on the wiki. If you need to I can provide specific examples.
I’m actually trying to make a full overhaul mod for my very first mod
I might regret it down the line but we ball
Ooh, what's the mod?
an alternative production gameplay loop, where you use semi-automated hydroponics to turn the gameplay from manual labour to design and automation
Shaders are not overly complicated in theory but will probably be annoying to set up. Basically you need to have the whole game drawn to a buffer, then in a separate draw call, draw the buffer onto the screen with the shader applied
Technically you can also apply a shader effect to the game's draw code directly but that is a bad idea for mod compat
I could start with making a shader lib mod perhaps
Unfortunately this does mean that there is no practical way to use vertex shaders
Honestly not a bad idea
does the vanilla sprite drawing process happen in RAM or GPU?
I also have to consider doing zero-copy for performance probably
gonna have to rewrite the entire rendering pipeline in C++ for DX11/vulkan at this point 😭
The game exclusively uses spritebatch for drawing afaik, which creates geometry under the hood and then sends it to the gpu
The game is locked to 60fps anyways and is always cpu bottlenecked
except for when it's ram
Hm i think the closest mod to a shader lib is cloudy skies?
I don't know shit about shaders so I just draw sprites 
Spritebatch is suboptimal for sure but there's no way around that without redoing the entire architecture of the game, which would kill most other c# mods
reminds me of when I wanted to make my first mod for baldur’s gate 3 and it turns out the idea I wanted to implement required a binary patch on the executable
The first post here at least highlights somewhat how you use shaders with SpriteBatches:
MonoGame just does not make shaders a smooth process.
Is there a way to add NEW SOUND EFFECTS to the game? All the documentation I've found only works with replacing the current ones.
You found the page with the sound data asset?
you mean this page? https://stardewvalleywiki.com/Modding:Audio#Data_format
Yeah
Yeah I've found it
I am not actually sure if shaders r cheaper performance actually
All you have to do is add a new entry and make the key the id you want to use for the sound
being able to offload to GPU is always cheaper
It seems like render target is more frequently used for optimizing draws
I might add a lot of new sound files, so I thought making a seperate content patcher mod will better.
By just not doing all the individual draws again
It's up to you
I'll clarify, cheaper performance when you are hoping to add effects here and there
thanks for help
Vs reshade whole game like nightshade
I was thinking of like how Factorio does a lot of procedural effects under the hood
Question for people familiar with C# mods: is there an open-source or source-available mod that happens to have controller support for menus?
I'm interested in poking at code like that for learnings, but I don't know how to go about searching for 1) mods that have that feature and 2) where in the code that would be.
Yeah. Fragment shaders are pretty expensive, they're just parallelized so you don't notice as much
Isn't most of factorio a giant prerendered texture atlas
sure, but not all of it
Quite a decent amount is, but theres still quite a few effects that aren't pre rendered
So are you using vanilla system (neighbour ids) or would like to use some framework that makes it easier (stardewui)?
I'm open to both options! I've been tinkering with this idea on GameMakerStudio for a personal project and figured there might be something to learn from SDV 
Well don't learn the vanilla menu system it sucks 
Yeah, I'm not sure there's too much to garner from Stardew in regards to UI. 
also it depends on how "supported" you want the controllers to be 
Special Power Utilities technically supports it, but its not perfect, though in my defense, I mimick the vanilla menu, which is also not perfect in the same way, so
I feel you would have better luck looking at what game maker itself provides?
In my shop menu mod i slacc and just bound shoulders to switching the tabs lol
but also yes dont learn from sdv if its not for an sdv mod i agree
I've tried, it's slim pickings out there. I've got player character movement down, it's the interaction with buttons that I'm struggling with.
How solidly do you require a traditional menu?
The classic Spelunky made in Game Maker literally just used its platforming as the menu interactions for a lot of places.
Oh, this isn't #programmers-off-topic... maybe best head there!
Stardewui is quite well made but also hella complicated (it's analogous to qt or winforms)
(also you could ofc just look at the decompile for SDV to see how it does its menus instead of looking at how mods emulate its menus)
I don't know if game maker let you do any of that
Aha, I forgot that existed!
Ui in gms 
Have fun with that
UI was one of the reasons I abandoned gamemaker
umm haiii everyone! im trying to make a mod for the first time. when i tried to test it out smpai says that its an empty folder. how can i fix it?
If it says it's an empty folder it's probably right
Can you screenshot the folder setup you have for your mod?
of coure, can i send it to you in dms?
im just kind of embarrassed thats all
It's okay! We all started somewhere
(unless it contains nsfw material then do not send it here)
Everyone got first times, though yes try not to ss any private info or not pg13 things
Your log should say what folder is empty, make sure you are looking at the Mods folder and not somewhere else
ohhhh
yes its inside mods
Cool, so enabling file extensions and renaming the files should fix the initial problem
...watched?
!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.
yeah we do not recommend video guides we always rec text guides,, much more reliable and up to date
yes thank you for the advice
Is a release date for 1.6.16 set yet? (just noticed furniture type will be capitalised in that version, wasn't sure if its worth waiting to make a script to auto change it or not)
good to know, thank you!
Furniture has big changes in 1.6.16, there will probably be cp side rewriters
...thonk
Ahh okay, I'll have a gander at the current migrate guide just so the entire thing isn't sprung up on me when a mod breaks
(Stardew Valley 1.6.0 added a new dialogue key which was never documented: <dayOfMonth>_*. See updated docs.)
Rewriters as in old packs will get transformed into new format by content patcher
i see....
That reminds me, does spring_<key> still not always work for dialogue keys?
Assuming you're using it with a generic dialogue key, spring_<key> should always work so far as I know? It might be overridden by a higher-precedence key though.
We had an issue a while back where spring_1 wasn't working, and it was going straight to the Mon key instead.
Which I don't think Mon is supposed to be higher precedence, but I could be wrong!
at the time, atra said it sometimes doesn't work.
Were you in year one? If not, that'd be the warning on the <dayOfMonth> entry:
(<dayOfMonth>_* is the one that works in any year as you'd normally expect.)
Lemme find it
is that * a placeholder for a number or somethin or do we have to literally write * and cant actually specify the year number?
It was this scenario here: #making-mods-general message
Year 1 and Year 10 were both tested at the time.
They're not in the server anymore, but feel free to ping me if you can reproduce it and I'll take a look.
Yeah, it was several months ago at this point
Looks like literal, considering a <DayOfMonth>_<FirstYearOrLater> key already exists
that one only allows 1 for first year and 2 for any other year though, so its not specifying a year still, so i wanted to ask to make sure
It's a literal * (a placeholder would be shown as <year number> or something).
Hey I'm still lost about the new NPC format for the content.json and manifest.json. I followed the links from using "! npc" and I'm still confused. Would anybody be able to help me trouble shoot in vc? <:)
So, the links from the !npc command are going to reference what goes in your content.json
I read through them yesterday again, but I think that I have it formatted wrong in my .json
Should I just use one of the "plug and play" templates?
!json Mind sharing your JSON through the link here?
JSON is a standard format for machine-readable text files that's used by Stardew Valley mods.
If you need help with a JSON file, you can upload it to smapi.io/json to see automatic validation and share the link here.
When making mods, it's recommended to edit your files in a text editor with JSON support, such as VS Code, Notepad++, or Sublime Text. These programs will check for syntax errors.
Oh cool I already had the website open :o
https://smapi.io/json/manifest/800952bf948d43a7a575a17c1af34464
line 7 should be "ContentPackFor": {
Yes!! No more errors in manifest.json!! Thats progress :)
Does the https://smapi.io/json website work with the content.json file?
does anyone have a tutorial on how to add only a house to the default map?
can you clarify what you mean by "house" and "default map"
https://stardewmodding.wiki.gg/wiki/Tutorial:_Map_Patches_and_Warps This tutorial uses Sunberry's town map for their example but you can apply it to whichever map you want to. Just be aware that adding a new house to Town (which is what I assume you're wanting to do?) has a lot of incompatibility risks with other mods.
I have a stupid question... when you use {{ModId}} do you have to define that in the content.json or does it pull it automatically from your manifest
It pulls automatically from your manifest
well that's handy
thank u just did it and worked
@ivory umbra Hello! I am using your Monster Hutch Framework and have noticed that the documentation says the incubation time is in days with a default of 2 but the implementation appears to be in minutes?
Hi, Someone has made a translation for one of my mods but I'm not entirely sure how the i18n translation system works. All the names, config options, etc have correct translation tokens, does that mean I can just drop in the zh.json file into the i18n folder or do I have to add something to the content.json file like you have to do with the config schema?
former
Thank you!
are the Energy Tonic and Life Elixer effects of restoring health OR energy hardcoded, or is it possible to have consumables restore a set amount of health or energy, but not both?
hardcoded yes, but spacecore allows you to unhardcode it
nice, thank you! I'll look into SpaceCore and see how that's done, then
I'm wanting to make some consumables where one restores 50 HP and the other 100 Energy (for example), but it doesn't look like I can do that with just Content Patcher, so having SpaceCore handle that would be great
found it, thank you again :D
I see that WeaponSpeedMultiplier is a possible buff that can be put on consumables, but is there also one for tool use speed, like swinging your axe or pickaxe faster?
hm might wanna read out the wiki for the player, I think there was an effect for that mentioned there
I did read the wiki, and I couldn't find anything there that wasn't for tool enhancements at the forge. do you remember where on the wiki you saw it?
The damn in-progress-for-almost-two-years cornucopia cooking mod
It's relatively close to being done but I'm the only one working on it
just add a dialog line where Elliott confides in the farmer that he has a super secret pen name that nobody would ever guess that he sometimes refers to himself as, and an even later dialogue line where he reveals that it's Elliot
would Elliott call it a pseudonym, a pen name or a nom de plume 
@round dock @brittle ledge help me elliott experts
(I recently learned about the term "nom de guerre". now I want to find out how many other similar terms there are. So far I also found "nom de théâtre")
new favourite: nom de crinoline (used one time for a name a male author used to pretend to be a woman, I nominate we turn this into a Thing)
!eliot
Elliott has two l's and two t's in it...
is it possible to hide the bus in an event taking place at the bus stop? I've tried makeInvisible which didn't work
not exactly, no - it's not an object in the world, just a sprite drawn while in the busstop
Spacecore's got a token that checks whether you're currently in an event, so theoretically, you could use that to temporarily replace the spot in Cursors where the bus normally is with, well, nothing, so it would become invisible.
(See here under "new CP tokens" about halfway down the page.)
Thank you so much!!
Correction: The bus is not in Cursors. My bad. The one time I don't bother checking...
Do you know how I can find out where it is?
!unpack your game files if you haven't. From a cursory glance, it looks like it's in Maps/spring_BusStop? Do double check, though, please.
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!
Thank you so much!!!
Ah, dangit. Thanks for the correction.
x: 288, y: 1247, width: 128, height: 64
I didnt know about "nom de guerre"!
Hello. How do I use another mod's ID in a when condition using content patcher? No errors, but doesn't work in-game.
Did yiu check with a patch summary?
turns out it predates nom de plume!
Well of course it was defeated
"La plume est plus forte que l'épée" after all
(Not sure of the exact translation. Quill mighter than sword?)
pen is mightier than the sword, yeah
they're actually different though, nom de guerre is specifically used for war pseudonyms, nom de plume is specifically for pen names 
as with many things in modding. i was dreading and avoiding learning ftm. and now im doing it and its not that hard at all actually
Yes i guessed but the opportunity fir the joke was too strong
We also have "nom de scène " which may just be more generic version of the theater one
When unpacking the game contents, do sound effects end up somewhere? I can't seem to find them
No
Audio is not unpacked
There is a separate unpacker for that
[[Modding:audio]]
Hi I have another issue with the PIF map I'm making
I can't fish, I can only fish trash
I put Water T as a tile property of the water tiles in Tilled
And I copied/paster the fish infos from the Location Data Modding Wiki
Can you help me with what's missing please?
are joja's route community center bundle prices editable with content patcher?
Afaik no
I believe I use "pen name" in RWE.
(
)
(poor Blade)
Do you have vpp installed
I believe there's an incompat atm
I do but I can fish fishes in other PIF maps?
Is your location data targetting the PIF asset
What does that mean ?
And how can I do it ? Pls
Well you know how you had to do editdata DLX.PIF/Farms
Did you put your location data here too? Or did you edit Data/Locations instead (which is incorrect for pif)
No I haven't, can you show me an example or something pls ?
I'd take a look at the content.json of the pif rooms you can fish in
I have I just don't feel like anything's different, I'll check again, thank you
!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.
There's a tool you can use to search and replace within multiple text files in a folder location. Can't remember it but it exists! I can check the name when I'm home in a few hours
Ahh I do like that but I was wary since replacing Elliot with Elliott means I may end up with Elliottt in some places HAHA
I just replaced them all manually to make sure it was correct!
if you're in vscode, enable the little .* button and then put in Elliot[^t], but that might actually delete the end quote nvm
Fair 😭
or find and replace the Elliottt's afterwards and replacing them with one without the extra t
Elliot\b
replace elliott with elliot then elliot with elliott
what could even go wrong?
Something would definitely happen to Mail_ElliotTiramisuRecipe
(In the end, I only mentioned him a few times, wasnt so hard haha)
!ellinut
My only contribution

Mom come get me I'm scared
Is there a way to see SMAPI's console
don't manually disable it
is this it
yes
Does anyone know if my code needs to be in the mod folder for it to interact with SMAPI or not? cause it's somewhere else and I think it's still interacting with it even tho it's not in the mod folder
it's not loaded so no it's not
but mods have to be in the mods folder you're launching smapi with yes
Does it always say "Loaded 2 mods" when there's no mods added on?
because there's 2 preinstalled mods
Okay I see
this is what my mod folder looks like, it doesn't look similar to other mod folders yet. is that ok?
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.
Here's my two cents as I am still new to the modding scene myself.
If you mod mainly adds new crops (I'm just assuming because of the project's name).
You might want to look into content patcher modding, it can 100% be done with C# might I found it easier to start from content patcher and progress from there.
Either way good luck you got this!
It's the 2nd link in this message
That’s not a mod folder, that’s a C# project folder. You’d need to compile the C# to make a mod folder. Avissar is correct though, crops may be easier in CP if there’s nothing weird about it.
does anyone know if there's a buff for tool use speed like there is for weapon speed?
I don't think so
