#making-mods-general
1 messages · Page 78 of 1
It doesn't actually mention validation in the plugin either but someone on StackExchange says it gives an error if the json is wrong
Making a mod and most of my custom NPC's dialogue is fine. However this morning they just say "..." and I get this error, I'm not sure where to look
Are you trying to make NPCs face a certain way in an event or a schedule?
can anyone guide me on what i would need to create my own internal farmhouse map layout ?
So I just realized I have specific day marriage dialogue for this day (of the flower dance), but I still get this error even if I comment out the line? very confused rn. Somewhere I read that you get this error if you have blank strings for keys or lines but I can't find any in my code.
No like if they're in their bed they face to the side or when they're in the town in a certain spot they face a certain direction ... Basically I can only get him to face upward I can't get him to face to the side or down
So it only happens sometimes? Can you post the entry from your json?
You could try running the file through the json validator on the SMAPI site and see if it picks up any errors in the formatting (missing commas etc)
Thanks I did try that and there were no errors
It happens pretty much all the time while I'm trying to get him to work.. I'm going by the wiki that tells you how to create them and it just tells me the numbers that tells you the direction they're supposed to be facing and they're not working so I thought something might have changed I'll figure it out thanks anyway..
There was this old post on the topic, could see if it works for you
#making-mods-general message
OK, I'll check that, thank you
SinZ made a mod that checks what marriage dialogue key is being checked for by the game. I'll try to find it for you.
Sometimes you have to sleep a day or two after changing a char schedule for it to work, could be that
That was super helpful!! thank you!
It's a bit weird that they were trying to use the funleave key instead of the key I set up for that specific day, but oh well
Did your schedule have them leave the farm?
yes
Then that is why.
It is hardcoded to switch to using that key when they are leaving the farm. I don't know the specifics about exactly when they do it, but it's very annoying lol
If you want to have different lines for different days of them leaving the farm, you'll have to use dynamic tokens or other token wizardry, I think.
yeah I think I could figure that out but its probably not worth the effort. Thank you though.
I am not looking forward to doing marriage stuff for Hiria
Well now I'm really confused because it turns out I DO have the key it says I don't have... I'm pretty sure!?
"funLeave_Shannon": "{{i18n:Shannon_Marriage_funLeave_Shannon}}",
"funReturn_Shannon": "{{i18n:Shannon_Marriage_funReturn_Shannon}}",```
Yup that does look like the right key
I guess I'll just play around with it some more maybe I'm missing a different key and the mod from SinZ didn't catch the right one idk
It's definitely in your MarriageDialogueShannon file? Not in regular dialogue by mistake or something?
yes but thank you for checking that
Just grasping at straws lol
yeah no worries I appreciate it but it's time for me to turn in anyway so I'll sleep on it and poke it more another time.
Good luck, I hope you can find it when you get back to it
Can anyone help me understand why I can't seems to replace the white and black cat icon, I can replace the other cat but the black and white does not get replace 🥺😭
!json so we can see how you try to do it
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.
Hello! I created my own content json file based on the examples, but I didn't notice any effect on fishing. In the game, garbage is caught on my farm. Could you tell me what the error might be? The file itself can be viewed at the link: https://smapi.io/json/content-patcher/33072724f5954b8b807879746cdcc6b8
(i just want it to be known that logo deserves a million appreciations for reporting a bug with my contest entry mod asap instead of letting it go to the judges like that ok that is all goodnight thank u logo)
Helo! While I was playing in multiplayer with my friend, he came up with an idea of mod: when both players have their spouses, NPC will react to that in conversations, for example - I'm living with Shane and he's living with Harvey, and when I speak to Shane, he will say: Harvey is helping me with rehab or something, or they will do some things together on farm.
Does the mod like that already exist? Someone have heard?
If not, would anyone be willing to join me doing it?
there's a bug related to that that is fixed in 1.6.9
i don't think such a mod exist. It should be pretty easy to do IF content patcher can do check of who the other player is married to, which i'm unsure about
Hmm 🤔 I know you can use {spouse} to key in loads as a check not sure if there’s a spouse2 for farmhands I’m sure there’s a reference tag somewhere
I checked CP and only saw for current players spouse and roommate tokens didn’t see anything for farmhands tokens
Yeah, the problem is (a) CP doesn't support this and (b) combinatorix
Ie, you have to write every spouse with every other spouse, it gets to be a lot
i was hoping that you could check something like "this npc relationship is married and this npc relationship is not married with player"
i believe it's possible with GSQ?
what kind of mod are you making?
sry wrong chat
but then it's still the difficulty to parsing the result in a nice way...
you can do things with the relationship token
oh, and dialogue itself supports gsq these days
but i assume you can get stuff like "leah is married to someone else than player", trigger a flag, and then edit spouses dialogues based on "leah is married to someone else than playr"
but it's quite advanced for a first mod
i would try something simpler (unless someone provides a template)
ah, I see
{
"Action": "EditData",
"Target": "Characters/Dialogue/Haley",
"Entries": {
"atravita.SpamMail.Clothing": "{{i18n: haley-clothing-married-other}}$h"
},
"When": {
"Spouse:anyPlayer": "Haley"
}
},
{
"Action": "EditData",
"Target": "Characters/Dialogue/Haley",
"Entries": {
"atravita.SpamMail.Clothing": "{{i18n: haley-clothing-married-player}}$l"
},
"When": {
"Relationship:Haley": "Married"
}
}
(note the same dialogue token being used)
the first line is for "Haley, married at all", and I override it with "PC currently married to Haley"
(note that this is fragile/doesn't quite work right in splitscreen, but that's not a Me problem, that's a game/framework problem)
oh yeah that's cool and would work nicely for their concept
(but yeah, if you want x spouse to comment on y other spouse, that gets to be combinatorix bad amounts of work. I think DialogueOverhaul does do that....a tiny bit...for Emily and Haley. That's it.)
(also note that "spouse" turns true as soon as they're engaged, but that's acceptable to me)
Hi all you cool ppl 🙂
I'm trying to move some warp points added to the BusStop map over by 10, however although the new warps have been added, the old ones still exist.
Is there a way to remove warps as this is what I have tried (Load Order doesn't have any impact, as thats what I thought the issue was first):
{
"Format": "1.26.0",
"Changes": [
{
"Action": "EditMap",
"Target": "Maps/BusStop",
"When": {
"HasMod |contains=TheLimeyDragon.Ayeisha": false,
"HasMod |contains=MineralTownArchitects.MineralTown": true
},
"RemoveWarps": [
"33 6",
"33 7",
"33 8",
"33 9",
"33 10"
],
"AddWarps": [
"43 6 Custom_HM_UndergroundTunnel 0 8",
"43 7 Custom_HM_UndergroundTunnel 0 8",
"43 8 Custom_HM_UndergroundTunnel 0 8",
"43 9 Custom_HM_UndergroundTunnel 0 8",
"43 10 Custom_HM_UndergroundTunnel 0 8"
]
}
]
}
Is Remove Warps even a thing?
yeah i don't find it on CP doc
No, there is no RemoveWarps field. You'd have to use MapProperties to replace the Warp map property, I think.
Welp, time for more trial and error xD
Hey guys, I'm assuming that the position of a entity drawn by draw() is relative to the camera, anyone know if that's correct?
If using MapProperties doesn't replace the entire Warp property, you'd probably have to use it to delete the property and then use AddWarps to add them back in.
Yes-ish
Yeah that's what i'll have to do, reset the warps back to vanilla using MapProperties, then use AddWarps to add all the mod warps back in
thanks!
Why not just edit the original location where the warps are added in the first place?
Or is this to accommodate another mod changing the bus stop size?
(changing vanilla map sizes is a problem)
Oh that is also a very old format, I just noticed
Hey, is there any way to draw at an absolute location? Like not have the drawing follow the camera?
Thanks, this worked
good mornin, I decided to put the different animal skin into their own subfolders, which lines do I have to now change?
{{ModId}}_RedChicken
and/or
Mods/{{ModId}}/RedChicken
and/or
assets/{{TargetWithoutPath}}.png
The third one
just the third one?
Yep
The first one is the ID for your chicken, the second one is the asset name you create to put your texture into, and the third one is the actual file path for the file containing your texture to put into the second one.
ahh
Both the first and second are completely arbitrary - they are named according to convention, not need. The third is named according to need - you must specify the correct location of your file.
AlwaysActive option is disabled anyone know if this is a map property or do i need to hunt down something else
AlwaysActive is a Data/Locations field
so I'm guessing I need both
assets/Chicken/{{TargetWithoutPath}}.png, assets/Rabbit/{{TargetWithoutPath}}.png
Okay sorry hang on a second
I misinterpreted your first question as being about multiple skins for the same animal (like a red skin in a "red" folder, purple in "purple" folder etc)
If you're doing this for different animals, then you do need to change all three, sorry
https://stardewvalleywiki.com/Modding:Location_data
Under CreateOnLoad
You can't have multiple files inside your FromFile field
Sorry, using notepad to do json while having the VSC website open in the background is taking me out
Yeah I know I laughed
dang
You will either need to split up your Load code blocks so you have one per folder or do some token magic to rewrite your FromFile line
I am bad at FromFile tokens so I won't be much help
The easiest way is just to split up the Load
this better?
I always think about how DSV has a million tokens in the FromFile, think "I can do that" and forget theirs are all config
Yeah that looks right to me
woo!
Okay roku I hope you're ready. I'm about to start another C# mod and I have already forgotten everything xD
Hi!
I am an avid modder of other games (mostly Minecraft, 5M downloads there), and I wanted to get into modding SDV.
Are there some good tutorials or resources for amtauer modders? preferrably stuff about setting up the environment and other basic stuff before i delve deeper
Can I just copy and paste my first one rather than going through the whole project creation thing again?
!startmodding
Making mods can be broadly divided into two categories:
- Content packs are formatted text files, and don't need any programming knowledge. They can add/edit NPCs, maps, new items, shops, and more. To get started, see the list of framework mods, the wiki tutorial for Content Patcher, and there might be relevant guides on the tutorial wiki.
- C# mods use programming code to change fundamental game mechanics. See getting started with C# modding.
Usually it’s easier to start with making content packs, since you don't need to learn programming.
I should just try rather than asking easily verifiable questions
You probably should set up a new project, technically you can just copy paste but renaming everything is a huge pain
what's 5M?
also, hello! a fellow SDV modding newbie!
5 million
also hello!
may our journeys be fruitful;
I've already got some animal skins working in just a day, :D
If you're just trying to make some simple content mods, Content Patcher is gonna be a good choice, it can handle quite a lot
Otherwise, for anything requiring something that is either hardcoded still or not handled by the game, you'll need C#
There are also several frameworks that work either on their own or in combination with CP to allow you to handle some of the hardcoded stuff still
oh prefect, i used to write a lot in c#
Darn it I have to move my repos again
another interesting question, is there a concept of "mixin" in SDV C# modding?
as in, if there's an existing in game function i want to modify and add my own code to
You're right roku that is a lot of renaming
https://harmony.pardeike.net/articles/intro.html
SMAPI comes with a bundled version of Harmony that you would use, rather than including your own version
Oh perfect, I’ll give it all a read! Thanks a bunch for all of your help!!
That page has basic info on setting it up with SMAPI
Pardeike's site has more detailed info about usage
For more specifics, you can usually ask here and see if someone has some code they'll link as an example, I have a few transpilers and postfixes I can usually share
There's a fairly wide variety of availability for people though, so if nobody answers you'll just have to try a little bit later
I find that about 5am-10am my time has the most C# people around
I always have to read back when I wake up
(It's 12am now, for reference)
My sleep times are unreliable, I'll be here basically whenever lmao
Looking at AmbientLocationSounds, it's fairly straightforward what it's doing, but it's also so incredibly hardcoded and not going to be much use for making some kind of spacial audio system lol
either I'm hella unlucky, or my skins aren't working
!log if you have any errors that's a good place to start, otherwise a patch summary or patch export is another good thing to check
Important note: Your computer username may appear in the log. If your username is your full name, please be aware of this before uploading it.
Please share your SMAPI log file. To do so:
- Open this page: smapi.io/log.
- Follow the instructions at the top of the page to upload the log file. (Don't copy & paste from the console window!)
- After uploading, it will show a green box with a URL to share. Post that URL here.
Please do it even if you don't see any errors. This has useful info like what mods and versions you have, what the mods are doing, etc. If the issue didn’t occur in your last session, please load the game to the point where the issue occurs, then upload the log.
I'm guessing now people often use {{ModId}} in names/IDs of their custom NPCs? 
I think ModId should be used everywhere it can be
Any internal name/key, make it all unique AF
no errors(except an old chicken which I got rid of in the code, so obviously) for the skins
https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide/troubleshooting.md#patch-commands
More info on those patch commands here
Good day Wonderful People,
I am not sure if this is the correct place to write this or not (Please let me know if not)
I am trying to add Custom Bush compatibility to Informant Mod.
But I cannot for the love of god manage to calculate the days left to harvest.
I am not even sure what is wrong, I tried many approaches but with no success unfortunately :/
hmm, wait, looking closer at the error...
I was using mine, but I switched to Aba.NPCNAME instead so if other people want to include my NPCs in their mods it's easier for them - because my full mod ID is usually something like Abagaianye.hiriaNPC
Feel free to share the link to the log site
no, i think it was a doubled bracket, gonna relog
This is what copy pasting from manifest.json is for
Honestly, if you start messing with other people's NPC's, you should have to pay some difficulty tax :P
Yeah but if you're having to refer to several different NPCs repeatedly I can see that getting annoying.
I want people to be able to include Hiria in things!
I do tell people to use {{ModID}} though
Do as I say, not as I do
Something I'm struggling to find in documentation- can CP do volcano forge recipes, like the one that turns the galaxy sword into the infinity sword, in 1.6?
*pester pester* a good validation software (VSC) would help with this
I think the forge is still hardcoded
I'm definitely paying high taxes 
I was on drug (lack of sleep) yesterday when I said I was done with the config. I completely missed the fact that reading the config can fully disable/enable included packs, so I have to read the config and the content at the same type to avoid caching Furniture that would be disabled
Sleep deprivation is indeed a hell of a drug
Time spent on:
- Configuration: 30%
- Documentation: 400%
- Actually making the framework: 0.2%
why do you need that? cauldron particle generation is quite a mess iIrc, I might be able to help with it
I just want my cauldron in my witch's house to bubble
alas, thanks anyway. i used to have a harmony hack for this that someone made for me but i imagine the code changed enough in 1.6 that it won't work anymore
oh god, that's why I don't want to finish the rework I'm working on, there's so much doc to change...
Oh, that's a map property? I guess the wizard also has a bubbling cauldron
Possibly, SMAPI will tell you if it fails if you want to just throw it in lol
I can see the function, I am just not sure how to point that at my cauldron
Wasn't it a temporary animated sprite?
that TAS got me confused for a second
What else does TAS stand for?
Reminds me of airport acronyms
well... now there's a new error...
well, that's a Furniture method, it's going to be hard to point it to a map tile (if your cauldron is on in map data)
Tool Assisted Speedrun
My cauldron is on a map, but so is the vanilla cauldron so I was assuming I could copy what vanilla does
it says there's something wrong with the first ModId Black Rabbit line
it's like THE TAS
missing coma on previous line
ohhh
for the love of efficiency, please use a proper IDE that does real time json validation
Ah, I've never really been into speedrunning
*laughs in hardcoded feature*
Maybe we should all coordinate so that if people have errors that would be picked up by VSC, we just tell them "get VSC" instead of pointing out the error
But since I am writing C#, doesn't that let me do stuff with hardcoded features? Or am I overestimating my abilities?
:P probably wouldn't work
I wouldn't recommend VSC to people who are only doing json tho, I think there are some lighter alternatives, especially for very occasional json editing
But if they want json validation that's kind of their option though. The N++ validation looks weird
I still don't understand what people are talking about when they say VSC isn't light lmao
Like how many extensions do you have to make it not light?
I'd say that you're underestimating how hardcoded some stuff can be, I've seen stuff requiring so much structure around it to work, sometimes it's demoralizing...
Like it's minutely slower to open than N++
addCauldronBubbles isn't that hardcoded anyways
It's just adding temporary sprites to a location's temporarySprites list
I've also seen people complain that it's hard to learn (I disagree but I thought that it was a valid opinion)
Like most of it can straight up be copy pasted, just need to replace a few things
Such as the tile location and the game location
oh, nice for them then
I'm glad roku is confident about this
I looked at this and went 
switch (base.QualifiedItemId)
{
case "(F)Cauldron":
base.IsOn = !base.IsOn;
base.SpecialVariable = (base.IsOn ? 388859 : 0);
if (base.IsOn)
{
location.playSound("fireball");
location.playSound("bubbles");
for (int i = 0; i < 13; i++)
{
this.addCauldronBubbles(-0.5f - (float)i * 0.2f);
}
}
break;
I mean, that's kind of where the confidence ends, if I had to fabricate a temporary animated sprite I would perish
Idk, honestly I'd be happy to never have to touch TemporarySprites ever again
The documentation for TAS is so bad
hmmm
What documentation? I am only familiar with the one in events but that doesn't seem correct.
the good way to do this is to open the folder with VSCode, this way you'll see all your json files in the file explorer inside VSCode
Yeah I mean, I'll never argue that anything new is difficult to learn, that's kind of just the territory of picking up a new program
That might be the only documentation for it lmao
didn't know you could open folders in anything but windows explorer
oh that's helpful, huh
Oh. Well, I am comfortable enough with that, having used them in events.
damn I got jumpscared by the spooky discord notification sound, I think that's the first time I've actually heard it
that's windows propaganda, don't let them get in your head
lol, this is one thing you need to know about CA - he often reuses variables for things
so the special variable is what is important here
because updateWhenCurrentLocation checks for the specialvariable and updates ...lastNoteBlockSoundTime
well, each person here will recommend the one they use, it depends what you want to do. Also Visual Studio is different from Visual Studio Code
so, if you want your furniture to have the little bubbles, it just needs to be On and have the specialvar set to 388859
I tried WebStorm for a little bit, since it's free now, but I didn't like it eating a fourth of my RAM
be a mensh. Edit your jsons in vim
yeap, and this was pretty annoying when I wanted to add a list of different particle effects to Furniture with multiple timers, I had to find a work around
(the joke is that on one of my work projects, we have...vim.)
Did I just imagine itayfeder asking about VS vs Rider?
I thought I saw that too...
:D i just accept using notepad ++ for everything (i used to use regular notepad before so ive moved up in the world)
Anyways, DH, I should show you my new sweater
I may or may not have jumped on the hexicardi bandwagon lol
what's the key to auto send to trash?
Ooh, definitely DM it!
I still mess up too often to not rely on real time validation lmao
like, in the game
Didn't know that was a thing/is it?
I thought it was??
it's certainly does the trick
they did, I even answered but I think they deleted the message
I mean, I wouldn't make it a thing, not with the way the trash can works, since it has no verification and just permanently deletes stuff
Focustense made a mod where you can flag stuff to be auto trashed
i mean like, hold a button and then click the item/stack to send to trash, I thought that was an in-game thing
Yeah I was going to reply to you to say they probably don't care about VSC because they're trying to set up for C# modding but then got confused by their message being gone anyway haha
That's definitely a thing in Terraria lmao, not sure about SDV
😔 damn
meh, VSC is pretty viable for C#, I didn't have much to setup
Maybe a mod? I don't recall any modifier keys for inventory interactions in SDV
Okay so my "furniture" needs to be "on". Now I just need to learn what that means
ANd presumably find a way to make my cauldron a furniture
that's a toggle for furniture that you can right click (like fireplaces)
Oh Button did say that clicking on the cauldron makes it bubble up more
I think it'll be less trouble to just add to your code what's inside of the addCauldronBubble function
it toggles it, and when it turns on there's a blast of bubbles
I am confused by this new context of furniture. It's furniture that is not furniture? I can't pick up and move the wizard's cauldron or anything.
I recreated it for FF, so I know quite a bit about it
I want the wizard's thingy!
I am literally trying to plonk that exact same thing into my own map
Not a furniture, just a map with a cauldron that bubbles interestingly
WizardHouse.UpdateWhenCurrentLocation is what you want
check StardewValley.Locations.WizardHouse
It's literally what's inside addCauldronBubble lmao
Wait so I could just write my own version of that for when inside my location instead?
Yeah, that's what I was saying before atra came in and told you something else :P
yeah, I think that's what was advised a while ago
gaslighting
I saw the code and was like "oh clearly aboo is making a furniture cauldron"
I thought you were onto something lmao
sooo this is what happens when I don't backread
Sorry roku I was trying to understand what you were saying and then when atra popped in I thought they were just continuing what you said
or I read one line
I am all for following an atra idea, they're usually very good :P
woo!
I forgive you atra 
Meanwhile, I'm asking the question the harmony discord dislikes
heyyyy can I inject a static method on a type not my own?
(I know the answer is no. I know why the answer is no.)
I'm mildly surprised there's so many white rabbits, i didn't touch the weight, so ig it's just chance
Ok, I'm taking a break from work (chatting here) to watch re:zero, bye
bascially a 1 in 3 chance to get any colour
Well 1/3 is pretty easy to roll (?)
I also just realized there's 4 red chicks too... I hope the skin weights aren't effected by order...
so... I've got the basics for skins down(I think)
I wanna make skins for the ducks, but I need Vanilla Ducks to use their own baby sprite file instead of using White Chicken's baby sprite, so that my skins can also have unique baby skins too
hey guys, how would I check when the player sends a message in chat, if anyone knows?
Baby chickens, baby ducks... 👍 Sure look similar irl lol
yes, but there are a myriad of variations in baby ducks and chicks, and I'd love to add them
yeah
i'm thinking I need the BabyTexture thing and the Action Edit Image thing, but i'm not sure how to put them together
Are all of the frameworks at https://stardewvalleywiki.com/Modding:Content_pack_frameworks actually content pack frameworks or is that more of a generic page for all frameworks?
It's more generic, but all the frameworks have a Is CP extension column specified, so there's a way to differentiate ones that provide a data asset to edit vs ones with their own content packs
so, in the game files, Duck is using
"BabyTexture": "Animals\\BabyWhite Chicken",
I'm guessing I need Edit Data?
Yep, I was about to point out BabyTexture
I think I got it?
missing a comma
fixed the misspelling of Data
again?
see the red squiggle on the blue { need a comma above it
ah
you can also set json with comments to get rid of the red lines on comments
@sweet sphinx
I'm trying to figure out how to do that
see the far right bottom red circle
yes
i got it!
then scroll down to json with comments
@ivory plume when you have a moment could I be added to the decomp GitHub repo?
My GitHub is https://github.com/EnderTedi
You can also set the association for json to always be jsonc
now when you get an error you will see a red bar on the right side where you scroll
File>Preferences>Settings, search for associations and Add Item *.json with a value of jsonc
I always just link people to your last message saying that roku
Now I have a new one haha
Lmao
There's also json5 but I dunno how to make it do that one
I figured it out for WebStorm but not for VSC so far
done!
VSC doesn't support json5 natively and there aren't any plugins that do validation for it
Open VSCode. Go to the Extensions view by clicking on the Extensions icon in the Sidebar. Search for "JSON5 VSCode Plugin" by savh and click Install. Usage Open any.json5 file, and the plugin will automatically activate. Use the Command Palette (Ctrl+Shift+P) to access commands like json5 to json, Format Document or use the button Watch JSON5
Hmmm why did I disable that
I obviously disliked it for some reason but I don't remember
i hate how updates sometimes nuke settings in programs
{
"LogName": "Bath House",
"Action": "Load",
"Target1": "Maps/BathHouse_Entry",
"FromFile1": "assets/Maps/BathHouse_Entry.tmx",
"Target2": "Maps/BathHouse_MensLocker",
"FromFile2": "assets/Maps/MensLocker.tmx",
"Target3": "Maps/BathHouse_Pool",
"FromFile3": "assets/Maps/Pool.tmx",
"When": {"Bath House": "true"}
},
hey, can i just give my targets numbers like 1,2,3 if i have several targets or do they have to stand alone? how do i do this correctly?
multiple patches
okay but i would like to have 1 log name for all 3 -> "Bath House" is that possible?
or {{TargetWithoutPath}}
{
"LogName": "Bath House",
"Action": "Load",
"Target": "Maps/BathHouse_Entry, Maps/BathHouse_MensLocker, Maps/BathHouse_Pool",
"FromFile": "assets/Maps/{{TargetWithoutPath}}.tmx",
"When": {"Bath House": "true"}
},
this should work iIrc
haven't done CP for a while
no problem
As long as you ensure your file names match the targets (after the "Maps/" part) then yes Leroy's suggestion works
typos are everything xD
typos cause 2 things red screen of doom or one line of failed to load mod due to invalid json
Basically, {{TargetWithoutPath}} will be replaced by the name of every file you specified in "Target" (without the path leading to it)
augh, my brain hurts
smort
I recommend going through the CP documentation to learn about tricks like this
where can i find it?
i use CP alot and skim alot of things lol
nice tip 🙂
is it even possible to tell if someone has sent a chat message?
Wait, might have figured out a way with reflection (:
check this first https://stardewvalleywiki.com/Modding:Modder_Guide/APIs/Events
Perhaps one day ill make a smapi mod...
Happy Saturday - audio related question: is there a way to swap out the "ship" sound when it's triggered by dropping items into the shipping box specifically, but without substituting it through editing Data/AudioChanges? Preferably through Content Patcher or any other mod framework I could unpick at short notice (c# would take me too long
). Since the sound is used by other vanilla/modded machines I'd like to avoid affecting those if I could.
Data/AudioChanges is through CP. Gonna guess the audio cue used by the shipping bin is hardcoded though
Yeah, I can do the Data/AudioChanges no problem, but then that'll change all the machine drop sounds too - that would be a... bit of a funny side effect though 
Yeah there's no way to change a sound only in a specific context through CP
Figured it would probably be hardcoded... but I've run out of ideas on how to search for anything else on Discord so wanted to double check before I gave up
(I did look at Spacecore as it can play sound with trigger actions, but that would just overlap the existing sound so probably would end up a bit too messy)
Thanks for the confirmation though!
<..< have you ever accidently packaged your stuff for upload and forgot to delete the config file from testing
I've already checked, doing stuff with chat is just weirdly difficult
.< Teehee
I get paranoid i accidentally packaged some bizzare file on my pc and uploaded it too
@worn coral maybe you can CP patch the sound effect but only when the player is on the map in question. It can still cause "issues" for other mods using it but it might prevent vanilla "issues". Idk tho, I don't know where it's used
lol during testing i do things like pink stable winter house and other stupid combos lol
free love and platonic relationships are no longer 1.6 compatible? i see a disaster coming for me soon 😂
lol
there is a fork of free love and someone is making a proper polyamory mod to be released in the future
you could make a cp mod to edit charecter data based on what your gender is and change all cheracters status to romancable
then you would need dialogue
!freelove
A semi-official update of Free Love and several of its associated sub-mods is available on the Stardew Valley forums.
Free Love: http://forums.stardewvalley.net/threads/unofficial-mod-updates.2096/post-123155
Bed Tweaks & Spouse Rooms: https://forums.stardewvalley.net/threads/unofficial-mod-updates.2096/page-134#post-121068
Spouse Patios: http://forums.stardewvalley.net/threads/unofficial-mod-updates.2096/post-121068
https://www.nexusmods.com/stardewvalley/mods/20655
Hugs and Kisses: https://www.nexusmods.com/stardewvalley/mods/21019
https://forums.stardewvalley.net/threads/unofficial-mod-updates.2096/page-161#post-123155
I believe this is the unofficial update
Free Love Updated to SDV 1.6
Thanks! Here's the same update, but I fixed the version number convention to avoid breaking update alerts for the official mod.
ah thanks nomori
the command is indeed pretty handy 😄
When in doubt, try random command 
lol
Damn... there should be one 
I think EnderTedi's polyam mod works currently even though it's still a beta. It's available on the East Scarp server.
We're getting a new poly mod? 
!stone
🪨 The item ID for Stone is 390.
New command added! You can use it like !randomcommand.
hiya im making a custom event rn, does anyone know how to move two characters at the same time?
(feel free to try out the command in #governors-mansion )
advancedMove (probably)
You can just put two characters into the same move command but also advancedMove works as well
you can either use move <NPC> x y facing <NPC2> x y facing or advancedMove
mod authors would really like some features that current free love doesn't have
depending on what you want
Nice, I'll gladly take an upgrade to harem life 
With EnderTedi's mod you can specify if an NPC is polyam or monogamous and if polyam, which other NPCs they are okay to be in a polycule with
It's so cool
So they can decline if player is married to someone they don't like? 
Correct
Interesting, potentially annoying for harem collectors, but interesting 
I mean it's infact intentionally anti Harem collector 
It makes it the only polyam mod that has interested me so far
Fair
I definitely see the use of it when it comes to family members hah
Speaking of polycule... is it gonna somehow support interactions between spouses? Pure curiosity
By default it'll come with the data already set for the vanilla characters to refuse to be in a polycule with their family members
Someone else already suggested adding marriage dialogue keys for when you're married to x and y (or x and y and z etc), which I've yet to look into but is on the list, if you have any other suggestions I could look into it
question, can you marry abigail and the wizard with that mod?
It'd definitely be something interesting, I remember a mod that did something similar (Multiple spouse dialogues..? Or something along the lines), but it was a bit janky and worked only on text bubbles, not dialogues. Loved the concept tho
Yeah multiple spouse dialogues, I remember that
What would be the best way to have sprites/portraits change just for an event? Is there a way to effectively un-load them? XD
As for other suggestions... would be fun if spouses had like more interactions with the farmhouse/each other besides dialogues. Buuut I'm guessing it'd be much more complicated to implement 😅
Check out the changeSprite and changePortrait event commands
the baby ducks and chickens work!
now you can tell which baby is a chicken or a duck
One time I had a random situation where both Razzy and Welwick stood and "chatted" around a crystal ball I randomly put in the farmhouse. It was so randomly perfect 
Thank you!
why do ducks take 2 days longer than chickens?
the adults!
Ooh new poly mod sounds interesting
I love the idea of your current partner being able to decide who they like and don't like lol
i forgot how to warp to a custom location 😵💫
Action: "Warp 1 2 Custom_BathHouse_Locker" does not work ..
the file is named BathHouse_Locker
you should use Data/Locations now
chickens
DaysToMature": 3
"DaysToProduce": 1,
Ducks
"DaysToMature": 5, "DaysToProduce": 2,
cool
you can see all the info under data/farmanimals.json
and you could target that field and change it to a 1 if you wanted eggs every day
I don't have a desire to change them, but thanks
how do i do that?
well then thats the reason why cause someone made it that way but also in RL chickens produce daily ducks every other day if healthy
cool
This is a link to an example of mine: #making-mods-general message
thanks alot 🙏 couldn't the "addWarps" be done through the tiled app instead by adding it to map properties? Is it necessary to write it in the content.json?
can u include a note about "$schema": "https://smapi.io/schemas/content-patcher.json", too
This would have saved my sanity when I first switched to modding in VSC 
Are you looking at my example I shared? Because I haven't got the warps in the json
I don't know how to do that honestly
You just add it as the first line inside the opening brace.
Makes VSC load that schema when you open the JSON, so it validates not just the JSON itself but the actual content inside the JSON.
I meant, I don't know how to edit the command
Same way you added it?
oh ok
can you set a warning on nexus for downloading a new version
oh my goooooood i forgot to add the custom map. holy, i'm rusty with this XD thanks anyways
New command added! You can use it like !vscjsonc.
!vscjsonc
In Visual Studio Code, go to File -> Preferences -> Settings, then search for "associations", and in the "Associations" setting, click the Add Item button to add an item with key *.json and value jsonc (see image).
If you are making a content pack for Content Patcher, you should consider using its json schema so that VSCode can tell you if your patches are valid, you simply have to add
"$schema": "https://smapi.io/schemas/content-patcher.json"
at the start of your content.json file.
Pathoschild is typing... I hope I'm not about to get scolded
it worked 😭
spooder
how do one import SpaceCore library to use on a mod in VS?
definatly getting scolded lol
spider companion?? lovely
what features are you looking to use?
hm its jumping in triangle
SpaceCore.Events. For context I am looking into Love of Cooking source code
Spider
Hi! The format is:
TouchAction ConditionalDoor <game state query>
The player can only walk past that tile if the game state query matches. If the query fails, then the player is stopped and a message is displayed. This is meant to be used alongside Action ConditionalDoor, so that you can't walk through a door into a locked area even if the door is open.
The message can be customized by setting a LockedDoorMessage property on the Buildings layer. That part is clearly broken (since a Buildings tile will block the player regardless of the touch action), and the game doesn't actually use this currently; I'll move that to the Back layer, which is probably what was intended.
Ohh, so it's like a conditional barrier, that's neat
Thanks
I'll add it to the wiki when I get a chance
I am just trying to correct this CS0246 here:
hmm looks like you need to add a DLL reference to SpaceCore
are you sure u need it
doesnt seem SpaceEvents is exposed through the API
nope, but I want to follow how LoC do somethings
you dont have to?
not yet. I am yet considering making a mod that may use it
loc is a spacecore skill so it has to ref spacecore by default
I just want to know
are you making a mod like that
ok. looking how I do it through VS
(unless you do reflection or what's that library I forgor)
sounds like 'adding a library' to me
Hey, how would you send a message in chat using SMAPI?
nvm, think I found it
nvm
did not find it!
confused
it's fine, i'll figure it out.

Something like this in your csproj: https://github.com/Pet-Slime/StardewValley/blob/a27e6baf856bba77db774e63530cf0d02f39d4f4/common.targets#L30-L35
thank you very much (:
Invite sent! See the readme for more info when you get access. Note that the 1.6.9 version is on the beta branch, but it's not updated for every build like the main branch. Feel free to ask if anything is unclear!
how the game makes 3 of the chickens buyable through 1(one) randomised icon is mildly infuriating, is there a way I can separate them out?
I don't mind the skins being all in one animal, I'd like White Chicken, Brown Chicken, and Blue Chicken to be separated tho, so I can better check skins, and so when I impliment my own animals, it doesn't look as out of place
there was https://www.nexusmods.com/stardewvalley/mods/11551, but it uses C# for fancier menus and it's also outdated
yea that one, unofficial in the comments
you can achieve that kinda effect with just content patcher. remove brown and blue chickens from white chickens' AlternatePurchaseTypes, and make brown and blue chickens purchasable on their own by setting their PurchasePrice
I made a map and set Outdoors: T in its map properties along with a Music value. My issue is that, when it rains, it doesnt make that raining sound. Idk if it's because of the Music value?
oh nvm. i think it's being overwritten by setting a Music property. :/ idk if theres a workaround.
oh cool
@ivory plume Since you appear to have a few moments anyway, is there a way to get a normal .pdb output when using the mod builder? It seems to suppress the normal build options and always embed the pdb, which is nice for releases but prevents me from using any offline tools in between the dev and release steps.
I'm hoping it's just some option I'm missing, but no one else was able to give a working answer.
Pintail?
(and also don't forget to gate blue chickens' UnlockCondition behind Shane's event)
thanks a lot
yee
yeah Pintail. I don't know if that's actually what it does (I don't use it lol), just vaguely heard that's what it allows you to do
so do I just put
"BabyTexture": "Mods/{{ModId}}/BabyChicken"
"AlternatePurchaseTypes" : null
}```
?
Pintail isn't a reflection library, it's the library that supports the parts of the API you do see.
I don't understand how to use Pintail at all :D
The answer is: you don't. You never use it directly.
it adds ducks to your game
looks good
(duck-typing)
(don't forget the ending commas)
It's just there, it's part of how SMAPI does its API integrations.
So this is the "problem" when I open the source:
<ItemGroup>
<Reference Include="SpaceCore">
<HintPath>$(GamePath)\Mods\[CORE]\SpaceCore\SpaceCore.dll</HintPath>
<Private>false</Private>
</Reference>
</ItemGroup>
(Wait, you're not getting a separate PDB file when building your mods?)
No, never.
mine dll is directly in Mods\SpaceCore
Are you sure? Using current versions of tools?
Will stardew valley switch from using Brute for console and mobile to using Native AOT once monogame fully supports it? It might make it so the team can make updates for pc and mobile and console all at the same time or much faster, right?
You get a PDB for your mod?
Across the years I've been using ModBuildConfig, yeah.
im on linux and i never seen a pdb
Just change your HintPath to that?
I have never once seen a pdb emitted from the modbuildconfig.
do u have funny csproj or some older modbuildconfig?
what's a pdb?
what's the problem? is Mods\[CORE]\SpaceCore\SpaceCore.dll the path to the SpaceCore DLL on your computer? (EDIT: I saw your message inbetween the chaos, yeah remove the [CORE] part)
Should be just removing the [CORE] part
Weird.
its symbol files for dll
Program debug file, holds the information about line numbers of methods and such.
minecraft bedrock removing pdb recently 
So far as I know, you only need to set the <DebugType> property in your project file after the NuGet package gets imported.
yeah, no, I don't have it either
I tried again, just to be sure, and... no, no pdb.
I'm not even using the DebugType property...
I have tried the pdbonly, portable and full settings and none of them produce a pdb.
Maybe it conflicts with some other setting?
Just to make sure, did you put that <PropertyGroup> after the package import in the project file?
No - really, that can matter?
Yes, MSBuild is order-sensitive.
so where do I put the condition for the blue chicken?
"Condition": "RANDOM 0.25, PLAYER_HAS_SEEN_EVENT Current 3900074",
Hm... still not seeing a pdb, sadly.
UnlockCondition, but also remove the RANDOM 0.25, part
since that's used for making white chickens turn into blues 25% of the time, which we don't want if we're making them standalone
mk
doesn't seem to work for me either
<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<PackageReference Include="Pathoschild.Stardew.ModBuildConfig" Version="4.1.1" />
<PackageReference Include="Pathoschild.Stardew.ModTranslationClassBuilder" Version="2.0.1">
<PrivateAssets>all</PrivateAssets>
</PackageReference>
</ItemGroup>
<PropertyGroup>
<DebugType>full</DebugType>
</PropertyGroup>
No PDB.
Why am I the only person here who's consistently gotten PDBs?! 
Hax
Dr. Frankentense, do any of your tools work with the xml docstrings?
because apparently I have that
Yes.
The only thing you can't get from xml docs or reflection is the file names and line numbers.
So if I want to generate source links, I need the pdb.
Oh, very interesting.
Do you have the latest mod build package 4.1.1? Does the creation date on the .pdb file match the last build, or is it an old file?
<GenerateDocumentationFile>True</GenerateDocumentationFile> btw
<!--embed symbols for error stack trace line numbers on Linux/macOS: https://github.com/dotnet/runtime/issues/39987-->
<DebugType>embedded</DebugType>
ModBuildConfig should be overriding this on Linux.
Running into some code issues, The Game can't seem to pull my textures up in game not sure why here is an example of code would anyone be able to help me id the issue?
pathos can u take out the windows restriction on this modbuildconfig bit that setup debugging https://github.com/Pathoschild/SMAPI/blob/develop/src/SMAPI.ModBuildConfig/build/smapi.targets#L39-L44
Well, there is no pdb file, so... none of the above? Yes, I'm using 4.1.1.
it works fine on linux 
they should be embedded (because otherwise it breaks on mac/linux)
I'm fine to temporarily change the type to non-embedded, I just want it to work locally.
How are you Loading your textures?
Content Patcher
Right but what does that block look like
Aha! There's the "problem" if we can call it that. The zipping is catching a stray old PDB from the obj directory that isn't present in the actual deployed mod directory.
Hahaha, that's funny.
Taking a Guess but you mean a Block like this?
Always clean your build!
That's the thing... I do!
So you've actually been bundling a wrong PDB with your mods.
no, your content patcher load block
No I mean like the
{
"Action": "Load",
"Target": "",
"FromFile": ""
}```
I wonder how many other mods out there are like that today.
(a lot)
Can it export a pdb?
Oh, there's a "Generate Portable PDB" menu item, hmm... wonder if Cecil can read that.
If you just want it to work locally, you can edit the .targets file directly in the NuGet package:
- Double-click this file in the Solution Explorer to open it in Visual Studio.
- Right-click the tab and choose 'open containing folder'.
- Manually edit the
Pathoschild.Stardew.ModBuildConfig.targetsfile.
Oh I have the From File Looking for SweetGemGrow.png
Thanks. I'll try that and the ILSpy workaround; the latter might actually be better if it works, since I can put the PDB somewhere it won't get picked up and pulled into the .zip.
Unless you have another Load, the Texture you're using is wrong, it needs to be the same as the Target of your Load
Hi all! Trying to avoid a harmony solution if possible, do any of you know a good method for preventing the use of staircases in a minelevel? 🙂
Harmony.
Or you can maybe try to block the button press, but... harmony is better.
(Fun fact: clean doesn't actually clean all files, only tracked files. Which somewhat defeats the purpose.)
CP remove staircases from the game
make the stairs transparent
harmony it will be 
If you really really need to avoid Harmony for some reason then I think it might work if you hook the button press/change event, check if the player is next to a staircase, and suppress the button if so. Have to do this for all action buttons.
They spawn a ladder though, then you'd just have a transparent item in your inventory
So as I have an Individual File for each crop I need to have a load for each texture?
But even then, eh... you'll have to worry about whether the player is really trying to activate that staircase or e.g. trying to use an item. Harder than Harmony.
If you're using a spritesheet, you would only need one Load, but if you're using individual textures, you need to load each texture you're using
Makes sense, Sorry for the Amaturish mistake
(I at least understand why it would do that... but I don't have to like it.
)
is LoC the only popular mod that adds a custom stats bar like the Stamina/Health ones?
no
the hunger/thirst mods tend to
so does mana, but I may forget which corner it is in
oh
hi Casey!
S&S adds a mana bar (though we call it aether) once you progress far enough
we have working hunger/thirst mods?
Casey was summoned by mana
Though it isn't in the same spot as the other bars
I assume the updated Magic mod still adds a mana bar as well
clearly you need to add a Status Bar Organizer to Spacecore
I thought about it
someone made a hunger/thirst mod, I know at least one exists
I made a hunger mod at one point
Unrelated, but is there an existing set of instructions for how to add a shared assembly reference (e.g. for those using SpaceCore's types directly?)
That's mainly there because it didn't work with MonoDevelop. Not sure how consistently it works in more modern setups though (e.g. Linux vs macOS and Rider vs Visual Studio)?
Using the manifest builder, S&S just does this:
<ItemGroup>
<SMAPIDependency Include="spacechase0.SpaceCore" Version="1.18.0-sdvalpha" Reference="true" />
</ItemGroup>
(I need to update the version number there...)
I'm a big shill for Khloe's manifest builder for doing this kind of thi-
And Casey beat me to it.
I found Survivalist rebooted
doesn't work unfortunately LOL "no longer compatible"
my question was raised because LoC checks for health and stamina bars to position its own, but doesn't have API reference to a later check to check for LoC bar to add a forth one correctly
so I was wondering how multiple bars are usually implemented
DH said it's borked in rider, but it works in vscode
Oh, I think Walk of Life adds a bar too
If you check the log, it might tell you what is no longer compatible
Something combat related, probably the limit break stuff
But whether or not it's something you can fix is up to you
interesting
Oh, no, debugging is borked. Those generated configurations work fine!
and presumably all these extra bars are stepping on each other's toes?
Yeah pathos was answering my q about enabling that bit which sets up debugging in modmanifestbuilder
I just have them permanently in my common csproj at this point for not-Windows: https://github.com/AlanDavison/StardewValleyMods/blob/5d21d5ebe733f8950af4b38d50747b663fa004cb/Build/Common.csproj#L16-L21
Alright Thats work! Time to fix my code Thanks again @rancid temple !
Yeah, I know of the manifest builder and I'm adding that as the simple/recommended way, but wanted to know if there was any existing guide for the "old-fashioned" way.
(I am not asking these questions for my own sake; I am asking them because I'm writing documentation for how other people should go about doing this if they need to, and it's better to link to existing docs if they exist instead of creating another version that may go out of date)
Fun fact, I have to do that for windows sometimes or it gets built/launched in the wrong directory
<!-- This sometimes fixes running the game from the right folder when I use an environment variable to override my game path. No idea why -->
<!-- Other times it breaks it when it was working (which is only sometimes)! Joy -->
<!--
<PropertyGroup Condition="'$(OS)' == 'Windows_NT'">
<StartProgram>$(GamePath)\StardewModdingAPI.exe</StartProgram>
<StartWorkingDirectory>$(GamePath)</StartWorkingDirectory>
</PropertyGroup>
-->
Is $(GameModsPath) a ModManifestBuilder specific thing, not available in vanilla MBC?
so I got it working... how do I centre their pics?
It's been ages since I've done it without the manifest builder - I assume you just do something like <Reference Include="SpaceCore" HintPath="$(GamePath)/Mods/SpaceCore/SpaceCore.dll" />
(seconding the fact that we should have docs on this. maybe somewhere on https://stardewvalleywiki.com/Modding:Modder_Guide/APIs/Integrations? not at my desk though, but I can add it later)
(Even before the the manifest builder, I just used <ProjectReference>... which obviously won't work for most people)
(this is how I do it, I don't use the manifest builder)
From an old mod before I used the manifest builder:
<ItemGroup>
<Reference Include="SpaceCore">
<HintPath>..\..\Versions\1.5.6\Mods\_Core Mods\SpaceCore\SpaceCore.dll</HintPath>
<Private>false</Private>
</Reference>
</ItemGroup>
you'd need to provide your own shop icons
its a bit annoying that u have to put the correct mods dir
otherwise IIRC they default to the animal icons which isn't centered nicely
ohhh
Actually I just looked at the targets file and SMAPI defines GameModsPath, don't know why I thought it wasn't there.
nah it just says "wasn't loaded, no longer compatible", it was just a harmony patch and nothing else so i'm assuming the code's just changed too much
where do I find the vanilla ones? so I have a template to work off of
somewhere in LooseSprites/Cursors
thanks
but it's not too much effort to just paste an animal sprite into a centered 32x16 PNG, load it and use it yourself
If you're adding that chicken, why not just put the skin directly in it when you create the chicken?
depends what you mean. specific crops? any crops? specific amounts?
- Didn't know I could do that
- how?
Specific Crops
Skins are a field within the entry to add the animals
In my case I'm looking to set up a flag for Sweet Gem Berry Shipped
unfortunately that is not tracked in some way last i checked
not in an accessible-to-CP way
The Targets are wrong. Do you want Data/FarmAnimals and TargetField Brown Chicken > Skins?
Cheers for confirming that I'll have to try work out alternative unlocks
it's a modded brown chicken, not a vanilla one
is there not a gsq for it
do you just need to track ONE item shipped? like ever?
i thought it only confirmed that it was shipped at least once but not a specific number, am i misremembering
turns out im misremembering
I've found the entry, how do I add in a skin?
okay Unit, ignore everything i just said, use a game state query
PLAYER_SHIPPED_BASIC_ITEM Current <whatever the gem berry item ID is> [min] [max]
No worries thanks for checking
Here's an example:
https://stardewvalleywiki.com/Modding:Animal_data#Audio_.26_Sprite
If you want to see the fields explained more
so, like this?
Skins is a list, so you need to put that within brackets
dont remove the braces tho, they contain one object, its a list of skin data objects
No - what Boo-tton said.
Hey, I feel like I’m going crazy. In my event, I change to a new location and want to fade in but the globalFadeToClear doesn’t work and for some reason even though both characters are on the same Y axis, they are offset. I use offset commands before the location change but even when taking it out, they are still offset. Can anyone please help? :’)
better? (idk why it's marking the : )
"Skins": [
{
"ID": {{ModId}}_RedChicken",
"Weight": 1.0,
"Texture": "Mods/{{ModId}}/RedChicken",
"BabyTexture": "Mods/{{ModId}}/BabyRedChicken"
}
],
"ShadowWhenBabySwims": null,
thanks
(also recommend use TargetField to target Skins directly for mod compat, so you dont wipe skins added by other mods)
i thought this was a custom chicken
Oh I thought this was a skin for a brown chicken
it's a skin for a custom brown chicken
one that you buy alongside the vanilla brown chickens?
I wanted to separate the vanilla chickens into their own buy slots
not anymore!
i think this is fine, then
Then I think TargetField is still relevant
if this is a new custom chicken with their mod id in it that just happens to give a brown chicken by default, its no different than a new modded farm animal
no, Brown Chickens are already their separate animal types
you just can't buy them directly
thats what theyre changing, though, adding a shop entry to them to be bought directly, from my understanding of what they said
yee
so adding a new animal that has the same properties as a brown chicken
No they aren't? They're just modifying the vanilla brown chicken fields to enable direct purchase?
ive been awake for like 20min im only goin off what they said and the snippets ive seen in those minutes ¯_(ツ)_/¯
Aaaa okay
But in that case the vanillla brown chickens still exists in the files and completely inaccessible
yup
which might have undesired side effects
I had assumed you were just unlocking the vanilla Brown Chickens
I would honestly call it something other than "Brown Chicken"
its a different sort of mod incompatibility for sure
I'd prefer that, but smn suggested this
I dont recall, IIRC everyone suggested just unlocking vanilla Brown Chickens
instead of cloning it into a new near-identical entry
(i assume the old chickens wont be accessible due to the egg item ID thing, but how come they wont still show up in the shop after they add this modded one?)
because their price is not set
oh... ok
Brown Chickens, Brown Cows and Blue Chickens are separate animals that isn't purchaseable directly in Marnie's, but have a chance to replace White Chickens/White Cows due to the latter's AlternatePurchaseIds field
I'm still pretty new to using tiled, can someone tell me why these tiles keep flipping? I've had to rotate them because I don't see any facing the direction I need, but each time I open the map they're reset to default position
but wont the white chicken still exist in the shop anyway, making them accessible just from buying the normal white chicken?
so, smth like this?
They removed that too, from one of my earlier suggestions
if you're saving it as .tbin it doesn't keep rotation, you need to save as .tmx
(Because I assumed they're not making a clone Brown Chicken)
oh, i see. thats on me for workin on incomplete information then
oh that's an easy fix. Thank you!
Yeah this is ok
:D
Hey sorry to be a pain again, but is there a Wiki page on Sending Letters to players? I can find the one on Mail Data but it doesn't seem to say how to create the letter you want to flag
[[Modding:Trigger Actions]]
ah heck
(is it case sensitive)
(serves me right for not going with my trusted address bar autocomplete)
It probably doesn't like the space
genuinely ive seen people mess it up more than ive seen it work so i dont know how it works
question: is it possible to add a new skill type? i have looked and the skills are all hard-coded into an enum, is there a way to go over that?
spacecore has custom skill support stuff
well... I have the white chicken, but not the blue or brown ones
into gov mansion i go
Case sensitive and it doesn't like spaces (for farming computer commands)
if you want to use the API directly without SMAPI in between you need to add it as a project reference, but you can probably just use SMAPI's API helper to grab spacecore's API without needing to touch spacecore's DLL
Your price fields are in the wrong location, should be outside of the ShopSourceRect box
mk
yeah skill stuff is part of SC's public API
See here for more generic info: https://stardewvalleywiki.com/Modding:Modder_Guide/APIs/Integrations
remind me in 4 hours to maybe add DLL reference to that page
Got it, selphers (#6325478) (4h | <t:1729983694>)
https://github.com/spacechase0/StardewValleyMods/blob/develop/SpaceCore/Api.cs
and here's spacecore's API for you to copy in
(being polite today, robot?)
maybe maru's robot deserves a treat
Hmm sending treats to the robot doesnt work
i'm out of treats i think
im giving mine out very selectively until they let us buy more
I havent given any because I have terminal "but what if I need this healing item for the endboss" syndrome
the worst part about that syndrome here is that if we extend the analogy its not even gonna heal you. you're keeping from using a potion to heal someone else in case someoen else needs it later. brutal /lh
people in here have started using blueberrys emotes too much i keep thinking theyre lurking when theyre not now. first demetriums and now relieved
will we even be able to buy more? 
eventually
oh time to switch to demetriverse
"A bit later on you will be able to buy more trick or treats in the event shop for 10 points."
I forgot the rquirement, but YES!
Looks like I need to push my
agenda more
question: how do i load up SpaceCore into my IDE?
we answered this
(to be fair we didnt ping so it probably got lost above)
You can scroll down form here
and here
i want to be able to use using SpaceCore
that is also answered by those messages (project reference). but why do you need to?
heres an example for DLL reference, but seconding Button that you should use the public API if possible, to avoid potential future breakages from SC's changes
https://github.com/Pet-Slime/StardewValley/blob/a27e6baf856bba77db774e63530cf0d02f39d4f4/common.targets#L30-L35

I think I'm going slightly insane trying to figure out css "bug" on the web converter 
Hi! Please, guys, help me add fish to the farm
I did it following the example of farms from Nexus, but but I catch garbage on the map...
Could you tell me what the fault might be?
Note: I will add my farm as a replacement for the standard farm, not a new type.
My content: https://smapi.io/json/content-patcher/33072724f5954b8b807879746cdcc6b8
if you're replacing the standard farm then adding a new location of "Farm_Farm" isn't going to correspond to it, so i dont think any of what you've written there is actually doing anything at all
try changing it to "Farm_Standard"
that said, if you do that you'll want to use Fields and not Entries too because you donb't want to overwrite everything else with null
Fields lets you only change the stuff you want to while leaving everything else (like DisplayName) untouched, whereas setting it all to null would be very not good if you dont like broken text and such
(that only works for the top level field though, so if you use Fields but then change FishAreas you do still need to make sure you fill out all the fields inside your FishAreas, like Lake1, appropriately)
(if theyre SUPPOSED to be null thats fine just make sure you know which ones are okay to be null)
Alright back again with yet more issues I think I set up the Trigger and the Mail correctly but I cannot for the life of me to get it to work in game
remove the <> and [] symbols
Ok its not unseizing even after removing the stuff changing vanilla weathers...
if something is wrapped in < > it just means its required, if wrapped in [ ] it means its optional
On the Conditon line only yes?
you dont hjave them anywhere else in that screenshot
so yes. thats just how documentation denotes required vs optional parameters to functions and such. that said i do also notice an extra ] in your mail itself before the title
(no other < >s anwyay)
also, do you want the mail to be given that same day?
AddMail defaults to sending it tomorrow, so if you're using DayStarted, you wont get it until yuo goto sleep again
If the Berry is Shipped on Spring 1 I'd like the letter to be sent Spring 2
What's the best way to make new items such as furniture, hair and cloths for StarDew?
i thiiiink in that case you want DayStarted still but add the word "now" to the end of your AddMail action
hair and clothes are usually done with the Fashion Sense mod, and furniture can be done with Content Patcher but there's also Furniture Framework for more advanced stuff
This should look right then now?
almost, you're mail key in your AddMail action doesnt match what you're adding to Data/mail
you're missing a .Mail
Thanks!
Thanks. Already made a shirt with Content patcher and want to make more. I'll use it for the rest
This should be right now then I hope
How about a new farmhouse? Also Content Patcher?
looks tentatively fine to me!
New Farmhouse Layouts have a history of Compatibility Issues with Expansion mods
Content Patcher, yes. most things are content patcher
Thank you.
😦 Wanted to use StarDew expanded as well as add some new items myself
I'll make it and see if it breaks
To give more info- Where it 'Breaks' is with Marriage Heart events, usually these start at the Kitchen of the Default House Layout
So alot of these Heart events happen in the "Void"
But what you can look into is PIF which allows you to add rooms to the default house
Will do, Thanks
Might add a new building to the town instead and make it an apartment.
Thank you very much for your answers. However, I still can't figure it out. I wrote this json file based on another modder's map file on the Nexus. I just don't understand how to write the structure of the json file correctly, so I took someone else's template for simplicity. I need to fill three bodies of water on my farm map: 1) a forest lake (dark forest), 2) a mountain lake and 3) a river. I need typical types of fish, can be found in the forest river, in the forest pond and in the mountain lake. Could you please explain step by step how to do this and / or show a simple template for this? I've been racking my brains over this for several days, and I am very upset that I can't do anything.
As for the name "farm", it is listed in the list of maps, not "standard" as far as I know.
idk why it's not skinning the brown ones now
ok i've just been scratching my head over this still. It says it can't find the files in my event mod (this is the changed part i'm messing with)"continue/64 30/farmer 64 16 2 Jas 63 16 0 Vincent 65 16 0 Penny 64 16 0/skippable/changeSprite Penny SpiritsEve_Sprite/changePortrait Penny Penny_SpiritsEve/changeSprite Jas Jas_SpiritsEve_Sprite/changePortrait Jas Jas_SpiritsEve/changeSprite Vincent Vincent_SpiritsEve_Sprite/changePortrait Vincent Vincent_SpiritsEve/ They're named/structured like this and loaded into the game. (Anyone who can help, feel free please! It's my first mod. I thought I was done but I didn't mean to permanently replace their sprites/portraits - I just wanted them for the event itself.)
(content.json)
I'm at the end of my rope on this, Found a Stray Curly that might have been breaking the whole dang thing and when I remove it it breaks the whole dang thing again
https://stardewmodding.wiki.gg/wiki/Tutorial:_Adding_Seasonal_Outfits_via_Appearances
use appearances and change targets so that vanilla can't grab them but you can
if you want festival only here's the syntax-example for it:
https://github.com/Aviroen/Custom-NPC-Edelweiss/blob/6cc8c41df71acf95514379b7416f8f0889c92a4a/data/Outfits.json#L73
if you're using visual studio code, it might tell you what's wrong at the bottom, or json validator. otherwise... idk, something with the brackets or something small but i can't identify it easily >.<
This is not valid in JSON
Thanks! It looks like IS_EVENT in content.json might help
is event is a conditional field only, you can't throw it anywhere in your loads
I know I've corrected it as best I can but it's stll not sending the ding dang damn letter
help?
is there an extra % there?
According to the wiki this is what I need to put in
%item object [<id> <count>]+ %%
Oh sorry, I'm not sure then. Thought I spotted a typo.
if you're doing this on fresh saves, that's fine, but trigger actions will only ever trigger once
!json can you post the full file
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.
here
Is there something that I can add in there to check for ongoing saves?
patch summary <uniqueid>
since you have an i18n key though, do you have the i18n folder and default.json setup?
can you use smapi.io/json? Not on my desk rn so cant view the file as is
yeah, one sec
I do yes!
yeah patch summary will show that your edits have gone through in the form of it showing Data/TriggerActions -> [x] on applied
doesnt matter pls post the link
Where do I add Patch Summary to the code?
smapi console
Strange, this looks fine to me. Did you test with multiple chickens over different days?
no? b4 I added the white skins, it was working fine, I has a red/rhode skin on one of the brown one's I owned, but when I got on and looked, the red one was brown
Okay so Patch Summary doesn't seem to show the trigger
Which means it's not likely been added, so I wonder do I need to take that content to the content.json rather than the mail.json?
Pls try buying new chickens regardless. Maybe you changed the ID inbetween testing
now make them all attac chickens
idk how to do that :3
lol
Concept: "Is wolf"
Food: "White Chicken, Brown Chicken, Red Chicken"
.> by the way thats a joke so dont spend time trying to get it to work
lol
okay so I think I am a little further along in trying to get this mail to work
But I can't get it to trigger
that mail is an include, right?
if so, it can't have the format in it, only "Changes"
(You say this but I can add it to Extra Animal Config ez. I won't though since it's a pain from a player's perspective + the tonal mismatch.
You can add animals that eat a custom meat items instead of hay with EAC; It actually used to be part of Passersby Cemetary)
Yeah it's the include the code from mail.json file since the game won't load it without it being called by content.json?
What's in your mail.json?
the only file that needs "Format": 2.3.0 is the content.json
Definitely remove that yeah
Is Unit.CP.GemBerryExpanded your UniqueID from your manifest?
Yes
I think I just need to take a break from this for tonight, I tried just moving all the stuff to Content.json
And it's applying the Trigger
But isn't actually triggering
Did you try on a new save?
Going to now
If you had already triggered that trigger action before, it won't trigger again
If you want a trigger action to trigger multiple times you have to set the MarkActionApplied field to false
But if you've already gotten that trigger action triggered on a save, you have to do something to unset it
I don't remember the ways to fix that at the moment
Didn't trigger on a new game
Hi! im trying to make friendship hearts decrease after a ten heart event with a quick question but "friendship <npc> -1000" isnt working, any tips? thank you!
hard to say with just a bit of the event
I don't think this is gonna be it, but I gotta check anyways... can you try with Data/mail instead, I can't remember if those Targets are case sensitive
https://smapi.io/json/content-patcher/a2f0685019174d3dab79eb3288c420d8 Full JSON and sorry for the mess of the code
oh is there a different command than just that one?
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.
what is your mod id?
Unit.CP.GemBerryExpanded
thanks
I asked earlier to check too lol
😄
what does Flicker in temporary animated sprite do
oh so that's why this isn't working {
"LogName": "Load Vincent Trick Or Treat Portraits",
"Action": "Load",
"Target": "Portraits/Vincent",
"FromFile": "assets/images/Vincent_SpiritsEve.png",
"Condition": "IS_EVENT 1031328"
},
{
"LogName": "Load Penny Trick Or Treat Sprites",
"Action": "Load",
"Target": "Characters/Penny",
"FromFile": "assets/images/Penny_SpiritsEve_Sprites.png",
"Condition": "IS_EVENT 1031328"
},
yeah no, you have to change the target
so make it something like "Target": "Portraits/Vincent_Spirit"
did you ship the item?
Yeap
remove the condition from those loads
you may have said it already
it's just harder to backread a lot then return then return to backread
so
hmm
let me check something
"Action": "AddMail Current Lumisteria.MtVapius_AsterWelcomeMail tomorrow"
single action is no []
plural actions is []
Lmao, sure is
ex
//Satchel reward
"Lumisteria.MtVapius_JunimoSatchelGiftTrigger": {
"Id": "Lumisteria.MtVapius_JunimoSatchelGiftTrigger",
"Condition": "!{{HamletProgress|contains={{Range: 0, 5}}}}",
"Trigger": "DayStarted",
"Action": "AddMail Current Lumisteria.MtVapius_JunimoSatchelMail tomorrow"
},
//Visited place
"Lumisteria.MtVapius_JunimoClearingVisited": {
"Id": "Lumisteria.MtVapius_JunimoClearingVisited",
"Condition": "PLAYER_VISITED_LOCATION Current Lumisteria.MtVapius_ForestJunimoClearing",
"Trigger": "DayStarted",
"Actions": [
"AddConversationTopic Lumisteria.MtVapius.JunimoClearingVisited 6",
"AddMail Current Lumisteria.MtVapius_JunimoClearingVisitedMail received"
]
},```
so you need either to use the first format or use actions (no idea if it causes issue to have only one listed then, but i don't think it would cause any)
Can't believe I missed that 
it's one letter
I was staring at that spot for so long lmao
i saw action then the brackets and i was "hmm, wait a sec, the single action format is different i believe"
Okay trying that now
now their outfits are gone though 😦
I wonder how that translates, definitely seems like Action receiving a list or array should cause an error lol
if you've used the appearances, if you're using an event, you call those portraits like changePortrait Vincent Spirit
or you don't even have to use appearances if this is all in event
it worked!
tips : i saw you edited all objects in separate patches
you CAN totally group them
you don't have to, but you can
Entries is a collection of keys
{
"Action": "EditData",
"Target": "Data/Objects",
"Entries": {
"GemBerryExpanded_WinterGemBerry": {
"Name": "GemBerryExpanded_WinterGemBerry",
"Type": "Fruit",
"Category": -79,
"DisplayName": "{{i18n:WinterGemBerry}}",
"Description": "{{i18n:WinterGemBerry_description}}",
"Texture": "Mods/Unit.CP.GemBerryExpanded/WinterGem",
"Price": 300,
"Edibility": 15,
"ContextTags": [
"color_blue",
"season_winter",
"modid_GemBerryExpanded",
"Gem_Berry"
]
},
"GemBerryExpanded_WinterGemSeeds": {
"Name": "GemBerryExpanded_WinterGemSeeds",
"Type": "Seed",
"Category": -74,
"DisplayName": "{{i18n:WinterGemSeeds_name}}",
"Description": "{{i18n:WinterGemSeeds_description}}",
"Texture": "Mods/Unit.CP.GemBerryExpanded/WinterGemSeeds",
"Price": 100,
"ContextTags": [
"GemBerryExpanded_crop_seed",
"GemBerryExpanded_season_Winter",
"GemBerryExpanded_shop_none"
]
}
}
},```
this (check that i copied stuff properly)
unless you want at some point enable only parts of your mod with config, regrouping them is making stuff easier to find
You can keep your files separated, won't have any effect on the code
Ahhh
(i suggest maybe wait another day to do it, and keep a backup)