#making-mods-general
1 messages Β· Page 231 of 1
Huh, my N++ doesn't complain about the multilines at all
So depending on how you format it, you need both
It's a file type. JSON lines. I do not do what Wren is mentioning. I've never heard of it.
makes sense. iβm away from my computer right now or iβd send a screenshot
Unescaped line breaks in json are technically illegal, but some parsers ignore them
Better to escape them anyways just in case
N++
I would be very worried about whether adding random backslashes breaks the actual event though?
Huh, weird. And cp doesn't complain trying to parse that?
Nope, that runs perfectly in game (with no complaints from CP).
They get filtered out when the json is parsed, just like \" turns into "
Because \ is an escape character
In computing and telecommunications, an escape character is a character that invokes an alternative interpretation on the following characters in a character sequence. An escape character is a particular case of metacharacters. Generally, the judgement of whether something is an escape character or not depends on the context.
In the telecommunic...
Adding the backslash to the end of the line does not stop Sublime from screaming about it
See if you can find an option to show whitespace characters
I don't know, Sublime just says "Windows"
Change it to Linux
There is no Linux but I changed it to Unix. No change. Also tried Mac OS 9 without result.
But I don't write my events in Sublime anyway so I don't mind.
Windows uses two characters for line endings, unlike literally everyone else, so you can't escape them, because you can only escape one of the two characters
(iβm fascinated by how much i can learn just by lurking in this channel)
ah yes, LF vs CRLF returns to the chat
I opened it in VSC and it looks like this
I am an eternal crlf hater
When I add backslashes to that and it's on CRLF it changes nothing. If I then change to LF it says there are even more errors.
That's weird
This is it with LF
(I am aware the one on line 245 shouldn't be there but removing it doesn't affect the rest)
And this is with langue set to jsonl
How can I put down one of those logs that needs the steel axe on a map that isnt the farm?
I can work with jsonl or with jsonc because I just ignore the errors with jsonc. It's not horribly blaring like in Sublime.
Well, if all else fails, you can technically wrap the line breaks in comments, since those can be inside values
Paths? I think it's on paths.
It is paths
Yeah it is farm only though
Oh then FTM
It's horribly cursed but newtonsoft will parse it and it's valid json5
I just prefer changing my file language because I don't need the error checking anyway, but it's good to know there are options!

