#making-mods-general
1 messages · Page 455 of 1
looks like 150
Where can I find the "Good night, dear" line that your spouse says in a speech balloon while in bed at night? Doesn't seem to be in any files in /Data or /Strings
i dont think they say anything like that in vanilla
Are you sure? I thought it was part of the additional 1.6 spouse interactions like making them jump when you interact with them from behind
There's also a line akin to something like "Aren't you coming to bed, dear?"
I did experience these in a modded game but I do not think my dialogue mods would go out of the way to add C# interactions like that
never heard of those before the only stuff I know is the general marriage dialogue
Strings/1_6_Strings:Spouse_Goodnight
10% chance per night
Awesome, thank you
🤔 huh the more you know
I saw those lines and I played like an avg of 2 hours per month smh my head
pst hey @gentle rose real quick; the animated portraits mod-i should make all the frames on the same sheet right? not as seperate files?
I'm actually kinda curious how the sheet looks like for animated portraits 
was gonna start redoing mine then realized i should prob do it right lmao
(although 64 pixels is tiny so i wanna make mine bigger like 192 but i dunno if thatll mess it up....?)
If we're talking about Iro's new framework, then it does support HD portraits
For spacecore what you gotta do is
- Load a portrait in normal arrangement (if it doesn't already exist in vanilla)
- Load the animation sheet, any arrangement
- Put in the spacecore animation def pointing to frames on the animation sheet
New hd portrait framework has layers so you can have eyes separate from mouth and so on
im just not entirely sure how im going to make sure i draw them aligned and not like a pixel off cause that would major suck
Sorry for the DM, I've gotten multiple spam friend requests today haha so I wanted to ask if I actually knew you
i wasnt sure if youd prefer dms or here so 🤷♀️
dw about it, it's all good! (though some people prefer to be asked about being DMed so it's usually best to ask in server, you'd be amazed how many spam DMs some people get)
(ew really gross what is with privacy invasion now a days)
right now frames are as separate files btw
you draw the entire portrait sheet in a single frame, then the entire portrait sheet for the next frame in a new file, etc etc
i used to make them seperate files because krita but the vanilla and your for modders thingy has it all on one big sheet so i wasnt sure which was the best to work with
(I had someone in my DMs today trying to scam a commission for stream assets... I'm not even a streamer
)
so the things all in one sheet are the different emotions, not different frames
So about 34 total hours of 1.6
38
so the top left is portrait 0 (neutral? maybe?), top right is portrait 1 (happy? iirc?), etc etc
ohhhh like those strip photos from photo booths
okay so the first colomn is frame 1 of each emotion is one file, then the next colomn is frame 2 of each emotion is a second file and so on
not quite, there are always two columns and they're just more emotions
it goes
0 1
2 3
4 5
6 7
for most vanilla portrait sheets
but you can have over a hundred if you want (guess how we know...)
and lastly: does each portrait have to be 64 pixels cause thats tiny
yes*
*there's a few HD portraits frameworks out there, including iro's one but tbh I'd recommend just working with 64x64 like mr ape intended
in vanilla yes, in my framework no
fair
🤔 so if i put this in the "Items" field in a shop entry, would it only sell items that have the specified context tag, and only on mondays?
"ItemId": "RANDOM_ITEMS (O)",
"PerItemCondition": "ITEM_CONTEXT_TAG Target {{ModId}}_hereismycontexttag",
"Condition": "DAY_OF_WEEK Mon"
}```
its cool if theres no answer for this one but anyone got any advice to keep the portraits lined up so theyre not like a pixel off and i have to readjust them one by one? i wonder if i can use onion skins without using multiple frames in krita?
use an editor with a grid
(krita is one of those)
krita does so i should probably just line up the shoulders or whatever with the grid then ii guess
yeah that looks fine
gotcha
or i could use onion skins and then just delete the extra before finalizing it lol
anyway THANKS YALL i love this community so much yall are so damn helpful
I DONT HAVE ANY PENS THAT CAN DRAW SUCH SMALL PIXELS 
Pencil tool at 1px?
HOW DID MR APE MAKE ART SO TINY
with pixel art you're going to be primarily dropping pixels one by one
at the scale SDV uses
(also check out #making-mods-art if you have questions)
apparently krita has some built in brushes specifically for pixel art
code pls
im juggling like 15 windows one moment 😔
Juggle 16
though from the screenshots you may be missing the Strings/ part of Strings/1_6_Strings
yep lol
also : is the separator between the asset and the key, not another slash
im also missing the closing bracket lol
you know what.
i was copying my mod
where i did it correctly
how did i fuck it up like this???

nice now my shop menu crashes when i turn my config on.
That's concerning
Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on Microsoft Windows NT 10.0.26100.0, with 53 C# mods and 7 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
i already fixed that
ah I still see it in the logs so
probably not causing the crash though
looks like the error's coming from your recipe edits
(side note, your shop data is fine, but to limit confusion for yourself you should probably make the key and the Id field the same)
not sure what in here would be a problem https://smapi.io/json/none/ac723b8e7e96484a891bc9ef974efd85
it;s my recipes
just in case can you post the main content file where you're defining those tokens
MUSH is missing the quantity for the last item
what the new log says
(the error is caused by the recipe having two ingredients with the same ID)
(previously it failed because your missing number causes some recipes to be parsed as having multiple ingredients with the ID 1 instead of 1 being the quantity)
your Shrimp Donut recipe is missing a number
and Warrior Smoothie
ugh im going to explode
i did fix the smoothie one

ok im gonna give up for now
i need to be places
ok nvm i dont need to be places
i still missed one somehow
wait can you not patch reload dynamic tokens or something
yeah it doesnt
looks like the issues i was getting with livestock bazaar are because it didn't like my animals being different dimensions
which isn't a surprise or problem really
hmmm. might be out of scope but I wonder if CJB Item Spawner could read all the monster data and generate a spawn egg for each of the monsters.
So while testing mods there are faster ways to just grab and test the baddies.
there were talks some time ago about CJB Item Spawner exposing an API so we can register custom spawns
oh monsters, oops lol
would be helpful / neat
🤔 im back with more problems. any reason why my buffs are showing up Wrong, or just not showing up at all? it's supposed to have a mining + 3 buff along with the + atk buff
https://smapi.io/json/none/148ef25cca054fb7a63d32465e170c56 (the objects json without local tokens)
https://smapi.io/json/none/f21aa85c48614951b822307cb10d0879 (where i put values for the tokens)
MiningLevel, not Mining (that goes for the other skills as well)
doublecheck with the wiki
ugh
so

sigh
thank you selph
i have to go fix like roughtly 3 mods now
hm nope it still doesn't work
wait what
you didnt change it?
sorry i parsed the wrong file
sorry i managed to misplace my entire mod???
it went to the shadow realm
Has anyone ever had this issue?
[19:27:09 ERROR SMAPI] Skipped mods
[19:27:09 ERROR SMAPI] --------------------------------------------------
[19:27:09 ERROR SMAPI] These mods could not be added to your game.
[19:27:09 ERROR SMAPI] - StardewViewerEvents 0.0.1 because its DLL couldn't be loaded.
[19:27:09 TRACE SMAPI] (Error: FileLoadException: Could not load file or assembly 'System.Collections.Immutable, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.
at System.Runtime.Loader.AssemblyLoadContext.LoadFromPath(IntPtr ptrNativeAssemblyLoadContext, String ilPath, String niPath, ObjectHandleOnStack retAssembly)
at System.Runtime.Loader.AssemblyLoadContext.LoadFromAssemblyPath(String assemblyPath)
at System.Reflection.Assembly.LoadFrom(String assemblyFile)
at StardewModdingAPI.Framework.ModLoading.AssemblyLoader.Load(IModMetadata mod, FileInfo assemblyFile, Boolean assumeCompatible) in SMAPI\Framework\ModLoading\AssemblyLoader.cs:line 178
at StardewModdingAPI.Framework.SCore.TryLoadMod(IModMetadata mod, IModMetadata[] mods, AssemblyLoader assemblyLoader, IInterfaceProxyFactory proxyFactory, JsonHelper jsonHelper, ContentCoordinator contentCore, ModDatabase modDatabase, HashSet`1 suppressUpdateChecks, Nullable`1& failReason, String& errorReasonPhrase, String& errorDetails) in SMAPI\Framework\SCore.cs:line 2086)
The problem seems to be that it can't load System.Collections.Immutable, but the dll is clearly there
Can I add more furniture textures to an existing AT furniture mod by just dragging a new one in the textures folder? or is it more complicated than that?
ie. a mod author that made 2 at furniture packs removed them from nexus and combined and reuploaded them on kofi, only thing is they also condensed and got rid of some texture I liked but I was wondering if I just drag some of those old textures into the new file if it will work?
The game comes with the 6.0 version of it, but my mod requires >=8.0
I wonder how I can fix that....
is this your log or reported by a user?
it's mine. I'm creating a new mod. Trying to launch the barebones version of it
I can do any trial and error anyone would suggest
but I believe Selph's intuition was very correct, and it's a conflict between the two versions. No clue how to fix it though
I vaguely recall that being a persistent limitation of SMAPI's loading process, but Pathos or somebody who develops it would know better than me
the only real workaround I know myself is recreating the necessary bits in your own code base
You need to change the json a little too (there's a field that days how many texture)
Do you actually require >=8.0 features?
No clue, it's an indirect dependency
Discord.Net requires it, and I require Discord.Net
Hm yeah i was gonna say what if u change hint path but no clue how to do that for a nuget
*change hint path so that it just grabs the 6.0 from game
i wonder why its even trying to pull v9.0.0.0 of that assembly because when lookin at the repo, it seems like NET 6 support was only dropped 2 weeks ago for Discord.Net... but that wouldnt be in the latest stable release yet
and the timestamps of your dlls there also indicate its using the version from july, which is before they dropped net6 support
forsy this is unrelated but can you tell me about the font pictured here?
Oh, it's a free font i found on one of those font resource websites. I used font settings to get it into the game
Umm i keep forgetting the name of it though
Let me find that again
did ppl ever get a 1x1 or 1x2 pet bowl working? i remeber some attempts
that's enough info. thanks!
does anyone know where the icon for the qi coin is
i was guessing cursors but i may be blind (and that thing, as its name suggests, is cursed)
of course it is
hi there, so, i'm making a fashion sense mod and for now i made a ribbon, already made all the sprites (such as the front, back, etc) but for some reason whenever i wear it in-game, the ribbon will not show the different angles i made for it, instead it shows the same sprite over and over, but a bit cropped on the sides. could someone please help me? this is the json file in case it is needed.
https://smapi.io/json/none/269b7947e33642618e644007cd0a7d08
oh, and by the way; in case this is also needed, the whole image size is 24x76, while the sprite itself is 24x12
If you look at other fashion sense mods, is the starting position the same numbers for front, back, left, and right? Or do they change?
hmm.. i'm pretty sure they change, and now checking my json file, i've noticed that everything in the starting position is set to 0, so what i think i could do is look at other FS mods and try to imitate the starting position numbers?
oh, and by the way; today i've been testing out some of the tips you gave me, and there has been some pretty great progress; the ribbon shows up in the game! :p
Yeah that sounds like a good plan. A hint for what will help: open your ribbon png in your art program and find the pixel co-ordinates for the top left of each view
what do you exactly mean by finding the pixel co-ordinates for each view? :>
sorry, i'm a bit slow lol
you mean finding out how many pixels does the sprite have?
....okay, i just tested out the ribbon in the game, and apparently changing the starting position numbers worked, but for some reason the sprite looks... cropped? i don't know how to explain it, but it just doesn't appear fully
What did you make the size of the ribbon?
the front and back parts are 24x12, while the side profile is 14x12
The error message I sent is one that occured after a lot of trial and error and switching versions, so it was probably just me trying this specific version
FWIW, I managed to downgrade Discord.Net to a version from 2 years ago, that used the same dll as Stardew does, and it worked. The library still seems to work with Discord for my purposes, so I think I'll be okay
if it helps, this is what it looks like in the program
Sorry, i meant in your fashion sense json thing
OH
uhhh
i'm not sure about what do you mean

you mean the starting position?
umm
maybe?
if you set the thing to be a siz
but didnt adjust the starting position
it'll be like.
size
maybe im too tired for this my brain is kinda frying
one sec
like.. ur hatsize
im looking at the github page rn
in the hat template example, where it has all of this stuff
alright so the hatsize is 24x12 for the front, 14x12 for the right, 14x12 for the left, and 24x12 for the back
you might have to adjust the starting position then
hmm..
bc i think it starts counting at the top left, but since you have gaps on both sides, it stops before it gets to the actual edge of your hat
Hey everyonne
Quick question
On Nexus, when you download a mod
How can you remove the super long random characters they give with it?
"Aquatic Sea Fish 1.0.2-38752-1-0-2-1761705112.zip"
It gets very annoying to see it, is this a bug with Nexus? Everything gets zipped normally, so I'm very confused
it's not a bug. it's just how nexus assigns filenames
Didnt have it before I believe, anyway to opt out or change it?
You can't. That's how Nexus index their filename. So what you do is pack your mod in another folder and hope that user will use that instead of your zip name.
Yikes, alright, will keep this for now, thanks for telling me though
Yeah as long as people aren't unzipping by letting Windows give it a new folder with a name taken from the zip (in which case they will get a doubled folder) then it doesn't matter what the zip is called. And if they are, that's their problem lol
Open the art program, hover over the top left pixel of each sprite (front, left, right, back) and note down the x and y value for each of them. They will be your starting position.
Lol, I just realized my mod had no update keys, just added them...my mod has been out for a week...hopefully this wasnt too big of an issue..I mean v.1.0-1.0.1 has very minor bugs, so hopefully people on those versions know when to update, im shocked i never caught it till now lol
are there links with an updated way to create maps? I wanted to create a sign that then teleports to the custom map/house, so I can make it more compatible with extensions mods. I downloaded Tiled, unpacked the Content folder, but I don't know ehere to go from here
The maps page of the official wiki has enough info to guide you through making maps: https://stardewvalleywiki.com/Modding:Maps
But this tutorial is also up to date for 1.6: https://stardewmodding.wiki.gg/wiki/Tutorial:_Map_Patches_and_Warps
thank you
So... I am planting an idea in my head for a future mod, and it has me wondering: Is Yoba translated differently in other languages, or is it fairly universally just "Yoba"?
I can't read all of them, but it's directly pronounced "yoba" in the majority (that is, in everything I can read)
Yeah, that's what i gathered too. I checked about 7 or so language files
7 different languages
I can confirm its yoba in english
the least literal one I can see is Иобы, which I guess would read like "ioby"
works for me thank you
While you're around, I have a question that I think is about FTM? Is it normal for an outdoor FTM area to spawn wood debris, it's not a big deal but I'd rather it didn't.
I'm redoing one of my maps anyway and it would be a good time to change that if possible
FTM just spawns the things each pack tells it to, so that shouldn't happen unnecessarily
it doesn't stop base game spawns, though, so that'll happen if the game would normally do it
(I don't recall how sticks and such work normally, though, aside from the farm always spawning them)
Sticks and stones can break my bones but
this interested me so i went to check all the official translations. in brazilian portuguese it's Ioba. and obviously in languages that don't use latin script it's spelled different (but mostly still pronounced Yoba). otherwsie its all yoba
This is my FTM content file if it's of any use, the area in question is GhostwoodxFalls, but I don't see any settings that in my mind would cause debris to spawn: https://smapi.io/json/none/e4314dc536f24e8d9d3db65108c354b4
Maybe it's unrelated to FTM but I couldn't find map settings that were helpful
Did you start your map by copying from vanilla?
To be honest I don't remember that's certainly possible
I do see some things like this in the TMX is that the source of the problem? <tile id="314"> <properties> <property name="Type" value="Wood"/> </properties> </tile>
so as far as I know:
a) the forage in Data/Locations -> "Forage" could do that
b) any outdoor location will have weeds/twigs/stones appear, though it's much less common than on the farm/islandwest unless you intentionally set some map properties (e.g. "SpawnDebrisOnNewMonth")
that said, the map property skipWeedGrowth should turn "B" off entirely
but as far as FTM goes, it won't add twigs unless you intentionally spawn "Twig" or 294, etc
OK, thank you for the info I will tinker with those settings, and forgive me for thinking this was FTM's doing!
Could I get a quick explanation to clarify how the "Priority" field works for Edit patches? Content Patcher's docs for Edit-type actions says that patches are first applied by priority, then by load order, then by the order they're written in the json, so that means an action with any priority specified will effectively cut in line for load order?
yes correct
load order is the order of each mod in the mod list, but priority will jump past that
So you can have patches that both take place before and after another mod's patches, if you need to control it in that detail
tbc, the default priority of an edit is 0, so just specifying one at all doesn't mean you go first
Hmm, so that confuses me
Okay, so... say Mod A loads a custom character, and Mod B which loads after Mod A contains edits to that character.
Reading the docs I was led to believe that if Mod B adds Priority fields to the edits they would then ignore the load order and jump ahead of Mod A, which sounded like that would break things
Esca just clarified that even without a specified priority they are considered Priority 0, so actually both actions are ignoring load order, it's just that if we don't specify priority then they have the same priority and it defers to load order to decide what goes first?
Without priority they will follow load order yes
In this case I would suggest that Mod B add a dependency (full dependency or false dependency) to the manifest to ensure it loads second
loads happen before any edits, so unless Mod A is doing actual edits, it may be a moot point
also a prudent point haha
but the main thing with priority is that all edits that don't specify a priority still have "Priority": "Default" internally
Okay, I think that all makes sense, I was just confused about how it sounded like the priority field existing at all was making things cut in line
So if Mod B adds Priority Early, it will cut ahead and break stuff. But if it adds Priority Late it wouldnt, it would come second. It just would be slightly better to depend on load order for this type of thing.
Priority is to control mod patch order, not to always cut in front. A lot of times you want to cut behind
yeah, the common use is just "oh my basic edit is getting overwritten by something" -> add "Priority": "Late"
a quick reference, assuming I didn't get lost somewhere
I feel like I'm in class
I got here in the first place trying to research some kind of mod conflict involving patch order but I think this means Priority isn't the source of the issue at all and I'm in over my head 
if you want to explain the conflict we can help
Sorry to interject a bit. But I feel like I need to point out another Priority behaviour: if this is a Load and not an Edit, then the priority is Exclusive if not specified, not Default.
You can't have two mods Loading the same asset with an Exclusive priority.
And if one of them is Exclusive, it would override any other priority.
Might be a bit tricky because the problems aren't from my own mods, just something that was reported to me regarding their dependencies
I'm using Scale Up Unofficial, an update to Platonymous' Scale Up mod using open source code, for one of my mods, and a user mentioned that SUU resulted in an error with another mod's EditImage actions that resulted in System.InvalidCastException: Can't replace loaded asset of type ScaleUpUnofficial.ReplacedTexture with value of type Texture2D. The new type must be compatible to prevent game errors.
The EditImage actions in question had Late+ priorities set and removing them also removed the error, and the error also did not appear with Early priority. So my assumption was that somehow adding the priority field was causing the patch action to step behind something it shouldn't be, but from what you folks just explained to me that shouldn't be possible because that's not how Priority works, right?
So from there just leaves me thinking that maybe it's just a bug with SUU if a mod contains a Late priority Edit, but my attempt to reproduce such an error in my own mods didn't break anything so right now I'm just confuse trying to find something to report to the author 
If scale up is involved it's a different thing altogether
My guess had been that adding a priority field somehow causes Edit actions to interact with Scale Up in the wrong order
But that sounds like that shouldn't be possible
I mean it's a pre-1.6 unofficial update C# mod getting involved in load order, it could be anything from an issue with the load order itself to with the C# mod's unofficial update
So idk how helpful we could be
yeah, it's not so much a CP/priority choice issue there as Scale Up being incompatible with something (e.g. it might assume all edits are Late or earlier)
Aye, I was just trying to figure out how I could make a bug report to the author but I can't... actually break anything in the same way so far 
So the order of patch is like. You have a Load on your asset using SUU, then another mod does EditImage on that asset using Late priority?
Nah, the assets were from completely unrelated mods but SUU has to patch into the sprite code and it appeared as if the priority field was causing something to break with basic Content Patcher functionality
So my questions about how Priority worked ruled out my assumption that it was causing the actions to jump ahead of the load order, and this must just be a bug with SUU that I should figure out how to reproduce before reporting
I am confused on why they are so far apart.
The debug code says
[Wizardry] The bugs position is {X:480.5559 Y:578.1362}
[Wizardry] The bug draw position is {X:472.3604 Y:492.78833}
[Wizardry] The player position is {X:480.5559 Y:578.1362}
If I use temporary animated sprites it works.
Does the draw spritebatch have a different ... hmmmm. I think I might know the issue.
nope still off T_T thought it might be because rendered hud having a different point zero than rendered world and tried rendered world spritebatch
discord compression is doing Things to that image lol
fixed it
Tempanimation sprites have a Game1.GlobalToLocal(Game1.viewport, position). neat
now it's not respecting layers T_T sadness
back to temp sprites @_@
by layers do you mean draw depth? because that's a result of the spritebatch mode, most of the time the game is in a mode where it only respects the order in which things were drawn
yes
look up the other monogame sprite batch modes or I think it's actually the crafting menu that has an example of switching them
one of the menus
!stone
🪨 The item ID for Stone is 390.
!Itemid
Hi! Who knows which file in the game is responsible for the character’s sprite specifically in the gift log? Because the sprite has been replaced everywhere else, but not in the gift log.
Their base sprite at Characters/<NPC Name>. Changes to their sprite using Appearance don't get reflected in the Gift Log.
My changes were made through Content Patcher. I replaced all the images in Characters/Abigail.xnb, Abigail_Winter.xnb, and Abigail_Beach.xnb.
And one more important point: the sprite in the gift log only doesn’t apply in winter.
it will only show abigail.xnb in the gift log in winter as aba mentioned
If your change for that asset is turned off in winter, it will show the vanilla art
Winter sprites are set using Appearances, so even in vanilla NPCs should not have winter clothes in the gift log
The issue isn’t about clothing — it’s the sprite itself. In winter, the gift log shows the completely vanilla sprite, not the modified one. Even though the Abigail.xnb file has been completely replaced with different colors.
Hmm. Is your change to Characters/Abigail conditional in any way?
dammit I recolored every tilesheet where I saw any orange grass but there are still these patches
I've seen it in recolors that aren't updated for 1.6, which file am I missing?
No, I didn’t use any conditions.
!json Can you share a link to your json, 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.
You can use lookup anything to see what tilesheet those orange grass bits are from
thanks!
You might need to adjust it in the settings to turn tile data info on. I haven't used it in "player" mode for so long I don't remember what it shows lol
I wasn’t paying close attention—while learning how Content Patcher works, I had set a “When:” condition and specified the season. Later I learned that this isn’t actually necessary, since the file is replaced based on the original file’s name, but I forgot to update this in content.json. 😅
Thanks for pointing that out.
Now it works properly 🙂
Well yeah it does show the tilesheet but it doesn't really help. It's so weird
I just wanted to make green fall for earthy recolor. I begun with just replacing the fall_outdoorsTileSheet and all fall tilesheets with their spring counterparts. They layer perfectly onto each other, have the same resolution of 400x1268, but when I replace the fall_outdoorsTileSheet it just leaves those weird spots
Are you accounting for SVE's additional tilesheets?
did you check season_outdoorsTileSheet2?
I replaced all the tilesheets that had "fall" in their name, but I'll take another look rn
Also check the fall_outdoorsTileSheet2 like ichor said
yeah, I checked it out as well
Lookup Anything clearly says that the tile is from fall_outdoorsTileSheet and I even found the individual tiles on the sheet
And they're recolored
I'll see maybe some other mod is overriding it
Yeah you can check your log
If you upload it to the log parser and then click the Trace button and search fall_outdoors it will show you all of the mods editing those tilesheets and in what order
How do I get the log?
!log
Important note: Your computer username may appear in the log. If your username is your full name, please be aware of this before uploading it.
Please share your SMAPI log file. To do so:
- Open this page: smapi.io/log.
- Follow the instructions at the top of the page to upload the log file. (Don't copy & paste from the console window!)
- After uploading, it will show a green box with a URL to share. Post that URL here.
Please do it even if you don't see any errors. This has useful info like what mods and versions you have, what the mods are doing, etc. If the issue didn’t occur in your last session, please load the game to the point where the issue occurs, then upload the log.
thanks, I'll take a look
Yeah, it's some mod, I did a quick test with just the recolor and it works fine
off to reading the log I go
It was because of some tilesheets that were a dependancy for the mot I have deleted long ago
Guess that's what you get for not keeping your modlist tidy
Interesting to see how a custom wedding events page on the wiki was created 2 hours after I released my wedding mod back in may 
hellooo wanna double check something, <season>_<day> spouse dialog takes priority over all other types of generic spouse dialog, right?
the game checks keys in the order they are listed in the table
(that means yes, in this case, but also if it comes up again now you know the tables on https://stardewvalleywiki.com/Modding:Dialogue are in precedence order)
it is there, but it's not especially prominent
oh, okay
thanks :)
found it lol, I might make it a bit more prominent bc rn it's effectively a footnote
is this correct? also want it to be easily legible, lmk if it isn't!
An NPC's named file in <samp>Characters\Dialogue</samp> contains most of their dialogue. The game will select dialogue from one of the sections below, in the order shown. This means keys listed earlier in each table are checked first (and thus have higher priority), but note that some keys only apply in certain circumstances or have a random chance to be chosen, in which case lower-priority entries may appear.
for a wiki entry! this is the og line:
An NPC's named file in Character\Dialogue contains most of their dialogue. The game will choose dialogue from one of the sections below, in the order shown here.
@tiny zealot forgot to reply to you lol
might as well fix the typo so it says Characters\Dialogue instead of Character\Dialogue
oh, will do!
alr updated the message
anddd fixed another typo of mine lol
does it look alr otherwise?
if i were writing it, i'd say
... from one of the sections below, in the order shown. This means keys listed earlier in each table are checked first, but note that some keys only apply in certain circumstances or only have a random chance to be chosen, in which case lower-priority entries may appear.
but i suppose it's fine
that's way better lol, I'll change it to that
okayy updated it
hmm gonna make the edit now
back again lol, sooooo hypothetically speaking would it be possible to make an event set in lewis's basement?
or would i have to like duplicate that map and shit and treat it as a custom map?
the real one should work, but watch out for hardcoded stuff which i have a feeling will be involved
hmm okay
i want krobus and dwarf to break into the basement and get attacked by the demon shorts-
if I'm gonna traumatize them i owe them some cute fun events LOL
i don't know anything about how that area is set up but i assume the shorts are hardcoded in an annoying way, so my expectation is
- you won't be able to stop the shorts from spawning
- you won't be able to control what they do
got it, might having the event trigger elsewhere and using spacecore's event trigger thing avoid that?
no idea lol but i would guess no
hmmm okay
found the entry in locations:
"DisplayName": null,
"DefaultArrivalTile": {
"X": 4,
"Y": 4
},
"ExcludeFromNpcPathfinding": false,
"CreateOnLoad": {
"MapPath": "Maps\\LewisBasement",
"Type": null,
"AlwaysActive": false
},
"FormerLocationNames": [],
"CanPlantHere": null,
"CanHaveGreenRainSpawns": true,
"ArtifactSpots": [],
"FishAreas": {},
"Fish": [],
"Forage": [],
"MinDailyWeeds": 2,
"MaxDailyWeeds": 5,
"FirstDayWeedMultiplier": 15,
"MinDailyForageSpawn": 1,
"MaxDailyForageSpawn": 4,
"MaxSpawnedForageAtOnce": 6,
"ChanceForClay": 0.03,
"Music": [],
"MusicDefault": "Upper_Ambient",
"MusicContext": "Default",
"MusicIgnoredInRain": false,
"MusicIgnoredInSpring": false,
"MusicIgnoredInSummer": false,
"MusicIgnoredInFall": false,
"MusicIgnoredInFallDebris": false,
"MusicIgnoredInWinter": false,
"MusicIsTownTheme": false,
"CustomFields": null
}
}```
try stuff and see what happens, i guess! you might end up having to duplicate the map to avoid the shorts, but then you'll have to try to recreate them somehow and it might get janky
alr!
I might make the shorts a temp NPC or some shit lol
this is gonna be chaos but I'm excited :)))
actually, I think I'll duplicate the map from the beginning to avoid hardcoded stuffs
...eugh wiki here I come-
i already downloaded tiled so that's good
(You can always changeToTemporaryMap)
You dont need to duplicate the actual map
Roughly - changeLocation goes to thr actual location
oh?
how can i do that?
..found it lol
it's an event command
oof.. i'm making a hats mod, and for now the first hat (a ribbon) looks like this, and i've been tweaking the values/numbers so much and testing the game for so many times 😭
also yeah the middle part of the ribbon is supposed to be an eye-
the eye looks cool :)
it's still pretty misaligned
aw thank you :D
maybe you could put it on the side of their head on purpose?
and make one side of the bow lower than the other?
some dithering might help it look more textured too
It observes.
spooky!
ye it's cool
are you aware that the fs_reload command exists /gen
i know it exists, but for me it doesn't work? or maybe it's because i was typing it wrong?
is it fs_reload and not fs reload? (i'm sorry if i'm wrong...)
please don't make fun of me lmao 😭
Yeah the underscore matters
aw sorry man 
why are you apologizing? :p
sorry as in I sympathize with your struggles lol
OHH
it's oki
:D
after all, i'm new in the modding stuff so i'll be practicing until everything comes fine, because that's what it is about! :>
i don't wanna give up yet
i'll believe in myself :D
same here! but god sometimes the debugging is just infuriating lol
istg the case-sensitivity
!anyonecancook you can do it 
i tried to type fs_reload in the smapi console, but for some reason it doesn't work for me? i mean, nothing happens
hmm, put debug before it maybe?
okay but like.. how would i exactly type it? do i type something like debug_fs_reload or something like that?
debug fs_reload i think? also very much new to modding lol
oh, okay! thank you, i'll test it out :p
are you pressing enter after typing it
ofc!
yes
@simple girder Hi, I'm planning to update my Enchanted Ceremony mod soon-ish (probably) and I saw lots of people wanted to see Fleurine as a wedding guest. Would you mind if she participated if your mod is installed?
not sure what's going on there then
it should output something, even if no foreign packs are loaded
Make sure you didn’t accidentally uninstall Console Commands. That might potentially be the problem.
Console Commands is not required as the debug prefix is not required
Console Commands adds a command prefix debug for running the vanilla debug commands but fs_reload is Fashion Sense's own thing and you would just type fs_reload
same reason you dont need to type debug patch reload ModId for CP mods
Do NPCs have a conversation topic about player getting married? 
yes, married_<Spouse Name>
as well as the generic married
if you've already been married once before you even get married_twice (instead of married, it wont reset that one)
the spouse-specific one will happen every time as long as you get married to a different person every time or divorce them but the others only happen once
Oh, so I wouldn't even need to add a topic, I could just add a dialogue with a key for a specific spouse? Neat
you can yeah
there's also roommates_<Spouse Name>
(there is no generic roommates or roommates_twice)
these all do still last the default 4 days though so if you wanted longer thatd be good reason for your own topic i suppose
finally, i managed to make all the ribbon alignments look great 😭
this took me so much time, but i'm glad i got my goal!!

