#making-mods-general
1 messages ยท Page 118 of 1
i personally haven't tested it, but considering it does actually let you place an npc right on top of another like that, the theory should work
yeah it does sound like it should work
Hey all! Does anyone here make mods on linux and using e.g. vs code (instead of visual studio)?
Having some struggles getting everything set up rn.
i think most linux users use rider, especially since it's free for non-commercial
but vsc is pretty self explanatory, were you doing c# or just content patcher mods
Isn't Rider deprecated? Just trying to get a simple C# example going. Here were my steps:
# first installed https://aur.archlinux.org/packages/dotnet-sdk-6.0-bin
dotnet new sln && dotnet new classlib -o FirstSVMod
cd FirstSVMod/
dotnet add package Pathoschild.Stardew.ModBuildConfig --version 4.3.2
I think after that I was trying to let VS Code add the nuget package but that's where I got stuck. So perhaps more of a vs code extension environment/configuration issue than anything else.
rider keeps up to date fairly regularly, the only other IDE i can think of that got depreciated is the uhhhh Mono...Something? obviously not MonoGame because that's what we run off of
do you mean monodevelop? rider is completely fine and up to date
Okay! Just saw that I have Rider in my jetbrains toolbox. I'll download it though I'm still curious on how to get things to work without an IDE.
a full IDE is always in your best interest considering there's some things that vsc doesn't have, i don't remember exactly because i use vs22, but it might not have hot reload?
I may have been naive to think the dotnet CLI tool would be enough ๐
i would ping button because button uses vsc instead of a full IDE but i think they're asleep
I see ๐
May check back later, consider myself helped already. I appreciate y'all โค๏ธ
(it is enough if you're built different)
listen here vim user
rider should be completely fine as an IDE, otherwise you can just about get by with VSCode for writing and dotnet cli for building
not a linux user btw
chu is the other linux user but i think chu also uses vsc
ichor uses vim as well
Good to know there are some!
I think earlier I confused Rider with AppCode, Jetbrains' Apple Xcode alternative that has been deprecated.
some? i'm surrounded by linux users lol
arrrrg going nuts waiting to get back to my Windows(tm) home computer
wondering whether to delete my i18n folder entirely and simply add a new strings.json file to editdata my default EN translations into my strings asset
seems easier for translators to copy if i include a separate CP translation component with my default strings, but also wondering how load order could force the EN version to apply after other translation mods if so
just want to discourage i18n file submissions as much as possible
Another quick question, k <event ID> doesn't work for questionfork sub events right? You need to use addConversationTopic and A <dialogue ID>
sub events don't count, correct
ok thanks, guess the only option is to use addconversation and just choose a huge number for length of days
I want a second event to only trigger if a sub event wasn't seen
so i guess a mailflag would work as well. Do mailflags last forever?
ok thx
if you're in that though, you should probably make sure you do the setSkipActions if you actually have the event be skippable for whichever paths you wanna take
unless you don't necessarily care about that
i have no idea what your narrative direction is,
but theres a few event commands that are still in the 1.6 migration page if you haven't looked
ok thx a lot
how would i go about changing an npc's display name after a certain option was picked in an event ๐ค would that be a fork...?
fork/quickquestion, either works
fork is mainly for a 2 option, quickquestion is, well, i've kneecapped it at around 11 options before it reached the top of the screen
but will that be a permanent thing...?
wdym permanent, the name change? you probably have to do an EditData with a mailflag
hm, so i set up my question fork, and tie a mail flag to one of the options, then have an EditData with a condition of having read the mail?
not necessarily read, but you can do addmailreceived {{ModId}}_NameChange then set the editdata when condition to that {{ModId}}_NameChange
๐
(not all mailflags are created equal, some can be for internal flagging purposes, some can be instantaneously sent in the mailbox, and others can be sent for tomorrow in the mailbox, but what you're looking for is that internal flag for your own checking)
the thing i'm mostly confused about is just. the execution i guess
mm
lemme find a fork i've used
/question fork0 \"{{i18n:Lance.10Heart.pt2.12}}\"/fork LEFeelingsYes/pause 400/shake Lance 300/pause 200/emote Lance 40/pause 300/speak Lance \"{{i18n:Lance.10Heart.pt2.no}}\"/pause 800/emote Lance 40/emote farmer 28/pause 200/shake Lance 200/speak Lance \"{{i18n:Lance.10Heart.pt2.no.1}}\"/end invisible Lance"
if the fork is the 2nd option, it continues from the pause 400
but if the fork is chosen (the first option) you then switch into a subevent:
"LEFeelingsYes": "pause 500/emote farmer 20/jump Lance/showframe farmer 89/
ooo.... 
thinks about when i'm off next
Remind me in 59 hours to go into more detail about forks on the events tutorial
I was JUST about to sit down for the end of the day. but FINE (#6379811) (59h | <t:1732648719>)
Hi. Iโve run into some bug when loading texture. Can someone help?
string path = Path.Combine(this.Helper.DirectoryPath, "assets", "icon.png");
var icon = Helper.GameContent.Load<Texture2D>(path)
But instead of loading /MyMod/assets/icon.png, it failed trying to look at /icon.png.xnb
loading via the game content pipeline requires you to load into an asset first with the AssetRequested event
so you use the AssetRequested event to load your assets/icon.png into something like YourModId/Icon, then you call Game1.content.Load<Texture2D>("YourModId/Icon") for the texture
see here for guide on using asset requested event: https://stardewvalleywiki.com/Modding:Modder_Guide/APIs/Content#Add_a_new_asset
(that page also has instructions on loading assets/icon.png directly into a Texture2D with ModContent.Load, but personally I don't recommend that route)
Thank you so much
Why is that
it means other mods can't retexture it, and it's also not as easy to pass it to the texture fields in the game data (whereas with AssetRequested you just pass "YourModId/Icon" into whatever fields the game wants)
I see. Thanks!
(saw that, so in case you didn't get answer, IE allows for multi currency in theory. I didn't manage to get it working last time i tried but i may have done something wrong)
(its the opposite, i do not use VSC at all, i use N++ and Rider)
you were right about me being asleep tho
why are you up now then
probably bc i just slept 9 hours
Has anyone approached Pathos to ask about the issue with "ghost doors"? It appears when you fall asleep in an NPCs house (or a modded inn, etc) with a door added via "Action Door" and reload into the game, that door does not fully render, making it an impassable tile and trapping you in the room. I've had reports of it with my inn - and never managed to reproduce it because I thought restarting the game teleported you home (and it did, pre-1.6 - the people reporting it never told me that kernal of information) but I've seen a number of reports on Reddit for it recently with SVE which allows you to sleep in people's beds if youre dating them.
If all you needed was to read from your mod folder, and didn't need the usecase of others in contentpatcher being able to edit it, you could have just used Helper.ModContent instead
this is the first im ever hearing of this, personally, and ive not seen someone bring it up to pathos
Howdy - is there a way to allow players to easily toggle the Farm type manager section of a mod on and off (without telling them to just delete it or something similar?)
I know how to make configs for content patcher and such but im not sure how (or if) i can link them together (so if someone wants to use it later on they can just pop it back on with GMCM)
(i dont see everything ofc. i do backread a lot tho!)
I know Flash has been investigating it, so it would seem odd if he hadn't, but shrugs
(the game would teleport you back home if you closed out and reloaded the save, i don't know if that was fixed but that was the situation before)
its possible it was brought to attention somewhere other than this channel, cant help ya there if thats the case unfortunately
i believe the warping home on reload was bc it wasnt respecting a map property that let you sleep there in the first place
yeh that was what happened pre-1.6, but I've no idea if it still happens. I haven't slept outside for a while, obviously. But the Reddit posts indicate that is no longer the case.
iirc you can probably replicate it with a tent?
oh I could replicate it easily enough, I just keep forgetting to sleep in the inn.
(I combatted my reports initially by removing the door, but now I see its happenning with vanilla locations, I dont think it's a "me" problem exclusively)
the only time i come across ghost doors is because of the npc i've set it to doesn't exist 
that shouldn't matter
i don't feel so good mr. desktop
it woudl just be unopenable/solid I think
did nexus just go down?
did you add it on the map properties?
i can browse but i cannot log in so ..., kinda?
yeuh
same
(I had one recently that wouldn't work no matter what I did until I retyped all the text)
the npc it's attached to i haven't met yet, so that's why it's sort of invisible
I don't think it should do that?
or at least it didn't use to pre-1.6
(it just wouldn't open)
lemme uh, remember how i'm supposed to trigger my own npc 
let me just randomly assign a door to nonsense and see what happens
is that a pufferchick... floating in the garbage on my screen
oooh man even sdv is getting chunked.
concern levels rising lol
i just wanna release my mod
that seems rather not good
Just a tad bit concerning, and by a tad I mean very
i think that's a sign, gotta wait for you to be back home
this is back home lol
You should see if restarting the graphics driver will fix it (Win + ctrl + shift +B)
if not, you are probably in OS restart territory
now that's a very specific hotkey
ugh it didn't work for some reason (no idea why) and I want to go to bed, so I'll need to experiment another day
probably dont wanna make the restart graphics hotkey easy to accidentally press
Having your entire screen go black for a few seconds and a bunch of programs freaking out should not be a misclick
does leaving the location and reentering fix it?
well more that i wouldnt expect restart graphics drivers to even have a hotkey
it helped for about a second :)
If it was reliable it probably wouldn't be
i am currently, uh, loading my portraits/character sprite because i never loaded them for this npc 
my computer also beeps at me when i do it, which is fun. bit of musical magic sorely needed at times when i need to restart my drivers
so close to releasing an update :')
Uhm. The shop isnt selling items based on the ITEM_CATEGORY Target <#> Though the ITEM_CONTEXT_TAG etc.. is working.
"Items": [
{
"Id": "novaphene.sunnymap_Pastry",
"ItemId": "RANDOM_ITEMS (O)",
// "Condition": "",
"PerItemCondition": "ITEM_CATEGORY Target -26, ITEM_CATEGORY Target -27, ITEM_CONTEXT_TAG Target nova_pastry_items",
"MaxItems": 15,
"AvailableStock": "20",
"AvailableStockLimit": "Global",
}
]
normal
you are trying to find an item in both -26 and -27
no such item exists
you need an "ANY" here
"PerItemCondition": "ITEM_CATEGORY Target -2, ANY "ITEM_ID_PREFIX Target Lumisteria.MtVapius" "ITEM_NUMERIC_ID Target 1" "ITEM_ID_PREFIX Target DTZ.DowntownZuzuCP" "ITEM_CONTEXT_TAG Target sbv_common_mineral"",
ex
arg
discord ate my slashes
"PerItemCondition": "ITEM_CATEGORY Target -2, ANY \"ITEM_ID_PREFIX Target Lumisteria.MtVapius\" \"ITEM_NUMERIC_ID Target 1\" \"ITEM_ID_PREFIX Target DTZ.DowntownZuzuCP\" \"ITEM_CONTEXT_TAG Target sbv_common_mineral\"",
here, slashed properly
i was trying to add the category_artisan_goods and category_syrup. I went ahead and called their values -26 and -27 thinking it would work TuT
it would if you use any so it'll check for item having either one or the other
but there's no item that is both -26 and -27
at the same time
so it can't find anything matching the criterias
Ah, I see. Lemme change it :> Thanks!
is ui info suite a mod to avoid?
that'd be a #modded-stardew question, but generally ui info suite 2 is the successor
i'm not able to use LocalizedText to substitute in Data/mail am i?
seems that way, yeah, no localizedtext
butts, guess i'm putting my data/mail editdata changes into my translations file
or maybe this idea sucks
in short:
easily-copied translation solution that means anyone can upload a CP translation pack without sending me i18n files to add to the main dl
like it works if i pipe the i18n/default file into a cp asset, but it's not entirely clear to translators what's going on
but at the same time, adding data/mail changes to the translation pack specifically seems like a bad thing
i do also sure hope buffs, objects, tools, and special powers can use LocalizedText lol
objects and special powers can, dunno about the other two. probably tools as well
ok yeah buffs can
can confirm tools do
you could patch the text formatter for mail to look for your own special loc token

mail doesnt support tokenizable strings presumably bc it'd interfere with the custom BG and text colour things, which are not tokens themselves but use the same brackets
thanks custom bg and text colour things
looking at the functions im actually not even sure that just calling the token parser after the custom bg and text colour things wouldnt just, like, work
i'm sure it's fine anyway, i'll just put the maildata into the translations file. what could go wrong
oh i didnt mean you had options here. sadly you have none options. just wondering why mail doesnt work this way 
well the options are to 1) delete i18n and add strings + maildata to a CP mod, or 2) keep i18n and expect translators to be able to solve the riddle of making a CP pack and avoid i18n entirely
i dont know if i ever asked or saw why, but was there a specific reason you werent fine with just letting people upload their own translations the usual way and ignorin em
manually copying i18n files into mods is pretty archaic imo. users won't even get update notices if the translation they use is updated
i'd rather people make CP mods to submit translations
the selfish ulterior motive is that nobody will be DMing me individual i18n files to merge into main
the update notices thing is very fair. for the former though most translation mods i see seem to structure their download the same way the original mod does, so its the same drag and drop into the mods folder process as installing any other mod
oh also can i not use tokens in query expressions, eg. "query: {{{{ID}}/AddCookingSkillAndRecipes}}": true
lexer is complaining about
System.InvalidOperationException: Error parsing '' as a tokenizable string
---> System.InvalidOperationException: Error parsing 'ID}}/AddCookingSkillAndRecipes}}' as a tokenizable string
---> ContentPatcher.Framework.Lexing.LexTokens.LexFormatException: Unexpected StartToken where token name should be.
you should be able to
is that the exact format you used it in
straight from the content.json
yep, it's in a When block
what is ID?
blueberry.LoveOfCooking
dynamic token defined elsewhere
i could use ModId instead of ID, but then i'd be updating the C# component to check for the CP mod id instead of its own, and really it's trivial whether it uses one or the other
yeah i get that, i saw some people with NPCID token as shortcut too, just wanted to check that it was defined and so, not the issue (like, wanting to use ModId instead)
what is surprising is : ID}}/AddCookingSkillAndRecipes}} like if it's not having a balanced pair of bracket, but they are here in the query
would you mind posting that bit of the json in the uploader
doesnt gotta be the whole content.json
no loc sneak peak motives i promise
FTM can't see CP's config settings or dynamic tokens, at least directly. The easiest way to just turn a pack on/off is with these settings in the FTM's content.json:
"ForageSpawnEnabled": false,
"LargeObjectSpawnEnabled": false,
"OreSpawnEnabled": false,
"MonsterSpawnEnabled": false,```
That said, you'd need to make sure the unused sections are blank, which they aren't by default.
Alternatively, you'd need to add some kind of condition to every spawn area that CP can control, like checking a "turn off the FTM pack" flag of some sort. There's an example here that's partially relevant:
[#making-mods-general message](/guild/137344473976799233/channel/156109690059751424/)
The goal would be to toggle some kind of flag with your CP config setting, and then check that flag in FTM's "CPConditions" or "GameStateQueries" fields.
Thank you so much for responding :D I actually was able to figure it out (I did exactly what you said at the end actually) and it works like a charm :]
Log Info: SMAPI 4.1.7 with SDV 1.6.14 build 24317 on Microsoft Windows 11 Pro, with 18 C# mods and 2 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
if you ctrl-f for crafting-data you'll get the relevant errors
but really it's each file with a nested tokenised query value
like i can just not tokenise my id there
but if it's an issue it's probably worth knowing
yeah CP tokens added by C# mods have slashes
CP automatically prefixes custom tokens with ModId/
ok! yeah i may have read too fast, i was on the recipes themselves, my bad
does it work if you manually type out the C# modid blueberry?
yep, i just replaced all my literal blueberry.LoveOfCooking and Mods/blueberry.LoveOfCooking strings with tokens
hm
what is the result of the token? a true check?
i remember someone having a similar struggle recently
it would be great if i remembered what and what was the solution
again it's fine, i can just keep the literal there instead of the token. i'd just rather be consistent is all
i was gonna ask what if you replace the entire when condition, query and all, with just a dynamic token to see if its just broken in When blocks, but now im wondering why you need Query at all
yeah but knowing why and how it breaks may help others
which i know is a bit like, tangential to the issue
oh can i just use it without query
if {{ModId/AddSeasonings}} resolves to true or false then yeah you can just do "{{ID}}/AddSeasonings": "true"
well here's all my queries:```
assets\cooking-data.json:
44: "query: {{{{ID}}/AddCookingSkillAndRecipes}}": true
assets\crafting-data.json:
11: "query: {{{{ID}}/AddSeasonings}}": true
assets\power-data.json:
59: "query: {{{{ID}}/CookingToolLevel}}": "0"
81: "query: {{{{ID}}/CookingToolLevel}}": "1"
103: "query: {{{{ID}}/CookingToolLevel}}": "2"
125: "query: {{{{ID}}/CookingToolLevel}}": "3"
147: "query: {{{{ID}}/CookingToolLevel}}": "4"
could i do the same for the int values?
should be able to
alright that's perfect then
what you have now should work too though afaik and im not sure why it messes up parsing the braces
i'm pretty sure i originally set it up as query to do some >= checks on tools that i later dropped
Hey
Sorry to chime in bblueberry, can I ask you a question about LOC ?
sure, what's up?
Thanks ! I wanted to know if it is possible to modify when the cookbook is received
ok well even using "When": { "{{ID}}/CookingToolLevel": "1" } doesn't work, same error about unexpected token start instead of token name. so i guess you can't tokenise a when key

hmm
i feel like you definitely should be able to...
sure! you just want to change the values of CookbookMailDate in the data files for LOC, which is a list of 3 numbers: [ day, month, year ]
in LOC2.0 it'll be in assets/mod-data.json, which you can edit in-place in the mod, or with your own CP mod using "Target": "Mods/blueberry.LoveOfCooking.Assets/Definitions"
Holy ๐ I'll patiently wait for the update then !
in practice changing the mail date shouldn't change anything, since it gives you the cookbook as soon as you upgrade your house, which is generally the earliest time you can cook anything
the mail date is just there for a little lore-ish teaser
i remember you can't have tokens inside token, so possibly it may be the issue is the value of the when is considered, somehow, a token?
you can definitely have tokens inside a token
(you can have {{season}}{{day}} but not {{{{season}}day}} or something
let me find the discussion again
the CP docs even have tokens within tokens as examples, including for query
this
why do i always get the arcane tokenisation issues with cp, lol
oh, thats what you meant
yeah you cant use a token to like, turn something else into a valid token when it wasnt before, but that shouldnt be the case here. the only thing CP says about tokens in when conditions is that the outer curly braces shouldnt be there, which is why iunno why it doesnt work
i wondered if, someone, the way it is in the when field make it a token and so it can't be tokenised further
what matters is my graphics glitches with shattered pufferchicks and garbage onscreen are gone
and my tokens are untokenised
possibly here it's just a question of formatting, but well
Oh I forgot that ๐ Thanks for the insight !
i wanted to mention the previous issues in case it was a possible cause
im actually dumb and this is the case here and lumina is correct, i got confused following the wrong train of thought about outer braces
and thus my brain said "its not important to remember that AddSeasonings is a token"
to be fair it didn't click for me either at first, while it did for when directly in the "when" for some weird reasons
(what did it think AddSeasonings was if not a token? idk, it looked like an asset name so maybe that)
(not my fault pathos put slashes in it ๐ )
it's only then that i was "oh, isn't there something about nested tokens that was a pain for someone and me and tia tried to figure why sometimes nested was cool, sometimes not?"
bless you. it's a relief knowing there's someone in this chat with a photographic memory
yeah i think it was a bit of terminology confusion goin on and i apologize for misunderstanding what you meant!
i was also impressed that you pulled out a receipt from 5 months ago
i never knew atra had a photographic memory.....
(i also remember i used "nested" in discussions and it helped me find it again, otherwise it would have been lost)
should've told me 
i'm guilty of including very specific keywords whenever i have very specific issues so i can find them later
i just copy message links into my personal notekeeping discord for things i might need to find later. the problem arises when i forgot to do that bc i think "i wont need this later ill just remember"
psa: you will not remember. copy the link.
"i will remember"
two weeks without modding : "what's a json?"
oh thats fun, just looked at a comment on my books mod about an error that i fixed 10 days ago with an error log
my mod does not show up in the error stack trace whatsoever and it has nothing to do with my mod
but they blamed it on my mod and told people in #modded-stardew not to use my mod anyway ๐
slander....
what was the error to even consider warning others about not using a mod??
crashing overnight and losing progress
ok, granted, that is frustrating
the first thing in the error is the Ship Anything mod so i dont know why they didnt go there first
i regularly got reports about the UI info suite 2 red error in the log about fruit trees, i wish they would make it a warning instead
it also makes more sense as a "crash during night" issue
oh, people would still complain if it was a warning
I had a deprectaion warning specifically mentionning that it was about mod authors, and I still got users making posts about it
yeah i got a lot of reports for LOC when i logged warnings about recipes with missing ingredients that would've caused issues in the menu, eg. batter
so naturally i just stopped logging them since the authors never fixed those
oh yeah, nothing save us from mod users being worried, except trace, but it may reduce the reports ๐
mod users getting worried means mod authors getting harried
i stand corrected, they did go to Ship Anything first, where there are also several others commenting about the same thing with logs that dont even have my mod installed.
a new release candidate, please see if it breaks lol
includes the ridiculous & incredible EN translations mod component
a world without i18n...
Oof 
The mail appears to be broken as well, neither upgrading the house nor reaching the required date work. there is a letter icon over the mailbox but not mail when clicked on. Hope my log can help you 
https://smapi.io/log/a342f04b78de4d92854dc4552945393c
Log Info: SMAPI 4.1.7 with SDV 1.6.14 build 24317 on Microsoft Windows 10 Famille, with 19 C# mods and 1 content packs.
fwiw my strings are fine with that loc build. dont know about mail or anything though
did you install all 3 folders?
theres no "Love of Cooking (EN)" in your log
How to add new tilesets into TILED?
I used stardrop ๐ค I'll cherk rn
Ah, the EN file is in the wrong place ๐ Let's try again with a manual install
Works like a charm so far
blueberry, what about when someone downloads a LOC translation mod and drops it into their folder but it doesnt work because the original LOC includes the EN in its folder and overrides it
you're talking about load order for translation packs? yeah i wondered about that, assumed that anything in the LOC folder would have priority
i have absolutely no supporting evidence that it would
Okay it happened because I made stardrop replace the previous LOC install, now installing over the 2.0 files works without issue
that would mean EN is always shown
i say priority to mean first-applied rather than last, but you knew that of course ๐
alright well it's worrying that stardrop can choose not to include new folders lol
do you expect translators who are used to just making i18n jsons to know how to worry about patch priority
It was included but inside the LoveOfCooking folder
bc theres no guarantee when the translation mod is loaded otherwise
can i force low priority in CP 
you can put a low priority on a patch, but isnt the expectation that people copy the EN folder to work off of?
theyd also be copying the low priority
brb I gotta eat 
as far as i know/can tell, any translations will load after LOC itself if they copy the EN folder, since you put an optional dependency, but beyond that i think its down to default load order, so... by folder name
which is not predictable, nor would i say faultable for a translator if they name the folder in such a way that affects load order, bc how would they know
i put an optional dependency?
sorry not optional, just a dependency
very used to saying optional my hands typed it without thinking 
it stands regardless though
i hadnt brought it up before bc until earlier tonight i thought you were still gonna load the files from the i18n folder so that there'd at least be two options for how to do it
so i guess that
well if there's 2 options and 1 option arbitrarily doesn't work based on folder name then there's basically just 1 option
i meant as an alternative to just reverting everything
which i would call option 2, and the i18n thing option 1
if you load them from the i18n folder initially still then it still leaves room for someone to make a content pack to edit it instead
while also letting people just drop in i18n jsons
in a perfect world i'd want CP and no i18n but i'll think on it tomorrow
somehow doesn't seem so possible now i'm actually looking at it not working
i think better ways than these would probably require more official support from either smapi or content patcher or an independent middleman framework unfortunately
like something that handles just folders of i18n files and update notices but not requiring the other accoutrements that make up amod
i could see it being feasible for a middleman framework to be like. you put the framework as your ContentPackFor and tell it which mod uniqueid the translations are for and it handles adding them to that other mods translation helper but, it'd only work for translations going forward, and only if someone actually opted in to making their translations work with it. lots of translations out there thatd just never get updated to use any updated method of doing translations unfortunately
or they could include an optional dependency on the EN translation in their own CP mods
but they'd need to know that
yeahh... the main problem any tech cant solve: user knowledge 
or i can just add a link to the mod page that says 'ask in making-mods if ur translations dont work'
you could also package in the optional files a translation template
with the priorities and everything set right
also a good suggestion
i was hoping the EN one would be enough to work off tho
can't have everything
you could try adding commented out priorities in the EN pack
like, add a Priority: Late or whatever, but comment it out when you release
and tell people looking in the json of the EN pack "hey remove those slashes when publishing a translation"
also good
fwiw i hope u know im also on your side of "i want there to be some way to make this work"
and not tryin to be negative nancy with all my "this would be difficult to make work"
oh dw i appreciate the input either way, if something doesnt work then i wouldnt want to be chasing it forever to reach a dead end
just tryin to be both realistic and also warn ahead of time that if theres any friction insurmountable to the common translator, you will get different kinds of annoying comments other than "please add my i18n" lol
tbh, even if you spell it out super clear in the description and optional files, im sure you'll still probably get comments asking for i18n support
though hopefully rarely
if i can ignore the i18n files i can ignore the i18n requests
i just want both translators and non-english users to have it easy (and me, of course)
i was still thinking abt this and looking into it i guess this is kiiinda what the project fluent mod does though as far as i understand it that also still requires you to like, make an actual mod to apply your custom translations if you want them to work, so i guess thats kinda the same issue with the content patcher thing. alas
thanks for input & ideas tonight, too tired to think on it more. i'll look at it again tomorrow but delete i18n and go priority: late is tempting
Have a good night 
hello i have a problem i want play smapi on pc but when i click on smapi app (modded stardew valley game) the command prompt opens and it says unhandled exception please help me
!mh
For help with modding issues, please ask in #1272025932932055121! When asking for assistance there, sharing an error log will help others identify your issue (see https://smapi.io/log for instructions).
I'm trying to make sense of an error that came up in one of the modded support threads, which lead me to a CP addition of a custom garbage can, so quick question - would leaving the RandomItemId list empty cause it to generate a null item when the condition above is true? Or should the empty list just mean that nothing is generated whether the condition is true or false?
"{{ModID}}.garbagecan": {
"Items": [
{
"Condition": "RANDOM 0.1 @addDailyLuck",
"RandomItemId": []
}
]
}
}```
If the list is empty it won't be used, Condition determines if the option is choosable
You can see in the unpack a lot of empty or null fields
Yeah, that definitely makes sense - so not sure where the error for null item being generated comes from (for context it's this thread in case you want to see the log I was looking at https://discord.com/channels/137344473976799233/1310148821296087140) wonder if it's something else that tries to spawn item in the custom garbage can 
Yeah that has a null ItemId and isn't valid lol
Although that specific one just forward to Casey tbh
Trying to create debris on a null item?
Or is that spawning it, I'm still hazy on how that works
I thought the SpaceCore bit was a red-herring, huh
Random crap that flies off in every direction, actual stuff you can pick up, why not call it the same thing
i mean the spacecore thing is literally the only error
I think the problem is that it's trying to create debris for a null, it should just be returning without doing anything if it's null
Possibly giving a warning telling you to fix your mod
Too many times I bonked my head over an error that was just.. the aftershock of whatever happened right before - it's like my brain is now assuming the "obvious" is the unlikely culprit - (and the whole Dungeons\Debris did throw me off lol) 
i dont think this one is in spacecore's purview to tell you to fix your mod for, an item becoming null can be caused by a number of bugs that may or may not even have anything to do with your mod, and besides that, spacecore has no way of telling what mod caused it in the first place anyway
i cant actually see why it would even be trying to call createItemDebris at all, lookin at the garbage code
I thought that's how items are spawned from them
it is, but it shouldnt try if there is no item
and if there is an item, it wouldnt be null when spacecore got it
which is not to say spacecore shouldnt do a null check anyway bc of things like this, i just dunno why the cause
Hey Button, I'm updating my patchs to use cmct but there seems to be a problem with the custom token "Spiderbuttons.CMCT/Config". Would you prefer I make a bug report on the mod page ?
whats the issue?
I get an error in the smapi console when launching and in game it seems the parts of my patch that use cmct aren't applied
Log Info: SMAPI 4.1.7 with SDV 1.6.14 build 24317 on Microsoft Windows 10 Famille, with 20 C# mods and 3 content packs.
what did you write in the token in your content.json?
"Action": "EditData",
"Target": "Data/Objects",
"Fields": {
"slimerrain.uncleirohapprovedteacp_Lavender_Seeds": {
"ContextTags": [
"slimerrain.uncleirohapprovedteacp_season_spring"
]
},
"slimerrain.uncleirohapprovedteacp_Jasmine_Sapling": {
"ContextTags": [
"slimerrain.uncleirohapprovedteacp_sapling"
]
}
},
"When": {
"Spiderbuttons.CMCT/Config: slimerrain.uncleirohapprovedteacp, KeepQLFG2Dupes": true,
"Spiderbuttons.CMCT/Config: slimerrain.uncleirohapprovedteacp, KeepCFEDupes": true,
"Spiderbuttons.CMCT/Config: slimerrain.uncleirohapprovedteacp, KeepWFCFDupes": true
}```
My patch used a copy of uncle iroh's config options and I tried to use cmct to fetch them from the mod instead
while i should account for it too (and will in an update), that mod does not have those config tokens
those are dynamic tokens
Oh that's why
still tho, thats still definitely an oversight on my part to let the token just completely fail, so i will make sure i fix that soon too
thank you for bringing it to my attention!
Thanks for the quick help !
I could work around it for now by using the options in the ConfigSchema, users will just have to tick those instead of relying on the mod's dynamic tokens
CMCT does have a Dynamic token too if you really need the dynamic tokens
CMCT should have logged a warning about it though
ill have to look into why it didnt
hey i wanted to ask i wanted to modify a sprite sheet for my character but im not sure what each sprite dues i know i starbound there was a simple layout what told you what sprite did what so im asking here if anyone has a example sprite sheet that covers what each sprite dues when im do things in game
a spritesheet for an NPC like Abigail or for your farmer?
for the farmer
then i unfortunately have no idea about any of the farmer spritesheet, sorry to say
oh x.x
there might be something on the modding wiki, but i couldnt say for sure. what kind of edit did you want to do?
https://stardewvalleywiki.com/Modding:Farmer_sprite
There kind of is
But it's uh.. not fantastic I would say
oh lord
I get why it's like this, but I don't have to like it 
I guess the better question is what r u hoping to do
yeahhh
i think this is why most people dont usually edit the farmer spritesheets themselves
It's a paper doll nightmare
make the belly pudgy if anything on this sprite
that's what im trying to do
but i have no clue of this layout
Just gotta make a beer belly shirt
yeah you'd have to edit every single clothing sprite ever
I would look into making plus sized shirts in fashion sense
i also second the fashion sense suggestion
i only plan to use one set of clothing for the character and i already know which to modify i just dont know the sprite layouts
i actually use fashion sense mod :P
if you already know the clothing to edit, then you shouldnt need to know exactly when each frame shows up. you should just be editing every sprite of the clothing anyway
which is probably also true even if you did just need the farmer sheet
X.x
im kinda new to stardew modding on the dev side of things
i've mostly just used modpack and went with that but decided i wanted to try my hand out at spriting
i actually didnt realize that all the shirts and stuff were that tightly packed together, you might actually need fashion sense for this
well im using genie pants (female) and some sort of bikini shirt(female
but beyond that i have no clue x.x
there is basically no room on the clothing sprite sheets
Well, it works exactly as intended... Sorry for the false alarm Button 
no no, dont be sorry! you still pointed out a very important bug to fix
one mod doing that wrong should not break the token for everyone lol
Oh it broke for every mod ?
I would have never understood that with my testing ๐คฏ
Hi all, I'm trying to find what part in the game determines drops from artifact spots but uh, I there's a few different places that do determine things and I don't know which to take as a base; as for reason I need a mod that shows what will an artifact spot drop if dug
GameLocation.tryGetRandomArtifactFromThisLocation would probably be a good place to look at
It combines the current location and the default location
Directly under that is also digUpArtifactSpot which also includes the Mystery Boxes
So you'd need to add those separately of the artifact spots if you wanted to show them as well
Also a good method because it has the method for spawning animal crackers and skill books
Hi, sorry if this is a dumb question, i'm pretty new to modding. What are some of the common bug reasons question fork will skip over code?
i'm still testing so i dont have stuff written out for answer1 and answer2 but so far it looks like this (i replaced the dialogue i have with placeholders so theres less to read through)
(end of first event line) /question fork1 "...#I'm fine, just tired#I'm a bit injured..."/fork Not_Injured/",
(start of second event line) "Not_Injured": "pause 10/ speak Harvey "Dialogue1. $5#b# Dialogue2 $2#$b# Dialogue3 $0#b# Dialogue4 $1"/ end "
The question box shows up fine but then the farmer and harvey just kindve stare at each other no matter what option you pick.
Are you escaping the internal quotes?
what do you mean my internal quotes
Like the quotes around your fork
do you have multiple forks in your event?
Unless your primary quotes are single quotes
just one fork, you can pick answer 1 or 2 and the dialogue will change depending on which, but after that there are no more decisions
ill check
!json generally easier to tell what's going on with the actual content
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.
tbh as far as I'm concerned, don't use that method of forking
it's fragile and kinda weird
instead, use quickquestion and switchevent
hang on, let me find an example
ok, ill try to use those instead then
thanks!
i figured it was fragile, when i was looking for the syntax for it basically every place said it was really finicky ๐ญ
so, the quickquestion of yours would be
"event one": "[rest of the event]\quickquestion ...#I'm fine, just tired#I'm a bit injured...(break)whatever//for//the//just//fine//(break)switchEvent Not_Injured"
I think
is "(break)" signifying a new line?
no, (break) is how the game differentiates between teh question and the responses
the format is "question(break)first response(break)second response" and so on
and yes, the literal string (break)
here's one of mine, for eample
sorry, it's not very readable, lol
oh i see!
so, harvey asks a question, you can say yes or no, yes causes some money to be taken from you, you get friendship, and pam goes to rehab for 14 days
i'll try and use quickQuestion then, thanks a bunch :)
no worries! We can try to explain again if you run into trouble, event commands are weird
very much so
it was a funny bug to have tho, like harvey has a patient tell him theyre hurt and he stands there staring
Too realistic for me
๐ญ
Only thing that could make it more realistic is if his response was "You're overweight, here's some experimental (expensive) drug to help you lose weight"
lmao
"but, doctor, my issue is my broken leg because of a monster in the mine" "this changes nothing to my diagnosis, see you next time"
"i was attacked by a bunch of bats" "have you tried sleeping more and going on walks?"

welp, I get why people think daily luck is weird now
why?
this is the seed for Game1.random
it's used a few times before daily luck is set, but not thatttt many
Do farmhouse events actually fire the moment you wake up if set to 6:00? Searching gave me an old discussion and the answer wasn't very clear, seems like it's janky
do you mean farmhouse events as in INSIDE the house or on the farm, because im pretty sure events on the farm should be triggered as soon as you leave the house. but for ones actually inside i have no clue
Inside the house
Remind me in 5 days to do an error item check in events tester
I'd rather boot myself on an unprotected windows XP install than deal with you but we can't all have what we want, can we? (#6380473) (5d | <t:1732900285>)
Love you too, ub3r
Bad bot
!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 4.1.7 with SDV 1.6.14 build 24317 on Microsoft Windows 11 Home, with 210 C# mods and 605 content packs.
Right. That
The problem is that you need to tell smapi explicitly to package dependencies
Here is what I have for atracore
Full docs here
Worth it to know that specific package was cut from smapi for being weirdly slow
This isn't really news? It's well established that daily luck is based on step count, there are even pretty old mods to help players predict/manipulate it that way.
(Update on Android modding: Stardew Valley no longer uses ahead-of-time compilation in the latest versions on Android because it was causing issues, so Android modding is likely doable once someone re-ports SMAPI.)
Oh, aot is gone for good?
Giving ANY queries a try for a condition, am I correct in understanding that this will be true if any of those buildings are constructed ?
ANY \"BUILDINGS_CONSTRUCTED All Coop\" \"BUILDINGS_CONSTRUCTED All BigCoop\" \"BUILDINGS_CONSTRUCTED All DeluxeCoop\" \"BUILDINGS_CONSTRUCTED All PremiumCoop\"
Yep (aside from the building IDs per Selph below).
those are the wrong ids
It probably won't be readded in 1.6.x at this point, since it caused crashes again when we re-enabled it this weekend.
That's too bad, considering the optimization trade-off.
Dammit 
the premium coop id is not included, you should reference SVE's files for those
(it has the mod unique id)
(github did a number on your indentation)
ah fuck was I mixing tab and spaces and vim hid that from me again
Re this bit:
"Condition": "ANY \"BUILDINGS_CONSTRUCTED All Coop\" \"BUILDINGS_CONSTRUCTED All \\\"Big Coop\\\"\" \"BUILDINGS_CONSTRUCTED All \\\"Deluxe Coop\\\"\"",
You can optionally remove one level of escaping by using single quotes for the main string:
"Condition": 'ANY "BUILDINGS_CONSTRUCTED All Coop" "BUILDINGS_CONSTRUCTED All \\"Big Coop\\"" "BUILDINGS_CONSTRUCTED All \\"Deluxe Coop\\""',
I still have a long way to go it seems
I don't even understand why there are more backslash...
Thanks Pathoschild !
Is buildings constructed not one of the gsq that takes multiple inputs?
(I'm not at home so I can't check myself.)
Nope, since it has other arguments (e.g. the min/max number constructed).
i got the quick question working (thank you sm by the way that's gonna be a life saver) but i have a few follow up questions
do you know if its possible to have stuff like \speak Harvey"dialogue1"\faceDirection Harvey 2\ speak Harvey"dialogue2" within an answer? Its not necessary but it would make the cutscene flow better, and everytime i've tried it will do the face command but then skip over dialogue2
Oh right.
Make the slashes go the other direction
whoops wait, i think discord got rid of some of my slashes
Also tbh I'm currently fighting work fpga code which means I'm twiddling my thumbs for 15 min at a time waiting for it to compile but I'm also on my phone so I can't actually like see things
like this?
yep
oh ok fire
itd be nice if there was gsq for Utility._HasBuildingOrUpgrade
ok lemme retry
and if that was public
\speak Harvey\"dialogue1\"\\faceDirection Harvey 2\\speak Harvey\"dialogue2\"
@calm nebula you were saying to have them face the other direction, do you mean for the double backslashes in "faceDirection"?
Also @ivory plume how much do you care about rng not going through Utility.CreateRandom
Of the handful of cases I was looking at, most have to do with the keysmash secret. Meteor dropping prismatic shard is still old rng, and also new day after fade's game1.random seed
\speak Harvey \"dialogue1\"\\faceDirection Harvey 2\\speak Harvey \"dialogue2\" missing spaces
Does anyone know the default size of a painting off the top of their head?
oh, is that all? i didnt know it would skip over code cus of space syntax like that, thats crazy ๐ญ
There are multiple paintings at different sizes
(I think it may be 1 2 but I am uncertain)
So there's two main levels. The actual game state query is:
ANY "BUILDINGS_CONSTRUCTED All \"Big Coop\""
You need one set of quotes ("") to group it into one argument for the ANY query, and the inner set (\"\") groups the name for the nested query. You need one set of backslashes (escapes) to avoid ending the main quote pair.
But the complication is that you're writing the query in a JSON string where quotes and \ are both special characters, so they're pre-parsed by the JSON parser before it's actually received by the game. So if you want to send one backslash to the game, you need two backslash in JSON (i.e. escape the escape character):
'ANY "BUILDINGS_CONSTRUCTED All \\"Big Coop\\"'
Where \\ tells JSON to send a literal \ character to the game. Let me know if it's still confusing!
Specifically looking for the one it uses when -1 is entered for the Tilesheet Size field, Logo
Ideally everything should go through the RNG utilities to avoid repeating patterns and such, so feel free to report those.
Will do when I get home!
I sort of get it, but why aren't there \\ for the Coop then ?
Just to clear things out, I have no coding/modding backgroud and started making mods in July 2024
You mean why it's like this:
ANY "BUILDINGS_CONSTRUCTED All Coop"
Instead of this?
ANY "BUILDINGS_CONSTRUCTED All \\"Coop\\""
Both versions will work fine. It's just that if there's no spaces, you can omit the quotes since it'll be a single argument either way (since arguments are space-delimited).
#1277457201077813280 message obligatory plug of the master list for events 
(That's fine! Many mod authors here started with no previous programming experience and learned as they went.)
I understand now
Thanks for the clarification. I believe the default is 1, 2, if I'm reading Furniture.cs correctly.
just want to say
i was trying to make a small mod for another game (that i may give up because arg, it sounds so tedious) and i'm grateful for : good log AND forgiving schema, because one of the error i had was a trailling comma
Thanks for the help
I think I have reached the limits of what I can do with just the wiki and searching previous posts ๐
what are the others? no idea
So funny
(glances at MUSEUM_DONATIONS...)
if u escape a few more times you'll start knitting
(Just wait until you use patch parse to pass game state queries containing quotes to a command which expects quotes through a console that parses quotes.)
So if I got it right this time, my condition should be like this ? The premium coop in the sve files isn't written with additional backslash though ๐ค
"Condition": "SYNCED_RANDOM year br93.FarmersMarket_Marnie_174 0.8, ANY \"BUILDINGS_CONSTRUCTED All Coop\" \"BUILDINGS_CONSTRUCTED All \\\"Big Coop\\\"\" \"BUILDINGS_CONSTRUCTED All \\\"Deluxe Coop\\\"\" \"BUILDINGS_CONSTRUCTED All FlashShifter.StardewValleyExpandedCP_PremiumCoop\", PLAYER_FRIENDSHIP_POINTS Any Marnie 500"
i very quickly gave up on trying to use patch parse for that and just added a debug hotkey that ran it with C# instead
you must get the right quotas
ใSYNCED_RANDOM year br93.FarmersMarket_Marnie_174 0.8ใ
What about PLAYER_HAS_SANITY ใlol wutใ
then we can get gbk encoding problems 
Yep, that looks fine. Or if you use single quotes for the JSON string, you can remove one level of quote escaping:
"Condition": 'SYNCED_RANDOM year br93.FarmersMarket_Marnie_174 0.8, ANY "BUILDINGS_CONSTRUCTED All Coop" "BUILDINGS_CONSTRUCTED All \\"Big Coop\\"" "BUILDINGS_CONSTRUCTED All \\"Deluxe Coop\\"" "BUILDINGS_CONSTRUCTED All FlashShifter.StardewValleyExpandedCP_PremiumCoop", PLAYER_FRIENDSHIP_POINTS Any Marnie 500'
Not quoting FlashShifter.StardewValleyExpandedCP_PremiumCoop is fine, since it doesn't contain any characters that would split the argument (i.e. space and comma).
(Syntax highlighting doesn't like that since it's not strict JSON, but it's valid for the parser SMAPI uses.)
What a relief
With that I'll be able to update tonight 
Thank you very much Pathoschild and Selph, couldn't have done it without your help !
Can someone take a look at these fish for me and maybe give me a clue as to why I can see their spawn conditions in Lookup Anything but they are still not catchable? https://smapi.io/json/content-patcher/4aae361d466e44d78c1bb1cd72c176cb I can't seem to wrap my brain around the issue
Ignore what lookup anything says about fish conditions rn
There is a known issue wrt to the Condition field
I see, so why would certain fish still be catchable with the correct conditions I have set for that location and some aren't?
hey
For example the Bluegill has no issues, but the mossy cod is not catchable at all
can some one pls tell me how te fix tis bug ?????????
is this your mod that you are making?
I have issues with the Emerald Jackfish, the Mossy Cod, Moray Eel, Baby Reef Shark, Lunar Salmon and Ghost Pike
Tbh you don't need both the location gsq conditions and the fish data conditions
If they don't differ
True, but that still wouldn't fix whether these fish are catchable or not, no?
I'm just so lost at how those specific fish are having issues but all others are working perfectly
I fixed it๐ญ
anyone know the dimensions for the aquarium fish sprites
24x24
Thank you!
I have a question since I don't see any info on the wiki or any patch notes of it, what exactly here is the difference in what makes trees grow in winter in the desert from 1.5 to 1.6
// StardewValley.TerrainFeatures.Tree
public override bool seasonUpdate(bool onLoad)
{
this.loadSprite();
return false;
}
``` vs.
```// Stardew Valley, Version=1.6.14.24317, Culture=neutral, PublicKeyToken=null
// StardewValley.TerrainFeatures.Tree
using StardewValley.Locations;
/// <inheritdoc />
public override bool seasonUpdate(bool onLoad)
{
if (!onLoad && Game1.IsFall && Game1.random.NextDouble() < 0.05 && !this.tapped.Value && (this.treeType.Value == "1" || this.treeType.Value == "2") && this.growthStage.Value >= 5 && this.Location != null && !(this.Location is Town) && !this.Location.IsGreenhouse)
{
this.treeType.Value = ((this.treeType.Value == "1") ? "10" : "11");
this.isTemporaryGreenRainTree.Value = true;
this.resetTexture();
}
if (this.tapped.Value && this.Location != null)
{
Object tileObject = this.Location.getObjectAtTile((int)this.Tile.X, (int)this.Tile.Y);
if (tileObject != null && tileObject.IsTapper())
{
this.UpdateTapperProduct(tileObject, null, onlyPerformRemovals: true);
}
}
this.loadSprite();
return false;
}
Does anyone know if it's possible to change the offset of the fire on a fireplace furniture piece without C#?
this is about the new mossy trees i think, and some refactoring about tappers
desert have hardcoded spring season for trees iirc
not for 1.5, which is why i'm surprised it's not mentioned anywhere in the patch notes
Hey there, Im super new to modding but a log time player/ mod user of SV and I wanted to try and add a bunch of cute shrimp to the fish tanks. Im having a very hard time figuring out how to load the .pngs i have for the shrimpies. Should i be using LOAD or INCLUDE? I cant find a solid answer anywhere and Ive been at it for hours. Any help would be greatly appreciated!!
For more context, i dont want them to work as shrimp right now (like crabpot spawning, requesting, selling, etc) but wanted them to be more like an animated decoration for the tank- perhaps something that can be spawned by a cheat menu or config?
include is just a way to say "add this json file", which in turn can contains edit/load and such, so you want to load
if you have a lot of stuff, you may want include later but it's like, akin to folders, it's a way of organising
for your objects, add them as objects then to the aquarium file (and its own tilesheet)
coral may be a good starting point
Ohh okay that makes a lot of sense- i can see in this other mod im referencing that they are using the include function in this way. Thank you! Is there a way to add multiple assets at once or do i need to create a new load action for each png?
you can have them in one image, but you then need to understand how the index works
basically, each item will take a square (usually 16x16, but aquarium i believe is 20x20),
I didnt want to do a tilesheet since they are already separate pngs. Maybe thats inconvenient and i should combine them out and doo the coordinates like i did for the shrimp
24x24
the first will have index 0, the second index 1
what you find convenient is up to you
You can do a TargetWithoutPath
My recommendation is to combine the png
Combining is generally better for performance
There are online spritesheet combiners
It took me like, two minutes to combine more fertilizers
Also corncrib just fyi but
The ransom ass shit you can add to fish tanks is very hardcoded
Like the pineapple
They have animations on them is the only thing that worries me. They are 3 images of shrimp that animate when put into the game. I have it working right now for the default shrimp, but i want to do different colors, and i cant seem to do more than one color at once without it making them invisible lmao
Oh right, objects in the tank are 16x16 I think
Thank you for telling me! So im learning lmao
Yes! 16 x 16
Well, technically the sprites for fish are roughly 16x16 too, just the full sprite area of each index is 24x24 for the aquarium, it's a weird sheet
For fish specifically
The objects are at the bottom of that sheet, though I'm unsure how adding custom textures for objects added to the aquarium works
I can config and toggle the colors in mod manager, but i want like a red and yellow and blue and green shrimp all in the same tank and cant seem to do that without just making new shrimp. I dont want to reskin existing fish, and i didnt think this would be SO hard but sheesh the aquarium code is so persnickity
Ive been following more new fish and ornamental shrimp as guides
Fun fact.... you don't!
Maybe this is the issue I was butting up against last time I was messing with the aquarium stuff
is there a doAction but for npcs? the event guide specified it was for the farmer, but i want the npcs to open doors too and not js.. float through them
Thanks for the help though everyone i appreciate it
i mean it has to exist because gus opens the saloon doors when he walks through them
in events?
yes
i don't remember if it really needs the farmer to be next to it to happen
have you tried it like you want it to happen?
I haven't tried it yet i was js curious if there was like, a common knowledge command lol
idk if what i js said made sense
yes, i get it
ok great
when people are like "no, shake doesn't work for farmer, use jitters instead"
so many different commands ๐ญ
i didnt wanna spend time trying to debug smth for a command i wasnt supposed to use
i get it! however the cases, while they exist, aren't the rule, and a quick test while keeping in mind it may not work may be better long term, when you'll feel ready to experiment
The Shane event in AnimalShop uses doAction when the farmer isn't near the door so Marnie can walk into his room
(also with events we have a lot more debug info which is great)
all of the guide "books" have been so helpful :)
i am grateful for the documentation and the error logging
fr, this is the first mod im really committing myself to, and its probably too expansive for a first mod so im a bit in over my head and im VERY glad i have examples to work from or else id be completely lost
do you think Priority: Early in the base pack with a '// REMOVE BEFORE FLIGHT' comment is more or less clear than a commented-out Priority: Late? trivial difference i know
general question i suppose, not to button specifically
small update 
im glad you got your thing working :)
oh dw it's probably broken again now, but that's what 2.0.1 is for
real !
have to stay on-brand
My 1.6 update is more than 450 commitsssss
did you manage to break the 30,000 changes mark 
my numbers are super pumped from converting JA items to CP
To be fair that 450+ commits includes a handful of mods I started working on for 1.6
And never released
Because releasing is uncool now
Gotta keep my cool enby allure you know
maybe you stole all the cool and there's nothing left
where is interaction text stored, as an example, when you interact with a shop and it tells you its closed, you would access that text with
"Target": "Data/...?
i'm not sure
but
if you have the text in mind, i suggest using a text editor able to search in a whole folder
and search for the text
i haven't used a text editor before, or if i have im not aware of it
is it like stardewxnbhack?
where it decompiles stardews folders..?
it's stuff like notepad++, sublime and such
OH
here an example in french for searching in the whole folder of another game, a very useful example
i didnt know they could do that
notepad (no ++) doesn't have the feature, but any "advanced" text editor will
!software
Here's a list of software for pixel art and JSON text editors we recommend: https://gist.github.com/ishanjalan/c8efb21afa21f74a052293176db107f7
For making SMAPI (C#) mods, see the Requirements section here for which IDE to install https://stardewvalleywiki.com/Modding:Modder_Guide/Get_Started#Get_started.
thank you :D
sure ๐ it's very convenient for all stuff like "where did i mention junimos in my mod?" "there's a dialogue about fairy in base game but i don't remember where" "i reference some wildflour items but where?"
:))
That sounds like work
Unfortunately... it is

I tried to do work and had to take a 4 hour nap, hard pass
My sleep schedule has been really bad lately, I had to catch up on sleep a lot this weekend
For blocking the crows event all I did was a harmony patch and I've been trying to trigger the crows by planting over 20 crops but they won't show up. Should I conclude my code works?
It says on wiki 15
For what it's worth you get one chance of a crow per 16 crops planted
you can use debug commands to test things like this easier btw
You can trigger the crow event?
eg. debug setupbigfarm, or
clearfarm -> spreaddirt -> spreadseeds <id> -> growcrops <days>
or similar
Isn't there like setupbigfarm or something?
will plant crops in your entire farm which will likely massively increase likelihood for crows
Ok thanks
Just need to test that harmony patch I made and then also I am making a island farm I wanted it to have ginger island location context but it causes an issue on the farm when it is raining. The interior looks dim like rainy weather but outside it's not. So I decided maybe I should remove the location context for the island or is there a way to change the farmhouse weather?
@brave fable Just letting you know I just implemented the fix for SpaceCore skills in splitscreen, for upcoming 1.27.0. Have some other fixes I need to do so not releasing right this moment
thanks! perfect timing haha
@next plaza there's an exception thrown from spacecore spawnables when mods don't properly provide garbage data https://smapi.io/log/b885ffc216e14ae7b536eaeba11adbec
Log Info: SMAPI 4.1.7 with SDV 1.6.14 build 24317 on Microsoft Windows 11 Home, with 44 C# mods and 59 content packs.
Do you think you could add a check & warning log for it 
Warning for the specific problem really was wishful thinking on my part lmao, Button was right that there's not really a reasonable way to know what is causing the null
Not without patching in a whole bunch of extra arguments passed
Yeah I don't expect spacecore to know what mod put in bad garbage data
Oh do you just mean a general warning about something passing a null?
Yeah, tho hm enough ppl bug spacecore for benign logging like this tbh
Maybe silence is best 
The path finder warnings weh
If it were actually stopping something from happening it would matter more I think
It's just currently throwing an error for something that wouldn't do anything anyways lol
The best you can hope for with improperly set up id's like that is an error item lol
That code is literally just:
How is that even possible
Like, it's Game1.createItemDebris
That will be erroring anyways with a null item
I can add a check so people don't blame SpaceCore, it's really weird though
I started falling down that rabbit hole trying to figure out how it could even get a null in the first place, but I'm not in a look-at-code-headspace today
anybody know if it's possible in Nexus BBCode to place images side by side?
Don't think so
Is there a debug command to remove a conversation topic?
Or I'd be surprised if so anyways, BBcode normally doesn't allow that
That if statement has big "this could have been a return statement" energy
If not, thanks to a user on one of my modpages I need to build in a trigger action
damn
does anyone understand this pipeline failure lol
https://github.com/Pathoschild/SmapiCompatibilityList/actions/runs/12000709456/job/33450157430?pr=5
Good point, my code style varies a lot depending on my mood ๐
But want to check if there's a simpler way, since "conversation" or "topic" don't show results on the console commands page
RemoveConversationTopic
oh
i misread sorry
i thought you wanted a trigger action for it
You can use a debug action
You can also just do ^
Cant you run trigger action as debug command
To run a trigger action lmao
Yeah I know the trigger action
It's an easy fix trigger action wise
Oh, duh, right, the trigger action debug
thank you
Jinxed...
[[Luau]]
thank you!
you're welcome 
Okay, coming back with a log for this reported error:
[Unlockable Bundles] cleanupDay was called by NotOnHostComputer -7105846935796677645
[SpaceCore] Doing skill menus
[SMAPI] Skipped reload for 'Cornucopia.MoreCrops/teabushes' because the underlying asset no longer exists.
[Unlockable Bundles] cleanupDay was called by P0 2382915790532795785This hasn't happened before today but I am getting this error just before I crash on my multiplayer game! Help!
<https://smapi.io/log/666e9c2c4a0947d7856162d905a82870 >
Player has some mods which should not be commented on. Other than that I see that there are dozens of trace messages in between the warning for cornucopia and the end of the log. So this seems like a not my problem, right? I just want to point them in a direction to go in
Log Info: SMAPI 4.1.7 with SDV 1.6.14 build 24317 on Microsoft Windows 11 Home, with 36 C# mods and 29 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
oh ive seen this frequently
The cornucopia asset reloading warning is pinging multiple times which is weird, wonder if there's some host/player interaction with the season token
Yeah I dont know about this crash
always figured it was some custom bush quirk on linux
It's suggested that it's because I use the {{season}} token in the filename to load season specific pngs to the asset
so when you quit the game to menu, the season becomes invalid
etc
if thats the cause i'd expect seasonal big craftable mods to have the same issue, but they don't
because those have a default texture thats patched later
anyways i dont see anything obviously causing crash here 
Yeah
ah maybe if u just load spring always and do EditImage?
still it's prob not cornucopia's deal 
Why are my mixed seeds not showing up as ginger island crops? If I set location context.?
thats all u can say to em
are you using item extensions?
Why
to change mixed seeds
I am but it's not used in my farm mod
i ask cus i think mix seeds r pretty hardcoded
Yeah so it's not on islandwest.cs code?
I put the location context as island but mixed seeds still grow normal
yes, take a look at Crop.ResolveSeedId
it is explictly checking the type, rather than just checking location context
Ok
How do I override the farmhouse interior weather to match ginger island?
Guessing farmhouse.cs ...
try setting the location context to Island (looks like this is done via map property: https://stardewvalleywiki.com/Modding:Maps)
Does anyone have any experience getting the Content-Patcher schema to function on VS Code? I followed the instructions on github but cant seem to get it to run
SpaceCore 1.27.0 released with HD texture override support, fix for SpaceCore-driven skills in split-screen, and some other small things/fixes. ( @brave fable )
GMCM 1.14.1 is out with the API behavior changes from 1.14.0 for the openmodmenu stuff reverted and a new method for the new behavior ( @teal bridge )
HD texture support! I can't imagine what I'll use that for, but I'll try my best to come up with something
Ooh, HD texture! Can it do overlay?
4k truffle juice texture
Hmmmmm
real life photo of lewis' shorts
No, it's not done with CP EditImage, it's using SpaceCore's texture override system
Though in theory you could do weird things to use overlays
I think
(ie. Load and then EditImage an HD image, then use that as the SourceTexture in the texture override)
hiiii im a newbie modder and was wondering if there was a software that allowed non collision objects to be made.. I want to make string lights 
Aa so do all the process first with HD image, then do the SpaceCore thing.
Thanks to those who answered my questions, my new CP mod for Additional Vanilla Child Beds is finally complete! https://www.nexusmods.com/stardewvalley/mods/29698/ 
what're the base expression an NPC needs?
for a marriage candidate you really want to have 6:
sad unique
love angry```
whatabout a regular townie
1
there's no hard minimum but 4 is good (happy and sad are useful for gift reactions)
You're the one making the portrait calls in dialogue, it's pretty free wheeling
(fun fact: i made that old mod to dehardcode gift reaction portraits specifically bc i didnt want my npc to ever look sad when receiving a gift)
normal, happy, sad, angry. That'll be good enough for now. Thank ye
I feel this but I cannot say the same if someone gifted me a bug so I'm okay with the hardcoded faces
would like it if someone gifted me a bug
lol
at work one day there was like, a cockroach in the building
so I picked it up, then a coworker asked me a question, then I just stood there and answered the question while holding the cockroach
then I left the cockroach outside
apparently this is weird behavior
i find that endearing
It does sound unusual, wouldn't quite describe it as weird though
ive done that with spiders but not cockroaches
I hate flying bugs so I cannot say the same. I'll sit there and watch a scorpion do it's thing for hours though
Squirmy gut feeling aside, my biggest concern with grabbing bugs with my hand is that I'm worried I'd do it wrong and injure or kill them unintentionally
Much safer for them if I scoop them in something they can't escape and deposit them outside that way
I have the sausage fingers
I can't remember if you can set the gift dialogue portraits though. I thought I could do a normal portrait call 
looks in #making-mods-general , sees current conversation, leaves
this was added in 1.6 yes
Wait then what's your dehardcode for 
i made that in 1.5.6
Oh 
does Item really not have an IsErrorItem?
Can only Objects be error items?
gotta get the ParsedItemData
yeah that's annoying lol
brb making a functional item called "Error Item"
what was stopping you from doing that before
It wasn't a meme before
a meme? arent i supposed to take what ichor said completely seriously?
Absolutely, v serious meme
chu beat you to it kinda
sexynes has returned to my nexus DMs with a confusing message asking me if i want to continue work on Dynamic Map Tiles, now that another, different person has been working on it. ("they will be allowing access to their code on github soon" ???)
Exact same
what a situation
are they just asking everyone with the Blacksmith role
(
)
That's a lot of effort
is it a dead mod or something
I laughed too hard at aedern
spel hard
(and also read it in a southern drawl)
i dont want to do it cus it looks like hell mode multiplayer situation, and i dont really care about anything it does
i would do it for money 
3.50 final offer \j
well it sounds like a pain in the ass so i don't blame you button
uh I have weeks old candy and some pocket lint
I can draw you a dollar
I don't have time with classes, research and FF, so that's a solved situation for me
3.50 a minute is pretty generous
3 doller
i charge by line of code
("here you go, homer. sorry it's not in packets")
Time to unroll loops
I don't even know what DMT does. Would MEEP be able to handle it
Or wren/rokus map projects 
Definitely not my map project
the multiplayer hell thing is apply map patch as result of tile action
ichor had a time with that
This seems like half of this is already covered by some other mod though
You could probably apply map patches as a result of a tile action with SpaceCore spawnable set pieces
doesnt seem like thatd be that bad with multiplayer
Though they might not apply until you re-enter the location, can't recall
Just a lot of messages I guess
Yeah, it's on re-entering the location for SpaceCore
this sounded familiar and yeah, they nexus-DMed me about DMT back in june
it does sound like the kind of mod the are make (some hogwards thing?) could be done with some combo of other framework
getting a map to forget all previous patch state and recalculate which patches should apply was the most Funโข๏ธ part of getting Portable Hole working
something something you miss 100% of mod makers you dont dm
but why rework my years old project when i can ask someone else to keep it on life support for me
For some reason I hadn't seen that mod of yours, it looks neat.
The map patch thing was tricky when I tried it too (for clearing set pieces) - I ended up reloading the original map and applying that with GameLocation.ApplyMapOverride over the areas set pieces used to be in. Probably has some bugs if applied to areas other mods use ApplyMapOverride on, but that's rare as far as I know and should be fine for the main use case (SpaceCore dungeons)
That being said, set pieces do work on any map, so it could interact weirdly with any mod doing map/tile patches not through the content pipeline
(Oh and I loaded the map with Game1.temporaryContent, which didn't get the cached instance the actual map uses)
what i ended up with sounds super obvious: force reload the map, clear the list of applied overrides, then apply the ones i need. but it took a bunch of attempts at other stuff to arrive there.
for all i know i overlooked something important, but i couldn't discover any obvious problems in prerelease testing so i pulled the trigger
It clears all applied overrides? That does sound like it would interact weirdly with anything using map overrides. 
just the ones for that location
ah, yes, all, but it's my location, so i hope there aren't any others
ah, no, that's just tile edits. inside the hole, the ladders only appear below open entrances
Admittedly I was wondering why you would use a map override with a single tile ๐
it only matters after you get the second entrance upgrade, so either entrance could be open (or closed)
Ah
It sounds like with the second entrance you could do things like I coded for the S&S Potion of Return (which is basically just the Terraria Potion of Return), but with more possibilities (ie. not just going to the farm and back)
Sounds pretty useful and fun
it's a little bit like portal (which is why i made the holes blue and orange), yeah. shenanigans
god i love this fuckin cat
are we able to have item icons in special order Deliver objectives? or is that only for Collect. or did i imagine them entirely
I think you imagined it entirely?
I don't see code in QuestLog for drawing item icons for any objectives
And CollectObjective just has context tag fields
another victim of my imagination 
were you perchance thinking of that
perchance
no ๐
huh, the bird house is cute
man, nexus webp really ate that image
yeah i'm pretty unhappy with nexus' image compression. makes me mad looking at cornucopia's unbelievable mod media getting completely ruined
i dont think special orders have icons do they 
apparently not haha
like its collect 1000 stone and not collect 1000 
i was probably just imagining the big blue bar for Collect objs
but like, with a flower on it
how do u know this special order has sunflowers...
i shoot with my eyes, yet is unseen
ah nice now that spacecore is skip on null it's visible fish's turn
huh, I didn't mean to aim gsq checker at buildings
building required materials
but I don't...mind
actually this is smth else that i rmbr seeing in 1.6.8
[Visible Fish] This mod failed in the GameLoop.UpdateTicked event. Technical details:
NullReferenceException: Object reference not set to an instance of an object.
at showFishInWater.Trash..ctor(Item item, Int32 tileX, Int32 tileY, FishTank fishtank) in C:\Users\shekurika\source\repos\showFishInWater\showFishInWater\Trash.cs:line 48
at showFishInWater.FishManager.SpawnFishInLocation(GameLocation location) in C:\Users\shekurika\source\repos\showFishInWater\showFishInWater\FishManager.cs:line 299
at showFishInWater.FishManager.OnUpdateTicked(Object sender, UpdateTickedEventArgs e) in C:\Users\shekurika\source\repos\showFishInWater\showFishInWater\FishManager.cs:line 78
at StardewModdingAPI.Framework.Events.ManagedEvent`1.Raise(TEventArgs args) in /home/pathoschild/git/SMAPI/src/SMAPI/Framework/Events/ManagedEvent.cs:line 101
Yeah there was never any icons, hence my own custom UI
(yeah the competition is actually just a souped up special order. Shameful I know)
https://www.nexusmods.com/stardewvalley/mods/29299
i have seen this in my dreams
icons in special orders...
a banner that got blown out by jpeg compression.......
well maybe, special order deliveries work on context tags, so without an item_ tag you're clueless
just pick a random item with that tag
its ok i'll make machine mod a dependency so that i can just share the tag icon cache

my actual thought is simplier though, just thing that let ppl specify icon for objective
time to revive atracore-style core mods
(dont)
what is special about that one besides being a personcore mod (personcores as a category are alive and well)
my core mod would be called chore, which is self evidently a bad idea
nothing I just like randomly bringing it up tbh
*looks at the four core mods I still have to have installed* did they die?
How?
I don't have much re-used code, but I am tempted to make a fucking core mod for loading assets, I'm really tired of making new asset managers
what if u make a code gen for that instead
I will have to look it up, not familiar lol
it'd be nice i think, if u could declare a field and generate the lazy prop and invalidate and ready
but i feel like i have at most 1 custom asset per mod so eh
this is the thing i was imagine https://github.com/canton7/PropertyChanged.SourceGenerator
(and I realized I made a mistake in this code when I went to read it)
at least it's harmless and wont crashing ppl's games, unless they use no more lag and mess with the asset loading and cause the erroneous line in question to return null
Ah well, NML is currently broken anyways isn't it?
maybe, havent checked
(to be fair, atracore is 75% "random shit I wish was in dotnet")
so
not a good example?
always has been
atracore sounds exactly like the kind of core mod I would make lmao
yeah by "broken" I very much took it as "doesnt load in the first place"
Oh I think it loads, it just breaks shit really bad
hilariously enough, there is indeed an AssetCache and an AssetHolder in atracore
solving the exact same problem lol
who the hell is requesting a random every time furniture is created
also, I'm moderately annoyed that FieldType and PropertyType are named the way they are
this class would be so much easier to write if it wasn't the case
Was tweaking some RSV dialogue, When I came across some lines from Phillip, those being "Philip.Dialogue.Mon6" and "Philip.Dialogue.Mon6.GN"
I figured out the .GN was to indicate its a line meant for GNM Token mod to process, however this gender neutral dialogue is not present within Philips dialogue file at all, so I'm wondering how that all works since theres no key the dialogue is being connected to? Can I just make my alterations, and just have my mod include the GNM token mod the same way RSV has done it, or am I missing something?
Unless it's been updated, the original state of it was "would break major parts of the game if it actually did what the author thought, but since the parts of it that break the game are themselves broken, it's effectively harmless".
Mine's called LazyAsset, but since it's just 50 lines (with generous line breaking), I'm content to copy and paste.
(If I ever feel the impulse to do another "core" mod, I'll just make another framework instead)
Nope, you'd need C#, or you can use FF
It's hardcoded in the Furniture draw function, so the only way to move the position of the fire while keeping all the Fireplace properties is to harmony patch it (either hard prefix rewriting the whole draw code, or transpiler to change the position on the draw call for fireplace fire).
are we able to chain %item commands in mail entries? eg.```json
"{{ID}}_Flowers": "{{i18n:quest.mail.flowers}}%item money 2500 %% %item conversationTopic {{ID}}_Flowers 7 %%"
You need a %% per
like so?
So %item <stuff> %% %item <more stuff> %%
So I want to make a mod that changes sound effects to be stereo, like if a player or npc is on your right, the sound would be as such, From what I am seeing, I might have to use harmony patching? Or can I change it in the SMAPI
there is no "use stereo" boolean, but the non reflection/harmony way would be to set Game1.audioEngine to your replacement audio engine that can do stereo playback even when the source audio is recorded in stereo
I think SDV already supports locational audio?
just in a bunch of specific places
SDV's locational audio is just volume based on distance
every experiment i've made with locational audio in sdv has been a complete disaster
never again
Didn't SDV swap to OpenAL for sound engine?
sorry, Game1.sounds with a ISoundsHelper
(dang, fooled me though)

