#making-mods-general
1 messages · Page 475 of 1
It worked when I copied and pasted the entirety of "Items" with this one entry added at the end.
I know I have this event marked as seen.
Didn't work.
Any other ideas?
Did you check the Condition as instructed
It's just gonna say if that GSQ eval as true or false
If the gsq is True, then the next thing to do is patch export Data/Shops
It's true, step 2 done as well. It's not there.
did you Include this file?
Yep.
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.
I'm using the JSONLint validator each time something doesn't work. Both JSONs are valid.
okay, can you please send the json with the include and that json via the smapi validator?
its for us to be able to read it as much as it is for your own validation
Okay, sorry. I can't read apparently.
it'll change the url to a link you can send here
Give me a moment.
Thank you for showing me this one, it found an additional "s" in one of the fields.
I'll try now and tell you what happens.
oh, TargetFields vs TargetField, yeah thatd do it 
Makes sense since I initially used Fields.
Hellloo
https://stardewvalleywiki.com/Modding:Gift_taste_data
I saw this, but I was wondering, is there a way that we can just have a Love, Like, etc fields and just put the characters names in? I dont want to add custom text/responses for any gifts, or duplicate vanilla texts, at all. Is there a way?
From what the Wiki states, it doesn't seem possible, however, was just wondering! ^^
the format on the wiki is the format you must use for gift tastes
Does anyone else know a possible way?
Forgive me if I'm wrong, could it point to the vanilla gift taste localised strings if you just want the default ones? I doesn't solve your issues entirely, but it does mean no translation needs to be done for them making it quite a bit easier? (and maybe copy pasteable)
are you adding gift tastes to a new npc or vanilla npcs
Vanilla NPCs! ^^ Just for some new items I have
then it's different from the wiki hold on
Alrightyy
wiki is correct for gift tastes for a new npc by the way. just adding onto vanilla npcs without editing their stuff takes a different route
text operations...
You think it's possibly too difficult maybe?
textoperations literally must still follow the gift taste format
Yep, that was it. Thanks for help!
editing individual fields doesnt change the fact that you still need to adhere to the format
well yeah. but the wiki not having an example of how it would be edited with text operations is whats causing confusion here i think
its editing fields within the format vs writing the entire format
its not too difficult. you gotta understand the format on the wiki to know what youre editing. and then use said text operations to edit it. but once you know the pattern its as easy as any other json
and its text operations because you wanna add onto the list of items instead of replacing it. otherwise its really similar to any other nested data replacement
Ahh I see. Didn't see many examples as to what I was going to try to do, for now I'll put it to the side since the wiki doesn't have too much info (at least what I can understand) for now
Because I'm practically pretty new, lol
So what you are telling me is like foreign language
Or, could just be the code verbiage, likely, but I'll eventually learn
im not sure if im using the right words half the time. i just know that this is possible and the wiki doesnt have a listed example is the gist of my knowledge
Understandable, and thank you for telling me also
im also sorry for speaking out of turn, button. i just saw confusion happening and wanted to clear it up but i fear i made it worse
I notice some people, not many but some do only point to Wikis, more of the seasoned developers here, and I get that many are used to hearing it all the time, and wanting to point to a wiki so that they don't have to keep re-explaning. However, we get many new programmers, and sometimes, Wikis are both overwhelming, and complicated to new people. We don't have YouTube tutorials either (Stardew gets many changes, so videos would go out of date, so that's why we don't got too many)
So, a lot of them would often need explaining, and sometimes others who have been in this field for a while start to become out-of-touch with explaining it from a very newbie-friendly level, because they pick up more coding-related verbiage, tactics, and develop a more wide understanding of what is what, and hands-on experience, or some just are tired of it, which is understandable, to a degree.
What you said isn't causing any confusion, and if it did, totally fine, as we're all learning here! And, if I may ask, what are these text operations? Is this some verbiage for a string for a specific context?
well the wiki is full of very useful information. its just knowing how to read that info that often catches newbies
Absolutely, though, it does contain sometimes no usage examples, which becomes a bit trickier, and usually this is where you ask
So, wiki's cannot fully explore everything, it would be very hard to cover all of that in one site altogether
And, verbiage does often take time to catch on ,as well as code structures, patches, etc
I might be wrong, but this might work (I haven't tested it):
{
"Action": "EditData",
"Target": "Data/NPCGiftTastes",
"TextOperations": [
{
"Operation": "Append",
"Target": ["Fields", "Robin", 1],
"Value": "308",
"Delimiter": " "
}
]
}
Assuming I interpret "The key for each field is the field index (starting at zero) for a slash-delimited string" correctly.
This adds Void Mayonnaise as a loved gift for Robin.
If it works.
the wiki for the vast majority of its pages does not provide examples on how to do content patcher edits to things because it is not a content patcher wiki. its a general purpose wiki for documenting game information that is applicable to all mods and frameworks and not just content patcher
Both the regular wiki and the modding wiki is written with thought for beginners and newbies, tools to help write mods are also given free of charge like the json and manifest validators on smapi.io, the docs for content patcher are also written with beginners in mind, these are the reasons people send others to the wiki, they are there to replace explaining things, while here it's for questions when you get stuck and have exhausted to resources already available.
Most mods are almost always made because it's a hobby, explaining the same principles over and over and over takes the fun out of the hobby and really tires people out, this is by far one of the easiest games to mod because of the community but expecting anyone to drop things to just to personally see to someone instead of that someone reading the wiki is taking advantage of the generosity of the community
I think assuming people are owed having a tailored explanation in the first place but saying "some people are burnt out and that's fine" is the problem here
this hobbyist community already spends so much time teaching and writing resources, a wiki to allow people not to spend even more time repeating themselves is the best possible solution, and the fair response to the amount of effort people put into creating resources is to put effort into trying to read them and then asking for help about things that are still unclear.
oh, and not thumbs down reacting the messages of those trying to help you.
I don't really know why the wiki is the recommended way to learn. The docs help much more, in my experience.
https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide.md
because as just mentioned, those are content patcher docs. the stardew valley wiki is not a content patcher wiki
content patcher is just a mod
Yeah, true.
we regularly refer to those too though! depending on the help people need
if you want to know how to make edits to something with content patcher, you look at the content patcher docs or the stardewmodding.wiki.gg if they have a tutorial for it. if you want to know the format of what you're editing and what the data even looks like, you look at the stardew wiki
the content patcher docs arent going to tell you how gift taste data is formatted. but it will tell you how to edit the asset that holds that data
generally,
game information and basic getting started info: base wiki
framework usage information: framework docs
tailored tutorials combining multiple sources of information and specific examples: modding wiki
everything has a place where it best belongs
Useless hallucinations that have absolutely no learning effect: AI
absolutely
hey now ai doesnt hallucinate. it just always gives an answer whether right or wrong

(and as always its good to remember that "framework usage/framework docs" includes content patcher bc it is, after all, just a framework. its an important framework, but still a framework)
AI is a perfect example of the Chinese Room metaphor.
shoutout framework docs forreal
50/50 gamble on a right or wrong answer, and if its about data that isnt readily available, or a bit complicated, then your going to receive a hallucination of what the AI wished it was, rather than what it is
I could make a content patcher competitor right now. I could even bring back the yaml one
wasnt the yaml one just an addon?
i thought it still handed control over to actual content patcher
no clue, I wasn't born yet back then
ooo yaml 👀
Iro Patcher
AI doesn't think tho. so it can't hallucinate. (i just have beef with people saying it hallucinates bc it doesnt... lmao)
yeah it just makes CP support yaml afaik. neat project
anything I make would make you grateful that the wiki and content patcher docs are as detailed as they are lmao
json but different
i was thinking of yaml
It's more or less a name based on observation, not on analysis.
just another way to format your data
I want a version of SMAPI that supports mods written in Brainf*ck.
yes please! 🙂
Fortran please
It is as hard as json, just less wiggle brackets
Omg I finally married Harvey
i really need to note down what frameworks my expansion is gonna need...
hallucinate is just a term that was adopted for when ai gives completely untrue information that wasn't even in its training, it isn't to say it's literally hallucinating because even if it could think that wouldn't make sense
(YAML is designed for Human Machine communication where as JSON is primary designed for Machine Machine communication while still be human readable right?)
Hello, again!!
Does anyone know how "Lance Scheduele" item is coded? 🙂
JSON:
{
"Format": "2.8.0",
"Changes": [
{
"Action": "Load",
}
]
}
YAML:
Format: 2.8.0
Changes:
- Action: Load
...
yeah i know i just dont like it
fair enough
What about toml
Yeah, but unfortunately, they made it too much for humans which is why you now have the Norway issue.
I don't think so?
json is just javascript objects as a markup language
Norway issue?

Wait guys I have a question
I’m a newbie to SDV(kinda), I started playing in 2017, but wasn’t serious.
So what do I do if I have one ancient seed and one star fruit, how do I produce more?
json afaik was designed for human readable data that can be transferred between computers
That's what the manifest is for /lh, Honestly I just toss any likely dependencies I need in there then remove them when I figure out I no longer need it
you are in the wrong channel my friend, this channel is for making mods for the game
countries:
- GB
- IE
- FR
- DE
- NO
NO will be parsed as a boolean false.
Oh sorry 😭
Let me find where to type then
#modded-stardew (if it's mod related) or #stardew-valley (vanilla realted) may be the better place to ask
#stardew-valley dw, you'll get better answers here
you probably want uhh. whats it called. i actually dont know whqat the right channel is named sorry-
yet another reason to throw yaml away
(i have every channel except the modding category and #modded-stardew muted/hidden...)
Format = "2.8.0"
[[Changes]]
Action = "Load"
[[Changes]]
Action = "EditImage"
I hate it i think
I know I hate it
That's amazing XD
I don't hate it, but I also don't enjoy it XD
on the other hand, it'd make it a lot harder for people to do the classic "put a patch outside their changes block" error
it will introduce some fun new errors instead
i think that could actually be a pretty good format for new modders tbh
Lmao fair enough i guess but also i am not gonna be looking there often enough to remember what i threw in there

indentation as syntax still feels wrong to me even if it's more Intuitive to the average newbie
Python
toml like chu said maybe?
you never said it had to be supported by SMAPI
like instead of everything in [[Changes]] itd be like [[EditData]], [[Load]], etc?
oooo someone made PON (python object notation). terrible
TOML doesnt use indent for nesting, that alone makes it less Pythonic than YAML
Format = "2.8.0"
[[Load]]
Target = "blahblah"
[[EditImage]]
Target = "LooseSprites/Cursors"
Imagine
theres somethin there i think
i dont wanna make TOML Adapter tho
abandon DISCO and switch to TOMLCP please chu
Please dont make me learn a new format im barely getting by as it is 🙏 /silly
thanks
But you can also be a crime lord and serde via python str() and ast.literal_eval
they said no yaml!
To really throw newbies off we'd need to force them to use Vim.
any comments, selph?
Let's trap them forever without exit.
Anyways my next project will be Parquet for Content Patcher
is that a bird
Big Data is the future past
uh I'm on my toilet and was switching between discord and brainrot videos every 5 second what do you want my comment on
Take it back to my Petz days, somehow force people to hex edit Stardew
-# we can barely get people not to use notepad. I'm just waiting for our first docx
Apache Parquet Documentation Releases Apache Parquet is an open source, column-oriented data file format designed for efficient data storage and retrieval. It provides high performance compression and encoding schemes to handle complex data in bulk and is supported in many programming languages and analytics tools.
100% yes
I use Vim btw
im sorry WHAT
hasn't happened yet, but I'm sure it will
have yall seriously gotten people using google docs or some shit in here lmao
Thank you, I was thinking you meant the flooring and was very confused as to why you would be doing a predonimantly CP mod XD
If microsoft office weren't a paid service id take "write a mod in word" as a challenge
we had someone inadvertently post rtf text before
what even supports rtf nowadays
Doesn't every text editor that's not notepad do
reset terrain features? its on github
I have no clue how rtf software devs put comments
Help, why does my mod not work qq
Perish.
70kb, could very well be an empty docx
or isn't it? only one way to find out
BANNED.
I have many words.....
we're finding out in real time how many of us would unintentionally open malware if we thought it was just part of the bit
I had to open a new google docs file to open it, || so much effort for THAT || XD
YOU. HAHAH
I open malware intentionally thank you very much. I have very little self preservation
It is wholy an issue XD
Nooooo, you spoiled it!!!
I clicked the link without thinking because I know I would be safe ||I use Linux btw||
||I use arch, btw||
are you one of those weirdos who runs kali linux
(/lh)
That's fun!
Let's compile Gentoo!
soon Affinity will work! I can't promise how soon, but still SOON!
Hmm, some may run via Wine/Proton, though I think there may be alternatives...I think (dont quote me on it!!)
I mean, I make all my stuff in Gimp, so...
yeah. I'm a Hacker which means I run Kali of course (this is all a joke please don't run Kali as your daily driver)
ah Kali Linux, whose userbase consists of 5% actual pen testers and 95% kids who want an xtreme hackerz distro
Affinity is coming to Linux!?
5% seems way too high
i have unfortunately never seen a single person successfully use wine for live2d specifically so i'm wary 
Lol that is very true, most who settle r on Mint/Debian/Ubuntu, Kali is horrid to main imo, pentesting is like Black Arch, Kali Linux, and Parrot OS
not officially, but making it free has helped the Affinity on Linux community group get it working
ahh, yeah maeks sense, some things r very hard
If u can learn krita on windows
granted thats mostly just bc nobody even bothers trying
Then u can switch
some people have affinity working great, others like me have a few issues, I think my issues have been solved I just haven't tried installing it again
as a more on topic aside, i am once again faced with my worst rival: mod page thumbnail...
Imagine putting anything other than the One True Emotr
you aren't meant to main Kali, it's meant to be run from external media and regularly wiped

can I make it
when in doubt I grab random sdv sprites and put glowing red eyes on it
all of modern technology and science still has not figured out the best way to design a thumbnail for a framework that doesnt add its own content
I just need the name
Add
hy default then
you can try but only if you dont take it personally if i use one i make as the primary
(Frameworked Emotions Mod)
I will take it VERY personally. because I'm going to make it using my bespoke lizard sprite
Button does that mean u need ur own map stuff framework now
(/lh to all of this)
MASC
in that case demetrium's presence is mandatory
Map Action Spiderbuttons Cacaw
i do not want anything to do with anything MASC
the framework technically supports lizards if you somehow find a way to apply my function to a lizard Character
L O L
the pixelation feels like a minecraft server pfp
maybe i dont know enough about event commands to know if thats actually possible
no the lizard is the emote. 
thats what i mean, i know everyone is a Character, just dont know if non-NPCs or farmers can actually be targeted
despite that i copied the appropriate offsets for Childs and Pets anyway 🤷♀️
Well I think children can do emote cus they go
when u pet them
i know they can emote. i dont know how you target a child in an event to make them emote
i just copied the vanilla Emote command basically 1:1
I think u use the literal player given name but
Child can only be in a event in festivals i thought
If I want a conversation topic to begin on a specific day of the year I would use the DayStarted trigger, right?
When i tried to add a Child to event through spaget they move around very fast
And also stop moving for reasons
sounds like real children
yeah
Ty!
with an appropriate GSQ condition
GSQ instead of When?
yes, absolutely
Anyways i decided to not do the Child in event spaget in my kids mod so ur demetriums framework is safe from me
Okay, thank you (again) 😅
Hey guys, I'm making a custom NPC and I'm trying out all the different data features that are possible for their disposition. HOWEVER, I cannot for the life of me figure out how to get "SpouseFloors" and "SpouseWallpapers" working! The wiki suggests that this feature would allow my NPC to randomly plaster wallpaper and flooring in the farmhouse, but I can't find any information anywhere on how to select which wallpapers/flooring. Can anyone help a poor soul? It's very important for my health that my NPC spams the skeleton wallpaper everywhere.
my framework would handle it if you got them in the event!
I don't think that's dehardcoded yet is it?
spousefloors and spousewallpapers are lists of floor/wallpaper IDs respectively
short answer: no
long answer: very slightly technically yes, but pretty much no
nooooooo is the long answer and it has caveats
i think you just do this:
"SpouseWallpapers": [
"PutTheSkeletonWallpaperIdHere"
],
i dont know if they need to be qualified or unqualified
Thank you, I will try it >:) Absolutely no clue how to test if it works, but I will definately try it

