#making-mods-general
1 messages · Page 281 of 1
you dont
you don't need it, Data/Objects step is for confirming Texture
ooh that explains it
the name of the item doesnt matter, because you are just editing the texture
SVE/Cornucopia/whatever mod you're editing will then use that texture in their edits still, with your edits applied
they need to care about the item name and sprite index and such
you just need to worry about replacving the right square of pixels in the spritesheet texture
wait so im confused again. the sprites for the seeds arent in a sheet in the sve mod. theyre single png files for each items sprite.
hrm i cant start local coop
from the games perspective, a single png and a whole spritesheet are no different
the former is just a very tiny spritesheet
random question: how hardcoded are the random map pools for skull cavern and volcano?
it does make it more annoying for you though
bc you'll need to find the original texture paths for each item
very but there used to be erinth mod for it
so each item in their Data/Objects patches will have their "Texture" field set to something else
Button storage mod when
and you will need as many different EditImage patches as there are items you want to edit
Not terribly hard to de hardcode
however it does make it easier to figure out what pixels you're replacing, bc you wont need to worry about it at all and can just do Target and FromFile and not worry about FromArea or ToArea
@rancid musk hello i think local coop button doesn't work in better game menu
edit: no error but here be logs https://smapi.io/log/e91db2c72bf44728bb2eccb2109ce1fc
i beg to differ on the volcano part
okay so basically it will look like
{
"Format": "2.5.0",
"Changes": [
{
"Action": "EditImage",
"Target": "my sprites path",
"FromFile": "Mods\FlashShifter.StardewValleyExpandedCP\Cucumber Seed"
}
]
}
this?
no, swap the Tartget and FromFile
Target is what you are editing. its the target of your patch
FromFile would then be like "assets/items/mycucumber.png" or w/e
did you read the edit image documentation, it explains much of this
thanku both, I figured it was but didn't know for sure 
tell me SVE was converted from JA to CP without telling me /lh
arent cucmbers new
i started to but then you all were talking and explaining and making more questions and i learn better asking people questions then just reading a document
how do you go about disabling individual objects in an asset pack (like Peachy Objects)?
I mean lile
they are but if all the others were converted they probably just followed what they already had
well we are just reiterating the documentation
@ivory plume, There's a potential Content Patcher bug related to Robin's community upgrade that give shortcuts all over the maps?
Reproduction Steps:
- In
content.json, use anIncludeaction that has a fulfilledWhenfield pointing to another.jsonfile. - The included
.jsonfile contains anEditMapaction targetingMaps/Forest.
Issue:
After applying the edit to the Forest map, the special warp from the Forest to the Beach stops working.
Addendum:
If the EditMap targets Maps/Beach instead, it seems to break the warp from the Beach to the Forest as well.
this is just the chest?
it's on the mod page description
arent volcano dungeons using the funny layout
Here's an example mod that reproduce the issue:
i think that might actually be possible to randmize somewhat on a day to day basis
will deleting assets cause any problems?
Here's a SMAPI log if it helps: https://smapi.io/log/4ddbaf0ca40542228daca27e3f835191
Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Pro, with 3 C# mods and 1 content packs.
i wonder if this falls under vanilla bug or CP bug tbh
It still isn't hard to, you just make maps in a different day
i appreciate it, in fairness i was sent 3 different pages while trying to understand which one had the information i needed for which thing lol
Somewhere i had a project for it
Anyways
I'm gonna go back at looking at tomato cake
have you looked at all the other hardcoded bullshit in the volcano
i think i understand what needs to happen then, thanks all o7
alright, I've got a bit of a pickle. Someone testing for me has reported that my NPC is throwing an error. https://smapi.io/log/ef3d6405d8d84e5d87a54e9d75680012 It's got several problems, and I'm fixing the ones related to my mod and not Love of Cooking exploding, but the one that's puzzling me is how it says there's already a rain2 schedule. They mentioned it was during a modded weather from either Weather Wonders or Project Danger Weather.
https://smapi.io/json/none/2176e6d65a9a4ee5a5c0e04719fd9863
This link is the schedules JSON. It's telling me about an error that I am also fixing and seems unrelated.
Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Microsoft Windows NT 10.0.19045.0, with 262 C# mods and 629 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
Yes!
I got about fifteen minutes into making new maps for it and gave up
One day I'll nerdnsipe kailey into it
sounds like it was hard to do!
I'm assuming it doesn't want me to do two "has flags" in the same statement, though I think that's the only way to make it require both flags, isn't it?
Hi, it me i can figure out which one of the 2 mods the weather comes from if that's helpful
it was difficult enough that i didnt even bother keeping even a half assed attempt in my mirror mode mod
Tiled is annoying!
That might help. It's not anything I can see looking through this, hoping more eyes will catch it. Or at least more experience with weather mods
I also tried to make one of the png maps but I lack game design skills
NPC 'MV.Municipal_SheriffBill' failed to parse master schedule 'rain2' with raw data '0 MunicipalFloor2 22 14 2/610 MunicipalFloor2 22 14 2 MV.Municipal_bill_readside/1100 MunicipalFloor1 22 7 1 MV.Municipal_bill_working/1100 Saloon 42 23 2 MV.Municipal_bill_saloon_lunch/1330 Town 80 58 2 MV.Municipal_bill_fish "Strings\schedules\MV.Municipal_SheriffBill:MV.Municipal_SheriffBillStakeout"/1600 MunicipalFloor2 24 7 0/1700 MunicipalFloor2 22 14 2 MV.Municipal_bill_readside/2200 MunicipalFloor2 6 7 MV.Municipal_bill_sleep "Strings\schedules\MV.Municipal_SheriffBill:MV.Municipal_SheriffBillSleeping"'.
ArgumentException: An item with the same key has already been added. Key: 1100
at System.Collections.Generic.Dictionary2.TryInsert(TKey key, TValue value, InsertionBehavior behavior) at StardewValley.NPC.parseMasterScheduleImpl(String scheduleKey, String rawData, List1 visited) in D:\GitlabRunner\
oh, that schedule bug
You literally just have 11 am twice
I was reading that wrong
No worries!
at least it wasnt caused by a this time
a is so helpful but you do have to be aware of that, yeah
Schedules scare me
I know, right! I'm so much more of a task based person than I am a schedule based person
he can make all the tomato cakes he wants
thank you, I'll try it 
Are you sure having an Include patch is required to trigger the bug? I do see a potential issue in the SMAPI code (it doesn't reapply vanilla map patches when a map is reloaded), but it would happen when the map is reloaded regardless of whether the patches are in content.json or included.
(Hmm, actually vanilla map patches should already be reapplied.)
I tried having the EditMap directly in the content.json, both without and with a When field, and the issue didn't happen.
(i was gonna say i was messing with map patches/makemapmodifications specifically a lot recently and they always reloaded when i invalidated things afaik)
And it's only if the Include has a fulfilled When field.
I'll need to look into it; any chance you could submit a bug report on the Github repo with that mod, a sample save with the shortcuts unlocked, and the repro steps?
Hiya, everyone. Is the 24 color mini palette included in Cursors2 the one the in game color picker uses? For coloring chests and whatnot.
Trying it. Do I need to upload the mod and sample save somewhere else?
Nope, you can attach the files directly to the ticket.
fyi pathos earlier i gave dolphin a test mod that does this in a prefix on Forest.showCommunityUpgradeShortcuts and it fixed it
private static void Forest_showCommunityUpgradeShortcuts_Prefix(ref bool ___hasShownCCUpgrade)
{
ModEntry.Log($"showCommunityUpgradeShortcuts: {___hasShownCCUpgrade}, will set this to false", LogLevel.Info);
___hasShownCCUpgrade = false;
}
all it does is force Forest.showCommunityUpgradeShortcuts to always do stuff
@devout otter Hello dear, could you make a nyapu version for this mod? I found it interesting, and I think you will too! (Sorry to the staff if I'm on the wrong channel)
I'm not asking for anything, just making a suggestion.
Definitely worth adding a comment on the ticket with that info. It sounds like the shortcuts are doing something custom and not just using the default map overrides feature. If so, it might be something we fix in the next game update.
i would think that should already be happening from MakeMapModifications being called with force = true 
yea i thought so too, so it's confusing why it worked
I also don't know if you're the one who makes the Nyapu arts, I'm confused..
dolphin is not nyapu
Oh, sorry for the mention! I don't know where to look for Nyapu...
on nexus
nyapu is an artist/modder's name and is someone else, yes
Okay, I'll try.
(Not a fish and not Nyapu. What is Dolphin?
)
er, wrong channel?
🤔 mammal
I put it on GitHub, I hope I did it correctly: https://github.com/Pathoschild/StardewMods/issues/1103
Thanks! Yep, that looks fine.
Yey, thank you for your attention!
Not a fish in sight. 
ive decised in my head that imma re-do the sebastian portrait i made even though it would just take even longer to finish all of them 
the things ill do just to please my mind
I know this might be impossible/really hard to do, but is there a way to define how objects move around when a building is upgraded? For example, if a building adds a room to the left and some space in the middle, can you define something that moves all of the items in the origianl room over to the new position at the right?
Certainly in c#
The upgrade is made inside of Content Patcher by adding it to Data\Buildings, how would i detect in c# when the building was updated and move everything?
!decompile
If you want to make SMAPI mods with C#, one important resource is decompiling the game to read the game code. Here's how to do it: https://stardewvalleywiki.com/Modding:Modder_Guide/Get_Started#How_do_I_decompile_the_game_code.3F
doesnt BuildingData have an IndoorItemMoves field or something
it does, it lets you select a rectangle of space to move from and to
you can define multiple moves
Oh then listen to button lol
And can I just define the ID as anything?
the Id is the same as an Id in any other data asset, in that its for you to define as long as its unique within the list
Ok I see thank you a lot! Thats a lot easier than what I was thinking
is a content pack(as opposed to a smapi mod) just a content patcher mod?
no, not necessarily
Not necessarily CP. Could be JA, FF, AT, etc
all mods are SMAPI mods, but not all mods are C# mods
Content Patcher is a C# mod that reads your json files to do things for you, which is what makes your mod a content pack for content patcher
okay, so how do i know which format to use in my manifest.json?
but like Aba says there are other frameworks that will also read jsons
the manifest.json is 99% the same for every mod
but the getting started guide on the wiki should also link to the format
a content pack is a mod that is consumed by another mod, instead of directly interfacing with SMAPI.
most content packs are for content patcher, i expect
the only difference between a C# mod and a Content Pack manifest wise is the ContentPackFor line vs the EntryDLL line, with C# mods using the latter
If you're referring to the "content pack for" field, the mod that you put in that field is the mod that you wrote the content pack for.
oh okay so the mod im making rn is a replacer for the textures of seeds/saplings from expanded, am i making a smapi mod or a content pack?
the premise of the question is wrong, bc you can do that with either kind of mod. what you should be asking is what framework you are using to make the mod, if any
are you making a Content Patcher mod? if so, you're making a content pack mod with Content Patcher, and Content Patcher is the ContentPackFor
are you writing C# code and compiling things into dlls? then you're making a C# mod and you use the EntryDLL format
Does anyone know of any way to teleport an NPC directly to the location indicated (by schedule or otherwise) with the content patcher?
i think its a content patcher mod? im 99% sure im not using c#?
presumably you've been following some sort of guide or documentation somewhere?
yee, definitely content patcher, thats the github page im on
You can use 0 schedules to start the day with the NPC in that location. 0 schedules are where your first entry in the schedule has a time of 0 instead of 610 or whatever time after 6am that you'd normally have.
then you're making a content pack for content patcher
cool so i can just leave the
"ContentPackFor": {
"UniqueID": "Pathoschild.ContentPatcher"
lines from the wiki example as is then?
yes
oh, thank you!
awesome, where do the dependencies lines go then? i dont see where to put them on the wiki page
the dependency line just goes beneath everything else
okay like, using the examples
{
"Name": "Your Project Name",
"Author": "your name",
"Version": "1.0.0",
"Description": "One or two sentences about the mod.",
"UniqueID": "YourName.YourProjectName",
"UpdateKeys": [],
"ContentPackFor": {
"UniqueID": "Pathoschild.ContentPatcher"
}
}
"Dependencies": [
{
"UniqueID": "SMAPI.ConsoleCommands",
"MinimumVersion": "3.8.0" // optional. If specified, older versions won't meet the requirement.
}
]
this?
no, beneath the other lines like ContentPackFor and UpdateKeys
it must still be inside the overall json object
okay thats what i thought, so before both of the } things at the end?
only before one of them
my brain saw the last bracket ] as } o7 my eyes i guess lol
so
{
"Name": "Your Project Name",
"Author": "your name",
"Version": "1.0.0",
"Description": "One or two sentences about the mod.",
"UniqueID": "YourName.YourProjectName",
"UpdateKeys": [],
"ContentPackFor": {
"UniqueID": "Pathoschild.ContentPatcher"
"Dependencies": [
{
"UniqueID": "SMAPI.ConsoleCommands",
"MinimumVersion": "3.8.0" // optional. If specified, older versions won't meet the requirement.
}
]
}
}
this feels wrong
your feeling is correct. do not mess up the braces for ContentPackFor
{
"Name": "Your Project Name",
"Author": "your name",
"Version": "1.0.0",
"Description": "One or two sentences about the mod.",
"UniqueID": "YourName.YourProjectName",
"UpdateKeys": [],
"ContentPackFor": {
"UniqueID": "Pathoschild.ContentPatcher"
},
"Dependencies": [
{
"UniqueID": "SMAPI.ConsoleCommands",
"MinimumVersion": "3.8.0" // optional. If specified, older versions won't meet the requirement.
}
]
}
side note, i forgot how to make that code box
!codeblock
You can embed code in Discord using a series of three ` :
```
Your code can go here
Even if not a haiku
Just an example
```
For syntax highlighting, add the language code on the same line as the first
``` (with no space, like ```json).
The usual codes are cs (C#) and json.
gotcha ty
so youve added the comma added after the last } whatchamacallit for ContentPackFor right?
just before the dependencies line
yes
okay making sure that was necessary cause i would def have missed that lol
its a necessary concept in json in general
yee, its been a bit since ive done any coding and i wasnt exactly good at it last time i was doing it lol
which manifest.json do i use for stardew expanded? there are 3
for a dependency?
yee
either whichever one adds the items you're editing or just do all 3
o7
Anyone familiar with the UI code that can tell me whether the orange border on the skills page is hardcoded, or did I miss something in the cursors page?
its likely hardcoded, and also likely something that Theme Manager can replace
or perhaps spacecore does away with it since it touches the skills page? unsure.
but yeah, theres a handful of annoying hardcoded UI colours in various places. skills page is one of em
Yuck.
TY, Button.
so to double check
{
"Name": "Muted Expanded Pack",
"Author": "JaneAndTonicc",
"Version": "1.0.0",
"Description": "Item texture replacer for seeds and saplings to match the muted seeds and muted saplings mods.",
"UniqueID": "JaneAndTonicc.MutedExpandedPack",
"UpdateKeys": [],
"ContentPackFor": {
"UniqueID": "Pathoschild.ContentPatcher"
},
"Dependencies": [
{
"UniqueID": "FlashShifter.StardewValleyExpandedCP",
"MinimumVersion": "1.15.8"
}
]
}
this is all correct for my manifest?
assuming the uniqueid is correct for SVE's CP component, then yeah
if you plan on posting it to nexus eventually, you'll want to remember to add the updatekeys when you get to making your mod page
i dont see an explanation for what to put in the update keys spot, i assume that its basically, i put the number 1 there for the first version and thats probably all ill need to know for this mod?
you already have the version as 1.0.0, which follows semver (https://semver.org/), the updatekeys is what SMAPI uses to see if a user should download a new version of your mod.
<have you found the wiki page for the manifest yet? if not, it links to a different page for update checks thatll explain it better than i can probably
https://stardewvalleywiki.com/Modding:Modder_Guide/APIs/Update_checks
dont worry too much about what semver is just know its why its 3 digits separated by dots. 1.0.0 is the first version, typically
oh i didnt realize updatekeys was different than version, ill give that a look through then
ooh so the updatekey is just the numbers after the last / in the link to the nexus page of the mod?
correct
great so dont worry about it till im uploading o7 ty
I'm loading in a texture in Content Patcher like this:
{
"Action": "Load",
"Target": "Maps/GreenhouseOverhaul_Greenhouse1",
"FromFile": "assets\\Greenhouse1.tmx"
}
And then have a building upgrade that uses it like so:
"IndoorMap": "GreenhouseOverhaul_Greenhouse1"
However, for some reason the map doesnt load when the Greenhouse is upgraded, and when I run patch summary the Load item is not applied. How do i fix this?
The weird thing is if i close the game and reopen it the map is suddenly loaded
okay ive done my content and manifest jsons, the sprites are all made, i think im done? how do i test it if i use vortex? im not sure how to add a mod to a profile from my computer
Vortex isnt really something good to use but when you compile your mod it should automatically place it in your Mods folder
wym compile my mod?
What IDE are you using, and do you have a .csproj file?
jane isn't using C#
she isnt making a C# mod
Oh ok
(also im using vortex cause im making a collection for my friend and i to use so its easier for her to download everything)
In that case just copy the folder into your mods folder
awesome ty
(janes pronouns are she/her btw
)
(understood!! sorry!)
o7 no harm done, glad you default to they/them, just saying for future reference 
Ohh noooo I got an AVE
milestone!
If restarting my computer doesn't fix this, I will have officially finished my 1.6.8 playthrough lol
1.6.8 lives to see another day
[New Achievement]
If you want you can try that alpha mod manager they got
NMA?
yea is that stable enough rn?
I also realize i forgor to reply
Oh lol I thought you were telling me I could use NMA lol
(I just deployed a new version to smapi.io; let me know if you see any issues!
Main changes:
- Improved JSON parser:
- You can now hover/click braces to highlight matching pairs.
- You can now hover and click 'Copy' on the top-right to copy the full code to the clipboard.
- Updated to a newer syntax highlighting library.
- Fixed some JSON files breaking the page layout.
- Third-party libraries are now served from
smapi.ioinstead of external CDNs. - Removed support for very old SMAPI logs.)
o7 np, im testing rn actually
I wouldn't recommend anyone use NMA yet. Too risky for the average user to install a mod manager that deletes your mods if you do the wrong thing.
ooh whats the new syntax highlighting library
Migrated from Sunlight (last updated 12 years ago) to the more modern Prism.
blue... my nemesis /j
is the stripping of comments now intentional
... or did it always do that. am i misremembering
(The JSON parser has always done that; the parsing logic hasn't changed.)
i have a good brain i swear
The JSON parser formats the JSON using Newtonsoft.Json; that part hasn't changed in quite a while.
i just checked an old json that was posted yesterday and it has trailing commas, but the one i just uploaded doesnt
Can you link to the old JSON?
hm... i wonder why mine are being removed then
oh, wait, the trailing comma is there, just.. only visible if you go to edit the file
If there's JSON errors, it won't get formatted. For example, here's the same file with the error fixed.
theres one after the first "CreateOnLoad" mappath
its not like its an important thing anyway, just somethin very small to keep in mind if someone uploads their stuff to the validator and then goes to copy from it again 
(The ways of Newtonsoft.Json are mysterious.)
"I could have sworn I left myself a comma..."
ideas my brain came up with while playing.
Idea 1: Robin gets a apprentice. the apprentice is a robotics expert who can build construction robots that either help robin or the apprentice do the jobs faster or replace them entirely allowing for more jobs to be done at once. maybe certain tiers can only do certain jobs. basic could do the silos or maybe a well but the more advanced ones can build the sheds, barns etc.
idea 2: the farmer drops the community centre items randomly in the community centre. the cute junimos walk up to the items and can sort it for you.
question, how do i make the game reload my mod so if i edit the textures i can just do that until they look like they fit?
!reload
- Content Patcher pack: enter
patch reload <your_mod_id>in the SMAPI console window. This will reload and reapply all your patches (but won't recalculate theConfigSchemaorDynamicTokensections if you use them). - Translation files: enter
reload_i18nin the SMAPI console window. If it's for a Content Patcher pack, also runpatch reloadafterwards. - C#: see the Visual Studio hot reload or Rider hot reload feature.
patch reload YourModID
awesome ty both o7
(if you find that something isnt reloading when you expect it should, remember to make sure you are trashing the items and spawning new ones instead)
anyone know why the front and back animation is next to each other but the side is like this lol
that thing at the end is the item icon, no?
Does anyone know what NPC Map Locations uses to determine the icon on the map for the characters? Trying to figure out why the bookseller replacement's sprite looks so wonky on the map
I don't know how to help but that is so funny to me 
https://github.com/Bouhm/stardew-valley-mods/blob/develop/NPCMapLocations/docs/author-guide.md#customize-an-npc-icon it's this icon right?
My mods for Stardew Valley. Contribute to Bouhm/stardew-valley-mods development by creating an account on GitHub.
Bookseller doesn't have a true sprite (it uses Cursors_1_6 for the maptile NPC), which is why I'm a bit confused.
Mostly confused about the unfortunate widening. LOL
https://github.com/Bouhm/stardew-valley-mods/commit/d8b301eee433a25680f5316c807e6a40514f71e1 okay there's the source rect
though why does it stretch 
okay i finished making a mod that patches stardew expandeds crops to fit the aesthetic of a seed/sapling retexture, do i need permission from either side to upload the patch or?
what are the permissions like
Flash doesn't mind 
idk what the perms on the page say but I know what he's said a billion times in the SVE server (and said to me personally)
As for the other mod I don't know heehoo
yee i wasnt really worried about flash tbh, from what ive seen they dont mind, its more because of the other mod i was worried about
gah, so my computer was able to install brainrider for once, thanbkfully, and now im struggling with tryna make the code recoginze the right path 
im following the wiki the best i can 😭
basically the target can find the correct path, but it cannot find the files .ᐣ.ᐣ
it uses the sprite and an offset iirc?
(fyi it's just rider, idk what brainrider is and neither does google)
JetBrains is the company and they make a bunch of products, i also didnt know thats what you meant and thought it was like, a Mac alternative or something
(idk what the cause of the error is though sorry)
I'm wondering if the source rect is wrong, because the Traveling Cart uses 22, 21, which is a very different ratio.
would probably need to confirm that against the normal villagers though
the red box looks to be what the code is pulling
which, my replacement is shorter but still within that box.
well i got the same error. i cant figure out how the hell to fix it aside from deleting the folder itself.. but theres no folder created by the program????
so would that i mean id need to delete the stardew valley folder ????? im not gonna do that but ugh this is confusing
The filepath contained in the error switches between forward slashes and backslashes, which seems unusual to me. Did you specify your game path anywhere?
ah yeah i was going to mention that when i saw it
idk if that's like
fine or not though
since ive never used rider
i feel like mine usually also has a mix of slashes. it says it found the folder anyway though, it just cant see the files
I know, I was just wondering if somehow it wasn't actually the right folder or something.
idk if it means anything but when i just copied the code from the wiki, the stardew valley is in red
this is my second attempt
whats in your .csproj
every solution has a csproj
either go to the folder your mod project is in manually or right click on the green "Test" part on the left there and go to Edit -> Edit .csproj
did you used to have stardew installed on your C: drive?
but was it previoously on your C drive
then the issue is that it found the old drive on the C drive that is now empty
old folder*
the hint path has D: in it though so it should be targeting that, no??
ah
<GamePath>YOUR PATH HERE</GamePath>
<GameModsPath>$(GamePath)\Mods</GameModsPath>
add this under the <TargetFramework> line
obv replace the YOUR PATH HERE with the same as the hint path, but minus the last \Stardew Valley.dll
the last part of the gamepath should be "\Stardew Valley"
ok so that got rid of the error
but it gave me a warning xd
0>CSC: Warning CS9057 : The analyzer assembly 'C:\Users\Owner\.nuget\packages\pathoschild.stardew.modbuildconfig\4.3.2\analyzers\dotnet\cs\SMAPI.ModBuildConfig.Analyzer.dll' references version '4.9.0.0' of the compiler, which is newer than the currently running version '4.3.0.0'.
yeah thats whatever
ah so i can ignore thay?
yes
you also dont need that HintPath part now btw
ee oke
you can get rid of that entire ItemGroup
is there a flag or GSQ for grandpa's shrine?
or for having all of the candles on grandpa's shrine anyways
not without BETAS

Hello! I want to debug a mod from both host and client side and have set everything up except the timeout issue. While I debug as the host, the farmhouse player gets disconnected after a short time. Is there a way to configure the timeout wait time to be longer?
I draw sleeping img, but they dont sleep
I also write "SleepFrame": 12 too, what's is problem?
I've never looked at animal data but frames start at 0 from the top left, frame 12 of that appears to be the dinosaur is standing looking left.
I assume it starts frame 16
the animal animations are pretty janky sometimes. how is your animal's .json set? the spritesheet layout depends on what you have enabled
i notice you're using the one with 7 rows so chances are you have some option not set correctly, the frames get WEIRD if you dont stick with vanilla animal settings
you need to have "UseFlippedRightForLeft": false and "UseDoubleUniqueAnimationFrames": true if you have the 7 row layout
(also yeah sleep frame should be set to at least 16)
Fatz and I are creating a python framework for programming mods using the content patcher, and a structure somewhat similar to programming for c# in smapi modes, if you are still interested, it is still in alpha, we are doing the documentation, but it is already available to install via pip
Hi,
I'd like to clarify something for myself:
I had some marriage dialogues copied from the wiki and commented out. <NPC name>_Engaged and <NPC name>_EngagedRoommate were among them. I prevent marrying my NPC using RejectItem_(O)460, so my NPC won't accept the pendant. Because I'm working on an unstable-for-now marriage update for my NPC, I thought I'd replace that RejectItem_(O)460 line with AcceptGift_(O)460; however, <NPC name>_Engaged does the same thing.
Therefore, my question is - if both dialogues would be included in the code, which one would the game choose (and hence, which one should I keep in the code)?
If you don't want to wait until someone with the knowledge comes along, that should be easy to test yourself by just setting the lines as different things and then giving her a pendant. I would tell you but I am not confident that I've read the code correctly lol.
My guess is the engagement nit accept gift
But I not even at laptop
I search for water bottel
My read is that it tries to get Data/EngagementDialogue first which is why I am not confident in my read of it haha
I'm testing it right now, will report back!
(but first I have to re-activate the configs, I forgot to delete their commenting-out (or how should I call it))
It'll take longer than I though, I messed something up and it uses the default vanilla dialogues...
OK, now she accepts it, but she uses the vanilla dialogue (I forgot a bouquet and then upgrading the house)
What vanilla line does she say?
I didn't take a pic of it, but it ends with "I'll let you know in three days" or something like that.
Something like "...!!! $l#$b#I accept!! $h#$b#...$l#$b#I'll set everything up. We'll have the ceremony in 3 days, okay?$h"?
Yeah, that one!
I probably set the target wrong, it looks like, but the gifts one is (hopefully) correct.
The gifts one would just be in her normal dialogue file.
The engaged one should be in Strings/StringsFromCSFiles
How do I get VSC to stop yelling at me for errors again?
That would probably be the problem, I used a patch with Data/EngagementDialogue
!vscjsonc
In Visual Studio Code, go to File -> Preferences -> Settings, then search for "associations", and in the "Associations" setting, click the Add Item button to add an item with key *.json and value jsonc (see image).
If you are making a content pack for Content Patcher, you should consider using its json schema so that VSCode can tell you if your patches are valid, you simply have to add
"$schema": "https://smapi.io/schemas/content-patcher.json"
at the start of your content.json file.
That one's correct
I think you should keep a patch editing Data/EngagementDialogue for testing as well, but the line for that would be Eleanor0 (assume I am using her actual internal name here of course).
Thank u
Oh, thanks! I forgot to change it here!
Sorry, checking that one will take a long time, SV is crashing for some reason
Nothing in the log, though: https://smapi.io/log/1a9b7750d6bf4c13b2c41cab73a26e6f
(or I'm blind)
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Pro, with 76 C# mods and 33 content packs.
Can you open it and watch it while it loads? You might be getting an AVE and those don't save to the log. Be prepared to take a quick screenshot.
If you are having an AVE, the fix is usually to restart your computer.
Sorry, went off for a while, solving other things.
Here are the screenshost.
Yup, AVE. Restart computer ^_^
i'm... not quite sure how restarting a computer would fix an AVE, especially one coming from Harmony
Sadly did not help...
What did I mess up THIS time...?
Because random AVEs tend to be unknown cause and unknown fix so restarting Stardew and then restarting computer tends to be the most useful advice. Sometimes removing and re-adding a random C# mod also helps.
random AVEs tend to actually be caused by badly written transpilers, or multiple mod transpilers breaking each other
AVEs are caused by mods using Harmony, so I doubt you did anything. I got one yesterday that I fixed by restarting my computer.
i've never had an AVE that wasn't that
anyway, have you installed or updated any mods recently?
I've had one AVE in 250 hours of play time with my current 1.6.8 mod setup - and I got it months after the last time I adjusted my mod list in any way, so while I believe you that they're caused by badly written transpilers or by clashes, they can be very hard to pin down.
them being hard to pin down i can agree with
Last mod I updated was CP to 2.6.1 from 2.5.0.
And I haven't touched my C# mod part for a while, and it doesn't touch Harmony at all.
(it's a testing profile)
well, it seems like it's at least somewhat related to Dynamic Map Tiles
(Unrelated to this, but why on earth do you have Pytk Dummy installed for a mod testing setup?)
as it AVE'd the moment Dynamic Map Tiles tried to apply its patches
I had it for something there..... I should probably move it away, shouldn't I?
And I'll test it without DMT.
I thought that the problem with Harmony-related crashes is that the mod that's referenced in the error is rarely the one causing the problem. Hopefully that's not true in this case though.
it might be related, but not necessarily the reason
if it doesn't crash without it, i'd try going for a harmony_summary (i think that was the command? it was a while...), keep a log of that somewhere, then try a clean setup with just DMT and harmony_summary again, then see which patched methods overlap between DMT and other mods
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Pro, with 74 C# mods and 32 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
@calm nebula: make npcs prefer to keep walking in the direction they are already going for the move to command (5d ago)
And here's the other one:
https://smapi.io/log/c1554a51ec7d4c5f8ec0024d180c31d1
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Pro, with 12 C# mods and 0 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
That's a lot more mods than just DMT
Yeah, I know, shoul I try onl DMT?
That is what Shockah said to do
Sorry for that, here's only DMT:
https://smapi.io/log/19c7b2bc3aa9401dbce69aa7e9945696
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Pro, with 2 C# mods and 0 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
hm, all of these are prefixes or postfixes
it would be very weird if DMT was the "cause"
yeah unfortunately hard to say
DMT is definitely the trigger for this AVE
but why? idk
it could very well be some kind of Harmony/MonoMod bug
Try putting your mods back the way they were when you got the AVE
Merp
Remind me in 6 days to make npcs prefer the same direction
just for kicks i'm gonna use lunar cycles to time that one. let's see if I can pull it off (#6617070) (6d | <t:1744473187>)
Remind me in 4 hours to look at the barrels for margot
You bet, atravita (#6617071) (4h | <t:1743969198>)
oh didn't see that
I have to head to bed now but I'm curious about the engagement thing so ping me if you find out!
Let it be known I completely misread this as "I have to head to an engagement party."
I was about to be "CONGRATULATIONS!!!!"
suprise engagement party..
I think we'll never know, because I was trying something like 50/50 method, and I ended up with the SAME loadout, NO NEW MOD UPDATES, and the error is gone...
Let's finally get back to the engagement thing...
Or maybe not. I decommented one patch in my mod, and the error is back... 
Hmm...
If I launch the SMAPI testing profile I normally use, it'll create the error. Then I delete the DMT mod and launch that profile again, successfully. Then I launch the unchanged SMAPI testing profile 2 (that I used as a non-SVE testing profile for emergency purposes, as my SVE-dependent NPC is pretty hard to test without SVE), which now has the SAME mods the SMAPI testing profile have + DMT, and it launches succesfully. So then I copy DMT to original testing profile and now even that one works properly.
...
My SMAPI profiles and my mods are probably cursed 
This is the patch I test, I KNOW IT'S INCORRECT, but I don't think that should be the reason...
"LogName": "Eleanor - engagement dialogues + marriage fix",
"Action": "EditData",
"Target": "Data/Strings/StringsFromCSFiles",
"Entries": { //Data/EngagementDialogue
"Eleanor0": "{{i18n:Dialogues.marriage.Eleanor0 |DT_name={{DT_name}} |DT_wizard_name={{DT_wizard_name}} |DT_wizard_fem={{DT_wizard_fem}} |default={{i18n:key_not_found}}}}",
"Eleanor1": "{{i18n:Dialogues.marriage.Eleanor1 |DT_name={{DT_name}} |DT_wizard_name={{DT_wizard_name}} |DT_wizard_fem={{DT_wizard_fem}} |default={{i18n:key_not_found}}}}",
"Eleanor_AfterWedding": "{{i18n:Dialogues.marriage.Eleanor_AfterWedding |DT_name={{DT_name}} |DT_wizard_name={{DT_wizard_name}} |DT_wizard_fem={{DT_wizard_fem}} |default={{i18n:key_not_found}}}}",
"Eleanor_Engaged": "{{i18n:Dialogues.marriage.Eleanor_Engaged |DT_name={{DT_name}} |DT_wizard_name={{DT_wizard_name}} |DT_wizard_fem={{DT_wizard_fem}} |default={{i18n:key_not_found}}}}",
"Eleanor_EngagedRoommate": "{{i18n:Dialogues.marriage.Eleanor_EngagedRoommate |DT_name={{DT_name}} |DT_wizard_name={{DT_wizard_name}} |DT_wizard_fem={{DT_wizard_fem}} |default={{i18n:key_not_found}}}}",
"Utility.cs.5367": "{{i18n:Dialogues.marriage.Utility.cs.5367 |DT_name={{DT_name}} |DT_wizard_name={{DT_wizard_name}} |DT_wizard_fem={{DT_wizard_fem}} |default={{i18n:key_not_found}}}}",
"Utility.cs.5369": "{{i18n:Dialogues.marriage.Utility.cs.5369 |DT_name={{DT_name}} |DT_wizard_name={{DT_wizard_name}} |DT_wizard_fem={{DT_wizard_fem}} |default={{i18n:key_not_found}}}}",
"Utility.cs.5370": "{{i18n:Dialogues.marriage.Utility.cs.5370 |DT_name={{DT_name}} |DT_wizard_name={{DT_wizard_name}} |DT_wizard_fem={{DT_wizard_fem}} |default={{i18n:key_not_found}}}}",
"Utility.cs.5371": "{{i18n:Dialogues.marriage.Utility.cs.5371 |DT_name={{DT_name}} |DT_wizard_name={{DT_wizard_name}} |DT_wizard_fem={{DT_wizard_fem}} |default={{i18n:key_not_found}}}}",
"Utility.cs.5373": "{{i18n:Dialogues.marriage.Utility.cs.5373 |DT_name={{DT_name}} |DT_wizard_name={{DT_wizard_name}} |DT_wizard_fem={{DT_wizard_fem}} |default={{i18n:key_not_found}}}}",
"Utility.cs.5375": "{{i18n:Dialogues.marriage.Utility.cs.5375 |DT_name={{DT_name}} |DT_wizard_name={{DT_wizard_name}} |DT_wizard_fem={{DT_wizard_fem}} |default={{i18n:key_not_found}}}}",
"Utility.cs.5377": "{{i18n:Dialogues.marriage.Utility.cs.5377 |DT_name={{DT_name}} |DT_wizard_name={{DT_wizard_name}} |DT_wizard_fem={{DT_wizard_fem}} |default={{i18n:key_not_found}}}}",
"Utility.cs.5379": "{{i18n:Dialogues.marriage.Utility.cs.5379 |DT_name={{DT_name}} |DT_wizard_name={{DT_wizard_name}} |DT_wizard_fem={{DT_wizard_fem}} |default={{i18n:key_not_found}}}}",
"Utility.cs.5381": "{{i18n:Dialogues.marriage.Utility.cs.5381 |DT_name={{DT_name}} |DT_wizard_name={{DT_wizard_name}} |DT_wizard_fem={{DT_wizard_fem}} |default={{i18n:key_not_found}}}}",
},
"When": {
"Marriage": "true"
}
},```
I should probably use SMAPI json next time I share a code........
OH! The last Utility key had it's token parser broken! Fixed.
Maybe it's not the only thing that's broken, the game crashed again...
As the log (https://smapi.io/log/d95e44026981446aad130f988c3befc1) ends with loading something from the Hogwarts mod (I have it there because my NPC has a part of its game content only when that mod is installed), and as that mod requires DMT, there still is a issue somewhere...
Let's obey this problem by deleting the DMT mod for now, and come back when I'll solve the engagement thing out.
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Pro, with 75 C# mods and 33 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
That worked, but I still have that vanilla dialogue #making-mods-general message
That might be because I used Data/Strings/StringsFromCSFiles as a target instead of Strings/StringsFromCSFiles. Let's see...
yes, Data/Strings/... does not exist
I'll get this warning:
[Content Patcher] Can't apply data patch "(CP) Eleanor > {{ModId}} - dialogues load command > assets/dialogues.json > Eleanor - engagement dialogues + marriage fix > entry #4" to Strings/StringsFromCSFiles: failed converting entry to the expected type 'System.String': Can not convert Object to String..
Found out the hard way..... (I was too fast when changing that from Data/EngagementDialogue)
That did not help.....
I have to have a look at a NPC that has this patch...
@vernal crest
So after nearly 2 hours of testing (you can see above), I came to a conclusion:
If I tested this correctly (and believe me, I didn't, I know myself too well to know that I messed something up), then the game always searches for <NPC name>_Engaged (with <NPC name> being the NPC's internal name, in my case StrojvedouciDenis.Eleanor), and if it won't find that one, it'll default to the vanilla one you sent here: #making-mods-general message
Looks like the AcceptGift_(O)460 (used normally like other gift dialogues with "Target": "Characters/Dialogue/StrojvedouciDenis.Eleanor") is loaded into the game (at least it is in patch export) but not used.
(and the problem was that as I was shocked from my game crashing, I forgot to change the name in the dialogues)
quick question? what do i need to input to make items be random at the traveling cart??
i wanna help out sadnumbme on nexus mods by figuring out how to make this mod's items appear more at random
https://www.nexusmods.com/stardewvalley/mods/30754?tab=description
it'll be for personal use but i did tell em i'll dm the code/content file for it when i get it to work so they can add it to their files!
You can go in and add RANDOM 0.2 to each condition
this would do the trick
if you do that all items would have a chance to spawn at the same time no?
i mean if that's what u want
Yeah just depends on desired effect
cool cool!
i kinda wanna not have em spawn at the same time
it's mainly for practice but i do wanna help out
hold on imma make a thread for dis
and i forgot how to..
You can
oh??
how so? i lowkey forgot how to
Yea just need orang
makes sense
But tbh there's no other topic here
got dat but i forgo
But tbh channel us quiet rn
so for adding it to make it random? where do i put it on here?
No need for one
why are you using notepad
it's not mine but idk where to put it
Heart, heart, agreement point, laughter, hug
i know use visual code but note pad is super simple
that's not where you'd do it
What does it say about me
what are you trying to randomise?
lemme, do an example i guess. yeah it's in one of the data folder
basically all the items based on the rarity
ex i wanna make it harder to get ancient fruit compared to say goldstarred parsnips
but only when crops are selected
basically it's for the traveling cart! i offered to help randomize the items since they said that they'd randomize it but they don't know how
"Id": "{{ModID}} Misc Item",
"RandomItemId": ["(O)103", "(O)881", "(O)807"],
"AvailableStock": 1
}```
weh
the gist is u make a list instead of listing every single option
ahhh
actually now that i look at it might be best to combine list with the stock amount, like 881 is bone shard and the available stock would be 10
it's basically a mod to include all community center items that can be got from the traveling cart
yee
it'd prob be better if i re did the data files huh?
i'd merge em all into shops.json instead of the individual ones in this case
honestly i'd use visual code but i am not very good at understanding da ui ;-;
it's still possible to make it so it'll show up when the config is enabled right
the author seems to want to know how to randomize it. maybe invite them to the discord
yes. but it's a bit more complex, really
yee kk!
that's very nice of you, i'm sure they'll appreciate it ❤️ my overall suggestion is to read the wiki page i linked and see if you have any questions though
kk!
i still might try to figure it out too :3 not only to help out but also cause i do like the idea of making it random
i understand. it's just easier for me to explain small parts instead of the whole thing, and the wiki does help in figuring it out
i get that!
have you tried Notepad++? it looks just like "notepad" but far superior
i'll have to redownload but i'll try it!
i assume visual code is good but the ui is hard to get
notepad++ is more simple and works better with code
yee! maybe i am also an old school user lol i used to use notepad for writing fanfic back in the day
Any editor is fine as long as it has json validation
and for simple edits i still use it
notepad doesn't got that afaik
Notepad++ is as complicated as you make it. I have some addons for it that do stuff like compare text
I use the hell out of compare text to see what's changed between files
Yeah, as long it's got some validation/json support anything is fine
Well that's why i said "as long as" 
I wouldn't recommend using your notes app or base notepad though
at the very least, the ability to see what brackets close each other
For notepad++ you gotta turn on the json validation
Midnight i would like to lodge a complaint
what did I do
Dare to use rar file in 2025
look
No
I'm old okay
I'm not aware when it stopped being the thing to use, but I clearly didn't notice it LOL
Yeah that's the legitimate concern here
anyway yeah I genuinely just didn't notice when it stopped being The Format To Upload WIth
Psure windows has zip built-in now
it do
it stopped being so like 15 years ago
didn't WIndows add rar and 7zip extraction relatively recently?
looks like it, yeah
(and fwiw, I've only ever heard complaints about rars here and 1 other place
modding's the only reason I knew to stop)
not that I would use rar/7z for mods on Nexus as users get easily confused.. my former boss a year ago was asking for winzip to be installed as he didn't realise Windows was able to open them for over a deccade
(same)
I've never heard it anywhere else either, even though I've uploaded mods for several games on Nexus
I'm gonna fucking tar.gz and y'all are gonna like it
well I'm fine with that
you're gonna what?
Burning me mods onto an iso to mail directly to your house
see those are the ones I hated as a kid, for lack of knowing what they even were 
a few people used them for not-linux things and I always thought I downloaded the wrong files
i dunno my windows is not that new but i realized recently it can open zips
not rars though
I'm pretty sure they only embedded zip support in the context menu* in 10 or 11
Windows could open zips since Windows 98?
or i didn't make it do it. idk
really? I didn't know
am uneducated
i do know it can make zip now
anybody remember Windows ME
if win7 had any native concept of zips, I never noticed
could make zips in Windows XP... not sure if older
possible I just didn't bother looking at the apps though
ah, right, I do remember that phrasing in the menu
don't think their zip compression was amazing, one reason to use 3rd party.. even now
tar by itself isn't compression, unless it zipz the tar afterwards
uhh
you're not bc nexus doesnt allow it 
nexus only allows .7z, .rar, .zip, .omod, and .exe anyway
exe that unpacks into bin/iso, got it
dunno a portrait mod got flagged and it was a rar
omod 
well .rar is in that list
anyway my mods will be zipped as I update them, but I don't want to update just to zip
gonna upload the tar
omod is oblivion mod manager. there for legacy reasons basically
or oblivion mod something. idk its for Oblivion
I've got my settings changed so I don't rar it without thinking
out of like a decade of habit
the main reason i dont use anything but .zip is for the same reason thats been said which is users get confused. i dont want people asking me how to open a .7z or a .rar
i use the windows zip now
you don't need to update to just go to zip, you'd keep the version the same and replace the file,
dunno how affective it is
actually that's right, I can just do that and not bother people. after my fajitas, then
fajitas > zips
Fajitas take priority
TAR seems to work fine btw
(still doing this right up until I actually released -> "i guess smapi builds zips and it's easier for people, i'll stop")
i just took the list straight from nexus's site ¯_(ツ)_/¯
oh not on nexus just in general
someone asked me with my consistent books mod to change to zip so i just did
the people don't yearn for the rar
tar stands for "tape archive" an old and still use format for archival storage onto tape/drives/etc.. great for achiving, but you normally want to compress that archive afterwards.. if you're actually using it for backups
I've just never had anyone object until recently, so I didn't change anything
tar? well it's common in server use.. and I guess they thought "why not?" when they added more zip/7z/rar support
yeah, I imagine it's necessary elsewhere and/or simple to tack on
look on the bright side, at least I'm not my granddad who deadass pulled out a working Commadore 64 at work one day to pull a map up for work (surveying)
(the answer is yes, good to know)
very common with linux and source code downloads as they are often in gzipped tars
oh right, that's where I see them most, github download sections 
I'd thought that computer was over there because nobody wanted to bother getting rid of it, not because he'd sit down and work on the thing
ok! i did some editing and it should work!
Fajitas done. alright, I have 53 mods, so I'm just doing this for the Stardew ones.
@calm nebula: look at the barrels for margot (4h ago)
it's uh slow
what are the barrels for margot
Hi! Can you have a first time green rain dialogue, and then a regular one that plays after the first has been used up? (I just got green rain for the first time in game.)
yep, the key GreenRain is used the first time, then GreenRain_2 is used for each other year:
https://www.stardewvalleywiki.com/Modding:Dialogue
(it only happens once a year, on a semi-random day in summer)
Cool. Thanks!
Oh man, I just realized I didn't even talk to the wizard. Does the key only get used up if you talked to the person, or is it gone after the first time, period?
afaik, it should only happen on year 1, regardless of whether you actually talk to the person
Ok. Guess I'll have to get everyone else I missed on a different save, or look their lines up then. Thanks!
yep, a lot of people who didn't start new saves for 1.6 missed out on the first-time dialogue
That's probably why CA wanted people to start a new one, along with some other reasons.
need the green rain day to last 10x as long so u can talk to everyone
i do actually just pause time for it
tbf for the first year most of em are in the saloon arent they
yes but modded npcs 
mod authors should just put them in the saloon too, clearly
Gotta make time to poke around in Eli and Dylan's house during it
Lol, I know I missed some really good reactions
fun fact Demetrius's portrait is hardcoded that day
cant change it even if you change the portrait command
I did not know that
He glued on that hazmat suit
its bc hes in his hazmat suit
public int getPortraitIndex()
{
if (this.speaker != null && Game1.isGreenRain && this.speaker.Name.Equals("Demetrius") && Game1.year == 1)
{
return 7;
}
...
gotta change the portrait itself that day if you wanna change it
Huh, I could really begin to guess why that would be hardcoded?
i mean i think its pretty obvious. dont want him out of his hazmat suit
you need pry him out of the suit by force
Robin would approve, probably
i imagine his sprite is hardcoded too, but i dont know where that check would be
tbf its not like vanilla game can just do When to conditionally edit content
however i do feel like this coulda been an appearance
my terrible terrible custom movie sans any scripting/audio
oscars best picture
not sure whats worse, making terrible art or having to come up with a lot of lines of reactions from villagers
as after I do all the actual "movie" work.. have to do all dialogue work..
I'd say the dialog 
reminds me I need to add Ayeish'as reactions to fellowclowns custom films
she doesn't have any generic reaction text for films by tag
I lowkey love how goofy the art is
well it is one advantage of the cinema as you can get away with a different (or no style) more as it's a film in -their- world
unless it's just one of those mods that scales down a 1080p movie into a 90p frame
also tidied this chart up a bit for refrence for myself/others
(never mind its not, its just in his schedule data. dont know why i didnt look there first)
also did this little batch of mv and ln commands on all the extracted audio files to renamed them rather than just their hex values:
@ivory plume on the logpage in smapi when you click "view raw log" it just shows {{data.RawText}}
I'll deploy a fix in a moment!
Log Info: SMAPI None with SDV None on None, with None C# mods and None content packs.
Suggested fixes: One or more mods are out of date, consider updating them
just noticed it and saw youre active 
thanks!
that is pretty raw text to be fair
On that note: I just deployed a very experimental update for smapi.io/log; let me know if you see any other issues!
Main changes:
- Mods which failed to load are now shown in the mod list (with 'failed to load' in the error column).
- Reduced response times with a new analysis cache and client-side fetch.
- You can now download a JSON representation of the parsed log (see the download link at the bottom of the log page).
Mods which failed to load are now shown in the mod list (with 'failed to load' in the error column).
oh thisll be so useful :3
(RIP Governor's HTML parsing though.)
none content packs with left beef
(The raw text is now slightly less raw.)
Hi button, sorry to ping.. This was just old so I wanted to make sure I took out the right line since I’m getting the same error again 
Error log:
https://smapi.io/log/7726c29d06fa457bac69a38d4c77dce2
json:
https://smapi.io/json/none/7a5582a0b6a945109f3d38aebe0db007
did I do what you suggested correctly or did I mess something up? I’m so sorry again for the ping 
Log Info: SMAPI None with SDV None on None, with None C# mods and None content packs.
Suggested fixes: One or more mods are out of date, consider updating them
i have no idea what you changed since then so i dont know what you mightve removed that you shouldnt have. your patch at line 1815 is wrong because its trying to patch a letter that doesnt exist in your png
your FromArea is choosing a rectangle that is outside your image
Oh snap. I’ll try to find my old file then
I know I had my old json in the link I sent before actually
no mod subclass..
like
So I have two mods that are conflicting. A recolor mod for interior buildings and a kitchen CP mod. I was recommended to change patch priority so that they can work together. How exactly would I go about doing that?
by adding a false dependency in the manifest on the kitchen mod to the interior building recolor mod, kitchen mod will load second
Huh. Thats odd because in the mainfest on the kitchen it had false on the mod that it was conflicting with. Are you saying i need to add a similar dependency in the Recolor manifest?
Its the vibrant pastoral one. I guess this mean the conflict is coming from somewhere else.
Wait...i think they put the wrong unique idea in the kitchen one
okay, im about to publish the mod i was working on yesterday, how do i know what my update key is to put into the manifest json?
Jk I really thought I had something there. I have no idea whats going on 😭
make a draft mod page for your mod on Nexus
once you go into the second tab you'll get a number ID for your mod, use that
a draft mod page?
just do the steps to make a new mod page basically
you dont have to upload anything yet, or make it public
i dont think i follow
go start uploading your mod on nexus
dont hit the Publish button
look at the address bar
This one is not VPR so you need to add it to the kitchen manifest yep
It's not a wrong id, just a different grapeponta mod basically
oh while im on the page before publishing the numbers at the end are what will be my update key then?
o7 gotcha ty
I copy pasted the unique id from the grapeponta into the dependency slot in the kitchen manifest (under false) and when i booted it up, the kitchen would not appear even with the grapeponta mod disabled (it used to be visible when interior recolor was disabled)
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.
Use this to validate that you have right format
If the manifest is not correct smapi skips the mod
no, it was correct. ran it through that. Good to know that tool exists, ill save it for later.
!log Gib new log then
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.
And show us the edited kitchen manifest for reference
You can share the smapi.io/json link
yes do i put it here in discord?
hypothetically if i was dumb and uploaded the file before i put the update key in how would i delete that version? cause im not seeing the option to
ah
just upload a new version and archive the old one
problem with that, i already uploaded the second one with the updated part and both are marked 1.0.0 with the same description cause i assumed i would be able to delete it
just archive the old version, there isnt a problem
when i say version i dont mean new version number
just upload the new files with the updatekey in it
it can have the same version number
Just so you know you cannot delete mod files on nexus, only archive
Practically speaking it's close enough but you can unarchive files too
yeah i know its just sad cause it wont look as clean lol, is there really no way to get rid of it without retyping the entire page out?
no, there isnt by design
Hide the file archive if you want
hardly anyone ever looks in the file archive. you can hide it
99% of people will not even know you had an old file
i dont see how to hide it
in your permissions section
OH MY GOODNESS IT WORKED
Nice that's good
o7 gotcha thanks again peeps
Okay so i think my problem was i just pasted over the mod that wasnt the mod i thought it was. This go around i fresh installed the kitchen mod and added an extra line for the dependency.
Thank you so much for your help
The only time I look at the file archive is if the current version has errors.
nooo that setting is only available for verified mod authors 
I usually leave stuff in old versions instead of sending it to archive
well, good thing having the archived file basically does not matter whatsoever
just ignore it
There's no button to dl from there
(you can still download archived files without the button. i wouldnt expect most to.)
its really gonna get on my ocd if i do, why is there not a way to just delete it even?
because mod authors in the skyrim community would throw hissy fits and delete all their stuff and break every collection that relied on them
thats not a joke. thats the reason. it was like 10 yrs ago or w/e
shortly after collections came out
Once again it goes back to Skyrim huh 😔
now files are archived and hidden for the most part but nexus can still download them if they are a part of a collection
yeah i believe it, thats just sad that its gonna be messing up the look of my first mod cause of that
its not because practically no one is going to see it
o7 oh well ill live with it, thanks 
it does not change the look of your mod page in any meaningful way. it might literally not? the "View file archive" link might be there even if its empty
once you get 1,000 downloads you can hide it and then its gone forever
if you only just uploaded a file by mistake you can contact them to delete it
it says files 2 on the page even with it archived in the preview lol
how long ago was this, because the only info i can find on file deletion requests says its until august 2021, and links to a form that is now closed
2024
Maybe give it a little time to update. Nexus is sloooooww
then ill amend my message to say "i dont think contacting them is worth it"
I mean does it at least go to old files
yeah im with button on that part, itll be unfortunate but ill live with it
Or do u see 2 main file even tho its 1 main file 1 archived in edit
on the page theres the files tab which says 2, once you click on that it shows just the unarchived one and below that the "view archive" button
it will? awesome ty
This is a bit of a specific question, but does anyone know if the pet name entries in "StringsFromCSFiles" will respect gender differences? These things:
"Target": "Strings/StringsFromCSFiles",
"Entries": {
"NPC.cs.4507": "Pookie",
"NPC.cs.4508": "Love",
"NPC.cs.4509": "Hot Stuff",
...
I'd like to put stuff like ${Prince^Princess}$ in there, if I could
it depends on the context of their usage
if its used in dialogue it should respect it
if its just like, shown on a menu or somewhere other than dialogue/mail it might not
if you have the decompile look at getTermOfSpousalEndearment
I think these are only used in dialogue, but I could be wrong. I've never seen them anywhere else
only used in dialogue in vanilla
You can ctrl+f for this string in the decompile
if the possibility of another mod using them is important to you then its good to keep in mind
Since it says StringsFromCSFiles that means it used to be some hardcoded thing
Who is pookie though...
(if you would please consult the Garfield Wiki: https://garfield.fandom.com/wiki/Pooky)
it seems all of them are gender-neutral, however 4512 and 4516 can only be used by non-male spouses (NOTE: not to a non-male farmer)
smh let elliott call me darling
I don't think I have the decompile. I'm using VSCode to drill down into things at the moment xD
it just occurred to me that pet name is like nickname and not literally a pet
@calm nebula SMD. let elliott call Selph darling
you're modding now, so i get to ping you with scope creep
I was gonna ask when did pet get dialogue...
Hey all, does player_stat work across multiple mods? Like if one mod does incrementstat customstat 1 and another mod does incrementstat customstat 1, will the total for customstat be 2?
i can imagine you were very confused with the Hot Stuff one
yes if they use the same stat name exactly
Well i dunno maybe someone named their bearded dragon that
"Hey Hot Stuff," giving fingerguns to my turtle
Also, will IncrementStat All Customstat 1 apply that stat to all players in a multiplayer game? I don't see an optional field for player in the entry on the trigger actions page
you dont see it bc it doesnt exist
my first mod is officially uploaded, ty peeps for all the help 
What's the goal here si
not directly* i should say
if you need everyone to receive a stat increase at the same time no matter what the other players did, send mail to everyone and use that mailflag as a trigger action condition for incrementing a stat
I want to use the stat number as a condition for an event to happen, and that stat number increments whenever a player interacts with certain map tiles. I have it set so those map tiles no longer trigger incrementing the stat once interacted with, but I'm wondering if that'll cause an issue in multiplayer saves if different players interact with each of those map tiles without sharing a single stat to increment (so none of them can reach the minimum required for the event to fire)
how are you making the tiles stop incrementing after theyve done it once?
So it's not so much the map tile itself (it was in an earlier iteration) as it is the secret note obtained from that map tile, which has increment stat in the ActionsOnFirstRead field using secret note framework
To explain more clearly it sounds like you have N number of true false switches
So to ensure consistency N number of mail flag make more sense
And mail flag can be set for everyone np
that actionsonfirstread will only fire for the player who reads it anyway
so if player 1 goes around and reads all the notes, they will get 5 stat increases or w/e, but everyone else still has 0
so when they get the secret note its still gonna increment the stat for them
if you wanted everyone to share progress then mail flags are better as chu suggests
Maybe ichor provided some kinda has read secret note gsq?
if you want them separate then incrementstat will still work, though mail flags are still probably better, since they can be read with CP conditions
I have regrets
anyways
welcome to the club
goes back to taxes
You can maybe use this
Instead of any fiddling with flags
Are notes in multiplayer shared
iirc no
no
I guess it's just up to si then, if players should share progress or no
notes are just mail but to the left
@proven spindle i did add a GSQ for checking whether a player has read a note: https://github.com/ichortower/SecretNoteFramework/blob/prod/docs/author-guide.md#querying-notes
you can use ichortower.SecretNoteFramework_PLAYER_HAS_MOD_NOTE Any <note_id> to check whether any player has read a particular note
Yeah i found the docs 
These notes can be found in any order, so I'm trying to avoid 'player has to find specific notes to fire the event' since there can still be other remaining notes from this mod after that, which means not using note-specific flags. I also want to be able to add additional notes to the batch from some of my other mods, which means there can be additional notes to find that aren't necessarily part of the main mod
just check for having read all of them
Well if you desire something like
Found 5 notes out of 10
You can do stat increment stat as long as you don't care about all players sharing progress
That's what I'm currently doing, and it works really well in single player
you could still do that with mail too
ActionsOnFirstRead is still firing for everyone individually right (ichor pls correct me)
Si, as another option
an imperfect one
is to have the event locked behind a mailflag that is set by a trigger action
after that stat is achieved
i would really hope actionsonfirstread does not broadcast a signal to everyone to run the trigger action
you can broadcast a mailflag
Since notes aren't shared between players i imagine the expectation is also a event based on number of notes i have is also not shared
i'm pretty sure actions on first read does not broadcast a trigger action (i don't think SNF broadcasts anything)
The event is 'adds items to a vanilla shop', which might actually be shared? (I'm not sure if shop inventories are player-specific)
if i want an event to continue while i play a sound, do i just need to load that sound as "music" or is there a way to do like a playSound (sound) continue type thing
i ask because the sound is 12 seconds long, and i wanted it to keep playing as the event faded out
i probably have to load it as "music" right?
a shops inventory is subject to the conditions of its item entries
and those conditions are run on the client
That's tough as players can take as long as they want to read.
So your music may not be long enough.
it starts playing at the end of the event its not about reading lol
(again, you can broadcast a mailflag)
That's true.
(you can also have the event broadcast a mailflag, or have the items added by checking HAsSeenEvent Any iirc)
its literally
character does action
sound plays
event fades out as character "does action"
ergo i load it as... music, im guessing
to make the event continue
If incrementstat only affects current player and I set the notereceived mailflag to current player so the map tile can still trigger for other players, could I set a mailflag based on player_stat so that whichever player reaches that stat first triggers the flag, which then triggers the shop event/added items for all players? Would that work?
playSound doesn't block, as far as i know. is it not currently working to play it and proceed with the fade out? (can you show us that part of your event script?)
Yeah u can do that stuff in a day ending trigger
Or maybe get ichor to add a note read trigger (is there one already?) 
There is, it's just note-specific and I'm specifically trying to avoid that lol
chu if you mean an action to mark a note as read, i have that yes 
oh i see
The only difference is that if si used dayending the player has to sleep
actions on first read more or less does that job though, unless you need it to fire when other players read notes or every time a note is read (not just the first time)
actionsonfirstread does it for a specific note
i can see the value in incrementing for Any note
The difference here is that trigger actions get to check a gsq
wait the event continues with playsound?????
And yeah it would also be any note
(actions can also check a GSQ)
If <query> ## <action if true>
If <query> ## <action if true> ## <action if false>
But u have to enter escape hell for this
not really
You are right tho 
/emote LaniSBV 16
/pause 500
/playMusic scribbling
/pause 500
/emote LaniSBV 56
/globalFade true
/viewport -100 -100
/end```
I always forgor this is a thing bc i add Condition everywhere
If PLAYER_HAS_READ_NOTE Whatever ## AddMail whatever ## playSound breakingGlass
or playSound whatever
no escaping at all
Ah it is use the ## yay
but that said i still agree there should be a generic trigger for it
surprise surprise, author of mod that adds a billion triggers thinks there should be more triggers
i think that will work with playSound! give it a try?
word, word
Button something that troubles me with triggers is that I can't pass very much context info
a trigger also would not actually fire when another player reads a note
E.g. the whole desire for target item
I dunno what can be done here tho
technically oyu can pass whatever context you want in any form as long as you control both the trigger and the action/query that consumes it
Perhaps something like
A specific key in custom data that we patch the handler to use as input target item
But that is +1 as standards sadness
im not sure what you mean or if i do im not sure why thatd be better
there wouldnt be any GSQ or Action that could read just Any Arbitrary C# Object unless you made it do so
anyway i can consider adding a generic trigger that fires whenever the player reads any modded note. will it solve si's problem?
and if you're doing that, you may as well use the existing stuff
it wouldnt work for Si unless there was a way to specify it was one of the notes that is part of this puzzle, though
Well GSQs do actually have the input/target convention for items
yeah and only items. what would be the benefit of being able to pass in things that arent items versus whats possible now
The glue is agree on how a trigger can pass some item there
I think the day ending trigger would work fine for me tbh
So that u can use the vanilla GSQs following the convention without specific C#
Would be a cool parameter to play with though
right but my point is that doesnt solve anything. it doesnt matter if you can use Input and Target if you, the author of the gsq/query, still need to know what you are actually reading to determine if its an NPC or a BuildingData or what
Im exaggerating when i said troubled anyways, not like i have a present usecase
it seems fiddly to have it fire when other players read notes, so i'm unlikely to add that without a compelling use case
triggers dont fire when other players do things unless you make them specifically do that
if you put the TriggerActionManager.Raise call inside your SecretNoteMenu, then naturally that will only run when the SecretNoteMenu code runs. which it wont if you are not the client that opened the note
tbh like, you can use a trigger action to broadcast a mail flag
if youre okay with a single day delay
(Though if you're looking for more features to add, it would be awesome to have a parameter to exclude notes you've already read from crumbling if you press the action button while holding them. I'd love to set up gift responses for npcs for some of them without risking destroying them lol)
hmm
in normal gameplay, you shouldn't ever see a note crumble
the mod spawns a note item according to <math nonsense>, but it doesn't actually pick a note to show you until you use the item (this is actually how vanilla notes work, too)
Yeah, but in vanilla you shouldn't be able to re-get notes, so it makes sense. With SNF you can set them as objects, so that opens up possibilities
if ichor adds pagination we'd have a readable book framework 
I've kind of been playing around with that, but was going to hold off on publishing that part since I keep misclicking while holding them lmao
This is actually the book collecting mod I talked about a while ago, it's what I've been referring to here
i considered supporting more than one page on image/combined notes but image notes are cursed so i put it off. maybe later
plus tiakall (i'm fairly sure it was tia) only asked for one or two lines of text and i'm a man of my word
Hello everyone! I have a question about warps.
I have a custom building that has two floors (ground floor map and basement map). When I enter the building then immediately turn around and exit I end up standing in front of my building's door (expected behavior - though, it seems to ignore the target coordinates given in the warp map property). However, if I enter the building, warp to the basement, warp back to the ground floor, then exit back to the farm, it puts me at the target coordinates specified in the map property.
How does the game remember what tile the player was standing on when entering a farm building or rather how can I capture the location I need to warp to on the farm that will put the player in front of the door after visiting the basement?
farm building warps have special logic because you can move building
I assume the transition to another map causes the coordinates to be lost?
i dont think there's any easy way to do this for a map -> map situation but you can fake the map -> map by having it actually just be map
more like game doesnt try to do this recursively
hey friends, who knows of mods that add different kinds of crabs to the game, and in particular if they have already agreed on a context tag to use to identify crabs? i promise it's not a weird question
just be one map = make 1 tmx, but have a big gap to simulate 2 different location, use a within map warp to go between the locations
ichor, we love you
this requires c#
i'm hoping that the tag they are already using, if any, is "fish_crab"
I see... Thanks for the info!
it's a tall order since not even the vanilla crab has the tag
Unfortunately i do not know of any crab
i bet more new fish has crabs
more new fish has some crabs!
VMV has a crayfish but no crab
i'm fairly sure item queries are not going to work for this, sadly
passersby adds a graverobber crab
C# for substring "crab" i forsee no problems
i meant use fuzzyItemSearch

