#making-mods-general
1 messages · Page 173 of 1
Thank you for your guidance 🙏 I'll get to reading it!
I am at 99% percent done updating Light Mod to 1.6. This is one of the toughest mods you could cut your teeth on, some of their other mods might be a better starting place.
💦 I was thinking of starting with a content patcher kind of modding as my first starting step, perhaps a portrait kind of mod? Or maybe retexturing kind of mod but I saw the Light Mod and it broke and thought well... maybe? Definitely not a beginner project for me then, but I could try sth while learning about C#
Thank you for your advice though, seriously. I was really about to roll up my sleeves and try it but that'd have been an absolute exercise in frustration with zero coding knowledge adhsjkshadjk
Content patcher content packs are very doable as a first mod
Making new portraits for an NPC is fairly straightforward
(Making new portraits for every NPC is hard but that’s mainly because drawing that much art is hard, not because the CP side is hard)
in the meantime, my mod Light Radius can change the radius of lights (just less configurable than light mod) so that might help you out until Light Mod gets fixed!
Tbh it isn't impossible
To make an unofficial update as your ibtro to a language
But it is not a trivial thing to do
I think we have a portrait or image replacer tutorial on the modding wiki, but also the NPC tutorial explains Appearance (thanks to Airyn).
Could someone with permission to do so please post my mod in the showcase? I have just released the first major content update which adds additional events and configuration options. There is now the option to send Lewis to jail in addition to Pierre. https://www.nexusmods.com/stardewvalley/mods/23979
Hello again with another dumbass question but I can't seem to find an answer, should I use harmony 2 or harmonyX ?
You don't get to choose, Harmony is a shared dependency that's added by the mod manifest builder when you set <EnableHarmony>true</EnableHarmony>.
(And for the record it's not HarmonyX)
It's also a bit out of date. Some helper methods and such aren't available. Not a huge issue, but it is noticable
Hey there, sorry for asking only now but do you have any more information regarding the topic of spouse non-scheduled logic?
like where do I start looking
Okay, I'm at the dentist and then headed to work
Farmhouse.updateEvenWhenFarmerIsntHere is the method name I remember
You should also be able to subclass PathFindController iirc
Do note that PathFindController has a lot of odd logic around it
do you remember which file is it in?
So I made an event for a custom map but it isn't triggering. I looked for when this happened to others and I saw to export the patch file. I did that, and it seems something is going wrong.
So I have it load assets/blank.json into "Data/Events/Custom_CrazyEds" (blank.json having {} in it only). I have EditData, "Data/Events/Custom_CrazyEds" as you'd expect. But when I do the patch export Data/Events/Custom_CrazyEds, the file shows... the grandpa events? The first is year 3, and the second is about judging too harsh last time.
Que?
IlSpy search should be able to find the class names I just gave you
Normal. Those two events are on every map
oh aight Im new to this tool so I didn't know, thanks a ton
holy damn the house AI literally is just like 3 cases of possible movements
i don't think this is true? i don't see them on my maps, or on vanilla maps
So when I do EditData for "Data/Events/Custom_CrazyEds", it isn't adding the entry I told it to ("holaitsed.ParchmentsDone"). It did do changes of "Data/Events/farm" fine though. Any idea what that might be happening?
Hardcoded into gamelocation.trygetlocationevents
I had to yeet them lol
they don't appear in my patch exports
(For event tester.)
You would have to have walked to the map first iirc
Tryloadlocationevents is what I suspect is adding them
So if the data was just called via patch export it shouldn't be there
cursed. anyway
Sleeping in a tent does not let you escape grandpa
double-check that you have spelled the asset exactly the same for both the load and the edit, and that it matches your location exactly (and this is as good a time as any to recommend switching to unique string ids instead of the deprecated CustomLocations format for your locations).
an EditData on an unloaded asset will fail, perhaps even silently
I worried that naming may be the situation, so I copied and pasted the string to ensure they matched exactly.
This is how I am adding the map, under Changes:
"Action": "Load",
"Target": "Maps/Custom_CrazyEds",
"FromFile": "assets/Maps/CrazyEd.tmx"
},
{
"Action": "EditData",
"Target": "Data/Locations",
"Entries": {
"Custom_CrazyEds": {
"DisplayName": "Crazy Shop",
"DefaultArrivalTile": {
"X": 13,
"Y": 13,
},
"CreateOnLoad": {
"MapPath": "Maps/Custom_CrazyEds"
},
},
},
},
{
"Action": "Load",
"Target": "Data/Events/Custom_CrazyEds",
"FromFile": "assets/blank.json"
},```
Sorry, I tried to make that as a code block.
you want backticks ``` for that there you go
well, that looks fine to me. i would go for a patch summary next to see what the status is of all your loads and edits
based on prior messages, i suspect the EditData is the problem. maybe it's behind a When condition that isn't being met?
Trying to replace the SDV title theme.. any insights? ```json
{
"Action": "EditData",
"Target": "Data/AudioChanges",
"Entries": {
"MMR_TitleA": {
"ID": "MMR_TitleA",
"Category": "Music",
"FilePaths": [ "{{AbsoluteFilePath: Music/Title/Overture.wav}}" ],
"Looped": false,
}
}
}
not sure how to use the CP thing to replace music
You can target the audio track ID to replace. So for example, let's say you want to replace title_night with a random selection from three audio files:
{
"Action": "EditData",
"Target": "Data/AudioChanges",
"Entries": {
"title_night": {
"ID": "title_night",
"Category": "Music",
"FilePaths": [
"{{AbsoluteFilePath: assets/music/title/overture.wav}}",
"{{AbsoluteFilePath: assets/music/title/second.wav}}",
"{{AbsoluteFilePath: assets/music/title/third.wav}}"
]
}
}
}
it's out, at last
rawr
hopefully nothing terribly broken in ver 1 here
maybe i can sleep now and not go make 4 more animals right away
sleep good, i rec
Mmm.. that's good.. and it's far simpler than it seemed
That is beautiful, wow

https://on.soundcloud.com/hGVrV5xDVDpuG4TS8 here.. full version
I was absolutely wrong and this class contains part of spouse AI as well like porch or patio standing
I'm thinking of using one of my Drakkhen Remixes for the Character Creation screen
https://on.soundcloud.com/N819m5RhwHxYSZuS9 Do you all think this is too much?
Not gonna lie gotta love the stardew spaghetti the spouse AI is divided between updateEvenIfFarmerIsntHere() what is this name even in farmHouse class, marriageDuties() and tryLoadSchedule() in NPC class
I'd be interested to learn more about the spouse AI one day so I could potentially know why sometimes the spouse randomly walks through the walls of my bathroom mod (the walls are properly set as buildings but the NPC does not seem to care)
I'm assuming it's related to whatever weirdness also caused the spouse to appear in the void above the kitchen when you don't have the kids room upgrade (and thus no bathroom either)
but where do they go to?
also bathroom mod? GIMME
there is no furniture more important than the bathroom throne and yet there is so little mods that add it
Tbh, I'm scared to set any custom heart events inside the farmhouse, because of mods and the upgrades
I'd really love to use the area, but I don't know how to guarantee that pathing NPCs around won't break furniture and stuff
Less of a spouse AI thing and more of a pathfinding thing. NPCs don't care about collision geometry at all, so if pathfinding says to go through the wall, they go through the wall.
the main problem is you would have to check for open space to even position the characters, the pathfinding itself shouldn't be a problem as theyre already coded to avoid furniture (positive from as much code as ive read through)
It's the same reason an NPC can walk across the ocean if pathfinding goes haywire.
farmhouse events should be super simple due to the each player has their own way of making their home
Just gave this a listen. I don't think it's too much -- it's a decent bop, but there are no attention grabbing vocals or riffs
i don't put vocals in VGMusic... unless called for
and it never calls for it
When you do an advancedMove in an event script, though, the character isn't pathfinding at all. Just moving exactly the way you tell it to
when does pathfinding do this by the way? does it sometimes think the location has a different map than it actually does?
advancedMove is just an instruction set so you don't need multiple move commands
It's more or less OK in titles like NieR. Or the beginning/end credits of some anime game. Way out of place in SDV though, for sure.
but can't you actually make them pathfind instead?
Sure, but if I tell the character to move up 3 and then right 2 and a piece of furniture is in the way, I'm pretty sure the character would destroy it
they would
not in a regular event without extra coding
it's no different from multiple move <NPC> X Y F
I don't think they would destroy it and instead just render on top as furniture isn't destroyable I think
maybe not destroy.. but it can break the event
still equally bad
I think it's a failure mode when it can't actually find a proper path for whatever reason, such as actually having to go around some obstacle like up, left and back down. I know, super complicated.
I think advancedMove has one difference to a series of move commands. The move commands need to complete before any other commands happen. But advancedMove seems like it can happen at the same time as the next command (like a globalFade or something)
that's not true
it is different in several ways, some of them not obvious. the most obvious one is it doesn't block the event loop
you can make it where you can move and advance the event
Is that an input to /move ?
it is true. advancedMove does not block the event loop. move can be made to not do so, at your option
https://www.youtube.com/watch?v=qi2jH0lIo9Q simutaneous commands are possible
Hi yes I am having a bit of an air head moment, a stroke if you will.... wtf is the secret woods location pathed to? I had that set for the backwoods and I just realized that is the path above the farm
Niiiice. I didn't know that I could use regular moves that way
Thanks for the example
(move and advancedMove also differ in how they check whether the movement is complete, which is why using move after positionOffset can sometimes get NPCs to start voidwalking and break your event. this is one of the non-obvious ways they differ)
beginSimultaneousCommand and endSimultaneousCommand will run any event command all at once in between them
also not quite true! the wiki is misleading on this. those only allow simultaneous snarfing. any commands which block the loop will still block
Ooooooh
there might be limits.. but as for movement stuff.. the video shows it's possible
As for setting an event inside the farmhouse, do you guys have any recommendations for mods that actually do this well? I've been avoiding it, but I'd like to give it a try
are there any resources that are more accurate about this btw?
I know that each farmhouse has different coords.. so making a single event won't be possible
you will need to check for each farmhouse type
and check for house mods
I think there's a "farmhouse updated" flag that I can use as a precondition
you still need to know the coords.. they are different
But there's no way I'm going to be able to check for all of the different house mods
it's simpler to not use the farmhouse unless you're doing something that doesn't place anyone down aside from the void
Well, now I know why there aren't any vanilla events inside the house
xD
Except Seb's 14 I think...
There are, but they are mostly conversations that take place in spouse rooms
maybe some of the wiki.gg event tutorials, but i don't know of any specific ones
Sam also has one
Farm events only cover a certain place because making npcs walk the farm area is dangerous since there's no telling what's there
anyway if you do beginSimultaneousCommand/move person X Y D/move otherperson X Y D/endSimultaneousCommand they will move one at a time. you'd have to put the optional true on the moves to have them not block, at which point the simultaneouscommand part is (nearly) pointless
Thank you for this
you can give multiple moves at once to get simultaneous walking, so for that specific case you should do move person X Y D otherperson X Y D which should do it
but of course that only allows one axis per command, so if anybody needs to turn you are in advancedMove territory
Still, cool that you can put multiple people in one move command
bumping if someone can post this in showcase for me
What blurb do u want
"Pierre jail mod gets its first content update, now allows a new cellmate (Lewis), plus config options"
thanks
how i should change the id for a crops growing ?
what is the meaning this id ?
(im not sure if i explain good my question)
that id is the item number!
keep in mind item IDs are not always numbers
the seeds and the crop are different objects, so they would have different id numbers
newer items will be just strings instead of numbers
all item IDs are strings
some are just strings that have just numbers in them
"472" is a string
if i want my item being a seed ill change this number at the id of my item ?
meant strings of text but thanks for the correction
what exactly are you trying to do?
making a seed (but i dont have the plantable seed (but i have the sprite))
(not trying to be super pedantic, just don't want someone trying to write 472: { instead of "472": {)
are you making a new crop, or editing an existing one?
like is this stuff here because you copied some stuff out of vanilla and are trying to make it do what you want your new stuff to do?
im trying to make a new crops and i looked in vanilla stuff
to maybe get helped (but that not helping me more)
if you follow the example of parsnip, you will need to replace "472" (parsnip seed ID) with your seed's ID and "24" (parsnip ID) with your produce's ID
so if you're growing onions, "{{ModID}}_OnionSeed" wherever you see "472" and "{{ModID}}_Onion" wherever you see "24"
(Even if you aren't editing vanilla items in any way, I find it's helpful to have something like this on hand to help you read the vanilla examples: https://mateusaquino.github.io/stardewids/ ) <-- you'll see that the older items have strings that are all numbers ("472"), but the newer items are things like "Book_Void"
Like MathPerson said, though, absolutely prefix all of your new IDs with {{ModId}}_
kay thx
so if i make
"{{ModId}}_Name_of_My_Crop" :
its good ?
Is your crop the seed , the thing you get when you harvest, or the crop itself?
the thing that i plant in the grass
Every crop has 3 different things associated with it like that (or more if it’s complicated)
That sounds correct—try it and see?
not working, let me show you my entire code
https://smapi.io/json/content-patcher/14296267e89745d592151205839c7546
your fallen star seed is outside of your Changes block AND you haven't set an Action or Target for it to apply the changes to.
you can't just use the entry part as is, you have to tell Content Patcher where to put the new entry
Why is the name the description?!
Oh, I ran into this earlier! You have to do a separator to use both a name and a description or it defaults to just description
where? like what line of this https://smapi.io/json/content-patcher/27e68ba87d5f460a903730259679bf17
It's name_description
in the string
The underscore is what separates name and description.
so....what would I put instead?
"Action": "EditData",
"Target": "Strings/UI",
"Entries": {
"n3rdgirl_MassiveFarm": "{{i18n: MassiveFarmUI}}"
}```
Still don't understand...
Okay, so in your Farm data entry, your ToolTipStringPath is the i18n file, right?
Is there a guide on how to add seasonal outfits for NPCs?
I'm still not fully following? Like what do you mean ToolTipStringPath???
"MassiveFarmUI": "A MUCH larger farm for you to be able to do more things!" This?
Yes, that
Hello all, I am quite new to C# and Json, but have experience in various other languages. I am trying to write a mod where I need to check the farmer skill level at the end of the day. I have not yet found a way to do this properly and am not quite sure whether I should define this action in a C# project file or the content.json file. I am definitely giving up for the day but if anyone has an idea on how I should structure this and what function I should call from the stardewModdingAPI I would appreciate it! 🙂
You just need your string to contain the name first, with an underscore, and then the description text
That should be enough to fix it.
in "MassiveFarmUI"
What are you hoping to do by checking the skill level?
I am asking bc there are several ways, depending on whether you are in C# or only content patcher
My thoughts are a bit scattered, but basically, you want: "MassiveFarmUI": "Massive Farm_A MUCH larger farm for you to be able to do more things!"
Ok
or whatever your farm name is gonna be instead of Massive Farm
I want to ensure the farmer is at level 25, so that after that event I can initiate/unlock another action sequence. So i want a letter with item attached in the mail the next day and from the day after on I want to player to find something similar to trinkets througout the game that further enhances skills. I felt like after my tools are upgraded there is litte incentive to further optimize the farming/ manual labour which I enjoyed upgrading a lot. So I wanted to see if I can add something to the game while learning game/mod coding and two other languages (C# and Json).
I gathered from the info I found online that I would probably need C# coding for this.
well, checking the level and sending the mail does not require C#
you can use a gsq for this
game state query is not c#
but the rest depends on what exactly you want to add that is like trinkets
https://smapi.io/json/content-patcher/ece6bcf439c742e38810f8e673a99a50 this might be correct, but I don't have the structure of Data/Crops on hand at the moment.
I at least fixed the validator error
also not if the item that is sent should function like an additional trinket slot for the farmer? I gathered that adding another 'trinket slot' would require C# coding, but if not that's better 🙂 I want this item to be an empty necklace that can hold 3 beads. Each bead could represent a skill boost for a skill. The beads can be found all over the valley/accessible areas. The necklace should be inserted in the trinket slot.
no, adding a slot like that would require C#. just not sending the item to go in that slot
The mail (and even the item, potentially) doesn't need C#, the item slot would.
so a craftable iridium band but its a necklace
you can maybe get away without C# at all if you want to make it an actual trinket using the Trinket Tinker framework
depends on what kind of boosts you want, too
Im not sure if they meant trinkets as in the equipment item
well, they said it goes in the trinket slot, is why i say that
They also said "another trinket slot", which implies an accessory slot to me, but language is confusing
And hm
Ah that's good to know, thank you 🙂 so I should write the mechanics of adding another slot in the C# file and the item descriptions of the beads and the necklace, as well as their introduction to the game in the content-file? I have time and am willing to learn so if the addition of the trinket slot would require C# I wouldn't mind. It's just a steep learning curve. I meant it to be like a trinket slot, but it would have to be a separate slot, which would not accept trinkets.
another trinket slot would imply to me that it is still a trinket, though, but i agree language is confusing and i dont always language good
I guess trinker tinker kind of supports the effect via buff ability
The ? is just where do u equip that
if you want a totally separate slot from trinkets that does not acceppt trinkets and your item is not actually a trinket, then that would require C# yes
I would actually look into spacecore equipment slots
Although u need c# for that too, u can make equipment slots for items that aren't trinkets
that still requires C#, no?
Yes, I'm sorry for the confusion.
It sounds more suitable for the mod u r hoping for
ooh thanks you so much, i was working on it x) youre so great
That's a good tip, I will look into that, as well as the farmer skill level via content patcher. It's good to know how I can structure my components better.
You would probably just do the check for skill level inside C# too tbh
truthfully, while you CAN add the item via content patcher, it sounds like it may not be soimething you'll need to use tokens or patch updates for which is what CP is good at
so i was also going to say you could probably just do everything in C#
completely personal preference though
Not particularly related to this talk but i had a stupid idea for how i might do more trinket slots
What if i gib trinket an inventory through global inv or something, and then make ability that just "equip" the trinkets inside the chest
what if i want more than 184 trinkets?
I was also considering this, but I'll first need to do a lot of trouble-shooting and learning the language since it's been a while since I did C-related languages. Thank you guys very much! It's a delight how a conversation of 10 mins can sometimes equal a self-study session of 4 hours 🙂
that said though i dont think thats a stupid idea, i kind of like the idea of replacing the trinket slot (or adding a new one) with just like. a Chest icon. like a toy chest. trinket chest
and just dropping things in there
What is cursed about that is like
Recursive trinkets
Put trinket of holding in a trinket of holding...
trinket of holding?
oh wait when you said give trinket an inventory you meant like. give A trinket an inventory
i thought you meant replace the trinket equipment slot with an inventory
Yeah the interface was gonna be, you "use" the trinket to open an itemgrabmenu
you could just not accept trinkets that have an inventory in the inventory
thats not an uncommon limitation in games where you can put inventories in inventories
mayhaps
Any items like that would have their backing storage be a global chest with their id, so there's no technical problems doing nested, only balance issues
Im not sure of best way to generate a global inventory id
In a unique per instance of trinket item way
Generate a guid, put it on the items moddata
you can write your own serializer to save a custom TrinketStorageList class to the save file that you load as necessary
i would do the moddata thing though
There's already a vanilla global storage mechanism
Global Inventory is how my new mod does this: #making-mods-general message
Technically unlimited trinkets, if you consider cosmetic hats to be trinkets
Don't mess with the save serializer when vanilla already does it for you
the joke was that chu's "ig thats how it goes" made it seem disappointing so i jokingly suggested something much more unnecessarily complex
Doesn't the game save held trinkets in a list? For skillful clothes I was able to just add on trinkets in the like 4th+ slots so as to not fill up the vanilla / main inventory trinket slots. That might be crimes but it worked
The only thing preventing more trinket slots is the base game not displaying them
You're right. Game1.player.trinketItems
cant find it
Are you getting an error in your SMAPI log?
nope
Then what can't you find?
the seed
Yeah the dumb idea is about making an interface without using harmony
Not about the part where u actually equip the trinkets and make them do things
Are you using something to spawn it in? It won't appear in shops without you editing shop entries to add it in.
The fact that it's a list and not a dict is annoying too actually
Need extra work to make sure unequip works correct
i'm using cjb cheat item to look without entering code in smapi console
Have you added the object data already?
You also need to create object data for both the seeds and the crop it produces
i dont think so, if you can take a look of my code
https://smapi.io/json/content-patcher/785d573810c941afae5d3a1379a7a22a
want*
Okay, yeah, you need to add entries to Data/Objects for the seed so that it exists as an item
after i send the link i added an item section above the crops section
The NPC tutorial has a section on Appearances!
I think this would be a minimal objects entry for your seeds: {"Action": "EditData", "Target": "Data/Objects", "Entries": { "{{ModId}}_Falled_Star_seed": { "Name": "{{ModId}}_Falled_Star_seed", "DisplayName": "Falled Star Seed", "Description": "The seeds of a falled star", "Type": "Seeds", "Category": -74, "Texture": "assets/Falled_Star_seed.png", "SpriteIndex": 0, }, } },
oh, name will need to match {{ModId}}_Falled_Star_seed there
Knew I forgot something
Hi sorry for bothering. The code did work good but we didn't implement the command to take away the current tool from the inventory. Could you tell me what I need to add to do it?
you should put a comma after the { "Action": "Load", "Target": "Mods/{{ModId}}/Arme_de_Nia", "FromFile": "assets/Arme_de_Nia.png" } and then paste the new code with a comma on the end of the last } there as well
like this ?
code looks right
for putting a comma (this is -> , <- ?) there is already one and im not sure to understand the second part
In the validator, it looked like the comma was missing, but if there is already one there, you're fine
Sometimes the validator strips out things on the preview until you go to Edit it
okay
Now, just to make it clear, you didn't change the Harvest result of your crop, so it will still produce Parsnips until you change "24" to the object ID of the crop produce you are making.
And that crop produce will need a Data/Objects entry too
okay for now im making seed, crops growing and then the harvest
okay, just didn't want you surprised when it gives you Parsnips in testing. 😛
yeah no prob, so its working
just missing the sprite🫠
im pretty sure that the name of my sprite
Should probably be "fallen", not "falled" btw
not sure
I didn't mean in your file names. I meant just as a general English language thing
Fallen would be more correct in English, I just don't adjust spelling when editing code for the authors.
ooh right
Okay, so the sprite not showing is because you're using an internal asset
and not a loaded texture
Two options here: change assets/Falled_Star_seed.png to {{InternalAssetKey:assets/Falled_Star_seed.png}} OR
create an action block to load the texture, and then use the loaded texture path instead.
load block like this but for my seed ?
Yep!
And then anywhere it wants a Texture, you'd use your "Target" from that action, since that's where the game will put it to be used later.
okay i can make this alone (that literraly 3 line lol)
I prefer loading Textures when possible instead of using InternalAssetKeys, it's much more friendly to mod authors who want to do sprite retexture packs later.
I decided to remake everything lol, I went for a more vanilla feel
not sure how to understand this but i can try for one or two item (or other thing i guess) later
Looks good
you added the Load block, you just didn't change the Texture pieces for the objects or crop entries after 🙂
Find where it says "Texture": "assets/Falled_Star_seed.png" and change it to "Texture": "Mods/{{ModId}}/Falled_Star_seed"
Hey not bad! Very vanilla!
that very cool
The cooking skills mods continue 
it looks amazing! does the bar size increase with some sort of skill level like how fishing works?
also i got a flash green screen with leaf falling after the flash and that after i popped the frame of the dev (i dont have record cause i didnt know) while charging the game, do you know what that mean ??
(sorry if this isnt the good place to put that)
and yaay i found (with a lot of help and thx again)
are you talking about the game loading screen?
graine
french
yes
I think there are some special ones that happen sometimes at random
so.. im lucky ??
yes but more you test mods more you see screen so you have higher chance of seeing it overall
is this the one you mean?
yeess
if it is, yes, it’s a rare screen! I’m not sure what the exact odds are of getting it though, the wiki doesn’t say
I do have plans to make an integration with the Love of Cooking mod after I finish the mod for vanilla SV 😄
i should really record my screen
This looks so good 
Also definitely very vanilla!
is there any way inside the mod to increase the size of the bar then? just for progression/making it a bit easier over time (out of curiosity)
Kain's message got a little bit buried in all of that. I don't know enough about tool upgrades to know what's wrong here, but maybe someone else can help them? #making-mods-general message
now i need to make that the crop have the texture that i planned (i already have them ( i guess ?))
Need the RequireToolId field
Thank you I will try it in a little bit
the thing is that i have 3 different file and i dont think its nice and i m affraid that i have to remake the 3 entire sprite
Not currently, it's still in the early stages of development, a lot will change over time 🤗
I'm pretty sure the equation for a fish's relative spawn probability on the wiki [[Modding:Fish data#Spawn rate]] is wrong. 
After looking at the code myself, carefully following the math, and lots of double checking, I believe that the correct (and easiest to compute) equations are:

I can have a look at that in a bit to see if I can also vouch for that if you’d like!
im dying x)
I like the LaTeX btw haha
There was a person who did the maffs right
Yup, the wiki is out of date
That'd be great.
Wonder what happened to that
oh, was it changed at some point?
I'd loose my mind without latex
Yeah, someone was
the latex font is so satisfying to look at
i need response, juste to know if i have to make my crop growing in a grid of 48x48 divided by 3 for 3 stade of growing or not
I used this proof to simplify the part of the equation where the fish are checked in a random permutation order for each precedent group: https://math.stackexchange.com/a/4988938
(Uses combinations instead of permutations which is sooooooo much faster :P)
Crop sprites are normally 16x32 per stage
You can have giant crops that are 32x32 or 48x48 ofc
if my sprite editor cant make 16x32 sprite
But those aren't growth stages
can you give me a name of sprite editor ?
Here's a list of software for pixel art and JSON text editors we recommend: https://gist.github.com/ishanjalan/c8efb21afa21f74a052293176db107f7
For making SMAPI (C#) mods, see the Requirements section here for which IDE to install https://stardewvalleywiki.com/Modding:Modder_Guide/Get_Started#Get_started.
honesty I question if that section of the wiki should even really be there but I’m invested in this now, I’ll have a look when I’m at my pc at some point! I love combinatorics so this should be fun
The one most common is aseprite (free if you build from source, or if u use the fork libresprite)
Gimp is also free and good enough
kay ill choose krita (its like a starter pokemon lol) cause ive already installed it
idk which platforms pikopixel works on but that’s a thing too
I'm pretty sure any image editing can do 16x32 sprites tho
As long as u tweak the pencil tool or equivalent
I was editing sprites in procreate on my ipad the other day, the possibilities are endless
Check the game's crop tilesheet for the format, it's slightly strict
so if i want to make 3 stage i need to make 48x98 ??
No 48x32
Im on me phone so i can't check so trust pillow yes 
never saw that before and had to check, so it seems to be a 2% chance
if (Game1.random.NextDouble() < 0.02)
{
this.specialSurprised = true;```
Broken code in DialogueDisplayFramework.dll: reference to StardewValley.Menus.DialogueBox.shouldDrawFriendshipJewel (no such method).
but only broken for android somehow? 🤔
I might edit that into the wiki later, thanks esca
does the android version not have friendship jewels?
you may be better off asking in the android smapi server tbh, very few people here have much experience with it
there's a different server for android smapi? 😅
yeah, it’s the thai sdv server!
yeah, no idea what the 1.6 android port looks like, but the previous ports had a bunch of different control and UI elements
!androidsmapi
There is an unofficial port of SMAPI for Stardew 1.6 to Android. Please see the wiki instructions for more information.
IMPORTANT: This is a highly experimental build and may be prone to glitches, bugs, or incompatibilities. We are not able to provide support if you run into trouble or compatibility issues; please use the discord linked on the Android SMAPI github.
Do not harass mod authors to make Android specific compatibility patches.
the link is in one of those links
!andro— tsk 
ohh unofficial port...
also very early days, and unsupported by most mods
that's a bit annoying tbh xD
now I got a bunch of people asking for android compat lol
I think most mods don’t have compat with it by default, they had to port some big ones already
i mean theres not going to be an "official" port of SMAPI
direct them to the last sentence of that command haha. I think most mod authors have no plans on ever doing android compat
old SMAPI android was also an unofficial port. which is called a fork. which is normal in open source stuff
its also possible that specific function got inlined in the android compile
based on what I saw in the last two SDV ports, some aspects just get rewritten because they didn't run well or because the UI needed to change, etc
yea... the method that's missing for my mod was a one-liner so probably inlined :/
until someone (hopefully not me) updates pathos's android repo, I'm just kinda telling people "wait for updates"
I’m guessing there’s also just some parts of dotnet that work differently on android, though I don’t know enough about dotnet to say that with any confidence
yeah, I remember some differences like that in the 1.5 one, though luckily I never had to look into it
I think it affected some harmony/reflection type-getting methods 
huh yea didn't think of that... how does our mods written for dotnet work on android lol
the thai sdv server doesnt really provide smapi support. i dont see any activity for it anywhere
(its also not the thai sdv server, its a server for the thai translator team who works on multiple games)
I wonder if pintail would have helped with that or made it worse
(also they all talk in thai)
I think that’s the one linked in the android smapi wiki/github, so that’s the best we’ve got afaik unfortunately
it does still run in dotnet, as far as I know, though the android dotnet stuff isn't totally identical to PC
Pintail only helps with duck typing and/or „fast reflection”
Tbh it's within your right to just refuse compat
Someone can fork n fix ur mod if they care
its in your right to refuse PC compat too if you want
It might be better to make people ping/DM Narathip, mostly because navigating the server is pretty difficult if you dont speak thai at all
posting a notice that my mods are only for the sdv board game now
I just feel a bit more pressured since it's a framework mod... but yea 😅
Speaking of Pintail, it would be nice if Pathos updated SMAPI’s version of it, I’ve made it much faster recently
(Mangupix your pfp is very cute!)
Only the PS Vita version
I need to try pintail at some point, the python user in me is very intrigued at duck typing c#
maybe you can raise issues on the repo? they also seem to maintain a list of mod compat patches:
https://github.com/NRTnarathip/SMAPI-Android-1.6/tree/develop/src/SMAPI/Mobile/Mods
Have you used any mod APIs?
I mean it's not really a thing you try
If so, then you’ve used Pintail already
It just works™️
Is it possible in current modding to tell the game to spawn the bed in a different tile location of the farmhouse map at the start of a new game? Or is that hard coded and messy like it used to be.
Far too logical
I also got an Android compat request for EMC; it turns out there might be a crashing issue beyond the doomed clickCraftingRecipe transpiler, but for now I've been washing my hand on it 
Unreleased wii u port
My money is on the slingshot ammo, torpedo trout too powerful for the average mobile phone
yeah I think the bed is hardcoded
hardcoded
oh, I see I see, I thought it was an optional thing you can use in your c# haha. Thanks for clarifying!
My mods only work on my computer
(That's actually true, huh.)
sounds like too high a bar for me 
(except when I leave 0.0.x changes sitting around forever)
still less niche than ps vita
Hey just checking in on something- when adding coop animals via content patcher what do I need to properly set the egg item for incubation? I swear I have everything set up correctly, but I cannot for the life of me get the game to allow me to place the item of the ID selected inside. Do I also need to modify the incubator BC file in some way?
ooo pretty cables
You shojldnt have to?
Did you set the egg item id in the animal data
It's lace! I just haven't blocked her properly yet 
Yeah, got it set and everything.
I never block my knitting
I even double checked my formatting via the default animal file from vanilla, seems alright
It did work perfect. Thank you!
the channel? because it’s for talking about making mods
just as a sanity check, are you 100% sure the ID is correct, including capitals?
Yup, the same ID is set for the produce
And I tested by spawning the animal, it produces correctly
Looking at vanilla files I see that EggItemIds use unqualified IDs (without the (O)), try removing it?
Hm, will give that a go
Incubator has accepted it now, still testing though
We have achieved incubation ladies and gentlemen
ah animal data, one of the last strongholds of purely unqualified ids
(see also produce)
Yeah like- honestly I would have never expected it to use the unqualified id
especially because the produce does work with the qualified id 
thanks again y'all
sooo… is there a BC that can be incubated then 
oh, so it’s unqualified but only because it has to be (O) anyway
I like the idea of a 1x2 egg though 
tall egg
Please, I'm incubation this egg bookshelf
thats how u hatch bookworms
Would anyone know where the default marriage dialogue comes from? I swear I didn't give this NPC dialogue but its talking about reasonable vegetables in their dreams...?
Nvm I realise my issue, I was looking for "reasonable" but the default marriage dialogue just happened to give me reasonable and cucumber from "%adj %noun"
theres that i18nfier
How about, instead of using words to express ideas, just use emojis since those are a universal language /s
Would any NPC creators be willing to allow their NPCs to show up as background characters to a pride festival during an event? They'd only show up in the background, but it'd mean a lot! Especially becausethe festival is currently a little dead
i mean, you can throw mothman in there since he's lesbian flagged
but i don't know how you intend to have him show up in the event, my mod required sprites in detail
feel free to rip the sprites then, i might have the "standard size" that i squashed for testing purposes somewhere though, lemme find it
I have the tilesheet open and editing in fake NPCs rn, I can just copy and paste this rq!
How is the sell price of fish calculated? Is there an equation somewhere on the wiki? I'm having trouble finding it if so.
Cassian is gay, so feel free to use him. I haven't finished the mod overhaul, but he'll be out there soon enough.
He also makes robotic clones of him (Efficiancy Drones, or ED). Included the "copper" one.
Oh! I love his design- I haven't been the most active here 😅 but have you posted anymore about him?
just the price as defined in object data?
With quality and profession
check out Object.sellToStorePrice, though if I understand your project correctly that shouldn't matter since it's applied to all fish
(Side note, but have you considered pinging aloe/aceynk, I think she worked on a similar fish profitability project some months ago, also with copious math)
well selph wasn't around when you asked 
oof
I think it mostly happened in #programmers-off-topic lol
Since it wasn't made to be a mod
oh okay
The mod version of this would be a fishing sea but that one's like "screw maffs stealing the prng lol"
It has per tile fish predicting
Yeah I only caught that you worked on it earlier while backreading lol
let me search for her writeups on the thing
Not really. Just been asking a lot of trouble shooting for events. I am expanding on Crazy Ed's Fruit Trees (https://www.nexusmods.com/stardewvalley/mods/28661). My current avatar is his portrait. Essentially, he is a former Joja employee who was termed and is now trying to engineer trees, plants, and crops that shouldn't exist. Just stupid things. I even am having a Salmon bush (not a salmonberry bush...)
uuuhhh just start from here and scroll down #programmers-off-topic message
Wait I live for this!!
A salmon bush would be very nice, too- fishing is too much of a hassle for a game as peaceful as Stardew...
This didn't help...\
You need to look at the overrides
that's Item.sellToStorePrice
This reminds me of the idea of stealing magical crops from Minecraft 
Rokugin, how long have you been a snowflake
What namespace is Object in?
the top one?
Haven't melted yet?
You can literally right click and ask it about the overrides on that method
Right click-> analyze
Then look at "OverridenBy"
found it
lol, nice description. Though I prefer to think of it as "probabilities and distributions don't really actually help you with any of the tactical decisions you make when fishing, or trying to catch a specific progression-blocking fish".
Anyways, it scales linearly so I'm not sure it matters if your goal is to calculate the most valuable location to fish
Like, unless Mod Map X made a 100% prismatic shard fish able or something
It scales = professions scale it
I guess the coal for the smoker if you assume you buy that
yeah I dont think it's important that I know 120 > 80 if I already know 100 > 65
I guess this is for getting the most accurate value after all game modifiers?
and non-fish items
👀 is this for one of your NPC mods?
I can't tell which profession is for the fish because everything is just a number >.<
It's for Squiddonaut's Malha expansion!
blame C# compiler yeeting the consts
let me find the wiki page
Why are they consts instead of enums 
Im just helping with some minor things, and making like 100 sprites for one event is more difficult than making something collaborative out of it 
(Though then again why not just call the function directly)
(mods can also patch it)
(like mine)
Because creating the objec to check would create garbage like you wouldn't believe
I might try to call the functions later but for now I'm focusing on vanella
fun fact, when you open the gift tastes screen the game creates temp objects for every icon
mood
you're welcome to include Lacey if you like. there's probably some definition of pride that includes anthro mice
i too create and destroy temporary objects when i dream of ui
Just a reminder that this loop took 60 seconds to run before I was able to find an alternate forumla that used combinations instead of permutations.
Awesome! Do you know her internal ID off the top of your head?
oh gosh, I've loved what I've seen of that! I have no idea if they'd fit, but you're welcome to have Jorts and Jean show up for support.
Worse
I can also send you Wren's internal ID if you want to include her (she's very queer)
Sure! Send them all in
If you put a hat on a scarecrow. The game generates a temporary object every tick the scarecrow is on screen
If mice can come, so can cats!
ichortower.HatMouseLacey_Lacey
Perfect!
First name Lacey, last name Lacey
Thats really fierce, actually
fun fact Lacey and her family have a canonical surname! i will not be revealing it, it is classified
Because there's only one of one Lacey Lacey
Does the game still track somewhere about whether or not you have gotten an artifact/gem
It's only on donation after 1.6.9 I think
isn't masterchief's name actually John
yes
amazing
Yeah, which is unfortunate when there are nondonateable gems/artifacts
[EDIT: This has been fixed, by just not using the rug. So the woodcut rug and floor tv do not play nicely for reasons unknown. I'd still love an answer if anyone is interestedin digging deeper, but for now I'm just not going to use that rug.]
Huh. So I'm doing a thing where I change the FarmHouseFurniture map property in my content.json for a custom farmhouse map design I'm using. I've had no issues up until this point, but does anyone have any idea why the floor tv would spawn like this???? It's fine once picked up and set back down. But like... wtf?
My map is set up properly - floor tiles on Back, the base of the wall on Buildlings, etc. It's worked in every other decor iteration I've ever done.
Context:
"Action": "EditMap",
"Target": "Maps/Farm",
"MapProperties": {
"FarmHouseFurniture": "1616 1 1 0 1616 13 1 0 1602 11 1 0 1606 4 1 0 1777 6 4 0 1792 9 4 0 1680 6 4 0 300 6 6 2 1449 5 4 0 18 1 6 0 18 1 9 2 1122 1 7 0 1364 1 7 0 1755 1 5 0 1376 1 10 0 1384 13 4 0 1393 11 8 0 1362 11 8 0 2742 7 7 0 709 13 9 3 "
}
}```
i remember this being brought up and i thought it snuck into one of the post-1.6.9 fixes but i might be making that up.
Iirc it was not fixed
yeah? is it any good?
It doesn't like when you do multi-lining but it works well otherwise
what's it called?
that was fixed
i've used it, i like it. but since ive started writing everything with i18n from the start, i dont use it much
it was fixed like literally 2 days ago
lol
thanks
I'll test it again, maybe it was before then, the days are bleeding together
Update: Removing the rug from the equation fixes the problem somehow. But why would the rug break it like that? So weird. Note to self: Woodcut Rug and Floor TV do not play nice, for reasons unknown.
i dont know what im supposed to be looking for bc i never used it so idk what its supposed to look like
Well it should have the content and i18n spots filled out
but if its still not working id tell nomori
wait you can break up events like that now?
I deleted one of my whitespaces and put it back and it's working with it there still
So I'm not entirely sure what the actual problem with it is
are you sure its not just not doing anything bc you already have i18n in it
yeah! line breaks in events makes it so much easier to write and edit them. would recommend (as long as you tell your syntax highlighter to calm down, lol)
I figured it would still work with the tokens in place, since it's just looking for quotes
I wonder if it would be possible for a mod to check if a gem/artifact is donateable and if not, mark it as collected on first pick up 
omg thats great
Oh it's only the one I deleted the multiline for lol
The other one is still not working
it sounds like a pretty straightforward task on paper but I say that knowing nothing about how either donations or the collection are handled
i see in the source it also does checking for dynamic tokens
If you're using something like VSC, set the language to jsonl or it'll throw red at you like crazy
so the regex for that might be catching the normal tokens as dynamic tokens and skipping them
foof, i just finished the dialogue draft of a mod that's been living in my brain since the holidays. trynna push it out before new job starts. next stage is testing -- also i did nawwwt realize the olympic struggle that is capturing NPC chat bubbles for mod pics?? they're so fast
anyone got tips/hacks for this?
i hate reading regex more than i hate reading literally anything else though so im not looking at it any more
wait which one’s jsonl lol, I only know jsonc and json5
i mean this is how vanilla used to do it
screen record and then take the correct frame from the recording?
Yeah
jsonl throws out a lot of other syntax checks though, so that's unfortunate
didn’t it record all gems/artifacts on first pickup?
If you don't have screenshot anywhere, I'd reccomend that mod- it's my go-to for screenshotting, not any other 3rd party source
I think I can simple transpiler it to have the previous behavior
but you're retired
I wonder if there was a reason it was changed
tbf its not like there needs to be a reason other than "CA liked it better this way"
(There was)
Back porting stuff wow
Players were using it to check their museum donations and getting confused
back porting for atra makes sense bc atra's mods are all in the past still
Exactly!
true, I just wondered if it was motivated by a technical thing or a gameplay thing
(i also think it was a good change for the collections menu tbf, i think it makes more sense. that said i wouldve checked if it were non-donateable)
Currently working on a museum patch how many mods patch this room?
like 7 at least probably
typically when i unfocus the stardew window (i always play windowed), most of the game update code stops running, so animations pause, NPCs don't walk around (but they do keep breathing), etc., so i usually do not have this problem, but i haven't tried it with textAboveHead
yeah, you could always patch it so that only non-donateable items have the previous behaviour since the issue doesn’t matter with them anyway
Yup!
why does ItemGrabMenu succ
as always, sve does
if only there was a repo i could look at to reference the 1.6.8- behaviour... oh well
i dont feel like reinstalling 1.6.8 every time i want to glance at its code for 2 seconds
i dont have any awesomesauce
I'm glad all yall are super supportive of me staying very retired 😛
im not touching the collectionspage with a transpiler with a 10 ft pole
Every time I mumble about doing something someone else does it 
What about a 11 foot pole?
but what about buttonmuseumframework
thats been on hold since october
I’m out, I’ve yet to try transpilers and this feels like maybe not the ideal place to start 
atra u did vmv ender chests 
Yes
the CollectionsPage in general is not a good place to start
is it better to make a Chest or just try to do it with just Inventory + ItemGrabMenu
I did inventory+ itemgrabmenu
but then u cant pick chest size right
(i had to go check on SNF. it has only one transpiler on CollectionsPage)
I could, in theory, do a skipping prefix on the whole thing with a copy of the decompiled method with just the relevant parts changed. It’s a terrible theory but a theory nonetheless 
thats one too many for me
you can also do what i did and replace the menu entirely with a custom one
Oh, yeah. Maybe that is an issue. VMV ender chests don't change size
Tbh I also have a full homemade implementation of an inventory menu with scrolling
stardewui me own item grab menu since the game's succ anyways
I tried looking at the AnimalMenu code once and my brain broke
Two years ago damn
i sense this dumb feature becoming dumber so i am kicking it to next sprint
the CollectionsPage and PowersTab menus wouldnt be so bad if they didnt just shove literally fucking everything into the constructor
Speaking of sprints I should do that
knitting sprints 
i wouldve been happy if they only shoved half of all things into the constructor
chu, you work on mods in sprints?
no i don't it's a joke
chu's very agile
lmao, I was wondering
hmm yeah i did do that, playing windowed, but they're sneaky and literally were kissing/then not kissing (Multiple Spouse Dialogs) while the game window was inactive and i was screenshotting and saving the pic...and then the text bubbles faded/were replaced once i clicked into the window to make it active again D:
i work when the worms tell me to
@meager shadow Not to single you out, but would you be okay if I included Casper at this? Theyre such a mess and I love them and would rlly like to include them here too! Totally fine if not!!
Nah. Irl hill sprints
I need to work out mpre.
Snow trashed my training. Schedule last week
does the chat bubble need to specifically coincide with the kissing, like is the kissing what causes the chat bubble
nah it doesn't but there's an idea - not sure of the cause, but i can try unchecking Allow Spouse Kisses and see if that helps! ty c:
BETAS has a TextAboveHead action that you can run from the console to make the speech bubble appear for a customizable length of time so you could set it to like 90 seconds for the screenshot. could make it happen anywhere and just photoshop the speech buble onto a different image after
are you on windows, confetti?
windows+alt+r starts a screen recording, then you can just use an online tool to get the right frame
forgot to reply, sorry
Ohhh wasn't sure if TextAboveHead was a mod (lazy, brief researching on my part lul). ok cool, this is a gamechanger! and the kinda thing i was looking for 🤙
i yammm....oh that also! good idea, ty c:
Did I break something again..? 
not a clue! thats a question for roku
I don't know exactly what the problem is, it doesn't seem to like the multi-lining
I thought I fixed it recently, but maybe I missed something... Can you send me the string you tried?
"{{ModId}}_FirstQuestMaruEndMarriedFarm/!SawEvent {{ModId}}_FirstQuestMaruEnd/Spouse Maru/HostOrLocalMail {{ModId}}_CollectorDesignEndFlag": "
continue/-10000 -10000/Maru -100 -100 2 farmer -100 -100 2/broadcastEvent false/eventSeen {{ModId}}_FirstQuestMaruEnd true/setSkipActions AddItem (BC){{ModId}}_Collector#MarkCraftingRecipeKnown All {{ModId}}_CollectorRecipe/skippable/warp farmer -100 -100/faceDirection Maru 2/warp Maru -100 -100/warp Maru 65 15/positionOffset Maru 0 -20/
globalFadeToClear 0.02 true/viewport 64 15 clamp true/pause 1000/playSound doorClose/emote Maru 16 true/warp farmer 64 15/faceDirection Maru 3/pause 500/
pause 300/faceDirection farmer 1/pause 300/
speak Maru \"{{i18n: first-quest-maru-end-married-farm-event.0}}\"/pause 300/
emote farmer 32/pause 300/
speak Maru \"{{i18n: first-quest-maru-end-married-farm-event.1}}\"/pause 300/move farmer 0 2 1 true/move Maru 0 2 1 true/globalFade 0.02/viewport -10000 -10000/pause 300/
changeLocation ScienceHouse/switchEvent {{ModId}}_FirstQuestMaruEndMarried"
I was originally using this without the translation tokens in place but it seems to be fine with the tokens there just spits out funny translation tokens and content.json
I had to delete the space before the speak commands and then when I added it back it was working fine for that command
So if I only do one it only fixes that one and not the other
Maybe some kind of issue with pasting in multi-lines?
Hmm.. I don't think it's line breaks, cause after deleting all of them it still doesn't show 
Huh, that's weird, I was getting it to work by removing them
Ah, got it
It work with line breaks, but not whitespaces between / and speak
Easy fix
how would i have a npc have specific dialog the first time the player talks to them after seeing Elliot's 8-heart event?
Ah, so I guess it really is just pasting in whitespace instead of line breaks
Did you find anything else not working correctly? I can probably push an update in 30 minutes or something
linebreaks are just whitespace, just vertical whitespace
a long-lasting conversation topic after the event
Button, may I have diagonal whitespace
i dont know take that up with whoever writes text parsing standards. linebreaks being whitespace wasnt a joke
id support diagonal though i spose
Whitespace as in the thing you make by clicking the spacebar
I always get confused if it has it's own name in English
i would just call that a space, though in a programming context "space" is just potentially vague and "whitespace" is very encompassing is all
With my love/hate (with emphasis on the latter) relationship with regex I sometimes wonder why I made this converter 
I didn't run into any other issues, but I only used it a little bit, my events are small and few in number
yey
you didnt show off the cancel button so i can only assume its broken and you're trying to hide it
well, it actually just does nothing
so i was right
the cancel button is an empty entry with only label and no action/tileaction
what if i want dialogue when i cancel
does it take tile actions or normal actions
both
im writing docs tmr but here's the model
public class QuestionDialogueEntry
{
public string Label { get; set; } = "[LocalizedText Strings/UI:Cancel]";
public string? Condition { get; set; } = null;
public List<string>? Actions { get; set; } = null;
public List<string>? TileActions { get; set; } = null;
}
public class QuestionDialogueData
{
public string Question { get; set; } = "";
public string? Speaker { get; set; } = null;
public Dictionary<string, QuestionDialogueEntry> ResponseEntries { get; set; } = [];
public IDictionary<string, QuestionDialogueEntry> ValidEntries(GameStateQueryContext context)
{
return ResponseEntries
.Where((qde) => GameStateQuery.CheckConditions(qde.Value.Condition, context))
.ToDictionary(qde => qde.Key, qde => qde.Value);
}
}
i have no idea what speaker does tbh but i do Game1.getCharacterFromName to it
well the issue here is that UpgradeFrom assumes you have a trashcan, since every held item uses ConventionalUpgradeFrom with all its preset values for items and quantities and cash used for an upgrade.
since it thinks you're ugrading a trashcan, it doesn't bother looking for an item to remove from your inventory
speaker determines the portrait of a dialogue box
now what you're really look for here is a solution though, rather than an explanation
and name
sometimes u want tile action cus it does actually pass on the tile (Point)
yea but, question dialogues dont have portrait boxes???
and luckily for you, i don't have a fucking clue
maybe a question box can be forced to have one
theyre used for NPC questions too anyway arent they
Huh, it seems i18nifier doesn't like tokens in event IDs, guess I'll fix that too
so the Game1.getCharacterFromName definitely got Krobus i think
(as per the test data i put in)
but it doesnt seem to do shit
my point was just that it stilol needs to knoe who the speaker is
maybe it matters for like, the following dialogue if u spawn something with action?
ill release this once i write them docs, it doesnt seem too explody
there's some way to filter by mod in CJB item spawner isn't there?
search ur own mod id?
not exactly, but search includes internal name, so just search by unique id
for example, searching for blueberry will give you a tart and every love of cooking item
yeah i tried using my name and stuff...
oddly it sees two items from one of my mods but not others
like what
hey blueberry, while you're here, do you have plans to update your instant farm cave/pet mod? No worries if not, just keeping it in mind if you do for a mod idea request.
Did you use your mod id in those others?
as in {{ModID}} in the json? yea
i didn't think instant pets was needed anymore
is there not a map tile Action that does dialogue questions in the base game? and if not, what was I using to do it a week ago 😭
for some reason
Pet is timing based isn't it?
if i f1 an item it knows where it's from
dont quickQuestions or whatever load a second dialogue key for the follow-up. theyd have to know the character whose file to look in
Lookup Anything and CJB are separate mods
I didn't see that you got a response, but you want a conversation topic, specifically the thing about memory here: https://stardewvalleywiki.com/Modding:Dialogue#Conversation_topics
isnt that a event thing though
Thaaaat's not the right link
I love when I make mods and immediately forget everything I learned while making them 
time to look through my own code so I can figure out what I was trying to ask you chu
if ur talking to me i dont mean the event thing i just dont know the dialogue commands
$q or w/e
plus earnings limits
Unless that changed in 1.6
ig its just question of whether u can spawn a dialog with action
oh, I made my own tile action
maybe i;'m config'd wrong or something
i think 3 of us are on 3 different pages thinking we're all on the same one
Kind of but also no, Lookup Anything has more internals about knowing where stuff is from than CJB
Yesish
CJB doesn't seem to be letting me search for anything by mod names hmm
CJB isn't like the Minecraft item search stuff, it doesn't categorize things like that
are you searching by mod unique id, or mod display name?
i think CJB can search by mod id if you have the mod id in the item id?
i've tried quite a few and nothing seems to be quite working hmm
it's possible your items are just invalid
Have you tried just using console commands to spawn them to make sure they're valid?
Or do they show up if you search differently?
oh they are all fine, i just wanted to use it to test my translation strings
ie i wanted to see all my items at once
but that's already a feature, cjb searches by internal name
/// <summary>functools.partial my dead girlfriend...</summary> chu I have questions
they're here
Atra would you be able to remove the preconditions in CP with nulling the event/creating a precondition-less one, or are they too hardcoded for that?
seems like it's all good......which is suspicious, what do you mean nothing broke??
Just trying to find if any other mods I haven't checked off yet patch the museum. So far I have taken into account VMV, MGR, Museum expanded, and Jasper the mod.
2.5 has been out for a few days but I don't think the validator is updated yet
we're on 2.5.1 now
if anyone cares to give my first attempt at i18n a quick lookover
it seems like it's working?
imagine the worldwide bandwidth use if all cp mod authors updated their mods for each format version
Not too hardcoded
i just keep finding a need for her 
it's a longing...
Also could use spacecore to launch the evnt
cant you also just switchEvent to it
why use partials when you can make awkward wrappers instead /lh
or fork
lunch events. wrappers, forks..
Not really
The setup commands
The first three clmmanss
what about them
Okay, the update for i18nifier with better whitespace handling (again) is up
Are not valid in a switchevent
am i doing something wrong on nexus with comments, i reply to things and it shows it as a reply and as a solo post
Tbh I think spacecore is a super common framework and most content pack authors are happy to use it
That's just nexus visual glitch
So "you can do X with cp+spacecore" js more than find
ahh ok
If you refresh it's normal
Dine
thanks
Fine
what do you mean they arent valid in a switchevent
@blissful panther Hey, I happen to notice your Better Return Scepter says it's for 1.5.6 - since you updated not that long ago, I assume the mod description is just out of date? https://www.nexusmods.com/stardewvalley/mods/11610
now to decide if i should take a break today or ride the momentum and update one of my other mods...
u can always ask uber
i was thinking of making RSV fruit ghosts but man....most of those fruits are red and i've already used most of the red and orange ghosts
.choose break, updoots, actually play the game
Choose result: actually play the game

i am on a "no starting new mods" phase in that the next things i wanna do r kind of late game
so i want to get to like y2 on a save first
Did I just see "play the game" in making mods...? Blasphemy
/jk
Whoooooo
i think this means you can't switchEvent to a normal event, since the music id/viewport coordinates/character registry aren't valid commands and will make your event barf
Haveeew fun!!¡!!
although they'll probably be logged as errors and proceed in 1.6
whats the point of a switchevent then
Switching to a 🍴 which doesn't have those startup ckmmands
but then why not just use fork
Fork is conditonal
what would be the usecase of switchevent then instead of just, continuing in the same event string?
switchEvent is ideal for forking in a quickQuestion
Also go explain rhr typos my hands are very cold
Vanilla primialery uses ut for diamonds
Oe, a, fork b or c, all switch back to d to end
i have used it for diamonds, as well as splitting out ends to certain events which differ depending on config settings
so like switchEvent myEventPart2, and part2 has two different versions which i patch in conditionally
you could just do that with two complete copies of the event but i'd rather just change the part that is different
Events are a program language
why is github search the way that it is 💀
Events scary
Actually, events aren't Turing complete :P
hi guys, I've been wanting to improve my mod for a while now. it features 8 types of produce that the animal digs up but the issue is that they oftentimes go multiple days without digging anything up, and on days that they do I'm lucky to get 1 produce on that day. I altered the content a few days ago to see if it could help improve the produce levels but it doesn't seem to change anything, does anybody have any clue why they would produce so little?
https://smapi.io/json/content-patcher/fd270e8f49504ff8aaaac99bbd89bd1a
i originally didn't have the deluxe produce item ID bc they don't have deluxe produce but i just added it to see if it would up produce. they act the same with or without those extra bits
I got the fish census working! These numbers seem accurate based on my sampling if I downgrade all the iridium fish to gold fish.
what's the easiest way to test out a map tile property/action? make a map that has it and load it into the game?
It is already fixed, Rokugin told me to use RequireToolId and it did work
Thank you anyway for the help!
i was curious how jank it would be so i tested it and they do get logged as errors. however if you just copy the setup commands in the fake event then you can switchEvent to it anyway and only the setup commands will error and the rest of the event will proceed as normal. not ideal but it technically works!
actually, that means you can just remove the first 3 fields from that event with TextOperations, and switchevent without getting errors
Also I want to share something I've never seen before. Don't know how many people know these. Before on the loading screen while hitting concernedape, it changed animation smiling, and leafs falled from the screen. And another thing, while fishing in the secret area, a green monster appeared walking from one side of the screen to the other one
(come to think of it i guess this kind of is an easy CP only way to change an events preconditions in general without having to null it first and lose compatibility
)
(or redistribute an event without permission)
It'll then error if the game calls the event normally
Events. Having the precondition in the sky
Is annoying af
sure, just the same as it would error if someone called a fork event normally
the event was marked as seen and didnt happen normally after i tested it
marnie did not show up with a second pet
Yes, but how the game decides if is fork or not is based on the key
And you would have to get ahead of it
Ie, if you happened to already satisfy the precondition
events data model in 1.7
either way though i concede its a bit finnicky for events in general then. but it would definitely work for instant pets at the very least
since you cannot possibly meet the precondition on day 1
is there a framework that just turns events into a data model already
and just isnt used much
Nah
"dictionary order" terrifying
atra you're stretching my limits of error correction
i dont have enough parity bits or whatever
tag yourself i'm "Msyvui"
im Cab
can I be eb
What item is (F)2423? (Hopefully not anything with spoilers :P)
Also (F)2425
and (F)2427
https://mateusaquino.github.io/stardewids/ I use this for looking up IDs if you haven't seen it yet
There's a number of furniture that u can fish up
If u don't want spoil then don't look them up
I couldn't find it in there
(F) means furniture
Oh, okay
they're in the furniture tab
That explains why it doesn't have an item definition
And then there is that one place where the item id is LOCATION_FISH Forest BOBBER_X BOBBER_Y WATER_DEPTH which is only ever used once and probably annoying to deal with.
Mods would use those

Fish is item query iirc so u should just use item query resolve crap
Any data model that impl generic spawn item data really
If it is the same pool as forest, that means whenever I encounter that, I need to recursively call my probability function and somehow squeeze it into the loop. 
Which means there is now recursion in my permutated algorithm 
Well u build a static list with item query first
I can't use item query, because that query doesn't always return the same fish, It can return any fish from the forest, each fish having a varying probability, which needs to be calculated using the function that I am querying it from.
Can someone help me figure out why adding a dialogue when an NPC is at a specific location isnt working? (not sure how to post the code here correctly)
I don't need the items, I need the probability of getting it.
Though there was some nonsense with how feesh rates work that meant it wasn't just flat
!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.
i think linkoid is talking about that nonsense specifically
At any rate idk what ur gonna do for modded locations that use non item id item spawn besides using item query
Also I already solved part of that nonsense
I am not saying to use this for any final result
It's for building the list o fish to math on
i thought chu was just saying to pre-calculate the entire list possible from the item query and then run your calcs on that, instead of recursively calculating the item query itself
It already does
I am unsure what u would do for the RANDOM gsq but i guess u will have to sanitize that
That's a thing?
Idk if it's used in any vanilla fish data but yes it's a valid item spawn field thing
In Condition
public class SpawnFishData : GenericSpawnItemDataWithCondition
yep it is valid to use gsq here
prob fine if u just assume people arent weird and use Chance instead of RANDOM
at any rate all i really meant is, you do this bit but with TryResolve instead of TryResolveRandomItem
Item item2 = ItemQueryResolver.TryResolveRandomItem(spawn, itemQueryContext, avoidRepeat: false, null, (string query) => query.Replace("BOBBER_X", ((int)bobberTile.X).ToString()).Replace("BOBBER_Y", ((int)bobberTile.Y).ToString()).Replace("WATER_DEPTH", waterDepth.ToString()), null, delegate(string query, string error)
{
Game1.log.Error($"Location '{location.NameOrUniqueName}' failed parsing item query '{query}' for fish '{spawn.Id}': {error}");
});
GameLocation.cs
tryresolve should give u a list that r evenly distributed
TryResolve doesnt work with LOCATION_FISH unfortunately
it only ever returns one fish
because of the probability bs of fish data it can't give a proportional list


