#making-mods-general
1 messages · Page 312 of 1
I want to add lot's of moss stuff how can i DO that
get linux on your mac it works
isntalling
it was awful anyway
It worked fine, rider seems a little nicer so far
I’d have to partition or abandon what’s there already, both of which are unpleasant sadly
i'm trying to make a mod that can take the mouse-hover chinese character and display a modal with its translation and pinyin somewhere on the screen
does this sound feasible?
once i get things working. is this available by the game engine and the mod api?
requires a bit of external integration, but yes
Yeah that seems possible, you might need to pull in some extra stuff
Mainly the translation aspect
yeah i have some data store thing of the lookups
i'm going to do it without http stuff
Pinyin would probably be doable by lookups, but translation seems harder by lookup
yeah just the character is fine for now
I mean it would work a little
Does the game load multiple language fonts at once? E.g. english and chinese
The phrase thing would be annoying
It's a highly context sensitive language
I think the Chinese font can do Latin text
then is a browser extension that's figured it out, without web requests
You might consider whether you want to do tones
I remember playing in JP for a while, switching back to english, and then all the JP characters in my ranodmly-generated animal names were error chars
Since idk if that’s supported
The game can’t do that way (JP to ENG)
But Latin text is fallback I think
makes sense, just wanted to make sure the game would have the font they need
Yeah the latin font has no support for cjk characters
I think font setting might fix it
i'm mostly concerned about:
- can i get a handle on what text character the cursor is over
- i can display a modal arbitrarily on the screen
Like if I look up 難過 vs just one of those it’s gonna be very different is I think what chu is getting at
Displaying stuff on screen is easy, if not pretty
Determining what you’re over in the cursor is definitely possible but might require more work
There’s only finite draw code for text
Does the game load multiple language fonts at once? E.g. english and chinese
oh i see what you're getting at
1 might be difficult but not impossible, perhaps something via patching drawtext to get vounds and i assume u just give up gamepad support
2 is ez
best way i can think of is patching XNA/MonoGame's text drawing methods and manually calculating where each character is. and this won't work if any of that rendering is done to a render target
More specifically sdv just doesn't have any UI framework
sounds unrealistic
ouch
I mean the game has to calculate where to draw each letter
From a brute force perspective the stuff is in there somewhere
Yeah i was talking about 2 (draw modal) with the understanding that 1 (find text bounds) is magically working perfectly
Fine, poking into monogame is possible too though. Maybe less painful to manually recalculate?
so if you hover, can you get the full text (if not the character)?
Yeah this ain't like webdev where you have hover events
Chinese is pretty much fixed width, so recalculating might be easier
Do it yerself
the first game i tried was basically hostile to modding
they packaged their global-metadata to stop modding
This game isn’t designed for modding but it’s not hostile to it either. What you are describing is just so different from the design paradigm of the game.
SDV is modding friendly it just that mr ape didn't have it any easier than us for menu things 
apparently cult of the lamb is friendly to BepInEx
There isn’t support for it because the game never needed any of that kind of thing
Not because it was purposely left out or obfuscated or anything
have any idea for a good candidate game?
No idea
i kind of just was interested in making a mod for learning
I don’t play other games
Something that is possible is to get the active dialogue line being displayed
right
And then show the translation box at a fixed place
any game that gives me some kind of hover of a TextMesh or whatever equivalent
It would probably start to get into better suited for one of the off topic channels when talking about other games
yeah true
There's no TextMesh
Something that is possible is to get the active dialogue line being displayed
im fine with this
!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
Take a look at Dialogue and DialogueBox
im fine with something messy like the entire text with just the pinyin all in a list
First thing is the parser (cursed) and second is the menu
ok i have VS im going to try what was suggested
it sounds kinda backwards to decide on a project like that first, without deciding on the right game for it
(Tbh I'm just doing trainchinese)
does the body not actually support the scale modifier? or is it cached somehow 
i added in the body as a shirt and it scaled there
I would not be surprised if the body doesn’t support the scale modifier but I don’t know offhand
Bodies are weird
I also wouldn’t be surprised if there is caching
@ivory plume
Chu said there was something funny with the body having its own content cache or something?
oh fun
how would i clear it if it exists 
is that expected?
Yeah FarmerRenderer has its own content manager iirc
I'm not sure how it happened, but you explicitly added nuget.smapi.io as a package source. You can remove it from that list to fix the error.
ok removing
I know FS does have a body scale mod by peacefulend
do i build this in the UI somehow?
Hmm, worth testing the example mod to see if it works
FS just takes over farmer renderer so it works
hmm i saw that, it looks like it just changes the sprite height within the bounds?
i'm testing with something that's 256x256 (cuz im zesty) and trying to downscale it so it doesnt. do this LOL
(ft pokemon rebel trainer as my test subject)
You could read the source code to see whether body actually supports/uses scale
what language is the sc in :? im fairly new to stardew modding and not familiar with the technical side yet
i think i saw someone meantion dotnet earlier though so if its c# i should be fine
the game, SMAPI, and mods for it are in C#, yes
technically you can use stuff like F# or whatever, too
something is caching this network mirror or source or whatever: 1>E:\DrewMods\MyHoverMod\MyHoverMod\MyHoverMod.csproj : error NU1301: Failed to retrieve information about 'Newtonsoft.Json' from remote source 'https://nuget.smapi.io/FindPackagesById()?id='Newtonsoft.Json'&semVerLevel=2.0.0'.
oh
yea theres no scale property in the bodymodel.cs
i removed the source, restarted IDE, checked again
maybe ill just delete everything and start again
its in the docs though so i was Bamboozled
or. wait. maybe im looking in the wrong place
How can I remove this yellow text on the 1st of each season?
Does your Load target have tokens
So it's been awhile. If I'm not mistaken, someone had created a tool to create mod manifest files. Anyone know the tool?
Mod manifest builder
Thanks!
yep
found a workaround, in that if i ust re label everything appropriately and put the bodymod in as an accessory it works 
If you want to avoid the yellow then you can't do that
The reason why the asset cease to exist is because the token entered an unready state
If I do "PLAYER_HAS_MAIL Current MSB_Lewis MBS_Pierre Received", as a GSQ that would make it so that the condition triggers if the player has either mail, right?
i don't believe the GSQ accept multiple arguments
you will need to check the format on wiki, but i'm pretty sure the third argument is for now/received/tomorrow/any
you'll need the ANY for each check
Would that be two trigger actions then? One for the first letter and one for the second?
Because if I add it to the same GSQ it would require both to be sent at some point
but that would still require both mails to be in the queue for the mailbox, or already received
or am i misunderstanding that
ANY "GSQ 1" "GSQ 2"
Oh
Which gives u mail 1 true or mail 2 true or mail 1 and mail 2 true
Is that what you want
I see what you mean lol I was confused for a second because I thought you were referring to the ANY in the PLAYER_HAS_MAIL Gsq not the other one
thank you!
Where do I put that ? is it at the start of the "Conditions" field?
so like ANY "GSQ1", "GSQ2",
aka do they need commas
no, but they may need backslash
Thank you! I see how that's done on the Wiki so ill try that :)
Yeah I was a bit confused because the first one (the example with the weather) has commas
so I wasn't sure if I needed them or not
er didnt have commas
but the second one did
wait no neither does
I ... may be a bit tired lol
the commas are here but inside a ... sub GSQ?
i don't know how to tell
like, it would be ANY "group of condition 1, that may have comma" "group of condition 2, that may have comma", whatever condition you want here that will always be needed
Thank you :3
It also confused me a bit / I couldn't tell
Hm.. is the ANY also supposed to be enclosed in quotes?
GSQs parser is very quote aware.
The outer most layer is comma separated queries to join in an AND relationship.
Within those queries are space separated argument
it's in the "condition":"ANY whatever blablabla" quote
but not having quote in itself or in addition
Spaces and commas inside the quotes don't count to the outer layer
I figured it out B)
"ANY \"PLAYER_HAS_MAIL Current MSB_Lewis Received\" \"PLAYER_HAS_MAIL Current MBS_Pierre Received\"",
it would look like this (at least its not throwing errors anyways so I think it looks like this)
looks ok at first glance
it worked! :D
What exactly is the difference between a normal map and a temporary one?
Like with changeLocation and changeToTemporaryMap
Change location changes to that locaiton
Change to temporary map changes to a location named Temp
That then loafs that map file
It's not actually that location
One of my NPC's has sent me their cooking recipe in the mail but I don't actually see anything other than the shadow in the collection tab. Any reason for this?
Ah, so it's so we can edit Temp with our map, without adding a new location?
Ok so I figured something must be wrong with my recipe data
Can anyone tell me what's wrong? "256 2 Lilybrook.Redacted 1 Carrot 1/25 5/Lilybrook.Redacted/f TracyLilybrook 4/{{i18n:Lilybrook.Redacted.Name}}"
I think I'm missing the yield field but I don't fully understand it
cooking recipe?
Yepp
I believe you don't need the i18n at the end? I think that just goes in the actual item data instead
so try removing that (and making sure the i18n token is in the object's data) and see if that works
I'm actually using the same i18n token for this recipe entry and the actual object. Maybe it's causing issues - will change now c:
Here's one of my recipes as an example
"{{ModID}}_bakedredsnappercurry": "150 1 192 1 260 1/1 1/{{ModID}}_bakedredsnappercurry/none/{{i18n:VoidWitchCult.CP.TheFishmongerNPC.bakedredsnappercurry.Name}}",
Name/Ingredient/unused/yield/unlock condition/display name. Idk what this recipe is making but according to as it is now the yield would be "Lilybrook.Redacted"
sadly not working!
hmmm
what does the 1 1 mean?
thats the unused one
doesnt do anything - yeah
i just put 1 1 out of habit in all mine
ye
since you use Lilybrook.Redacted as an ingredient your yield field which is the same is probs the issue
so when you say the recipe isnt working is it not being sent or does it show as like, a torch recipe
also its not actually that void
they just redacted the names of the object and recipe
oh so its a placeholder
yeah they're keeping it secret xD
Ah fine I'll share it - it's confusing haha
that makes it more confusing- yeah
"8BitAlien.Lilybrook_TomatoSoup": "256 2 Lilybrook.Onion 1 Carrot 1/25 5/Lilybrook.TomatoSoup/f TracyLilybrook 4/{{i18n:Lilybrook.TomatoSoup.Name}}"
is the internal name of your npc actually "TracyLilyBrook" or does it have your mod id
because that would be causing the issue
ohhh
it's actually TracyLilybrook
your recipe yield needs to be the same as your first part
so it would be 8BitAlien.Lilybrook_TomatoSoup, not just Lilybrook.TomatoSoup
Ohh ok! Will try that now
Nope, still nothing 😦
The name of my object is actually Lilybrook.TomatoSoup, so I should actually be changing my entry key instead?
Is Lilybrook.Onion the correct ID for the ingredient?
Your key should match your object data.
Oh yeah
If the object is called Lilybrook.TomatoSoup the entry and output need to be Lilybrook.TomatoSoup
Yay, that seems to work, thanks everyone
I have one last question. I have added other food items and they have a shadow on the cooking tab even though I don't want some to have a recipe. How do I remove these?

That should only happen if you gave them recipe data 
also yippie! :D
mmm i could go for some nice tomato soup right now
They only have object data rn
They have Type:Cooking but I assumed all food had that lol
You are absolutely certain you haven't given anything with their object ID a Data/CookingRecipes entry? I mean, you could try giving it the Basic type but I don't know that it should matter.
I'm certain. I only learned how to do Recipe Data today haha
Sorry, my phone refuses to spell today
hmm thats odd cause I do definitely have foods for qi that dont show in the cooking tab... i htink
make them Type Basic
Ooo will try doing that now
you'd also need to change their category to anything but -7
Honestly I don't know that I have ever given my custom objects a Type that wasn't Basic
I usually just make the context tags do the job of labeling them
Type is kinda a relic, but some of the game code still checks them
though most of them also checks category
yeah sorry I was busy checking source code to see if the category change was needed lol
None of the categories fit haha
if you have spacecore you can override the category text
I might try -17
actually -25 also gets written as "Cooking"
Oh I will use that then
Ingredients are still edible
(also, huh, -25 exists)
Which is -25
(it is not used in vanilla anywhere)
(how long has that been there, goodness)
(is it introduced solely so mods can add "Cooking" items that doesn't count towards Perfection)
Yay that worked 😄
I'm sorry to bother you, but could you show me an example? I'm a little dumb
You're not a bother at all!
Here's an example of me doing something similar, though the only thing I changed is the response
(which, i realize i can do with dyamic tokens, but i didnt know how dynamic tokens were made when doing this and i dont wanna redo it so... phooey on that)
maybe ill do that actually... less patches is better i think
Chu corrupted me... now when I see something like this I immediately get the urge to use LocalTokens 
local tokens...
well ive already dynamic-tokened-it up so im not even gonna look at that
Thank you!
Of course!
Local tokens are just dynamic tokens but for 1 include
Not unless you have LocalTokens somewhere
Ternary when chue
But that's the good thing about modding. There are several ways of doing things
I need ternary
Isn't If already ternary
The trigger action
No, I meant ternary in local token
Is there a way to take a stat that I increment from time to time and put it in a piece of event dialogue?
I want hellish ternaries in local tokens
Yeah tokenized string i think
Why
do you define them similarly to dynamic tokens... I shouldnt look at this i think ill make myself insane
Not really you get "TokenName": "Thing"
Cus the point is to use this within a patch which may already have a When
ah i see i see
what? does it work?
That worked perfectly, thank you!
Is there a reason why a spouse would stand facing to the left while at the kitchen 
I don't know why he started doing that and I have no clue what i changed to make him do that
I don't see it being checked for anything cooking related, so... mayhaps?
Is there/does anyone have: an annotated reference sheet for, firstly, the user interface (e.g. where all the parts are used in-game like the hotbar/hotbar selector/inventory menu), and secondly, (just curious for this one) for the town/outdoors tilesheets that notes what things are and/or used for?
someone may prove me wrong but i'd be VERY surprised if the interface had any in-depth user-created documentation at all
(please prove me wrong, that'd be pretty neat)
sad. 😦
what are you trying to accomplish?
Mostly I just want to make it easier to modify the look of the UI. Since I separate all the UI pieces into separate layers in order to facilitate easier editing down the line, naming the layers with what they are/where they're used is very helpful.
If no one has notes, I'll just have to make my own. I'm just lazy. 😛
Oh for UI recolors?
Yeah, but I'm also redrawing some of the elements to make it more flat/minimalistic.
I think there's a resource to help show what bits to recolor
But idk that it's that extensive
Yes, this one is the most recent resource. Very helpful if all you're doing is changing colors. No need to know what everything is used for specifically.
LocalTokens can be put on any patch directly as well, its just that when putting them on Include its inheritable
{
"LogName": "Aquarium Fishes",
"Action": "EditData",
"Target": "Data/AquariumFish",
"Entries": {
"Lumisteria.MtVapius_Sturgiant": "0/fish/////{{AquariumFishTexture}}",
"Lumisteria.MtVapius_AlpineCharPrince": "1/fish/////{{AquariumFishTexture}}",
"Lumisteria.MtVapius_WhiteVendace": "2/fish/////{{AquariumFishTexture}}",
"Lumisteria.MtVapius_VapiusRoach": "3/fish/////{{AquariumFishTexture}}",
"Lumisteria.MtVapius_MossyCrayfish": "4/crawl/////{{AquariumFishTexture}}",
"Lumisteria.MtVapius_AlpineChar": "5/fish/////{{AquariumFishTexture}}",
"Lumisteria.MtVapius_CrystalFish": "6/fish/////{{AquariumFishTexture}}",
"Lumisteria.MtVapius_GiantCrystalFish": "7/fish/////{{AquariumFishTexture}}",
"Lumisteria.MtVapius_RainbowPerch": "8/fish/////{{AquariumFishTexture}}",
"Lumisteria.MtVapius_LeafyTrout": "10/fish/////{{AquariumFishTexture}}",
"Lumisteria.MtVapius_PlanetFish": "11/fish/////{{AquariumFishTexture}}",
},
"LocalTokens": {
"AquariumFishTexture": "Mods\\Lumisteria.MtVapius\\AquariumFishes"
}
},
(I picked a random patch with repeated content and did it)
this is true tho i feel like it is not any different 
Hello, could you guide me on how I can make this mod? I translated it into Spanish, but now I wanted to reinstall it and the author deleted it. The only way I can think of is using a recipe, but the original mod was exactly the same object that you obtained through a mini quest to get the recipe and craft the drink, which was a loved gift by everyone, just like the original Stardrop Tea.
well the stardrop tea is just an object
you would make a cooking recipe for it, though idk the details of this mini quest so you will have to summon it from memory
you can make a recipe for the object that already exists
like chu said wouldnt know how to help with the quest stuff since we dont know the details of said quest
I’ll skip the mini quest and have the Traveller sell it hahaha—it’s easier. It will have a high price, of course.
there's also a pretty cool mod that lets you brew it from a custom tea crop - it also does a few other things, it was made by Anaira :) https://www.nexusmods.com/stardewvalley/mods/32584
It looks interesting, and I could also translate it into Spanish. Still, I’d like to try making the mod so I can learn something new.
Of course! I definitely think you should do it anyways! :D
!twocakes
If you discover that someone has made or is making a mod with a similar concept to yours, don't stress! Our community promotes the idea of "two cakes", where two versions of the same idea can peacefully co-exist. Your mod will have your own unique stamp on it that makes it special.
https://stardewvalleywiki.com/Modding:Recipe_data
and
https://stardewvalleywiki.com/Modding:Shops
will be helpful for you!
Actually, I could do this: make the Stardrop Tea mod with just the recipe, obtainable from the Traveller, and add a link to the “Star Crops and Galaxy Rainbow Trees - Stardrop Tea Ancient Starfruit Fruit Sapling Mod,” mentioning that if anyone wants something more complete, they can try that mod.
What really interests me is trying to make the mod haha. Not to mention, I’m also going to translate Anaira’s mod. By the way, her nickname sounds familiar, I’ll check if I haven’t translated something for her before.
She's made a fair few cool mods!
Yep, thanks
Yes! I was going to translate this mod for her, but there was nothing to translate haha. I’ll redeem myself by translating her Stardrop Tea and Crops mod haha.
https://www.nexusmods.com/stardewvalley/mods/27023?tab=files
And this mod I traslated it to her
https://www.nexusmods.com/stardewvalley/mods/24426
Hi everyone
If I understand correctly the wiki, in order to add a new mail to the mailbox I have to call Game1.mailbox.add() containing the unique key of that mail. from what I found the default mails are stored in Content\Data\Mail.xnb
how can I add new mails toh? do I create another content/data/mail.xnb or what
Most people use content patcher to add a new mail to Content/Data/Mail
Using an EditData action
How do you make a furniture piece that acts like an archway? So there is collision on some tiles and you can walk through the middle
when in C# if you want to edit an asset (like Data/Mail) you can do it via the AssetRequested event
https://stardewvalleywiki.com/Modding:Modder_Guide/APIs/Content#Edit_a_dictionary
I... Hm ive never seen something like that
🤔
I think you need a framework
Maybe ask chu
I feel like chu was up to something with collision
Chu just made a thing that can do that, it's going into calcifer at some point maybe
No, regular CP can't yeah
Ahh okee
I am not familiar enough with furniture framework to say whether it has anything
On a related note, how can you add furniture that has a front layer too, like a sofa?
Can that be done with an EditData alone?
Wdym like a front layer 🤔 for what
Like, I want the player to be able to walk behind it and it not have collision there
I think normal furniture already can do that by just editing the collision boxes though
When editing Data/Furniture?
When you edit your furniture, there's a reference for where the front layer is located.
Would BoundingBoxSize be relevant here?
Im like confused too bc i thought you could already walk behind furniture
If it's Tall
you can specify furniture hitboxes that are smaller than their texture
what you can't do is have furniture that goes XOOX where O is walkable but X is not
just add a Front texture with the same name of the furntirue texture
but with front in front of the name
Ahh ok, I will try doing that. Will it automatically draw it?
Or do i need to specify it's the front texture?
it automatically looks
Make sure your front texture lines up with where the furniture will be on the normal asset.
Ok, thanks. Will try now c:
I don't understand what I'm doing at all lol. Is there a different way?
so for front textures you have your two pngs right
here let me get you an example with my furniture yeah
Thanks Lily c:
first we got the two pngs here, the furniture file and then the furniture file with Front at the end
in vanilla, you have for example, furniture and furnitureFront
Then in the "Front" file, at the same tile(s) that your furniture is on you put the part that you want to draw in front there
if that makes sense
So I think the suggestion earlier to put Front in the beginning of the name was technically just wrong spot
yeah sorry
(without the shadows cause then itll draw the shadows twice and look funny when you sit on it)
Ok, I follow all the part about the pngs, but I'm confused about how to code it in
no code
Load it as a Target
it automatically does it
the game automatically looks for it
(Load both)
you do have to laod the front one lmao I just didnt remember doing it
Thanks all!
happy to help! :D
so with doing island resort stuff for an NPC, do you need to do anything beyond dialogue, sprites, and the CanVisitIsland setting in the disposition?
i think that's all you need
gotcha
i included that in "sprites"
You can do animations if you want to as well
Mhh, the thing I don't have a static list of mails
Basically every start of the season I generate a quest. The quest is delivered through a mail, which is named "quest name + number of questa done so far" and it contains a simple description (stored in the quest data) + key to activate the quest being tracked
Would it work anyway if I edit it through asset requested any time I generate a new quest? Or maybe there's a better way
Forgot to select the message
hmm i was under the impression that just having the file be called NPCName_beach automatically made it an island outfit
is that no longer true?
You don't :D
wh..
(you can prohibit them from doing certain activities which require a matching animation, by not providing the animation. but that's all the control you have)
Island schedules are hardcoded
why would B) go to the island resort when he has a darker cooler resort
I was thinking about it for Honey but sending Qi to the resort would be pretty funny...
oh no
Yessss
Doesn't seem to be loading the front png. Is this right? { "LogName": "Load Furniture", "Action": "Load", "Target": "Mods/{{ModId}}/Furniture", "FromFile": "Assets/Items/Furniture.png" }, { "LogName": "Load Furniture Front", "Action": "Load", "Target": "Mods/{{ModId}}/FurnitureFront", "FromFile": "Assets/Items/FurnitureFront.png" },
wait whomst is Honey
Also chu im sorry but I won't be uploading the 1.2 update with the Nyapu portraits - they might take a while for permissions and there are a fair few important bug fixes I need to release -
Oh! Honey is gonna be my Apple Orchard NPC :)
ooh
they're lovely I think, I commissioned Pau to make portraits of them
i ask because my NPC is named Honeyfuggle LOL

Honey's name is Honey because... Honey Crisp apple
Look at them <3 I love them <3
crisp 
I really gotta get started on making their sprites but I hhhhhate sprite making
Honey Crisp and Cosmic Crisp (Cosmic is their cat)
What if I named the orchard Crisp Orchard... then I wouldn't have to think too hard about names... I think I will
you and me both 
someone give me a tile action to make 
u click on tile it gives you 10000 qi gem /j
although clicking on a tile and getting currency sounds kinda neat
thats in BETAS already
i dont know the documentation of everything chuuu im just a little guy
Build me a stock market plz
wHEEZE
Oh
is ferngill simple economy too simple for you atra
And I'll need snap implemented
ferngill advanced economy
Not SNAP HAhah
Ferngill expert economy
Ferngill Proficient Economy - not to be confused with Ferngill Intermediate Economy
The stock market needs options, futures, and also margin
idk what a money is
Games top 🚀
Perfect!
does BETAS have a tileaction that resets every day where you can go and click on it and it gives you something? like a once a day tile action? (it probably does, i should probably just go look at what it does to see...)
More serious, tile action that allows travel in only one direction
Like a Pokémon cliff
ah the fabled bridge...
spacecore tile trigger action -> do the thing in a mark as applied -> unapply it at end o day
u can randomize which trigger action you get using a {{Random}}
i looked at how wall paper and flooring work and took 2d6 blunt damage
Oh chue the internet told me
In canada
It is legal to grab a pigeon off the street
And keep it as a pet
Implant in stardew plz
This Web page provides information on the Birds Protected in Canada Under the Migratory Birds Convention Act.
r u sure
No
tile action to change the weather or time
i dunno i actually never thought of what tile actions id want in the game
Ok, so I've definitely loaded the front png in. Do I need to do anything else?
Okay a pigeon isn't migratory
is it not working still?
What about an action that changes your daily luck
ooohh random luck...
maybe one that adds random daily luck?
llike a little lucky statue...
Nope, it's all having collision still
Collision? as in you're walking into it?
Cause that doesn't have to do with the furniture drawing over itself that has to do with what you set the bounding box to
you need a mod to make furniture conditionally not have collision
Ahh ok, I will see about changing the bounding box. I will let you know if it worksss
either furniture framework of this thing i just made https://github.com/Mushymato/MiscMapActionsProperties/blob/main/docs/furniture-properties.md
Wait. So it's not just possible with CP alone? I am trying to add a fence like item and i want the player to be able to walk behind it
vanilla only lets u have rectangle shaped bounding boxes, tho it can be different than the texture source rect
why dont u just add a fence then
Because I don't want it to act like a fence
but ill clarify
I want it to be more like decor
"WizardStudy": "WizardStudy/decor/3 3/3 1/1/999/-1/[LocalizedText Strings\\Furniture:WizardStudy]/46/TileSheets\\wizard_furniture/true/collection_wizard",
u see the 3rd and 4th slash deliminated field?
Yup
3 3 is the texture bounds (in 16px tiles)
3 1 is the collision bounds
so in the game u can walk behind the wizard study
what game won't let u do is like
XOX
where u get to walk through the O
and u also cant make a rug have collision
which is very sad <<
Fr
but now u can 
Ok I'm following now yay haha
My Stardew Foliage mod would be so much better if I could (with just content patcher i dont wanna use more im so laaaaaazy chu)
i believe FF has this feature too
Hmmm I am trying to use a dynamic token for chance and precedence here but CP doesn't like it. Can I just not use a token here? I thought I could use them anywhere.
{ //Location: Secret Woods
"LogName": "Adding Secret Woods fish...",
"Action": "EditData",
"Target": "Data/Locations",
"TargetField": [
"Woods",
"Fish"
],
"Entries": {
"{{ModId}}_LunarSalmon": {
"ItemId": "{{ModId}}_LunarSalmon",
"Condition": "LOCATION_SEASON Here summer fall, WEATHER Here sun",
"Chance": {{LunarSalmonChance}},
"Precedence": {{LunarSalmonPrecedence}}
},
}
can u show us the token
oh
congration u are patient number 4 or so
Ok it's still not working. It will only let me walk to here
can you show us the furniture data,
spawn new one just in case?
Wow I did not understand anything SinZ wrote in that PR lol
oh yeah did you spawn a new one--
aba ur problem is that in current version of content patcher this is no good
"{{ModId}}_LunarSalmon": { "something": "{{token}}" }
Yayyyy
the old furniture items don't do the thing when you update them (I had the same thing happen to me where I had one of my night stands not rotating because i forgot to add the rotations, and then i fixed it and it still wasn't rotating and i was very very confused)
Haha that worked
sinz PR fixes this bug
Thanks all - you're the best
Is this the token in key and value problem?
wait why doesn't that work O:
mmm ... code spaget
when the issue is furniture the answer is more furniture 
Could it be fixed by just removing the modid token then?
I feel like ive made things with tokens like that before and they worked... but maybe its not the same thing and is something unrelated i dunno
maybe 
although hm i thought mod id is fine actually
since it is a invariant token
can u patch export Data/Locations and see what actually got edited in?
at first glance that doesn't look like the issue
yea modid was one thing thats ok right, i just forgor 
the entry key is allowed tokens and is serialized separately from the inner contents.
(also ModId being immutable means it just gets baked in immediately)
It never actually applies the patch because it says it is invalid json
you don't have quotes around Chance and Precedence values
Because it doesn't have quote marks around the token, maybe? But then adding quote marks breaks it in a different way
Because it can't have quote marks because the type is double
cp handles that tho
Without quote marks: https://smapi.io/log/f6d40b0248194717a620629aa4bb4a2b
With quote marks: https://smapi.io/log/908403ffd0c241b0957474902d7992ca
Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Pro, with 27 C# mods and 18 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Pro, with 27 C# mods and 18 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
mi log XD
oh did u want a {{query: }}
idk why u r mult by 1 tho
Whats the value of {{LunarSalmonChance}}
if the contents aint a number you are going to have a problem
The contents are meant to be a number
this is the query
Yes this is on me for not checking how he wrote the tokens 
throw an extra layer of brackets around those
the value of a dynamic token I don't think is implicitly a token
Thank you chu and sinz
i empathize with this
For the Reference issue, the patch needs to be more like
{
"Action": "EditData",
"Target": "{{PATH}}/Data",
"Entries": {
"SimpleDictionary": {
"UntokenisedKey_SimpleDictionary": "{{PATH}}/String",
"{{KEY}}_SimpleDictionary": "{{PATH}}/String"
}
}
}
where the contents of the entry has a key and value both doing tokenized strings that aren't immutable.
if the value is a object/array/etc its fine, the value needs to be a string
and same thing with fields, but needs to be after the two layers of keys first (one to select the entry, second to select the field)
Hm i wonder if i can just spawn a SuspensionBridge
Can someone tell me the default ambient light value I should use for outdoor daytime? I have an event where I alter the ambient light and I'm having trouble changing it back afterwards so that it matches what it looked like at the start.
Is there an advantage/disadvantage to using the builtin SMAPI reflection helpers vs harmony's AccessTools?
Im not sure if I understand how this whole thing works in Stardew. Do I have to save my custom letters to the game, so whenever the game loads back it has those templates stored to load back received letters? Or does it need them only the time I send a letter?
I'm asking this because my mod doesn't have a static list of letters, but they are randomly generated (both ID and content) so I can't write a list of them to store.
Currently I'm using an aassetRequested event in c# to edit an asset but I'm not sure its the correct way.
From what I've seen I do receive a mail but it's completely empty (couldn't check more to maybe the issue is somewhere else, had to go)
The smapi ones get cached i think?
the cache i did see
I don't think there's other meaningful differences
AccessTools is more powerful in general too
I still have no clue how to get a Property's getter with other reflection things weh
honestly I just care to read a protected field right now but the SMAPI cache is probably worth if this gets called every draw tick 
that seems like a reasonable thing to do, I don't know why you're getting a blank mail. I suspect the issue is with the mail format in that case.
A harmony traverse might also do the same thing if i don't keep constructing it over and over
Thanks, I'll try debugg it when I get back, maybe the content gets lost somewhere along the way
SMAPI's has some guard rails on it to not let you reflect into smapi itself
found that out the hard way
using smapi's ReflectionHelper class?
was like the one time I wanted to be good and use the caching stuff, and got bit for using it on smapi
i usually cache reflection stuff myself
if we got a newer .NET version I don't think the cache would even be needed
i don't think that's ever happening
unless SMAPI starts bundling its own .NET runtime
having access to https://learn.microsoft.com/en-us/dotnet/api/system.runtime.compilerservices.unsafeaccessorattribute?view=net-9.0 would be fun, where you just tell the compiler to expose the private shit on your behalf and skip reflection entirely
I think at some point SMAPI should bump the .NET version, smapi already is installed via an installer that could ensure an up to date .NET runtime is installed.
does require some low level reworks to have StardewModdingAPI.exe/dll to be in a different folder to StardewValley.exe and then do the corresponding changes in the asset pipeline and audio stack to still know how to find the Content folder correctly
I had a poc at some point that had it working (except the audiostack)
but I doubt vanilla is ever going above .NET 6 due to dropping compatibility for win7, despite the fact Steam and GOG both already dropped it first
since SMAPI is the actual executable that runs, it doesn't need to be version parity with vanilla and can be a newer version.
a .NET 9 assembly can load a .NET 6 library perfectly fine
One more thing about maps. This map wont have a door, but kind of a cave entry that leads to the npc room. can i still use the lockeddoorwarp property?
If you want to. It might be better to be an Action Warp or even a TouchAction though since presumably you don't want the door sound?
Any thoughts on why _reflectionHelper.GetField<float>(Game1.specialCurrencyDisplay, "currentPosition").GetValue() throws an error for the field not existing? I've got a check before this to make sure Game1.specialCurrencyDisplay isn't null. the SpecialCurrencyDisplay class definitely has this field as per the image. Similar issues existed when I tried to use Harmony traverses. Listing out all the fields on the traverse instance listed fields with names that don't even show up in my decompile 
what reflection concept am I missing?
Yeah, no problem. We can also discuss anything in https://discord.com/channels/137344473976799233/1340345659642875915 if you want input from users
I have an event that uses Chu's mmap framework to create a texture/panoramic effect 'beneath the map' (similar to the summit). This is working wonderfully however that map also has an event take place there, and I'm struggling to find a replacement method for the normal fade option of globalFade/viewport -1000 -1000, since moving the viewport off the map is no longer a black screen but the under-map texture. I also tried changeLocation between the two commands but he snap back from fade is still clearly there. Any ideas?
A dumbass put spaces in the keys of the FF json format, is there a way to format the data model properties so that NewtonsoftJson can parse a json with space in keys to the data model directly? Like writing the same names without spaces or replacing spaces with underscores?
I know I can make a simple JsonConverter that does this, I was just wondering if it was possible to skip it.
Okay so i might have gotten ambitious. Is there a tutorial on items/objects, and how to add buffs to an edible object?
i am making a texture replacement mod for a mod, in the original mod some of the assets are load only when a token set via a configschema is true. for the texture replacement i am using EditImage, so i am wondering would my patch effect the original patch or how would i go about inherting the config schema from the original mod?
Use priority property
is your decompile outdated
i don't see that field in the decompile repo
Oh the config schema you have to apply the same one to your mod I think.
I sure hope not hold on
well then. my decompile appears to be from SEVERAL minor versions ago
thanks 💀
i think this means i should not stay up later
the updated code has a lot more comments which is nice!
silver lining
i'm... surprised i didn't run into issues earlier considering how many harmony patches i've been writing
Huh?
You can use CMCT to read the other mod's config options if you want to but otherwise I think your patch might just fail silently if the thing it's trying to edit doesn't exist.
This being CMCT: https://www.nexusmods.com/stardewvalley/mods/28284
I don't know of a tutorial but adding objects is very straightforward. Just EditData a new entry into Data/Objects. Adding a buff is just a case of use the Buffs field in Data/Objects. https://stardewvalleywiki.com/Modding:Objects
you can use space core's spacechase0.SpaceCore_OnItemEaten trigger action
first mark the item for trigger actions ```json
{
"Action": "EditData",
"Target": "spacechase0.SpaceCore/ObjectExtensionData",
"Entries": {
"{{ModId}}_YOURITEM": { // The object ID//
"UseForTriggerAction": true,
}
},
"When": {
"HasMod": "spacechase0.SpaceCore",
}
},
then make the trigger action ```json
{
"Action": "EditData",
"Target": "Data/TriggerActions",
"When": {
"HasMod": "spacechase0.SpaceCore"
},
"Entries": {
"{{ModId}}_YourItemTrigger": {
"Id": "{{ModId}}_YourItemTrigger",
"Trigger": "spacechase0.SpaceCore_OnItemEaten",
"Condition": "ITEM_CONTEXT_TAG Input food egg_item",
"MarkActionApplied": true,
"Action": "AddBuff 18",
}
}
},
Do you need Spacecore? There's a spot in Data/Objects where you can specify buffs via CP.
oh yeah that works but the space core version you can add multiple actions with the ```json
"Actions":
Mostly I make mods for personal use only, but I just published my 3rd ever mod to Nexus : a 1.6 update of my favourite greenhouse which has been broken for ages - I only just noticed that permissions were open on the original
There was already a secondary patch mod that apparently fixed it, but I figured it was easier to just redo the whole thing.
Plus I wanted to make the cellar its own map.
I'm having an issue making a custom JsonConverter: how do I convert a JObject to the target type without going through the JsonConverter I just wrote?
I made this:
public override object? ReadJson(JsonReader reader, Type objectType, object? existingValue, JsonSerializer serializer)
{
if (reader.TokenType == JsonToken.StartObject)
{
JObject obj = JObject.Load(reader);
JObject new_obj = new();
foreach (JProperty property in obj.Properties())
{
new_obj.Add(property.Name.Replace(" ", null), property.Value);
}
return new_obj.ToObject(objectType);
}
throw new InvalidDataException($"Could not parse Furniture from {reader.Value} at {reader.Path}.");
}
But return new_obj.ToObject(objectType); creates an infinite loop, how do I parse it normally without going through this converter again?
i can't seem to find a way to specify a converter (or none) in any newtonsoft methods
maybe something to do with the Serializer?
Fixed this by switching to JsonConverter<T> and doing:
public override T ReadJson(JsonReader reader, Type objectType, T? existingValue, bool hasExistingValue, JsonSerializer serializer)
{
if (reader.TokenType == JsonToken.StartObject)
{
JObject obj = JObject.Load(reader);
JObject new_obj = new();
foreach (JProperty property in obj.Properties())
{
new_obj.Add(property.Name.Replace(" ", null), property.Value);
}
T result = new();
serializer.Populate(new_obj.CreateReader(), result);
return result;
}
throw new InvalidDataException($"Could not parse Furniture from {reader.Value} at {reader.Path}.");
}
Is Spacechase still modding or are all their mods now being updated by pathos?
I know they stopped for a while, but I vaguely recall they might have come back?
How can I make a Linux Desktop session use the GPU without Steam or any launcher?
Through mono?
I don't think u need anything special but maybe check whatever driver settings you may have
Also without mono I could not get that working in a Docker container with an Nvidia GPU exposed
While I can do nvidia-smi inside that container
!mh if it's not for mod making u can go open a thread here
For help with modding issues, please ask in #1272025932932055121! When asking for assistance there, sharing an error log will help others identify your issue (see https://smapi.io/log for instructions).
That said your setup sounds very niche I don't think im capable of helping
(also stardew is pretty much entirely cpu heavy, integrated graphics does stardew perfectly fine with how idle the gpu will be)
I would still love to see a comparison between MonoGame's supposedly... not great OpenGL renderer and the DirectX one.
but its also how stardew does its draw loop isn't great
particularly none of the asset pipeline edit stuff really interacts with the gpu other than getting in the way going back and forth
Don't really use shapes or shaders much, just a bunch of cpu animated sprites
Is there a point to making where everybody sits in a wedding configurable...? 
for just your custom wedding? i would say no
for all weddings in general? i once started working on a mod that could place wedding guests automatically but i shelved it
Yeah, just mine
I thought it'd be nice (even if very rarely used by anyone), buuut... it's a shitton of additional configs and tokens 😅
yeah it's a ton of work for like a 30-second cutscene
probably difficult (as a user) to reason about the effect the configs would even have without being able to test and replay it, for that matter
(I am planning to make the wedding replay able with debug ebi for people who already married the wizard)
But yeah, nice, less (self imposed) work for me 
So do wedding guests also have the festival positions problem
a slightly different version of it, but yes. however there's also waaaaaaaaaay less demand for custom weddings (or wedding considerations at all) compared to festivals so i decided not to bother
I do hope we'll get more custom weddings in the future
(i technically have one, but it's only barely different from vanilla. i really only converted to it so i could stop overwriting the generic dialogue lines, which i found distasteful when a non-competitive option became available)
Ichor what if mouseverse wedding
tell me more
Special cindersnap wedding where the mouse friends fieval rose r all there
thinkblob
Maybe temporarily turn the farmer into a mouse too for the wedding
/jk
Idk if the mouse friends have back sprites tho
i would really enjoy a wedding playercontrol event, honestly. i should look into that
don't even have to fix the hardcoded lewis thing, since he's the officiant 
I just want to be able to walk around and talk to people
Down with Lewis! Let others be officiants!
Rehearse a speech in my head
let people congratulate you on your wedding while it's happening!
Put my wife's face into the cake ||wait never do that that is so rude why is it the new social media trend||
That would be amazing, ngl
That's a trend...?
this is actually a good idea i'm just fairly sure playercontrol is hardwired to lewis somehow or other so i was joking about not fixing it
I thought it's Haley
i wouldn't be surprised if it's like
if (festival) {
return "Lewis";
}
else if (eventId == haley) {
return "Haley";
}```
Festival logic is separate from the player control command
The playercontrol one iirc wasn't so much hardcoded to Haley as much as the playercontrol objectives were
I thought atra suggestion is actually like
Wedding event goes normally
But that day is also made into passive festival
That's probably the easiest... but would be nice if we could trigger the wedding event ourselves during the passive festival
Cause also... who gets married at 6 in the morning?! 
On another note... is Krobus dancing here?
When does he do that?
the same farmer who goes to sleep in their wedding clothes
Farmer has wedding clothes..? How come I've never seen it 😅
Male farmer does iirc, female farmers are expected to byo
Ah, that's why I've never seen it 
i think 1.6 got rid of male farmer auto tux shirt? but i don't know for sure
anyway it was about having to dress the night before because you don't have a chance the morning of
Isn’t that just his walk cycle?
Nope, that's the bottom row of the sheet
My farmer was "male" and got married in their work clothes (thanks to an event the night before that sent me to bed without my consent!!!)
Just play multiplayer and events can't sleep anymore
I spend way too much time in the menu while the game is alt-tabbed for that lol
I also just noticed Krobus has a non standard sprite size... 
Hmm... I think I'm done, just needs some testing and making screenshots for the mod page 
idk if this is the right place to mention, but Farmer Portraits received an update that a) lets ppl place portrait and background files in the mod's folder, and b) lets you use per-farmer portraits / backgrounds (should work in split-screen as well)
https://www.nexusmods.com/stardewvalley/mods/11398
Nvm... there's still seasonal wedding arch to do 
Hello, I have amnesia and can't remember where the link that explains how to add food buffs is, haha. Could someone please share it with me?
[[Modding:Objects#Data_format]]
Under Edibility
Thanks, I´m going to save the link
Oh... I completely forgot male NPCs have completely different wedding sprite indexes 
Could we have kittens and puppies? Same kinda thing as animals but pets instead?
You wake up to a baby pet event.
it's trivial to add puppies/kittens as pets
if you meant making them able to grow up later, then no
It sounds be possible with c# though
Probably not too bad at all, yeah.
Oh no, now I'm imagining pet evolutions Pokemon style... 4 hearts + 60 days old + prismatic shard when petting...
Yes... please...
well if you're fine with farm animals instead of pets there's a framework for that 
no feeding them items to evolve them yet though
Big brain move would be to build the concept around Pals so that you're technically not borrowing concepts from Pokemon directly
"This is the Pal-inspired mod..."
Eh, you'll get sued either way /lh
call them friends 🤣
Call them yokai
yokai watch peers its head into chat
Also.. I don't think Pals evolve if we're talking Palworld 
With Palworld, don't they evolve by putting a bunch of them into the meat grinder?
In one way, sure 
Not exactly
You can pulp pals of the same type to rank up a pal but it doesn't change them mechanically, just boosts stats
I guess evolution would've been a step too far for them
yeah it's an 'essence condenser'
Now I can't stop imagining Nintendo as a rabid dog breathing down your neck and just waiting for the smallest reason to eat you 
Metamorphosis
Figuring out evolution chains would require critical thinking though which is not pocketpair's strong suit
meanwhile digimon subscribes to the model of "everything evolves into hot humans"
All I know about digimon evolutions is it's "Cute pet -> Hot human -> Big ass dragon" 
Do I spy a chance to complain about the dog > cat > barely clothed angel > pink fluffy dragon line?
Or cyborgs.
… or straight up machines. Looking at you, Gundramon.
Complain? But it makes perfect sense
/lh
hiiyyaaa if anyone even remembers me I just wanna give a heads up that I'm backk and will probably again have lots of questions

I don’t, but questions are always a great way to learn!
You forget guns
May I mention Gundramon again?
Terriermon line, my beloved. The best part of Tamers.
… I admit the gun hands are random. Oh, just for the record, though, I had a Terriermon-colored version of one jacket in my Survive FS pack!
That I scrapped for the full release
What would people want out of a pet framework hm
That pet overhaul isn't already doing at least
make my pets fight with me
Allowing pets to grow up would be pretty cool. Change sprites and/or behavior depending on age and other factors?
Pet Companions
… actually, wasn’t there a mod for that?
Isn't that what pet overhaul already does
i want to level up my dog to become Terathrax the Destroyer (Supersaiyan 2)
idk i have genuinely never seen that mod LMFAO
i just want. to level up my dogy. every time he beats an enemy he gets xp
just like me fr
I think the one you mean isn’t actually called Pet Overhaul? You might be thinking of Pets Enhanced.
This actually seems not super hard to make happen
Ah yeah oop
I think it'd just be a trigger action of some sort to swap the pet's breed and or species
Just had an idea, think Lemmings but Junimos.
dog doesnt need new animations. he can just shoot projectiles from his mouth 🫡
I know the hut kind of already does what I'm thinking
like how in pokemon, scratch doesnt actually make the pokemon move … theres just a graphic to show theyre being scratched
Or like the Earthbound/Mother battle system. Just sound/visual effects.
I have a shedton if dynamic tokens with mine because the (name)? Is great but so many of our NPCs are added later in game.
thinking about a mod that replaces the crit sound effect with the SMAAAAAAASH sound
How do I get the Id of a cooking recipe? CraftingRecipe.cookingRecipes is indexing them by their name, but Game1.player.recipesCooked is indexing by Id.
Figured it out. Just need to instantiate a CraftingRecipe object from the recipe name, then look at CraftingRecipe.itemToProduce property
I come to you with yet another question
Is there a guide anywhere for converting CP mods (specifically farm animal replacements) to Alternative Textures ?
...and how much of a PITA is it to do?
Oh, really? So it will just detect them?
Yup
Huh
They don't have UnlockCondition set?
I don't think they are being added if they're not unlocked with ?. At least it seemed to work with Morgan, Lance and Apples for me
So if for example I have a CP mod with 6 different options for sheep, all of those options will show in AT regardless of which one I pick as my default in te CP mod's config?
you need to specifically add them as Skins to the animal data
Right this is what I thought - seemed too good to be true that it would just magically work
I'll have to look at the AT documentation, I think support for CP mods is new since I last tinkered with it an age ago
You should add them as skins btw
your mod wouldn't need AT for anything, but you can tell its users to use the AT tool to change the sheep's skins yourself
See elle's
RIght - I remember Elle used to have seperate versions for AT
I don't think I know how to do this - is that just an data edit in CP like any other?
Will read up on it 🙂
Oh skin randomisation is supported by default in 1.6
Huh
Didn't realise that. That's cool.
That's really neat
There's also alt purchase type but you should only use that if you want the produce to be different
Awesome 🙂
Now I just need to learn how to deactivate the vanilla default skins
E.g. white vs brown chicken
I don't think u can deactivate the default skins and you probably shouldn't
Yeah makes sense, thanks for the pointers
What you can do is offer choice to replace the base variant
Oh but I don't want them in rotation, so I should also replace them in CP?
right, gotcha
You can do this by editing the Texture field
Yeah 🙂
Perfect, thanks
(or edit image ig but u already got those textures loaded)
I have made a front facing bench that I'm trying to make sittable. What do I put for the draw tiles if I haven't got anything I want in front of the player?
I have a 'firefly' animation working the way I want it in Tiled, but in the game it doesn't look correct. When I created the tileset I set the tile width/height as 48 as I want a single animation that stretches over a 9x9 tile area in the map. Does that just not work for the game, or is there a way to correct/adjust for it?
If that's furniture just don't put anything
Game expects 16x16 tiles always
dang that will make the animation harder to manage if it's possible at all
Usually a bigger animation like that is just several tiles animated in sync, e.g. waterfalls
I’m pretty sure you’ll have to split up the animation yeah
OK thanks
Also mmap has the power to spawn real firefly Critters
You can use that if u don't really care where they are going
does the firefly come with lighting? just wondering
Yeah they r same as the fireflies in the summer
(adding to what chu said, if you happen to be talking about map chairtiles instead, draw layer field is optional and if it's front facing you dont need to include that field)
OK I'll play with the mmap fireflies thanks
But they also move like fireflies so u can't really confine them to 1 9x9 area
They go where they want
Oh, the wiki says it's not optional so I was making up numbers lol
thanks I'm probably OK with the randomness and maybe prefer it
hmm, did you happen to read this tutorial? because there it's noted that only some seating require draw tiles
you only need them for back facing seats pretty much
Ahh no, I was on the Modding:Maps
i recommend taking references from that tutorial instead for chairtiles. more comprehensive imo
I have this error; my files aren’t supposed to be in that location, but I can see them there... I don’t know why they aren’t being recognized.
[Content Patcher] Error loading patch '(CP) Nando's Artisan Goods > Mate': file 'assets\Nando_Recipes\Yerba_Recipes\Mate\objects.json' doesn't exist..
[Content Patcher] Error loading patch '(CP) Nando's Artisan Goods > Mate Shops': file 'assets\Nando_Recipes\Yerba_Recipes\Mate\Shops.json' doesn't exist..
It's much more clear to understand, thanks c:
if you need a finished example for chairtile code i've made, there should be one in Central Station's CP component content.json 
i used an alternate draw tilesheet there
!json can we see your json where you load them please?
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.
of course, a sec
I have done chair tiles before but not a front facing bench. For some reason, it's still not sittable!
oh wait a second, you said your files aren’t supposed to be there? it looks like you have the correct path though
I meant that the error says the files don't exist, but they actually do. I don't know why they aren't being detected. I spent the whole day adding content to the mod without issues, but when I tried to add that last part, it threw an error.
It´s very confused
yeah i’m stumped to be honest. your includes and paths look correct, so i don’t know why it wouldn’t recognize them
My friends always tell me strange things happen to me, haha.
I guess I’ll have to upload it without that content, at least for now.
This is my chair tile data, does it look ok? "LBFurniture/3/4": "1/1/down/bench/-1/-1/false",
It still won't let me sit on the bench I've made. The sittable tile is on 3,4 of LBFurniture
My bench is the exact same size as the front facing pelican town bench
Am I correct that you can't use content patcher to edit the properties of multiple tiles at once?
why wouldnt you be able to
like I have to have a separate editmap section for each tile or no?
this
i think
idk what ur doing tho
Each EditMap takes a list of map tiles
You specify each tile at once yep
wait. Can you only edit chair tiles for furniture loaded into Maps?
Something like this, yes? https://smapi.io/json/content-patcher/d2d78c76944e46d0a101b88a70c8d514
Yes, the game auto-calculates for normal furniture items
Benches have to have type bench and there's some math behind where it sits
Couches have to have type couch, etc
So loading it into "Target": "Mods/{{ModId}}/LBFurniture", is making it so it's not sittable?
I changed the location, renamed the files, and nothing — it still doesn’t detect them. The only thing I can think of is that there might be a limitation in how it handles the files. Maybe there are too many folders or something, but I’ll try to simplify the paths.
oh wait I may have misread, the thing I said is for tileset furniture, not item furniture. I read that the other way around
Name is optional
It should be sittable if the furniture data makes it sittable
Like you should also be adding specific furniture items with a type
To Data/furniture or whatever
Here's more examples
Are you trying to make furniture embedded in a map or are you trying to make furniture items you can hold in inventory, just to be super clear?
The sittability of the first type is defined by ChairTiles (I'm not super familiar with them), the sittability of the second type is auto-calculated by the game for chairs, benches, couches, and generally sittable furniture types in the vanilla game.
Sittability is a great word
WHY is max friendship (1 + maxHearts) * 250 - 1 thats so weird
adding 1 point to that would make it spill over to the next heart level
yes but why isnt it just the max heart level
that makes it exactly 1 point shy of level 11 or 15 or 9, depending
is it possible to make a special item using content patcher?
instead of 1 point less than the next level
Oh cus you can go up to 10.996 heart with a marriage candidate
well when you date someone you can get super close to 9 without dating yet, for example
And then get married
ugh this is weird
or same deal w what Chu said
the idea is that your effort after 10H should count towards progress to 14H later
Also there's friendship decay I guess
making me do a tiny bit of math to tell how many overflow hearts the player has.... grr..
I’m trying to make an item that’s for sale that you can hold in your inventory.
What is the desired specialness?
Yeah then that's not the one that uses chair tiles
Okay, then for sittability I would be looking at the furniture data declaration (should be an EditData on Data/furniture iirc)
There's only certain types out of the 17 or so furniture types that are sittable
plan to make a mod where to go to a location your require the special item, kinda something like the skull key door
DGA used to let you customize the sitting tiles (rip DGA)
I'm not sure if the current frameworks do or not
I think spacecore or calcifer do
That's a wallet item
Yes
Yeah make a power
Special Items & Powers as of 1.6
I would look at SpaceCore, Calcifer, and Furniture Framework yeah — assuming the vanilla sit tiles aren't satisfactory, which they totally might be
cant make an actual SpecialItem through any means other than C# constructing one directly
The vanilla sit tiles should work 100% fine for stuff that's very similar to the existing vanilla sizes
Well what I'm confused by is that I've made custom chairs before and they work great. The only difference with this one is that I'm loading it from a different tilesheet
Is this a chair or an arm chair
That really shouldn't be the issue, so I'm not sure what's wrong either
Do you want to post the jsons with the furniture info?
It's an outdoor bench and this is the info: "LBFurniture/3/4": "1/1/down/bench/-1/-1/false",
what makes it outdoor? or is that just a descriptor?
also why is there slashes in the name?
I guess there's nothing stopping that but it seems weird
There's no tilesheet specified
also a good point
It's the same size as the bench in pelican town
Go copy a vanilla bench furniture perhaps
by default it would pull from default furniture tilesheet
And it's just a descriptor
The tilesheet it's pulling from is LBFurniture
No it's not
Isn't that what the key is?
"{{ModId}}_Bonsai1": "{{ModId}}_Bonsai1/decor/1 2/1 1/1/1000/-1/[LocalizedText Strings\\Furniture:{{ModId}}_Bonsai1.Name]/0/Mods\\{{ModId}}\\bonsai_trees" this is what a furniture data looks like in my mod
No the key is the item id
No, the key is the furntiure name!!
This is my furniture data: "8BitAlien.Lilybrook_Bench": "Bench/other/2 2/2 1/1/1000/2/{{i18n:Lilybrook.Bench.Name}}/33/Mods\\8BitAlien.Lilybrook\\LBFurniture",
"FurnitureUniqueID": "FurnitureUniqueID/type/bounding box/collision box/rotations/price/placement location/translation/locations in spritesheet/spritesheet name" at a glance
You named your Bench Bench and it has type other
The first one is probbaly fine but bad practice
The second is the culprit
I've already added it as furniture, I'm now trying to get it to be sittable
the 2nd field there, where it says other needs to be a sittable type of furniture
Editing the chair tiles
try making it bench
Chair tiles won't do anything here
Ok that makes it sittable!! So now there's a new problem lol. Is this related to draw tiles?
Yeah you have too much on Front in that orientation
the bit that is drawing on front is from the Front sheet
in the forward orientation you don't want any Front stuff
But i still want the player to be able to walk behind it though - is that possible?
And after seeing the sitting - I need to redraw my bench to be bigger lol
so having that upper part on Front is a problem when you try to sit on the bench
I don't think you need any Front for the player to walk behind furniture
the way the game gets around this with the sittable bench in town is by not putting it on Front, and placing shrubs to block access to the back so you can't walk behind the bench and ruin the illusion
in case you ever wondered why there are bushes there in front of the saloon, that's why
It mainly comes up when it's rotated to have the back face player
Map tile chairs is whole other system not relevant fo this discussion
Ahh ok that's helpful to know. So basically, it's not possible aaaa
anyway, gotta go byebye
Byeee
No it is possible and game literally does it

Check any vanilla bench/couch furniture
Ichortower is talking about map tiles
when you talk about "furniture", it can mean either, which is confusing
Ahh ok. If I remove the front part though, it will have weird collision on the top that will make it look like the player is standing on top of it
Have you tried?
Nope, but it was weird with my fence I was making yesterday. Will try it now, seeing as it's a bench, it might work differently?
Yay, it works!
I had a type set as other yesterday and it wouldn't let me walk behind it. Guess setting the type to bench fixes it
Your fence's issue is the bounding box
It's a whole other Problem
Pls don't conflate these things
Yep it was. I'm new to adding furniture to the game and only ever made AT furniture packs before. At least I'm trying to learn lol
And that's y i am emphasize on the actual issue so u don't end up with misconception
