#making-mods-general
1 messages · Page 421 of 1
does that even work in vanilla? the box drawn seems too small for some of the localizations
Ahh I do appreciate the thought, but I can't promise that I'll use it. I think there is already a moss-type framework as well already, but I have to be a bit choosy with what frameworks my mods end up depending on since the audience is decently large
I personally wouldn't bother for the forseeable future while timelines are so undefined.
you dont want to make your mod dependent on it , and then just not release it for 2 years potentially
Cool. Ill continue just keeping having a look every now and again so.
for context the 1.6 modding alpha was open for a bit over 2 years prior to its eventual release
and while past doesn't always predict the future, its the best baseline for setting expectations
im so excited for non string furniture
I'm tempted to work on a backport mod, but am nervous of doing it, and then it changing again and thus maintaining an out of data view of the backported functionality
backporting the event stuff would be interesting
Yeah I really like all the event stuff. looks way nicer. The event test stuff also looks super useful.
ooh yeah these look nice too
on the one hand yeah i know it could be quite a while until 1.7 but on the other hand i dread releasing a mod and then having to fix all the stuff for it
some of the event validator stuff I want to incorporate into my debugger mod as I should be able to get that hooked up so it can run and show its results inside vscode
unfortunately it comes in like two years and I ended up doing my 5 quickquestion event in the mean time
ooo interesting
tbh I might be fine with my debugger mod just tying itself to the hips of 1.7 early as I have no real plans of releasing it any time soon anyway
and as I want to work on CP migrations / smapi rewriters anyway, having mod authors delibrately running on 1.7 to use the debugger also tests the CP migration tools
how about i just take 2 years to finish my expansion... tbh, it'll probably take me somewhere around that time anyways. i don't see an issue with writing it for 1.7 off the bat, time-wise, anways.
Expansions aren't super fast things to make
though I want to get some of the profiler updates out prior to condemming Debugger to being unreleasable
and I need to find at least 1 other performance optimization to put into SpeedySolutions so I have an excuse to ship an update with the correct default config value
If you think about it like that, you're signing yourself up for a two year marathon. What if you need to release an alpha or beta for player feedback, or release part of it as a standalone, are you going to make players update to 1.7 just to play with your mod?
tbh, i don't really want to release it for players anways...
well, up to you
imo it's best to stick to 1.6 if only because 1.7 doesn't even have the vaguest hint of a release date
live in the moment
yeah, you're right. it would be a pain for me to even test if i made it for 1.7
i'd do whatever you like without even thinking about the next update, and when 1.7.15 is out and all the dust's settled you can start looking at migrating whatever isn't already handled by CP
There doesnt seem to be any real breaking changes yet
the main breaking changes are moving all the dialogue around, every events rewritten and a bunch of assets have completely changed data structure
but all in all i'd say the #1 reason to develop for 1.6 is because absolutely everybody else is (save for the one person who just turned up using 1.5.6
), so all the frameworks are made for 1.6, and all the documentation is written for 1.6
unfortunately i just found a blog with the most incredible and adorable hakama so my evening is ruined
never left 😌
(does pants hell have different circles? what circle are you in now)
yeah, two, the legs
colour-coordinated non-conforming culturally significant pants circle
Three if you count the waist
those are a lot of Cs
you see the problem here 




I DO
now how the fuck do i draw them
the classic blunder is trying to make menswear and them immediately the world of womens fashion buries it like a mudslide, never to be seen again
I've already gone back to rewrite several parts of my mods after learning better ways to do things so if I have to rewrite stuff for 1.7 it won't be different
Yeah I do get a kick out of refactoring stuff to work better or do it the "proper" way. I always feel like I'm doing things a bit of a hacky way the first time.
hm somehow i hoped pants might be drawn above shirts so i could have a matching belt at chest height. turns out pants are drawn so low your eyes go over them
Solution is a shirt item that contains the top of the pants and the belt maybe
Like the vanilla overalls shirts
sadly means i need a gorillion shirts haha
Is this a real number
naturally.
gorilla x 1 million
idk what the numerical value of one gorilla is but it sure is a lot
actually there might be nothing stopping me from just making the kimono equivalent of a crop-top
Now ur cookin with fire
naturally 😌
If you ever want inspo, I remember there was a Japanese clothes brand that was doing really cool fusion stuff 
https://kimonokien.jp/en/ This wasn't the one I saw but maaan their designs are stunning
you can't do this to me...
Get design-creeped

This was a fun rabbithole to go down for scope creeping ngl
India has a massive fusion fashion scene and I love seeing how other countries do it
Maybe...
Just maybe...
I shall give clothes a crack.
you MAY want to start with something simpler than patterned flowing pants lol
Tops
And if I have to do lower wear, I'll do skirts first
Pants will happen once I ascend to a higher plane of consciousness
ive been scrolling through that website with the cute hakama
why can't clothes be real
one day i hope someone makes clothes real so people dont have to see my butt. one day
https://www.peonyandlotus.co.uk/product-page/white-floral-embroidered-square-cut-crop
God, forget putting this in Stardew, I want this top irl
Would look so good with high waisted jeans
ah yes. the arms draw above the pants.
Oops
how do I go about adding a custom catalouge/shop
Do you want a catalogue or a shop?
They work the same way in one aspect but totally differently in others, so they don't use the same instructions
give us an example for both
because I need an implementation for a shop that sells a new furniture catalouge
https://smapi.io/log/e00b9093459c4d45867bf30b47700189
https://smapi.io/json/none/b89ce0a918b64a87b72b5b56df6eead5
https://smapi.io/json/content-patcher/eb4e5e0c1f914e6e98851b8fb0982336
did I do something wrong here? my test save wont show me the lost item shop
or do I need more conditions than just having met the lost item being seen and not under my possession for the lostitemshop to appear?
Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on Microsoft Windows NT 10.0.19045.0, with 28 C# mods and 6 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
Furniture catalogue will need Calcifer, Furniture Framework, MiscMapActionsProperties, or Spacecore and the instructions vary depending on which one you use, so you can check their documentation.
is that just coded with json and conpatch
also where would I put the contribution to the portrait gen
I think the wiki says it shows up when you lose one of the items that will appear there. Try putting one in your inventory and then dropping it?
In addition to mentioning it when you're sharing art in making-mods-art, you'd put it in your mod page when publishing the mod (with a link to the creator).
It is json, yes. And yes it's Content Patcher, but one of those four other mods will also be needed for the catalogue.
neato, I'm most familiar with spacecore
and how do I end up making a sprite sheet
ah thanks!
Find a vanilla one that most closely matches what you want to do, make a copy of it, start editing
!unpack Take a look at the game files for the format, but it's just a canvas on aseprite/your art program of choice with the different frames for the NPC animations laid out next to each other
Follow this guide to unpack the game's content files in order to see and explore how the game data is structured.
It's helpful when making your own mods, or just to learn about how the game works!
already unpacked the x-whatever they are files
Yep, so peek in characters and look at the character spritesheets as a guide for how to lay out your own NPC's spritesheet
I daresay tessa looks relatively close to abby?
Yep
Use Abigail's spritesheet as a reference then
That's honestly the easiest way to keep the body style consistent with vanilla and saves you a bit of work
looking at the three currently designed portraits (ily pathoschild you make my life easy)
i daresay she looks hella like abby
(Pathos is amazing but as far as I know he doesn't draw lol)
If he could draw we should all be afraid
He could just be the entire Stardew modding community on his own

thank god he can't draw. don't you dare wish the water out of his well of time and knowledge
(Although all the marriage candidates except Abby would be sorely neglected
)
Immersive Abigail, Romanceable Abigail Redux, Abigail Expanded, Sweeter than Amethyst
my brain 
Realistic Rock-eater Abigail
I need another monster but it's 8:20
These are the order of the first six emotions (0 is the first): https://stardewvalleywiki.com/Modding:Dialogue#Portrait_commands
yall should I make wildcorn a thing? or just use the regular corn crop for the overgrown cornfields
You should perhaps try to get a working map in game before worrying too much about making custom assets for it
his confuses me
this
It can suck to do a lot of work and then realise you can't implement it
nevermind I just forgot to read on
i see. we don't actually get to use the top 16x23 pixels on the pants sheet. ok.
maybe with a matching invisible shirt
ok yeah invisible shirt is good. unfortunately the pants still suck (and the arms clip)
do we apreciate long crafting trees
What?
as in, craft this item to make a machine
Okay. I'm sorry but I have my own things to work on actually
if you want user opinions it's often better to ask in #modded-stardew , we're just the technical side
Yep, not a massive amount of actual playing happening in this channel lol
I had a brain fart and really thought the topic was Long (length) crafting trees. Long trees. Just crafted in ur inventory
Looong loooong trees
Oh butt I'm going to need two includes after all
Erm, can someone please help me figure out how ConfigSchema works? It shows up in the menu config tab but its blank. I'm trying to add options that let players turn different accessories like hats and shades on or off. Tw: I don't know what I'm doing
https://smapi.io/json/none/a3024074ae384fb5a4ba9adbf9a8339a
Where did you get this format from?
have you read the Content Patcher documentation at all?
Hey it's Lily's mod
No sadly 💔🥀 erm
Oki thankyuu
I dont know where you got your format from, but if its chatgpt or anything similar, please dont
But yeah Type is not a thing.
Alright that's noted, sorry y'all had to read that abomination lmao
does polyamory sweet have a tag that can be used in CP packs to see if any of the spouses or roommates are one specific one?
Wdym one of specific one?
if any spouse or roommate is: Sebastian
Oh, can you not just Spouse: Sebastian
mhm I was told that would result in false positives or positive falses (?)
Omg thankyuu so much for this, it helped
Oh, i guess. There's no way to guarantee the player has his spouse room
and the thing is with c# I can handle the checking for poly safety
but if I want dynamicness that can adapt to different mods I should rather rely on CP
(or expand this 1000 lines of cool mess I made)
Re: polysweet cp tags, honestly im not sure if it does all that
Maybe best to just look in it? 🤔
Like totally blank? Rip
yes lmao
Idk how easy ot hard it would be to poke around inside the contents of the mod itself to look for anything
but maybe I can fumble something together that checks my c# part with like many conditions
I guess I will do that when I have the mental capacity (it is so many files)
Np, you can always come ask if you dont know where to look for info on something
It should work as a condition? Methinks
well the vanillacode asks for this syntax:
this.HasNpcSpouseOrRoommate() || this.lastSpouseRoom != this.owner?.spouse)
Hm
Maybe look at custom spouse rooms/polysweet rooms and poke around to see how they figure out which spouse rooms to spawn if youre going c#
Or maybe just...prioritise compat with a different polyam mod...-cough-
This is true there's three of them but i feel like. maybe theyre similar enough that the same "does this person have sebastian amongst their spouses?" Question would work for all of them
Completely unfounded belief
not sure which one to lose, from lemon, orange, apricot, and yuzu. one of them has to go. this is ridiculous
Why does one have to go 🥺 why cant we keep all of them
do i look like i want to make another pant
Yes
Wouldnt it just be recoloring the same pant?
I want to keep them all, but if I had to let one go it would be the bottom left one.
unfortunately these idiot things had patterned designs on them before i redrew them
Delet orange cus it looks like son goku
That's what makes it great lol
sorry venus ur kimono is bad and goes in the shredder
we just don't know.
Cute!
Does it work?
Extending the pants
Do high waisted pants work?
Pants are the devil
they do work, but you need a shirt that's transparent up to that point, since shirts are drawn above pants
there's not many
crop top tiem, ye
there's a few in this mod but god knows why anyone would wear them
because cute, surely
technically pants are drawn above shirts when you've passed out so i guess you can just die in high waisted pants

