#making-mods-general
1 messages Ā· Page 439 of 1
Oh yeah mac
IT WAS THE FUCKING TXT FILE!!!??!?!?!?!?!?!
It was?
That has to be a Mac weirdness because look at this

I would never have guessed that
What happens if you change it to a .md file instead?
Or even .json?
This is partly curiosity, partly wanting to help you find a way to have extra files in there without it dying
ty :)
patch reload HeadInTheClouds.theyrejustcuteokay
shit meant to paste that into console-
okay it's fine with a terrible .json with NO formatting or meaning but not a TXT file?!?!!?
anddd it's fine with .md
im losing what's left of my sanity /j
[Content Patcher] Patch error: HeadInTheClouds.theyrejustcuteokay has a FromFile which matches non-existent file. Did you mean to use the .txt file instead?
me rn i swear
..anyways thanks for helping @vernal crest :) I really appreciate it!
I got stuck for a good 20 seconds on why your files/folders are placed like this
im still in disbelief
what happens if you make it a txt again?
..i dont wanna know
Good Morning!
hello cosmic i just officially lost my sanity
Did you look in the couch? That's where I find my keys when I lose them
...mod didn't load BC OF A FUCKING TXT FILE
I just realized I need to make NPC sprites and portraits for another cutscene Pain
Oh and a map for the Ministry of Magic T^T
hmm i should i check
It'd be the smallest things
My entire file crashed becuase of a missing comma
I know its a lot of work for my mod but I'm 26.72% sure it'll be worth it
now that's the spirit!
alr im gonna go draw-
I have exploded my whole game a few times. Well, lots of times if you count all the times I've broken it with symlink stuff.
laughs in breaking the draw loop
When I was first figuring out light tiles on my maps, I created a loop of crashing where the game wouldnt consider booting. I feel your pain

I mean, at this point it's could even be laughs in breaking everything and anything with Harmony
I have made SMAPI stop immediately on startup so many times that I now start looking for broken symlinks as soon I see "press any key to exit"
(cracks knuckles) i brought down my entire computer testing one of my mods /lh
You win! I've only had to force log out using ctrl alt del at my worst
Oh yeah well <madeup inplausible thing that happened>
oh god.
https://smapi.io/json/none/68f5ba278b6a4922a83bc2aac22f0b04sp my different dialogues with different portraits arent working i really need help anyone have any ideas
like honestly everything is working except the portrait isnt changing
uhh looks like the link isn't working?
(just clicked on your JSON cause I'm curious lol, no clue what I'm doing)
(font_bold questions) is this LATIN (CAPITAL|SMALL) LETTER Z WITH DOT ABOVE? https://en.wiktionary.org/wiki/ż
it's looking a bit like a line so i'm asking for clarification if anyone knows
how do you define {{ShopPortrait}}?
its a dynamic token its my seasonal portrait for the shop
the portrait works fine its the shop message for when its closed thats not really working
ive tried so many different methods and none o f them are really working for me right now
Two initial issues:
Portraitis part of the owner, it shouldn't be underDialogues. If it's working, not sure how? It might just be showing the default portrait for the NPC.- A closed message is set using the
ClosedMessagefield on the owner, not underDialogues. (Putting it underDialoguesmeans the shop will open normally, but the NPC will just say it's closed.)
See Owners on Modding:Shops for an example of how it works, showing both a closed message and regular dialogues.
in doing it backwards? that explains everything
ive put dyi furniture build together backwards even with instructions before. thank you pathos
solved it myself: it is z with dot above
GUYS MY EVENT EXISTS NOW 
I even copy pasted a vanilla shop and it still isnt working.....
hi all. i'm just walking through the introductory steps on the stardew wiki for installing and getting started with visual studio for modmaking, and i'm quite overwhelmed as i'm completely new to programming. what's the best way to start learning the C# that i need to make mods for the game?
i imagine there's a lot of tutorials out there but i don't know where is best to start
is there any way to increase the volume of a playsound sound during an event?
you don't necessarily have to start out with C# immediately
there's not many c# tutorials because for the most part it's just general knowledge of c# you need, not Stardew specific
however you should figure out if you even need c# at all for your idea first, as a lot of modding can be done with just json and content patcher
Hi everyone! Can someone tell me if it's possible to use Visual Studio for both the C# and CP but like it compiles the C# code and put it in a folder normally AND also pastes the CP mod folder alongside it. I saw someone do it before, but I don't remember how.
Not directly, no (and it's a bit annoying even in C#, plus a physical risk to users if errors happen
). I think the way to do that would be to get the sound file, boost its volume with w/e software, and add it as a new cue with Data/AudioChanges.
my main hope is to be able to make NPCs, and then potentially even worldspaces and items and all sorts of other things in future once i'm more confident in my abilities!!
huh, okay! thanks 
ngl the order of difficulty there is... well, a NPC is a ton of work and generally requires a home (worldspace) and sometimes even involves items (pretty simple to make)
that makes sense. would the sort of stuff i have in mind need c#? and if so, do you know of any good places online to start learning the basics?
also a beginner here, editing a pre-existing mod is a great way to start :)
NPCs, map edits or new locations, and new items are all generally done through Content Patcher packs (which use .json text files for most things, and Tiled map editor files for the maps)
C# can also do them, but CP packs don't require knowing a whole programming language & dealing with compatibility, so it's generally the way to do that
Thanks!

oh okay! what sort of mods require c# knowledge?
is that permitted? :0 i don't want to risk stealing from any hardworking creators without a pass to do so
lots of modders are fairly chill with it, just make sure ask for permission first!
C# is used to make frameworks like Content Patcher, or to change game mechanics; the game intentionally has a lot of data files to let modders add new items/etc, but not everything can be done that way
- or check the perms on nexus. itās also permissible to make changes to any mod if itās just for personal use
as far as CP stuff goes, the main wiki's intro is here: https://stardewvalleywiki.com/Modding:Content_Patcher
and there's a modding wiki here with some tutorials/etc: https://stardewmodding.wiki.gg/
just know that of the things you listed, the NPC is definitely the most time/effort intensive.
the intro just focuses on editing a texture for example, but the majority of the "specific topics" list here can be edited with it too, as a rough overview
https://stardewvalleywiki.com/Modding:Index
!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.
-
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!
I've just passed a year working on mine 
YESSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
I DID IT

finally i did it imma cry now
aaa happy for you!
no wait i spoke to soon
shit
now it ONLY says its closed gdfjkgsdfg

