#making-mods-general
1 messages · Page 123 of 1
it happens, and you did the right thing asking here because sometimes you just need the fresh pair of eyes
(to be fair, the fresh pair of eyes wasn't that fresh and went "hmm, i don't see anything wrong" at first, then "how do i18n tokens work already???" at second)
(but it worked in the end, and the mention that other stuff was fine was very helpful to have)
So... am I not allowed to name the layers like this? (i did try to rename them and everything like "Buildings,.. Buildings1,.. Buildings2" / "Buildings,.. Buildings2,... Buildings3" But neither worked)
Well...
That would explain why some things aren't showing up but it doesn't explain why I can walk on the tables
maybe itll help though
well, better but I can still walk on stuff
What layer are the tables on?
AFAIK only Buildings layer with no number would be impassable.
Only the base layers get the collisions
Well that's .. unfortunate
Can't you just put the table on the base Buildings layer?
If you would have something on Buildings2 you could just have it on Buildings though
The only reason to have further numbers is to create layering effects
its mostly because I want stuff against the wall but if I put it against the wall it's going to remove said wall (since the wall is on the building layer)
Then the overlapping tile would just go on Buildings2
The rest of the table would be on Buildings
You can put the base of the table on Buildings and the part that overlaps with the wall on Buildings2.
I shall try that :]
Also is there a reason why my Tile Data isn't being read/allowing me to interact with anything? As far as I can tell this is what the Wiki would want for using strings + translation data and such
ah wait i might have it on the wrong layer maybe
Also make sure to put QiRoomStardropDesc in quotes.
The FTM is optional so that's alright... Unless I screwed up the manifest in main o-o
It only says it in comments but I'll add it to description sankiu, am working on the spawns 👀
Anyhow me will check when I get home. Thanky blueberry 🫐
I'm back... again
Can you add NPC warps via content patcher or do you have to directly edit the tilesheets themselves? if you can do it with CP - would it be using 'AddWarps'
you caaan
"Action": "EditMap",
"Target":"Maps/BusStop",
"MapTiles": [
{
"Position": { "X": 18, "Y": 14 },
"Layer": "Back",
"SetProperties": {
"NPCWarp": "{{ModId}}_WaitingRoom 4 5"
}
}
]
},```
here's an example i used
:D thank you!
Remind me in 30 minutes to deal with PDW.. again and with DEWB maths
Roger that, 13midnight (#6389446) (30m | <t:1732883978>)
Hi again!
For making an item available through Geodes, I need to edit the Geode itself or I need to include a specific key on the item declaration? I couldn't understand well the documentation https://stardewvalleywiki.com/Modding:Items#Geodes_.26_artifact_spots
This is my item
{ "Changes": [ { "Action": "EditData", "Target": "Data/Objects", "Entries": { "{{ModId}}_IfritEssence": { "Name": "{{ModId}}_IfritEssence", "Category": 0, "Type": "Basic", "Price": "0", "SpriteIndex": 65, "DisplayName": "{{i18n: essence.ifrit.name}}", "Description": "{{i18n: essence.ifrit.description}}", "Texture": "Maps/springobjects", "Edibility": -300, "CanBeGivenAsGift": false, "CanBeTrashed": false, "ExcludeFromShippingCollection": true, "ContextTags": [ "color_red", "not_museum_donatable", "prevent_loss_on_death", "not_placeable" ] } ...
@tardy adder: deal with PDW.. again and with DEWB maths (30m ago)
Ah yes. The mod fixings. The fixing of the mods. The fixing specially for the mods.
The mods' fixes.
How do you get npcs to sit on things - like penny does? I know you have to make the sprites for it but how do you get them to actually stay in that position since it's not usually accessible
Sorry to bother, I want to replace my custom NPC portrait after the event (my portrait is HD), is there any way to do it?
when you say your portrait is hd do you mean its not loaded by content patcher but portraiture or something similar?
My portrait relies on the "Portraiture" front load
In that case I don't believe you can - If I recall correctly portraiture relies on you manually changing them yourself. You could have the two folders - one named "Before" and then "After" and then use whatever key bind you have set for portraiture to toggle between them but I think that's about it
I could be horrifically wrong but If I recall me using that mod with HD portraits i am not
but i could be
There's two methods I can think of.
If they weren't HD portraits it would be relatively easy to do with Content Patcher
If you want to still use Portraiture, you'd need to load the "After" portraits as different Portrait asset, and use that asset in the appearance field with HAS_SEEN_EVENT condition.
Does Portraiture allow for you to do stuff like that? (Or did CP make it so that you can use HD pictures)
But a simpler way is to just use SpaceCore for your HD Portraits instead of Portraiture.
I forgot that existed for a moment there
Casey has an example here: #making-mods-general message
That helps me a lot, thank you!
Hello, is anybody here who can make a simple small crop mod for or with me? I'm not into modding or coding. I just do changes in existing mods sometimes. So, I'm not completly stupid with this. But I'm definetly not able to make pixel arts for crop. And I really want to have a Jalapeño Crop in Game. Don't know if there is already one existing out there.
I can help :]
Sounds good. Would be nice it would work like the normal hot peppers. just green, and smaller but thicker. But I don't know anything and how I should start to do that
Cornucopia has one, if that's important to you
That's true it does
it also has a variety of really cool plants if you wanted those as well
I don't know that... I will have a look at it
Booom 😄 How could I missed that?! Every day I'm looking for mods.. playing now with over 80. But I never saw that thing.. Thank you both. I think that's enough
I do have the general code for a Jalapeno done I just don't have any sprites done as that would take longer + I'm focused on doing something else atm (you could always go and recolor the crop, item, and seeds for the red pepper if you wanted to)
:] there are plenty of mods out there for things - if you're ever looking for something you could ask in #modded-stardew - many people know about some cool things
I also have a spreadsheet - it's not fully done/organized yet but you could scroll though that if you wanted
That is crazy what you all do here... awesome
why not.. sounds interesting
How does one despawn the monsters spawned using spacecore?
I am not sure how after looking through resource and I accidentally made bat hell
This is golden tho
Perfect, 10/10, no notes
Tbh I accidentally said that to a gen X coworker the other day
So
Where does that come from
Do they come back if u kill them
No, but I want to despawn them so they don't persist... much
Bat hell the new pdw feature
are there any documentation/guides on how sprite animation works
There's no uniform way to animate things in vanilla
I meant how to add the animations via content patcher- i have the file and everything but I'm confused on how to format it for each individual "frame"
I want it. which mod is that? \j 
Content patcher doesn't do that either, you want spacecore animations I think
But what are you trying to animate?
Schedule animations - where the npc goes somewhere and then their individual animations take over - kinda like the sleeping one but with the other stuff
Yes. Podunk fixed that early in 1.6 alpha
or like how Demetrius stands at the lake and writes
got some stuff to do tonight & my sleep schedule is broken again, so uh, basically night for me atm
ok after commiting bat murder I am back to seeing how I can despawn them so that the way of getting rid of them is not only through combat but also condition 9-9
I glanced around at spacecore's spawnable definitions and didn't see anything about removal, though casey'd know better than me (and probably add that eventually if asked)
ah I see, yeah I only saw about the set piece clear hmm I'll bother casey if they pop up in here
Oh no take care!!!!
no worries, it's pretty typical for me
also hope you're doing well
Between yesterday and today I got 16 hrs of sleep so I'm no longer running a fever :pufferparty:
(not to self-ad, but FTM does clean up its monsters overnight if you want to add the dependency
)
(or after X days, but that's as granular as it gets)
I think that would require the mod know what it spawned at first. but so also would be nice to remove all [item] in the current map
(Just fyi
but Casey is a she)
...I should probably make a note of that myself
it's in scope and I already carved out a space for new trigger stuff
though I'll feel guilty adding removal triggers before getting around to spawn triggers
(gender is a social construct anyway)
it would be hard to test removal triggers before being able to spawn things anyway
removing base game stuff & stuff spawned by FTM's normal mechanisms, etc 
like just a trigger action for "remove all monsters of X type", "remove whatever's on this tile", etc
but FTM doesn't even do trigger actions for spawns yet & the formatting would be similar, so it'll probably wait a while
I was able to define those in Data/animationDescriptions, you just can't do animations bigger than the normal sprite size without using something else
My update to the Satoru Gojo NPC defines both his training and sleep animations and they work just fine.
I was using FTM but I wanted to do a trigger action thing so I was trying spacecore for the monster spawn
But it don't remove spawn like FTM ><
thanky >< I usually use they/them to refer to others regardless as its neutral
i dont want to do anything bigger than normal sprite size - i just didnt understand how doing those animations worked - I did figure out out (Eventually) :]
I was just confused because it just looked like numbers with no rhyme or reason but i found the section on the wiki to help me after some squinting and scrolling lol
Hello there ! I'm new to modding Stardwey (and Stardew in general) but I'm a bit lost and have a few questions. Is it okay to ask here ?
Awesome, I just know I did mine purely in CP so I didn't want you to think it required SpaceCore
Sure!
making or using mods? this channel is for the former
I figured as much! I was really confused 'cause I downloaded a fair few mods that had npcs with animations that didn't require spacecore so I thought I was just missing something (I was)
for using mods, check out #modded-stardew mostly, though there's also a setup guide here
https://www.stardewvalleywiki.com/Modding:Player_Guide/Getting_Started
For makin mods ~
I'd like to become a furniture modder
Why does Pelicuan Yown have a great library anyways
!startmodding follow the Content Patcher guide and also make sure to unpack the game files!
Making mods can be broadly divided into two categories:
- Content packs are formatted text files, and don't need any programming knowledge. They can add/edit NPCs, maps, new items, shops, and more. To get started, see the list of framework mods, the wiki tutorial for Content Patcher, and there might be relevant guides on the tutorial wiki.
- C# mods use programming code to change fundamental game mechanics. See getting started with C# modding.
Usually it’s easier to start with making content packs, since you don't need to learn programming.
Unpacked game files my beloved...
care to share? I spent some time looking for something like it
to make sense of animations I mean
It's exactly how animations work anywhere in game tbh
I had to re-read it like six times to understand what I was doing but I got there... I think
ok, that explains why I didn't found it at first (avoids schedules)
I've been doing stuff for over 12 hours though so I think I should take a break, and by a break I mean pass out in my bed
even farmer animations?
Honestly schedules are kinda easy
At least they feel like it
I like them they're fun, i get to make the silly npc move around :)
passing out in our bed is a nice thing to do from time to time I come to discover
I should have done it several hours ago but I just kept finding new things that 'if I just finish this one thing ill go to bed and itll be done'
Maximillian, my NPC Builder has a schedule tab that should simplify schedule points for you (if that helps lessen the dread of schedules)
Sure! It's actually just hardcoded lists of frame indexes lol
Ah actually ! I've already read the docs for the content patcher, but there is a thing that I wasn't able to find; it's the grid that you need to "visualize" how to place your furniture correctly on the .png
I saw other mods using [CP] are making a big .png and they are adding number in the .json file but I have no clue how exactly they do know which number to use exactly. Am I missing something by any chance ?
It's 2am. Pass out on the floor
I kinda intuitively thought it. but I failed to find a sane guide for making it
I would like to make some new animation triggers, just like using tools or something
SDV goes by a tileset indexing system that starts at 0 and goes based off of 16x16 tiles - so if you had a grid of 10 tiles that would be 160 pixels and they would be labeled 0-9 from left to right and 0-9 top to bottom
not now, and not solid enough to make me download custom tools source mods to see how they handle it
its like a x.y grid but only one coordinate plane
Truly embodying the farmer here
I have to eat first but I will be resting... and I will not work on more things while eating
Ok, so, I have just recently fought with this. If adding anything to Data/Furniture, your grid is a 16x16 pixel square, where every 16x16 increments the index number by 1 as you move left to right, then down to the left most square on the next row, and so on. The topleft index is 0.
I specifically remade a mod to prevent it and it says a lot about me lmao
I'll make ze spacecore spawns and keep FTM for now
I am naming them stragglers
There, that's a brief look at the default Furnitures tilesheet and index
Helpful if you need a visual of how it works
Oh my god, you are a lifesaver ! It's so much more understandable with your resource ;-;💖
You might have spend so much time on it too!
oh wow that sheet is amazing
I usually make my furniture /general items that need tilesheets on individual pictures to combat having to know the index number but that... that's beautiful
Conveniently, making that sheet also gave me a parsed list of all the default furniture entries in the game (and a way to add new ones to the bottom of the list to check that I formatted them right)
I'm lazy so it's only furniture unpacked from 1.6.8 though
Haven't gotten around to getting a new unpack yet
"Only" 😂
You're doing a great job there, not "only" x)
Mh...so if I understand well, for example for the very first chair on your grid, it should be written like that : 0/0 1/0 2 ?
you will understand soon that being humble about our work is kinda part of being a modder
Hewwo Stardew modding friends, I have returned from the dead temporarily to ask if there is a new way to replace music in the game besides Custom Music yet
there is no other way to make mods other than to be humble
that is all
also you can change the music on maps with content patcher iirc
Let me get to a computer and I can share the sheet link, that will be the easiest way to clear it up I think
you dont need custom music i know that for sure, no (modern) mods use it as far as i know
1.6 added audio file swapping, yeah https://www.stardewvalleywiki.com/Modding:Audio

and music selection is controlled by Data/Locations and Data/LocationContexts, I think?
Yep
you can still use the map property too if you really need to, but its deprecated and only useful in niche situations
Awesome thank you
Hopefully this works better and uses less RAM lol
I want to update Piano Valley sometime soon
Oh I have another question ! If want something else than a chair on the grid starting to 0, is it possible to replace it and doubling its size ? For example a big bookshelves ? Or is it mandatory to have a chair and the same size as the original one ?
(Using .ogg streaming should use less RAM!)
lol I’ve swapped .ogg and .wav so many times bc people tell me to use each for different reasons
I never used SAAT, unless that’s also Custom Music. At one point I had the option to have both but it was really time consuming to try and maintain both of them
Idk which one it’s on rn I haven’t updated it in forever lol
The current recommendation is to use .ogg (and streaming) for music
And .wav (without streaming) for short sound effects
https://docs.google.com/spreadsheets/d/1nE9-qRqVA1LouhsVIMiu1b8QmJ7vGyToAksgcLztBnQ/edit?usp=sharing
Take a look at the entries on the bottom of Data/Furniture tab to see how custom items are handled to define the sprite sizes
Ooh what is this 👀
just cleaning up my examples 😉
alright, all cleaned up now
So the spriteindexes should be accurate for my examples
This is my fight with furniture the other day. LOL
Worth it to have a visual now for furniture sprite indexes, though
Your effort WAS really worth it, great job 🌸
And now thanks to you I'm really looking forward to make my first piece of furniture, you're making someone happy here ~
There’s a few example pictures in my furniture tutorial as well, but the sprite indices are definitely the trickiest part
yeah, the formulas are still being a butt with me trying to exclude the quotes and commas from the parse, so the actual data table isn't perfect for the first and last columns, but the visual works fine
What was thus??
now I just need to figure out how to write it in code. I already asked earlier but didn't had any answer (unless I've missed it, in this case I'm sorry); the first chair would be 0/0 1/0 2, right ?
If you are using the same rotation number, chairs use -1 by default to determine the size and bounding box, as there is a hardcoded default value
But your tilesheet size would never have a 0 in it
Sorry to interrupt but this is gonna be so useful for me too 😭💗 thanks!
haha, no problem
So if you look at the Data/Furniture tab, it breaks down what goes in each section of / arguments
Mh...I see🤔
Is there the code for the original furniture sheet somewhere, by any chance ?
Raw Furniture Data shows the original code for each item
so for the first chair: 0: "Oak Chair/chair/-1/-1/4/350/-1/[LocalizedText Strings\\Furniture:OakChair]",
(do you have your files unpacked, Dreamies?)
If you want everything you'll need to unpack files.
Ah, thank you (again) !
yup (^ w ^)
looks like that was the Pintail update?
update NuGet packages
This mainly fixes a fatal crash when combining MonoMod/Harmony with Pintail-proxied structs to interfaces.
https://github.com/Pathoschild/SMAPI/commit/b83fcc7e7e7dcb4bda84e372c7d484aa4e2122c4
(which says this)
Fixed proxying of value types into interfaces.
Early vanilla objects used their sprite index as the key, which is why you may see both numbers or a quote-enclosed string for the key in furniture code.
(please use the string if you're making custom furniture, it makes life so much easier)
How was harmony involved here lol
AFAIR it was just structs with interfaces, it didn't actually involve Harmony directly.
I've never looked at internals for either, so 
Presumably the incident itself involved those things - maybe the struct and/or interface was from Harmony.
. Hey, Guys! Sorry to trouble you all (and sorry if this is the wrong place), but I am making my first mod and I've hit a small snag. It's just map replacer for a vanilla farm map (Farm_Foraging) with a couple edits using Tiled and Content Patcher (and no other mods are enabled).
So I removed the fencing and shrubs behind the house and it created a small area that--despite having no objects or buildings in it--is unpathable, unbuildable, and disallowing of furniture. I was able to fix the first two with an object to make it passable and buildable, but how do I make it allow furniture? I tried a back layer with "NoFurniture" - f but it didn't work. What is a property that can specifically allow furniture? Alternatively, what's causing this, and can I just fix that?
Thanks guys! Sorry again to bother you.
Screenshot your Tiled object properties for that TileData object just in case?
Those are the two existing objects in this area
They normally overlap in the top section
(Also some layers are hidden to help see the area)
Oh, and it isn't the spouse area
Is there a reason why Passable is required to work? (Invisible tiles on Building layer, another conflicting TileData object that says it's not passable etc.)
Invisible tiles get me all the time
NoFurniture is likely another property that doesn't care what it's value is
I am a moron. Thank you.
I quadruple checked
But it was, yeah
Honestly, NoFurniture SHOULDN'T be required if it's just gonna be False, but if something is not Passable without Passable T, then something else is usually up.
Apparently there is a value that NoFurniture checks for "total" but I have no idea why lol
@calm nebula: do an error item check in events tester (5d ago)
Unless somebody with access to a decompile wants to save me the effort, I'm about to make a bunch of sample furniture items for everything with a -1 in the tilesheet size to figure out the exact numbers that the game is putting in.
I think I posted a screenshot of this before, not sure how far back though
were they all in there?
Mine was 16 btw (not sure from what)
I found this one with the types, didn't see tilesheet size listed but I'll keep scrolling
Oh, guess I didn't share the types, one sec
sizes*
case 0:
width = 1;
height = 2;
break;
case 1:
width = 2;
height = 2;
break;
case 2:
width = 3;
height = 2;
break;
case 3:
width = 2;
height = 2;
break;
case 4:
width = 2;
height = 2;
break;
case 5:
width = 5;
height = 3;
break;
case 6:
width = 2;
height = 2;
break;
case 17:
width = 1;
height = 2;
break;
case 7:
width = 1;
height = 3;
break;
case 8:
width = 1;
height = 2;
break;
case 10:
width = 2;
height = 3;
break;
case 11:
width = 2;
height = 3;
break;
case 12:
width = 3;
height = 2;
break;
case 13:
width = 1;
height = 2;
break;
case 14:
width = 2;
height = 5;
break;
case 16:
width = 1;
height = 2;
break;
default:
width = 1;
height = 2;
Oof lmao
thanks roku, I can copy/paste that and format it from there xD
can you grab bounding box size too while you're there? >_>
case 0:
width = 1;
height = 1;
break;
case 1:
width = 2;
height = 1;
break;
case 2:
width = 3;
height = 1;
break;
case 3:
width = 2;
height = 1;
break;
case 4:
width = 2;
height = 1;
break;
case 5:
width = 5;
height = 2;
break;
case 6:
width = 2;
height = 2;
break;
case 17:
width = 1;
height = 2;
break;
case 7:
width = 1;
height = 1;
break;
case 8:
width = 1;
height = 1;
break;
case 10:
width = 2;
height = 1;
break;
case 11:
width = 2;
height = 2;
break;
case 12:
width = 3;
height = 2;
break;
case 13:
width = 1;
height = 2;
break;
case 14:
width = 2;
height = 1;
break;
case 16:
width = 1;
height = 1;
break;
default:
width = 1;
height = 1;```
Yup! That was done!!!!

