#making-mods-general
1 messages · Page 503 of 1
I don't know what I thought you were asking, brain made of spaghetti today LOL
Yeah, it's basically two patches, you just use the "when" to tell the game which one to use
False for the one without SVE, true for the one with
Okay, and do I need two separate maps to pull this from?
(dynamic tokens can be an option too if the person feels better using it)
Not necessarily, though SVE changes quite a bit and it might look odd just moved. You'll want to check that
Because the location of the house changes and so the warps change too
you can add warps with CP
I guess you could add warps with- yeah that
i do that to a map so it changes destination based on the day
//Random cave warp { "Action": "EditMap", "Target": "Maps/Lumisteria.MtVapius_ForestCaveStar", "AddWarps": [ "5 10 {{Random:Lumisteria.MtVapius_ForestCaveAmber, Lumisteria.MtVapius_ForestCaveMoonPond, Lumisteria.MtVapius_ForestCaveMarsh, Lumisteria.MtVapius_ForestCaveWinterRift, Lumisteria.MtVapius_ForestCaveVoidGrove|key=Lumisteria.MtVapius_RandomRoom}} 7 37" ] },
so i remove the warp map propoerty from the interior of the house, right?
Just remove the warp from the TMX and do it by Content Patcher, yeah
okay perfect
I'm having trouble getting my ocean map to - ocean-
the waves work on the shore, but I can't fish there
https://smapi.io/json/none/e0e89136c9d24a48874976af4f9566e0 here's the mapdata ty in advance
in tiled are your water tiles on the back layer
Yes 😄 is that wrong?
oh, uh no I don't actually
is there something on the building layer?
are they on back and not back1 or something
the wave edges are on the buildings like on the regular beach map
well you can't ever fish on wave edges, is that what you're trying?
haha no I'm going down on the dock I built and trying on the actual 'ocean' part and yes they're on Back, I have Back, Buildings, Paths, Front, Front 2 and Always Front
can you send your map as well as any custom tilesheets it uses
(it's just that building will block the possibility to fish so i wanted to be sure your ocean wasn't covered in building tiles)
alright here - loaded up a bunch of vanilla tilesheets before I re-read the message and the 'custom' part sank in haha
why do your vanilla tilesheets have . in front of them?
i'm worried now that your tilesets don't have properties
it was something recommended to me a while ago
That's fine
Before tilesheetinator it was best way to have vanilla sheets in the folder and still make em load for game purposes
i see
mannnn please hold while i manually redirect these then
this is what i'm seeing btw--make sure you don't have two copies of the same tilesheet in your map
okie dokies, I'll make sure to check that I don't
is Paths.tsx something different from this tilesheet?
also, what is spring_BeachAnimations?
It’s not. Also. I don’t know it’s not in my list of tilesets when I check tiled
oh okay i've had that issue before actually
you have a map open with an un-embedded Paths.tsx in it, and tiled is copying it over into every open map you have
i'm going to go ahead and delete that tileset from this map then
and you don't know what beach animations is?
probably the same issue since it's also a .tsx
That would also be my guess
ok i'm going to go ahead and delete that too
you did use beach animations at some point--those gray squares used to be red Xs that went away when i deleted that tilesheet
Hmmm. Maybe I did at some point and didn’t realize it? But those are bits hang on lemme do a little digging
if whatever those tiles are/were didn't have the Water property, then they wouldn't be fishable
They were pulled from a tileset that links to a png when I check they’re from the beach.
The other spots aren’t fishable either
they're from spring_beach?
at the very least you have to get rid of the duplicate tilesheets
you have both untitled tile sheet and .spring_beach which are both the same
!tilesheetinator i also recommend this over the . method
You can use the Tilesheetinator tiled extension to create Stardew Valley maps that work in-game without having to copy vanilla and modded tilesheets back-and-forth, rename files with a . in front of their name, edit maps only in the unpacked content folder or make symlink workarounds.
See the mod page for full installation and use instructions.
Yeah, I removed them and I removed the tsx from the map and making sure I re-add the properties with the .spring tilesheet :3 should have just enough time to test before hibachi.
Oooh, thank you! 😄
hmm, if i want the player to choose some options in a menu and have flags or something based on that, is there some other options than the ol classic event?
you can do it with questions in dialogue
i assume you don't want it to be config options lol
i want it to be on an interactible tile
so it makes dialogue a bit of similar option than event i would say?
yeah agreed
hmm maybe BETAS could do it? i feel like it would still do it through dialogue though
what sort of thing is the player choosing?
basically some options to obtain resources, maybe with a cost
like "obtain stones this week" and "obtain slime this week" sort of thing
what about opening a shop?
hmm
ideally i want the player to choose, then they'll receive a letter with the stuff, so i can have some character's stuff going on
so shop is a bit too direct
hmm i see
maybe different tiles, perhaps with signs in front of them, like "touch the red button if you want slimes this week" and then the player interacts with that tile
i believe MMAP has a better question interaction thing
The vanilla way is buy stuff from shop
Set action on purchase
Otherwise an event to do question in will work
As would fake npc to give the dialogue
(Aedenthorn's repo is easy to spot when testing mod source links.)
How does one make the Visual Studio build the program to a certain folder? As in, like MermaidFolder/MermaidProgram? (As in, instead of jsut building to MermaidProgram)?\
<GameModsPath>D:\Games\Steam\steamapps\common\Stardew Valley - 1.6.15\ModDev\AbaStardewModsPrivate\AbaCSharpProjects\_Compiled</GameModsPath>
Or for non-mod code, see the BaseOutputPath project property.
Thanks all! 🙂
I'm so happy y'all. Immersive Festival Dialogue still works beginning at year 3 festivals! I might check it over at some point for consistency with the new dialogue and see if there are any new tricks I can do, but I'm soooo happy all that effort wasn't wasted :) 🧡
okay, so it's not perfect. idk if I'll get to updating it soon, but I'm just glad it still works :)
Just to check, when I define the mods path, when the mod goes on other OS's, does it still work?
The GameModsPath only affects where the files are deployed on your computer. It doesn't have any effect on the actual release zip that players download.
Yes! Thx!
out of curiosity, do you guys think it's easier to update a character mod from 1.5 to 1.6, or to just start from scratch...?
i started from scratch, but i was wondering if with this being my first try if i should use the npc maker program and then just... update the files?
ofc i know it's harder to test it if it's made to work with 1.5, but at least i'd have something to actually. y'know. test;;;
If you don't already know how to make an NPC, I say start from scratch in 1.6 so you learn best practice right from the start.
if by "npc maker program" you mean miss coriel's npc creator 3, you should not use it
The actual NPC syntax is relatively straightforward. You can start from this example code which creates a full working NPC, and tweak it for the NPC you want to make. Most of the work will be tailoring the actual NPC (e.g. creating their sprites/portraits, writing all their dialogue, creating events and schedules if applicable, etc).
So it can certainly be helpful to look at a 1.6+ NPC to see how it works, but it's not much more work to convert a 1.5 NPC to the 1.6+ format.
OOO i think i missed that one before, thank you!
i got kind of overwhelmed before so i figured i should try the coding part again from the beginning, so thank you
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.
-
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!
idk if id ask here but, how does one update a mod? i want to update this mod https://www.nexusmods.com/stardewvalley/mods/8667
What issue do you want to fix? (Note that most older Content Patcher mods should still work even without an update.)
you won't need to do much. it's a content patcher mod, so it probably still works
i have no idea if it works actualy, but in #modded-stardew was told it should be updated
you would need to update any images that are out of date, namely to add missing frames (i am thinking in particular of hazmat suit demetrius and sam's new portrait, both introduced in 1.6)
how does one do this
Make more art, really
oh
use your image editor of choice to edit the image
oh and of course winter outfits are a thing so you would need those. that increases the work substantially, in fact
Might need beach outfits too, I forget when those came in
so im cooked
what was the version in may 2021,,
Yeah, think that means you'd need those too
1.5 was late 2021 i think
Can't be, I was playing 1.5 in early-mid 2021
Oh hang on think I read this date wrong. It was December 2020, not 2021
December 2020
it was late 2020! https://stardewvalleywiki.com/Version_History#1.5
Might have those, then
Doesn't look like it
soam i cooked?
Well, anyone can learn to draw and anyone can learn to make a json mod, so not really if you want to do it
n what if i want to keep the base outfits for winter?
easiest solution is probably to load/edit the winter textures the game expects as well, just using the same base image
you could also overwrite each character's appearance data to remove the winter sprite reference entirely but that's slightly more work
where does one find the textures? sorry i never done this before
!unpack you'll need to unpack the game's content files to be able to see how they're set up, so you can figure out what edits you need to make using Content Patcher. but you'll also have to learn content patcher in order to be able to do that in the first place
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!
if this is truly your first dive into modmaking, i recommend doing something simpler first, or just limiting yourself to one aspect first before trying to do the full update: for example, try just editing sam's portrait image in the mod and adding the new expression he got in 1.6, without having to do all the json/content patcher stuff yet
if you go straight for the finish line, it is easy to get overwhelmed
so i have retextures for 4/12 people,, which i think helps?
sorry for so much asking
nvm only 1/12 from the mod
ill do it tommorrow
Start by getting just one to work, then expand from there. 🙂
but how does one start
!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.
Ignore the C# part and have a look at the tutorial for Content Patcher and the tutorial wiki
How do I put a dialogue into speech bubble?
during an event?
yep
thx
possible stupid question: is the code to load the blank.json in the dobson sample code...? if not, where should i put that code?
in the content.json above the other load codes, right?
to load a blank.json, you would make a patch (the block of code between {} that has an action) to load blank.json to whatever target you want. you can put it into any file you want as long as that file is content.json or is being Included in content.json
"Action": "Load",
"Target": "Characters/schedules/Dobson",
"FromFile": "assets/blank.json"
}```
like this
ahhh okay, so it won't like, break anything if i put it right after "Changes": [ ?
nope! as long as your syntax is correct
patches all go on the same level inside of Changes
we were all beginners once lol no problem
are you making an NPC? have you been linked to tia's NPC tutorial yet?
yeah, i just got kinda overwhelmed back when i started so i abandoned it for a while
i actually!! just got some basic overworld sprites done, and i've had the portraits done for a bit, so i'm excited to actually get coding
nice!
how do you input specific dialogue for gift taste items? 
Search for the AcceptGift lines on the dialogue page of the wiki
er i mean like, if i gave the npc a specific item on their loved items list, how do i input dialogue for them responding to that specific item? like, if i wanted them to say "oh thanks i was getting kind of tired" or something if i gave them coffee for example?
is that in gift taste or in a different file?
for a specific item (or category, or context tag), it would be in dialogue, but for all loved gifts generically, that would be gift tastes
"thanks i love coffee" = dialogue
"oh wow thank you i like this" = gift tastes
AHH okay thank you!!
Yes, that is what I meant. The AcceptGift lines on the dialogue page of the wiki are how you write lines for specific items.
OH i was on the wrong page sorry
Is it possible for me to play a springtime petals or a wedding particle effect in an event?
is there a sample schedule that people use for testing i can slap on my character for the moment?;;
You can just pick a spot for them to stand and one spot for them to move to.
Simple as it gets, really
yep as long as you have the “spring” key that’s bare minimum
I usually just copy and paste a vanilla NPC's schedule
also works
isspecificTemporarySprite wed the one work here?
so uh, i just got a really long code from smapi that basically told me that it doesn't like my mod yet lmao, can someone take a look at it and tell me what i need to fix?;; given how long it is i'm a little worried about just copying and pasting it in here
how do i even edit + add new expression?
-# i can't fall asleep so modding here i come
sorry for ping :(
!software
Here's a list of software for pixel art and JSON text editors we recommend: https://gist.github.com/ishanjalan/c8efb21afa21f74a052293176db107f7
For making SMAPI (C#) mods, see the Requirements section here for which IDE to install https://stardewvalleywiki.com/Modding:Modder_Guide/Get_Started#Get_started.
that didn't even ping for the record
!log You can follow the instructions in the message below to share your whole 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.
how do i add the new expression though ?
in order to add new expressions you'll need to look at the current portraits and just draw whatever is missing
Each face on the portrait sheet is a different expression. If new ones are added, you'd need to add versions of them for that portrait mod. For example, Demetrius in Green Rain is wearing a hazmat suit. This shows on his character and portraits, but he doesn't have a different sheet for them. They're on the old sheets.
A mod for an older version of the game might just have blank space there instead
i know there's funny placeholder sprites in demetrius's spritesheet
If you don't particularly care about replicating what the original portraits and sprites have going on, doing it for personal use, you can just pick one of the other portraits/sprites you deem close enough and copy it over into the right spot
i'm awful at puxel art i won't be able to do it sobbing
Well still, if it's just for personal use, you can just copy Demetrius's normal expression over to that right spot and it'll be good enough to use, anyway.
https://smapi.io/log/b4654daedeb847f0a1e31e078edcc4d8 here's the log,,, i also don't know why it's saying the mod name is like. his name twice.
Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on Microsoft Windows NT 10.0.26100.0, with 3 C# mods and 1 content packs.
Won't have Invisible Demetrius during Green Rain
Not really any art to that, just a copy/paste job.
Yeah you can copy Sam's first expression down to that blank spot and if you want, slap some eyeliner pixels on
It's basically the same face anyway. Demetrius's hazmat suit is... well, more difficult if you want to keep the vibe.
!json
It's saying his name twice because your mod's unique id is espurrel.Hugo and your NPC's internal name is {{ModId}}_Hugo, which Content Patcher turns into espurrel.Hugo_Hugo in game. It's meant to be like that.
As for the error, it's saying your json is broken so it can't load it. You're probably missing a comma on line 5. If you want help finding the issue rather than me guessing based on reading the error message, you can share your json using the json website.
Poop it did not like me doing that
!json
JSON is a standard format for machine-readable text files that's used by Stardew Valley mods.
If you need help with a JSON file, you can upload it to smapi.io/json to see automatic validation and share the link here.
When making mods, it's recommended to edit your files in a text editor with JSON support, such as VS Code, Notepad++, or Sublime Text. These programs will check for syntax errors.
(u can't !json line breaks)
this is the mod btw
i'm probably so cooked 
!anyonecancook

you're only as cooked as you believe you are
putting yourself down is the number one way to fail
if you don't want to draw the extra portraits, you can just leave them blank and just deal with them being missing if they come up in dialogue
https://smapi.io/json/none/6a1a612863da43e4b3acbee166a30467 line six looks okay to me, but this is also my first try so
wait are the portraits only thing needed to be updated?
yeah, spirit, you literally will never improve if you don't try!! give it your best
well they're missing winter portraits too
but you can just make the game use the regular ones if you don't care about the villagers wearing seasonal clothes
surely i can make game not make em wear the seasonal stuff
Just copying one of the other portraits over would be enough to remove invisible faces. A similar emotion would really do well enough. Sam's new portrait is really just his very first one with eyeliner and a background.
As I said, the problem is on line 5. When the errors mention line numbers, the problem is often on the line above it. In this case, you've got a closing curly bracket on line 5 that doesn't belong there. The indentation is so bad it's difficult to tell if anything else is wrong - what text editor are you using?
notepad,,, 
oof
You can, but it would be more complex than just replacing their winter images with the other ones
You can just replace the winter ones with the new ones too, yeah. Same with the beach ones
Well, let's fix that immediately. You can grab Notepad++ or Visual Studio Code. My recommendation is VSC because it has more useful features and better syntax management imo.
where can i find those?
!software
Here's a list of software for pixel art and JSON text editors we recommend: https://gist.github.com/ishanjalan/c8efb21afa21f74a052293176db107f7
For making SMAPI (C#) mods, see the Requirements section here for which IDE to install https://stardewvalleywiki.com/Modding:Modder_Guide/Get_Started#Get_started.
when i actually get sleep n all ill prob ask for someone to do like a step by step with me,, i have autism so its hard for me when just reading if that makes sense
OH thank you i keep forgetting we have these
It's not very polite to ask for step by step help. You've been offered a lot of resources and people are always happy to provide guidance if you need clarification, but the onus is on you to actually make use of the resources you've been offered. There are browser extensions to make text easier to read (like Text Spacing Editor).
if you're really tired rn, it can make this kinda thing a lot more daunting than it is too
better to pick it up in the morning with a clearer head
IH I DIDNT MEAN IT LIKE THAT
i love the resources you guys gave me !!! idk how to explain what i just said :(( sorry if it came off that way
i bookmarked the stuff
okay gonna try to sleep, gn guys ! sorry if i offended you guys :(
i have vsc open now!!
get some good rest, things might seem less intimidating tomorrow 
things will be better after sleeping!
Okay! Try deleting that closing curly bracket on line 5 and then press Shift-Alt-F on your keyboard. It should tidy up all your indentation, hopefully. If you have more syntax problems, it might not fully tidy it up but it'll be a start.
gonna test it out again, vsc is saying there's issues still but
If VSC is saying there's still issues then there probably are, unless it's complaining about comments or trailing commas (neither of which are a problem for Stardew)
diving back into the code then 
Rules of thumb:
- brackets always have to be in pairs
- you need commas between lines
- where something is nested inside bracket pairs matters. Things have to be at the right level (i.e., inside the right set of brackets for them to work properly.
okay, maybe stupid question incoming, but what do the different text colors mean?
i assume red text means there's an issue, but
Do you mean in the smapi log or in VSC?
vsc, sorry
If you can share a screenshot I can see what you mean
I don't use the default VSC theme so my colours will be different and therefore I can't just go off description
like, there's two red brackets, green, teal, and pink text here
The yellowy green text indicates that it's a dictionary key (also referred to in Stardew circles sometimes as a field name) while the teal indicates that it's a dictionary/field value. The brackets change colour just to make it easier to match them up, but when they're red it indicates that they are missing a matching bracket - so you're missing a closing square and then curly bracket at the end of your file.
A dictionary is a programming concept. It's one way that we store data that computer programs use. The key/field name is used in the programming code and the code will then find the value that is associated with that key.
So for example with an NPC, you have a DisplayName field/key - your NPC's name is Hugo, so the value in your file is Hugo. When the game wants to show a player the NPC's name, it will call that DisplayName key and find the value associated with it and display that, allowing players to see that your NPC is named "Hugo".
if i name my sprites file to sprites_winter will it change to it or do I need to add code somewhere
it doesn't seem to mind the first part of the character data, but when it goes past the language data it kinda freaks out?
i tried adding more linebreaks but it didn't do anything different
IH NEVER MIND I SAW IT
er, maybe
i'm going to test it again and see if it breaks again 
after Default (last green line) you put a : instead of a “
I'm pretty sure I have to put load in the content.json, but I don't know how to tell it when to use what
No, your file names in your mod folder have no effect at all on the game. The game cannot see them. You are right that you need to add a Load patch in your content.json. You need to put the asset name you want to edit in your Target field and the name of your file in your FromFile field.
like this? Do I need to do anything else?
Is there an NPC just called x in your game?
yeahh 😭
Is it your NPC?
yes, I added these code just now as well to the content json
Okay, please change their internal name. Best practice is to prefix their name with {{ModId}}_ to ensure it's unique.
ahh I totally forgot to do that
, thanks
But apart from the name, it looks like you are doing things correctly.
so i did fix the errors from the screenshot i sent, but then i got this error? https://smapi.io/log/c86425b1b65541df81c5184d3ee0b8ca
Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on Microsoft Windows NT 10.0.26100.0, with 3 C# mods and 1 content packs.
do you have any advice on coming up with the mod ID other than creator.name of mod?
i did wanna say again that i really do appreciate the patience
i'm trying my best
the advice is to do exactly that, since that ensures it is unique across every mod
no one else is going to have a unique id starting with your username, and you presumably arent goign to name two mods the same thing
You're doing fine :) You do have another syntax error though, so if you want to share your json again we can have a look.
and many mods look for an ID in that format (like Lookup Anything)
!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.
My only other advice is to make it something you can reasonably remember and type repeatedly since you'll need to do it a lot while developing and testing your mod lol
I'm just lucky that I can actually type Abagaianye quickly
it should also help make things a bit easier since his name is just X which is difficult when coding haha
Have a look at line 8 and see if you can spot the problem
OHHHH THE COMMA AGAIN
yeahh my mod id was obscenely long due to the name of the mod 😔 I'm going to change it
thank youuu
You have another problem on line 51
commas............
And then your Home field is in the wrong place. You've nested it outside your Hugo entry in Data/Characters
Your unique ID doesn't have to actually be exactly the same as the name of the mod. For example, Bog's Monster Mash has a unique id of Bogs.Monsters.
https://smapi.io/json/content-patcher/609fe67b877a4572905616a4008ed9ba i moved things, now what's wrong with line 97 
Now you have got your EngagementDialogue patch inside your NPCGiftTastes one
my joy is immeasurable my day is made my crops are watered my skin is clear
thank youuuu
Now that you have conquered that mountain it's time to introduce you to i18n!
!i18n
So you'd like to stop writing all of \"your strings straight in your content.json?\" and/or you'd like the capability to see all of your strings across all of your .jsons?
Introducing i18n!
-
How to make your mod compatible with other languages: stardewmodding.wiki.gg
-
The file where you can put all of your strings is called default.json, and it sits in a folder at the same level of your assets, named "i18n".
-
If you're converting from an older version of the game, there's a converter for ease-of-access.
Not to be confused with
{{DynamicTokens}}since these require the specific{{i18n:<KEY>}}modifier
We recommend i18n so that your mod can be translated more easily and without the translator having to upload any of your mod files to Nexus
LET'S GOOOOOOO
It will require that you stop Loading your dialogue and instead make use of that blank json you're Loading but not currently using.
should i save making those files until the end? for right now i've just copied and pasted npc schedules and dialogues in
Making the files? Do you mean starting to write dialogue and schedules or do you mean doing what I said about switching away from loading them?
oh, i meant like... if i make the i18n stuff now, will i have to redo it after i write all the dialogue?
dows this look right?
-# i tried to sleep to the point imnot tired anymore
No, because you'd be writing your dialogue using i18n
What specifically are you asking about here? The location of the portrait?
mhm
It's a bit hard to tell, but you can turn on the grid in your editing program, set it to 64x64px and then use that to make sure you've placed the portrait in the right spot
try to get athing from one file to another and its not letting me
Today.
how do you get coordinates of in-game locations for schedules?
You can use the mods Debug Mode or Lookup Anything, or you can open the maps in Tiled
i need to set lookup anything to work with tiles, yes?
its 64x64 i think its good right
Yeah you just need to enable tile lookup in the config
that looks great!!
The old what? File?
mhm
Yep
im gonna stay w sam for now me thinks
so what would i do for the seasonal outifts?
By seasonal you just mean winter, right?
yuh
maybe try to brainstorm your concept and note words related to your theme
and see what happens?
i want to keep the orignal sprites
it's hard to have ideas on demand for other modders
Oh, zey aren't asking about ideas, Lumi
oh i wasnt asking for ideas
You copy and paste your existing sheet and give it a different name (one with winter in the name is useful). Then you open up the content.json and copy the patch that is Loading the regular Sam portrait sheet and edit it so it has a Target of "Sam_Winter" instead and a FromFile that uses your file name.
(i am more used to people asking a lot of questions about the creative side and asking for ideas so i thought it was one of those again)
You can name it whatever you want to, but having sam and winter in the name is most useful, yes.
uh oh
What is the issue?
oh i was just saying there was more than i thought, no problem
Yeah, you will just do the same thing for those others that you'll do for winter, once you know how to do winter
in the mod it says this,, do i still just do sam winter?
Please listen when I say you can name it whatever you want to
It doesn't matter what the existing file is called
alright, sory, thought it would be different
Your file name just has to match what you write in your FromFile field
The names of files don't matter at all for Content Patcher mods
whats fromfile,,
Their only purpose is to be usefully descriptive to the reader
ooo okay
i'm about to conk out so i won't be able to fix it right away, but wanting to ask before i forget-- i changed the coordinates for hugo's home location to a spot that i can actually get to, and i gave him a simple schedule to walk around in spring, and slept to spring 2-- is... there a reason he's not where he's supposed to be?;;;
do i need to program the animations too?;; is that why?
this look good?
There are lots of reasons that could be the case. You might have another syntax error, you might have forgotten to save, you might be editing a copy of the mod that's not in your Mods folder, you might have the coordinates wrong...
To help check, you can use the console commands debug where hugo and debug wtc hugo to have it tell you where Hugo is and to warp you to him.
Try hopping in game first to test the portraits
waiting for him to comeout of house
You will want to cheat to winter and then sleep and then make sure his winter portrait is blue
(i was super confused by debug command format at first, there is a logic in the formatting, once you get it. At first, i didn't 😄 )
Good job! That means you've done it right so you can start doing the same with the sprites
And so what do you think the solution is?
make my own sprites
That's one option
If you don't want to do that, there's nothing stopping you from using the regular sprites and portraits for the beach outfit as well
sprite work for winter
true
huzzah sam done
ty aba 
okay wait
theres some non npc stuff, lie houses. could i delete those + stuff related to it inconfig?
You can if you want to
I just wrote an event, but I can't play it with debug...it said event was not found https://smapi.io/json/content-patcher/d61ee979f2a14034bfe38f9c58fe628a Does anyone know why?
Don't use When conditions for events if you can avoid them (which you almost always can)
And null events are the old way of sending mail, don't use that. Use a TriggerAction instead.
The reason it's saying the event doesn't exist is because your letter is AppleFirstInviteMail (you should add {{ModId}}_ to the front of that) but you're checking for {{ModId}}_AppleFirst. Remove the When condition from the event patch and the mail patch, remove the Farm event entirely, switch to sending the letter via TriggerAction, and use a precondition for your event to check for the letter.
what would be changed for the entries part? sorry I was following a chinese mod guide written pretty long ago on mail part
Which entries part?
The sending mail part
Just remove that Farm event entirely
And add another entry to your Data/TriggerActions patch to send the mail instead
Sorry I'm a little confused, who should I trigger to here...shall I move all the conditions from when to trigger?
Yes, you should never have any When conditions on a Data/mail patch anyway
But don't add them as When conditions for the trigger action, make them use the Condition field in the trigger action
...like this...? (please ignore the old mail part I didn't deleted them) https://smapi.io/json/content-patcher/8b4f54709d304c6c8b6091b020b5d713
No, add it as a second entry inside this one, and make sure you keep the syntax correct. You can't just put those fields in like you have here. You need to use the Condition field like you have for the Christmas trigger action. Copy everything from lines 57 to 65, put a comma on line 65, and then paste underneath it. Then change the pasted bit to be the apple mail trigger action.
I use a lot of when conditions for events because in config people can pick from 3 paths or 'all paths' - should I also change those to mail flags?
https://smapi.io/json/content-patcher/5c6fc213aabf4aa7be033fc3491f2b8b I'm not really sure am I doing it correctly...
If they're not meant to be ever seen when the config is set to another path, I think it's okay for them to be gated behind a When condition. It's when it's an event that should be seen in the future of the current playthrough that it's really annoying to have it gated behind a When condition because you can't use event info mods to know about it.
No, you're not. Do you see this one I have attached a screenshot of? Lines 59 to 73? You need to put the apple one in the same patch.
Like under the same target but different enrties?
whew, okay cool! 😄 ty ❤️
It should look like this.
{
"Action": "EditData",
"Target": "Data/TriggerActions",
"Entries": {
"{{ModId}}_Christmas": {
"Id": "{{ModId}}_Christmas",
"Trigger": "DayEnding",
"Condition": "PLAYER_HAS_SEEN_EVENT Current {{ModId}}_Christmas",
"MarkActionApplied": "false", // put it here instead
"Actions": [
"MarkEventSeen Current {{ModId}}_Christmas false"
]
},
"{{ModId}}_AppleFirstInviteMail": {
"Id": "{{ModId}}_AppleFirstInviteMail",
"Trigger": "DayStarted",
"Condition": "PLAYER_NPC_RELATIONSHIP Current Wizard Married, SEASON_DAY Winter 28, PLAYER_HEARTS Current Apples 10",
"Actions": [
"AddMail Current {{ModId}}_AppleFirstInviteMail now"
]
},
}
},
And then make sure your mail entry is {{ModId}}_AppleFirstInviteMail
And then don't forget to remove this from your event
"When": {
"HasReadLetter": "{{ModId}}_AppleFirst"
},
Yeah you reminds me that and this time it should be correct
https://smapi.io/json/content-patcher/feee9b22e4c74e12a4ec158e2396b15b
But I just don't understand why the validator keep says Invalid property identifier character: {. Path 'Changes[0].Entries.Entries', line 16, position 8when my position 8 is empty there...
This always happens, I really had no idea
You have messed up your brackets quite a lot, so most of your file is now inside your data/mail patch (which also has two Entries fields, which is not allowed).
It's always important to pay attention to exactly where you are putting things.
Not in terms of indentation, which only matters for our ability to read it, but in terms of what sets of brackets things are in and whether you have put a comma at the end of every line (or nearly every line - the last thing inside a set of brackets doesn't need a comma).
Unfortunately it's so messed up that I can't even figure out how to tell you to fix it, so I think I am just going to have to fix it and send it back to you.
Okay, here it is fixed up. Be very careful when you add more things. Make sure you know where to put them. If you are just guessing, stop and go look it up or come here and ask someone. https://smapi.io/json/content-patcher/470fc70757f2483c907c4a89618ba259
Wow...thanks a lot for that...I've never been coding before so there's gonna be a ton of mistakes lol, I was just trying to make those parentheses neater
What text editor are you using?
visual studio 2022
Oh that's very overkill for a json mod
Are you planning to start doing C# modding too?
I'm not really sure if I could understand C#...but if later I find some part of my plan requires that I will learn...
Though it might be taking a lot of time for me to understand
In that case, I recommend you get Visual Studio Code instead
VS22 is more suited for programming
If you decide to stay with VS22 though, you can press Ctrl-K and then Ctrl-D and it should tidy your formatting
Oh...I don't know that, I just download whatever popped up first lol, I'll install that now
Once you do have VSC installed, you can use Shift-Alt-F to auto format your files
It helps keep them easier to read
Cool! Learned
back again to ask for help with updating a mod
https://www.nexusmods.com/stardewvalley/mods/15111?tab=description tis broken n wont work, how does one even update
That one is a C# mod so you'd need to learn C# to update it
Well, it's a big learning curve that will require a lot of patience and dedication
It's a lot harder than the json you learned today
But it's still possible, you just have to be willing to keep trying
oh,,
Have you checked that there isn't already an update for that mod?
mhms
!startmodding Well, if you want to start learning C# there's a tutorial to get you started
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.
Is it possible to give an NPC item likes from a mod - for instance, sodas from the Artisanal Soda Maker mod - without actually requiring the mod? So it'll be added to their likes if a player has the mod, but won't be an absolute necessity?
Working on a concept for my NPC's likes and dislikes before I even touch coding.
Yes it is
You might even be able to do it without gating it behind a check for having the mod. I can't quite remember. But either way it's possible.
Nice, thanks!
Ok I remade my beach map, but I still can't fish there. I think if my charms/weapons/buffs work I'm just gonna push my Shane update where everything is in i18n bc I love him but I have other stuff I wanna do
Have you gone over the usual suspects? Checking you have the Water tile property, making sure you don't have Buildings tiles in the area?
ooh how do I do the water tile property thing?
Thinking about it and I might try to add cassettes to the game. Not necessarily playable, just like... misc items you can rarely get from fishing (the bonus chests), killing monsters, or cracking geodes, usable as gifts. If I do, I'll definitely have those as a Loved gift.
Do I need to do that on an objects layer?
No, it's on the tileset itself
hm
OH MY GOSH
For example
You made your map using the vanilla one as a starting point, right?
like tape casettes?? omg that would be so cool. They're really fun to sprite too
oh uh, no actually this time I started with the one already in my mod's asset folder
(which is probably why the custom properties weren't working)
okie 😄
But if you have a map that doesn't have things you need - tile properties or animation - you can export a tileset from another map and import it into your map (and then EMBED IT because I am so sick of seeing unnecessary tsx files!) to grab them
Yeah! My current (and very first) mod is a Marty McFly NPC, and I'm planning to make some items (and maybe turn the Battery Pack sprite into a couple of Duracell-inspired AAs because I think that'd be a neat side-project, for practice purposes)
ohmygosh ohmygosh YESSSSSSSSSSS
unfortunately I have to try to get some sleep for work, but I've been looking at the wiki for modding NPCs and I think I've got a pretty good idea of things I want to add and do. Still debating if he should be a marriage candidate, on one hand that could be fun to write for, but on the other hand the rest of the social stuff (and the "find the DeLorean" quest I want to add) may be a bit much for my current lack of modding skill, so that's a problem for Future Me.
Having trouble with creating an NPC mod. When the npc would spawn at the bus stop, instead I get a smapi error saying there's a problem with my dialogue.json file. But i can't seem to find the error in the file. I tried a the online smapi json validator, but it says no errors found. The exact smapi error text is Newtonsoft.Json.JsonReaderException: Can't parse JSON file at c:\program files (x86)\steam\steamapps\common\Stardew Valley\Mods[CP] Belivia\assets\Dialogue.json. This doesn't seem to be valid JSON.
Technical details: Unexpected character encountered while parsing value: [. Path 'Changes', line 3, position 14.
I need to add the [CP] to My nexus mod name or if i do it inside the folder it runs fine?
You should not have a format field in there
I think i finished the kobolds mod but not sure if this works tbh
Only the content.json uses the format field. Includes should not have it.
At least it does work fine for me
i only added it because of the online validator erroring out without it. It doesn't work even without that in there
(You're loading a file you actually intend to include)
Yup, you need to switch your patch in the content.json to an include patch instead of a load one. Have you got a patch loading a blank json for the dialogue first?
so this needs to be changed?
Yes, you need your Load to be a blank json file and then the one with your dialogue in it should be an Include
should i be doing this with other things too like schedule?
thanks every1 for helping, it fixed the error.
Hello ! I've been playing the game for 5 years and I've already tried downloading mods. Now I'd like to go further and develop one myself. I already have some programming knowledge and I should just need to learn the game's language to succeed (I hope).
Just, how do I do that ?
!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.
What is the mod that you want to make?
I dont know just made small mods for now because its the same for game devlopment
It's generally a best practice to do this for any new JSON file targets that don't already exist in the base game for your character-- so Dialogue, MarriageDialogue, and schedules
Loading the blank.json first for those targets lets you use tokens (like {{ModID}} ) in your EditData patches afterwards.
The reason I ask is because you can make many mods without knowing how to C#
And people can give you better directions if you have a specific idea
I'm not sure I know what tile spawner would do in context of stardew
Do u mean like this https://www.nexusmods.com/stardewvalley/mods/18387
Monthly mod stats time!
Mod compatibility
80.9% of SMAPI (C#) mods are compatible or have a workaround, up from 80.2% last month.
Unique mods by type
There are 439 more mods this month.
Two notable details:
-
Alternative Textures just reached the #3 spot behind Content Patcher and SMAPI (C#), with 1591 content packs! XNB mods (deprecated since 2018) slipped to #4 with 1572 mods.
-
There's an unusual number of new C# mods, with 115 new C# mods this month compared to an average of 59/month over the last year.
That seems to be driven at least in part by AI-generated mods (where AI tends to write custom C# code over content packs). That's a troubling pattern; C# mods are less compatible with future game/SMAPI updates than content packs, AI-generated mods tend to be unnecessarily complex (e.g. managing files manually instead of using built-in APIs), and AI-generated mods often seem to be one-offs that aren't updated or maintained past the initial release. AI code generation might be here to stay, but its impact on the health of the modding ecosystem is concerning.
That said, the impact is mitigated by AI-generated mods so far tending to be very simple, so those mods breaking in future updates will have little impact beyond them (unlike framework mods breaking).
The breakdown of new mods by type is:
- +246 Content Patcher;
- +115 SMAPI;
- +24 Fashion Sense;
- +21 Alternative Textures;
- +9 Farm Type Manager;
- +2 Furniture Framework;
- +1 Producer Framework Mod;
- +1 Shop Tile Framework;
- +1 XNB;
- 0 Better Artisan Good Icons;
- 0 Custom Furniture;
- 0 Dynamic Game Assets;
- 0 Json Assets;
- 0 Mail Framework Mod;
- 0 TMXL;
- -2 Custom Music;
- +21 for frameworks with <100 content packs.
Content Patcher packs
We have 13,064 Content Patcher packs.
The top five Format versions remain...
- 2.0 (3,842 ↗ 3,903), 2.3 (867 →), 2.4 (667 ↗ 668), and 2.7 (495 ↗ 508) for Stardew Valley 1.6;
- and 1.19 (572 ↘ 571) for Stardew Valley 1.4.
Open source
- We have 3,899 tracked C# mods, of which
- 2,350 mods (60%) have a source code repo, with
- 1,247 (53%) in a multi-mod repo and 1,103 (47%) in a single-mod repo.
The percentage of open-source mods notably dropped from 61% to 60%, which also seems to be affected by the recent trend of AI-generated mods (which are rarely open-source).
Web costs
And finally, web hosting costs for the SMAPI.io site, update-check server, and API held steady around US$206/month. (The graph is always a bit behind due to billing cycles.)
See also
- Stats for ← November 2025 • January 2026 →
- Full mod dump (78 GiB)
- Download all open-source mod repos
- Dynamic view of mod dependencies
And that's it for this month! Feel free to ask if you have any questions.
(Congrats to @polar escarp on Alternative Textures reaching the #3 spot!
)
several of the aigen authors have their code in a repo but don't always link it for some reason
If you see any mod repos that aren't linked from the mod compatibility list (when 'show advanced info' is checked), feel free to ping me and I'll add the link.
(btw I was wondering, do you check for the license or just a repo link? because I know some people have source-available ARR mods)
(Or just ask them to add the link to the description; the monthly update tools will automatically detect a new source link.)
Technically 'open source' in the stats just refers to source available. Tracking actual licenses is something I want to do at some point, though it's a bit trickier since it involves calling the GitHub API for each repo instead of just reading the mod metadata.
I been wishing that we could start tracking the dependencies too instead of just content pack counts in monthly mod stats
yayyyyy AT has officially taken over XNB!! 
Though button's graph is essentially that 
..but also the sheer amount of AI mods is infuriating-
I believe nearly all 115 new C# mods is from that 1 person who i shall not name 
Tracking dependencies is a bit more complicated. Every mod has a single type, so it's easy to count; but for example, how do you count one mod with a type, three required dependencies, two optional dependencies, and four fake dependencies that are only used for ordering?
who has a monorepo that is indeed missed from the compat list and which I'll dm you pathos since it's against server rules to post it obviously
(There's one prolific AI author recently, but it's worth noting that I've seen many other new authors submitting AI-generated code too.)
at least one of them is encouraging others to try AI modding on nexus and reddit, including posting “tutorials” of how to AI mod

that being said the internet tends to foster hate and animostiy very well, and it's the ppl in charge of AI's lack of regulation whom we should be blaming
To be fair, being able to describe what you want and often have a working mod in a few minutes is amazing, and it's great that AI makes modding more accessible to more authors. I don't think the issue is with people submitting AI mods necessarily, but with the AI code generation itself (e.g. copyright/licensing issues, not applying best practices, creating mod code that's unnecessarily complex/fragile, authors not being able to maintain the generated code, etc).
Yeah there's definitely opinionated choices to make here, I'd personally allow double counting (a mod that uses spacecore and BETAS is +1 for both), and only count required: true
the only really egregious thing in an absolute sense that I saw one of them do was detect if a decompiler is running and log a notice saying decompilation without permission is banned because someone gave them a heads up there are issues with their code overwriting translations
other than that the ai mods mostly just either don't work or don't do much tbh from what I've seen

that feels malicious
(Do you mean detecting a debugger? I don't think you could detect decompilation.)
I think the "working mod" part is shaky rn, but I admit that im coming from having unusually high standards for non critical hobby code 
(nope. they detected if known decompiler apps were running at the same time as stardew. obviously ineffective but that's what they were doing)
(they had a list of like five popular decompilers)
I think it was mostly misinformed if I'm being honest
what's the difference of {{player}} and @? @ doesn't work for overworld dialogue, and then I think {{player}} doesnt work for the dialogue boxes
Do you mean {{PlayerName}}? If so:
{{PlayerName}}is a Content Patcher token. It's replaced before the game sees it, so it'll work in all Content Patcher text fields (including overworld dialogue). Note that tokens don't work in files loaded via"Action": "Load", since that's the actual data to load rather than Content Patcher commands; in that case the typical pattern is to load an empty file, then edit the content into it.@is a dialogue token in the base game. It works in some dialogue and cases where the game specifically supports it.
I suggest using @ in the cases where it works (since that means less dynamic content editing), and {{PlayerName}} anywhere else.
the example I saw was actually {{name}}, not {{player}} my bad, would it still work?
There's no {{Name}} global token, but that might have been a dynamic token created by the content pack. If so, all tokens work the same way in terms of content editing.
the small dialogue that appears above someone's head, I want it to say the farmer's name, but @ doesn't work
Oh the text overhead thing?
Yeah I don't think it parses the dialogue syntax there, {{PlayerName}} should work 
Some mods let people specify their own name/title so that might be why they use a different token
You can do that too if you want
Oh wow and over XNB too! 
I'm also in the process of renaming the internal name of my npc, will this work?
Assuming boxosoup.cmx is your mod ID, I recommend "Target": "Characters/Dialogues/{{ModId}}_x" which ensures the mod ID always exactly matches (which improves compatibility with other mods/tools like Lookup Anything).
thanks so much for all of your help, I really appreciate it!
(Note that you can't use tokens like {{PlayerName}} inside that assets/Dialogue.json file currently, since it's loaded as a raw asset. Feel free to ask if you need any help converting it to an edit to allow tokens.)
thanks for your consideration on that, token thing isn't part of the file, and it works thanks to your help 
I don't know what the C# part of this does, but I know someone was working on a Furniture Pack that does something very similar, maybe that's useful info for you
i want to plant bushes that spawn the fruit-

hmmm... is it possible to patch a vanilla sprite (from the game files) into a custom asset with CP? I'm thinking of frankensteining a FF sprite-sheet together by pulling from vanilla tilesheets to make stuff compatible with recolors automatically.
I could also make the hardcoded FF offsets configurable...
idk what youre saying,, gulp
that's for my problems, don't worry
It is possible, but there are painful dealing with invalidation aspects 
And it's not something CP itself supports either you'd have to do dumb content pipeline manipulation
Almost always better to just have your drawing code do a Load from real asset with the given source rect
i finally got him to show up. by using noclip and taking tiny steps till the dialogue box opened alksdjf
elliott dialogue jumpscare
yeah, I was hopping for FPack authors do use CP directly, I guess I'll have to de-hardcode on/off and day/night offsets for people to be able to use vanilla spritesheets.
If your ultimate goal is to have the FF format be the authority on creating a furniture, it will probably help if you offer a way to use image sourced from content

Right now ppl would write assets/bushes.png and have things load from modcontent
I FINALLY GOT THE HOME LOCATION TO SET CORRECTLY LET'S GOOOO
Could let people write Content:LooseSprites\cursors to use the already loaded cursors texture
To skip having a base png
@ivory plume I have some quick Automate questions:
- Can you have a modded
IAutomatablesharing the same tile as a vanilla one? I'm assuming you can't? - If you can't, is it feasible to relax the requirement? I believe removing the
breakhere would do it, but there may be other requirements I'm not aware of.
Thanks so much in advance!
(context: I'm trying to add a machine for modded Silos, but if a silo building works as both a vanilla and modded silo only Automate's factory for the former is working)
hrmmm
why can't i give him a gift?
what are you trying to give him and what happens when you try
i tried to give him a bottle of wine and then a daffodil, but whenever i tried it just asked me if i wanted to eat it
it's also not loading in his gift tastes at all, so i'm thinking i might have put that in incorrectly
if you weren’t adding gift tastes correctly i wouldn’t expect him to work at all
hmm
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.
being canonically probably doesn't want gifts 
he shows up on the map, his introduction dialogue displays after his daily dialogue for some reason...?
am i wrong ,,
tragically the farmer can only respond to his rizz by giving him a cool rock
(autobiographical)
yeah vsc is showing as having a whole bunch of errors on the sidebar but i'm not sure why??? i think it just thinks the commas are annoying and while they ARE my nemesis rn i don't think i have anything... incorrect
VSC doesn’t like trailing commas but SMAPI allows them
yep gift tastes are a key component to an NPC working right
also, are you aware you’re currently loading a blank and then overwriting it with a load?
for the schedule
i just have it input as the sample one was that was linked yesterday, i've been gradually changing things to test them out
you can’t use tokens in loaded files so typically you load a blank and then Include an edit
AH i got it here https://stardewvalleywiki.com/Modding:NPC_data#Examples
i saw on another one of the guides to add a blank one, so i put that in too
yep you probably saw tia’s tutorial for the blank
what you’re doing right now, the mix of both, is just redundant
In the bottom corner, click "JSON" and select "JSONC"
AHH thank you!! that fixed it
Automate already allows multiple machines per tile, but it assumes that one entity = one machine. For example, tappers and trees are different machines on the same tile, but you couldn't have two different tree machines for the same tree. We'd need to change more code to support that; in particular we'd need to change the IAutomationFactory API, but I'm not sure off-hand how much else would need to be changed. I'm not opposed to the concept in theory, though not sure when I'd look into it myself unless it's something many mod authors want.
is there a way to set a category of cooked items? or will i need to list every item that falls under that category as a dislike? 
you can set categories with negative numbers
see either objects or items
also note that specific things will take precedence, so if you have them hate all cooking but like pink cake then they’ll like pink cake but hate everything else
in gift taste you can also use context tags, and categories are also context tag
he looks so cute 
thank you 
do the buy animal dialogues also work for, like, void chickens and dinosaurs and such? do they work for horses?
er, like, the conversation topic, sorry
they do work, though a quirk in the current version makes them only work on the English version
for horses you can use the structure built CT for the Stable
also note that for White and Brown Chickens the game specifically changes them to "Chicken" for the CT
"Action": "Load",
"Target": "Mods/{{ModId}}/Hats",
"FromFile": "Assets/Items/Hats.png"
},
{
"Action":"EditData",
"Target": "Data/Hats",
"Entries": {
"CacklingCaracal_ShaneHat": "CacklingCaracal_ShaneHat/Hat from Shane/false/false/0/Mods\\{{ModId}}\\Hats"
}
},```
I cannot get this hat to exist TT
Even copying the format of a hat I did get to work, does not work. The png is called Hats.png, it's 20 by 80.
oh right! is there a conversation topic for the bat cave specifically?
i don't see one on the list but. i could just be missing something so
as usual asking Those Who Know Things (you guys!!)
Iirc there is not but you could make your own with a trigger action iirc
i don't know how to do that but i will keep it in mind!
could someone maybe explain very simply to me how to get i18n to work...? i read over the page on the modding wiki last night and couldn't quite make sense of it
i18n is essentially tokens. you have your i18n folder, which has the files with the translations in it, in the format of key:value just like any other dictionary. then, in your actual code, you would put {{i18n:key}} and it replaces that with whatever value matches to that key
You are missing some fields on that hat entry. You may want to consult the wiki: https://stardewvalleywiki.com/Modding:Hats
hey! so what exactly do you want to know?
basically just how to set it up and how to make the dialogue files i'm working on work with it
i THINK what i know is like... the code calls for the i18n file, which then reads the text based off of whatever the game's current language is (but only if there's a file for it), right?
i'm kinda struggling to focus right now so i'm about to take a break, but since i'm new to all this stuff i feel like i threw myself into the deep end all at once lol
Anyone have an example of how to prevent something like the farmers sword block animation and replace it with something else? I'm having no luck
Did u already skip prefix
I'm still a bit green but that's like the animation cancel trick speed runners use?
Okay, I'll do some reading on it. Thanks 🙂
!harmony
Harmony is a framework for patching .NET code, allowing you to take any portion of the game's logic and insert or substitute your own. This gives you more flexibility and control than SMAPI helpers and events, at the cost of being typically more complex and difficult to use safely and correctly, and more likely to break with a future update of the game and/or SMAPI.
If you are trying to do something that isn't possible or practical with SMAPI alone, then Harmony is usually the solution.
For more information, refer to the following:
- Harmony Modder Guide - Intro, Use Cases, Initial Setup
- Tutorial: Harmony Patching - Types of patches and code examples
- Decompiling Stardew Valley - For finding methods to patch
I'm assuming you are in C# here
Yeah, I didn't know about Harmony. Looks like what I should be using for this. Thanks much
Ok I fixed the missing fields but my hat still doesn't show up { "Action": "Load", "Target": "Mods/{{ModId}}/Hats", "FromFile": "Assets/Items/ShaneHat.png" }, { "Action":"EditData", "Target": "Data/Hats", "Entries": { "ShaneHat": "ShaneHat/Hat from Shane/false/false/0/Shane Hat/Mods\\{{ModId}}\\Hats" } }, it's just - invisible
what does ShaneHat.png look like
(and once again i implore thee the importance of {{ModId}}_ for your items)
I will put the ModId back when it works - all of my stuff is in i18n - but sometimes when an error occurs it's helpful to me to strip the mod id and then add it back :p
it's a 20x80 image TT
are you spawning new hat
like using CJB? yeah
but the tile is just invisible
does it have to be an object before it can be a hat?
no
"{{ModId}}_ShaneHat": "{{ModId}}_ShaneHat/Hat from Shane/false/false//Shane Hat/0/Mods\\{{ModId}}\\Hats"
you counted some slash delim fields wrong
the texture is position 7, zero indexed
adding to my list of templated ty ❤️
@deep plume Hey, so I used to use AdoptnSkin a lot and have a big folder of different skins for various animals. I was directed to use your reskins mod and 'just swap in the skins' by someone as a new workaround for adoptnskin not working anymore. But I'm fully confused about how that would work. I wouldn't be opposed to just writing my own mod even to get my old textures to work but looking at your mod has me very confused. Is there any way you could possibly help me figure this out? (I hope this ping is okay. Your nexus says pinging you about compatibility is okay and this is vaguely compatibility related)
did you already read the start modding guides?
!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.
in particular do you know how to use content patcher to edit nested fields?
mm as long as you know what TargetField is, we can continue 
I mean, I've used it before but it's been a good bit since I last reviewed that since I tended to use Target more than TargetField before 😅
(aka I know what it is, but forgive me if I forget something dumb)
the docs are there if you need refresher
here's a example of adding a skin to a rabbit
it's the same for basically all animals, you just have to change out "Rabbit",
now having the rate be exactly 10% is difficult because skin rand works in terms of weights
ah okay, cool
if you have 5 rabbit skins for example, each skin would be 20% chance
but if u had 20 they'd be 5% each
you can make your skin more rare by having a weight less than 1, like 0.5
welp that answered my question i was about to ask
(this is also where i warn you that there are mods that bypass the rand entirely so it might not even matter much in the end)
(I don't use a whole lot of mods and no other mods that change the animals so no worries there)
nah i specifically mean alternative textures and livestock bazaar
its mods that let ppl pick what skin directly
i dont like having to roll for the skin i want hence my decisions 
there is a random option tho
is there any chance there is a way to like, dynamically add more skins to the pool? (ie. if I drop a second tilesheet into a folder named "Rabbits" is there a way to have it pick that up when I load into the game and add that new sprite to the list of possible rabbit skins?) or is that too complicated for content patcher?
well it is a list
if you mean like "can i do this without writing more jsons" the answer is no
but u can do it with very little json if you use local tokens
yeah that's what I meant. I had been wondering if there was some way to set it up so if I get more tilesheets of sprites I could just drop them into the respective folder without editing the code at all and it would just.... work. 😂 it's no big deal if not, it just would have been nice
this is the same example as the one i sent earlier except im using a local token L@Kind
after that, i do this to include it
{
"Action": "Include",
"FromFile": "data/rabbit-skin.json",
"LocalTokens": {
"L@Kind": "Red",
}
},
now it's all setup to pick up assets/RedRabbit.png and assets/RedBabyRabbit.png and put that as a rabbit skin
if i made a GreenRabbit + baby i do another include but with "L@Kind": "Green",
content patcher's design is that you must declare what changes you want to make to the game's content via patches in json, but it has features to make declaring these things easy
is something like "L@Kind": {"Red", "Green"} possible? So you only have to tack on another variable name?
(as opposed to copying the entire block)
nope, the content modder's yearn of foreach continues 
for ref this is what the full content.json looks like, while the earlier examples are actually data/rabbit-skin.json
lol sorry. I'm a programmer 😅 for loops just come naturally to me 😂
yea me too 
it is a bit of running joke that we get ppl wanting such a thing every few weeks
and it would be nice, it's just a complex problem bc u can have more than 1 LocalTokens, as well as nested LocalTokens
(part of me is just like "maybe I should just make a full smapi mod in C#" and another part of me is like "I don't want to bring work home" 😂 )
i had a mod that went 4 layer deep b4
bc i did want bootleg for for loop lol
so for now u can at least reduce it to only duplicating the include block
while the actual skin adding is templated
I mostly just have one mod that someone else made that I edited to hell and back to make it match how I wanted it to be for myself, but it was a fairly simple mod that mostly dealt with editing schedules and making content patcher animations work right
but cool awesome. thanks for the help!
if u want to mass apply this to multiple kinds of animal
the "Rabbit" part in target field itself can be a local token too
here's a mod with example of that sorta thing https://www.nexusmods.com/stardewvalley/mods/15902?tab=files
ooo
was it ever mentioned whether loops not being present in CP is a design decision or a technical limitation?
jk i lied i did not do that for token name reasons 
it does have example for the sheep tho, who has harvesttexture
back when localtoken were released people discussed how we might to a foreach over list of localtoken but its just very complex because you could have a token as value of a localtoken
i believe it's not implemented simply cus no one can agree on the syntax for it
the ISO CP design committee has much to discuss
stuff like how do u express the equiv of foreach ((a, b, c) in tokensABC) vs foreach (a in tokensA) { foreach (c in tokensC) { foreach (b in tokensB) { } } }
would you like to contribute a PR bluebs
sneak it in before pathos notices
sure, i'll PR in an excellent footnote in the readme explaining why it's not feasible
ty blueb i knew the commitee could count on you
I def could use it 😂 just for rabbits alone I have 29 and copying and pasting for each one is tedious, and I have about that many for every animal
wait question. the FromFile for the copied and pasted part, do we not need those to ...be a real file?
they will be resolved to a real file
my example had this right "FromFile": "assets/{{TargetWithoutPath}}.png"
and there's 2 targets separated by , but let's look at the first one {{ModId}}/{{L@Kind}}Rabbit
if L@Kind=Red tokens there resolves to <whatever you have in UniqueID in manifest>/RedRabbit
No I meant for the copied and pasted part
{{TargetWithoutPath}} splits that and takes the stuff after /
Like
"Action": "Include",
"FromFile": "data/rabbit-skin.json",
"LocalTokens": {
"L@Kind": "7"
}
},```
Does "data/rabbit-skin.json", not need to be a real file?
which becomes assets/RedRabbit.png and that should be a real file you have otherwise error
the data/rabbit-skin.json is a real file
mod has these files
assets/whatever.png
data/rabbit-skin.json
content.json
manifest.json
however, u can use tokens in FromFile if u want
thats how i did picking between the template with harvesttexture for sheep
and the template without for others
okay what?? I'm looking at this that you sent me https://smapi.io/json/content-patcher/4d1af55c80684f3db042bb9523567ed2
how are they all coming from 1 file?
well they are the same file
but they are given different values for the localtoken L@Kind
So you are loading like 10 skins from a single file?
Or 10 versions of the same skin?
im adding 10 skins but reusing the same template
with only small change wherever i put {{L@Kind}}
I'm so lost
did you look at this?
yes
example 1: simple no local token case
https://smapi.io/json/none/541a533929fe42cb9bade605756286e9
example 2: using local tokens to repeat similar patches easily
data/rabbit-skin.json https://smapi.io/json/none/05450ad6b81e4d5684d48af5650c71b1
content.json https://smapi.io/json/content-patcher/4d1af55c80684f3db042bb9523567ed2
the 2nd example involves 2 jsons
Okay. I'm just gonna send what I have so far because this is confusing me more. I so far have this content.json https://smapi.io/json/none/6b3f5b77e1894f44b322971ca2660798 and the files are in a folder called Skins with subfolders for each animal type, with every animal named a number and has a corresponding Baby version where applicable. Should I be changing the FromFile in the many repeated parts to the exact filenames? Doesn't that defeat the purpose?
you need to have the parts you want to repeat in a different json
to be included 
as you may know include is a way to have content patcher load patches from a different file
🤦 you didn't mention that before. but i digress that is besides the point here
well, that's why i started off asking if you read the content patcher docs 
Like I said, I know the concepts but I have forgotten some bits
but i would have figured that part out on my own when it didn't work
but yea the 2 links in example 2 are separate files
I'm starting to get frustrated with your insistance on going on about something irrelevant to the question
I got it
move on
it's not irrelevant to the question though
ok cool thanks
okay, now that that is covered. Answer the question
so returning back to this, you do want some sort of easy to template filename pattern for this
from what you said here, it sounds like you have this?
Skins/Rabbit/1.png
Skins/Rabbit/1Baby.png
Skins/Rabbit/2.png
Skins/Rabbit/2Baby.png
...
and the number is the only thing that changes each time
Did you look at the file I sent beyond the fact that it's all in one? Yes. The question is if the FromFile file in the copied parts has to be each individual file by name or if it's basically just a random placeholder that doesn't actually matter
i don't have a way to magically see your filesystem
You don't need to
and im confirming we are on same page
look if you are going to be like this im gonna go and actually code some mods
good luck to figuring it out though i believe in you
Honestl we need a mod here because my god. I don't understand how you can be this unbelievably rude
im not sure why asking for a confirmation on whether im understanding something correctly is rude
the way i see it, chu has been exceptionally patient and polite
i'm not a mod, but maybe i can change the subject. hey chu, how are you, happy new year etc.
I ask 1 question and you first insult my code, then refuse to move on from one minor error that I already confirmed would be fixed, then get annoyed at me for not wanting to go into tangents that cannot possibly answer the question
So yes, it's wildly rude
its not 2026 yet but i am looking forward to it
this shouldn't be a hard question. is it a placeholder or not
I can't believe it's the end of the year already
fuck it. Im not modding anymore. You've ruined my enjoyment of this. Bye
I don't make new years resolutions, not really but i hope i can get some more stuff done
Maybe finish an npc mod for once haha
@outer glacier
same here. i am in perpetual "i would like to accomplish more stuff" mode
The guide says that I need to Download SMAPI first. Can I use Vortex or do I need to download it straight to my computer?
And sometimes i look at the ideas i have and go "why did i think this was a good idea"
Uh, perhaps you are in the wrong place? You are trying to use mods, not make them, correct? But to answer your question no, vortex is not necessary
SMAPI itself is not a mod, so Vortex wont work anyway afaik (unless it got support for installers like SMAPI when i wasnt looking)
Right, thank you
Sorry, the last time I tried to make a mod I had to facotry reset my computer just to play the game again. So I thought I'd start slowly this time to get this right, so I might be asking dumb questions if that's okay.
We all have to start somewhere
Right. Let's hope this time is a bit more successful, lol.
Good luck
Thank you
i think vortex is supposed to be able to install smapi, but it doesn't do a good job of it (pathos has talked several times on here about the support problems it generates)
-# better than nma uninstalling smapi when it itself is uninstalled even if it wasn’t the one that installed it
IIRC (never used it) vortex does things by treating every "mod" as an atomic modification to the virtual filesystem, and "uninstalls" a mod by rolling the filesystem changes back
so SMAPI can just be another mod by its definition
now in practice I'm only trusting the software making those changes if the author is like "Linux kernel developer" level of expertise
Okay, so I've thankfully made a backup of Stardew Valley which I think is part of the problem I ran into last time. Now it's talking about C# and JSON, but I don't really know which one I need to make. Can I talk about what I want my mod to start as and be told which one I'm aiming for?
sure, that's a common inquiry 'round these parts
I want to start by kind of saving this kid that passed out which would lead you to waiting until they wake up and eventually lead you to a new map, so I don't interfere with any other maps. I want to introduce a small story and introduce a number of NPCs as well, so I'll need to put in work with their heart stories, but I don't want to get overwhelmed so I want to start with the kid first.
NPCs, maps and heart events are all doable with content packs
!npc we have some nifty tutorials and templates here
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.
-
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!
Right, okay. Thank you.
This might be an odd question, maybe a bit of a dumb one, but I'm not artistically gifted. If I manage this, can I sort of pay for someone to help me with the designs?
yup!
!commissions (but be careful using that word in this server, you'll get scam dms)
If you're looking for people who do mod commissions (either art or code), here's a wiki page with a non-comprehensive list of people who do them: https://stardewmodding.wiki.gg/wiki/Stardew_Mod_Commissions
honestly there's a chance what you've already said is enough to get you some scam dms so be careful
Will do. Thank you
yep, ignore all incoming friend requests
but that link has the info of a bunch of artists who do stardew commissions who you can reach out to
I'll be sure to favorite it, just to be sure I don't lose it
does anyone have any tips for making schedules and festival for npcs, I got the code part finished; I'm just not creative when it comes to making schedules + haven't installed any debug mods to help me with coordinates yet
You can keep schedules simple as you like. Be warned festival positions are a headache for compatibility.
I don't think schedules have to be fancy
It's a real pain as a player to have to try to find NPCs with really complex schedules, and pretty much nobody is going to be following NPCs around to see what interesting things they get up to. So if you just give them a few stops per schedule at places that it makes sense for them to go to, and give them at least as many schedule entries as a vanilla NPC, you'll be doing fine.
sounds good, I'll have the npc stay at 'home' in the morning, then moon at noon, then move one last time at night; thanks again!!
How hard would it to make a mod that replaces your starting house with a tent and have it where you have to get Robin to build the starting house?
There's a site that can help with festivals mostly, but it's not entirely accurate anymore. I think SVE did some change right after it was made, and several people with NPCs saw their guys were standing on other guys and moved them which had a sorta domino effect. Not even counting new stuff that's come out since.
But it will speed up picking spots a lot anyway
thank you so much, I was looking for something like this earlier
I was so bad doing coordinates I put him in the bush by accident 😭
please submit PRs for any tweaks you'd like tweaked :)
oh man I should have taken note of the ones I noticed when I was doing my stuff
But I was overwhelmed by all the positioning
Right, so I've gotten to the point of downloading SMAPI, but it's asking me either nexus, github, and curseforge. Since I want to use nexus, I think that's the right one. But then, do I manually download it? Also @peak halo that seems like a really fun challenge!
it doesnt really matter which you use for smapi, github is probably the easiest in most cases
Yes, do manual if you download from Nexus
Right, okay thank you.
@ornate trellis merged your pr! i didnt notice it until know 
oh nice, wasnt sure if I did it right but good to know xD
theres some minor syntax issues but ill fix those
Hmm. Replacing the starting house with a tent, relatively easy. That's just a retexture mod on the outside (very easy) and a map change on the inside (harder, but still feasible if you're careful). Having Robin build the starter house which you can then upgrade the normal number of times? That'd need to be C# and therefore much more difficult unless you're already a programmer.
all deployed now
i noticed the website adds additional npcs (very helpful) 😭 is that hatsume miku?
very possible
There's a lot of NPCs out there
this isnt even all of them its just the ones with positions
that one is so interesting, what mod is it from?
I'll have to figure out how it works and add Bill sometime.
Sometime when the sky isn't exploding
(Fireworks guys it's 9, new year isn't for three hours, are you going to be doing this the whole time???)
Do you not normally have early fireworks for kids?
The fireworks start here as soon as it gets dark at 7pm
same here, we went home at 11pm
I figured the Robin part would be hard. Is it not possible to copy, paste, and change a few things about the first actual house upgrade to be the starter house buy?
Ah yeah not quite close enough for city ones lol
They shoot em off over a nearby lake
Looks like the upgrades are hardcoded, so no. All you could change without C# would be the appearance. Without C#, you'd go from a tent that was functionally the same as the starter house and then on first upgrade you'd have the appearance of a starter house but with a kitchen that allowed marriage, I think.
Good news! I have successfully run SMAPI! Bad news, it's telling me that it's skipping a mod I deleted through nexus? Is that something I need to worry about?
Also, Happy New Year
You can't delete a mod through Nexus, Nexus is a website. Are you referring to either Vortex or NMA?
Right, Vortex, my bad
(Pedantry is because it's hard to know what's happening when words get mixed up, not just for the sake of pedantry ^_^)
Recommendation: yeet Vortex
Yeet Vortex?
Also, didn't someone mention before that this isn't the right channel for getting help using mods?
Or are you trying to start making mods?
!vortex
Vortex isn't recommended for Stardew Valley.
It's hard to troubleshoot and often causes issues like SMAPI/mods not being installed or updated correctly, files mysteriously disappearing, crashes, etc. Volunteers here often can't help with Vortex issues.
Some options:
- Install mods directly (which is easy and safe in Stardew Valley!).
- Or use Stardrop, a mod manager specifically designed for Stardew Valley.
- Or get help with Vortex in the Nexus Discord or Vortex support forums.
(See also the Nexus App feedback thread, if you want to help Nexus avoid the same issues in their upcoming replacement for Vortex.)
Make a mod
All righty carry on then ^_^
But I'm following the guides so I'm not using Vortex. I thought I could use Vortex for playing, but is that not something I can do? Will it break the mod I'm hoping to make?
Vortex always has the possibility of breaking any mod
We recommend not using it for Stardew in any capacity at all
Well I was meaning copy and paste the code and change it around a bit to add the first house buy. Or is it hardcoded where you can only go from starter house>1st upgrade?
If you want to use a mod manager, Stardrop is made specifically for Stardew
in the website, why is there an option for spirits eve/festival of ice set up, when normally you can't go inside
Well, it doesn't matter what part is hardcoded if you're intending to change the code, because then you can just change whatever code you want. And by "code", we mean the C# programming language, not the data contained in Data/Buildings in JSON format.
Did you mean to reply to me with that question?
because its outside the context of the fishing event iirc
there a difference in the data files so it refelcts that
oh sorry wrong link 😔 you got me
in the website, why is there an option for spirits eve/festival of ice set up, when normally you can't go inside?
thanks, sorry for the unnecessary pings 
Yeah I know you meant the programming language, I have a very rudimentary understanding of C#. Do you think this out of the scope of someone with my limited skill level?
!decompile Just making sure, as a lot of people refer to the json as code as well so I wanted to check we were on the same page ^_^ TBH I have a pretty limited understanding of C# as well so I have no clue how difficult it might be. You could have a look for yourself by decompiling the game and poking around the code to see how well you understand it.
If you want to make SMAPI mods with C#, one important resource is decompiling the game to read the game code. Here's how to do it: https://stardewvalleywiki.com/Modding:Modder_Guide/Get_Started#How_do_I_decompile_the_game_code.3F
my professional opinion is that it's going to be a pain in the ass
Pillows, a question for the future: I imagine showing both spots for NPCs that move after events would probably clutter things up, but would what about NPCs that only show up after events? Like Claire, Scarlett, Martin, and Gunther in SVE. Basically like Kent in vanilla. I'm gonna scrape together some little problems I noticed while using this last, and want to know if you want those included.
but the old adage applies - if there's a will there's a way
Okay thank you, I'll have to take a look and see what I can do lol. Is this also how people make new farm maps?
Nope, not at all. That's just json!
Since 1.6 the game has had a native option for adding additional farm types and we can use Content Patcher to edit that asset to add our own
how hard is it to add a new map to the game? and is it possible to use that map editing mod to. er. edit it?
i’ve tried using tiled before but i wasn’t really happy with what i made,,, the eternal struggle lol
This might be a really dumb question, and I'm sorry for even asking, but I'm being told to create a subfolder. That's basically just a regular folder, right? Not a zipped one?
the map editing mod (assuming it's the same one I'm thinking of) allows the end user to edit maps after they're loaded, and it's not saved anywhere
you, the mod author, has to make it to start with, and that means entering the Tiled mines
uhh
whats the current behaviour?
None of those NPCs are shown on the map, so if it hits Y3, a modder might find out their character stands on top of Morgan, for example. But Morris does show up, even though he's also unlocked by an event. I'm not quite sure what the difference is.
a folder inside the main folder, yeah
(whatever your main folder is)
Thank you
hmm
alas…… thank you for the heads up………
@crude plank why are they different pls thx 
I can get the positions for those if you want, I just wasn't sure what was wanted. Also Krobus in Halloween, he's added after you meet him, he's missing
but I bet that's because he's a map patch that adds his little icon, so it's an odd way of adding him
Someone should make an npc that randomly selects an open tile to stand on
Per event
Randomly
That npc should also have a 30% chance of being a cat
Also, is there a reason why everything is popping up in the notepad instead of word?
You can't go wrong with a cat!
because you shouldnt be editing jsons in word..
My favorite bug though: Andy uses Sandy's icon. For some reason. The filename for it does appear to be Andy, but it's Sandy's face, which is very funny
Right, okay. Thank you
Word doesn't open json files and you definitely should not try. But you also shouldn't use Notepad. Get Notepad++ or Visual Studio Code instead.
the fireworks have become quieter, so I'm trying to backtrack and find stuff I remember noticing, huzzah
oh this could be a cursed fuzzy match situation
https://festivals.pillow.rocks/sprites/Andy.png
yeah, I got a giggle
Also it shows Marlon on one spot in SVE but MarlonFay stands next to him, even though Marlon himself never exists in SVE. Could probably just scoot him over so people know the spot "Marlon" stands on is free in SVE
hmm
could probably add a way for the system that adds in vanilla spots to sve can ignore ones even with different npc names
(I tried to make someone stand next to Marlon, but MarlonFay was actually standing there and I didn't notice because his icon is an error and thus invisible)
I just got my festival coordinates done due to your tool, thanks a lot 
Actually several SVE Fair Year 2 positions seem off, maybe because they're changed in the map and not in text anywhere
weird
hmm