oh I dont use any and so I have no clue of them and their differences
I was just asked if I could make it work
{{Relationship:Npc}}: Married
mhm but that would return true if the farmhand was married to sebastian as well
but I think maybe the problem was after all not at all caused by my mod (I thought I have looked at every possible check) but maybe just on (CP) Lively Frog Tank 
I have a bit of an.. interesting question..Im working on a mod currently. It had a former name that the maps were under, but that internal name had changed and the maps coding did too. Ive tried removing the former name versions. And it seemed to break all maps entirely. Is there a reason and fix for that?
No. It wouldn't
Current player is the default
Ive already redone the code with the newer versions internal name
Do you have a log?
Lemme grab it!
!log You can paste it in the linked website and then share the link with us
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.
so would the editmap patch happen then if the current player would be visiting the house of another player that is married to sebastian?
mhmm my mod was doing fine all the time
it was just a non-optimal frogtank hider that i was trying to have working while also adding compat with my mod

I'm having a problem adding an NPC warp from the bus stop to a custom location and I'm not sure why. Pierre does successfully leave his apartment in the morning and makes it to town, but he makes it as far as the bus stop in the evening and then doesn't use the NPC warp back to his house. Spacecore is showing the "could not find route" scheduler message. I also tried changing the location of the warp just in case SVE added one in the same spot but no dice
here's the json (with the map patch on line 153): https://smapi.io/json/none/73c86f84eb5f49f7ac756d1b82123d91
and the log: https://smapi.io/log/b6223d17bbf844e1b29b7e9dba6316a1
Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on Unix 6.16.4.107, with 16 C# mods and 4 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
Nexus I stg why are you adament on breaking! 
Does it work if you move the warp to a different tile?
okay, I just retested without SVE and the map patch is working without it
no, it didn't but I only moved it a tile back
Also this is not connected but I recommend that you start using the {{ModId}} token
for the location, you mean?
Try moving it to a significantly different place
okay!
For everything. Your map names, event names, location names. None of them are unique right now.
Oh, okay! I thought that was only recommended for custom NPCs. I'll go ahead and do that
SVE might load a completely new bus stop map, and if your mod is editing before SVE does it might be removing your warp entirely. I can't check for you because I'm on mobile but it might be worth doing a patch export of the map if changing the tile doesn't help, so you can check the map properties to see if your NPC warp is there
Nope, it's literally every key/id in the game except i18n (there are some that matter less than others but there's no downside to using it everywhere outside i18n)
Okay I'll make those changes, and check the patch export. Thank you for the help!
Ahhh if SVE does change the bus stop warps, they will use the touch action warp, if you've replaced the tile with a new one, the property will be removed
I had a similar issue with making pavements, SVE warps just stopped working until I put my tile on Back2 instead of Back
Hmm, yeah I'll have to see. I have to head out in a second so I'm gonna check it out when I return. I thought the addNPCwarp function only added to, not replaced any existing ones (unless it was on the same tile) but there may be another one there
It's not an sve warp that's broken
Ohh okay sorry, I just woke up so I think I've misunderstood
SVE is breaking kspace's mod not the other way around
If it is that SVE loads their bus stop map you'd just have to add a false dependency or a late priority to your patch so your mod loads after theirs and then yours will edit their map
Sorry, another question so I can clarify. When I load the maps I would set the target as {{ModId}}_PierreApartment (or whichever map name) and I could keep my file names the same, correct?
The same way as I did with the character sprites?
nope, the text seems bugged for multiple vanilla translations, but most notably in korean
Maps should be loaded to Maps/{{ModId}}_PierreApartment
then I better do fix that
Okay thank you!
if an item couldn't locate the given sprite will it show as error image?
Yes the file name can be whatever you want, the game doesn't see that
anyone know where Fashion sense get this part of their UI? i guess its one of the ones on cursor but I cannot figure out how its drqawn or which it is because it somehow makes my UI recolor for it look weird
cuz this is how it looks for me
Try replacing cursors with a file of the same size that's just entirely bright green to confirm it's coming from there and then if it is make each quarter a different colour to find out which quarter of the sheet has it and so on, getting smaller and smaller until you find it.
🤔
Think as in you don't know what I mean?
holy balls
i found it by sheer coincidence
oh but to answer your question, that emote was more of a "guess this means a lot of time digging" questioning self kinda way but i guess i had pure luck just now as i was staring at all the frame-ish elements
I'm interested to know where it was, I'm putting a bit of a compilation together of the asset paths and location of things for recolour, so it would be quite useful to add to the compilation
from reading the source code the side bar is created by stacking copies of this section on top of each other (phone photo warning)
Good to know! thank you
How are tortillas
yes
To that I raise you, Why are tortillas
cromulent
Oh wow I just saw tortierre
Breakfast burritos are the shit, like I cannot think of anything better
my obsession with skong has spared me from making a tortilla mod and i’m not sure if i’m relieved or disappointed
I keep on seeing skong spoilers on tiktok, it looks SO GOOD
Ive been playing. Its definitely harder but SO good
i am not playing it yet, please keep skong info and spoilers out of mmg for the terminally online like me thank you
Spoilers 100% should not be stated in here agreed
Heyyy I'm struggling to add forage on my map. Can someone help me? I have the items and the map ready, how can I place them?
Can someone tell me where is the tmx file for the top mine floor? Not in the mines, but the one you enter before descending with the ladder or the elevator.
mine.tmx
False dependency fixed it! Thank you again for the help! And I also added the {{ModId}} tokens so now that's all good, too. I appreciate the heads up!
Do I have to add it on tiled or on my content.json file? (Sorry for the dumbass question, I'm new into modding)
content.json
Ok tysmmmmm
Hi guys.
Did anybody can help me? I try to do a mod that change the sprite of the seeds from other mods, but it doesn't work(4 days i try anything, didn't find a solution). I don't have any error in json (https://smapi.io/json/none/a194168699554dd4bb974e497a768b36), but it doesn't change a thing.
I suppose the code to change the sprite (lines 1097 to 1116, the last bit) is wrong, but why?
I mean, the UniqueID for Atelier Goods is "Wildflour.AtelierGoods", so the path should be " Mods/Wildflour.AtelierGoods/Assets/Objects "(the name for the file with all the sprites is "Objects")...
Did anybody know what i did wrong, and could explain it a little? Because i did the sprite for a lots of mods, and i want to code them all ^^'
it's not how it works
Is it just me or is there an absurd amount of tortilla-related mods releasing recently
it is a good idea to come asking for help!
the mod will load the files in a path mentioned in the mod itself
No, the path is not that. The texture path can be anything, so you have to read the mod files. Mods\\Wildflour.AtelierGoods\\Objects is what is listed in the mod files under the seed entries
you need to use that specific path to change assets
The actual full name of the path is completely unrelated to where the files are in the mod folders
the path of the mod folder doesn't matter, what matters is the in game path (the way it's loaded in content pipeline)
So, i need to check the original mod code to find the right path?
Yes
definitely just you. i havent seen a single tortilla recently (i made the 'remove the tortillas' one)
man, wish i remembered how i can check in a mods code if i can target their asset for retex needs
Essentially the author decides the name of the texture/"path". If flour wanted, she could make her items have the texture of Wildflour.AtelierGoods_AllOfMyObjects or even Mods/Flour_items or anything. So its best to check the object data files--you can also use lookup anything with debug fields on on the items ingame
The textures are loaded by the Data/textures.json file, you'll find the asset path in there for a veriety of the textures in the mod
been considering making a userscript that hides all tortilla-related mods ngl
You can patch summary but for ui stuff it possibly never got loaded to content
or, hear me out: you could also make a tortilla mod
Debug mode can tell you what mod the interface is from, but unfortuantly not where the UI elements are from, If the source is available I tend to look through that for C# mods but other times it's not and it makes it a tad harder
i do have the source but I know jackshit bout C#. guess i jsut gonna do the drag and drop option until i see someone maybe target it(if its possible)
What mod is it? I could have a look for you as I'll probably need to add it for mine anyway
well, im adding a few so id have to look at msot if the source is available but rn its quality smash
I think I found quality smash? lemmie have a gander through my list
i did find the asset mentioned but idk what any of the code means
Iirc quality smash is replace only
it would be great if in ge4neral for any UI retexture maker we could have a list or something for compat stuff like this
dang
so it goes onto the list with fashion sense
I check in Atelier Goods mod, in the texture.json, i find the good path i think (Mods/Wildflour.AtelierGoods/Objects), i add it to my mod, but, no change at all.
That's part of my aim, compiling it all together into one location bc finding these is so difficult at times
yeah and the whole guessing if its replace only or not...would save a lot of time if there was a list
I'm unfamiliar with replace only, overlay doesn't work on some things? that's quite annoying
replace only is basically drag n drop to replace the png inside the mod
big downside is you gotta do it every time all those mods update
The reason is that sometimes people didn't load their ui textures to content
Ohhh gotcha
It's impossible to editimage in that case
so it wouldve been great if we could just target..
I assumed they all were added to content
as simple as drag n drop sounds its a big hassle when you got, like, 20+ mods to do it for
Guys but if i want to make a new custom map in stardew, using Tiled, do I have to unpack the XNB files with a program, or can I just get those PNGs and the file exported from the internet? I didn’t want to use another program on my PC, maybe there is something else?
Also why is fashion sense in the drag and drop catagory? Unless theres an odd sub menu I havent found, fashion sense works automatically
what do you mean
u can intergrate it with code iirc

