#making-mods-general
1 messages Β· Page 195 of 1
And the off-site Tutorial isn't a perfect first-read either because of how informally it's written, though it's great for after someone understands the very basics.
we could always edit the modding guide too tbh
the harmony docs are the first thing linked though, i thihnk thats probably fine
i think asking "do you actually need harmony for this?" is a valid point though
it should still have some warnings because some people jump in very quick and don't stop to think, but if it's putting sensible people off then it should be edited (the wiki page, not the command)
I think I can merge a bit of the second paragraph and shorten the rest. A moment...
its the same kind of Q as "do you actually need C# for this"
any marine biologists in the house? how do these sound "piranhared.DisplayName": "Saltwater Piranha Plant", "piranhared.Description": "A bulb for a carnivorous plant that produces bivalves.", "piranhacyan.DisplayName": "Freshwater Piranha Plant", "piranhacyan.Description": "A bulb for a carnivorous plant that produces gastropods and crayfish.", "piranhagreen.DisplayName": "Amphibious Piranha Plant", "piranhagreen.Description": "A bulb for a carnivorous plant that produces crustaceans.",
Yes, it's valid, it's just overwrought, especially considering we are likely only going to use the bot command when we are already recommending Harmony as the solution.
-# yes because content packs are scary
for c# mod its still good to ask "can i do this in content"
i could stand an edit to the official wiki page. it really wants you to reconsider using harmony, lol
(it is, I'm just a gremlin)
perhaps a more balanced take thats like
some use case where yep harmony go brr
vs some use case where maybe better to just use smapi event
you can do a lot with just content patcher, break out the C# or harmony if you wanna get nuts
i've been seeing how far i can push ideas with just CP and other frameworks lol
i dont really have a solid thought on how u would draw the line though (it's very subjective)
if there is one thing i think deserves changing the most on the official wiki harmony page:
"SMAPI will show a warning when your mod is loaded saying it may affect game stability."
this is not a "significant disadvantage" lol
maybe when theres only like 12 harmony mods in existence
Im so sorry to keep bothering you guys im not a coder and im having a really hard time understanding whats going on with the script. I am having a issue with file contains fields which aren't allowed for a secondary file (Format)..
https://smapi.io/log/13db1914d0104096a16db49062eda8ce this is my error log
https://smapi.io/json/none/898772358b6d46cab00a2bf022fc01c5 This is my json file
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home, with 3 C# mods and 1 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
Error loading patch 'SarahNPC > Include Assets/Map/Maps.json': file contains fields which aren't allowed for a secondary file (Format)..
includes cannot have Format
remove it from Assets/Map/Maps.json
i mean, you're right, but i still wish it would stop doing it
I think generally if something can be done directly with smapi events and game code, it should be done like that rather than with harmony. But if you need to do significant copy-pasting of original game code or take on a much larger scope to make something work without harmony, then harmony is right. Also when you literally can't not use it of course.
u know the "Format": "2.5.0", in ur Assets/Map/Maps.json right
that is only allowed in content.json
oh okay
simply remove it
Shortened a bit and put a little more emphasis on the "last resort" aspect without overdoing it IMO.
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's public APIs, 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
thank you π
I think the warning is semi-important-- actually I'm not going to delete that part of the message but I changed my mind when typing it. Harmony isn't really even much likelier to cause errors, everything we do pretty much can interact with the game code in unexpected ways
i think if harmony lets my code run less often, i will prefer it.
for example, there are many things i could accomplish with UpdateTicked and change monitoring, but i'd rather postfix the thing i care about and do the work right there, only and exactly when i care about it
yeah in my mind "last resort" is a bit too dramatic, or at the very least shouldnt be bolded like a scary warning. to me its like. "can i do this with CP? no? okay... can i do it with C#? not really? i need harmony then? okay, sure"
like, less "last resort" and more "third choice and it just happens to be the last"
hm
do u think it's relevant to mention game api
or whatever u might call stuff like GSQ trigger action etc
What game API?
yeah, definitely don't jump to harmony without even considering a c#-only implementation, but if you did and harmony still seems better, there's no harm
it does kind of live, slightly documented
i dont really know what is better word than game api (which is clearly not right)
i dont think its relevant personally
If you just mean the big bag o' links on the Modding Index page, some of which happens to provide some information on specific public classes and methods, then I'm gonna say nah - it's not organized for that use case and asking prospective Harmony-ers to read the entire modding wiki is just not gonna happen.
yea fair 
im kind of with focustense when they said that the main usecase of this command and really this page in general is usually when harmony is already noted as the solution
u should try doing the command and see if the format looks good 
Yeah, I'll do that. First I have to look up how to actually edit commands.
so the harmony page should explain how to use harmony, not do its best to not have to explain
this is much better. the only change i'd still advocate for at this point is to remove the boldface around isn't possible
maybe a bit shorter like this? (a lot of the specifics about what harmony is independent of stardew are in the links anyway, but that's just personal opinion tbh, I leave this up to you focus)
Harmony is a framework that allows you you to take any portion of the game's logic and insert or substitute your own. This gives you more flexibility and control, 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's public APIs, 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
Fair. I felt like emphasizing when I wrote it, but after I saw how it looked, I wasn't a fan of the bold either.
I just worry that when people see a paragraph more than two sentences they stop reading π
if someone stops reading after two sentences, they should not be using harmony
Saying "more flexibility and control" without the "...than what?" part seems counterproductive to me.
If they're doing that for a command about Harmony, they deserve to be as lost and confused as their behaviour will lead them to be
-# the only thing scarier than sending a message and seeing "several people are typing" is sending a message and suddenly nobody is typing 
very fair points
(i was busy comparing you and focus's versions!)
yeah, I was on the fence about that one so you're probably right, but the bit about the .net api I think could stand to be removed personally
tbh if i am allowed a very nitpicky suggestion it would be to change the link from "SMAPI's public APIs" to "SMAPI's helpers and events" (or maybe rename the latter to "SMAPI's API" in focus's version)
I agree and would be confused about what it's meant to be compared with (bearing in mind I am probably too low in C# familiarity to be the target audience).
like, dont c hange the text, just move the link to the first mention of SMAPI's api
maybe remove the linebreak between "Harmony is usually the solution" and "For more information" if you wanted to save more space. i think they kinda work together as two connected sentences anyway
honestly if we're at the point that we're comparing exact phrasing that means that the original version you wrote is solid, so you could absolutely just deploy that
Is there actually a way to preview a bot command or do we measure once, cut twice?
i think you just mess around in #governors-mansion
so, cut twice
but im not a mod author
so dont look at me
ig you can create a different command instead of editing the original one if you don't want to change it until it's too late? then remove the test command once you're done? but idk I've never made commands
can always just search discord for msgs fropm the governor about harmony if you need to recover it
a junimo can prob revert it right, if need be
its like one sentence and an image
i don't think i'll miss the current harmony command if they can't /hj
After removing the format and having to fix some extra stuff I was now left with this error and it was big and red and scary
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home, with 3 C# mods and 1 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
!tilesheetclimbing
When creating or editing maps in Tiled, one common error is tilesheet climbing, marked by red text containing "invalid tilesheet path '../../..'. This is caused by SMAPI not being able to find the tilesheets needed by the map file. To prevent this error, make sure that you have a copy of all necessary tilesheets in the folder containing your WIP tmx file. Copies of vanilla tilesheets can later be deleted, but must be present while working on your map.
If you get this error with a completed map, an easy way to fix it is to open your tmx file in VS Code or a similar text editor, find all of the places with <image source=, and remove the filepaths to so that only the tilesheet names remain. For example, if the code says <image source="Content (unpacked)/Maps/townInterior_2" width="512" height="64"/>, change it to just <image source="townInterior_2" width="512" height="64"/>.
you need to do this with your SarahExterior.tmx file
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
Ok I understand
(About the same length as that tilesheet climbing one, in fact)
seems good
yeah that looks pretty good to me
smaller than the big ol image
looks perfect actually!
i wonder what the context of that was...
i tried finding the first instance of governor using it in a command but the oldest message i can find from governor is a listing of all the commands that already has the harmony one in it
was harmony known to be buggy back then
I admit I wasn't here, but I honestly think the context was... someone trying to turn their personal confusion and frustration into a meme.
its possible that harmony v1 was much worse. i am not familiar with it
(and I guess other people also found Harmony frustrating and/or confusing and so the macro got at least somewhat popular... maybe)
The only major bug i know of is the mystery harmony AVE problem
Everything else has been entirely user (mod author) error
it's also possible that when the game was a lot more spaghetti-shaped than it is now and there were fewer modders using harmony that it just had more risk
i wonder what it'd take to get SMAPI to update to harmony 2.3.x
I mean in terms of ability to debug etc, but I wasn't modding back then so I have no idea
I don't think I've ever actually run into a Harmony conflict, but it's probably because I patch things that no one else would dare touch, like the GetFish methods and SMAPI itself.
yeah who would ever touch getfish
patch categories
I think my first harmony code is my light one and it was a mistake lights are annoying this is not harmony's fault I just do not like dealing with graphical stuff
-# despite the fact that my two more useful mods are literally just that
in other news, one day i may remember in advance that the float math namespace is MathF and not Mathf
I think they have some shiny new utilities? in things like the codeannotation class etc
...or is it MathHelper?
yeah a bunch of smaller things mainly
sometimes you guys make me wish I could react to a reaction
some bug fixes that probably have never mattered for people here
yeah we;'re moving to wood stoves in 1.7
Wow, that's pretty expensive for open source.
I do sometimes see a helper method/class/annotation somewhere that would work PERFECTLY for me then realise it's not in the version of harmony we have (I should probably start using the correct version's docs, huh)
I have never ran into this maybe i should do more crimes
maybe it's just my intense need to use whatever is the newest, shiniest, most efficient crime
How do you guys find people to translate your mod further into other languages, all the ones I have now were people approaching me, but I'm missing a few languages that I want the mod translated into.
i dont
There is a changelog, FYI. https://github.com/pardeike/Harmony/releases/tag/v2.3.0.0
It's all QOL stuff, there's really very little you can't do in the current version with a few extra lines of code. Categories are nice, and better async support is great for assemblies that actually use it, which is... rare to nonexistent in Stardew.
2.3.0 fixes TargetMethods always being called twice tho. this is an outrage that i must deal with this incredibly incredibly minor unoptimization
Welp. The making-mods-art channel is dead rn. Gonna post here instead, since there are at least a few of you puttering around here semi-actively lmao. I have two use cases for this new WIP map; one, shameless polyamory. Two, monogamy - in which case the extra patio space is used by warp obelisks instead of multiple spouse patios (there's a mod for that β’οΈ ). I have the multiple spouse patios version of the screenshot posted over in the art channel, but I'm gonna post the obelisk version here just to shake things up.
Things I'm specifically looking for feedback on: the stone path, the garden itself, the fence around the garden (should I get rid of it or keep it?) Is it too claustrophobic? Is it too busy?
Things I'm not looking for feedback on: The pathways or grass/dirt borders - I'll add variation after I finish the backyard, I just put in the outline for now to hold space.
this is a farm map right
yup
many mods add their own obelisks, i would leave more space there
Well, see, technically it was meant to just be room for multiple spouse patios π I just figured out by accident that enough space for four patios equals enough space for one default patio plus four obelisks π
So that I'm not really gonna change, tbh.
as for garden yay/nay, when in doubt just make things config option
I think the two fence styles clash too much, probably keep it in one style.
Here, if this helps visualize:
Valid.
then me, the monogamous user with every expansion, can put all me obelisks there if i want
I think the totems/warp columns need more space like they do in Vanilla SDV.
Not like majorly more space, just enough so they're not neck to neck or anything.
Their building footprints are 2x3 and can go side by side, iirc
my suggestion would be to remove the stepping stone pathing. i believe decorating is one of the things you need to give players a lot of freedom. if i were to use this map, i would like to be able to decorate and place paths to my specific tastes (fences don't count, because i know there's plenty who appreciate pre-placed fences)
Also maybe putting the spouse house back a bit so the stone path is infront of the patio instead might work.
the garden is cute but im unsure how im expected to sprinkler that area 
(this is very subjective, but i'm not big on pre-placed decor anyways.)
And maybe more bushes! more foliage = more lively map
It's designed with early game in mind - you have to plant 15 parsnips, and will want to add a few crops. Once you can sprinkler, you'll likely be moving on to the other parts of the map where you have more crop space. BUT two iridium sprinklers will do the job, except for the trellis single column π
to add to this, I think some players don't care about decorating, but those players aren't downloading you guys' pretty maps anyway. You guys are catering to the people who do care
true! that was my input as a user, not as a mod author 
My exterior decoration consists of Starfruit and more Starfruit.
Yeah, that's why I was going for more decoration in this map than I'd usually do. And to be fair, I can absolutely throw in a "decor/no decor" config option.
oh r u not doing special starter gift stuff
counterpoint: i dont care about decorating, which is why i download pretty maps
If all else fails, map patch with optional decor
Nope!
its easier to make something look somewhat acceptable if it starts nicer
maybe I'm just in the extreme side of don't care then? 
the problem with designing farm maps for early game imo is that not using parts of a big map because you're too early in the game isn't a problem, but growing out of your map and running out of space kind of is
also,,, about the tree, perhaps you could shift it one or two tiles to the right (and the rest accordingly?)
because the roots being perfectly flat, while also placed aligned to a slope tile makes perspective look a bit odd
This is also my philosophy on interior decorating. As in actual interiors of actual homes.
I love that all of you brought up things I wasn't even thinking about π I was like "Hmm... is the spacing on these stones awkward? Is this gap too narrow? Is it too busy?" π
but also I use vanilla maps and have made one single map mod that kisaa said she would make as a prank so... 
Yeah, I was thinking about that, honestly. It was already in the to do list, once I start decorating that out of bounds area in earnest. I just chucked that tree in there as, again, a placeholder π But thanks for the input, now I can double down on that thought and actually move it.
...realised I meant to reply to this #making-mods-general message @normal trout
Yeah. I was going to do a progression gated map - you have access with very few debris blockages beyond weeds and one or two sticks in this garden so you can plant right away on day one. Then you have to clear actual trees and crap out of the top area of the crop fields. Further down, stumps. Then logs, and then big rocks. So the map will grow with your tool skills. But this area is meant to be clear and unlocked and available with no barriers on day one as a starting planting zone.
Like,
you know, if you want to do more funky progression stuff, you can try out unlockable bundles!
There's a ways to go π
YES! That was also the plan π
I'm super excited about trying out that mod.
i see my attempt at scope creep fails,, because the scope has already been crept
also i admire all of you map makers who draw maps from Back to AlwaysFront on one corner before moving on to the next corner and doing that all over again
Ok I think im having the same issue but I added the new tileset I used im so confused
my ADHD ass would 100% forget everything and mess up the layers
To be fair, I have never created a map from absolute scratch before, I usually adapt and frankenmap existing shit π
This is my first effort. And it's the reason why my ADHD ass 100% is working in a WEIRD order, where I detail individual sections at a time before jumping to a new spot lol
i wasn't aware anyone did complete every detail in one part of the map before even starting on another
I'm incapable of loosely sketching things, I have to go all the way.
I'm a weirdo π
AuDHD for the win?
okay, we are on opposite ends of the scale then (i finish one layer for the entire map before moving on to the next layer)
That sounds... so incredibly painful, omg π
thats crazy
that's what is easy for me!
But also, I can see the appeal - I do, in fact, mess up my layering often. I think my issue is I have some trouble visualizing things, so I need to actually do it and only having partial things in place by layer would destroy my brain.
maybe its because I also have ADHD but that actually sounds so confusing and pain stakeing
The thing I've realized about ADHD is that it impacts everyone in completely different ways. Neurospicy brains are beautiful and so unique π
i think most of my time spent mapping has been trying to get things positioned in a pleasing layout, so i end up with single layers containing a few layers' of stuff that i move around until it can be broken up and flattened out
I WISH I could sketch a map out π I genuinely started this map with the intention of doing that ^
I'm incapable π
become capable π
If I've learned anything in my life, it's that I can't force my brain to work in ways it doesn't want to. I did that for years, being an incredibly high masking autistic person. Aaaaand I burnt out so badly that I'm now officially disabled. I just go with the flow now π Like, I'll try a thing. But if it's not working, I just go with what my brain wants to naturally do, or else it's not worth it. Capability of a Thing in a Specific Way is not always a choice.
something anyone something cook
Like... You see my progress above. And yet this area? Finished, down to making sure the proper buildings fit and doing the paths layer β π I just have to do map properties, which I do wait until I'm completely finished to put in.
When are mods added to the list at https://smapi.io/mods ? My mods Treasury Farm is not listed. Should ask to someone?
https://github.com/Pathoschild/SmapiCompatibilityList#readme add it to this list.
The mod data used to populate the SMAPI mod compatibility list: https://smapi.io/mods. - Pathoschild/SmapiCompatibilityList
Thanks!
@calm nebula: remove Less Mini's unnecessary AtraCore dependency, to look into tilesheet disposal more, and to cry into a sandwich (4d ago)
I've been using this constructor of PathFindController to scoot Junimos around:
public PathFindController(Character c, GameLocation location, Point endPoint, int finalFacingDirection, endBehavior endBehaviorFunction)
The Junimos dodge furniture, even dynamic things like cows, but they're happy to ignore map features - e.g in the farmhouse they walk through walls. Outside they walk over water. Ideas?
Remind me in 21 hours to fix utility.pickpersonalfarmevent
Sure thing, apryllforever (#6506163) (21h | <t:1738465187>)
This list is only for c# mods. I assume a farm mod is a Content Patcher mod. ignore pls
This page doesn't include content packs at all. ignore pls
i just checked and theirs is a C# mod
it is yes
it's a c# farm type. Interesting.
i don't have an answer other than that pretty much every npc uses this pathfindcontroller overload, and the one time i tried using pathfindcontroller in recent memory i had them walking through walls just the same
(in a temp event map)
ngl I have never seen anyone do custom farm maps without content patcher until now
i see it on the list, did it already get added
i also see it on the list. theres been no merged PRs to that repo since that discord message
cachingβ’οΈ
the mod was uploaded in august so
it does auto-update, right?
well yeah because my mods are on there and I've never done a PR
I am extra brainless today
i feel like they may have made this a C# farm bc its based on pathos' small beach farm
which is ancient and C#
isn't small beach farm c# and content patcher mixed? or am I making that up
I am making that up
this is my sign to stop messaging for now 
Baffling. I'm hunting now for the code that causes spouses to head to bed at 10. They seem to know their way around the house...
dont they just slenderman teleport around
you probably want to search for spouseSleepEndFunction
spoiler: it uses the same overload
Curiouser and curiouser. I'm really sure I've never seen a spouse walk through a wall to get to bed.
i'm convinced the system is rigged against us
makes me wonder what the difference is between our npcs and functional colliding npcs. do they need a schedule? should we have slept with them in the world already? who knows
that wouldn't explain the community centre junimos though
maybe you could look into MovieTheater.PathCharacterToLocation
I'm thinking we're just not holding PathFindingController right. I'll keep staring at it, but I'm thinking this isn't gonna get resolved tonight.
never too late to write your own
Not that I really want to do that, but you could use this constructor overload:
PathFindController(Stack<Point> pathToEndPoint, Character c, GameLocation l)
and then all you'd have to do would be to construct the path and let the game take care of the dynamic collisions &c.
We don't do lists for CP mods, only SMAPI/Harmony C# mods.
they know that, they thought the farm mod WAS a CP mod
Ahh.
Well it might have a CP mod in it, I mean WTDR is still a CP mod with only one C# override.
it does not
opinion question: if someone writes something and then realise it's fundamentally wrong, do you guys prefer that they completely delete the message or edit it to say they were wrong? I always just edit a strikethrough with a note to ignore the original message because it gets confusing when messages are randomly missing imo but maybe that's just me
depends on the severity of the incorrectness and the time before the correction and whether the original person saw the correction etc
im wrong all the time its ok to say "jk im wrong"
assuming someone corrected them so there are followup messages
in this case i would expect the person who sees your message to also see me immediately correcting it and thus i dont think its necessary to edit it at all
I like editing/deleting them because otherwise I end up getting pings being corrected again 
but if i had not replied until like an hour later, and then the person you were replying to replied again hours later still, they might not see me correcting it
from when people backread lmao
i would blame the people backreading tbh
bold to correct things you're backreading before you know if they were already corrected
this is a peanut gallery
true, I just try to preempt the extra ping haha
I feel like I never thought to really find out what a peanut gallery is
ultimately its up to you and i dont think anyone actually has any strong or even like, mildly strengthy opinions on it
unrelated question: does TranslationHelper.Get(key) return null if the key isnt present in the i18n, or does it return an empty string?
in case anyone knows off the top of their head
i think it gives u the (no translation blah blah blah)
I'm hoping null/what chu said? empty string seems like an inaccurate implementation
It should present null.
oh, even in C# land?
I mean, there's no string to pass through, so it should just return/escape the function.
does c# do returns with no return value in non-void functions 
Unless that function was made to always return a result, then it would result in an empty string sure.
also I never remember/fully understand if string is nullable or not... gonna go look some stuff up
Idk, I'm used to JavaScript and Lua so it's possible.
i commented out most of my i18n for quick test
this makes sense cus translators need to know for c# mods too
Yeah, so it returns null and prints out no translation found, I presume.
Or it could just print without null being accounted for.
the answer is none of us are right
oh but hm, what if it's mod translation class builder
The answer is, it prints out ConcernedApe's address so we can order him a Pizza.
oh neat
and Translation overrides ToString()

which is what handles the null check
that makes sense, javascript isn't a typed language so returns aren't as limited by type. I assume you can't just return/escape out of a non-void function without a value in c#
so, it never returns null and does not return the placeholder text either
ive never actually bothered to notice that my Gets werent giving me strings
does it translate empty i18n strings to the no translation placeholder, or does it have a special case for strings that don't exist? interesting regardless
its fine though theres useful info on Translation objects, i.e. HasValue()
well you wouldnt be using Get then you'd be using GetInAllLocales
I actually remember seeing things return a Translation, seeing that it wasn't breaking my code that expects strings and immediately deciding not to care 
in which i presume you get a list of Translation objects
no i mean, when u r playing in other lang
wouldn't Get automatically return the current lang's version?
im not sure 3what you're asking then
i dont feel like following the chain of functions but Translation.HasValue() is just return !string.IsNullOrEmpty(this.Text) so
ok it does fall back to whatever's in default.json
however if Translation.ShouldUsePlaceholder is false then i guess it might show an empty string?
according to ToString
interesting - so (at least for c# mods) setting an i18n key to "" is effectively the same as not setting it, possibly? I'll investigate myself in a sec
it doesn't seem like a theoretically correct implementation of i18n to me if that's true but maybe I'm missing something 
why not?
I assume if someone sets a key to "" it's because they wanted that key to be an empty string. Since json does have a separate null type, it seems weird to fold the two together like that?
Like not a big deal, I just don't understand why it's like that
i cant see any case where you would specifically want to use a string.Empty where checking for null is not equivalent
as in, I assume if someone set an i18n key to "" it's because they want it to display as nothing, not as the placeholder
if they want it to display as nothing, then check for null and display nothing
I don't know how to say "" in chinese
theres no reason to print ""
Just don't i18n it?
you can already change the placeholder
that is also very true chu
it's not a problem by any means in literally any context like I said haha, just made me raise an eyebrow
Not sure exactly what people are trying to accomplish here but if it's just to display nothing/empty string instead of the placeholder, then that's what UsePlaceholder(false) does.
thats what i said here too
nothings trying to be accomplished though, just talking about the Translation class
Got my event setup starting OK, now I just have to plan for every possible combination of rando NPCs the game puts in this location each day 
You think you'll account for every NPC, and then one day you get a bug report about how one forgotten NPC is misbehaving.
Question, on a scale of semi difficult to impossible, how easy would it be to make a pool minigame so the pool tables are useful?
pretty sure someone made one, unsure if it was ever released - mightve been the same guy behind waterbot?
how much C# do you know
8/10 difficult, I'd guess? 
Bringing up a custom minigame window when the player uses something isn't complicated, but you'd need figure out the logic used by Stardew's menus and MonoGame's drawing system, plus the logic for operating your minigame. And there aren't a lot of people around who've already done it, though not 0.
anyway it wouldn't be incredibly hard since you're just making a self-contained minigame, you just need a working knowledge of using spritebatches and keeping a game state going. a little maths and trig for the physics?
tbh as far as UI stuff goes, minigames are probably much easier
you dont really need to follow the rules of how stardews menus and stuff works, you can move things around manually
itd basically be just making a tiny little monogame.. game
honestly i've thought of making a pool game before but i cant be assed hahah
hmm okay, well good to know it's at least possible.
anything is possible with enough C#
and uhh.. I've been wanting to learn C# buuut... yeah not there yet.
there are a lot of easier tasks to start with, but it is a thing you can do in C#, and not directly obstructed by the existing game
just kind of "here's a window, run your own little game here and output the result eventually" 
I just need to get my ADHD to hyperfocus on C# then I'll be good xD
It was indeed caused by using the older Smapi version and resolved by updating
haha nice
looks like that was never completed, or at least it isn't on their nexus, fwiw
maybe if we wait another 4 years
welp, now that I know it's possible, I have a goal. Unless someone else does it, in which I'll find another goal jhgkhj
An alternate way to do it without C# could be to have a tile action that brings up a question message box and if you select yes, it triggers an event with a temp map and the balls & cues as temp actors. Have branching questions for which ball to aim for, then random outcomes for whether it hits or not and a random outcome of what Sebastian does in response
It'd take a lot of planning, but it'd be doable with only CP and maybe BETAS
Hm, although you wouldn't be able to make the balls move diagonally
Might just need to be a roleplay-style event then
I like how you assume it would be Sebastian the farmer plays against (I mean not wrong lmfao)
Who else is it gonna be?
... Dusty
doesn't sam also play pool?
He does, but I always figured it was more about having fun with his friends rather than really playing for the sake of it
they absolutely give the vibe of sam just playing because he's already there and sebastian going for the kill every single time 
It would be cool if there could be difficult levels, like abby for beginner, sam for intermediate, and sebastian. but.. that's a bit out of scope I think.
I'd swap abby and sam personally but that sounds cool!
and I'd imagine that part is relatively easy but yeah, don't scope creep run before you can reasonable mod walk
I gotta get my hello world done xD
I figured Sam as intermediate, cause he's the one always playing, but maybe Abby doesn't want to show off her skills (lies, she totally would if she did)
I just think abby is more willing to cheat put up a fight
and sam does not seem to care
Abby's like "I don't really care about playing, but if you challenge me, I will do my best to smoke you" 
ahah yeah
abby will "accidentally" hit you in the ribs with the cue like three different times if you start winning, I'm sure of it
I finally get a Hot Mod and it's the Dried Red Mushrooms request from the ideas repo 
Where to suggest things
!modideas
If you have a mod idea that you aren't planning to make yourself, you can put it in the mod ideas github: https://github.com/StardewModders/mod-ideas
However, this does not mean anyone is guaranteed to work on your ideaβmodders who are looking for ideas sometimes go through and work on what they find interesting off this list. If you want to pay someone to make your mod idea, there are a few people who do commissions (mostly art, sometimes code); you can ask around, search usernames for the word comms, or see !commissions.
In other news, I have officially finished all the Strings text edits for the Legend of Zelda NPC mod! 
how do i add my mod into smapi compatibility list? i'm dumb
is it a C# mod?
yea it is
it will auto-update after being up on nexus for a bit
you shouldn't need to do anything to add it
i see! thanks for info!
Started the project, got decently far, havenβt visited it in years π
Maybe
I managed to get everything working EXCEPT for adding the child to the crib. Not sure why I felt the need to tell everyone but eh wtv
(The literal main part of the mod no big deal lmao)
Pretty sure I tried to use an outdated method, gonna need to verify how children are added ugh
aetherdorn has retired right?
if you mean aedenthorn, yes
he left open permissions to his stuff right?
with permission for people to make updated version of the mods
i think it's them, but yes
As a note, someone did point out in here earlier that Aedenthorn's mods were GPL, so if you pick them up to update, then your mod may also be expected be GPL
ideally, but the message here about people being free to update was a bit more vague, i think it was pointed?
but the license must indeed have precedence when possible
Aedenthorn uses she/they pronouns, yep
Also, while there hasn't been an issue in the SDV mods category, be careful.. someone has been uploading malware as a mod in various games. Be especially careful and check the contents of a mod before downloading x3
did i write this message
i could've sworn
the problem is that doesn't matter, they do manage to catch people once in a while and use them to try again
be safe, mostly you'd find him in Marvel Rivals trying to push it there. So if you play that game, just make sure what you download is real. Click the preview File contents.. it's actually obvious
lol speaking of which...
yeah i agree that reports shouldn't matter in term of suspicious content, things like that can't be solved only by report
i hope nexus team plan to recruit a few more moderators, i know for SDV it's obvious you're overwhelmed Coriel, help would be quite welcome here
im not so overwhelmed anymore
I get few reports these days x3 lately ive been watching other games too
it's good to know, but if still you can let them know that we do feel the need of more activity toward reports in SDV community it would be appreciated
I'll pass the word along
thanks π
i wish i didn't have a job though xD
i'd rather stay home all day and be the housewife
i'd like to work more on my music mod.. I am pretty happy people were excited to see it again
i'm surprised the reports have gone down when we're up to like, 30,000 mods total now. feels like the wild west days were when it was youngest
God, I've been mapping for hours how did that happen? When did the sun start to come up? π π BUT! Significant progress has been made.
(too many 1.6 updaters forget this and doesn't release their source code anywhere. I would ask them but lazy and anxiety π)
Does anybody know how to check to see if my child was even added to the game via the console?
I keep forgetting its morning and not everybody wakes up at the asscrackofdawn like I do
It's evening here, actually, and midday in Europe π Not everyone's in the same timezone as you
i am not really around to answer questions but if i was i would want to have more context than that
I'm not sure what you mean by "via the console" tbh
like using console commands? because I think that would be difficult
i'm not sure if it's a classic child or something else like an npc
usually the best way to check these things is via the game itself
Ohhh ok I apologize for the lack of context, I'm testing my mod and the baby won't spawn in the crib and before I continue I need to make sure a baby "exists" like at all I guess because there's a chance the sprite is misplaced but also a chance there is no baby XD
Edit: It was suggested to use SMAPI's console commands to check for the existence of the child NPC
why not check the social menu? I'm pretty sure babies show up there
Oh yeah, wow Alan get it together.
what is your mod doing?
because it's usually not possible to miss if a baby exists
as there's a whole event and all
(add that to the list of sentences that are a lot more concerning in real life)
An event? Like a cutscene or that message that used to pop up in the night saying your spouse gave birth
(shows what I've been up to ingame since 1.6 came out lol)
Oh hey look a baby exists in my relationships
You have no idea how stupid I feel right now 
the message yes
don't feel stupid! just try to think how you can check things in game next time π
(and give context!)
I shall return to my code now thank you guys so so much
you know, there's stardew in balatro, but there's no balatro in stardew... mod idea maybe? 
walk into qi's casino
pulls out a Banana (silver quality)
plays a flush five ace of spades
gets your ass beat by mr qi like that hidden cutscene
Have fun with the C# you'd need for that π
a balatro mode : there's a new arcade machine in the saloon. When you interact with it, it jumps time to 6 hours later
one of the first things I did after I learned modding the first time was make a solitaire game in monogame and remake it four times in various ways 
I'm not too worried about the c# 
@hallow prism: look at the publication of VMV repro uber pls (20h ago)
I have a bit silly yet genuine question, how do I learn to optimize code? I'm perfectly aware that the longer I do it the better I do it but how do I learn which things can be replaced with something more efficient? I wouldn't want to end up with some yandere-dev type mess code
I strongly recommend mit ocw 6.006
am I supposed to download this course whatever it actually is?
The lectures are also on YouTube
This course is an introduction to mathematical modeling of computational problems, as well as common algorithms, algorithmic paradigms, and data structures used to solve these problems. It emphasizes the relationship between algorithms and programming and introduces basic performance measures and analysis techniques for these problems.
oh
yeah I found it
there is an intimidating download course button
MIT 6.006 Introduction to Algorithms, Spring 2020
Instructor: Jason Ku
View the complete course: https://ocw.mit.edu/6-006S20
YouTube Playlist: https://www.youtube.com/playlist?list=PLUl4u3cNGP63EdVPNLG3ToM6LaEUuStEY
The goal of this introductions to algorithms class is to teach you to solve computation problems and communication that your solu...
oh nvm
I see now
thanks, I will do my best to learn from this while trying to survive school 
If I wanted to add a portrait png and, during an event, have the portraits switch between which png is used, how would I do that?
For example: the event uses a default Abigail portrait png. I add a new portrait png (let's call it Abigail1) to the portraits folder. During an event, I want some dialogue boxes to use a portrait from the default Abigail portrait png, and some dialogue boxes to use a portrait from the Abigail1 png.
I don't think that's.... possible the way you want it
I don't think u can do that can u?
Need to patch it onto the original Abigail portrait
And then $n
In an event?
Compat succ ofc
appearance data
There is a switch portrait command lol
well yes, Atra
Ok, so just combine the two png into 1 larger one?
But I'm assuming they want to switch back later
Call it with no argument
although I suppose Pathos did put in that one thing to default it back if I reca-
yep
Just switchportrait abigail
Is that event exclusive
yes
But correct caps and not with frozen fingers
Naruhodo
Yes event exclusive
If the easy way to do it is just combine the two into one, I'll do that.
Chue will make it a dialog command to
Or a trigger action
switchPortrait will work in an event
making it one PNG might actually screw over others adding portraits too
Atra will eat a croissant in the park
That sounds delicious
I'm not making a mod, just editing a currently existing one. So this is for personal use/learning
Anyway, in sum:
- Patch in Portraits/Abigail_<Identifier for the portraits>
- During event, add the command
/changePortrait Abigail <Identifier>before you start using the new portraits - Also during event, when you want to swap back to normal, use
/changePortrait Abigail
So if I called the portrait Abigail_Breakfast for her eating a croissant, then you'd do /changePortrait Abigail Breakfast
Thank you very much. I appreciate the help.
Is this a secret new command? I did not find it on the wiki. And by secret I just mean not on the wiki lol
Nah switch portraits been in for ages
I learnt about it when writing dates for Flor, Maddie, and Daia so they could use their 14 heart, Lab, and .... 14 heart again outfits XD
that said, the default back to normal? That's 1.6.
It used to be if you swapped the portrait to anything during the event, you could never go back to the original. It suuuuuuucked
I'm aware of a changePortrait command. Are they different?
blinks
Atra and I.... may have messed up what the command is called
To be fair, right now I'm looking at a C# course different from the one work offers and going off of what's said in here
I'll edit the above.
Lol all good! I was curious because I remembered that I use changePortrait in an event for Hiria to change her portrait and back again and it sounded so familiar to what you were saying...xD
Also to be fair normally when I think of portraits in events nowadays I think Appearance first.
changePortrait's useful if you're changing them during the event, but if you need it for the entire time? Appearance is your friend
Yeah I use it in combination with changeName during the event to pretend Hiria is her family on Skype lol
But Appearance for her seasonal, indoor/outdoor, festival etc changes
can someone help me with npc schedules? Im using Misscoriels npc creator for my custom npc, and im stuck at schedules section.
for now i only did the spring one, i want him in his house but in game he's just standing on the bus stop even his disposition has his house. and when its fall he stands in his house? he doesn't move.
and i have a question: do i have to write a schedule for every day of every season? like spring_monday, spring_tuesday stuff.. i looked at the wiki but i have no idea what to do. he just doesn't follow the schedules.
I suggest not using the NPC Creator as it's not updated and nobody here can really provide support for it
!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!
oh well, thanks for that!
Has Coriel's NPC maker even been updated to 1.6 (or 1.5 for that matter?)
It's been around a long time
Monthly mod stats time!
Mod compatibility
74.2% of SMAPI (C#) mods are compatible or have a workaround, up from 73.1% last month.
Unique mods by type
Alternative Textures surpassed Json Assets as the second-most popular content pack framework this month, with 1207 vs 1196 content packs. That's a big deal, since Json Assets easily held on to second place for the four years I've been tracking mod type stats. Congrats to its author @polar escarp!
We have 413 more mods this month. That includes:
- +278 Content Patcher;
- +65 SMAPI;
- +31 Alternative Textures;
- +12 Fashion Sense;
- +10 Farm Type Manager;
- +3 Mail Framework Mod;
- 0 Custom Music;
- 0 Shop Tile Framework;
- -1 Better Artisan Good Icons;
- -1 Custom Furniture;
- -1 Producer Framework Mod;
- -2 Json Assets;
- -2 TMXL;
- -3 Dynamic Game Assets;
- -11 XNB;
- and +35 for frameworks with <100 content packs.
Content Patcher packs
We have 10,351 Content Patcher packs.
Some stats changes this month:
- Format 2.4 appeared on the chart.
- Formats which drop back below the min content packs are no longer shown. This affects 1.23 (which dropped from a high of 499 to 358 this month), 1.28 (578 to 377), and 1.29 (606 to 370).
The top five Format versions are...
- 2.0 (3,288 β 3,270), 2.3 (727 β 746), and 2.4 (297 β 514) for Stardew Valley 1.6;
- 1.19 (573 β 572) for Stardew Valley 1.4;
- 1.3 (474 β 475) in old unofficial guides.
Open source
The apparent drop in open-source mods in recent months (from 68% to 59%) was actually an issue with the mod data provided by Nexus. Since the mod description isn't included in their new export API, my tools to collect mod info couldn't detect source code links in mod descriptions. Nexus tentatively expects to fix the export API in February, then I'll review all mods to add any missing source links.
In the meantime:
- We have 3,189 tracked C# mods, of which
- 1,896 mods (59%) have a source code repo, with
- 1,059 (56%) in a multi-mod repo and 837 (44%) in a single-mod repo.
Web costs
And finally, web hosting costs for the SMAPI.io site, update-check server, and API dropped to US$192/month after the post-1.6.9 spike of US$300. (The graph is always a bit behind due to billing cycles.)
See also
- [Stats for December 2024](#making-mods-general message).
- Raw mod dump (60GB download) and scripts to analyze it.
- Download all open-source mod repos.
And that's it for this month!
Long live format version 1.23 XP
-11 xnb π
Appeared for mysterious reasons, disappeared for mysterious reasons
is there a smapi command to check if a specific special order has been completed?
You get a mailflag i believe
You don't always get a majlflag
You can check a game state query through console commands: debug gameQuery PLAYER_SPECIAL_ORDER_COMPLETE Current <order id>.
Stardew UI 0.6.0 is out!
Since there was no announcement for 0.5.0, here are the most important changes since 0.4.2:
- Animate anything using transforms and behaviors including CSS-style
transition - New widgets: Segments and Color Picker
- Floating Elements can now be used from markup
- Cursor controls, e.g. for grabbing and reordering items
- Dozens of bug fixes, performance improvements, and new customization options
More details in the changelog. For a demo of the latest and greatest features, check out the new tempering example.
okay, so I did complete that special order, but for whatever reason I never received the reward mail
Did you set the mail
it's not my mod, I'm just trying to work out why it's bugged
not quite just Stardew-related: is there a way to get email notifications about posts on your mod page? I have had people asking about updates (not yet finished) weeks ago and had no idea because the site keeps logging me out after a few days
I can choose prefs for on-site notifications but no options for anything else
plz @ me if you know, back to work
I don't think so, unfortunately. We mainly just need to check notifications on the site regularly.
If the change lines up, the 1.23 format was probably from that one video tutorial where I left a comment (with a recommendation to use 2.4.0 in it) after the person came in here to ask for help with their mod and told us about the video they followed.
We've been editing a few 1.23 tutorials recently - I also updated one in the modding wiki to not use that version at all any more. There are still a few left (the one you commented on, and a few from blogs) and one mystery (which is that it shows up a lot in mod descriptions on curseforge specifically?) but it continuing down is reassuring! I don't know if either of us can take credit though haha since these are the TOTAL number of packs using it, not the number of new packs using it, which means the change is from packs being updated or edited
The main wiki has a template for the Content Patcher version, so all code examples can be updated simultaneously when the version changes. It could be useful to do the same on the tutorial wiki.
Rip 1.23, lived for Mysterious Reasons and died for Mysterious Reasons
Does this work inside code blocks? I think I've seen where wiki code doesn't work inside syntaxhighlight (which is where 95% of the format mentions are)
Yep. You need to use {{#tag:syntaxhighlight|...}} instead of the normal <syntaxhighlight> syntax though. Here's an example from the main wiki:
{{#tag:syntaxhighlight|
{
"Format": "{{Content Patcher version}}",
"Changes": [
{
"Action": "EditData",
"Target": "Data/animationDescriptions",
"Entries": {
"pufferbob_sleep": "50/50/50" // note: make name lowercase
}
}
]
}
|lang=json}}
We could probably create a template to simplify Content Patcher examples though (so you'd just pass the actual Changes to the template instead of needing the {{#tag stuff).
Interesting! I've not really worked with templates much, I'll have to look into this 
Hi,
I'd like to ask - is it possible to use Dynamic Token set with CP to i18n dialogue?
I was looking at the integration of gender neutrality into my NPC dialogues (https://stardewmodding.wiki.gg/wiki/Tutorial:_Adding_Gender_Neutrality_Mod_Tokens_(GNMT)_Compatibility#i18n_Integration) and I had thought if that or similar type of code could also be used to trigger Dynamic Tokens.
This tutorial is aimed at mod authors who would like to add compatibility with Gender Neutrality and Gender Neutrality Mod Tokens to their mod or adapt another mod so that it offers gender neutral or nonbinary dialogue.
Sure!
It's not the clearest example but
"Vincent_y3": "{{i18n:vincent-y2-fishing|title={{Title}} }}$s"
I18n : "vincent-y2-fishing": "{{title}} @, what happens if I fall in?",
You just have to explicitly pass the token onto the i18n
And Title is a name of your Dynamic Token, right?
Yeah!
It's mrs/miss/Mr, then gets overriden by gnmt, then gets an optional player config override
Yeah, I'm going to write something similar to this.
Hi, newbie question. There is a tutorial for adding custom crops on the Stardew Modding Wiki. The tutorial is a few years old and uses JSON Assets, so there's a note at the top that says that JSON Assets is outdated and to just use Content Patcher... is there a similar step-by-step tutorial for making a custom crop using Content Patcher?
I don't know if there's a newer page on the tutorial wiki, but there's Modding:Content Patcher and Modding:Crop data on the official wiki (with a little example at the bottom).
Thank you!
Can you please link the outdated tutorial?
I'd like to make a note to update it, or at least or mark it outdated so that folks aren't confused. There's a few people taking care of the modding wiki but regularly reviewing each article isn't practical
Ah I slightly misread your question, it's already marked outdated lol
Also just a tip for schedules and checking them, always start a new save or else you wont really notice anything changing / your updates to schedules wont work properly (same thing if you change where your NPC spawns)
And no you dont have to make a schedule for every day - if you don't have a schedule for a day it defaults to the 'spring' schedule
ah okay
thanks for everything!!
No problem! all you really need to do for schedules is add the spring one, and also add in any deviations from that (i.e if you really want them to go somewhere on the 4th of summer youll add that in)
:3
yes
Unfortunately, we don't have a full tutorial for 1.6 crops yet.
If you need help with any part of making it (other than the crop sprites themselves because I still honestly don't know how the stages work and usually just wing it until it looks right in game...) I can help
Is it possible to edit JA object data/textures using an AssetRequested event?
need to come up with interesting names
Would you really?! That would be so greatly appreciated!
I just want to know, what is the first step? I've been looking through the Modding:Crop data and Modding:Objects pages on the wiki but cannot for the life of me figure out where to begin.
(Sorry, that message got caught in AutoMod! Markdown URLs are locked behind higher levels just for the record Only caught the timeout with 55 seconds left.
)
(No worries!!)
You need these main things for a crop:
- the seeds (object data and sprite)
- the crop item (sprite and data)
- the crop data itself and those sprites
So for example with a parsnip you have parsnip seeds, the parsnip itself, and then the parsnip crop as it grows
(You also would need a shop entry for said seeds if you want them to be bought from somewhere)
Ok, I see. So I should add the object data for the seeds and crop item first?
technically doesnt matte really you just have to make sure you have all of the components :3
The great thing about crops, and content patcher modding in general, is that once you get one down making more is easy
So don't be deterred if the first one takes a while!
You'll need to reference the sprite in the object data, so you should have one prepared before you make the data (or use a placeholder sprite)
this isnt actually a full json FYI
i just copy pasted parts of my code for this
but this shows the three main components for a crop :)
oh oops i copy pasted the same thing twice one second
there this one is better xD
You can do a lot more than just this but this is for a simpler crop really
y'all are the best ;-; So this all goes in the content json*?
you can put it in just the content json or you could split it into multiple jsons for readability
(if you do split it into multiple json files you have to make sure to load them in your primary content json though!)
for example - with my NPC mod these are all the jsons I split stuff into
and my content file just has a bunch of these in it to make sure they load
ooooh I see!!
(You can load multiple files in one patch if you want.)
{
"Action": "Include",
"FromFile": "data/NewItemGiftTastes.json, data.QiNPC.json, data/CJBWarps.json"
}
So for you, you could have a Crops, Objects, and Shops json for the three main components of your crop and then you just load those in your content json :] or you could- oh my God

Wizard π«΅
or you could just put all of the code in the content json itself
is what i was going to say
...is your IDE in comic sans?

Nice
hey, sans serif files have better readability! 
Fun fact, comic sans is more dyslexia friendly than most fonts!
But that doesn't make it not hilarious to have your IDE in comic sans 
Ok, so for the content json I could have this?
{
"Format": "2.5.0",
"Changes": [
{
"Action": "Include",
"FromFile": "data/BoboberryItem.json, data/BoboberrySeeds.json, data/BoboberryCrop.json"
}
]
}
And then I could work on each json individually? (organization makes it easier for me too :) )
Yep.
exactly!
yes, yes it is in comic sans
and ive gotten many many comments about it here XD
i cant tell the difference between O0 and Ili with literally any other font when im coding so... comic sans it is
also make sure you have a data folder @molten charm !
the data part of that is specifically referencing the folder that the jsons are in :3
theoretically you could name the folder anything you want really xD
Oh no, I am not going to try and get cute now and sabotage myself later π
the missing commas and brackets do that on their own well enough /j
the dilemma of every mod maker...
brackets and commas.. its always brackets and commas
and if its not then its capitalization or the missing of it because mah case sensitivity
queue the one time I dared to forget a single capitalization in the name of my npc and broke my entire mod
i suppose not the WHOLE thing but a lot of it
cuz its fun searching for the mistake for four hours and you come in here to ask because youre at your wits end and someone goes that should be capitalized
"Are you sure there is currently an npc with the internal name "TheMrQi""
it haunts me
it always haunts me
srsly tho if i didnt have this place id have given up on mod making long ago...
Iβm pretty sure I said this exact same thing like three days ago
the collective reaction being βI know why youβre doing this but Iβm still cacklingβ is so funny to me
i dont think i would have given up but I sure as heck wouldn't have gotten as far as I have now
im glad so many people can get joy out of my comic sans font
I know I would have exploded trying to figure out how to fix the issue with item extensions and Qi's shop at least without this channel...
Literally several hours of testing from multiple people only to figure out that you just had to do things the 'legit' way to get to the walnut room...
While very on brand for Mr.Qi I was NOT amused
that was genuinely unexpected and a fun thing to troubleshoot!
twelve hours
MrQi just wants everyone to be in his nut room
π
I remember
I was one of the people helping you figure it out
If I never have to read, type, or hear the words 'Nut Room' again itll still be too soon
I know you were 
Such a random issue and for what
Iβm still not sure which flag etc was causing it (might have to look through cjbβs code to see how it does cc unlock etc)
I really dont even know, it had something to do with whether Joja or the CC was complete though
Oh I just assume everyoneβs memory for people is as bad as mine 
I have a terrible memory but i remember that
by the way @molten charm in your other files/ the files that you're including, you wont have a 'format' line (thatll break your json lol)
format only goes in content json :)
it was me and selph? maybe? iirc? I remember things that happen but I can never remember who was involved in them 
If you want it to be slightly better https://github.com/wayou/comic-mono-font
Not sure if ligatures even do much for content packs, but monospace is important
Javi, Roku, Tiakall, and I think one other person but I don't remember who were the ones who helped with it
it was definitely a whole team experience
(a few other people also popped in at some point)
Ok, I have an item json, a seeds json, and a crop json. What do I put in the item json to actually add a new item? (I do have a sprite made for it)
Editdata on data/objects
^
Youll be doing EditData on data/crops data/objects and likely data/shops to add your seeds to a shop
is there comic sans mod for game too
oh god
these are the three wiki pages you're going to want to reference :)
maybe more depending but these are the primary ones
i mean, just use font awesome and you can make the game font as unholy as you want
wingdings
you guys ever see code in wingdings - its awful just fyi
i was thinking of website coding for a second
(when i was trying to figure out which font i wanted, my program offered WINGDINGS for some reason and i clicked it and regretted it instantly)
very readable
(pssst, you can wrap links in <> to hide the embeds)

beware of the man who talks in hands
theres also this font which is... i fear whoever would chose this
I'd set my friends' IDEs to that as a prank
Papyrus is the way to go
It's for extra fancy code!
Mom, people are doing crimes in #making-mods-general
@ boncher illegal font alert!!!1!!!!!!1!!1!
have you tried Mayonice
Mayonnaise

its free
i'm making this little tool to export all the data on a certain item but for some reason the gift tastes aren't working:
private Dictionary<string, List<string>> GetGiftTastes(string itemId)
{
var tastes = new Dictionary<string, List<string>>()
{
["Love"] = new(),
["Like"] = new(),
["Dislike"] = new(),
["Hate"] = new(),
["Neutral"] = new()
};
if (itemId == "(O)74")
{
tastes["Love"] = Utility.getAllVillagers()
.Where(n => n.Name != "Haley")
.Select(n => n.Name).ToList();
tastes["Hate"] = new List<string> { "Haley" };
return tastes;
}
if (itemId == "(O)446")
{
tastes["Love"] = Utility.getAllVillagers()
.Where(n => n.Name != "Penny")
.Select(n => n.Name).ToList();
tastes["Hate"] = new List<string> { "Penny" };
return tastes;
}
foreach (NPC npc in Utility.getAllCharacters().Where(n => n.IsVillager || n.Name == "Krobus"))
{
if (!npc.CanSocialize) continue;
var tasteLevel = npc.getGiftTasteForThisItem(ItemRegistry.Create(itemId));
var category = tasteLevel switch
{
NPC.gift_taste_love => "Love",
NPC.gift_taste_like => "Like",
NPC.gift_taste_neutral => "Neutral",
NPC.gift_taste_dislike => "Dislike",
NPC.gift_taste_hate => "Hate",
_ => "Neutral"
};
tastes[category].Add(npc.Name);
}
return tastes;
}```
anybody see anything that's making me look like a buffoon?
don't tell me there's a built-in method for this or somethin
one day I will know about C# ... today is not that day
i think someone recently mentioned a way to reset terrain feature with a trigger action from a mod
does this ring a bell?
thanks
UNDERTALE MENTIONED RAAAAH
.gay
since this is button site idk if its setup
oh ok!
so this one is for clear only, right? i hoped for a reset/respawn (i added trees to an existing location)
(i will tell people to use whatever rtf mod they have to make them spawn, i hoped to have a way to do that on my hand)
there's a lot of cool actions i didn't know about
Are there any roads you want connected to Walk to the Desert Redux by chance, giving people another way to get to the Cape?
an HTML tag would need an ID to have anchor links work and i just never set it up on the actions page originally bc every page but trigger used to fit within like one screens worth of space... i have been meaning to add IDs since ive been doin it for my newer docs i just havent gone back and added to older pages yet
correct this is only for removal
thanks π
if there was specific desire for more RTF-like functionality in an action i could try addin it at some point but i figured doing more than just clearing would just be. less useful RTF
but my figures have been wrong in the past
so my current use case would have been a one time trigger to spawn the trees that are on the map if the player already has the mod installed, basically doing the rtf for them. It may be pretty minor.
Hey quick question, why did lookup anything stop showing the mods an items from?
Is there a keybinding or console command to make that show again
it still does, if the mod follow the proper format
which is to have the items names using the mod id as a prefacing
stardew.button.gay remains an absolutely superb url
Ok thank you lumina 
sure
it's great when people have fun personal domains
ill look into it anyway at least! might be a while though, currently working on CMCT rewrite so that has priority atm
sure, feel free to ping me if you add it, no pressure and thanks for considering it π
Is there a reason why the camera keeps centering itself over here? i'm testing my cutscenes with different zoom levels just to make sure things can be seen (and adjusting where the camera centers at the start accordingly) but it seems that no matter where I put the coordinates with this one it just... stays over here
for context the camera should be centered over where the calico jack table is right now :L
Is the Calico jack table the one on the bottom right?
hey guys, are there any more in deth documentations for the C# modding, i setup a simpel mod but for example i search for how can i check if the current tool is not only an axe but also used
or how whould i set up a check that only should happen if the player uses a tool on tile 15 15?
hey now.. for now I did some disposition and others, when I checked, the NPC didnt spawn in the game. I don't think I did anything wrong in the disposition file, the validator doesn't find my mistakes either, I think the portrait files are correct too..
can you send either a log or the json that the npc data is stored in
umm there is only one road on the left side of the cape bus stop area if you want you can try to reimagine what that area would look like.
I'm actually in the process of making it bigger for larger screens
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home Single Language, with 11 C# mods and 8 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
you should be targeting Data/Characters
!decompile if you haven't already
If you want to make SMAPI mods with C#, one important resource is decompiling the game to read the game code. Here's how to do it: https://stardewvalleywiki.com/Modding:Modder_Guide/Get_Started#How_do_I_decompile_the_game_code.3F
oh wait
as a file???
wait yeah no im right
your editdata
EditData -> Data/Characters
i dont even think npcdispositions is even a thing you can target or edit 
Unless there's a smapi event for tool use (dont think there is), you'll need to harmony patch whatever method is called when you use a tool
so im gonna target characters i assume?
data/characters yep
Data/NPCDispositions hasn't existed for about a year, you'll notice there's no file with that name in your Content/unpacked folder
makes me twitch when people here still talk about editing a chara's disposition when they're talking about character data lol
Ah okay, well let me know when you update it and I'll take a look at it.
Wait, it's gone?
it's a bit late to wait, it was deleted in 1.6 lol
Am I supposed to migrate it?
are you thinking of Data/NPCGiftTastes? that one still exists
all other chara info is in Data/Characters
i suppose it's possible that CP retargets to NPCDispositions for old formats, but i'm just spitballing that
Well I still have a NPCDispositions entry in my mod.
if CP/SMAPI is rewriting your patch to keep it going you're probably fine, but you won't be able to use any new fields and features from Data/Characters, such as different npc sizes, breathing states, breather sprites, builtin exclusions, ..
best to update and use the latest format and game models anyway
im surprised CP rewrites it at all if you're using modern format numbers
very brave 'if'
2.0.0 is modern enough for me to think that
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home Single Language, with 11 C# mods and 8 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
i actually have no idea what i am doing this is my first time modding..
i was also under impression that cp rewrites only for 1.x
i just tried to follow what wiki says lol
and u merely just cant expect to use format 2.5 if u installed cp 2.4
should i open a data file in assets and put the jsons in data?? or what
your portrait files aren't correct..
also that wouldnt really help you unless you're loading it specifically from that area
but how π¦ they were working fr
it says the filepath is incorrect
you also apparently dont have a json for your dialogue or schedule
or one named 'disposition'
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home Single Language, with 11 C# mods and 8 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
π₯Ή
I've been here for days and I feel like I'm giving you a hard time because I don't know... sorry for that
Hey don't apologize! I know I'm happy to help and that is literally what this channel is for
lord knows I've personally asked more than enough questions...
literally most of my talking is IN this channel
I've never asked for help so much in my life : D
thanks again
Hey, as someone who is also making an NPC... yeah it be like that
can you send your NPC's json again?
when did custom assets become a thing 
like it definitely wasn't always a thing right, given prevailance of content pack for in pre 1.6
you're missing the first part of the NPC data which is like, the entry for the NPC
The little "{{ModId}}_TheMrQi" - in your case it would be "NPCAtsushi"
so am i gonna add ModId then write NPCAtsushi?
you dont need to
I don't know if anyone would have the same internal npc name
thats just to make sure it remains 'unique'
Though i also dont know if anyone would have ever named their NPC "TheMrQi"
it is best if possible to have the format be following the convention to prevent conflicts, it also helps troubleshooting if people know what to expect
So if a mod author is making a recolor for a mod and it was done poorly and a some of the assets/sprites are missing, and it was done after the most recent update of the mod being recolored, approximately about a month ago is it appropriate for me to upload a better alternative?
just need some feedback I don't want to come off as rude or ignorant if I post this I also feel like asking the person who made the recolor to update it after they did already is also rude.
idek
you can always do 2 cakes, assuming im understanding this correctly at least:
Original Mod: Exists, author has no issue with recolorsOther Recolor Mod: Exists, outdatedYour Recolor Mod: Well go ahead and make this :)
Ok, that helps. I'll reach out the the original mod author then and double check its cool for me to post an updated recolor to be safe. Thanks Chu
I'm trying to load a texture for an item i added but i can't figure out the file path stuff π Can someone help me?
are you loading the texture?
you have to load the texture in
so i got stuck earlier with the Target function
because that means that im replacing something right?
If I am replacing an asset from another mod it should be formatted like so right? I did something wrong and I am assuming it's with my target
{
"Action": "EditImage",
"Target": "mods/ModID/assets/TargetImage.png",
"FromFile": "assets/ReplacementImage.png"
}
Did you add a false dependency on the mod you're editing so it loads first?
no, you can target an arbritrary path
if it doenst exist you dont overwrite anything
I did add a dependency
no, it needs to follow the load target they used
which vary from mod to mod
ok so I need to find the load section where that asset is loaded and copy it essentially
/* add item images*/
{
"LogName": "Load images",
"Action": "Load",
"Target": "Mods/Lumisteria.MtVapius/Gems, Mods/Lumisteria.MtVapius/Plants",
"FromFile": "assets/images/items/{{TargetWithoutPath}}.png"
},```
Example, here, the target would be Mods/Lumisteria.MtVapius/Gems
yes
Thank you : )
what folder should i load my texture into?
to there maybe?
so i just added the logname but smapi still gives me the same warnings
here an example, the first thing loads the texture from our mod folder (Assets/Objects/Objects.png) into the games Content folder at Mods/Rafseazz.RSVCP/Objects
at the second arrow we tell the item where this texture is in their texture field
https://github.com/MolsonCAD/DeluxeJournal/blob/master/src/DeluxeJournalMod.cs
https://smapi.io/json/content-patcher/dc5d9096d9c34aa7b6df60adf7a1caa9
Ok above is their .cs file where they load the textures, and below is my content.json. It still isn't working and I am unsure what part is incorrect, do I need to load my assets as well in the content.json?
log name??
log name is not what you needed to add
they load the texture from their ModContent (ie their ModFolder). you cant intercept that
yes, or ask the author to load it into Content first, then you can patch it with CP
you needed to actually add the entry for your npc (which is to say the "NPCNAME": { before the rest of your NPC entry
Ok cool ty!!
it should look like this
or something similar
(i think i put the closing bracket for the start of the NPC stuff in the right place)
it gives me an error now haha
I wonder who works on Ridgeside nowadays.
okay
What error?
good rule of thumb: if you have an error send the log instead of just saying it :3
Anyone who wants to help will have to see anyways heehoo
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home Single Language, with 11 C# mods and 8 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
looks like you're missing a bracket or something can you send the json again :3
well your bracket is facing the wrong way first of all
the one right after the NPC name
Sometimes errors are just forgetting brackets, commas or spelling errors.
"NPCAtsushi": }
should be "NPCAtsushi": {
the amount of times I've accidentally typed {{Mod_Id}} instead of {{ModId}}_ is a lot
Lol, same.
At least in most cases it's easier than typing the mods full name
Why don't there be a fighting system for mobs and be servers for players when they are bored
also your npc doesnt need to have the {{ModId}}_ unless you want it
oh i send the wrong one sorry
it can just be NPCAtsushi (the mod id, again, is just in case someone else somehow makes An npc ALSO called Atsushi and somehow names them internally ALSO NPCAtsushi) -
Oh okay :D
@valid moth plz pass your textures through the content pathway, someone wants to make a recolor π
I have too many tabs, I got confused
One of the things I intend to implement in the future for my Qi mod is the Qi Arena thing... that's future though because that will take a bit of development and I refuse to continue to get scope creeped before I release 1.0.0 of this damn mod
LOL I didn't know he had a discord so I messaged him on Nexus toooo XD
} ], }, } } ] }
the end of your json should look like this because you added another bracket
for every { or [ you add you're gonna need another one to close it
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home Single Language, with 11 C# mods and 8 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
am i gonna put his portraits to portraits file?
Oh yeah, I noticed our MapStrings are conflicting with each other, so I'm adding WTD. In front of all mine in the next WTDR update to prevent this, I suggest you do the same for your mod to prevent conflicts with other mods.
Is there a way to override the dog panting sound for just one breed of dog? I see the barkoverride but not one for the panting sound.
I added Easter Bunnies to my game because of WTD. Thanks, they are so cute.
Oh yeah?
its still me, Raf and Moe in case you have any questions for compat or similar
Hey, I just saw your message and yeah for sure I'll try to push out an update for you this weekend
and an up-to-date earthy recolour is definitely welcome!
Hello everybody. Where can I find the log output for stardew mods? Whenever I run STV, the stuff that runs in the beginning goes by too fast and I can't tell which mods need to be updated
The site has a set of instructions to follow
I started working on a mod several years ago but had many life events get in the way and I havenβt touched it since. Iβm trying to pick it back up and get a release out, but it seems like the landscape for modding has changed a bit since then. In my mod directory, I have folders starting with [CM], [CON], [CP], [HCE], [JA], [PFM], and [STF]. I remember these being various modding frameworks but it seems like many of these havenβt been updated in some time and also many functions seem to have been merged into Content Patcher. My question is, how do I start migrating this to the new stuff so I can continue working on it? I have quite a lot of JSON so the least tedious solution is preferable. Thanks everyone!
Well, JA, STF and PFM isn't necessary anymore for most cases, they can just be converted into CP json via guides on the wiki.
!converters
A lot of converter tools have been made by helpful members of the community to update outdated mods or convert existing mods to modern or alternative frameworks, and for 1.6. Here's a list:
- Convert XNB mods to Content Patcher
- Convert pants/skirt spritesheets to Fashion Sense
- Convert Custom Furniture mods to DGA/1.6 Content Patcher
- Convert visual Content Patcher mods to Alternative Textures
- Convert BFAV mods to work with 1.6 Content Patcher
- Convert TMXLoader mods to 1.6 Content Patcher
- Convert Custom Music mods to 1.6 Content Patcher
- Convert Shop Tile Framework mods to 1.6 Content Patcher
- Convert hair spritesheets and JSON Assets shirts & hats to Fashion Sense
- Convert regular Content Patcher to i18n format
- Convert JSON Assets to Content Patcher
- Convert fish data from field names to slash delimited values
- Convert markdown text to Nexus' bbcode
- Convert Custom Ore Nodes and Custom Resource Clumps mods to Item Extensions Framework
- Convert Content Patcher Animations to SpaceCore
- Convert More than Necessary to Content Patcher
- Convert SAAT to Content Patcher
thats what we got afaik, so at least its a start
I remember when SAAT was released, and when I came back it was defunct.
Content Patcher is just the king of modding nowadays.
Okay thanks for the info guys! I'm assuming once they're converted I need to merge them somehow with my existing content patcher stuff? (which I would assume would also be out of date)
Yesterday I was like, make looking into using that custom warp token and statue mod, oh no it was defunct months after being made.
CP is luckily well documented and the wiki is quite up-to-date as well. best to just start somewhere and directly ask here if you stumble over a problem
Okay I'm gonna start with seeing how to update my Content Patcher stuff, thanks!
i gonna admit theres a few i didnt have quite on my radar back then and I was just like huh its dead/obsolete already? I wanted to try it out
Yeah, time flies when it comes to CP dominating modding.
WTDR went from having seven or more dependencies to two.
Is Custom Ore Nodes still necessary or can that be converted too?
Item Extensions is the way to go now
are you loading in your portraits
You rock! Thanks a ton bro
Had that happen with my NPC mod, then i discovered several new frameworks with cool fuctions lol
like are you loading them like this in your content json
Sweet then the only other thing im wonder is Hybrid Crop Engine, is that functionality in Content patcher or anything now?
I am probably gonna do a config and do recolors for more than just DaisyNiko. So this will be perfect for me to just add a config option or have it automatically switch between the recolors for people who aren't as tech savy
it looks like this
not sure about that one, seems to work fine but idk if theres a new framework doing that kinda stuff
you need brackets around them
I'm using steamdeck, so I went o the linux directions, and I have no idea what any of it means. I'm assuming the "files app" is the stardew valley local files?
oh i have i just didnt ss
Seems like it's updated so I'll keep it as is for now
also it needs to be done for Character/NPCAtsushi it needs to match the internal name of your npc
Characters/NPCAtsushi and Portraits/NPCAtsushi
Are there converters for my 1.23.0 Content Patcher to the newer versions or do I just need to change the format version?
oouh okaay
anything that you're loading or referencing for your npc needs to match your NPCs internal name
depends, Format change for sure tho. The game changed a few things around like NPC Dispo being different and stuff so it really depends on what you do
It's one interior map, some minor map edits, and an NPC. I don't even really see docs for NPCs on the content patcher github
oh yeah the way locations are added changed and npc stuff did too
NPC theres a tutorial here https://stardewmodding.wiki.gg/wiki/Npc_template
Hello! Aviroen here.
Below I have constructed a ROMANCEABLE NPC template which are all standalone.json(s)
This is assumed that you understand Content Patcher to some degree.
If you want to see how all of these files interact with each other, you're free to look at my
"What does standalone mean?"
It means...
errr, template i mean, i am looking for the tut lol
heres the whole tut https://stardewmodding.wiki.gg/wiki/Tutorial:_Making_a_Custom_NPC
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...
aaand here is for adding a location https://stardewmodding.wiki.gg/wiki/Tutorial:_Adding_a_Custom_Location_(CP)(1.6)
Rokugin here with a quick tutorial on adding a custom location to Data/Locations using Content Patcher.
Github repo can be found here, with the download for the whole mod here.
This tutorial assumes you have SMAPI and Content Patcher installed.
I suggest using VSCode for automatic formatting and real...
tho the format is 2.5.0 now not 2.4.0
@blissful panther I found a possible bug with PEEM. I can't interact with the tile unless I use terrain features to remove the bush. The priority doesn't affect it either.
In the future, there's a !npc command you can use for that instead, Funtime Void π
this is the way of things: when more of the game becomes content, content patcher's purview widens
omg thank you that work! he finally existed.. i'll do the schedules tomorrow
thx for everything again!!
Really happy to help!
It must feel satisfying to be able to see him lol
I know how that feels
I just had an event end abruptly because I used #$action AddSpecialOrder at the end of a character's dialogue. Is this known behavior?
No errors and the special order was added successfully
bruh.
unsure if the powers that be know it, but there is some odd behavior around parsing dialogue actions since the dialogue parsing code is pretty gnarly
my mod worked yesterday, i went to bed and today it doesnt work π
you need to give it some encouragement
i've never seen dialogue parsing cause an event to end, but this is stardew so who knows lol /lh
its a bit shy
A supportive and nurturing environment is always best for young mods
Did the list of deprecated event pre-conditions get deleted or just moved somewhere else on the main wiki? If it did get deleted, could it be brought back as a reference? The vanilla events still use them but half of them aren't listed anymore and now there's no reference to what each one means for anyone trying to interpret conditions from vanilla code
It's still there: Modding:Event data#Deprecated.
Ahh, must've missed seeing that! Thanks 
Did you tuck it into bed? If not that might be why.
I am pretty sure I did, I may have forgotten to give it their dino nuggets.
hm i ran into weird C#
i have a subclass of ItemGrabMenu and i was gonna do more draw stuff by overriding draw
This one doesn't work, from base.draw I get MenuWithInventory.draw instead of ItemGrabMenu.draw
public sealed class SpecialItemGrabMenu : ItemGrabMenu
{
public override void draw(SpriteBatch b)
{
// this gives me MenuWithInventory.draw(SpriteBatch b, bool drawUpperPortion = true, bool drawDescriptionArea = true, int red = -1, int green = -1, int blue = -1)
base.draw(b)
}
}
This one does work, I get ItemGrabMenu.draw like I wanted
public sealed class SpecialItemGrabMenu : ItemGrabMenu
{
public override void draw(SpriteBatch b)
{
// this gives me ItemGrabMenu.draw(SpriteBatch b)
Action<SpriteBatch> drawMethod = base.draw;
drawMethod(b);
}
}
why...
Is it possible to use CP to make a machine that opens an interface to craft... like the sewing machine? Or is that getting into c# modding.
C#
better crafting
depends how super custom you want the UI
I want to remake the doll maker mod as the author has left modding and said that there mods are open to be remade or updated. Hoping to make it not need JA. But I don't know c#. So the doll machine is what I need to figure out. I will look at better crafting and see if it is something I can do, or if it is beyond me.
Looks like they use this framework
I don't see any c# component in doll maker
i am seeing now that pathos rewrote that section and his version more strongly tells authors not to use the short aliases
How can I define the priority that a map edit needs to be loaded?
If you want to take the sprites (author had modification perms set to open) and remake the mod in some combo of better crafting, extra machine configs, and regular game content stuff
You probably can
Elaborate on this
@deep cypress: fix utility.pickpersonalfarmevent (21h ago)
