#making-mods-general
1 messages · Page 526 of 1
Is there a Dialogue key that only specifies the season? I don't want to make dialogue for each day
think so!

Why are you sad?
You don't need to do any editdata for what i thought you wantef
If it's just a minor visual change

could also do {{season}}_{{Day}}
No, you have to use dayOfWeek at a minimum
"Using Content Patcher" is a subheading of "Editing a vanilla location", I just ran out of header sizes so they're the same size

Nothing stopping you from using the same i18n key for multiple lines though

(i18n randomization my beloved)
You don't have to write dialogue for ever cfっdq
Oh yeah... (and i just realised im a quarter of the way through the mod and i forgot to use i18n)

for a character to sleep at the end of a day, does anyone know if i need to specify a sleeping animation when creating a schedule? i was peeping at the lacey custom npc mod files to see what they did, and all it has at the end of her schedule is "bed", and the shiko custom npc mod doesn't specify anything other than the coordinates at the end of the day. the vanilla files have, for example, "sebastian_sleep" at the end of each day. wondering what the best way to go about this is
New quote added by head_in_the_cl0uds as #7134 (https://discordapp.com/channels/137344473976799233/156109690059751424/1466251646232166452)
heh

randomization is great for having a pool of dialogue without having to worry about associating a day for each of them
This was what i wanted to type ^
godspeed spirit 🫡
Claude didn't you already quote it though
now i have to go back through my mod and implement i18n since i forgot...
I shall be in token > string land-
Good luck lol
The wiki page explains how bed/sleep work: check out the location and animation table entries: https://stardewvalleywiki.com/Modding:Schedule_data#Schedule_points
thank you, for I shall need it
Ive been making use of the random token for the sparse dialogue i do write because i have random ideas but don't feel like limiting it to a certain day
Unless it's specific
If you're editing a vanilla map all you need to do is EditMap. You're not adding a custom location

The docs should have a section on EditMap somewhere
So you shouldn't need to touch location data
ive got an edit data for an event and i just copy and pasted the event in and added my bit into it... i feel like i didnt need to do that, is there a way to add my bit to it without dumping an event into my mod?

Unless you want to add new locations to the farmhouse i guess..

My generic dialogue looks like this:
// Low pool + seasonal + {{WeekDay}}
"{{WeekDay}}": "{{Random: {{i18n: Hiria.StrangerPool.{{Random: {{Range:1,5}} }} }} && {{i18n: Hiria.LowPool.{{Random: {{Range:1,5}} }} }} && {{i18n: Hiria.{{SEASON}}.{{Random: {{Range:1,5}} }} }} && {{i18n: Hiria.{{WeekDay}}Pool.{{Random: {{Range:1,5}} }} }}|inputSeparator=&&}}",
// Low pool + mid pool + seasonal + {{WeekDay}}
"{{WeekDay}}4": "{{Random: {{i18n: Hiria.LowPool.{{Random: {{Range:1,5}} }} }} && {{i18n: Hiria.MidPool.{{Random: {{Range:1,13}} }} }} && {{i18n: Hiria.{{SEASON}}.{{Random: {{Range:1,5}} }} }} && {{i18n: Hiria.{{WeekDay}}Pool.{{Random: {{Range:1,5}} }} }}|inputSeparator=&&}}",
// Low pool + mid pool + high pool + seasonal + {{WeekDay}}
"{{WeekDay}}8": "{{Random: {{i18n: Hiria.LowPool.{{Random: {{Range:1,5}} }} }} && {{i18n: Hiria.MidPool.{{Random: {{Range:1,13}} }} }} && {{i18n: Hiria.HighPool.{{Random: {{Range:1,5}} }} |Nickname={{Nickname}}}} && {{i18n: Hiria.{{SEASON}}.{{Random: {{Range:1,5}} }} }} && {{i18n: Hiria.{{WeekDay}}Pool.{{Random: {{Range:1,5}} }} }}|inputSeparator=&&}}",
// 10 heart - platonic - low pool + mid pool + high pool + bff pool + seasonal + {{WeekDay}}
"{{WeekDay}}10": "{{Random: {{i18n: Hiria.LowPool.{{Random: {{Range:1,5}} }} }} && {{i18n: Hiria.MidPool.{{Random: {{Range:1,13}} }} }} && {{i18n: Hiria.HighPool.{{Random: {{Range:1,5}} }} |Nickname={{Nickname}}}} && {{i18n: Hiria.BFFPool.{{Random: {{Range:1,5}} }} |Nickname={{Nickname}}}} && {{i18n: Hiria.{{SEASON}}.{{Random: {{Range:1,5}} }} }} && {{i18n: Hiria.{{WeekDay}}Pool.{{Random: {{Range:1,5}} }} }}|inputSeparator=&&}}",

so many tokens 