You said this, i thought you meant fashion sense was only a drago and drop, but it does get loaded to content
see? now we are back to it would be great to have a list or wiki page for this whole thing
in fact it does it automatically
whats the exact thing to target then? ive always replaced the assets and seen other UI retex do the same
what do you mean automatically
where do you put the reccolored assets
It takes the UI elements from cursors or other vanilla Assets
im talking about the FS specific icons
You should unpack it
!unpack
Follow this guide to unpack the game's content files in order to see and explore how the game data is structured.
It's helpful when making your own mods, or just to learn about how the game works!
Ohhh okay gotcha, sorry I missunderstood, I thought you meant the other stuff not the icons, my mistake
yeah i always jsut mean the mods specific custom stuff, not what they use from vanilla
oh wait yeah
they don't load those
honestly as long as the drag-in part isn't named wrong
could maybe see if u can ask PE about it 
It would be good if Stardrop could handle drop in replacements, given it already reads the manifest files
actually since it's a c# mod i don't think it can load things that can be edited by CP
nah i make it so the folder structure stays so you can drag n drop and replace
it can if they go through content, like the Swim mod for instance
Content Patcher itself is a C# mod that loads things that can be edited by CP
what does swim mod even have UI wise? scarlett suggested it for a compat edit but i stared at it for a minute and was like huh
Oxygen bar, that's like it I think
ohh
well yeah but it can't edit things not added by it, no?
why not?
were the vanilla files added by content patcher?
Anything Content Patcher can do, another C# mod can do too
the question is proper load order / false dependencies
it edits assets and any mod can touch any asset in the pipeline
so can you edit fashion sense ui elements with CP?
if you feel like smashing SMAPI's door open with a sledgehammer you can even edit internal assets if you really wanted
not if FS doesn't put them in the pipeline
Does hitting publish ever get easier? I feel like I've tested everything a bunch, I've reread every event like a gazillion times, everything seems to be in order and yet it's so nerve wracking haha
C# basically has it's own equivalent of the InternalAssetKey token