Is it really only farm only though? I feel like ive seen maps that dont use ftm and have logs there
It is only the farm.
The one in cindersap for the secret woods is hardcoded
You can spawn logs with the path layer, but they won't respawn
Ohh so you want them to respawn
Why are you saying no
Is that really farm only?
I want it to be able to break once and not respawn
Yes.
Weird
I think you are right
Well, time to add that to the todo list
I have tried it and it doesnt work unless I am on a farm map
Well in uhh idk how long it will take me, but I'll just load in my map and test it
It's still 100% incomplete
But it's worth a shot ig
Then we can know for sure
i dont see anything in the code that stops a log from being added if its not a farm, though
Well it isnt working on non-farm maps and the wiki also says it is farm only /nbr
Can't you use the stumps map property
You can make respawnable logs, I have a map I made that it works on. You need to use the Stumps custom map property. I think that's all there was to it.
What do you mean by "not working" though?
It won't spawn, I can place the tile on the paths layer but it won't spawn in-game unless I am on a farm map
Stumps only does stumps, though, not logs
Ah, ok i see now. Sorry, I thought this is what you were trying to do.
have you tested on a new save?
I actually toyed with the idea of it earlier today (not that i'm going to end up actually doing it, and especially not with a gui), so there's at least one modder here who would consider using it
This is a new save I am testing it on
it'd be kinda fun to visualize forks as like a flowchart (same with the question/answer choices, etc.)
Not a farm
Well it isnt working for me and that also means the wiki is wrong
In that case you might want to check your map again.
It is on a paths layer.
The wiki is frequently wrong when it's a case of things having changed between game versions (which this probably is).
ur good deed of the day can always be updating outdated wiki info :)
Wonder what else is outdated/missing from the wiki
sometimes i update the wiki and i go "Wow. I am contributing to Society"
the migrate to 1.6 page still isn't fully migrated to the right pages
O
if you're bored
π i don't have that much confidence
The most i ever did was add myself to the mod authors section, and it's currently outdated
There's still stuff from the 1.4 migration page that isn't on the right pages!
you'd need the mass edit perms probably
Whaat all the way from 1.4
There is no Log map or tile property
Doing migration page stuff is really time consuming and difficult.
I can imagine...
I just did it for the events page the other day and it took me about 8 hours.
Wow
I did a lot of the migration stuff until it got to things I didn't know and I was like "i have no idea where on the event/map pages this goes"
someone should just make a wiki page listing all the things that need to be put on different wiki pages
I think that maybe what happened is that logs and stumps both got dehardcoded in 1.6 but because there isn't a logs map property like there is for stumps, the stumps map property got updated on the wiki page but the paths layer bit got forgotten about (since that's also still saying stumps are farm-only).
but then nobody will update that wiki page 
I spent a lot of time digging through the code to figure out a bunch of the stuff I migrated because I was determined to finish the entire events migration. And I kind of did, only there's a festivals section that I haven't migrated because I was too tired to learn about festivals lol
did you find every unlisted event command
I didn't double check because of the aforementioned fatigue lol
So how do I get a log in-game?
does ftm have awareness about not spawning forageables on trees, walls etc or do i need to specify EVERY single pair of coordinates to not spawn on?
Isn't there a property for not spawning stuff on a tile?
Oh you mean within Tiled?
I clicked on each index cell in the farmhouse, then set the room value and floor value, and when I entered the game, I was able to change the floor color. But the thing is, the larger the room, the more I have to change each cell in that room, which takes a long time. Is there a way to change multiple cell values ββat once? I edited the floor ID in the Map properties section for the wallID or floorID value, but when I entered the game, it didn't accept it. If I tested it, I could only change each cell one by one. :<
I just put tile 19 from the paths tilesheet onto the paths layer, which it sounds like you also did?
Yes, I did.
Yes you can just make one really big object that covers the whole space! Or you can just copy and paste the individual tile objects.
do you know what the property is?
And I can walk right through which means there isnt a log
NoSpawn
I was beaten
Haha thanks
Use NoSpawn All to disabled spawning anything
So if i want certain tiles to not spawn things on, i make a custom tile property NoSpawn T?
Make it NoSpawn All
It's not a true/false property
Ahh ok, is it still a string?
Yes
I have no idea if this actually affects it, but do you have the map property Outdoors T?
Yes
You can be more specific about what gets excluded, but the only value I remember off the top of my head is All
I don't actually want anything to spawn there so that works perfectly
- Make sure you're making a new save file as paths only generates on save creation, 2) make sure you're putting your updated map in your testing folder, 3) experiment, you have a non-working model, see what you can do to get A log to spawn at all, even if its not in an ideal place, then once you have both, test to see whats breaking it. its how we figured out a lot of this kind of stuff back in the day.
It's such an great tool, really helped making my alien mod 
not to change the floor color, but I want to be able to use the floor and wall in the game when entering the game, because when I redid the farmhouse, I lost the wall id and room id, so when running the game I can't change the floor color to another existing one, I found a way to enter each room id 1 for the index but I find that entering each cell 1 to show the room id is too long, because I edit the room is a bit big
Ah, beat me to it, was just about to post this. Outdoors T or TreatAsOutdoors T will work also
Fixed it, ty!
You will want to use Tiled instead of tIDE
my water tiles have "Water T" as a property. Does that mean nothing will spawn here?
almost all of the current modding resources are written for it, and it's just overall much more convenient
Oh, my advice was for working with Tiled. I have no idea how to use tIDE and I don't think tIDE can edit .tmx files. In Tiled, you can have it like this.
Tide is ancient
I'm curious, what bit fixed it?
for the most part, yes (it can be overriden). But that technically governs whether or not the tile is treated as water for the water overlay, fishing, item destruction etc.
out of curiousity, what was it?
I had to make a new save, I thought since the save I was on was still on the 1st day of the 1st year it would work
Nope, new save is always make a brand bew save
its why after making a new farm map i have to delete about 40-50 test save files.
When Button asked if you had tried a new save, that always means "go through the character creation process again".
I tried downloading the software you suggested, but it doesn't read the tbin file TT
I think you gave to do something for tiled to read tbins
Also given that your maps are apparently in tbin format, I'm assuming you used one of the old ways of unpacking the game files. I would highly recommend using StardewXnbHack instead, as its not susceptible to the errors that other xnb utilities produce
!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!
This will give you tmx files, which are what you want
Would I be limited to how many tiled layers I can have for one category, like 'Back'? I've seen TMXs from the game, and I've seen up to four on some.
Tbins are the old fashioned way
Unlimited. Number just determines sort order
You have to enable the tbin.dll plugin in preferences to edit tbins but as Wren said, you should try to get a .tmx file instead.
I think Tiled also has on default install the plugin to read tmx/tbins as unchecked or something.
Because I'm creating custom tile properties for a tilesheet, will these not work with recolours?
if u have too many does the game explode weaker computers
Custom properties, or custom tilesheet?
custom properties (like NoSpawn) on a vanilla tilesheet
Oh, ok. Thanks. Is sort order of any importance?
Because properties are just telling the game to look at this tile and make it do x so you can stick that on just about anything
As long as you're using the game tilesheet, it should be fine because your tile properties will be included in the map xml.
Theoretically, sure. The cpu has to spend time iterating tiles and the spritebatch has to convert them to geometry. But it would probably take a lot of tiles to create lag. And the number of tiles is way more important than the number of layers
Good to know, thanks 
Thanks
Yes, sort order is going to determine the order that things get drawn on the map. So if you have Back-1, Back, and Back1 layers, for example, things you put on Back1 will be drawn on top of Back which will be on top of Back-1.
Worth noting- extra layers are visual only. Properties and collision on them are ignored
Oh, now that I realize what sort order is, I knew that because that is how it appears while making the map. For some reason I didn't remeber that
@dusk mulch I see you just edited the wiki about the log thing. I have a couple of questions. 1) Did you confirm it's actually outdoors only rather than any location? 2) Did you check that the boulder is still only farm only?
Do you mean furniture can only be on buildings 1?
If you want people to sit on or collide with them? It has to be on Buildings
Or collide with them?
I will test them all now, I can do it quickly.
I can't tell if you mean Buildings or Buildings1, but if you want collision or sitting it needs to be Buildings, not Buildings1.
Thanks. I think it's probably better to make sure as much as possible that you're adding correct info when editing the wiki otherwise it just becomes a different kind of incorrect.
(In fact, most of my decompile reading has been to check stuff I'm editing for the wiki lol)
Also did y'all know that changing tilesheet order for vanilla maps doesn't break everything anymore? You're still not supposed to do it but now it's for performance reasons instead of explosions.
So, I'm guessing now that if I have any furniture behind another piece, like a plant layered behind another, I can't make one of them a solid object?
If they're overlapping tiles it shouldn't matter because the one from the Buildings layer will be impassable anyway.
And any bits where they don't overlap can both be on Buildings because they're different tiles.
yeah! i figured it out when i was doing map stuff for portable hole and saw it wasn't all locked to sheet/global tile index any more
ok
You don't have to (and shouldn't) put the entirety of a piece of furniture on one single layer.
i tested it and the log, stump and boulder cant be indoors
Ah, that makes sense I guess
I know, some need to be on front layers. Looking at the unpacked vanilla houses has been helpful
I found out by accident because I exported Forest after patching it and found that my custom tilesheet had "z_" as a prefix - but I hadn't done that myself lol
Yes, looking at vanilla is super helpful! It's also really easy to quickly adjust layering when you're testing in game because it updates immediately when you do a patch reload so you can run around, go "whoops I should not have been able to walk there", alt-tab to your map and change it, then patch reload and check it straight away.
I haven't heard of a patch reload? I haven't done any ingame testing yet though. Hopefully there is some good documentation on this.
Thanks
It isnt that hard to understand, it just refreshes your mod.
patch reload <ModId>
I strongly recommend testing in game before you make almost any edits to a map.
In fact, I make sure I can get my map in game while it's still a vanilla copy before I start editing it.
I am not that familiar with the technical stuff beyond loading the npc into the game with basic dialogue
Too many fiddly bits that can go wrong with mapmaking to do much work without testing in between.
Yeah, I'd better test it soon
how do i write the content json brackets for multiple things to load?
Does the vanilla game keep track, somewhere, of all the gifts that were ever given and to whom?
For context, I'm making a feature to reward players when they "complete" secret notes 1-9 (There are all the notes that just describe some loved gifts). My definition of complete is, give all the loved gifts mentioned in the note.
Do I need to keep track of all gifts myself, or does the game do it and I can just read some data somewhere?
the game must have it
i don't know where it is, but it shows up on the social pages so it must be somewhere
that's smapi and it's done that for a while
possibly in the "Friendship" class
Alright i'll try to track that down. Thanks!
elizabeth, mom said it was my turn with the brain cell
but i was using it! 5 more minutes!
oh you should know they get marked as "seen" after you see the secret notes
so the vanilla game feature will not help you here
but you could intercept that maybe
wait what gets marked?
oh the secret note pretends you've given the gift?
ew lol
I can probably stop that
like if you read the secret note that says Abigail loves something you get gift taste revealed
same as when you see the dialogue witht that
Rather than us trying to explain, it might be easiest for you to try looking through someone else's mod.
"did you know pierre hates smelly socks? he really hates them"
those type of automatic dialogue
Pierre hates the m?
shhh you never saw anything
What's one more Harmony Patch after all 
For anyone wondering, it's here
Farmer.cs
public SerializableDictionary<string, SerializableDictionary<string, int>> giftedItems;
Farmer.giftedItems
mysteriously, it actually counts the number of times something has been given
Huh, that's a guideline I definitely break, I only load it after doing everything but the paths later, so I can do a walkabout and try to find tiling and layering errors without dealing with debris.
Yes but you already know what you're doing and how to deal with map problems lol. You're not a brand new modmaker who's never touched a map before.
So yeah, the reason it counts, is that when the gift taste is revealed from an external source, it adds it to giftedItems[npc][objectId] with a value of 0
And I personally adhere to it because I make mistakes every time I do something so I prefer to keep my mistakes limited to within one or two steps at a time xD
Fair, avoiding mapping issues is so ingrained in me that I just kind of avoid the causes passively.
.remind me in 16 hours to actually start writing my mapping tutorial.
Anyone know why my content.json isn't working for my map for FTM?
Did I misremember the thing?
It doesn't need the period to work and maybe it doesn't work with it?
remind @lusty elm in 16 hours to mapping tutorial
...ok. but you owe me. big time. (#6551484) (16h | <t:1740768714>)
Not without seeing anything lol
Thank you
Specifically, it's not spawning stumps and logs like it should! https://smapi.io/json/none/5d8e9935e90f43f9b9529ab6bcbc95eb
is there space for them?
yep!
this is pretty strict iirc "StrictTileChecking": "Maximum",
Is the map name correct? I'm on mobile atm
Yep because forage is working as it should be
Oml, I know the problem
I put the correct map name on the forage part but not the large objects part 
God I'm dumb sometimes lmao
You're not dumb, we all make mistakes and oversights, its why this channel even exists, to help each other through it all.
thank you 
π unimplemented farm? interesting (hmu anytime!
)
i... finished my edits before loading the map the first time i made one...
If i want to make 2 maps with a FTM config within one mod, how do i go about doing that? Do i make 2 content.json files, one for each map?
Copy the section that you want to reuse and target a different map with different settings
if you want to see the chaos you can look at my Forever Falls Farm FTM content.json, i think it uses FTM on 8 maps.
Oh ok thanks. Haha think I'll check it out to see how it's done properly. So they all go in the same content.json?
yeah
odd, i thought this was the monthly mod stats and knitting updates chat
A lot of my farms, even if i only have like just the farm map have at least 3 settings under basic forage, Day 1 Seed weeds, Seed Weeds, and Forage. each with different settings.
we have knitting?
I have knitting
stats...
and if anyone isnt sure what i mean by seed weeds, the forest farm has specific weeds that can spawn that always drop mixed seeds when destroyed, and they are an object that FTM can place in the world (and is treated as proper debris/weeds, so you can scythe them for the seeds)
Oh, stats soon, right?????
true, it is reaching end of month.
i wish this was a paths property ngl, instead of needing FTM. i like knowing where i put my Paths layer stuff...
it's nice having a visualisation on unique tile behaviours, sure, but that means there has to be a corresponding tileset and spritesheet for every single one
it's amazing how i can tell exactly how wide your phone is by the length of your messages
technology is wonderful
pressing 'send' when you reach the end like a typewriter
I'm just chatting between sprints

So you can think of the line breaks like me taking breaths
I always think of them being the length of your thoughts between work thoughts. Like "not necessarily" "work thought" "just have a (o) tile" "another work thought" and so on
Hyper task switching
Modding is cool because now you can lightly threaten pierre for telling the townspeople he grew the cauliflower you sold him
Anyone here good with json errors? CP apparently doesn't like it when I do this:
"Query: '{{spouse}}' IN ({{Supported.Spouses}})": true
The dynamic token looks like this:
```json
{
"Name": "Supported.Spouses",
"Value": "'Alex', 'Elliott', 'Harvey', 'Sam', 'Sebastian', 'Shane', 'Abigail', 'Emily', 'Haley', 'Leah', 'Maru', 'Penny'"
},```
And the error looks like this:
[Content Patcher] Ignored Wedding Anniversaries > Include data/Dialogue.json > EditData Characters/Dialogue/{{Spouse}} #1: error reading info. Technical details:
System.InvalidOperationException: Error parsing '' as a tokenizable string
---> ContentPatcher.Framework.Lexing.LexTokens.LexFormatException: Reached end of input, expected end of token ('}}').
```
Trying to follow a CP documentation example: "Query: '{{spouse}}' IN ('Abigail', 'Leah', 'Maru')": true
I'm guessing that the dynamic token is expanding in a weird way. Or something
You can do a patch parse of your token to make sure it's evaluating to the right thing
just run "patch parse" ?
patch parse "{{Supported.Spouses}}" "yourmodid"
Thank you! I'll give it a try
I can't figure out where it's expecting an end of token and not finding that
Hey, I am curious if there is a way of using the Chat Box to have a mod get a string (word or sentence) from the user and then give an answer back? Like is there a function where we can add onto?
I used the tilde software as suggested, it's so cool hehe, but when I tried to run it by writing a mod, when I entered the game, they didn't recognize it, I didn't see any error messages but upgrading the house didn't work either. Can someone kind help me check where the error is?
Smapi log https://smapi.io/log/63304909140341778c3e1e87c5550d85?Sections=ModUpdateList
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Pro, with 61 C# mods and 126 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
[Content Patcher]
Metadata
----------------
raw value: {{Supported.Spouses}}
ready: True
mutable: True
has tokens: True
tokens used: Supported.Spouses
Diagnostic state
----------------
valid: True
in scope: True
ready: True
Result
----------------
The token string is valid and ready. Parsed value: "'Alex', 'Elliott', 'Harvey', 'Sam', 'Sebastian', 'Shane', 'Abigail', 'Emily', 'Haley', 'Leah', 'Maru', 'Penny'"
FWIW, I tried using the string without the single quotes around each name as well
Got an entirely different error
Is it just the {{Supported.Spouses}} token that's the problem? Does it work if you just copy the value of the token in? (I don't see how it wouldn't, given that'd be identical to the CP example, but π€· )
Give me a minute...
What is the name of your mod?
I would try hooking onto the enter function on the chatbox
you can also register a chatbox command
I got it working, although I think because Im using mead as the primary item it no longer copies any color from the fuels, is there a way to do that? Following the wiki formula for Output inherit the dye color of input items is for the input item, but can fuel be copied?
I just created my own... named (CP) CustomFarmhouseBitnaa
hang on a second
You're missing the s in Maps in your Target.
I think this may be overcomplicated
try
{
"Name": "Supported_Spouses",
"Value": "Alex, Elliott" // so no quotes
},
// later
{
"When": {
"Supported_Spouses" : "{{Spouse}}"
}
}
Alright. Giving it a shot
did you also set selph.ExtraMachineConfig.ExtraColor.1?
Lol I was like "Atra that is the same thing"
Damn I did not, thank you! Idk how I missed that
omg thank you 
Hmm setting this in mod data with DROP_IN_ID_1 didn't do anything am I misunderstanding its' usage?
did you also set CopyColor true in the baseline rule
Not being able to reproduce a bug a user reports is so frutratinggg
i'm just gonna add an extra null check and uhhhhh push a patch version π
I like the simplicity, but it is still a no go
Sure, hold on. Do you want that as a log file or pasted here?
I meant the json for content patcher!
see, I don't see the parse error in what you posted
Hey friend, help me huhuhu, it shows an error like this, what's wrong with it? π₯Ή
Ummmmmmmmmm xD. How would I do... that then?
Sorry XD
you can't
Really? :/ dangggggggggg
frustration
pain
sadness
I was trying to avoid adding a whole new editdata block for each and every spouse
C#
Respectfully... no xD But thank you for the suggestion all the same
- what does your sprite sheet look like
- with Lookup Anything and data mining fields enabled, do you see
ColoredObjectin the fields
it's an issue with your tilesheet references sadly.
and the 2nd sprite is your aged mead bottle?
I am not sure how to answeer #2 π
The third one is the one to be colored, its greyscale. I had it working fine before I swapped position of fuel
Which is index 2
I'm mostly joking, but the rule of thumb for modding is if you want to do scripting you usually need c#.
I didnt end up using the second mead, index 1
ok, the extra colors from selph.ExtraMachineConfig.RequirementCount.1 (or 2, or 3) will take the monochrome sprites 2, 3 and 4 tiles away
the primary color (which will copy from the color of the input mead item) will use that monochrome sprite
which I don't think there is any?
Fair enough! It's not the code I'm scared of, it's that I'm trying very hard to support people who want to play with as few .dlls as possible
I have my meads set to color_gold
Mobile players?
Color them all myself? That's fine
I would need to do that for all base colors then I imagine
wait, give me a moment
I mean it's stupid but you could put it in the i18n
let me explain better
I see you setup color from only one fruit? you'd need a monochrome sprite next to the one you have
Or just people who don't trust mods generally. It's easier to justify CP because it's so widely used and tested, and CP mods are utterly transparent -- just .json really
and jsut make a comment to the translators DON'T TRANSLATE THESE
the existing monochrome sprite is for the primary color, which will be copied from the primary input
EMC unfortunately currently does not support fuel color into primary color
Say what? Make the gift list an i18n string?
(I didn't expect ppl to have a use case where you don't want fuel color as the primary color of the output tbh)
That... is utterly stupid but is also kind of awesome
Ah, okay damn
it's utterly stupid but yes it would work
maybe I can jerry rig a fix real quick
Ok, before I cave and make 12 different EditData blocks, I'm going to try it
you can still do colors, you just have to put the monochrome sprite two tiles away from the mead sprite
"It's so crazy, it just might work!"
I mean, there's a reason most c# mods are open source. But even barring that, it's trivial to decompile dlls and see all the code in them
Gotcha, okay I will try that rq
I get what you're getting at but I don't think it's a very common concern. Usually sketchy mods get flagged really fast bc a lot of us are nosy, and nexus's filters are strong
but also, i18n abuse sounds fun
It is fun
like this? rofl
yeah
you just need the second one if you're only using color from the first fuel
the third one will use color from the second fuel, fourth one third fuel
first one is the primary input's color, which is the mead bottle's gold
looks like you don't have them arranged in 16x16 squares
I used texturepacker the same as I always do, does doing a patchreload not work well with sprites?
π¦
Johtsy
Man.... I think it's a good idea, but I think the problem is actually somewhere else. It has to be common to all 3 of the attempted patches because none of them load. Though I'll admit this is fun:
"{{ModId}}_HappyAnniversary": "{{ i18n:{{Spouse}}.Anniversary.{{Random: Range{{0,4}} }} [{{ i18n:{{Spouse}}.gifts }}]",
tried "selph.ExtraMachineConfig.ExtraColor.1": "DROP_IN_ID_2", and "selph.ExtraMachineConfig.ExtraColor.1": "DROP_IN_ID_1",
"{{ModId}}_HappyAnniversary": "{{ i18n:{{Spouse}}.Anniversary.{{Random: Range{{0,4}} }} }} [{{ i18n:{{Spouse}}.gifts }}]"
oh is it ExtraColor.2 or 3
(missing one)
no that should do it
hmmm
- install lookup anything and generic mod config menu
- in LA's GMCM settings, enable "Data Mining Fields"
- press F1 on the mead item that's not being colored
- scroll down to the data mining fields and show me what's there
Figured it out. It was actually the line above, the "AnniversaryReminder"
missing }} to close the i18n
Same result
Thank you for all of your help! For the future, how would I negate "Supported_Spouses" : "{{Spouse}}" in the condition? I love this simpler syntax and would like to use it
With FTM, how do you make it so that for example, 6 stumps spawn per day but if theyβre not chopped down, no more will spawn until they are cut?
"Supported_Spouses|contains={{Spouse}}" : false
Thanks so much! How would you like to be credited? The i18n idea was genius
can you post your object definition?
the input mead item has to have a color tag
omg they dont. They used to, i restructured a lot ofg stuff about my mod and I guess that didnt make the cut
yeah add a color_gold tag and I think it should work with a fresh test
Works :D
Now, because scope creep is real, any way to randomize the adopted fuel colors? π€£
make three entries, one can be "selph.ExtraMachineConfig.ExtraColor.1": "DROP_IN_ID_2" instead of "selph.ExtraMachineConfig.ExtraColor.1": "DROP_IN_ID_1"?
and one for 3
I saw your comments here and on the groupable chests mod page, thought you might be interested in this mod I published today : https://www.nexusmods.com/stardewvalley/mods/31910
Gotcha, nice
Bump
I am adding more garbage cans and I want to use a blank file then edit the blank file for each garbage can so I don't have to use multiple maps/JSON's, is it do-able?
Wait
I can use an EditData then the FromFile can be a blank then edit the garbage can data
Isn't garbage data all in one game asset?
Yeah but I would need multiple maps then for eac- wait I can just use a map edit.
afaik you cant control this with FTM (the part where none will spawn until the existing 6 are cut).
Ahh ok, do you know an alternative way of doing this? Basically I want the stumps to work like they do in the Secret Woods
secret woods doesnt work like that though?
The stumps map property
the stumps always respawn
just use the Stumps map property
secret woods stumps always respawn regardless if all havent been cut down
Ok I will do, just it wasnβt working when I used it last time hence me using FTM. When I cut the stumps spawned with the map property, they didnβt respawn
I am making a mod where there are more garbage cans around town and I cant figure out how I would put the property into the map because I would need multiple maps, can someone help?
Was it formatted right?
Yep I looked at the wiki and they did actually spawn initially, just didnβt respawn
What do you mean by edit data into a map? Maps and data are two separate things. Do you mean location data?
I meant property, sorry
Aaaah
(FTM author here, I have to go soon or I'd take a look at the file directly)
You can make a set number of stumps spawn by only spawning them on specific tiles (e.g. things like "5,5/5,5" in the include coordinates). There's no real way to make it count the number of stumps on the map, though, and it can't detect/care about stump map properties.
Honestly? My suggestion is to use a series of tile edits.
Oh wait thats a good idea, On the map I am putting the garbage cans on, right?
Yeah. EditMap has a tile edit feature, gimme a sec to find the docs
I already know about it, ty!
Ooo ok that sounds like it would suit me. So if I put the coords I want in Include, would I need to put all the other coords in Donβt include?
I just forgot about it for a bit
Usually that error happens when you edit the map without all the tilesheets in the same folder. To fix it, put all the tilesheets into the folder with the map, open the map and make a little change, then save it and move the tilesheets back out of the folder.
If you put the specific tiles in IncludeCoordinates, then leave the other Include/Exclude fields empty, it'll only spawn on those specific spots. (Don't use any terrain types, it basically combines both "includes" together)
Brilliant thanks Esca 
I am trying to think of a good place to put pierres garbage can but I can't think of one...
This kinda what you meant?
https://smapi.io/json/none/d456cc2c042c489b9499e5630af425a0
Should I have the entries/triggers be named differently? How do I determine which one is used
Maybe put it in Carolineβs greenhouse 
no, keep one entry in outputrules
have only one trigger
but three entries in OutputItems
Lol, I could but it would be unfair since you need to have 2 hearts with caroline to get in
Ahhh gotcha, my mistake thank you
Oh yea I forgot about that requirement. Maybe at the side somewhere?
Should I also have "UseFirstValidOutput": false,
In town I mean
The right one: Blocks path
Top: Hard to find
Top left: Too far out to be able to tell it is pee hairs
Left: There is already a garbage can going there
Wait i got a spot
you shouldnt need to since thats the default
but feel free to add just in case
Where did you decide?
Yea thatβs easy to spot
probably because of the instant ready rule? idk
My thoughts as well
actually maybe there doesnt need to be more garbage cans
every building has one except pierre and harvey
i am wanting to get into making mods for stardew. so i am wondering if i should just learn Json and stick with that for awhile or go straight to learning C# and use that for mods.
I guess it depends what you want to do
i mainly just want to start off with small stuff i suppose. reskins, new item or two, etc.
You don't need C# for that
Im just starting out as well, but I think thats all json stuff
Making mods can be broadly divided into two categories:
- Content packs are formatted text files, and don't need any programming knowledge. They can add/edit NPCs, maps, new items, shops, and more. To get started, see the list of framework mods, the wiki tutorial for Content Patcher, and there might be relevant guides on the tutorial wiki.
- C# mods use programming code to change fundamental game mechanics. See getting started with C# modding.
Usually itβs easier to start with making content packs, since you don't need to learn programming.
i have almost no coding knowledge besides basic html and very bare bones css
What if, instead of having to make multiple maps for little things, I just copy the whole map over and EditMap it ontop of the normal map
I have even less knowledge haha
And here i am making multiple mods
It's really easy to learn how to use frameworks
So hopefully you shouldn't have too hard of a time
It is your choice
I use notepad++
But VS is popular too
Notepad ++ and visual studio code are the ones I see
Same haha, i like vsc a lot more
or is there something else better or prefered over the two?
bump
It's really up to your preferences
Those two are pretty much the industry leading standards afaik
Parsley i feel like you've been typing for 10 years π
Bro is writing the entire FNAF lore
If by this you're suggesting that you patch an entire edited Town map over the vanilla Town map just to add some rubbish bins, that's terrible for compatibility.
I am moving on from the rubish bins because every building has one apart from Harvey and Pierre
I use Sublime, N++, and VSC for json and VS22 for C#. N++ is less useful than VSC because it doesn't have built in error checking the way VSC does so I'd recommend trying VSC.
I am adding more decor to the town to give it a bit more... liveliness. And I dont want to have to make multiple maps for each bit of decor
My point about patching an entire map just to edit some parts of it being bad for compat still stands. You'd make your mod overwrite other mods' changes with vanilla.
Oh... Well what do you suggest I do?
If you just want to add a few tiles here and there of different vanilla decor items just use maptiles to do it.
No I am adding like garden beds and adding quite a bit of stuff
Then yes, make lots of little maps.
Or just one big map and just patch different parts of it. You can adjust your FromArea so you're using little bits from your one big map in each patch.
I will go with this one, ty!
hello.. I've been sitting there fixing it from morning till noon, I've checked with gpt chat but I still can't figure out where the GID 1 error is, because I've embedded all the tilesheets I need to use. :<
Just bear in mind that having lots of EditMap patches of the same maps is going to be bad for performance.
i cant win with mapping lol
Don't use chat GPT, it won't help at all because it doesn't know what the correct thing is.
Embedding tilesheets doesn't affect this error. Did you make sure to only edit the map with all the tilesheets in the same folder as the map?
There's a reason that most of the mods that make significant changes to vanilla maps are incompatible with lots of things. If you were really committed to changing the vanilla maps and didn't care about SVE compat you could Load your maps instead. Your mod would be incompatible with any other mod that tried to Load vanilla maps but other mods that used EditMap would be sure to edit after your map so you wouldn't erase their changes.
Hmmm... Not many mods do load their maps for compatibility purposes... so if I load it I would only mainly be incompatible with SVE...
I will load it.
Thank you!
(I just closed out of the map so now I have to restart)
i thought the image just needed to match the tiled file? because i see they are identical, and the folder has been deleted and re-deleted several times.
I'm not sure what you mean by the image needs to match the tiled file?
let me do it again :<
Do tilesheets have to be from the /Maps folder or can they be from anywhere?
Without arbitrary tilesheet access (another mod), must be from Maps
They need to be from the /Maps unless you use ATA, or you (can, but not recommended) include it in your assets. If you only need one tileSheet from outside /Maps you could probably get away with that.
Then I won't
Orrr...
I will use ATA
I just need to have it in the mods folder right, I don't need to do anything, just as long as the tilesheet path has the /content bit?
you need to have the same path as how it is in the game files
so if you're using craftables
Content/Tilesheets/Craftables
(i think)
So that path would need to be the same as the tilesheet path?
yes
i like to just keep my own "Content" folder in the same one as my maps
What do you mean?
(keep in mind you still delete the tilesheets before publishing)
Wait so I have to have the same folders as the path for the tilesheet in my mod? I thought that was just the path in the tmx file I am confused now
like this
this is showing an example for using a modded asset but theres a TileSheets folder there too and it works the same
put a Content folder somewhere next to your .tmx with the right files inside it that match the unpacked path
and use that content folder to add the tilesheet
Ohhh, ty!
Okii tyy
I'm glad you mention being able to do it with the XML edit too.
that's actually my go-to before anything else because I find messing with the xml easier than messing with Tiled lol
Yeah me too haha
Every time someone suggests fixing tilesheet directory climbing by putting the tilesheets into the map folder and opening Tiled I'm like "welllll.....I guess you can do it that way"
My pet peeve is when i mess something up in tiled then have to go edit the xml XD like "ah dangit"
tbh whenever I start doing my own map stuff I'm probably just gonna add a little thing on my site that just lets you drag and drop your tmx into it and it'll fix it for you and spit it back out
because I will mess up my sheets I know this
and I will want to be lazy
Efficient solutions come from people being lazy
im kinda surprised SMAPI doesn't just strip out the climbing for you
time to PR smapi 
tbh i had vague thoughts about how ATA ought to just, be in smapi
it doesnt seem very criminal
I've been struggling to figure out what the game uses tilesheet image source for compared to tileset name. I think I've identified that image source is used to find the tilesheet in the game assets to use, but tilesheet order is determined by tileset name. I'm not sure if there's other stuff. I want to get it straight in my mind so I can work out a useful, consistent naming convention and editing process.
the reason I don't is because I am such a lowly coder worm that my default thought is just always "surely there's just a reason for it I'm unaware of" wrt SMAPI
wurm
the image source is indeed what is used to load the asset
it takes the image source and puts it in front of "Maps/"
the recommended for custom is just the z_ thing
i dont think the asset target itself matters beyond seasonal sheets (spring_)
But is that for the file name (and therefore image source) or for tileset name or both?
only for the tileset name
<tileset firstgid="2241" name="z_spring_island_tilesheet_1" tilewidth="16" tileheight="16" tilecount="1280" columns="32">
<image source="spring_island_tilesheet_1.png" width="512" height="640"/>
so in this map i am using Maps/spring_island_tilesheet_1 asset, in a tileset named z_spring_island_tilesheet_1 so that it sorts later
I dislike that my file name has to match the target :(
Is there any other purpose that either tileset name or image source gets used for?
your filename doesn't have to match the target 
Yes it does or I can't edit it in tiled
just symlink it
How does that work?
<tileset firstgid="153" name="z_SewerChickens" tilewidth="16" tileheight="16" tilecount="8"
columns="4">
<image source="mushymato.BuyAllVanillaAnimals/SewerChickens.png" width="64" height="32" />
Can I change the name of the symlink?
while i was editing this mod i had a subfolder named mushymato.BuyAllVanillaAnimals bc eventually i was gonna load {{ModId}}/SewerChickens
the actual file is called SewerChickens but literally nothing stops me from naming it something else
~/mushymato.BuyAllVanillaAnimals (main) > ln -s ../sewer_chickens.png SewerChickens.png
lrwxrwxrwx 1 mush mush 21 Feb 28 02:24 SewerChickens.png -> ../sewer_chickens.png
coulda been like this if i wanted 
I don't know how symlinking achieves that
Can you rename the uh, I don't know what it's called. The pretend file that's linked to the real file?
yea thats whats happening here
SewerChickens.png is the symlink, to a real file named sewer_chickens.png in the parent folder
the actual load would be
{
"Action": "Load",
"Target": "Maps/{{ModId}}/SewerChickens",
"FromFile": "assets/sewer_chickens.png"
},
(i didnt bother changing the filename in actual mod, only the folder, but i could have
)
Hmm okay that's cool
I want to set up a save file for mod testing (so far I've been using my perfection save but I can't really test joja stuff with that). What mods should I have on a testing save? CJB cheats / item spawner? event lookup, lookup anything?
Looking for advice on modding dialogue... The goal is to either A) Have a default dialogue that overrides all other dialogue and is repeatable (IE, regardless of keys, always load 1 single dialogue, and it repeats so unless coded no other dialogue can occur), or B) Catch and override the dialogue action when clicking on an NPC (I've tried using OnButtonPressed).
Any advice is appreciated.
v1.5 Launched :D
https://www.nexusmods.com/stardewvalley/mods/31786
Now with NON-SVE support!
You saved your map without all the tilesheets in it that you had at the start, you need to add the missing tilesheet back, change a tile, and resave.
This should cause Tiled to update the XML data and recalculate the starting GID's. You can then remove the change you made and save again.
Always make sure to have your tilesheets in the same folder as your tmx when editing your map in order to avoid invalid tile GID errors.```
Concocted a little wiki for my honey mead mod;
https://github.com/STRHercules/BonghitsStardewMods/wiki/Bonghits-Stardew-Mod-Wiki
At first I got the same error, then I deleted all 3 tilesheets "indoor", "untitled tile sheet'',"wall and floor", and then added the 3 images from the beginning in the same mod folder, I did the process for more than 1 hour and added those 3 images and did not use any other tilesheet images, then I saved.
For my dev setup, I have the following mods for testing:
- Can The Player Leave
- ChatCommands
- CJB Cheats
- CJB Item Spawner
- CustomLocksUpdated
- Data Layers
- Debug Mode
- Event Lookup
- Fast Animations
- Fishing Info Overlays
- GMCM
- Profiler
- Reset Terrain Features
- Schedule Viewer
- SinZsEventTester
- Skip Intro
- UI Info Suite 2
Ahh thanks! So helpful π
If you're looking for advice for how to do this, maybe look at the BETAS code for SetNewDialogue? It's a trigger action for adding or replacing dialogue and might help you get ideas for how to achieve B).
Is there anywhere that shows a good example of how to add a custom recipe for a custom machine to a shop?
I have fixed it for you. Would you like me to send you the fixed version or try to explain how I fixed it? (Or both)
both go plsssss
I unlocked a custom machine at level 4 farming, and it had no icon in the level up screen. the sprite fully works otherwise, how do I fix that?
Also has no icon in the crafting window
i don't know about that, but did you already figure out how to add the crafting recipe to a shop?
I have not lol
okay, i think it would be something like this json { "Action": "EditData", "Target": "Data/CraftingRecipes", "Entries": { "{{ModId}}_the_id_for_the_crafting_recipe": "" // the crafting recipe here } }, { "Action": "EditData", "Target": "Data/Shops", "TargetField": [ "ShopIdHere", "Items" ], "Entries": { "{{ModId}}_something_here": { "Id": "{{ModId}}_something_here", "ItemId": "(O){{ModId}}_the_id_for_the_crafting_recipe", "IsRecipe": true, "Price": 100 } } }
Okay, I have sent you some messages about it here #1277457201077813280 message
good lord, hopefully it's correct now
Before I submit this to the wiki, can you check the code for a "DwarfGrave" Tile property?
(I don't know how to)
I can give it a go.
Thank you!
That worked, but there was no icon, the recipe desc was wrong and had a messed up name. Hmm
I did find it but there's a reeeeeaaaaaally long list of Action properties (it's like 1,500 lines long) and I've already found several others that aren't on the wiki either.
But specifically for "DwarfGrave", what were you wanting? A description of what it does?
Well adding the raw machine worked
Probably going to just stick with this since recipe unlocks at level 4 farming anyway
I already know what it does, I am just putting that one on the wiki, if you want to give me half of the list we can each do half of the 1,500 if you want to, a contribution to the wiki (I was just making sure it was a valid action)
did it turn to the torch recipe? it happens when the recipe key is wrong. or could be that there is some problem with my "code"
yeah it defaulted to torch
{
"Action": "EditData",
"Target": "Data/CraftingRecipes",
"Entries": {
"{{ModId}}_MeadKeg": "388 125 725 2 726 2/Home/bh.meadkeg/true/Farming 4/" //125 Wood, 2 Pine Tar, 2 Oak Resin
},
"LogName": "Mead Keg Recipe Definition"
},
{
"Action": "EditData",
"Target": "Data/Shops",
"TargetField": [ "SeedShop", "Items" ],
"Entries": {
"{{ModId}}_MeadKegRecipeSale": {
"Id": "{{ModId}}_MeadKegRecipeSale",
"ItemId": "(0){{ModId}}_MeadKeg",
"IsRecipe": true,
"Price": 5000
}
}
},
{
"Action": "EditData",
"Target": "Data/Shops",
"TargetField": [ "SeedShop", "Items" ],
"Entries": {
"{{ModId}}_MeadKegSale": {
"Id": "{{ModId}}_MeadKegSale",
"ItemId": "(BC){{ModId}}_MeadKeg",
"IsRecipe": false,
"Price": 12500
}
}
},
"(0){{ModId}}_MeadKeg" the number 0 here should be O (for Object) instead at least
Oh woops haha
Thanks for the offer but I can't commit to any wiki stuff right now, sorry. It's a massive undertaking and I can't afford to spend my energy on wiki things again so soon after the last time. The wiki also says that it intentionally excludes the really specialised properties, which I think many of the ones in the code probably are (including DwarfGrave - I don't know that it's going to be very useful being on the wiki since it has no real use in a mod).
Ive never heard of such a property before
Hmm
{
"Action": "EditData",
"Target": "Data/CraftingRecipes",
"Entries": {
"{{ModId}}_MeadKegRecipe": "388 125 725 2 726 2/Home/bh.meadkeg/true/Farming 4/" //125 Wood, 2 Pine Tar, 2 Oak Resin
},
"LogName": "Mead Keg Recipe Definition"
},
{
"Action": "EditData",
"Target": "Data/Shops",
"TargetField": [ "SeedShop", "Items" ],
"Entries": {
"{{ModId}}_MeadKegRecipeSale": {
"Id": "{{ModId}}_MeadKegRecipeSale",
"ItemId": "(O){{ModId}}_MeadKegRecipe",
"IsRecipe": true,
"Price": 5000
}
}
},
{
"Action": "EditData",
"Target": "Data/Shops",
"TargetField": [ "SeedShop", "Items" ],
"Entries": {
"{{ModId}}_MeadKegSale": {
"Id": "{{ModId}}_MeadKegSale",
"ItemId": "(BC){{ModId}}_MeadKeg",
"IsRecipe": false,
"Price": 12500
}
}
},
Do I need 2 separate recipes?
Sorry, I didn't know you had done such a big contribution so recently. The wiki is tiring just reading it.. Anyway, I got to go back to mapping
no idea really. but i guess it's possible that you can't have it both unlocked by a farming level and sold it in a shop
That makes sense, I guess the recipe being sold when unlocked at farming 4 is a bit superfulous
I'll just sell the kegs, done :p
...i don't think you can sell recipes themselves
The shops have recipes so I just assumed
It's the item
Yes
Sick
Nothing to apologise for! I'm surprised you didn't know, though. I feel like I've done nothing but talk about it, like a little kid who wants the adults to notice I drew a pretty picture xD
"Awww that looks beautiful honey! Anyway, So he cheated-"
eh, so the shop entry looks for the recipe results in Data/CraftingRecipes or something?
oh I think I see the issue
Maybe I don't
Looks like my i18n isnt being read?
"Description": "{{i18n: meadKeg.description}}",
Basically when you set the shop to sell an item that has IsRecipe true it sells a recipe "item" that teaches you that recipe for the item
"meadKeg.description": "Used to create artisanal meads from various fruits and honey.",
Are you sure you changed your item id in your craftingrecipes part
To be the correct one
Ok yeah it's wrong, i see it
Your yield should be {{ModId}}_MeadKeg not bh.meadkeg
looking for feedback in #making-mods-art
but, what kind of relation is there between what goes into the ItemId in the shop and the crafting recipe data in Data/CraftingRecipe
I dunno, fancy stuff
i just mess around and make mods
Im not familiar with the code that goes on behind the scenes
i mean more from a practical viewpoint, like should the ItemId point to the crafting recipe key or something else
Well i. Also don't know
That's just how it works
Ask CA? π or if someone knows
Then maybe they can answer
i'll test it sometime
CA is a very last cause, you would go
Documentation > #making-mods-general > Pathos > CA
I didn't mean ask him literally
oh
But more of a "well if anyone knows it's probably the one who made it"
I have a mod that adds a recipe and I have a mod that adds a shop, but not a mod that adds a recipe to a shop. So I guess I know what I'm doing now lol
π€£
Kind of on the fence on including the recipe since it unlocks at farming 4, but I did sorta want an even faster shortcut available for players
I like being able to buy recipes personally, though I would definitely have reached farming 4 before buying it lol
I will figure it out while you are gone and ping you once I know (or once I give up if that's the outcome lol)
Oug I know this happens for a reason I just can't remember why .. I've done it before (and fixed it) but how I fixed it has vanished from my mind
Does anyone know if any NPC's go to the playground?
Ok, this is just an ungrounded question BUT is putting glowing things on a horse possible
Jas Vincent and Penny yeah
Like, make it have a config for a glowy accessory

Never seen them there
Well ig I have to edit some schedules now
And Eloise if you have her.. and Lavril if you have her too

i swear I have
is it allowed to edit someone elses NPC schedule for it to be compatible with your mod?
Jas' Saturday schedule
If they give permission, yeah
When in doubt, ask the author
If not then don't
Alright, ty!
I don't wanna look for Vincent's lol but I'm guessing it's also on Saturday
I will go ask them then
What mod adds Eloise?
You'd ask Lemurkat for that- she's from the main East Scarp mod
Ah
I think Arknir is on hiatus right now? But Lavril is from an East Scarp expansion (literally called Lavril - East Scarp NPC (King's Raid)) that they made
You could probably ask them IN the East Scarp server though
ouh
I did not even realise he was on hiatus
I remember seeing that somewhere but I'm not sure
I could also be β¨οΈβ¨οΈ crazy(er) β¨οΈβ¨οΈ
I can't say crazy in general because one look at my profile in this server tells you all you need to know
No you are right his ES server username has "hiatus" in it
insanity vibes.

So that whole time just now that I was trying to change my content.json in various ways to get the recipe to show up properly...it was the wrong file xD
I changed the folder name while I had the content.json open and instead of denying the name change, it just made a new folder and left the content.json (and nothing else) inside the old folder name.
rip
welp ive done some of the map for today, as soon as i wake up tommorow it will be right back to it\
Is anyone aware if there is an existing mod that makes it more obvious that a machine (like a keg or mayo machine) is idle and isn't holding the desired item (wines and mayo using the previous machines as examples)? When I mean obvious, I mean like a color tint or a message on screen. I'm asking bc I want to make this mod, but I don't want to if it already exists
There's this one I currently use
https://www.nexusmods.com/stardewvalley/mods/22598
What does desired item mean
The items that the machine produces. What I said in parentheses afterwards
Yeah, I made a mod like that in 1.5.6 and don't feel like rewriting it for 1.6 lol
even though it's easier now
Thanks to Data/Machines
Oh my gosh FINALLY my recipes are in the shop, thank you Atra this was the piece I was missing! That needs way more explanation in the wiki.
A ghost of the voice of Lumi, saying just "cookies"
See I was looking at examples in the vanilla data and still stuck.
I was trying to follow Selph's explanation from a while back and I thought they meant that the ItemId in the shop data needed to match the Data/Object Name field, not that the recipe key needed to match it. Maybe they both need to? I don't know.
oh yeah i noticed it earlier but just?? ended up not mentioning it for some reason?
maybe i got distracted and forgot
Ahhh I was going to ask you about that but then I didn't π
I must adjust the wiki so nobody else goes through this pain ever again
It's the recipe key, and you can remember this because of how the vanilla recipes are set up
this is why i just make ID and name match
I saw that they matched but it did not click that it mattered, for some reason.
My object ID and name matched but my recipe key did not.
I think I missed it because the recipe key doesn't need to match the object name for the recipe to actually work, just for it to be sold in a shop (maybe also to have the recipe added by trigger actions etc? Haven't tried that).
Y'all ever look at your old mods and wonder how anything worked ever
https://i.redd.it/kxeexaamhes51.jpg
// THIS IS BRIDGE
reminds me of one time when I commented //This does on something... does WHAT me? WHAT DOES IT DO?
Finding half-written comments in my commit reviews is common for me. I think what happens is while trying to describe something I realize something I hadn't considered/handled and I float off into the ADHD wind to address it
This does
What are you doing to the playground? Jorts and Jean sit near it.
Honestly revisiting some of my older mods for 1.6 updates has been interesting, there are a lot of tricks I didn't know or wasn't ready for then that I use now.
Do you think it'd be fine if I posted one of my mods that I converted to CP as a new mod instead of on the old mod page? I originally made it using Furniture Framework (i didnt know how to use CP at the time, and was also just trying to learn how to use FF)
There are so many things I know now that I did not know before...
I've been going back through my old mods to update them / make them better and just... wow
It apparently did that's for sure
that's what learning and improvement is though! 
If you're putting it on a different framework I think it'd be fine to put it on a separate mod page.
Like how some people separate their CP and AT pages.
Hello! I'm creating a custom NPC and working on sprites for custom animations related to their schedule. I have a question: How does the animation work if I want my NPC to sit in a chair? Is it handled like a normal animation, or does it require a different approach?
It's a normal animation! You can use an offset to adjust them though if you need to.
Ok thanks a lot!
Is there a way to override game input? For example if I right click on a character with dialogue, can I prevent it from opening that dialogue and instead do something else?
I'm guessing my suggestion before wasn't helpful?
Do you want people to lose ability to talk to NPC entirely?
Should elaborate on your actual goal here
BETAS trigger actions basically work within dialogue. So when you start the day, dialogue entries can be modified... What I'm looking for is more low level. For example, I click on a character, and instead of talking to them I can add an item, change sprites, play a sound, etc.
Ideally I want to work outside the Dialogue logic.
C# can do it obviously but the question is why 
Is the part that you "talk to an NPC" even important
What if you just click on them in social tab
Not from what I've seen... Smapi has an event handler for OnButtonPressed, but it doesn't override.
You can use harmony to patch NPC do action
But yeah if you don't explain more on what u want I can't help much
Harmony looks like exactly what I am looking for. Thank you
I just have a question about custom shops: Is it possible to make a self serve shop like no npc has to be around for me to interact with the shop whitout Shop Tile Framework? (Just using Content Patcher)
I think you just have to not set an owner for that.
Try an owner of "None"
Thanks, I'll try
^ that was what I meant and should've been clearer with lol sorry
Like "Name": "None"?
Thanks
!log
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.
For the 'PLAYER_HAS_MAIL' GSQ is there a way to have it be an either or for two types of mail?
What is 2 types of mail
if you need an OR condition in your GSQs use ANY
you can use ANY to do an or operation on two queries if the... thanks selph
i meant like... two different mails
specifically the ones you get from lewis or pierre for the mini shipping bin
Yep use ANY
where... would I put that
[[Modding:Game_state_queries]]
in the Condition field as usual. It's just any GSQ, albeit one that can contain other GSQs
I knew where GSQs went just not the "ANY" itself but I see it now B) thanke
Hello friends! Iβm new to modding, Iβm looking for a way to make Clint buy all artifacts instead of just a few. Would anyone be able to help me out with that?
sure you can
you'd do a targeted edit on Data/Shops and adds extra entries to Blacksmith > SalableItemTags
are you familiar with content patcher and unpacking game files?
I am not π¬
!startmodding
Making mods can be broadly divided into two categories:
- Content packs are formatted text files, and don't need any programming knowledge. They can add/edit NPCs, maps, new items, shops, and more. To get started, see the list of framework mods, the wiki tutorial for Content Patcher, and there might be relevant guides on the tutorial wiki.
- C# mods use programming code to change fundamental game mechanics. See getting started with C# modding.
Usually itβs easier to start with making content packs, since you don't need to learn programming.
!unpack and then this
Follow this guide to unpack the game's content files in order to see and explore how the game data is structured.
It's helpful when making your own mods, or just to learn about how the game works!
Ahhhh! Thank you :D
Thank you!
I'm having trouble with FTM in terms of spawning hardwood stumps and logs. I've included the coordinates that I want them to spawn on but a fresh save seems to be ignoring these rules and just spawning about 7 even though i specified 1-3. The forage part of my content.json is working great but the large objects part seems to be going wrong somewhere. Can someone please take a look? https://smapi.io/json/none/88625b781ef0411aa3071bec7dbfd430
Hopefully a quick question, when I started modding, the recommendation was to include a config file with defaults. However, I'm starting to get complaints that when the mod is updated, the settings go back to default. Is there a better/preferred way to do this?
You should not do that
no config file
the config will generate automatically the first time it runs with your mod
Ah ok, one less thing to do then π
out of curiosity, where was it recommended to you to include a config.json with your mod?
It was back when I started almost a year ago, on the wiki I believe, but I'd have to hunt around to find it.
Tbh, after I set up my first mod with the file recommendations, I never went back to see if anything changed.
It most certainly was not a recommendation on the wiki ever, but you may have misread it
Oh, sorry, it was on a guide site somewhere but I don't have the URL. Apparently it was outdated.
Yeah, for the same reason people are complaining, that's why it's never recommended
Got it... I didn't know about the Discord when I started, so it was all hunt and try to figure it out.
No worries, this place is very helpful for tidbits like that
For modders that do want to share certain configs, they usually add an optional download on thier mod page rather than bundle it with the mod
Bump
@lusty elm: mapping tutorial (16h ago) [Requested by atravita]
After... however long I first wanted to make some form of compatibility between Farmer Portraits and Dialogue Box Redesign, I've finally managed to make a rather hacky setup today!
One thing I can't seem to figure out though is how to move the text.
I wanna decrease the width and raise it a little.
I think you gotta be in C# for that 
I was! Been shuffling through the mod's source codes for this entire evening!
I managed to figure out the other elements, but I have trouble identifying the parts that relate to the dimensions of the dialogue text.
you can set up a content.json with content patcher to change only specific sprites on a spritesheet right?
I have the project open right now and could show it, if that helps.
yes. use FromArea and ToArea

ty!
I suspect it's somewhere around here:
you might also be able to get away with an overlay, but afaik you can't use overlay to remove pixels, so your edits would have to be strictly larger than what they are replacing
This is dope
classic discord
Thanks! it'll doper once I resize the text.
Didn't even indicate to me that it was rofl mobile is rough
π
Hey everyone! I've got a quick question for C# modding - does anyone know if there are any straightforward methods that could be used to retrieve/calculate the minimum distance between any two locations on the map? Pathfinding basically but in a way that retrieves a number of tiles that would need to be traversed as a usable value. Possibly less intensive/more efficient here would be a way of figuring out how many locations are in between Location A (let's say farm) and Location B (let's say Robin's house) but I am similarly lost on how one would do that lol
Pretty sure I can't upload it like that though, since I modified the two mods directly.
I don't have too much experience with looking at warps, but this pretty much sounds like it would be using pathfinding to find the tiles between the two locations
some variant of A* should do this
How tightly coupled is pathfinding to NPC instances. I wonder if it'd be possible to just find the same route an NPC would take
i don't know how the NPC pathfinder works, but you can pretty easily add a controller to the farmer that moves them to a desired location automatically, if that's your goal. let me pull up an example, one sec
PathFindController.findPath looks promising
Oooooh
something like this:
Game1.player.setRunning(true);
Game1.player.controller = new PathFindController(Game1.player,
Game1.player.currentLocation, new Point(5, 10), 0,
delegate {
Game1.player.faceGeneralDirection(
startloc * 64f, 0, false, true);
});```
That looks good, ty! I'm currently working on a mod I've talked about in passing here that randomly generates NPC schedules every day according to certain parameters and one such parameter I'm considering is factoring in how far a location is from their home/spawn/bed
you would want to use your target coordinates instead of (5, 10) here, and put whatever you need in the delegate instead of necessarily facing a given direction
You've got two large object areas defined, both spawning either stumps or logs at random. One is named "Woods" in the unique ID, but they're both targeting the same map, FairyPlace. The first area spawns 1-3 things per day, spread across 7 2x2 areas (so their positions will vary slightly). The second spawns 2-6 things per day on any random grass tiles.
I actually have a usecase for this pathfinding thing as well, only I'm more interested in the individual nodes. i.e. paths to the next warp.
Have you tried adjusting the textX and textY yet?
With a transpiler
!harmony
Harmony is a framework for patching .NET code, allowing you to take any portion of the game's logic and insert or substitute your own. This gives you more flexibility and control than SMAPI helpers and events, at the cost of being typically more complex and difficult to use safely and correctly, and more likely to break with a future update of the game and/or SMAPI.
If you are trying to do something that isn't possible or practical with SMAPI alone, then Harmony is usually the solution.
For more information, refer to the following:
- Harmony Modder Guide - Intro, Use Cases, Initial Setup
- Tutorial: Harmony Patching - Types of patches and code examples
- Decompiling Stardew Valley - For finding methods to patch
Ahh ok I see now. So I've deleted one of the areas. What do you mean by their positions will vary slightly?
The game's pathfinder is pretty constrained
I would just do an a* of my own
For multi-tile objects, FTM basically picks a random tile from IncludeCoordinates for the top left corner of them. So if you want an object to spawn on a specific tile, something like "23,36/23,36" works. "23,36/24,37" will let it spawn with its top left corner on any of those 4 tiles (assuming there's nothing blocking that).
Oh that makes sense. Thanks for explaining! 
Yep. It was TextWidth that I was looking for! With some changes to TextX too I now have this:
ooh that's so nice
I'm honestly surprised I managed to pull this off at all, without having read any guides or C# experience.
ooo
I'll share a well-guarded secret. Everyone here at one point in their life didn't know C#.
I actually learned C# mostly to code SDV mods.
But as I've said before, this won't be uploaded publically. I'd basically have to hand out the modified DLLs of both Farmer Portraits and Dialogue Box Redesign. That and I screwed around with the equations a lot, which will likely cause odditis at different resolutions.
Speak for yourself
Some of it was feasible without knowing coding language.
Like PortraitX or TextWidth.
And with a lot of experimenting with changing values...
Boah, I think I've earned a tea after all that.
And a chocolate chip cookie...
And apple, because vitamins. Very important.
Except for atra, their brain came preloaded with C# knowledge
I am here once again asking if anyone knows anything about marriage schedules being borked for ... no visible reason
As a small language model....
and by borked i mean 'npc goes to location and then just stands there and doesnt actually move'
(like stands at the entry point of said location)
so they just π§
I don't touch NPC schedules because to me it feels like disarming defusing a bomb

i mean you're not wrong
Theoretically I could upload this with a few instructions and after asking for permission from the author behind the 1.6 version of Farmer Portraits. Dialogue Box Redesign is open-source.
At least I think I could. Unless I'm missing something.
One of his schedules works properly. One of them. And it isnt even that different from the others
where are my npc makers @
exploded, gone, eliminated

And with lots of disclaimers that this is a rather wonky approach.
Hi Tia
Can I see one of the ones that doesn't work and the one that does?
(i have summoned tia
jk. hey tia!)
I have no clue why this is occuring, it is driving me insane
I can think of a few reasons schedules might bork even before the weirdness that is marriage schedules, but without seeing them I'd have to guess
share the schedules 
"marriage_spring_18": "930 Beach 90 4 2/1700 bed",
"marriage_fri": "800 Forest 27 94 2 MrQi_Notes_Front/2100 bed",
SORRY i was getting them and then i noticed that some of the changes i made to things didnt actually get saved in one of my files and ...
ADHD moment
the first one is the beach one which... as you can see from the image, does not work
and the second he goes to the forest and it does work
Please confirm you are testing in isolation
And especially do not have any polyamroy mods installed
Do you mean testing with only my NPC mod?
(and i do not have any poly mods)
I test only with my 'mod testing' mods (like lookup anything, UIinfosuite, event lookup, etc)
Technically no
There is also a spot in busstop you can use
But let's test this for now
Is this the schedule that's getting stuck in the doorway of Sandy's Oasis, or a different one?
No the first one is the beach and the second one is the forest, the forest one does not get stuck the beach one does (and he gets stuck with all of the other ones too but Tia asked for two sc hedules)
changing the end point did not work u_u
standing there, for no reason, i hope he explodes
Where is that schedule points end coordinate?
How har would it be to add a lantern accesory to my horse via cp
Unless someone makes a framework that lets you put accessories on horses
definitely gotta C# that yourself
i just made it 90 5 2 at the beach (one tile down)
Is that after sleeping?
its not accesory accesory it's like a model with glowy bit
okay, this is a bit far fetched but would it technically be possible to create two custom npc that require you to marry/date both of them if you want to romance them at all? (im horrible at explaining it π like a "you cant have x without y" package deal. in a polyamory way) or is that kind of impossible given stardew's limits?
If you only want it to be visual, you can just overlay a lantern onto the horse sprite, but it won't actually emit light without C#
ok, so thats a very backburner type thing
Didn't chu make an NPC light thing...
I think the pathing has trouble crossing the bridge.
ah yes, but horse support might need to be added (I have not checked out how it was implemented)
Mateo used to get stuck there too

