#making-mods-general
1 messages · Page 57 of 1
To make a custom building is it better to use Content Patcher, or just do it in C#? I cannot figure out what I am doing wrong with Content Patcher to add the building.
Depends on what you need the building to do, but if you need it to do anything that's not already in vanilla you'll need a C# component regardless
It's just an upgrade to a vanilla building. I am just increasing the map size.
Should be fine to do in CP then
I thought so.
!json if you share your files we can help troubleshoot
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.
!log also a log can be helpful
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 have been checking the logs and there is nothing.
The frequency those commands are together, I feel like we need a combined one
just name it !modmakinghelp or something if we don't have one
Yeah, bigger concern is that they're both fairly verbose commands so I wouldn't want to just mash them together and make a giant page long command lol
I may have found out what I did wrong. I was missing a brace.
Honestly, might be good to just have a wiki page explaining the sharing process too, since there's a lot of people who will follow the link and then not share anything
Only issue with using notepad for editing json files.
json.smapi.io saves another life 😌
!vsc was this the command
When creating content mods, it's useful to have a program that will check the validity of your json for you. We tend to recommend either VSCode https://code.visualstudio.com/download or notepad++ https://notepad-plus-plus.org/downloads/
well there's really quite a lot of issues but that's certainly one hahah
I have visual studio, but I am just too lazy to open it.
I would say more issues than anything
the only issue I really have with it.
i've transitioned out of even notepad++ for my json editing because the whitespace...... it kills the man
visual studio code is way faster to launch and run than visual studio community, so it's convenient for json editing
comes with all the lovely bells & whistles too, like brace matching, auto indentation, syntax and error highlighting, sdv-specific schema validation, and so on
i just use sublime text for quick edits and visual studio community for basically everything tho
i'm still in awe about leroy's specific furniture framework schema that it actually previews the pngs on hover
yeah i'm pulling up something now cause i forgot i dumped the project file immediately upon completing it 
That's neat
Think that's just VSCode. It's just a JSON file after all.
another great reason to move from notepad 😌
Hm, my VSC doesn't do that
If this were a campy 90s gameshow, we'd have a machine that automatically dumps a bucket of green goo on anyone who brings up using notepad to write mods.
maybe we can all go to aviroen's place and use their vscode install instead
Or, you know, install the extension yourself. https://marketplace.visualstudio.com/items?itemName=MadsKristensen.ImagePreview
my vs22? i'm pretty sure it's purely leroy's json format
cause none of my other jsons do that
but your screenshot shows no schema selected
Yeah, JSON does not have the ability to magically to do that. It's an extension you have installed.
Even a schema wouldn't do that. Schemas just validate.
lemme see if i can replicate in a non furniture-framework json
nope
wait no, i'm stupid, yep it's an extension
anyway, vs22, great thing that i didn't even realize i had an extension for
Lol
it might've honestly been bundled together when i went to install the c++ component
it only works in the content.json though, so included files don't get the fun
Possibly they added something to VS, though a third-party extension wouldn't get bundled into the main install.
I'm fairly certain the only requirement is that the image path actually be reachable relative to the JSON file (or any other markup/code file) you have open.
Can someone help me figure out why my building exterior is not loading? https://smapi.io/json/content-patcher/e2fcfb628e4044e989e6e34b4abd81be
at line 28, you should use "Texture": "Buildings/GreenhouseV2" -- it's asking for a game asset key (like you see in Target), but you've given it a relative filepath (like you see in FromFile)
Okay, it worked. Thank you. So that field is more or less just setting the name for the texture in Buildings then.
yep, it makes use of that Load action you've got at the top of your content file to provide a file for that asset key 
given the chat about vs/c extensions, it'd be nice to know which ones people find helpful
is anyone sure which of the many NPC dialogue methods you'd postfix if you wanted to maybe replace a character's dialogue stack for the day 
Uh BETAS docs has dialogue replacement
i wasn't particularly after harmony to get the behaviour right as such, just the timing
but if i can call it ondaystarted and use setnewdialogue that's fine by me 
i am unsure when the daily dialogue is chosen so im not sure if ondaystarted will work
but not hard to test at least
unsurprisingly searching for 'stardew valley betas' gives you absolutely no results lol
searching on nexus will give you results tho at least
but either way i'll just postfix currentdialogue's property getter
can't go wrong with that
Sorry I meant buttons BETAS 
I like how my autocorrect now understands my priorities
just remember to handle clearing the dialogue list first assuming you wanna completely override it
yeh, setnewdialogue handles that 
o i thought you were postfixing the setter instead of doing anything with setnewdialogue my bad
er
i also misread it as setter
if that wasnt clear lmao
well i'll do something either way lol
hi, this doesn't actually seem to work in sdv1.6.9.24283 for the same reason as before 
[19:20:01 TRACE SMAPI] Broken code in SpaceCore.dll: reference to Netcode.NetList`2<SpaceCore.Dungeons.SetPieceNetData,Netcode.NetRef`1<SpaceCore.Dungeons.SetPieceNetData>>.RemoveWhere (no such method).
Is there a way to replace the greenhouse and not have the game add a new one when you reload the save?
hmmm, nope, I did not solve that like I thought I did. I can't seem to walk over this bridge in game, despite things otherwise looking like I should be able to. did I miss something somewhere?
me personally i just place the bridge on buildings1 and block off the sides with invisible tiles on the buildings layer
unless of course the water can be entered
the water cannot be entered, no. though, this same set up for Passable on Building layer is how it's done on the vanilla maps, so I'm confused why it's not working here. I suppose I could always wrap the river around the other way, since adding more room for crab pots was requested, but this way would give more room for crab pots
You have to name it TileData or it doesn't do anything
Oh wait that's on the tileset property?
I don't actually know if that works at all
is the water beneath it passable? some water tiles have the passable property on the back layer to block you from walking into it. you have to use specific water tiles without passable.
Ah yeah, checked Farm_Ranching and it uses tileset properties for its bridge, so definitely check blueberry's suggestion
i thought of something recently....like just now.
what if your spouse could randomly decide to ||adopt a pet when it becomes a option||?
spouse/roommate
I guess it's a little one sided that you're the only one who gets to decide how many pets you have
but they get to decide when to have children 
there's one dog in the whole town. these guys really don't care about pets much lol
They ask about children though, it's still a group decision
Though if you pick at the edges of your spouse too much, you'll peel them off the 1 dimensional layer they live on