I thought about posting this somewhere else but I'm too sick to deal with that lmao
beautiful, those are going in the google sheet
Just notice there is a Custom Furniture mod ?! I tried to install it though I can't find it within the in-game window cheat (to drop any object). I'm not sure to understand what i did wrong for it not to work ? it's actually cool that you apparently can add furniture instead of replacing it ;-;
I'll format it for easier reference so we never have to do that again.
CF is outdated, you can add NEW furniture in CP using the information from the sheet I gave you.
Also Furniture Framework
Also FF, yes, and the FF dev is super active in here lately. 😛
If I was adding furniture, I would use FF just because the base string asset sucks lol
also i dont think either of those frameworks do/add anything on their own anyway so there wouldnt be anything to spawn in
Yeah, they're just a means to add new stuff, don't actually have anything bundled I don't think
I just didn't want to use yet another dependency for what was gonna be a tiny mod to add child beds, so I went straight to the full-CP route
Wasn't that hard
Yeah, I just don't like everything being in one delimited string, get enough things in one spot and it becomes string salad
wait, I didn't catch that ? How can I actually add new furniture with CP instead of replacing them ? I'm sorry, back to nooby questions again ^^"
I just released this mod a few days ago (hence why I was fighting with the furniture sheet in the first place): https://www.nexusmods.com/stardewvalley/mods/29698
Feel free to download it and look at the content.json if that helps!
All the code's in there.
Lol, many ways to do things lol
@woeful lintel Does FF work in 1.6.9? I only ask because the page seems it indicate otherwise but you had a recent-ish reply to a comment that makes me think it should be working?
I just have a harmony patch in one of my mods that make children also use single beds
Iiiiii think it's cute for the kids to crawl into bed with the adults 🤷
I'll take a look at it if it's okay with you then ! Thank you🌸
Some of the double beds don't have single bed designs, so, it served a dual purpose when redoing the assets. 😛
I do not promise that my code is always the cleanest, but I don't have issues with people looking at my content files to see how things are coded with Content Patcher. It all follows the same basic format for any CP mod, honestly.
Fwiw this also has the bounding sizes, though I don't recall if I got everything
(And you can edit, since it's a wiki!)
Admittedly, I never think to search the moddingwiki
Ok I finally fixed the bill numbers some more >-> they were a bit too crazy
Yeah, i was just remarking that it made me sad too
That the kids wouldn't use the new single beds
And the cat ignores the cat tree
Hyper-realism mode
HAHAHA when the bill goes way beyond your farm value
That moment when your farm's property value gets reappraised over night and the property tax is twice the value of your previous farm 
on another note I found this hilarious
Like Robin, Lewis, PLEASE I will die
@latent mauve would it be okay if I use your code (and replace your .png with mine) and credit you when I release my mods ?
I forgot the test file was at this point and I did another bat summon to see how ze spacecore spawn works
You'll need to change a couple of the values to be specific to your mod so we won't have conflicts if someone has both your mod and mine going forward, but I'm okay with you using the skeleton of the code from there.
Mainly the Texture and the PNG should probably be renamed
As well as your furniture IDs
Got it, thank you so much !💖✨
I'm working on a code sample in the sheet on Sheet 5, once I get this reference table done, if that helps going forward
Not gonna go ALL the way to make it another builder like my NPC Builder sheet, but I can probably use a few of the same tricks from that one
I need some help brainstorming. I've got some asset replacement that I've got built out to utilize the generic config mod. When I change the drop down in the config menu, the asset changes exactly the way I want it to. What is the best way to program that change so it happens based on a game action like if a player is wearing a certain clothing item rather than having to manually change the value in the menu?
Is this a CP mod or C#?
What asset is it?
It's the player sprite. C# mod, but I guess I may be using CP to store the assets. I thought I'd be able to change the value in the config json while playing but it seems like the generic config mod doesn't read out to the config file while the game is running. Only on boot up.
That depends on you, GMCM is primarily for reading and writing to the config
You would handle reading your current config values and acting on them
Trying to remember if one of these frameworks has an OnEquip thing
Item Extensions
a dependency for a C# mod for that is probably overkill when you can just postfix onEquip
Yeah, I was gonna suggest seeing how IE does it lol
So I guess in that case, the piece I'm missing is how GMCM rerenders the sprites upon saving. If I'm just swapping out the player tile sheets when a specific item is equipped, are you saying there is an easier way to handle that than C#?
Unless you want to use IE as a dependency, you would need C# for that
GMCM doesnt do anything but read and write to a config.json
GMCM isn't doing anything to your sprites, it's just updating your config which is causing some other part you have dependent on that config to change
I'm blanking on what IE is at the moment, but if I'm understanding correctly, if I program an edit to my config, that should accomplish the same thing that GMCM is doing.
Then CP would handle the sprite swap
you don't want to bypass GMCM, you want to keep using that as users are going to want to be able to edit your config with it
GMCM handles making edits to your config
I'm incredibly confused tbh
what you want to do is ,wherever you need to check it, check like ModEntry.Config.ValueHere == true or whatever
alright, this update is done. There are now code examples for both adding entries and loading your texture in Content Patcher on the Furniture Code examples for CP tab.
where ValueHere is the name of your c onfig option, assuming its a bool config field
if you're making a C# mod then CP isnt involved at all
unless you also have a CP component alongside it
Gmcm does exactly what you tell it to. If you want it to do something different you need to tell it to
Oh I think you missed the whole asset pipeline invalidate stuff
As far as I can tell, they're using CP to handle the pipeline stuff and C# to handle config stuff
Content patcher gmcm integration has auto invalidation so that u see changes immediately
You need to do the same in your C# component
I don't think they're having any issues with the content updating in time
They're trying to determine what the best way to make changes when equipping something is
that's awesome to know (looks at my other wip mod that has a c# component only to load/configure config and invalidate stuff)
it also sounds like they want the config option to be in sync with the item being equipped or not which is strange to me and not something i would recommend i think
I assumed that was for testing, but I dunno
I'm just very confused and thus am not going to even try to be helpful
like you could do it. but i think if a user sets a config they want it to be respected, not changed by the mod

Yeah i think we are probably hitting X/Y problem here
Imo if something can be changed by gameplay action (like put on a shirt), then it shouldn't be a config
config is to give player options to change through your mod behaviours
I don't mind if it's a config that's like "ignore needing shirt"
I can give instructions through content to a cp mod change what are the config items values through conditions?
you said you wanted to change the value in config.json through playing though. i would not want that
like loading them, checking a condition, and changing them like a dynamic property?
(by you i mean davis ofc, im just clarifying what we mean here)
apologies that this is all a bit over my head, but I do appreciate everyone's help. No, I wasn't looking specifically to have GMCM to sync up and reflect the values, it was just the best way I knew how to swap out the view of the assests to make sure things looked right. So the idea is that there would be something like an animal ring that would make the player an animal which would need a whole new set of character animations. So if I make a custom ring item, how would I go about having the correct tile sheet be used when it's equipped and go back the the normal sheet when not.
I think what you mean by tilesheet in your example is a spritesheet in reality
you would need to invalidate the assets that the farmer renderer uses so that they can be edited again in your AssetRequested event, but that said i wouldnt expect it to be that easy given that its, the Farmer
yes, sprite sheet.
@-@ ok I think I dealt with the reports... time to go back to making trees and spawning monsters
I was able to do it through crimes in my c# mod. but it was based on an Aviroen mod
through crimes and gmcm solely
Did u put ftm back into the main file
sorry, it was ichor
I foresee some issues with multiplayer for this if the solution involves replacing Characters/farmer_base by anything other than a very specific method that only changes it for the equipping user, so that would almost certainly need C# or a dependency C# mod that does something similar already, I think?
they are already using C#
i dont know how to help further though as i dont know how to mess with the farmer sprites
okay good, I was thinking back to the earlier comment about "is there an easier way to handle that than C#"
What if you draw the animal form over the player
In one of the smapi render events
Farmer renderer scary 
i was thinking that too but that might be annoying to get the sprite frames to sync up maybe, and i wonder if there'd be any layering issues thatd also be annoying to fix
like your tools would appear under your hands wouldnt they
Yeah but maybe it's like skyrim werewolf logic can't use tools as an animal
If u just want to become furry then I'd go for fashion sense pack
they want to transform with a ring though
if ring equipped, substitute items equipped apearance for fashion sense furry appearance
That's the thing, it works great currently just as a config option. I've got the farmer sheet and another sheet and I just change between the two. So it feel so close to working
fashion sense items arent 'items' though
Look at how the deer in...uh. was it sword and sorcery? Works
a fashion sense shirt sprite is not compatible with a vanilla shirt sprite
Tbh I think Casey just replaces all farmer draw code with her own
why is smapi being reported as malware on my computer lol, has it always been? 😅
(have no idea how fashion sense works. just wanted to add to the chaos)
macOS?
yeah
(i would not recommend suggesting a solution if you dont know how the solution works)
not the right channel for it, but try 4.1.8 or the 4.1.8-alpha, as the last was made to avoid that
This is not the place to ask for troubleshooting help with SMAPI, but, #1272025932932055121 has lots of posts from people with the same issue and fixes in those posts!
I wonder the degree of Bad if u like
Swap the loaded farmer base with different asset
what assets are you targeting with content patcher to replace them? you could try just invalidating those assets from C# too and see if it works the way you want
Probably could I think
kk
sorry! 😓
I think Casey went her route bc the deer is 32x32
Like, you would have to prevent smapi from trying to put the other texture back in invalidating but
So then u just keep farmer_base_animal loaded all the time, no need to invalidate
Just conditionally change which texture u r draw from
i just suggested the invalidation since if it works from the config with CP, then it seems like invalidating and replacing is good enough for them, so it might just be an easier place to start than conditionally changing what is drawn
Hopefully easier to do multiplayer compat like this, just need to signal to clients to also do this swap
emphasis on 'start'
having Harmony in the mix means MonoMod is involved in the JIT; Pintail was emitting invalid IL which normally would have caused a bad IL exception, i guess. with MonoMod in the mix, it was crashing the whole runtime instead
I'm targeting farmer base, pants, shirts, hats, shoes, accessories, and hairstyles. Most of these are just replaced with an empty png so they don't display anything. Then farmer base is replaced with my edited sheet. I would need to do some research on how to go about invalidating assests in C#
Weiiiird
Tbh the runtime invalid il check is very incomplete
i have to report that as a proper bug to MonoMod, i just didn't have the time to do so
I can imagine it handling bad value types badly on its own
Especially with box/ynbox
or rather, i was told to report it
with a minimal example if possible
gotta figure out how to use MonoMod.Core on its own heh
and then it's just a case of emitting some bad IL, like Pintail did
hi! so I'm new to modding and I'm working on my first mod. I was wondering if anyone would help me figure out why my character won't appear in the game. there are no errors on smapi, he just doesn't show up. sorry if this is a dumb request and I know my mod is really scuffed but I'm new and I don't know how to fix it. okay thanks!
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 a json too, probably. its likely you just dont have every piece of NPC exodia for him to appear
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.
(NPCs need a few things all in place at the same time to be minimally functional)
okay, thank you!
While farmer base itself is fine ppl can add whatever texture for shirt hat etc and you can't just swap those with empty png. Should look at using harmony to prevent draw entirely
no 9-9
I put info in the description
Ok, so this may sound extra dumb, but I want to try and update someone else's mod for my own personal use.
This is the mod in question:
https://www.nexusmods.com/stardewvalley/mods/12469
SMAPI loads it fine, but produces this error when using the sell quality hotkey:
[Sell Quality] This mod failed in the Input.ButtonPressed event. Technical details:
NullReferenceException: Object reference not set to an instance of an object.
at SellQuality.ModEntry.OnButtonPressed(Object sender, ButtonPressedEventArgs e) in C:\Users\jason\source\repos\StardewTestMod\StardewTestMod\ModEntry.cs:line 35
at StardewModdingAPI.Framework.Events.ManagedEvent'1.Raise(TEventArgs args) in /home/pathoschild/git/SMAPI/src/SMAPI/Framework/Events/ManagedEvent.cs:line 101
Where do I start?
Is this mod open source
Definitely look for the source
Null Reference Exception means: something was null, when the computer didn't expect it
It's extremely hard to debug without the source handy
Hm
You can start taking guesses about what once you have the code
I'm really confused... my mod has two fences added to the game, and they were working last night, but this morning when I opened my game the previously placed fences just have red circle/cross icons, and when I place new ones they just the icon from the craftable instead of the correct fence segments. To my knowledge I didn't change anything that should have affected it. I also did a patch export of Data\Fences and Data\Objects and I think it looks normal?
"Name": "LawAndOrderSV_VelvetRopeFence",
"DisplayName": "Velvet Rope Fence",
"Description": "A sturdy and stunning fence option.",
"Type": "Crafting",
"Category": -8,
"Price": 40,
"Texture": "Mods\\sdvhead.LawAndOrderSV\\lao_objects",
"SpriteIndex": 22,
"ColorOverlayFromNextIndex": false,
"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
},
"LawAndOrderSV_SecurityFence": {
"Name": "LawAndOrderSV_SecurityFence",
"DisplayName": "Security Fence",
"Description": "A fence that seems to say 'keep out'",
"Type": "Crafting",
"Category": -8,
"Price": 40,
"Texture": "Mods\\sdvhead.LawAndOrderSV\\lao_objects",
"SpriteIndex": 23,
"ColorOverlayFromNextIndex": false,
"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
},```
Sorry I should have linked to a paste of all that
this is the data\fences export https://smapi.io/json/content-patcher/7427a8e647da4ed8b7fd1653b7e3c5e6
This was absolutely the solution for me. Handling asset requests and invalidating in C# solved it entirely for me. Thank you to everyone who gave input on this.
hello (i'm brazilian, so, my english is a failure)
There is a mod called Archery that apparently was abandoned by the owner, i wanted to see if anyone would have enough knowledge to update it for SV 1.6.14, pls :( my mod need this mod to work
( https://www.curseforge.com/stardewvalley/mods/archery )
quick question? to make a mod based on deluxe journal is it possible to use content patcher as the framework?
Does that mod expose a content patcher asset?
expose?? what do you mean by that??
where's the documentation for deluxe journal?
basically, if it lets you use CP, then yes, otherwise no
the mod has to be speicifcally set up to use CP
what do you mean by a mod based on deluxe journal, anyways?
dang.
it doesn't look like it takes in content packs, at a glance
like the layout and features mostly since deluxe journal is easier to use at least for me
plus many others, including myself, want this updated but unless i get the greenlight i can only try to make it myself
It sounds like you want to update Deluxe Journal? It's a C# mod that's open source but you certainly cannot make it in CP
However, it looks like it's actively being worked on
There was a commit from 33 minutes ago in the repo
oh cool! did not know that
It was last updated in July, which in Stardew time is not that long ago
Yeah, i would guess, though I can't say for sure, that it should be updated reasonably soon
As someone who hasn't had a chance to get around to my own mod updates for 1.6.9...I relate lol
Do you have anything in your SMAPI log? If I had to guess, either the item asset is invalid or is trying to be loaded exclusively twice.
no errors, here is the log https://smapi.io/log/82408ad09a6a4ae9adbfb1643727a61f
Log Info: SMAPI 4.1.7 with SDV 1.6.14 build 24317 on Microsoft Windows 11 Home, with 8 C# mods and 5 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
...oddly, until you do a patch export, your pack doens't seem to load?
look in trace
You can see it doesn't edit Data/Fences on behalf of your mod until you start messing with debug stuff
Can you do a patch summary asset "Data/Fences" ? I think that's the format.
Do you have a json link to your CP pack?
perhaps there's something odd about how you load it in
!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.
It doesn't look like it's applying in your overall summary either, so I want to see if something else is overtaking it
It looks like SVE could potentially be overriding it later on, so you may also need to set a priority or change the load order
----------------------
Local tokens:
token name | value
---------- | -----
ModId | [X] sdvhead.LawAndOrderSV
Patches:
loaded | conditions | applied | priority | name + details
------- | ---------- | ------- | -------- | --------------
[X] | [X] | [ ] | Default | Fixup Condition Check > fixup.json > Custom Objects > assets/Data/objects.json > EditData Data/Fences
No current changes.```
what is fixup.json doing?
Is that the full patch summary of the Data/Fences asset, or just your mod's section?
Because if it's just yours, that won't answer my question. 😉
that's just my mod's section i didn't want to spam/scroll the discord with the whole thing
You can dump things into smapi.io/json
it is basically content.json but it is a section that is applied later once my NPCs appear later in year 1
Actually I think I may have accidentally overwritten that file at some point although I'm not sure how, I will do some more testing on my own and if I still have issues I will look into the possible SVE override, thank you everyone
says there's a parsing error- try putting all of your jsons through the validator
that's not a json file just some cmd output
oh wait you put your log in the parser, that's why
Yeah, ignore that
It's more likely something to do with the conditional patch or SVE. You could try setting SVE as a false dependency in your mod manifest to check real quick if that solves it
the smapi website has a separate page for logs that does a better job of parsing them
Would you mind putting fixup.json in the JSON parser, if you want us to look into it any further?
Otherwise, you can add this to your mod's manifest after the "UpdateKeys" line if you wanted to check if SVE is causing the issue by loading after you: "Dependencies": [ { "UniqueID":"FlashShifter.StardewValleyExpandedCP", "IsRequired":false } ],
(If your mod already has dependencies, you would just include the part in { } after your other dependencies)
I did try the SVE dependency and that didn't seem to fix it. I have a little troubleshooting to do on my own, if that fails I'll be back, thank you all again
ok then. I'd check it without the conditions as well, to rule that out. ❤️
It appears to be working now although I'm not 100% sure why 
I added the SVE optional dependency and moved where I apply the content pack so it's no longer dependent on having seen my NPC load-in event. (although I'm sure in my save I had seen that event)
however now I'm seeing this which is concerning?
Yep, you're loading the asset twice, which wasn't showing up as an issue previously because your second Load was conditional and failing
(you have to make both loads conditional to avoid angering that, or make the one that happens later an EditData instead of a Load)
Typically you load a texture only once ever in your mod, and then every time you have to change it after, you use EditData
I'm pretty sure I am only loading it once though, unless somehow it was using a cached version of my file where I removed it from
that error shows where both calls are
if I'm reading it correctly one of those calls is from fixup.json though, which is where I removed it
If it's completely gone in fixup.json and you haven't exited the game and reopened it, you may need to do a patch reload to register the changes to your files
I think I'm going to completely restart my computer because the last time I left the farmhouse it completely crashed smapi so yikes
Just exiting to title won't refresh your CP mod changes without a patch reload
Doubled up load errors on your farm can cause that crash
it may have something to do with SVE as well as it messes with fences apparently, will continue testing thank you
What does your folder structure look like where your fixup.json file is?
Because the error message is actually implying that you have a copy of your Custom Objects folder in there.
hm
please share your fixup.json in the json parser
Because it definitely doesn't think the load is gone.
Might need to share your objects.json too if it keeps complaining
anyway like I said I'm restarting my comp and then need to step away for a bit. I appreciate your help will check back.
Yep, let us know if it keeps acting up on a restart when you have the time
So, it's still crashing, I removed SVE just to be sure and that didn't change anything. It thinks I'm loading the securityfence texture twice but even after doing an in-file text search on my entire mod I can only find one place it loads, in objects.json
error log is here https://smapi.io/log/30709c2f77b54353b6a408a0d77af462
Log Info: SMAPI 4.1.7 with SDV 1.6.14 build 24317 on Microsoft Windows 11 Home, with 7 C# mods and 3 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
starting a new save might help so you don't have to deal with all those missing locations
aside from that, it looks like you have multiple Load patches for the same asset, which is a no-no
fixup and custom objects
I was just going to say I just started a new save and so far so good, but in that save it hasn't applied the fixup json yet
so from the sound of it, you're using fixup to try and override your default asset?
regarding multiple load patches, I don't think I actually am? It may be that my save became corrupted but I'm not loading objects.json from fixup
CP says you do
I understand, and I think that may be due to a corrupted save. I'm new at this so I'm not speaking with certainty, but I did upload my fixup file and it does not touch objects.
oh wait I see
They shared both JSONs and it's no longer in the fixedup json
I have verified
So seems like it's baked into the save somehow
so far my new save file is working I will run the fixup event and see what happens after that
can you post fixup.json?
it was this one, tlitookilakin
This may be a case of "throw away the old error objects, their data is wrong" and spawn in new ones
For the old save
did you reload your patch after making edits?
and is the uploaded json the most recent version?
the log is referencing a patch that does not exist in the json you linked
according to the log, fixup is including an already-included file, which is causing the patches in it to duplicate and create load errors
I completely restarted my computer after making edits, and the uploaded json is the most recent. So far the new save is behaving as expected
hmm
helloo!! ❤️ does anybody have a link to making AT mods, specifically for walls and floors?
looks like everything is working in the new save file so it looks like the issue happened during my change of where I was loading the texture from, and my old save file got corrupted.
anyway thanks @latent mauve and everyone else for your patience
Hello, I'm trying to just poke my nose in something and I'm stuck. Now that everything is Content Patcher centric, I can't seem to find a way to open old mods.
For example, I want to open this mod:
https://www.nexusmods.com/stardewvalley/mods/3012?tab=description
Because I specifically want to know how this bit was handled: PercentDropChanceForMixedSeedsWhenNotFiber: The percent chance that mixed seeds will be dropped from weeds when fiber isn't dropped
c#
https://github.com/Floogen/AlternativeTextures/wiki
Most of the info you would need is on AT's wiki, you'll have to do some poking around though as it's not very guide-like
I like the look of this: https://www.nexusmods.com/stardewvalley/mods/21573?tab=files
Which I can read and I'd like to look at just figuring out a way to tweak it to up the drop chance from fiber of getting mixed seeds
a lot more is doable with just CP now, but there's still many things (like mixed seeds) that are hardcoded and require c#
!decompile
If you want to make SMAPI mods with C#, one important resource is decompiling the game to read the game code. Here's how to do it: https://stardewvalleywiki.com/Modding:Modder_Guide/Get_Started#How_do_I_decompile_the_game_code.3F
Works on mods too
ok I'll go look at this!
thank you!!
https://github.com/Floogen/AlternativeTextures/tree/stable/AlternativeTextures/Examples/[AT] Example Pack/Textures/Floors/WoodFloor
https://github.com/Floogen/AlternativeTextures/tree/stable/AlternativeTextures/Examples/[AT] Example Pack/Textures/Wallpapers/WoodWall
@uneven hinge AT also has specific examples for Wallpapers and Floors
oooh thank you!!!
Oh god. Ok, I don't know C# so that's waaaaaaay over my head.
New tactic, is there like a "Fiver" way to request mods? (Politely, gratefully, of course.)
Or a place where people can request and fill requests?
!modideas
If you have a mod idea that you aren't planning to make yourself, you can put it in the mod ideas github: https://github.com/StardewModders/mod-ideas
However, this does not mean anyone is guaranteed to work on your idea—modders who are looking for ideas sometimes go through and work on what they find interesting off this list. If you want to pay someone to make your mod idea, there are a few people who do commissions (mostly art, sometimes code); you can ask around, search usernames for the word comms, or see !commissions.
!commissions
If you're looking for people who do mod commissions (either art or code), here's a wiki page with a non-comprehensive list of people who do them: https://stardewmodding.wiki.gg/wiki/Stardew_Mod_Commissions
Is that a reference to a five-dollar bill, or...?
fiverr is a site
Fiver is a reference to a five dollar bill, yes
Oh, it's a website where you can pay people to do small things.
people offer services for money (five dollars was the usual when it launched) and you p ay them to do it
Doing a mod for $5.... hmm, it would have to be about 2 lines of code.
Perfect, thanks this is what I was looking for 🙂
Also, $5 wasn't the price -- it was a way to say "commission someone to do a mod" -- but I didn't know the language to use.
just commission in this case, then
Yes, I'm looking at the site now. I'll feel it out.
Thank you for your info, everyone 🙂
i kind of based my prices on simplicity, if i can write the cp pack in under an hour then i feel like five bucks was fine, but if someone wanted me to keep the upkeep on it i'd just take the dp after the fact
assets though, assets are a heavier cost to me
yeah it really depends on the type of mod and scope
if it was like "take these 10 sprites and make them into objects" then yeah I'd do that for $5
if it was more like "I need a c# mod that does these specific things" then that'd be more expensive
"Add a TileData action to this map" is also an easy $5 if the TileData action already exists.
yeah
tbh that's volunteer work to me because i have plenty of copy and pastes
"figure it out, but here's a template"
hrrrg now I kind of want to put some work into my datagen tool
but I also want to go catch up on a web serial that just posted a new chapter
decisions, decisions
reading and programming both take most of my attention so I can only do one or the other
I get nerd sniped into doing C# for free 
But that is like, still my mod, different than selling labor I think
Yeah, I've never actually taken commissions for my mods because I feel like they're pretty easy to replicate/learn, but I did get a tip for one once, so that was cool.
halp moi mushy brain
.
in sitting on non-furniture chairs (under Modding:Maps),
do the draw tile X and draw tile Y refer to the X,Y value when you click on a tile (e.g. 0,16) or like the tile (or grid?) count (0,1)? Also, I've that the Data/ChairTiles have -1/-1 value for them and am wondering what it means?
Im really confused lmao.
-1 typically means there's a hardcoded default value for that furniture type that it is pulling instead
Makes sense! I was trying to this:
(pressed enter too ealy)
"furniture/1/14": "3/2/down/couch/-1/-1/false"
I'm not sure what you're doing with the entry key there but it doesn't look right
this is what I did to make HxW's bathroom furniture toilets sittable, if it helps:
"hime_bathroom/1/7": "1/1/opposite/highback_chair/-1/-1/false",```
Had to do it for both rotations.
oh wait this isn't furniture please disregard
one sec. me gonna download that mod to see the tilesheet and compare QuQ
I did mine directly from the tilesheets pack
I doubt the png will be any different though between that and the bathroom furniture mod
basically, that counts each 16x16 as 1 tile, starting at 0
So my targeted tile X and Y for the first entry are the leftmost column (0), and the 8th row from the top (7).
and mine is a 1 tile wide, so the width and height are 1 each
okay, it seems im confused particularly about where im getting the second key (tile X, tile Y) and the draw tile X and tile Y. I've been counting directly from the tilesheet, is that not right?
how big is your couch? Is it the same size as the vanilla couches?
As Roku so kindly looked up for me in the code earlier, couches are 3 wide by 2 tall in the code as the default tilesheet size (-1).
its not custom tilesheet . im trying to get it from furniture.png from the vanilla files. (TileSheets\furniture).
its 3 tiles wide, and height is 2 tiles
oh!
Well in that case
Rejoice, friend, I've done the work for you on the Furniture SpriteIndex tab: https://docs.google.com/spreadsheets/d/1nE9-qRqVA1LouhsVIMiu1b8QmJ7vGyToAksgcLztBnQ/edit?usp=sharing
No counting needed, I already labeled the default furniture.png's indexes xD
youre a savior!
so you can just count down from the grids here much more easily for position
so this would be 0 for x and 13 for y I think, one sec
yep, 13 for top, 14 for the actual seat
so that one seems right
but since you're using the default, you could probably get away with -1/-1 drawtiles
hm, maybe my sheet is less useful for this at this stage, actually. >_>
like the x and y position, is it?
furniture/0/13": "3/2/down/couch/-1/-1/false?
seems right
unless you absolutely need to change the offset, it's probably easier to stick with the defaults
alr. me is gonna load it :'>
its not doing it 
{
"Changes": [
{
"Action": "EditData",
"Target": "Data/ChairTiles",
"Entries":{
"furniture/0/13": "3/2/down/couch/-1/-1/false"
}
}
]
}
{
"LogName": "Chair Tiles",
"Action": "Include",
"FromFile": "assets/Maps/Map_ChairTiles.json"
},
none xd (id rather have it red than show nothing)
you'd want the furniture down in the brown couch area instead for the coordinates to match correctly.
so 4/2
see if just 4/2 is enough to fix it
for width
did you recolor the brown couch or is the seat cushion in the middle coming from somewhere else?
ahh yess this is one thing i forgot to mention (im so sorry XD.
we'd need your actual furniture png grid for the proper tile coordinate. LOL
ah, I see
gimme a minute to look into this
Is your furniture tileset that you're using loaded to Maps somewhere so you can use it in your map?
Or are you keeping it as an internal file in your mod folder?
this, yes. Ive used it for the maps and just have it in my folder xd
Okay, and it's loaded with the Target as "Maps/furniture"?
If not, your key is wrong
Ah no, I didnt really load the furniture in the code. I just added the tilesheet for making the map. Though, if I'll load it. Wouldnt that override any other mod that loads furniture.png or not (like recolors or of that sort)?
That's why you need to rename your Target and your key if you do that.
But before we get into ANY of that
This couch isn't good enough for what you wanted?
in townInterior
It already has the middle seat as a chairtile, so I was curious as to if that would bypass the issue for you or not
but if it doesn't look good, then I'll pull that entry for a minute for us to look at
okay, so here's what we're gonna do
You want your tile X and Y in the key to be the exact middle cushion where you want to sit down
And you want your width and height to be a 1/1
here's the example for that couch: "townInterior/13/18": "1/1/down/couch/-1/-1/false",
I think I didnt opt for that because it has no back rotation? but if all else fail then I can do those.
We can probably make yours work, just need to load your texture correctly and then adjust the key coordinate for the rotation
So we're gonna tweak your coordinate a bit, because right now, I think it'd be trying to set the wrong tile
Supposedly, the wiki says it'll use your png filename without issue, even if it's not loaded, so I think you're okay with it staying in your mod folder
just gotta match your PNG filename exactly without the .png in the key
So let's change your coordinate to 1/14 in the key
"furniture/1/14": "1/1/down/couch/-1/-1/false"
Try that, assuming you are using the vanilla furniture.png and nothing's moved
0/13 would have tried to make you sit on the upper left corner, which is wrong.
( Slr, my cat keeps jumping on my table!
)
Alr, no need for loading then (small yay xd)
yep, you should be able to avoid loading it
if not, I'll walk you through how to do that properly without breaking the vanilla furniture.
hooray!
omg
excellent, that was our issue
thank you so muchh! i gotta note this issue so i dont forget why and how XD
and my sheet was still helpful in narrowing down the Tile coordinate of the seat, so yay
bookmarked it!
Thanks soo much for thoroughly teaching me 
Now you just need to do it again for the rotation
So you'll change the direction to opposite (unless you have a separate rotation for left and right in the sprite sheet)
and we'll change your coordinates again to land on the seat for the rotated one. 🙂
for the 2nd entry
4/14
aaah right, the back rotation
this is the side
I'm sleepy and miscounted LOL
4/14, not 16
"furniture/4/14": "1/1/opposite/couch/-1/-1/false"
back is gonna be tricky
Thanks!
I do have one for the brown couch (side) so that'd be 4/17 .
For the back rotation of the blue couch, should it be 6/14? something like
edited: "furniture/6/14": "1/1/up/couch/-1/-1/false" ?
you'd want up for the back rotation
oop, my bad. what's the opposite for?
opposite tells the game to draw you facing the opposite of the direction you clicked on the seat from
AAH
so you don't have to do left or right if you only have one rotation that just gets flipped to the opposite side
it's not as consistent, so it's better to only use it instead of left or right
hopefully it's straightforward and draws the things right!
looks like it should detect it to do that on up, though
Based on the vanilla entries
I think you'll need to set the draw tile here though
I need some help with a custom tapper, can't seem to make it work for the outputs
https://smapi.io/json/none/a48e286114064896acae18e2337f8931
LMAO
yeah, you need the draw tiles. LOL

so find the coordinate of the couch back to draw as the back tile xD
you'll also need to put the asset name for the drawtiles in at the end of this one, or it will get weird
It defaults to Tilesheets/ChairTiles for those numbers, which is why they're so off
on it xd
"furniture/6/14": "1/1/up/couch/6/13/false/TileSheets\\Furniture" I think?
It goes one higher depending on how it draws the back, and I'm not sure couch will function this way but we can try
can change couch to highback_chair here if it gets funky
"furniture/6/14": "1/1/up/highback_chair/6/13/false/TileSheets\\Furniture" is your alternate if the tile doesn't cover your full back
quick question, is there a command for reloading map changes? xd (idk if cp reload applies here)
alr
I change my map files all the time and patch reload to pull up the updated TMX xD
XD mood
is there anything coming up in the SMAPI log? Complaining about invalid object types or anything like that?
nope not at all
your source ID is wrong
how can I make a buff last forever? (C#)
I thought the default -1 duration would do that, but nope..
source ID takes the ID of the terrain feature (ie. the key in Data/WildTrees and Data/FruitTrees) not its produce
so for example if you want to limit a produce to mahogany trees you'd use "8"
-2 makes it last the entire day, but you still need to reapply it in a new day start
ok thanks for confirming that
Oh 😮
I was gonna ask if it was just the Wild Trees asset key, but you edited before I could. 😄
Thanky Selph ><
Now that Kath's query was unburied and answered, Nova, how are you doing with that back draw layer?
(you can do the same thing for the rotation if that gets weird too, just different coordinates)
im re-loading the game because I had a GID error. Its all good now.
"furniture/6/14": "1/1/up/couch/-1/-1/false/TileSheets\\furniture"
displays the same funny scene. so Im trying with the highback_chair
The exact same? Weird. Might need to make sure that the TileSheets reference is exact then, since by default it tries to load coordinates from Tilesheets/ChairTiles and the couch doesn't seem to exist there for some weird reason
Unsure if furniture needs to be capitalized there or not
Hmmm
Oh
You didn't change the -1s
After couch, it should be 6/13
Not -1/-1
That's your draw tiles
I tried the "furniture/6/13": "1/1/up/highback_chair/-1/-1/false/TileSheets\\furniture", but for some reason, it wont let me sit?
To draw over your person
You put 6/13 in the wrong spot
13y is the tile above your seat
I think fire is trying to point it should be:
"furniture/6/14": "1/1/up/highback_chair/6/13/false/TileSheets\\furniture"
Yeah, like I said up here
Sorry, swapped to mobile while I make dinner so it takes longer to type
I just got the last messages. just showing up after a long playing and test session
I will take a break through the weekend
my first mod has 550 unique downloads with only one issue related and fixed so far
I will take it as a success for my first game mechanics mod ever released
Congrats!
first week ending very well 
I have to re-release my child beds mod at some point to fix a very minor MoveEntries error, but I want to at least add something else to make it worth an update first
very minor fix are good too. people that found the issue will be grateful for it
Yeah, but it's literally just adding a (F) to one of the MoveEntries IDs
So I feel like it's a waste since it's a harmless error and all that is happening is that the bed doesn't move up three spots in the shop
Maybe I can just add a config option or something with it, so people who want to not have to worry about trading for the beds can buy them all once they have the catalog?
ahhhhhh my bad. i thought i changed it xd alksdjalkdjalkda
ok so i loaded it up and this is what showed up
Okay, so it drew a layer but not in the right spot
i changed the 6/13 to 6/14 in the draw tile which worked as we expect it to be xd
"furniture/6/14": "1/1/up/highback_chair/6/14/false/TileSheets\\furniture"
Weird.
The high back chair example implied it needed to be one higher but whatever works I guess
Not the first time the wiki has confused me
it confuses me all the tiiime xd
thank you sooo much! i just need to set the brown armchairs and couches and im done with chairttiilless
but before all that, breakfast 
Hello and good (insert time of day here)
https://smapi.io/json/content-patcher/a46f835811cd4211ae2f4f870c285387
I'm assuming I'm doing something wrong here - what I'm trying to do is get it so that when I walk on the tile it won't warp me to the new location unless I have 4 hearts with the NPC. I also want it to say - much like how it does with vanilla npc doors - 'you aren't good enough friends with'
Action should be on the Buildings layer, TouchAction should be on Back, and NPCWarp is a map property rather than a tile property. And if you want that effect when walking into a tile, I think TouchAction ConditionalDoor <game state query here> on the Back layer would do it, just going by the wiki at least. 
(Alongside a LockedDoorMessage <failure text asset> on the same layer, apparently)
Hi everyone! I'm getting ready to make a Community Center helper tool (I do know such things exist already, but this is a learning exercise for me and who knows, maybe people will find it useful)
Here is an entity-relationship diagram I put together to model the SDV items and any special requirements for obtaining them (weather, season, time of day) and the bundles & their requirements.
The idea is you'll be able to query the completed app in different ways -- get a full list of everything you still need and its requirements, or go "hey it's raining in summer" and see if you need to go fishing. Etc.
TravelCart = is it ever randomly available in the travel cart or not
GameType = vanilla or remixed to start, later on I'll implement support for mods that change the bundles
I would love to get feedback if anyone sees anything I missed or any brain fart I should fix before I get to coding. Thanks!!
What should I name my farm
you are in the wrong channel
It's because no one's replying to me
In that case would the TouchAction for the Door and Action for the LockedDoorWarp be unnecessary?
regardless, this isnt the right channel
It worked fine last time I tried (not the latest version but I don't think it was affected by the quick patches), there's only one feature broken by 1.6.9 (the ability to remove the vanilla light from Fishtanks), but it's in a try catch so it doesn't break the game.
I received multiple "doesn't work anymore" posts on Nexus but the only one who replied to me asking a log fixed it by themselves...
I don't think TouchAction Door exists unless a framework adds it, so you can remove that. And sorry, but it looks like I misread ConditionalWarp, it's for interior doors only.
You'd probably still want LockedDoorWarp, but on the Buildings layer. I don't know if there's a way to do it on contact (TouchAction), though, just when the player interacts (Action).
If you're doing it as a mod, a bunch of these classes are already in the game, so you'll be able to reuse them. Same with IDs, it'll be smart to use in-game IDs.
I haven't learned C# yet so it's gonna be a standalone thing. Python/SQLAlchemy for the backend.
I just realized I forgot the location for the fish. Should've talked to the rubber duck before posting 😆
I recommend SQLite
so is there a way to add a destination to the train station without using an additional mod?
wait the train station has no destinations to begin with
ffs
anybody know if DayStarted event runs when a farmhand joins a session in the middle of the day?
By interior doors do you mean doors inside buildings?
it should
Yeah, any of these that mention "interior doors" mean the kind that animate indoors but won't warp anywhere
https://www.stardewvalleywiki.com/Modding:Maps#TouchAction
OH oh i see i see
so far, my best guess for a TouchAction locked door would be using TouchAction Warp with a mail flag, and if the warp doesn't happen, have a conditional Action Message to click somewhere nearby 
honestly it doesnt have to work like a door - The two main things I want are for a message to prompt saying if the player isnt high enough friendship level, as well as to have the friendsihp requirement for the warp
it acting like a door really isnt necessary since ... well you cant even see the door itself
hey i have a question how do the lamposts in town work?
a property on Back like TouchAction Warp location x y mail_flag would handle the conditional warp part, but I don't think the base game has a TouchAction that displays a message, so it'd probably just need to be an Action on something nearby (or the tile itself, on a passable Buildings tile)
ohhhh alr alr even the light the comes off it?
The actual light is a type that only shows at night, I believe. The drawn light on the tile is caused by it being drawn on the night tile
That should fix it, at least for vanilla. I guess I should investigate whether any CC mods would make this not work before I get started.
like these guys here
oh yeah i saw that but im kinda confused on how its set up to work
That's over here
Ohhh i see i see
You put the day tile you want on the layer you want it on, list it in Day Tiles, and then list the tile you want it to swap to in Night Tiles
im assuming thats under map properties?
Yeah it's in the map, Custom Properties
ahh i see thank you very much
And the light in Light there is type 4, which I believe only shows at night. So it gives the illusion of a light bulb turning on when you combine the swap and the light
ahhh ngl i ddint think it would be that simple
Oh, and it uses whatever tileset you use for the placed tile. You don't have to indicate what tileset in that list.
you know, the love of cooking has been out for 3~4 years now, and in that time not one person has mentioned the energy and health labels on recipes are the wrong way around.
it took me until testing french to think 'hey, S stands for Santé'.
Heh
I admit I never actually check the amounts
I just eat one and see what happens
H stands for henergy
that's understandable and all but surely someone in the last 4 years has said 'oooiiii ceci n'est pas énergie'
oooh actually looking at the commit history it popped up in the last year or two. no wonder then
Was it only wrong in French?
not this time, the french are off the hook 😌
however, they're still responsible for making the name 'mayonnaise de dinosaure' as long as it is
IT WORKS 😼
This is the best thing I've ever tabbed in to see
hi quick question: if i edit this door texture to get rid of the bit above, can i just color over it with black or is there something else i should do?
- where is the door texture used?
- you should make it clear probably?
black will make it show up black
its the inside doors in all of the buildings
So, those doors open ,right — there might be some animations associated. I'm also guessing this is an edited texture, since it doesn't look familiar? So you'll want to figure out how to work around that — if it's your edited texture, do an EditData probably
an EditData in the replace mode should make that area clear if your new sheet has clear pixels there
it's the door from rustic country interior right?
Note that pngs have transparency in addition to color, so black is not neutral
yeah! it's from that mod so i have no clue about the inter-workings of it
if it's just a personal edit you can probably open up that mod's asset folders and find the doors and erase the parts that you want to, just make sure you don't go too far as the upper part of the door still needs to exist in some cases
so best be sure to check that the door is consistently uhhh something like 34px high and 16px wide (correct me on that)
Hey folks quick q, has anybody picked apart how Ui info suite 2 does the subtexturing for the weather icon? Though of taking some time to put in a pr making it more agnostic and potentially custom-weather compatibile, but don't really understand how its generating its own texture sheet
:|
the weather icon in the corner?
Why is it that when I test and try to break it, it don't do this but I release and boom >:|
isn't that just from cursosrs
that's weird, Game1.parseText() appends a space to each line after parsing.
i'm sure this normally isn't an issue, but i fed it into a second parseText() call later by accident and it double-newlined it since the space went over the width lol
wonder why it does that
i don't know if you're looking for more eyes, but your string starts with three braces {{{Query which smells wrong
) (smiley face with no eyes)
i placed down a picnic table on my map and i knows that i can sit on it ?????????
i though id have to give it a property to do that???
is it tied to the spritesheet or something
it's based on the tiles, yeah. there's a data asset that specifies which tiles in which spritesheets can be sat on
oh thats wild ngl
https://stardewvalleywiki.com/Modding:Maps#Sitting_on_non-furniture_chairs for some info about it if you are interested (or if you need to make your own tiles sittable)
ooooo
I return to making ze custom tapper, which is not even the mod's main thing o(<
btw if i were to set up a new custom chair would that be placed in like the content json or the tmx file
If you're adding a new custom chair to the game itself and want it to be a furniture object people can place in the world, you'd add it via content.json
If you're adding a new custom chair that you only expect to be used in a map and not freely placed or moved, you can just put it in the tmx file
oh i see i see
since im only adding chairs on a map would it be like a tile property?
you put info on your tiles into a data asset Data/ChairTiles
oh so how would you do that?
example via content patcher: https://github.com/ichortower/HatMouseLacey/blob/main/CP/data/hodgepodge.json#L11
(see previous link to wiki for explanation of data format)
ahhh alr ill take a looksee
note that you only have to do this for tiles that you have added to the game
if you are using existing tilesheets, they should Just Work
alr alr got it
Hello i have a prob with my npc mod; Smapi says : [Content Patcher] Could not load content pack 'NpcTest': content pack has no content.json file. But he is in the pack (in visual studio) but not in the stardew mod pack when i launch, the other folder are here but not the content.json. Can you help me ?
Can you screenshot your Visual Studio window with the name of the file in it?
You may also need to verify that you've saved the content file as a JSON, if it is in the right place but the wrong file type.
a) Shiko does not have open perms
b) it looks like you are making a C# mod, which would not have a content.json
ceci n'est pas une content pack...
i know
it"s only for me
you can either have a content pack or a C# mod, not both
if you need both, you need to make 2 mods
and have them work together
!manifest
manifest.json is the file that tells SMAPI that a folder is a mod. Here's the wiki page on manifests, which has some things you can copy-paste into the manifest.json if you're making a mod: https://stardewvalleywiki.com/Modding:Modder_Guide/APIs/Manifest
note that there's 2 options here
yep, you don't need Visual Studio Community to update a content pack, and you don't need a solution, modentry file, etc.
follow this guide instead for creating a content pack:
https://stardewvalleywiki.com/Modding:Content_packs
so i can supp the mod entry C# then remake the manifest only for content pack ?
yes, copy the content, manifest, i18n, assets files to a new folder and delete the VSCommunity solution entirely; you don't need it at all and it won't do anything
while you're free to make C# mods separately, you won't need it if you're simply updating Shiko
that what i wanted but i think it's to hard for me i follow the step on the wiki but i cant understand the code
but if i dont use visual studio, what did i suppose to use ?
Depending on what you need to update, you could take a look at the various NPC tutorials and resources for 1.6 to 'rebuild' Shiko with the new data model if that helps.
you can use any text editor you like
Visual Studio Code, Sublime Text, Notepad++, ..
update the 1.5 version to 1.6
No that didn't work i try before
these don't let you build-and-deploy in the same way Visual Studio Community does, though, so you'd be copying your working files to your Mods folder whenever you test (unless you work from the Mods folder)
Visual Studio Code is wonderful for editing JSONs since it'll show you where your syntax has gone wrong, but yeah, they don't 'deploy' for you
!npc
Keep in mind that making NPCs is a complex process that requires learning many different aspects of Stardew modding.
Here are a few links that can help get you started on all that you need to know:
-
Tiakall has a great tutorial on making a custom NPC for 1.6.
-
NPCs no longer use dispositions, check the wiki page for the new NPC data.
-
Aviroen has put together a template that will allow you to easily create a romanceable NPC.
-
Feel free to jump into the https://discord.com/channels/137344473976799233/1277457201077813280 thread for more interactive feedback and help!
-
Fireredlily has a WIP NPC Builder Please do report any errors you get with it into the NPC thread!
The new data model makes it way easier to add things like the spouse room, so it's definitely worth rebuilding it to use the new structure.
ok i will follow this
(TMXL which it used to use for the spouse room is dead and buried, so you'd need to swap that over to fully use CP to add it anyway)
ok ty for help
(there's specifically a section toward the end of the tutorial that lists out what changed in 1.6. Most of it will probably be stripping out any dead frameworks she might have been using.)
I would guess that it's a hack to deal with the gradual accumulation of error in the way parseText computes the line length.
I seriously don't understand what's wrong with this line. https://smapi.io/json/none/66a482c3c31040759c8ce5c90ac858e1
May or may not be the issue, but line 507 has a weird symbol instead of a closing double quote mark
Often when the parser says there's an issue with a particular line, it's because there's a problem with a closing quote, bracket, or comma in the section just before it
^ This is absolutely the issue, because the symbol is preventing line 507 from closing, so it's trying to read everything else as still being part of a string
tysm that was the problem
i got new custom chairs working >:)
now to figure out how to make the map respond to seasons
💀 how do i make outdoor maps respond to seasons
if your tilesheet name starts with seasonname_ then the game should automatically switch between seasonal variants
so if your map uses the spring_somethinghere tilesheets it should work automatically
huh what if im just reusing a vanilla tileset
then yes it works automatically
oh nvm i was just making it more complicated that it was lmao
Is there a mod/way to stop spouses from changing wallpaper/flooring...its annoying to have them change a rare wallpaper (like from the calico shops)
That's more of a question for #modded-stardew - this is for making mods .. or if you're trying to make that mod specifically
can you make farm animals swim?
(Also, I wish when you changed wallpaper, you got the original one back again, although I guess that's not very realistic)
Hi, just wanted to make sure that the "Why?" in the screenshot isnt some kind of code that im editing out for my translation mod. It just looked suspicious being so close to the other code gibberish that comes before it 😛
The "Why?" is just regular dialogue, but that "code gibberish" is kinda important if you're changing anything dialogue-related, even if it's just a translation
You should read about what it does on the wiki
Thanks 😛 Im not really changing anything dialogue related, just translating
Trying to minimize mistakes so I dont have to debug a bunch later, thats all ^^
Please don't ping me on reply. And like I said, it's important even for a translation since you need to know how it works to avoid issues
It would answer questions like this, for example
all the track names are listed on [[Modding:Audio]] 
I know they're listed there but I don't know which one is the desert one :(
I also cant figure out which one is the 'going down a staircase' one
making winter textures is so agonizing 🥲
(for the sound bank not music itself)
oh right, desert is wavy
oh that.. that's delightful honestly
and stairs are stairsdown
wel I just didnt see that one on the list then. I should have (since that one's obvious) but... oh well
Thank you very much
6/12 portraits redrawn
is there any way to set a condition to when a tile is animated, or like it's only animated at a certain time
sure, change between an animated and static tile index with UpdateRate: OnTimeChanged:
https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide/action-editmap.md#edit-map-tiles
you can't otherwise pause, play, or stop tile animations.
so...it would animate during the time set and not any other time then?
you'd set the tile index to the index of an animated tile or a static tile depending on your time condition
okay
it may have taken me an embarrassingly long time, but today i made the cooking menu absolutely bulletproof
completely indestructible 
cupcake monologue
i love u Vanilla Cooking Recipes but i read cookbooks for the pictures more than the plot
bless chinese for just working, even if it's completely illegible
is DriedMushrooms a valid base game item? and if so, is it meant to say Dried
oh i see it's a flavour item, it just doesn't have a default text other than the prefix
i guess that works out better for Jelly and Wine huh
Dried
are these meant to be translated? strings/objects.zh-cn has some english lines
"DriedFruit_Name": "Dried",
"DriedMushrooms_Name": "Dried",
"SmokedFish_Name": "Smoked",
"HaleysLostBracelet_Name": "Haley's Lost Bracelet",
"HaleysLostBracelet_Description": "A family heirloom.",
wow, korean is flawless. they even translated all the resource clumps. the only english in there is CD, TV, and Ape
how do you make one of those framework mods that people can target with just CP?
in C#, so like they put what they want in some json file using entries in CP and then the mod reads off it. do i just use Mods/ModID/whateverfile.json?
you can use any asset name you like! minus the .json of course.
but something along those lines, sure. you're just Load-ing a data model asset the same as any other game asset you'd patch with CP
oh nice
what's the standardised way that other C#-CP frameworks do it then?
i can't think of any off the top of my head or i'd just check someone else's source
standards? with these limitless possibilities?
🤣
in a roundabout sort of way you could call LOC's CP translations an example of what you're looking for
LOC ? sorry i haven't been keeping well up-to-date with the modding scene recently
😅
Lines of code
oh, i pushed love of cooking 2.0 recently
it's split into a C# main, a CP content pack, and another CP pack for translations
Loc sure is multiple lines of code
the CP content pack loads the strings file:
// Strings
{
"Action": "Load",
"Target": "{{ASSETS}}/Strings",
"FromFile": "assets/blank.json"
}
and any CP translation packs will target that with their changes, e.g.:```json
{
"LogName": "Love of Cooking - Translations [EN]",
"Action": "EditData",
"Target": "Mods/blueberry.LoveOfCooking.Assets/Strings",
"Entries": {
// Mod info
"mod.name": "Love of Cooking",
// Config options
"config.page.info": "Info",
"config.page.options": "Options",
// . . .
which is basically what you're doing, just the data happens to be strings
(You can also look at the East Scarpe c#)
so this bit is what i'm looking for "Target": "Mods/blueberry.LoveOfCooking.Assets/Strings",
To see how nutty it can get
yeah
and then in C# i'll just normally load it from ModContent
nice sounds easy enough
what does {{ASSETS}} point to?
again the Target asset name can be anything you like, the only standard is to start with Mods/ and include your UniqueID somewhere
You load it from GameContent
GameContent not ModContent? interesting. thank you !
ASSETS is a dynamic token with a value set to that Mods/blueberry.LoveOfCooking.Assets path
oh nice i see
it's just shorthand
thanks, yeah i get it, like a C# const
yeah most of my dynamictokens aren't very dynamic hahah
i've been so damn busy lately i'm getting rusty, i need to keep up to date 😅
you missed the midnight mod update launch party and everything
there were free canapés