whats, like, the pro in not loading it into the pipeline and making it hard for retexturesob
just curious
It's more work and if you didnt know about it
Minor perf stuff but usually just not knowing that you can
wouldn't need to worry about invalidation or anything either
ahhh
release a dozen tiny mods and eventually youll be like "eh I'll test it later, I'm sure soemone will tell me if it crashes the game"
i know with FTM i can check cp conditions. If i wanted to check if a certain token returned a specific value, is it doable with it?
its a random token so i'm not sure if it is doable
hm, i dont see any oxygen bar in the swim mod, hm....ill skip it for now
Honestly, there might be times when a mod author intentionally doesn't load it into the content pipeline because they don't want it to be changed by anyone else, but that's fairly rare. It's usually just not knowing that they can/should.
your asset name seems correct. try running patch summary Mods/Wildflour.AtelierGoods/Objects and see if your patches show up
mhm
oh a good example of a mod that DOES do that i think is tractor
both the garage and the tractor are CP-able and AT-able
(using {{InternalAssetKey}} tokens creates the same effect in CP mods where the content becomes unable to be targeted by other patches)
the trick to making a UI that's compatible with other things is not to do either option and just use vanilla UI bits and bobs instead /lh
Okay it's done!
Which is why Loading a texture is preferable to using InternalAssetKey
https://www.nexusmods.com/stardewvalley/mods/37296
Fates entwine when long-time rivals Pierre and Morris meet after a late night argument.
Across the Aisle adds 14 rival heart events for these two quarreling clerks. This mod follows Pierre as he navigates co-parenting of an adult child, co-ownership of a business, and, of course, love after divorce.
Patch summary? i'm sorry, i don't know what it means ><
may i showcase this?
Yes please! I'd really appreciate it 
paste that command into the smapi console and post what it returns
Target: FlyingTNT.Swim/OxygenBar, asset location: Swim Mod Folder/assets/O2Bar.png, it's the continuation of swim mod by Flying TNT (https://www.nexusmods.com/stardewvalley/mods/23169)
wait a goddamn minute
i was looking at erinthes because it was said to have the same update from flyingtntn but the asset folder looks different...
I think erinthe merged flyingtnt's code to the Swim github page, but didn't update the swim nexus page as flyingtnt also has a nexus page for swim mod continued
well, whatev the reason, i now have the needed asset xD
Thank you GitHub copilot for spitting out a nexus ID for a mod that isn't published, now please stay uninstalled I beg
vscode: do u wanna use copilot?
me: no
no
I mean for me it does, that just always means I forgot something
“publishing isn’t so bad! —oh”
Funnily enough, even publishing an update still gives me the jitters
the only part that hasnt gotten easier for me is making the mod page itself which i still loathe with every fiber of my being
"release mod? no mod page!! only release!!"
My changelog stating “fixes bugs and notranslations” while an obscure notranslation smirks at the hidden corners of my published update
one day I will blackmail a content modder into making my mod pages for me 😌 probably claire
At one point I got into the headspace of "there's no way I don't have bugs, so I'd always have to upload a hotfix anyway" and after that releasing a mod gets easier.
Consider: You have nothing against me 
would bribes or flattery work claire
consider: that is patently false
-# perhaps 
guess I either did something wrong or it cant be targetted...boo
i would reduce it to only some of the fibers of my being if the mod description editor weren't utter trash
I like releasing on gh cus i just upload no thinking required
don't have to wait for the flaky virus tool, CDN is faster, readme is probably already written and uses markdown, etc.
FTM's "CPConditions" is generally the same as "When" in a CP pack, so things like contains or checking specific values might handle it, depending on your use case? e.g.
"CPConditions": {
"Random: a, b, c": "a",
"HasFlag": "your_flag_here",
"HasFlag |contains=your_flag_here": "true"
},
thanks! this would include the synced key for the random?
i will do some tests and see if it works for my use cases!
as far as I know, those should work the same, yeah
FTM passes the whole thing to CP for it to handle directly
funnily enough none of this stuff is the stuff that bothers me about the mod page i just hate having to describe what my mod does and add pictures lmao
I have very little motivation to make a pretty mod page for myself but I could be convinced to write something up for other people xD
Someday i'll put effort into my mod page(s)
hey I wanted to ask if anyone knows where in the code does Stardew Valley expanded register GMCM entries?
or if anyone knows who I can ask about this :p
Hey everyone! I was having in issue and got some help about a week ago and we couldn't get the issue fixed, I was hoping that someone who is on now might be able to help.
The Issue: Broken opening scene when walking onto a custom farm from the bus station
probably just by having a ConfigSchema in its CP component? I don't see it using GMCM in the C# part at a glance, anyway
(their public repo is here, though not necessarily up to date)
https://github.com/FlashShifter/StardewValleyExpanded
it defo can, (ignore the mana bar infront), this is the snippet for it in my recolour:
{
"Action": "EditImage",
"Target": "FlyingTNT.Swim/OxygenBar",
"PatchMode": "Overlay",
"FromFile": "Compat/{{Target}}.png",
"When": {
"HasMod |contains= FlyingTNT.Swim": true
}
},
hmmm, musve a typo or something then
Can you walk through normally
yes everything works to my knowledge, it is just the cutscene that seems broken. If need be I can totally stream it.
do you have any idea how they are able to include the gmcm entry key in the i18n file?
Are the warp coordinates in the intro event the same as your farm warp coordinates?
for example 'HarderBuildingConstruction' is able to use the translated version and show the correct localized one instead of the default english one
the content patcher docs describe what you need to put in your i18n for the config schema
what makes me more confused is that they don't do this with all of their entries 😭
i forget if its in the translation docs or the config docs
not personally, but judging by CP's documentation here, you could add the missing keys to the CP pack's i18n files with the same format and its GMCM menu should use them:
https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide/config.md#translations
I'm not sure if it'll use keys that are only in a translation and not default, but it might
I just tested, and no I warp directly on the tile that warps the play off the farm to the bus stop, but when out of the cutscene the warp brings me a couple of tiles in from the edge of the farm
the event warps the farmer to 79 17 on the Farm map, so confirm that the tile located there is a walkable space on your custom map
Hello, a quick question about Content Patcher. Am I correct to think that it's not possible to patch an image with EditImage with an image already loaded by a Load instruction (using the content key instead of the image path) ?
Currently that is not possible
Ok, thanks !
Ok I am making a custom map so my cords are a little different, but the y cords are the same. Will that change anything? Also if I remove that warp trigger doesn't that remove the capability to warp off of the farm on that 1 tile?
Is your custom farm's exit warp at 79 17?
If so, you will want to move that if possible (80 17, one tile to the right should be sufficient, but without knowing how your custom farm is laid out, I don't know if that's ideal or not for your case.)
I have it at 117 17, and 1 tile to the right, want me to hop in a call rq to share myscreen rq?
what is located on your map at 79 17?
I'm on a short work break, so I can't really jump in a call rn
that would be this tile
Your other option would be to edit the event so that the warp is different, but that's not a great solution for cross-compatibility in case anyone else edits the intro event.
Interesting that the screencap you showed earlier shows you at the edge of your map even when that's nowhere near the warp tile, does the game do something in the background to change those coords, I wonder?
Here is a better photo I have set the green is the cords you provided blue is the cords I have set
(also just for a quick check, there are no invisible tiles on the edge of your map on the Building Layer near your blue circle?)
and no I have all of the cord properties set for all of the entry points and let me check real quick on the layers
Robin warps in one tile to the left of the player, so it would be something to do with that exact spot where the player comes in.
Ok I just confirmed that there are no invisible tiles in those spots only in the back layer, and the tile data I have set in those 8 spots are npc barriers and no spawns
I really doubt that weed on the original event's warp tile matters at all, since the game appears to be automatically placing you at the right edge of the map instead, but it wouldn't hurt to remove it just to check, I guess.
Your bar thingy here looks like the malwarebytes logo, but pixelated
Worth a shot 😂 brb to check
I didn't reliase it did until now, It's just an A and a V overlayed, (it also looks like the symbol for an alembic from archaic alchemy)
if it does actually work, I have an idea as to why, but it would be silly.
.... I'm a little bit curious about something. (Maybe because i'm bad at codding right now? lol).
I had designed a lots of seeds bags, but i was, just like... Could i just change the original sprites sheets and adding my own design inside?
A little like nyapu did, with the portrait. He(she?) did a mod for the vanilla game, and after that, just some "folders" for the mods.
Can i do that with item? (i mean... i know i can. But is it a good idea?)
It would be like, 100 time more simple for me T^T
Nope that didn't fix it, here is a screenshot of my map properties in case you want to see those, also the blue square in the previous screen shot is cords 117 17 for reference
119 15 BusStop 11 23
119 18 BusStop 11 24
119 16 BusStop 11 23
119 17 BusStop 11 23
80 119 Forest 68 0
81 119 Forest 68 0
82 119 Forest 68 0
80 0 Backwoods 14 39
81 0 Backwoods 14 39
74 5 FarmCave 8 11
so I checked back in the chat logs and someone had a similar issue back in May where their farmer was apparently warping in 2 tiles over from where they were expected to be
Just got debugging purposes, can you delete the warps on 80?
Sorry, I mean rather this
Just delete one row of warp
ok so make that 118 17 (1 tile to the right)? Is that what you mean?
Yes
I can totally do that give me a moment to test
nope my character does still warp in at the same spot during the cutscene but does warp 1 tile to the right when out of the cutscene now
In case it's the 2 tiles over thing: could you try making sure there are 2 walkable tiles to the right of your BusStopEntry coords?
I'm opening up the standard farm to check a thing, LOL
Should I remove the tiledata as well just for testing purposes?
it shouldn't matter
okay, so both the standard and meadowlands map have a warp set for the bus stop that is one tile off-screen
and the BusStopEntry field is the exact tile on the right at the visible edge of the screen
oh ok so 120 17 then?
On Meadowlands map:
Warp: 100 22 BusStop 11 23```
and 99 22 is an actual tile and 100 22 is one to the right of that, off the map limit
So instead of the extra 2 tiles to the right on your map, go back to your original map size without the bonus tiles, and then set your warps accordingly
In case it matters, the only NPCBarrier tile is on the left-most column of them, like so:
But all of those are NoSpawn All tiles
So the bus stop warp should always be 1 tile off the map, not the last tile visible on the map?
For consistency with vanilla maps, always do zone warps 1 off the map
Seems like that's the best way to avoid problems, yes
(we should probably note that on a page or tutorial somewhere if it isn't already)
because otherwise you may find inadvertant issue with things like zoning in on a horse. Or tractor. etc
I didn't see anything on the Modding:Maps page immediately, but I could also have just missed it
Yup that totally did the trick
, does that also apply to the forest, backwoods, and cave?
Since it's never come up before, I would hazard a guess that the Farm's hardcoding/changing of the coords is why you ran into an issue and it isn't likely to repeat elsewhere
Yes. Generally speaking.
The other maps tend to respect the exact coordinates provided, which should already be spaced to avoid issues, afaik?
When it's possible, it won't hurt to do it that way
Sometimes the map design doesn't lend to it
even if your warp is on the left edge of the map you can do -1
but there are exceptions to every rule
Cool! Thanks everyone! I really appreciate the help!
The wiki says that any [prismatic jelly] not handed to the Wizard will disappear once the order is complete or expired. I can't find where this is handled in the code, if anyone has any ideas..
the special order has the :
"ItemToRemoveOnEnd": "876",
so while i can't help with code itself you may be able to find where the special order code is doing that
when it's called or whatever
the mod page is the only thing that matters. if i could leave my clothes mod at several giant cute pictures of the clothes instead of actually drawing the clothes i'd be happy, but no. the page needs a mod for some godforsaken reason
i still have to redraw the hair. this world is a prison
Blueberry can I turn into a sailor senshi yet
how high are your expectations
I expect 2 stock clips of the henshin and my one super effective attack
you can wear their pants
Powerful statement
You can but no it's not a good idea, imo. It makes more work for the user and increases the chance that they'll make mistakes. I'd rather personally help you get a CP mod working than encourage you to make a replacer mod, so if you want to send me a zip of your mod I can help you get it working?
(to add here nyapu did it cus she doesn't know how to use CP and the docs are all in english)
(and I believe is working with someone on/already has worked with someone on making a content patcher version since then?)
Yeah Dolphin has been helping her get as much into CP as possible
how does the game determine proximity to land for fishing? is it tiles on the buildings layer, or is it specific to sand/dirt, etc?
how do i go about learning to make a sdv mod, there is another mod which im using but to use it is such a nuicance because i have to constantly make small adjustments to the config file, open the game, then close it again. repeat like 100 times
i want to make a mod which can allow you to actually adjust the parts of the config with visuals in-game
instead of having to constantly restart it
!startmodding
Making mods can be broadly divided into two categories:
- Content packs are formatted text files, and don't need any programming knowledge. They can add/edit NPCs, maps, new items, shops, and more. To get started, see the list of framework mods, the wiki tutorial for Content Patcher, and there might be relevant guides on the tutorial wiki.
- C# mods use programming code to change fundamental game mechanics. See getting started with C# modding.
Usually it’s easier to start with making content packs, since you don't need to learn programming.
thanks
But this you can already do with gmcm
!GMCM
Generic Mod Config Menu (or GMCM https://www.nexusmods.com/stardewvalley/mods/5098) adds the option to edit some, but not all, mod configs from either the title screen or the options page in a save. It also has a special screen to edit keybinds for all mods with GMCM integration.
The presence of the gear it adds to the title screen is not a method for checking whether mods are installed, only whether GMCM is installed.
oh yea i have that but for some reason the mod im using doesnt have an ingame gmcm menu
Eh, if it's C# mod then it might not have it
Ahh they haven't defined a config schema then
worst part is the mod doesnt have any real alternatives that i can use
(or like forsy said)
It's worth noting that some mods can't or shouldn't have their config settings changed mid game, so it's possible depending on what change you are trying to implement, that trying to change it midgame will break things.
You’d need to:
- download the source code
- add GMCM support to the C# (not too hard, you might be able to use wrens code gen thing? But also not trivial)
- recompile mod
I think it's buildings tiles but you can probably check your map using chu's fishing zones tool
Had to find it sorry https://github.com/Mushymato/StardewMods/releases/tag/FishZones-0.3.1
thanks google.
google: but is it compatible with--
Just want to check before I look at mods incase I've got it wrong, helper.Events.Content.AssetRequested this is used to load assets into the game via the content pipeline right? (So they can be modified by a content pack)
Guys any guide of how to make a custom npc compatible with the they stay with you mod?
yeah, this is the example the wiki has. although i believe it's usually preferred/easier to have a dual mod where you add new content with CP instead (don't ask me why, someone else will know)
That's what I was going off, just wanted to make sure I understood it before delving the depths of the deep C(#)
Thank you!
Anyone?
looking inside the files for they stay with you, there appears to be a file called CustomYourNPC.json. i would look into how that works
b.Draw isn't loading via content pipeline is it? it's just directly drawing onto the map I'm thinking
Context:
public static void drawBiggerBackpack(SpriteBatch b) {
b.Draw(bigBackpack, Game1.GlobalToLocal(new Vector2 (456f, 1088f)), new Rectangle(0, 0, 12, 14), Color.White, 0.0f, Vector2.Zero, Game1.pixelZoom, SpriteEffects.None, (float)(19.25 * Game1.tileSize / 10000.0));
}
draw itself is just the literal "draw onto the screen" process, but the variable bigBackpack is the texture it's using there, which may or may not have been loaded through the pipeline
if you see something like bigBackpack = Game1.content.Load(...) earlier/elsewhere, it used the pipeline
Ahh okay, I don't think it is, This is the bigBackpack definition bigBackpack = Helper.ModContent.Load<Texture2D>("backpack.png");, but unlike JunimoNote.png there is no onAssetRequest or path at which the png is loaded to
ah, yeah, I think ModContent loads directly from mod folders without making them targetable to other mods
(though I'm not 100% sure, I've never ended up using it)
Can i even code it inside my mod? Like using a when hasmod?
They Stay With You is a mod that uses Trinket Tinker to add “trinkets” that spawn characters that look like those NPCs
i have no idea, sorry
Gotcha, thank you for your help! the C# osmosis is working, albiet slowly
iirc they stay with you have a gmcm option to just let you enter whatever custom npc id
but u can make your own if u want
If a texture is loaded via content pipline into a private readonly variable (private readonly Texture2D _textBoxTexture;) does that mean it can't be changed by a content pack? or is the readonly N/A when loaded by the game?
what matters is where that Texture2D comes from
if it's from Game1.content.Load<Texture2D>("AssetNameHere") then you can totally use that asset name
Okay perfect thank you!
its not preferred or easier for any technical reason, its completely fine to do anything and everything in the content pipeline from within your own C# mod. people just often say its easier to do it in CP instead because usually they will end up wanting to take advantage of tokens and When conditions and whatnot, and you might as well use CP instead of reinventing the wheel. but if you don't care about any of the CP specific features, there's no difference if you just do it in your C#
i see, good to know 
imo editing images and map suck enough in C# that i prefer not to do it 
only benefit of doing it inside CP is you have the safety blanket of CP protecting you from future game updates with its migrations
as for editing data it depends on how much
when you have enough stuff u need to put in content it is just quicker to do it in cp cus it's all boilerplate
regarding editing images its arguably just as much work, CP isn't editing the image either its just calling the SMAPI methods for editor.ExtendImage() and editor.PatchImage
to be fair this does rely on Pathos being around in the future too, which all else being equal if you think you have the same chances of being around in the future to update it yourself, the benefit is lost
that said most people dont have the same chances of being around as Pathos i think
yea but i gotta load the raw data n stuff too
If pathos leaves stardew we have bigger problems then just CP migrations not being made
i think if pathos was somehow not around someone would pick up cp maint i volunteer sinz
I would be doing PRs for the runtime migrations regardless
while my exact implementation didn't end up shipping for 1.6, my short novel on the learnings on my attempts were used for pathos's variant
also some breaking changes might not even get migration rewriters
CP's biggest convenience (for me) is editing custom assets without needing DLL references or a godly mountain of reflection
imo CP's biggest convienience for me is entirely just JSON, it takes so much less effort to read
I'm suprised it took me this long to realise who spacechase0 on nexus is.... It's only just clicked because of the github profile pic
yeah she changed her username a long time ago but since all the mods and stuff are under the old username it never changed
i don't think it's that surprising. casey doesn't use that name anymore
Ahh that makes a lot more sense, thankfully I was able to change mine before I had anything major on it, it's such a pain to update it when theres stuff relying on it
Yeah but you can use json from c# too. Just not for the fancier stuff
True that's a good point, but CP doesn't need any extra C# stuff from me relating to parsing JSON
I frequently just dump data entries in a json file and then autoprefix them into the dictionary
If I made it myself it 100% would thats for sure, but pathos is fantastic and made CP so I we wouldn't have to
True, but if I'm already using c# and just need to do a few small edits, cp just seems like extra work
weirdly enough if i have to edit something in C# i rather do it in the code where i have intellisence stuff in case i forgor field
I would use a separate cp component only if the content edits are significant and/or make good use of tokens
Thats's why I use the the schema, not exactly intellisence but close enough for my purposes
Pffft, seeing how these C# mods I'm looking through do it, I agree MASSIVELY
i have one C# map patch. it's a bit gnarly but it lets me selectively change particular tiles in an area, which was helpful for doing compatibility without having to make several different tmx files
I'm so tempted to start PRing some mods just so they load assets through content and not directly from files, it's only a few thankfully
The two cardinal sins of c# modding are skipping the content pipeline and not having gmcm support
I'm glad Happy Home Designer has both
Thanks
Question for those of you who use i18n regularly: do you use {{ModId}} in your i18n keys?
Profiler violates the second, and Speedy Solutions partially violates the first
no, i18n keys are already mod-scoped
awesome, I thought they were but I couldn't remember
also you cant use the token in the key anyway
I remembered vaguely there being an issue with tokens in i18n
but couldn't remember what the issue was exactly
you can use tokens in the value, just not the key/name of the i18n
Profiler's config is less options and more retooling though isn't it?
Also what does speedy solutions do that involves loading from mod files directly?
Its config, its variable tuning for how aggressive the logs should go, I deliberately dont have GMCM because I don't want to deal with those variables changing mid-run
and speedy solutions has its own cache for Data/AudioChanges so it can do diffs on the asset and ignores Invalidation
Well, that's not really what I meant
and Shared Spaces also heavily uses GetInternalAssetName for any texture it needed
Okay that is genuinely evil
if you want to replace the texture go edit the asset and point the texture to something else
don't need gmcm support if your mod has no configs 
Sometimes no config is just easier
for some of my menu mods i been thinking of moving the config out of gmcm
i personally think people should recycle their configs
need a bool config? reflect into another mod that has one and use that
sorry my configs go straight into the landfill
saddest short stories
I feel like I could cause a lot of explosions if I did that to SMAPI's config for paranoid mode or its harmony disabling mode
What controls where a letter shows up in the letter collections menu? They seem to be chronological, but for some reason, one of the letters is showing up "early" - instead of the most recent letter, it's showing up in the first row between older letters.
I'm a bit confused, is there multiple ways of loading assets via the content pipeline? i.e. snippet from SmartBuilding
if (e.NameWithoutLocale.IsEquivalentTo("Mods/SmartBuilding/ToolButtons"))
e.LoadFromModFile<Texture2D>("assets/Buttons.png", AssetLoadPriority.Low);
This seems like it would do the same as .content.Load<Texture2D> right?
well you cant just Load something from nowhere. if you want to call Game1.content.Load() on an asset, it needs to exist
putting that in the AssetRequested event is basically the same as a Content Patcher Load action to supply the base file
public void LoadFromModFile<TAsset>(string relativePath, AssetLoadPriority priority)
where TAsset : notnull
{
IModMetadata mod = this.GetMod();
this.LoadOperations.Add(
new AssetLoadOperation(
Mod: mod,
OnBehalfOf: null,
Priority: priority,
GetData: _ => mod.Mod!.Helper.ModContent.Load<TAsset>(relativePath)
)
);
}
Ahh okay, I've just been seeing layed out differently. but that's because it's split up and not together like that, gotcha, I understand now
you wont see it like that snippet SinZ sent, thats just the SMAPI internals
tl;dr
e.LoadFromModFile<Texture2D>("assets/Buttons.png", AssetLoadPriority.Low);
is syntatic sugar for
e.LoadFrom(() => Helper.ModContent.Load<Texture2D>("assets/Buttons.png"), AssetLoadPriority.Low);
Oh sorry by "not together like that" I meant the snippet from Smart Building, my fault I didn't clarify properly
Good to know, thank you both for clearing that up for me
OMG THANK TOU
guys is it possible to make my npc change outfits when entering a place like the mines? Can i add a dynamic token for this?
There's a built-in system for doing that called Variants
For changes that happen dynamically you would use AltVariants
With a condition to check being in the mines
Can CP mod make new page or only show certain config when other mods r present with GMCM? Basically conditional config
Nope
It's one of the things the content modders yearn for
(Along with the foreach and the asset forwarding)
thank you again!
I suppose I could make different mod folder just for the compatch
Love wins...
Oh thought it's modded farmer 💀
what layer do NPC shadows draw on? is it behind buildings?
@light jasper I want to apologize for completely missing your PR to add custom tree names to cornucopia from months ago. I have no idea how I missed it, maybe I saw it and forgot or maybe didnt get notified as im not the owner of the git repo
yep, immediately behind buildings. the exact order is background -> back -> water -> floor -> shadows -> buildings -> crabpots -> front -> ...
Its harder than i thought, im going insane
i now pronounce you wife and pants
colour picking these is actually way too addictive. but also anything to avoid drawing the next ~228 pants frames
Blueb stronk 
You got this!
it's hard enough to make legs and pleats look good when they're standing still
i learned very quickly that those nice pleats on the front can't actually be done in Pants because i only have about 8 pixels wide to work with
i kind of scuffed it for an npc a while ago (a year? more? wtf) but it doesn't work for players from the size and scale differences etc
honestly i'd rather make a dozen pairs of pants than one npc
and at this point i probably have lol

(CLAAAAAAAAAAAAIRE!!!!)
Hi random question cause Idk where else to ask, does anyone know if Aimon111 is still active as a modder? I need their permission to add a fix for their mod to make it compatible with cabins (I fixed it for me but obviously im not gonna share it with others)
If it’s just for personal use and not for distribution, i think it’s generally ok 
(aimon isn’t very active on this server tho, no)
you can still ping or dm them tho
What 6480 said 
Ok ty!
Well the thing is, a lot of people have stated they’re having that issue and had to stop using it for that specific reason, so I wanted to like…help🤷🏻♀️
Im not a modder😂
But I really REALLY was persistent on having it 
So i figured it out
Oh, I see. That’s really nice of you. Like 6480 said, you can try dming or pinging them in any case 
@wicked gulch can you pls dm me to let me know? or I would be more than happy to tell you what I did so you can update the mod
i'd rather make a dozen of npc than one pair of pants (unless just recolor counts 😄 )
go on then. prove it 😌
i don't even know how many i have exactly on VMV now
technically I already have, twice
cold wind. light rain. open window. dusk at spring. dire straits album. 180 more pants frames to go. and we've got nothing but time 😌
tonight i will draw the pants kissing frame with hakama in 12 flavours.
Braver than any US marine
Which album 👀
oh, just their alchemy live set. it's really unbeatable
Good choice 
I'm making my own large eggs mod and I'm running into an issue where changing the sprite for the vanilla void egg causes existing void egg items in the world to have their sprites blanked out. Is there a way to work around this?
{
"Action": "EditData",
"Target": "Data/Objects",
"When": { "HasFlag |contains=EggUpgradesEnabled": true },
"Fields": {
"305": {
"SpriteIndex": 6,
"Texture": "Mods/Sunsketchx/Eggitems",
}
}
},```
I'm not sure why the sprite for existing ones gets blanked out, I'd expect it to keep the old sprite at the very least
dont change the texture just use editimage to patch the original image
the reason it gets blanked out is because the texture path changes but the spriteindex is not changed in existing objects
so it is still the old spriteindex of the void egg on your new custom texture
to change vanilla sprites EditImage is the best approach unless you really need a different method for a very specific reason
You can even EditImage using your current custom texture as the source image
I didn't think of that at all. That works, thanks
np
Why would a received mail appear "out of order" in the mail collection menu? Does it have to do with when the house is upgraded?
what order are you expecting?
Order received? It seems to be mostly chronological, but the first letter (from my mod) after each upgrade appears "earlier" in the menu than expected.
For most of the letters, if I check the menu right after receiving them, they are the last letter.
if i'm in the right place, this is how the game adds them to the collections page:
Dictionary<string, string> mail = DataLoader.Mail(Game1.content);
foreach (string s in Game1.player.mailReceived)
{
if (mail.TryGetValue(s, out var rawText))
{
// add to List to prepare for draw```
so it seems to be in the order the HashSet gives them up for iterating
I understood some of that. How does HashSet work?
it's sort of like a hash table (constant time access), but it can't contain duplicate values (it's a set), so the items you add also serve as the keys
or maybe they just are the keys and the values aren't useful, i'm not clear on the specifics because it's part of System.Collections(.Generic)
The behavior in game seems to be typically that a letter will appear as the most recent one after your read it. So the values of the keys probably shouldn't matter?
the short answer is the sort order is not your fault, but also it's not really in your control
That's what I was afraid of XD
unless you patch the collections page code to change how it iterates
nods Definitely beyond the scope of this mod
or maybe there's some deep magic incantation to change the HashSet sort order when using foreach but that is likely to cause unrelated problems so i would not advise looking for that
Yeah, I'll be sticking with what I've got and putting a note on the mod page. It's a little bit unfortunate, since I'm including hints in the letters that people may want to reference later, and it will be hard to find a letter if it's not 'in order'. But I think I've encountered this occasionally even in vanilla, so it's definitely beyond my control right now.
"Key features of HashSet: It does not maintain any order of elements, meaning you cannot predict in which order elements will be returned." It DOES sound like a challenge though
Yes
oh yeah, finding a particular letter in that menu is a nightmare
I'll put that on my list of things to look into after I learn C# ^_^;
For Reasons TM the net hash set and dictionaries do not guarantee order BUT
"here, 72 identical icons and you only have hover tooltips! good luck!"
Inserting happens at the end
Erinthe made a mod that has letter backgrounds and stuff
And deleting an entry makes the order fun
(Fwiw, this is inherently a property of hash sets)
Sounds like a very challenging challenge indeed
This might be a good talk aboit it
Abstract
Python's dictionaries are stunningly good. Over the years, many great ideas have combined together to produce the modern implementation in Python 3.6. This fun talk is given by Raymond Hettinger, the Python core developer responsible for the set implementation and who designed the compact-and-ordered dict implemented in CPython for Pyth...
I say "might" because I haven't watched it, but python dictionaries preserve insertion order
Tbf a spacecore guidebook (see example from s&s)
May work better
You can also use BETAS to show the letter now
Which means u can have letters attached to some real item
Hmm
This is for Broken Farmhouse, which is pretty much finished (I discovered the out-of-order letter thing in some final testing) so I think I'll leave it as-is and give folks other resources on the mod page. But I appreciate the idea, @lucid iron - that might be interesting for a future mod
not sure if thats the talk im thinking of but I remember a talk or tweet from him regarding ordereddict
might have been https://x.com/raymondh/status/850102884972675072 I think?
looks like in practice the order of the hashset is assured to be the insertion order, until something is removed from it. A simple hack would be to call HashSet.TrimExcess() before adding a new letter, as that clear the freeList in the HashSet. Should (famous last word) be simple to patch it in with Harmony if anyone really want to do it.
that completely remove any benefits from using a HashSet, but it's not like adding a letter every 10 minutes is really performance critical
the game checks against the contents of that set very often, so it having the benefits of a hashset is a fairly critical performance upgrade from pre-1.6 days
Isn't the actual problem just UI side (want to sort the letters in collections page)
Ha, yes, I’m talking specifically of the write perf that that patch would totally destroy
Took the nuclear approach
Is the time of reception stored with the mail somehow ?
so im tryna fix the kitchen error smapi gives:
System.ArgumentException: Can't apply image patch because the source image is smaller than the source area. (Parameter 'source')
at StardewModdingAPI.Framework.Content.AssetDataForImage.PatchImage(IRawTextureData source, Nullable`1 sourceArea, Nullable`1 targetArea, PatchMode patchMode) in E:\source\_Stardew\SMAPI\src\SMAPI\Framework\Content\AssetDataForImage.cs:line 42
at ContentPatcher.Framework.Patches.EditImagePatch.Edit[T](IAssetData asset) in E:\source\_Stardew\Mods.Pathoschild\ContentPatcher\Framework\Patches\EditImagePatch.cs:line 166
at ContentPatcher.Framework.PatchManager.ApplyEdits[T](ICollection`1 patches, IAssetData asset) in E:\source\_Stardew\Mods.Pathoschild\ContentPatcher\Framework\PatchManager.cs:line 632
[09:46:34 TRACE SMAPI] Content Patcher edited Maps/farmhouse_tiles (for the 'Rilakkuma Kitchen' content pack).```
looked at the code, and this is what it says
https://smapi.io/json/content-patcher/673adfe969094149a39a6695853f5a35
wow thats huge
can i collapse that paragraph somehow..
!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.
you can paste- yeah
Post it as link
chu is speed
log says issue is with the 4th one
How big is the source image?
Mod in question if it helps:
https://www.nexusmods.com/stardewvalley/mods/14471
192 x 320
"Y": 304,
"Width": 48,
"Height": 48
you can't read outside of the image
it's trying to get an image from 304 - 368, which is higher than the height of 320
oohh
is the og mod like that
yea
is it, hmm.
what's the point in having "Target": "farmhouse_tiles, Maps/farmhouse_tiles",?
i think it is atleast, i dont remember messing w the code itself or images 
yeah i downloaded to check
anyways it is an older mod so im not surprised its having some hiccups
won't a single patch on overlay just solve these problems
hasnt been updated since 2022 but works perfectly fine, aside from that patch LOLL
hmm maybe
A lot of older mods that edited (and extended) farmhouse_tiles broke in the 1.6 update, when some unused files were removed.
ahhh
Would anyone mind testing a "friendly hutch slimes" mod for me? I've only got 1 save with a slime hutch to test with. One or two slimes will still occasionally lunge at you, but they can't do any damage and they go back to minding their own business after.
I already reached out to the mod author to see if they would allow me to update the mod
They havent modded since 2023
(nor logged in)
its an adorable mod tho thats for sure
actually should be fine
Or if anyone can share some unmodded saves with a slime hutch I'd appreciate it!
did farmhouse_tiles used to be smaller
i mean unless im missing something their patch would never have worked and if it would've it'd just delete those tiles
maybe this code is from another kitchen mod that did edit those
-# also unrelated but the fridge animation sprites are in craftables, right? because i need to make the sprites match the mod since it doesnt have those
ye
alr thank u
i can send my unmodded save to you if you want
pretty much
Oh man. I know what im doing today
I can poke around the nuances. I just want to automate my Daytiles, nighttiles, and light
Because remembering the exact format everytime is tedious
hmmmm i wonder if this would work..
i added the open sprites BUT i also changed the 48s in the 4th patch to be 16
oh my god it worked YAAY
no more red errors + new fridge
damn that looks adorable
It's going to be pretty quick to set up saves for a slime hutch. debug build "Slime Hutch" will build one to the right of where the farmer is standing, then you can use CJB Item Spawner to get yourself some slime eggs and put them in the incubators. Then debug dayupdate 4 to make it act like have days have passed and hopefully that will hatch them - but if that doesn't work you can just do debug sleep four times in a row.
Thank you very much!
I only had a modded save to work with. Lily sent me hers which was super nice. I'll try this too just to be thorough!
If for some reason you can't debug build the slime hutch you can debug ws robin to warp both yourself and robin to her shop and access her build menu that way, and just cheat the money.
I make new saves for almost everything that I test so I know a lot of quick ways to get stuff done lol
Idk why I didn't think of debug commands. Thank you again!
I'm going to steal your fridge.
Give me it, now.
I double dog dare you
triple dog
Its so adorable
Is there a way to see in game which tilesheet a specific tile is being pulled from? I'm having a really hard time locating a couple.
On a map? Or in what context?
I'm away from my PC right now but I believe there's a config setting in Lookup Anything that let's you see all of a tile's information, including the tilesheet
Yeah if it's a map it's easy as
In game I should specify
Yeah. There's a few tiles in town that arent being recolored by my mod and I can't figure out why.
Then Lookup Anything with tile lookups turned on is what you want
I didnt know it had that feature, thank you!
It's an incredibly invaluable mod for any kind of modmaking work
just heard about the mod yesterday and now everybody talks about it. and they say i'm mot the center of the universe
oh, that's just baader-meinhof
literally how 6 7 became a meme
and the meme makes no sense
let me have my moment
Ik this is wrong D: but I tried everything and the forage still won't appear. I used BETAS to create a specific token for my spring forage. Sorry for the dumb question, is my first time coding something big like this.
Can some1 help me?
Like, Idk what to do, genuinely.
I tried everything
where did you get this syntax from?
forage is governed by a location's entry in Locations data iirc, this is just Loading the tmx file
Idk I'm confused I don't even know what I'm doing anymore
and then the forage stuff is random extra stuff that can't do anything because it's just stuffed in there
here's a wiki page that might help with understanding what i just said : https://stardewvalleywiki.com/Modding:Location_data
okay, where did you look that said to add forage in though? just so we have a frame of reference and can help you be less confused
Hello, sorry for the late respond, my internet die yesterday.
I would ne really grateful to get some help, when my connection will get back. Can i send you a message in a few days? We can discuss what i can do to make the better possible path for my project. (Maybe it's a little too big for me ahah)
Yes sure you can DM me when you're ready. Sorry your internet died!
I tried to add the forage stuff looking at the wiki, adding it directly on the map load thingy. Then it didn't work, so I tried to do it separately by doing action editmap and then it still didn't work. I also have the codes for the items itselves and it worked, I just can't put them on the map.
The point is, I searched everywhere and I wasn't able to find specifically where to put. I might have read something wrong bc all the wikis are in English and it's not my first language (Also I'm diagnosed with certain thingies that influence my line of thinking and understanding.).
You're not supposed to add it to the map. You need to add it to your Data/Locations EditData patch like the wiki says.
Look for Data/Locations in your unpacked Content folder
That is what you need to be editing, using an EditData patch
Thank you OJZ.
I'll try this, and I'll try not to get lost like before
I'll keep this in mind!
Thank youuuuuuu
It might help you if you find your Data/Locations EditData patch in your json and share it with us before you try adding anything to it so we can tell you that it's the right place or help you find the right place if you didn't pick the right thing. To save you more wasted effort.
Like this for now?
I'll try to add on my {{ModId}}_Town for now
Maybe show a bit more of it, since two lines is a bit hard to be certain it's the right one
I'm rewriting it
Again
For the 20th time AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
No, you can't have a FromFile field in an EditData patch
I'll change it
As long as you learned something the first 19 times, that's ok
Do you have a backup from before you started trying to add the forage?
Yes
only 20 times? try my 1000 times rewrite
I'm learning to use BETAS and to hate myself
Go back to that, if your location was working in game with it
!json this website is a nice way to send jsons
I think it's bc I'm still in the beginning, I'll reach 1000 times soon 
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.
My location was working perfectly, warps, outside and stuff. The only thing is adding forage on the game
So yea
Adding like, on the map
I mean
Then definitely go back to that because all you need to do to get the forage working is add it to what you already had for Data/Locations.
Just to make it super clear, loading your TMX with your FromFile and editing the data in Data/Locations are two separate patches and you have to do both for what you are trying to do
Yes, you do not add forage by touching anything to do with the map at all, despite how strange that seems
That always weirded me out too
Do you guys think that leaving the forage for later is a good idea?
Since I'm stuck there?
Couldn't FTM add forage around town too?
TECHNICALLY speaking
Since you can specify maps
Yes but that won't be easier for them
If you think you'll feel better after taking a break to work on something else, that's always a good idea. If you do more json work on another part of your mod it might also help you understand more and make it easier to do the forage when you come back to it.
I'll do this then! I'll work on something else for now.
I often find that even doing stuff that isn't modding or even sleeping helps me when I'm stuck because my brain keeps working on it in the background and it can give me new ideas or understanding.
I'll take a break on that, tysmmmmm
if i use the pathos nuget package in vs do i need to edit the cproj?
you need to have the package reference in the csproj, yes.
you can do it by hand, or (more likely) VS does it for you when you do something in the menus about it
"AllowValues": "0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14", is converted to a slider in GMCM which would normally be great but is there a way to force it back to a dropdown?
If this is via CP I think there isn’t much flexibility
GMCM does everything automated when it reads configs from CP
Fair enough. I can work around it, would have just simplified things.
well "zero, one, two, three, four, five, six, seven, eight, nine, ten, eleven, twelve, thirteen, fourteen" is always an option
/lh obv
yeah, i'm going to have to rename stuff. i was just avoiding it to keep moving assets between cp and at implementation simple.
they're already named with texture_ i can just add that to the variables 🤦♀️ i need more coffee
add one option that isn't a number or isn't contiguous with the others should do it, i think
I switched the fromfile from texture_{{style}} to {{style}} and changed the values to preappend texture_ and that worked a charm. the values all get translated by the i18n now (which is why i care at all). before you had to look at a picture and reference the numbers, so this should make it a lot more user friendly!
is there a tool to semi automate converting a mod to support i18n?
i would love it if there was
ooo
my recommendation is to put the commands like %additem outside of i18n though, because the behavior can be kind of weird
oh wait it automatically did! that’s awesome
i don’t think it used to
hell yeah
came too late for my seasonal farmer looks mod T_T (or at least i learned too late)
if its doing something unexpected or broken with something you put in it, Nomori may be interested in knowing
(make sure you're using the right i18n category tho)
the amount at once doesnt matter
i'd still ask nomori
if you did it wrong, they'll know best how to do it right
and if you did it right and there's a bug, they'll want to fix it
that makes sense
it may not be a mod per se but its still a tool an author made and bug reports are often appreciated!
anyone know if they are cool with a highlight?
a ping?
ive pinged Nomori before and their dn doesnt say anythin about it, and they were around as of like, 30min ago, so you're probably fine
@whole raptor if you've got a moment i maybe am having an issue with your site (or user error)
i would just say what the error is in your message, though
does that still happen if you do it one item at a time?
(also btw, it’s recommended that name and the key of the entry match)
(they should absolutely 100% match)
does it work if you change Displayname in your json to DisplayName with a capital N
nah, same thing
ive got nothin then
i wonder if it doesn’t like the order
Can you post the string you're trying to convert? I'll try and see what's wrong
oh nomori’s here yay
here's the whole file
if that's ok
thanks for your time
(anyone else feel free to review for problems too etc)
the mail stuff worked fine as dialog, thankfully
the object data is what is hasslin me
Oh, yeah... I guess the check is done in a dumb way
well if that's all it is that's easy enough. mildly tedious but i'll live.
i guess displayname and description need to be like that
I can fix it in like... 10 minutes, so you won't have to switch anything
nah i think the way you have it is the standard practice i just somehow reversed them
oh, rad, thank you
Or maybe not that quick, I thought it was just the check that's done in order for those 2, but the conversion itself is the same 
inchresting
no rush, i'll try it again later tonight or somethin
There are a looot of extremely dumb implementation in this converter, I'm sometimes surprised how it works as well as it does 😅
you could probably make it order the fields correctly if you cared to i suppose
but effort prob
thats the problem with "make it work then make it better"
sometimes we like to conveniently """forget""" the make it better part 
(i am very guilty of this all around my docs/tutorials too)