i only know of one person who has modded the switch and it was very incredibly limited, basically just to the most basic of xnb mods iirc
Are you perhaps looking for #modded-stardew
😭
speaking of Switch mods I wonder if Valve's upcoming thing of running x86 executables on ARM might allow for a very scuffed version of SMAPI running on Linux for Switch
I wish I knew what this meant 😭
chu is right that modded-stardew would be the right place to go for switch mods, but unfortunately there just aint any
I think this is still under the technically yes but no bucket
like Valve is confident enough the Frame has enough horsepower to run some games standalone despite the ARM translation
But hey the 6 modded switch sdv 1.5.4 players can finally try 1.6
im tempted to tell my cousin about how to mod sdv on the switch since he has one that can be modded. just to see how incredibly scuffed it gets. lol
6 might be generous, probably just 2: Pillow and Pillow's other device
LMAO
just abandon switch like i did
I’ll find my way to make my farm cute without mods 😼
i recall one other person a long time ago coming in here with some very scuffed looking json or something that turned out to be switch modding stuff I think
😰
Oh wait they're doing full ARM translation and not just asking people to port games? cool!
Omg
Yeah tbh if u have a PC just buy the game there
I recall it was a map dumping thing
Android works kinda as well (but only kinda).
if Apple can barely ask a couple devs to release their games on ARM no way Valve can get anyone to be on board (they have enough trouble begging people to just port to Linux before Proton was a thing)
(granted the issue is just as much on Apple's near total apathy on making mac a viable gaming platform)
ye I was gunna say apple isn't the most friendly to devs either XD, I very much like how Valve has handled the making of compat layers (this is offtopic now so I will probs move else where if it continues XD)
stardew is one of them and i am very impressed
I can’t use Linux because I’m a music producer and FL Studio does not play nice with it, otherwise I’d make the switch immediately
oh that's fun there's a person doing switch celeste modding
and has gotten further than me with sdv
Reaper works, but I think that's more for recording.
LMMS also works for linux
time to switch to ableton
(i dont even know if ableton is linux friendly lmao. i just know my brother used fl for years before switching and never regretted it)
The big issue is that plug-ins often aren't compatible either.
eugh yeah
(ableton is not linux friendly)
it is, perhaps not surprisingly, tricky to do
yeah 
I have given up making gmcm close itself so my next plan is draw black box over it
(https://www.bitwig.com does work nicely on Linux. Only problem is the supply of third party VSTs and VSTis is... worse.)
REAPER, too.
Alright so, my poor testing farmer just slept through an entire year with no luck doing this 😔✊ But thanks anyway!
That is, assuming i got the wallpaperid correct, i put it as 47
I know this is an older message, though, when we were mentioning gift tastes, does Stardew Valley Expanded achieve what I was trying to achieve?
This (from my limited knowledge of modding) appears to be telling the vanilla NPC if it likes it or not without adding custom dialogue? I assume its going to a fallback dialogue of liking the item, just checking if this seems like it's related! ^^
which part are you having trouble figuring out? /gen
in terms of reading this
Was wondering earlier on how I can add Liked/Dislikes items for NPCs, without creating fully new dialogues for every single character
And from reading on SVE, this seems to be an attempt they made
Though, i was just checking if that looked right or if I wasnt reeading it right lol
right, I'm asking what about the SVE code you weren't sure about so I can direct you to the correct place
Ahh, was just wondering if this was how you can add in Liked/Dislike itself for vanilla NPCs without adding custom dialogues for every single item
since i was gonna do the same for my mod
This is what I suggested earlier. Apparently it works like that.
Yee, just didn't know how to implement it originally, I think I got the jift now on it! : )
well without reading through it in detail, this seems like a text operation on the NPCGiftTastes asset. in terms of what exactly it's achieving, your best bet is to consult the wiki and content patcher docs to see if it's editing what you think it is, since just copying it without understanding is likely to go wrong
This
brah i didnt even see that
totally my bad
i'll read that and then try it
ty serenity! and sorry for not catching that earlier
alrighty
"Robin" is the name of the character, 1 is the category (loved gifts) and "308" is the item ID.
At home I can look up the numbers for other categories.
here i am again, having questions about questions.
which of the question commands do I use in the event script if I want to make something like this:
question
a) selection A -> leads to answer from NPC -> you return to the question "menu" to select another option
b) selection B -> see above
c) selection C -> continues event
basically I want to loop back to the question until the player chooses the option to continue with the event
(obligatory mention that all of these will be replaced with GOTO in 1.7, whenever that occurs) i find that using quickQuestion in conjunction with switchEvent is most easily understandable at a glance! you just have to make sure that your first command in the switched-to-event is pause 1 to prevent things like infinite dialogue. if you want a (more complicated) example, i have an event sort of like that you could look at
Oh, if you have an example I can look at I'd appreciate if you sent it to me! 
https://pastebin.com/5AMD0ASF here you go; i isolated it for you because my events.json is disgustingly long
Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time.
try qualifying the id maybe? unfortunately i dont know the qualifier off the top of my head... (WP) maybe? so (WP)47
in this case i have multiple forks, with two different outcomes, but yours would be much simpler (probably three? two of which lead back to the third, the third of which ends the event)
thank you so much, I'll take a look at it!!
actually screw my example i found a perfect template on the modding wiki
"LogName": "ALWAYS PUT YOUR LOGNAMES, ALWAYS.",
"Action": "EditData",
"Target": "data/events/Farm",
"Entries": {
"{{ModId}}_Heart0/": "continue/64 15/farmer 64 15 2/pause 300/switchEvent {{ModId}}_Looping",
"{{ModId}}_Looping": "pause 300/quickQuestion {{i18n:3QKEY}}(break)switchEvent {{ModId}}_Answer1(break)switchEvent {{ModId}}_Answer2(break)switchEvent {{ModId}}_Answer3",
"{{ModId}}_Answer1": "pause 300/message \"{{i18n:Speak}}\"/pause 300/switchEvent {{ModId}}_Looping",
"{{ModId}}_Answer2": "pause 300/message \"{{i18n:Hear}}\"/pause 300/switchEvent {{ModId}}_Looping",
"{{ModId}}_Answer3": "pause 300/end",
} //close your entries
} //close your editdata```
oh!! thanks for pointing this out to me, you're truly the mvp of my mod making progress
i stand only on the shoulders of mod authors who came before me lol. good luck!
I really find the expression "to stand on the shoulders of somebody" weird, because if I imagine somebody standing on my shoulders it doesn't feel like they're paying respect to me.
It's to "stand on the shoulders of giants", therefore becoming super tall despite your relative-to-a-giant modest height.
so you reach a great height because of the contribution of others
i never knew that was the etymology of it! i always imagined it like this:
where the sum of the whole is greater than the parts
"if I have seen further than others, it is by standing upon the shoulders of giants"
Newton coined it
(Meanwhile, we do all of our science from scratch.)
The "giants" bit is where the respect is, it's saying that others had bigger contributions than you.
Yeah, I know that, but it's still kinda weird.
it's just a metaphor haha
Metaphors are weird.
good conversation killer.
What is the best programming framework for stardew valley script mod? Is Model Views Presenter framework good?
i've never heard of model views presenter. what framework you use depends on what you want the mod to do, though. if you explain your idea we may be able to recommend something
https://en.wikipedia.org/wiki/Model–view–presenter this is all I got
It's definitely not that for SMAPI mods. The general flow is:
- SMAPI loads all C# mods, and calls their
Entry()methods. - SMAPI provides various events you can register callbacks for.
- SMAPI calls these when relevant, and either in the
Entry()method or in those callbacks are 100% where your mod code happens.
A little caveat being that you can Harmony patch other methods, and those obviously run outside of any of those as/when they should.
Yeah that is. Idk what is that usually called. Maybe framework, design pattern, etc. But the purpose mostly to make your code to be more easy to scale it and modify it.
Best practice is to stick to SMAPI's events where possible. Outside of that, you can apply whatever patterns fit.
you can generally get by without any design patterns
unless what you'er doing is very complex
I gotta be honest, I have absolutely no idea what the difference is between MVP, MVC and MVVM.
they are all designed to hurt you [/runs]
It doesn't quite explain MVVM ( https://stackoverflow.com/questions/667781/what-is-the-difference-between-mvc-and-mvvm ) does though
This is great for the first two: https://stackoverflow.com/a/25816573
Thank you really much!
If you put ten software architects into a room and have them discuss what the Model-View-Controller pattern is, you will end up with twelve different opinions.
hi my mod for replacing the galaxysword and infinity blade didnt seem to work could someone check my code for me?
ok idk what this means
that means you have a ` somewhere you shouldn't
at the beginning of the file it looks like
Remove the ```json part
ok thanks
and at the end too
that's only for discord when pasting json stuff, it highlights with the correct syntax
you just have it set to manifest
manifest is a seperate file
set it to content patcher
!log can you please share a log after you load a save
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.3.2 with SDV 1.6.15 build 24356 on Microsoft Windows NT 10.0.26100.0, with 2 C# mods and 0 content packs.
It doesn't show your mod in the log, have you got it in the mod folder?
yes
you also need the content patcher mod, I don't see that in there either
padding out your TLA with the word 'mod'
how uninspired
is your SMAPI in the correct location?
is it enabled in Stardrop?
i mean i dont use stardrop
your log says that no mods were loaded besides the ones that are bundled with SMAPI
Then SMAPI is launching with mods in the wrong place, right now it's looking for \AppData\Roaming\Stardrop\Data\Selected Mods and not Stardew Valley/Mods
does Saving/Saved only run on the main player
Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on Microsoft Windows NT 10.0.26100.0, with 2 C# mods and 0 content packs.
It's still not loading with all your mods, it is looking in C:\Program Files (x86)\Steam\steamapps\common\Stardew Valley\Mods now though
before you ask i used an old save since it was the only one that had the galaxy sword
dah
Whats the full path of your mods folder? (you can click on the top bar in the file explorer to show the full path, then copy and paste it here)
Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on Microsoft Windows NT 10.0.26100.0, with 2 C# mods and 0 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
Now they aren't loading because theres multiple copies of the mods in your Mods folder
ok lemme fix this
afaik those happen for everyone, so check IsMainPlayer if needed
https://www.stardewvalleywiki.com/Modding:Modder_Guide/APIs/Events#GameLoop.Saving
ok all my other mods worked but my one this time
i can tell cause my player was miku this time
Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on Microsoft Windows NT 10.0.26100.0, with 20 C# mods and 18 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
please let this be the last one
can you show us your manifest using smapi.io? it says it has errors and thus can't load
You're missing a } at the very end of the manifest
you need to close the whole thing with }. also, before you upload this to nexus, the format for the update key is incorrect
but that can come later
woohoo there we go
what do i fix for the update key?
https://stardewvalleywiki.com/Modding:Modder_Guide/APIs/Update_checks format it like this
whats the nexus part mean
like mod name or?
no literally exactly like that, but replace the number with your unique number from you nexus mod page
i have no idea what TLA means but i wanted the acronym to be FEM so i had no choice
three letters acronyms?
Totally literate aliens
Terms and License Agreements
i don't think it counts as padding a TLA with it if it's not a TLA until l do it
well as far as i know there's no word for a backronym that's specifically trying to make it a tla
just called a backronym with a goal innit
you're gonna hate my eventual RTF replacement mod then
(it'll be four letters though)
does anyone have any ideas about how to get a foraged item to stop having quality or quantity modifiers on it
hi, try asking in #modded-stardew ☀️
Uh wrong place
We make mods here, we don't play the game XD
😂😂
i mean, i guess its good news when my top most reported bug is an extremely minor thing that no content pack modder can do anything about
my only idea without looking anything up is harmony bullshit, but i doubt that's helpful
It's usually the case XD (also "cornucopia stardew" is the 3rd most searched result after inputting cornucopia into google, a whopping 3 places above the actual "cornucopia horn" search)
damn right
like i think quartz and so on used to be able to have quality and it got turned off, so there's probably some function that's like "if quartz, remove quality on pickup", so i imagine you could hook into that and just add your thing to it (the aforementioned bullshit)
Out populared the item that's a major marketing peice, that's how you know you've made it XD
alas personalised search results, cornucopia the sdv mod is only on page 4 of my google results
where does the cornucopia game come in
and even then only the wiki, nexusmods nowhere to be seen
ahh damn I forgot they were personalised
4th, first was hunger games, second was fruit of the loom
you've got to somehow beat out björk and a lot of historic precedent if you want top billing
beating bjork would have to be a feat and a half XD
you could technically do it with BETAS but the reason i didnt say so to begin with is bc its a horrible idea to do it with BETAS. but you could.
itd just involve scanning every single item in the world every time you forage a whateveritis
Oh wow that certainly is a horrible idea (no hate towards BETAS I promise)
why would i take it as hate, its very much not the sorta thing the traction in question is meant for
I'm tired and don't have the abilities of a wordsmith and defo didn't want it to come across as hate thats all
i half considered removing and then readding the item on forage pickup but you might be talking about refreshing object quality data when picked up
Because if so I will do that
yeah, the uhh ReloadItemField traction
if you're fine with the potential lag that comes with. i guess its not so bad if you check if the item actually has a bigger stack or quality first
this is assuming you want no instance of this object in the world, anywhere, to ever have quality or stack size
so what is the actual issue with having foraged items picked up with an added quality or quantity
I can check for quality when picked up; not totally sure yet about checking for item stack size in case the player has more than one in their inventory already. BUT it would be helpful for another item which should only be able to be obtained once (but people keep reporting it as a bug).
The player is able to obtain up to 40 of these, about two or three per week
definitely dont reload the stack size then
since it doesnt only work on the players inventory
it looks literally everywhere in the world in every chest, every inventory, every fridge, even your horses hats if necessary
you'd be resetting any saved up stacks to 1
bug reports is the issue. not really a big deal
Theres another quest item which the player is only supposed to obtain one of though, so people keep getting duplicates of it when foraged
well surely there's an issue being reported in the bug report
the player would likely use them right away, but I agree I wont edit the stack size
just immersion i guess
honestly it might just be better to remove the item and regive it tbh
I think that would make two popup boxes
it's not unheard of in the base game to have multiple of linus' berry baskets, i'd just accept it as a quirk of the game
where would the popup box come from
giving an item in general doesnt give a popup message or anything
if you're doing it via the vanilla AddItem traction
anyways blueberry i mean yeah but also that doesnt stop people from commenting on it lol
I see, maybe regiving it is better. I'd have to make sure I check the stack size on pickup though in case the player obtains two quality items
then i mark 'not a bug' and close it 🙂↕️
yeah you can just use two different tractions for it, one checking for 1 stack size and one checking for 2
this isnt too bad
though if you're only giving back 1 in both cases then you can skip the 1 stack size check idk why i said that
wait no im silly you still need the 1 check
so you know to only remove 1
the other one is dropped from chickens, I guess i cant do anything about quality on that one since people might have autograbbers instead of picking it up
But its fine
Duplicate quest items is the bigger issue for that
(somewhat related note and apologies for interrupting but I still have yet to figure out why every foraged items still have quality even though in theory it should only apply quality if isForage is true)
(I'm sure I'm missing something but idk where)
(for the double harvest thing my only unhelpful note is that 1.6.16 has the ObjectIsQuestItem field in item queries which can stop it)
1.6.16 promised me working museum exclusions too
whats not working about them right now
undonatable minerals still show up in the collections menu, permanently greyed out
oh. so not a problem with the museum exclusion itself, just the collections menu
otherwise the exclusion part works
yeah i knew about that i just thought it was meant that things werent excluded from the museum correctly
another question I got while looking into the collections menu code: what (do you theorize) is this thing next to bread on springobjects
the first pancake on shrove tuesday
bread (unleavened)
also bread
hmm
it's specifically excluded from cooking perfection, but it doesn't exist. the phantom of the kitchen
.img white vienna loaf
My First Croissant
ah, removeitem will of course only do the first item in your inventory. not necessarily the one you picked up
not the best image it could've given
better bread sprite
pretty decent loaf that is
to exist only as a ghost in the codebase...
certainly not the only ghost in the codebase
also sigh, i forgot to exclude the piers from the beach forage spawning ranges
thank you for the idea of limpets spawning as forage on the piers
i would love that
a fine way to harvest mussels without pots
theres not enough specific forage that only spawns in mainly unused locations imo
Oh I hate pots thats an even better idea
my favorite useless trivia is that before 1.6 yeeted them for good the meat items still exist in the form of requirements for the animal bundle
another shape of bread
"what on earth is that pink blob and how do I get it?"
i can only wonder why ape went with the long baguette bread
i can understand for bruschetta, maybe for stuffing, but burger
wow. i never knew leah hates bread
maybe it's best we didn't get married
the issue is when you split bread into "bread" and "bap" you then have to worry about the different names in english alone for bap, barm cake, flour cake, roll, bap, brioche etc, bread is so much easier XD
of all of these, baguette is somehow the most specific bread
Bap also isn’t used in the US
she also hates pizza and i think other gluten-containing foods (except poppyseed muffins)
-# also she's "secretly" left-handed
We would say bun I think based on GBBO??
Like a hamburger bun seems to be a bap in the UK
bap isn't used in the US? wow I had no idea, I don't the the UK uses bun? if we do I haven't been where it's used
A teacake is a biscuit with marshmellow covered in chocolate, different to a smore
yeah as an american i have no idea what bap means
well a tunnock's teacake sure, but i mean more generically as a cake served at tea
tunnocks teacakes, lovely things
but.. bap isn't cake... same way a load of bread isn't cake
well a bap sure, but i said a bun 
and herein lies the problem when people assume english is english is english
english is already a pain at times XD
wars have been fought and lost over tea and cake
(wiktionary)
Ahh ye just remembered about iced buns, which are cakes, whoops
a bun is two things in the US, it's a sort of round roll like for hamburger buns and a sweet round-ish bread roll like a cinnamon bun
true!!
agree 🤣 . i spend more time to making mod than playing the game
"Spiderbuttons.BETAS_DelayedAction \"RemoveItem Cornucopia_LostPage_InlandSea\" 1",
"Spiderbuttons.BETAS_DelayedAction \"RemoveItem Cornucopia_LostPage_InlandSea\" 2",
"Spiderbuttons.BETAS_DelayedAction \"RemoveItem Cornucopia_LostPage_InlandSea\" 3",
"Spiderbuttons.BETAS_DelayedAction \"AddItem Cornucopia_LostPage_InlandSea\" 20"```
Wouldnt work if I did RemoveItem on a stack of two, nor if I did AddItem immediately after removing, so...
Now that I have a stat to track the # of quest items the player has obtained, I'm puzzling over how to make a shop sell any one of the last two quest items a player needs, but not both at the same time 
give each quest item a special context tag like "to_be_obtained" and remove it when the player has gotten that item
then you can use that context tag in a peritemcondition for a shop entry that only sells 1 thing
(or the inverse, give items a context tag when obtained and use the !contexttag syntax in the peritemcondition)
thank god that means i only need to have one shop entry as well
downside: the context tag removal/adding would only be able to happen at the next CP update, whenever that is
may or may not be an issue
if your patch no longer applies the context tag then a shop wont know that until the next updatecontext
Ahhh okay
i.e. if i get Quest Item #6 and then immediately go to this shop, it can still sell #6 until the next morning (or timechange or locationchange)
I think I'm okay with that caveat
(assuming #6 was one of the last two etc etc yada yada)
yeah its not a big deal i just like to mention any deals i can think of
no its a good point!
Here's my horrendous shop entry conditions rn, which only accounts for the very last quest item a player can collect. theres 12 near identical entries to account for each item lol
ill be honest im way too deep into antihistamine hell here for that amount of text so i will just say good luck i think
(which is also why i can be no help for that removeitem stuff right now, apologies)
Good luck with your evil particles thing
Haha its fine it works now
no point digging unless a C# person really cares about removeitem mechanics
(I know that hell all too well, I feel for ya XD)
Guys, does "Include" works the same as '"using" in c#? Can I Include a JSON full of dynamic tokens and call it in the main JSON file?
You can only create dynamic tokens in your content.json
Dynamic tokens and config (and it's tokens) can only be in the content.json, but otherwise include does work like "using" in C#
i'm not sure if you can really call Include and Using similar in any context, all that Include does is (essentially) collate the Changes from your included file into the total list of Changes in your content pack
nothing in CP json is really analogous to anything in C# except for the concept of patching things
syntax wise its not analogous
i was thinking about the editimage mask thing
would that be more perf purpose of editing cursors?
if it exist then would only need 2 editimage even for oddly shaped ui 
i think that was some of the reasoning for wanting it, to get out of targetarea hell
yea i do think there's general usefullnes in what is basically inverse of overlay
time for break the bass 3.0
the inverse of over lay.... under stand
blueberry i cant believe i exist on the same dimensional plane as you
bass 3.0? what did the fish do
how come i can set a dynamic token to do this:
"Name": "PrepPhrase",
"Value": "{{Random:Strings\\StringsFromCSFiles:Dialogue.cs.735, Strings\\StringsFromCSFiles:Dialogue.cs.736, Strings\\StringsFromCSFiles:Dialogue.cs.737, Strings\\StringsFromCSFiles:Dialogue.cs.738}}",
},
but not this:
"Name": "MovieNightTitle",
"Value": "{{Random: Strings\\Movies:BraveLittleSapling_Title, Strings\\Movies:Mysterium_Title, Strings\\Movies:JourneyOfThePrairieKing_Title, Strings\\Movies:Wumbus_Title, Strings\\Movies:ZuzuCityExpress_Title, Strings\\Movies:MiracleAtColdstarRanch_Title, Strings\\Movies:NaturalWonders_Title, Strings\\Movies:ItHowlsInTheRain_Title}}",
}```
(this is for use in schedule dialogue, and it's not a case of i18n, since i haven't done that to these strings yet)
When using HasMod| conditions, is the load order relevant, or are HasMod| checks performed independently of the order?
independent
what is the error message?
Technically HasMod needs to be first, but there is special logic in CP to ensure they always execute first regardless of the order you put them in
K.
I'm working on the last few points for the Flexible Cooking add-ons. I want to finish them today.
It was just a basic question about the function of mod checks.
error message was for nic
no error message, it just displays like this:
Unfortunately, it was also suitable for me. Hence the confusion.
and the usage of the token?
"MovieNight.000": "I tried to suggest 'A New Hope', but I was outvoted.$h#$b#It's not that old, no matter what they say! I remember when it came out!$7#$e#I guess '{{MovieNightTitle}}' is good too, though.",
inside of an edit to "Target": "Strings/schedules/CharlesRowland",
don't you need [LocalizedText ] or whatever for it to pull from a strings file
https://smapi.io/log/c46d257b4ada48338f45d52f80fcbd1f
https://smapi.io/json/none/22cb8fb56bc4455ca78efccf0b8bffe2
getting a really bizarre error where the question works Sometimes™ with no pattern that i can tell. the error (scroll to the bottom) says index out of bounds of the array. it's very possible i'm missing something stupid
Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on Microsoft Windows NT 10.0.22631.0, with 20 C# mods and 1 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
But can I use the content.json as DynamicToken library and use those tokens in the json I'm including
yep! Include basically means "copy everything from this file and paste it here"
This is getting more exciting
there are also local tokens but do not ask me about them i don't even know what they do or what they're for lol
i just know they're useful
They are tokens that only exist in the patch they're defined in. If that patch is an Include, they exist for every patch inside that Include.
It lets you use the same token but give it different values. Useful for templating, like when you need to add many objects and add them to shops and so on. You only need to write one patch for the data/objects entry and one for the data/shops entry and you can reuse those two patches for however many objects you need to.
I am too tired to comb through my giant questions testing file right now to see if I have tested this but I am not sure you can have a question without a fallback.
i'll try adding one just to test
i'm confused how it ever worked without it but chalk that up to Weirdness lol
Apparently I have not tested that. How strange.
i tested (on my old save, bc it's annoying to get him to this state) and he said the follow up automatically, but it's very possible that's because i had answered the question before on a previous day
i'd really like this question to repeat every week though, if that's possible
So the error went away when you added the followup?
a tentative yes, because the error didn't always show up before
Did it only show up after you had already picked an answer, the times that it did happen?
no, it was usually on patch reload (but not always)
also important to note is that the question was working correctly when i first started testing it, even though i did have the error
and i changed it a bunch of times (unfortunately don't remember what the different states were) but each time it was either 1) red error in log 2) no error, dialogue just displays ... 3) i18n error
i'm setting him up in a new save now
Am I remembering correctly that questions don't show portraits?
correct
Why have you got a portrait command in yours then?
welp good question
okay it seems like follow up got rid of the error permanently--i tested it two weeks in a row. unfortunately you can only answer it once though
Nah
I can help you make it recur
I just wanted to make sure that was the issue first
that would be awesome! however i do need to go to bed
i could ping you tomorrow? thank you so much for helping tonight
Okay, ping me when you are ready because the way to make it recur depends on what you want to do with the response IDs
(Otherwise I'd just leave it for you now to see when you got up)
will do! i can probably answer questions while i brush my teeth etc but i'll be shutting down the computer and on my phone
no, just flavor text
Will you ever want to check that the question has been asked, regardless of which answer was chosen?
Ok, tidiest way then is to just remove the response IDs from the question (but not from the replies - that breaks it) like so:
I was looking for constellations last night and saw a shooting star. Pretty cool, huh?#$q MontyWishFallback#What would you wish for?
#$r {{ModId}}_MontyWish1 0 MontyWishReaction1#More money.
#$r {{ModId}}_MontyWish2 0 MontyWishReaction2#More time.
#$r {{ModId}}_MontyWish3 0 MontyWishReaction3#More friends.
#$r {{ModId}}_MontyWish4 0 MontyWishReaction4#I'm happy without making wishes
I am giving your response IDs your mod ID because they are global and therefore should be unique.
ohhhh neat, thank you! and whoops in regard to mod id lol
(Despite the wiki saying that the response IDs are mandatory inside the $q string, my testing showed otherwise. I was pretty thorough but I can't check the decompile to confirm my conclusions because I cannot understand the code for it lol)
honestly i trust you lol
wtf... copilot reenabled all its settings when i updated visual studio. didn't realize, clicked the copilot icon beside a warning in the error list wondering what it was and it proceeded to do this 
LOL
i wouldnt be posting if i didn't, id be crying instead lol
If you decide that you want to add in a safeguard so that you can check if the question has been asked in future regardless of answer you can add a response ID to the question string that doesn't actually match any of the ones in the answers (e.g., {{ModId}}_MontyWish0). But you should also be able to check if the question has been asked by doing an OR check for the existing response IDs anyway.
good to know! ofc your suggestion has sparked a “hmm, what WOULD four different events based off this look like?” which i am certainly not doing lol
i’ve already been working on this release since june
but it wouldn’t hurt to build in anyway
i'm updating my mods to start a new playthrough, and I wanted to get a matching obelisk for the DeepWoods mod
I found this one, though it is severely outdated now.
https://www.nexusmods.com/stardewvalley/mods/5016?tab=description
I updated the requirement tags to match the updated uniqueID, but SMAPI is saying it's not compatible? Anyone know why this might be?
error generator!
are you saying that there's no "review generated code"/"undo code generation" option?
did copilot also write the copilot integration?
I have no idea, I immediately reverted and disabled all the copilot settings again. Error generator indeed
Recommendation: Block the servers in your host file (I have no idea if that's possible).
Recommendation: don't use an ide with genAI integration (it's possible)
Any recommendations?
vscodium is a classic since it has access to all vscode extensions
Oo thanks, I'll check it out!
vscode in any flavour is still not necessarily a substitute for vs, though
I'm not familiar with vscode to be honest, I've only ever used vs and codeblocks
jesus. codeblocks
it's been a while
vscode is really more of a feature-rich text editor than an IDE, especially for the purposes of SDV modding
Me using Google: "visual studio c# alternative"
Google: IntelliJ yolo
rider is essentially the only good alternative
helps it has a free version now! joy
but i enjoy the (at least a few years old now) intellij ide workflow/presentation/experience less than vs, and much less than vscode. for reasons i don't entirely know myself
Did that use to be called Twix?
Only Europeans get that joke.
Looks like Rider's implemented an AI assistant in their ide as well
well obviously. we're in the future
no first-party software would be seen dead without an AI prompt
i'm expecting discord to offer to write your messages for you before the end of the year
you're absolutely right!
Honestly, Vim. Or Emacs.
Granted, you only trade one problem for the other, but oh well...
it's also a pain to disable
chu writes c# in a non specialised ide and then compiles using dotnet, maybe I'll just find a way to get the code autocompletion in vim and use that 
someone hasn't been offered their "server highlights" feature
"Discussion about using VSCode as a replacement for VSCode..."
This is Discord's AI feature.
incredible. groundbreaking. breathtaking.
You need to enable it via mods. I did it because I was curious.
is it just an experiment?
It's been in Beta for more than a year. I don't know what they have planned. I think it's only enabled for some channels and the mod forces it for all (all that aren't marked as mature, that is).
no i mean it is just enabled via the experiment section of settings
Don't know. I used a plugin. Like, third-party. Don't know what that does in the background.
for some servers. others have it enabled without them
Incredible
I didn't want to recommend vim (or neovim) because I haven't used it much yet, but yeah, it's the only actual genAI free code editor I know of
Why can't they just make an ai that's actually helpful 😔
Nano and Micro exist as well.
Ed
nano the terminal editor? doesn't seem very good as an ide to me, granted I never learned the keybinds
(neovim can do genai perfectly fine https://github.com/huggingface/llm.nvim)
and I would suggest notepad, but notepad does have a copilot integration
of course it can, but it's not built in and it's the point
Wild idea: libreoffice writer/Microsoft Word as code editor (please don't)
and so we return to content.rtf
I have no idea what this is and I'm not sure I want to know
content.docx
Oh my god
I thought writing code exclusively in Minecraft books would be funny but you don't really have a way to get it out of the books to compile it
what does content.rtf do for u
well, it must be stored somewhere in the world data
hey any of the smort modders in here know about linux modding? someone is asking in #modded-stardew and like, idek
best place for them is modded tech support, as always
me again! here I thought I had set up my second event properly but it doesn't trigger in-game :(
the idea was:
- see event 1
- additionally, when you have seen the first wizard event (where you learn how to read the junimo alphabet) you are supposed to receive a letter from the wizard with a quest to go see him
- you go to the wizard's tower and some yapping happens. the end.
however, the letter doesn't show up after the according conditions are met, instead, it shows up even before having seen the first wizard event. and even if you head to the tower to see that event, the custom one doesn't fire at all 
event json: https://smapi.io/json/content-patcher/c9dec13c4efc42aa80157e20999cad80
and the letter and quest part in my content json:
What's with the +s in the condition field? That's not how you use multiple GSQs, the separator is ,, what you currently have is an invalid condition for your trigger action
(or, well, it's "valid" but ignoring everything after 112+ and searching for the event with the exact id 112+)
it was kind of hard to figure out how to make all of this work because of the lack of explanations given on the wiki, so I just. tried. 
I'll throw in the proper separator then
The plus i think is just there to show you can list as manu events as you want
How do I check if player has the cellar upgrade?
Game state query
There's one about farmhouse upgrade
So Gigner Island is grand, but places in Forever Spring and Autumn would be lovely as well. I'd like it if we could make a "Glave Feild," and a "Mounton Feild," and maybe a small ice cave one for the modded winter plants."
I'm trying adding a bundle in my mod. I want to use custom image for the bundle, but I don't know how I should write path in this case.
The only exemple I've use buildin file :
"Entries": {
"Pantry/80": "Moschops Products/BO 100 1/Imagical.Moschops_MoschopsEgg 1 0 Imagical.Moschops_MoschopsClaw 1 0/2//LooseSprites\\BundleSprites:12/Moschops Bundle"
}
It's work with LooseSprites\BundleSprites:12
but if I try to use asset from my mod assets folder, the image never appear.
Did you load the sprite or are you trying to put in the file path in your mod
Because it takes an asset name (ie the Target when you Load something), not a literal file path
If you want to make it yourself then go for it
got my event to work, thank you!!
i wanted to take a detour and work on the datability of my npc. ideally, he's supposed to be a romanceable roommate of sorts which would require the mod to be dependent on free love, I think. But the entire thing is also supposed to be toggleable via GMCM to be a "normal" romanceable NPC.
can I set a conditional config option that relies on the free love mod being installed?
I think I would also need to set a dynamic token but I'm very insecure about the proper syntax for what I want to do. I checked the code for the NPC Nora because she has something similar going on to what I want to achieve but... how do I know which conditions to use?
wow, sorry for the wall of text once again. you guys are carrying my entire project here
the Unlock Conditions in recipe data aren't GSQs, they're specific values, if you want those conditions then i'd use a Trigger Action to give the player the recipe instead
Well, now is a better time than any to start learning
If you have a mod idea that you aren't planning to make yourself, you can put it in the mod ideas github: https://github.com/StardewModders/mod-ideas
However, this does not mean anyone is guaranteed to work on your idea—modders who are looking for ideas sometimes go through and work on what they find interesting off this list. If you want to pay someone to make your mod idea, there are a few people who do commissions (mostly art, sometimes code); you can ask around, search usernames for the word comms, or see !commissions.
You can post on the GitHub and hope someone will make it
But the only surefire way to make it happen is to pay someone to do it
(or do it yourself)
(the person said they didn't want to so money is the only other option)
yes, but it's the only other surefire way
Alright. I want 2 conditions to be met, so do I just put the second one after a comma in the Condition field?
yes
If you ever decide to change your mind people are always willing to help you out here
Thank you. The recipe works now, but I still can't get the machine logic to work. Any ideas on how to fix this?
I tired changing square brackets to curly ones, but it threw a bigger error.
JSON link: https://smapi.io/json/content-patcher/18cb53e86d7940e5a4a51a4e5f414f7a
Error:
[Content Patcher] Can't apply data patch "Better Dewdrop Berries > Include code/AdvancedCask.json > EditData Data/Machines > entry #1" to Data/Machines: failed converting entry to the expected type 'StardewValley.GameData.Machines.MachineData': Cannot deserialize the current JSON object (e.g. {"name":"value"}) into type 'System.Collections.Generic.List`1[StardewValley.GameData.Machines.MachineItemOutput]' because the type requires a JSON array (e.g. [1,2,3]) to deserialize correctly. To fix this error either change the JSON to a JSON array (e.g. [1,2,3]) or change the deserialized type so that it is a normal .NET type (e.g. not a primitive type like integer, not a collection type like an array or List<T>) that can be deserialized from a JSON object. JsonObjectAttribute can also be added to the type to force it to deserialize from a JSON object. Path 'OutputRules[0].OutputItem.OutputMethod'..
hey guys, trying to make an event play when a certain CT is triggered...thats a thing, right? if so, can i add this to ma event or how should I go about it the smart way(if possible)
"When": "PLAYER_HAS_CONVERSATION_TOPIC Any {{ModID}}_Barnabas14HeartsEventMention"
Why can't you just add that to the preconditions
because...as i tried looking at the wiki i didnt see anything on how to add it so i was like hm maybe i gotta add it like that
🤔
Its there i thought (sorry im on mobile) but it should be in like. The event preconditions area
oh wait... i think i missed something in the beginning
i went straight searching for CT
would that be GameStateQuery "PLAYER_HAS_CONVERSATION_TOPIC Any {{ModID}}_Barnabas14HeartsEventMention"
or wiothout the any
i mean this is right below the gsq thing
alright, im blind
i normally just roam around the lower layers of that page...
now i wonder why my CTRL+F in my browser failed to search that CT mention in there...well, either way, thanks for the help. As always, I am too blind to look for shit, sigh
🤔 i wonder too
rub it in more 
😅 i was just trying to figure it out
wait with that emote it somehow looks wrong forget that
LOL
its fine im just joking but was too distracted by my realization as i hit enter
hey at least i can tell people who are insecure about trying to make a mod that its fine cuz despite me being scatter-brained and always confused i somehow manage to make mods(with the help of yall) so anyone can do it
XD everyone has to start somewhere
sadly i know i will remain in this state, but hey thats ok. im just being me lmao
Hi,
after a long time, I once again ask for a modding help.
I'm adding TouchAction MagicWarp 8 11 StrojvedouciDenis.Eleanor.Maps.Eleanor.home thru JSON into a map, however if I interpered the error correctly, it is also asking for face direction, which the wiki (https://stardewvalleywiki.com/Modding:Maps#TouchAction) does not list.
So I added it there, making it TouchAction MagicWarp 8 11 3 StrojvedouciDenis.Eleanor.Maps.Eleanor.home, however that doesn't work and SMAPI doesn't want to tell me anything about it (or I'm just totally blind).
Log: https://smapi.io/log/2097ebad135a457ab9b331ca5b185fcb
JSON after fix: https://smapi.io/json/content-patcher/c3619ddf2bcb43148a8a9240f3577775#code.73 (the 2 showed errors is just the checker not liking my map name, it works as expected without any warnings)
See attached video for how it does (not) work.
Any help will be appreciated!
Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on Microsoft Windows NT 10.0.19045.0, with 23 C# mods and 1 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
very important cat message
you can never make a config option depend on anything except “the user selected this option”, but what you can do is have one patch for normal romanceable NPC with no conditions, and then one underneath it (the order is very important) with the condition HasMod free love that gives the romanceable roommate situation
if you want it to also be dependent on a config option, then i would gate each one behind an OR (1: config false OR no free love installed, 2: config true OR free love installed)
i see! that would have been my next thing to try. thank you! i also found a mod where the mod creator is fine with mod add-ons, so i'll look into that as well once i have their permission 😌
not quite sure what you mean by that but that’s great!
oh also i forgot to mention, but config options don’t require dynamic tokens to work, you can just use them like When: ConfigOption1
MagicWarp takes the format Area X Y
(no facing direction needed, just swap the order around)
Anyone?
idk anything about machines but i think you might want to check your brackets (see the highlighted pair in my image)
if i’m wrong ignore me
I mean, I don't want to get into why I can't try to learn even if I could learn at this point in time, and might not for months.
I'll try. Changing the Triggers ones didn't work but maybe these will.
Bad time to try.
unfortunate 
and I don't want to explane
i have plenty of mods i want to exist that i'll have to make myself so i get it
Nope, that's not it.
i can take a closer look later when i’m not on mobile but that’s all i have rn then, sorry
I'd really appreciate it.
what you can do in hopes of attracting someone who knows machine data more is post your most recent log and json
I'm gonna check the format with stuff already in Machines.xnb. If I can't fix it after this, I'll probably do that.
what client do you guys prefer for actually writing code?
for C#, usually VS or rider is recommended in here
Just use text editor of choice
ty :3
I use VSCode for json stuff, and Rider or Visual Studio for C#
making my first mod here, portraits
then yeah VSC or i like notepad++
OutputItem is a list, not just a singular object
What should I add then?
square brackets
I have a question. Im looking at a mod called Always On Server https://www.nexusmods.com/stardewvalley/mods/2677
Where at the start of the day, they set skill and level to maximum. What is the purpose of that?
Alright, the error is gone and Lookup Anything sees the producer rules, but I can't interact with the machine.
did you spawn a new machine and trash the old one
I spawned a new one.
The old one didn't even exist since I wasn't saving the game for the tests.
can you post your code again just in case
the way most "headless" SDV mods work is that they have an invisible host character to host the game and have others join as farmhand
if I have to guess the max level's to unlock everything since you can't "play" as the host
hmm so your machine is a custom cask using the OutputCask method, but IIRC it doesn't work if your machine's not actually of the type Cask
you'll need EMC's custom cask functionality
you need a selph mod™
Does that disqualify all output rules or just this one?
Because the second one (for my custom item) also doesn't work.
just the ones that specifically use OutputCask
I havent looked too deep at that second one but I think it's also missing a bunch of fields?
Wiki says they're all optional...
actually does your custom juice item had the juice_item tag
Yep.
Alright. I'll remove the tag and it should be fine, right?
(Except for all the vanilla items)
yep
but I must warn that if you do make it a custom Cask then casks don't mix well with traditional input-output machine rules
because casks by design allow you to retrieve the output out of it any time, so a user can put your regular juice in, immediately smack it with a tool, and get the aged juice out
Adding DaysUntilReady would prevent that, wouldn't it?
it doesnt stop the tool smacking
Thank you Selph. It seems like the mod is half way there (or broken atm), I will do more reading.
Welp, they'll just lose their input item.
Other than that, everything works.
Thanks for help!
Hello! I checked a bit on the wiki, and did some experimenting, also looked at how SVE handles this
I'm editing Data/NPCGiftTastes, and appending new Universal Love, oddly this doesn't really work with many characters, as a considerable amount are still disliking/hating the gift, I may be inputting it wrong (missing a space and/or comma? tried but didnt seem to make much difference), though it seems close to how SVE does it
The items are from my own mod, ASF_MermaidPearl and ASF_MermaidTear, so was wondering if I possibly inputted this wrong. I noticed a slash, which isn't anywhere until it hits my mod, I was thinking this was due to me inputting the Universal loved items wrong, but I am unsure
universal tastes don't have fields since they're just one string
{
"Operation": "Append",
"Target": ["Entries", "Universal_Dislike"],
"Value": "{{ModId}}_LinseedOil",
"Delimiter": " "
},
example from my mod
anywhere i can get a tempate for making a clothes mod?
i think thats the word atleast
is it possible to make custom house renovations with just content patcher?
content patcher or fashion sense? (very different)
fashion sense
OHHH okay that makes sense tyty
Yes!
oh cool
My unreleased bathroom mod (I will release it some day, maybe. If I ever remember) does this.
It's going to be a multi-part process, because you need two TMX files, one with your renovation and one with it empty, and then you will need to make an entry for Data/HomeRenovations.
Have you looked at the unpacked game data yet?
fashion scense
if you check the nexus page for it then the docs should be linked there
oh, there's a wiki page for AdditionalRenovations as a map property now, one moment while I check what versions that works for
That would likely simplify things a bit.
Looks like the example is updated, so that should help too
i think that should probably be added to the index! i was looking through it and didn't see that page at all
It's in the modding namespace for the main wiki, I just searched "modding:renovation" to find it
That's an advanced tutorial page
(it's also linked on the map properties page)
ah if it's linked in map properties that's probably fine then
I think the page got a little bit of a cleanup recently, because it's organized a bit differently than the last time I looked at it xD
I'm a little thrown by the lack of edits to Data/HomeRenovations in the tutorial, though, are those just completely handled by the map property now?
I definitely remember doing all this for mine: https://smapi.io/json/content-patcher/ca67ca3f8d1949a58a78ce90cd1dabad
I've seen other mods that do the same thing too so I guess possibly thats the case?
Hey, it feels rude not to introduce myself first, so hi, I'm grnprns and I'm working on a mod (...duh) with CP and C#. I need/want to check what the farmer is currently wearing. From what I've gathered, this isn't possible, right? Or am I missing something?
i suppose you can do both forms of renovation? the map property does just work by using vanillas usual map override feature. i guess for map overrides that you dont want the player to buy and place down, i suppose
that stuff on the wiki is from 1.5.5, though
Ah, so maybe AdditionalRenovations is better suited for renovations you don't buy
not possible with CP, with C# anything is possible
Yeah, I feel like I ignored it completely when I made my custom renovation, which is why I thought it was new somehow.
farmhouse renovations seem like a niche thing for modders so unsurprising that there hasnt been someone wanting to do the work to meticulously document it all
"Town": {
"Items": [
{
"IgnoreBaseChance": true,
"Id": "Town Marlin",
"Condition": "RANDOM 0.01",
"ItemId": "{{ModID}}_Marlin"
}
]
}
For Data/GarbageCans with the EditData action, if I added my own item into a garbage can, lets say any characters garbage for now, will it Append to it, or Write Over what was already there?
Well, I can publish my mod after I check it over again so people can reference it, since I know it works. xD
I was detangling it from a testing combination mod that let you swap between a renovation or a map patch to split it off and just never finished the final checks.
it's hard to tell what you're doing with just this code snippet and not the entire patch
We'd need to see the Target and if you've used TargetField or anything else to drill down to what you are patching.
I believe if you only had an "Entries" in front of that code snippet, it would overwrite the Town entry with what you have instead of adding.
But if you used Fields, you might be okay.
ahh my bad my bad
lemme take a photo
!json use this instead
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.
the first link
thanks! the info might have been about CP then, I've been researching a lot and it's just been a lot of info lol. I'll keep trying
right now you're adding an entry called Town, which doesn't exist in base game data:
Ahh
can u link me this page?
that shows the valid locations
Follow this guide to unpack the game's content files in order to see and explore how the game data is structured.
It's helpful when making your own mods, or just to learn about how the game works!
ahh alrighty
lets say I did edit one of them and added something in there like a custom item
will it overwrite the pre-existing items in that trash can?
or overwrite it from other mods?
or will it append it
hopefully append lol
it depends on how far down you drill
lets say I just like, add two or three items for all the trash cans in the town
like maybe 6-8 trash cans in total lets say
okay, so if you scroll down to "Change an existing garbage can", you'll see the example has "TargetField" in there
to drill down to a specific can, and then to the Items field
(note that that example has a unique ID with your Mod ID prefixing it!)
That TargetField is necessary, as is the unique ID for the actual ID of the Item, in order to prevent your mod from wiping out another entry that might otherwise accidentally have the same name.
As nic is pointing out, the {{ModId}}_Item format for naming your Item IDs inside an entry helps out a lot to prevent compatibility errors!
Now, I'd assume this would work, however, for the BeforeId, how do I know what to add? It's just a bit confusing to me
(I'm glad that prefixing with the modid is drilled into people when they begin modding, I remember the days in other games where that was never done and it lead to SOOOO many issues)
My whole mod uses {{ModId}} for all fish/assets, except of course the i18n definitions
^^
i mentioned it because the json you sent didn’t have a unique id (town marlin)
It's still not as common as we'd like, because so many IDs had to be integers before the refactor and you can't use {{ModID}} unless it takes a string key!
yeah I was just playing around with adding for garbage cans with how SVE did it but it seems they were doing something else, so that wiki page helped
Oooof 😭 wow
using SVE as an example frequently leads to confusion i fear
The terror still exists for HairData, imagine having to come up with a number nobody's used because you can't use letters.
(It's on the list to change to string keys)
To help prevent issues with numeric keys I also have a set numberic prefix based off my name to try to avoid issues too XD not perfect, but it's better than nothing!
...oh my gosh..that seems horrid, my hair is 1203178923910238 and i hope no one uses this same thing (would be horrid)
- scared that your code will look like gibberish just for uniqeness
i think convention used to be start it with your nexus mod page number
Yep, but even then, you run into issues once a nexus mod rolls into the next digit after your numbers.
Ahh haha, yeah I saw that, mine isn't following Name.ModName prefix, because I didn't know until much later
That's also a very good idea, i never thought of that ngl, could cause issues when enough mods to add- Yep what fireredlily said XD
I'd say my mod's UniqueId is pretty risky
As it's "ASF"
with no name prior to it like LucyTheDove.ASF
so its just, ASF, lol
Yeah, you definitely want to consider migrating that to a more specific one

