#making-mods-general
1 messages · Page 10 of 1
-You cannot reload tokens, that's a forced restart unfortunately
-If you've done any CHANGES, then type into SMAPI:
patch reload YourMod.UniqueID
-If you've done i18n DEFAULT.jSON changes, then type into SMAPI:
reload_i18n then
patch reload Your.ModUniqueID
-C# Visual Studio has a feature called "Hot Reload": https://learn.microsoft.com/en-us/visualstudio/debugger/hot-reload?view=vs-2022
-C# Rider has the same: https://www.jetbrains.com/help/rider/Hot_Reload.html"
-Generally working in C# it will be called "Hot Reload" (usage may vary)
That's the umpteenth time today.

oh i need @vernal crest 's help on remembering what the tiled things don't get reloaded though
"Let's load the .png's from another folder! Seperation of assets is fantastic!"
headdesk
Moi?
there's specifics that don't get patch reloaded for tiled and i don't know which
Does anyone know the actual location name of the secret woods? Trying to make some fish catchable there
Woods, I think?
woods
Awesome, thanks!
@calm nebula https://www.nexusmods.com/stardewvalley/mods/27242
there ya go
thank you to avi for helping me find the relevant functions so quickly 
i have no idea how to edit the command but yknow i shoulda probably linked the content patcher guide on the reload command https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide/troubleshooting.md#reload 
(also if any mod author around feels like showcasing that, that would be nice, but im honestly not too fussed either way about this one lol)
Yeah. I also don't remember lol
then i'll not worry about it until someone who is more intrusive with tiled goes, "yeah it's this this and that"
Instant World Events by @uncut viper
Tired of pesky RNG getting in your way? Here's a solution
https://www.nexusmods.com/stardewvalley/mods/27242?tab=description
thank you bea
Hi Friends! how are you all?
so somebody is saying that my recipes aren't appearing in gus's store even tho they have 3 hearts with Gus (750 friendship points) so i was wondering....is it becuase they didn't have the mod when they met the requirement initially? any ideas?
object.json? yeah sure!
context: this is for the with a side of mayo mod.
also Congrats on the release Button friend!
(if it really was instant then i am sorry for the immediate bug fix version i just uploaded—)
ALSO SORRY FOR THE PING,
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.
there is a site? wow! thank you for letting me know! 
i pretty much made the mod in my own isolated little bubble so i had no idea this existed. 
yeah it's JA!
also Hi Selph friend! how are you? 
I admit I have zero JA experience since it's already basically deprecated when I started making mods. still taking a look though
do you see the recipe in your own save at least?
Tbh it would be too long with that
valid
Thank you!!!!
I tested it before i published it but to what extent i can't remember.
I can run another test later today!
but it's been over a month and this is my first report of it not working.
it might be possible that the person might not have json assets?
i have asked for a log!
yeah probably should have waited for a log first lol
yeah...Thank you for your help so far tho! 
Selph are you zombifier on nexus?
can someone explain to me, or link me to an explanation of how to create an asset sheet that i can use the "sprite index" bit for? im so far just saving a bunch of separate images and its getting a bit messy. is there just a certain pixel size and i slap the images into one picture?
Yes?
Sorry was just asking since I was using EMC and got confused bc the ID said selph but the user was zombifier
hence why I put "selph aka zombifier" in the author field lol
i am not that observant lmao
This may be a dumb suggestion but you could grab a vanilla spritesheet for the same kind of thing and make a copy of it and then copy and paste your images into it over the vanilla ones. Using the grid in image editing programs is helpful for this as well.
thats actually what i was considering haha!
you can imagine dividing a image into many equal sized rectangles
and you count these rectangles left to right, then up to down, to get the index
starting at 0 for the top left rectangle
There's no specific size or anything that you have to follow, just as long as the width and height are a mutiple of whatever the size of texture it's for it'll work, for example items are 16x16 so as long as both the height and width of the image are a multiple of 16 it'll work fine, the sprite index itself is counted left to right, top to bottom starting at the top left corner at 0
yeah, i figured that bit out at least thankfully
i just wasnt sure if there was a specific way to put it together or if it was just making everything even
thanks everyone!
(honestly, contemplated just doing a grid overlay template just because i hate having to sit there and go "0, 1, 2, 3, 4 okay next line--"
guys I can't seem to get my item to be edible is it maybe a conflict with the artisan goods category? here is the code:
`{
"Action": "EditData",
"Target": "Data/Objects",
"Entries": {
"EepyFemboys_MonsterCan": {
"Name": "EepyFemboys_MonsterCan",
"ItemId": "MonsterCan",
"Displayname": "Monster Can 0.5L",
"Description": "A 0.5L can of Monster energy, Gives a lot of energy at the cost of health",
"Type": "Objects",
"Category": -26,
"Price": 1000,
"Texture": "Mods/EepyFemboys/Objects",
"SpriteIndex": 0,
"Edibility": 1,
"IsDrink": "True"
}
}
},`
What if you switch Type to Basic?
"True" might need to just be true
Just so you know, edibility calculates both health and energy so you won't be able to reduce one and increase the other
(You can use SpaceCore for that)
That makes sense lol
didn't fix it tho :<
Does it patch the display?
I don't think this matters for Cp
sadge
ItemId isn't an accepted field either
huh
The ItemId is the key you put for entry automatically, so it'll be EepyFemboys_MonsterCan
ye
So try removing that, though I'm not sure what happens when CP runs into an unexpected field
removing it still didn't do anything :<
!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.
!json
JSON is a standard format for machine-readable text files that's used by Stardew Valley mods.
If you need help with a JSON file, you can upload it to smapi.io/json to see automatic validation and share the link here.
When making mods, it's recommended to edit your files in a text editor with JSON support, such as VS Code, Notepad++, or Sublime Text. These programs will check for syntax errors.
More info required
you got the contents unpacked right
no why?
would start with a copy of some vanilla data
never needed them
Follow this guide to unpack the game's content files in order to see and explore how the game data is structured.
It's helpful when making your own mods, or just to learn about how the game works!
i can't do it gives me a error lol
Log Info: SMAPI 4.0.8 with SDV 1.6.8 build 24119 on Microsoft Windows 10 Home, with 3 C# mods and 1 content packs.
Do you take stardewxnbhack out of its folder when you try to do it? Keeping it inside the folder is often what gives people an error when they try unpacking
i have it in the folder that might be the issue
You're getting a fresh new item each test?
no
Items already spawned won't get new data
i always register the same 2 ones
Any in your inventory before you make changes are trash
ooooh
you have to use the correct version of stardewxnbhack
omfg
which version of stardewxnbback did you download? 1.1.1 only works with 1.6.9
You need 1.1.0
For testing, I also suggest CJB Item Spawner
That way you can easily give yourself more items to test with
IT WORKS THANKS SO MUCH!!!! >.<
would anyone happen to know where i can find the sprites for water? im wanting to change the color of the pond in the secret woods if thats possible, but i cant find the water on any of the asset sheets, just the surrounding ground of the pond
been digging around for an hour 
Maps/spring_outdoorstilesheet
The color is a combination of tile color and the hardcoded water color
Also some on spring_outdoorstilesheet2
thank you 
Another weird question... is there something like a page detailing smapi history or development (besides github)? I remember seeing a timeline graph for smapi maintainers, but I can't remember where 
Hmmm, isn't Pathos the only maintainer but is open to PRs.
Pathos posts a lot of graphs and details here every month. Maybe one of those? Can't think of anything outside GitHub
Unrelated question: I'm trying to find what the current format of Stardew Valley is (I'm working on a content patcher mod). I'm seeing there's "2.3.0" and another saying "2.1.0" so I'm very lost
thats the format of the Content Patcher mod specifically
it should match the current version of Content Patcher that you are using to make the mod
Yeah, he is, but it was originally started by Zorus (maybe..?) and Pathos took over and made it how it is today, I'll look through old posts I guess
the format number tells it what kinds of features your content patcher mod can do or what migrations it might need to perform to auto fix old mods
Ah, yeah
So use the latest version of Content Patcher?
yeah, using the latest version is always preferred
I remember Pathos saying that SMAPI has changed so much that it has nothing to do with the og code
I'd be surprised if it wasn't the case 
Get more from Pathoschild on Patreon
^^
Not sure how useful this is but there's some history in this post. He might have more info in other posts too.
and now we're at 4.0. how time flies
Bit hard for me to search it properly on mobile
Very useful, thanks!
im kinda tired of 4.0 tbh. can we have 5.0 yet. bigger number = better, right? so just change the number for instant improvement?
the Chrome school of version numbering
You're welcome! I think pathos must've linked it in here recently for me to have read it. I really enjoyed reading it.
Damn, 5 years 
what would even be added in 5.0?
"everything is de-hardcoded, have fun" ?
Ooh this was fun thanks for linking it
And of course it will not be compatible with 4.0
that's honestly wild
wait so we have absolutely no idea who wrote the essentialSuper: superEssential ?
how would we know 
it's SDV code so the person would have to tell us
where's the puffer
was that actually genai, smh no puffer
Ah yes my favorite video game, SMAP VALLEY
(what ever happened to that drafted policy on generative AI anyway, cause i know "dont post ai-generated content in the modding channels" was part of it, but its been months since it was last brought up,)
That isn't bad for stylized pcb traces
What's that blue Dimond though
Upper right needs work
It looks alright at first glance but the background is melty and the pixels are fucked
Yeah
Oh god it's got like jpeg artifacts baked into it
It also doesn't have consistent scale
Ew
fear
what happened to the rule on AI generated content?
I'm fairly sure this is my problem, but just to be sure, would this line cause problems on Unix because the filename is "hairstyles" in lowercase?
Game1.content.Load<Texture2D>("Characters/Farmer/Hairstyles")
Linux yes
(in the pinned message: #making-mods-general message)
i'm struggling with a wierd c# thing. anyone know how to tell "is this integer tile coordinate one of the passable bed tiles?"
if (readyforBed)
{
if (!(isWarp || (isOnMap && !isOccupied && isPassable)))
{
bool isABed = location.IsTileOccupiedBy(v, CollisionMask.Furniture);
if (isABed)
{
//let's be sure its a bed
if ((location.getObjectAtTile((int)v.X, (int)v.Y) as Furniture)?.furniture_type.Value == Furniture.bed){
//yep its a bed folks
var bed = BedFurniture.GetBedAtTile(location, (int)v.X, (int)v.Y);
isOccupied = !bed.IntersectsForCollision(new Rectangle((int)(v.X * 64f) + 2, (int)(v.Y * 64f) + 2, 60, 60));
}
}
}
}
been tinkering with it for hours, nothing I try seems to work lol
(that post also just says not to post substantial AI generated content in the modding channels at all, regardless of mod relevance, but the fact that it still says it's a draft and not the final version is why I'm still unsure if it's even technically in effect
)
it keeps either returning passable for the whole bed or for none of the bed. i need to know specifically is this a walkable space. strangely, the other helper functions don't seem to answer that correctly inside a farmhouse (they just see furniture and say no)
people will just be left without context if they go back and read, it was truly a, "you had to be there to suffer it" kinda moment
Beds might be funny because you can "walk" on them, to sleep
im precisely trying to handle that in my pathfinder
but i need a way to tell the walkable spaces from teh nonwalkable ones (i already handle the dialogue popup)
are you hoping to path ppl onto bed or prevent that from happening?
because when i "fixed" it they got stuck on the headboard -_-
honestly i just need a way to tell which tiles are the walkable ones
that's it
(but to not be impolite, I'm presently pathing them into the bed to sleep.)
looking at BedFurniture, i guess you have to use bed.GetBoundingBox
actionOnPlayerEntryOrPlacement eventually calls that to pick the bed tile
I'm calling IntersectsForCollision which uses GetBoundingBox internally. for reference:
public override bool IntersectsForCollision(Rectangle rect)
{
Rectangle rectangle = GetBoundingBox();
Rectangle rectangle2 = rectangle;
rectangle2.Height = 64;
if (rectangle2.Intersects(rect))
{
return true;
}
rectangle2 = rectangle;
rectangle2.Y += 128;
rectangle2.Height -= 128;
if (rectangle2.Intersects(rect))
{
return true;
}
return false;
}
i really feel like that should work
probably missing something silly
just a custom one sized to a couple pixels smaller than the target tile
can see it here: ("v" is a Vector2 containing integer tile coords)
new Rectangle((int)(v.X * 64f) + 2, (int)(v.Y * 64f) + 2, 60, 60)
the +2s and 60s are to avoid edge collisions with adjacent tiles
e.g. that rect should be fully contained inside the tile id like to know about
it looks to me by the 64s and the 128s in the GetCollision that its working in virtual size units rather than tile coords, so i scaled mine to match (16 * 4 = 64)
unless i muddled something there which is entirely possible 😅
yea i can't think of anything obvious here
wow 
i inverted a boolean check -_-
isOccupied = !bed.IsColliding...
but on the bright side it works 
thanks for rubberducking!
in content patcher, is there token for locational seasons?
the Season token might take the LocationContext input argument? it doesnt say but worth a shot
When field is invalid: invalid input arguments (current), token Season doesn't allow input. 
i dont know then
doesn't seem so: https://github.com/Pathoschild/StardewMods/blob/5bbaa62ff9cebea2de84b9beb60c390b3c2ca0e9/ContentPatcher/Framework/TokenSaveReader.cs#L290
worth a PR maybe?
I don't think there's a built-in CP token for it then, short of using EMP's GSQ one
(for context, GetWeather below accepts a location)
i guess i can just do season + LocationContext island
the use case is a personal edit to idaida's flooring which includes flooring that looks just like grass
haven't touched code in a couple months and I feel super rusty...
oh! esca! there was a previous question about FTM: can you set a config for spawnables using GMCM or was that a hard nah? i'll have to dig for the actual message but they wanted to use CP context to put configs about spawning
(it wasnt answered afaik i was just gettin the actual msg!)
i could not, for the life of me, remember who asked, i only knew they had a V name lmao
FTM doesn't support pack configs and can't interact with any from CP, currently
@buoyant ivy here ya go
okay i dont think i have the brain to do the "mini coding adventure" i was thinking of... too sick today, what was i thinking. ill leave that on the backburner and get back to it on a day my brain is at full power
Thanks!
well, then i have to rework some parts. already have an idea what i could try.
yri.ProjectYellogTownOverhaul is the manifest ID for "OUTDATED Yri's Project Yellog - Town Overhaul (Alpha)", if that helps?
(google gave me a direct download link for that on nexus, despite the page being hidden
)
Hey, I’m trying to make special dialogue that appears only if someone has purchased specific animals, how would I go about that? I’ve searched through several wikis and still need a push in the right direction.
so i've added a new fruit to the game if i add the context tag for colour will that change what the wine/jelly looks like?
Don't think it's possible in the base game
Extra Animal Config adds a couple GSQs for "farmer has animals" so you can use it if you're willing to add an entire dependency for some dialogue
https://www.nexusmods.com/stardewvalley/mods/25328
Yea
thank u selph
man. if that's the case maybe ill just write around it haha
Just remembered there are stats for eggs/milks collected so you can maybe use those
maybe
It seems almost every base game animal has a produce stat associated so you can use it as an indicator for "has animals on farm, or had at one point"
I wanted to link this earlier lol, is there a command for it?
(id maybe update it to include the book info too before making a command for it!)
(Hi Button! if you want feel free to steal my animals GSQs for BETAS)
(Hi Selph! i would feel bad cannibalizing a mod like that!)
no i just grab it from the cornucopia teams private resource channel every time i need it bsnsns
(my mod has like other features it's fine, the GSQs are kinda out of place anyway since it isn't a "animal data extension")
(if you're sure.. i may consider it at some point then, but it'll be low priority since if someone needs it they can just be pointed to yours in the meanwhile. ive got other stuff im workin on for BETAS right now anywho
)
(There is also the spacecore one for "ever had a game generated conversation topic"
And there is a conversation topic here
is there?
Purchased Animal or something)
so there is
purchasedAnimal_ + the displayType of the animal
unless the animal displaytype is White Chicken or Brown Chicken, in that case its turned into just Chicken
hah TIL
(And despite the name it also fires for hatched animals)
it doesn't solve the "farmer bought them and then sold all of them" problem but that's probably good enough™
it also doesnt work for pets I think
thats what the spacecore thing is for, that checks whether any active dialogue event has ever occured, not is actively occuring
(There is another for having adopted a pet)
I meant selling all your chickens doesn't retroactively unset it
But it doesn't split by breed
another one for BETAS maybe
you might be able to use ITEM queries for the pet license adoption though
its just one shop entry shared by all adoptable pet licenses
but the pet type and breed gets shoved into the item ID i thiiiink? its been a while since i looked at that code
but im not sure if ActionsOnPurchase can check the item id with the ITEM_ID query using the If action
Name field I think
random question bout crops uh, is there a way to make them sway less because I just added one and like thing will nearly go horizontal
do you have your speed set to Sanic the Hegehog with CJB Cheats
is that the only reason
Yes
yes 🙃
(Hey at least you didn't submit a bug report)
"Why is the ginger going like sideways?" "Atra you're +6 speed rn"
the trigger action pipeline is still hard for me to follow but i cannot tell if the actions within ActionsOnPurchase actually ever get sent any target or input items or really any context at all (which only matters for the items anyway)
my meat mod is takin shape atra art is all done
(i dont think they do though
)
Meat mod? Is this bringing in/back the fabled meat that CA cut from the game?
(Animal Husbandry already does that, even using the same unused sprites and item id)
I seem to remember looking at Animal Husbandry and finding it weird that it was essentially a "harvest" (as in, you're skinning these animals alive?). My memory's not what it used to be, though.
Wiz's thing is making them crops I think
Ah. Meat crops. Obviously.
love a good mop
AHM just makes the animal disappear and turn into meat items
I must be thinking of a different mod, then.
PPJA Fresh Meat
Fun fact in case anyone here are not aware, before 1.6 those meat item IDs were still referenced in the animal CC bundle, so AHM didn't need to do anything to make the meat item submittable to the bundle
meat is still a valid category in game, doubt i'm going to use it though i want my products to count as artisan goods
I suppose a suitably dry-aged steak could count as artisanal. In reality, I mean.
does AHM still keep the hardcoded non-red smoke puff when you sell the animal
or did they make it reddable
I don't think it's changed
(because lore wise you're not actually butchering the animal, you're sending them to the shadow realm, whose inhabitants then keep the animal as pets and send you their magically created meat items)
oh so its vegan friendly
yep lol
the shadow realm people even send you their meat wand (which happens to look like a butcher knife)
but totally not a butcher knife
hii, first time mod-wanting-to-make-person here! I can't seem to wrap my head around something - I want to make a mod for a cutscene that activates around a certain number of hearts with each spouse in game, with the screen being black (similar when to when your spouse asks if you want to have a baby), just with different dialogue and portaits, how would I get started with that? the idea is relatively simple but I am dumb and I don't know what I'm doing lol
do you want to make just a heart event then?
Yes! but one that activates after you go to bed! just like the baby prompt kinda!
oh i guess that's more like a night event then
Yay thank you!
wasnt that replaced with AHM?
AHM gets it from animals, PPJA's is crops
oh interesting. i heard of it but wasnt sure how it worked
i wonder if wildflour or cornucopia will fill the void
i dont think flour will
anyone know how to view the prismatic tools continued shop items? theyre in .dll i am trying to crossover it to improved shops sve
i wanna make sure i put the right item id and id for it
patch export is likely your friend here
where do i do patch export?
run e.g. patch export Data/Objects in your SMAPI console to have CP spit out a json file containing the asset as the game currently sees it
(it will tell you where on disk it was written)
how will that narrow me down to prismatic sprinkler?
if you can identify it in the shop, you can probably identify it in the asset. you'll have to put in whatever asset the items in question appear in (perhaps Data/Shops?)
when i put the item ID which i found PrismaticSprinkler do i have to put the unique id before it?
example iargue.PrismaticToolsContinued_PrismaticSprinkler
PrismaticSprinkler is item id
hello anyone here knows any mod that make easier to put decoration like u know sims
(you want #modded-stardew )
(Sims is that creepy game right?)
(I'm sorry it's so uncanny valley
Every screenshot I've ever seen.)
i don't know what your goal is, but you almost certainly want to use the item's id exactly as is, or maybe add a type qualifier ((BC) i think for sprinklers) if it doesn't already have one and your target needs that
sprinklers are (O) actually
(unless this prismatic sprinklers mod do something funky)
not rly sure but it is craftable
but when putting the id since it's a modded item, do i use the unique id of the mod as a prefix?
"Name": "Prismatic Sprinkler",
"DisplayName": "Prismatic Sprinkler",
"Description": "Waters the 48 adjacenet tiles every morning.",
"Type": "Crafting",
"Category": -8,
"Price": 2000,
"Texture": "SMAPI/iargue.prismatictoolscontinued/assets/prismaticSprinkler.png",
"SpriteIndex": 0,
"Edibility": -300,
"IsDrink": false,
"Buffs": null,
"GeodeDropsDefaultItems": false,
"GeodeDrops": null,
"ArtifactSpotChances": null,
"CanBeGivenAsGift": true,
"CanBeTrashed": true,
"ExcludeFromFishingCollection": false,
"ExcludeFromShippingCollection": false,
"ExcludeFromRandomSale": false,
"ContextTags": [
"crow_scare",
"crow_scare_radius_5"
],```
based on data shop patch
then you want PrismaticSprinkler
or (O)PrismaticSprinkler for the full qualified ID
lemme get the prismatic bar section be right back
"Name": "Prismatic Bar",
"DisplayName": "Prismatic Bar",
"Description": "A mystical ingot forged from legend itself.",
"Type": "Basic",
"Category": -15,
"Price": 2500,
"Texture": "SMAPI/iargue.prismatictoolscontinued/assets/prismaticBar.png",
"SpriteIndex": 0,
"Edibility": -300,
"IsDrink": false,
"Buffs": null,
"GeodeDropsDefaultItems": false,
"GeodeDrops": null,
"ArtifactSpotChances": null,
"CanBeGivenAsGift": true,
"CanBeTrashed": true,
"ExcludeFromFishingCollection": false,
"ExcludeFromShippingCollection": false,
"ExcludeFromRandomSale": false,
"ContextTags": null,
"CustomFields": null
},```
something lik PrismaticBar?
yes, exactly as in the files
ok thanks i was just trying to figure it out. learning how to use modded items
thanks for help
been driving myself crazy trying to figure out why this dialogue thing im working on kept adding random space at the end only to find out after so long that. the localizedtext string i was using for testing just. has an extra space at the end.
"ShopMenu.cs.11488": "Welcome to Pierre's! ", pierre i hate you
thanks for help. where can i find the event id that i want for sophia's sprinkler unlock?
nvm i found it
I just string.Trim everything. Always. Because.
it was difficult to diagnose bc i was having other similar errors that i could not tell if they were bc of extra spaces on the string or just weird argument parsing making things combined or uncombined or empty when they shouldnt be
(trying to make my actions/GSQs/etc accept tokenizable strings which is difficult bc the arguments for them get sent to you as an array of strings, where the original string is separated by spaces... which most tokenizable strings have inside them. so i had to rewrite all the ArgUtility.TryGetX functions to account for it)
(Was there something new to add? Escape texting the string worked for me)
(oh yeah hi avi, remind me, are you using the SetNewDialogue stuff already)
Yeah lemme get outta bed what's up
you dont need to get out of bed for it, just giving you a heads up (since i think you're the only person actually using the mod at all rn? or at least those actions) that the syntax for em is gonna change a bit
i'm sad but also, ok, i haven't actually released the update with the requirement
sad but also glad*
bad form to introduce a breaking change like, right away, i know and apologize, but im gonna move things to use Tokenizable Strings instead since thats a vanilla thing and might help people not be confused by my own custom syntax in the future
but with the added benefit of you being able to use them in actual dialogue too, if you choose to, i suppose
oh you meant the commands?
yeah
This is why I start with pre-1.0 versions, semver says that any update before 1.0 is likely to be a breaking change.
oEUh, yeah that'll be nice
you still can write the dialogue directly in the Action though so if you're doing that you're actually fine
uh the craziest i have is
but if you're using a translation key like Dialogue\\Lance:sun4 then it'll instead be [LocalizedText Dialogue\\Lance:sun4]
"Spiderbuttons.BETAS_SetNewDialogue Lance \"{{i18n:Lance.Kissed_{{Random:{{Range: 0, 5}}}}}}\" true",
then yeah that should still be fine and not need a change
the relative query stuff is also changing as a result but i didnt think you were usin those (yet)? correct me if im wrong tho
squints
the stuff like RelativeX:Haley:5
nope
perfect 
i did do the gift given one (Which probably has wrong syntax because i am not good at item_id queries) 
(instead of that weird syntax its now just gonna be a tokenizable string too like [CharacterLocation Haley] or [CharacterCoordinate Haley X] combined with an optional [NumberOffset <number> <number to add>]
none of the actual triggers are changing
just the setnewdialogue/textabovehead commands and the relative query stuff
"Condition": "ITEM_ID Target \"Lance\", ITEM_ID Target \"Aviroen.LanceExpanded_QiMomento\"",```
oh i forgot the extra bits of it
yeah thats not changing, you're fine. also you dont need to escape those im pretty sure
(also bc the tokenizable strings are gonna be usable in my GSQs now as a result too you could theoretically do like... "Condition": ITEM_MOD_DATA_RANGE [FarmerSteps] if you want a range to meet a minimum of the same amount of steps you've taken. dunno why you'd want tio but hey, you can! theres other tokens too ofc)
i'll grab food, i'll drop notes in your docs review
(the docs arent updated yet bc i havent pushed the new version out yet)
so i finished making is sve. ima test it. may release it early so its out before i return to school. i will make a small update when sve 1.15 comes out
yikes
idk what this means
Looks like a closing bracket maybe
Says line 788 so start there, pop it in the validator
Add a } before the ]
what line?
Between 787 and 788
it's because technically the very last "Joja Day Cloth": { "Id": "milosnikwiewiorek.ImprovedShopsSVE_Joja_Day_Cloth", "ItemId": "428", "Price": "375", "Condition": "IS_PASSIVE_FESTIVAL_TODAY FlashShifter.StardewValleyExpandedCP_JojaDay" } is using the "entries" closing bracket, rather than it's own closing bracket
or however which way you wanna read it
!vsc a good program will help deter this issue
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/
yeah it screams at you
you have to manually install the addons into notepad++ for it to yell at you
It also will usually create closing brackets for you
Like when you create an open it immediately creates a close and you just fill in between
was there a way to turn that off for ' because i literally only type that for dialogue
what does this mean?
means it's either in a wrong folder or it don't exist and you've called it somewhere
The other two, check your file paths and names
this is the content.json page
so you have a folder called Community Center Route ?
Are they supposed to be called Jumino or Junimo?
oh yea. i mispelled it
ZoeyVendor.json.json should just be one .json
100% suggest vsc, it yells at you for misspellings too
Only if you get an extension for it
Also looks like you can't disable just single quotes, only everything or nothing
i guess i'll just perish
yea i just fixed it
not sure what i should do instead
found it
i just mispelled the .json filenames
fixed it
so items are not showing for cc route. i will look into them tmr as ima go to bed
oh THAT'S why i constantly try to GSQ "PLAYER_HAS_FLAG" cause i'm perpetually in the state of thinking of content patcher 
Hello there, could someone tell me why I have unitended behaviour in my C#mod? The portaleffect.png is being drawn onto every map in the game or maybe it's every map the player is on? Well I only want it to set on one map the one it was set on...
we will probably need to see some of your C# code to do that
Iirc you implemented this with the render event
Gotta add check to only draw when a player's curr location is the one set for portal
(this kind of thing is why I originally thought the portal should be done via flooring)
add a check for currentlocation...
that seems to be working.
if (portalTexture != null && teleportLocation.HasValue && Game1.currentLocation.Name == teleportMap)
now how do I disable it from working when interacting with UI elements and in events. It seems to trigger still when holding the orb. Any ideas are appreciated.
is there someone who could eli5 how to find the x y values for a set of items in a tile sheet? and do i have to change each item individually even if they're one after the other on the tilesheet? the craftables tilesheet has the seasonal plants i want to replace, and the second image is what i want to replace them with
there are two ways to get the xy values for an item in a spritesheet: 1. math, and 2. open it in an image editor and select the item
in this case, craftables are 16x32 pixels, so count out the row and column values (start at 0) and multiply by 16 (column) and 32 (row) respectively to get the x and y. width and height are likewise multiples of 16x32 depending on how many items you are editing
(this is the math approach, which works when items are a consistent size. if you are looking at e.g. LooseSprites/Cursors, you have to use method 2 and select the item, because it's the wild west in there)
for example, the top left item in the sheet is (perhaps obviously) at 0,0. if you move right three items (the "fourth" item; index 3 when counting from 0), then your xy coordinates are 48,0. likewise, two items right and three items down would give you 32,96
There's also a page on the modding wiki with co-ordinates for everything on Springobjects and a WIP table for Cursors
Use Context.IsPlayerFree, not Context.IsWorldReady.
(re: item coordinates, Paint.Net has a useful feature where it'll tell you the pixel coordinates of the cursor/selection in the status bar. That's what I use, especially for wacky sheets like Cursors.)
Here you go, Ichor 
https://stardewmodding.wiki.gg/wiki/SpringObjects_Coordinates
https://stardewmodding.wiki.gg/wiki/Cursors
This is a table with co-ordinates for every sprite in the springobjects.png file. To use, reference the X and Y values in the row and column headers - eg: leek has a column header of 320 and a row header of 0, so its co-ordinates are 320,0.
The Cursors.xnb is full of various different icons that are used in-game. Of course, at first glance it is difficult to tell what they are used for and where. A running joke in the SV community is that if you are looking for something, it is either in Cursors.xnb, Cursors2.xnb... or Springobjects.xnb.
Note: some of the usage descriptions may be ...
ooh, thanks
GIMP has the same, and I think Aseprite does as well
That worked for the event issue while holding it.
now what's left is when interacting with doors might be a bit annoying and with the ui.
but overall my first C# mod is working fine now.
Yeah, lots of image editors have the feature. But GIMP has crummy UI and Aseprite isn't free. For those without much experience and without elaborate needs, I think PDN is a great choice.
this is really helpful thank you, im understanding a bit better now
im updating values and some of the structure itseld, but now im running into the problem where im not seeing any changes happen in game like i did the first time :/ any insight ?
perhaps try typing in console patch export NameOfAssetYourePatching to see how/if your changes applied
stupid question but in the smapi console? (this is all really new to me sorry)
yeah, although have you set up the content patcher part of it where you're actually putting your asset over the existing one?
is it possible for me to put my custom recipe in the mail?
yes, you'd have to create the data/mail, and with the %item craftingRecipe <key> %% command, you'll also need a data/triggeraction to actually send out the mail unless you want to attach it to an event or some other way
craftingRecipe: Teach the player the crafting recipe with the given ID. The key is the item name. If the item name has spaces, such as "Mayonnaise Machine", use underscores in place of spaces, ie "Mayonnaise_Machine".
https://stardewvalleywiki.com/Modding:Mail_data
https://stardewvalleywiki.com/Modding:Trigger_actions
ohhh i get it now thanks
btw, iirc the player is still considered "Free" during those tiny overnight-events after going to bed, so you'd probably want to check for this as well: Game1.farmEvent is null
not sure if it affects your draw event
hi there, could someone tell me what ExtraChance in crop.json means? and is there any ingame formula for crops? It got me here...
extra chance is when you're harvesting, i.e. potatoes, based on a multiplier percentage (.5 meaning 50% chance) unsure what you mean by 'ingame formula' though 
thx! I met the code in Korea Blossom mod, which is hidden from Nexus, its Extrachance says 0.02, while when harvesting flowers, 9 crops produces 1600+ flower objects. I can't see why.
is that running off an older version of the game? looking at crops.json in 1.6.8 has different fields:
"Seasons": [
"Spring"
],
"DaysInPhase": [
1,
1,
1,
2,
1
],
"RegrowDays": -1,
"IsRaised": false,
"IsPaddyCrop": false,
"NeedsWatering": true,
"PlantableLocationRules": null,
"HarvestItemId": "192",
"HarvestMinStack": 1,
"HarvestMaxStack": 1,
"HarvestMaxIncreasePerFarmingLevel": 0.0,
"ExtraHarvestChance": 0.2,
"HarvestMethod": "Grab",
"HarvestMinQuality": 0,
"HarvestMaxQuality": null,
"TintColors": [],
"Texture": "TileSheets\\crops",
"SpriteIndex": 3,
"CountForMonoculture": true,
"CountForPolyculture": true,
"CustomFields": null
},```
That's JA code I believe
ah, yeah i have no idea how JA works 
I also have no idea how JA works but this may be relevant: https://discord.com/channels/137344473976799233/1272719382501658654
yes it's JA. thx
i'm reading... I'm just a starter and know little about JA
json assets is depreciated, so if you're working with it, i would suggest switching into content patcher fully
it's only still up for compatibility with mods who haven't upgraded to 1.6.....some version # i don't remember
i was just about to ask what json assets is lol
it was the land before string unique ids
haha lol
Hi!
I'm making a mod that related to the Mullner house (Alex, Evelyn, George) but I can't seem to find it in Data/Events?
JoshHouse in the code refers to Alex's home IIRC
Ahh, I was thinking so since I was like "WHO IS JOSH" and I couldn't find any of their names with House
Thank you!
anyone know about farmer sprite sheet for arms?? in wiki, well explained about body sprite (with pants and skirts). but it not explained about arms..
OOh ok
I just finished the nexus page for this mod.
spare yourself. don't do it
Help I have had no sleep and can't figure out how to make two different size eggs produce the same mayo product like the vanilla eggs
It's probably simple af
Only my large size egg is working
Nvm figured it out
heyy guys :3 how would i go about adding a certain itemId to a persons gift tastes without adding them to universal categories? I can't seem to figure the wiki out :P
Heya peeps,
it's my very first time modding anything at all and I've come into a dead end.
I'm currently spawning a monster with a 1-3 tile distance around the current player's position. What I can't figure out is how to check whether this exact tile is occupied so the monster is free to move (or just grant the monster no-collision for 1 second). Essentially avoiding the spawned monster to be stuck.
Code snippet of my spawning method:
public void SpawnMonster(string monsterName)
{
GameLocation location = Game1.currentLocation;
Point tilePoint = Game1.player.TilePoint;
Random random = new Random();
int direction = random.Next(4);
int distance = random.Next(1, 4);
Vector2 spawnPosition = tilePoint.ToVector2();
switch (direction)
{
case 0:
spawnPosition.Y -= distance;
break;
case 1:
spawnPosition.Y += distance;
break;
case 2:
spawnPosition.X -= distance;
break;
case 3:
spawnPosition.X += distance;
break;
}
spawnPosition *= Game1.tileSize;
Monster monster = new Skeleton(spawnPosition);
location.addCharacter(monster);
}
I've seen isCollidingPosition in a few other mods and just set the spawn position at the exact player's position if true... but I'm not even sure it does what I think it does as it always seems to return true
Rectangle spawnRectangle = new Rectangle((int)spawnPosition.X, (int)spawnPosition.Y, Game1.tileSize, Game1.tileSize);
if (location.isCollidingPosition(spawnRectangle, Game1.viewport, isFarmer: false, damagesFarmer: 1, glider: false, character: null))
{
spawnPosition = tilePoint.ToVector2() * Game1.tileSize;
}
Any help or guidance would be much appreciated 🙂
"Action": "EditData",
"Target": "Data/NPCGiftTastes",
"TextOperations": [
{
"Operation": "Append",
"Target": [
"Fields",
"Shane",
1
],
"Value": "6480.blueegg_BlueEgg",
"Delimiter": " "
}
]
},```
1 is for love, the others are listed on the wiki
Hey there, someone reported to me that Custom Furniture are incompatible with the "pass through" option of Precise Furniture. I've done some investigation and it seems like all I need to do to fix this is to ensure that Precise Furnitue's Furniture.IntersectsForCollision Harmony postfix happens after the one I have in the Furniture Framework. According to the Harmony docs https://harmony.pardeike.net/articles/priorities.html, it's possible by using method annotations, but I don't know if it will work since I'm not using annotations but the Harmony.Patch method. Is this the right way to go?
With making new cooking recipes, the edibility line confuses me a little as it doesn't signify health or stamina?
I'm following this https://stardewmodding.wiki.gg/wiki/Tutorial:_Adding_a_Recipe and it even states it's a little arcane?
It is very easy to add recipes to Stardew Valley using Json Assets. You can use Vanilla items or items you or another mod you have installed created with JA.
If you would like to make a video based on this tutorial, you are welcome to do so! Afterwards, please edit the page to add a link to your video for users who prefer to learn that way. :)
F...
@little crag You leveled up to Cowpoke. You can now speak in our voice channels and share images in all channels!
health and edibility are two multiplications of the same value
The formula for health and stamina recovered based on Edibility is as follows
Stamina = Edibility* 2.5 + Quality * Edibility
Health = Stamina * 0.45
Harmony methods (passed into the postfix, prefix, etc) for harmony.patch do have an optional priority parameter for the 4th constructor if that's what you're after
Oh, I see, I found it, thanks!
I somehow blanked on the Priority.High I already used on my prefixes, it's sticking out and clear but I guess I can't read today
isn’t Custom Furniture dead?
I call Furniture made with the Furniture Framework "Custom Furniture". That might not be one of my brightest ideas, i see how it can be confusing.
Ahhh
WTH I don't know why but now my custom Catalogue has my Spouse as a shopkeep, how is this even possible?! I'm pretty sure it wasn't happening last time I checked and I didn't change anything about custom Catalogue in 4 or 5 months. I hope this is just an issue caused by a default value I can override.
question here. i have the shop name right but i noticed that the items aren't showing in the shop
aaaaand, it's fixed now. I changed NOTHING
THANKS SO MUCH!!! :>
I can't guarantee it'll always be accurate, but this is my most thorough check for clear tiles at the moment:
Vector2 tile = new Vector2(x,y);
if (!location.IsNoSpawnTile(tile) && !location.IsTileOccupiedBy(tile) && location.CanItemBePlacedHere(tile))
//then it's clear to spawn a monster here```
I'll try that, thank you so much!
Idk why but even with the priority set to First, my postfix runs after the one from Precise Furniture, and from the source code, it seems like it has no priority, so it should come after "First". I have no idea why, nor how to even debug it, let alone fix it
I mean, debugging seems simple enough, just get their source from github and debug from that so you can walk through the code on their end. I just wonder why the patches don't seem to register the priority
Try the harmony before and harmony after thing?
I went through their github code, but there's no priority set, so I suppose it should default to "Normal"
I forget which one delixx ran into
can I do this with Harmony.Patch? nvmd I found it
anyone know how to pull an event id that i've already seen? it's a special order event
here's the relevant code in Precise Furniture btw: https://github.com/Smoked-Fish/PreciseFurniture/blob/main/Framework/Patches/StandardObjects/FurniturePatch.cs and https://github.com/Smoked-Fish/Common/blob/9d3e4252ffc12b62d904e73df9bc61d22021e442/Helpers/PatchHelper.cs#L127
I tried HarmonyMethod postfix = new(method, before: new[] {"Espy.PreciseFurniture"}); but it still doesn't work.
At this point I wouldn't be surprised if I was just putting code in the wrong place but I've double checked multiple times already.
This might be a weird question, but did I understand correctly that there's automatic garbage collection so modders don'thave to worry about it?
Depends on how you mean, but C# does have automatic garbace collection yes
See
I vaguely recall DeLixx having issues with one or the other but no longer recall which one
So I'm as lost as you are now haha
well, the other one wouldn't help much so...
I meant "one of before/after or priorities" sorry
For now, I can just copy paste code from Precise Furniture at the end of my postfix, it's only 3 lines and calls nothing
Well, I'm actually trying to figure out why SDV needs more and more memory as I play until it crashes so my first thought was it might be a mod causing a memory leak / not properly deallocating 🤔 thanks for your reply, I will investigate further
Yeah I've noticed that too
1.6.8 or 1.6.9-beta?
Try 1.6.9 beta
I believe there are fixes in the audio engine
1.6.8
huh, never would've guessed it might be from the game iteself. Thanks! I'll try the beta then
i cant seem to be able to post my mod announcemnt in modded farmers. has something change?
is your message not sending or is leah not responding
Okay, seems like location.CanItemBePlacedHere(tile) always returns false, even if surrounded by unoccupied tiles in every direction. Removing that however still lets the monster spawn within trees/stones/structures :/
it keeps saying the message cant send
do you have markdown in it?
removed my heart emoji and it went through
oh weird!
maybe try location.isTileLocationOpen(vector2)
No success either unfortunately, does still spawn within trees and bushes.
Wondering whether another approach might be more pragmatic for this. Is there maybe a way to set a monster's value like seenFarmer on true so it automatically aggros the player? Then I could just set the spawn point to some pre-determined tile coordinates for each location
Please send me the CP code to add preferences for residents 😁
Thanks 😊
anyone remember this little thing?
(this is a total rewrite. it's a bit smarter now.)
It's safe to divide up my code using /// and titles right so I can y'know know what each section does?
in c#? yes.
//this is a comment and does nothing to code
I’m so tempted to make a custom NPC… would any of it require C# or can it all be CP? Like for heart events and stuff
Yeah smapi accepts jsonc so comments are fine
C# not required
Awesome thanks!

Can you overwrite one of the HUD message icons like screenshot or the newQuest exclamation mark with a custom icon file with SMAPI?
yes you can use content patcher edit image for this
I unpacked the Content folder but I can't find the target for those icons
it's LooseSprites/Cursors unfortunately
going by the decompile, there's 6 icons at
294, 392, 16, 16
403, 496, 5, 14
268, 470, 16, 16
0, 411, 16, 16
16, 411, 16, 16
96, 32, 16, 16
(x, y, width, height)
Oh, pretty sneaky 😄 thank you so much!
I can't figure out why this gift code doesn't work. Object - BigCraftables
{
"Action": "EditData",
"Target": "Data/NPCGiftTastes",
"LogName": "Universals",
"TextOperations":
[
{
"Operation": "Append",
"Target":
[
"Entries",
"Universal_Like"
],
"Value": "MK_MagicWood",
"Delimiter": " "
},
]
},
Hey guys, i'm trying to change manually some dialogues, but they don't seem to change when i start the game.
exemple: i changed haley's name in every dialogue, but it stills showing "haley" on the dialogue.
How can i change the dialogues by myself?
(i'm only editing the PT-BR dialogues)
wdym object bigcraftables? BigCraftables cannot be gifted to npcs
you have to give more information on how you're changing them
preferably
!json
JSON is a standard format for machine-readable text files that's used by Stardew Valley mods.
If you need help with a JSON file, you can upload it to smapi.io/json to see automatic validation and share the link here.
When making mods, it's recommended to edit your files in a text editor with JSON support, such as VS Code, Notepad++, or Sublime Text. These programs will check for syntax errors.
if you're editing files directly, that will not work
so a description of what you're trying and failing is necessary for people to help
I'm editing the .json files that are on Content (unpacked)
I open then on VS code and change it manually
Content Patcher (https://www.nexusmods.com/stardewvalley/mods/1915) is a mod which loads content packs to change the game's images and data without replacing XNB files. If you want to make mods using Content Patcher, start at https://stardewvalleywiki.com/Modding:Content_Patcher.
Start with the second link and follow the guide to make a basic mod
content (unpacked) is just a description of what is inside the game files when you unpack it, it has no effect on the game at all
in fact you should unpack it again and obtain the original files again
That doesn't make sense for me.. :(
I know how to change textures, but how to I apply that to dialogues?
Is there any video that can help me? :/
It worked before updating with JA. Is there any way to get around this?
There's no video but you can look for other people's mods which edit dialogue
or see if someone else here will help you
Ahh that worked flawlessly, thank you so much 😄
Oh, such a beautiful BigCraftable is disappearing 🥺
I'm confused.
Json Assets documents itself say you cannot gift big craftables
To be clear
big craftables are two-tile tall stuff like machines, some furniture, lamps, etc
I think you should post a screenshot or share the data for the item you are trying to add to gift tastes
If i copy the code and change the files to pt-br, it will probably work, right?
(sorry if that question didn't make sense)
I'm unfamiliar with using CP to target other languages, but if you keep the code the same it will automatically apply to every language
so you dont have to change the code
I think that just adding .pt-br to the file names will cause it to not work
theres more explanation about targeting other languages in the CP author documentation of github, but it's unecessary since targeting the original file without any language signifier will also work for pt-br
It's really kinda confusing because when i used a mod that could change dialogues, it just turned everything to english! 🥲
yes probably because they didnt include any translations
As you saw, any edit to the english files will apply to every language
Exactly!
So if you edit portuguese into the english file, it will work correctly for you
I still kinda confused ngl 😓
are you talking about translating the mod files?
Just take the code that you were looking at here. and dont change the files to pt-br
Just write the new sentences in your language. Put the mod in your game. It will work with any language you play in, including pt-br
You only care about one language, so you dont have to worry about translations or including multiple languages in your mod or anything
If you want more help, you'll have to share some code and specific examples so someone else can correct it
I think I got it now!
I will be back with updates soon, i hope it works.
Thanks for helping me :D
no prob
(make a backup in case you update the mod)
oh! i was confused by this part :
Yeah, i was kinda confused too!
the mod which you were talking about, that changed dialogues, changed everything to english because the mod author only wrote it for english
I was under the impression they were making a translation tbh. I read the mod page and the mod author is pushing for a translation update.
Actually, i wanted to translate the mod (Ultimate Villager Manager) since the creator gave up, but it's TOO BIG and I don't work with translations, and doing a new mod doesn't seen to work, I'm not really that good at coding and everything is going wrong.. :/
I tried to ask help from brazilian stardew valley players, but they don't know what to do
Does the og mod have i18n
Oh, that's rough. I didn't really read the comments but there was one post that said the author is doing their best to push for a i18n.
I downloaded the mod last night to answer some queries, and there arent.
No, the creator don't have any translations btw, its just config, manifest and content :(
Ah unfortunate, you will have to restructure it to have i18n first then
all of it's string data is probably straight inside of the content.json
I'd suggest just waiting for a i18n tbh. I feel like since there's a demand for translation, your best bet is just to wait til the mod author provides for a i18n. @sacred sluice
Hello, where can I get the fish textures?
!unpack
Follow this guide to unpack the game's content files in order to see and explore how the game data is structured.
It's helpful when making your own mods, or just to learn about how the game works!
That's really sad, but i'll wait ^^
That's good to know ^^ had to work on an i18n for my mod as well for other players who wish to use my dialogue mods in another language. That way, you won't have to do all the manual coding yourself.
well that was a lot of context that i was missing
idk why editing unpacked files was part of the convo then
tbf you were in the right idea, i was confused at first about the "changing haley's name", bit and was also like, "yeah that'd be a character.json edit"
Hi. Where can I find the shadows cast by wild trees?
those r just normal shadows i think?
So, spring_Shadows.png etc.?
no its cursors my beloved
It's in bloody loosesprites....tes
663, 1011, 41, 30
Cursors seems to have a lot of sprites that aren't cursors...
oo they added no leaf shadows in 1.6
welcome to the rite of passage
Looks more like a dump file for anything that doesn't fit other categories
LooseSprites/Cursors_1_6.png
469, 298, 42, 31
u can find these coords in the Tree class
i haven't been able to touch ender's tree framework, but does it compensate for that?
Thanks chu/e!
anyways i guess they aren't "regular shadows" that i was thinking of
so not LooseSprites/shadow
wait are you doing a map
what if u just turn them into real trees
That leads to the whole seasonal desert palm trees problem I've been wrestling with
DTZ blends the desert with normal seasonal tilesheets, and I want to fix that
ahhh right
hm so since i am look at trees now
This wasn't entirely clear; not having translations does not mean i18n isn't supported. Lots of mods are done with i18n but just nobody has bothered to translate. Check for the i18n/default.json asset.
desert is excluded from tree seasons
localSeason = ((!(location is Desert) && !(location is MineShaft)) ? Game1.GetSeasonForLocation(location) : Season.Spring);
defaults to spring all the time 
perpetual spring, interesting
just for trees tho
That whole problem goes away if I just turn the palm trees into scenery, but then I don't get shadows
Yes, I'm a stickler for details
u should prob check if the shadow tileset suit your needs
b4 resorting to cursors as map tiles lol
I'd copy whatever shadows I'd find in Cursors to another tilesheet, not about to embed even more of them
yeah, the v16 shadows should have everything regarding trees, but i... don't exactly know how you were going about the whole DTZ thing because i vaguely remember you were trying to just adjust the tilesheets, not the maps
tbf you'd have an easier time if it got converted to data/locations instead of the old custom_locations format 
can u remind us if you wanted to have seasonal desert
or if u just wanted palm trees in places besides desert
I want wild palm trees that respect seasons (I've made the images for them already).
But only in DTZ
Not in the regular desert or anywhere else
that can just be added as a custom tree type
hm then it'd depend on whether DTZ used Desert class for their desert location 
Without Content Patcher?
i mean sure you just add it to data/wildtrees
whether you add it with C# or CP it doesnt matter
theres a custom tree path tile
ill find the wiki one sec\
SpawnTree
just put it in the map file
Ah, so I can just put down Tile Index #34 for whatever custom tree I've added to WildTrees?
Yup
That simplifies things a great deal.
just remember to do reset terrain
its very simple
if you test on existing save
Yeah, I've had to do that a bunch of times already. Glad that mod got an unofficial update.
The numbers in WildTrees correspond to Tile Index, right?
no, you should set a custom string id thats unique between mods
cornucopia more crops has an example of both custom wild tree and editing vanilla map to spawn a custom wild tree
Ah, I see. So it isn't done from Tiled, but rather patched in afterwards.
Thats what we do because the maps we're changing are vanilla
but if you're working on a mod with maps included in it, its simpler to put it directly in the map file like you do for any other tile
its the same
So directly in the .tmx?
do you know how to use tileproperties?
Okay Visit Mount Vapius would have examples of custom wild trees inside the map file
I just assumed you were already familiar with map tile properties
I thiiiiink any of these would have some custom tree tiles in them (inside assets folder)
Looking at it right now
pull it into your unpacked content folder so it can display the vanilla tilesheets for you, and look for the custom tree path
Any advice or examples for creating a TemporarySprites animation attached to a working machine? I'm trying to make my power plant generate smoke when running.
maybe the vanilla furnace?
Those don't smoke when running, do they?
{
"Id": "Default",
"Condition": null,
"Texture": "TileSheets\\animations",
"SourceRect": {
"X": 0,
"Y": 1920,
"Width": 64,
"Height": 64
},
"Interval": 50.0,
"Frames": 4,
"Loops": 10,
"PositionOffset": "0, -4",
"Flicker": false,
"Flip": false,
"SortOffset": 0.0,
"AlphaFade": 0.005,
"Scale": 0.25,
"ScaleChange": 0.0,
"Rotation": 0.0,
"RotationChange": 0.0,
"Color": null
}
]```
I know geode crusher does it in C#
it has whatever this is (the furnace)
Which has its own OutputMethod
This looks super useful, thanks
its in data/machines
there's also the keg's occasional bubbles
But there's no i18n/default.json asset
Ok, then it's not localizable. Just wanted to make sure you were looking in the right place.
If it doesn't support translations, then making it translatable involves changing every hardcoded string in the mod.
(note that you may need to reset maps depending of if you visited it before trees being added, so i use DH mod but there's also Reset Terrain Feature)
Okay, so resetting the map using Reset Terrain Features crashes the game. SMAPI tells me it can't find spring_PalmTree.xnb - which obviously doesn't exist. I've tried shifting around paths, but it doesn't seem to help.
did you do a Load for the texture
Do you have other seasonal palm trees you're using?
Nope, just the one I've just added.
also vanilla palm is at TerrainFeatures/tree_palm and TerrainFeatures/tree_palm2
I didn't. Guess I'll have to co-opt DTZ's CP files.
another possibility is windows/linux case sensitive problems again
What did you call your tilesheet?
spring_PalmTree.png, summer_PalmTree.png, etc.
Then yeah, you would just need to Load them into Maps, easy fix
but u are make WildTree now right
Retrying...
Also, make sure you have one for each season
If you're missing any, you'll get that error again
Embedding the tilesheet didn't work.
- its not a map tilesheet, it doesnt go into maps or the map file anything
- you need to be Loading your pngs to a texture name before using them
texture load happens here (search for sapodilla) https://github.com/MizuJakkaru/Cornucopia/blob/main/[CP] Cornucopia More Crops/content.json
texture is then referred to in wild tree entry https://github.com/MizuJakkaru/Cornucopia/blob/main/[CP] Cornucopia More Crops/data/wildtrees.json
for custom textures you should be loading them to unique texture names, such as (ModId)/spring_PalmTree
the texture name that it's loaded to and the texture name in your wild tree entry has to match
but your png name can be anything
It only took six more crashes, but I've finally got the pathing right. This stuff is a lot more finnicky than it looks.
hey im wanting to mod individual npc rooms. im not sure how to go about it tho. i found the town interior tiles in maps but im not sure if that's everything. also im wondering if changing parts of one room will change parts of another that i dont want to change
Thanks for all the help, folks 🙂
have you read this page https://stardewvalleywiki.com/Modding:Maps
i havent ._.; i will check it out tho
npc rooms or spouse rooms?
If you change a vanilla tilesheet that will change it for every map that uses it. If you change a .tmx file then the changes will be restricted to just that map.
this is a straightforward example of npc map edit
okay ty
not complicated, but you will need to load any custom tilesheets that you create on your end, rather than changing vanilla tilesheets
added onto the tmx changes using content patcher because vanilla doesn't enjoy straight tmx loads
its looking complicated to me. thanks tho. >_<
How do I add ore to my map in Tiled?
If you want it to be interactable, pretty sure you would need to use something like Farm Type Manager, if you just want it for appearances then just use it like a regular tilesheet
if it's a farm there may be a property for the quarry
it's not on a Farm, I'll have a look into Farm Type Manager. Thank you
downloading several interior changing mods. most didnt even have png files so idk how they even work. some had files that look like this which is insanely confusing. im not sure if i will be able to do much with interors unfortunately because of how complex it seems it will be for me
The ones that didn't have png files - did they have .tbin or .tmx files?
Those are png files right there though
Also you should turn file extensions on like I said the other day
but it will have to be slowly
Also, using vortex means you're at risk of having broken mods
if only this were just png editing instead of all this crazy stuff then id have no issue
its also weird that the insides are all broken up
i thought it would just be one fixed image, like what u see in game would be what u get for the file =/
like this
Have you unpacked your vanilla game content?
yes
Ok
thats how im doing most of what ive done
What you were expecting is a really inefficient way of doing maps.
Creating maps is like drawing with very specific brushes
i guess. but yeah obv ik nothing about game dev
i can do graphics no problem but the rest is a headache for me
The way you're seeing it is that each couch, window, piece of wallpaper, wall beam, etc is separated on the tilesheet so they can be used with lots of other things in a map file. You use the map file itself to actually build the map. It means that each part of the tilesheet can be reused.
aahhh
Once you have the tmx, the CP side of things is just telling it where and how to overwrite the vanilla area
question: are there particles in the secret woods?
would it be possible to make a png just for spesfic rooms? like say just piece it all together and have it load in for which ever room?
Not without a tmx, no.
rooms require data, like how when npcs go into beds, there's a tile that goes over them that makes it look like the sheets are covering them, Tiled is basically an art program where you're creating the layers of the map
i see
whats tmx?
The map file format
Tiled -> tmx, like how photoshop -> psd
It's an xml format
Are you wanting to gothify existing rooms (like just change their colours) or move stuff around?
Tiled converts it to a visual medium
mostly just color renders
You don't need to know xml to work on Tiled stuff
You can do it entirely in xml, if you wanna lose your mind I guess
Or maybe already have lol
This is what opening a .tmx file looks like
No, you have to use a dedicated map editing program like Tiled (which is free)
So. I've been torn on this, but I'm no longer going to be updating my mods because.. I just don't have any urge to
So if anyone would like to take them over, let me know and i'll update the nexus page or.. add you to it? >_>
But if you only want to do recolours, you can avoid dealing with the tmx files entirely
(Like I'm not sure why but I just don't have the urge to program any more.)
it this?
!mapmaking
If you want to make mods that add or edit maps:
- Use Tiled (https://www.mapeditor.org) to edit .tmx or .tbin files.
- Refer to the Maps wiki page (https://stardewvalleywiki.com/Modding:Maps) for details on how maps work in Stardew Valley.
- Use Content Patcher to load in new locations (https://github.com/Pathoschild/StardewMods/blob/stable/ContentPatcher/docs/author-guide/custom-locations.md) or make specific map edits (https://github.com/Pathoschild/StardewMods/blob/stable/ContentPatcher/docs/author-guide/action-editmap.md).
What mods did you make? Definitely interested in maybe maintaining some
yeah i will most likely just render colors and draw some stuff on the walls and such
Burnout is real
burnout comes for us all
^^^^^^^^
Yup looks like it
got it. thanks. i will look into this soon
My still active ones are Stardew Notifications, Dynamic Night Time, Customizable Cart Redux (although I never got that updated for 1.6), Happy Fish Jump (ditto, the fish asset changes got me!). I was debating on adding weathers back, but there's a few that add blizzards and others on Nexus now (from Climates of Ferngill).
I am using Stardew Notifications but I have no C# skill yet so that seems like taking over maintenance for it would be a bit of a stretch for me :/
I could probably maintain some of them, the ones like stardew notifications or the coal deposits ones seem feasible for me to do
I'm not a great programmer though. Bit they seem fairly simple to maintain since stardew doesn't receive frequent updates
Where can I find the source code btw?
generally are. Happy Fish just needs some fixes to actually read fish assets correctly to determien what fish are available. DNT is the msot difficut, tbh, but mostly in it's code is time consuming to calibrate properly so it's not so early for darkness.
I'm going to reupload the latest code to github probably tomorrow
It should be up to-date but probably isn't since I'm lazy about comitting sometimes
Alright do let me know. The ones with assets I probably won't be able to work on, since I never really work with it
I like that when I am testing an idea I can do very silly changes like making everything pink or giving characters absurd dialogue.
(my go to dialogue filler is: i can't believe it's not butter)
Time to start the game and find out what I've forgotten to include in my mod
Behold, a monstrosity
that's, honestly terrifying
Blood for the blood god
skulls for the skull throne
@royal nimbus have now confirmed that you can definitely do location-based recolours (was pretty sure, but now certain) so if you want to just recolour stuff for, say, Seb's room in Robin and Demetrius's house and then recolour totally different things for Abby's room - you can do that all without touching the .tmx files.
Took the B out of RGB
My sincerest apologies to anyone with the same form of colour blindness as my wife (red hurts her eyes)
blood moon?
Lol nope just the first random extreme colour overlay I came across for testing my code to only change tilesheet in one location
(wont stuff in abby's room also be shared with the rest of the general store though)
too much green, fix it
(Yes Button you are right - additional complication there if Ralo only wants to edit Abby's room rather than the whole house - and that complication would be present for pretty much everyone except Seb, lol)
when ur just tryna make a mod then you have a dozen windows open and 20 tabs
npcs require me to now have a grand total of ....... 18 tabs open
but god i love coding npcs
for ralo's case, i'd honestly just make the gothy tilesheet entirely of one sheet, so that way you don't have to constantly try to reference anything else, append it with something like z_RaloTileSheet so that it won't mess with the tile structures of the vanilla rooms, then you're free to rip open the Tiled on the vanilla rooms
Yeah I was trying to help her avoid using Tiled though Avi
like leave me alone I forget commas okay
yeah that's valid, we hate love tiled
it's okay, i wait for my real mistress to yell at me anytime i type anything
Do you not write your code in a text editor with syntax validation?
I use notepad++ c:
it was worse before, before i just used notepad
oo i didnt know about the fish jumping mod, would be down with updating it
my N++ doesnt actually have automatic json validation either
if you want other people to take over maintain though, you will have to update the license in your repository
Pretty sure you have to add an extension to it or something
need something more permissive
i think it's something we gotta set up button
only if i hit a hotkey or have a plugin check it but thats too much for me to ask
I prefer VSC
too much to ask of me*
i do still write all my json in N++ anyway though i just dont need the validation bc either a) i write it fine bc im comfortable with json now or b) SMAPI gives me an error but i know how to read the errors and can fix it
Hmm yes I see
i just dont like waiting for somethin like VSCode or Rider to open up just for a json file
H-. I thought it was GP. I'll poke at it
Maybe I switched to VSC before I started writing enough JSON for validation to matter
Although since I use json lines now I don't get syntax validation anyway
could be that im look at wrong repository
https://github.com/Sakorona/SDVMods/blob/develop/LICENSE
I just wait for SMAPI to yell
For me it's much of a muchness in speed whether it's N++ or VSC opening
Oop sorry for ping
Huh, I don't feel like VSC takes any longer to open than N++, but I don't have very many extensions in VSC
okay cool.
(oh, for the record RE: that license, you cannot prohibit forking if you put it on Github. by putting it on Github, you are agreeing to Github's TOS that you are allowing people to fork it)
One of the bigger reasons I switched to VSC is because N++ refuses to keep my stupid theme settings and I really hate being white screen blinded
As Button pointed out though - this only works if you want to change an entire map's worth of tilesheet. If you only want to change Abby's room and not the rest of the seedshop, you will need to edit maps after all. Sorry!
it doesnt take too long for me but it takes longer than N++ which is like instant and much, much easier on the RAM. (not that VSC takes a lot, but yknow. anything is a lot compared to like... 10mb)
((i do have a number of extensions...))
(Speaking of mods, I once downloaded a giant extension collection and then went "Oh. This is such a nice update for git integration. Thanks, VSC!")
(It was an extension.)
Gitlens
It's great
Yeah might want to use GPL. At least that's what I do for all my mods
"Supercharge Git and unlock untapped knowledge within your repository"
this makes it sound like im downloading the necronomicon or something
unlimited POWER!! -- actually, vs22 installed something without my acknowledgement the other day and i was like, excuse me??

gotta step up your game aviroen
Extension for Visual Studio - This is the Power Mode extension for Visual Studio to replicate the effects from https://github.com/codeinthedark/editor.
That is horrific
OH IS THAT THE THING THAT ANIMATES EVERYTHING
(its much prettier in the VS version though...)
i'm gonna use that for my senior public speaking project
This is for WPF and desktop development iirc
wow
That is so extra and I love it lol
Ahh the combo counter is so distracting
I'm sure it's just entirely distracting lmao
(casey posted this b4 in this very channel, I just reposted)
yeah i remember casey being like, "just use this as your only extension"
Hey everyone, Stardew Valley Expanded 1.15 is now in beta and is available to anyone with a modder tag. Send me a message to get the files. I don't anticipate any compatibility issues with other mods, and for any potential conflicts, I've already reached out to the respective creators.
Does anyone use a screen recorder that is not OBS?
i use ShareX
right i figured
it can be very simple if you want, like obs
or quite complex
OBS is not simple for me lol
I want something that just records my screen for me so I can compare event lengths and stuff. No fancy "record this window but not that window" or whatever.
I am not a content-creating sort of person lol
setting up sharex to record a specified screen area to a video or a gif is quite simple
then just one hotkey with no further input, mostly
Ok thanks I will give it a try
ShareX doesn't do audio
I think
(Mine doesn't at least)
I use ShareX normally, OBS when I want audio
recording to video or gif?
Now to try to find a unique hotkey with my tiny keyboard
Oh I just saw this. I didn't even check to see here lol. Should I send DM asking for the file? My discord mobile is kinda.. Weird and not letting me sending without giving me a "failed" error.
Did you disable dms to server members?
Sure!
Sharex can do video or gif
Nah, discord mobile is just booty.
ShareX can also do audio
though only desktop audio or microphone audio but not both at the same time afaik
(disabled entirely by default though i think? idr its been a while since i set mine up)
Is there any advantage to using ShareX for still captures over the snipping tool?
does snipping tool give you a toolbar you can use to edit the screenshot area before you actually screenshot it
i also have my sharex setup to automatically both save my screenshot to a specific folder for all my screenshots and also upload it to an image host for easy linking to other people (unless i use a hotkey that just puts the screenshot in my clipboard only instead)
uploads, the editing tools
I automatically copy and paste my snips into paint and edit them there
It is second nature to me lol
it also freezes the screen when you hit the hotkey so you have time to edit the area and also see if you got the shot you wanted, i dunno if snipping tool does that (ive never used snipping tool)
I rarely ever actually save any stills
i digitally hoard things ive got my screenshots saved going back to like 2016
I usually just copy them into mspaint, edit, then copy and paste into discord or whatever
I think snipping tool has annotation features too
It does, but I never use the actual tool itself outside using windows-shift-s to take the capture
Alright. I have created the machines that I wanted for my mod, and they seem to work. Now how do I go about adding a recipe to Mr Qi's shop?
Ok, think I have it figured out, thanks.


