#making-mods-general
1 messages · Page 263 of 1
if you just want the default outputs (e.g. fruits -> jellies and wine, veggies -> pickles and juice) you dont have to do anything
nice, thanks!
the only thing you might want to do is set context tags for color for the actual grown crop object
thanks!

is it okay to set it to prismatic even though the crop itself is blue 
id want the color of it to look different than the crop
oof meant to off ping srry
I don't know if that works for the artisan goods but you can absolutely do that :D you can do what you want really
i dont think prismatic does anything

if your crop is yellow but you want the goods to be orange you can do that
also dont worry about the ping i like them :D
i have notifications off for everything so the only time i know i have to look at something is if people ping me xD
thank you!!!
does anyone by chance have a palette of what the context colors would look like? not sure what a stardrop color would be 
nvm stardrop tea is color_iridium
ill go for that
i feel like i am so close to finishing the mod but then i remember the 20 other things i said i would work on
Same af
tysm 
You're welcome!
my tilesheet doesnt need to be bigger than this right? since im only making 2 crops?
Looks good to me 
Yay my next update is finally done :D
grats!
@silver sand Are you VulpesLucida on the SDV wiki?
Thank you!
@hot gale Please see the announcement on the server policy for AI. #bulletin-board message
lol
I'd appreciate if someone could tell me how the original game code detect if player has talked to a npc today, and prevent dialogues from showing up. I thought it's the hasPlayerTalkedToNPC or TalkedToToday flag, but they only seem to be relevant with granting friendship. I think everything is handled by checkAction() method in NPC class. But I don't see any code removing displayed dialogues.
NPC.CurrentDialogue is a stack of Dialogues that things get popped out of
dialogue popped out = that dialogue is gone
aint gonna show again
Yeah, but I think checkAction() will be performed again if player clicked on NPC again. And checkForCurrentNewDialogue() will retrieve same dialogues again.
checkForNewCurrentDialogue only adds specific dialogues in specific situations, like location dialogue or conversation topics
CTs get priority, and location dialogue is infinitely repeatable
otherwise, daily dialogue is added once on day start
The days in phase are the number of days for each phase of the crop. So let's say you want the crop to take 8 days to grow and then regrow in 3 days. Let's assume you have 7 crop stages. What you would do is something like:
"DaysInPhase": [ 2,1,2,1,2],
and
"RegrowDays": "3",
oh whoops - didn't see that the question had been deleted.
so daily dialogue isn't handled by checkForCurrentNewDialogue()? That explains. Thanks!
thanks logo!!! sorry i figured it out heh
Glad to hear it!
nope! just an extra check for extra dialogue that might not exist when the day starts
but good to know i got it right ^^
like when an NPC moves into their next schedule location and they have dialogue there
I see. Thanks!
does "5" mean "harvest phase"?
What data (like Game1.cropData, Game1.fruitTreeData) does the tea sapling belong to?
what does "Category": 0 mean? does this mean its not giftable?
i believe the sapling itself is in Data/Objects (I might be wrong) but don't edit those dictionaries directly, use the AssetRequested event
if you're just trying to read the data you can also use the DataLoader class
actually i forgot tea bush saplings are like. leaves. so I'm even less sure about where it is. but the point about asset requested stands
also what does internal asset key mean? 
it means you can take a file directly from your mod folder without a Load action
oh ok so i dont need to edit it? just the .png part
i have no idea what you're doing
i don't know what your goal is
oh to have this show
is this your own mod?
yes
where did you get the internal asset key from then
modding wiki
it's not usually recommended to use internal asset keys
they are technically faster but they completely prevent recolours because no one, not even you, can edit them with EditImage after
i dont mind if i never have to change color
others who want to make compat for your mod would mind a lot
ohh i see
regardless if you're dead set on using it despite the downsides for no visible upside, you can just change the png, yes
how would i make it compatible then??
use a Load instead
Load the png to some target and then use the target for the texture name
just replace the internal asset key part with just "Mods/StarCrops"
tysm! <3
"Texture": "Mods/StarCrops"
if both your crops are in the same png the texture will be the same for both of them
and it will be the sprite index you change instead
thank you (:
So I noticed that setting "on day-update regrowth" to 5 doesn't always mean a wild tree regrows, it just goes straight to grown if it does regrow.
Any way to make sure a tree respawns completely every day?
the SpawnTree tile property, maybe?
I add a node to my game, but the texture is wrong. it should be the second one in the picture. It is not default error texture so i don't know why.
i used Item Extension for my mod
are you using the right image? you're loading ZincNode.png but that last image you sent has more than just the zincnode on it
here is the true hierarchy
then your spriteindex is wrong
it should be 0
it was jumping 16 pixels down to empty space, which is why it looks like just a weird shadowy rectangle. its copying the bottom most pixels of your texture in spriteindex 0, which is the shadow
it works! thank you for your help
Alright I removed all AI content from my mod :p
hey everyone, I'm trying to get my brain back into modding with a few edits. I'm trying to double the roe output of Sturgeons in a Fish Pond. for the EditData action, do I need to remake the entire Produced Items table, or is there a simpler way to tell the game to double roe output?
does anyone know? im trying so that i get a guaranteed harvest of 2 crops from the same harvest
two of the same crop, or two different items?
2 different items from the same harvest
did you replace them with portraits from Jazzybee's portrait maker? if so dont forget to credit that too in the desc now!
ah, so like getting Sunflower Seeds AND a Sunflower when harvesting a mature Sunflower crop, for example?
yes with spacecore ^_^ please
mmm... I've not made any crops that do that, but I would assume it'd make use of the HarvestItemID field, with the different entries seperated with a ,
so it'd be like where you see HarvestItemID in my example, only you'd put both your items you want to drop on the same line, each in quotation marks, seperated by a ,
have you tried this?
I have not, I am spitballing ideas
Did I already ask how to disable SMAPI developer mode? (Android) >_>
well fingers crossed
good luck!
Wow, events are really robust to errors now
if HarvestItemId is not already a List, it cannot be made into a list
you cannot just make things into different types
how do i make it a multiple crop yield then?
ah, darn
can i add a list like that?
i dont know. but i know you cannot do that
I just played through a whole event with Jorts and he isn't even installed. He was not visible, but his shadow was and his shadow moved when I told it to and his dialogue played!
i saw with spacecore you can but im not sure what this really means
they can even survive the entire map being reversed! kinda
I did get a bunch of errors and warnings in the log but the entire event played properly.
From just what i can see on the spacecore docs, I would guess that the 5 is the phase, yes.
I'm not sure, then. I've never been a great programmer, but I wish you luck in being better than me. I'm sorry that I couldn't help
oh spacecore git would be helpful
https://www.nexusmods.com/stardewvalley/mods/31786
Artisanal Honey Mead, now with 100% less AI! :p
i meant thats the last phase right?
I had a similar thing when I changed Eleanor's internal name and forgot to change it in the event...
#making-mods-general message
when i look on spacecore docs i dont see much with CropExtensionData 
Depends on the number of frames on the spritesheet I would have thought. If there are six in total, then yes I would say that 5 is the last one.
She is such a beautiful error image
/j
just confused where to start counting 
Count from the first one but count it as number 0
like this?
dont forget to account for the rows being 32px tall instead of 16
Is that... a Stardrop
plant?!
Looks nice!
yes tysm!

I don't think that part will affect the phase number, will it?
not if you're just counting horizontally
ill admit i just saw talk agbout counting sprite indexes with crops and wanted to make sure it wasnt forgotten that theres not 4 rows
bc theres 2 crops on one sheet
I think the spacecore part is just focused on phase of the individual crop, which I assume is determined by how many items are in the DaysInPhase list.
However I've never looked at crops before so I might be wrong.
Your Target for your load is Mods/StarCrops/Crops but your Texture field in the EditData is Mods/StarCrops.
silly me ty ^^
correct
why is this happening then? no matter what i change the index to it wont change
hmm im not sure, which one is the bad one supposed to be
0 is
in this pic its supposed to be: 1, 4, 0, 2, 3
Are you trashing the items and spawning new ones after you make the change? Object info is cached and that might include sprite index.
sprite index is actually one of the ones that isnt i believe
but, did you save the png
bc its wrapping back around to look under your 0
OH thank you i didnt notice this
one of either sprite index or texture is not cached
bc i was able to update one of em when messing with BETAS
or maybr both. but at least one
actually maybe ignore me, i think i know what i was confusing
Did you get an answer for this btw?
I did not, so I just redid the Produced Items table to accomodate for extra roe
Nooooooooo speak command used with optional NPC why are you still broken?
wait wtf
my seeds are transparent O.o
however, now I've got a pickle of a different flavor. this SHOULD be increasing the price of caviar, but it's still at its default price when I check. any ideas as to what I'm doing wrong?
General CP knowledge tells me that you shouldn't have to redo the whole table, but specific knowledge might contradict that.
this is the same as the Moss Soup example in the git document, so I don't know what's not working
the price when bought or the price when sold
Just like with Anaira, are you trashing your item and spawning a new one to check?
well, I will know for sure when I finally get a fish pond made and am able to see how it works, haha
price when sold
remove the (O)
Does this mean that they changed after you trashed and spawned new ones but now there's a new problem?
im shook, why are these not showing up?
im only using new spawned one
TargetField to drill in every entry and change the MinStack
my plant is invisible LOL
make sure you are using sprite index correctly
common mistake
That doesn't answer my question though lol. Are you still having the same issue with the object sprite indexes or did that get fixed?
no that got fixed
would that mean this is 0 and 2 for indexes
that did not work, sadly. game is still reporting a sell value of 500 :<
and you trashed every existing item?
What's your sprite index for the chonky stardrop crop?
and tested with new spawns from CJB?
stardrop is 0 and ASF is 1!
I did, yes. I was spawning them into my inventory directly from CJB item spawner
Try 0 and 2 then.
thanks 
(it must be asked: were you closing and re-opening cjb)
yes. I had no existing caviars in my inventory, and I was exiting/reloading into the game fresh after each change to make sure the mod list was freshly reloaded. full exit, make change, reboot.
what does a patch summary say
part of me does dislike how quickly the console closes after I exit game. this probably has something to do with it
that should be there as soon as you launch?
You can always go check your log if you closed the game by mistake before looking through the console
it is, yes. unless you meant a different summary?
thats not an error that would be logged on close
Also if something doesn't work you should always check the log/console first
i did, i meant typing patch summary in the console, but that warning already tells you whats wrong
Included files cannot have "Format"
yeah. I missed the warning when I was booting and looking for errors. that's my bad
I forgot to take the Format out when I got the bright idea to also change the price of caviar. loading two files instead of including them all in the same content file got me
Sorry to nitpick, but you weren't loading them. You were including them. I nitpick because you can load files too and they are not the same thing.
anyone know why it says i have to harvest with scythe?? i even added harvestmethod grab and its still not working
fair enough, I understand what you mean. loading has an actual meaning and can't be used in a colloquial manner without being confusing
hey guys my friend has an issue with smapi (since she hasnt played after the update) how fix?
Are you testing with any other mods installed?
!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).
im so sorry will do
Share your json?
its ok! common mistake
Kk one sec ^^
Well that is a fun little quirk. Using speak with an optional NPC will cause the event to hang forever but only if it's after a move command with the optional NPC.
screw this i will come back to the project in the morning
Or before the move command. Maybe it's any two consecutive commands with an optional NPC.
whatcha mucking about in events for anyway
also, non-sequitor question, but are you the same Selph who made the Aquaponics mod that was posted recently?
yes
awesome! I'm making a small mod that edits sturgeons because of your mod. I can't wait to use it and have caviar AND crops!
keep up the great work!
thanks 
Just my usual "I wonder what happens if X" lol I wanted to know:
- what happens when you use a command with an NPC who wasn't in setup (event raised error and didn't perform command but continued), then
- what if you include a locked NPC in an event without making them optional, with no speak commands for them (adds the NPC to the event, doesn't unlock them, doesn't add them to social tab), then
- what if you include the locked NPC in the event and made them speak (adds the NPC to the event, doesn't unlock them, DOES add them to social tab despite still not being unlocked), then
- what if you include an NPC who isn't even installed without making them optional (adds the shadow of the NPC to the event, creates non-portrait dialogue box for them), then
- what if you include an NPC who isn't installed but they are optional (they aren't present, event works as though they're not there - EXCEPT for this current thing with the speak + move command causing the event to hang)
I doubt you wanted to know all of that but now I can search back through my messages if I want to explain it to anyone in future xD
social tab thing makes sense to me. it creates a Friendship for them. however, id be surprised if it did it if that character had their socialtab option set to hide forever 
i wonder if that happens. cough, hint, etc
are you doing all this testing with just content patcher?
I’m heading off to bed now, goodnight all!
Please ping me though in regards to this

good night
Yeah
It's extra interesting because once they get the social tab thing I can look the whole NPC up in LA from the social tab menu but I still can't find them in the LA search
i was gonna say it could be a good case for tryin to whip up some quick C# events. it'd go a lot quicker, thats for sure, when you can reload things with just a hotkey
if i had to guess LA might have a spoiler mode or somethin?
whereas looking at them directly just asks for the data directly
also by C# events i mean like AssetRequested and ButtonPressed
not like. an event in game
Reloading with / -> up arrow x2 -> enter key is pretty fast
true, but reload with F2 to invalidate specific assets is even quicker!
it was just a C# practice idea is all
Yeah but I am curious why LA can find Kent via one method but not the other. Maybe Pathos has different rules around what will show up in a search.
thats what i meant, it might have built in spoiler protection if the NPC isnt unlocked yet. might be able to turn it off
I don't think I can handle trying to learn C# for a concept I currently don't understand lol though I do appreciate the thought
i think it does for gift tastes, right?
And you think that spoiler protection might not apply for the social tab lookup because he didn't plan for a situation where the NPC would be visible in the social tab but not unlocked?
Progression Mode
i dont think its really a bug
or like, unintended
i think its more like
Search Bar: iterates over all of Data/Characters, but only shows ones if their UnlockCondition checks out
Social Tab: You clicked on Kent, so I am requesting Kent's data directly and showing it
i think it would be weirder if it didnt show you Kent when you clicked on him
search bar might also only search for characters that currently exist in the world, which Kent will not, whereas the social tab will pull from Data/Characters
Yes, that was what I meant by "different rules around what will show up in a search"
Which I definitely could've been clearer with given that I meant "rules" as in "is approaching the data differently in his code"
i think just a case of "on the same page but in different languages" then
bc to me i thought you meant Pathos like, specifically wrote in "dont show Kent in search b ut show him here" rather than it just bein incidental
Yeah just me not being clear, sorry!
I will check the HiddenAlways thing
Yup you're right that he doesn't show up if it's HiddenAlways
Interesting that the friendship can be created even though the NPC is not unlocked and therefore not considered to exist by many other checks. I guess CA just didn't include a check there since he wasn't planning on violating his own intended order of unlock -> meet.
its the other way around, actually, more or less
it being created is the check, in case code tries to access friendship data that wouldnt exist
buncha places in the code where it specifically says "no friendship? okay, well, create an empty one then"
including the social page!
(but only if its AlwaysShown)
(to be clear tho i dont think the SocialPage itself created it here, i think the act of talking did)
Can I ask a question about fork?
Oh how do I put code blocks in again... ```
.../question fork0 "#answer0#answer1#answer3"/fork eventidhere/..."
Huh, Kent does have a SocialTab value of AlwaysShown.
probably cuz hes like, a forced meeting anyway
in fact
that might be why its AlwaysShown that creates a friendship
to create his friendship when he talks in his intro event
right, in this case, do those three answers correspond to fork0, fork1, and fork2 even though the third is called 'answer 3'?
I just edited him to UnknownUntilMet and it still created the friendship after the event.
worth a shot. is his displayname ??? after the event in the social tab?
or is it Kent?
with UnknownUntilMet
Kent
He wasn't present at all before the event, then after the event he was listed there as Kent
oh, turns out if i scroll a tiny bit more, the answer is just There
the speak command does it if they can socialize and it hasnt been created, always
so it is intentional
Isn't question fork recommended not to be used since it's fiddly and people recommend quickQuestion instead?
that would explain why Lewis and Robin are always already counted as 'met' in the Introductions quest without having to go 'meet' them again
I did not know that
But regardless... I'm translating a mod right now rather than writing, so I want to understand how to read the events already written in the mod
That's fair
And also.. "since it's fiddly"... does that mean... buggy? or more difficult? or something else
I think it's more difficult
(interestingly, Willy's friendship does not actually get created from him speaking in his first event where he gives the fishing rod... bc its actually hardcoded to be created right when the event starts)
Also, I think quick question in the example I'm looking at would actually be more difficult, because the fork actually leads to a whole new event
(well, a rather large chunk of content to fit into answer scripts)
Anyway, do you know the answer to my question, or?
I think they use it for actual forking but to be honest I've never done it so I've not paid too much attention to it
(i also unfortunately dont know)
I don't know the answer to your question, either. I am trying to find examples to look at to figure it out but I am moving slowly because tired.
Okay. I'm just being thrown I think by i18n tokens that are numbered 1 and 2, but probably refering to fork 0 and 1
Because since if it wasn't a token it would be a string right, so the fact that there's a number in it is irrelevant and it's just ordered arguments 0, 1, 2, ...n
I think. Yeah I was hoping there would be a better example on the wiki
the first answer0 is actually the question
answer1 and answer3 are answer indices 0 and 1, as far as i can tell
Is it though? I thought that but I think the question is optional and skipped by starting with a hash
question fork<answer index> "<question>#<answer 0>#<answer 1>#..." vs question fork0 \"#answer0#answer1#answer3\"
where did you get that from? not bc i think you're wrong, but bc i think you're actually correct, but i dont know where it says it on the wiki
i suppose it can be presumed but its a bit confusing with the example as given
Here?
Yeah there
it doesnt say anything about the question being optional, is why it was confusing me, esp since it does the 0,1,3 thing
oh it does
im blind
hehe
maybe im also too tired to be doing things
That was me last night (this morning because I accidentally stayed up all night)
in my defense, the syntax on the left column says its required
It's because thr question fork syntax relies on weird event state
And often trips people up
Anyways
it does? is that using <> instead of []?
i feel like i havent seen atra in a while
Someone please make a mod that makes the cat sleep on the cat bed
Atra was behind the firewall
fair
There are several commands on the events page that are incorrectly noted with <> for optional commands
in that case though bezajel they are indeed fork0, fork1, and fork2
(thanks for the syntax reading tip)
<> = required
[] = optional
either with a + at the end = you can do multiple one after the other
Cool. okay. I'll try to keep it all in my head while trying to do this translation
(Thanks folks xo)
Uh, no, I'm VulgaryEgg here and there
Is it possible to do a three-ending fork that way?
Alright, thank you.
The one with "Splatoon Fairies"
I don't know how you'd specify which fork for it to choose.
I'm not sure that it is Aba, (maybe maybe not), more that it could be fork3 and it would set the specialEventVariable1 if you chose the 4th option
So, it maybe can only be used to indicate a default path and a path if you choose a specific one of any number of options
Looks like specialEventVariable1 is a bool so yeah I think it's only possible to have fork or continue if you use question fork.
should be somethin with the new gotos in 1.6.16
Where is info about 1.6.16?
can't wait for goto-enabled crime
The obvious choice but in my defence not on the index. Thanks.
Ok back to investigating why optional NPC stuff breaks
And by "why" I actually mean "under what circumstances" because I don't feel brave enough to investigate the code right now
Fun fact you don't
This is why quick question is better
What I don't understand is why, AFTER the fork has already happened, they are resetting the specialEventVariable1 twice in a row with a questions with only 1 answer
Yeah I'm seeing now that quick question would work better than fork even here
Do they maybe just want to ask a question and don't know how to use anything other than question fork?
I walked into this conversation half way and am now very concerned about demonic nondeterminism in events
What I thought was a separate half dozen lines of dialogue depending on the fork was actually one line different, and then the last 5 lines repeated across both situations
Maybe. Also I think it's a fairly old mod so if quick question is newer, maybe that?
Does the specialEventVariable1 reset or disappear when the event ends or does it persevere?
quickQuestion was added to the wiki in March 2020
Well that's pretty close to the first update log I can find for the mod, so it was probably mostly written before then, and if it took a while for a Korean translation to go through
I can't tell. There's a bit in the code where it gets reset to false but nothing appears to call it so I don't know how it works.
I guess I don't /need/ to know, I just like to understand everything
I completely get that. It's why I got the decompile and started learning how to look through it in the first place lol
Okay I've skimmed through all the events in the mod and I think they add a fork every time they use question even if there is only one answer, or multiple answers but none lead to the fork, and when no fork follows up, so... shrug
I'll just have to pay attention only when if goes somewhere
So it sounds like they didn't realise they could use question null so they just used question fork for every question
looks like
I mean no criticism on my part, it's a whole ass NPC mod which is way more than I've ever done so far 🙂
It's really easy to miss stuff when there's so much involved. Especially when little/none of the documentation is in their language (if I have correctly understood this is a Korean mod).
yeah it is
I couldn't see anything wrong with what you had, so I copied your code completely unaltered into my mod (made myself some dummy sprites) and was able to harvest by grabbing. I then opened CJB Cheats Menu and clicked on the "Harvest With Scythe" option in there to enable it and tried to harvest again. It gave me the "Requires Scythe" message. So basically you need to disable that.
ummm thats a mistake. hahaha
what should it be instead?
the second one is just a duplicate. doesnt need to be there
oh i see
Probably copied it to use as a template for the actual rose drops but didnt delete it
pathos stay winning (he continues to insert passive abigail favoritism into the wiki, and i respect it)
continue/64 15/farmer 64 16 2 Abigail 64 18 0/pause 1500/
label question/speak Abigail \"Hey! Did you have your eye on someone?\"/quickQuestion #Abigail.#Penny.#Alex.(break)goto correct(break)goto hmm(break)goto hmm/
label hmm/speak Abigail \"Oh?$u\"/pause 500/goto question/
label correct/speak Abigail \"I thought so!$l\"/pause 500/end
"```
It is inacceptable to completely ban a tool that is widely used and will continue to evolve in the future.
You can't really call this server "a home" when a certain group of people are actively excluded from the server, as they use something unconvential
AI doesn't really create it just takes existing things and remixes them, if you did that manually with a mod you could see why people wouldn't want that can't you
As a server and community we should intend to adapt with the technology and accept the underlying consequences for everyone. That doesn't mean you have to be rude or purposefully destroy others people work
You should take this up with the Junimos, not us.
Everyone who didn't use AI substantially before says that
Tell me then how does AI create without a reference
Well there is always a reference to something, we are are all using the english speech. We aren't inventing new languages
As I said, go talk to the Junimos. Although most of us are strongly in favour of this policy, we aren't the ones in control of it.
In game-related news, regrowable crop stages are pretty hardcoded, huh? I can have fewer stages than vanilla but not more.
yes
It might be possible to finagle stuff with spacecore if you really really want to
since spacecore allows you to set the stage for a crop after harvest
I am not even interested in making crops, I'm just fooling around lol
It took me reading your explanation and looking at your drawing to understand how the texture frames corresponded to the DaysInPhase field so now I am trying to add to the wiki.
Lmao
Let me know if you want me to review it
could you guys please not attempt to start a fight about something that should not be fought about in the channel anyways
That'd be great thank you! All right to DM or you want it somewhere else?
Yeah anywhere! Idm dms
I'll send you what I've got so far while I keep experimenting with stages
my bad
👏 Scope creep 👏 scope creep 👏 scope creep!
do tell lumi 👀
@naive wyvern please share your thoughts instead of disliking every message of mine
i have this idea of farmer becoming better at stuff over time (in addition of leveling up skills)
and my brain went "adding randomisation??" but no, no, first start the thing
then it may scope creep
Is the stuff they'd be getting better at the existing skills but just done via a different mechanic, or is it totally different things like...the longer they have beehouses the more honey they get because they're better at beekeeping or something?
Does anyone know 
^
someone responded saying to turn off cjb cheats scythe option
it's making some stuff more rewarding each years
OH tysm
didn’t see that thanks!
I did ping you, did it not show that in your inbox?
Nope o: not at all!
If you have feedback to provide regarding the AI ban, feel free to DM us via Bouncer about it. The ban is the result of careful consideration from multiple angles, and not merely fearmongering. We considered legal, ethical and technical perspectives, and ultimately determined that our new stance was the most appropriate. If there are things you think we didn't consider, feel free to let us know.
Now that I went to notifications, I see it manually but I never got the ping which is weird
Like the app didn’t even say I had a ping in here
Ah that's always annoying when it does that. But the good news is that your crops worked perfectly without Harvest With Scythe enabled ^_^
But tysm Aba 
YAYYYYYY
I literally woke up thinking about my mod, lol
time to finish the rest ehehe 
hahaha
I feel so silly I auto checked every cheat last night not realizing this was one of them LOL I’m so sorry
Have you considered the use of AI for the current and upcoming games from CA?
i believe you send a dm in public by mistake!
You're welcome! It took me down a total rabbit hole of investigating crop stuff lol
negative crop, top of art /lh
LOL
Can you see where I got completely lazy and gave up on sprites entirely and just used numbers instead?
Much appreciated 
Morning, everyone (if you are in my part of the world). I'm curious about use cases for false dependencies. I know that they make mods more compatible with each other, but when are they needed?
Again, please take matters up with Bouncer
i was like "???? why someone would write a 2 mirrored??? but not the 5 ?"
(For my specific example, if I want to add coal nodes to the mines and I want it to be compatible with other mods that add coal nodes, do I need a false dependency or are we okay because everyone's just adding a lot more coal?)
It's annoying me so much haha but I need them to easily see what sprite it's on
we are ok, we don't care about duplicate nodes
I got 2 things left to do o:
-shop data
-monster data
YIPPEE
duplicate items maybe would be a different debate (some people are bothered) but coal? come on, who doesn't need more coal? who would complain?
To my knowledge they're used in the case where you need to make sure that your mod's edits occur after another mod because you're either editing the same vanilla asset or you're editing that other mod's asset.
if you really want there are tricks to disable the nodes if other mods are installed but, like, i would not bother
So the goal is to make sure your mod overwrites what the other mod does?
Or makes both versions available in the game?
Overwrite or add to.
Like if you wanted to add your object from your mod to my NPC mod's gift tastes, you'd put my mod as a false dependency to ensure that my NPC's gift tastes entry already exists when your mod goes to edit it to add your object. That's the "adding to" bit.
usually false dependancy are if you need some specific load order or something similar
if you both add a node, since the node id will be different, you don't care about that
it will be auto compatible
Okay, that makes sense. (Also, something I don't have to worry about this time around, yay!) Thank you!
@cunning kiln You leveled up to Cowpoke. You can now speak in our voice channels and share images in all channels!
always great when you dont have to worry about something
Cowgrats 
I already know how to format shop data…. But looking at the monsters wiki page… I’m a bit confused on how I would adjust dangerous mines monsters loot tables

Only took 2+ years!
(And thank you
)
Ooooh I'm nearly at secret text channel level!
secret what
secret nothing
The roles page says there's a secret text channel at level 500
I don’t see the monster ID’s for dangerous variants 
Itd be an Open secret then
#secret-woods isn’t real
@drowsy pewter is Cornucopia using "Type": "Seed" instead of "Seeds" intentional? it seems to break automate's detection of the seeds in junimo huts
The things that are said in there must just be very secret
Maybe that's the only thing that you are allowed to say: "secret secret secret"
i can't tell you it's a secret /j
Huh
How are our objects even working 😭
What, discord that is wrong!
Oh god. All my seeds are like this??? WHY
I must have caused so many wrong third party mods using us as an example too 😭 Omggggg sfjksdkfjsdfkddkfhsd hahahahahhaa
(I imagine you'll be there in approximately a few support threads worth of time.
)
You type it once and then the copy paste catches u 😭
I'll fix it with our next updates, thanks for pointing this out
Omg no way, is there no way to change dangerous monster loot tables in CP?

yeah
There is, how? I keep searching can’t find anything helpful 
i mean yeah there isnt afaik
Aw man
That one feels like a framework waiting to happen!

how many chocolate cakes would i have to bribe somebody with for them to make a similar menu mod for normal item shops like how livestock bazaar looks?
I should make my own atp with how many times I need one LMFAO /j 
also Hi Anaira. hehe 
HI BEN 
(If it happens can anyone pls ping me so I update my mod id really appreciate it
)
should I ping chu
Now I want chocolate cake
I’ve seen Gus sell it like every other day it’s so annoying
I do like cake
Ben’s react makes me want cake even more, but in cup form
but I can't make those kinds of mods
I do wish there was a greater variety of cakes and cookies.
i do have the entirity of WAG so that will hopefully help with my cake cravings.
Lowkey I wanna make a desserts mod now oooof
Say JK
don't promote people farming in there 
Hi Roku! how are you?
Exhausted. You?
me too...i hope you feel better soon!
how would i be able to adjust this to have a .77% chance of spawning in the traveling cart?? i dont see a field for it on the shop data wiki
no way, and i cant add anything to Qi's Walnut Room shop??????
please tell me i didnt get my hopes up for nothing 
you 100% can
thank goodness, i didnt see it on the shops page and got worried
wiz is our resident qi expert
https://www.nexusmods.com/stardewvalley/mods/23531 here i don't know how to explain but i did it with this
thank you so much 
amazing thank you, i wonder why this isnt on the wiki??? 
its just an ordinary shop
i meant on the shops data wiki
yea it is an ordinary Data/Shops entry
should i add it here then?
doing that as we speak rn! <3
also trying to look for how i could adjust % chance of this item coming up in traveling merchant, dont see anything on the shops wiki or in Data/Shops
use Condition RANDOM
one of these days, someone is going to write a full API reference for the game, and the next day 1.7 will drop with no warning and change everything
is this why my junimos were being finicky?!
Okay, another false dependency question, because now I'm curious. What happens if two mods have a false dependency on each other? Whose edit gets applied?
(Applied last.)
circular dependency they both die
chu no
Condition: "RANDOM 0.77" ?
chu yes
I think the whole false dependency doesn't work in 1.6
yea
thanks chu!
that would be very concerning bea
it does, it's just not necessary as often
!dependency

buh. we did have a command
I feel like I opened a can of worms...
it's less effective
it does the same thing it always did
it didn't change, bea, it just became less necessary because of some other features
I think if two mods have 2 false dependencies they just cancel each other out and go back to the regular sorting
if they fixed this then it's new
circular dependencies should theoretically crash
i remember mod help issues with sve -> medieval -> vpr loop de loop
(because that's the correct way to handle circular dependencies)
but I'm not sure about circular false dependencies
I don't think smapi crashes. it shouldn't anyway
SMAPI might not, but the mods shouldn't load
if i have 2 shops, do i need to make a whole nother "Action": "EditData", "Target": "Data/Shops", "TargetField": block? or do i just add another TargetField under it?
could always test it out but like why would you need circle false dependencies
they should both be skipped
but it's easy enough to check
add another entry
thx 
[SMAPI] - Cornucopia - More Flowers 1.5.4 because its dependencies have a circular reference: Cornucopia - Artisan Machines => Cornucopia - More Flowers => Cornucopia - Artisan Machines).
wait really m
this is what i mean by "both die"
I was asking as part of understanding how false dependencies work.
...does a manifest-only mod word
(just to be clear i added this false dep to demo, cornucopia does not have this bug lol)
oh wait anaira I misread
(I'm guessing new mods might add a false dependency for an older mod, but not vice versa, so it doesn't come up?)
well again smapi will bonk you for doing this
they should really do things like that via patch priorities
not always
and generally it's encouraged not to deliberately overwrite other people's mods specifically
i personally think false dependencies are easier to debug than priorities
cus its right there in the manifest
not scattered across various patches
I have a few to make npcs mods load before mine so I'm not adding gift taste to nothing
can't you do that in other ways? 
not that I know of
I wasn't asking in the context of overriding -- it was more about compatibility (since I see it come up a lot when people are discussing compatibility).
yea you can, but its easier for ppl to go "ah this mod is trying to add gift taste to this npc mod"
I can do a check if the mod exists but that doesn't check when it loads
vs "ah this mod is trying to add gift taste really late"
"some of the keys target this probably a custom npc mod"
ah right priorities
so yea i vote for false dep in bea's case 
I do wish sometimes that CP had some stronger features for things like this, even though I understand why it doesn't, but yeah I think that bea's case is the classic example of when it's correct to use false dependencies
That makes sense -- part of the reason I was originally asking was to understand when and why you would use them. It sounds like it's more used for modifying (or adding to / reacting to) mods that add content.
i.e. "if mod X is installed, do things that directly depend on it, but if not, still run the rest of the mod"
it just says load me mod after this other mod
wait wha o:
"false dependencies" are optional dependencies, pretty much. So if the mod is there, it's treated like a dependency, but if it isn't, there's no crash
i saw my items in shop, im guessing this weird icon thing is from not having i18n files yet? 
they worked as normal
Thanks, everyone!
That's correct.
Once you have i18n files these will be replaced with whatever you have for that tag in the file 🙂
(I'm so excited to actually have an answer for once, rather than just asking questions😂 )
REAL i feel so dumb in here compared to farmers LOL
hm whats your trade item
i want to put my modded stardrop tea leaves item in a keg for a week to produce vanilla's stardrop tea
wait is that what u meant? 
no 
i guess its the qi gems bug then
i just put currency: 2 and thought that would work
(...so I didn't have the answer. Dammit! Some day...)
so if you are just selling for qi gems, use "TradeItemId": "(O)858",
thanks
and ty also jane 
theres a display bug that makes the shop currency version not show up right, unless item extensions
Chu you jumpscared me walking into the channel thinking my mod had a fatal error
so like this right?
"TradeItemId": "(O)858",
"TradeItemAmount": 77
"TradeItemId": "(O)858",
"TradeItemAmount": 100
somehow im finding them
iwnek its a bug or not LOL
yay shops data done, now just need to figure this out :D!
oh easy
i saved the easiest for last 
yeah and for example i use priorities for my map patch instead of listing every other mod that edits the forest but that's more me being lazy
(ill still fuck it up somehow)
bea aren't you constantly at war with map patches
no, that's also the correct use! You're using the correct feature in both cases
if you're targetting a specific mod, use dependencies. If you're targetting a whole category of mods, use priorities
could i run into issues if someone targets the same area as me with the same priority?
i suppose that's a what if scenario
thank you that's very validating 
if this mod is installed our mods shall fight to the death for dominance of the area
mod duel 🤺
next thing we know the sushi stall has taken over andy's farm
hopefully it doesn't move
Think about it this way.
You're both editing the same area because you both want to change it, which means you also want both your changes to actually take effect.
The user should just pick which one they want and disable the other one, because there's no correct answer here. Which is why large mods should have configs to disable smaller parts.
sorry, accidental @
right now i'm right next to andy's house chilling
it's alright iro you're on the "ok if you ping me" list
it's just shorter to type "don't reply @" then "you can @ but only if you're special to me"
Bea's fish vendor leaves the rotten sushi at night bc Andy is mean to them
Hi all, not sure if its best to ask here, but I am looking into changing some existing mods (personal use) and I am trying to figure out what the following item ID refers to:
BO 25 1
I know the 1 stands for the amount but I am pretty sure its not 1 stone xD Can someone explain what the BO means?
fish doesn't rot in stardew
big object?
ohhh that could be it, thanks!
hmm yea I think it could be that one, I vaguele recall that
Is there a list for ALL items, because the Great ID Spreadsheet is missing a bunch
I don't recognise BO as a code 
and there's no tab for objects specifically
i use this
merci!
What's the mod Darcy?
weird, its from CCCB, and pretty sure the rewards work 🤔
oh it's def seed maker then
ahh that explains
is BO a reward then
so if I want to change it to a different object then I need to keep BO?
craftable*
/// <inheritdoc />
public override string Identifier => "(BC)";
/// <inheritdoc />
public override string StandardDescriptor => "BO";
might be backwards compat thing actually
hhh
if you want your reward to be another BC then yea keep the BO darcy
this doesn't appease the rat brain
I love CCCB but some of the rewards are... not amazing so I am looking into changing them 
just use O if you're making the reward a normal object tho
yush I saw it on the link to the wiki you shared
today we learned about; bundles
😂

change all rewards to pants
shirts and pants are P and S respectively why C
guys, is the id winter_indoor in the base game or just a thing created by the mod?
tilesheet im guessing?
https://smapi.io/json/none/218163c575ac45e7830b0b58498bb9bf my keg keeps outputting stardrop tea juice instead of stardrop tea, but i still want it to remain a vegetable item, did i do something wrong
move entries
ty 
C lothes I presume?
are hats not clothing
No I think they're Accessories?
they're hats (H)
Boots, hats, jackets, ponchos, and coats designed to protect from rain and snow are specialized clothing items.
...are shoes not clothes
hats are hats

shoes aren't even an option for rewards
Wait why am I trying to explain Ape logic
If there's one thing I learned is that one should NOT attempt that xD
gib json
bea no eating jsons until they're fully done
for troubleshooting wiz! i'll eat it later
https://smapi.io/json/none/c9b742a81cf64c3a96264a89d701acbc ty >< sorry :/
oop my leaves disappeared
maybe i shouldve typed "Keg" instead of "12"?
nope that didnt work either
wait i did something!
now only this is showing up
did you specify an ID value
You should look at an existing mod for an example of MoveEntries formatting
oh u need both Entries and MoveEntries
the whole thing needs to be rewritten
Entries is to add a rule, MoveEntries is to reposition it
OHhh
do look at existing mods yes, esp anything targetting vanilla machine
i dont play modded
Am I blind or is there no entry for rings?
TY!
I can't make you play modded but you do actually learn a lot just from playing and using other peoples mods haha
ik its a curse
anyone here would be happy to link you to an example as well if you need examples of a feature!
nvm found it, ring is an object 
u gotta include the BC i'm pretty sure so it'd be (BC) 12
No, it all needs to be rewritten
the example I gave targets keg rules as well, so you can copy the same TargetField data and everything
!itemids helps me a lot i hope it does for u too!
ya thats the one where I was looking
@fathom hound if it's not working, ping me with the json file here, I'm about to go to sleep but I can stay up for 5 minutes just to make sure your thing works!
mission accomplished! tysm 
SAME i cant wait to release!!!!!!!
tea time
this might be the mod that takes me out of vanilla grinding a bit 
Haha
now if i can get someone to make a dangerous monsters framework
then it would actually be perfect 
what does that mean
as in, what do you want beyond just spawning monsters (which u can do with ftm)
i cant add these seeds to dangerous monsters loot tables 
designed these crops to be end game, and thought it would be really cool to add it as loot when farming dangerous
what if you make them spawn on ur farm after completing some endgame thingy
nah its okay, id rather just have it in just qi gem shop (and rare travel cart)
but ideally if a framework is ever made ill add it ^_^
i think u can do it without harmony if u wanna try C# 
i would love to try again
i tried reading yellow book, i didnt really understand it too much
im easier visual learner than like, reading ><
since its C# and not like . a niche modding community for a random game. There may be video guides to kickstart your learning it

but instead of altering monster.Sprite, alter monster.objectsToDrop
and if u want you could write your thing as a PR to MonsterVariety so that it does actually become framework
no freaking way chu, you are awesome
i would love to omg, no matter how long it takes
i also dont really know if digging around someone else's spaget is the best way to learn 
so idm if u just based your C# not framework mod on this
It's the best way to learn to make the same spaget
i only change this part right?
Family recipe
im not bold enough to release a framework yet, but i will certainly figure this out until i get it
no op u are changing all of ApplyMonsterVariety
but more specifically, this mod's purpose is to pick a sprite from a big list of sprites to apply
I see, so if i have it just choose my mod ID as drops instead.. 
what is relevant to you is
monster.isHardModeMonster.Value: this checks if a monster is hard mode/dangerousmonster.objectsToDropas mentioned is the drop items
omw to ILSpy rn 
if you want to PR me, then i would actually want this feature to be a framework feature, so you'd have to open new field on the models https://github.com/Mushymato/MonsterVariety/blob/main/MonsterVariety/Models.cs
what does PR mean? sorry im so noob
pull request, submit a contribution basically
oh! ^^ okay!
in the case where you are just doing this yourself with hardcoded values, here is the functions you have to keep
internal static void Apply(IModHelper helper): this sets up the following event listenersprivate static void OnSaveLoaded(object? sender, SaveLoadedEventArgs e)listener for when save is loadedprivate static void OnWarped(object? sender, WarpedEventArgs e)listener for when player changes location
ill watch these videos too
the purpose of these 2 listener is to do work whenever player enters a new location
this work comes in 2 flavors
iterate all current NPCs and do stuff (if they are a Monster, checked with if (value is Monster monster) later)
foreach (NPC npc in e.NewLocation.characters)
{
OnMonsterAdded(npc);
}
do stuff when new NPC is added
e.NewLocation.characters.OnValueAdded += OnMonsterAdded;
this also needs to be removed from previous location, hence
e.OldLocation.characters.OnValueAdded -= OnMonsterAdded;
everything beneath OnMonsterAdded is the stuff specific to this variety changing mod, which is where u can stop following this code
instead u just need to check if dangerous (monster.isHardModeMonster.Value) and then monster.objectsToDrop.Add("YourItem");
so basically i just get rid of line 39 and under right?
then start from there?
gotcha, i think i got it then
and ofc remember to call Apply from your ModEntry
sorry im slow, up to this part and just reading on how to structure it
like this?
The method being called is ApplyMonsterVariety
Define your own method in place of that
I'm confused why you don't have error squiggles though 
I'm just confused 
If you have intellisense on (e.g. vscode's C# dev kit extension) then it should warn you about incorrect syntax like what you have
where would ApplyMonsterDrops be defined that
ill download rn ty!
If u look at my mod
The signature of ApplyMonsterVariety is Monster monster
And it's defined on the same class
Oh is this vs 
Mmmhm
I know nothing about how to set that up rip
Oop sorry i didnt see u siad vscode
Maybe just google enable c# intellisense in vs then
Yep here
omg i finally understood something on my own lol
oooh okay
all this time I thought the reason I couldn't compile atracore was that I was using rider. Now I think atra is just gaslighting me for fun /lh
atra: it definitely compiles
the compiler: ???
atra what witchcraft are you using, help
look up if statement syntax - they can be used without {} around the body but often aren't iirc
the body being the thing that should happen if the condition inside the () is true
it looks enabled already (?)
i dont think thas what chu meant for me to fix
yeah, chu was fixing the condition part, which was wrong. You said it still feels off
no, I don't think C# has an and operator word like that, and everything on the second line is outside of an if statement condition entirely
may I ask where you got this code?
here! TY chu and iro
I meant the part that has and in it. That's not in the link.
oh im not sure, i dont remember where i saw it before
if (monster.isHardModeMonster.Value)
{
monster.objectsToDrop.Add("StarCrops_AncientStarfruitSeeds");
monster.objectsToDrop.Add("StarCrops_AncientStardropSeeds");
}
maybe im confuisng with CP
thank u 
It might have an and in pattern matching but that doesn't seem relevant rn
c# pattern matching have an and operator? interesting!
just confirming
And or i think to avoid ambiguity. https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/operators/patterns#logical-patterns
Well you still need the { } from the private static void
are you making your own C# mod? because I recommend doing some tutorials to get used to the syntax first
yeah totally
i need to watch videos, reading yellowbook didnt help me much
it wasnt my intention to make a C# mod but there was no dangerous monster framework ):
how would i adjust the drop chances? is it currently 100% right now so i can test??
I would add "&& Game1.random.GetDouble() < x" to your if statement, I havent modded for a bit but I think thats the right naming
where x is a double representing the chance
ah so they cant have 2 different drop chances?
1 for 100% 0 for 0%
i wanted one 0.1% and the other 0.77%
if you want that then you can very easily split it into two if statements after
ah gotcha thanks
don't you have to create your own random instance?
I have never and it has never caused issues for me haha
I also haven't touched this side of modding in a while haha
anyway I hate vs22 and since it doesn't help me compile atra's mods, I'm officially going back to rider
No u don't have to
I never was able to get vs to work for compiling
Although i personally use Random.Shared if it's some inconsequential rand
aw crud....
did i put it in the right place :x
Thats not to say you wont though!
Awa are u still packing yer mods with dnspy 
yeahhh
I've never stopped being terrorfy
Sorry! you dont need the " ", and put the && stuff inside the brackets ( )
Personally i use dotnet build from command line
dnspy, like, the decompiler?
Yep...
Which may be easier for u
I decompile then edit then recompile
Than a whole IDE
why does that start with decompile... do you not have a copy of your own source code
How did you compile it in the first place??
Third times A CHARM
that is terrifying
But there's actual practical reason why it's bad
There absolutely is
It's hard to open source like this
FYI this is 10 percent and 77 percent
soOO i'm using the random token and tyring to make it so there's a very low chance of a certain value applying, the docs say. but i swear i've seen other ways???
Which i don't think was ur intent
there isn't just a practical reason why it's bad, I'm kind of shocked it worked without any issues until now 
Is monster defined elsewhere
which seems very inefficient 
Well I still dont face like issue issues tbf
Why's it noy underlining red
i dont have the extension or something
should i just go back to vscode
Sometimes dnSpy gets pissy and swears that I have multiple dependencies on different versions of things - but opening up a different file and then restarting it usually fixes that
I feel that apply fn shouldn't compile
The param is named value how are u referencing monster
You don't need this string
I'm struggling to express how much easier it will be for you to just keep the source code on your computer/in a github repo and compile it each time
I did download rider like a week ago! Yet to do much mod work since but I do intend to try it out
If you want to convert your current mods over
I would use decompile to project option in ilspy/dnspy
dnSpdy does let me export to cs project, thats how Ive gotten the sources of my mods
And inspect the csproj generated
there like, has to be a better way to convey a 1/20 chance than this right? right?
anaira, could you put the entire code on github and send a link? because I also feel like we're missing something
sorry for spamming i deleted my old ones 
for sure
Bea why is the sushi stall open one in twenty times
Also I'm pretty sure u can do this via shop owners
no no it's just the map tilesheet edit
They take a GSQ
I swear this doesn't compile
I'm nearly certain it won't but afaik anaira hasn't tried yet
in ApplyMonsterDrops put 3 new lines "
if (!value is Monster)
return;
Monster monster = value as Monster;
i want the shop owner to match the sprite. suppose i could do it the other way around
That fixes... one section I think
imo just handing someone code without explaining what the problem is or how it fixes it isn't super helpful
true
chu explained it to me! i just think im following not so well because idk C# too well :[
ribbit
ribbit indeed
In ApplyMonsterDrops you give an NPC type, named value. Not all NPCs are monsters so you need to check that the NPC "value" IS a monster before getting them in the form of the type "Monster"
There's is actually a is Monster check earlier
which uh, which GSQ
Then the type in the input should be monster, no?
private static void ApplyMonsterVariety(Monster monster)
yeah
This is the code anaira is referencing
are you planning on publishing this, anaira? as a personal use mod you can obviously use whatever you want but personally I'd recommend learning enough basic C# to be able to write things like this yourself if you want to actually publish it
isn't there a Random gsq?
i just wanted dangerous monsters to drop my seeds man
to the docs i go

that doesn't really answer my question if you're planning on publishing or not haha
its being published with my mod yes
I mean i think you can publish the CP part first
Then puzzle out the C# at your own pace
i was planning on doing that
This is just a side feature after all
ah ok this, solves my problem (i think) thank u iro and chu
i blame wiz for all this work
thanks everyone for the help 
wait no- i'm trying to randomize just the portrait for the vendor... a it's more complex than i think
It might take a little time to learn, but c# can be very rewarding and creatively freeing 🙂 Goodluck with all of your mod anyhow!
Dora's uses a standard random block which i want to do to but what i want is to make the random chance be like 1/40 instead of fair and equal chance
thank you, i definitely wanna learn, ill look at videos and attempt this again later tysm!
could use a dynamic token roughly like this i suppose json { "Name": "Vendor", "Value": "Open" }, { "Name": "Vendor", "Value": "OpenFrog", "When": { "Random: {{Range: 1, 20}}": 1 } }
oh! that could work. thank you!


