#making-mods-general
1 messages Ā· Page 154 of 1
But I am tryna make it into a loved gift
not possible then
oof
hmm how about recipes?
you can use flavored items in ingredients with SpaceCore
crafting flavored items require Extra Machine Config or Better Crafting
either way it's not supported in vanilla crafting
ooh dang thanks
(you can see that they were not really meant to be used outside of machines)
I'mma try to do this, how do I do it?
is it just the usual <item id> <amount> thing?
https://github.com/spacechase0/StardewValleyMods/tree/develop/SpaceCore see the Recipes session
Friends, am I doing i18n correctly?
(I know the |default= probably isn't necessary in this case, but I remember reading someone talk about weirdness with default and en recently?
you can also see Cornucopia Artisan Machines for examples, they override some vanilla recipes to be "accepts any cheese item" instead of strictly cow cheese
hmm I havent heard of anything like that; default.json existing should suffice
(happy new year from my timezone makin-mods
)
At the very least my first foray into an i18n didn't need that part and I haven't seen any issues
anybody know or have around a method to check whether an Item is the one held by the mouse cursor?
a frustrating number of menu classes have their own heldItem so it seems like it will take a bunch of tedious checks to get whatever may be held right now
Remind me in 10 hours to test wide doors
sure thing, bud (#6450479) (10h | <t:1735744188>)
There's no global "item held by mouse cursor" concept, which is why lots of menus have their own. You pretty much need to check for heldItem.
Lookup Anything's code, for example: https://github.com/Pathoschild/StardewMods/blob/stable/LookupAnything/Framework/Lookups/Items/ItemLookupProvider.cs#L79
might i suggest just getting the current activeclickablemenu no matter what class it is and just checking for the existence of a heldItem field
via reflectiony methods
assuming they all have that same name or the same couple names for it
thanks
Wait that was hovered item not held item. I am tired and a bit off my game lol
Same idea though. Reflection to check for the field on custom menu types. Hard-coded logic for vanilla menus. And make sure to check for GameMenu to get the current page.
the weirdness is that if you have an "en.json" file, it will not be used
ah, I see
which means if you're intending to use en.json it'll use default.json instead
You won
Roku this is amazing! Sideways doors!
waow... doors defeated...
maybe some day Robin will be dethroned as well (nudge, nudge, wink)
whats wrong with robin
you can't have a builder NPC other than Robin
that's it actually, I just like bringing it up randomly
what about the wizard?
he doesn't teleport to your farm and pretend to smack a building with hammers
oh thats what y ou mean
i thought you meant the builder field on a building lol
ill counter your fun fact with my own: only the wizard is allowed to build a Gold Clock
if anyone else builds it the clock doesnt work or get drawn properly
dang that's a shadow monopoly right there
asked a question about editing the data of an item in #1323499944321224715
(minor correction it actually might still WORK but it definitely wont be drawn correctly, it'll be missing the clock face)
that just changes where robin is positioned
no, chu defeated the Robin/Wizard duopoly on construction and roku made the woman actually stand in a sensible position for modded buildings
not who robin is
marnie dethroned now too
yes, it was valiant effort on chu's part
i need more ridiculously useful ideas 
maybe i piss someone else off with the way i'll go about a custom data asset for cooking/crafting recipes 
are you throwing another transpiler on top of clickCraftingRecipe
though it's not necessarily something i need for my expansion so i don't know how much effort i'd put into that one
side note, but now that I installed LOC for my current save maaaaaybe I'll have motivation for adding integration with EMC's flavored crafting feature
(or I just tell the users to install Better Crafting idk)
Hooray, Pelican Valley Loft NPC Apartments update is live!
I for one welcome all the downloads from dependencies and definitely recommend the Better Crafting route. 
Just in time for the New Year over here xD
-# Can't believe I haven't updated my mods since last year I am so lazy
Ok, so this is my config schema for my mod https://smapi.io/json/none/616e8e15489543eb90547c9167ade560
And I want to know if I would need to do multiple edit datas to account for the changing of editibility and price based on the config options chosen or if I could just do a bunch of whens. So for example:
{
"Action": "EditData",
"Target": "Data/Objects",
"Fields": {
"426": {
"Price": 250,
"When": {
"Cheese amount": 2
}
"Edibility": 10
"When":{
"Cheese amount": 2
"Balance Regen": true
}
"Price": 150,
"When": {
"Cheese amount": 4
}
"Edibility": 5
"When":{
"Cheese amount": 4
"Balance Regen": true
}
}
}```
you can only have one When condition per patch, not per edit in the patch
so you can control that single EditData with a When condition, but not individual fields
you would need multiple EditData patches to account for different config
you could probably make a dynamic token for* those values, or use queries to do actual math as Selph mentioned
would price let you get away with the dynamic tok-
i was also going to suggest a dynamic token with a query potentially
but itd depend on how your config is set up
(for the queries anyway. should probably be fine for dynamic)
I mean idk how I would do it for the edibility...I could do it for the price since I just want to devide the price of the large item by the number selected in Cheese amount
The issue there is decimal places and rounding issues...
hence why I kinda wanted it hard coded?
CP has a {{Round}} token
Hmm. Maybe I should expose Better Crafting's option to use all chests everywhere via config now that Better Chests is delisted. š¤
Got some people talking about that in my comments, and then someone asking for compatibility with a fork of an old aedenthorn mod to craft from containers. ... yeah, probably should.
Don't want users using weird patches when the native feature is literally already there and just not exposed
but it doesn't say about rounding to the nearest 10... I mean I can easily just handle the nearest 1's place
so that works for the price. Now just to see if I can make something work for the edibility...
Wait! no I have another question >_< If I wanted to use the numbers (since the Cheese amount IS a number) how would I do that? Like would it be
"Price": "{{Round: 500/{{Cheese amount}}}}
is...is that right?
you would need to put 500/{{Cheese Amoubnt}} in a query token
so
"Price": "{{Round: {{Query: 500/{{Cheese amount}} }} }}"
seems fine to me
Time to forward/link these helpful answers in my thread lol
To round to the nearest 10: divide by 10, round, multiply by 10
I think you can make the round query do nearest 10 natively, but since you already have 500 on the inside, itās super easy to just change that to 50 and multiply the final rounded number by 10
I'm honestly not gonna worry too much about that.
Having it have small little extra bits here and there is actually kinda nice XD
but I will be having it round down for price and up for editibility
which should be this if I am reading the github correctly
"Price": "{{Round: {{Query: 500/{{Cheese amount}} }}, down }}"
the real crazy thing is how quickly the health and energy regen plummets
like cheese normally has edibility of 50, but with what I want to do, it would go 50, 13, 9, 7
Like that's crazy
so edibility will be much different than price lol
First release of the new year?
Or better yet...I won't touch edibility lol
I got my mod release in just before midnight xD
It'll make the cheeses kinda OP but idk
Y'all are living in the future. it's it's 2024 for me
Been 2025 for half an hour
^
Been laying in bed for the last 3
It's 10:32pm 12/31/2024 for me
So far the future is making me sleepy
I'm old though, so it's ok
nope but i'm gonna annoy for a mod showcase once the docs are up
before you go bed, is this correct????
you know you can showcase it yourself? right?
ah
I mean, technically, there are docs, but it's on the github
roku hasn't written the door docs yet that's why 
Also how the HECK do you make the text the link? I tried and it didn't happen š
ahhhh, for if/when the doors get officially added to docs, I see
if roku won't write it i can infer just from the custom asset json tbh
and then i can write it 
is this correct syntax?????
"Price": "{{Round: {{Query: 500/{{Cheese amount}} }}, down }}"
i just highlight and paste the link
the CP docs will have the syntax information
ive never used round before, so i dont know it
i just know it exists
I use patch parse when idk if itās right
???????
CP troubleshooting docs has more details
patch parse???
!patchparse letās see if this is a command

Patch parse is for checking if your snippet of query stuff is parsing right
Patch parse can be so handy once you figure out how to use it
so I tried doing the patch parse
[Content Patcher]
Metadata
----------------
raw value: assets/data/itemBalances.json
ready: True
mutable: False
has tokens: False
Diagnostic state
----------------
valid: True
in scope: True
ready: True
Result
----------------
The token string is valid and ready. Parsed value: "assets/data/itemBalances.json"```
I think I did it wrong...
Hi, sorry to interrupt. I'm trying to add dialogue behind heart levels and need to know what key to use. The example on the wiki was Sun4: "Hey, @.#$e#How's your day going?", but I'm unsure which part of the tag is referring to the heart levels. If anyone could point me in the right direction, it would be much appreciated.
and after looking in the game...this isn't working...
this number should be 62....
I'm just gonna do whens...this is too hard.
That 4 next to the Sun is the heart level
I'm on mobile now but it's further in the dialogue part of wiki
[[Modding:Dialogue]]
So...when I do the when for this is it like this?
{
"LogName": "Price Changes!",
"Action": "EditData",
"Target": "Data/Objects",
"Fields": {
"424": {
"Price": 250
},
"When": {
"Cheese Amount": "2"
}
}
}```
Also, how do I make sure the GMCM makes the selection a drop down or slider?
patch parse "{{Round: {{Query: 500/{{Cheese amount}} }}, down }}" is what you want
the patch parse lets you check whether your {{}} stuff is right
[Content Patcher]
Metadata
----------------
raw value: {{Round: {{Query: 500/{{Cheese amount}} }}, down }}
ready: False
mutable: True
has tokens: True
tokens used: Query, Round
Diagnostic state
----------------
valid: False
in scope: False
ready: False
invalid tokens: Cheese amount
Result
----------------
The token string is invalid or unready.```
I think imma just do it manually with everything...
Additionally...How do I remove the slider???
"Cheese Amount": {
"AllowValues": "2, 4, 6, 8",
"Default": "2",
"Description": "The amount of normal cheese you get when crafting from a Large Cheese",
"Section": "Splitting"
},
//crafted goat cheese amount
"Goat Cheese Amount": {
"AllowValues": "2, 3, 4, 5",
"Default": "2",
"Description": "The amount of normal goat cheese you get when crafting from a Large Goat Cheese",
"Section": "Splitting"
},```
is it because Goat Cheese Amount is consecutive numbers?
nah it's because it doesn't know the config values
Ah, thank you! Just to make sure I have this right... the key Sun will cause the following dialogue to repeat every Sunday for spring of the first year? And Sun4 would cause the four heart dialogue to replace the Sun dialogue when the player has the appropriate amount of hearts? Sorry, I'm new to this. I really appreciate the help.
plus in some number there and see if patch parse is happier
The only value that is active for the first year are the numbered keys
I don't know exactly if you'll/never/ see the base Sun if you have a Sun4 cause I can't check if there's priority
ok so I need this "{{Round: {{Query: 500/{{Cheese amount}} }}, 0, down }}" XD
no, I meant replace {{Cheese amount}} with what you expect that to be
I did
When are you defining the {{Cheese amount}} dynamic token?
and it said errors: digit count 'down' can't be parsed as an integer value.
If it's not early enough, that will give you that error.
config schema
ok, but then. how do I fix the slider vs dropdown????
Thatās a GMCM/CP thing
but is it because I have sequential numbers???
Unfortunately itās bedtime for me, but I suspect it has to do with how many acceptable values there are?
Or possibly you need to set only min and max?
I usually only interact with this from C#
Nexus being slow...
Min max adds the slider, I assume since you have one as incremental and the other as skipping that you have your answer. It will automatically detect to slide since it can have evens and odds for increments but otherwise will decide for a bool, or a dropdown since it is reading it as a normal string
I want them both to be drop downs....
uggggh
eh screw it. I'll make them both sliders...
bed time for me. XD
Just out of curiosity, has anyone ever tried to give Krobus a schedule? Had the random thought it could be neat if he came out of his sewer late at night or something
But that was followed by the thought that there could be something weird and hard-coded with him since he's a shop
marriage schedules are cursed
so if he did, it would have to be only non-married
"married" i say
Soooo, in theory, if I wanted to make an elevator, could I use a fake NPC combined with the dialogue action and BETAS WarpPlayer trigger action to choose and then warp to specific floor?
I cannot do C# so I'm trying to brainstorm how this would be feasible without it.
š¤ robin and marnie all run shops though, and they still have schedules... maybe krobus is just weird
It's entirely possible he can be totally functional and I'm overthinking it, but he just sticks out since he literally never moves and doesn't have a shop counter
Well, the "counter" might be krobus himself? I would have to check
My other silly elevator idea is to make a "shop" for the elevator and when you 'purchase' a floor for the price of free, you have an ActionOnPurchase to BETAS trigger action warp you. Which just removes the fake NPC part, really
But that's needlessly complicated since it involves adding an item
I'd almost rather just make a doorman later on.
Hmmm. I wonder how awkward that would be with better crafting data recipes. Probably need a useless item to give the player and I don't think I've actually tested a recipe with no ingredients?
Honestly, I'm happy to try to workshop any way to get an elevator in my apartment building that doesn't require me to learn C#
Does anyone know a CP token or GSQ that would somehow return either the number of farmhands OR cabins built or anything else related to # of people in multiplayer?
Though, is there a reason not to just use a custom mine cart network?
BUILDINGS_CONSTRUCTED
The problem is that Sewer has no NPC warps, so you would have to set up one
and only one, because if you do it at both ends you'll make a loop and that causes NPC schedules to go wonky
(I considered one for my WIP NPC, but I did not want to gamble on potentially borking everyone else's schedules
)
Not a problem I would have anticipated but also one that makes perfect sense 
There IS a vent right behind him and goddammit now I'm thinking of Krob-sus

Prior to 1.6, Krobus could not be moved on a schedule because he like Dwarf, is only 24 pixels tall and the code assumed any walking NPCs were 32 pixels tall. This led to weirdness. Now however ot does work but, as Tiakall noted, getting him in and out of the sewers can be problematic thanks to a lack of warps and adding warps can lead to circular routes.
Ooh, that's fascinating
So if I had gotten this thought a year ago it wouldn't have been doable
At least not without a lot of extra complicated steps
Speaking of, is Krobus now the only character with a portrait not modded with a schedule?
should I update my code or not?
currently if someone runs SVE with Vibrant Pastoral Redrawn but without the Expanded add-on they see this patch pop up
I accidently put the add-on's ID instead of SVE's in my query which kinda results in this little tell for a missing mod āļø
"Name": "Version",
"Value": "Vanilla"
},
{
"Name": "Version",
"Value": "Expanded",
"When": { "HasMod": "VibrantPastoral.Expanded" }
},```
When regarding GSQ - "PLAYER_STAT <player> <stat name> <min value> [max value]" : Whether a stat counter for the specified player(s) has a value between <min value> and [max value] (default unlimited) inclusively. Is there a number or something that I can enter that makes the max value that's considered infinity?
I'm trying to fix a issue in my mod, Shop Tweaks, and seeing this GSQ seems to be a good solution from the other GSQs I've checked out, I'm just worried that if I set the max value a number and once the player hits that number the item in the shop will disappear.
in definitions like these, the square brackets around something typically mean itās optional! the description you said even says that if the max value is left out, the default is for it to be unlimited. So just donāt put a max value at all!
Oh I actually didn't know the square brackets could mean that! Thank you so much as well
itās a syntax thatās common in things like linux commands. You can usually tell if itās being used because the type of bracket changes half way through like it does in the one you sent, but itās super easy to miss even if you do know it so dw about it!
It's really cool ngl, I'm tryna do more coding this year (finally gonna get myself into learning C#) so learning new things in languages is exciting for me.
It's helping my modding motiviation XD
nice! the first time I learned c# was after I did some personal stardew modding last year so I get you
On the wiki sometimes square brackets also denote a group that can be repeated, in order to check more things in one GSQ for example, usually there's a plus sign at the end of those
Gunther Marlon and Dwarf also have portraits but no schedules.
Oh, I meant "not modded with a schedule" as in nobody has made a mod that added schedule for him yet.
There are mods for the rest, right?
anyone know why my hay is being deposited in the wrong spot?
does it not just check for trough tiles and fill them?
ambientlight and path lighting is also refusing to work on this map, i'll try manual placement next but wtf
oh right
i know what's wrong with the trough
gotta set it in the tilesheet oops
mod idea: you can "give" a npc a farm. how they use that farm depends on their speciality...
Emily might grow mixology stuff while Gus might make a animal farm that produces a variety of produce. Haley might grow flowers...or something. (Haley can do whatever haley wants)
maybe you are giving one of the modded farms and you get something in return like a portion of the income or the crops so you can start cooking without having to worry about growing the ingredients.
Oooh, that sounds nice
Now that I think about it, that could be cool if the "spouse patio" was a little plot of farm so your spouse can actually do things there?
maybe if your friendship level is high enough, you can make one suggestion a season of what they should plant (so that you have it prepared for cooking)
That would be cool. I would prefer to give them the Ginger Island farm I never use that farm š
people were saying in modded farmers how they rarely use the ridgeside farm becuase it is too much to manage.
so giving it to one of the npcs sounds like a decent idea!
Thats a great idea too, I haven't started that farm either lol
The mod could check for any additional farms so you can give them a choice of farms too.
TIL you can drag a snippet of text from one notepad++ window to another and it copies it into the new window
That's neat, I kinda hate the text dragging feature but that's mostly because I accidentally do it when I don't want to 
... oh god I need to do that more often
@rancid temple: test wide doors (10h ago)
Hi, I'm trying to install smapi for android but I get an error of Length=3827; index =3827, I can't find the problem, I have the version of stardew 1.6.15
!mh
For help with modding issues, please ask in #1272025932932055121! When asking for assistance there, sharing an error log will help others identify your issue (see https://smapi.io/log for instructions).
Is the language spoken in the Ferngill Republic named anywhere?
nope
(context: big nexus markdown update and me being annoyed at the types)
I assume it's just like "common" language?
Awkward sidestepping to avoid calling it "English" it is!
I know fantasy games and stuff have just a general language that everyone can speak, alongside specific languages like elvish and such
People in the Ferngill Republic speak Human, obviously.
What language do shadow people speak š¤
ShadowPeople
Yeah but if it isn't named in vanilla lore I don't want to give it a name even if it's just "common" or whatever because that's adding my own lore to my mod that might not match up with other mods and it's not a big point in mine.
Welp, unnamed language of stardew valley it is
But also my expectation would be that the different human nations speak different languages as well.
Nah, they all speak the same langauge. It's a planet of hats.
...hats?
it's a sci-fi refernce toa trope "everyone on planet x is y, their hat is y."
but it's also a doublejoke to the fact you can put hats on everything in Stardew
Ah, I see
Galactic Basic Standard
I do already have a Star Wars reference in there, maybe I should lean into it 
This is probably a bit specific, and I am unsure if there's some mod that has this possibility yet, but I have an issue where my wireless headset randomly disconnects, which removes it as an audio source temporarily. This is normally fine for most things, most programs will find it again when it reconnects. Sometimes they don't, which forces me to manually update the audio in a way where it tries to select an audio output source again. However SDW does not do this(there's no option to even change audio source in the game?). I saw there was one mod that is no longer maintained that could possibly help with this(https://www.nexusmods.com/stardewvalley/mods/2838). While I have programming experience, I have no modding experience for SDW. So I am mostly wondering if anyone is aware of another mod that fulfil the same functionality?
Hmm, i donāt know of such but #modded-stardew is typically the place where people ask what mods exist
oh I'm sorry
If youād like to make one, I think itās actually not too complicated
I missed that completely
Yeah I was possibly thinking of just doing it myself if there was no alternative.
I know some very basic C# so I should get by, especially with the source code from the old mod as reference
This is one of those weird Stardew quirks
Hey yall! Hope everyone had an amazing new years night. So I just got my first person requesting to make a respite of my mod for Vanilla Tweaks, is there anything I should know before giving them permission to do so?
Is the old mod open source licensed?
Probably should talk to Taiyo (VT author)
Good question, Git repo has no license file or even a README
@scarlet quarry
fwiw, I doubt the old mod will help at all
stardew now uses monogame and openal
entirely different backends
oh
well maybe it at least gives me a hunch of the thought of doing it but idm going in mostly blind so
you know what, shits and giggles, try this https://askubuntu.com/questions/433459/move-audio-stream-from-openal-application-to-different-audio-device
(I assume a matching file exists on other operating systems.)
optimistic to think windows would have anything that even resembles any sort of configuration that unix based OSes have
should really just go back to a non-windows machine, always struggles to find anything online that is even remotely technical that applies to this shitbox
can you give me the details?
Hey! So I just had a user of my mod Fish of Stardew ask if they could respite my mods fish to match the visual content of yours. I have no problems with this, and I know there are a few Vanilla Tweaks respites out there. I just wasnāt sure if permission was needed first or if there was anything specific I needed to know before giving them a yes?
You should probably make them ask instead of doing the legwork for them (and indeed, they may have planned to ask tai after asking you first)
hmmmm
it's weird, the full config file says that's a pulse setting
so clearly you solve your problem by going back to Linux 
Ngl Ideally for the case of audio devices, before digging into the modding, it would be absolutely great if SDW threw an error that I can use as trigger to start an attempt to automatically reconnect it after a set time but that's mostly wishful thinking xd
https://github.com/kcat/openal-soft/issues/555 this also seems relevant
tbh stardew modding experience won't be helpful, openal experience would be helpful
Didnāt even consider this, but yes I will send them this way also
Unless Tai doesnāt want to be asked about it again then Iāll just pass the info along with a go ahead š
Ehh, sure by me. But as 6480 pointed, they should be the one asking instead of you. Just hanging them with "sure by me if the author says its fine" should be enough. Since you're here and not them, just tell its fine. They dont need to do twice the job now since you've already did :)
Awesome I will pass the info along and let them know, thanks for the quick reply! Hope youāre having a good start to your year : )
yeah but it seems more complicated, I have no idea where to even properly poke when it comes to openal or how it would integrate in this, especially for windows
that github thread is basically what you're trying to do. I woudl start there
audio...not sure how seamless you can make device switching (tbh in my experience even Teams does it...badly)
My assumption is that you want it to switch with some amount of grace but a minor (even 20s) gap is fine
In it's simplest form, I just need it to try to switch stardew valley to using the device that I have as default again after it has been disconnected.
The headset is properly selected as default again on Windows, and most other application manage to properly work again instantly. However Stardew does not, forcing a restart.
I'm unsure how SDW works in the case of the device it tries to use disappears, but if it is not on SDW's part, but rather Openal that can't handle it, I will give it a go from the thread
š lost my reason to get into modding for sdw tho
You could try something brute force like restarting audio every night
I probably would not publish that mod for general use tbh, but it might fix your issues
I say every night because I expect poor performance
And hiding lag in the day night cycle is a time honored tradition
yeah it would just be for my use xd
got it mostly working, https://github.com/AnotherPillow/nexus-markdown?tab=readme-ov-file#installation 
but I guess sdw would not throw an error in this case that I would be able to handle?
gonna have it check every frame >:)
Every frame might be rough š
yolo
hmm, a later comment says audio device switching is public now
c# thankfully allows operator overloading
This comment coming from "implementing caching for probably no good reason"
Gonna learn modding SDW at some point anyway so will just try to brute force it now and see what happens
Hm. I wonder if I can find some GMCM mods that implement list options and look at their code
I think Customize Marriage Attire has list options in GMCM
Feel free to yoink that stuff if you need
will do, thanks!
It's not a huge priority because I want to complete otehr mods first, but I do want to get this chart updated
Is there a way to move the tilesheets location for a map so it doesnt error in console without having to redo the entire map
please someone help X|
wHaT hAvE I dOnE 
If you're using .tmx, you can open it in something like noteapd++
@rancid temple Help him Obi-Roku, you're his only hope.
LMAO ok Shrimply so just use notepad++ to open it and I should see the tilesheet path?
Wait I may be jumping the gun. Are you getting a tilesheet GID error or just tilesheet climbing?
Yeah, and to fix tilesheet climbing, just erase the path
(at least i think this is what you're talking about)
IDK what that means asjhdkjashd but Im about to find out I think? LOL
Yeah I think you are on the right track Forsy
(leave the name of the tilesheet, so if it's .../.../.../Maps/paths)
(just have it be paths)
ok testing it rn
Ok, I have no idea what I'm doing X||| I'm gonna send my locations.json and the error as a smapi link in hopes that you wont judge me for being an idiot after looking at them XD
Oops, couldn't parse that file. Make sure you share a valid SMAPI log.
ignore the error from governor I only pasted the error for my mod, everything else appears normal
Silly but relevant question
okay, so for a quick example from that: invalid tilesheet path '../../../../locations/spring_beach.png'
What is the spritesheet size for giatn crops?
Because it's path climbing
ok so what does that mean X((
You need to do an "Action": "Load" to virtually load your tilesheet to a target inside the Maps folder if you aren't including it in the exact spot in your mod files
It either has to be in the game's Maps folder or inside your mod's map folder with your .tmx file.
so I need to rename the folder from locations to Maps? or inject it into the maps folder using the load action
As a best practice, you should always edit your Map files with the PNG sources in the same place.
It is better practice to Load it to the game's Maps folder like fireredlily said, as that allows other mods to edit it if needed.
No, renaming the folder wouldn't help.
Ohhh ok
Also if your TMX is inside say, assets/Maps in your mod folder, your PNGs should be there too while you are editing to keep the filepaths relative. Right now it's making absolute paths.
So its not gonna make any issues if the sping_beach.png tilesheet already exists in the games maps folder?
In addition to adding a Load code block in your json, you will need to edit the tmx file in Notepad++ like Forsy said before, to remove the part that isn't the name of the file (so ../../../../locations/).
ok so replace locations with ..
Yes, it will be an issue. Is the tilesheet you're using just a copy of the vanilla one or is it something different?
And if it's something different, are you intending the replace the spring_beach file for the entire game, or is it just in your section of the map where it's specifically changed?
Yes, the one for my bridge is not its custom, so I'd need to load those, but why didnt I have to load those in the beginning? before I added the new beach the patch for the bridge and its tilesheets all worked fine
You might intend the first if you're respriting or making a recolor, so I have to ask
Is the one for your bridge the file called "spring_beach.png"? I can't tell from your answer.
what do you mean? the tilesheet file is the same as the vanilla
Oh no that is a different tilesheet all together
its spring_GOATTiles.png
If you are just using the vanilla tilesheet, good news! You just have to delete the tilesheet from your mod folder before starting the game (and edit the .tmx to fix the tilesheet path).
^
OMG YES SOMETHING EASY
For the spring_GOATTiles.png, you will need to Load that one into Maps
So i just replace locations in the notepad++ tmx file to "Maps" or ".." and the game will do the rest
ah-ha, so for spritesheet indexes, I should probably sized my objects one to the size of springobjects
No, remove all the folder information from the tilesheet path in the tmx file
Once you are finished, it will look like this <image source="spring_beach.png" width="160" height="160"/> (with different height and width of course)
And you will need to do that for every image source in the file.
Alright I can definitely do that
No forward slashes, nothing from in front of the forward slashes. Just the file name.
ok testing it now!
Is your spring_GOATTiles.png file in the same folder as your .tmx file inside your mod folder?
Yes
That's why you didn't have to load them before. The map pulls the tilesheet from the mod folder first and if it isn't there, then it looks in the game's Maps folder.
It is not best practice to keep it in there.
^ for vanilla tilesheets, you absolutely should not keep it there, but for custom assets, you CAN as long as your intent is for no mods to ever be able to edit on top of your files.
(Which is a bit crap for compat, hence me saying it's not best practice)
It's bad for mod compatibility to just leave them in there instead of Loading to Maps (which future mod devs can use the Load target to recolor and such later)
OK ok I understand, so if I add the load action and load the custom tilesheets then im in the clear for compats
I put my tilesheets inside a tilesheets folder inside my maps folder and Load them from there into the game's Maps folder. Some people (like SVE) have a completely separate tilesheets folder that's at the same level as the maps folder.
Doesn't matter which one you do.
As long as there are no .png files in the same folder as your .tmx files.
(note that even if you Load the custom tilesheets, you still need to delete them from your folder)
You can't completely delete them though. They still have to be somewhere in your mod folder.
Ok and for the tmx of the bridge I just need to remove the folder info, load them into the games maps folder, and then move them to a seperate folder within my mod aka a subfolder in the locations folder
(correct i should have clarified, i meant from the maps folder, sorry!)
Might need to be more specific about that, button. I can already SEE the potential confusion when someone deletes their mod's custom tile sheet and then gets an error because the file can't be loaded
Move them before you write your Load code block so you're using the correct folder location when you write your FromFile value.
Ok, and I have a question since im not targeting a specific file what do I put in my target "Maps/"?
And of course, you fixed it in the time it took for me to type š
xD
(i blame sick brain)
A descriptive name for it with your mod ID as a prefix.
Like Maps/{{ModID}}_bridgeTiles or something
Ohhhh I see so since it doesnt exist and im targeting it it shall exist because the stardew modding gods say so
Yes, if a Target doesn't already exist, it gets created.
You guys are amazing, I would still be trying to add an object to the game if it weren't for yall 
Ok so I just need the action target and fromfile info and then it is good to go?
dont need to add anything else?
mhm! that's why it's a Load patch. You're telling CP to Load your FromFile to your Target
ok coolio that was easy enough!
Load patches are the simplest of CP operations! The only added complexity they get is when you add on When conditions to only load them some of the time.
Have you tested it?
Which for a map, you generally won't have to worry about for Load itself.
I am about to!
loading my test save š¤
NO ERRORS lets go take a looksy
OMG that fixed the rain overlay not working tooooooo yall are some GENIUSES
Ok so the rain recolor works on the new map, but there is no rain, on top of that the beach waves are not moving, im assuming this has to do with a tile property I didn't add or something? Ill send a screenshot in a sec im fixing the warps rn
Tile animations are set by the TSX file, which if you are referencing the vanilla tilesheet, will be built in. Otherwise, you will need to animate the tiles yourself for custom tilesheets.
Hi there! I have a quick question. If I want to have a portrait replaced at a certain location (Ginger Island) is this code correct for the condition?
"Condition": "LocationContext island"
Then they should work, but are not!
Conditions use Game State Queries, not Content Patcher tokens (you CAN use tokens in them but its better to use a GSQ)
https://stardewvalleywiki.com/Modding:Game_state_queries
That's not a GSQ, so no that won't work I don't think. Are you doing it through the Appearance field in NPCData?
no rain, no wave movement I broke something
so you'd want LOCATION_CONTEXT Here Island (assuming the island context is Island, idk what it is off the top of my head)
Did you export the beach tileset as a .tsx?
Or use a copy of the vanilla beach.tmx as your starting point for the map?
I created a .tmx from scratch
Ah, then it won't have the TSX animation data
@vernal crest Yes, I am doing it through the appearance field. Do you know what I need to type for the condition then?
Then you didn't include any of the animations which is why it isn't working.
See Button's answer (she also linked the GSQ page so you can see for yourself) #making-mods-general message
ok so I need to make the map from scratch, or copy the beach map remove everything and redo the map
@Button @vernal crest Thanks!
as a tsx
Best practice for retaining tile animations is to open the unpacked version of a vanilla map with the tilesheets you want, and then "save as" to create a copy and remove everything you don't want, and add whatever new tilesheets you need.
I think you can import the .tsx and it will just add the tileset data but if not, you can just animate the tiles yourself using the bulk animation plugin.
But yeah, you can also just animate the tiles yourself or try to import the TSX
(I don't recommend telling people to do save as, because they frequently then try to save the map into a different folder and bork the tilesheet paths)
So by exporting you mean go in tiled open my mpa and save it as a tsx and not a tmx
Nope
Go to the vanilla beach.tmx file
You can't see where my cursor is pointing but it's the third button along
Export the spring_beach tileset as a .tsx. Make sure you export it into your Content (Unpacked)/Maps folder, then cut and paste it from there to your mod folder where your tmx file is.
Ok then I need to load it right
(If you don't do that, you will potentially get tilesheet path climbing again)
No, you do not need to load it.
Instead, you will then open your tmx file and go here
ok, so I don't need to rename the tilesheet or anything just go to the untitled tile sheet export it and move it to the tilesheets folder in the locations folder where my maps are, then do what you just mentioned above by adding an external tilesheet
do I need to redo the tiles using the animations?
using the new tilesheet or will it just update
You might need to make sure the tileset is named the same as the tileset in your tmx, I'm not sure.
I'm also not sure that this will actually work, but we're giving it a try because it's easy.
If this works, the .tsx file you are adding should just change your existing spring_beach tilesheet instead of adding a new one.
If it adds a new one, then it hasn't worked.
And if it has worked, you shouldn't need to redo the tiles.
ok so I reloaded the .tmx of my map and its all red x's now, so how do I relink the tilesheets properly?
I can't remember if I've done this before or if I'm just theorising about it, sorry.
Close your map immediately WITHOUT saving
DONT APOLOGIZE I SHOULD APOLOGIZE TO YOU LMAO
Then go get all the tilesheets your map uses and move them into the folder with your map
I think its too late it was already save
Why...would you save something clearly broken?
oh well idk it didnt have an * infront of it
Yes that just means you didn't make any changes which is fine.
Okay good, no problems here. You can continue moving your tilesheet .png files back into your map folder.
Is that the only tilesheet you're using on that map?
(This is the sad thing about map editing - to edit the map you need all the tilesheets in the same folder as your map, to test the map you need the tilesheets NOT in the map folder. It is such a pain.)
yes, now I see spring_beach and untitled tile sheet in my tilesets area
This is after you have added the external tileset?
{
"LogName": "Mayo changes",
"Action": "EditData",
"Target": "Data/Objects",
"Fields": {
"306": {
"Price": 150
}
},
"When": {
"Mayonnaise Splitting": "true"
}
}```
This is correct...right?
Yes so delete it and add it manually then?
No, pause.
ok pausing
Should be
Did you have two copies of it before?
No it didnt exist at all until I exported it and moved it to the tilesheets folder in my mod
wait is there mapping talk?!
Assuming Mayonnaise Splitting is set up right anyways
yes it is
I can help with mapping!
yes I am frying everyones brain lmao I feel so bad
That's my specialty!!!
I've got it but thanks Nerdgirl :)
Can you take a screenshot of your tilesets box in Tiled?
she just decided to pop in without an invite
originally the last time I opened the map it was just spring_beach
wait, why are you having him export or import things with the top bar?
Because we're trying to see if we can get the tileset metadata into the map without him having to manually animate the tiles.
Top bar and buttons in the tilesets window should work the same
this stuff?
I don't know how you can have this "untitled tile sheet" one if all you did was open the map.
Yes
Would it be helpful if I went in a voice channel and screenshared?
No, I don't do vc sorry
I can help out in the vc
No need to talk just so you can see everything
You haven't imported that tileset at any point have you?
correct
Even when the red Xs were happening?
no importing any tilesheets except the spring_beach when I made the map, and no didnt import anything then either
Thank you if it comes to it we will ā¤ļø
did you make the map from scratch?
the beaches beach tilesheet is indeed named untitled tile sheet
Yes I did
or did you copy paste an existing one?
CA sometimes names them weird in the maps idk why
I don't think it's going to be super productive if we're all trying to help and pulling GOAT in a bunch of different directions, so I am going to bow out.
I'm just trying to garner info
NoOoOoO š please stayy I understand you
this info has already been said before
It's info I'd already gotten from him, but thanks.
oh im not here to slide in, just saw the tilesheet name mentioned and thought id clarify lol since i was confused while mapmaking before too because of it
Thanks
Okay GOAT this is interesting, can you try closing the tmx again and moving the tsx file out of the folder? Doesn't matter where to, just so it's not with the tmx.
It isnt with the tmx its in a subfolder in the folder the tmx is in locations/tilesheets/untitled tile sheet.tsx the tmx is in locations/
move it out of the subfolder?
There is no way it can be showing up when it's not even in the same folder.
IT IS I SWEAR š
If you have closed the map, please open it again (sorry lol) and right-click on the bit that says "untitled tile sheet" and click "edit tileset"?
I did and it opened just fine
Once you've done that, can you pull the properties box out to the side so the full Image Source line is visible and take a screenshot of it?
Thanks, can you now do the same for your original spring_beach tileset?
Is your .tmx file inside your assets/locations folder?
Okay. Well, I don't know what has happened here but let's try to reverse it. First make a copy of your .tmx file as a backup (just copy and paste it inside the file browser, no need to move the copy anywhere).
You don't have to close the .tmx file to do this either.
Okay cool. Now in the non-copy, click on the untitled tile sheet in the map and then click the little trash can to delete it.
If it pops up with a box saying it's still in use by the map, pause and tell me.
it wont let me trash can button is grayed out nothing happens when clicked
I can only click the first second and fourth buttons
Ah because it hasn't been embedded. Uhhh. Try the second.
for the original or the second
second deleted original is greyed out
Okay I do not know what is happening with this thing, it has gone very strange.
Would you feel comfortable just sending me your .tmx file instead of me trying to experiment through your fingers?
I'm fine to DM if you'd prefer that over uploading it in here
shot you a dm
semver done right
Could use some creative input in my thread #1323499944321224715 I'll have to look at it all when I get home from work tho.
Yeah that's kinda what I do? but I never let the last decimal hit double digits XD
Like for instance, I did a dumb and have to add the i18n to my animal crossing digspot mod (I have the files I just forgot to put it in there properly) and so it's going from 1.1.0 to 1.1.1 XD
I got one of my i18n keys wrong in one of my mods so I have to upload a new version just to fix that lol
thats an interesting way to see it, i certainly agree with the shame version lol, happens too often to me...like manifest or spelling mistakes
have yet to ever change the first one in any of my little mods
second place would be a function or feature change or addition, 3rd for admitting guilt, but strictly speaking a 2.x.x of a program is supposed to be be a complete from-scratch rebuild, yes?
I actually don't agree with the shame part because everybody misses things and it's okay, not shameful.
In any case, that really shouldn't be presented as "semver done right", it's semver done horribly wrong.
My understanding was that the first number is for when it's not backwards compatible with the older version because it's changed too much.
2.x.x just means it makes breaking changes basically, doesnt have to be a full rewrite
ah, fair enough
Prototype of the color picker overlay. Thought I'd post for any comments before it goes into the library proper.
Admittedly I put compatibility patch and translation update to the third place, even though they're technically "feature change or addition".
Animated Fish 1.4.0 has now been converted to CP & SpaceCore!
https://www.nexusmods.com/stardewvalley/mods/5735
I might need to incorporate this into Colorful Chests. I'm dealing with UI headaches right now because for whatever reason I can never seem to get UI zoom levels down without bugs.
Two new mods, both with UI bugs related to zoom levels. I gotta stop putting off switching to StardewUI.
Haha, yeah all those static methods on Utility and IClickableMenu are a bit of a mess.
I really feel like I still stumble upon solutions through trial and error as opposed to having any intuition about what works or not
I still sometimes feel like that when I'm dealing with low-level SpriteBatch and GraphicsDevice stuff.
how would the 2.x.x would be translatable to things like npc or retexture mods tho 
you dont HAVE to do a major version upgrade
true, but ive just been wondering tbh
NPC mods can definitely break compatibility with previous versions. Retextures, probably not, since they have no code in the first place.
For example, deleting a quest would be a potentially breaking change.
mainly also because as an example i take my npc mod the fishmonger. had one npc, some events recipes etc. but now I am adding locations, more stuff, several npcs...basically kinda turning it into a small scale expansion. I COULD just go 1.1.0 -> 1.2.0 for example but with so much added i wonder if a 2.0 would be more fitting.
ofc at the end of day we arent making a program and can just choose what we want but yeah i probs just been thinking too much about silly stuff lol
(also including that there will be a change of dependencies too for the update btw)
About that, how could an update be backward compatible with the previous version? Shouldn't you only have one, anyway?
yo what is it about 1.6.9 that made so many mods no longer compatible? it seems like 1.6 all over again?
havent played in a while
what do i have to do is there a guide?
Versions aren't backward compatible with themselves, they're backward compatible with things that depend on them.
the wiki guide says "No. The vast majority of mods should be unaffected by the changes in 1.6.9, and SMAPI will automatically rewrite most mods that are. "
Yet even Content Patcher itself is incompatible now so what am i missing
A minor version is supposed to communicate that anyone else using your stuff should expect it to keep working without having to fix a bunch of new problems.
content patcher is absolutely not incompatible
The latest version of CP is not incompatible with the latest version of the game. Are you fully up to date with both?
Content Patcher was incompatible for like... a day? During the flurry of 1.6.x minor updates.
so unless its something like a c# mod that for example broke through 1.6 its mostly likely best to jsut stick to 1.x.x stuff?
you havent updated any of your mods?
You are missing updating SMAPI, perhaps?
You do have to actually update the mods
(or if ones mod has c# components)
better to just post a log
There was a slight miscalculation about how much 1.6.9 would break things.
It broke a lot of things. But things are mostly fixed now.
I cannot update like Slime Produce or Free Love as they are old script mods that were updated unofficially for 1.6 but the mod author has abandoned them
SMAPI 4.1.10 is required for the latest version of Content Patcher, I think? Could be wrong, but it was definitely an earlier SMAPI version that caused the compatibility issues.
You can choose to stay on 1.6.8 like I have
(For my current save anyway)
so I actually just have to update or delete everything if i want 1.6.9 š¦
ok i will try
tks
That's what https://smapi.io/mods will tell you. You can look up the mods.
Update SMAPI and Content Patcher first before fretting about this.
You could just revert your game to 1.6.8 and have a copy of both versions
That way if something you want to keep hasn't been updated you can stay with 1.6.8 until you feel ready
but i want my colorful slimes AND my faster blue grass
No one's forcing you to update, just don't expect to get any new mods compatible with 1.6.8.
I was just wondering if there was an easy fix e.g. fixing headers in the old mods or smth
if it's a deep coding thing i can't do it
especially since its not uncommon for updated mods to specify a minimum smapi version
I am quite excited about staying back with 1.6.8 for several months
Once I finally do update I feel like I am going to get this rush of new content
It will be so exciting
There are no headers in Stardew mods, they are all DLLs (excepting CP mods/content packs). 1.6.9+ has changes that are incompatible with binaries built against older versions. It's nothing like the change from 1.5 to 1.6, but you still can't take newer mods and run them against an older version.
(if you still have issues feel free to take this to #1272025932932055121 , since this is somewhat irrelevant to mod making)
yes understood thank you
the relevance was if i could fix it somehow
i get what i have to do now thank you
Do you even know if they're incompatible with the latest SMAPI?
you fix it by updating everything to the latest version
if it's a C# mod that broke and you're interested in how, feel free to continue here
it would require at the very least decompiling the mod and fixing its code
I don't want to take up channel space if it's a tech support issue guys dw
I do not know C# though I am interested in learning it, it's not a today thing š
what does the boolean return value on tile actions indicate? is it just whether or not to display it as "interactable"?
then yeah that returns whether the function succeeded
it returns false and presumably logs an error saying why
does it keep checking for other things to interact with?
i assume it'd do nothing else
there is no error out, and the wiki example does not imply that returning false represents an error
time to go decompile diving
actions and GSQs return false and log an error when something goes wrong, so i just assume tile actions work the same
actions return true if it successfully handled something and false if there was no relevant action, but I'm not sure how often the game actually cares about the result
I vaguely recall it might conditionally check for something else in certain cases, but could be misremembering
GSQs only, actions do not
some actions do
what I mean is, there's no built-in logging mechanism like there is for GSQs
Anyways, I've tracked it through the logic and it eventually gets passed up to Game1.tryToCheckAt, which uses it to determine whether or not to show the glove cursor
all actions have an out string error that gets used for logging, though
no? I'm looking at the delegate right now
e.g. AddFriendshipPoints, which will log an error if you try it with an invalid NPC
oh, not trigger actions, tile actions
i blame CA for these names
Trigger Actions came about because of modding though
The base game doesn't use them afaik
it does
there are a few now, yeah, though obviously it didn't until 1.6
anyways, mystery solved. I'm adding that to the wiki
but yeah, touch and tile actions just care about the return result for some edge cases incidental logic like that, afaik; it also stops them checking for other hardcoded stuff like warp obelisks if the action succeeded
(there are 31 vanilla TriggerActions)
touch actions return void I think
oh right, sorry, I was mixing it up with other [thing]Action methods 
Hello, I'm very inexperienced with coding but was trying to patch a mod for personal use, the json validator said everything was correct except for the end. It's probably a very simple fix but I am stumped.. I always struggle with the ending symbols lol
If someone could take a look I'd be very grateful
https://smapi.io/json/content-patcher/f551968c74654eb7ba4fce7bfaf238bf
One too many here, yeah: https://smapi.io/json/content-patcher/f551968c74654eb7ba4fce7bfaf238bf#L389
But also you have multiple "changes" lists and "format"s, so it might be more of an issue than it seems
it looks like only the bottom is new and the other is from an older file? 
Oh yeah, that. Delete the { "Format": "2.4.0", "Changes": [ part starting with line 352.
Ohhh, okay I see what I did but still not sure how to fix it, so I'll explain better what's going on
Basically I was trying to patch a mod that used to use minecart patcher, but the author of the framework said it is obsolete because vanilla can do that now
So I was trying to convert it to vanilla, but I'm super inexperienced so I copy pasted a template that added more fields I didn't realize the file already had
So the majority of it is older code with the exception of the bottom because that's all I was trying to fix. So is the issue that the rest of the code needs to be updated too, or more fields are incorrect?
Just delete those 4 lines first and see if it gives any error.
(The reason Dolphin is saying to delete those lines is because a mod can only have one "Format" field and one "Changes" field in it and you accidentally gave it two.)
Yar, basically by deleting those, we are attempting to merge both Changes fields into one.
OHHHH thank you!!! Thanks for that and for the extra explanation too, it still wasn't working after removing that but I eventually found an extra ] that closed it early and deleted it and that made it validate:)
Are you using Notepad++? It helps keep track of what's enclosed by marking the portion of the json and its corresponding bracket in red like so
So you can tell if you have any rogue brackets if they don't pair up correctly
Weird question only meant for personal modding - how much work is it to create a new farm from a replacer farm?
I.e. is it super simple if you already have the map patches or is it just absolutely awful to do
I don't think it'd be too awful, actually, since the replacers typically have the same underlying farm traits that you could then copy over to the custom additional farm format?
(haven't personally done it, but) I think the main difference would just be fixing whatever farm-specific hardcoded stuff it was relying on, like forest forage/stumps and such
fairly straightforward
I believe you can do it in about half an hour or less assuming youd o shit like "reuse icons"
Alright. I'll put it on my to-do list for later then
Oh you better believe I will
Only weirdness would likely be for the specific hardcoded elements like Esca mentioned, so hilltop/mining node or beach farm elements might need some specific tweaking.
This falls into the category of "I just want it working, I don't want it cleaned up for release" XD
So we don't get a lyoko farm map
Oh good god no
I can barely edit maps, creating them would be a nightmare
Plus my main priority once I'm done with current stuff is getting Date Night Redux's Island date done so that the Winter Star date + the responses thing that I need to program here when I have a free moment with Button's moddata storage can actually go live too
Don't worry. Tiled scares me too
Atra you deal with Harmony, how can you be scared of Tiled 
Maps
im also scared of tiled and map making lol
I mean I also hate tiled but also I'm a shlub
I'm scared of maps also
How can I delete tial data off a map
Just delete the tiledata tile?
not sure about doing it in Tiled (select -> delete key, maybe?) but in CP, EditMap -> MapTiles -> "Remove" is an option
Or if it's a map property, you delete that part (ex: a warp, you open map properties, and delete the warp line)
or rather, for tile data it'd be "SetProperties" to null, sorry
(and that for map properties, yeah)
Alright I am trying to do it in tiled but no luck let me try doing it in notepad++
im trying to clear the beach map
Why notepad?
because the tiledata labels wont disappear and I want them to go bye bye XD
Are they actually not being deleted, or do you just still have them selected in tiled?
tmx is just xml under the hood, so it's helpful if the UI is being weird (aside from risking format errors)
Because i found that sometimes if i still had the tiledata selected, it would show, even if i deleted them
(tiled is.... Weird, sometimes.)
Yea no kidding XD
xtile puts the fear in the hearts of the bravest men

is there a way to rotate a tile?
that didnt require any map making, though
tmx has that inherent property, press the arrows to your heart's content
Oh I didnt even realize those were there thanks!
The two genders of stardew
all you gotta do is take tiled out for a nice candlelit dinner, then it'll listen 
as well as break in through the doggy door with arbitrary tilesheet access--
lmao
Afraid of Tiled and afraid of Harmony
another form of artists vs coders
tia isn't allowed to talk, tia is also afraid of tiled 
Speaking of tiles I can't figure out how to control footstep sounds of different tiles 
Guides mention it as a tile property but I can't find a damn thing about how to set it in Tiled
pretty sure that one's one of the cursed ones

It's on the tilesheet
I'm not at home or I would take a photo
ah
Back Type <str type> Sets the tile type for various game logic (e.g., step sounds or planting crops), where <type> is one of Dirt, Stone, Grass, or Wood.
make sure that you're on the pink "Back" layer when you're creating the TileData
i think that's the right way to go about it
Hmm... so in Tiled we have to select the portion of the map we want the footstep to change?
afaik it will not work indoors though
yeah if you want to overwrite the properties it's necessary, otherwise it's hardcoded
Ah, if it doesn't work indoors that won't work for me either, I'm working with a map that has an indoor grass patch I wanted to sound like grass 
ahah
it's a bit hacky, but I think you can technically put the phrase "mine" anywhere in your location ID to make type-based footsteps work 
(both the footstep code methods check it like this, and I don't see anything else with similar checks, so it shouldn't cause any problems)
if (this.IsOutdoors || this.treatAsOutdoors.Value || this.Name.ContainsIgnoreCase("mine"))
and
if (Game1.currentLocation.IsOutdoors || Game1.currentLocation.Name.ContainsIgnoreCase("mine") || Game1.currentLocation.Name.ContainsIgnoreCase("cave") || Game1.currentLocation.IsGreenhouse)
if you fear neither tiled nor harmony, does it make you nonbinary or just stupid
Very interesting... might not be worth changing all my references to the map name just for the sake of a grass patch, but interesting 
I don't fear harmony. Not my own patches at least. And I don't fear tiled. I just wish I was more artistic.
you don't strictly need to be artistic to make things in tiled; it's really very structured, and compared to things like spritework there's more often a logical solution to most problems
layering and composition is still the hardest part, but its usually clear if and how you're doing something wrong
counterpoint: my maps are fugly
Counterpoint: tiled
Although with more layers I may finally be able to add access to the area above qi's
id say you only really need art skill if you're making a 'scene' map rather than a tile map
otherwise you're just assembling a jigsaw
Well, room composition is an artistic thing
I couldn't be arsed to make a good looking room so I just asked someone else if I could borrow theirs 
,
well jokes on you, i'm nonbinary and stupid 
Bluebs, my decor at home is still "broke student cool"
I'm barely above putting a mattress directly on the floor
dang is this why my legs phase through my bed in my apartment after all this time
I've been sleeping at a right angle for 3 years
did you save your room as a .tbin? those dont support rotations
might have something to do with the bad angle
good point let me contact my landlord tomorrow
gotta question rq, do cabins follow the naming convention like the farm house where the upgrades are labeled like "Log Cabin_0"?
i have worked too hard today and that went straight over my head as a joke
as an incidentally map-making related aside as ive been looking at my old files, is it better to just start a map over from scratch to resume work on a mod than continue with a map from 1.5.whatever. did a lot of map properties change or anything
i imagined selph just rotating the farmer sprite with a draw call and going, "good enough"
afaik the farmhand upgrades are all in one image
of course the extent depends on the map, but you're fine to upgrade an existing map
like what even is daa. do we still use daa or is daa old hat.
guys for those of you who learned C# to mod stardew, do you have any resource for someone starting out that has done bunch of CP mods but never done C# before? I really want to do it now
uh
ive had a couple endless maps from 1.3 to 1.6 and they just keep going without much change
what is daa
i would definitely yeet all of those map properties
i have no clue what daa is
i dont remember what map i even started from with this one
Daa is old school
https://stardewvalleywiki.com/Modding:Modder_Guide/Get_Started good luck, soldier
thanks!!!!
so alternate texture should be handling the transitions of texture for upgrades?
i don't actually use alternative textures so that's beyond me
but buildings do have skin data...
the only transferable knowledge from CP to C# is sdv and smapi general knowledge, like assembling mod folders, understanding the content pipeline, and knowing game stages
other than that you're in a fun new world
hmm, guess im just gonna download an AT mod for cabins and see how they did it lol
going from cp -> c# is basically, "how much time and effort do you want to put into it", especially if you've never even read some other programming language
I have downloaded visual studio before, and opened up a dll file, and gotten hopelessly overwhelmed and gave up =/
iirc arch and fish have migrated to Data/Locations, debris idk, is daa even an actual property or just asdf
but that was, I think, because I went about it from a CP point of view, of just trying to figure it out on my own, and that doesn't work with real world scripts. i need to learn the basics of C# before doing that
yeah I definitely recommend starting with making a sample mod from scratch lol
read the decompile like it's your new bible
roger that
none of these properties are ones i myself added and atra says its old school so i assume it was once a property that did... something?
opening another mod is useful once you know how a mod is structured as well as how to read code
and just kinda, let vs22 redirect you to all of the bs microsoft links and maybe you'll be able to glean what the hell it's talking about
sick the mod i downloaded told me AT is handling it in the background, thanks for the help!
Framework mods refers to C# mods that add new functionality to the game's code, and allows content mods to make use of them without having to make their own C# component. They usually work by reading custom data set in content mods and then apply their changes accordingly.
This page details the various...
Tbh c# for mods is really "learn c#" first
Unless you know some other programming language well
yes that was an important thing i skipped
instead of CP YAML to JSON can we get a CP to C# converter thanks
this is definitely a more advanced topic that assumes you're already comfortable with C#
yeah fair enough
What if I want to learn d flat instead
the main problem is "just find someplace that you can learn c#" iirc atra has the cheese page somewhere about it
!yellowbook
A good book for learning c# is https://www.robmiles.com/c-yellow-book
well you see... "D-flat major is a major scale based on Dā, consisting of the pitches Dā, Eā, F, Gā, Aā, Bā and C. Its key signature has five flats."
i tried getting into the yellow book but it was just a lot of names and numbers? i didn't get it
at least i was able to phone domino's
the yellow book is recommended because one of those numbers is for a C# expert that will beam their knowledge directly into your brain
oh so atra's on the front page
Professional Figure It Outer
atra you get paid to figure it out idk what you're talking about 
Slowly writing npc dialogue ee
What are like the basic event things I should write for first
What do you mean by basic
Like the general things to write dialogue for before doing specific scenarios
Holidays, etc
Oh, like just general conversation to fill out the year
yeah
except I fear both 
Mm, without knowing the context of the character I guess I'd start with small talk about generic stuff like the season and weather at low heart level, then more specific things about them at higher heart level after the player has seen whatever characterization scenes you're putting in
TIL Iām either nonbinary or stupid 
Must be the 2nd one
Since Iām pretty sure Iām not nonbinary
Cringe dialogue that Iāll make less cringe in the future
listen. we can be both
Itās a baseline Iāll work with
So they're obsessed with Clint, eh
Are you trying to make dialogue for Clint?
I finally did it, the stories and jokes are randomized. my animatronic lives!!
No Iām making Npc dialogue for a clint wife LOL
It wouldnāt make sense for her to not react to you trying to propose to her husband lol
Alright, have fun then š
how do I convert the smapi log again so I can send it here? Cause I am havin an issue
let's go bro
Have you fleshed out what kind of schedule they'll be following? Could make for good filler to have dialogue that just elaborates on what she does from day to day
!log (issues should go to #1272025932932055121 )
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.
oh no it's my mod, I'm writing it
For real? I thought the trend was in the other direction, C# mods having integrated content packs.
Ah, gotcha, you wanna send the json?
I can do that too
lazy question:
where is the code for the statue of endless fortune?
Ok, but editing your tiles in aseprite and then seeing the changes live in tiled after saving the sheet is dope
more intuitive than most, it's Object.OutputStatueOfEndlessFortune 
(or it should be, at least, I'm not sure if I see where it's called)
ah, it's called by Data/Machines entry (BC)127: "OutputMethod": "StardewValley.Object, Stardew Valley: OutputStatueOfEndlessFortune",
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Home, with 44 C# mods and 69 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
That's not the issue but thank you governer
Perks of the npcs two kids being toddlers? I have to write less
you missed a comma, dorkup
I still have to write some dialogue for them but itās far less
You missed commas
(relatable
)
(Commas get me every time)
My npcs name is now Susan until further notice
I KNEW IT WAS SOMETHING DUMB LIKE THAT AUGH
thanks guys
separated question, does there need to be a comma at the end of the section? since the next line will simply be the }
the trailing commas are optional (and only tolerated because it's a more forgiving json reader)
thank you!
appreciated
can't get hit by commas if vsc/vs22 screams at you every time 
lmao
for anyone who struggles with commas/syntax, you should really try a proper IDE like VSCode or something of the sort. It will highlight your mistakes (for stardew, I think you should usually manually change the language of the files to jsonc inside your IDE, because stardew json is closer to jsonc than actual json)
if you can set it to json5 thats even better
(aba and avi taught me this when I was just a babie cheeto, helped vsc scream less at me
)
I love vscode my bestie no more notepad content.jsons
My npc giving the player random items every holiday event is lowkey silly
jsonc im pretty sure only adds comments support but doesnt change anything about trailing commas or anything
or single quote strings
I just stick the content patcher schema at the top of the file im working in
I think it does do trailing commas? idk about single quote strings
json5 supported uhhh newline whitespace so that's the thing i've generally suggested
json5 also lets you not use quotes at all for your keys which is weird and dont do it but you could
so json5 basically takes ājavascript object notationā literally, huh 
i'm pretty sure i still have that cursed triplicate escape quote from pathos somewhere in my stash
I mean, when in doubt, you could always set the language to javascript and be done with it 
I need to do dialogue for the egg festival, the dessert festival, feast of the winter star, more seasonal dialogue, the heart events, and random other dialogue 
I saw the someone mentioned my NPC Apartment mod (Pelican Valley Loft) as a potential living space for Susan -- thank you #modded-stardew for promoting my mod -- so feel free to poke me if you decide to go that route and need any assistance with it.
I love escaped escapes
For the npc?
itās best when you get to like 4 of them
Yep!
I was thinking sheād live with clint, since theyāre married, but I would have to add a basement or smthng to the blacksmith or just have them all live there
If you've already got a home in mind, no biggie, but it's an option I've made available for any custom NPCs.
The apartment could work actually
also, have you even lived if your code has never had something like āā¦{ā{ā}ā¦ā in it
š
I would have to put clint there too LOL
The apartment makes more sense than the blacksmith
The number of times ive done something like {{ModId} and wondered why it's yelling about bracketsš
Iām not sure my ocs profession yet
I think itās pretty neat, fireredlily. So many new npcs without a prospective house just yet, also helps lots of NPC makers worry less about their home while the NPC is in dev.
Maybe sheāll be simmilar to Marnie but sell only specific things
(yep, apartments are super cool)
Yeah, and I left lots of vertical space so folks can expand the rooms up or down as needed if they decide to patch over them.
and even better, no need to worry about a space to put an entrance to a map š
I kinda wanna have her sell stuff but also not be generic..but also have her work in the blacksmith
Maybe sheās like Clintās assistant incase heās gone for smthng?
i already found my good spot for my expansion and it's next to the coolest lookin' statue in the game
So if heās out for his Harvey visits or smthng sheās at the counter selling his goods and breaking geodes and doing tool upgrades
youāre slowly veering into potential c# territories there with the assistant thing if you want to have her run the shop
Not really run but
As a bonus, I have an exterior map that just has fences all around it, so people could potentially build off of there too if they wanted a freestanding building, until those tiles run out. xD
Make sure you can still use the shop LOL
same thing, game-wise
Maybe sheāll be the door gaurd (she will never let you into clints room.)
the blacksmith i'm pretty sure is like robin, hardcoded to hell and back
Or she just cleans and works in the background and doesnāt actually do anything you need to interact with her for
But I already did the hard work of SVE compat, so one less worry for everyone else who uses mine as a jumping point
so like sheās cleaning stuff or sheās outside working idk
we joke a lot about scope creep, but if this is one of your first mods, you should really define a minimum viable product and try making that first, then add after
Iām not sure what I want her to do. Suggestions open
Yeahh
An npc as your first mod sounds kinda tough too, imo
portraits, sprites, get the npc in game, that's the main goal
Not impossible but
for my expansion (that i am NOT working on) i have spots picked out and i'm pretty sure nobody's going to take them. that's a clue i guess
once you can actually see the npc in game and it speaks then you'll be able to think about other things
I donāt really want her to vanish yknow?
Minimum viable product is get them to spawn in successfully



