#making-mods-general
1 messages · Page 350 of 1
It's less that it's smart enough and more that it doesn't even use that strategy
Python also does reference counting? Huh
I've never had to worry about GC before right now, so I didn't know anything about these different strategies
I'm a nerd
You basically still don’t have to worry
well, I would if it was in python apparently
Fortunately we’re writing mods in the better language
Yeah, python also will occasionally mark and sweep
Also tbh 97% of the time I write python I expect the script to finish in less than 20min
I like python as my fast glue scripting language
20 mins still sounds like a lot
yeah, that's why I don't know shit about GC
I think I rank languages: python if i want fast dev and don't care. C# AOT if I care a little more. Rust if I really want speeeed
Those are my picks
I also really need to learn zig
But yeah, python used to care about cycles. Not anymore
I'm not 🍏 enough for swift sorry
I’m not advocating for Swift
made me think about AOC, man I miss it...
It’s non-existent on non-Apple platforms after all
I stopped caring about AoC when they made a rule that you shouldn’t push your puzzle inputs to your repo
I’m here to have fun, this makes it less fun for me
So I’m out
I really want to learn zig
What’s stopping you?
gestures broadly
didn't know about that rule
can't stop me
knitting the national parks...
tbh honest, I can't find what you're talking about, the only "rule" I could find is that don't share your solution while the leaderboard is still being filled by people (which is basically the first hour right after an exercise is released)
It's not really tbh
For large scale data processing
why do you want to have your puzzle inputs into your repo? (genuine question, I didn't know about that so they are in mine)
Unit tests
Well
I guess not unit tests actually
Unit tests work on test inputs normally
is there a reference guide for the game content dictionaries? I'm looking at the Data/Fish output and I'm not sure what all the fields mean
eg for pufferfish the game dictionary has this:
Pufferfish/80/floater/1/36/1200 1600/summer/sunny/690 .4 685 .1/4/.3/.5/0/true'
I can see the first three are the name, difficulty, and movement style, but I don't know what the 1 or 36 are, then we have the time range, season, and weather, then I don't know what any of the rest means
[[Modding:Fish_data]]
ty apparently I suck at navigating the wiki modding data
It's not easy to do at first imo
should i just keep adding npcs to my mod until i can't think of a good reason to add them or should I cap it at some number so it's not as overwhelming
to avoid scope creeping yourself you should only do a handful
to start with at least
i should specify I'm making a major expansion
it's better to go in with an idea of how many you want from the start vs adding more as you go imo
since a fair bit of work goes into making npcs
even for an expansion, you dont want to bite off more than you can chew
the last thing I'd want is for the area to feel empty
It also depends whether you want your NPCs to consist of multitudes of not very fleshed out characters, fewer characters with more depth, or many deep characters that it takes you about 200 years to finish xD
it's planned to be a reasonably big area so I don't want to do too few but if I do too many it might be worse for a player idk
that's fair I do have to think about my time
Do you have a central theme in mind
Besides just "there's some blokes in a lil neighborhood over there"
I personally prefer fewer but deeper characters than meeting many characters who don't really feel real, but all three are valid approaches.
it's a faraway island that's pretty much isolated from the rest of civilization until the farmer finds out how to make warp totems to the island and sets up a connection between the valley and the island
so really I need enough characters that they can function as a society
it's a town-sized island don't get me wrong
that or all the inhabitants are in one town on the island I'm not sure yet
Ginger island has like 2.5 characters so I think it's about the vibe you want to set
It's also about keeping your scope tight
ok so maybe I tone it down from 18
Don't overwork yourself for it y'know, it is hobby in the end
mhm
18 characters is hitting "minimum two years development even at top speed" for me
Maybe u r just npc fiend and wish to make 30 characters, or maybe u rather make town pretty 
one day I'll finish the mod then die two days later from old age
I've been working on a single NPC for over a year
im like torn between "ok keep this at a manageable scope" and "waaah i wanna make characters" myself actually
You could frame it as what stories/personalities you want to share and go from there. Does XYZ plotline go well with an existing character you have in mind, or would a new character suit it more
This is so real omg 
i thought i would just make one npc to start with to prove i could but honestly i can't just make one singular npc for the sake of it 😔 i want them to have friends and Lore TM outside of the valley
ive got so many npc ideas for the island but i really don't know
if it helps they don't have any friends in the valley it's all pretty self contained due to the nature of their society
so I'm not spending time trying to make everything compatible
maybe at some point I add NPC timetables for coming to the valley once you build a permanent portal but that seems like a priority B
basically I'm in my very standard game dev phase of "oh my god wouldn't it be so cool if" and adding another 2 weeks of dev time every time I do that
🤔 my current weird problem is not really having a good idea as to why on earth the farmer would ever interact with my npcs. i wanted to tie the wizard into it in some way, like an old associate of his is asking for help, but he's got his own problems and so he offloads them onto the farmer instead....
but i havent worked out what it is that said associate would actually need help with
literally everyone is going to die if he doesn't cast a magic spell that he doesn't know how to cast
XD from 0 to 100
"hey I need a hand. you know, when you've got time, nothing urgent, I just forgot the 'save the entire world' spell and I'm pretty sure I need it"
So if something (like seasonal outfits) seems hard and time consuming save it for 3.9
Ooh maybe wizard's associate had an apprentice that abruptly moved and now they have a boatload of work to do but can't get it done alone
yeah I'm ASS at art so sprites and portraits are gonna take me a hot minute
i was actually thinking something like that, like his associate calls him up like "hiiii rasmodeus i know we havent talked in a while but i need a favor 🥺"
Wizard: "this isn't about a pyramid scheme right?"
oh wait i have the perfect idea now
"sowwy i didn't return your calls but I need $200"
🥺🥺
alright banger idea
I'll make the island
then on every second building
I slap on a coming soon sticker
and all the NPCs that would live there just don't exist
Ghost town. I approve
i think people would continuously pester you about it to the point you’d hate it lmao
I mean u can make 1 npc
Don't release an unfinished mod! You'll doom yourself!
I'd hate to have it incomplete anyway so to be honest I'd agree with them
i wish
(Adding extra content after release is different to "here are four maps with literally no content" etc)
I think passerby cemetery (rip) is basically that
but they're pretty defined by their environment
But even then it got too much for clown and had to tune it back down to just hand full of npc
You can also let the Big Expansion of All Time stew while you do some smaller mods
it's probably silly for this to be my first project
Ppl yelling at you that "ur mod borked >:(" is part of learning process too
realistically it's silly to make a magnum opus your first piece
You can just do what I do and work on other stuff on the side
then people expect the world from you in the future, or you’re doomed to continue working on that single mod
i just show up, drop a huge expansion and disappear into the void except to hand out updates like an unreachable entity
I have two mods published that I started after starting Hiria and finished quickly (though I do want to expand on Apollo I just don't know how. Plus it's not like anyone is banging my door down demanding more content for him lol)
ominously "i am here to update Eldermyst"
makes me wonder if flash ever had any aspirations outside of sve before it became his full time thingy
disappears
It is a big first project but also if that's something you really wanna see in your game then you should go for it (if you're having fun making it!)
Omg this is literally my thought process too lol
my entire thought process for everything is "ok what's the sensible way to do this. now with that in mind, take that out of mind. what's the funniest way to do this."
Mine is more like “ok what would be cool. Now what would be cooler. Oh no that’s a lot of work. But ooo this would be awesome too. Omg that’s so much work. But it would be so fun if I just showed up out of the blue and did all of it on my first project I think I’ll do that eventually.”
And then procrastinate doing it for eternity
honestly my lack of... motivation to actually work on the dang thing... is stopping me. it's not like im not happy with it, i just dont want to look at all the work i have to do 😔 who likes plugging in individual machine rules all the time.. not me.
well the good news is i have a fun idea that i want to make the core of my npc mod that has absolutely nothing to do with the mod i was just thinking about
i like machine rules 
but then again, i love working on everyone else’s mod BUT MY OWN because i’m just a little silly
i’m like a guided missile. point me where you want a task done and i will do it with max efficiency
but then i look at my own mods and go “ehhhhhhhhhhh”
😔 basically the mod i have like 60% complete is being stalled by me not wanting to do machine rules and pricing... i dont know how to price things at all.... lol.
ill probably like. eventually get around to it lol
oh me either. but i can assist with machine rules if u want :3c
thanks, but its less figuring the rules out and more "copy paste this 9 billion times" 😔
i can do it, i just like complaining sometimes
there’s tokens for that 
honestly I'm pretty sure it's gonna be faster for me to write something in c# (not game c# just a local project) which takes inputs in a console and has every field of every command programmed in than to manually fill in the fields each time
Something that helped me when I was at that point with mine was breaking down every little thing I still had to do and putting it on a checklist. Then, as I completed the small tasks I could see the progress, and it felt good marking them off
I mean it was a ridiculously long to-do list but it helped a lot
i end up doing that but not breaking it down enough and it ends up being like 2 months and I check off 1 thing and it's like "ahhhhhhh... progress???"
ill make a checklist right now more like the last checklist i had was in a private discord server that i then forgot to actually update....
ill go update that checklist...
i actually did this for my events! i broke it down to be super granular. find positions on map, plot event movement points on map, insert placeholder dialogue, insert placeholder emotes, code movement scripts, code dialogue scripts, etc
it was like way easier than just “do the event”
Yeah same! That's pretty much exactly what I did too
because scripting an event without syntax is easy, but sitting down and locking in to go /speak Scrimblo and /move Scrimblo is like. pain
This is how you end up with 8 million annoying messages on nexus
if i have messages on nexus telling me to update my mod ive done something right in my book
Trust me it's not worth it
how about this: I'll trust you when it's too late, and in return you get to say "i told you so"
hii, I'm trying to make an NPC on content patcher, but everytime I load the game he doesn't spawn and it says that the game couldn't find his xnb file 
Making something people like? That's nice. People begging you to turn it into an unpaid part-time job? Less nice
oh now that I do know
i broke the 4th wall in an item description in my mod 😌 that way i dont have to come up with a serious description
I've been working on something for like two years and it's still not out which to be fair is entirely my fault but i just have other things to do and I don't think people quite understand that they are not giving me money and thusly I have more important things to do
i get that
like yeah i wanna get a mod out... but there's 0 incentive for me to do so other than my own willingness to do so... so
like sure send me £50 and I'll have a major update done in a week but you aren't gonna do that
that's so real
!log Can you share your log please?
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.
im gonna try to finish my mod before everything on my "damn it still hasn't updated to 1.6" list is updated so that I can add my mod to my (soon™) modded playthrough and cringe every time I read my own dialogue
sure! it's here: https://smapi.io/log/24dea36c56614de3a569461b4ca9a4bf
Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home Single Language, with 38 C# mods and 1 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
(the outdated mods are unrelated to the mod, like fashion sense)
!json Thanks! Can you also share your json? If you have it over multiple files, I would like to see the content.json and also the file where you Load his portraits.
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.
the sprites and portraits are in the content.json too!
Ah, so the problem is that you've loaded your images to Characters/Ramuda and Portraits/Ramuda but your NPC's internal name is Amai.Ramuda_Ramuda so they need to be Characters/Amai.Ramuda_Ramuda and Portraits/Amai.Ramuda_Ramuda.
sigh im just gonna throw my hands up with the pricing. if someone wants to complain that it's not balanced idc
this is why i shouldnt be trusted in finance 😔
People will complain no matter what. I get so many complaints on my craftable auto petter mod.
ill just put a disclaimer on the mod page itself that i made up the numbers
don't be sorry! you didn't do anything wrong 🙂 Thank you for letting me know 😄
that was this first comment I got on my Tree Fertilizer mod. How to change the price.
Is it any better now?
"just make it up" always a good strategy /srs
i try to balance stuff around vanilla items: price per energy, unlock conditions, etc. but in the end you just gotta pick a number
I didn’t do a great job explaining the mindset behind why it’s so ridiculously cheap to craft the auto petter in my mod. It’s led to so much griping about how cheap the material cost is lol. But if I made it ridiculously expensive I’d also get complaints.
Maybe I should do a 2.0 that adds more lore to it.
hihi sorry for the late response, i was going to work.
so, it stopped the error but he still didn't spawn </3
That probably means there's a new error that is popping up now that the first one is resolved. Did you get an error message or just not see him where he should be?
no errors, he just didn't show up
Can you run debug where Amai.Ramuda_Ramuda in the SMAPI console to check if he's game but spawned somewhere unexpected?
I'll try it as soon as I get home!! thanks!
Okay, I might be asleep when you do because it's bed time now but feel free to ping me if you want to :)
hi! sorry if u didnt see! here was the msg i was pinging u for: 
hi - i was told by the github page to request the mod author role here.
here's my nexus page! https://next.nexusmods.com/profile/sugarsbt/mods
can also make it configgable for the whiners
this is what i do! i keep a note on my phone with the little checkboxes like:
NPC
- schedule
- dialogue
- test schedule
etc etc and whenever i add something new or find a bug i get to check it off and it’s super motivating
anyway i’m a big proponent of go big or go home for your first (that’s what i’m doing and it’s a lotttt of work but i’m finding it so much fun!)
i also did the “put two NPCs in, add the rest later” approach, and blocked off my unused maps behind in-lore reasons (for example, the butcher shop got blown up in the show it’s based on, so it’s closed and under construction in the game rn)
Some people use Trello
Hello! I am despirate for help regarding event modding 😮
I am trying to make an question in the mod, kind of exactly like Pennys cooking question is set up. I cant get it to work. The event works fine until the question.
ERROR LOG: https://smapi.io/log/4395092f11ba49ea8793492ded8e9a32
LINE IN EVENT:
/speak {{ModId}}_Hazel "$q 730 event_drunkcaregiver#You ever feel like you're doing everything you're supposed to, but you're just... not enough?#$r 730 50 event_drunkcaregiver1#Oh, you're doing great, Hazel. It's okay to feel overwhelmed.#$r 731 -50 event_drunkcaregiver2#Maybe you should try to cut back on drinking to feel better?#$r 731 -20 event_drunkcaregiver3#Your grandma needs you to be strong right now Hazel."/pause 800/speak {{ModId}}_Hazel "$p 730#You really think so? Gosh... means a lot. Yeah, maybe you're right. Jus'... a lot. Thanks, sunshine. Really.$2|Oh, look at the perfect little farmer handing out life lessons. Yeah, cause that's what I needed right now. Thanks for the insight.$7"/
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home, with 23 C# mods and 53 content packs.
Suggested fixes: One or more mods are out of date, consider updating them, SMAPI is out of date, consider updating it
it seems like your Content\Characters\Dialogue\{{ModId}}_Hazel asset doesn't have a event_drunkcaregiver2 entry
And let them win? Never! 🤣
I've written so much three hour python atra
Get good
hmm weird 😮
thanx
so.
wiki says dont make a tiled map from scratch ever and to use a vanilla map as base
because the game requires some things
but it doesnt say what things
what exactly is stopping me from just using a new map
- layers of specific names
- preexisting tilesheets
- tile size grid is v strict
It's not impossible
I has question, Warp map properties can also work for npc?
you just have to be detail-oriented
because at the moment id really just rather not have to find a map in vanilla that has an appropriate size
that i did not know
is there any way with tiled to make movement snap to grid
dont want this
The Warp map property affects both players and NPCs, yeah
Thanky ^^
Oh also another question, lockeddoors can also be used by npc in terms of pathing?
This is majorly me not knowing much about npc pathing o(<
I'm pretty sure that affects both too, though I'm not 100% sure
completely missed this thank you you absolutely lifesaver
Well, I know in vanilla some characters (like Gus) can enter Pierre's shop, for instance, when it's still closed to the players. Unsure if that's some hardcoded silliness though, instead of them disregarding the lock.
aaaand now i have to make the custom map for the shadow village....and a bunch of tilesheets. honestly maps are my least favorite tbh
maps are on the more iffy side for me. dont like em. but if i lock in its ok at best
i have never felt joy making a map
just relief that its over
LOL
mhmmm honestly im just relieved that it works and smapi isnt screaming at me afterwards

wait yay im a cheeto now 

Congrats on your cheeto dusting
(I can't take credit for it, but I can do the first cheeto emote to celebrate.
)
haha thats a cute emote
guys how the heck do i unselect in tiled
i accidentally ctrl a and suddenly AAAAAAA
r on keyboard, then click anywhere outside
like, in the canvas but off the selection i believe?
tysm
They just disregard the lock
In my headcanon Pierre is just better friends with Gus than he is with you
anyone know where the sprites for campfires are? like the one with the fire, not when you put it out
im gonna check cursors rl quick -
Town full of lock picking villagers? 😆 I assume in canon they’re good friends or something
and they may have business arrangement because gus needs to cook his dishes before a certain hour, and you can plant your seeds at any point during the day 😄
maybe our character is just a bit inattentive and the door was never locked in the first place
the farmer just refuses to try it outside of when they have permission 
my favourite thing is having noclip on and getting stopped by a locked heart level door that somehow still stops you so you step one tile to the side and walk through the wall instead 
Are there any mods that add Junipers or Yews to Stardew Valley as fruit trees?
Fun fact: The fruit that Junipers and Yews make are NOT true fruit (as they don't make flowers AND are closer to pine trees than any flowering plant) but rather they're modified cones.
It would be interesting to see them in-game.
is yew fruit toxic?
The fleshy part of the fruit is the only part of the Yew that is NOT toxic.
The seed is still toxic though.
i see! must be tricky to only extract the edible part, altought i think it's the same for cashew when the edible part is surrounded by toxic stuff
It would also be funny to have a fruit tree fruit that reduces energy instead of restoring it while eaten uncooked.
would they actually be wild tree seeds
I want yews as fruit trees.
If I'm using someone's API, does it matter if I leave the namespace in the interface as theirs or change it to my own? I see folks doing both across various mods I've checked.
Not to pintail
That works for me - I'll stick with leaving theirs, then (and just add a using when needed)
That’s what I do nowadays, yeah
hi hi, so, fixed that part, he was spawning at a non-existent tile 💀
But now his schedule doesn't work
Schedule: https://smapi.io/json/content-patcher/ec9bb317d75b40a88fff7bb37863b13a
have you considered not using query
Yes
i knew that would spawn button
Have you considered moving into the forest forever
sometimes i dream about the little observation station atop the mountain my parents took me to climb as a smol chu, theres ice cream up there
like would i use slicing or the filter function. probably filter
smol chu...
so button the usecase™ is that theres like texture_1 and texture_2 for spring summer fall
I was thinking r actually
but texture_1 texture_2 texture_3 texture_4 for winter
and pattern is texture_[n+2] is the not snowy version of texture_[n]
trying to local token this somehow
why
crimes
You can trivially do a dynamic tokens. But
im tryng to make it easy for the modder to maint AT and CP version of this building mod basically
so wait what is even your query then
texture_{{query: {{L@Seq}} + {{L@WinterOffset}}
WinterOffset is either 0 or 2
per config
but some buildings only have 1 and 1 2 so
its not same number for all
seems like you could do something with FirstValidFile and/or HasValue
with the config
how do u deal with this part then
When has file
and dynamic tokens yeah
i dont understand how this solves the number of variants being different
i.e., WinterOffset can be a different value per building type
you always have the token first check for variants 3 and 4
if they dont then default to 2
if they dont have 2 then default to 1
idk you talked me into sticking with query 
jail for chu

writing you out of my will
you will be back
ok but see in the normally 2 variants situation the match is 1 -> 3 and 2 -> 4
and then in 1 variant it's 1 -> 2
ill be honest i have no idea what you're doing
framing that on my jail walls
What's arknights
Friends, with regards to the spacecore guidebook, since I know absolutely no C#: how difficult would it be to add a guidebook button somewhere in a menu to open it?
Alternatively, can I continue to avoid C# and just trigger the guidebook from a Tile Action or an item that opens it when "used" but without being consumed?
I'm looking at using the guidebook entries as an initial NPC guide/identifier since I am replacing all the vanilla NPCs and tweaking their gift tastes and locations
kinda sorta getting the hang of map editing except I am now in the wall and the doors are oddly transparent
Oh God! Finally, Leah's family is expanding
Bottom walls need the tiles below them to be on the Buildings layer to keep you in the boundaries, and if you do not have Door tiledata and map properties, they will be transparent
looks like you can open the guidebook with a trigger action - can you trigger that using a Tile Action? Your other ideas are not hard but I think would all need C# (i.e. the menu button or using an item)
I do the using an item thing a couple times - it's a very simple harmony postfix, but that's not easy if you've avoided C#
Ty!
Spacecore csn run actions on jtrm use
I have absolutely no foundation knowledge in C#, which is my concern
Item use
ah, then use spacecore's own version of that
Excellent, that simplifies things
The spacecore guidebook is an optional component of my mod, so I wasn't looking forward to potentially needing to learn C# for it when it's not actually required
i personally think it's not that important
(I am going to use the NexusMods articles to create out-of-game versions of the pages)
there r many npc info mods (lookup, npc map locations, uiis2 for bdays)
u can leave it as stretch goal 
I mean, the player will be able to work out the changes for themselves given time, but because I've changed so much, it would be nice to at least give them a heads up, LOL
omg i hate python 💔 just grab the elements out of the list PLEASE
fricken tmxl fricken festival positions
world navigator

...I should probably run my mod with lookup just to make sure everything displays correctly at some point
I know NPC Map Locations handled the changes just fine
...how r u checking data changes without lookup
I love making 3 more stardew valley npcs for my siblings!!!!
are you manually giving npcs everything
I renamed and changed schedules and the art, chu, I have just been playing the game and using Event Tester to check things xD
Yes
If you’re asking me if not then still yes
(i meant fireredlily, on how they r test gift tastes)
if you are also doing this then consider using smth like lookup anything
Answer was: I played the game and gave them the present, LOL
Now I sound like a crazy person
Because it was only one gift change
its alright we got Fire and Water here
Lol
With our powers combined, we make Steam, oh, wait... 
Idk how many dialogues I’m going to make but I just know it’ll be a lot
Hmm
Thinking if I should make my character being related to my siblings’ characters
4 siblings living in a house
But where to put the siblings
Hm.
As in where on the map? Or how to lay out the bedroom assignments?
I really need to finish my big shop mod but I am debating if I want to change something fundamental about it and it's made me hesitate to keep working on it.
Where on the map
can a shop sell items by context tag? i would love to have my NPC sell all meat items that are added by other mods but i can't figure out if i can add that
Yes
All items and filters
At this point, with so many expansions out there that alter the vanilla maps/add NPCs and buildings/etc, it's usually more advisable to create a new map that connects in some way (these days usually by bus/train) to the vanilla maps to avoid the headache of trying to figure out potential compatibility. But it's ultimately your call whether you want to worry about that. Just be prepared for lots of "is it compatible with [insert mod name]?" questions and comments asking you to make it compatible. Especially with big ones like SVE, RSV, ES, and SV.
(example from the joja catalogue item:)```json
"ItemId": "ALL_ITEMS (F)",
"RandomItemId": null,
"MaxItems": null,
"PerItemCondition": "ITEM_CONTEXT_TAG Target collection_joja"
Obviously not a requirement to make a whole new map area but it is a massive headache to try to figure out where on the vanilla maps a new building can be placed without conflicting with some other mod or five.
ahhh i see! thanks
I’m just making it compatible with like only stardew valley
If you want to add compatibility for other mods later with a separate map, you could always have an add-on path from town that doesn't exist when things like SVE are in play, and instead have Central Station compatibility pick up the slack at that point.
Hmm
(Central Station compatibility is wonderful, because you can completely ignore the need for player walkable paths to the location)
Might make it at Cindersap forest
Then definitely mention it's not compatible with SVE, the forest gets completely overwritten there.
its crowded but its not like theres zero space
You'd likely need to conditionally change where it is located for any SVE compat because of the major changes in the Forest.
Okay but I don’t have the mod and no WiFi on my computer I just have my brother’s hotstop and it is doodoo water
(Don't worry about it if you don't want to.)
It's fine. Players will complain. It's fine.
but if you're disregarding compat, then just say that it's not compatible in the mod description, and ignore any posts about it. 🙂
(I am doing this for my NPC mod)
For my shop mod that adds two NPCs, I have a configurable map patch for the entrance to their little nook. That way I think I've got most major expansions accounted for and the player can actually decide where it works best with their mod loadout.
I thought I had a safe space in the Mountain for my Pelican Valley Loft / NPC apartments mod, but then there was one other mod that used the same spot that I had to then add compatibility for. xD
(the apartments are also a valid option for you to house NPCs if you don't mind another mod dependency)
Hi everyone!
I'm working on a full custom NPC mod for Stardew Valley using SMAPI + Content Patcher.
The character's name is April – she's a romanceable bachelorette NPC who is fully integrated into the game.
Backstory:
April is the daughter of Mayor Lewis. She used to live in the same city as the player character, but recently returned to Pelican Town to take care of her aging father and reconnect with a slower-paced life. She’s a book lover, a former literature teacher and aspiring writer. She tries to stay active, and often spends time with the other women of the town, especially exercising, reading, and socializing.
What I already have:
_Fully written dialogue for all stages: normal, dating, married, with children
_Seasonal schedules (including unique routines for each season)
_Marriage + family life support
_Festival appearances (Flower Dance, Winter Star, etc.)
_Working SMAPI/Content Patcher mod structure
_Unique portraits for each season (summer, winter, and one for both spring and fall)
What I need help with:
I can handle all the code, event scripting, schedules, reactions, and SMAPI integration.
But I don’t know how to create or model the sprites (walking animations, clothing variations, poses, etc.).
I’d love to find someone who could help me design April’s sprite sheets based on her portraits and the Stardew Valley NPC art style. She has different seasonal outfits, so ideally I’d like help creating:
_Spring/Fall sprite (shared outfit)
_Summer sprite
_Winter sprite
_Dance & wedding outfits (optional later)
Once everything is complete, I will absolutely share the finished mod with the community. I want to give back and hopefully inspire others to create their own custom NPCs too!
Thanks so much for reading, and I’m super grateful for any help you can offer!
April
fully prepared to make my next npc mod a raccoon that lives in the walls of someone else's npc house (saves on finding a house location)
OMG do it blueberry. that would be a lovely addition to 1.6 especially given the new friends in the forest.
Just realized halfway through my attempt at converting PFM to CP that I've been putting vanilla item IDs in the wrong place. 🤦♀️
It's my first mod since it's my first time using Stardew Valley with mods.
smh blueberry stealing ideas from mr ape AND sbv now \j
if you release with that as the portrait you have to attribute poltergeister btw
this is nice and i can tell you are passionate about it but im not sure what you mean by SMAPI integration
it is usually more effective if you have specific question to ask 
I don't care who it's attributed to, I'm interested in enjoying it in the game.
There's also list of people who do commissions
!commissions
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
you legally cannot release it without attribution with that portrait
(yes this is definitely a portrait maker one im not doing this baselessly)
pillow is just trying to tell you to respect the wishes of other artists who gave to the community
nexus has a section for credits for this exact thing
yeah it's pretty normal to do, just part of having a portrait maker out there
nothing wrong with using the portrait maker, it's a great tool, just to use it right
that the character is installed in the game using smapi and content patcher
well have you installed other npc mods before?
your own mod, if it is just content patcher, is basically same deal
toss that into Mods 
Remind me what file in the game contents has the fruits? Pineapple is mysteriously missing from the id google doc.
springobjects?
And how do I give credit? I'm good at programming, but I'm not good at design.
when you are using a framework like content patcher, that mod does the loading of your data into the game
Not the sprites but the data. Realized soon as I said it. But I can just count the indices on there...
data/fruitrees?
just in the credits section/description say something along the lines of "portraits made with jazzybee's portrait maker so the art is poltergeister's for that part"
I think I’ll focus on my character first then maybe add my siblings’ characters later down the line
Wouldn't pineapples be in data/objects
Yeah found it there. Brain fart moment lol
if u do any kinda open source programming then you know what code licenses are right
Chu they did ask a specific question. They have done everything except the sprites and want to find someone to make them the sprites or help them make them.
Here’s what I got so far for my character
ah oops i interpreted it as ask for advice here 
I already know how to give credit, but I still need someone to help me with the sprites because, as I said before, I'm not very good at modeling or designing. Could someone help me or tell me how to make them?
yea besides paying someone for comms if you need art advice #making-mods-art is better place
I guess I can try
usually you can start from vanilla spritesheet
your npc is just regular sized (16x32?)
theres also this doll maker https://sqbr.github.io/browser-dollmaker/
(again credit etc)
Yes, but I like to check and to check I use AI, better to check than to repair
Yes I think this is a good idea! Once you get comfortable with making one NPC you'll know how much work it will be to make the others so you can make more informed decisions about them :)
Learn from me. Do all the non-art stuff first so you know exactly what art you want/need instead of adapting your events, schedules, etc, to the art you already have. (If you are commissioning work not making your own. If you're making the art yourself then disregard.)
"RequiredItemId": "(O)Powdermelon" or "RequiredItemId": "(O)[LocalizedText Strings\\Objects:Powdermelon_Name]" for telling CP what input object for a custom machine rule? I think the first one?
I don’t think my character fits with my siblings’ characters anyways, I’ll probably make them like new characters for a potential expansion like when you’re at year 3 there will be a new family added to like idk at the forest
if you have latest version of lookup anything, most lookup targets show a internal id field
thats the id/qualified id to use everywhere when game says gib id
Thanks! I thought so but was second-guessing myself. First time using the new object IDs in anything.
Help: https://smapi.io/json/content-patcher/e079bc53af674ed3abbb2ce24fc38e08 What did I do wrong? I was following a machine rule file from I want to say plentiful harvest and clearly I didn't follow the example right.
Like I stated in the other channel already. We do not allow the use of genAI in mods if you want to discuss, or promote them here.
missing bracket at line 29
That being said, I have my doubts you will get remotely reliable code out of genAI
need another one
not quite just a missing bracket
why is it always a bracket lol
I'm also targeting the wrong place lol. For rules I need to target data/machines not data/bigcraftables
have u considered vsc my beloved
But I didn't promote any AI, I study programming and we created our own correction AI to write codes and be able to correct them quickly, so since it is something that I developed myself (checking AI), technically all the code is my authorship.
I am using VSC lol. I'm trying to figure out where the missing bracket is rn.
i believe you want your file more like this:
https://smapi.io/json/content-patcher/df042be68dc647a89942dfa0675817e8
Either way, you cannot promote or discuss mods which substantial AI content.
(it's more clear where you went wrong when you condense your file down to just the keys in your Changes entry:```json
{
"Changes": [
{
"Action",
"Target",
"TargetField",
"Entries",
"{{ModId}}_Blackberry_Lemonade",
"{{ModId}}_Blueberry_Lemonade",
"{{ModId}}_Cactus_Fruit_Lemonade",
"{{ModId}}_Coconut_Lemonade",
"{{ModId}}_Cranberry_Lemonade",
"{{ModId}}_Crystal_Fruit_Lemonade",
"{{ModId}}_Grape_Lemonade",
"{{ModId}}_Melon_Lemonade",
"{{ModId}}_Pineapple_Lemonade",
"{{ModId}}_Salmonberry_Lemonade",
"{{ModId}}_Spice_Berry_Lemonade",
"{{ModId}}_Starfruit_Lemonade",
"{{ModId}}_Strawberry_Lemonade",
"{{ModId}}_Wild_Plum_Lemonade",
"{{ModId}}_Powdermelon_Lemonade"
}
]
}
yea to make vsc and other editors really help you out, you should use a indentation you like and pay attention to bread crumbs
(afaik CP doesn't support {{ModId}}_Blueberry_Lemonade actions in the current format)
I do have indentation on
another helpful thing is the cp schema
"$schema": "https://smapi.io/schemas/content-patcher.json",
put this just under first {
Indentation doesn't help when you legit missed a step and it's not just you forgot to close a bracket
this is mainly useful for pointing out where you forgor a FromFile or spelled Actoin wrong
the CP schema is also pretty much just telling you what the web parser does, which isn't helpful if you don't understand what Invalid value. Found '{{ModId}}_Blackberry_Lemonade', but expected one of 'Action', 'LocalTokens', 'LogName', 'Target', 'Update', 'When', 'TargetField', 'Entries', 'Fields', 'MoveEntries', 'Priority', 'TextOperations'. means
it gives u squiggles tho 
in short though you didn't wrap your first entry in some "{{ModId}}.AncientFruitLemonade": { ... }
I've put your fix side-by-side with my original file so I can look at it and learn.
the difference would be L11 and by extension like L314 or something
and everything inbetween indented 1 layer deeper as a result
hot tip: ctrl+\ in vscode to open a side-by-side comparison view
Love a good keyboard shortcut. I've just been doing the editor view split from the menu.
I usually just make a temporary second file and in the open editors section right click OG and do "select as compare" and for the dupe file with changes, "compare with selected"
and get a diff view
That's good to know too.
i was thinking of suggesting that actually, but thought i was going nuts since the option doesn't come up from rightclicking the actual tab heading
and the open editors view is hidden by default because of course it is
oh one step better
I used to manually insert git merge conflict syntax to force the diff viewer, but this is way easier
Yay the vanilla fruits add-on for the lemonade machine mod is converted to CP! Now to convert the other mod patches whose base mods are still 1.6 compatible. Much easier now I know how to do it properly though I should probably test the vanilla patch first...
most people go out of their way to avoid merge conflicts and here you are writing your own in perfectly good files
they aren't perfectly good otherwise I wouldn't need to know what changed
resistant to change, causing conflict 
Smh just tkdiff like the rest of us
too many letters, I have a hammer and I will reforge everything else to look like a nail
This is why we always test...
Guess we're going to "everything in a single content json instead of using includes..."
LOL that was a dumb mistake on my part. Now to troubleshoot why it couldn't load the sprites...
Yes
Every time someone applies a patch on that method after you it will get called again
who be patching this on saveloaded
Why is this? Just harder for you to manage when it's includes? /curious
nvm its not save loaded reading hard
https://smapi.io/log/fbfb046584844ee49998f82ba5f27d8d
https://smapi.io/json/content-patcher/8ff854a3127745fe8d049af5b623b9bd
Is it my file structure laid out wrong that it can't find the sprites?
Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on macOS Unix 12.7.6, with 18 C# mods and 7 content packs.
That was me bemoaning the error I was getting about the included file not found but I'd forgotten the path in the content json.
You need to point the texture field to the asset you loaded, not to your actual file path in your mod folder.
(That's the point of loading the texture in the first place, so the game can access it.)
"Action": "EditData",
"Target": "Data/Objects",
"Entries":
{
"{{ModID}}_Ancient_Fruit_Lemonade":
{
"Name": "{{ModID}}_Ancient_Fruit_Lemonade",
"DisplayName": "Ancient Fruit Lemonade",
"Description": "Ancient fruit flavored lemonade.",
"Type": "Basic",
"Category": -26,
"Price": 250,
"Texture": "Mods/{{ModId}}/Objects",
"SpriteIndex": 0,
"Edibility": 45,
"IsDrink": true,
"ContextTags":
[
"color_blue"
]
},```Like this?
(Ignore the wonky format at the start, it's just an excerpt)
Yup that's right
say do u want to do generic flavored item or just specific items for all
?
I followed the way the base mod this is an add-on for was structured when I built it. Base mod had every fruit its own item with its own unique sprite.
Thoughts on how to resolve this error? The base mod isn't updated to 1.6 so doesn't have an assigned ID and it seems that the game can't find it for me to add rules to it. https://smapi.io/log/359c249a053a4504b8d6359abb78921d
Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on macOS Unix 12.7.6, with 18 C# mods and 7 content packs.
The machine name in the base mod is just "Lemonade Machine" so that's what I used for my rules file.
Sorry to interrupt. I need a small help. How do I reference the farmer's child's name in my translation file? {{ChildNames |valueAt=1}} and [ChildNames |valueAt=1] don't work. (Referenced from Content Patcher docs)
is the base mod PFM?
does the farmer have 2 children when you were testing?
Yes
hrm i have no idea if you can cp patch that 
That's what I was afraid of last night when I embarked on this. I won't say the effort was wasted though because I needed to learn how to do all this for my shop mod.
but i guess you can first see if patch export Data/Machines has some kinda lemonade entry
patch export Data/BigCraftables as well
yes
were you correctly passing the value into your i18n?
Is that something I do in terminal while the game is running?
that goes into the smapi console yep
I was not. I'll try to parse what I need from the docs
Do I exit the game after I do that? (I've never done either before so apologies for the n00b questions.)
Nope you just go to the folder it tells you and open the file
Looks like it did find it in big craftables.
Gonna try something.
Nope that didn't work...
I found this in the patch export for BigCraftables. "ja.lemonademachinegoods_Lemonade_Machine": { "Name": "Lemonade Machine", "DisplayName": "Lemonade Machine", "Description": "Turn fruit tree fruits into lemonade!", "Price": 0, "Fragility": 0, "CanBePlacedOutdoors": true, "CanBePlacedIndoors": true, "IsLamp": false, "Texture": "JA\\BigCraftable\\ja.lemonademachinegoods_Lemonade_Machine", "SpriteIndex": 0, "ContextTags": null, "CustomFields": null } So I tried this in my CP patch for the add-on to add more rules to it but it did nothing. { "Action": "EditData", "Target": "Data/BigCraftables", "TargetField": [ "ja.lemonademachinegoods_Lemonade_Machine", "OutputRules" ],
Leaning toward what was said earlier that CP can't patch a machine added via PFM.
There was nothing in the patch export for Machines.
if the machine made it into Data/Machines, i'd expect it to be patchable via CP, but priority/timing may be at issue
(well bigcraftables dont have output rules, so you could patch the craftable itself if you corrected the targetfield. not that that helps)
Yeah it didn't get into Machines. This might be more complex than I'm capable of/require C# if the base mod isn't updated off of PFM. But I still learned things.
oh, me saying machines was just me misreading, sorry. sentiment still applies (if it is in a data asset, you should be able to patch it)
I just don't know where the rules would be if they aren't in machines or big craftables in order to patch them.
I can always just add the powdermelon lemonade to the PFM file and keep the patch on PFM and JA for now. If the base mod updates at a later date to move away from them, I can revisit. Thanks for all the help troubleshooting tonight everyone! I'm gonna call it there and rest my brain.
what happens if you do a new entry in Data/Machines
with key (BC)ja.lemonademachinegoods_Lemonade_Machine
I don't think pfm puts stuff in data entries
I think there's like a 50% chance that if you add a new entry for this bigcraftable in data/machines that it can work
if you sleep will this Random update
(I suspect it won't work but you can try it)
is Old Man Cannoli hardcoded, as far as the glowing eyes and the tile action?
Trying to figure out how annoying it's gonna be to swap him out
he's a bunch of TAS
hardcoded colors very annoying
is just 1 function to skip prefix tho
well, I'll try this out and if it fails, I'll just line up my eyes with the original ones. >_<
this looks janky as hell to me because i've watched it a hundred times, but i don't know if i can improve it. is it too distracting, or do you think it looks fine?
https://smapi.io/json/content-patcher/b327557e0ec548f7b8f4e97f72fdd1a5 here's the event script (lines 21 and 22)
seems like I lined it up enough that I don't notice anything wonky with Skull Kid 😄
Is there a particular part in the event you're looking for feedback for or just overall?
the TAS are giving me a ton of trouble, but i'll take all feedback
there is the tiniest blip on the cactus pickup animation at the end, but I feel like you've probably done what you could there.
(it's when Crystal pops back up a tile)
maybe i can try to position offset her a bit?
It has the same issue very briefly when she puts it back down, she is positioned too far down after the drop
The same offset should fix both though.
cool i'll try that
i had one in there earlier but it was confusing me too much
it's because her sprites are shifted up to accommodate the plant in the 16x32 box
Yeah, you've got just a bit of variance between where she is during the TAS and where she is during showFrame
i can't tell if this is better or not, hmmm
should i position offset her before warping, maybe? does it retain the offset through a warp?
Hmm, yeah I think this one looks a bit more stutter-y than the previous version
Door, window, and interior warp success!
Although now just walking up to the house warps you in, rather than on-click so I've gotta figure that out haha
Who will live with Leah?
I got curious
I published a mod where her and Emily get married, and now I'm working on adding kids 
Oh, how cool!
Tentative story line is them fostering a sibling pair!
I thought it would be the addition of some member of her family, like brothers or even nephews.
Anyone else get a bug where a move command in a custom event (via ContentPatcher) that’s supposed to move a character one space instead causes them to keep walking in that direction forever and softlocks the event? literally just /move Pam 1 0 1/.
yeah, all the time 😭 possible culprits are not allowing them enough time to finish the move, mixing move and advancedMove, and only moving them 1 tile (but only sometimes it's an issue??)
I've also had issues if I used speed changes or a move with another NPC that continues the event
moves are soooo picky
I think a good start to a mod is to start with just 2 events
And later, keep adding
this is infuriating. I have /move Pam -1 0 3 Gus 0 -1 3/waitForAllStationary/. Gus goes to his position and looks left, just fine. Pam walks off into the ether and holds up the rest of time.
and the event worked fine before! I changed different parts of it and now it’s breaking on this one!
hm. maybe the problem is waitforallstationary actually.
not sure why that would break Pam and not Gus but I’ve been programming long enough to know that just because I have no idea how something could cause a problem doesn’t mean I can rule it out
nope
iirc you need separate move commands for that case? like /move Pam -1 0 3 as one line
no, that’s syntax
I fixed it by changing things so Pam isn’t facing the same direction she faced while moving
and by fixed I mean avoided the bug
what do you mean? sorry my brains not braining much rn, its night in my time zone
you're allowed to have multiple actors in a move command
omg why did i not know this
i didn't either until i pointed out the same thing as an "error" a bit ago lol
i somehow forget about it every time i read it
nvm me then, sorry abt that! 
it’s validating to run into a bug that other people have also experienced. the thing I was working on before was forcing the game to follow around an NPC as they go about their schedule instead of the player character, which meant I was exclusively dealing with brand new bugs invented by me. and believe you me the game does not want you to do that. don’t ask me to explain how I managed to do it, I barely know myself
oh wow that sounds hard af
does anyone know when sappypiano plays in the game? idk if i've heard it but i haven't played much of 1.6 if it's new lol
I don't know which vanilla events use it but this mod recently released that let's you play any of the tracks
yep, that's what i'm using haha
Ohh, sorry I thought you wanted to hear it to use for an event haha
i'm thinking about it! but i wanted to check if it would remind people of like "oh my god remember that time when xyz"
the name never shows up in code or assets, and the wiki says it's unused, so you may as well 
sappypiano Wavebank 43 0000002b A midtempo track featuring sparkling harp notes, synths, flute, and drums. It is unknown why the track is titled this way. Unused by Vanilla.
oh fuck yeah awesome
i'm deciding between sappypiano and sweet for the event i posted above
actually i think i'll go sweet and save sappypiano for another NPC it'll fit more
@uncut viper i'm not sure if this is intended behavior, but i may have found a bug with the soundboard? i left a track playing, exited to the title screen, created a new save file, and the same track began playing upon loading the new save. going into the soundboard and playing/stopping it only made it play over itself.
relaunching the game did stop it though
Can't sleep so reading through the brainstorming files for some of my mod ideas. "A bookstore (probably just a front since books are useless in game)" clearly written long before 1.6 arrived...
Boy was this mod ambitious. A cat cafe and a new movie...
cat cafe is a neat idea
sunberry has one! :D
and it's awesome, but also definitely the kind of thing that you can two cakes
Three cakes, actually. 
It'd be cool if we could get different animal cafes
A dog cafe, a reptile cafe, a butterfly cafe...
oh for sure, just saying in case emu engine wanted one in their game without having to wait on when/if cosplay implements theirs ^^
Chinchilla cafe!
guys!! it just happened!! i wrote an event entirely correctly on the very first try!!
i thought that was literally impossible
its rare but it does happen...
Has never happened to me, probably never will lol
is there any particular reason why a single mod (in terms of uniqueid, manifest.json, i18n, etc) can't e.g. be a content pack for multiple mods and also have an entrydll?
it seems like a weird design choice to me that so many mods have to be split across two (or three or four) mods
itd be nice to be able to share a single uniqueid and share i18ns and share dependency lists and etc
think of content packs as different types of mods
Because then what happens when 2 mods want to specifiy the content in a file called content.json
and ^
You're fighting people for file name real estate
i mean this could be designed differently? content.json could just be a default, same as how you have to specify the name of your entrydll
the content packs system could be designed in a way that allows this. i'm just wondering why it isn't
A c# mod and a content pack of files that are provided to a framework are just fundamentally not the same thing and mixing them seems like it would add complexity, particularly on smapis shoulders
Separation of concerns is great
it just happened that people did that
Hello. Sorry to interrupt (I’m not sure how discord works sorry - let me know if I do something wrong). I’m new to this group but I’ve been playing SDV for a while (including modded). I want to learn to make mods and I have ideas for 2 small mods. Now I’m trying to work out if these mod ideas would fit under C# mods or Content Pack Framework mods. If I say the ideas, can someone help out?a
feel free to ask, interruptions aren't an issue for the most part
needing multiple i18n folders for different components of a mod is kinda the opposite of separation of concerns
i do and thanks
(it's possible nobody is around who'll have feedback, but worth asking)
honestly, the fact that a mod is partially c# and partially content patcher should be invisible to the end user, exposing that implementation detail is also the opposite of separation of concerns
Im not sure I've ever needed to share translations between my components tbh
So my first idea is for a new recipe using joja cola - I think that is a content pack framework mods folder when? My other idea is to make the autograbber available early on (level 5 farming) and cheaper (only 10,000g).
Ignore “folder when” - typo
either way, it'd be nice to be able to keep them all in one place, no?
I vote no tbh
if you need to share translations you're able to just load them into the game like any other strings and load them from game content from your other mod/content pack
I think both of those can be done with Content Patcher packs, though I'm not familiar with the autograbber data personally
Does the end user know tho? You can make 10 folders in a c# mod
when they see two separate entries in gmcm named foo and [cp] foo they do 😆
i just mean like
Thank you. I’ll focus on learning content patcher then though I might look into learning C# too out of interest.
Maybe i dont download enough mods but is that common?
I think personally it'd be unnecessary complexity on smapis codebase
ultimately, many designs could exist, but Content Patcher expanded its scope to include things like i18n and GMCM tie-ins at all
(and yeah, adding complexity to avoid copy-pasting a file feels low priority to me, but it's subjective)
I think you're viewing complexity from the standpoint of the average modmaker, when in actuality the complexity is going to fall on the shoulders of the person maintaining the tools that let us make mods (mostly Pathos, but it'll be sonething other framework makers will have to figure out too). A giant combined system is going to be a lot harder to get SMAPI to interpret properly than the current modular setup, with little reward for the extra effort expended to make it happen
and if all else fails, a C# component can load whatever i18n file it wants, though it might set off SMAPI's file access warnings 
I didnt even know we had those
I refuse to touch anything outside my mod folder on principle because do Not come to me telling me I deleted your c drive
FTM used to use normal file system commands to delete obsolete data files, which made SMAPI post yellow warnings (similar to the save serializer thing)
it's something to avoid for the sake of SMAPI being assured you're not doing virus stuff, but technically allowed
when some i18n file is loaded by smapi it's accessible through reflection, so you can of course just use underhanded backsliding trickery to get translations if you need
no warnings ☀️
right, I guess those would be accessible anyway
Pathos plans to have warnings for reflection tho
there is a mode in smapi to not load mods that trigger those warnings, which pathos does use when doing mod compatibility updates, though he does a second run for some of those mods in more limited set
fuck ☀️
curious about these warnings -- are they also set off by e.g. loading native code?
I vaguely recall it being specific to arbitrary file system access, but it's been years since I touched it
i assume they would be if they're supposed to be a general security thing
like if they're going to be set off by reflection
i think it's just the .NET file IO APIs right now
for anything else, see https://discord.com/channels/137344473976799233/1363997697903825087
Hi I need some help please. I am trying to find instructions on how to add a brand new recipe to the game. I found this:
https://stardewmodding.wiki.gg/wiki/Tutorial:_Adding_Recipes_with_CP
But it only seems to be talking about editing a recipe, not making a new one. I can’t find a reference on the internet to how to make a new one?
Hello! Rokugin here with another tutorial on how to make some simple stuff with Content Patcher. If you need any help with this or any of the stuff on my Git, feel free to try to reach me on the SDV Discord, there are also a lot of other super helpful and knowledgeable people there that are willing to...
it has instructions on adding a recipe though, above the ones for editing one
I think maybe I see the confusion here. Although the big chest and fried egg recipes already exist in the game, rokugin's tutorial is teaching you how to make totally new recipes for those items, not how to edit the existing recipes. (And then underneath that it has instructions for how to edit an existing recipe.)
I have since found out that I am not being clear enough. I want to make a brand new recipe and item - add a new sprite for it, a new recipe, etc. So I need to use DGA, not CP
i actually despise map making
i want the grass to be darker
and suddenly its like
changing all the sand
because the grass and sand is tied together in a season
so i have to change all the sand
but i liked the sand
agh
I’m sorry, what page?
This one?
Um ok, that page seems to have a lot of info but not what I can learn from to make a brand new item. I am super super beginner. i tried reading through the content patcher readme but got confused.
Here is a very simple mod that adds one food item and one sword and has a cooking recipe and a crafting recipe to make them (you can ignore the second cooking recipe and second crafting recipe - they were for me to test if you could have multiple recipes for making the same item). You can use this as a starting point for yours.
Thank you so much!
So i got the mail to send with all the correct dependencies and text, but i still cant seem to get an item to send with it but there wasnt any error logs on smapi either so idk whats wrong if someone wouldnt mind checking the json files 
You shouldn't really be using a fake event to send mail
The trigger action is for sending the mail, not adding the item
You put the item in the Data/mail entry
a h alright

Use %item id [<item id> [count]]+ %% in your Data/mail entry to add it to your mail. And since your item ID has spaces in it (which is not recommended) it will need to be %item id \"(O)G0th1cc80HDBvnny.GBsForage_Mystery Dice Bag\" 1 %%
alright thank you and ill keep the thing about spaces in mind 
Could anyone please help me?
I'm stuck with my custom NPC, they're spawning in just fine and I can talk with them but they're not following the schedule, they spawn in a custom map.
I have tried putting them in the centre of town, I've also tried setting the first task in the schedule to being the spawn location and still they won't move
I've also tried giving them an already existing characters schedule and they still refuse lol
Have you slept at least one day in game?
Schedules are set the night before so unless you make a brand new save after you have made all your changes to the schedule/added the schedule you always need to sleep at least one day for it to start working.
Thank you SO much. I've been stuck on this for like 6 hours straight!
Did it work?>
Checking now 🙂
Yes it works hahahaha. I'm so annoyed. Thank you SO much, you're a life saver
I'm sorry you struggled with it for so long but I'm glad it works now!
I need help. I’ve been trying for hours, and I finally have the mod working - Triple Shot Joja Cola - to a certain extent. I can spawn it in game, it has the right sprite, and I can drink it. But I can’t get any buffs or the right amount of energy gain to apply. Can I show someone my content.json for advice?
!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.
use that link and post here
I'm so new to mods it's not funny. I don't know how to look at tea buff sorry
!unpack
Follow this guide to unpack the game's content files in order to see and explore how the game data is structured.
It's helpful when making your own mods, or just to learn about how the game works!
I have unpacked the files, yes
ok i found green tea. how does that help me?
You can look at how the buffs there is specified and copy it
I'm not sure how [ {…} ] helps?
oh did you use wrong xnb unpacker
ok cool 
does that mean my whole file is wrong though? because it's not in that order? or do I just replace the buff part?
ugh now smapi says i've broken the json 😦
you need a ] at line 60
but yea just replace the buffs part, order is not important
"Buffs": [
{
"Id": "Drink",
"Duration": 360,
"CustomAttributes": {
"MaxStamina": 30.0,
"Speed": 0.5
}
}
],
this but with ur numbers is all that's required
thank you, I'll try that
I really don't know what I'm doing. I found the info on the net confusing so I tried to get an AI to teach me but it kept getting stuff wrong. Not sure how to learn from here.
what's the calculation for the duration? I want it to last for around 3 minutes real time
an ai will probably suck at stardew valley syntax
yeah it tried but it failed. I don't know how else to teach myself though. I tried reading the contentpatcher read me but got overwhelmed/confused
i remember the timing math being wacky for food associated buff
maybe I'll just guess then
it's measured in in-game minutes according to the wiki
yea i mean just copy whatever value's on triple shot expresso and u good
10 minutes is about 7 seconds so for 180 seconds you probably want a value of 250 (175 seconds) or 260 (182 seconds)
thank you
the mod only needs one more thing now - can I get the recipe to be sold at the joja shop? players can't get it until then like triple shot espresso?
I can copy and paste triple shot espresso's thing I guess - but what is the joja shop calle dinstead of the saloon?
yeah you can add the recipe to the jojamart stock
ok I can't see the info for where to get the recipe in data/objects - is it seomwhere else?
bear in mind if someone chooses community centre route and finishes cc before getting your recipe they'll be locked out of perfection unless you add another way to get the recipe
oh dear
can I make it not count towards perfection?
or should I keep it simple and make it a basic everyone-knows-it recipe?
sure!
Looking at existing mods that do what you want yours to do, looking at vanilla files, reading the content patcher docs, reading the official wiki, and (sometimes) reading the modding wiki are the ways to learn all of this. When it gets overwhelming, take a break and then try something smaller than you're currently trying so you can just try to understand one small thing at a time. It will add up! We can also explain concepts here too if you need them worded differently to be able to follow them.
thank you, I really appreciate it!
Need to check for the mailflag in ur shop entry (i forgor what it is but lostitemshop entry for trophy should have it
Ok i found lostitemshop.json but how does that help me?
looks like it's not showing up in the kitchen cooking menu at all so I at least need to fix that
have you added the recipe itself?
ok cool I found the recipe data for triple shot espresso. I'll go find that page I saw that tells you how to edit a recipe, maybe I can figure it out from that
sorry I can't be more help, I would love to just spit json at you and explain what it does but I am on mobile and I guarantee without an IDE my syntax will be wrong
I am looking at this page:
https://stardewmodding.wiki.gg/wiki/Tutorial:_Adding_Recipes_with_CP#New_Cooking_Recipe_for_an_Existing_Item
and I can't figure out if the "new cooking recipe for an existing item" is what I need, or "changing a cooking recipe for an existing item"?
Hello! Rokugin here with another tutorial on how to make some simple stuff with Content Patcher. If you need any help with this or any of the stuff on my Git, feel free to try to reach me on the SDV Discord, there are also a lot of other super helpful and knowledgeable people there that are willing to...
you want a new recipe, which will use your {{ModId}} unlike the changing a recipe which references the base recipe and assumes it exists
oh thanks! I was thinking that was it - do I just use {{ModId}} or do I have to actually put my mod name into those {{}}?
{{ModId}}
!itemids
how do I put my triple shot joja cola as the output in the field for what the recipe gives?
Use the id you gave it in your Data/Objects entry
https://smapi.io/json/none/80712bd2cd6446f9985362415a26362d
I tried to figure out how to fix it but I find the error information too confusing
nevermind, fixed it
darn. Still can't see it in the recipe list in game at the kitchen stove
You can export the Data/CookingRecipes asset to check if yours was added properly.
Copy this (next line) into your SMAPI console and then go to the folder it tells you to find the file and look inside it.
patch export Data/CookingRecipes
ok I tried to copy the fried egg data. IT's still not showing up in game though. Would I need to start a new save?
Please do what I just said to do in order to check if your recipe is being added to the game.
No, you don't have to start a new save.
Sorry, Ithought I had done what you said
i'll try again
ok sorry i completely misunderstood what you meant. I think I've done it now - my recipe is not in that file
sorry if I'm being a pain. I'm trying.
It's okay! The trying is the important part :)
Okay so your recipe isn't in game. Do you have CJB Item Spawner and can you check if your triple shot joja cola can be spawned?
I spawned it through smapi, and it worked fine. Should I try CJB item spawner as well?
(Once we find out why the recipe isn't in game, I'm going to get you to change your object ID to {{ModID}}_TripleShotJojaCola because IDs should be unique and should not have spaces.)
Nope if you spawned it through SMAPI that's totally fine! I just suggested CJB because I can never remember the console commands for spawning items haha
Yes I spawned it through smapi, drank it - the buffs work. Just can't see it when I click on the stove
ok I removed teh spaces so it just says _TripleShotJojaCola
Oh I see why the recipe isn't working. You put the patch inside your Data/Objects patch.
Make sure it has the {{ModID}} token!
I owe you soda
"{{ModId}}_TripleShotJojaCola": "-167 3/10 10/Triple Shot Joja Cola/default/"
Me or goannawoman?
that's what I have in my content.json
Yes, my question is why you're posting it here.
why is it -167 am I missing something
oh that's just what the fried egg had, but I made it for joja cola ID
Oh fried egg uses the negative because it's asking for a category rather than an item id. You can't keep the minus.
But right now the issue is that it's not in the right place in your file
You need to move it outside your Data/Objects patch
oh gosh I find all the {{ and [[ very confusing
2 layers
follow your Data/Objects patch down to its end brace, then comma and start your Data/CookingRecipes patch
(You, I said the exact same thing right after you did. Ie, jinx i owe you a soda.)
if you've got the same action but a different target you still need a separate Changes entry
I'll DM you my address /j
so you mean the data/cookingrecipes needs to come under it's own changes entry?
yeah the patch that adds the cooking recipe needs to be separate from the patch that adds the item
Yes but that doesn't mean you need to add the "Changes" field again. An entry is one object inside the Changes field.
oh ok
Are you also going to send me soda lol
ill send you a triple shot joja cola once it's working
I think I've just made another mess of it
https://smapi.io/json/none/a50fd2be08d4445d95e119c19fa48f29
Yes you have. You haven't closed your Data/Objects patch with enough brackets. You need to have a closing bracket for every opening bracket (starting from the opening bracket on line 12). You can click on a bracket to see which other bracket it matches with.
what do you mean click on a bracket?
Like click on it with your mouse on the json website
oooh
The brackets also gave me a lot of trouble when I first started. It wasn't intuitive to me, but after a lot of practice I got the hang of it!
(and I still make mistakes 😅)
It's hard for me to explain because it is extremely intuitive for me. Was there an explanation that helped it click for you kcspace?
I live vscode and it automatically closing my brackets for me
Honestly no, it just took trial and error unfortunately
The winning pattern, in my opinion:
- Use an editor that automatically closes braces when you type an opening one.
- Do not ever delete a closing brace without also planning to immediately delete the opening one.
what editer should I use? I've just been typing in notepad
But I'll definitely 100% remember to delete the other one ... /sarc/silly 
have I got it right yet? I tried to match all the brackets
https://smapi.io/json/none/b69458dd01624931a1409537e3c22f6b
I think people struggle with nesting because they don't know how to deal with brackets that were opened three in a row rather than open->close three times.
I personally use vscode, notepad is... Not ideal. If you use notepad at least use notepad++ since
Wow the rest of my sentence got eaten
You've put your closing brackets too early and removed your buffs field from your data/objects patch.
I think a big part of the struggle is when people indent badly, or change indentation not really realising it's possibly the most useful tool to help fix problems like this.
It belongs with your cola object.
I think you should use Visual Studio Code because it helps more actively than Notepad++. Use this link rather than googling it or you'll find a similar but incorrect program.
(Oh, yes, thank you for answering the question I missed.
)
Am I getting any closer? Should I give up?
https://smapi.io/json/none/f9005bd1a92945fd94f166b143ee7ae3
I've started directly linking VSC because everyone ends up with VS22 even when I explicitly tell them that they're different and not to get that one lol
You are getting closer but you have now introduced totally unnecessary square brackets on lines 42 and 50 and have put your cooking recipe patch outside your Changes field (see how there's an opening square bracket after the Changes field on line 3? Click on it to see the matching closing square bracket and then move everything except one closing curly bracket above that)
(microsoft's product naming strategy wins again!)
so i just remove the two square brackets?
That's the first step!
i hear this is a good tutorial for understanding what json is and how to format it: https://stardew.button.gay/tutorials/json
having this knowledge will help you reason about the changes you are making without blindly guessing
And then follow the rest of my instructions lol
Ohh yeah I forgot Button's tutorial! She makes great documentation.
I don't undesrstand what you mean by "then move everything except one closing curly bracket above that"
(side note: I love that it's .gay haha
)
If I look at that tutorial, will I be able to fix this on my own?
I mean cut and paste everything below the closing square bracket that is a pair to the changes field and move it above that square bracket. Except leave one closing curly bracket behind.
We can't answer that for you. We don't know how much understanding you'll get from it.
oh.... i already guessed what you meant and I completely stuffed it up again.
You will likely still make mistakes, but it may give you a baseline of knowledge to know what you're doing and why
I'm sorry I'm wasting all your time. I feel like crying.
You're not wasting our time, this is what this channel is here for :)
!anyonecancook
It can be frustrating to try and not get it right but that's normal. We all have things where we try over and over and over again and fail many times before getting there.
it's really late here. But I feel like I can't leave this alone and go to bed
Having patience and understanding this is actually a normal part of the process rather than something that's indicating you should give up are necessary qualities but as long as you have those you can get there!
Then it's probably better for you to rest for the day, and come back at it with fresh eyes 
(That being said, it's much easier when you're rested so taking breaks is helpful!)
being good = being persistent
I usually say this for Soulslikes, but it works here too
thanks everyone. I"ll show the json here one more time and if we can't fix it, i'll go to bed
Yes! The only thing left is to put a comma between your patches which I forgot to tell you to do before.
So after your closing curly bracket on line 40 you need to add a comma to tell Content Patcher there's another item in the list for it to look at
And when your mind's cleared some tomorrow, it might be a good idea to go through that JSON tutorial to see if it helps. It shouldn't take long, and might help things absorb faster!
Ooh it even is a list isn't it. List of models?
(Goannawoman ignore this message it's not relevant for you)
oh i already started that tutorial and can tell it's gold - thank you so much
ok so json is saying no errors now
(Changes is a list of objects, so calling it a list works!)
"Changes": [
{
...
},
{
...
}
]
(Is there a difference between a list of objects and a list of models?)
hahaha ok so now in game, it shows a new recipe but calls it Error Item (Triple) and the image is a red circle crossed out
it does say that the ingredients are 3 joja colas though
Progress!
yes i'm very happy with progress 🙂
You didn't update your IDs like I said to a while ago
oh sorry. how do I do that again?
Change Triple Shot Joja Cola to {{ModID}}_TripleShotJojaCola
I've done that
(Yes and no? People would understand what you meant if you said either, but the preferred term for JSON is that any { } is an object!)
And the output in your recipe
that line now reads:
"{{ModId}}_TripleShotJojaCola": "167 3/10 10/Triple Shot Joja Cola/default/"
OH
so this?
"{{ModId}}_TripleShotJojaCola": "167 3/10 10/{{ModID}}_TripleShotJojaCola/default/"
OK output changed
Is there a reason that the wiki usually says "list of models" then?
Yup but make sure you change it in the object too
ok i changed the object ID, and the name I think.... I'm not entirely sure what you're referring to but I think I might get it. Setting up to check in game now
(Honestly, good question! I imagine it's because in the game, these JSON objects get deserialised into data models?)
It's a field called Name. First one inside the object.
it works!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
the wiki calling them models is probably just a quick and easy layman's term and to not confuse it with an in game Object/Item
easier than explaining the concept of objects everywhere it's mentioned on the wiki
And there we go, the answer that makes sense.
lol I don't think I did exactly what you said but it works so yay
thank you so much!!!!!
What did you do that's different? It might be important.
That does make sense, though I also wonder if Pathos has some other distinction because in the CP docs he explains that a model is like a dictionary but with predefined fields and you can't add a new one, only modify (saying this from memory, I might be misrepresenting some part of it). And I always wonder how I can tell which is which.
i think it's easiest to just show the file again
But now that I've said that, I don't know the relationship between dict and object so maybe I'm just getting confused.
you're not even supposed to be able to close the soundboard without all the sounds stopping so it's not intended, but whether I get around to fixing it given how minor it is is up in the air
Hmm, your file didn't paste properly
ah that pasted
Yup that worked. Just copy your object ID into the Name field (which is right below the ID) in case you ever want to put your recipe in a shop.
a json object does not always correlate to a dictionary, it just often does in Stardew modding
like this?
"Entries": {
"{{ModId}}_TripleShotJojaCola": {
"Name": "{{ModId}}_TripleShotJojaCola",
I've never encountered json outside of Stardew. I wonder how much of my knowledge of it is wrong or strange because of that.
a CP patch for instance is a model colloquially but it isn't itself a dictionary
a dictionary would need every value of every key to be the same type, but that's not a requirement for an object in json (or JavaScript, which doesn't really have dictionaries in the same way)
Huh, fascinating
yay I am all done for tonight then 🙂 I want to add it to a shop eventually but that is a battle for another day. Thank you so much everyone for your help and patience!
Congratulations, you made a mod!
lol not sure how exactly but I will see it clearer tomorrow I think
thank you again - goodnight!
(basically, both the terms object and dictionary mean something technically different between both c# and json (and by extension JavaScript) and also between those things and in game terms. to make modding easy to understand for someone completely green to all of them, just gotta pick the term of least confusion)
Tbh it's downstream of languages like python making everything a dictionary
(also the reason I keep bringing up JavaScript is because json stands for JavaScript Object Notation)
used absolutely everywhere now though
(Yes I did know that but important clarification in case I didn't/if someone else wants to know)
I think I'd like to learn some more computer science as long as nobody brings anything to do with networking anywhere near me