i have been thinking about what would even make spouses be better but it slips my mind
i love the idea of just coming home one day and abby is like "so...i did a thing" and it could be random or there could be unique pets depending on who you have as your spouse.
Truly the only issue I have with them just deciding to adopt a pet is that it's very similar to them just deciding to change decorations in my house, sometimes I'm fine with what I have going on and don't actually want the ugliest flooring to ever exist in my bedroom
Unique pets would be cool
unique pets would be amazing
they already have the unique weapons
ig it's feasible, something just has to check for a watering bowl, right?
every once in a while a new frog appears somewhere in the house. sebastian is keeping quiet. maybe if you keep going to the desert you won't notice
he slips another frog under the bed.
alex, the local cat dog lady man
Dusty looks on in sadness
what the hell did I miss?
I've only seen the weapons in the backend, haven't actually gotten any
don't they actually use the weapons if you have slimes in the house for example
you don't know of, la sartén? || the frying pan || ?
or am i imagining that 
how do you have slimes in your house??
slime incubator in house, put egg in
you can get slimes on pretty much any map where you can put the slime incubator
takes notes....
do people in town still say "Hello, Green Slime!" while being marauded by goo
checks the say hi method
yeah the spouses do kill slimes in the house but i'm actually not sure if they use their weapons to do it
is there a slime pet mod?
but yes i am glad i have prompted discussion about spouses randomly adopting pets without you noticing. 
poor slime. he just wanted some chocolate cake.
public string getHi(string nameToGreet) 
having slimes in house also has special dialogue from the spouse
The green slimes also only atack you
You. You are the problem
does haley just say "ew" and Emily say "Hello slime friend!"
Kinda seems like they could, since Monster inherits from NPC
"Hi, it's me, I'm the problem it's me."
they're known to greet slimes/monsters, and the monsters can even greet back iirc
i'll never be able to find the screenshot someone posted here of a lovely npc meeting.. "Good morning Elliott!" -- "Hello, Rock Crab!"
i always forget what it is tbh
mod ideas... mod idea... mod requests... mod brainstorming.... could have been any of these or more.
never disappointed by the degen suggestions
Hey I was wondering if anyone knew how to add warps from the main map to a custom map I’ve been up all night trying to figure this out =_=
https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide/action-editmap.md#edit-map-properties
If you're trying to make the warps you typically find between maps like the town and bus stop you can use AddWarps
From the custom map, you can also use a map property in Tiled
https://stardewvalleywiki.com/Modding:Maps#Warps_.26_map_positions
If you look at a vanilla map, you can see the map properties by clicking Map > Map Properties up in the top
If you want to add a warp to like a door you would want either an Action Warp or LockedDoorWarp
https://stardewvalleywiki.com/Modding:Maps#Action
Well I’m like trying to add a custom path to my warp or my custom location how would I edit the map?
For the custom location?
Yes
Just in Tiled would probably be easiest
I’ve tried lol it just gives me a message like assets/farmhouse.tmx doesn’t exist
I don’t know what I’m doing wrong
what exactly are you trying to do? are you trying to go from the farm to a custom map? are you using a custom farmhouse?
Well I was just giving an example I’m trying to make a warp from the backwoods map but every time I load it it says the file doesn’t exist
so you want to add a warp to the backwoods to the custom location? you'd have to use the 1st link that roku sent, the 'addwarps'
!json you can use this site to share what you've got
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.
https://stardewvalleywiki.com/Modding:Location_data assuming you've already created your custom location as well
!log and this site for sharing any errors
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.
Lol
commas?
oh i see
Like are those commas instead of quotes?
which one do they need to be
i think it'll read it all as just under apricot cause your { } aren't broken up by commas
I mean also it wouldn't do anything useful because the key needs to be the ID
Not the internal name
Yeah, unless you added a bunch of items named those things
oh man
true, they're not named in strings, they're numerical
oh roku we already have one apparently?
!itemid
!modderhowtoask
When asking for help debugging your mod, please:
- Be specific on what the problem is! Consider including screenshots to show the precise problem.
- Include your log (https://smapi.io/log) and your C#/json files (uploaded to https://hastebin.com/, https://smapi.io/json, or https://github.com/)! When in doubt, include more rather than less.
- Please narrow your Mods directory down to only your mod and the necessary supporting mods, to exclude mod interactions.
like this?
etc etc
You should check out the Data/Objects json to see what you're actually trying to target
yeah, that's fine
As far as the coloring goes, I'm guessing that's an issue of your editor. Is that VS22?
might be a schema
correct
I tend to avoid doing my jsons in VS22 because its colors are kind of bland
idk any other software
!vsc
When creating content mods, it's useful to have a program that will check the validity of your json for you. We tend to recommend either VSCode https://code.visualstudio.com/download or notepad++ https://notepad-plus-plus.org/downloads/
I like VSCode over N++
634?
oh wait, im looking at the sapling
Why are all tree fruits 634-638 but apple is 613
Probably indicative of when they were created in relation to each other
Seemingly nothing has ever been reorganized
apple was a tree fruit before it was cool
hey kind of a dumb question, but im working on custom hair styles and am wondering. do they have to fit into a grid like this or can they be out of some of the squares by a few pixels?
im guessing they need to be fully inside the grid unless coded differently
you need framework like fashion sense for bigger hair
whats that?
for now im just fitting them into the grid
its not so bad having to sacrifice a couple pixels.
im also hoping this greyscale takes and they can all be colored properly
wow thats a neat mod. will def take a look, ty
In a character mod, when creating different entries (One for forest, one for mountains, etc) How exactly would it works? Im trying to do it, and the 4 events in the same map work but when trying to do the same in others map, it wont load anyone. I will send the json code
if you look into the unpack, you can tell what maps already have an event .json attached to them
Data/Events -> map name
if the map you're using doesn't have one, you'll need to blank load a .json on LOW priority into it (so that way you're not eating any other mod's events)
but looking at what you have so far, these ones have locations
i think the main issue you're having is that the codeblocks aren't separated
(it is safe to use any priority except Exclusive when loading a blank json)
oh
good to know
for every new "Action": "" you have to have it in it's own new { } block
How would it be properly separated? I assumed I did something wrong in that regard but I couldnt find what to fix
Ah, alright, let me try
hmm, now the content wont load
i'm assuming you're just straight loading this file from your content.json
since i don't see a "Changes": [ at the top
oh, is this just in your content.json?
there could be other underlying things, yeah, i'd suggest the full thing
Got it
Using priority 1337
yeah line 98 is complaining about a comma after the }
Hmmm, still doesnt load
you'd have to fix all of them, so the line 98 needs a comma, line 113 needs a comma, and line 128 needs a comma
Ah, I understood you wrong then
the json parser stops as soon as it sees one error, usually
if you're using notepad++ https://sourceforge.net/projects/nppjsonviewer/
i don't honestly know how it looks in notepad++, but it should verify while you're working, so that way you're not missing a comma or a brace anywhere
Is fixed, it now loads properly but, the event still doesnt play
I use sublime text, just a silly mistake by me, wrongly used the ,
none of them? or just one of them
oh and are you doing debug ebi on new days?
like a blank save, if you save, then they won't retrigger
Hmmm I only checked the mountains one
Ye ye I know that
I simply dont save the say
just making sure, there's a lot of variants of people's skillsets when they come in 
hmmmmmm
maybe a patch summary <uniqueid> to see if you're actually editing the respective .jsons
In the smapi console?
yep
Im not getting anything about the events
So i assume those arent loaded
Ah, wait
I think I know what is going on
Okay is fixed, im just dumb lol
my daily quote, "i am stupid"
I must have seen the events, because they were already marked seen in the command you said
xD
Hi stupid. I’m Gervig
Hey where can i find a download for the sound effect when you read a book in game
I went to the XACT folder but thats just .xwb idk what to do w that
You need to unpack them, instructions for the sound files specifically are available on the modding: audio wiki page! https://stardewvalleywiki.com/Modding:Audio
when i unpacked mine, i got a bunch of wavs with extremely unhelpful names like 000000eb.wav, which isn't great.
what is your goal? are you trying to use a particular sound in your own mod?
guys is there like some template for custom characters for me to work on?
(its my fiorst time modding stardew idk what im doing)
!npc here's a big tutorial about it. avi was working on a template but i'm not sure if it's linked in here
Keep in mind that making NPCs is a complex process that requires learning many different aspects of Stardew modding.
Here are a few links that can help get you started on all that you need to know:
-
Tiakall has a great tutorial on making a custom NPC for 1.6.
-
NPCs no longer use dispositions, check the wiki page for the new NPC data.
-
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!
(turns out: it is)
oh man ive been looking for that dispositions file for like 30 minutes now
good luck! making an NPC for your first mod is hard mode. don't be afraid to ask questions in here
or in the thread, of course
a friend did a video on my goth mod pre release xD
https://www.youtube.com/watch?v=V2NLHJGxX6M
► Subscribe for more! http://bit.ly/2aed4A3
RALO CH - @Ralodosmovo
RALO NEXUS MOD - https://next.nexusmods.com/profile/ralodosmovo/about-me
Honestly a really nice mod!
Support me on as well;
► Fairy Tale X - shorturl.at/eJRTU
► GG Lano - https://tinyurl.com/27e3ywn3
► Tales of... - http://bit.ly/2a8Eyrz
► Twitch - http://www.twitch.tv/lanoki...
Anyone know how to replace the greenhouse without it coming back?
explain coming back?
when you remove the greenhouse, if you load the save without the greenhouse being on the farm the game places a new greenhouse at its default position.
I could just remove it every time the save is loaded, but I would prefer not to.
Ah, that's a built in map property
So just remove it every time the save is loaded then?
I am making a mod that lets the player have upgrades to the greenhouse, but if the default greenhouse no longer exists it breaks.
well, it adds it
I looked at that, but it doesn't replace the greenhouse like an upgrade would, it is just more buildings.
Ideally you would make changes to the actual greenhouse building for what you want
I looked into that, but as far as I am aware there isn't a way to have upgrades that aren't just config options.
I guess I could make it so that if a trigger occurs, such as putting items in a designated chest in the building I could flip config values, but idk.
I mean, conditions don't have to be config options, you could add a flag when the building upgrade is purchased, and make the Data/Buildings entry change based on the flag.
That's how renovations in the farmhouse work
Except with the farmhouse rooms and not Buildings, of course
Okay, I'll look at how that works, and see if I can get it to do what I want.
does the numbers mean the game will automatically choose one of those dialogues for the day? like if i have a "mon" and a "mon2" dialogue
Mon_2 refers to a Monday that is also the 2nd day of a season IIRC
those are heart dialogue
Ah, I stand corrected then
2 hearts
and there goes another one
thanks
average cheeto tab count 
Had thought about playing with something that would make "overlapping" dialogues additive but I haven't landed on a decent default behavior. It can be pretty jarring to have a dialogue from one mod and then another as it is
Practically the only page I read on the wiki nowadays is the Carpenter page, so I can see what size buildings are and how much they cost
For everything else I use ilspy
I've managed to shave my current count down to 15 tabs for helping and making lol
Now I just play a fun memory game every time and switch one of my tabs around to various wiki pages lol
can i use \n for new lines on dialogue?
ik its common on json files but i checked the vanilla characters dialogues and not a single dialogue has made use of that
so idk if its supported or not
I think I've used it in dialogue boxes before, but haven't tried actual character dialogue
converting sprite assets from one thing to another is... surprisingly exhausting when there are a lot of sprites
I just spent longer learning how to make a C# console app create a fully filled out texture.json with manual variations and rename all those textures for an AT content pack than it would have taken to just finish creating the content pack, would have saved time if I had made it to start with, but I guess I have it for the future lmao
It was at least less tedious than the AHK script garbage I was doing before
also, since I'm having a hard time figuring out/finding the information for something like this: when it comes to resprite mods, like BAGI, for the asset sheets, is there a specific order the sprites might be following?
To clarify, I'm talking any mod where the folder is just:
data.json
manifest.json```
where data just kinda lists the names and then where it gets pulled from ie [assetname].png
Are you looking to force text on a single line, or just add additional dialogue lines after the first?
\n has weird behaviors in some places
the answer will depend on the framework in question thats asking for the sprite sheets
I guess that would be... ebagi I think? but I can't find the framework info on the github
I am not very versed with github tbf...
I just gotta put some mental names to some of these sprites as a lot of them have similar colors and I need to fix the correct ones
i think ebagi just uses the same format as BAGI but ive never used it so im not 100%, but it probably does?
so you'd wanna look at bagi's documentation for it
isnt the original bagi outdated now though?
guess it might not matter
if it just follows the old content order
yes, but if ebagi wanted to maintain compatibility with bagi mods itd need the same format
or do some manual conversion, but why do that when it can just use the same format
hmm
and since ebagi itself doesnt mention any sort of documentation even on its github i can only assume its the bagi format
ok let me just air thoughts just in case. its a conversion mod for ebagi CMC https://www.nexusmods.com/stardewvalley/mods/22377 to be compatible for ebagi fancy artisan https://www.nexusmods.com/stardewvalley/mods/23373 (ie updated sprites in fancy's style), and it looks like they use ebagi's framework, which means BAGI documentation in the end of everything, for clarifications sake
argh my brain 😭
sounds right to me, as far as i can tell
sorry my brain is just, struggling to see if and where cornucopia ties into it for /22377, as obviously that wasnt apart of ebagi. I'm sorry I'm probably way over complicating this
yknow what this is probably for future me to be frustrated about cause I'm not even near done the sprites
sorry i cant be more help! im not really at all familiar with EBAGI/BAGI or anythin like that
no, no worries
i want to
have the dialogue
kind of like this
I just find all the new changes more difficult as a visual learner, as I cant just pop in to the files anymore and get a grasp on why x does y (all the new stuff is so vague to me now, but i understand that its overall easier and better for modders)
like with the old content jsons
in this case the BAGI stuff is a separate thing though, content patcher mods still use content.jsons like you are likely used to
BAGI/EBAGI is just its own framework so it makes its own format, completely unrelated to Content Patcher
i see it here and there, but with this pack and a few other cp sprite changes, all I see are the asset pngs, a data file and a manifest file
if a mod does not include a content.json, it is not a CP mod
You gotta be careful with that, because you can make your content pack take a content.json lol
and they all seem to just patch it in just fine -- I know that they are relying on the framework, as they say "download ebagi"
If you just really want to embrace insanity
I just dont understand how they are connecting lol
its just important to remember the distinction between a content pack and a content patcher mod
mm correct
double checkign this is definitely just a bagi/ebagi mod, and not cp
Im just alcking the in between information on how the files within them interact, cause yes the main ebagi file has content json and other data files telling the framework what to do
I just tried to add a \n to a NPC dialogue and it didn't work
The add money action I put on the end of it did so I know the changes took effect
the main EBAGI file has content.json?
sadge
but the patch files I have just have like
"Jelly": "assets/jelly.png" ```
for the data json and a regular manifest (saying that it is for ebagi)
so this CMC one I'm trying to figure out how they ordered the sprites cause it doesnt seem to be alphabetical like the data file
my brain hurts and I am probably just confusing ourselves
nope my b, its a config
Ive been hoppign in an out of files all day ^^;
theres a dll
i think for BAGI the sprites just need to be in the same order as your Fruits list
but I dont have anything to ... open...? it ?
you dont open the .dll
the bagi .dll is like ContentPatcher.dll, you dont do anything with it, its what loads your data.json
ContentPatcher.dll loads content.json content packs and all the files it needs in your mod folder
BAGI.dll (or w/e its named) loads data.json files to load the rest of your bagi content pack from your mod folder
Closest thing I even found to mentioning line breaks in dialogue was this: https://stardewvalleywiki.com/Modding:Common_tasks#DialogueBox
But that's for C# and using DialogueBox rather than character dialogue, I think, since ^ acts as a gendered dialogue indicator instead in character dialogue strings.
(also i wish you the best of luck Shiloh i believe you'll get there
hopefully someone more familiar with BAGI comes along for better help since i gotta go do some more last minute hurricane prep)
stay safe <3
Mail uses ^ for line breaks too, I think
some are in the same order as the data, but others dont seem to be, ie for fruits it lists ancient coconut first and then in the wine png the first one is... blue and purple??? which I guess maybe they might be playing off the ancient fruit wine vibe?
I can only assume that that was their intention
I can't figure out how to make it flag based for a building upgrade without replacing the building with the upgrade. Would I go about this as buying an item like you do with recipes?
Can you explain exactly what you're trying to accomplish? New additional greenhouse, replacing vanilla greenhouse upon upgrade, replacing vanilla greenhouse with new one from the start, etc.? I'm tired and have the brain fuzzies so I want to make sure I understand correctly.
I am trying to replace the vanilla greenhouse with a different map from the start, and then again on upgrading it.
I do not want multiple greenhouses on the farm.
Okay. So you would be changing the Data/Buildings entry from the start with no conditions for the vanilla Greenhouse, and for the upgraded Greenhouse, would likely be able to use the BuildingToUpgrade setting to make a separate Upgraded Greenhouse entry and force it to replace the non-upgraded Greenhouse building.
yes, but if you don't have the base greenhouse on the farm the game adds a new greenhouse. So I can't mae them multiple buildings instead I have to overrite the origional greenhouse multple times based on a flag check.
well u can use mailflags
ok, so having the upgraded one still forces the game to respawn the Greenhouse, I am getting a clearer understanding now.
thats what fireredlily was getting at earlier
Yes, you'd use mailflags to get around that.
aaah, I did not realize that there were different water tiles that looked the same and had different tile properties! looking at the vanilla Forest map, underneath the bridges there ARE water tiles that don't have the passable F tile property! thank you for pointing me in the right direction
iirc u can do trigger action on shop purchase
so add thing to robin shop to add flag on buy (while u dont have the flag)
So I would do it similarrly to how recipes are bought correct?
And then you'd do what I mentioned earlier to change the vanilla Greenhouse entry contents instead if the mailflag is found.
Which would prevent the respawns because it'd still be the right building ID
Okay, I think I am understanding it now. I just have to find out how to do the special order questline thing now.
Ty
Apologies for getting confused for a bit there! I got my flu shot yesterday so I'm a bit off my game today.
You're good. Without you I would still be trying to make it work with building upgrades.
???
works perfectly! thanks
i don't respond to 'hello', only to 'here is your new alpha build, my liege'
Hmm, former junimo vs current "1.6 developer" role, who ranks higher on the totem pole (ie. would I really call you "my liege")
it's not about the power, it's about the prestige
how come u r just no longer green instead of forest spirit
i wasnt sure about nuance of that role
the person with the most amount of chocolate cake...and is willing to share that chocolate cake should be called my liege.
Also Casey is more than 1.6 developer
pathos never gave himself the 1.6 developer role 
She also wrote the splitscreen code, right?
👋 very random question, I'm new to mods and looking up tutorials. How difficult is it as a beginner (without c++ knowledge) to make a mod that duplicates the magic rock candy and includes fishing and farming stats to it?
how on earth can i draw animated stuff in a menu without having to do it manually ?
you can add fishing and farming to magic rock candy without C#
I like the sound of that
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.
thanks
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!
Look at the many times a stardew menu uses a temporary animated sprite
Only some of it
so i thought that but i thought those were for inside maps
i will take a look
Just wanna install the book opening sound and use it as the notification sounds for my phone lol
anyone know why planting a sapling would result in the sapling item just being placed on the ground and can't be moved? am trying to fix a mod
here is your new alpha bug, my liege
SContentLoadException: Failed loading asset 'assets/sprites.png' from SMAPI\spacechase0.spacecore: the specified path doesn't exist.```
wonderful how my spacecore merge can come back years later to fill my console with errors
it remembers me....
Speaking of splitscreen, Casey. https://github.com/Pathoschild/SMAPI/pull/964
Pathos sez vanilla should deal with it
I'm quite confident in my diagnosis of the issue. But incredibly unconfident about, well, the solution proposed
kay so i've done this
for (int i = 0; i < amountOfStardrops; i++)
{
var tas = new TemporaryAnimatedSprite("", new Rectangle(0, 0, 16, 16), 70f, 3, 9999999, new Vector2((int)BatPositions[i].X, (int)BatPositions[i].Y), flicker: false, flipped: false, 1f, 0f, Color.White, 4f, 0f, 0f, 0f, true)
{
texture = Helper.ModContent.Load<Texture2D>("assets/bats.png"),
pingPong = true
};
}```
but i see nothing on the screen. is the Position 'screen position' or world position??
i do it the same way other UI menus are doing it
have you assigned tas to anything yet?
When did "desperado" change to "despacito"?
so for example, stardewvalley.menus.junimonotemenu.cs adds to a list and calls draw from override void draw:
foreach (TemporaryAnimatedSprite tempSprite in tempSprites)
{
tempSprite.draw(b, localPosition: true);
}
which also neatly answers the question of whether it's screen position or world position
i did not have it showing up anywhere, i forgot to even render it or anything, i just have it create the tas and then do nothing like a dumbass
yeah that's perfect thank you sm
is localPosition screen pos ?
wait i just noticed this lmao wtf
yesterday, i think 
we always ask the obvious and silly questions 😌 just in case
(i know smapi does come caching, but is the difference still significant enough to recommend not calling Load for the same texture inside a loop, i imagine?)
Pathos said yes, the other day.
localposition would be screen position, yes -- tas.draw() simply checks local ? position : globaltolocal(position), which subtracts viewport position from position
i.e. SMAPI's Load isn't just a cache lookup, it's a bunch of farbibulation of the arguments and then a cache lookup.
nice, thank you !
alternatively you can use new TemporaryAnimatedSprite() { local = true } to force local regardless of draw params
now i need to try to figure out how to draw the things to where they need to go
oo handy, thanks !
so got this UI, need the bats to draw inside the slots. also they're not animating 😭
gosh darn it]
Huh, for some reason I thought split screen had a separate content manager for each screen
It feels like it should, at least for maps, because of... well, what you discovered
I think the way stardew does splitscreen is a bit crazy anyways 😂
and... multiplayers another story 
!start
I had an alternative way it would work in my prototype mod (not using networked MP internally), but it would have invovled changing a lot more code. (Still used the instanced statics stuff for a bunch of things though)
"Normal" splitscreen support would need to have the game designed with it in mind from the start
Yeah
For animating, I think you need to call update or something on the TAS
Stardew just went uhh let's just run another game instance 👍
oh right
ty ty
honestly just search junimonotemenu.cs for tempSprites, since your create method is fine -- you just want to be sure to include the behaviour from draw, update, setupmenu, cleanup, etc
alright thank you thank you
It does not
now to hardcode the bats positions through bruteforce...
i couldn't tell you were using a local overload for the ctor until i pasted your code into vs, so don't worry about { local = true }
ctrl+. -> add argument name (and all following arguments) my beloved
Sometimes hacks are done in established codebases to get things working. 😛 There would have to be an insane amount of rewriting to make it work the same way you would if you designed it with splitscreen in mind from the start
i'm also never sure whether we should use TemporaryAnimatedSprite.GetTemporaryAnimatedSprite() whenever possible since the game sure doesn't half the time
i'm sure it's using the sprite pool i've seen around but also the game dgaf
okay so ive got no flippin idea how to place these positions without abusing hot reload
but that's gonna like
mess stuff up if the window is a diff size
simply abuse hot reload. you're making a ui hahah
perfect!
I think I'll cold reload
not perfect.
merely refer to junimonotemenu.cs 😌
close enough
wait what does that mean
love the ankh
you can just recreate or reposition them after the window is resized
try to comprehend the positions challenge:
BatPositions = new List<Vector2> { new Vector2(BoxBounds.Left + 32 + 41, BoxBounds.Top + 32 + 30), new Vector2(BoxBounds.Left + 32 + 41 + 101 + 16, BoxBounds.Top + 32 + 30), new Vector2(BoxBounds.Left + 32 + 41 + 32 + 4, BoxBounds.Top + 32 + 30), new Vector2(BoxBounds.Left + 32 + 41 + 48 + 4, BoxBounds.Top + 32 + 30),
new Vector2(BoxBounds.Left + 32 + 41, BoxBounds.Top + 32 + 30 + 16), new Vector2(BoxBounds.Left + 32 + 41 + 16 + 4, BoxBounds.Top + 32 + 30 + 16), new Vector2(BoxBounds.Left + 32 + 41 + 32 + 4, BoxBounds.Top + 32 + 30 + 16) };```
not mine but they're great !
hi have you considered a nested for-loop with x-y coordinates for (x < numWide) and (y < numHigh) with position = x * width, y * height
oh lol looks great anyway
I love magic numbers!
(with ui you just gotta do that sometimes sadly lol)
at least 40% of my accessories has that symbol on it
hi i haven't but that's probably better than whatever the fuck this is
My ocd is kicking in here

