#making-mods-general
1 messages · Page 229 of 1
Hello everyone, good morning. I would really like to create a mod that adds two new NPCs, but I don't know where to start since I'm a complete beginner when it comes to modding. This would be my first mod. What would you recommend, and where should I begin?
!startmodding I recommend starting with a very little mod that just replaces an existing NPC's portrait or changes a line of their dialogue so you can get familiar with how Content Patcher works first - just a test, so just use a silly doodle or something for the image, not anything serious. There's a tutorial for how to make a Content Patcher mod in the links below. Then, once you understand the process of how to actually make a change in game, you can look at the official wiki NPC page and at the resources we have for making NPCs (which I will also link).
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.
!npc These are the links for (some of) the NPC-specific resources we have.
Keep in mind that making NPCs is a complex process that requires learning many different aspects of Stardew modding.
Here are a few links that can help get you started on all that you need to know:
-
Tiakall has a great tutorial on making a custom NPC for 1.6.
-
NPCs no longer use dispositions, check the wiki page for the new NPC data.
-
Aviroen has put together a template that will allow you to easily create a romanceable NPC.
-
Feel free to jump into the https://discord.com/channels/137344473976799233/1277457201077813280 thread for more interactive feedback and help!
-
Fireredlily has a WIP NPC Builder Please do report any errors you get with it into the NPC thread!
I was really afraid of starting with something too big without knowing anything about it, but I also didn’t know where to begin. Thank you, you gave me a great direction and a path to start my journey. I truly appreciate it from the bottom of my heart.
Sorry for ping you. 🥹
NPCs are pretty big, but they are made up of lots of smaller pieces so hopefully it will be okay! We're also always happy to help answer questions and point you to more resources. I'm happy to be pinged anytime too :)
It looks like it's missing a lot of things?
how so?
yes yes, i just hid them
Why did you hide them?
cause the code would be long... let me put them wait
!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.
You can share it easily with the parser
You should make that clear when you ask for help then because we have no way of knowing that.
It's important to show your full json to check for any problems
Have you checked that your event works with debug ebi whateverYourTokenResolvesTo_2?
sorry for causing confusion
so, Kaya deleted their love of cooking ui recolor -- what is the etiquette on making it compatible for the new release of LoC if I have the mod still and it just needs to be rearranged to meet the changes blueberry made on the sprite sheets?
personal use only? ok with credit?
don’t publish unless you have explicit permission
personal use is fine, publishing requires permission from Kaya
Yep, personal use only
even if none of the original sprites are theirs? even the colors for it I think are others, such as vintage. Not trying to wiggle my way out, I'm just trying to clarify 100%
if you’re using their old mod, you need their permission. If you recreate it using existing assets, you’re good
hmm aight
maybe I'll look at the other popular ui recolors
hmm well it looks like vintage interface at least has open permissions -- but the other ones are naver so I'll leave those be and maybe just put out a vintage interface one 
(and using palette of another mod heavily counts in needing permissions for me)
Nobody owns combinations of colors lol
Go ahead and show me your copyright claim for Pantone 448 C
sure once you shows me your accreditation for asking for irrelevant stuff in a rude manner i'll do it 🙂
I get your point but you chose the worst possible example . Pantone colors are in fact copyrighted by pantone
combination of colors
That is literally art.
Like most things around modding it's about being polite isn't it 
In Shiloh's case (blueberry made new assets for LoC that kaya didn't do) i think it's fine if only those new assets are posted
The practicality of this is questionable since kaya deleted their mod
It's about being polite, respecting other people and their wishes, respecting copyright, and having a basic understanding that a "collection of colors" is literally art like have they never seen a painting?
in this case yes it's more a courtesy thing, permissions can be used for a lot of different things, not all related to law/copyright
its here apparently https://www.postype.com/@kayainsdv/post/10313018 ?
(didn't test the DL but it seems to be here)
in case that changes anything to the options/approach
Wonder what the reasons are for deleting a mod?
Oh cool then it is worth doing then (assuming dl works)
in kaya's case
Note about only do new assets not covered still stands ofc
she was using assets made by other people (with permissions), nexus planned a change to prevent the ability to delete mods (they are still "available" for collections using them), kaya didn't want to lose the ability to fully delete if asked
That makes sense 
(I can see deleting/hiding mods if you no longer plan on maintaining them tbh. Incidentally, something I should do.)
I'm trying to be good about making sure my Laundry Machines mod is fully working for folks, but it's so hard to fix potential compatibility issues when users ignore requests for logs and then still ask "do you know of any incompatibilities"? 
this is the old one from I think 2021 - however her blog doesnt have any like blanket permissions for updating. Most of her recolors in it were naver and im not going to poke that bear, but whoever has left vintage ui open has left blanket permissions for "asset" use which i assume also means the palette, so I'll stick to it (which is fine for me because I only use vintage)
I think the only valid answer is "idk check pinned post"
Not me trying to give portrait modders a headache:
so many pixels... in the LoC book sprites..
this is actually really cool though O:
Thanks! Portraits are by @sterile crescent - she had given me permission to include and edit them, I did some very simple recolors and when I showed them to her she loved the idea and did new custom portraits for all the color options.
see also Blackest Black and the Anish Kapoor vs Stuart Semple saga!
(but in general, I believe combinations of colours are also protectable under trademarks, so they literally are copyrightable)
theres also this as well
Many companies copyright/trademark colours all the time
its also why we have specific language when referring to specific colours
"Oh, thats Miku blue", "Facebook blue is different from Tumblr blue" etc etc
Creating palettes is also a pain in the arse at times
Like making sure colors look really good together is a true skill
so asking for permission to ask to use a palette from a UI mod makes total sense
hiii lily
Hi >:]
what mod is shannon from?
Hmmm
potato poatato potatoto
Perfect solution
what it looks like when I search up something with the 1.5k mods that I have
Reminded of a somewhat random question I had: what happens if you're dating an NPC that becomes unromanceable (i.e., some condition sets CanBeRomanced to false), would you just stop dating as if you never had been or would it cause weirdness?
finally 4 butters have a rival
Oh SVE hahaha
that's a good question... I suppose you could test that with ... oh goodness what's her name from Ridgeside - I know she turns unromanceable if you go Joja
anyone know why my file paths arent saving in tiled? keep having to change them in text editor everytime i load my map in tiled 
what an interesting grilled cheese sandwich....
Kiarra!
I'm thinking about doing a workaround for the vanilla bug where FlowerDanceCanDance isn't working by making Jorts romanceable for a day
but since he's not actually dateable, I think I'll just make sure he rejects the bouquet
The only thing you need to toggle an NPC as romanceable a when condition right? Not an external mod? I was thinking that I would make it so that Qi is unlockable as a romance option instead of being romanceable outright as it would make more sense (to me anyways)
Also I would dance with Jorts at the flower dance forever oh my god
Yeah, Wren will also be a toggle as to whether you want to romance her or not since she has platonic 10 heart events
idk why I didn't think about it before I ended up changing all of his non-romantic events to be below 8 hearts
1.6 dispositions spoil us 
I can always change them back but I had made it so that they had platonic and 'romantic' dialogue depending on the relationship the farmer has with him so making those the toggle wouldnt make sense at this point (and im also not losing the alternate events i worked hard on that dialogue)
I could always make more events
eugh
[eats them all immediately]
They're scalding hot 😭
Hello ! I'v got a problem while trying to setup a project. Dotnet tells me that I don't have .NET 6.0, but I just installed it, and when I list my sdks, it appears. Can somemody help me ? Thanks
Btw I'm on Zorin 17, so it's like Ubuntu 22.04, and I use vscode
[i proceed to die]
oh speaking of amazing art, 6480, i may be contacting u about some … [sniffs quietly] commission ….. maybe …
do u have a carrd or smth for info
(in their bio)
Yeah feel free to check it out and dm if you have questions!
oh wtf it didnt load for me. oopies. thank u
try just sticking <PackageReference Include="Pathoschild.Stardew.ModBuildConfig" Version="4.3.2" /> in csproj
Not sure that dotnet add command is right tbh
I think dotnet new maybe to make an empty project first
Not sure either
Probably classlib for the template
Is {{Spouse}} a reserved token? Would Characters/Dialogue/{{Spouse}} work for NPC spouses from other mods?
As long as "HasValue: {{Spouse}}": "true" ?
Yes
Woohoo! Alright, I'm in business then
is there a way to iterate over keyvaluepairs in a dictionary with a random start point?
Well thanks, I didn't know I could just reference the package like that. Now it works !
Elaborate on what effect you want to achieve
When I change the image source in my tmx file to just paths.png for example, and then open it up again in tiled, the files cannot be found for all the tile sheets even though they have not been moved. All the map tiles are red, what can i do about this?
do you have paths.png in the same folder as your tmx?
changing the image source is equivalent to telling the tmx to look somewhere else, so it's basically like moving them
i'm changing the image source to be in the content unpacked folder so they're not being moved. do i need to include them in the same folder as my tmx? if i did that though, would recolours still work?
is your tmx itself inside your unpacked content folder?
the tilesheets must be in the same folder as your tmx, wherever it is, when you are editing the tmx
if they are vanilla tilesheets, you delete them before publishing the mod and the map will load them just fine
changing the image source without changing where the tilesheets are located IS moving where tmx is looking for tilesheets, only if you dont move the pngs themselves its now looking at nothing
Oh ok that makes sense. Thank you 
my tmx is not in the unpacked content folder so the tilesheets are not in the same folder
guess that's where i'm going wrong 
then you must move one or the other so that everything is in the same folder and fix your image sources inside the tmx at the same time to make sure all of your image sources are just the tilesheet names and no file path
for my monster hutch framework i iterate over all the monster types in the data model to determine if they should produce overnight based on count and watered troughs. this would prioritize the monsters at the beginning of the list if there isn't enough water for all of them, so i'm trying to figure out how to randomize it
Grab the keys from the dictionary, shuffle somehow, then go through your dictionary using the keys in that order
I might be misremembering but there is a shuffle method in Utility
if you dont care about random order but just random start point, you can also just iterate over the dictionary but continue if you dont pass an RNG check, save the index that you finally did pass the rng check (and stop continuing/skipping at that point), and then re-check the first ones you skipped after you do your initial pass
(assuming you have enough water to bother doing the recheck)
no list copying, no shuffling
(Tbh if you're like, let's make this fast! You might as well go into the stackalloc world)
You aren't actually gonna have that many entries
If it's just random starting point you can just get the length/count of keys in your dict, then use a random number to choose an index of those keys, then that key would point at an entry to start from
Basically there's any number of ways to approach this, just depends on how random you want
unrelated to your question, I'm not quite sure how your hutch mod works, but why are you iterating over monster data instead of the monsters in the hutch itself?
the data model has a field to set the number of that monster type required to produce, so i iterate over the monster types to count and compare the number watered to number required to produce to calculate amount of produce to drop for that monster type
thanks for all the suggestions!
i think this will suit my purpose:
var data = AssetHandler.monsterHutchData;
var keys = data.Keys.ToList();
var checkedKeys = new List<string>();
while (checkedKeys.Count < keys.Count)
{
Utility.TryGetRandom(data, out string key, out MonsterHutchData value);
if (checkedKeys.Contains(key))
continue;
checkedKeys.Add(key);
if (waters < 1)
break;
int monsterCount = 0;
foreach (var monster in __state)
do yall think it would be worth it to make a suggestion to make a channel for advanced modding, like C# modding and mapping, Npc’s?
i don't think there's a reason those quesiton can't go in the channels that already exist
hm i guess it just sounded better in my head
The idea of additional channels for modding has been brought up multiple times. The problem is you're creating more places we have to look when we want to help people.
I specifically, as an example, definitely wouldn't be subscribed to channels about mapping or making NPCs. But I have answered questions about those topics before based entirely on game knowledge from C# modding.
^
I'm a little rusty from taking a break. My warp isn't working, any ideas why? I've been on the wiki page and it seems as though I've formatted it correctly. No smapi errors, just not warping to the new map
Might I suggest HashSet<string>? csharp var checkedKeys = new HashSet<string>(); while (checkedKeys.Count < keys.Count) { Utility.TryGetRandom(data, out string key, out MonsterHutchData value); if (!checkedKeys.Add(key)) continue; // ... }
(If you want to be fast you can break apart fisher yates)
A HashSet's Add() method returns true if the item was added, or false if it was already present in the set. It's convenient.
I have an example in AtraBase
I've put the warp properties in the map itself and i've also put them in the json
this was discussed back in the day and mods decided no
Its hard to say with so little data, check the coordinates and mapnames and make sure they are correct? having a smapi log with a patch summary and/or being able to see your json, depending on how you're adding the warps would be useful. https://smapi.io/log
Fisher Yates is one of those names that seems like it should be for an algorithm that’s much less fundamental than what it actually is
The general idea is to simply keep a counter of active elements and swap the used ones to the end
its why we got the art and the “making” split
Why not?
Is there a way to add dialogue that mentions things leading up to the wedding ceremony? Someone commented that it was odd there was no dialogue for that and I wasn't even aware that was possible... if it was anyways (I don't really marry npcs all that often if that isn't obvious... and when I do I guess I just dont pay attention to the dialogue leading up to the wedding... or i dont talk to them I guess)
I haven’t touched them since I first learned C# properly when I was implementing my own solitaire clone 
unless its a CT, i dont thiiiink so
Usually whatever I'm working on doesn't have performance critical loops so I don't bother writing stuff like that.
but i could be wrong
The lazy gets me.
Okay then I am not in fact crazy and did not miss something on the wiki... maybe
Seeeee Khloe I just happened to have that written already
idk if we can completely rule out crazy… /lh
So it's easy for me to just stackalloc and do the little shuffle
Yeah, and I might steal that if I can think of anywhere I could use it
Isn't there a dialogue like that, for when you snd your spouse wre engaged?
I mean it's possible lol
Is it engamement dialogue or something like that
touching anything that has “alloc” in the name is against my religion actually
Incredibly easily. Use a trigger action to set a CT if your {{Spouse}} has a value and that value is an engaged friendship
- malloc: spooky, scary
- stackalloc: great performance, reduced gc churn, only works for small sizes
(Yes I know you don't directly call malloc ever in C# but the point stands.)
(Fwiw, i wrote for both stackalloc and rented buffers)
A lot of fast mode atra code can handle both
Avoid allocations with this one stupid trick
LMAO DANGIT I KNEW IT EXISTED
frick!!!
i was lile thats a huge use case that has to exist
and yet, and hear me out,,,,
no
It's only an allocation if it comes from the RAM region of the address space, otherwise it's sparkling memory access
Being serious though, stackalloc is great.
I should use it more.
stackalloc sounds like one of those very powerful methods for crime
I'm usually too lazy to consider it though.
is there dialogue entries for things leading up to having a child though
(as far as I can tell there aren't I did search the wiki... but im also very ill right now so i could be blind)
It's not even crime. You're just allocating bytes from the stack. It's freed once the method finishes executing, and it's not garbage collected.
If you're working with a small amount of data and it's simple stuff like bytes or ints in an array, go for it.
Though keep in mind that memory allocated with stackalloc isn't initialized like memory allocated with new
one day I will dive deeper into the madness of gc etc in C# but today is not that day
They day should really be today for anyone making C# mods for Stardew.
The name of the game is reducing GC churn as much as possible so the game's frame pacing remains as stable as possible.
The GC is the biggest enemy of stable frame times. (The next biggest enemy is people who decide to process millions of things in a single frame.)
the frame pacing issues are rly just the cg? damn
No
There is a trick I do in at least one mod
When the garbage collector kicks in, it pauses the runtime while it's running. The entire game just freezes. It's usually incredibly brief, but the more stuff people allocate the more work it has to do.
Stardew is a pretty small game so it's not so bad here.
I used to do Minecraft modding and it was terrible there, lol
Then I just add in high priority (ie "Town" dialogue when that token is "Expecting")
No, tbh
If we just all wrote mods in C++ then the stack alloc would just be how it goes no extra attention 
Hear me out: Rust
Nou
Good evening. I have a question about the world map graphic. Is any of this dynamically generated? I'm using a recolor, but certain areas have vanilla colors - and I cannot, for the life of me, figure out what's causing it. I've been looking for the actual graphics in the mods that I think add the patches, but I can't find anything.
atra I don't want my Stardew to get rusty how am I gonna till the ground effectively with a rusty hoe
For map tiles no, all the tiles are some actual tile on a sheet
I'm not sure how clear this is, but...
Oh the world map comes in pieces yeah
For example, the area added by Cape Stardew. I've been digging through the folders, but I can't find the actual image anywhere.
Are you looking at their mod's folder
Looking at it right now. Even ran a search for *.png, but nothing.
Using debug warp doesn't even take me to my map, what am i doing wrong oml 
another day another "answering nexus comments and asking for a smapi log"
See, I just happened to need that case in two places, wrote an insanely over optimized function for it. Then I just use my insanely overoptomized function
Also why none of my mods work currently, atracore is much more about these fast snippets over having an effect on the game lol
😅 time for me to learn how to use a new framework... i have never used pif before but i suppose it wouldn't hurt to create pif rooms for my greenhouses
It's just too weird. I've dug through every .png in the Cape Stardew folder, and there is no world map graphic - yet it shows up in-game.
would anyone happen to know the method or general code that is used to check if the player can go into an area? Specifically stores like the seed shop. I'm trying to see what are the conditions in order to make the text at the bottom appear. I know it's not TryOpenShopMenu
Same thing with Lunna - you can see the little bright green patch to the west of the Wizard's Tower - but there's no graphic of it anywhere.
Have you checked where it does the edit and look at the fromfile?
That's the thing - I've been searching for "Target": "Data/WorldMap" in every .json file I can find, but nothing.
What is that "Shut up sandra!" picture doing there?
Oh... That's a extension I have that plays hulu in PIP. Kinda forgot it was there 😅
lol
This is a lockdoorwarp tile prop
Can anyone help me? Debug warp takes me to my new map but the actual warp points do not. I've added the coords in map properties within Tiled and I've added them to my json... don't know where i am going wrong
Can I see the JSON or tiled?
Action ConditionalDoor
Okay well
the locations.json file is separate if you need that too
Replace the FairyPlace.8BitAlien with {{ModId}} (Less bug prone)
Wait no door is interior 
Also you need EditMap, not Load
sorry, i should specify that all the locations work other than FairyPlace2
You don't need a FromFile there either since you're adding warps, not creating a location
Sorry, what is the name of the class/struct that prop is in? I couldn't find anything by searching lockdoorwarp in ILspy
Ok i was right the first time it is Action LockedDoorWarp
It is gonna be in GameLocation performAction and the big ol switch is probably mangled
I have created a location. FairyPlace and FairyPlace2 are two different locations
unfortunate...
So, Remove the FromFile, Make sure the location is being loaded into Maps correctly, make sure you use EditData on Data/Locations and use {{ModId}} instead.
Oh
Here, I will send you a bit of what it should look like
I believe the args have everything you care about tho
Do you have a different mod that adds the graphic to the map. Remapping adds a bunch of stuff the the world map for other mods.
[[modding:maps]]
So you can just grab the Action prop as it is and not worry too much about the impl
{
"LogName": "Load map into assets",
"Action": "EditMap",
"Target": "Maps/{{ModId}}_FairyPlace2",
"AddWarps": [
"27 27 {{ModId}}_FairyPlace 41 0",
"28 27 {{ModId}}_FairyPlace 42 0",
"29 27 {{ModId}}_FairyPlace 43 0"
],
},
@sour sleet
I do have Remapping, yeah. I'll dig into that now.
Thanks, but I already have it like that other than the {{ModId}} part which I have now changed
Alright, so is it all good now?
Sadly, no
As mentioned your AddWarps is on Load which is illegal
You need to do it on a separate EditMap after Load
..i should update my testing version of stardew
ok, i will try doing that now
huh, I've never really designed a lived in map before, its an interesting challenge trying to figure out "How do these people live? What do they Value?"
I just got an ad for a product that uses AI to "write my book for me"...... ? How is that my book if AI writes it? Also, I am not writing a book so ad was maybe missing it's target audience.
What could cause an NPC to get stuck while going to a certain point in a schedule? For some reason he either gets stuck going into the bus or just entering the casino... just standing there... menacingly
blocked tile?
It's not but people will pretend it is u_u there's a person in the SVE discord server who "writes" the dialogue for their mods using AI ... it's a bit eugh
PIF rooms are shockingly easy.
No cause with his normal schedules he's able to move about just fine
hmmmm
It's only his marriage schedule(s?) that seem to be the issue (im only testing one right now because it was theo ne that was showing up with errors)
He can turn around and go back to bed just fine though which is even weirder
oh marriage schedules are cursed 
they truly are
you know what's not easy about pif? me forgetting stupid stupid things and having to reload the game every time
Does patch reload not work
it's my maps
Oh when i was doing my pif versions
gaahh it keeps spitting me out in front of my greenhouse, not the door
Okay, just released a mod, what is next on the agenda...
You need to yeet the Warp map prop and put in the pif warp tile props
Hm, "Dark Mode SDV"
i did do that
SVE character get stuck entering the bus too. I wonder if it is a trend.
he appears to get stuck when going ... anywhere? I guess - or at least to the last part of his schedules
one of them is to go to the beach and he's just
Oh gee. guess what. i was editing the wrong version of my map. how incredible.
how many times have i done this.
he is just shy
😭 he absolutely is not
he's just a little tired 👍
He is playing hide and seek 😆
he is trying to see what is outside the map

https://smapi.io/log/800a9e7c8eba4985a6eaa36768a00f2f Can anyone take a look at this for me? Still having trouble
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home, with 10 C# mods and 12 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
and you have the json?
I have a content.json and a locations.json, which do you need?
It looks like your map didn't load hm
hooray it works... now to forget this exists and not upload it for a week
yep its being a nightmare
Nice. I always use the same greenhouse layout. It is designed specifically for quality line sprinklers. I really need to change up my greenhouse and try something new.
yall im making a SDV dark mode mod, which one should i start with
like just turning down the colors so its nicer for the eyes
everything.
Again you need to remove AddWarp from Load
also do i need to rename them with "z_"?
They r not legal there
then it doesn't matter where u start if you're doing everything
the maps take up the most screentime
fair enough
Your EditMap also doesn't need the FromFile
you can also start with menus and test them against existing map recolors before you do ur own
?
Well... if anyone has any ideas what's going on with the marriage schedules (and why he just stops when going to them) I would appreciate the help (please ping me)
Cursed cursed cursed... that's all this mod is and has been is cursed
Where do i put AddWarps instead?
EditMap, please read the doc here about what it does
Ok thanks!
It's worked! Turns out I forgot to Load it in the locations.json
need a break me thinks, head is fried and i'm making stupid mistakes
One last thing tho, can warp coordinates be negatives like -1 for the warp to be north?
Yes
I have a question for the CP experts: do dynamic tokens resolve before changes like Load and Edit regardless of where they are in the actual content.json?
Should
E.g., if I have a load that uses a token and my dynamic tokens are at the bottom of the file, will the load have errors because it doesn't get the token?
No
I kind of suspected it might be that but I wanted to be sure, thanks! (Don't ask why my dynamic tokens are at the bottom of my file.)
likewise for config
why is there just 1 yellow pixel on the fall town map? (above lewis's house)
Go to jail
Oh my god you're right
i also found a MUCH easier way to be abled to change every color at once
i just checked my files to see
that's so funny
it probably gets blended into the grass, so nobody notices
ikr, CA probably forgot to remove it or something
does this look darker to you? like, easier on the eyes?
not really
hm
that looks like the bass' missing pixel before CA fixed it with a duplicate one
i dont actually notice any difference
(ssh I know the colors arent the same)
i thought doing another layer over the top of that then setting it to 20 opacity and using a 80 black color to fill that layer would do it
how about now
or does it just look foggy
i will see how it looks in game
ok it doesnt look as bad in game
I'm getting this syntax error that's claiming I have the game open (or at least that's the only other time I've seen this error). But I don't and I'm unsure how to fix this
Reboot your computer
I've noticed that using a command to set the date (e.g. world_setseason and world_setday) don't actually advance conversation topic counters or anything. Is there a better way to advance time quickly in order to test conversation topics running out?
... really? XD
as its that overnight stuff that decrements the counters
Goddamn it. I'm going to have to make like sleeping beauty for an entire year
Maybe set your counters smaller while you're testing?
you can just test your CTs with a very small duration just to test to make sure things happen right, and then you can be confident it will work the samew for a larger number
Unless there is a way to store values in dynamic tokens?
depends what you mean by store
i mean. you can technically store it
Trigger action -- store the date this happens
you wont be able to read it really, depending, sortakinda
you can send a mail flag that is just the current date and time and have 114 different dynamic token values
depending on the exact date of the mail flag
LOL
but you cannot set the dyanmic token value to that of the mail flag without knowing the mail flag
That is amazing
I think I'll stick with the CT for now. I'm already using somethign similar for an event, but the exact date doesn't matter so much
BETAS can let you write to and read from the player's mod data which might help with what you need. but if you can make it work with CTs/mail flags id just stick with them
Will keep it in mind. I'm adding something that is going to turn into its own utility mod by the time I'm through with it
So it'd be good if it was simple
(if you do keep it in mind and try to give the mod data thing a shot, i believe Esca's Modding Plugins also has a mod data reading CP token as well (BETAS doesnt do tokens))
There used to be an autosleep mod, where it would ask you how many days you wanted to sleep for and would do chain bed inputs until that many days had passed. Took a while but it did passage of days
well that is the bathouse tilesheets done... 272 more tilesheets to go.
It has not been updated. And my understanding is it is not open source.
is... there a reason why Qi's stuff would remotely affect other NPCs /alter their schedules/cause them to walk into the desert and stuff because... that is happening and I do not know why even
This mod will forever confuse me I don't even know why this would happen
NPC can walk to the desert? I did not even know that was an option?
Yeah I mean there's a warp from the bus to the desert and the desert to the bus
I just don't know why they would... be taking that route for any reason ever
When npcs break i know the used to just keep walking, that's all I can contribute atm.
...that feels easy enough to do 
Anyways, i need to go swimming
I thought you are retired?
I've got a C# mod with one content pack that I deploy on build using the <ContentPacks ... /> tag in my .csproj. I've updated the manifest version in both the C# mod and the CP mod to have version 1.1.0. However, on build, I get the error that the content pack "can't be loaded because its manifest.json has version '1.1.0' instead of the required '1.0.0''
(yes i saved the files)
this mod is going to take my soul i swear...
Look at your csproj
The content pack, use $Version
<ItemGroup>
<ContentPacks Include="[CP] FailedQuestsLoseFriendship" Version="$(Version)" />
</ItemGroup>
I've had it as $Version
I had this problem too! Adding <Version>1.1.0</Version> to my csproj fixed it.
Does it not automatically pull from the manifest?
Interesting. I don't see it listed in the mod build config docs. Is it a generic C# thing?
That does fix it for me tho thank u
I figured if it was pulling the content pack's manifest to get the version, it would also pull the main C# mod's manifest
I don't know. I just asked in here about it and was told to add it. I don't know how everybody else knew to do it without it being in the docs.
I feel as though it's not from the ModBuildConfig and it's just a C# .csproj property (that's my guess anyway)
I have zero formal C# training, I just learned it by pretending it was java and taking IDE suggestions 💀 and now i can write passable C#
I have no experience with any language that is even close to it so I'm basically learning a whole new foreign language.
I actually really like C# so I'm kinda happy it's what I get to write mods in
Lol I hate it so far but we'll see how I feel once I actually have the hang of it
Does mod config not work with i18n?
Mod configs definitely can be i18n
Yes, it does. If you're doing your config via CP here's how https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide/config.md#translations
I don't know how to do it with C# but it's possible
Do you have Version set in your csproj
J think it defaults
If you use ModManifestBuilder, it also supports content pack deployments in that it can sync your mod versions to it
(And every C# modder should use ModManifestBuilder)
Instead of having to edit every single tilesheet in the game to make a dark mode, can I just have a layer that is always on the screen at a certian ocpacity that makes everything just slightly darker?
Ah excellent thanks! I was going to mention that I've started using that but I didn't know if it handled content packs too
If you use it, you don't even need to specify the version at all:
<ItemGroup>
<ContentPacks Include="[CP] Toolbar Icons" />
</ItemGroup>
It's enough to simply include the content pack, and it'll get the version from your <PropertyGroup><Version>
@vernal crestThanks. I miscommunicated. I want to change my item descriptions based on whether the characters are female or male.
That's going to require you to edit every single map instead and map edits are worse for performance I believe. I don't know the answer as to whether it would actually work though. You could always try it.
You can do that, but you probably shouldn't. That would be a terrible way to accomplish darker tiles.
yeah i really dont want to have to edit 270 tilesheets...
so i wont, i have another mod to work on anyway
You reduce the color information by overlaying a tinted darker tile, so everything would probably become slightly washed out.
Dynamic tokens are what you want there, I think. You could change the i18n key being used. Although if you mean NPC gender rather than player, I'm not sure if there's a CP token to check that.
I can do item images which I've done before. But trying to copy it into i18n isn't working currently.
How do people know to even use <PropertyGroup><Version>? Did Pathos tell one of you and it's been passed around ever since? Is it something you know about if you have a certain existing knowledge of C#?
I currently have the player manually selecting genders in the mod config
That's only really used if you have ModManifestBuilder in your project. And if you have that, then you can follow their documentation.
https://github.com/KhloeLeclair/Stardew-ModManifestBuilder?tab=readme-ov-file#available-properties
How does the mines maps work? Like can I add more custom levels with CP?
I can't find documentation on it
Please understand every time I've touched a csproj j look up the documentation anew
It's needed to make your bundled content pack version match up if you're using the bundling from mod build config like barley shows here #making-mods-general message
Only the mod build config docs don't mention that it's needed.
I use the same properties in every project, so when I create a new one I just copy+pasta it
(Real talk: I've strongly constrained the scope of the mods I support, but a handful of my mods exist and work on 1.6)
I'm "retired" in that the big complex interesting mods are dead
Do you not have a centralized import
I would do it by setting a dynamic config that changes value based on the config value that the player has chosen and then use that dynamic token in the i18n token to determine which i18n line gets chosen. I can make an example if my description doesn't make sense.
No
The Content Pack deployment with the version automatically matching is a feature provided by ModManifestBuilder, not SMAPI ModBuildConfig. ModBuildConfig will deploy content packs with the version specified, but it does not look at your property group version.
Hence why if you're using that feature, you need to refer to its documentation
And I can't find a framework for it... sigh
I'm not talking about the content pack deployment with automatic manifest though. I'm talking about the content pack bundling from modbuildconfig where you have to manually create your content pack manifest BUT modbuildconfig will try to validate it and if you don't have <Version> in your csproj it will fail once you move past version 1.0.0.
I have a common.targets for things that are common to every project, and I keep the unique things within each project's respective csproj.
I think I will take a break from modding to just play.
Yeah I'm not talking about that either. All I'm saying is that you don't have to include the version if you're using ModManifestBuilder which overrides that.
Tbh I also copy from project to project
<Version> is one of the ones that is pretty common on c# projects
I haven't said anything about content pack deployment without using ModManifestBuilder as my original post was suggesting that everyone should use ModManifestBuilder since it has certain features that make deploying your C# projects and bundle content packs easier.
This is what I'm currently have. {
"Changes": [
{
"Action": "Load",
"Target": "Mods/{{ModId}}/i18n",
"FromFile": "Data/assets/Underwear/default.json"
}, //Objects
{
"Action": "EditData",
"Target": "i18n",
"Entries": {
"Item.AbigailP.Name": "Abigail's item",
"Item.Abigail.Description": "Purple with a skull on it.",
"When": {
"Abigail": "Female"
}
}
}
]
}
That's not how you load i18n files
i18n entries are just available to your mod as tokens, automatically
Anywhere you want to refer to an i18n token, you use {{i18n: Token-Key}}

You can also use tokens in your i18n call
Okay for some reason SpaceCore is causing npcs to go into the bus and then to the desert... why I have no idea
not very cash money of you spacecore
It’s probably got to do with how the network of locations is constructed
If you have loops in the network, bad things happen
I thought SpaceCore isn't really meant to have side-effects unless a content pack uses it to change things
Wait let me correct that - not having space core is making them go into the bus actually
And i think spacecore may try to fix those bad things
Perhaps I am too tired and sick to be editing this mod right now
Yeah that sounds more right from what I recall hearing about this function
i've asked about this before, though noone knew any way to prevent it. if this comes up, close VS, open task manager, and make sure there aren't any VS tasks still running afterwards, then reopen your solution and rebuild.
really the fix should simply be closing all VS windows and reopening, but VS sometimes just keeps going after you've closed it, hence task manager
Does it bother anyone else that the roof of the general store and Dr office don't line up with the rest of the building. Because it kind of physically hurts me. I know it is the vanilla tile sheet, that makes it even worse for some reason.
omg now that youve pointed it out i cant unsee it
in the content json under format, what do i put there i know it should be a number of some sort but idk what it correlates with or where to find the correct number if there is one
ty ty
The answer is basically 2.5.0 until it updates agian.
The older # work but you should not use them as they are obsolete.
I know right. Why would CA do that when making the sheet.
:(
Once you've already decided that a tile sheet is going to be irregular, there's no sense in worrying about that.
Usually more effort goes into packing (and is better spent on packing, to reduce load times) than making it look pretty in an editor.
I've wondered if he used a tilesheet packer
Cursors probably doesn't for historical reasons but it seems plausible for the maps.
SpaceCore swaps out the macro NPC Pathfinder to be good and not shit.
Theres already NPCWarp tiles connecting busstop to desert for Emily and Sandy
What route were you expecting npcs to take?
Tested my map on several save files since adding paths (spawnable trees, bushes and hardwood stumps) It looks different depending on which save I load it on. Some will have no trees or anything and some saves will have everything fully grown. Is this an error or how it’s supposed to be?
all of that gets stored in the save file, so whatever you have in your map file is mostly a suggestion for the first time its ever used
theres a reason major mod updates recommend using mods like Reset terrain feature to get the intended bushes, etc
Ahh ok, glad to hear it’s working as it should. But what’s confusing me is that even a save that’s not had my map on yet is missing all the trees etc
some of the logic iirc runs overnight not day started, so sleeping would make it show up I think
Ooo that would make sense
creating a new save does a simulated overnight sleep as it initially creates the save on spring 0, and sleeps to become spring 1
Going to do some more testing w that knowledge 
Well i expected them to not turn around and go back into the bus and go to the casino... and then get stuck at the casino enterance
the npcs were Claire and Martin since they come out of the bus and then just turn around? its really weird (it happens with spacecore too actually just sometimes it doesn't... i really dont know the pattern there)
i also just cant get him to actualy go to the end destination of his marriage schedules so that's also fun
ill figure it out eventually probably
spacecore will ensure they take the minimum amount of map warps, so adding npcwarps from their warp rooms to the desert bus tile would do that I think?
Do you have a schedule viewer mod installed to see where they are trying (supose) to go.
did anyone (other than me) actually make a schedule viewer mod in the end?
I use the Schedule Viewer mod by BinaryLip, whoever that is
I didn't think I released mine (or updated it for 1.6)
GIMA had one, but it's also not updated for 1.6.
i do have a schedule viewer mod... idk which one is doing it but it shows me that claire is supposed to be going to joja and martin is supposed to be going to.. i think the library
ah its just a text view of it
let me launch it again
Did you add a npc warp for Mr Qi that would be quicker for them to use. So they are going to the casino to use it to get their destination?
i added no warps at all for that
I know sve added bus warps for claires warp room thing
yeah they both start in their warp rooms... of course the time im going to take a picuture they dont actually do it but their schedules indicate where they're supposed to go at least
and claires
does mr qi get stuck like, right next to the edge of the bus stop map?
no he gets stuck in the casino at the door
O
which is weird because with his non marriage schedules he can move around just fine
He can't get in...
kinda like with this one as well
let me take a brief look as to how badly ScheduleDebugger needs updating for 1.6 compat
the only one that works is his forest schedule which... i dont really know why
theres not much different with that one than with his other schedules
Ur right lily this is driving me insane too
if those mods just read the schedule as written they wont detect void warps
hell the beach schedule is far simpler than the forest one (at least in terms of maps he needs to cross to get there) so idk why he gets stuck at the beach but not in the forest
though now I think about it, mine wont detect void warps either, but you could combine it with DataLayers to see the warps to see if it would run into a void warp
the TL;DR of warp issues, is that if an NPC walks into a warp that their schedule didn't intend them to take, they will become very confused and walk weirdly where they got warped to
which is a separate problem to the circular loop problem in macro pathfinding where the pathfinder gives them a shit route
I mean that would (kind of) make sense for why they go back into the bus and end up there ... I guess (though I feel like they should just get stuck at the bus instead of going into the casino for whatever reason and getting stuck at the door, but truly what do I know)
I'm not really sure why they turn around and go into the bus though, because it's not like they step out and are warped away they actually turn around and go into it
Yet another issue from this mod, very on brand, very Qi
@teal bridge Data Layers 1.20.0 is (finally) released with the new API. Thanks for the PR!
Is furnace can be edited on cp?
furnace is a machine yes
how to target the furnace? Is it using targetfield or i just enter it on the entries?
Use targetfield, since you don't want to overwrite the original
What do you hope to achieve?
i want to make you can put wood into furnace to make coal
like 20 wood for 1 coal, i have made on PFM but still dont really understand how the CP works
Oh but you can do that in vanilla with the charcoal klin
Look at Data/Machines and basically copy the rule
where to find that
Have you unpacked your game files?
i am not, usually i just experimenting what to do when error occurs on the mod
!unpack It will be much easier if you can see what the game content looks like. If you unpack your content, you will be able to find the Data/Machines file chu mentioned.
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!
is it possible on mobile?
It looks like you rewrote most of it but hey, no problem! (And thanks for getting it merged)
a lot of things r more annoying on mobile but if you can access the smapi console you could do patch export Data/Machines
anyone remember where this is used
i think its animated
It definitely is, that is so familiar for some reason. I'm not sure exactly where but its used as a selection denotation. The animated cursor hovers over the "thing" selected.
Isn't that in the dialogue boxes when there's more text without a defined break in between?
oh huh
You got it Si
Here
Huh
The little things in Stardew 
that bouncy X must be there too ig
The x is for when there is a coded break in the dialogue
'#$b#' versus the string just being too long for the box lol
Its always right after an update that people get the urge to comment recommendations and requests... I enjoy adding cool ideas but I wish I could be given them before I push an update to something 
the creep is eternal 
Is there an alternative to Reset Terrain? It's not updated for 1.6
Reset Terrain Features (https://smapi.io/mods/#Reset_Terrain_Features) is a mod that lets you reset, clear, or generate everything that spawns on a map using an in-game menu. That's especially useful when changing maps mid-save, as the debris will otherwise use the old layout (causing things like trees in the water or bushes blocking exits).
I'm currently testing my new map and it's not spawning trees and bushes on some saves and is on others
use unofficial yea https://github.com/Lake1059/ResetTerrainFeatures_NET6/releases
im tempted to make an alternative cus this unofficial did not do keybindlist correctly
It might not be your issue, but if the location was loaded prior to the path tiles for trees and bushes being added then it wont necessarily work properly. If they load on a new save then thats good
Please do 
what feature would i even add tho
unless i just
unofficial the unofficial 
that seems silly
and i have hard time imagining more than 2.5 ppl being bothered by this
Im the .5, the left side of my body is quite annoyed.
that requires me coming up with actual feature 
yep they appear on a brand new save so reset terrain would fix that on an existing save right?
it should yeah!
idk how hard it'd be and feel free to ignore but I'd love a feature where you can choose to just remove all trees/bushes that are standing on tiles with layers other than back (so like if you add a mod that adds a house in the forest, it'll just remove stuff that's standing where the house tiles are)
awesome thanks pal
this is a feature in BETAS actually
the mod author directed removal is a trigger action you can use
but if it is for user directed version of mod
i suppose i'd let people select
i have 3many commitments rn hence why i just tell ppl these ideas in hopes that they do it 
it says RTF is not compatible
I'm currently using this one, but i get a smapi error https://github.com/Lake1059/ResetTerrainFeatures_NET6/releases
LOL
oh
okay, what's the SMAPI error, and are you on the latest SMAPI?
(trace will give you more than "not compatible" usually)
Yep im on the latest smapi and the error is "These mods could not be added to your game.
[SMAPI] - Reset Terrain Features 1.0.2 because it's no longer compatible."
The one linked should have had 1.0.3, not 1.0.2
You might have accidentally downloaded the first one on the list which is for 1.6.8
(sorry Aba, I know this should probably move to #1272025932932055121 )
Meh, I think a quick convo about finding the right mod for testing her own mod is fine here
But yeah, make sure you've grabbed the ZIP from November 4th
Hey, is it possible to blacklist specific map tiles from receiving overlays? I noticed this in WBPT and can't figure out a good way to keep it from happening. Any advice?
what do you mean by overlays?
In the _outdoorsTileSheet there is a 16x16 square of the carpenter front door that is normally used during night time. In vanilla it's lit up, but WBPT has no window, so it's just solid wood.
it also doesnt help i dont know the abbreviation WBPT or what im looking at outside of a house and a door.
Way Back Pelican Town
ah, so its generating a light when you dont want it to because its coded for that tile to have a light source on it?
(where is the light, am i blind)
No, I just don't want the door to be backwards. Doorknob is on the left in the attach picture, when the original sprite has it on the right. The reason for it being on the left in the attached pic is because that 16x16 tile is also applied to Maru's shed/room thing. Original sprite for the carpenter front door has doorknob on the left.
Sorry, for wall of text. And probably bad explanation. It's late and I'm frustrated; brain is not braining correctly. D:
so the door knob is on the wrong side? is that the problem? (I'm tired too, and my brain has been on the fritz all day)
Yes, the doorknob is on the wrong side. If all else fails, I'll just go in and edit the sprites some more. I've been working on this project all week and spent the last few hours just respriting and adjusting colors for this one building. D:
Yeah my solution would just be patch that square on the map with like a CP edit, or use multiple layers to make it look like what you want, if you're reusing the door tile elsewhere. Aka just have the wood tile as buildings and the doorknob on buildings1 as a layer over it or something, as base stardew can do taht now.
what else, flat 25% white? single colour outline?
Wiggly
well the current version has a long divider
it is also different orientation ofc, so i was thinking maybe horizontal divider (unclear how to make that work
imo vertical is more sensible since scrolling can happen line-by-line rather than bit-by-bit without being jarring
yea but the reading order is this
which is a bit strange once rules that r actually in the middle get chopped off by scrolling
oh machine rules have ordered precedence don't they
can you make it diagonal instead
if its vertical u just read L->R U->D
the rules shall be steps on the spiral staircase leading to where i left my car keys
Just make it really thin so it has to have one rule per row 
i'd die
i run Cornucopia WAG Baubles and some random other stuff this save
this mod is honestly less for me to turn machines off and more for me to read the rules at all 
hmm, if I build my stardew mod development helper mod, I have no idea what it should be called, in part as I can't find a good word beginning with S to describe mod
really it feels like the only unambiguous way of presenting a wrapped ordered list is by numbering all the elements
sumptuous is quite a good word beginning with s
salacious is good too
how does that make sense, (i havnt had any other versions of the mod btw)
im not too worried that the avg user doesn't get it bc there is a easier mode (just dont put this item in this machine)
ooooh salubrious, definitely
What part doesn't make sense to you?
Sphinx
Well it says the mod has 20 downloads, but the file has 43 downloads and I havnt had any other versions, so it should say either 20 on each or 43 on each
or am i being dense
My guess is that the top numbers don't necessarily update immediately
oh, alright
SinZational Simplified Salacious Scheme?
sinz if you run out of S are u gonna let yourself have a Z sometimes
I started a naming scheme and I'm going to keep it
why dont the last 4 have space
they predate me doing spaces
what r these actually
'support' doing some heavy lifting
doing some sporadic shifts
SeleneSupport.Support
if you ask me i dont think Shared Spaces should count
Sinzational Stardew Software Solutions is my vote but "my new helper mod" doesn't tell me a single thing about what the mod does
SeleneSupport was a lua mod loader, I also had SeleneShowcase for an example mod but I cant find it anymore
SnakeSupport was a python mod loader, also had Snake Showcase as well.
SeleneSupport.Support was a weird thing where I had to hide the ModEntry class from SMAPI, and smapi didn't check dependencies
SeleneSupport.Sneak
SixSupport was an experimental mod that would impersonate and pretend to be dead mods and implement their apis with facades to vanilla mechanisms
SusSupport 
Sporadic Shifts is my personal misc mod, currently all it does is remove the character limit from the farmname textbox in character customization
Science Showcase is just an example mod, though it currently includes code to fix a 1.6 alpha bug that got incorporated into vanilla afterwards.
Scene Setup is what Atra released as Event Tester
Scrutinizing Spousal Speech was a logging mod that would log when marriage spouse dialogue failed to load. 1.6.9 or 1.6.15 has it now so its dead.
Several Spouse Spots, Shared Spaces, and Spending Services are already released on Nexus
Speedy Solutions is my WIP mod for performance optimizations
getting a feeling of Sinzational Sibilant Synonyms Skirting Sensible Style Standards
it started as a metaphorical middle finger to everyone loving to initialize mod names rather than refer to the mod name, so I would have all my mods just be SSS or SSSS
but if I do make the mod helper mod, it would have the LSP fun stuff to go with companion vscode extension (and maybe visual studio extension if the vscode one goes well), and I'll throw the schedule debugger in there as well
Smapi Smod Shelper then
so I'll have three main meta mods, the ModAuthor mod, ModUser mod and Profiler
Stardew Syntactic Server
it will have the LSP stuff for intellisense on content patcher packs, along with schedule debugger to start with
pretty much a kitchen sink mod for stuff I make that only mod authors should ever download
might also turn off some of the performance optimizations that the user facing performance mod adds
is it possible to do a mapedit for the mines since the mines arnt an actual location? (i dont think)
map edits sure, you never map edited a location anyway
its jank tho
that is what i was looking for, ty!
oh, i just map editied the map itself?
I love this. I always use Noclip to cheat my way through the walls
each mine floor is technically a location, they are just dynamically generated on the fly, and get cleaned up when no one is that deep anymore
oh, alright, ty!
but the map edit would apply to the layout rather than 57 or whatever
ok i get what i need to do now, ty!
can i do it. i have ideas
and only a little bit too many commitments
i can shove one aside no problem (some problem)
yea u should do it
how is it possible for the foreach line to throw a NullReferenceException
```cs
if ((CraftingRecipe.cookingRecipes ?? DataLoader.CookingRecipes(Game1.content)) is Dictionary<string, string> data)
{
foreach ((string key, string value) in data)
{ ... }
}
does it make a difference if u dont unbox
what's the actual exception/stack trace
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Pro, with 134 C# mods and 553 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Home, with 412 C# mods and 1038 content packs.
is your repo not up to date
it seems to throw here
i never trust line numbers in mods
i don't know why, but they're never right
Wanna know if this is possible before I attempt, I want to have a config toggle for SVE support. This would change the recipe for the initial mead from regular honey+fruit to Jar of Honey from SVE bears. Not sure how to tackle this quite yet, just want to know if this is a common method
Can I have a config swap entries of a machine?
you can make your patches only apply depending on a config option
but you cannot have a config option automatically assume a value based on a mod existing
Gotcha so configs are more of a true/false exclusive toggle
no
configs can be different values, they are not binary
whether a patch applies is a binary on/off but you can have many different patches based on the many possible values you can put on a config option
I see
im just saying that a config option cannot have When conditions and so you cannot check for the existence of SVE in the config option itself to conditionally create the config option
the existence of the config option is determined from the getgo and does not change
and by "determined" i mean "its there if you write it, its not if you dont"
What does LogName do?
are you against simply using the SVE recipe if SVE is on?
Thats what I want
Names the patch in your log?
Oh... Thanks 😅
then don't do a config, it'd just be editdata with HasMod sve
Shows whatever you wrote when CP describes the patch (like in errors or warnings) instead of the patch number.
Especially useful if you patch the same asset multiple times because then you can tell which one CP is referring to in your log.
If i made a patch with log name "i hate this patch" if something in it borks thats what the log will say is having trouble
Rather than having to count them and hope you've got the right one.
master is behind, it's on develop
ohhhh, ty!
what the hell is this indentation
are you auditing blueberry code
in some regards one could say blueberry requested it and simply did not specify the limits of the audit
maybe it throws an NRE bc of the bad indentation
i'm just trying to read it, and that bit is making it harder to do so
what if it's value that's null for some recipe, for whatever reason
that would suck
indentation like that usually comes from people submitting PRs with spaces while i use tabs
tabs appear about 2x wider
the only things that could even BE null in this method are value and Game1.content - unless ArgUtility.Get can also return null
you are the sole contributor to this file
i assume Game1.content isn't null
ah yup
which would mean the value is invalid / you don't handle missing parts of it
so ..?```cs
if ((CraftingRecipe.cookingRecipes ?? DataLoader.CookingRecipes(Game1.content)) is Dictionary<string, string> data)
{
foreach (string key in data.Keys)
{
string[] requirements = data.TryGetValue(key, out string value) && value is not null
? ArgUtility.Get(value.Split('/'), 3).Split(' ')
: [];
// . . .
you can also just do if (!data.TryGetValue(key, out string value)) continue;
if value is "a/b", this will still throw
i don't know the format of this thing, but i assume some mod added some entry with only 2 delimited values
(pretend the index was there though. idk recipe data i was only formatting the tryget)
well the error was thrown on the foreach line itself so not sure what to make of that
you can't trust line numbers
it's possible it's just mod-added malformed data though, that's like 1500 content packs between these two mods with god knows how many items
you should probably just switch to ArgUtility.TryGet instead of ArgUtility.Get
and just pass in the entire value as an array split by /
(I have no idea if this is relevant or not but both of those logs also have json assets packs)
arguably for recipes only ingredients (0) and yield (2) is necessary
everything else has defaults
if the recipes are truly malformed the game would have exploded before the mod did I think
foreach ((string key, string value) in data) {
if (value is null || !ArgUtility.TryGet(value.Split('/'), 3, out string thirdField, out string error, allowBlank: false) continue;
if (thirdField.Split(' ').Length > 1 [...]
ig that would actually be the 4th field. w/e
too used to GSQs and actions where the 0th is the query itself so i ignore it
maybe would wanna add allowBlank: false to the TryGet parameters idk
Gotta be honest with you man, this naming scheme makes it hard to tell your mods apart. It's not that the alliteration isn't nice, but they all sort of bleed together.
somewhat of a weird name, but it is the display name of the patch. Named that way because the only time ContentPatcher will ever really use it is for logging purposes (but stuff like Profiler via content packs will also see it)
when the LogName isn't specified the name will default to <Action> <Target> #<Sequence number of how many of this type is in this file> ie EditImage Maps/townInterior #4.
I'll do one word mod names or the alliterations, no inbetween.
I'm not having my mods referred to as an initialism
hm.
you have an SSS series
SSSS if you will
you can't escape the initialism
with profiler being the exception proving the rule
hi selph
not too late to change it to SinZational Software Speedometer
hi button
cant type today ugh
quick question about custom farms, is the debris density that the farm starts with preset with the farm?
i got a custom farm layout today and it has a really heavy amount of debris, and i was wondering if that was a mod author change or what
if this is true, after the inital spawning of debris does it propogate randomly?
yeah, you can open the map in tiled to check for yourself
and yes, they will then spread on their own
iirc its something along the lines of running the debris generation 5 times or something
so debris density isnt like a setting you can modify or something
i was just curious
i need to get tiled setup becuse the mod has an overworld map art, but it doesnt work in 1.6
LocationData data = this.GetData();
int numberOfNewWeeds = Game1.random.Next(data?.MinDailyWeeds ?? 1, (data?.MaxDailyWeeds ?? 5) + 1);
if (Game1.dayOfMonth == 1 && Game1.IsSpring)
{
numberOfNewWeeds *= data?.FirstDayWeedMultiplier ?? 15;
}
anyone made a maximum weeds map where you have to constantly fight the weedses to reclaim farmland yet
and I think there might be some stuff in the map for literal spring0/1 year1 on top of what will be generated on top
lol i was half wondering if something like this was possible
i swear i saw that at some point
i went through all the mod files and found nothing including this so im just going to assume its default
theres just a crazy amount of trees outside on day 1 with this farm
nice
default trees are also on paths I think
have you opened the map in tiled?
dont have tiled installed, ill get it installed rn
you technically dont need tiled to view the map (if it's tmx), but it'll probably look incomprehensible
what in tiled controls the value for SpawnDebrisOnNewMonth
i cant find anything in map properties
The positions/areas would be determined by your Paths later, if that's what you mean?
we were discussing about the FirstDayWeedMultiplier and i got the idea it was in tiled
The value is just T for the SpawnDebrisOnNewMonth Map Property according to the wiki, it's likely one of those "if property exists, it's true"
(looks like skipWeedGrowth will do the opposite, as well, and block weeds from ever spawning)
this is interesting
is the FirstDayWeedMultiplier in tiled?
No mention of it on the wiki
i guess not, i doubt anything was changed for the record but this is just an exercise for me at this point to learn a bit more about stardew modding
It's in location data
FirstDayWeedMultiplier (Optional) On the first day of each year, a multiplier to apply to the number of daily weeds spawned. Default 15.
There's also MaxDailyWeeds if you want to go crazy with it
You'd just need to edit the Data/Locations entry for your Farm to set those
The trees would be Paths or the trees map property though, not anything to do with debris or weeds.
why is it so difficult too get a shop to look good, ive tried a building, crack in the wall, hole in the wall, nothing works
sorry i was just curious, ive done modding for other games and was curious about variables like that in stardew could be messed with
i feel this
Nothing to apologise for! You just mentioned the trees and I didn't want you to go trying to adjust those with the weeds/debris stuff too and get frustrated needlessly.
not like i would mind some additional wood early on lol
Lots of things in Stardew can be messed with. If you know C#, pretty much anything can be lol
Starting to tweak stuff in your own game is the gateway drug of modding lol
C++ is a harder version of C#, you should be good
If you're already familiar with C++ then you'd be ahead of me already probably
I am looking for a dark building that would fit in with the mines, like something that would look like it should be there in the mines, Anyone have any suggestions?
How do I access fields of objects in C# added through CP?
For Example, Cornucopia adds custom Bushes and I want to access AgeToProduce and DayToBeginProducing
read or edit
For a new building, I would suggest maybe a ruin of some sort, maybe an old dwarven castle wall or similar structure?
I was more thinking of a vanilla building that I can use parts of for the building
I am testing with lava dungeon set pieces and I think I may be abled to do something to make it look... decent.
They tend to have darker floor textures for the lava dungeon, at least
yeah
if you just want to read the values then Game1.content.Load<Dictionary<string, ICustomBush>>("furyx639.CustomBush/Data") where ICustomBush is a copy of https://github.com/LeFauxMatt/FauxCore/blob/3971d89fd4ae3057bc5e560eb4c5178d02e37c9b/FauxCommon/Integrations/CustomBush/ICustomBushApi.cs#L126-L164
if you want to edit the values, then you want to follow https://stardewvalleywiki.com/Modding:Modder_Guide/APIs/Content#Edit_a_game_asset with furyx639.CustomBush/Data being the asset name and the type being Dictionary<string, ICustomBush>
for reading you could also just use the CustomBush api's directly
Yea, just figured that it is using CustomBush. Will just use that. Thanks
Yeah, I think I will try the slime hutch.
Unless...
I go a bit more simple.
For my understanding:
Can I just check Bush.modData for the custom fields instead of using the API CustomBush provides?
no idea, but modData is a generic vanilla container to store stuff for save/load serialization
hey does anyone know if there's an api for the wiki? I've not come across anything so I'm guessing it's a big fat no but I'm wondering if anyone knows of anything 🙂
wdym the api for the wiki?
outside of any batteries included apis as part of MediaWiki, doubt it?
ok i think that coud look good if i removed the background
so I can get the recipes etc (sorry if I sound like a complete idiot)
essentially I could scrape it but that will take time
Recipes?
if you want vanilla data, just get it from the game files?
You can look up the recipes on the wiki, everyone else has to do it. Or just copy and paste the recipes from the data file.
ok thank you 🙂 for context i'm looking to make a web app for a portfolio with recipe tracking. (I know there's something similar) I'm pretty fresh off a web dev bootcamp, we learned more about api and scraping etc so i wasn't aware there was another option! Thank you for the pointers 😄
Oh, sorry if I came off harsh. Good luck!
oh not at all!! I appreciate it 😄
What is the staircase item ID? I cant find it in the great ID spreadsheet or the 1.6 item ID's.
found it
its a big craftable
(Same as Lewis's shorts)
does anyone know where the game stores the odds for fishing out garbage
it's not data/fish.json )=
its the absence of fishing the other stuff
but also what you want is in Data/Locations
ty!!!!
oh so the answer to 'how hard would it be to change the odds of fishing out garbage' is 'fucking very'
ty
depending if you want more or less
less
i guess i could inflate the odds for something else??? but the thing is i want this to apply to all locations where like. anything other than garbage can be caught at all, including modded
you can add something that has a 100% chance prior to trash, but you are just making more different trash at that point
the trash is in the "Default" location in Data/Locations
the "Trash" table is
"(O)167",
"(O)168",
"(O)169",
"(O)170",
"(O)171",
"(O)172"
well my headache is too bad to dig thru this file right now but i do have a plan now :D tysm!!!
algae doesn't count, its much more of a fish, but driftwood is in that list
if you somehow leak any odds and the fish code doesn't actually spit out an item, the actual trash item will happen as an emergency fallback
but in normal conditions Data/Locations should always pick a winner
ty
I have a question about stardew mods. I see thet some stardew valley mods have in their folders a .dll file. Why do some mods need this dll file?
those are C# mods
Oh, thank you!
mods generally have to be either C# or depend on a C# mod
e.g. content patcher mods dependent on content patcher
Hey I really need help, I‘m trying to add a few big craftables to the mod Hardware store (for my own use only) but it didn’t work correctly
I’m trying to add the keg and the preserves jar to it, but it makes an amerald stone from the ID of the keg
This is keg's item id: [(BC)12]
It's a big craftable so it should have BC in front of the id
(i hope i'm right)
is this STF?
Yes it’s STF
gonna have to take it up with STF to see if it even supports other item types. i'm guessing no since it's an array of ints
The Preserves Jar works fine but when I add the (BC) the shop didn’t open
yea cus it is probably looking for an array of ints
could you try having a separate entry for keg?
(BC) and such predate STF, which is deprecated, so it probably doesn't know or parse those correctly
the docs are here, if it helps
https://github.com/ChroniclerCherry/stardew-valley-mods/blob/develop/ShopTileFramework/docs/README.md
The separate entry for the keg didn’t work
Do you still get an emerald
Yes
you could try ItemNames instead of ItemIDs, but kegs might just be bugged with STF in that case
(and use "Keg")
Mystery
I suppose you can just editedata the hardware store in content patcher
If STF makes a real Data/Shops entry in the back
yeah, if it's just converting things to 1.6 data internally, that should do it
Thanks a lot it wirkt with the item names
Well this is puzzling! Somehow, when clicking both right and left mouse buttons at the same time, I made Penny jump!
the long awaited sequel to spenny
jenny
Hi, i try to change a location from the mod Ridgeside Village whitout adding it as a requirement but it gives me this error:[Content Patcher] Error preloading content pack '(CP) StardewSuburbs'. Technical details:
Newtonsoft.Json.JsonReaderException: Can't parse JSON file at D:\test\Mods\StardewSuburbs(CP) StardewSuburbs\content.json. This doesn't seem to be valid JSON.
Technical details: After parsing a value an unexpected character was encountered: ". Path 'Changes[6].ToArea', line 91, position 12.
at StardewModdingAPI.Toolkit.Serialization.JsonHelper.ReadJsonFileIfExists[TModel](String fullPath, TModel& result) in /home/pathoschild/git/SMAPI/src/SMAPI.Toolkit/Serialization/JsonHelper.cs:line 86
at StardewModdingAPI.Framework.ContentPack.ReadJsonFile[TModel](String path) in /home/pathoschild/git/SMAPI/src/SMAPI/Framework/ContentPack.cs:line 76
at ContentPatcher.Framework.RawContentPack.TryReloadContent(String& error) in E:\source_Stardew\Mods.Pathoschild\ContentPatcher\Framework\RawContentPack.cs:line 80
at ContentPatcher.ModEntry.GetContentPacks()+MoveNext() in E:\source_Stardew\Mods.Pathoschild\ContentPatcher\ModEntry.cs:line 443
Also here is the part of the content.json with the error:
86 {
87 "Action": "EditMap",
88 "Target": "Maps/StardewSuburbs_ridgeside_path",
89 "FromFile": "assets/ridgeside_path_patch.tbin",
90 "ToArea": { "X": 6, "Y": -1, "Width": 5, "Height": 3 }
91 "When": {
93 "HasMod |contains=Rafseazz.RSVCP": true
94 }
95 },
you have a syntax error at the end of line 90
and please use smapi.io/json and smapi.io/log to share logs/code
I'm sorry
(i'm skeptical that "Y": -1 will work, but i've never tried it)
Thanks for your help
Ridgeside shouldn't have any negative coords on the map, are you trying to patch in something beyond its bounds?
Yes, i solvet the problem and now i know. Thank you tho
Negative Coordinates: The Undiscovered Country
FYI: Nino Kito played your Friendable Mr Qi mod on Twitch. So it will be on YouTube soon
oh my God
😭
I hate that /hj
I don't wanna be perceived but it's also great but also oh that makes me feel woozy
I watched it on Twitch, it was good 👍
Nino also played my mod Haley's Pregnancy, before the 1.0.0 update. I want him to play the update with the new events!
👁️
I need to meet him...
Oh yeah he loved that didn't he? It looked like a good mod

I loved the reactions of the viewers, going from "this mod is going to be weird and freaky 🥶" to "wait, this is kinda cute..." to "awwwww" to "this is so sweet! I'm crying!"
God I don't wanna know what people think 😭
Don't worry about it! It was good 😊
Would anyone know where I can find a tutorial on how to make a romanceable characters?
Hi loves! Whats the C# command to set an NPC sprite frame?
Ciao, I'm adding support for SVE in my mod, which can be downloaded in additional files.
{
"Action": "Include",
"FromFile": "assets/Events/eventsSVE.json",
"When": {
"HasMod |contains=FlashShifter.StardewValleyExpandedCP" : true
}
},```
Is it perhaps possible to add something like "If the fromFile doesn't find the file, add another one and put a warn in SMAPI?" without breaking the NPC
So, you're interested in creating a new character for Stardew? Good news: with version 1.6, creating a character is easier and allows for more flexibility than ever. However, NPCs are one of the more complicated things to create for Stardew, as they have a LOT of moving parts. This guide aims to provide...
It doesn't have to be an optional file, the json/events/things won't load with the when condition
Unless they have the mod
I did it with mine with some events /event compatibility
yeah but, let's say that they have SVE, but they didn't download my additional files for compatibility with SVE, so even tho the WHEN will come out true, it won't find the file
🤔
But why make the file optional/additional?
You can just include it/the edits in your main files alongside the when condition
My power is out right now so I can't send the code snippet from mine but I can take a very poor picture with my phone 
cause i wanna make my life miserable, but i mean you kinda got a point 
thanks

Also you can still include the file in your main mod, it just won't load unless they have SVE as well
About to start making my oc mod aa
good luck with it 
Tysm!
(Note the tutorial doesn't currently go into anything about marriage-specific stuff, so I'd reference the NPC template linked at the bottom of the tutorial, which does, I believe)
Thanks both
that's.. good i hope he enjoyed it