ooo show us!
Nice work for persevering!
:3
i love it :)
yesss, and your help was very useful, thank you very much for it!
uhhh anyone know where the spring_objects things is? the one with all the item sprites?
istg I'm going insane looking through the game files-
or does it have a different name?
FOUND IT
maps
..why do i only find the answer to my questions after asking-

now to find the number for the exact sprite-
ooo found a resource! https://stardewmodding.wiki.gg/wiki/SpringObjects_Coordinates
Last edited by AtlasVBot on 2025-09-13 18:54:19
This is a table with co-ordinates for every sprite in the springobjects.png file. To use, reference the X and Y values in the row and column headers - eg: leek has a column header of 320 and a row header of 0, so its co-ordinates are 320,0.
ooh i should make
https://festivals.pillow.rocks except instead of people it's tiles
😔 the actual map never loaded in for me on that
did you guys do the data collection manually?
I could have a look at more automation but it would have to be on a server because I do NOT have 73GB free for the mod dump 
I don't think I have 7.3GB free tbh
scarlett did it semi automatically
i assume you do choose a festival, right?
i dont think tield likes svelte
she got a big csv and then i did some things with it, and then manually copied the output of that into all the position files
(thank you iro for reminding me to delete the second copy of the mod dump I had that I forgot to ever delete)
I am not home so I can't check the unpacked data atm but an idea popped in my head and I am super curious about it:
Can locations have custom tags like items?
GameLocation has modData you can use, though not really tags as such
that and map properties, I suppose
there is a location context too, but i don't think locations can have several of those
Darn, tyvm
location data has CustomFields
Ooooo
most data entities in game has CustomFields really (aside from the string ones that we're all praying 1.7 kill someday)
yeah, several options can approximate tags, depending on what you want to do exactly
hmmmmmmmm
I am looking to de-hardcode analyze from wizardry.
For the items it is easy. Just check it's context tags.
The ones based off locations I was just going to leave hard coded but location context tags popped in my head
hey! got questions about advancedMove, for a loop, does stopAdvancedMoves immediately stop the character from moving or does it wait until the sequence is over?
I'm not familiar with the feature, but you could probably choose a field ID to check for it, then set the field's value for known vanilla/etc locations
e.g. via mod data, location.modData["modID_SomeTagID"] = "true";
or if several tags would be involved, location.modData["modID_Tags"] = "some_tag, some_other_tag";
one of the CP-accessible things would be better if mod authors are intended to add them
You will probably need to do a quick test to find that out
gotcha! ..just don't feel like opening the game rn so I'll see later LMAO
yeah i did, the egg festival
Yeeee, that was the goal for the rewrite. Open up a lot to content patcher authors.
(and if all else fails, your mod could provide a data asset that's just like "list of locations that do this thing" or have these tags)
maybe my laptop is just in loading purgatory
modData is not accessible to CP authors, it's a runtime thing
are there any errors in devtools?
i dunno what that is...
press f12 or ctrl + shift + i, go into network and is there any red
oh no there's always going to be red
some of it is via BETAS, but yeah, other options are preferable/necessary for CP interaction
if you want something equivalent to item context tags CustomFields is definitely the way to go
Tbh I have a dumb workaround.
A dummy item people could a location name to as a context tags. Then the spell would scan the item tags and players location to see if there is a match.
that is but that's fine™
some just dont have proper images, but it shouldnt cause issues
i think it sometimes does while loading
🤔 do you think people would notice/care if i just cloned my shop for the night market without making the one in the desert disappear
I'll look into it when I get the chance.
I guess if people playing MP happened to have one player at the night market and one in the desert at the same time they'd notice but I don't think there'd be outrage lol
for ref, both Data/Locations and Data/LocationContexts entries have a field like this at the bottom:
"CustomFields": null
which in C# is this
/// <summary>Custom fields ignored by the base game, for use by mods.</summary>
public Dictionary<string, string> CustomFields;
so you & location adders could set a particular field in there
[[Modding:Location_data]]
dang i have no idea where people stand in the night market
(for full reference)
does anyone know if npcs stand here on any of the 3 days the night market is open?
Vanilla or modded? Because almost certainly for modded
uhhh 
You should be able to check doing find in files though
Just search across your game/mods folders for the coordinates
all i really need to know is sve + vanilla
i guess i could just check each one manually for each date though
Manually as in opening all the files one by one?
im trying but i can't
What's the coords of one of the tiles?
Nope, but Emily goes there on Fridays when married lol
she's been patched in
Custom fields look perfect. Ty
You could probably ask Scarlett to check on modded NPCs for you as well if you wanted to, since she has everyone and their dog installed
i could but i dont want to...
since my shop is 2 tiles wide it should still be accessible via the flag even if an npc is standing on her
Haha no pressure! I just wanted to let you know if you wanted to do it but didn't want to have to get so many NPCs haha
I want to make a fancy text mod so badly but I don't have the TIME 
Yeah like inserting text effects into sprite text
For dialogue or mail mainly but also StardewUi
I've been wanting to do that too
It's on my "if I ever get around to reworking my UI system" list
throwing my hat into the "Wanting to make a mod that does that" ring too mostly since the latest deltarune chapters
sitting on my wavy text throne, sipping on shaking strings
Clearly, I just need a mod that rips the game's UI system apart and replaces it all with Mlem.UI (which has built in text formatting (including wobbly, @brave fable!), and the ability to add custom ones
(Mlem preview and code: https://github.com/Ellpeck/MLEM)
I have wavy text! It's just not parsed from markup
(I was using Mlem with one of my game projects)
Ellpeck, that name sounds crazy familiar, where do I know that from
Oh they made Actually Additions! That's why they sound familiar
Oh, this gif shows wobbly text at one point (and also other elements)https://raw.githubusercontent.com/Ellpeck/MLEM/main/Media/Ui.gif
WHAT
Like, the MC mod????
Yeah!
...huh
Small world I guess
It's almost like many programming modders end up on the "make my own game" pipeline sooner or later
And from there you go to "make my own library/engine"
I may have taken a stab at making SDV text fields not suck recently, but ended up getting annoyed at it after realizing I had to rework it to support emoji too
(Since my main usecase was entering commands in the chatbox, it kinda had to work with the chat box)
I finally learned exactly how ctrl+left/right in most programs worked after carefully examining it
I never thought I'd learn that
yes but that text field sucks in the same way very old MC ones did, just like every vanilla text field
What all was I doing?
- Movable caret instead of always at the end
- Delete key support added (with behavior as expected)
- Using the mouse
- Selecting text, both with cursor and arrow keys+shift
- Using ctrl to traverse words in a way you'd expect from any other program
- Ctrl+A, Ctrl+C, and Ctrl+X all work as well (+Ctrl+V working as expected with selections involved)
The part I stopped at was getting text to scroll if it was longer than the text box... but after I stopped from getting annoyed, I realized vanilla doesn't allow text longer than the text box anyways
I think I did scrolling in my search box?
Ah, but did you have caret movement and selection? That makes it much trickier
Though it's primitive and just takes the last n characters of the string
Yeah it's not that advanced
Though I did add right-click to clear, partly because it's more efficient but mostly because I developed that reflex from years of tmi/nei/jei/emi searching
Honestly if I skip the text scrolling part, it's probably very close to ready
I didn't realize that was a thing
I'd always use ctrl+a + delete/backspace
(In general, not sure if the MC mods work with that)
Some of them support it
it's all for nothing if your text input doesn't support ctrl+backspace and ctrl+delete
(Forgot delete key)
It did
the right click clear is vital to me thats why i added that to searchable collections page
That was fully working
(also because of the tmi/nei/jei/emi searching for me)
Seriously, it was basically everything you'd expect from a normal textbox excluding right stuff (unless I'm forgetting something)
I hadn't fully tested the mouse part yet but I think it was half broken, and like I said I didn't finish the scrolling text.
But besides that? 100% working
Genuinely impressive
More like an impressive amount of suffering
I saved the code in a branch, maybe tomorrow I'll go back to it and try to finish it without the text scrolling
Before I go get lost in the decompile, does anyone know how the game determines that the slime hutch troughs are valid to water?
public override bool performToolAction(Tool t, int tileX, int tileY)
{
if (t is WateringCan && tileX == 16 && tileY >= 6 && tileY <= 9)
{
this.waterSpots[tileY - 6] = true;
}
return false;
}
in SlimeHutch.cs
Oh darn it's based on actual tile coords? Well, poop. Thank you for finding it so speedily for me though!
it does a similar check for sprinklers on dayupdate
Hmm the monster hutch framework hutch interior is way bigger than that, it must change it
it does patch a bunch of hutch functions
Can I ask you to help me again please? I don't know how to read the code: https://github.com/juminos/StardewValleyMods/blob/29d2f685c5f5eae0a491abff2b25cc269c29208b/MonsterHutchFramework/HarmonyPatches/HutchPatches.cs#L293
i think thats just making every spot waterable
idk the reasoning exactly for multiplying the coordinates but i think it just means no matter where you water itll mark it as watered in some way and then its own WaterSpot detection function at the bottom is used in place of the vanilla check for whether or not something is a water spot
which will account for the spot you watered
My guess is that it's using the tile id to determine if it's a water spot?
i meant like there are other ways they couldve kept track and idk why they chose this way specifically
the watering can check isnt checking anything besides that it is a watering can
if its a watering can then the tile you watered WILL be marked watered
no matter where the tile is
So I could just water the floor and even though it doesn't change texture it will count?
Huh
probably? idk i didnt feel like looking at the giant DayUpdate prefix up above im just goin off the bottom 3 functions
or bottom 4 ig
Well, I can check that I suppose
It's just linearizing it
That does appear to be what is happening
see above where i said "i meant idk why they chose that way specifically"
Thanks Button!
i have been making a font framework but it's not as ambitious as the special effects stuff from above. it's just to make it easier/feasible to patch the interface fonts (bold and sprite)
and yet it's been enough work just to get that done! sheesh /lh
Me after dinner: maybe I should mod a little, or possibly even actually play something
Me now: I have to go to bed soon and all I've done is blabber on discord and watch a video or two
ok I have a new reason to want to bump SMAPI to .NET8/9/10
https://github.com/dotnet/runtime/discussions/115627 this thread is a fun read, and has osu and tMod case studies in it about how hotswapping the GC out with a different one has helped improve frametime pacing
I am now on the wiki!! 
That thread is longer than the firefox page screenshot size limit. My attention span at the moment disappears the moment a scroll bar is introduced. TL;DR?
No pause GC
the thread name is misleading, the alternative GC Satori is still pause GC
SinZ have you played with the user/server GC setting?
In theory a less pause happy gc
SpriteMaster did back in the day, but I haven't done any yet
part of my work in Profiler to track the GC events was ahead of starting to mess with GC knobs
but probably a highlight chart from the thread is this
y axis is time in milliseconds
benchmark is https://gist.github.com/AlgorithmsAreCool/f8f82df9901cdbfafafaf15f76d36498
the terraria graphs are a lot less sexy but they have so much idle time
First is workstation GC I think, second is Satori
https://github.com/dotnet/runtime/discussions/115627#discussioncomment-13162750
Fancy
Ms?
It doesnt feel like 2000ms ...
one thing chicken-bones as part of tMod did find was that asking for a Gen0 background GC cleanup every frame improved performance
Profiler has seen >2000ms GC spikes already
I feel like people would really notice 2 full seconds
It's done on a backyard thread right
Background
Does the publish app not work on mobile?
English is hard
sometimes the background one aborts and has to run foreground
It sounds like they are slightly more background thread than stardew but not too much
Stardew does request gen 0 gc every time you leave one map and go to another
Oh I'm dumb xD
Easy enough to test the every frame thing
Yes, this is a largely single threaded application. We utilise background threads for some computation, but normally do not allocate on those threads. Game developers are always happy to trade lower main thread time for higher overall CPU usage, because most games are inherently hard to parallelise.
In a similar manner, doing GC's more frequently means higher overall GC time, but lower individual GC time. Since games care primarily about their frame budget, a shorter GC that runs every frame is preferable to a longer GC that runs periodically (especially if we have no control over when it runs).
This is incredibly fancy though
Why is it so much faster
Satori GC has classic Dijkstra-style write barries, so throughput is comparable to the default CoreCLR GC. Everything allocation-sensitive gets eventually limited by how fast you zero-out memory, so this is unsurprising.
Satori GC has a generational incremental concurrent GC design. All major GC phases that are proportional to the heap size run concurrently with the application threads. That is - all except compaction, which would require read barrier to run concurrently. But compaction is just an optional thing that GC can do, but does not have to. Native allocators do not compact and do just fine. Some other GCs (i.e. Go lang GC*) do not compact either.
In LowLatency mode Satori GC turns off compaction. That may trade a slightly larger heap for better latency guarantees, 0% - 30%, depends on workload..
In rare cases you may even see a reduction in heap size as collections happen faster or if compaction was not very useful. Like in some ASP.Net scenarios where except for a small resident set everything dies after request is over - so why compact what soon will be garbage? (it is hard for GC to know this though without some longer-term history/statistics)
https://github.com/dotnet/runtime/discussions/115627#discussioncomment-13162705
Still, you should be able to very easily benchmark "running gen 0 every frame" 
Nice, thanks!
The main result that has been verified is that Satori is less kind to low memory devices than the traditional workstation GC, but in intermediate/high memory, it gets much better latency performance
RAM is cheap
Monogame itself is single-threaded, which makes multithreading any game built on it very difficult
And Terraria is very much not designed for multithreading
....although tbh just....if I strongly care about gc latency I would be in Rust
...i think of this as i read massive amounts of data into memory in python.....
So I can understand why core dotnet team doesnt want to work on it
Hello, I'm trying to add my boots with content patcher. I've read wiki guide(https://stardewvalleywiki.com/Modding:Boots). I noticed that there's a boot color option. To make my shoes look blue, I create a 1*1 texture with a blue pixel and set the color sheet index to 0 with corresponding color texture, but the shoes color didn't change at all, what am i doing wrong?
Iirc it needs to be a bigger texture
I forgot...check the base game but I recall 4 pixels
unity eventually is going to be CoreCLR and then would care about modern advancements in GC
This is my test boots pack
im slowly driving myself insane : D
Thank you :)! I'll check it at night.
Got an issue that's driving me nuts. Maybe someone can help. The modded eggs go in fine but they keep spitting out vanilla mayo instead of the modded mayo:
Please fix the indentation 
Vscode extension that doesn’t allow incorrect indentation one
(upload your code to smapi.io/json and post the link here! it makes the viewing experience much better and also catches any low hanging errors)
(and yes, indent your code)
Btw, I used gpt5 to help me debug my cp pack, it gave me the following code:
{
"Action": "EditData",
"Target": "Data/Boots",
"Entries": {
"200": {
"Name": "Magic Boots",
"DisplayName": "Magic Boots",
"Description": "Magic Boots",
"DefenseBonus": 3,
"ImmunityBonus": 2,
"Price": 1000,
"Appearance": 6,
"IndexInColorSheet": -1
}
}
}
But in the wiki, each entry is a simple text instead of a well-structured json (like "Name/Desc/Price/.../..."). Does content patcher support editing boot data like this?
yeah that's nonsense lmao
don't trust ai for shit
boots data is indeed still a slash separated string
(I think the issue here was it was too indented)
Lol thx for your answer.
(that is changing in 1.7, but that's years away, and certainly not valid code currently)
I half wonder if it partially pulled this from DGA, or it if “only” extrapolated from other new data asset formats
(Wait is boots already dehardcoded in 1.7? says the person actively working on it)
Hello I'm editing a custom farm map, what are these map properties? Wiki doesn't have these
The migration guide comes so early.
It’s a WIP as things are done for technical only changes
I know of at least 2-3 sizable things that aren’t on there yet
And a couple smaller ones as well
Oh didn't realize that was there! Ok, uploaded: https://smapi.io/json/content-patcher/9c3309d2542448abb58da12190cd9fd3
Changes in 1.7 look fascinating😋
your output rule entry's ID is sakialyn.spookyranch.BloodEgg but you're moving sakialyn.spookyranch.BloodyMayo
I'm having some trouble understanding. I apologize, as I am not an experienced modder
Change it from BloodyMayo to BloodEgg
Hmm. Did that and it still wants to spit out vanilla mayo
ah sorry was AFK; you also need to move MoveEntries outside of the Entriess block
if you use autoindent, Entries and MoveEntries must be on the same indent level
Selph's message just now was meant to be to you so I'll ping you instead lol
OH that finally fixed it! Thank you!!
had to go afk again and noticed I pinged the wrong person 
sorry aba
What is a context tag? Is it able to determine game logic, or just used for categorization?(Im quite new to sdv modding)
both
some machines/shops/etc. may choose to interact with every item of a certain context tag instead of specific item IDs
https://stardewvalleywiki.com/Modding:Context_tags for more info
you can define any tag you want and attach them to any items you want
Like a component in unity?
I guess? though context tags by themselves do not define any behavior
Thx again:)
Hi. I'm trying to makes the player go to a custom dimension and I keep running into an error when I try to give the quest to the player with the quest for some reason being null
anything in your logs? if a quest can't be parsed an error will show up
(side note but I recommend adding the {{ModId}} token to your quest ID as well)
though I think an error will only be logged if you use Farmer.addQuest
this is the error im getting in the console log:
[23:07:33 ERROR Content Patcher] This mod failed in the GameLoop.TimeChanged event. Technical details:
NullReferenceException: Object reference not set to an instance of an object.
at ContentPatcher.Framework.TokenManager.<>c.<GetGlobalValueProviders>b__34_41(Quest p) in E:\source_Stardew\Mods.Pathoschild\ContentPatcher\Framework\TokenManager.cs:line 223
at System.Linq.Enumerable.SelectIListIterator2.MoveNext() at System.Collections.Generic.HashSet1.UnionWith(IEnumerable1 other) at System.Collections.Generic.HashSet1..ctor(IEnumerable1 collection, IEqualityComparer1 comparer)
at Pathoschild.Stardew.Common.Utilities.InvariantSet..ctor(IEnumerable1 values) in E:\source\_Stardew\Mods.Pathoschild\Common\Utilities\InvariantSet.cs:line 52 at ContentPatcher.Framework.InvariantSets.From(IEnumerable1 values) in E:\source_Stardew\Mods.Pathoschild\ContentPatcher\Framework\InvariantSets.cs:line 84
at ContentPatcher.Framework.Tokens.ValueProviders.Players.PerPlayerValueProvider.<UpdateContext>b__8_0() in E:\source_Stardew\Mods.Pathoschild\ContentPatcher\Framework\Tokens\ValueProviders\Players\PerPlayerValueProvider.cs:line 89
at ContentPatcher.Framework.Tokens.ValueProviders.BaseValueProvider.IsChanged(Func1 action) in E:\source\_Stardew\Mods.Pathoschild\ContentPatcher\Framework\Tokens\ValueProviders\BaseValueProvider.cs:line 340 at ContentPatcher.Framework.TokenManager.UpdateContext(IInvariantSet& changedGlobalTokens) in E:\source\_Stardew\Mods.Pathoschild\ContentPatcher\Framework\TokenManager.cs:line 134 at ContentPatcher.Framework.ScreenManager.OnTimeChanged() in E:\source\_Stardew\Mods.Pathoschild\ContentPatcher\Framework\ScreenManager.cs:line 171 at StardewModdingAPI.Framework.Events.ManagedEvent1.Raise(TEventArgs args) in SMAPI\Framework\Events\ManagedEvent.cs:line 101
(can you wrap that in triple backticks? or better yet upload your log to smapi.io/log?)
!log
Important note: Your computer username may appear in the log. If your username is your full name, please be aware of this before uploading it.
Please share your SMAPI log file. To do so:
- Open this page: smapi.io/log.
- Follow the instructions at the top of the page to upload the log file. (Don't copy & paste from the console window!)
- After uploading, it will show a green box with a URL to share. Post that URL here.
Please do it even if you don't see any errors. This has useful info like what mods and versions you have, what the mods are doing, etc. If the issue didn’t occur in your last session, please load the game to the point where the issue occurs, then upload the log.
Log Info: SMAPI None with SDV None on None, with 0 C# mods and 0 content packs.
(please pull the actual log file to upload and don't just copy/paste the console text)
it seems like this error is already after the fact (you added null to the quest log)
can you post the CP code where you added the quest? just to doublecheck
!json pls
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.
also in your C# code you need to turn {{ModId}} into your CP component's mod ID
the substitution in the CP component is done by CP itself, in your C# code you need to do it manually
thanks. the code looks fine to me.
the other possible culprit is that you didn't actually load your CP mod. your full log will have that info
Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on Microsoft Windows NT 10.0.19045.0, with 4 C# mods and 1 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
got it.
this is wacky... uh run patch export Data/Quest, check the file it generates and see if your quest shows up? but make sure to restart the game and reapply all you code changes just in case
thanks for all the help btw. this quest thing has been bothering me for a few days now
Is your mod set to the old version of the game? I don't remember but maybe there's a change of quest format before and after 1.6...
nah quest data is still the good ol string format in 1.6
so when i tried to run that command it says its asking for arguments as if it didnt read Data/Quest
whoops I had a typo, should be patch export Data/Quests
hmm wait a second, your log is complaining that your content pack is not updated for 1.6 even though the json you posted has format version 2.8.0
try making sure that the file you're editing is actually the file that's being loaded by the game?
Nice catch
alright i did forget to put the new folder from my git into mods
issue do still be there though
and now when i try to leave the house after activating the quest I get an endless error
did you apply the {{ModId}} fix I suggested
in your C# code, replace {{ModId}} with the ID in the CP component's manifest
for replacing the mod id is it just the Unique ID in the manifest?
yes
this sure is a map patch... 
post your code again?
and your C#?
and just in case do run patch export Data/Quests and post the file it generates
ok so the issue is potentially that in the c# it doesnt have the word content after the UniqueID
thats the issue
your quest is added by the CP component, so {{ModId}} gets turned into the id of the CP component
gotcha, thanks again foir all the help
Oooo what mod is that?
How can i decide which texture to use in different rotation of a furniture ?
If you're using Content Patcher, your options are: the sprites directly to the right of the first one
If using MMAP Draw Layers, your options are: limitless!!!!
If using Furniture Framework, your options are: not sure, but I'd guess closer to MMAP than CP
yup, you can do anything for any direction with FF
if you're using just Content Patcher, the dimensions of the rotated furniture's sprite depends on the type (bench/couch/armchair/chair/table/...), so what are you making?
Thx for your help. I'm trying to make a tool to convert some easy-editing forms to cp pack. 😃
Im considering integrating with existing frameworks to support more content customization
Heh. Love my realistic fish colors mod
whaaat you mean pufferfish dont look like this irl?? 
is aedenthorn here?
Dear yoba i hope this farmer's cooking skill is high enough
i saw erinthe active here recently-ish
giving anything cooked with pufferfish a 1/(cooking level) chance to instantly send you to the hospital
Hi @,
Sometimes, I wish this valley had a real high-end restaurant nearby. Someone I know online was telling me about the crazy types of fish that people eat raw - like poisonous pufferfish and sea urchins. Wild, right?
I have to try that some day. If you catch a good pufferfish, make sure to let me try some - though, maybe you should be the one to taste-test it for poison first.
Just kidding, lol.
-Sebastian
Sea urchin gonads are like. Weird texture
I kinda hate it
But I also want to try it at least one more time
Sebastian is going to eat my shitty fugu sashimi and die. This is a threat and a promise?
so for npc schedule, i want him to go to the beach, do i have to write down the whole route like mountain/town/beach or i can just put beach right away?
You can just put the endpoint location coordinates, what direction to face, and a time (either the time the npc should start to head there or the time with a in front of it for the time the npc needs to arrive at)
So if you want your npc to go the beach, put something like 1600 Beach 10 37 0
Or something (this is an example, you'd replace the numbers with your own)
ah okay so i just need to put the destination alright got it, thanks!
Hi. Does anyone know which version of SpaceCore is compatible with the mobile version 1.6?
you need to join the android smapi server and get the special version there
!androidsmapi
We are not able to provide support if you run into trouble or compatibility issues with Android SMAPI; please use the discord linked on the Android SMAPI github.
IMPORTANT: This is a highly experimental build and may be prone to glitches, bugs, or incompatibilities. Please see the wiki instructions for more information regarding installing the unofficial Android port of SMAPI for Stardew Valley 1.6.
Do not harass mod authors to make Android specific compatibility patches.
hello! anyone knows how to debug translations? i'm trying to do config settings translations but even the default.json doesn't seem to apply
Configs have their own i18n keys: https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide/config.md#translations
It sounds like it's someone else's mod? You should check the field names in their ConfigSchema in the content.json and compare them against the i18n keys in the default.json
thats the guide i was following but still
i can share the relevant bits of the content.json if you want
Yup that'll be helpful. And the default.json please
here's the content.json configSchema is at the top https://smapi.io/json/none/c097642d7fe14c61b6f588ee40264041
and the default.json https://smapi.io/json/none/adce36ead0984848ba67200ade05e411
the default.json is placed inside the i18n folder
Is this your mod?
no its not, i began working on some fixes to get into modding
i read about localization and decided to implement it for fun
It should not have a Description field in the ConfigSchema and the enable clothing section key in the default.json is written incorrectly. The names should be getting translated though
maybe its not working because of those errors?
You have config.EnableOutfits.EnableOutfits.name but it should be config.section.EnableOutfits.name
Maybe, are there errors in the log?
not that i've seen
I'm on my phone by the way so it's likely that I'm missing some additional errors
Did you add the i18n before starting the game?
yea sorry i thought i fixed that one already 😅
And do you have file extensions turned on if you're on windows?
yes i'm on windows and i do have file extensions turned on
can you elaborate this? what do you mean to add the i18n?
like restarting the game after making changes inside the i18n folder?
yes i'm restarting the game after each change
Ok, I'm unsure of what's going on so I recommend making a copy of your default.json and then deleting all but one set of the config translation keys. Make sure you comment out/delete the description field for that config setting in the ConfigSchema too.
(This is to reduce the variables to help isolate the problem.)
let me try the other fixes first, maybe that was it
i deleted the descriptions in my content.json and removed all but his bit in the default.json
{
// Outfit settings
"config.section.EnableOutfits.name": "Test",
"config.section.EnableOutfits.description": "Test"
}
but it doesn't seem to work
just figured it out, i misplaced the i18n inside the assets folder
sorry i wasted your time :(
Ohhhh dear lol
Well that's okay at least you found out before I went and downloaded SCC haha
how do we localize wild tree? 😅
Is that uiis2 tooltip
I think there's info on that on the github, a custom field you need to put
there doesn't seem to be any info based on this page ... https://github.com/Annosz/UIInfoSuite2/blob/master/README.md
I don't think that change is merged yet methinks
but here's how you do it in case/when it is: https://github.com/MizuJakkaru/Cornucopia/pull/14/files
It's safe to just add it now, assuming nothing changes tho
Unused custom fields don't really do anything bad
okie
why is the tree seed (hasn't sprout) get destroyed when hit with a hoe instead of going back to being seed?
hmmm
depends
early game it happens if your foraging level is 0
which is usually the case when on a test save
wait really? i was kicking myself in the head for never merging the PR to add the tree names, and it didnt matter?
Haha
there's no new release since nov last year
a massive refactor (including moving to gmcm, tree display name, etc.) is coming eventually but yoba knows when it's done (soon™)
@brave fable A mod user asked if I could edit the LoC recipes to match the design of my flexible recipes mod, since loc is recommended for using the feature. Would it be alright with you if I did so?
Is there a way to make a CP mod print a config value into the log by default for troubleshooting cases?
Like without any commands, for users who have issues and configs are important.
there's a command for evaluating tokens
oh you said no commands
maybe BETAS has a print to console thing? don't recall
(but I'll be honest any users who can't be bothered to run a couple commands for the person personally debugging for them is liable to be ignored)
It's more of a me thing, like "I don't care enough to ask people to do something at this point" 
I am with selph in that i rather have the excuse to disregard
Yes, use a trigger action to set a mailflag and it shows up in trace
I use this to debug people with cornucopia
when i remember it exists
you can also do similar jank stuff like load an asset on the config condition
Hey everyone 👋
I'm trying to automate SMAPI from another process (Rust), but I ran into a problem.
I start SMAPI like this:
let child = Command::new(&preference.smapi_path)
.stdin(Stdio::piped())
.spawn()?;
Then I try to send a command to it:
let stdin = runner.child.stdin.as_mut().unwrap();
writeln!(stdin, "patch reload \"{}\"", downloaded_mod.unique_id)?;
stdin.flush()?;
But nothing happens — the SMAPI console doesn’t react at all.
If I type the same command directly into the terminal, it works fine.
So… is there a way to send console commands to SMAPI via stdin?
Oh, interesting 
actually its the trigger action that shows up in trace, the mailflag shows up with the trigger action, so technically the mailflag is not needed but I'm not sure what other action would be a good choice to put there
I use the mailflags to communicate between mods, so the trace message is secondary for me
I've tried this before using c#. For whatever reason, smapi simply doesn't accept stdin
I'm not sure why, exactly, since it uses the standard c# api for reading from console
Pathos doesn't know either
Alright...looks like I’ll need to find another way to communicate with SMAPI.
hmm. mine does, when i use my cursed redirect-from-fifo setup on linux for hot reload
(which i only have to do because when SMAPI is running via dotnet watch, approximately half of my direct input gets eaten and enters the void, but redirected stdin is fine)
Huh, really? I wonder if my old autocomplete PR would be fine
(SMAPI doesn't use Console.Read/Write directly anymore with that)
...specifically the second autocomplete PR
The one that isn't closed yet
Despite being over a year old at this point
I should really update that
(it does, and will even log under your mods name and not BETAS)
how's that work? What I tried was piping input in by starting SMAPI as a child process and writing to the input stream and it just ate everything I gave it. when I tried a test setup with a minimal "echo" console project, it worked fine.
(from the script that i have set as my RunCommands)
FIFO=$(mktemp -u hotreload-smapi-input.XXXXXX)
rm -f hotreload-smapi-input.*
mkfifo "$FIFO"
xfce4-terminal -e "sh -c 'echo \"SMAPI console entry >\"; while true; do cat >$FIFO; done'"
exec ./StardewModdingAPI <"$FIFO"```
it's irritating because it makes a second terminal which accepts input but doesn't display it, and the initial terminal displays but won't take, but if i don't do that then the starting terminal eats an arbitrary subset of keystrokes (for mysterious reasons) so is totally unreliable
hot reload is Good™ so i pay the price, but if i don't need it need it then i just run the game conventionally
So maybe it's a windows or c# specific problem
have you tried file descriptor shenanigans
and also may I please introduce you to things like tail -f, while true: cat's less illegal cousin
oh wait that's your INPUT loop(?)
scary
yeah this is to send input, i know about tail -f
Ichor did you ever see the tail -f talk
no
Once a decade ago a friend linked me to a talk on tail -f and how cursed it is
And I've never been able to find the talk since
-# I still prefer file descriptor crimes over while true cat crimes
But it has cat in the name
No, the cat needs to be in pretzel mode for that
nuh uh, linux cats clearly pretzel automatically
i assure you there was a reason i put the while true in there (every line of my above crime was determined empirically to be useful), but it was long ago and i don't remember what it was
Ah, so it's like ancient magitech in fantasy stories
But instead of hundreds of years it could've been, like, two months ago
oh I'm sure there is I'm just being a terrified shell (ab)user
if anything shell scripts that work are scarier than ones that don't
(Or in other words, the load bearing coconut.png story)
Same thing depending on how your brain works
Bold of you to assume my brain works
Hohoho
Only on days where your mind and body agree to a ceasefire and permit crab you to do tasks am I right
New quote added by atravita as #6718 (https://discordapp.com/channels/137344473976799233/156109690059751424/1433524974387204306)
Guys I think windows is drunk
What, no way
I feel like I vaguely recall this happening once in the distant past
I assumed it was a SMAPI thing, but I'm not using SMAPI here
What in the world
Ah, the magical expanding window when it's not on a primary monitor? I recall coming across that in the support threads. xD
Farm Type Manager question for anyone - I want to add a modded item to a beach spawn, but only if said relevant mod is installed. Can I do it in the main FTM content file? Would I use the "GameStateQueries": [], extra condition?
there is a CP condition field that should accept hasmod
and so yes, main FTM should be able to
⬆️ "CPConditions": {"HasMod": "That Mod's ID"}
you could use a GSQ if you require something that adds a HasMod GSQ, but the base game doesn't, iirc
"CPConditions": {
"HasMod": "mistyspring.ItemExtensions"
},
Here is how i'm doing it, even if this one isn't needed anymore (but back then i wasn't sure if i wanted to have IE as mandatory)
Esca was faster than me 😄
coolio, thank you!
hey! so i have a long, fairly complex event that changes locations a lot, it'll go town - mayor's house - mayor's secret basement - town, but because the event is so long, I want to split it into two pieces for easier editing. I'm planning on splitting the event right when they get to the secret basement. The thing is, where I would put the entry for the second half of the event? ik the switchEvent thing has to be in the same location, but which 'same location' would it apply to?
hmmm should i maybe change the location back to town at the end of the first event, and then have the second event immeadiately warp to the basement?
I should look into that since I'm on a computer it's affecting. Tomorrow, though
having some kind of brain blankspot again i think
"Action": "Load",
"Target": "{{ModId}}/assets/pets/gothicadog, {{ModId}}/assets/pets/antiquadog, {{ModId}}/assets/pets/spot, {{ModId}}/assets/pets/boneypet {{ModId}}/assets/pets/diamonddogpet, {{ModId}}/assets/pets/adoptdogs",
"FromFile": "assets/pets/{{TargetWithoutPath}}.png"```
this is loading my assets
"{{ModID}}_spotpet": {
"Id": "{{ModID}}_spotpet",
"Texture": "{{ModId}}/assets/pets/spot",
"IconTexture": "{{ModId}}/assets/pets/adoptdogs",```
this is editing pet data
"Texture": "cryomancer.snesdogs/assets/pets/spot",
"IconTexture": "cryomancer.snesdogs/assets/pets/adoptdogs",```
there's the patch export
but the game acts like the textures are null
adoptdogs works tho
hmm maybe AHM is breaking something somehow
ok no still does it without AHM
files seem ok
must be some tiny thing i'm missing here
oh fff
yeah missed a comma in the load
tale old as time
it is vanilla behavior that an animal that requires an upgraded building to get can also be put into a lower one, right?
like you need a deluxe barn to get pigs, but when you have one, they can go in any barn?
Dwarf love ❤️🔥
sure, do whatever you like
feel free to edit any of the LOC internal or game data as you like, just make sure it's via CP and not overrides of course (including seasonings which i remember you mentioned earlier)
Morning, bluebs !
all bug reports are your responsibility 🙂↕️
god you're fast
but not fast enough. it's lunchtime
can i have a morning atra
Isn’t that on you, for not showing up earlier
Good morning 6480!

Wait is 6480 in morning land
It's a great day for debugging convergence issues 🙁
I’m in bedtime land
morning atra
lunchtime atra
I think it’s a bit past lunchtime atra
Unless you wake up in the afternoon and count that as your breakfast sort of thing
Good <t:1761875280:t>
I’ve certainly never done that before. Definitely wasn’t like that even just a few months ago. No ma’am.
woah, how did you know my exact time, are you a wizard 
hehe
Oh it's the middle of the night I'm just rocking to little mix
Someone let me have coffee
Oh wair
That someone was me since I'm an adulty adult
(Compared to me, a childly adult)
it's way past lunchtime! it's 2am!
hey ichor maybe you should go to bed
if I start going to bed at 2am I'll lose all my street cred
Is it possible to prevent a CP mod config from being added to GMCM?
If I remember, you can have it appear during the menu option, but not in the game. I though I can't remember which mod had that option
No, that's only C# mods