You can use Fields to add your part by index (meaning you count how many forward slashes there are, starting from zero for the first one, and add yours to whichever number is right for the place you want to put yours in).
[sound of fans spinning up]
it looks like an arcade there are so many tokens /j
(get it... like an arcade token?)
brain fans go brr
ill see how i go, ty!
I will probably change it again before release lol
thank you!! i am also wondering if i need to change the animation names to better fit this. i've been using the {{ModId}} tactic that a wiki i read mentioned, but looking in to the lacey mod once again, they have theirs as {{anim}}_sleep, but i haven't seen any sources that say anything about the {{anim}} function. this is my format right now, but i am wondering if it will apply when the {{ModId}} is at the beginning. i noticed the wiki said to keep it lowercase but i'm getting a vibe that this will not work right
{{anim}} would be a token that was added by the lacey mod itself
(okay I'm supposed to be coding but saw a snippet of your code and Aba I am so excited about Hiria they sound so cool)
there are some tokens provided by content patcher, but you can also make your own
i havnt touched i18n tokens and im honestly scared to...
They can be as complex or simple as you need
Like Vin said, {{anim}} is a token that ichor has made and I suspect that it's a lowercase version of Lacey's name because the sleep animation key has to be all lowercase. You'll need to type out your mod id in full in lowercase for it to work.
(Also, be careful never to use the sleep animation midway through the day, because they never wake back up from it.)
the Eternal Sleep
sounds scary
for example, {{modid}}_ivaraswolfgang_sleep? and would this apply to wherever i've typed the capitalized version, {{ModId}}?
No, as in taking your unique ID from your manifest and writing that in lowercase. {{modid}} is identical to {{ModId}} as far as Content Patcher is concerned and would return your unique ID exactly as it is written in the manifest, which I'm guessing is not entirely lowercase because many people's aren't. If yours is, then you don't actually have to change anything at all.
couldst thou not {{Lowercase:{{ModId}}_sleep}}
so something like this?
{
"Action": "EditData",
"Target": "Data/Events/Town",
"Entries": {
"59":
"[enter text here]"
}
}
I guess so, yes
well sure, but I don't think that's less effort
at that point id just do that {{anim}} token
it may not be less effort but you don't have non-matching duplicates of your mod id lying around your assets
this is the tokenized dialogue of all time.
hello! just checking (ty voyager for the code for ref), this would mean that that line would only apply IF that flag applies
The hasflag turns to "True", yes, so the i18n would be MV.Municipal.Husband.True
if you have the flag
OHHHH
Yeah the end tokens all turn to a true or false
Sure, I just mostly work in true/falses
Nope, because that's editing an event with an ID of 59. You need to use Fields, not Entries, and you need to list the event first. You might have to use TargetField, but first try this
{
"Action": "EditData",
"Target": "Data/Events/Town",
"Fields": {
"EventId/some preconditions": {
"59": "bla bla bla I change the event!"
}
}
}
If that doesn't work, then you will need TargetField to choose the event id to edit.
YAY ty!!
oh oops i forgot to change it to fields, i cant thank you enough though 
Note that I didn't just change it to Fields!
Like if you have a token that resolves to... I dunno, "one" "two" or "three", you can do a string that's like "words.{{token}}" and i18n of "words.one" "words.two" and "words.three". I just use tons of hasmod switches and flags and the like, so it's generally a true or a false.
📄 🆙



❓
uhhh... are you sure you're looking at the right map, first off?
🛏️ ❓
it says it's the farmhouse bedroom from the file path at the top of Tiled in the image "FarmHouse_Bedroom_Normal"

yeah, but that map is one of the renovation parts
Has spirit said anywhere what zey are trying to edit?
i think in #modded-stardew ? the uneven texturing on the.. whatever the heck you call it
Hi, How can I edit the coop location on the Meadowlands map in Tiled? 
so that's definitely not the right map for what you want to edit
i can't really go and look right now but
I'm not sure what the gap is referring to. Can you circle it on your screenshot, spirit?
The gap between the windows?

wow, it's willow

Yeah I'm still totally lost
(i think the gap between the kitchen counters?)
where most people put a fireplace
?
(idk either tbh)
I need you to circle the gap on your screenshot
Because I don't see any gaps of anything
Except the little breaks between the beams
cloudd 
Uneven number of tiles in the room, horizontally?
Ok for the gap between counters, you will have to edit the farmhouse2_marriage map

The number of tiles in each room is harder because it's either going to involve moving the spouse room or dealing with the renovation to open/close the bedroom
Okay, so I've no idea if anyone answered my question from yesterday since there are over 600 messages...
I'm using the Custom Farm Loader and trying to turn the bodies of water on my custom farm map into mixed fishing spots. It's not working as I intend though, so could someone help me figure out what's wrong with my code? Here's an example of what I'm trying to do...
"Area": "60,42; 71,52",
"CrabPotFishTypes": "Ocean",
"Fish": [
{ "ID": "Seaweed", "Chance": 0.1 },
{ "ID": "Oyster", "Chance": 0.0125 },
{ "ID": "Coral", "Chance": 0.0125 },
{ "ID": "Mussel", "Chance": 0.0125 },
{ "ID": "Cockle", "Chance": 0.0125 },
{ "ID": "Beach", "Type": "Location", "Chance": 0.4},
{ "ID": "Mountain", "Type": "Location", "Chance": 0.2},
{ "ID": "Forest", "Type": "Location", "Chance": 0.15},
{ "ID": "Town", "Type": "Location", "Chance": 0.1} ] },```
pif doesn't do anything to spouse rooms though
ooo
The only person I know who knows how to use CFL is Lixx because it's their framework. Have you been following the documentation or just trying to look at other mods?
mmmake seense?
I've been trying to look at other mods mainly, and have only just recently started going through the gitlab wiki since I finally found out where it was...
where exactly do you want to move the kitchen to?
foor thhe cloud ggap to th othr ssdie
oh, ok. just remember to move the tiledatas too
A source I trust (ichortower) says that it's hardcoded so you might be stuck with just moving the coop after you start the save.
lllike this
I don't think that will work because the fridge is (I believe) hardcoded. You might be able to use MMAP to deal with that though.
(oh damn, the fridge is? oops)
:(
if you want to make a meadowlands-like farm it's probably a better idea to make a new farm type + use SpaceCore to place a coop at the start
and don't forget to make the farm's starting gifts be 15 hay
how exactly does the fridge work in vanilla? 🤔 i'm curious. is it something weird like knowing which tile from the tilesheet is a fridge? the way lights are?
Those are all for the floor and wall IDs, spirit. If you hide the Back object they will all go away
I don't know what that is, so I'll go read and try it out 🫠
ooo
if (layer.GetTileIndexAt(j, i, "untitled tile sheet") == 173)
in that case why would moving it over a few tiles break it? wouldn't it still be the same tile?
wuh
oh. krobus
yes the exact tile id
hhehe
Might be fine then
aal fixxed
hey selph, I'm feeling like I want to try to attempt to make my own version of npc adventures now; but I don't know where to start.
I'm going to try to do as much as I can without bugging someone for help
if you havent decompiled already start with that + look at NPC pathfinding code
obviously rewiring the pathfinder of an existing NPC isnt the only path; you can also make your own
I have it decompiled, and the only C# mod I made was to change a NPC's sprite everytime you go into the same location as him, and the basic tutorial of detecting inputs
:o
New oven, pretty
npcs adventures also has a RPG leveling system, which I wanted to do my own take of
okay would this work-
that is the island kitchen
(the kitchen you have in the farmhouse on ginger island)
(in case you didnt know)
(which tilesheet is that?)
Move the unknown value above the known one and remove the when condition so it's the default.
As for the when conditions for the known - is it possible to have both the dwarf and Krobus as roommates at the same time? And your second event seen check is invalid.
OHHH I COULD JUST REMOVE THE WHEN!
thank you Aba! and I will 
(farmhouse_tiles)
...flower on groun
hey you're right, it doesn't look too impossible. I could try to get a location near the player once in a while, and then use the setmoving method. Thanks selph
, just need to figure that out plus the ui
nvm iis cursor
also spirit, don't overexert yourself if you need a break, alr?

ddi i o right?
Hard to tell, because we can't see what layers they're on and whether they're the right ones.
If you just picked them up and moved them left (including the tiledata) then yes
No, you can't put it on a new layer
It has to be exactly the same as it was before, just moved to the left
Well, since I don't know what you mean by good, I can't say
ffair
wwil do
The tile data is this
The objects that control the kitchen being able to be used
They're on the Buildings object layer and also need to be moved left
aa congrats! 
When writing percentages for multiple somethings to potentially occur within a specific location, do they have to add up to 100% or can it go above/below, so long as no 1 specific event has more than 100% chance to occur?
That edge is later renovated to open up to the dining room, so I think it's the same issue as moving the bedroom wall into the spouse room, where you need to change some stuff to be able to do that
Oh no 
ok bacl
Ah sorry forgot to turn @ off
got on the worse part [trackpad]
ooo
Ouch yeah, no fun to clean up
yea ii have it, but i dont understand what they mean
Change where the fridge is in farmhouse, and optionally the door open sprite
probably this part?
use mmap to circumvent harcoded fridge fuckery i guess
but how,, 
what would a junimo's demeanor be do you think? i would think they're shy but i want to get a concrete answer before i start the dialogue
forest spirit trope
junimos you say,,
shy and silly
I think junimos are like people where they have different personalities
they don't really have much of a canon personality in vanilla, so honestly i think you can go for whatever you want.
jUNIMOS,,,
but yeah they're probably pretty shy
anyways,
the wizard had mentioned they refuse to talk to him
so they're probably kinda picky with who they speak to as well
wizard
ill go with shy, silly, whimsical/mystical
i give you permission to add a dumbino sprite in
and if the player cheats ill try to do something so they run away or refuse to talk
Ah yeah that sounds cool
just a sprite or an npc?
make dumbino come out as non skipable cutscene "dumbino angry u cheted. dumbino make yu watch dace"

let me start that now lol
sure!
Oooo crossover easter egg
do you want to make it bobbers...
...no
so...
is the farm house on the same tile coordinates on every farm?
no
ok then ill have to find a different map to put this event on
doesnt the curb events work
not only does it vary, the farmhouse can also be moved
The base game however will god damn put npcs on your porch
Stupid questions, but does this code handle cabins
farmhands do their farm events on the farmhouse porch not the cabin
hellooooo just checking- if they all hae the same label, the most specific dynamic token will be chosen, right?
sorry if this makes no sense i am tired-
No, the last one in the list whose conditions are met will be used
...gimme a sec my brain's loading-
is there a way to include a character into an event but it's just the sprite? i have a spritesheet of a character but not portraits so i cant make them an npc and from the way "addTemporaryActor" sounds it seems like it only works with a single frame sprite
...I'm gonna read this tomorrow I think, happy timezone!
remind me in 16 hours to look at this
Ugh I suppose, head_in_the_cl0uds (#7049088) (16h | <t:1769717052>)
you could always just copy in Abigail.png and load it as your npc's portraits
no sense making workarounds when placeholders will do just fine
So for example if you had one where it was true if it was winter and a THursday, and then a second one in the list that was true only if it was winter, the second one would apply because it'd always be true if the more specific one was also true. So you'd put the Winter+Thursday one below it in the list to ensure it would apply on Winter Thursdays.
taking a break on the kitchen for now
just put a vanilla file into my mod and load it as a place holder?
sure
you needed to load a portrait down the line anyway
i dont intend to make this spritesheet into an npc, this is just a little easter egg i want to put into my mod
if the ape comes at you for copyright infringement i'll deal with him outside
in that case just load any old portrait-like asset
No copyright infringement on that
oh yeah
New quote added by atravita as #7138 (https://discordapp.com/channels/137344473976799233/156109690059751424/1466284766470078584)
{
"DynamicTokens": [
{
"Name": "MyToken",
"Value": "Value A"
},
{
"Name": "MySecondToken",
"Value": "{{MyToken}}2"
{
"Name": "MyToken",
"Value": "Value B"
}
]
}
{{MyToken}} in a patch always be Value B due to being the last valid definition of the token.
There is a corner case if you have interdependent tokens like {{MySecondToken}} in that they use the value at their order, so {{MySecondToken}} will have the value of Value A2.
Conditions or anything else doesn't change any of this.

I want to get a mail from someone after I create the game character on Spring Y1 D1. How to create a mod for it?
https://stardewvalleywiki.com/Modding:Trigger_actions
use a trigger action to send the mail at DayStarted with no Condition
we are so back
i found this, but dunno if it will help here
[context im trying to move the fridge in the harm house kitchen]
ah yes. harm
😔 harm house... so violent...
but yeah, just put the x y coords you want the fridge to be in
wherever your cursor is pointing
it's the bottom left hand side
from top to bottom
22,21
22,22
22,23
where im gonna move the fridge to
you can find the x y coords
these are the xy
oh this would a cp wouldnt it be
?
content pack?
the moving of the stuff, woul that be a content pack mod?
oo okayokay
aight gang: custom map is not wanting to load in even though i checked the file path and it seems to be correct. any ideas on next steps? i've attached the SMAPI error and the log in my content.json
by construction, a mod must be exactly one of two things: a SMAPI mod (C#), or a content pack for a SMAPI mod
sites should put that instead of the "what gender are you" question
content pack or SMAPI mod
I wonder what would break if a mod could both be content pack and c# mod
Farmhouse only, repositions the fridge independent of the map check for untitled tile sheet tile id 173 fridge.
hi, you prefixed your map with your mod Id. you need to type it in full when you use debug
did you make an entry for that map in Data/Locations or similar? it won't exist in-game otherwise
hate having learning disabilities
debug warp does a fuzzy match, so i would actually expect that command to work if the location is cromulent
yeah, debug warp stop works for busstop and such, though I'm not sure exactly how it searches
(it's a good assumption to make in most cases, but that's one's lenient)
(for example, most npc-targeting debug commands are fuzzy, but debug marry, if memory serves, is not)
hoow woul one put this into code? my main confusion
ooh maybe not. how would i go about this?
from my attempt one time, it at the very least didnt immediately break Content Patcher (though its HasMod token wouldnt be strictly correct)
(that is, i made a mod that was both its own C# mod and a CP content pack)
there's a basic example in this section, and the rest of the page goes into more detail about other options
https://www.stardewvalleywiki.com/Modding:Location_data#Examples
you can also look at the unpacked Data/Locations file from the base game for examples
there's probably a good location guide on the tutorial wiki too, though I'm not familiar offhand
bless, thank you 🫂 i get so lost in the wiki pages, it's so hard to find what i need sometimes
you and me both
but i get lost in the actual page
glad i'm not alone hehe
this seems to be how you use that MMAP feature, but if you're trying to make all those tiles you listed work like the fridge, I don't think it supports that
Since it's hardcoded to look for the fridge tile ID, you shouldn't need MMAP after all because just moving the fridge should work, apparently
though ig you just listed which ones look like they're part of it, so probably the middle one 
it's probably whichever looks like it's the bottom of the fridge sprite
but like Aba said, you might be able to just move the fridge tiles somewhere else in the map editor
okay okay
(Sorry for misleading you in the first place spirit. I was right that it was hardcoded, just not how. I thought it might have been tied to tile coordinate.)
dw!!
Hey guys quick question
I'm writing dialogue and for some reason the % is showing up in the text boxes I'm writing
Like I've got it written in the code "%Hm? It's gotten so late. I should go home."
And the % appears in the text box in game
hmm show json?
White mode 
Lol sorry Nomori
my vsc is in light mode too XD
but i changed it slightly
it's not the default light mode
That feels like a war crime
/lh
im using this one lol
Okay, that's not that bad 😅
Thanks for pointing me in the right direction Forsy. I'm putting it away for the night but now I have an idea of where to pick up tomorrow ❤️
I have a question about having both a comment topic and a discussions tab on a nexus mod. Is there a reason no one seems to have set it up this way? Because it seems that you can name the discussions tab, I think it could be used as a very hard to miss troubleshooting section, and would make it easier to keep the posts section for everything else. This is a nexus article about it: https://www.nexusmods.com/news/281
three tab is big number, too many post to track, head hurt
but yeah I can't be bothered when I'll do just fine with a bug report tab for crucial issues and a forum for the rest
some people do. you don't see it very often on the stardew nexus, though
(this line of thinking can be applied to users as well)
if your mod is doing big numbers then I can see having a more extensive forum being useful, but with my most popular content mod having 15k UDL at best I don't see the need
I'm thinking of npc mods using it I guess. It's so annoying seeing someone post large swathes of their smapi log text in the comments tho when I'm trying to read opinions, and I feel like this could help with that... it wouldn't fix it, nothing can totally fix nexus users (I say without malice, genuinely)
I feel like juuust one extra forum with an incredibly clear lable for troubleshooting help might benefit users though. I can't be sure, because I have not tried 😅
it can't hurt
your mod pages are your own to do as you please with at the end of the day
Is there a way to move bug complaints out of the posts and into the bugs section? I had tried a while ago because someone had posted a huge picture of their issue and I felt that it was clogging the comments up, but whatever I did didn't fix that...
like this
I did make it a bug, but I don't think it got rid of it in the posts tho. Is it because I did not delete the bug when I fixed it?
oh hm idk if it moves it or just copies it over
I think it copies over...
Is there already a fish mod with every fish in the world already?
i don't think it's possible
like
for there to have already been one
because there are a lot of fish
and i don't know who out there would spend their time making a mod that has every single fish ever
but you can be the first
there are merely 33000 extant species of fish out there
well within the INT_MAX limit
(that you know of)
I'm looking forward to fishing up the Devils Hole pupfish in the Ultimate Fish Mod
and getting fined 28% of my income the next day
well i guess someone who is really dedicated could to that
only 33k
I’m trying to create just one fish
surely it can't be hard to just pull the wikipedia category for fish and flatten them all into a name and a crushed png sprite
Can it be anything?
my boy the Radioactive Carp is in the game. it can be anything
you could turn literally anything into a fish if you give it fish data
hell, i could make shorts fish.
I have a small cove area and indoor water pools for fish. What’s a good price point and do I have to tie it to some quest?
those are pretty subjective
it really depends on what you want the fish to do
or how rare you want it to be
I am officially annoyed
this on a tile property is how footstep sounds work, yes?
On the back layer
I mean, the tile is on the back layer
with this property
well generally yes, but there's more logic to it
so why am I just hearing the same sound as whatever I walked off of? If I walk off grass onto this, it makes grass sounds. If I walk off stone onto this, it makes stone sounds.
why does its sound depend on what I was previously walking on
that's absolutely not the sort of problem i was expecting hahah
do you have a video with audio?
Stardew's kinda hard for me to capture for some reason, and I am not adept at recording things. I can try, but it's just as I said, the sound doesn't change until I walk off the other side of the ramp and onto a different surface, and it's of whatever I was walking on.
let me try
on windows 10+ you can press win+G to open up the game bar with screen recorder
otherwise sharex works well for recording videos with ffmpeg installed
Multiple ways I tried to record things actually just showed black. I gave up and grabbed OBS
but I've got a video
just imagine mr Test there shrugging wildly at the end, because why steps do that???
the Buildings layer is also checked for Type properties
I don't have anything on Buildings there
your tiles don't have a type property there do they?
Nope
also to be clear what I did to add the step sounds:
- I had the vanilla tilesheet with all the vanilla properties on this map patch.
- I went to the tiles I wanted to have wood step sounds and added the appropriate property.
- Save
is the property value exactly Wood, or are there leading/trailing spaces?
I copied the whole property from the normal wooden steps. Double checking, it is exactly Wood
Also might be worth checking them in game with lookup Anything to make sure the tiles do have the property in game
would you mind sharing your map file?
oh right i can just download it
Look Up Anything is not seeing that property
is it just... I dunno, because the tilesheet in Town itself doesn't have that property?
Map patches might not pass through tile properties, I'm not sure
anyway to directly answer the question of 'why do the steps carry over', FarmerSprite checks for Buildings/Back Type is not null or empty, then for Type equals Dirt, Wood, Stone, or Grass. if so, use the appropriate sound, otherwise use the cached previous sound
Oh that makes sense if it's just not seeing the wood property
You should be able to set it as a tile object property though I think so it does apply for those specific tile coordinates (I have never tested this so my understanding may be wrong)
if you're indoors or underground it'll use a separate sound without checking any floor types, but that's not relevant here
try adding a TileData object with Type Wood:
no problem! i didn't end up downloading the mod tho so sorry about your 1 dp
LOL don't worry about it, it works and that's all I care about
i could've sworn there was a dialogue key for the first time you chat with an npc but i cant find it
Introduction right?
It's a conversation topic so it's down the bottom of the dialogue page
ohh alright
It won't work for any NPCs met after the initial however many days the intro CT runs for
can't i just set it to Year 1 day 1-6?
Set what?
the date in game
If anyone installs the mod on a game in progress, they won't be seeing it
oh alright
if i want to randomize i18n dialogue would i have multiple strings with the one key and do {{Randomize: {{i18n: key{{Random: {{Range:1,5}}}}}}?
I'm not sure what the initial {{Randomize: part is, but otherwise that sounds right
{{i18n: key{{Random: {{Range:1,5}}}}}} parses into one of {{i18n: key1}}, {{i18n: key2}}, etc, once per day
so you'd have "key1", "key2", etc in your i18n
( @dusk mulch )
ty!
(for sanity have spaces between each closing tag {{i18n: key{{Random: {{Range:1,5}}}}}} vs {{i18n: key{{Random: {{Range:1,5}} }} }})
alright, ill try to remember that
Does anyone know where I can find Sandy's location during the Flower Festival? She isn't showing up, and I am not sure if that's because I haven't seen an event or the mod I am creating messed with the code.
As far as I can tell, she never attends that, unless a mod adds her. She has dialogue in the event data, but no spawn tile in either of the festival maps' "set-up" and "mainevent" layers, and she isn't scripted to spawn by the events.
(In the unpacked game files, Maps/Forest-FlowerFestival1 and 2, Data/Festivals/Spring24)
my npc isn't getting any dialogue, i'm not getting any console errors though. anyone know why?
{
"Action": "EditData",
"Target": "Characters/Dialogue/{{ModId}}_GJunimo",
"Entries": {
"Spring_{{DayOfWeek}}": "{{i18n: Spring{{Random:{{Range: 1,5}} }} }}",
"Summer_{{DayOfWeek}}": "{{i18n: Summer{{Random: {{Range: 1,5}} }} }}",
"Fall_{{DayOfWeek}}": "{{i18n: Fall{{Random: {{Range: 1,5}} }} }}",
"Winter_{{DayOfWeek}}": "{{i18n: Winter{{Random: {{Range: 1,5}} }} }}",
}
oh wait let me try patch export
yeah it is being implemented
the game might not recognize full day names? vanilla keys are like summer_Mon
oh let me try that
which I don't think CP has a token for directly, but you could probably make a dynamic token to convert {{DayOfWeek}} into the short versions
other guess is whether DayStarted is already too late
ive never made or touched dynamic tokens
right, it might need to exist the night before, rather than conditionally (idk personally when it chooses dialogue though)
ill change it to the short versions and try doing it the day before
Hello I just updated my mod I think it’s finally as stable as can be and polished I can say with some certainty
Since I tested it. I can’t see the problem in the image by the way
Wanna find 1.6 event modding tutorials, I'm struggling with ChoseDialogueAnswers. I need an example of ChoseDialogueAnswers usage to replace aliases in \"#$q event_name null #insert_question_title#$r event_name 0 answer_1#insert_answer_title_1#$r event_name 0 answer_2#insert_answer_title_2\"
Oh that looks nice, what is it? 
i'm workin on an update
im trying to replace the sound effect when characters talk with sans and im having trouble getting it to overwrite, i also tried using sound tweaker but it didnt play any audio at all. i planned on making a small mod that would change the sound effects of every character but im already stumped just from this haha. can someone help me pls 💔
well, this CP code would add the sound to the game's sound bank, but there's nothing to tell the game when to play it
omg ur right LMAO
my brain is fried from work thanks
anyone know an example of a mod with an animal that does random items of some kind
not sure how to format my item query
hmm maybe i need to do that via EAC actually
/speak Loraine \"question null #{{i18n:event-CCS_BusyLoraine.02}}#{{i18n:event-CCS_BusyLoraine.03}}#{{i18n:event-CCS_BusyLoraine.04}}\"/fork LoraineSolo
Am I doing it right? I mean... isn't my command wrong?
I might do it better
I don't think you need to have the NPC speak the question null command.
It should immediately be /question null "{{i18n:event-CCS_BusyLoraine.02}}#{{i18n:event-CCS_BusyLoraine.03}}#{{i18n:event-CCS_BusyLoraine.04}}\"/
and yeah you put the " before question null when it should be after
That's because it doesn't matter who's asking the player the question, it'll appear in it's own message box
/speak Loraine \question null "{{i18n:event-CCS_BusyLoraine.02}}#{{i18n:event-CCS_BusyLoraine.03}}#{{i18n:event-CCS_BusyLoraine.04}}\"/fork LoraineSolo/
this?
Hello, everyone! I made my first ever mod or custom farm mod. I already posted on reddit and they redirected me to the discord server. I dont know if im in the right place but i ran into a few miner problems like the greenhouse dirt tiles when moving it and why my ducks aint swimming in the ocean. Also, i need to learn how to spawn ores, forages and fishes via FTM. Thank you all 🙆🏼♀️
remove the /speak loraine at the start
okay
well that's a fun wrinkle. set an animal to occasionally dig up the wall skull decor Gus sells at the desert fest. it will indeed do it. but it's an indoor wall only item, so it's stuck forever to the farm dirt
can edit the furniture data so it becomes a generic outdoor decor, but then you can't use it as a wall decor like vanilla
You should be able to set it to IsDropped: true
hmm
Or maybe that's only for monsters haha
where would that happen
ah
well it is being done via EAC, maybe it can do that somewhere
actually yeah maybe just setting it as a debris drop would work
although then it's not really digging it up either, hm
The debris drop is how I got around the furniture sticking to ground issue, yes
You might be able to puppy dog eye Selph into seeing if they can give digging up the option to have it drop as debris
Nope
I did briefly use EAC for animal museum to make animals drop photographs at high friendship but then I switched method entirely
i think i got it now. they'll harvest and carry it around and you can click on them to get it. or, they'll carry it into their barn and drop it as debris the next morning
so hey crop harvesting pterosaurs coming soon
now if i could just figure out how the hell to make random fish drops lol
nah all my dinos are miniature
feature creepin again
now i'm wondering if there's a way to restrict cooking a food to only the campfire
probably not neccesary
There used to be a mod for that
ok debris worked for the skull, rad
"Id": "fry pan",
"Condition": "RANDOM 0.008 @addDailyLuck",
"MinimumFriendship": 1000,
"ItemId": "(W)38"
},```
this made an error item, hm
What is (W)38
penny's frying pan
Aren't Tools inheriting objects
but i dunno
wiki also says W
I could not set weapons as monster produce even though they can be drops from killing monsters
interesting
Though it was much worse than what you are experiencing - mine crashed the game
i'll mention it to selph
and now my mammoths are somehow crashing livestock bazaar, odd
something with it's drop data is borken it seems
the frying pan is a 1.6 item right, i think it'd have a string id
i think it was an unused item for a long time and 1.6 just made it obtainable
Oh do u have a null value in ur produce
I should probably add check fo it send log pls
Log Info: SMAPI 4.5.1 with SDV 1.6.15 build 24356 on Windows 10 (10.0.19045.0), with 18 C# mods and 10 content packs.
gonna reboot my game and see if that helps
i'm doing like 50 things at once of course so if something is unclear lemme know
gotchaaa okay
i've been told animal produce adds the (O) and there is apparently an override feature for solving this
isit hard to ake a farm map,,
guys you know why I make a custom item and just show the default name not the localized name ?
private void OnAssetRequested(object? sender, AssetRequestedEventArgs e)
{
if (e.NameWithoutLocale.IsEquivalentTo("Data/Objects"))
{
e.Edit(asset =>
{
var data = asset.AsDictionary<string, ObjectData>().Data;
foreach (var location in Teleport.Locations)
{
var itemId = $"{ModManifest.UniqueID}_{location.MapName}";
var itemData = new ObjectData
{
Name = itemId,
DisplayName = Helper.Translation.Get("item.kivo-shrine.name"),
Description = Helper.Translation.Get("item.kivo-shrine.description"),
Type = "Basic",
Category = StardewValley.Object.toolCategory,
Price = 2000,
Texture = Helper.ModContent.GetInternalAssetName( "assets/objects.png" ).Name,
SpriteIndex = 0
};
data[itemId] = itemData;
}
});
}
}
Are you testing by spawning a new item
Because you didn't use localized text the translated object name would be baked into the item instance
okey i might know why
There are quite a few quirks to farm maps, so definitely not something a pure beginner would do
Not hard per se, but there are a lot of pieces to take into accounts
private void OnAssetRequested(object? sender, AssetRequestedEventArgs e)
{
if (e.NameWithoutLocale.IsEquivalentTo("Data/Objects"))
{
e.Edit(asset =>
{
var data = asset.AsDictionary<string, ObjectData>().Data;
var itemData = new ObjectData
{
Name = Teleport.ItemId,
DisplayName = @$"[LocalizedText Strings\\Objects:{Teleport.ItemId}_Name]",
Description = @$"[LocalizedText Strings\\Objects:{Teleport.ItemId}_Description]",
Type = "Basic",
Category = StardewValley.Object.toolCategory,
Price = 2000,
Texture = Helper.ModContent.GetInternalAssetName( "assets/objects.png" ).Name,
SpriteIndex = 0
};
data[Teleport.ItemId] = itemData;
});
}
else if (e.NameWithoutLocale.IsEquivalentTo("Strings/Objects"))
{
e.Edit(asset => {
var dict = asset.AsDictionary<string, string>();
dict.Data[$"{Teleport.ItemId}_Name"] = I18n.Item_KivoShrine_Name();
dict.Data[$"{Teleport.ItemId}_Description"] = I18n.Item_KivoShrine_Description();
});
}
}
well it runs now
Obviously, the item was registered too early(
Oof.
It appears I've spent so much time making HD portraits that I haven't bothered to check what makes them work with Portraiture in the first place.
Odd. With other mods, I just drag their portrait spritesheets into a dedicated portrait folder in the Portraiture one and everything works fine.
More specifically, following this tutorial with every other mod.
https://youtu.be/fsJMsc6RTgk
I named the portrait spritesheets I made after the original portraits, so I don't know what could be the issue here.
Maybe I need to make a content pack, but again, the others work perfectly fine without them.
You need a specific naming scheme
Yeah it's their internal name
Could one get it from, say, talking to them and then looking at the SMAPI log?
Because I could give you a parsed log to look over.
pretty please with a cherry on top
you can find it by patch exporting Data/Characters
in the console patch export Data/Characters
no mod ID before?
Pretty sure Portraiture only needs the name itself.
if the internal name is prefixed by a mod ID then it definitely still needs it
You need whatever their key in Data/Characters is
ok then that's fine
Unfortunate the {{ModId}}_ prefixing is still rare for NPC
Dunno if that's good or not.
On one hand, harder to identify when there's multiple NPCs of the same name.
On the other, lazy.
To be fair, jorts and jean have been around a while
the likelihood of another creator making a JeanCat is sooo low so i understand why tia didn't
i also have zero room to talk, i thought the same when i first made my NPCs
"surely first name last name is unique"
I've yet to make an NPC.
But when that happens, I'll for sure add a prefix.
Anyhoo.
ty ty...
ALSO if/when you plan to I can offer code to yoink and other help 
Oh yeah?
Appreciate it, bestie.
(it's bad. prefixing has almost no cost for mod authors and not prefixing needlessly increases the chance of problems for users)
everybody making the calculus "surely no one will make another npc named JeanCat or FirstNameLastName" is correct, no one is going to do that, but i would rather have a guarantee (smapi will not load two mods with the same id, so your namespace is fully free for you to use, barring malfeasance)
Also formercharactername can be used to migrate
I think the bigger problem is actually just ppl not wanting to write 10 more letters for {{ModId}}_ but u can solve that with a DT
(Other benefits include...
- being easy to identify the cause of errors reported on generic pages like SMAPI;
- automatic integrations for other mods like Lookup Anything which can parse the ID to identify which mod added an NPC/item/etc.)
(another benefit: you won't be told every single time you share a json that you need a modId prefix)
when i made VMV the main reason i had a name/familynamesmallsuffix rather than mod id was :
- some mods still used the internal name for stuff and the idea of the name of my character being displayed as Lumisteria.MtVapius_Name was annoying me
- bonus excuse, modid didn't exist yet
of course mods can update and solve this issue so my reasons to do this on the next mods are pretty slim
Does the game keep track of the deepest level of the mines reached, or is there a way to check if the player has completed a quest or not?
https://stardewvalleywiki.com/Modding:Game_state_queries
the game doesn't track completed quests (yet!), but there is a query for the lowest mine level
MINE_LOWEST_LEVEL_REACHED
Yet?
Is this a new feature in 1.7 
Oh ok, does it have a release date btw?
no
ok ty ty 
I think the only comment on 1.6.16's release date was something along the lines of '(hopefully) less than a year', but I could be misremembering
Got it
YourName_ModName.NpC coming to a Nexus near u
@royal stump Thanks! I thought I was going crazy by not being able to find Sandy at the festival. 🤔 I might add Sandy to a festival then.
@autumn tide: look at this (16h ago)
Okay, my mod building workflow is now about... 90% done being modularised in preparation for Nexus eventually giving us a mod upload API.
another modding tool release?
https://www.nexusmods.com/stardewvalley/mods/41779
Does it work from github/lab releases?
The upload API?
Not sure about GitLab, but I plan to use the release published trigger for the actual upload via the API: https://docs.github.com/en/actions/reference/workflows-and-actions/events-that-trigger-workflows#release
So I can just have my regular workflow produce a draft release, I can check it out, then publish the release on GitHub and push it to Nexus.
accessibility is always nice 
aah okay, tysm!!
what's that UI mod?
Livestock Bazaar
Hello! Does anyone know if there is a guide somewhere to make flavoured artisan goods with content patcher?
are you looking to make a whole new type of artisan good?
there's one nested here: https://stardewvalleywiki.com/Modding:Item_queries#Item_spawn_fields (search for "flavored oil")
- the page on machine data, assuming that's where you make them
for an example you can look at Cornucopia Artisan Machines
and yeah assuming you want to make a whole new type lol
Thanks! thats exactly what im trying to do xD. I checked the code but i dont understand a couple things, im in machines/dryingrack, in the dried herb rule. Here where is item query in the output? or is defined in other files
"OutputItem": [ { "ItemId": "Cornucopia_DriedHerb", "ObjectInternalName": "{0} {{i18n:DriedHerb_name}}", "ObjectDisplayName": "[LocalizedText Strings/Objects:DriedFruit_Flavored_Name %PRESERVED_DISPLAY_NAME %PRESERVED_DISPLAY_NAME]", "PreserveId": "DROP_IN", "CopyPrice": true, "CustomData": { "selph.ExtraMachineConfig.CopyColor": "true" }, "PriceModifiers": [ { "Modification": "Multiply", "Amount": 10 }, { "Modification": "Add", "Amount": 50 } ] } ],
also, i see that for flavored goods there seems to be 2 sprites, one that for the default 'flavorless' item and one for the 'colored' part. Where do i have to set the colored part sprite? in the objects i only see 1 sprite index being used
the next sprite is automatically used if you set ColorOverlayFromNextIndex to true in object data
that item query is the output
(also you dont need the CustomFields thing for copy color; the vanilla CopyColor field works now)
(the mod was made back when it didn't work)
I see, thanks for the help! i'll try and see if i can make it work. I just started modding and i became obsessed with artisan goods 😅
(if you meant where the dried herb item itself is defined, that's in object data as usual; the snippet above is the machine output)
Apologies if this is not exactly the space to ask
While not new to modding, I am new to trying to create mods or edit existing ones (mainly just changing text or icons) so my knowledge its extremely limited. However, wanted to know if (for PERSONAL use only) would it be possible to merge assets and code of an old mod into a new, up to date one (or at least create something new featuring both sides)?
Wanted to know if it is possible. Been trying to read guides on mod editing/creation and python, but I am enough of an idiot and fail to comprehend 90% of what it's written ><
Thank you very much for your time, and apologies once more.
Small update to #1452126473342287923 today to bring the Unlockable Bundles schema current with the pack
kinda a vague question innit, but with enough code you can do anything and everything
content patcher packs in particular are just collection of patches with the root at content.json
(also python will not really help you here)
(yeah I'm wondering what you're reading that tells you to use python)
What I want to do it's to take an old, abandoned Json Assets mod and add its contents to a similar, more recent CP mod.
I mentioned Python because to convert Json to CP asks for the converter in python
the converter is written in Python; you just run it like a program (no need to like write Python code or anything if that's what you meant)
Json assets does work still, so if you don't want to convert it's fine
Another easy way is to load the mod as is with json assets and then patch export Data/Objects (or w/e relevant asset)
Copy the entries you want into a content patcher EditData
Would be scary If someone created a mod about that Green rain arg
Not working. Trying to use https://github.com/scriptsforweirdos/StardewJA2ConPat and not working despite downloading and installing both pillow and pyjson5
!modideas
If you have a mod idea that you aren't planning to make yourself, you can put it in the mod ideas github: https://github.com/StardewModders/mod-ideas
However, this does not mean anyone is guaranteed to work on your idea—modders who are looking for ideas sometimes go through and work on what they find interesting off this list. If you want to pay someone to make your mod idea, there are a few people who do commissions (mostly art, sometimes code); you can ask around, search usernames for the word comms, or see !commissions.
what's the error exactly
(also I won't be able to help much since I haven't personally used it, and I'm also on Linux)
Its in Spanish, so translated to english
python convertja.py --m="Bag with Gems" --s="C:\Users\XXXX\Desktop[JA] MOD\Objects\Bag with Gems" --d="C:\Users\XXX\Desktop\Nueva carpeta"
no se encontr¾ Python; ejecutar sin argumentos para instalar desde el Microsoft Store o deshabilitar este acceso directo desde Configuraci¾n > Aplicaciones > Configuraci¾n avanzada de aplicaciones > Alias de ejecuci¾n de aplicaciones.
Translation: Python was not found; run without arguments to install from the Microsoft Store or disable this shortcut from Settings > Apps > Advanced app settings > App run aliases.
(yeah I def have no idea how python works on windows 😅)
Thanks either way. Will try to read again those guides, but I wasn't kidding when I said I am stupid regarding this lol
looks like you don't have python installed?
I have it, Windows not recognizing it.
Successfully installed and currently running
So either Windows its being delicate and not recognizing, or pathing error
these are the requirements, you only mentioned pillow and pyjson5
ok one moment
It's fucking windows
-# I've never gotten the converter to work, I just do patch export data instead
You need to install python through the windows store. Not anaconda.
Run just python
Nothing else
Thanks
This should install python the way Microsoft wants it
Then run the command you've been trying
i once had trouble running a program because powershell refused to do it
How does that one work, if I may ask?
what chu said here
Doesn't really tells me anything considering I don't know how to Patch Export.
!patchexport
A patch export makes a copy of specific stuff in your content folder so you can see what changes have been applied.
- Load up a save (with Content Patcher installed)
- Type
patch export <FILEPATHOFTHING>in the SMAPI console and hit return - Look in your
patch exportfolder in the game folder for the relevant json file or image - If it's a json file, you can share it via smapi.io/json. If it's an image you should just be able to look at it.
amazing idea
...hm.
So I've made peace with just having that particular description only update on a new day / save loaded.
However while I've gotten the Harmony Postfix working properly and updating with GMCM changes etc., I now am realizing some of the old Content Patcher Description edits I had implemented ~2 years ago don't seem to be working at the moment, though I could swear they were when I tested them back when I first implemented them.
The odd thing is the new Description edit (to Farming Mastery description) I'm implementing through Content Patcher does work, and so do various Content Patcher edits to Object / Machine data which are controlled by the same Content Patcher Tokens which should govern these older Description edits, so I'm not sure what the issue is. Also unsure whether this is due to some change in the past ~2 years, or me accidentally screwing something up recently, etc.
Are there any very simple, basic reasons why a Content Patcher edit to text in "Strings/1_6_Strings" based on Token conditions wouldn't work? Perhaps so fundamental/obvious that they aren't worth mentioning in the Content Patcher documentation?
There's no simple basic reasons because you haven't shown us a patch summary 
I want to make a horse retexture mod, but I don't really know the bounding boxes of the horse texture, mainly the head only sprites, or where to expect the player to sit so I was wondering if there some sort of guide for either thing? could I get away with not having carrot eating sprites or no?
Well if u dont have carrot sprite then u see nothing when u feed the horse
you can get away with no carrot eating but your carrot will be absorbed into the nothing if you do it
that makes sense
Ah sorry!
So, here are the particular item Description edits which don't seem to be taking effect, from one of the asset .jsons used by the Content Patcher portion of my mod:
"Action": "EditData",
"Target": "Strings/1_6_Strings",
"Entries": {
"MushroomLog_Description": "Grows mushrooms every so often, but not in Winter. The more wild trees are nearby, the better it works."
},
"When": { "Mushroom Log stops in Winter": true }
},
{
"Action": "EditData",
"Target": "Strings/1_6_Strings",
"Entries": {
"FishSmoker_Description": "Place fish inside with a piece of coal to create smoked fish, which is worth double. The quality of the smoked fish is {{Lowercase:{{Smoked Fish Quality}}}}."
}
},
{
"Action": "EditData",
"Target": "Strings/1_6_Strings",
"Entries": {
"GoldenAnimalCracker_Description": "Give this to a farm animal to permanently double its produce yield. Doesn't work on pigs. Pierre may trade some useful crop-growing items for this."
},
"When": { "Trade Crackers for Fertilizer": true }
},```
Where the tokens used as conditions are all set in the config (also integrated into GMCM)
However, within the same .json file these other edits do take effect, such as editing a description in "Strings/1_6_Strings" but conditioned on a C# custom token:
"Action": "EditData",
"Target": "Strings/1_6_Strings",
"Entries": {
"Farming_Mastery": "You can now find Golden Animal Crackers (even from doing most Farmwork!), which permanently doubles a farm animal's produce. Doesn't work on pigs."
},
"When": { "Xen0nex.BetterBalance/FarmableCrackers": true }
},```
Or various edits to Object / Machine data like this (even ones depending on the same Content Patcher Tokens as above):
```{
"Action": "EditData",
"Target": "Strings/1_6_Strings",
"Entries": {
"FishSmoker_Description": "Place fish inside with a piece of coal to create smoked fish, which is worth double. The quality of the smoked fish is {{Lowercase:{{Smoked Fish Quality}}}}."
}
},```
patch summary is a command you can run to tell if your edits worked or not
that said there is no key GoldenAnimalCracker_Description in vanilla Strings/1_6_Strings.json
it might have been there and moved? i dont know
Ahhhh maybe I need to unpack the latest game files. I'm still referencing the game files I unpacked ~2 years ago, where there is indeed a "GoldenAnimalCracker_Description" key.
yea always mod with latest unpacked content
there were a lot of changes in 1.6.9 specifically
okay I did say I would be offline for some other stuff but I'm a liar- can you nest {{i18n: key}}
dammit hit enter too soon
New quote added by atravita as #7157 (https://discordapp.com/channels/137344473976799233/156109690059751424/1466585187113631867)
okay I did say I would be offline for some other stuff but I'm a liar- can you nest {{i18n: key}} INSIDE an i18n's ...response? the orange one in vs code-
i dont know what you mean exactly but consider that you cannot use tokens in i18n and {{i18n: key}} is a token
gotchaaaa okay
ty chu!
behold, my monstrous creation:
"{{DayOfWeek}}": "{{i18n: i18n_Dialog._npc_._everyday_.{{Random: 0h, Low}}.{{Range: 1, 20}}}}",
"{{DayOfWeek}}2": "{{i18n: i18n_Dialog._npc_._everyday_.{{Random: 2h, Low}}.{{Range: 1, 20}}}}",
(i will make it worse)
Wait you may have a problem, let me double check
yeah the DayOfWeek command won't work for you, let me show you the bit that everything I learned randomization from uses
ohhh thank you!
The content patcher token is like "Monday" instead of the abbreviated ome you need
{
"Name": "WeekDayList",
"Value": "Sun, Mon, Tue, Wed, Thu, Fri, Sat"
},```
..oh?
Use that content patcher token instead
OHHHH
pop that in and do WeekDayList instead of DayOfWeek
you need it abbreviated! thank you
Whyyyyy
Can't u just use spring
Oh wait there;s another part to it
just didn't copy the whole dang thing
{
"Name": "WeekDayList",
"Value": "Sun, Mon, Tue, Wed, Thu, Fri, Sat"
},
{
"Name": "WeekDay",
"Value": "{{WeekDayList |valueAt={{Query: {{Day}}%7}}}}"
}```
You use WeekDay instead of DayOfWeek, do not ask me to explain all of this, we are building a tower of randomization code here
okay!
but I know it works
do not fear, I will not question the wisdom of the gods (ppl who can actually code)
I have about 400 lines of dialog randomization code, good luck LOL
(but I add to dialog pools by day, season, added mods, etc)
hehehehh
I shall update you all on my crimes
OH and I did do that token randomization thing! went a lil overboard-
I was like "man I wish I can have him casually refer to NPCs from mods in randomized dialog" and then Axell and Nova loomed in the background dramatically
Adding to pools instead of having to swap made it actually possible
one sec lemme find my crimes..
my favorite part of these crimes is that the single dialog lines have different versions depending on events you've seen with the characters he talks about
So it says range 1, 4, but there's actually 8 lines technically
Using those query things in dialog
HAHAH I WILL MAKE MY CODE AS TWISTING AS THE LABYRINTH
Hey hey, it's ya girl, back at it again with fun questions; anyone know about the farm cave code that determines whether you get mushrooms or fruit spawns, and where the region for that is? May or may not have made a custom farm cave for my map, and it uhhhh... well...
As much as mushrooms can grow on walls and ceilings, I don't think they're supposed to have planter boxes there too
So I couldn't change where they spawn if I tried then huh?
not without C#

didn't somebody publish a framework for this exact thing though
well, actually, can something like FTM or SpaceCore spawn BCs in a place at arbitrary times
bc they are just BCs and you can remove the initial ones via frameworks
it was pillow https://www.nexusmods.com/stardewvalley/mods/27985
thatd do it
So does the fruit from the bats have the same problem where it'd be only in the region where the mushrooms are, or is that an anywhere in the cave type situation?
Wanting to know if I'll be suffering with that too, or if that's more like a foragable spawn
those just get placed on any valid random piece of map
valid meaning it isnt blocked by another object and doesnt have a Buildings tile placed there, mostly
Cooleos (And yeah I figured as much with that), so it's just the mushrooms that are to be a problem
Hey everyone! I have a bunch of questions that the good ol' google won't answer haha... First of all, Is it possible to randomize a Custom NPC's schedule?
Totally possible. You can look into Eli & Dylan or Lurking in the Dark for examples of NPCs who extensively use rendomization for their schedules.
I'll check it out! Thank you! 🙂
Next question, is it possible to make a datable NPC no longer datable? The mod I'm working on the NPC can marry one of two vanilla NPCs and the player, but I thought for now it may be easier for early release if the possibility of the player dating/marrying a candidite was not an option and release a version later where it is... if that makes sense lol
Yeah, you can just edit their CanBeRomanced field in their NPC data.
Though if they have a romantic heart event, you'd need to edit those too if you don't want them to still fire.
I tried changing the CanBeRomanced part in my contents.json for EditData, but it didn't seem to work for whatever reason and SMAPI didn't tell me what was wrong or even that there was anything wrong lol maybe it was the wrong folder?
Hmmm from the stardewvalley wiki I'm seeing that I could use Game1.player.mailReceived to check whether a particular mail flag has been set for the player, but I'm not seeing anywhere on the page about how to set a mail flag.
E.G. Wanting to set a custom mail flag to denote that the player has already received at least one golden animal cracker from Farming tasks (via my mod) in the current save file.
Try patch export Data/Characters to see if you actually put data in
just add to Game1.player.mailReceived (it's a hash set)
Ah that makes sense, thanks!
Hmm I guess I should check as I haven't worked with mail flags before:
Do I need to somehow ensure I never attempt to set the same mail flag multiple times?
E.G. Will setting a custom "GotFarmingCracker" flag multiple times result in multiple duplicate flags being added, or is it just treated as a binary exists vs. doesn't exist?
latter (it's a hash set)
should I try that when I load the game in SMAPI?
@acoustic summit Hi! Just a note that your Skillful Clothes repo is missing the license from the original repo, but the original license requires being included when redistributing the code.
(Instead of creating a new repo, I suggest resetting your fork of the original repo and adding your changes to it; that way you don't lose the license and commit history.)
Thanks for the heads up! Yep i'll figure out how to move what I had to the fork I had going.
yea patch export is a console command provided by Content Patcher
omg that's a game changer thank you!
still trying to figure out how to randomize a schedule I may be back on that!
Next question fellow Modders! Is there a way to make it so something happens a certain number of days after the player sees an event?
My mod crossed 100k total downloads today 
wow smapi 4.5.1 suddenly
cant believe im finding this out from my gh home page instead of #mod-showcase smh
I wish there was a way to hijack a cp config with c# so you could just have one config menu for hybrid mods
wren have you considered content pack crimes
Content pack crimes?
Oh that's cursed. I'm intrigued though...
idk if it really solves the gmcm problem tho
what exactly happens when u try register 
Yeah that's kinda the main thing, the rest is solvable with asset jankery
Well based on gmcm's code, it is possible to inject stuff into another mod's config via manifest spoofing
There's two problems with doing that, though- first, it's linear, so you can only append to existing optics, not insert in the middle or at the start. Also, you can't move existing options into pages
the general pattern I've seen (without crimes) for the hybrid mods is to do all the GMCM in the C# side, and then expose a CP token that has the config that your CP pack can then consume
the bad part is just token update rates
I thought about that, but cp forces mod id prefix on tokens which is a giant pain in the ass. It also means you need to edit the c# every time you fuck with config options
In theory the practical solution would probably be to use reflection to modify the config data after cp registers it
Although this might be moot anyways, given the new api that casey was working on
one day I'll look into the API surface of CP and see if there is a middleground that can be made with pintail in mind between the simple api and the complex api that I don't think anyone uses
Really it would just be nice if CP had an api to read and modify options from c#
as the complex api for tokens from memory has just as much control over update rate as internal CP tokens, and so should be able to implement your own manual token provider just as easily
the complex api predates pintail but pathos did a bunch of relfection for it.
it's duck-typed-ish
I think you're thinking of the analysis api
i think lots of ppl use that just for input args
Is there a reason why one shouldn’t expose their own mods current config values via an api?
Hey, does anyone know if a map patch that has a blank space that overlaps with another mod's map patch will let that 2nd mod's interactable tiles still work?
i don't usually do it cus im lazy 
but also cus why do u need to know
I was thinking because of things like PlannedParenthood for example if either they could expose or I could expose configs for stuff like „allow adoption spouse pregnancies or allow roommate marriage“ and such
i usually try to implement things in a way that other mods don't need to go out of way for api to get info 
when it comes to api it's pretty hard to predict what people actually want from you, so imo better to negotiate directly
Ohh and seeing your discussion about cp tokens. If I wanted to expose a state or value from my mod to content patcher packs and/or other c# mods, are gsq or cp tokens the better way? I’ve read the notice about update rates and such, so are gsq the way to go for such things?
gsq is better cus another C# mod can eval that easily at any time
GSQs are always better if it's possible to use them
Currently I just added config fields for those things when these mods are present, but that means the user has to set the values twice, in my mods configuration and in theirs
Thank you!
I got my character's wheelchair animation in game! 😄
you can always do the reflection to get their configs 
!!!!
but you also gotta remember that it's ok if 2 mods are just not compat or take priority
I can?!
(mac has a screen capture tool, no need to use a phone camera)
Omg
I don't know of a mod that would want to have their config data model be part of their public api surface, but then again most mods (except Pathos) don't care as much about breaking changes
the reason why HMK has so many pregnancy features is because i am like "ok i dont want to do compat with this other mod let me just eat their feature"
of course, you can do anything with reflection. i usually reflect my CP i18n instance into my C# mod
That happened to me with better beehouses and pfm mods
now this has nothing to do with whether you should
(is this a bad time to mention my mod harmony patches and intercepts all json loads from CP to be my own data structures instead to inject extra data)
Haha I’ve spent like the last 2 weeks testing my mod with all kinds of other mods and making things compatible
Better beehouses actually does have a really strong api but I think I'm the only one using it
the weak should fear the strong. and i fear most khloe apis
one of the sadder casulties from the 1.6 migration
Yeah. I get why it's been left behind, though. It's an enormous mod
which does have the positive side-effect of raising the market value of other book-based mods
I had plans if I ever did my content mod for advanced logistics to have most of my UI to be inside almanac
Yeah. People typically put a Conversation Topic in the event, and then set for something to happen when the CT expires.
but luckily any desire to work on said content mod has mostly died
I feel like remaking it might be less bad now that stardewui is a thing
you can use some automatic memory generic conversation topics generated for any given event:
https://stardewvalleywiki.com/Modding:Dialogue#Conversation_topics
i promise ill start chu perfection tracker 2 soon™
I'll test this and see if it works
Is it bad that the phrase "memory generic" immediately made me think of Memory<T> from c#
Uh, this is semi mod making related, but I have a damaged image I guess that is greyed out and listed as "icon?" in several of my different stardew valley related folders, one of which is in my mod's asset folder. Anyone know of a way I can figure out what this was??
the dialogue is being added but it won't let me talk to the npc
{
"Action": "EditData",
"Target": "Characters/Dialogue/{{ModId}}_GJunimo",
"Entries": {
"Spring_{{DayWeek}}": "{{i18n: Spring{{Random:{{Range: 1,5}} }} }}",
"Summer_{{DayWeek}}": "{{i18n: Summer{{Random: {{Range: 1,5}} }} }}",
"Fall_{{DayWeek}}": "{{i18n: Fall{{Random: {{Range: 1,5}} }} }}",
"Winter_{{DayWeek}}": "{{i18n: Winter{{Random: {{Range: 1,5}} }} }}",
}
}
does anyone know why?
what is the name of the file
(DayWeek is a dynamic token to shorten "Monday" to "Mon", etc)
simply "Icon?"
Can you open terminal in that folder and use ls to see the file name and extension maybe?
Like the real actual onr
the fix i'd recommend is verifying game files
but if it in your assets folders thats really weird
I can try. I can also do a quick look to view that too. does this count?
That won't help, this is affecting mods as well
not just my personal assets but in other desktop folders too
I say use ls bc the ui might be showing it as a placeholder for the actual filename
ive actually used the complex API more than i have the simple API and not just for input args (though those are ofc important) but while you're there can you also come up with a way for custom API tokens to use named args too so i dont have to reimplement them from scratch, thanks 
is it possible to make a portrait a GIF?
Like an npc portrait?
Yeah
you cant juse use a straight up gif
you can use spacecore to animate them though (or iro's other framework that i dont even know if its out yet?)
https://stardewmodding.wiki.gg/wiki/Troubleshooting:_NPCs try following these troubleshooting steps
Having NPC troubles and overwhelmed by the amount of work that goes into making sure they work? No worries, this guide can lead you through some common mistakes of creating custom NPCs and hopefully get them working!
Before we dive in, here are some helpful links for creating NPCs:
Tiakall's NPC tutorial...
No, but you can use spacecore to animate your pngs
The game doesn't support gifs
iro is working on an animated portrait framework
and beyond that, monogame doesnt support gifs, so its out of the games hands
I think it's due to not starting a new save
(i accidentally sent that message early lol)
Ok, I think I'm using ls wrong because I am not seeing any file names when typing it into terminal 😅
well, beyond a few unrelated things
does an npc need a schedule for its dialogue to work?
have you tried using lowercase season names?
Is your terminal pointed at the right folder?
let me try that
To answer this, no.
I'm... not sure how to preface which folder beforehand. I think i tried typing in the full file path and then doing ls at one point. Is that the wrong way?
You need to navigate to the folder with cd and then use ls. If you just open terminal with no location specified, it defaults to whatever the home folder is on mac
omg its so cute
Ah ok I'll try that
now to go make a quest line
Well this is weird: zsh: permission denied: /Users/me/Library/Application Support/Steam/steamapps/common/Stardew Valley/Contents/MacOS/mods/NPC v4/[CP] mr npc/assets/maps
OH I think I may have an idea though?!
Huh??
I have only noticed this in folders that I changed the display images of... my maps happens to be one of them because I was feeling fancy lol. Could these images be corruptions somehow of that??
Hey wait that path doesn't make sense
?
Maybe? I thought that's what those DS_STORE files were for, but I don't use mac, so who knows
It's the biggest/only pattern
Shouldn't it be Stardew Valley/mods/... Instead of Stardew Valley/Contents/MacOs/mods/...
Or is that just mac weirdness
it's mac weirdness
Fair enough
Yeah that makes sense
I don't think this is a mod issue anymore, the files that have image changes just happen to be mods or mod related.
Thanks for the help tho
(of course you walk a path. definitely not me just now understanding os.walk())
Stack exchange says you are correct
https://superuser.com/questions/298785/icon-file-on-os-x-desktop#298798
I'm going to pretend in turn that I understand that 😅
And meant to make that joke...
Ah, well that's interesting. Somehow, I figured it out before seeing this!
I feel like I always get sidetracked when I just wanted to do a specific thing for my mod
But, again, thakns for your help
thakns
lol
Alright! time to test the thing I was going to do before this. Sometimes I hate mac, but idk if windows 11 is much better.
It's not
At least I'd theoretically be able to play more games on it 😅
Does proton not run on mac?
I think it does, but it's payed I believe?
I got cross over a year ago
Didn't open it once until a few weeks ago
and then found out that steam broke compatibility with it months ago, apparently
So, that was a waste lol
With OS's it almost feels like a pick your poison kind of thing. But that's the negative view. Could phrase it like pick your strengths, maybe.
pick wich hardware you'd rather fight for an hour!
i think wine stopped working for mac for a while
I wish visual studio worked on mac
i think i'm doing pretty ok fighting windows powershell
I tried a C# coding youtube course a while back, and had to use (with the recently free license) Ryder. It was only a little different, but that still made it harder for a complete noob.
hmm. now for my scheduled monthly modding... when it comes to maps and stuff, you can technically make the bulk of a map in CP, provided you have a blank map in tiled with all the right layers right
That's sounds really hard
Like, coding a game or something hard
I'm sticking with windows for now bc I use a lot of exclusive software, and I've managed to feature-mangle it into submission
i just copy an existing map and clear out everything but the layer structure
ok my question was more of a theoretical one. i would never do that XD
but my main question is what are the benefits of doing all the map property stuff in CP compared to in tiled itself? like warps and lights and tiledatas
btw, I gave up when my basic code didn't run and I was pretty sure I changed nothing from the last time
i'd probably be trying mint if photoshop and visual studio worked out of the box. at the end of the day debloated win11 requires the least fighting for the most productivity it feels like
You can but the blank map will determine the max size





