#making-mods-general
1 messages Β· Page 606 of 1
There is also this <ModZipPath>$(SolutionDir)\_releases</ModZipPath> but I think that makes the whole zip
Not really sure what you mean by that. So I guess I'm not using that XD Is that supposed to go into my manifest for the C# Mod or where should that go?
Or do you mean the csproj file maybe?
What would this do? I'm trying to get my mod to be built into a folder that is one deeper. Would this make it possible that it is on the current folder level? So I have this structure:
IslandExpansion
->[CP] Island Expansion
->[FTM] Island Expansion
-> [GWF] Island Expansion
-> Island Expansion Code
--> IslandExpansion.dll
--> manifest.json
And when I build my project, the dll and manifest land on the same level with all the other folders, but I want them to be put into the Island Expansion Code folder. What would the <ContentPacks Include> thing do? How could it help? XD
The content packs include make modbuildconfig handle the content packs while deploying, etc
I assume it would do so correctly
I dont find anything else i did for this mod
Okay, let me try around with it for a bit, maybe I can get it to work that way
Aaah, I finally get what you mean and what it does. Yeah that actually works, thank you
The only major diffence is, that now I need to make the content packs in my repo and they are getting built with the whole project. This might make things more complicated maybe, Idk, I'll see if I'll keep it that way
Okay, yeah, I figured out how to do it now. If I just put the manifest files into the content-packs folder in my repo, the build will only replace those manifests, not the whole content files and assets and so on. By doing that, I can still freely edit stuff using VS Code without having to edit them out of my repo, where I then have to build it and so on. It really feels a bit sketchy to replace a manifest file over and over, just so my dll will be put one folder deeper, but you know, if it works, it works XD
It should be completely possible to make conditional gift tastes, right? Like after obtaining a certain mail flag a character likes something more than they used to?
as far as I know, yes, unless there's some caching in the gift taste UI or something that I haven't seen
taste data is checked on the spot whenever they receive something
Will I need to make sure the conditional change has a later priority?
conditional edits would need to come after your "base" unconditional edits for a custom NPC, yeah
either later in the file (iirc that's the order CP uses for a single mod) or with a later priority
I'll have to do later priority as they're in different files (I have an "overrides" file)
That's just "Late +1" Right?
if the base edit is Late, then yeah, that should work

checking
yeah, higher = later
Early is shorthand for -1000, Late for 1000, etc
Ahh alright
I'm realizing that making gift tastes is only such an issue because of my ADHD. Maybe that's why I've been considering ways to offload the work onto other people 
I've done gift tastes and I'm too lazy to look up what they are to write it down orz
if it's within your own mod, even split among multiple files, you never have to use patch priority. things will apply in the order they are listed among all your files
(remember that Action:Include works by replacing that patch, in its current location, with the contents of the Changes array from the included file)
-# should my children like rocks
I imagine there's no harm in keeping the priorities just in case?
what is the like, rock id. as in the one that's a resource
there's about like 20+ items called Rock
390
no immediate harm. i think it's easier to rearrange things in my own mods if i don't also have to change the priority numbers when i do so. and it can technically make things slightly more annoying for other authors and power users down the line
!stone
πͺ¨ The item ID for Stone is 390.
π©·
for Katrielle's love token she gifts a player one of those "unobtainable" rock items, which is fun as a 'Glitch NPC'
mm debug rock
-# how did you get this in your inventory?
-# the item spawner, bc i am a filthy cheater
no, i mean
Strings/Objects.json: "ArtifactSpot_Description": "How did you get this in your inventory?"
collecting worms
@gray bear the one for stone is the only stone with category I think basic, every other stone that refers to the stone that you can destroy with a pickaxe, have the category litter and category number -999. I guess it is the same for wood probably?
!wood
No wood for you
lmao. wood only has one instance, as opposed to stone
388
I guess the wood on the ground has a different name then XD
iirc choppable twigs are named "weeds"? it's been a while 
Ah yes, makes total sense
Yeah should be twig, 294 and 295
yeah, looks like just "twig", I was thinking of ice crystals and such being called weeds
I've got a hand-made set of stuff that can't be picked up here, but not what can be or their legal names, so I tend to lose track
https://github.com/Esca-MMC/FarmTypeManager/blob/master/FarmTypeManager/Utility/Spawning/Forage/CanBePickedUp.cs
the famous "Weeds" is id 0 (the first item in Data/Objects and first sprite on springobjects)
see that looks incorrect
(and also a bunch of other ids, if course)
are you looking for fiber? 771 if so
I had to look up the term again 
Ah I see, they're all called Weeds
don't think weeds with the id of 0 is ever used in the game
yeah, several things you can't pick up are just called that occasionally
"it's all weeds"
id 0 weeds come up with coding errors and such, moreso back before 1.6 when error items didn't work like they do now
same idea with stone
yeah i was thinking of Weeds Honey when i called it famous lol
Yeah, there are like 25 Stones, including like gem nodes also being named "Stone" XD To be fair, this actually actively makes them destroyable with a pickaxe
yeah it's not like its the worst implantation, just that it can be confusing
you put the wrong stone id in ur recipe and bam! borked
Would be easier if the actual stone ID was 2, instead of the Diamond Node being 2 XD
ahhh fond memories of Weeds Ring from learning sdv modding
weeds ring,,,,
Lord of the Weeds
you shall not scythe!
Dried Weedses my beloved
I feel like I remember the weeds ring and yet I don't think I've seen it
Is this weed in the game
Shrodingers weeds ring
i believe it is unused
afaik it only ever shows up due to several different modding mistakes
I remember getting it as a debris/tas texture on scything for a some reason, a while back
The worst part about making a mod is losing track of time. I've been fiddling with my mod for almost a month and I haven't even played the game aside from loading it up, seeing if "thing" works, complaining it doesn't, fixing it til it does, then moving on to the next thing on the list. Then, there's the looming fear that I'm gonna leave some big problem in the mod and not realize it for god knows how long.
I need a way to shut off my brain after I upload my update lmao
if one were to hypothetically accidentally put their mod as an incorrect, much higher version than what it should be,
and now SMAPI hypothetically reports that incorrect version as available
how would one hypothetically fix this?
manifest and modpage show corrected versions but smapi is still caching the old one
-# hypothetically

maybe I could edit those archived files to another version...
I don't think SMAPI goes through archived files, it should just be checking the main version; I'd just give it time to notice the change
though if nexus allows that, you may as well
(though by main version I mean this, which is technically a separate setting from file versions)
ohhhhh yup that's the one that wasn't fixed
-# someone else had changed it, did not notice
thanks 
Give it an hour or upload a new version with an even higher version number
Thank you. I did not realize that. Glad the theory is at least correct
I have finally finished gift tastes for the bachelors and bachelorettes! 
which means I'm only like 1/3rd done 

may ur gift tastes coding end soon
personally i find those horrifying
this scares me
-# hmm i was talking about making my kids like stone but i already did that
Ahh, that is not what mine looks like 
-# Which is not to say that mine looks better or anything
Then again I think that's kind of what my gift tastes for the NPC from my mod looks like, just mine's done in one single line rather than separated like that
yeah i needed the seperation
it does the same thing i just find this a bit more managable
Maybe I can just be a little less thorough with the non-datable NPCs
this was my first pass at doing it in C# lol
i have some ideas for reading from a .json and making it significantly simpler, but jesus christ it's silly lol
lobster,,,
I very well may go through gift tastes again at a later date after I've pushed out this update for the mod, but for now I think I should probably just do enough to make me happy
it's shrimply too easy to get! loved gifts in this mod mostly require you to go out of your way to cook food for people or make a significant investment, i.e. iridium bars for maru instead of allowing gold
Tbf, there have been times when gold has been harder to get than iridium. It really depends on whatever your crafting
yeah, i mostly just want to push ez access to loved gifts later in the game
Ironically, stone has frequently become the hardest material for me to get.
there are definitely weird troughs of resource access
The issue is that stone is used in a lot of recipes, but I don't have many renewable sources of stone
fiber is always the one that gets me
100%. A mod idea I've had swimming around in my head has been ways to convert valuable things to resources such as stone and fiber
The only reason I don't tend to struggle with fiber is bc its not used a lot in most of the things I craft
although i consider stone easy to get in the mines, i would like to hear more about what sort of conversions you were picturing. i can probably add them as transmute recipes for my magic cube thing
(the point of the mod is "create alternate methods to obtain various items", so i'm interested in items that players find irritating or cumbersome to get)
Yep, at least you can buy stone, but for fiber you have to craft and plant so many fiber seeds
It could be helpful to to be able to transform a gem to a few stones, since it is easy to get a lot of crystalariums to produce gems late game but farming stone is tedious.
Also something for resin would be helpful, it was a pain to get enough resin to craft a stack of kegs on my vanilla savefile
maybe a mod for letting you clone 1 stone into 50x stone per day or something w/ the crystallarium?
or 25, some number that is balanced
needs to give more than just cloning a valuable gem and selling it, then buying stone would give you
Hello, Im using portraiture and it needs Locations , Festival Tokens and Event Ids. so im trying to find out how to get those
So i can make unique portraits for Specific places.
Can anyone please help me ?
in my alchemy mod I'm not working on I'm imagining chains of resources associated with an alchemical element, where you can freely upgrade/downgrade between different tiers of materials using special catalysts associated with that element (Water: moss - fiber - wood - hardwood, Earth: clay - stone - coal - copper ore)
dunno what I can use for Fire and Air yet maybe I just won't
!unpack have you done this
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!
you can also check in-game with a mod like Debug Mode
Working on it Right now, but will it work for Mods like SVE and RSV ?
What if you can be nice to a crow and the crow brings you shiny objects
Or a mod lets you post on the little notice board in the community center
with mods you can for example run patch export Data/Locations in a save with them and inspect the exported file
or read their mod file, provided you know what you're looking for
and how to export festivals ? like festival ids like that?
here to aquire information about throwing action
not 100% familiar with festivals but this page has more info: https://stardewvalleywiki.com/Modding:Festival_data
(in general check the index at https://stardewvalleywiki.com/Modding:Index)
But Debug mod i think should be able to do it even for modded festivals right ? i mean since its working so well
tried to install it so far it looks great thanks alot
yeah it works with mods
can someone explain what attachCharacterToTempSprite does, i mean i can guess from the name but the wiki isnt very clear on the specifics
do they move together, where do they attach, who is above who
Tbh, probably minerals and gems. IDK, it's still in the very early stages of ideation. It's rough though, bc I also want to add refinement options for minerals π
Stone is very easy to get. I just find that recipes (at least currently) are requiring it at a rate faster than can be produced.
IDK. It doesn't fill in any game play gaps for me.
Generally, I try to design mods that address underutilized items (e.g., minerals) and/or add more depth and uses for items I get far too many of (I'm looking at you, solar essence. Your days are numbered)
yeah stone is plentiful in late game SC bombing runs, but I guess there could be a market for the more combat-averse
basically like the XKCD experts comic
"SDV is second nature to us veteran gamers it's easy to forget the average player only makes it to floor 50 on an average SC dive"
"and without toggling on Qi's difficult mines"
"of course"
Also, dammit, yall convinced me...
... I'm gonna start working on my Rock Refinement mod
It doesn't help that I want to automate everything π
Afaik it does just make the temporary sprite follow the character you attach it to.
I am making a very cursed thing and it's all the fault of the #modded-stardew channel from earlier.
As for the other specifics, best way to find out would be to try it, the code in the decompile for it is a bit messy and hard to parse at a glance
π gonna have to test that cus man it would be soooo useful in so many situationsss
Uh oh, you don't get errors in the console if you have an invalid ID in gift tastes. I might have to manually check everything to make sure there's no typos π
who else up making a shiko x haley rival hearts mod π
But I'm done with Gift Tastes! being less thorough towards the end sped things up GREATLY. I wouldn't mind going back through on occasion though and filling in a few more tastes
sighhh
i hope its not what i think it is
but lmao thats funny
thats good!!
i forget about them half of the time
It's literally
- Put item in machine
- get flavored milk item
I'm not sure what you're thinking it could be, but there's nothing weird here (besides the obvious)
would anyone be willing to help me add a png texture into the Town map. iv been trying for 2 days and i cant get it to show.
Since I'm making milk out of random things, I need to figure out how to make cheese out of the cursed milk. I know Roe keeps the name when converted to Aged Roe, but I'm not sure how I'd apply that to my milk. Anyone have any idea on how I'd do this?
PreserveId DROP_IN_PRESERVE
Sorry had to step away for a bit. I just tried that and it worked flawlessly. Thanks!
Selph is now partially responsible for the horrors I will unleash later π
(I know, wrong category, Will fix it)
that's what this channel is for! share what you've done and folks here can offer some assistance or direction. It may help if you share your json using the link in the following post from governor so people can see your code more clearly (plus it'll catch syntax errors)
!json
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.
im sure #modded-stardew will love this
https://smapi.io/json/none/119a2a7d0e8b411f95b2344bb4ea0a57 this is what i got and when i load in game i use the "patch summary" and all the boxes are ticked that say it works and loaded but i dont see it in the game.
π»π»
You need to load clintfate.png
Give me a sec to hop on my laptop to explain better
"Changes": [
{
"Action": "Load",
"Target": "Mods/{{ModId}}/clintfate",
"FromFile": "assets/clintfate.png"
},
{
"Action": "EditMap",
// ...
"SetTiles": [
{
"FromFile": "Mods/{{ModId}}/clintfate"
}
]
}
]
Make sure to pass the "Target" in your load entry to the "FromFile" argument, NOT the path to the png image.
now do i add this to the json file that i have now?
if you just want to insert your tmx into the town map you donβt need all the map properties and map tiles stuff
https://smapi.io/json/content-patcher/60066bcb2896420697fe0e5d2d393740 like this? also would it be simpler to do what i want with a tmx? i just want a texture placed in the world.
no, not like this. how big of a texture do you want? you can do it with a tmx and editmap or you can do it manually by changing each tile but thatβs a lot of work because uou have to do each tile and layer individually
are you following any tutorial or anything?
ngl i just started trying to do this 2 days ago and i have a hard time understanding anything on the wiki and i cant find videos on what i want to do
if you have questions about the wiki weβre happy to answer
videos quickly become outdated though sadly
well the texture is just a 16x64 image nothing crazy
and i just want it to me a static location
like you would see a crate or box in the background
gotcha and is this texture custom? like it doesnβt exist in vanilla?
okay youβll need to open up the Town map in Tiled, add your texture as a new tilesheet, make your edits, and then create a patch using EditMap to overlay your 4x1 area over the Town
if examples would help you can look at how other mods have done it
[[Modding:Maps]] will be a good resource
thank you
no problem and feel free to ask more questions if you need
How would someone define an item that benefits from multiple professions similar to smoked fish? I want to create an item that benefits from both the artisan profession and the gemologist profession.
check the relevant code in Object.getPriceAfterMultipliers
-# and it doesn't do what you want, Harmony eases all ills
YKnow what. I think I'm gonna attempt to make a framework mod to make this easier
I did consider adding that to EMC one upon a time, but other stuff took precedence
oh yeah don't forget about Walk of Life's profession changes up to you whether you want to actually add compat though
I need to research how to make a framework mod. But my initial thought was just to cheat the system and define additional multipliers to apply afterwards. IDK, I'm very tired π
the blue link text makes it feel ominous
Jokes on you, I already had that pulled up a while ago
Also, for now at least, I think I'm just gonna support vanilla professions. Today has not been the best, and I don't have the mental capacity atm to deal with other mods π
Though maybe in the future I can add support for GSQs that also determine whether to apply a boost.
Yeah, I think I'm gonna add that functionality immediately. The only sinkhole I can foresee in the immediate future is the GSQ aspect of it, but that's more so due to tiredness
Is there a CP mod that uses Extra Animal Config? I'm looking at the framework tutorial, and I want to double check if custom data models work the way I think they do
You can look at the "Mods requiring this mod" section on its nexus page to find every mod that uses it
thnx
how stupid would it be to use dynamic tokens to make a crop that grows year round, but at different rates in different seasons?
obviously it would make the Lookup Anything page a bit useless since the values would arbitrarily change, but not sure what other negative impacts that would have
K, I think I have an idea as to how to test it... 4 hours of sleep don't fail me now!
Crops planted before the DT changed but not grown yet would probably not receive the updated growth rate, if that's a concern.
(Or they might. Who knows! Dunno how Crops cache things)
ah you're saying that they might retain whatever their growth data was at time of planting?
iiinteresting, I'll test that out
I believe you'd need to invalidate their cache iirc. I briefly played around with it with my ancient fruit power
That doesn't help for items that already exist.
I'm just not certain how Crops work. Like, Crop.cs objects.
Or HoeDirts for that matter
I'll fiddle around and see how it looks
yeah existing crops save their growth phases, but they will get re-checked if fertilizer is applied
so only new crops will have the new grow rate and your idea won't quite work exactly as planned
however, may I recommend a framework with a built in "reset crop's grow phases" trigger
Just walking through things logically, let's say you want your framework to add an object class whose JSON entry looks roughly like:
{
"Action": "EditData",
"Target": ".../CustomModifier",
"Entries" {
"EntryID": {
"amount": 2,
"conditions": { // See When logic of globaltokens }
}
}
}
I have 2 questions.
A) To refer to the the defined CustomModifier EntryID in a JSON file, would one just provide something like "FieldX": "EntryID" in their custom fields?
B) How would the custom modifier class be structured to support multiple conditions? I want it to operate like how global tokens have multiple when conditions.
public class CustomModifier{
public float amount = 1f;
public ??? conditions = null;
}
Sorry if this doesn't make sense, I'm sorta working through this in my head as I go along
[tv show audience vc] what framework is it!
this is for my mod where I don't use any frameworks but CP itself, as I like to explore exactly how far just CP + 1.6 can go π
although for my other mod that uses C# I could probably have a trigger to reset there
if I implemented the concept on that end
are those parsnips growing in water?
you must have done a bunch of work to de-hardcode tappers for this π
hmmm, where fruit trees have the standard item spawn fields which includes Condition I could probably do it by adding 4 "copies" of the same output to a "fruit tree" and set the condition per season with different chance levels
it wouldn't be as precise
side note: it never dawned on me custom fruit trees use the standard item spawn fields, doesn't that mean you can set item stacks or make them produce random items from a set?
yep
interesting
VMV adds some conditional drops
it's the first major mod that really makes use of fruit tree's item spawn fields, which unfortunately makes it a magnet for bug reports because UI Info Suite 2 doesn't handle conditional fruit tree drops at all
yeah, apparently pathos got a few Lookup Anything bug reports from my mod because of the recipes on some of my machines
well, maybe that's a 2nd reason to try it the fruit tree way, make a fruit tree that looks like a rock, have it grow some fungus for harvesting that changes likelihood with the seasons or weather, and then wait for the bug reports to roll in
plus I'll give an artist a chance to re-skin my awful looking rock
I think UI Info Suite 2 Alternative works with odd trees
I actually got bug reports for like a year because half my animals are digging animals and UI Info Suite would put the thing they were going to dig over their head
and everyone wanted to know how harvest
A) I'm not sure what you're asking with A here.
B) This is kinda just entirely up to you if you're making a framework. Do you mean GSQ conditions? Just a single string field works for those.
Chat.. What do I use to make edits? I wanna make this area a beach and I want to add a door sized hole between the waterfalls
I'm guessing I have to draw them in a seperate app?
wait is this the proper channel for this question?
It is :)
I assume you have the vanilla map open in Tiled. Can you see the tilesheets in the sidebar?
this?
Yep! The top box is your layers panel, and the bottom box is your tilesheets panel
i absolutely support two cakes but you may be interested to know about this mod: https://www.nexusmods.com/stardewvalley/mods/44095
You'll want to start by making a copy of the vanilla map, so you can turn that copy into the map patch you'll be patching onto the map in-game
Then you can add tilesheets to that box, and use the tiles inside to design your beach. Make sure you use the right layers! The farmer can only walk on back layer tiles, and will collide with building tiles, for example
You'll use the Stamp brush in the top bar to add those tiles from the tilesheet to the map
Since it sounds like you only want to change the bottom of the forest map and not the entire map, you can also resize your copy to just the area you're planning to patch by using the rectangle select brush and the crop to selection option under Map at the top
Once you have your map made, check the content patcher docs for the section on editmap patchmode for adding the patch to the forest map
Also for layers, make sure you're on the layers with the grid box icons, not the pink stack icons
ahh alright, thank you so much 
There's also a more detailed tutorial somewhere in the tutorial wiki, phone's just making it harder for me to track down rn lol 
I have this mod. I was thinking about asking the mod author if I could use their beach areas in the cindersap forest and the SVE compat for my mod with full credits
https://www.nexusmods.com/stardewvalley/mods/33900
Dynamic Map Tiles can now change farmer's appearance when triggered
DMT/appearance
Changes various aspects of the triggering farmer's appearance.
Accepted Value
Changes take a comma-separated pair: {type},{value}. Types can include:
- hairstyle (number value)
- haircolor (#FFFFFF color value)
- eyecolor (#FFFFFF color value)
- accessory (number value)
- skincolor (number value)
Multiple changes can be triggered using pipes to separate ('|').
Example
"DMT/appearance_On": "hairstyle,1"
"DMT/appearance_Off": "hairstyle,2|haircolor,#000000|"'
I think I've figured out the pseudo code for my framework mod. Depending on what happens with work I'll try testing it tomorrow.
Having some trouble with something would appreciate any help;
Goal: Check for all queries below if Indoor_Night0-4 or Rainy_Night0-4
Each query is different based on health level, dialogue getting more urgent the lower the player's health is. If the player's health is low, very low, or extremely low I want there to be different dialogue. If the health is full/not at or below 120 the character will just say what i have for "i would say whatever goes here if the query is false", which will be normal dialogue or something.
My issue: I do not know how to make it check for multiple queries in one MarriageDialogue line, making it check for ONE QUERY makes sense to me, but how do i make it check for ALL of these? Is it even possible?
$query Spiderbuttons.BETAS_PLAYER_HEALTH 0 #16 #70#@, you--$s#$b#Ugh... Go sit down.$0#$b#Sometimes I wonder if you LIKE all of this. Collecting scars and scaring me out of my damn mind.$a#$e#Can't you think of me a little more before you get yourself hurt again...?$a|i would say whatever goes here if the query is false$0
$query Spiderbuttons.BETAS_PLAYER_HEALTH 0 #1 #15#@!!$s#$b#Sit--sit down, or, or lay down-- I-- We should call Harvey, I can't treat this--$s#$e#Don't tell me to calm down, idiot!! You're bleeding all over the floor!!$a#$b#What do you even expect me to be able to do about this?!$a#$b#Even if I could patch this up, it'll probably be infected!$s|i would say whatever goes here if the query is false$0```
PLAYER_HEALTH <Player> <#Min> [#Max]
ref for the Spiderbuttons stuff: https://stardew.button.gay/docs/betas/queries
$query <query>#<if true>|<if false>
https://stardewvalleywiki.com/Modding:Dialogue#Format
1/2
Is there an easier way to do this? Do I need to put a query in the query in the query? as in like.... example:
"Indoor_Night_0": "$query Spiderbuttons.BETAS_PLAYER_HEALTH 0 #71 #120#slightly panicked text if true$0|$query Spiderbuttons.BETAS_PLAYER_HEALTH 0 #16 #70#more panicked text if true$0|$query Spiderbuttons.BETAS_PLAYER_HEALTH 0 #1 #15#even more panicked text here$0|here would be NORMAL dialogue because health is too high$0"
Does that even work, lol? I am not a coder so I don't really know what works and what doesn't, haha-
2/2
IIRC you cannot nest $queryes
dang, so i can only do one?
yep
can i put {{Random: RandomTextDialogue01 @@ RandomTextDialogue02 |inputSeparator=@@}} into the <if false>?
yeah that works, though many people use i18n randomization
out of curiosity, is there a reason why you aren't listed as the person who uploaded the mod on Nexus since this is obviously your mod?
it was remade in my absence
by MindMeldMax
yeah, I was also confused why sexynes has any association with the mod
bc I knew MindMeltMax did some work on your mods when you took a break
they helped organize the remake
How hard would it be to use [CP] to make a 4th tier of Speed Gro? Makes crops grow 50% faster. Had a dumb idea and I *might* have the skill to figure this one out BUT I would want to make sure it's even doable before going down a rabbit hole and losing my mind.
i suspect you can't alter or add fertilizer effects without C#, but get a second opinion on that
Oof ouch owie
You can't.
I haven't a lick of C# knowledge and am too much of an old man yelling at clouds to bother asking some AI to do it for me.
Alas, relegated to the bad ideas bin it goes.
I guess I need to figure out something else to do with Galaxy Souls.
example of changing appearance, DMT can trigger hairstyle change when clicking on a wig like this
Hello people. This may be a complicated question, but is there a way for a player to name an npc? Like, the npc in question is meant to be one that cannot remember their past, hence has no idea what their name is. Over the course of their heart events, I eventually want the player to be able to give them a name. Is that possible to do?
You can, but perhaps not in the way you'd like
π€ i think to truly be able to name an npc you might need some C#
like on the spot
wait
Yeah if you want like, a text box, that's C# territory, unless you were fine with making it a config thing
yeah, i'd thought about it as a config where you sorta pre-name the npc, and it just comes up as a choice in an event
and then change the npc's display name to whatever the player wrote in the config box
It would spoil the story a bit, admittedly
π yeah, which is why i'd said "perhaps not in the way you'd like" since i figure they'd want it to be during the event you come up with the name
Ah damn- I wonder how hard it would be to learn how to do what I want...
maybe you can have a different option choice command thingy for every letter of the alphabet and have them spell it out letter by letter
I'm sure that won't be completely god awful
sounds uh... a little cursed
I don't think the C# for it would be too terrible though but for a complete beginner itd still be difficult probably
my head's spinning thinking about what kind of question chain that would be
probably a lot more viable* with the goto stuff in 1.6.16
*still very not viable
Ah I see- Hm. This is a delemma... (I have no clue if that's spelt right)
(dilemma)
Oh thanks
i think it would be worth considering if the potential hit to your mod's storyline by having the player choose the name first is detrimental enough to start learning how to do it in C#
If you weren't averse to dependencies, a simple text box that stores the input somewhere accessible to tokenizable strings is probably something I could add to BETAS with relative ease at some point
( π )
I'm sorry but what exactly does that mean-? My brain doesn't feel like working properly today
BETAS is the acronym of my mod called Button's Extra Trigger Action Stuff
it includes a bunch of things that modders can use in their mod that don't exist in vanilla, but the trade-off is that you would have to require users also install my mod if you wanted yours to work properly (unless you took care to make everything an optional addon)
Oooohh okay
Button can add that function to BETAS, if youβre open to using it as a dependency. Can confirm BETAS has many cool things you might want to use anyway
Yeah I don't mind
BETAS 
It would also mean that if this was a critical feature for you, and were willing to use BETAS for it, you would need to wait for me to implement it
since such a feature currently does not exist in it
Yeah that's fine. I'm working on a personal mod at the moment anyway. This is just a concept I like the idea of for a public mod
Ideally, it wouldn't be a long wait, but I wouldn't be able to promise any sort of timeline, so like, genuinely no hard feelings if the response is "I don't wanna wait for you"
I've been looking for reasons to get back into BETAS dev anyway though
Is there anything else youβre planning to add Button?
Awaitable trigger actions
That's fine! I'm good at waiting 
Awaitable as in instead of firing a trigger action immediately, you tell BETAS that you want it to keep checking periodically and do it once the condition has been met
For example if you want to wait until the player walks within 5 tiles of a specific npc
Oooh that's cool
I've got the idea of how to implement it in my mind, just haven't had the drive yet to do it
Fair enough
Oh yeah thatβs rly cool
Someone else wanted that function
Canβt remember who
If you remember who or find the convo feel free to let me know so I can justify the time on it better 
Dylan James (Dylan James)
I keep forgetting that I should probably still use the SpaceCore regeneration buffs, but I'll need to go back through them once Casey can fix the issues with them
I'm also gonna have to hope that DeLiXn pushes out the Unlockable Bundles update before I'm ready to update my mod 
I'm creating my own simple version of a forage box mod. Existing SV items worked, but I'm having trouble creating new ones.
Could someone help me?
!json If you share your json with us using the first link below, someone can have a look at it for you
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.
Specifically about the Green Mushroom
Hm.... Would y'all eat this?
Once in a lifetime
Did you write the C# framework for this? Where's your json to actually create the green mushroom?
Is that pfm (not sure)
(I am going to sleep now so hopefully someone else can help you)
This?
Since this is a new item, I think I would absolutely need a CP framework file.
But I'm really not sure, I definitely don't know how to create new items, or combine CP with PFM.
You can just use CP for the machine too
object.png π
shroomb
yooo
PFM doesn't add new items, as far as I can tell. You'll need to look up how to make a CP pack if you're unfamiliar; that kind of data needs to be edited into the game asset Data/Objects to create a new forage-style object.
(You also seem to have picked up some invalid fields from somewhere, so that will need reworking. "Recipe" isn't a real field, "CategoryTextOverride" is only in SpaceCore's object extension data, etc.)
As for combining them, your main mod can generally have a main folder like "My Mod" that has sub-folders "[CP] My Mod" and "[PFM] My Mod" for the separate manifest.json and content files
oh right, those fields are from Json Assets
that does still work but isn't recommended for new mods
CP adding animals question: anyone know how to limit drops by animal skin: (eg. brown chickens drop brown eggs and white chickens drop white eggs)? I havenβt found it in the wiki. Is it something in the ProduceItemIds Condition field maybe?
heyy congrats!
I believe you can just create separate versions of animals with alternatepurchasetypes (see vanilla files for chickens). Set it so you can buy the one animal, and it randomizes on purchase which version of the animal you want.
Yeah, that. White and brown chickens are fully separate animals that just randomly get handed out due to the random condition in AlternatePurchaseTypes. Skins don't have any real customization data and are cosmetic, but setting them up like chickens/etc gives them fully separate data.
(it might be possible for a mod to make a GSQ that checks the skin in the condition field, but I'm not aware of any, and the base game doesn't)
Gotcha. Thank you both for your wisdom π
noob question:
what's the etiquitte on finding a proof reader or beta tester? should i rely on early downloaders to volunteer that role?
You can always ask around here
oh cool! i've not seen anyone ask before and i've been lurking for a while so i was just wondering if it was rude or something. π thanks!
your free to ask, and I don't mind looking at some easy data to proof-check it for you : )
thank you! i hope to have a beta version ready by tomorrow latest. the data is simple CP, but it's a bit dialogue heavy (i estimate about 3000 words), so i understand if you'd rather not 
go ahead and let me know to check it!
For instance, I have 140 lines of dialogue plannedfor my next expansion
which is roughly 6,000 words
i'll make a note to keep you posted! thank you so much :D
I'm a novice modmaker but I've done some hobbyist proofreading before. if you'd like a beta reader i would be happy to return the favor!
awesome!! and i appreciate that! maybe one day, but for now im fine : )
i eat chocolate
How difficult would it be to have a building with a sign on it allow the player to write the words on that sign?
probably not too hard. i imagine some of the code for the text sign could be repurposed
Is there an easy way to make a food only give a buff after a certain time of day?
So like- It only gives the buff after 8PM in game
you can probably do that with just CP's time-change rate and editing the Data/Objects buff entry
no Condition field on objects' buffs, so that'd be the simplest route
This feels incorrect 
Cuz like.. I feel like this won't update already cooked foods
But maybe I'm wrong
I'd advice you to keep your brackets and fields well indented, because it's easy to make mistakes
Kinda a little late on that 
You just need to add one level of ident to the Duration, CustomAttribute, and LuckLevel lines, and everything will be clean ^^
Should work
Can confirm by testing in game that it indeed does not work
I was thinking because I haven't specified anywhere that it updates on time change but idk where to put that for an EditData like this
Alright it's the same as I'm already used to
Ty!
Oh dang okay, it does actually update already cooked versions of the item!
Wait so why can't I do something like that for removing the debuffs from these items?
Is there a way to check if a specific item has been donated and not just how many of a type of item has been donated to the museum using Game State Queries?
Not really but here's a workaround - create museum donation goal for the item, then key off that mailflag
If you code with Notepad++ you can also just install the JSON viewer plugin and it will format it for you if you're too lazy forgetful to indent yourself
you can, but idk what went wrong with your setup
Nothing went wrong with it, I was just told that it wouldn't affect already cooked items
some fields are baked into existing items as data and won't update, but buffs aren't, so I'm not sure
gonna try and find where I was told this in the chat history
Alright here's where it was said
yeah, that's not actually true for buffs specifically, as far as I know
some things are copied into each individual item/stack once they're created, but buff data is loaded fresh when the player eats them
Ahh, alright
dang I'll have to change the dialogue I wrote now π
-# provided this does indeed work but I trust you're correct lol
(BETAS also has that trigger action to refresh every item in the world, but it's a bit of unnecessary slowdown if it can be avoided)
(though probably fine in this case anyway, since it'd only need to fire once
) (but yeah, shouldn't matter for buffs)
I just realized these are not supposed to stack but you know what fuck it we ball 
Okay wow yeah that truly does just work
This might be problematic but screw it
(all of those are massive buffs except for the Z icon)
If you find the secret bundle set then you can get uber powerful for end game sure
1835 damage with the iridium scythe 
on a crit at least, otherwise like 139. I'm terrified of what an ACTUAL end game weapon looks like with these buffs
Also realizing I can totally use trigger actions from BETAS for more trigger actions that buffs can add on apply ^v^
Although outside of AddHealth and AddStamina I'm not sure exactly how much use I'd get. I don't get much use out of the vanilla trigger actions from buffs anyway lol
However this is IMMEDIATELY giving me an idea for another mod... 
Speaking of though-
Is there a way I can have AddFriendshipPoints give points for every met NPC? (or just every NPC)
-# (or even only nearby NPCs)
You hit a monster and it just ceases to exist
Oh absolutely. an Infinity blade did over 5000 damage
The farmer is no longer scared of the monsters, the monsters are scared of the farmer
This is definitely one of those free will moments
another use case for betas 
https://stardew.button.gay/docs/betas/tractions#RegionalFriendship
Oh that could be smart hmm... Although I doubt "Town" covers all of the NPCs I've got listed, I imagine Sandy wouldn't get included in that?
yep, she has HomeRegion: Desert in Data/Characters, and is mostly why region exists in the first place
Home/Desert/Other are all the official ones
Home? It's not Town?
Ah alright lol
Alright then yeah I can swap that giant block of text over to just 2 commands. One for town region and then keep the add for Sandy specifically
"other" includes Leo (I think forever, but double-checking code) and various NPCs who might not be social anyway
(also to be clear about it, that RegionalFriendship action does only work on NPCs you've already met)
Ooo very nice!
I guess I could just do 3 commands, one for each region and ball from there lmao
i was working on a mod that makes it brighter as time goes by for use with the mod earlywakeup do you guys think that it would be simple enough to just edit light level per tick or is it more then that? the goal is to make the light start out at dark since that mod makes you get up at 4 i wanted to make a mod that kept it dark until 4.30 where i planned to increase light level slowly
Would it be possible to make something that applies to all NPCs in the same Location as the current player? 
-# it could be cool 
Possible, sure, but existing in BETAS right now? Not currently
Part of me wants to ask if you can add that but I'm already gonna be waiting for DeLiXx to push out a public update for Unlockable Bundles and am pseudo-waiting for Casey to be able to fix the issues I found with SpaceCore. So I don't know if I should add a third person to that list lmao
-# especially since I don't want to end up having to bug people if I finish the update for my mod before then. Though that's only really an issue with UB because DeLiXx gave me an alpha build
Anyway- It would be pretty cool if I could make it so eating this food gives all NPCs in the same location as you friendship points, so if you want to add that I certainly wouldn't complain :3c
is there a way for me to make something that gets semi-transparent/fade when you go under/behind it like trees?
I saw some mentions of it here and there but all I can find thru discord search is pretty old
only with a dependency
sadge π
it's all user-side rather than mod-side as far as I know, and there have been 4 or so mods covering different things
e.g. mine does most object types
https://www.nexusmods.com/stardewvalley/mods/8891
I would consider just making tbe thing u want a tree or a building
obviously won't work if what you want is say a map decor like those pink trees
just debating adding a roof to this but I might add the glass from the spa instead then cus I don't wanna cover the pretty floor (and putting the tiles on it looks kinda ugly lmao)
I don't mind being asked to add it, though it may not be done as quickly as you'd like, is all. But I can put it in my notes. As with all BETAS requests I will always tell people that I am happy to receive requests so long as a) they dont mind if I turn them down and b) they don't mind waiting on me, because I will never make any promises on any sort of timelines/deadlines
So even if you did bug me it would not matter, I will get to it when I get to it /lh
@urban patrol @barren tapir thanks for the help yesterday i was able to figure out how to do what i wanted. thanks!
Alrighty! Then yeah, I would love it if that can be added, thank you ^w^
I should be fine with waiting in this case cuz it's something I imagine I'll implement after you've updated the mod already and probably as a patch after the update I'm working on cuz I'm assuming I'll be done before you (at least I kinda hope so, I've been working on this for a while now lol)
If you put a roof in it something transparent is a good idea because then you can see whats going on under it
iβm glad!
yeps πββοΈ
no wait
wee
ok am done sending pics here carry on
i hope this makes sense. is there a way to mention the players name using a text bubble above head that's i18n friendly? using {{PlayerName}} with the i18nifier makes the event break
specifically its the {{ImportToken}} that makes it break
Doesn't @ works for these texts?
A token cannot break an event because by the time the game sees it, it has no idea you used a token
So if something IS breaking it's a problem with the token setup itself
ah, Iguess I mean it makes the event not exist I should say
Well if the tokens are broken then the patch is broken and wont be applied
I'm assuming an {{ImportToken}} is the kind that turns into like, |translation=Whatever or something like that
it's probably good to post how that section looks
In order to pass through everything into every i18n token
Which is a very messy and tricky thing to debug if thats the case because it's just hard to parse
Not in textAboveHead
Aw
im confused, can you not replace the importtoken with playername?
i get importtokens all the time with i18nifier i just replace what should be there
I havent tried that π
ill try it now. thank you
yeah the i18nifier just replaces stuff with importtoken; the actual token will work if you put it where it needs to be afterwards
it probably says that somewhere but im just a dingus LOL
im not sure if you can put it in i18n string or if it will have to be outside of the i18n string
You can't put {{PlayerName}} directly into your i18n and expect it to work unless you also pass the value through to it (which I assume is what the i18nifier is trying to do with an Import Token)
so would it have to be "{{i18n:string1}}{{PlayerName}}{{i18n:string2}}"
Well not with an attitude like that you can't. Pfffft
-# Disclaimer: For legal reasons, this is a joke
for example
Or {{ i18n: MyString |PlayerName={{PlayerName}} }}
ahh
OR- wait button beat me to it
However, it's possible to do {{ i18n: MyString {{ImportToken}} }} IF {{ImportToken}} gets turned into |PlayerName={{PlayerName}}
But I personally very much do not recommend this
this way looks much easier tbh
Some people will take that to an extreme and do this:
{{ i18n: MyString {{ImportToken}} }}
and then have ImportToken actually be this:
|PlayerName={{PlayerName}} |OneThing={{ConfigOption}} |somethingElse={{DynamicToken}} [..]
oh jesus
Putting every possible value you might want to use in your i18n into one singular Import Token
so that every i18n gets every single thing imported
WITCHHHHCRAAFT*
I dislike it very strongly
I mean I do enjoy the audacity
Absolute pain in the ass to debug on your own if something breaks somewhere in your wild chain of tokens and nested tokens and i18n. And good luck asking someone else in here for help when something breaks if they also have to parse out your token stuff.
makes sense
This I imagine is what the ImportToken stuff in the i18nifier is going for
(But I've never personally used it, so I cann't say with 100% certainty)
Ive hard headed most of my issues myself just because of stubbornness but this was driving me nuts, so thank you. Im definitely in the right direction now
I've been too terrified to use import token tbh
@severe cairn You leveled up to Shepherd. Wow, you've been talking a lot! Have a prettier, slightly more brag worthy, shade of blue.
help
LOL
(also, to clarify: this works if you DO use {{PlayerName}} directly in your i18n file)
heyyyy congrats!
You can also just put {{Whatever}} in your i18n file directly, then you'd instead do |Whatever={{PlayerName}}
and so on
My level up is through (my own) fear, accurate 
altho I genuinely haven't touched import token before it was scawry and I didn't understand it, dunno if there's a tutorial anywhere
wait I'm curious how long have you been in the server nassi?
since april fools
the yap is strong
damn you yap FAST
and I'm a wall yapper too, imagine my power if i was a spam message yapper
(you're limited to 1 xp per minute, so probably not much different)
congrats 
ohhh interesting! so you get 1xp for every minute you send a message or react to something?
or just send message?
Reacts dont do anything at all
got ittt okay
You get exp for sending a message, but you can only get 1 per minute.
Sending more messages within the same minute does nothing for your exp
ohhh interesting
computa, set a 1 minute cooldown for me to maximize xp
Also if someone abuses this we can and will remove exp from someone
make sense
DONT READ MY PREVIOUS MESSAGE
wait does that happen often?
Too late, you will be reset to 0 π

Not at liberty to say. Anyway though, making mods
Are you turning him into bruschetta
no im giving him one line of dialogue that makes him slightly disappointed in it when gifted bruschetta bc its less good pizza
what if it was random dialogue, all disappointed but there's multiple variations
/silly
there will always be ways to scope creep even the measliest of mods
True facts
<---guilty
my mod started as a dialog edit heheh
I could've been meaner and suggested variations depending on the season, birthday and if kent is there 
Can't wait to resume work on my framework mod!
Do it! Be mean! You deserve it!
Hell, I'll add on to it. Add variation based on the hour!
ALL THE DIALOGUE
Well Wem the scope creep is neverending π
The mod plan is temporary,
The scope creep is eternal

i thought by removing my config json, it would prevent user configs from being reset
is that not the case?
ive seen people saying they get reset
It should, but maybe it doesn't if you change the config part of the mod?
I am not sure about that, don't quote me there
Also maybe a user deleted the mod folder, including the config, when they updated
hmm
well that is what usually happens no?
you delete the whole folder and replace
If you use Stardrop, I believe it should preserve the config at least
But if you do it manually, yes, but that is where the config is, you can't preserve a config you just deleted
you preserve the config by not deleting the config file, just everything else
The only thing YOU can do about it is to not include a config file.
Stardrop does work to preserve configs, but it's not perfect
ah BUTTON SPEAKS they will know more
If you change the name of a config option, like it used to be called ConfigA but you change it to ConfigOne, but they are the same actual option (like, they control the same thing), people will lose their configs, yeah
If you're just adding new ones though, old configs will not be lost as long as the file itself is not overwritten
ah okay i'll add a note of that somewhere to help players
(for a helpful analogy: this is akin to changing an item's ID. previous items already in the world become error items bc different id = different item completely)
How do you get the custom fields from an object? I have the following:
private static void getPriceAfterMultiplier_postfix(StardewValley.Object __instance, long specificPlayerID, ref float __result)
{
var farmers = Game1.getAllFarmers();
//ItemRegistry.Create(__instance.ItemId)
}
And no matter what I try to do, I can't seem to find a way to retrieve a CustomField attribute from __instance
CustomFields isnt stored on the object, its stored in the ObjectData that controls how those objects work
Look in Game1.objectData to get the ObjectData for that item ID
(or call DataLoader.Objects() yourself, or w/e its called in the DataLoader class
shouldn't you add the context tag itself first?
They don't in the base JSON field, but they have a _contextTags field and they show up in Look Up Anything
If they don't in their data, then you cant add them via json
They are getting it in 1.6.16
Whelp, looks like Millable Bone Swords is gonna wait to update until 1.6.16!
any reason you need a special tag or is it just a convenience thing
Back to the framwork mod!
Just a convenience thing (it's supposed to be "bone_item" so that it can be used in things other than just the bone mill)
I was just using "Test" as a sanity check
Hey how would I make tiles on a map that go transparent when walked under? Like having forest leaves above the player that go translucent when under them like regular trees do
a most timely question πββοΈ
if i wanted to check if the player has the main 4 tools upgraded to max, would i have to check if they're in the player inventory or is there a way to check chests, too?
using C#
or am i missing a property of player somewhere ;-;
You can use Utility.ForEachItem() to look everywhere in every place
Don't do it every tick or something though
nah this is just on day start
which should be fine, right?
also the player has a .trashCanLevel but not the others, which is funny
Yeah that's fine
Though do take care to take multiplayer into consideration if you care about individual progress vs shared progress
oof, the idea of making this work for multiplayer makes my head spin lol
(Along those same lines, a farmhand may not have an accurate check of things here in some edge cases)
fwiw, I don't think this actually enables that? the setting it adds is an unconditional tile* property that doesn't check player position
(except in their other mod from the screenshot, which does it based on player controls)
though I did entirely mistake one mod for the other when it was mentioned a few hours ago 
(Also players can and will share tools)
That would be less important to me than the inaccurate check tbh
Ahhh tysm, I appreciate it, looks perfect thank you
UGHHH IT FEELS LIKE NOTHING IS WORKING FOR THE FRAMEWORK MOD
Yes SMAPI, I'm aware the game keeps crashing!
@uncut viper Is this how you retrieve custom fields?
Game1.objectData.TryGetValue(__instance.ItemId, out ObjectData? data);
if (data == null)
{
return;
}
// ...
foreach (var entry in data.CustomFields)
{
// Do Stuff
}
if you're planning to look at every custom field rather than a specific entry, then yes, that's fine
(though TryGet methods return a bool you can check instead of null-checking)
if (!Game1.objectData.TryGetValue(__instance.ItemId, out ObjectData? data))
return;
foreach (var entry in data.CustomFields)
{
// Do Stuff
}```
would it be possible to randomize npc outfits every day or every week with just cp
i dont intend to do that bc ew art but im wondering if its possible
sounds fairly simple with appearance entries and/or normal token text swapping
okay i thought so
I know. I'm just gradually trying to rule out errors (the issue is that I can't reliably recreate the errors, nor are the error messages always the same)
(Customfields is a dictionary, do u need to iterate it.)
Are u doing this in an asset editor
Yes, I need to iterate through it. IDK what an asset editor is, but I'm using Visual Studio
Though now that I say that, I could probably circumvent iterating through all fields for the basic professions at the very least
asset editor as in SMAPI's handlers for editing game assets
https://www.stardewvalleywiki.com/Modding:Modder_Guide/APIs/Content
i.e. if you're writing data in your current code, don't, use those instead
if you're just reading you can do it whenever
The page isn't loading properly on my phone, and I'm away from PC atm. But right now I'm just reading data.
Or at least, attempting to
(I ask because accessing data in an asset editor is Fun TM)
events in helper.Events.Content and such, for reference, but just reading CustomFields should be fine in a patch
also CustomFields would start off null iirc
I think I'm probably gonna call it a night on this for now, and come back to it tomorrow. I'm almost certain I'm doing something obviously wrong π .
-# I'm trying to get better at not coding past midnight
right, I guess it'd be null/uninitialized for that type, it seems to vary
(probably null with the json loading etc)
Probably
if (!Game1.objectData.TryGetValue(__instance.ItemId, out ObjectData? data) || data.CustomFields == null)
return;
foreach (var entry in data.CustomFields)
{
// Do Stuff
}```
I swear to God if I wake up tomorrow and check the code only to see that I forgot an exclamation mark, I'm gonna be pissed π
Exclamation....mark?
! (null-forgiving) operator - C# reference | Microsoft Learn https://share.google/cMcyIervvyaeBVzVH
Or the not operator
Oh my
hmmmmmm people path there
right and down it is i must expand
oh god i dont have a mouse
I have had two users now with an issue where during Pierre's arrest event, they can't get past the first quickquestion. I haven't been able to reproduce the problem. One of them shared the SMAPI log and I guess they are on android which may be related. Does anyone know of an issue with quickquestions on android (and if there's a workaround)? It is not a fork issue. their smapi log (showing an IndexOutOfRangeException): https://smapi.io/log/c973296673094d9389722b0a13ba2976
Log Info: SMAPI v4.3.2.5 - 1775226918 with SDV 1.6.15.2 build 26086 on Android Unix 35.0.0.0, with 39 C# mods and 72 content packs.
Do you have the json for that event?
https://smapi.io/json/none/81d0ac9e21424fe488a7085cb4ea8d69 here's a readable version with / replaced with line breaks. The error comes up at the first quickquestion
Do you need spaces around your (break) command things? (Genuine question, I don't know bc I don't do events, but I feel like I remember something with spaces or something and in the function thats crashing in that error log it does so some string splitting based on spaces at some points)
I'm not an expert so I couldn't say for sure. The example from the wiki does not have spaces though.
and it seems to work on PC.
I sometimes refer to VisitMountVapius when I wonder if I'm doing something correctly and they also have (break) with no spaces around it
I'm unfortunately not well versed enough in event specifics to be much help there but I can at least say it doesn't like something about your quick question and the only place I can see an index out of bounds error happening is after it tries to split things up according to breaks and/or double slashes
Or maybe one of them is missing the "question key"? I'm not sure that part corresponds to, maybe the answers?
I have seen the error when I don't have the correct number of responses against the number of options, but in this case it appears to match up. It looks like this if I put in line breaks to make it more readable quickQuestion {{i18n:Events.239790020.qqq|PlayerName={{PlayerName}}|FarmName={{FarmName}}}}# {{i18n:Events.239790020.qq1}}# {{i18n:Events.239790020.qq2|FarmName={{FarmName}}}} (break)speak Pierre \"{{i18n:Events.239790020.qq1r}}\" (break)speak Pierre \"{{i18n:Events.239790020.qq2r}}\"
I also checked the translation keys and they are fairly normal nothing weird with quotes or slashes
anyway thank you for taking a look
(no, you don't and i think even shouldn't have spaces)
maybe there's something in your i18n?
like I said pretty generic "Events.239790020.qqq":"What do you think, {{PlayerName}}? This mead is of the finest quality, but I'm told these aren't from {{FarmName}} farm.", "Events.239790020.qq1":"I'm not sure...", "Events.239790020.qq2":"Those are definitely from {{FarmName}} farm.", "Events.239790020.qq1r":"I assure you, these are from my private reserve!$s", "Events.239790020.qq2r":"Well I'd like to see you prove it!$3",
what about qqq
fixed / edited thanks
OK thanks for checking I appreciate the extra eyes 
i've never encountered any issues with QQ on android but who knows
With the previous user I gave them instructions for how to skip the event and they were able to get by I guess I'll do the same for this one. Weird that it happened more than once and nothing seems to be amiss that I can see.
Because USUALLY when people point out a problem it's like yeah I'm doing something weird there
what happens if you replace the pass through tokens with the text replacers like @ and %farm
just to narrow things down?
I wish I could test but I'm on windows I don't have an android test setup
I guess I should ask if they're using another translation maybe there is an issue in a translation i18n
What's their farmer name and farm name?
Might have a \ or / in their player/farm name
I'll ask thanks
So, I was told that you can't use when in appearance modding for having an outfit only load when a config option is chosen. Would this be the correct rewriting of it?
"Condition": ""Penny Beach Skin": "Beach, Both", LOCATION_NAME TARGET BathHouse_Pool Beach"
that very much looks like invalid JSON
Condition takes only a string
if you want to use configs in GSQs pass it as a token inside the string
the token has to evaluate to TRUE or FALSE for it to be checked as a GSQ
something like this:
"Condition": "{{Penny Beach Skin |contains=Beach,Both}}, LOCATION_NAME Target BathHouse_Pool Beach"
CP will turn that first token into either true or false before giving it to the game, which will use it to determine whether to check the remaining condition
thank you. Thus if I mark it as island attire, assuming config is set, outfit will appear at ginger island, bathhouse, and beach correct?
I think it works fine to have when conditions in the appearance system, as long as you create the entry before you edit it using 'Fields'. I made this edit recently and not seeing any problems with it: { "Action": "EditData", "Target": "Data/Characters", "Fields": { "{{Shannon}}": { "Appearance": [ { "Id": "Casual", "Portrait": "Portraits/{{Shannon}}_Casual", "Sprite": "Characters/{{Shannon}}_Casual", "Indoors":true, "Outdoors":true, "Condition":"LOCATION_NAME Target FarmHouse, !IS_EVENT", "Precedence":5, }, ], } }, "When": { "cfgShannonPJs": true } },
I think doing it this way will delete all other entries in Appearance
o really? glad I said something before I pushed this then yikes
Or just make sure this happens first before you add any other appearances (using TargetField)
The When part would work tho
(as long as you don't do the common mistake of putting the When at the same level as the Appearance, instead of on the patch itself, ofc)
like this? { "Action": "EditData", "Target": "Data/Characters", "TargetField": [ "{{Shannon}}", "Appearance" ], "Entries": { "Id": "Casual", "Portrait": "Portraits/{{Shannon}}_Casual", "Sprite": "Characters/{{Shannon}}_Casual", "Indoors": true, "Outdoors": true, "Condition": "LOCATION_NAME Target FarmHouse, !IS_EVENT", "Precedence": 5, }, "When": { "cfgShannonPJs": true } },
That looks correct to me but know that I'm running at only like 80% awake levels
So at most I can be 80% confident in my ability to remember how to write a CP patch
OK I'll test it out thank you
you need to wrap all the fields in another block
currently the code is dumping all those loose fields into Appearance directly
-# was afk brushing me teeth
Thank you Selph for making up for the last 20%
thank you I was getting errors and wondering what was wrong that got me there
on the wrapping block, I had to give it a key name to make it valid JSON, that should be fine to do right?
i.e. "Entries": { "Shannon_casual":{ "Id": "Casual", "Portrait": "Portraits/{{Shannon}}_Casual",
ok
doesn't really matter in this case but it helps keeping things consistent
π€ if i want mod A to have an event that works without seeing mod B's events, but mod B's events require mod A's events to be seen, is there a way to make this work smoothly that doesn't require players to make a fresh playthrough
since, if the player installs mod B, they won't be able to trigger mod A's events anymore if they've already seen them (unless they debug)
my current thought was for mod B to mark those events as unseen so that they can be triggered again
Why would mod A's events have to be seen again?
because mod B's events need them to be seen in a specific order
So if I'm understanding right you want
if mod A installed only on its own -> events play as usual
if mod A and mod B both installed -> specific sequence involving both their events
if mod B installed after events already seen for mod A -> repeat mod A's events to ensure they follow the specific sequence alongside mod B
Assuming I got it right, yeah MarkEventUnseen should work. That having been said, if the A+B sequence relies on some of A's events happening after certain B events, then I'd think some of the events' preconditions would be different (so an A event would have a hasseenevent B event precond if both are installed), which would mean altering that too, in which case switchEvent might be an easier way to do it if they're part of a chain
Or dynamic token the event conds
Or even just have separate versions of the same events
yeah, you got that part right
for the preconditions i plan on having mod B activate CTs that will expire quickly, so as to not impede the progression of events, but since mod A on its own will never have those CTs active, i wouldn't need to change the conditions
So mod A's events will have 'CT not active' preconds baked in, with the idea being if there's no mod B then the CT is inactive by default?
yep
Hmm what happens if the player activates mod A's events before viewing mod B's when both are installed?
hmm, let me think
i want to avoid making separate versions of events just to change a few preconditions when the events will be the same
hm, maybe have mod B send a mail flag that needs to be checked before being able to see the next event in the sequence. but if mod B isn't installed, then seeing mod A's events will automatically set those flags? π€
im sure something like that can be done with trigger actions
but alternatively, i could take your suggestion and use dynamic tokens, where one of the preconditions will either be "has seen x event" or "has not seen x event" based on if mod B is installed or not. If it's installed, the player will have needed to see mod B's event before being able to see mod A's. but if not, since there is no mod B, the event will play as normal
Maybe you could have a mailflag in mod A's preconds, have a trigger action in mod A that sends that mailflag upon mod installation, and then a trigger action in mod B that removes that mail upon mod installation (with the trigger action set up so it removes the mail after mod A adds the mail), and then mod B's events add that mail (/those mails if multiple) to trigger mod A's events
(The dynamic token works too, but it'll get annoying if you have to do a whole bunch of them for loads of events)
so would this mean mod A's events will only trigger while the mailflag is active, while mod B's will only do so if it's inactive? im a little (more than a little) confused
So:
Mod A
Trigger action addmail mail1
Event eventA1 precond hasmail mail1
Mod B
Trigger action removemail mail1
Event eventB1, addmail mail1 in event
Trigger action markeventunseen eventA1 when eventB1 seen
So eventA1 plays again
hm, the problem here is i'd need mod A's events to play before mod B's
so A -> B -> A
Then you'd just do that for any A events that have to happen after B events
addmail mail1
eventA1 plays not requiring mail1
eventA2 plays requiring mail1
player installs mod B
removemail mail1
eventB1 plays adding mail1 to player
eventA2 marked unseen
eventA2 replays
whoo... it's going over my head
that's ok i'm probably explaining it badly
i'll probably come back to this later (aka, when i actually have an event to write)
right now i just wanted to gauge if i could even pull off my idea
i think it's doable, just comes down to how much effort you want to put into it
if it comes to it i dont mind using a million dynamic tokens
that works too
i'm biased against using too many bc they clog up my content.jsons but they would def work here
oh see, my content.json is pretty empty since i make everything into includes
so do i, that's why i hate them there
content.json, more like dynamictokens.json
one giant list of dyn tokens just to get to the 2-3 includes at the very bottom
my kingdom for the ability to define them in a separate json
i started doing a main.json that i point to from content.json and just put all the includes there, then the other two includes are usually compat.json/crossover.json ones
I just reorganized Jackβs content json to have a bunch of includes π
It was getting very crowded
letter blocks
sooo here's like, a general question about the shipping collection: how exactly is the order coded?
would it be possible to make it so the order is Alphabetically or by Category/Type?
it's just ordered by it's order in the Data/Objects
then I assume it's just whatever mods get loaded first and then their item list, etc
hmm, editing that would be a problem then,,, h
There's a mod that lets players change it I think, I don't remember what it's called
really? i guess i can try to look again, didn't find one when i searched
There was this one, though it only did mod order which I think is how the game does it now. It's not updated for 1.6 but the perms look open if you want to give it a shot
I tried looking back through my downloads to find it but I have downloaded so many mods. I'm not on the computer I downloaded it on either so I can't check my mod folders.
I have definitely used a newer one, it let me choose between alphabetical and some other ways to sort it
Yes, thank you! That's the one that I have
You are finding all sorts of things for me tonight xD
i feel like i'm good at finding random stuff
I'm quite good at remembering random mentions of things from ages ago and then finding those, but not good at finding anything else
@gray bear since you don't mind pings i believe this mod does what you wanted
thanks guys!
Ughh, the day has barely begun and I already wish it was over.
Even if that means going back to pulling my hair out due to trying to figure out the custom fields issue I was having last night.
I've been working on the random distribution weights of a blind box item. This is from a sample size of 200, with neutral daily luck and no luck buffs.
I plan on adding quests and other methods to obtain the rare plushes, and they're meant to be a real treat when you roll them (especially the shiny legend)
does this distribution seem fair?
(also, should i remove daily luck from the 'common' bucket?)
I was hoping that mape, just maybe... miraculously, using the non-alpha version of Unlockable Bundles would still work for my mod. And I guess on sheer technicality it doesn't create any errors but no it does not "work" so I definitely will need the mod to be publicly updated before I can release mine π
Ah, I see a fellow Pokemon Mod creator
pokemon for life!! :D

I really need to add more dishes that give the debuffs I've created because the foods that remove said debuffs need more uses π
Honestly I might need to make another mod that adds like explorable dungeons with enemies that inflict these debuffs, if that's even possible. I've heard less-than-possible things about making enemies inflict Debuffs 
ohh that could be so crazy though. I could add like.. a "Held Item" slot which is basically just another trinket slot that uses a different set of items 
-# I say as if that wouldn't require C# or some really complicated coding I 100% can not do 
I'm also acting like that wouldn't be even more months of work than what I've already been working on 
Hello Stardew Modders! I've got a weird issue that I'm hoping someone can help me with: I have a bug with my Power Nap mod that allows singleplayers to regain energy when they're in bed. There can't be a menu open and the game can't be paused in order for energy to be regained. This bug involves a weird "pause mode" of the game that I will do my best to explain.
There's a setting called 'Pause When Game Window Is Inactive'. This setting being enabled and alt+tab-ing out of the game allows the player to regain energy when they're in bed, even though the game enters a sort of "inactive window paused state". This is a very odd pause state that the game doesn't really let me reference within the code, from what I can find.
There are plenty of 'isPaused' variables in the code, but they all point to paused states like the following:
1] Typing "paused" into the chat.
2] Having an active menu open [clock flashes].
This alt+tab-ing paused state will pause the game when the game is not focused, but I can't check if the game is actually paused because the time isn't flashing like when a player is in a menu and this version of being "paused" can't be referenced, from what I can see within the code.
So! My question: Is there a 'isFocused' reference I can call/check to see if a player doesn't have the game focused? I looked through 'Game1' a lot and couldn't find anything that actually checked for this state.
Here's my relevant code to check for the things I've mentioned already:
if ((Game1.player.isInBed.Value == true) && (Game1.IsMultiplayer == false) && (Game1.HostPaused == false) && (Game1.isTimePaused == false) && (Game1.paused == false) && (Game1.activeClickableMenu == null))
βAny help would be really appreciated!
IsActiveNoOverlay maybe
That's in Game1, you said you looked through that already so perhaps you already tested this one too, but that's the one that jumps out at me since you said the others you tried didn't work for you.
Thanks for the reply, I'm trying to input it and it's saying:
Line 1219 in Game1.cs specifically.
I tried this and it wasn't working for me. Maybe I just wasn't referencing it correctly.
Thank you both. I'll run this and see if it works.
I have a GSQ that works for tabbing out and such, as far as I can tell on Windows etc, but mileage may vary
https://github.com/Esca-MMC/EscasModdingPlugins/blob/master/EscasModdingPlugins/Features/Modding Utilities/Game State Queries/GSQ_IsTimePassing.cs#L31-L43
(idk if the release build part does anything etc, I just mimicked the whole thing when issues kept happening)
Oh this is awesome! Thanks for sending the code, I'll check through it and see if I'm missing something in mine.
This seems to have done it!
Still testing, but it is "breaking correctly"!
Thanks everyone!
i have this which i use from time to time
public static bool IsActive() {
return Game1.game1.IsActive || ((!Game1.options?.pauseWhenOutOfFocus) ?? false);
}```
I'll add it to my notes for when I need to overhaul this mod since my code is terribly written :b
Also, related: Are .pdb files not generated when building mods now? When I build my mod from Visual Studio, it only builds the Manifest and .dll files.
modbuildconfig changed its default settings at some point to stop generating separate pdbs, yes
Alright, thanks for confirming!
there's a way to turn it back on, i think, but i couldn't tell you what it is since i can't imagine it being useful to do so /lh
As long as it's not going to break the mod for people, then I don't need it.
yeah, it's no longer needed for error message accuracy iirc
my understanding is the same information is simply baked into the dll instead of living in a sidecar
i suppose you could get some size savings by reverting and just not shipping the pdb but i've never seen a mod dll big enough for that to really matter
How could I give a dish a random chance to apply a debuff when eaten?
Would it be some weird buff triggering an action on apply that then triggers an action with a RANDOM GSQ that applies the debuff if it hits?
Or I guess a Random ContentPatcher When condition?
CP doesn't update often enough for that to be viable, so either the buff -> action -> other buff, or spacechase0.SpaceCore_OnItemEaten -> action -> buff
Alrighty, I'll look into it!
i recommend the former if it works. i think it's best to use vanilla systems when they suffice
i don't remember if you have a C# component, but if you do you could potentially also put the random chance in your buff code
I have been terrified of touching C# 
vanilla's probably for the best, it just involves creating one more buff entry really
but ig you'd need a TriggerActions entry for the SC one anyway
Hm... I do want it to be like.. it either applies the Buff OR the Debuff, So I might need another buff entry as intermediary
I've got an idea, I'll come back once I've got something to test
I was picturing a preliminary buff in either case, but yeah
//on a do-nothing preliminary buff always applied by the food:
"ActionsOnApply": [
"IF random_query_here ## AddBuff GoodBuff ## AddBuff BadBuff"
]```
or multiple entries with separate/exclusive rng chances, if you don't always want one to happen
ooh can I just use that? that's basically my idea I just needed to find the terms to implement it lol
or wait, I still need to fill in the random query?
yeah, idk much about setting those up offhand
https://stardewvalleywiki.com/Modding:Game_state_queries#Randomization
but the "if" action lets you do a gsq in-line with it like
IF query ## query is true, so do this action ## query is false, so do this
Ohhh okay awesome!
So theoretically it's just IF RANDOM 0.9 ## Query Success = Buff ## Query Fail = Debuff?
yep, pretty much
Alrighty, thank you!
(okay, done struggling to get nexus to let me post a reply
)
the more complex case would be if you want a chance of neither buff applying, which would probably need the synced random GSQ stuff
Hey ya'll, is it okay to ask for someone to showcase my mod? Just finished a major update release.
Ok I need to figure out how to make VSCode not flag trailing commas as errors. I followed the thing someone sent like a week ago at this point but it didn't work
(Got this figured out)
hey, I'm not gonna get put on some list if I put the toddlers in diapers, will I?
work in progress.
yep, assuming it's within the rules about genAI content and such, post your link+desc here and we'll have the bot showcase it
https://www.nexusmods.com/stardewvalley/mods/31643
Allows you to alter the drop rates of various things in the game, configurable with GMCM for complete control of what drop rates you want increased and by how much.
You're already on a list, it's fine
Also, the entities that have access to it are (or at least are supposed to) be focusing on potential terrorist activities (at least assuming your an American).
You are far more likely to be put on some advertiser list telling people to show you ads of baby products (unless you're hiding your IP)
Hi all, can I ask something. I started making mods, I've explored some basic functions and the wiki, and now I want make mod for changing NPC AI, like behavior, pathfinding, relationship and other. But I think I need more than just basic functions, I seen some harmony realisation, and may be I will use it but I still need know about ai behavior or path and other, somebody know where I can read about it, or just make "mind map" by researching code (sorry for my English)
!unpack if you havent already :3
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!
Hhh, how quick answered, Iβm very grateful.
For the pathfinding stuff, Stardew's NPCs work off of a schedule, should be in the NPC.cs file when you decompile the game, some noteable things to look into is PathFindController.cs too, though I haven't personally touched any of that stuff so this is a surface level look from what I could see at a glance.
Also your English is perfectly fine 
And thanks to you too for the extra details
Man I really do need to find more foods to have give these debuffs, they're such a cool idea! Though yeah maybe I should make them not guaranteed to happen
Alright, I hope something like this will work for having a chance of being debuffed when it's on the item
oh my god I have some crazy ideas for a volcano dungeon-like expansion mod but I unfortunately know that I don't have the skills to make something like that
Have u tried spacecore dungeons feature
No, and I especially wont yet because this is not something I'm considering for my current mod. That scope creep would be genuinely colossal to include in this mod
But for an expansion mod after I've updated this one? I'll look into it then
Seems neat, could you have random chance for 1 of X amount of buffs, some being debuffs, some being good buffs? π€ Could be an interesting mechanic.
Or to take it further, have the players luck rating of the day influence the rng slightly.
Uhhh I think that could be possible, I just did something like it though it only supports 2 variables, but that sort of thing Isn't something I need for my mod
Fair ^^
Well now that I have these determinator debuffs now I get to try and use them!
I probably wont end up using all 15 versions 
Is your mod posted somewhere? Sounds interesting
Yes, but a lot of what I've been working on isn't implemented yet. This is like.. a COLOSSAL update in the works (should be nearing completion though)
(comparatively colossal)
Ah, heavy dev time. Sounds like you're in the zone, looking forward to seeing what you come out with 
I've been working on this update for like... 6 weeks now I think?
So yea I hope people like it lol
But yea I've added a whole system for CURING these debuffs, it would be a massive shame for them to be underutilized
Can i18n be used in the ConfigSchema?
I don't think I need this when condition anymore, SpaceCore is 100% not optional at this point 
I'm guessing this has to use the config. structure as opposed to the {{i18n:}} structure?
ConfigSchemas define the raw internal values yes
Alrighty!
Time to watch everything explode because I'm trying multiple things I'm not familiar with all at once :)
Ok i definitely don't know what I'm doing π«
"Format": "2.9.1",
"ConfigSchema": {
"config.ConfigOldSeeds.name": {
"AllowValues": "true, false",
"Default": "false",
"Description": "config.ConfigOldSeeds.description"
},
"config.VanillaCookingChanges.name": {
"AllowValues": "true, false",
"Default": "true",
"Description": "config.VanillaCookingChanges.description"
}
},```
the config. keys goes in your i18n
"config.ConfigOldSeeds.name": "Enable Old Seed Sprites",
"config.ConfigOldSeeds.description": "Replaces the seed sprites with those from the initial versions of the mod, and alters the names to make them a little more accurate.",
"config.VanillaCookingChanges.name": "Vanilla Edible Item Changes",
"config.VanillaCookingChanges.description": "Applies changes to vanilla game edible items including crops, cooked dishes, etc. That gives some of them chances to apply debuffs to be in line with recipes from my own mod.",
your config schema would just have whatever you had earlier
Oh okay
So I just keep 'em like this? { "Format": "2.9.1", "ConfigSchema": { "Enable Old Seed Sprites": { "AllowValues": "true, false", "Default": "false", "Description": "Replaces the seed sprites with those from the initial versions of the mod, and alters the names to make them a little more accurate." }, "Vanilla Edible Item Changes": { "AllowValues": "true, false", "Default": "true", "Description": "Applies changes to vanilla game edible items including crops, cooked dishes, etc. That gives some of them chances to apply debuffs to be in line with recipes from my own mod." } },
yes, though your i18n key would need to match what's in here
so config.Enable Old Seed Sprites.name
Alrighty! Thank you!
probably, but personally I think spaces are the devil
looking for thoughts on how skill prestige should manage its different mod files that include the compatbility with other skill mods
I think it's best if they're separated mods/binaries (because that's how the original author planned it, compatibility with a skill mod is called an adapter and anyone can upload a skill prestige adapter)
but how should they be shown on Nexus? one big zip folder with all adapters? main file with the core mod and the adapter that does simple compatbility with a couple mods, then optional files for the more complex adapters? main file is core mod with NO adapters, each adapter is its own separate optional file?
Right I think I need to append not fully edit
ohhh wait or it's also because I'm editing the buffs field 
(not familiar with the mod) any reason they can't all be in one binary
.q add "spaces are the devil" - @brittle pasture
New quote added by atravita as #8085 (https://discordapp.com/channels/137344473976799233/156109690059751424/1504199609805701192)
I'd probably put the vanilla skills as the main file, and all the other modded skill compat files as optional files
they could be all in the same binary... but might not get accepted by the original author if they come back
I think their idea was to push the responsibility on other mod authors (especially the ones making the skill mods) but that obviously never happened
also technically I'm not the one adopting this mod, but I'm hosting the fork... so it be better if the other adapters are separate, I guess?
I think I'm gonna try a different approach for custom fields instead of iterating through all of them. IDK, I'm just thinking out loud between meetings π
I'm leaning towards this the most tbh
Bc the fields could just as easily point to lists instead
(also pretty much 100% of skill mods post 1.6 uses SpaceCore so unless the SC API doesn't expose something that's needed I don't see why each mod has to add their own compat)
ye that's the main reason for the split lol
there's an adapter that does all the simple spacecore skills that don't need extra API exposure
but if I include that one with the core mod... then users might not read there are extra optional files and just assume the mod isn't supported?
oh great... okay so I fixed the thing before and now I've got Coffee and TSE that has a chance of inflicting burn. HOWEVER, turns out that my code to cure burn doesn't work...
"Id": "{{ModId}}_CureBurnDebuff",
"Trigger": "spacechase0.SpaceCore_OnItemEaten",
"Condition": "ITEM_CONTEXT_TAG Target cures_burn",
"MarkActionApplied": false,
"Actions": [
"RemoveBuff {{ModId}}_BurnedDebuff",
"RemoveBuff {{ModId}}_BadDreamsDebuff",
"RemoveBuff 12",
]
},```
you want to check the Input item
That's on them
yeah it's kinda undocumented
also another valid argument π₯Ή
Aw man I thought the condition for Item Context Tag was what I needed
I mean just switch Target to Input
It's also up to the user to provide constructive criticism, and you hold no obligations to capitulate to their wants. For example, I recently got a rather vague request on one of my mods stating that a thing was overpowered. I disagree with that sentiment, and there also isn't really a way to change it that doesn't invalidate its intention in a way that I wouldn't be opposed to
That's not to say you should ignore comments. But you also don't owe them anything
Had that comment been able to explain why they thought it was OP and/or how to address it, I'd be far more open to a discussion on the topic
IDK, maybe I'm the weird one for occasionally treating mod posts like an academic discussion π
No thats perfectly valid
I think I might as well ask here, what are some edible items from vanilla Stardew y'all think could apply Burn, Poison, Paralysis, Frozen, or Sleep?
I'll add Poison for Pufferfish and Red Mushroom as guarantees
frozen might be a chance from ice cream and stuff if its winter lmao
i havent played stardew in ages but burn makes me think ghost pepper
or just generally
brainfreeze...
only if its a small chance though lol, cant think of anything else unless you maybe like. ate a raw ice pip
with how many wild herbs exist from what i remember i can see paralysis from eating wild plants be a thing for sure
same goes for sleep with lethargy inducement
I've got presets for 10% and 33% chance
burn could probably work for a raw lava eel too 
HA!
Very good ideas! I'll add them!
cant think of anything else that would be sleep inducing outside the realm of magic, wild flora, and chemicals
all raw fish could honestly give poison ngl, but that might be too annoying 
true, that
maybe a ghostfish could be sleep to complete the trifecta
i suppose poison would be comparable to indegestion in this game
but then again its been ages since ive played so feel free to correct me
is Rock Fish inedible?
or stonefish
no its edible i believe, i just cant think of anything directly fitting π€
what is ur id

a lot more than 3 includes.