Avg hobby coder
Sadly
Yup
you spend hours at night coding
then just basically redo all of it in the morning
so you wasted hours you could of been sleeping
somet like this
for (int i = 0; i < 4; i++)
{
BatPositions.Add(new Vector2(startPosition.X + i * xOffset, startPosition.Y));
}
for (int i = 0; i < 3; i++)
{
BatPositions.Add(new Vector2(startPosition.X + 3 * xOffset, startPosition.Y + (i + 1) * yOffset));
}```
so now i need to figure out the exact value of xOffset and startPosition
last night i tried working out how to get the smapi nuget package to bundle a csproj content pack without the obj/bin/csproj files and gave up when it wouldn't behave
oh did u pick up the thing to replace stardrops with bats
yeah
skill issue
for (int x = 0; x < 4; ++x) {
for (int y = 0; y < 3; ++y) {
BatPositions.Add(new Vector2(
x: start.X + x * spriteWidth,
y: start.Y + y * spriteHeight)
}
}
I wonder how many things CA wishes he could redo or make way cleaner but can't because he needs to make sure that anything he does now doesnt break any mods that much

why are you an angel
i broke my ass falling from heaven
🤣
At least the code in stardew is readable, then theres the people in the monogame discord using the most weird C# stuff to get the most performant code, im like 👀 the heck is that
when it was brought up initially i think i just suggested them to replace the
x 4 texture and call it a day 
You should see some of atra's code. looks at their wearable buffs implementation
(I don't mean that mean, just that atra's code is largely above me)
@lucid iron thanks for the tip!
No it is not above you
My insanity is not a good thing
it's all on you i didnt do anything beyond links 
Performance is important, I'm just lazy
Profiling stuff in Stardew isn't exactly trivially easy, either.
performance is important, but putting things on one line is importanter
I'm at work so do I need to pull in Desty as backup.
Well, .sml will let you write your entire UI on one line, if that's important to you.
Desty might agree right now considering I'm behind on S&S stuff 😓
I'm struggling to find it but I'm thinking about the IOCC entry that was literally one character in the source code to supplying all the code inside a preprocessor define through command line argument in the makefile
it appears ' start '
Vector2 start = new Vector2(BoxBounds.Left + 256, BoxBounds.Top + 128);
for (int x = 0; x < 4; ++x)
{
for (int y = 0; y < 3; ++y)
{
BatPositions.Add(new Vector2(
x: start.X + (x * 16),
y: start.Y + (y * 16)));
}
}```
is not functioning as expected... the first one should be like 256 over but it.. is not
ah yes, this must be content code
this is not midnight activity
is there some border/margin stuff
yah you should get back to it tomorrow
my brain does not WORK
I want to write a C# stardew mod sometime I just have no ideas, about a year ago when I made my first mods with just content patcher I wanted to make C# mods but knew absolutely NOTHING but now I've been making my own games so I would say I know a decent amount now 😂
the border is like 32 ish thick
on a drawBox
i'd only say to check boxbounds is created and using the xpos/ypos of the menu
...
hold on
1 sec
BoxBounds = new Rectangle(Game1.safeAreaBounds.Left + 320, Game1.safeAreaBounds.Top + 128, Game1.game1.screen.Width - 580,
Game1.game1.screen.Height - 256); // define the box boundaries```
?
is that just as valid... ?
where did you find this field lol
i do not know
I think uiViewport is more traditional.
i've literally never seen this in my life
apparently me neither
consider: Utility.getTopLeftPositionForCenteringOnScreen(width, height)
i make ui 😌
just one of many very very long stardew method names lol
I wonder what the longest one is
im sure i used it in one mod
is there a cap in C#
can't remember exactly what it is
not afaik, probably some kind of hardware one like 2^32
Everything in Utility is like that.
Utility.getRaccoonSeedForCurrentTimeOfYear
Or Utility.doesMasterPlayerHaveMailReceivedButNotMailForTomorrow
crazy how raccoon seed methods and mail methods are all in the same Utility class
utility has my favourite methods like makeTemporarySpriteJuicier and playersCanGetPregnantHere
Yes well... I was always a hardass at work when someone tried to name something Util or Utility or Helper or Common, because they always turn out like that.
is it bad that i think racoons was all CA bc of how hardcoded it is 
oh wait a second
GameLocation.checkForTerrainFeaturesAndObjectsButDestroyNonPlayerItems
I noticed that new version features are coded better than older features duh obviously
Utility.isThereAnObjectHereWhichAcceptsThisItem
👀
but is that because they arent CA?
like imagine a mod doing racoon bundles, they'd prob go with a racoon_seed_spring context tag
I would imagine CA has gotten a bit better at code writing after all these years, so maybe some was him 
i hope so
it was genuinelly surprising to see trinket follower pet code actually use decent object oriented programing
after going through marriage code
if it's complicated but makes sense, pathos wrote it. if it's complicated and doesn't make sense, ca wrote it. if it's written in snake_case, podunk wrote it
I mean hey, isnt the best code but he didnt care and just made a game, But im stuck where I look for HOURS on the many ways other people have done what I want to figure out how I should do it well
Wow, what about me and Myuu
I have a method at work literally named "hokeypokey"
else
I talk a LOT of shit about stardew valley code but in the end of the day CA is the one with the great published game everyone loves and adores
and I'm the one with dozens of unfinished projects spread around my unity godot and monogame folders
very true 
mood
i have.. so many...
random mongame projects
for testing like very specific things
and random demos of stuff
I think it's rare to find an indie game with good code.
maybe that's the secret
just let go. feel the flow. code with the mind eyes
> puts every single line of code in game1.cs
You tell us, which parts did you write?
players dont see the spaget anyways
I think people prefer art over good code
Yeah, if the code can run at 60fps, then you're good, the art is what makes the game feel and look professional
A lot of indie games are on a smaller scale, so the impact of imperfect code is less noticable
If your game feels bad to play, then they'll complain, but if it feels good to play, that's the baseline and you did exactly what was expected
now you get it
i mean ca basically did that 👀 game1 is so big
There's also a little thing we like to call "gameplay mechanics".
gameplay mechanics? barely know her
Not even close. (And in the original, Game1 is partial for a couple reasons)
only modders and the dev himself cares about good code
modders will mod anyways, and the dev usually just flows with his own creation
specially single dev projects like stardew
(originally)
I think people prefer games that are fun over games with good art. But I suppose we can all agree that code quality comes in approximately dead last.
I don't think it is possible for games with good code to come out tbh
By the time you've made things nice and pretty someone else beat you to market
sure, but games with good art have more of a tendency to become widespread successes I'd say
that does explain a lot about my mods tho
And yes, I'm saying "you" as "you guys"
terraria makes my eyes want to bleed
I want no part of any of it.
*the code
Interesting point actually, a trade off I dont see mentioned much
That's patently untrue, and we've had the conversation before. Lots of massively popular, first-mover games had brilliant code, like Doom.
oh rimworld has some good code!!!
there's like some stuff that's not >great< but overall I'd say it's very welkl constructed
Hey, I just had to put my work laptop into the work fridge because fucking [redacted], man
I'm going thr fuck home and the fuck to sleep
Fuck today
Well, back then if you didn't have brilliant code the amount of things you could actually do was very limited
when people had to code in C and actually understand what they're doing well their code was more well structured, I imagine when people can code a lot more easily with C# or python or something else they don't spend the time they need of how to create well structured code
but who knows
Game code quality runs the gamut from John Carmack to Todd Howard.
nowadays you can push out a fully functional game without any code
is it hollow knight?
that's done in some sort of visual scripting tool
i dont remember !!
My game WIPs are fairly clean (for the most part)
But they're also not very far along
I usually spend less time making the game do game stuff and more time overengineering expandable systems I'll never actually use for anything else anyways
Hollowknight does have a code side to it, but a lot uses some asset mechanics like visual scripting
Mods? Most of the time I don't put much effort into good organization looks at S&S
scratch 🔥
You can push a fully functional cookie-cutter game without any code. And if you find just the right niche, it might even be a hit, despite being derivative. But nothing truly innovative comes from that.
Yes, you can. If money is your sole objective, then go for it.
For modding I like to pretend there's a bunch of popular great modders who will absolutely open my 200 downloads mod no one cares about look at my code and send me DMs making fun of me
so I try to make my code pretty
I think there are other things than money or innovation you can aim for.
(i have no lofty aspirations ill take the money please)
My biggest fear
I would like to make some money so I can survive
I mean, you guys say that, but I don't think making Stardew mods is a very profitable avenue.
what? then why am I installing cryptominers in my mods for?
you'd be surprised how many people look at the code. for some reason love of cooking has 18 forks
Not at all, I'm just disabled and putting off other things I should be doing
maybe it's appropriate for a cooking mod to have forks tho
I mean, that is a pretty popular mod with 160.00 downloads
(also if anyone ever comes in here with a bug related to your mod there will be like 3 people who WILL go look at your code to pick out whats wrong wiht it so—)
my code quality pursuits are more like
the only thing in stardew I really dont understand how CA setup right is depth, like every class i look in has what looks like keyboard smash in the depth value
😭
transpiler scary hope next version doesnt explode these
Ahh, so you're saying the spaghetti code in some mods is actually a defensive measure! If no one can read your code, no one can prove it's a bug.
It's divided by a value in the original source
i protect myself from that by making my mods unpopular enough nobody will ever bother complaining about them 💔
Ngl, after what I have to do for day job, I don't want to think about code quality
honestly probably true. could even go a step further and write all your patches in IL too to really thin the numbers of people who can parse it
That's how ieee754 works
Like actually
ah, so in the actually code its not just random 1287 + 1873 - 38 * 3 or something? 
consts are optimized by the compiler
1f / 10000f my beloved
Better yet, write a mod that uses ILGenerator to write the IL that does what the mod really does.
into just values
The entire mod is created at runtime.
Oh shoot
write a source generator
thats a strat
then you can turn the runtime-mod-creator into an asset so people with Content Patcher can—
"It's not my problem, some other mod must be messing with the IL that my mod generated"
use a source generator which interfaces with GPT to create a mod the user asked for and iterates 100 times until it actually compiles
There's a lot to be said for defense in depth, but I think one level is enough. If you're still worried about it being too readable, you can always encrypt it.
(and I think I just described Denuvo)
Consts my beloved
Its interesting that via reflection you can still access the consts as if they were fields
But the compiler replaces every usage with the value itself
This was too much power
Been useful for custom unity editors
yes I am a horse girl at heart
Maybe only if they're public so other assemblies can reference them?
I've never used private consts so I don't know if they get included or not but I would imagine not
That's not optimization, though, that's how a const is supposed to behave. Otherwise it's not a const, it's a field.
Inline replacement is the definition of a const.
Not in Javascript, but I get what you mean
Nor in C++
Yeye i just mean its cool that its not just a compile time thing like a #define but an actual field
Haha, ok, if const is a declaration keyword that can be used in place of var then it means something different.
Like it is a compile time thing. But it is also stored in the class declaration
I fully expected consts to just not exist in runtime
I'm pretty sure const does behave as an inline replacement in C++? It just has other uses on top of that.
Isn't that constexpr?
in C++ dont u just #define
I believe that is so other assemblies can reference it.
Const is the js equivalent to c#'s readonly
and then it gets preprocessor'd into stuff
Js is weird
You can, but that's from C I think
If the C# compiler only cared about your assembly, it could optimize away the constant completely, but because it's a DLL and other DLLs are supposed to be able to reference that constant at runtime, it has to be kept.
gasp what mod did you use for the horses
(as barn animals)
well that's good reason to have alternate for C++ i guess 
(And yes, regarding JS, const in JS is the equivalent to let in normal languages.)
JS also doesn't have const fields, only const variables. I think if you define a const variable in C# (i.e. inside a method), it will get totally optimized out.
Haven't looked at a decompile to prove it, but it's a logical assumption given a method-scoped const has no other purpose.
(It does, but Roslyn doesn't do much of the const folding)
@ivory plume morning, unused field found in the wild 🌄
-- i also couldn't seem to get IgnoreModFilePatterns working with ContentPacks using ModBuildConfig 4.3.0 when rebuilding my C# project independently of a CP project in the same solution. it's deploying the CP project csproj file as well as the bin and obj folders whenever the C# project is built.
is this the correct format for the ItemGroup in the C# mod project file?
<ItemGroup>
<ContentPacks Include="..\[CP] MyMod" Version="$(Version)">
<IgnoreModFilePatterns>\.dll$, \.pdb$, \.csproj$, ^bin, ^obj</IgnoreModFilePatterns>
</ContentPacks>
</ItemGroup>
i can remove the CP project and just have it as a folder without any csproj if it's needed, but it's nice having the assets in the solution explorer
-- is this the cause?
#making-mods-general message
Is there a way to make a special order be given to the player upon seeing an event rather than getting it from the board?
Sure! There is an event command for that
do you know where I could find any documentation on that? I have been looking around for a bit now.
[[Modding:Event_data]] iirc
i was gonna link the event data page but its not actually on there it seems?
Oh weird
but its addSpecialOrder <special order id>
Looks like all the event changes haven't been moved yet
i forgot there was still stuff on the migration page tbh
Your time to be a hero :p and fix the wiki
It seems like some of the new commands are there and others are missing
probably from people noticing things are missing like this same situation and just adding them without realizin they were on the migration page
Yeah, I definitely forget to check the migration page whenever I'm adding something missing
(oh you're supposed to do that? i honestly just force hide the folders then watch from the folder explorer
)
All the animals are from a personal mod I'm making to add a bunch of custom animals
The horse assets came from cajcbell (https://www.nexusmods.com/stardewvalley/mods/21024)
(well i can't say whether you're supposed to do things this way, but i like having c# and cp as projects in a solution, other than having to rebuild solution to deploy both)
i had my 1 cp + c# project like this
CoolMod
[CP] CoolMod
whatever.cs
but i thought the point of ContentPacks was that you don't put the CP mod as it's own thing in the sln
it just gets copied too whenever u build the C# mod
Was mod build config 4.3.0 released yet? If so you can use this in your main mod: https://github.com/Pathoschild/SMAPI/pull/940
i like to switch back and forth between the c# and cp component cause i'm stupid and forget what my own assets are named
it doesn't say that's the point of the contentpacks itemgroup, just that i can bundle any folder with my main c# mod, and that i can ignore files by pattern
Oh, I see
i'm using 4.3.0 and the contentpacks feature hahah
I should read closer before speaking 😛
I read your message but not the code
but the message said i'm using 4.3.0 and it's deploying unwanted files :(
Yeah well I should read closer
I look forward to it then! I oddly enough, think the horses would pair really well with that mod that makes them poop and you can turn that into fertilizer lol
.. is this right?
// parse ignore patterns
string[] ignoreFilePaths = this.GetCustomIgnoreFilePaths(this.IgnoreModFilePatterns).ToArray();
Regex[] ignoreFilePatterns = this.GetCustomIgnorePatterns(this.IgnoreModFilePaths).ToArray();
https://github.com/Pathoschild/SMAPI/blob/66d9e82fffb61c6cf3347c9f7278bc56b0687aae/src/SMAPI.ModBuildConfig/DeployModTask.cs#L126-L127
and
https://github.com/Pathoschild/SMAPI/blob/66d9e82fffb61c6cf3347c9f7278bc56b0687aae/src/SMAPI.ModBuildConfig/DeployModTask.cs#L152-L153
Oh it's not being released it is for my own use only. The mod uses different assets from others it would not be right to release.
The Hereford Cow (brown and white cow) does make manure lol. It was a fight to get it working though, The horses will be dropping horseshoes
The unused field is removed in the next 1.6.9 beta patch. Thanks for reporting it!
For the second issue, can you try with this version? (Let me know if you need help referencing a local NuGet package.)
Man do I love the S&S teleportation circles feature. (Just added the essence cost like it should've had all along)
say wouldnt IgnoreModFilePatterns apply for both the C# mod and the content mod
They're set separately for the C# mod and each content pack, so you can have different values.
ok so one of these crops has a random chance to be different colors but the mod I'm referencing for it only has the 1 color. should I add the other colors in the data sheet as such:
"Cornucopia_BellPepperColor" (essentially whatever its called in the main file's json?)
the alpha nupkg seems to have the same issue, i'll put together a quick c#+cp project solution for you to test
can i make a location like FarmCave decoratable
I thought farm caves are decoratable by default, are they not?
no u cant put stuff on walls
hi, you can give this a try:
maybe also an optional param to set the parent folder name would be nice
(✨)
Can you post a bug report in the SMAPI repo? I'll probably take a look after 1.6.9 is released and the dust settles at this point.
will do, thank you 
Thanks!
Is there something obvious I am doing wrong here? Does content patcher not allow for checking if a flag is not set?
https://smapi.io/json/content-patcher/b70964d193114f5689a7672ee9b09cbc
"HasFlag|contains=GreenhouseV2": "false", though please name the flags something more unique if possible
CP doesn't do negations like that, I think only GSQs do off the top of my head
Okay, and I was going to, but I am in the early stages of what I want to make so I wasn't too bothered rn.
to be clear, a GSQ is a game internal thing you would be using in a somewhat different way
just trying to give context about why you might have seen ! other places
I have used it when doing some C# and that worked, so I just made an assumption.
ah... yeah C# is not going to have a ton of overlap with CP, really the main thing they overlap in is both being somewhat structured
CP format is more of a data structure that gets processed by CP into game data, which C# is full on programming
okay. thanks for the info
Alright, so I'm finally working on updating my pre-1.6 mod to 1.6! I have a handful of dependencies it used that I'm wanting to know if they either have been updated or have been replaced so I can learn how to use what I need to to make it work similarly to how it did before.
JSON Assets
Mail Framework Mod
Quest Framework
SAAT
Shop Tile Framework
how would I go about checking if a flag was false for an event trigger then?
you can do pretty much anything you might need to do with these dependencies with just Content Patcher in 1.6
Something you can do for a quick start is to load the mod in with 1.6 json assets (and maybe mail framework mod?), then do patch export Data/Objects
Should be able to see how json assets did your objects
woah sounds like i need to dive through the CP documentation then
this is cool news
Does anyone know how to make an entrance from the main map to a custom map?
Can you define what is main map
Backwoods
You just need to add a warp to your location on the vanilla map after you'd defined the custom map. Please be aware the backwoods is excluded from NPC pathing.
Oh damn
So NPCs won't travel through it and will need a separate warp that goes to a different map.
What’s the best place to put a warp then?
I think most people make an NPC Warp to/from the Mountains to get around that?
Railroad is fine too, as long as you don't care about being SVE compatible lol
LOL
Most maps are gonna be hard to find room for if you want to support SVE
Yeahhhh, SVE makes a mess of the map for warps
Probably better off going straight for the Bus or Train Station approach if you want SVE compat
People find all kinds of wacky nooks
Less of a headache
I really don’t use it so I’ll be fine
It's probably best to pick something and post a screenshot here to see if anyone has good suggestions
I might make the path at the bus stop actually
SVE does mess with south of the bus stop right?
Just be careful because of the shortcut to Backwoods added in late-game for Bus Stop
So you don't use the same space
That's in the actual backwoods isn't it?
It's not a two-way?
and iirc is why pathfinding is banned
Like it goes down to the road and you have to play in the road to reach it and the bus stop
I haven't built the shortcuts in so long, I just remembered there was one between Bus Stop and Backwoods
or maybe it's just the general loopiness
SpaceCore resolves that doesn't it?
but the shortcut is a stairs going up
Right, so my thought was not messing up the stairs.
spacecore might does, i haven't kept track
Should be fine, as the stairs are on backwoods
good to know
i think it's also that the map is disjoint (before the shortcut), but the map->map macro pathfinding step assumes each map can reach all of its exits
It leads to the road and all you have to do is run right and you're at the bus stop
https://www.reddit.com/r/StardewValley/comments/12ygumi/my_backwoods_has_a_fruit_stand/ this pic shows the shortcut I think
Ichor is correct
ah yes more graph theory problems
The vanilla pathfinder is pathological for loops
Does anyone know I would merge a map like add a building into town?
But will generate a valid (if probably too long) path
lmao i live to summon atra into the modding channels by mentioning the pathfinder
Create the building in it's own tmx and EditMap patch it onto the other map
angry cat hissing noise
I have no idea how to do that lol
Hm, I never got around to putting my CP examples back on git
Ripp I’m honestly struggling lmao
i put 1 flowerpot down next to hatmouse and gave 0 care if SVE did anything to it, no bug reports so i'm going to assume i'm in the clear
https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide/action-editmap.md
I would start by copying the map you want to put the building on, creating your building on it and then stripping out the original map so that you have a tmx that's just your building
You can either make the map the right size for your building or leave it the size of the whole map, just changes how you have to set the size of the patch area
I usually put down some Path layer tiles to mark the major bounds of my stuff while I'm working so I don't forget where I need to delete
Or maybe nobody knew there was supposed to be anything there and just haven't noticed :P
no i definitely left an image of like, "this is how you warp to the map, touch it"
Oh I see, it being a warp definitely changes things lol
Still, I've definitely come back to a few of my mods months later and just been like "Oh, this major feature has just been broken this entire time and nobody said anything, cool I guess"
although, looking at my screenshot, this might be my SVE save
and i don't think ichor made lacey's house bigger ...unless
I forgot to set a description for a big craftable I made and so it doesn't have any info when you hover over it in game, nobody has said anything
Ichor made the door but it's same size iirc
Tbh i would have thought that's intentional
I only just noticed it was broken a few days ago, still haven't gotten around to actually fixing it
If it was just a blank box with the name that would be one thing, but it's like literally nothing pops up if you're missing some of the required fields
the only thing that wasn't brought to my attention was my some odd 300 lines of gifted dialogue weren't being used
it was during my debugging that i realized the patch wasn't being applied, ever
Example of the json needed to edit a custom map patch onto a vanilla one. You may not want to use "PatchMode": "Replace", depending on how you make your custom map.
{
"LogName": "Edit National Park entry into Forest - Lite",
"Action": "EditMap",
"Target": "Maps/Forest",
"FromFile": "assets/maps/Aba_Forest_Lite.tmx",
"PatchMode": "Replace",
"FromArea": {
"X": 0,
"Y": 0,
"Width": 15,
"Height": 11
},
"ToArea": {
"X": 0,
"Y": 41,
"Width": 15,
"Height": 11
},
"AddWarps": [
"-1 48 {{ModID}}_NationalPark 59 31",
"-1 49 {{ModID}}_NationalPark 59 31"
],
},
sounds like theyre not very required 
That's true I guess lol, required enough to break the rest of the "required" fields but not enough to break the whole item
A soft requirement, as a treat
Omg you’re a life saver 😁
Tysm
Now that I'm more familiar with editing the pipeline in SMAPI, I could get rid of the CP element of this mod
it takes the same footprint as the vanilla ruined house, but technically i converted the shed/garage/whatever that is into a mudroom and put the door there
Naw just slap a ContentPacks on it
i have yet to make progress on that crow-scaring building, my brain has not wanted to read or even think
I tried to inherit off Building but for some reason I couldn't get the custom building to accept the type
More seriously I don't want to change the folder structure of any published mods
I wasn't even sure if I was registering with SpaceCore correctly because it wouldn't change it to my type
So I don't think I would change it (to smapi content)
changing the folder structure of a mod with any significant number of downloads is just asking for users to end up with the leftover folder alongside the new stuff
Well it would just be the removal of the CP mod I bundled with it lmao
bc they will just drag and drop
Did you set the createonload stuff
Wait no u r speak of buildings oops
(i think i'm fine then)
Oh ok, I was gonna say that didn't sound like an option I remember lmao
Are u make a new building
Was trying to find someone else who had made fully custom buildings with their own class type, but couldn't really find any that were going that far
Yeah, I was building a new building each time
and i'm dumb and i couldn't get the GetData off of BuildingData, so my brain flatlined
Wait aviroen I told u about that
The mod or your brain? /lh
both
you need to call GetData on an instance of a building
it will also return a BuildingData object not a Building object
yeah
we were gonna do the skip crime
Skipping the add crows?
if any building on the farm has specific customfield, skip addCrows, yeah
foreach (Building building in __instance.buildings)
{
BuildingData data = building.GetData();
data.CustomFields.TryGetValue(...)
}
__instance should be Farm which inherits from GameLocation
oh instance.buildings 
I wanted to make my own custom building so I could still use the add crow section to create a dialogue that says how many crows were fed lol
But I'm really unsure how to make the custom bulding accept my custom type
well mine i didn't want to activate at all unless it had the custom field, so i mean, sort of two cakes but also crimes
oh u know i think i got it
I eventually gave up and just changed the deluxe scarecrow to protect the whole farm and get all the credit
need the whole class name
typeof(TrinketTinkerEffect).AssemblyQualifiedName
like this
Huh, uh, would that not work in the building data then?
if i'm gonna commit the skip crime is it (i am testing just the false and moving the true out of the loop we'll see if i break anything
)
return false;
}
else
{
return true;
}```
this string is like
TrinketTinker.Effects.TrinketTinkerEffect, TrinketTinker, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
Oh wow, that's way more than I was putting, okay lol
i think the minimum required, while i was testing my trinket stuff, is this
TrinketTinker.Effects.TrinketTinkerEffect, TrinketTinker
but im in C# anyways so i just made it a CP token and not have to think about it
I have another question when ever I try to load the mod for the custom location it says my map doesn’t have the required layer buildings when it does
!log
Important note: Your computer username may appear in the log. If your username is your full name, please be aware of this before uploading it.
Please share your SMAPI log file. To do so:
- Open this page: smapi.io/log.
- Follow the instructions at the top of the page to upload the log file. (Don't copy & paste from the console window!)
- After uploading, it will show a green box with a URL to share. Post that URL here.
Please do it even if you don't see any errors. This has useful info like what mods and versions you have, what the mods are doing, etc. If the issue didn’t occur in your last session, please load the game to the point where the issue occurs, then upload the log.
Can you provide a log like Rokugin asked and also a screenshot of your layers list for the map in Tiled please?
(well. it showed up in the harmony summary, now i gotta edit a vanilla building ig)
Log Info: SMAPI 4.0.8 with SDV 1.6.8 build 24119 on Microsoft Windows 10 Pro, with 17 C# mods and 50 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
it occur to me that you could just use TileProperties on buildings with Action Dialogue
Thanks! ANd the screenshot?
I could, would just need to store the number of crows somewhere
still need to make crows go away tho, maybe u just do custom tile action for that
no class
building's got mod data so u good there
yours can take priority, i have to go back and look at that harmony annotation thing 
and yea prob need to a tile action for custom dialog like that
well, i am stuck in the void
i can't even tab out of sdv 
but i am stuck on what that'd do
Ultimately I'm not sure I'll end up finishing the entirety of this mod because I don't know what to do about the building art lol
I tried to make a little box with seeds in it and did actually delete that
Offer to do some coding for Pau and get her to do some art for you?
tbh i thought like
the corncrow as meant to be this mod (big building sized scarecrow)
but then it got released and was just big craftable scarecrow 
Yeah because Sekundes wanted to do the building idea but didn't feel confident in the C# required
Having no C# experience

I thought they were just fine with the regular scarecrow functionality
Especially after Pathos said it would be faster than Harmony
i think they also realized that a building would mean larger scale art 
just slap a high res stock image scarecrow in there no one would ever know
I am technically still in the midst of making a mod for Pau lmao
Your Buildings tile layer is misspelled
which one? 
Minigames?
oh fiddle sticks