š
ahh. is that a bad place to start for beginners?
thank you for all the helpful links Esca!! i will check all of them out! i've been prowling around this page: https://stardewvalleywiki.com/Modding:IDE_reference#Before_you_start as i thought that was where i had to begin?
If you want to start small, it is absolutely not small. I've been working on a single NPC for a year. And maybe I'm slow, but it's quite a lot to do to make one. You also need to learn how to do quite a lot of different modding things to make an NPC
and it did include making an item, which was quite fast overall, and making a map for him to live in.
He's out in beta right now in Sunberry and East Scarp's servers, but it's Pelican Town Municipal. Sheriff Bill
He's basically feature complete, but I'm still doing a lot of testing and polish before I actually put him out for real.
NPCs need quite a bit of testing too. Testing an item is a lot easier
but with an NPC, you have to test their schedule and their events and where they live and festival stuff and their dialog
real i am dieing out here thinking of events for my npcs š
I put out a tilesheet mod last year that I just made along the way to making this NPC. Easier to make and test both.
I don't want to discourage anyone making one, it's been fun! But if you want to build from something easier, it's not a good first step. Heck, it's how I started, more or less. I've learned one thing at a time basically
i mean i'm starting with an npc-
I started just playing with pixel art portraits, moved on to maps, etc etc
Yeah, but if the idea is that they want to start with something easier, it's not the easier
Splitting it up can work nicely though, that's what I did
generally stuff you find the most fun is gonna easier nonetheless
yeah I ended on learning events and that has definitely been a WHOLE THING
i don't mind a bit of a learning curve! it might be fun to learn something new like that, especially if it allows me to make and share with others the ideas and characters that are all bouncing about in my head
i just feel excited to create. it is intimidating though
Yeah NPCs are particularly intimidating once you know enough to realize how much you need to do
but take it one thing at a time and you will eventually be out of things
i imagine major expansions like Ridgeside and Scarpe took insaaane amounts of work!
it's so inspiring
i highly recommend a checklistāit both helps me keep track of things and also lets me feel a sense of progress
I set up a Trello that just listed out everything I needed to do so I could do it one thing at a time and mark it off as I went
like recently i've been absolutely loving always raining in the valley's sterling and eli and dylan, i can tell how much work and love and creativity and time went into them
oh i live my life off of lists, i'm an absolute mess without lists
love em
it's really satisfying to mark a thing as done and whoosh it over into the Done column
It's also OK to bounce around a bit as you get bored/fatigued with one part
I found the kanban plug-in for obsidian
Yeah sometimes you've got Art Energy and sometimes you've got Code Energy,
Exactly!
And sometimes you decide to implement i18n during your code energy and you question why you didn't start with it in the first place.
(don't make my mistakes)
Thank goodness for i18nify xD
see, I heard people doing that often enough that I started with i18n
I heeded the cautionary tales
To be fair, I'm dealing with a lot more than one NPC xD
I've gotten better with doing it as I go along. My first mod, I waited until nearly release before realizing i18n was a thing
Also don't be afraid to mess with your workflow. The way I was doing events was just awful, but I changed how I was working on them and it made things much better
i did not and maybe i should have, but nomoriās converter saved my life
stares blankly at 50+ NPCs worth of portraits and sprites
jesus
which i might actually prefer to doing it myself lol
If you get really bored with writing events, you can always do something completely out of left field for awhile. I decided to add in a couple pieces of custom furniture in the mod I'm working on right now. Just because it fit the NPC's story
Preview of my insanity that's been an in-progress project for a while now: https://discord.com/channels/137344473976799233/1272745624311300178
Ha, I ended up last second learning how to make a crop just because I was like "what can I do for a rival hearts quest that could involve a farmer?"
scope creeped myself into making a flower
Love that
ive beendoing this
I've scope-creeped myself into making maps for regions I was not intending to release in the first edition of my mod. LOL
So, uh, oops.
Now I have to fill them with things! 
Would you say it's going to be bigger than SVE when it's done? Because from the glance I took just then... it looks huge?
the flower in place
these look awesome
(it's a mana bloom from Oblivion, I always liked them)
Kantrip, my overhaul mod is currently built to replace the vanilla NPCs (hence overhaul), but add new objects and locations.
Ahhhh. Reskin the game entirely
If I were to make the required town for all the 'main' residents to be custom NPCs instead then it would likely end up on par or slightly smaller.
This convo about scope creeping makes feel seen
bc how did a mod update which was just supposed to fix some typos and add an i18n end up with me scripting an event and learning how to add an item in my mod
I have a whole scope creep column where I can stash the scope creep demons
but some of them get out and into the main content anyway
iām lucky i have one android player who i want to keep my mod accessible for, which means i can now shove all my C# ideas into the ārelease as separate modā category lol
How do y'all keep scope creep from wearing you down
I shoo it over into the scope creep column and do not touch it until I am done with everything else
It's a fine line between scope creep and adding stuff to a mod, but when I have it marked SCOPE CREEP, it's easier for me to identify that this is extra stuff on top of what needs doing and I should think twice before doing it
I finished everything I intended to do for release before I touched this bit with the flower and all
The problem I keep having with modmaking is that it's hard to stay on track for one mod if it's big enough to take multiple months
I keep having other ideas that I have to write about and then ruthlessly repress
Oh I've taken a lot of breaks in making this thing for over a year. one of them was not my idea, but still
Working on Older Sam at the moment, but I just had this idea for a mod featuring Elliott. Going to put that in the "future" bin, but it's hard
Also some scope creep got incorporated because I needed a break from what I was doing and... well, I didn't have anything of the thing I FELT like doing that needed doing at the time
thus Stamps
send your mail with SCOPE CREEP (pink so you can see where the edges are)
Speaking of scope creep
oooo pinball
yooo you should talk to @naive wyvern, they made some super pretty art for minigames
i think when you get bored with any creative venture, taking a break to refresh your brain is necessary, and then when you feel all rested, listen to music, look at art or scroll pinterest or make a moodboard, go for a walk in nature, watch shows or movies that you love. i get so much inspiration from things like this!
omg firelily you just reminded me i wanted to make a cursed for fun overhaul of the games graphics for a silly thing i wanted to doi š i used to be super into a fandom and i kinda wanna make a mod for it but i dont wanna be judged for beign cringe XD
at least allt hese other mods ive been making have been good practice for it XD
become cow
im better at sprites fo sho
I promise you, "cringier" things mods have been made. anyone who wastes their time hating on "cringe" is not only not making anything, they also aren't even playing anything. what a waste
You're making colorful pixels for a silly cute little farm game. There is no cringe. Only game.
fkjwefioj the fandom has a bad rep so i worry about it lol
That's why "block" was invented
People suck whether you make it or someone else does. So just make it and they can suck
I mean, are you planning on doing the things it has a bad rep for? if not, ignore them 
nah XD i kept seperate from all the drama in the fandom its just one of those "peoples first fandom so they didnt know how to behave in social spaces" things
ill prob make the mod
thanks for the encouragement you guys ā¤ļø
Anytime you need a "People are stupid, do the thing" peptalk, i gotchu
X3
I feel like I have some guesses
and in all those cases, mods already exist for those fandoms
It's peppa pig. Isnt it
My guess is problem sleuth's spiritual sequel
p[stkpaehoetpmoaetm
There are NO Bluey mods.
yup, that was mine too lmao
Im shocked
had to look that up though
thank you all for being so helpful and supportive by the way!! i was worried that my noob questions would be a bit tiresome or annoying so i'm super relieved to get such wholesome feedback :D
i love stardew's community 
hey! uhh having some (more lol) trouble with an event, how can I get the camera to pan? I've tried using viewport move but it's not working, no matter how long i put as the duration it always just teleports 
also happy october!! 
Is it okay to make an AT for an image of size 2x2, but the AT would be bigger? e.g. 2x3
did you include x and y and duration? all three are mandatory
yes
what did you put
uhhh 2000 2000 8000
2000 pixels is way too much
Pan the the camera in the direction (and with the velocity) defined by x/y for the given duration in milliseconds. Example: "viewport move 2 -1 5000" moves the camera 2 pixels right and 1 pixel up for 5 seconds. The total distance moved is based on framerate, rather than time, and may be inconsistent.
if you want it to be total 2000 pixels then you have to do math
Can you explain
..oh shit heheh
alr retrying-
If i want to replace a picture with a slightly bigger image in its alternative texture, is it ok? it wont cause problems?
to make the new picture taking up 2x3 tiles instead of 2x2 (wall decor)
aha okay ty
You can add custom furniture with cp though
yeah, it was just something particular i need
sadlly still no movement?
i have /viewport move 20 10 2000
is it not moving at all or is it happening instantly
this time, not moving
it might be too little for me to notice? I'll run it again at 200 200
yup, still no movement
are there errors in your log
lemme check
that should always be the first thing you check since itāll be way easier to diagnose the issue if it throws an error
hell yeah
nothing realted to my event :(
can you send your json then
were you editing the wrong file
i pasted it all directly from the doc and all it shows is this: https://smapi.io/json/content-patcher/c430e8afe92b45569e2857d357da528c
the validator struggles with comments sometimes
hmm okay, I'll remove them
try either taking them out or using the upload button instead
Sooo... I may or may not have been working on a "freelance supply joja mod" off and on for a while... the Joja snacks I've been making were during my breaks from this mod. It's mostly feature complete. Still working on kinks. Ignore it asking for 30 daffodils and me only having 25. I added the last 5 after that screenshot lol. The JojaBoxes are basically mystery boxes with slightly different drop pools.
did you multiline this?
The JojaBoxes are basically mystery boxes with slightly different drop pools.
that's an interesting mod concept, i dig it
i see a bunch of \r
oh, yeah I did add enters so I can read it
was this you copy pasting or using the upload button
uhh lemme check
uhh no "/r"s in my OG document
yeah theyāre a special character. iām just concerned about my own ability to check it with them present because i donāt trust i wonāt miss something
oh, uhh what should I do then? and tysm for your help 
try using the upload button if you copy pasted, or vice versa
iām not familiar with how the validator handles things
okay never mind
would it work if I paste it here?
huh, does playMusic Of Dwarves work even with the space?
huh, I just copied that from another event that had that music (didn't know the name)
i mean if it works it works
i just didnāt know you could have spaces
you donāt have /end
or any commands after viewport move
oh, should I? it's still a wip so i didn't bother adding it
iām not sure but i always have /end in mine and then add stuff in the middle
yay iām glad it was that simple!
that and some other code use the "get all remaining args as a single string" helper, fwiw
(though it's less common than "don't use spaces" or needing quotes)
public static void PlayMusic(Event @event, string[] args, EventContext context)
{
if (!ArgUtility.TryGetRemainder(args, 1, out var musicId, out var error, ' ', "string musicId"))
ahh good to know
I'd love some opinions if anyone doesn't mind. Regarding my Joja freelance orders: #making-mods-general message
At the moment I have around 12 quests per season, and you can only do 1 a week. They're set up to reset every Monday and be randomly chosen from the 12. Is that enough for the pool? Should I add more to avoid it feeling repetitive for longer lived games?
Hi! I wanna make stardew valley mods but I don't know what format they use, if you could help out. Please reply! Is it like 16 x 16 or something, and also for the character art like in their dialouge. TYSM!
!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!
!startmodding and check out the tutorial for making content packs
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 assume youāre mainly interested in retextures?)
Man Portraits are hard 
https://smapi.io/json/none/3353095a21ae417a9631e91f04c98d3a
why does this item show up in the museum collection? :(
category -2 (gem)
gems dont show up?
last I checked they very much do? gems, minerals and artifacts
ah ok, sorry, I need to look into which categories dont get added to it
you can make your gems not a donatable item with a context tag
not_museum_donatable
thank you very much!
though note that in the current version itād still show up in the collections menu
I think itās fixed in 1.6.16?
ok thank you!
tysm!
Wait, when did 1.6.16 release? I thought we were at 1.6.15
I also wanna make sprites for my game so I wanna know what type of width and height they use
it is not released, hence ācurrent versionā
ohai, what's the best way to implement per-save per-player data?
I'm basically trying to implement something similar to the Farmer.fishCaught (just for non-fish).
ReadSaveData sounded nice, but modding docs say it can't be 'used' by farmhands?
Is having a per-save cache file in the mod folder the only alternative (without workarounds)?
what about Farmer.modData
itās just a string dictionary for you to set whatevs
oohh... when I clicked mod data it jumped me to save data - I thought that's what I was reading xD
thanks, that looks more like what I need
another question (because my brother said this is not a logical scenario and it only makes sense to me):
if the frog in the frog tank gave you the mummified frog item and it displayed this message: "The frog is staring at the other corner of the tank. Its expression seems sad... Or horrified...#$b# There is a frog's skeleton inside.#$b#This would be concerning, if it wasn't for the fly skeleton in its mouth... Or the big red button next to it that says 'Try me!'"
- would that make sense to you?
or read more like a stroke?
Hey, I'm trying to figure out how I can override the animation offset that stardew valley applies automatically to some animations, for example run animation. There is a way to do this using SMAPI, if the answer is yes how?
I managed to get the Animation Frame, but there is anything like Offset_y
is it meant to be like those halloween store displays
or there is a mod that I can use for disable that?
I intent to use it for fashion sense
this wasnt my intention, but this seems to be the more logical conclusion, right?
maybe I should change it
Maybe I should use Harmony instead of smapi?
you would still need smapi to do harmony changes?
yeah im sorry but i cant guess what the red button or the fly skeleton is supposed to mean
if there isn't a good SMAPI event for what you want, harmony is frequently the solution
my imagined scenario was: explosion?
the frog clicked on the obvious explosion button
idk I had some old catroons in mind ? maybe?
idk why but it is so funny to me
i guess so but i would never have guessed it, i think if you change the context you could imply it but im not sure
the "would be concerning" part is confusing because it makes it sound like theres not actually a dead frog in there
like its a fake skeleton
mhmm i thought a fly skeleton would sell it as cartoony
i think because you started off by saying the other frog looks horrified its gonna be hard to make it seem cartoony lol
Id even just like
what I'm trying to do is to disable this up and down in the sprite from the engine
get rid of all of that and do something simple like "frog seems to have pressed a button it shouldnt have"
you are a genius
yup
I found how to erase the bobbing, if somebody it's interested I overriden this in the Tick:
List<AnimationFrame> anim = sprite.currentAnimation;
int currentFrameIndex = player.FarmerSprite.currentAnimationIndex;
if (currentFrameIndex < 0 || currentFrameIndex >= anim.Count)
{
return;
}
AnimationFrame frame = anim[currentFrameIndex];
frame.positionOffset = 0;
anim[currentFrameIndex] = frame;```
Isn't there usually a Spirit's Eve mod contest in October?
often a halloween event, but not usually
also its only the 1st
it's not the first, there's been a mod contest before 
mods ban for misinformation please
Your timezone is fake news
time is an illusion anyway
Also go to bed
Not you. The one at 3am
again time is an illusion
would you say that the one seasonal (spring only fish/tadpole) that my mod adds should default to "counts toward fishing completion" or defaults to "doesnt count towards fishing completion"?
:O SinZ is in the same timezone as me
how quickly you forget the number of aest members here
if you did not set ExcludeFromFishingCollection then it will count
ah yes, but I made that a config option
and I wondered what would be the more welcomed default option in your opinion
in my opinion, if a mod adds a catchable fish, it should by default count toward fishing completion
and if it's not catchable, it should not
thanks!
and adding currently unused cp tokens with a smapi mod isnt expensive, right?
or costing much performance
i don't think it's expensive to add a token that isn't used, no. but it's more expensive than not adding it, if you aren't using it
oh shit, stardew mystery dungeon o.o
Excuse meļ¼I want to know how to add a falling leaf effect to the map similar to the Secret Woodsļ¼
Thanks a lot! I'm going to try this outļ¼
Will be at PAX
I had to google what PAX is lol
well that answers that question
Looks like it will be fun though!
Pax = peace?
Penny Arcade eXpo, tl;dr Gaming culture convention
I think I've heard of it in passing before and its a big thing?
@uncut viper: remember the invisible NPC halloween mod idea (285d ago)
I fear this idea.
Could you please check if my changes are correct?
it is so funny to me, i refactored and rewrote basically the whole silly mod in the course of like 3 weeks, made usage of more cp stuff and thought this would shorten my whole code by a lot.
... it did in fact not
it is more adaptable and has some qol changes though 
why does stardew valley have so many repeating variables.
like I'm extending the Tool class rn and there's a description, Description, and _description. and its just Description returns description which returns _description?
and err... ultimately I just need to override loadDescription() which means its time to set up i18n? am i getting this right
_description is the private field that contains the cached description
description is the public property that exposes getters and setters for that private field, handling caching as needed
Description... just returns description seemingly
Description doesn't actually appear to be used at all, but if you've added an item data definition for your new tool type you can simply set the description from there and it'll be used for loadDescription
your first property seems wrong; you probably just wants #87be87 (or 87be87)
how do I add item data definitions?
I'd like to modify the lighting like the Secret Woods. Could you teach me how to modify it?
you don't need to unless you want your tool spawned in generic contexts, e.g. shops, dialogue, cjb item spawner
and it's generally more trouble than it's worth unless you need to
but if you do need to, just copy how the base game does it, maybe overriding the tool data definition
oh what are suggested ways to get it to the player then. I was thinking mail when testing and eventually give it through an event
if you want to give it through an event and you're working with C#, you can just define a new event command that adds the tool, meaning you don't need to add a data definition at all
ohhh thanks!
you're already doing it? I'm just correcting your code
(though you should probably ask @lucid iron, the author, I'm not actually familiar with that)
Event.RegisterCommand is your friend
from there just call MyFunnyToolClass.getOne() in your event command delegate, with an appropriate method override on your MyFunnyToolClass to return one of the correct instance
okļ¼thanks
thank you, this is saving me so much thinking xD
https://pastebin.com/mvpKSiRi
so if anyone wants to read through 2000 lines of code and help me improve as to what could be changed, improved or simplified, I would be happy.
but 2000 lines are 2000 lines and also I might be a bit primitive and simple, if not redundant at times in my code 
Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time.
but! everything is working and running and doing what I want
(speaking of aest, finally some good fucking nbn. 25/10 to 500/50 for a 15% price increase)
so there is also no need for you if anyone of you might feel the need to read through this
!json
JSON is a standard format for machine-readable text files that's used by Stardew Valley mods.
If you need help with a JSON file, you can upload it to smapi.io/json to see automatic validation and share the link here.
When making mods, it's recommended to edit your files in a text editor with JSON support, such as VS Code, Notepad++, or Sublime Text. These programs will check for syntax errors.
speaking of aest.. im in cest and should go to bed 
It is indeed just a map property (or a custom field on location)
can you upload this somewhere like github instead by any chance?
but my main concern is with the number of unhandled try catch blocks tbh
were they raising errors?
oh sure, but i didnt understand how i can make a new branch on github that is like empty, because on my current github repo for it there are so many files i deleted in my rewrite
but maybe i will open up a new one wholly
My English is suck. If I understand correctly, are you suggesting that I need to edit this set of map properties in the JSON file?
your remote git reflects the current state of your local repository; removing a file locally will also remove it from the remote repo.
If that's not the case, could you please let me know if my current edit is correct?
which is to say if you add a new branch to your repo with your current project files, only those files will appear in the branch, and comparing changes with your master branch will show these files as added/removed
(likewise, adding files to your gitignore will also remove them from the remote when pushed, as git will no longer track them)
It doesn't particularly matter but unfortunately I lack the means to help you on me phone if you only post a file 
Here are some examples btw https://github.com/Mushymato/MiscMapActionsProperties/blob/main/[CP] MMAP Examples/woods.json#L8
thanks!!
here you go!
in earlier versions, yes!
oh do you mean you would need Xixi_YK to upload to smapi.io/json?
but maybe i should delete those as well, is "try catch" fragile?
or rather turn them into normal methods/functions/whatever the correct term for these blocks is
what's a serializer? and how is it used in context of stardew?
itās not fragile per se but personally I would want to find out why they were raising errors, restrict the error catching to only the expected type of error and possibly log them too
Sorry I dont know
For the falling leaves effect, I need to create a Map Property in Tiled named mushymato.MMAP_WoodsDebris and set its value to āTā?
For the Secret Woods lighting effect, I need to create another Map Property named mushymato.MMAP_WoodsLighting with the value ā#87BE87 T trueā?
basically they arenāt a bad thing, itās just that in this case youāre kind of using them as duct tape
ah, i am like 95% positive that in the last build of the mod none of them should raise any errors anymore!
serialization is the process of turning in memory data models into a form that can go over the wire or written to disk.
deserialization is the process of taking files or network traffic and turning it into in memory data models.
ie, writing to the save file is serialization, reading the save file is deserialization
Yes, lighting and debris are separate map properties
Okļ¼thanksļ¼I will try it
also i removed/reverted back from subclassing TAS
although my old version luckily didnt cause save file explosion and added some extra cache clearing where I was unsure if anything of my mod would get saved into anything other than moddata
Oh! Nice!
The Alder Scrolls.
TAS?
(TemporaryAnimatedSprite)
If anyone is reading through it and has any questions or feedback or comments, please ping me or write on GitHub issues, sadly I need to sleep now
And I know that the current situation of blocks/methods/functions doing similar things but being named differently isnt ideal yet q.q but are part of the process of fixing all the unwanted behavior and now still part of it due to my inability to fuse/refactor them more elegantly
does an npc need dialogue to exist? i'm trying to make the most barebones nonsocial NPC possible but can't get her to exist https://smapi.io/json/content-patcher/be5e6717fe824900902fbf5e1941c445
nope, no dialogue needed.
Did you blank load the schedule?
Also you'd better be adding your mod id to those ids later missy 
later now
NPCs are my one thing that don't have mod ids š
they do have first and last names but
Fortunately the mod is under your control!
If she's a new character she can have a mod id even if the others don't
but won't that screw up all the ones already in people's save files
There's a field you can use to migrate the internal names for NPCs. The only thing you can't save is if there are other mods that edit yours because they'd have the wrong targets.
Have you tried setting her home to town in case the location is the problem?
She won't need gift tastes either unless you want to give her CTs or location dialogue by the way
no, let me try that. although the location does work in general
i actually didn't have them but just added them in case that was the problem lmao
(But if you think there's a chance you might add either of those things in future it's probably worth keeping the gift tastes in case you forget gift tastes are needed for those)
(this is FormerCharacterNames: [] in your character data, by the way)
with the amount of times i've told people gift tastes are required, i would hope i don't forget š but yeah no harm keeping it in
when do NPCs spawn? like do i need back out of the save and create a new one
No, sleeping should be enough
okay she did spawn in town! i wonder what's up with my location then
it exists and i can warp to it and everything
Try putting her back and sleeping another day
uhhhh now she's there? bizarre
well. thank you for the debug steps lmao no idea what was wrong
maybe i changed something a while ago and never slept? idk
oh you know what i did resize the map. she might have been trying to spawn on a buildings tile
Not sleeping would be my first guess
cackling, lightning strikes TEXT OPERATIONS
praise be to text operations
they have given me too much power
...it's just the power to show up for the most part, but I don't get a lot of power in day to day life, let me have this
the power to show up sounds like a very inspiring real life thing, to be fair!
I am giggling a bit at Sam in his Joja work attire... I assume my debug command to force the event is to blame
drowning out a book reading with his headphones
a bit rude he's got his headphones on
he's just listening to the audiobook version šāāļø
Note that depending on how you are injecting into vanilla events they may break for 1.7 when that shows up
that's a later me problem
maybe we can all murphy's law our way into getting 1.7 sooner by making stuff we know will break in the update
I think I'll be able to release this year
I just want more bugtesting and polish time for now
(fortunately by then an older, wiser you)
Yeah, future me will have had more time to cook
she can solve that problem, I'm sure
is there a better way to precondition an event besides a mail flag, when the player chose a certain response to a question in another event?
If you used a question format that has dialogue answers you can use ChoseDialogueAnswers. If you used a question format that resulted in a switchEvent, you can use SawEvent with the forked event ID. If you did neither of those, then yep mail flag.
yes, you want ChoseDialogueAnswers:
https://stardewvalleywiki.com/Modding:Event_data
i was looking at that but wasn't sure if it only applied to regular dialogue. thanks!
It won't work for QQ or the event command question, I am pretty sure
Because they don't have IDs for their answers
No, question fork is just one of the possible question options
you need to use dialogue response IDs for ChoseDialogueAnswers, so any question-like dialogue structures need to have response IDs for the answers to be used
It'll only work for the dialogue $q format, I think. Or adding the event command questionAnswered so you're giving the answer a fake ID.
ohhhhh
ngl i forgot formatting event dialogue like that was an option
i'll have to rewrite this then
Is it worth it just to avoid a mail flag or using questionAnswered?
well to be fair the event already doesn't work
it's in first draft stages
this is the one with like six forks that makes me want to wait for 1.7 to release
using questionAnswered would be easiest of those though
Are you using question fork or its superior friend qq?
Or fork and switchEvent if it's without a question
question fork
D:
You can qq without a question
Why do that to yourself
which may very well be why it doesn't work lmao
because the answers aren't linear
love QQ. Will be happy for the next way to do the same thing, but for now, QQ is friend
What has linearity got to do with it?
so like. my understanding is that question null is out because the answers have an effect. QQ would be good but i don't think they would allow me to jump between topics. i wasn't aware you could use fork without a question i don't think?
for reference these are the fork options
I ask this because I do not know of anything that question fork can do that QQ with a switchEvent cannot
Except muck around with the annoying specialEventVariable1 I guess
like i said, it failed the very first question, so i'm not opposed at all to restructuring it lol
i'll make a note now to look at using QQ and switch event
I do my QQs by switching to the new event as the first (and only) command inside the QQ answer
ah yeah i don't think i've ever used switch event? normally my QQs are big ol' blocks of escaped commands lol
yeah 0 hits when searching lol
Here's an example. If you wanted another ending that was inside the first event, just add a third answer to the QQ that won't use switchEvent. https://smapi.io/json/content-patcher/4e8f44f441654819adb4f2354a37f247
honored to learn from spenny
Also, the main reason I use only switchEvent inside the QQ answers is because I hate having to have more than one command per line and QQ messes with that so I just reduced the QQ part as much as possible while keeping its utility.
oh does multilining mess with escaped commands because of the \ ?
What is an escaped command? I only know of escaping dialogue inside events.
Oh right the \\ part inside QQ
like how inside QQ you have to have all following commands separated by \ instead of /
yep
Hmm, I don't know. That might be why it breaks.
they're probably not called escaped commands lol
It was a reasonable name once I remembered what goes inside QQ answers if you don't immediately switchEvent haha
You escape the quotes and stuff in them, so it made sense to me anyway
Technically the only part being escaped is the backslash but yeah it made sense
I mostly do single lines in QQ, but I do have one that has escaped backslashes
Axell did actually manage to single line QQ
i'm the event freak who uses question fork and plain move lmao
But he puts his slashes at the start of his lines rather than the end, so perhaps there's some difference there
hmm perhaps that's it
just about crashed out trying to figure out why all of my plain moves were doubling in one event and not another one
blueb i see you 
Like so
I also haven't tried putting just one command on the same line as the break, so that could also be it
I'll find out if I get back to events before 1.7 haha
it's not procrastinating if you're waiting for the update, right? right??
Lol I am not really procrastinating...just letting my brain work on what it wants to. Maybe a little bit of procrastinating with Hiria due to fear of cultural appropriation/misrepresentation
i definitely support a relaxed schedule for a hobby, don't worry! and i think it's admirable that you're taking care to be respectful
Thank you
Bog's Monster Mash also ended up being a way bigger project than initially planned so my head has been full of nothing but monsters for the past wee while
just in time for spooky season!
Yesss! Bog especially was so excited that we got it done in time. Now we only have all the rest of the monsters to do haha
i'm still so excited to install it for when i... eventually... play...
although maybe it'll be the kick in the pants i need to start a new save!
Haha don't pressure yourself, just play when you are ready
I am finally collecting mods for my first time playing since 1.6.8
In a few more months I might be ready to actually start the save
Now the question is do I install Monster Mash for my own playthrough by just symlinking my dev copy or do I download the player copy from Nexus? 
Haha I am just worried about having two separate copies
That seems like a guaranteed way to accidentally edit the wrong one
do you use stardrop? it'll put it in a special folder if you download it using that
valid fear though
But at the same time, if I use the dev copy I am going to forget it's the dev copy and think something I'm developing is already in the released version
I do use Stardrop, but once I have finished downloading everything I move it out of the Stardrop folder lol
so not very helpful then lol
The dev version is never in my actual Mods folder, so the risk is just that I'll have both folders open for some reason and choose the wrong one to edit
Stardrop sees all my dev copies fine and I run all my dev builds normally.
Granted with being exclusively a C# dev, I kinda need all my mods to be directly at the root of the mods folder without additional hassle
My setup is definitely full of hassle
But for the most part so far it's saved me of the much greater hassle of falling victim to my stupid ADHD
this feels rather like hiring a butler just to do all the buttling yourself
demoted to mod middle-manager
premises that could make an amazing sitcom
I'm still going to use Stardrop for managing my play profiles, plus it's helpful for checking if I have endorsed mods and for updating mods
And one day I will hopefully have premium!
i switched to stardrop recently after using vortex for forever (i know, i know, cone of shame for one million years) and i love it
it was super helpful for testing compatibility
I get overwhelmed by the way everything is just in a big list
But if I choose to sort by folders, it doesn't let me choose which folders matter for that
(btw i'm already liking QQ in this event more. much easier to see paths instead of having a default path for a fork and then branches)
if i knew anything about actual programming and UI, i think a feature with dropdown lists in stardrop would be super helpful
oh i didn't know stardrop lacked dropdown lists. that's disappointing
dropdown lists are one thing, but i mainly don't use stardrop due to the lack of marquee banners and flashing text
i mean it has like profile switching and sortable lists so it's not completely disorganized but yeah lacking folders like aba said
how else am i supposed to get my daily dose of nexus sponsored ads? /j
truly a very narrow pool of ui elements to choose from. pensive emoji
mod organizer 2 my beloved 
it's so much prettier 
I'm personally allergic to mod loaders/managers
the only one I technically have is prism for Minecraft, but it's mostly because you need a launcher for it anyway and it's a good alternative
I like moving folders so much, no way I'll let third party software do it on my computer
same
events...
sometimes i wish that i could like. use i18n in events while also actually being able to read my event the way it's supposed to be
cuz im always going back and forth getting lost
bc i dont actually know where i am in the event if it's all in 18n
yeah thatās why i i18n afterwards all at once using the converter
oh i forgor i could do that lol.
I've toyed with adding comments to the events that contain the dialogue
More confusing for someone else reading it, but handy for me
as of now ive split up the npc portion of my mod and the actual maps part of my mod just to keep them separate... š¤ but would it be better if i just put them together so im not juggling mutliple mod ids?
just think about what experience you want your players to have
can the maps or the npcs be enjoyed on their own
if not then why separate them
uh, it's not about players or anything
i just have them broken up while i work on them separately at different speeds
do you plan to release them in the same download
It seems more annoying than helpful to me
so it sounds like you have to put it together eventually
or you plan to
if you do it now its easier
especially if you have unique ids to change
yeah imo it feels like organisation for organisation's sake
better spend time actually working on the mod than moving it around
If you really desired a way to remove parts of the mod from the game while others were present, you could use a config setting and include files
well at least i dont have too much done rn...
easier now than later, yeah
Hey, does anyone have the troubbleshooting links for me? š„ŗ I have an issue where one of my npcs doesn't show up. NPC_A works fine and well, all is good, but NPC_B doesn't show up and SMAPI says something with the Animations didn't work out, but I'm not sure where the issue could be
!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.
!json
JSON is a standard format for machine-readable text files that's used by Stardew Valley mods.
If you need help with a JSON file, you can upload it to smapi.io/json to see automatic validation and share the link here.
When making mods, it's recommended to edit your files in a text editor with JSON support, such as VS Code, Notepad++, or Sublime Text. These programs will check for syntax errors.
Thank you ā¤ļø I hope someone could help me find the issue if I paste the log š„ŗ
you should paste both log and the json the error is in
thing is it doesn't tell me which json it is in
Okay, so... it seems to have fixed itself... somehow. The character does appear and I can talk to him (I swear yesterday it was broken š ). I do still have a question about my mod though. The characters all live in the same house, and I'm still not sure how to handle the house in question then.
For now my files are:
Character A folder --> House folder
Character B folder --> House folder (exact same folder copy and pasted)
Would that allow the characters to live in the same house together or could it cause problems this way? (Keep asking this question, I know, because it keeps confusing me)
uhm, it will cause problems if you just have duplicates of everything
why not just set all the character's home location to a room in the house?
It is a custom house. Can my Character_B reach into the folder structure of Character_A and read the house files from there?
uhmmm..... sorry, im just really confused because i don't actually know what you're doing
can you please share the relevant jsons?
that way i can at least see what it is you're trying to do
I can do that, of course. Could you tell me which specific ones are important so I don't forget anything? But basically, I have 3 characters, A, B, C and I made a custom house for them and I just wanna know how I should set up my folder structure so they all can read and interact with the same house
NPCs aren't aware of files and folders; all assets are loaded into the game before they begin to interact in terms of locations, spawns, pathfinding, etc
honestly, you dont need any kind of complex folder structure. all of your information can be contained in one singular content.json, and one assets folder for everything, what matters is how your json is written
simply having a mod that adds a map and location data is enough for all other NPC mods to use that location for their schedules and homes
consider that you can add your NPC to any existing game location without duplicating all the map files in your own mod
im not sure where or what your jsons are, but whatever ones have your character data, and your location data?
Okay, let me get them real quick
content-Taq: https://smapi.io/json/none/be63065f0f844bd6b96c22d25beaa437
manifest-Taq: https://smapi.io/json/none/e233905a8fe14da99d73968e546cea53
dispos-Taq: https://smapi.io/json/none/3703abfd718c4403b87484905e16272c
Content-Ashara: https://smapi.io/json/none/3b2a8b3be927404490298ffaa3a2683d
manifest-Ashara: https://smapi.io/json/none/98d30c377ec0468b82105c44cd92de7d
dispos-Ashara: https://smapi.io/json/none/aa7482cdeac943f0b071656fa4b17ca7
Screenshot is of my folder structure so you understand how it is currently laid out (I know that content and manifest cannot be renamed it was just for this screenshot)
are both NPCs meant to live in the same location, or two completely separate locations?
from this i think they're meant to live together
as it stands now, you have two different locations, and both of them place a warp to each location on the same tile in the Forest (which will cause one to override the other)
if i were you i'd combine both NPC mods into a single mod, likely with a root 'Taq and Ashara' folder and a simple content.json that includes each of their individual content files, and also separate the location changes into a third subfolder
It's the exact same location
I understand all of that except the third subfolder?
consider:
Mods/
[CP] Taq and Ashara
content.json
manifest.json
assets/
[NPC] Taq
content.json
assets/
sprites/
portraits.png
sprites.png
data/
schedule.json
dialogue.json
festivals.json
gifttastes.json
marriagedialogue.json
[NPC] Ashara
content.json
assets/
sprites/
portraits.png
sprites.png
data/
schedule.json
dialogue.json
festivals.json
gifttastes.json
marriagedialogue.json
Locations
content.json
assets/
Ashara-tileset.png
Custom-basement.tmx
Custom-forest.tmx
Custom-house-exterior.tmx
Custom-house-1.png
Custom-house-1.tsx
Is it okay for me to have 2 content files per NPC? Or how does the content.json differ in the root folder from the content.json in the NPC folder?
note that none of the nested folders have a manifest file; only the root folder that contains all three parts
wait this is legal? u can do this? 
Okay, okay, but what do I put in the content 1 vs the content 2?
in this example, your root content.json would look like this:
https://smapi.io/json/content-patcher/0d88f2afc6214ced878f8adfc6f23ffd
and your subfolder content files would look as they do currently, but without a Format field (because only the root content.json file may have this field), and of course edited to match the actual assets in each
pseudo content.json
i've kept their filenames as content.json for simplicity's sake, but they could be anything since you're including them manually from the root content.json (which is the only file that Content Patcher requires you to have named as such, and is required to be in the root folder)
i also edited in a third subfolder content.json there for the location data, since you'd want it separated from the NPC assets
this is very cool! 
can do like NPC data.json
Ah, so I really just combine my 2 existing files, extract the maps into a separate folder and make a new original content.json and combine the existing manifests? Otherwise everything stays separate?
(I almost would have š)
yeah! it's all one mod⢠but the folders and files make it 3 seperate ones
Got it! I should sit down to make my third boi⢠then and then set up the new folder structure š„ŗ it is all coming together now
easier to manage, but only one manifest!
well the important part is removing the duplicate location changes from both of the NPC mods, since currently you're adding 2 unique locations and keeping dubiously-exact copies of all of the map files
it just so happens that you can also combine them all into a single mod as laid-out above
Absolutely, that I understood. And combine all of their manifests into one?
less locations, less jank
We love that!
make a manifest for all of them combined, like expansions do
We don't love big files, but needs must
or just "NPCs Taq and Ashara"
you want a single manifest.json file in the root mod folder, with the same fields as your current ones. the file won't be any larger since you're likely not adding or changing anything other than the Name, Description, and UniqueID values
So edited to look like this?
sure, but probably with a more meaningful name, since that's what's shown to players
yeah make it specific
True, true. I will hopefully iron out a lot of kinks before I upload it. Will do, thanks!
generally i'd say it should match the folder name (and mod page name) so players can correlate between the two if they need to update or remove the mod, but that's just a suggestion
I can do that! I am not too attached to the name
Thank you so much you lovely peeps ā¤ļø I might be back soon, but for now I know what to work on next
no worries
every problem's simpler than you think
Oh, one more thing š„ŗ the smapi does sometimes throw the error that the marriage dialogue couldn't be found or something along those lines, did I just name or connect something wrong?
https://smapi.io/log/095ec37c5d3b41719355fcb034c9e18e
I believe the issue might be this line, I don't have the guide open what else should this line contain?
Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on Microsoft Windows NT 10.0.19045.0, with 4 C# mods and 2 content packs.
the issue's that you've wrapped your placeholder text in {{}} token tags, so CP's confused as you don't have a token with the same name
Oh so just one set of {}
well given this is just a placeholder you can just leave it with no tags at all, and later on use the correct {{i18n:myi18nkeygoeshere}} format for the i18n file translations
the amount of brackets is correct but the value isn't
your Target also isn't correct though, and should instead be Characters/Dialogue/MarriageDialogue{{ModId}}_Taq to match the asset name pattern the game uses when checking for dialogue
i was today years old when i realized that's how the game uses marriage dialouge
it's best you look at the way your unpacked game asset files are structured when writing your Target values
why not just a subfolder
why use many folder when few folder do trick
this is terrible
no just one folder for marriagedialouge
instead of using MarriageDialogue 700 times
Oh thats bad
I'm still confused over what the exact issue is š„ŗ
https://smapi.io/json/none/65ff32c20d7d4d1f8f281755a0fd343a
Here is the marriage dialogue json
well the most prominent issue here is that you've put the portrait dialogue keys at the start of the dialogue line, when they should be at the end, between the spoken words and the # delimiter
e.g. "Outdoor_0": "Donāt wander too far, alright? Iāve lost enough already...$2",
"Rainy_Day_3": "I never thought I'd get married, but standing here... with you, while the rain crashes down around us...$1#$b#It's nice.$4",
Okay, okay that's one thing to fix, but in my normal dialogue I have it the same way and it works
they don't have šŖ sprites appearing where the $ signs are? 
It's that SMAPI doesn't even load in the marriage dialogue, or at least shows me a minor error
Nope, surprisingly they don't. It happened once, but I fixed it
i wouldn't expect that to work. all SDV dialogue puts the portrait keys after the spoken words
still, not the issue at hand
your first change in that file will be applied, because the Target matches the asset name the game will attempt to load for marriage dialogue, but since the value (dialogue entry) is read by CP as a broken token it won't be added, so the result is a blank asset and no dialogue
your second change will not be applied because the Target doesn't match any asset names the game or any mods will try and load
I think you just can't have two profile tags in the same sentence without a #$b# inbetween, because then it does show the coin
huh
dialouge is funky, yah
I cheated the system :3
I did have it happen with the coins, that was when I wanted a tag before and at the end of the dialogue, but for me it was that last tag that showed as coins
last tag? where
I deleted it but basically "$1 Hello, how are you? $4" would turn into " š Hello, how are you? 4 šŖ "
# are needed wiki doesn't mention but it straight up does nothing without
looking at the dialogue parser, Dialogue.checkEmotions() will in fact parse portrait dialogue keys from anywhere in the text
I got so scared for a second. Did I anger the gods? š„ŗ
Yeah, yeah. That's why I deleted it, I was just referring to blueberry saying that you can't have it first thing in a line, but it works for me
i don't think where it is matters. usually you put it in the end but there's no rules for it iirc
so if you have this dialogue:
"Guess what @? You just won $1,000 in the lottery!$h"
it'll give the result:
Guess what Farmer? You just won ,000 in the lottery!$h
and use the happy portrait
wiki does say "Portrait commands should be at the end of a dialogue line: "
wiki is full of shit apparently
since it removes all instances of that portrait key only from the line of dialogue, if you used $1 in both places for a happy portrait it'd remove both
wonder if u can fake a $
But if you use "$h Guess what, @? You just won $1,000" Then it'll show you " š Guess what, farmer? You just won šŖ 1,000."
precisely š the spritefont dollar always wins
I didn't want to say it, but some of the guides did have some big chunks missing or didn't explain stuff that was extremely confusing for a first time modder (me)
that's horrible
yeah i don't see a single mention of having to use hashtags for commands but u fucking do
if it didn't swap out for a dollar sprite though, you could fake-out the dialogue parser by writing "$hYou just won $1,000 in the lottery!" and having it only remove the $h, apply the happy portrait, and not remove the $1 later
dialouge manipulation
# is there to separate lines of dialogue, just like spaces in properties and slashes in old data entries
it's somewhat load-bearing
i'd like to line about this, i didn't know this 
there's some in examples but me need insturction
well all that fluff aside, it's best to format your dialogue as people expect to save on confusion and make debugging/troubleshooting easier
otherwise they might go slightly mad and write strange ways of freaking out the dialogue parser with dollar signs and happy faces
does any vanilla dialogue use šŖ
apparently for hovertext on mail with money
see Strings/UI:LetterViewer_MoneyIncluded
could u use that for dialouge?
searching for other usages, i got a little excited when i spotted willy's turkish quest dialogue includes $ {0}g, but that's just the closing $ for a ${^}$ inline gender switch block
well you can use $ for a šŖ sprite anywhere that uses the regular spritefont
which includes regular dialogue
do you think many players will want to place a frog tank (from my mod) outside?
currently i'm only scanning decoratablelocation for frogtanks
what page is this on?
I would limit it for performance and multiplayer reasons if you're scanning locations
ah wait, is the whole class decoratablelocation obsolete?
no idea, didn't look 
no. it's used for any location with walls and floors. Farmhouse inherits DecoratableLocation, but aside from that I think the only example in vanilla is sheds.
oh wait the island farmhouse is also DecoratableLocation
Furniture has always been able to be placed in any location, it's just that some furniture items can't be placed in locations marked as outdoors
thank you!
I made it a toggle with the note that enabling outside frog tanks might cause performance issues and make the toggle look for this:
{
var list = new List<Tank>();
bool isIndoor = loc is DecoratableLocation;
if (isIndoor || this.Config.EnableOutdoorFurnitureTanks)
{
var furn = loc.furniture;
if (furn != null)
{
foreach (var f in furn)
TryAddTankFromFurniture(loc, f, list);
}
}
return list;
}```
and it works great!
for something to show up on the animalpage though it needs to be an actual animal/pet instance, if I have read that right..
can i create a fake/invisible petbowl instance outside of the normal farm map boundaries or is that risky/stupid/causing errors?
if this doesn't work, I notice that it is possible to create a custom blend state
why not check loc.IsOutdoors instead of checkign against DecoratableLocation? not all indoors locations are decoratable, and technically you could have a location that is both decoratable and outdoors
I didn't think that far tbh 
would checking loc.IsOutdoors though then trigger looking for my frog tanks in any indoors map? like undecoratable npc houses?
This far into my mod and I still don't have a concrete name for it. I'm thinking "JojaFlex - Freelance Contracts", but I'm not fully sold on it
yes, but remember that players can place furniture in npc houses
(also if there's no furniture somewhere, your loop will be essentially free anyways)
So just a question- why exactly do mods go under review
like what are some of the reasons other than violating nexus' content tos
do you mean with free running endlessly
or not running?
Cause like.. this is probably the weirdest one for this to happen to and I don't even know what to do about it if anyone has any suggestions
free as in compute cost.
since you're using foreach, if it's empty, what will happen is it will allocate the enumerator, call it, the enumerator will say "nope nothing here" and then the loop will exit without calling any of the code inside
You can dm ms coriel to ask about it
Or picky
This is just the game's retro furni but desaturated?
The joja one isnt under review either so Im extra confused
ah yes, this is what I meant with not running, thanks!
If you only do work when player enters a location then it is really not that bad
most locations dont really have furniture anyways, and the heavily decorated ones are most likely locations you would want to check anyways
In mmap i have a whole elaborate thing for tracking furniture placement state but it just boil down to
- Player entered location that hasn't been cached yet? Do work
- The furniture net collection changed? Do work
I check for it onassetsinvalidated, ondaystarted, onwarped, onsaveloaded, onfurniturelistchanged and this funky check onupdateticked:
private void OnUpdateTicked(object? s, UpdateTickedEventArgs e)
{
this._ticks++;
if (this._ticks % 30 == 0)
{
this.DecayFiQueues();
}
if (!e.IsOneSecond) return;
const string SebEventIdStr = "9333220";
bool isSebEventNow = false;
try
{
isSebEventNow = Game1.CurrentEvent != null && (Game1.CurrentEvent.id == SebEventIdStr ||
Game1.CurrentEvent.id?.ToString() == SebEventIdStr);
}
catch
{ }
if (this._wasEventUp != Game1.eventUp)
{
this._wasEventUp = Game1.eventUp;
this.RebuildForCurrent("EventToggle");
}
if (this._wasSebEvent != isSebEventNow)
{
this._wasSebEvent = isSebEventNow;
this.RebuildForCurrent("SebEventToggle");
}
}
the RebuildForCurrent creates a tank instance (map and/or furniture based) and adds frog sprites and interaction logic
im having problems with finding basic words and terms somtimes when it comes to programming stuff
Okay thanks chu :) I did that
It says something about an original mod but I desaturated it myself š
Most likely, someone reported it thinking it was from some other mod or something
hello! i'm super new to modding so apologies if i don't explain things the best.
i have a content patcher sprite replacement mod for a different mod, nature in the valley.
how would i go about making my mod change a sprite which doesn't seem to be loaded via the original mod's content.json, but still shows up on the map? it's in a folder named MapStuff so i assume it's considered a tilesheet
the governer is on the overworld so i'd like to change his sprite- from what i can tell, in the original mod the sprite is loaded via an EditMap of Gov1.tmx and Gov2.tmx, a map which seems to load only a tile of the governer and that is all. would i have to edit the .tmx?
The original mod is C# right
the original mod is a content patcher mod!
well, i think it has a C portion too. but the map is loaded via content patcher, and the sprite i want to edit is in the content patcher folder
(side note why is this map patch huge)
In tiled you can see what tilesheet the governor came from
If it indeed never loaded to content (i.e. placed next to tmx) then yes you must editmap over their editmap
seems to just be this! so on the bright side it's a pretty simple tilesheet to edit. i see.. so, would i want to have my own MapStuff folder with my edited sprite in it, and then use editmap over the two maps but make it so that the tmx loads my tilesheet instead?
thank you very much for your help btw!! realized i had not thanked you yet, i appreciate it a ton
You need to repeat the editmap but where you put the tmx is unimportant
simple question but what do you add on the manifest key part when you don't have the nexus key yet? i remember it's something like "???"
If you make the page you can get the id
Otherwise up to you
managed to get it working with your help, thank you again!
Can the travelling merchant schedule only be changed with C#? I can't see it in any of the unpacked files
you can make her show up in other locations in other days with map patches (both RSV and VMV does this)
I think you can also prevent her from showing up fridays and sundays just by patching over the forest map too (I wouldnāt recommend it for obvious reasons) forgot about the waving sprite and a bunch of other hardcoded stuff, probably donāt do this lol
ok i see how they did it with RSV. Thanks Selph
yeah outside of the hardcoded stuff for flavor in Forest.cs the merchant is just a shop tile
I would like to create an effect, similar to the mechanics of the Witch Hut's Dark Shrine of Night Terrors, that allows players to repeatedly contribute items in exchange for changing an NPC's portrait and sprite,it can unlimited contribute to change NPC's portrait and sprite. Would this be possible to implement through a JSON file? If so, I would be extremely grateful for some guidance on how to approach creating it.
is there a way to make a crop glow ?
that would be a c sharp mod, you can have a regular shrine property thats vanilla but something like that needs extra coding
The easiest way is to call action via the ReceiveItem_<itemid> dialogue
Assuming i spelled tbat right
Set a mail flag or a stat on there and then control your npc's appearance through that
ooo you can do that?
Yeah you can run whatever action you want
thats fantastic
Ofc it does mean it takes up the gift count of that week
im hoping to see a friend of mine in mods general soon
i just made their clown mascot a little spritesheet for halloweens trick or treats, i think i deserve a little modding break now š«”
So i am wanting to make one of my crops glow with light is there a way to do that with like a existing framework
Might have been AcceptItem actually pls refer to wiki
i feel like i remember seeing someone use a mod before for something similar š¤ maybe i can key search it in discord to see if anything comes up
i cant find it i swear someone was doing something similar with something in the wizards tower š not crop but they were trying to apply a glow effect im p sure unless im hallucinating al;jf;f it was a loong time ago tho
if nothing I can probably add it to MTF (once Iām done testing this chimken harvest stuff)
(also side note, I believe I figured out why attack chimkens wasnāt working with MEEP before. Iāll need someone else to test it though)
@vernal crest at your convenience, could you provide for me a list of glyphs you would like support for? (fully-composed ones, so e.g. a-with-macron) i'd like to look into this.
ideally you can just type them into discord here
ÄÄÄÄÅÅĪīŪū
Reo MÄori only has them for vowels, I'm not sure if they exist for other letters in other languages
thanks!
i guess if anyone else is feeling the lack of particular diacritics in the default latin/cyrillic font_bold and/or SmallFont, let me know about them
maybe not SmallFont though, i'm not sure i can handle that one yet ._.
What's the font used for dialogue?
font_bold is the one in dialogue boxes, mail, bold headings in some menus, etc.
Sweet
much of the other interface text is in SmallFont, but those are texture atlases with big json sidecars and i don't have a good way to generate or modify those (yet?)
and they have locale variants, which makes sense, but font_bold does not and it's all crammed in one sheet
What is your font project for, may I ask? I asked about macrons mostly jokingly without knowing the actual context lol
i'm literally just tweaking the font for funsies. that's it
To make it more readable? Prettier? Able to display macrons now?
Give you an opportunity to make your "Noooooo" joke?
sort of all three! (i might split out the macrons, and other diacritics if necessary, into its own thing)
i detest the mostly-monospace nature of the vanilla dialogue font. i want it to feel sort of the same but be nicer (to my eyes) and hopefully easier to read
Is it just a personal thing or with a thought to sharing it?
I'm trying to figure out how much I should place my hopes of getting actual macron support in my planning for Hiria (as well as general curiosity about your project)
how about implementing the rest of tinyFont and whatever the other one was called? 
part of the reason i never did this earlier is that Font Settings exists and completely solves the problem
but i simply feel the need to do my own take
Å· please!
Quick get your screenshot before I must sleep
bonus mouse content by mistake, i picked lewis at random and forgot i implemented that CT lol
Wow so sans serif
I have no memory of vanilla so I cannot compare but it looks good 
More words per line, I think?
yes! most of the lowercase letters are narrower
(part 2 of above line, please laugh at my jokes /lh)
here's some cyrillic, if anyone wishes to alert me to crimes in that area
Does anyone have any insight on what SMAPI event I should hook into to setup values when a player loads in?
so like, there's GameLoop.SaveLoaded which seems correct but I'm unsure if thats appropriate since I don't know how it works with stuff like multiplayer
I believe it does get called for every player when they join
Is there a mailflag for Willy's boat being fixed that I can manually enable? Don't really feel like taking this to modded-support, but somehow my game refuses to fix the boat overnight and I can no longer interact with the boat after delivering all parts.
Ok thats good then. Does it also get run when creating a save for the first time? And does SaveLoaded apply only locally? like if a client connects does it run it on both the client and server?
willyBoatFixed
SaveLoaded runs for the player that joins, it's not run on host when a farmhand joins
Ok, thats good to know
Nice, thanks.
So @brittle pasture if I am reading the machine rules correctly and I use RandomItemID then would the code for the machine look like so?
"Target": "Data/Machines",
"Entries": {
"(BC)Huskyn1nja.SylvanlightMeadows_TotemOfTheWilds": {
"OutputRules": [
{
"Id": "TotemForage",
"Triggers": [
{"Trigger": "MachinePutDown" },
{"Trigger": "OutputCollected" } ],
"MinutesUntilReady": 180,
"Output": [
{"RandomItemId": [ "(O)16", "(O)18", "(O)20","(O)396", "(O)402","(O)404", "(O)408","(O)414", "(O)418" ]}
yeah I think that looks good
wait actually
you should put Triggers inside the object in OutputRules
ok updated. So like that
yeah that looks good feel free to test
hey! tryna make a dwarf portrait mod that gives them facial expressions, should I just go about it like a regular portrait mod or do I have to do something additional?
so if i decide to update a mod by making it a whole new mod, is there any best practices for that?
like some kind of trickery with migrating IDs to make previous-mod saves stuff transfer over?
what is the context
if youāre going to change the ID of in game items/NPCs/location then those will break, however the game/CP does support migration for certain types of ingame entities
if youāre extending their spritesheet with new expressions, then you could run into issues with retextures that donāt take them into account
I know I was discouraged to make the frogs count as pets, but I also really wanted them to display there (and hopefully count towards the pet thing for the ||2nd year grandpa evaluation event ||
so I wrote this:
https://pastebin.com/WucASczu
this seems safe regarding safe file explision, right?
Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time.
uhh, could you please elaborate?
current mod is a dog house + some dogs for livestock + some pets
i plan to add like...a lot more of them
and overhaul the house
i suppose i could just rename the mod too, dunno what the best path is tbh
the existing livestock will also have some things about them changed, outputs etc
texture paths will also change but that probably doesn't break anything as far as a save is concerned i assume
why not edit AnimalPage.AnimalEntries
Hi, how can i make specific type of artisan goods as an input item on machines? As an example for Grape Wine, i tried the "RequiredItemId": "(O)348/398", but it doesn't seem to work.
the dwarf has one portrait. most retextures assume thatās the one portrait
and would throw errors if you add more portraits
RequiredItemId only accepts one id; add another entry to Triggers for the other item
got it, would a retexture be something like depixelization mod then?
dunno what you mean by that, but Iām talking about a mod like this: https://www.nexusmods.com/stardewvalley/mods/14916?tab=images
retexture = change one image to another
Oh yeah, I'm making custom portraits with emotions, so it makes sense that they wouldn't be compatible then
thanks :)
It's one item id though, Grape Wine for example, its ID is "(O)348/398",
oh dang fish factory is a trending mod, nice
where are you seeing that grape wine's ID is (O)348/398 ?
ah, must be from Lookup Anything
the format is slightly misleading, the item ID is only (O)348, if you want the āgrape flavorā part you need to set the appropriate context tag in RequiredTags
(I read too quick and thought you wanted one of two items, whoops)
"RequiredTags": ["preserve_sheet_index_398"]
congrats! I love the custom pond graphics
Ouhh.. lemme look into that!
I still need to figure out how I can make it count towards the grandpa score and also show if the frog was pet this day
probably would have done the art a bit different but the vanilla sheet kind of locked me into where i ended up
the monitor-signs worked out ok tho i feel
definately one of those mods you make and it's like "welp i'm actually gonna use this one"
Utility.getGrandpaScore
yeah fish pond is terribly hardcoded and you canāt go out of bounds without Fun results
Can you direct me to the file where the computing, calculating takes place? I only found the inherit XML doc in farm.cs
Utility.cs
looking at chocobo valley to see how they did things
looks like it's just deluxe produce eggs for the next bird? guess that's a pretty simple approach
ah you don't even buy them from marnie, just as eggs from a custom store
kind of a neat way of doing it, i will prob stick to marnie for mine tho
yeah i'm still trying to decide how i wanna break these up a bit
mine level progress + barn upgrades most likely
but should i have them become different animals to buy or just variants on the same one, hmm
(i've probably posted similar things like three times this week i apologize lmao)
Ty, just checked it & worked like a charm! :D, just had to included in the code the "RequiredTags": ["preserve_sheet_index_88", "!jelly_item", "!id_o_DriedFruit" ], to exclude the jelly & dried goods.
hmm I had assumed that the game checks both RequireItemId AND RequiredTags
no, when i tried it just with just the command you gave me, it accepted grape jelly too
just that line? no RequireItemId?
tried it with coconut & accepted dried coconuts too, so the exclusions were required
RequiredTags you mean? I meant the whole command, soz >D
tis: "RequiredTags": ["preserve_sheet_index_398"],
like if I do this then it should work for grape wine:
{
"RequiredItemId": "(O)348",
"RequiredTags": ["preserve_sheet_index_398"]
}
oh, i didn't include the RequiredItemId one, just the RequiredTags
maybe that's why
y you were right, it worked perfect, and much simpler than adding a bunch of exclusions š
insanely common question
What's up?
where are the aquarium sprites in stardew valley located
i know its dumb but
i forgot where
so i can unpack them
LooseSprites
tyy
finally got my whole event to (sorta!) work!!!
hey guys is it possible for an NPC to give you an item during a heart event?
I'm coding my wife into stardew valley and was wondering if I could do that for the heart events
like maybe have her make you something
shore
selph was faster linking it lol

