#making-mods-general
1 messages · Page 282 of 1
add ITEM_ID_REGEX GSQ ez
but a silly suggestion to make a iq that does this
Can dynamic tokens pull from i18n?
I keep finding things that I forgot to put in the translation file
they can use other tokens in their Values so i don't see why not
K, I'll give it a try and see. Just wanted to know if there were known issues
Thanks!
just be mindful of update rates
Hello! I am a first time modder and have been running into some trouble. I started with some tutorials and was able to get an NPC to load in but her dialogue and schedule weren't working as well as the warp to her house would not work and I had not idea how to fix it. I restarted with some of the same stuff but I based it off of "Sydney-A new NPC" mod and I cant get SMAPI to load it in at all. I am hoping for some suggestions on how to fix this or even certain parts. Let me know if there are certain files of the mod I should share. Thank you to anybody who can help!
Is SMAPI giving you any errors when you start up? It can be helpful to remove all other mods while testing yours out
It said it remove my NPC because it had no data. I will have to try removing my other mods thank you!
If SMAPI says that there is no data, I think that means that you're missing a manifest.json
Hi Bailey, I'm a new modder myself but I recently got my warp into the house to work. I used this website https://stardewvalleywiki.com/Modding:Maps#Map_properties. I used the action called "LockedDoorWarp" if you search for that on the page.
{
"Action": "EditMap",
"Target": "Maps/{{ModId}}_Outside",
"FromFile": "assets/Outside.tmx",
"MapTiles": [
{
"Position": { "x": 34, "y":16 },
"Layer": "Buildings",
"SetProperties": {
"Action": "LockedDoorWarp 31 31 {{ModId}}_Inside 0900 2100"
}
}
Thank you! I will have to take a look
this is kinda what my use looked like
So, you're interested in creating a new character for Stardew? Good news: with version 1.6, creating a character is easier and allows for more flexibility than ever. However, NPCs are one of the more complicated things to create for Stardew, as they have a LOT of moving parts. This guide aims to provide...
Just in case
{
"Name": "Bailey",
"Author": "llennap4",
"Version": "1.0.0",
"Description": "This mod adds a new NPC named Bailey to town. She is an artsy,up-beet game developer who moved to own to be closer to family and to complete her project. She starts more projects than she can keep up with and is always down for an adventure."
"UniqueID": "llennap4.Bailey",
"UpdateKeys": ["Nexus:???"],
"ContentPackFor": {
"UniqueID": "Pathoschild.ContentPatcher"
}
}
This is what my manifest looks like so far
Alright, remove the stuff in the brackets for UpdateKeys until you've actually uploaded your mod to nexus. Nexus provides your ID when you first make the mod page (you don' thave to publish it)
Also, you are missing a comma at the end of "Description", so this is probably not valid json
the updatekeys are fine to keep like that for now. but yes, you will need that comma
Listen to everything Button says, btw. She's far more experienced than I am! xD
(unless what button says has to do with maps or machines, in which case listen to someone else if they talk over me
)
Thank you both of you!!
I didn't know that! But I like having the warning because it reminded me that I still had to do that thing
Yep up to u what do
Aba is here to talk about maps if needed. Someone else can do machines lol
Important note: Your computer username may appear in the log. If your username is your full name, please be aware of this before uploading it.
Please share your SMAPI log file. To do so:
- Open this page: smapi.io/log.
- Follow the instructions at the top of the page to upload the log file. (Don't copy & paste from the console window!)
- After uploading, it will show a green box with a URL to share. Post that URL here.
Please do it even if you don't see any errors. This has useful info like what mods and versions you have, what the mods are doing, etc. If the issue didn’t occur in your last session, please load the game to the point where the issue occurs, then upload the log.
yeah it can be nice to keep the warning there, but it aint gonna break your mod and make it not load, was all i meant
I thought the "???" would just break it
Nop it's in my mod template even
The SMAPI log?
SMAPI said that her mod was empty, so I asked about her manifest. A full log would definitely help though
Sorry there is a lot here I need to turn off my other mods
Log found, uploaded to: https://smapi.io/log/22320eaa91644ab3930a7625a8966a04
did you add the comma after the description?
(also in the future you should upload to smapi.io/log directly)
I added the comma it has ben parsing my log for a couple minutes now
It looks like your manifest is still mangled somehow. Probably that missing comma
seems like a thing to report to @ivory plume
Is smapi.io/json working?
It's great for catching json errors and pinpointing the exact line
(dunno exactly what this is pulling from but i guess frameworkName here should have a fallback or that whatever reads it later should make sure its not undefined)
if the log does actually load for you does that error still appear
i just get infinite spinny rn
oh ok 
i just looked in the file uploaded directly to discord
which complains about invalid json around Description
Fixed!
yup, log loads now. thank you pathos!
but yeah, make sure you saved the right manifest.json file Bailey, because its still complaining about that part. if you're sure you've saved it, then you should upload your manifest.json again to share it here
Here is the error log with the mods removed
https://smapi.io/log/336ecb885e804f6084e2f2a712743be8
Log Info: SMAPI None with SDV None on None, with None C# mods and None content packs.
Suggested fixes: One or more mods are out of date, consider updating them
the error here is in your MapData_JSON.json file, did you try to write a /* Comment */ but forget one of the slashes?
can you upload that file to smapi.io and send it here?
And maybe MapProperties_JSON.json too
i suspect you have other errors too based on the warnings but let's get rid of the red ones first
you do have random *s in your FromArea and ToArea in that file, in the Vanilla section
im not sure what you intended those to be
if your z_town.tmx contains just like, a single housr you want to add, you'll want to define the area to put it in exactly
If your z_town.tmx is the entire Town map but with your edits on it, you don't want to replace the entire Maps/Town
so you definitely would need to make sure your from and toarea are correct
(i do also have to go for a bit so hopefully someone else will be able to jump in and help further)
I'm not super experienced with maps, but I'll try to help for a bit longer
I've done a couple of map edits
oops I was supposed to add those later lol. I think I am trying to add a patch to the town map (the first option)
You're trying to replace part of the town map with a different chunk of data? Just clarifying
Your patch should be no larger than the area you're actually changing, which means your ToArea height and width should be as small as possible.
Yep. Draw an imaginary rectangle over it. The width and height should be the number of TILES you want to replace
Starting at the x/y tile position (upper left) corner
https://smapi.io/log/f65ce53143bf4edaaa40341d675db09c
I added the Height and width I had from my previous attempt (I used the same map so it should be the same) so hopefully that fixed it
Log Info: SMAPI None with SDV None on None, with None C# mods and None content packs.
Suggested fixes: One or more mods are out of date, consider updating them
I've got to go, sorry. But it looks like your map json is still invalid
Your map properties file is still showing as invalid json. Your map data json looks like it's not invalid anymore, but your FromFile for the spouse room and spouse patio don't exist.
If they don't exist because you haven't actually got those maps yet, you should comment those code blocks out until you're ready to add them in (just to cut down on the number of errors/warnings so that it's easier for you to read your log).
I just realized that I have a specific need, and that I can't find a mod for it, so now I'm wondering if I should make it, but I'd like to be sure it doesn't exist. Are there any mods that make the basic watering can purchasable? It would help out between upgrades, if there is no multiplayer option for some people.
Where is the JSON? I can take a look at the map things if needed also.
I do have maps for the spouse room. Is the map properties a needed json? I only added it to replicate a working mod lol
None of these json files themselves are technically needed except for your manifest.json and content.json. We split our mods up into different .json files (called Includes, because the CP action to make sure they get into the game is called "Action": "Include") for organisation purposes. Sometimes it can be easier for a new modmaker to just put everything into the content.json at first and only start to split into different includes if they decide they want to do that.
(Don't forget to use the smapi.io json site for sharing your json with us)
As for the content of the map properties json file, I can't say whether you need the patches in it without a) knowing what's inside it and b) knowing what you want to do.
But the json has been changed since that message, Lily
If you do have maps for the spouse room, you've put the wrong filepath in your FromFile. It's looking for assets\maps\Custom_BaileySpouseRoom.tmx and not finding that.
Thank you so much! I will work on fixing that. I have to go. But this has helped a lot!
You're welcome :) Good luck!
There's some weird stuff going on in that JSON that I'm trying to understand, I'll get that link in a moment so others can chime in when Bailey's back.
Basically, I'm wondering where the Data/SpouseRooms and Data/SpousePatios targets are coming from? Those are not how you assign those maps to a NPC normally, unless there's some other framework at play that I am unfamiliar with.
Here's the link from the JSON that got dropped into the chat without being uploaded to the JSON parser: https://smapi.io/json/content-patcher/b959d49059df45f7b8acebd89fec08be
SpouseRoom and SpousePatio should be assigned as part of the NPC's Data/Characters entry.
hm is the npc they referenced old
Hmm, it might be related to the fact that she's trying to use an older NPC as her template. Though I'm not sure what Sydney was targeting either. Did those exist in 1.5?
Gotcha, so they likely should rewrite their character to the new Data/Characters model for best practices
most definitely, though if they're using pre 2.0 format they can technically get away with it if they wanna just deal with it later
The use of Custom_ in the location names did at least give away that it's an older format being used for the maps.
Just so you definitely see the conversation happening after you left, we have realised that Sydney is not up to date for 1.6 so she might not be the best mod for you to base your efforts on. Things like Data/SpouseRooms don't exist anymore. I'd recommend looking at Hat Mouse Lacey instead, though ignore anything to do with C# (the HatMouseLacey_Core folder) or anything to do with hats (unless you want your NPC to be very hat-focused too lol). https://www.nexusmods.com/stardewvalley/mods/18177
I am recommending Lacey because I know ichor is a stickler for using {{ModID}}
Lacey is an excellent example.

modid power 
(do be careful looking around in there, though. there are a few oddities due to the C# shenanigans)
I wonder how fast I can make a new NPC 
Keep in mind that making NPCs is a complex process that requires learning many different aspects of Stardew modding.
Here are a few links that can help get you started on all that you need to know:
-
Tiakall has a great tutorial on making a custom NPC for 1.6.
-
NPCs no longer use dispositions, check the wiki page for the new NPC data.
-
Aviroen has put together a template that will allow you to easily create a romanceable NPC.
-
Feel free to jump into the https://discord.com/channels/137344473976799233/1277457201077813280 thread for more interactive feedback and help!
-
Fireredlily has a WIP NPC Builder Please do report any errors you get with it into the NPC thread!
third entry here
Pretty fast, especially if you use the template + the builder. 😉
avi's template is an excellent starting point
Oh I don't think I'd use a template.
if you just want an NPC but with no requirements, there are at least two examples that show you can do it in under two weeks 
Part of my test would be to see how fast I could do it entirely from scratch with the minimal stuff necessary.
Hmm. Does using a dynamic token for NPC internal name impact performance at all?
I do get very sick of writing {{ModID}}_Hiria and {{ModID}}_Louisa
technically yes, practically no
just don't run into those weird token bugs that blueberry runs into
if a key uses a dynamic/config token and it's value uses a dynamic/config token then actually no it won't the tokens won't be parsed
but only sometimes? Maybe?
i think you can do it during development and then sed if u want
I was able to consistently reproduce it and blueberry has a repro pack in pathos's bug reports already but I don't know all the circumstances it happens in
but idk {{ModID}}_Hiria and {{Hiria}} feels basically the same too me 
just a bunch of characters u shouldnt misspell
Oh so if I had Data/EngagementDialogue/{{Hiria}}0: "{{i18n: {{Hiria}}.Engagement.0}} or something it would go wonky?
something like that yeah, though it didn't require that the key and the value use the same token
I think the only thing I hate about having the {{ModId}} in front of my npc name is that it now works wonky with portraiture... but otherwise typing it has become second nature
I don't have any issues with Hiria, it's the {{ModID}} part that slows me down. I always get the capitalisation wrong and have to restart.
are ModId and ModID not interchangeable 
I guess I should stop capitalising the D though
I mean i always use the lowercase option but
dynamic token in key + config token in value = broken. Any combination of dynamic and config or both breaks
I usually write {{MODId}} when I am going too speedily
they are interchangeable yeah
i think thats fine
Not case sensitive
Content patcher tokens are not case sensitive
Alternate option: {{MoDiD}}, every time, forever
nou
I know they aren't case sensitive.
however, i am case sensitive, and if i see the "wrong" case in my {{ModId}} i will have a fit and be forced to fix it
this is true.
But I like to preserve case wherever possible in case of incidents.
It's a good thing we all know the correct way is {{modId}}
anyways something something const tokens pls pathos
I just read that as "more dissociative identity disorder" lol
what does this mean
man... now i have to figure out how to do building stuff
well u know what c# consts are like right
tokens that only resolve once at load and never again
stop distracting me guys i'm trying to publish
Chu was it you who said to make an obelisk, if so I'm cursing your bloodline /silly/j
no please explain the concept of a constant to me /lh
(texturing that thing was awful, just fyi)
so that aba can alias {{ModID}}_Hiria
I'm thinking I might just learn how to create keyboard shortcuts that insert text for me
so you just want the ability to set any token as immutable... but for what purpose
if it's immutable, can't you just use not a token
well windows + v and copy paste are your friends
Thank you Lily I do know how to copy and paste lol
more talking about the windows v thing
cause it keeps the whole list 
or a list anyways
gotta turn it on specifically though, or at least I did
yea but thats like asking why bash aliases exist, it's convienance
Was it a toggle? I don't even remember honestly I've had it on for so long now xD
it is convenience, but it seems like more than negligible amounts of work to request someone else do for your convenience 
im not sure if dynamic tokens as they are even have an option for immutability
kinda goes against them being called dynamic
would it really be that much different than checking if the value changed (which it didn't) in terms of performance, though?
a constant dynamic token wouldn't have conditions to check, and it'd never update
yea im not really sure
the idea is that cp literally just does a sed for you ofc, never even tries to access it again
hell tbh content patcher might already have immutable optimizations for dynamic tokens without conditions
yea but wouldnt dynamic tokens without condition still be able to take in tokens 
unless they just dont update in that case?
things ill find out if i do this PR i guess 
Who shall I marry
the concept of an immutable token does ofc exist for things like modId, I just dunno how dynamic tokens implement them, if they do
Do you have a list
alternatively: Krobus
always the best option tbh
Yes, vanilla NPCs. I chose Leah. Haven't used her as a guinea pig before.
I can translate it for you if you want chu. just tell me what to toss into Google translate /j
Krobus will behave differently so I cannot choose him. I probably should test him too though.
harvey
i do actually toss some phrase into googly
then i go "no thats not what it means
"
wait a sec
theres a thing called AliasTokenNames 
there is yeah
it is not quite a const token but it seems useful for things like cmct
"not quite" is still doing some heavy lifting i think since its still exactly the same as a non-aliased token 
wouldnt be able to do {{ModId}}_Hiria with it
yea nop
you could od like. {{M}}_Hiria ig
.m
yea i didnt mean that it would be useful here, only that i vaguely thought about wanting something like it b4 
Game. Wai you do dis
(i use AliasTokenNames for my C#-provided tokens)
note that you can't use the alias names (i.e. the short ones) inside your DynamicTokens section, or at least you couldn't back then and i haven't checked whether that's changed
Forgive me for jumping in the middle of this, but is that an even shorter short cut that could be set up as a token representing the mod id?
yea if u want to
like if you were thinking of making a dynamic token that's literally just {{modid}} then u should do this instead
I'll have to keep that in mind, because the shorter the mod id, the better. Probably
i think modid is more readable
i mean the point is like, if you post a snippet with those out of context
someone's gonna ask for clarification on what mid is
Oh...
Could always leave a comment in the json if sharing it around
parser eat comments rn
also whats the point of doing tghat if you need to explain it anyway
ModId is self-explaining, standard, and expected
i would call that better versus raw length
If you find it easier to write, it might make the workflow easier.
I'm pretty sure the comments I left with // stayed in the parser, the last time I used it...
but yea in general programming stuff it is recommended to have descriptive variable names instead of x so that you dont come back months later and go 
as descriptive as necessary, but no more
cp doesnt have fancy intellisense tho, so i understand if u really do want to just type {{m}}
I guess readability is a good programming habit
if i want to alias it to {{ModIdFromManifestJsonUniqueIdField}}, you cant stop me
x is perfectly fine as, say, a loop index
Does anybody feel like peering at the engagementResponse method and explaining what I am doing wrong in my interpretation of it? No pressure, I am just curious.
(tbh, unless you're literally iterating over like, x and y axes, i do like loops better when the iterator variable is given a name for what its iterating)
(i dont always do that myself, no, but i do like it better)
I do not like any single letter variables
I would change the e. if I wasn't scared someone would bop me for it
well i is for index innit
you can also change the type, if you change it to a parent class
i frequently use a single letter when doing a single iteration, usually the first letter of what the thing or class or whatever is. e.g. foreach (var p in Persons).
if i am nesting loops then i start to use longer names
i have on occasion accepted (object? sender, object e)
the stuff that do care about name in modding is like
I can change the e, I have done it before as part of figuring out what it was.
but i'm also a grognard and i enjoy C and i lived through the great unix vowel famine, etc.
other duck typey things probably
im a foreach (var person in Persons) girlie myself
what about foreach (var prsn in Persons)
why are you storing prisons in the Persons list?
it should be the other way around
Does this work as a mod id token? {{mod-id}}
i also don't know if aliases like special characters
besides the standard dots and underscores
just to be clear, you know that {{ModId}} is a token provided by default right
what is your goal in aliasing to {{mod-id}} then, just for kebab case?
Dynamic tokens? I get that it is longer, for some reason I thought I might like it better that way. I might not end up using it though.
why do you want to dynamic token the modid token
My npc
that doesnt answer it, i mean why would you want to alias modid to mod-id
you can just use ModId in the dynamic token
well the earlier discussion is about add dynamic token for {{ModId}}_Hiria(so something like {{ModId}}_ParcyNPC for you)
yes, but then what is the point of aliasing modid
if you are not even going to be writing modid
or mod-id
also if ichor is correct you cant even use aliased token names in dynamictokens
I think I saw in the wiki that I can just set up a token as my npc name without the mod id even present, so I don't even know what I'm asking this for anymore. You are right. I think I had forgotten that
the modid has to go somewhere
(the last time i checked that was before 1.6, so it may have changed since!)
if you're making a dynamic token that just turns {{ModId}}_ParcyNPC into just {{Parcy}} then thats fine, but it still needs that modid in the value
but then in that case the aliasing is pointless
Yes, that was what I was originally going to do, before I forgot it... Sorry, my question was pretty pointless
the aliasing usecase would be {{M}}_ParcyNPC but as discussed thats bad for readable 
nothing to apologize for, i was just very confused for a moment
no its ok we r just the peanut gallery here
I confuse myself sometimes
if you dont want to use a dynamic token and do just wanna write {{mod-id}}_ParcyNPC everywhere you still can if you like mod-id better than modid
you will be asked every single time you post a json in here though "why is your token mod-id"
lol
Is this what you saw? Or something along these lines?
yup
I need to go back to the CP docs for ALL the basics. I had a hard time navigating github last time, but I think I've gotten better?
Yes, me seeing that is what started this entire conversation lol because I wanted to know if it was worth doing. I don't think I want to risk the key:value bugs though.
you might give blueberry some company, so far its only blueberry ive ever seen complain about them
right before blueberry asks why its always only them experiencing them
My approach for perusing github docs is that if a file in github ends in .md, I will peek at it
i think blueberry is some kind of token menance
I'm going to be the sole tester, so I guess I'll just go and hope no bugs are caused by that
Knowing me I would forget about all of this conversation, start using the dynamic token for Hiria, run into said bugs, and spend hours wrestling with them before coming here and you saying "yes I told you about them, remember?"
tbh it would probably take me at least 10min of staring at it before i remembered they existed too
I assume that wasn't actually meant as a response to that message of mine because you can't cause bugs by reading a markdown file lol
when given an actual json to look at my mind works a lot differently than thinking about it in abstract
Not unless you're an X-file
this particular thing is probably a bug anyways
in theory it will one day be fixed, or marked as limitation
if i have actual code to look at then my brain looks for like, syntax first, then typos, expected fields, etc. doesnt even think about bugs in the underlying system til the end
My testing resulted in the same conclusion, so I think you did do it correctly ^_^
Okay, engagement dialogue testing over. Time to return to my work on my actual NPC before I procrastinate myself into creating a new one for no reason.
That's their qualifier, yeah.
I made 4 others before I even knew I was making a mod, so I've definitely gotten side tracked before. At least, I think that's how it went?
thank you :3
Because they are sneaky and want to trick you into thinking they work the same way as other objects.
they 100000% do definitely absolutely forever
Rings are cursed - they are (O), but in C# code they don't actually inherit from Object, so if you're careless with casting your code will blow up
That caused me much agony for a while trying to figure out why their names and descriptions didn't update like other things
I have made myself some code snippets so I can just type "h" and then hit tab for VSCodium to insert {{ModId}}_Hiria.
I visualize myself just copy pasting my mod id over and over. Not sure if that’s even technically easier in the long run lol
Easier than typing the mod ID out?
maybe
I do not have the short version yet though
So, I might not actually mind it
the token, i mean
Using the token is definitely easier if you ever find yourself changing your mod ID for any reason (as I have done during the development of Hiria).
Do you have a 'hardest part' when it comes to the development of an npc?
Yes. /silly
Lol
For me, definitely trying to cram the characterisation into the bits-and-pieces approach of the video game. I've been working on Hiria for nearly a year and I still struggle to find her voice and haven't decided on a story arc properly.
I still have a majority of basic dialogue to write, and no real deeper understanding of my character yet.
Honestly I would agree with Aba there, though I guess it's a bit different for me since for me it was hard because I wanted it to fit the vanilla NPC but there's... not... much to work with, with Qi so
Characterization is really hard B')
I loathe writing the technical aspects of heart events because they're so intensely tedious to test and act so unpredictably, but apparently I try for more complex event actions than a lot of people so that's a me problem lol I test my events dozens of times, usually after every few lines that I've written.
(Uh by lines I mean event commands. I use multilining so they're on separate lines for me.)
I've gone through my entire i18n at least 5 times
Sorry, I typed that before your message
Yes I was clarifying my own message unrelated to yours lol just bad coincidental timing
I have everything in a separate doc for now, because I feel compelled to save older versions
5 times
If I kept saving old versions like I was doing at the start I feel like I'd never get anything done
I haven't revised Hiria's non-event dialogue much so far, but that's largely because I've still not found a way of actually doing the technical aspect of her dialogue that I'm happy with so I just keep avoiding it haha
Wish me luck then
🤝 Sending you all of the good luck vibes
This is where versioning via git is very helpful
I just like seeing how a line has improved since its conception. It makes me confident that it is definitely better
All the saving of old stuff without actually keeping dozens and dozens of files around
Hmm, I haven’t really set a github up yet
I have one, just with nothing on it
Oh, all the older versions are in the same file, btw. They are right next to each other for ease, so I can move on or compare at a whim
In the same file? I would get so confused and my files would be like 20x longer than they are haha. I have redone my entire dialogue file four times so far.
I think the hardest part for me is execution, because im looking at my npc as the author/creator, so of course i know everything about them, but i need to think about it from the perspective of an outsider. Someone who is just beginning to learn about this character, and i have to figure out ways to slowly dish out bits of their personality as the relationship deepens
That and i really need to remember to actually write down my ideas instead of sleeping on them and then forgetting XD
Oh, been there
It's why I have a little discord server i use as a notes app - every time i have a random idea i put it in there... do i do them? ... we don't have to talk about that
but they're there :)
I have five other npcs that will likely not see the the light of day, so…
I only have one other NPC I plan on creating... plan on
But I have to finish this mod first ... I have to
'finish' anyways (aka implement everything I planned on implementing)
I can NOT turn my mod into an expansion, when I haven’t even finished my first and most important character.
But that doesn’t stop me from drawing the others
I've been twiddling my thumbs essentially
Truly I don't think I can legally call my mod 'Friendable Mr.Qi' when I've added so much that it's essentially its own expansion as of now... the only thing I'd have to do is add more NPCs and it truly would be (im not doing that)
I have decided there are no expansions in my future. I like fewer, more developed NPCs than a higher number of NPCs with less depth.
(im still keeping it as friendable mr.qi, i don't want to change it, its too late)
Honestly same, I don't have any intention of making a full fledged expansion. The most im doing with that is helping Person with one of their mods
But I didn't have to make any of it initially so B) it's easier that way
I have an expansion im working on as my "big passion project" so to speak, mainly because I've always wanted to bring my ocs to life
And also partly just because i can XD
I make single-purpose characters. I've never had "OCs" that travel with me, so to speak.
Hiria did not exist before my idea for this NPC mod and she will not exist outside of it.
I hope people wouldn’t be too disappointed if I introduced my other unique character concepts as basically one off interactions with my main npc.
I’m not sure if I should, honestly…
🤔 these npcs haven't really traveled with me, i actually kinda came up with them on the spot. But i grew attached
I uhmmm scope crept myself
Funny, my npc concept was from a Stardew valley themed dream from years ago
I think my main "idea" i had was sort of just thinking about what is outside of the valley.. like a completely detached town
Because the new town expansions like rsv, es are attached to pelican town in some way
I felt like my npcs would never interact with the residents of pelican town 🤔
Detached towns seem to be morphing into the only major compat possibility for new mod authors these days.
I couldn’t see mine interacting with them either
It wouldn’t really fit the 'vibe', or lore, if you will
The DTZ NPCs don't interact with Pelican Town. It does make it hard to get to know them, I must say.
Probably because you’d have to go out of your way to meet them, right?
Not just meet, but also consistently visit
Yeah. It makes it hard to gain friendship with them because I'm not seeing them incidentally. I imagine that for people playing with friendship decay enabled it'd be even worse.
Not necessarily a reason not to do it, but important to keep in mind, I think.
The VMV NPCs also don't interact very much but because VMV itself is so appealing to visit for the progression stuff, it made it easier to get incidental chats with the NPCs in.
I think people would really need to be drawn in by the mere concepts of my npcs if they lived in their own teeny tiny town, in order to want to visit them. I hope that people will feel that way about the singular character I’m making, who is a bit out of the way.
Partly why I want to offer more with my mod than just the character itself. Stuff to unlock I mean…
Some of the expansions have pretty well developed NPCs though, despite having lots. RsV seems pretty fleshed out to me, for example.
Yes that is definitely true. But RSV was either made by a team or by someone with WAY more pep than I have xD
Lol me too. And it had help but is mostly Raf.
I don’t see how a 50, or even 10+ character expansion could be made by any average npc modder. CA, the game developer, is NOT an average example, that’s for sure
(One person I mean)
RSV was absolutely just raf being a progress-seeking missile who had no problems with doing and doing-again until things came together
Also i forgot i was in making mods and thought you were saying you were intending to only play standalones
😔 effort x time... Unfortunately i am lacking in the latter
a lot of expansions r like, 80% one person (dont quote me on this number)
I think you need to be sble to hyperfocus
lemurkat is in this group too 
Lol no I am definitely a player of expansions. But I could not afford the energy to be a creator of an expansion with the depth I would need it to have and have no interest in producing an expansion with less depth.
Maybe I could do it. I just don’t know if it is worth years of my life, because that is what it would take
if you're happy spending free time working at the computer then go for it, but it adds up like you wouldn't believe
slippery slope from attraction to obligation
I don’t feel any pressure to go further than just finishing what I started, luckily
At least, not right now
i still think it's fun and productive after a good few years, so it's up to you
If I can finish this one, with all I would have learned, maybe it would be worth it then
I'm coming up one one year, which is the longest I have ever stuck with an effortful hobby
That’s no easy feat in my opinion
@rancid musk small typo at https://github.com/KhloeLeclair/StardewMods/blob/main/BetterGameMenu/guide.md#tab-context-menu
VanillaTabOrder.Options should be VanillaTabOrders.Options
usually my interest fades after a year or so, surprised i went 3 years of modding before taking a solid break
I have ideas and i sure will make them
-basically my sole motivator.
I got pretty burnt out last time but i feel like this time my ideas are too cool to not make
(well, and so long as i still play the game...
)
Someone has to make the cool stuff. I haven’t seen an npc even close to mine before, so on that merit alone, it needs to exist, lol
One of my biggest fears in regards to this, is no longer wanting to play the game at all, when I can finally play it with my own npc in it…
Oh yeah i feel that
It's kinda hard to keep your interest in playing the game when you havent played in a while
That is not a fear of mine because I know I will not want to play xD
imagine playing gamew
I will need to wait 3-4 years before I will want to play with my own NPC anyway. I have to wait until I have mostly forgotten about her.
I want to play myself, but idk i got bored. XD which is why im making mods to make myself less bored. But said mods take time. So in the meantime i am still bored
it's totally normal, like actors who don't watch their own films
i do try to play a little bit though
but i play one day and then my brain go "ok work done time for fun C# times"
I will hopefully maintain mine for a few years, forget the details, and then come back to play my mod and be pleasantly surprised by it.
Oh yeah I suppose if other people play with Hiria I might not get the chance to forget about her. Sometimes I forget that other people might be interested in playing with her.
no, i think you'll come back to play your mod and then go 'hmmm i need to update this dialogue, very outdated. could be improved. maybe adjust the outline on these sprites too. why did i draw the hair like this? the lighting is all wrong'
😦
as was foretold in the ancient texts (making-mods-general)
You could be right
n
Every single time I go to draw a new outfit for Hiria I tweak some part of her skin, so that tracks.
I’m already updating my character’s good portraits to be even better, and I don’t need or want to at the moment anymore!
It was on a whim
and now I need to finish what I started
since u sound like proud parent i have faith you will finish ur npc 
i made a blood pact to stop adjusting the portrait sprites. so what happens? i make new ones instead. this world is a prison
I wonder if I should jump on the NPC train. Most likely not any time soon, but, well, I made that Carpenters mod for a reason
there's a reason Leah is not named Leah in the demonstration video
tbh the more i hang out here the more i become convinced that npcs are cursed and i should never make one
…
I made my portraits too small and now im redoing them (joy to the world)
moving around a temp anim sprite who sometimes give you dialogue box seems easier for my purposes
Lol, you should go for it then
Too small is a new one. How small did you make them?
give your critter a tragic backstory and revenge plot
yep
But beware, something small can easily get out of control if you get invested enough
u should understand that my theoretical npc is a waterfowl, this doesn't really apply if you want a normal 16x32 human npc that walks
Basically i forgot what i was doing and made them 200x200 instead of 256x256 and it wasn't until i started the second character that i realized my mistake
Alas, After some meticulous tinkering, I’ve succesffuly integrated Hot Reload into my Arch Linux setup for Stardew Valley modding. A true testament to technical mastery.
But what if it turns into a talking waterfowl, with opinions and dreams? Don’t put it past evolving…
he does talk, but he really doesnt need to be a NPC.cs for that
Nice
this is partly what i made trinket chatter stuff for anyways 
water birbs just dont move very much tho
they r like
stand on a pole all day being birb
or float in water all day
Oh what a simple life
swimming in water, dispensing random wisdom to farmers passing by
And gifting useless trinkets? Or is that only crows? 
Add a chance of it robbing bread from your inventory!
If you can do that, anyway… might not be so simple without an event
A bird, on water/floating, buoyant and serene/the life of a bird
pottery
well birb robbing you when you talk to it is doable in CP
It would be the after message that would make it worth it though, otherwise players might think it is a bug…
Oh, unless
You made the dialogue about it stealing the bread with no discretion whatsoever
at any rate i dont see myself starting this anytime soon, it lives as vague imaginings in my head
Well, theorizing can be a fun hobby in and of itself
what i am more interested in doing is not the npc part but instead the theoretical volcano dungeon adjacent thing
A dungeon, you say?
just gotta accumulate more map nonsense and then it become possible 
nonhardcoded lava when
spacecore has dungeon feature if u want something like that rn
Ah, I heard about that
I don’t think I’ve seen it in action though
i have no dungeon mods

I fgotta figure out why the uhh actual trinket icon isnt loading but yippie yippie thank you chu
Snake bite your hat
She's hungry ;3
it would help if I had actually saved the textures
would a 256x256 portrait be counted as HD or still pixelated? i heard stardew portraits are mostly 64x64
anything over 64x64 is an HD portrait
and will require an additional mod dependency to use
Portraiture, typically
ahh got it 
There's a few others (scale up 2, spacecore) but portraiture most common
now with trailers

I'm slightly confused by the note about the dialogue event command $v talking about the command having to be at the very beginning of the dialogue, does that mean on a per-line basis, or the command has to be literally the only thing in the dialogue key?
my understanding is that it needs to be at the very start (right after the opening quote), but other stuff can come after
only mod or even vanilla file I can see with that command is your mod Lumina 😛
and i used a very simple thing for it
so i can't really tell what are the extend of the use cases
flashbacks.. or something? -shrug-
The wiki says there is a debug movie command already.
What does it do when you use the command again?
just says the performance is over for the day.. like you normally get for watching it.
Does it do that too if you use the ID rather than just letting it default to the day's movie?
tried both but maybe because they were the same id, I don't know if switching to different ones would work.. but a fiddily worka round
ok, I realised what was doing it, it's because I'm running it in the theatre still, if I run outside it will play again fine..
Oh that's a relief
so, mental note for anyone you have to not be in the theatre after watching it to be able to trigger it again
Huh, it won't work for me even after leaving the theatre. It just says the movie has concluded and warps me into the lobby, but when I go to leave the theatre it asks if I want to leave without watching the movie. Did you purchase a ticket to watch it the first time?
yes and my game save is me already inside after purchasing
but now outside with no ticket and it will run fine.
I don't know how often people use/test this command, so there probably are a number of quirks with it.
Oh I bet I know why mine went weird. I had already forgotten but I used debug endevent to make the movie finish faster haha
Yup that was definitely the problem. I actually watched the movie this time and was able to play it three times in a row (leaving the theatre in between like you said).
This is my json file and the Velociraptor image (the Velociraptor2 image is just a different color). I want them to sleep with different motions. However, when they sleep, they all sleep with the same motion, and sometimes during the day, the sleeping motion is visible. What should I do?
@vernal crest thank you I will look at that mod's format
I edited the wiki to add this info
🙂 I think you can use all the event commands
during a movie
but I think most are useless
I'm not sure what you mean? I added the info about needing to go outside the theatre to play a movie again
sorry I overwrote the initial part of what I was saying.. I initally wrote: "very nice does make testing the script/commands easier"and then just added on general chatter about the "movie script" in general.
Ah I see haha
i don't know how to have multiple different sleeping textures, since the SleepFrame is a single image as far as i can see, but the sleeping frame appearing during the day is might be because the index 16 is used as "eat" frame according to this https://stardewvalleywiki.com/Modding:Animal_data#Spritesheet_layout . i have no experience dealing with animal textures/animations so take it for what it's worth
Does anyone know if I can texture the mushroom log to have different sprites depending on which mushroom’s produced?
as it's producing or after it's produced? I'd probably just make a custom machine that produces that mushroom
That’s what mushroom propogator does. I just want a retexture
animals only use one frame for sleeping
But wasn’t sure if I could potentially tweak it somehow to have custom frames 
and by default it will be one of the unique anim frames I believe
you can try adding the sleep frame below the main frames and set SleepFrame in animal data to that, not sure if it works though
Load/Working Effects can be conditioned on the output item
just have the "animation" be a singular frame
though hmm that wouldnt work when the machine is ready
Aw 
maybe CA didn't win after all 😌
The blueberry stays victorious
Anaira what if u just make mushroom log <-> mushroom propagater recipe
I wanna play as close to vanilla as possible, I just like how blueberry’s log looks …
though I wouldn't be opposed adding something like ReadyEffects to a certain machine mod...
i think UseDoubleUniqueAnimationFrames would help in this case?
actually i'm not 100% on how that works 
everybody thankyouo I gonna try these
does anybody have a list of "positive energy" foragables by any chance? 
and does a foragable that gives 0 energy count as positive energy
technically since it's not deducting any it's "positive" 🤔 but idk how the game would consider it
Have you slept at least one day in game? Person with the NPC schedule issue who just deleted their message?
hmmmmmm 🤔🤔🤔
!unpack
Follow this guide to unpack the game's content files in order to see and explore how the game data is structured.
It's helpful when making your own mods, or just to learn about how the game works!
Look at edibility in Data/Objects
sorry i deleted my message because i noticed somebody else was asking a question and didnt want to intrude haha..but no i havent!! ill try that!
ahhh no no it's okayy!! please go ahead

Don't stress about that, we can handle multiple conversations :)
It's ok to interrupt anyone here, this is a fast moving channel
Well i appreciate it! Im not familiar with the etiquette! But i appreacite the help because I slept and that did solve the issue!!
Thank you!
everybody seems to be into forbidden juices lately. mouse juice, crab juice, whatever this list is for... /lh
I propose: shorts juice?
what about Egg juice
also im ngl i wanna make a "no more bow legs" mod for every sprite with bow legs, and maybe include some custom NPCs too 
i mean it doesnt seem too difficult, only challenge will be getting the sprite edits to look good
lmao that is some real "draw the rest of the owl" energy
this would be great but i would only make it if i also added a new exception for the luau soup so shorts juice gets the prank result
omg yes
"the label on this says its from sam.. maybe you should fulfill his prank at the Luau"
alternatively the description is just
"why would you make this"
hey, everybody -- I'm extremely new to making mods (like just got hands-on with .json files for CP for the first time literally yesterday). I've been using the pathoschild github link and also the sdv wiki modding guide as my lifelines, but wanted to clarify here for some extra help. is there any way through editing .json files to make a heart event cutscene happen during a different time of day?
I was trying to work with SetProperties, but I think I'm misunderstanding what that command actually does
is it possible to have a shop trade take multiple items?
With item extensions maybe
yes, you can change the conditions for an event, but it's irritating to do with just CP due to format infelicities
events are a string->string dictionary, and the preconditions for the event are part of the key. in order to change a key, you have to delete the entry for the old key and add a new entry for the changed key with the different parts
ah, I see. thank you!
the other headache involved with that is that there is no way in CP to grab the content of the event, so you will have to copy its contents into your json. that's irritating to have to do and it hurts compatibility, but alas
i think i remember seeing a screenshot of 3 items in one trade but idk what it was that allowed that
Item Extensions as mentioned by atra
ah, gotcha -- I was just thinking it would be super aesthetic and romantic to have elliott's 10 heart event happen at night (plus, I've never been a huge fan of the jump scare kiss, so I was trying to take a peek at how complicated it would be to change it up a bit)
I'm not saying this is a good idea, but what I've done when changing preconditions for an event is null out the vanilla event and copy the whole event to my mod with a new event ID. Then I make whatever changes I want with my version
That way you won't get two versions triggering by accident
Call it {{ModId}}_Event_10heart or something
yeah that's essentially what you have to do even if you don't want to change the event content
I wonder if it's too much for CP to have the following features: renaming keys, for-loop mass editing every entry, reference the original value in a token (I have no idea what this would even look like lmao)
one of many reasons i am lobbying (not fervently) for event data model in 1.7
just found that by looking in my download history, thanks though(https://www.nexusmods.com/stardewvalley/mods/20357)
Yes, I also saw the null option! I'm a little too scared I'll muck everything up that way, to be honest 😬 I've had some decent success changing just the dialogue options, so I'm content just sticking there for now
like at which point we're trying to make a scripting language jn json
maybe i'll revisit once I feel more comfy haha
renaming keys for this sort of situation seems extremely useful, but at least for this i'd rather just have a data model for events
Rename key is kinda like CopyEntries
You are going to muck things up when messing with events, but that's ok! That's how you learn
yeah, I tried to change a farmer emote and got stuck in a perma-emote loop and was like o_o
i seen a mod on Naver that changes the images of elliotts events to have a night time and day time, but i cant confirm if it works + it was like, posted in 2020 or so
then again, renaming keys is fairly trivial to do if you use C# and SMAPI's content API so maybe that's enough solution
emphasis on the images part, i dont know but i doubt theyd change the triggers or not but yeh
FWIW, I think making the boat scene happen at night would be interesting, so I say go for it! Just make a backup copy of your work before and after so you can easily roll back.
^
Thank you guys so much for the help, I get a little shy talking for the first time in servers, so you guys are amazing 🥺
Ah do they just do a different temp map
i believe so yea
yeah, I have the dynamic reflections mod and the stars reflecting in the water is soooooo romantic
That is easier than doing the key yea
If you end up publishing this mod, let me know so I can do compat with Realistic Writer Elliott 
I sure will!!
Hey, people!
I just downloaded ContentPatcher and I was wondering if there was a way to only replace a map with my own if the player has completed perfection, using the "When" field?
Farm_Eternal is the mail flag for perfection
Thank you!
The other major way to do things is to simply null out the event when you don't want it to happen
Or use spacecore trigger actions to launch the event
thank you!
So like this?
Ahh, Thank you!
Sorry, correction: HasFlag
I am doing things related to the CC where the player can do the normal or joja route. Ik the regular route is locked once the player buys the joja membership, but I want to verify when the joja route is locked. Is it when the player finishes a bundle, the entire room, or the entire CC? I just finished the bridge upgrade doing the normal route and Morris is still offering me the membership the day after the cutscene.
I don't think it's ever locked. Not until you finish the CC, right?
as long as you can still enter the jojamart, you can buy the membership (including on the day when you finish the last bundle, which i believe can cause problems)
one more quick question: does anyone know why this would be happening?
This is my SMAPI menu, and Elliott's 10 Heart Cutscene is what I've been working on -- it's been doing this ever since I set up the bare-bones manifest.json and content.json
(so sorry if this is a stupid question, I tried looking for answers before coming here, and I truly cannot stress how new I am to all of this 💀)
this looks like the output from the sample first C# mod at https://stardewvalleywiki.com/Modding:Modder_Guide/Get_Started
did you try writing a mod in C# first?
np
at this point you should know that a single mod cannot be both a C# (SMAPI) mod and a content pack for another mod
in your manifest.json, you specify exactly one of EntryDll (C#) or ContentPackFor (content pack) and the other one simply isn't applied
is there a good example crafting recipe mod for content patcher?
so if your mod is still doing C# and you are working on content patcher you will need to switch over
I do, I had scrapped the C# attempt, I didn't realize it was still in my Mods folder
ah, i see. very good then
Hi, how would I go about making the bottom layer of map move?
you would have to use C# to modify the game code. it's not supported in vanilla
chu has been adding parallax background support to their mod MMAP so you could check that out if you don't want to do it yourself
Hey yall, im working on a greenhouse upgrade mods, and am having troubles applying the new map. I use a content patcher thing using "Target": "Maps/GreenhouseOverhaul_Greenhouse1" and targets "FromFile": "assets/Greenhouse1.tmx", and inside my upgrade i use "IndoorMap": "GreenhouseOverhaul_Greenhouse1", but when the upgrade is applied, the new map does not get applied as well. The weird thing that happens is that if I leave the game and reopen it the map is applied. Is there any way to apply the map immediately?
Does the map update the next day? Like if you upgrade and then go to bed? It could be that you want to change how fast the patch is applied.
look for "OnLocationChange"
It only works when I get back into the game
I'll try using OnLocationChange
It still doesn't work, only when i reload the game
Could it be that you cant make new maps using Action: Load
and I have to edit the original Greenhouse?
you can type patch summary yourmodid to see what your mod is doing what things are or are not applying
in the smapi console
The map is loaded and the conditions match, but it is not applied
Hi guys! I was able to change Pierre's hours through Tiled and EditMap..just wondering how to have it opened on Wednesdays! Thanks!
So I wanna make a mod that adds a crop question 1 how do I start question 2 what do I use I've never made a stardew mod
You'll want to use Content Patcher to load it in --- no coding required. See https://stardewvalleywiki.com/Modding:Content_Patcher for how to start with content patcher and then https://stardewvalleywiki.com/Modding:Crop_data to see how to add crops. If you have questions during the process feel free to ask
does anyone know if/how i could change the sound that plays when clicking on a door to warp to a new location? not for all doors, just a specific one
https://smapi.io/json/content-patcher/aa0badb0ba95489c914668cdd5e76dd8 I don't understand what the problem is with this
You forgot to close your Entries with a }.
Same issue for all of them btw.
... looks like you're missing a closing ], too. Remember: Every opening { or [ needs exactly one closing } or ].
oh 😭 thank you lol
im having issues trying to replace elliotts sprites
when i change it here it doesnt change the sprites at all ingame
i also noticed i was missing and i in "assets/Eliott" so i fixed that but it still doesnt work
oh nvm it works
that part is hardcoded in LockedDoorWarp itself so you'd have to use a different kind of warp to enter the building
what’s up with it?
well, I'm using a regular event as a template, but I changed the map and added a forked question
and now I'm really confused with the info in the wiki and several blogs on modding stardew
some say I have to write the forked answer on "Data/events/"original map" and others that it has to go in "Data/Events/Temp"
And I'm honestly real confused
does your event take place in a location that you created?
do you use the switch to temporary map command during the event?
yes
wait clarifying question. maps and locations are different. what location does your event take place in? you can find it by seeing which Data/Locations you’re editing i believe
Sorry ><
!json and actually while we’re at can you upload your event 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.
no you’re good literally everyone mixes them up at some point lol
yep! so your location is Mountain
try putting your fork as a new entry under Mountain, and if it throws an error, then put it under Temp
np! and if someone else contradicts me listen to them lol i’m still learning myself
I have no idea how to program anything, I'm just a writer too down the rabbit hole
so you'll probably hear about me again
we’re all happy to help whenever you need
i’ve gotta go get some work done but ping me with the results?
so i have gotten my crop into the game (i think) but for some reason i cant plant it
like the seed item exists but it wont let me plant the crop
without seeing your json, we can only guess
witch one
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 thinl
(use the json uploader in the governor command please)
what format
none or content patcher, but it doesnt really matter, we can change it when we view it if need be
then i just copy the link?
yup, copy the link and send it here
same concept for logs too, theres a log uploader at smapi.io/log or in a link oin the left side if anyone ever asks you for a log
change all instances of {{ModId}}_WeedSeed to {{ModId}}_WeedSeeds
the id in Objects and Crops must match
o
you're missing an s in the latter
lmao im smrt
and importantly for things in general, the "Name" field in Data/Objects should most often match the key, too
Weedses 
(tangentially related, but if 'Editdata' isnt case sensitive bc their seed does evidently exist then i wonder why the validator complains about them)
I think the schema is more strict than what is accepted by cp
well im about to check it selph's thing fixed it
the content patcher schema more strict than content patcher. makes perfect sense 
yeah the schema complains about things content patcher literally doesn't care about
i just wouldve expected the cp specific schema to account for it, is all
the None schema i woulda understood
Yeah i dunno why either
still pretty helpful when making the code though whoo
but, i dont get paid enough to think about how to handle regex
only pathos knows
so i cant blame it for being good enough
the validator is also making me only realize now that MoveEntries apparently uses "ID" instead of "Id" like just about everywhere else
yeah im just thinking out loud re: case sensitive stuff, dont worry about the case sensitivity errors in your json
those ones, anyway
then figure out how to do crafting
Hello!
I am workning on my mod and tried to add the character to the mod, but it does not work.
Does anyone understandning why?
Also, I have made different outfits for indoors and outdoors (winter). Which is the best way to make it work code wise?
Character data: https://smapi.io/json/none/1b183b77994544e188449c9d3207225b
SMAPI log: https://smapi.io/log/9ade2c4f266c40e1b80290fa3f8c528b
Log Info: SMAPI None with SDV None on None, with None C# mods and None content packs.
Suggested fixes: One or more mods are out of date, consider updating them
i dont see any loads for just Portraits/Hazel or Characters/Hazel in your Load actions
also, at some point you're trying to load a Hazel_S_Winter_Indoors.png file, but that file evidently does not existin your folder, so double check you've got the name right
{{WinterIndoorOutdoorOutfits}} is also not a valid token, so double check it matches what i presume is a dynamic token in your content.json
Thank you 🙂
My custom fruit tree sapling is loading in game and I'm able to plant it, however it's not growing past that stage. Any reason for this?
I'm using CJB to skip the season, could that be causing issues?
Possibly?
skipping the season doesn't actually skip the days
neither does skipping the days from what i've been testing
i'm skipping the days too, and I went to sleep
How mant days though
season long nap time
like 10
I'm going to try and sleep for 30 days lol
I have a question, sorry if it’s worded weird I’m a bit in a rush , is it possible to set things to the same config but in different .json files?
do you mean use a config token but in an included file? tokens will work across all your files
(excepting localtokens)
so will dynamic tokens
i dunno what happened to my reading comprehension there
For example VCR has data for dishes across GiftTastes.json, Mail.json, etc., can I just add config to each .json instead of needing to merge it all together
config can only be defined in content.json
^
the only thing you can put inside an Included file is a Changes list
you can use them in additonal files but they have to be in the content
Oh man.
The config scheme and dynamic tokens are scoped to your mod and are available in includes, they can only be defined in content.json
got a lot of configs?
Wish I didn’t make my first mod such a huge one /hj
42 recipes 
you let the player disable every single one or
There are none rn
I just am adding new recipes to VCR, thought I could update it to have configs too 
How bad can it really be? /srs
And also, ty all for answers
I'm happy to report that my long nap worked wonders 
Are you adding VHS tapes for all the films in-game? I can add a tape to my custom movie if you are.
I…I don’t get it 
Is VCR like an old tv thing?
yes
Oh.. hehe
Video Cassette Recorder
Ohhhh yea I heard of that before
you younglings

WAIT so I can still have separate .json folders I just need to make a subfolder for each recipe?
And I can put that in my content right?
My brain might be working a lil bit for once
you dont need to do anything to use includes
they dont need folders and they dont need specific names and they dont need specific tokens or anything. you can just use them
how you organize your mod is up to you
I thought I had to make it configurable by having it set up in content.json
you dont configure an include. you just write an Include patch. you can make that Include activate or deactive with When conditions but thats not really configuring the include itself
you can also use Include patches inside a file that is Included, and not in content.json
like you're not gonna write a config option for "include recipes1.json"
.. unless you do literally wanna name it that and confuse your users

Yay tysm
Just double checking, I don’t need to change my content.json then right? That’s what I’m understanding atm
well where are you going to write the Include patch
i dont know what your content.json is like right now
Gotcha. Sec
to be clear i dont need to know what its like. you just need to know that a json file is not going to magically be included without you telling CP to include it
if you've already included it, great, if not, you need to include it somewhere
Oh okay ya this is an existing mod, I just wanted to add configs to it
!software @manic pawn
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.
! thank you :D
does anyone know reasons why the "Introduction": xxx, part of the dialouge might not be working??
the Introduction CT only lasts 10 days
are you trying to talk to them beyond that?
noo i made a new save just to see if it works!
you don't need any folders. you are the one defining where your included json is. if you don't want a folder just don't use a folder
All of the recipes are under the same Entries though so I’d need to break them all up
feel free to post your code then?
sure, but that doesn't mean they need different folders
Well different .jsons then
they don't need different jsons either
it just shows the normal monday dialoge insted
you can just write multiple patches in one json
i don't know what you mean
Cause it’d be Action: EditData and Action: Include
they are two different patches
im still not sure what your intent with includes is in the first place
Just making configs for each recipe since the data is divided into diff jsons
hmm that looks fine to me. just in case can you post the code that loads this block
if the data is divided into different jsons then they already need includes? what were you doing before if not including them?
Yeah it has includes, I was just wondering what would be easiest to do since they’re altogether
Wait I’m still confused. How will the content.json know which recipe is configured
Data/ItemData/Objects.json cause it’s taking the whole thing still
That’s why I don’t see how I can do this without different jsons
"Data/ItemData/Objects.json, Data/ItemData/CookingRecipes.json, Data/ItemData/NPCGiftTastes.json, Data/ItemData/Mail.json, Data/ItemData/TriggerActions.json"
These would all need subfolders for Include to work to make the recipes each configurable
content patcher will absolutely never _require _ multiple jsons to do anything. never
if you want individual recipes to be configurable, you make them separate patches and give them When conditions
this can be done all in content json or it can be done in includes or it can be done in a mix of both. it doesn't matter
no. You can put conditions on an Include but you never need to
You have two "{{ModId}}.HazelSpring" outfits
Ugh that’s a relief. Thank you
oh hahaha i did not notic
I need to change my all my “{{ModID}}”s in my mod too
Change them how
?
change from {{ModID}}_example to VanillaCookingRecipes_example
So no interferences. Like that person just got
No you don't. CP does that automatically under the hood
you... Should not do that
Oh it does??? Why do I see some code written like that
because content patcher is not going to force you to use a token and couldn't even if it wanted to
Should I change my other mods that didn’t use that to {{ModID}}? Cause I would refer to other codes and that’s how I formatted some
Using {{ModId}} is generally good practice, yes
Okay thanks! I had it backwards
It ensures that all of your item/event/whatever IDs are automatically unique from all other mod ids
if the mod is already released and what you wrote does not exactly match your unique ID, then I would not change them at this point unless you're sure nothing is going to break old saves
or break items in those saves
Ooo okay thx guys
Yeah I won’t then

I’m so excited, this might be my last update 
okay, I fear I'm back with another question -- working on EditData with the use of null in a .json to try and rewrite a cutscene. Have I used null incorrectly here?
before I was utilizing null and just replacing dialogue, the cutscene was still triggering, but since i've tried to implement null, this specific cutscene is no longer triggering at all
You don't want to end your key quotes after the ID, you still need the preconditions as part of it.
Everything after 43 and before the : is part of the preconditions
So you still need it before your : and the event script.
So in this case, your key would have to be:
"{{ModId}}_10Heart_Event_Day_Dating/f Elliott 2500/w sunny/t 700 1300":
And then the"ocean/..." bits as your event script after the :
pinging so you see my response above
oh, thank you so much!!
There is a command to tell people about ` formatting too, but I can’t remember it.
Anyone remember that? Because it is a convenient way to write code in the channel over ussing screenshots
!json this one?
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.
Interesting, I don't think I've seen a command for that 
!codeblock
You can embed code in Discord using a series of three ` :
```
Your code can go here
Even if not a haiku
Just an example
```
For syntax highlighting, add the language code on the same line as the first
``` (with no space, like ```json).
The usual codes are cs (C#) and json.
Yes!
I can’t find out how to type it myself though
oh
Nvm
I see the command above
Oh, so that's how adding syntax to it worked 
Yeah but the highlighting doesn't work on phone
Honestly, unless it's a VERY short snippet, I'd rather see people use the JSON Parser
so I have a list of values that I want to turn into tokens. is there an easy way to do that? the mech engineer hubby said to use parentheses to pull a value, but that didn't work.
How are you intending to set the values? By a config option, by a condition, or just assigning them as a static value?
That documentation will explain the types of tokens available through Content Patcher, as well as the pre-existing tokens
I'm off the acceptable token beaten path rn. I'm trying to use CMCT to pull a value from another mod
long story is that polyamorysweet has a config option that I want to use (order of spouses sleeping in bed) as a token so those spouses show up in events. :S
Well, you still need to know what type of value you're pulling 🙂
okay, so it's a config token
Guessing you've already read through the mod description for the instructions for Content Patcher Mod Authors?
yep!
the config value I want is being pulled correctly, even! I just was wondering if there was an easy way to pull the first (or second, third, etc.) of that value if they're separated by commas
I'll do some more digging later. I gotta eat dinner
ty for your support, fireredlily!
Nice timing, Button. 😄
but what was the deal with ordering 
they will be in whatever order the original config value is in
ordered set then ok
less an ordered set specifically and more so that CMCT asks CP what the values are in the token and CP passes CMCT a list of tokens
so if CP grabs the values in order than CMCT will get the values in order
and then return those values in order to the person using the CMCT token
i say this just bc its not technically a guaranteed order and is at the mercy of CP internals and outside of my control
but the order will be consistent
Hello, trying(and failing) to make a map in tiled, and I cannot seem to figure it out.
I’ve unpacked vanilla files and pulled up the farm map, but does anyone know of a good video tutorial? I’m a little lost on how the mechanics work…
what are you stuck on?
Ah! That helped so much, I was a bit lost on the properties side of things.
Sanity check: it's not possible to overwrite another mod's i18n, right? So the best I can do is detect the mod is installed and try to select a higher priority with the load order?
you can't affect another mod's i18n/default.json contents but you can certainly overwrite whatever field they edited via {{i18n:key}}
and can't is pretty soft anyways in C# you can probably reflect into their translation helper 
its just like, a bad thing to do tho
Yeah, I don't want to be a poorly-behaved mod. I just keep getting asked about SVE compatibility
I might be able to write a patch for some of the lines they have that are lore-incompatible. Will see
are you sure
(/j yes CMCT reflects into their translation helpers. a translation helper is read-only though afaik)
what if you harmony patch the translation helper
if you reflect you can actually call SetTranslations to set a new dictionary of translations to use



oh but you could...

