#making-mods-general
1 messages ยท Page 193 of 1
Okay, I'll compare the maps. And does anyone know if there is some reason that Harvey hangs out there? I've admittedly never looked twice at that man
he listened to the doctor books about this touching grass thing
(this is not supported by the game at all, it's just my headcanon)
I like coffee, but I don't drink it too often since I'm prone to caffeine migraines.
hey Pathos, if you're still lurking, any reason why IMonitor doesnt have a LogLevel.Success? not havin Critical makes sense but i was just curious if there was a deeper reasonin behind it
its got a nice green colour i enjoy 
cursed question: I want more enum options in FriendshipStatus. I can cast ints to type FriendshipStatus (e.g. (FriendshipStatus)(49)) and the game will run fine and use those new values right up until save time when it goes "hey those aren't defined". can I do anything about this or should I just entirely reconsider my approach
i dont think u can do anything about this
pain
shove em in mod data before saving and set the enums back to normal
and reapply on save load
It most cases a success would be either:
- Something which happens in the background (e.g. successfully updated cache), in which case it's usually not important enough to be highlighted in a bold green color. So
DebugorInfowould be more appropriate for those. - Something which happens in response to a player console command, in which case they're watching the output and probably don't need it to be highlighted. So
Infowould be more appropriate in that case.
Also the level system was a response to the unusable kaleidoscope of console colors before SMAPI 1.0.0 standardized the log levels, so reducing the number of colors to a small set of semantic meanings was the main goal.
(Technically Critical does exist, but it's only available to SMAPI itself.)
aight mod data it is
all fair enough! and i do know Critical exists cuz im messing around with SMAPI functions i shouldnt be and thats how i found Success too 
my curiosity satisfied, thank you
i guess it's safer to use mod data anyway because it won't bork saves if someone uninstalls
I think it's possible to change the save serializer itself but that doesn't seem like a particularly advisable thing to do in this case
no i don't want to touch that part haha
I like this a lot. I'm looking to start a new save and am on the hunt for a new farm to start with. I wish this was ready!
idk what Alert is meant to be for (for mods) but I personally use it when I'm being lazy and debugging my code using a bunch of logs 
Alright, extremely minor question that I can work around if I don't get an easy answer to, so don't feel pressured to tell me what this is
Alert is for update notices and things requiring user action, typically
to be used sparingly in actual shipped mods
how would I write "else if <player's farm name> is "Fortune"" in C#
i also use it for debugging though so i notice it better
I guess in a way my stupid debug logs are things that require user action 
Context: in Polyamory, there's:
public static int GetBedWidth()
{
/*if (bedTweaksAPI != null)
{
return bedTweaksAPI.GetBedWidth();
}
else*/
{
return 3;
}
}
I don't want to mess with it in my personal copy much because API stuff is weird. But my bed is width 9
Festivals - some ocupy that area
so I want to just elseif the farm name is ONLY if it's Fortune Farm
else if (Game1.getFarm().Name.EqualsIgnoreCase("Fortune")) probably
else if (Game1.ICan'tRememberTheName)```--- dammit 
nope
not like, a player inputted name?
oh. then i thiiiiink DisplayName does that. lemme check real quick
you can do that with BETAS Harmony
I'm pretty sure displayname is right
tbh I never remember which languages use elif and which use else if (despite the fact that I'm pretty sure elif is literally just python)
ok yeah DisplayName will get what you named your farm with the " Farm" at the end
is it even saved anywhere without the " Farm" part?
can also use GetDisplayName() instead of the property directly
or theoretically .displayName.Value() iirc but I think that's dodgier
so
else if (Game1.getFarm().GetDisplayName("Fortune"))?
no, you aren't checking for equality and I think button was implying that getdisplayname isn't a method of the farm
I'd just do what button was saying tbh
but put "Fortune Farm" instead of "Fortune" so it works
its a method on GameLocation, it can take the place of DisplayName
theyre equivalent
but you still need to compare the string
-# why does this game have so many getters for some things...
So
if (Game1.getFarm().DisplayName.EqualsIgnoreCase("Fortune Farm"))
{
return 9;
}
just to verify here before I build
Better? (edited it)
now it's right
should work
Thank you both. Hopefully when I start learning C# next month I won't have to ask simple questions like that
But thank you
(one day s omeone will use BETAS Harmony
)
(Should work when playing in English.)
This is a personal edit so I'm down with that being the caveat!
does the farm type change in other languages?
The farm display name does (e.g. "Farm" is translated).
is the " Farm" part i18n ed in stringsfromcsfiles?
or something like that
i guess you could do .Contains("Fortune")
Yep. If you want to check the actual name entered by the player, you could do Game1.MasterPlayer.farmName.Value.EqualsIgnoreCase("Fortune").
do farmhands not get their farmName synced up?
i.e. do you need to use MasterPlayer instead of just Game1.player
oh I was just trying out the central station demo and noticed something interesting, if I travel to central station without having the bus unlocked, I can still travel to the bus stop from central station I just can't travel back to central station
I think it's copied to farmhands too?
(I can see why this could be the intended behaviour, just figured I'd ask)
i guess masterplayer cant hurt anyway just to be better safe than sorry
Hey Pathos, how are you planning on handling the Mod Shop for central Station? Like what if 5 mods add a shop
That's not intended; the bus ticket machine is supposed to always work for reaching Central Station (but the desert route still needs to be unlocked). I'll look into that for the next build, thanks for pointing it out!
There's one shop area in the Central Station. Each day, one shop is selected from the available ones for that day.
So the shop data will be tied to a token that gets randomized?
It'll probably be the classic seeded random approach which the game usually uses for that kind of thing.
Will you have options for the shops to only be able to appear on certain days?
Yep, you can specify a Condition field to use game state queries (or use When conditions on your EditData patch).
oh I keep meaning to ask this and forgetting, would warps in the MapPatch theoretically be functional? (I assume yes but I'm not sure if you're patching it the usual way)
I'm excited about the possibilities. Will the shop just be an outdoor stand like the desert festivle shops, or a shop interior
The main Central Station area is an indoor location. Kind of like the big train/bus exchange terminals, where you've got a ticket counter and little shops and waiting areas around. One of the areas is reserved for the pop-up shops, though the map design is still being worked on.
It would be cool to add the ginger island shop as a shop that can pop up once you unlock it on the island
Yep, that'd be pretty easy to do.
The final shop area design isn't finalized yet. If it supports arbitrary map patching, you could add a TouchAction Warp property though.
Thank you Pathos/Button/irocendar. You guys helped me fix a longstanding issue (Sophia went to the void sometime during the day for some reason, but the rest are now spaced out in bed properly rather than stacked all on top of each other)
oh Pathos, you mind if I ask for some clarification on some advanced token API stuff as long as your around? I'm rewriting one of my mods and I wanna do it better this time but I'm still a little confused on how advanced tokens that calculate their value dynamically should be cached? The docs say "as long as the calculation does not change" but does that mean as long as the input doesn't change, or the method of calculating?
i.e. for my mod that adds a token that returns a config value from a different mod. The config of the other mod can change whenever, but if the way the token grabs that value remains the same, is that fine? Or should it only actually grab it in the UpdateCintext method, cache it, and use that cache in GetValue? (Which I think is how I have it right now, though it's kinda wonky when, since it relies on input, it has a cache miss)
w i d e
Essentially the token must never return a different value if GetValues is called multiple times with the same input, unless there was an UpdateContext between them. So you would need a caching layer in your case.
You don't necessarily need to pre-cache the value in UpdateContext though. For example, it's fine to cache the result when GetValues is first called for an input, and reset the cache in UpdateContext.
oh, and here I thought I was doing something wrong in grabbing and caching those missed values in getvalues itself
so as long as I prioritize the cache always over getting fresh values, unless there is no cached value, it should be fine?
In GetValues that is
Yep.
(if I could tack one thing onto button's question, the advanced token API has some warnings about changing with no notice/being experimental, do you know if you'd consider it stable enough to be used in published mods right now?)
wonderful, thank you so much 
It's already used in quite a few mods, so it won't change without reason. The problem though is that it's a direct reflection of how tokens work internally in Content Patcher, with minimal abstraction over it. So if that internal Content Patcher token implementation ever changes, the advanced API will automatically change with it.
Breaking changes coming in Content Patcher 3.0, confirmed.
In general I wouldn't recommend using the advanced API unless you really need full control over the token. The basic API is enough for the vast majority of tokens, and it has a guaranteed abstract interface that doesn't depend on the Content Patcher internals never changing.
Does any of you more experienced Modders know where to find following file StardewValley.BellsAndWhistles.TrainCar.draw() So far its should be where I can find something for a mod I'm trying to make. But I can't find that file anywhere, however I read on reddit that something in said file, can help me.
Makes sense
thank you
I've actually done this for the bookseller for whenever the Central Station mod releases. ๐
Just recreated the shop entry, LOL
That's not a file but a c# method. Are you making a mod using c# or are you using content patcher?
Yep, that's in the game code (i.e. inside Stardew Valley.dll). See how to decompile the code on the wiki for more info, and feel free to ask if anything is unclear.
the basic API can't do token input, can it?
Thanks ๐
help why is it so difficult to make a seasonal outfits mod
Currently no, but I could probably change that (e.g. have an overload which receives input arguments).
that's pretty much the only reason I'm using the advanced one tbh
that would solve my need for the advanced api, at least
I assume that's probably part of the train cart sprite? If so you'd only need to edit the image asset using Content Patcher, not change the code.
I have looked for the siderod, I can't find it in any sprites
isn't that a custom train anyway or have I just never seen it somehow
Yes, I am bit of a train geek, so I felt the game needed a more, normal looking locomotive
oh, you drew that front train car?
is the siderod not part of the train sprite?
What the heck kind of instructions are you finding on reddit
Not as far as I can find
temporarily patch any sheets you suspect in all-red
Canโt imagine why youโd need to look into the code to edit an image
occasionally, very occasionally, something is generated off that one weird white pixel
for example: I'm pretty sure the energy bars are
(tinted green)
staminaRect my beloved
I assume the side rod is just a separate sprite overlaid on top of the train car. Not sure where it is though.
in this case i doubt it because it's not a simple rectangle
or sometimes it's the particle effects when you eat or drink and those use a specific white pixel in the moon
You're not just patching Cursors in the locomotive area for the train locomotive image?
Cursor?
i would def suspect cursors
btw you're looking in the unpacked game files, right? not some website (just to make sure because some people do use the websites)
there's also weird little bits on cursors
It's always cursors
every Draw() call in TrainCar.cs uses cursors, so consult the haiku
are the actual cursors on cursors? I genuinely don't know
99% of the time itโs Cursors. The other 1% are you sure itโs not in Cursors?
maps/springtrain
.q 6218
It's not in Cursors
There's no way it's in Cursors
... it was in Cursors
- @tiny zealot (Jump)
(it's probably cursors_1_6)
What on earth? I don't have that file, is it from a recent update?
Yep, the actual cursors are here:
it started as cursors.....
Cursors got scope creeped
Scope creep comes for us all 
I don't see this in the Maps folder
odds it's a couple pixels tiled?
this is why I try not to look at the draw code for too long... it scares me /lh
Yeah, I looked through the cursors files and didn't see it. We might need to check each rectangle used in the draw code to find it.
6480 dropped a filepath from an alternative universe and then dipped
I can't find the springtrain file either but I haven't unpacked the game on this laptop since 1.5 so that says nothing
never forget when pathos gave us the secret alpha reveal of Cursors_1_6.png
springtrain does not exist in my content files at all.
I'm going to redo my unpack and check
the blob on one end is below the extra wheel
whoops, forgot what timeline i was in
guys it was a joke
I missed that 6480 posted that
I thought it was the person doing the edit saying that's where they edited
Is that actually a vanilla train car? The whole car design looks unfamiliar to me.
so all we need to do is find the bar
You forget how silly the real filenames are! We have qinutroom, anything is possible!
it's not a vanilla car, the point is that it's an edited car with 1 bit that doesn't match
which we are seeking
i am worried the bar is made of 3 pixels tiled
actually zooming, 2 pixels
I'm confused as to why the vanilla cursors sheet would have to be modified to remove an element from a modded train car.
but it also has vertical bits which I would hope are not that
have you considered that the bar is just a small column from the circle you just highlighted
Just... don't draw that part on the modded train car?
I think it's being drawn automatically
The game draws the train car, then adds 'decal' decorations on top of it.
but there's other stuff being done in C#
it's a second image overlaid on the vanilla train in order to make the segment move separately
what's the thingie we're looking for?
it's the part circled in red
See that one had slipped, great obervation!
yes but...not sureeee
the problem is, it could be 2 pixels off the wheel or the the train or rrr
not cp targetable
But why though???
best
lmao
Time to redesign with the bars in mind
does the game have carrot cake yet
the game decided to add new crops with zero function
6480, if there is one thing you need to know about me
you can give them to horses
my favorite dessert in the world is carrot cake
carrot cake is pretty damn good
no other fact about me is important, I'm pretty boring and nondescript
i have cake for you
doubtttttt
in particular carrot cake from a whole foods in massachusetts
So the rest of the rod i coded? :I
is sve the only major mod that edits the layout of the town and the inside of pierre's shop?
Can't think of any others
idk if I've ever had carrot cake
WHAT
Yes it's drawing pixels with defined color in the code
who knows why
thats a crime
I'm sure there are others, especially for the town layout
a bunch of mods add buildings
overgrown valley adds grass and probably other stuff like layout changes
In which code/file?
Code-wise it's fairly straightforward, but it's a lot of art 
hmm so if I was to place a map patch where would my best bet be to do it without it being alterred by another mod? its a 1*2 tile patch
also
sending you emergency carrot cake rn
the code is making me log off
@calm nebula can you explain where it is
There's no need to shout at me ๐ I also don't appreciate being pinged
sorry
honestly, how sold are you on needing sve compat? because I'm pretty sure the only place sve doesn't change is the bus tunnel
Lune's Overgrown Valley also affects the town, as does Stardew Valley Reimagined 3 (although it's outdated), and Less Ugly Town Interiors affects Pierre's
Definitely not everyone.
I can do an sve patch easy
I refuse to do SVE compat and there are plenty of other mod authors that don't either
you could have a conditional patch that puts it in one of the added sve maps when sve is installed and somewhere normal if it isn't
but other mods if there is many may be a problem
just make other ppl do it for u ez
yea thats what I do for FoS
brb, gonna make a new Framework mod called TrainLinesCore CustomTrainLines
BetterTrainLines
nevermind it's ruined now /lh
ngl a framework that finds every instance of manual drawing and makes it editable via content patcher might be appreciated by some people lmao
that's what theme manager does for UI elements
Mmk I will just make it extremely clear I never intend to even consider making a patch other than for sve and I will hex anyone that mentions it to me XD
inb4 my mod falls way out of scope and you end up with Prismatic trains
how am I still hearing about frameworks for the first time
wHaT
brb looking up theme manager
wdym that wasn't in your original plan?
How familiar are you with TargetField
You'd need to use it to add a single new entry to a nested field in machine rules
So (BC)12 > OutputRules > Default_Wine > OutputItem > Default > PriceModifiers
Then you can add a new entry to that PriceModifiers list: a new quantity modifier object that's something like "divide by 2"
https://stardewvalleywiki.com/Modding:Common_data_field_types#Quantity_modifiers
can someone please explain what I'm doing wrong here, this is my first time making a mod and I have no idea why I'm getting this error
did you get AI to write that
Because you seem to be adding an object to a boolean value of I'm reading that right?
They probably want https://stardewvalleywiki.com/Modding:Modder_Guide/APIs/Content
how do i easily post my code for you to see?
!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.
actually idk if they want the content API bc i'm not sure what the goal is
I literally copied the wiki's example, I have no idea why that error's there
this is what i got from the one you linked me about honey
I also don't think that's the right method signature for an OnAssetReady handler? but I may be wrong
what.... what wiki page did you copy this from
I got pinged twice and don't know why?
can you link it for us please?
that looks right to me, give it a try in game
hopefully it wasn't important, lol,
https://stardewvalleywiki.com/Modding:Modder_Guide/Get_Started#Create_the_project for the general structure, and https://stardewvalleywiki.com/Modding:Modder_Guide/APIs/Events for the AssetReady function
not sure which messages were teh pings and can't find them now so
if you really care you could check the discord notifications inbox ig?
goes to sleep and knits
and what are you trying to do?
at the same time...?
There were two more about carrot cake, atra
Neither of those wiki pages have what you have so what did you literally copy it from
But they were not positive, so not worth tracking down to go back and read /lh
I just wanted to know where the main code file of the coded siderod pixels, can be found.
TrainCar.draw
i've tried, but it still shows the same sell price in the CJB menu
(ILSpy has a search function.)
So I need to extract the Stardew Valley.dll file somehow?
to add onto this, you need to decompile, not unpack, the game
!decompile
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
narrowly avoided a 3rd myself
And my axe
the reflex is strong
here and here, I just replaced the buttonPressed with AssetReady
ah that's the issue
my solution doesn't actually change the wine modifier (that'd need C#), what it does is change the price of wine made from the keg (which in vanilla is the only source of wine). that's why CJB isn't affected
try making some wine from kegs
Okay, thank you all for the help, I'll try it later, but right now I'm way too tired for coding ๐
you also changed the method signature and added an IsEquivalentTo...
ohhh, ok. god if that's the only issue i swear i'll be so mad at myself
Ok and what are you trying to do
I think you've done a lot more than replace the buttonPressed event. If you want to edit/load assets, you need https://stardewvalleywiki.com/Modding:Modder_Guide/APIs/Content
also just fyi
dicking around with the minigames graphic for junimo kart hasn't the slightest hope to make the minigame less random
how difficult would it be to do in C#?
Don't do it for this purpose, its unnecessary
Any way to get $q working in festivals?
Dialog just seems to end after the choice is selected, so I think it doesn't pull the answer lines. Tried putting under festival, and under the characters but it didn't work
$y I could only get to give a response that ends the conversation, I wanted more complex dialog
unless your mod is like titled "Change Wine Price in CJB Item Spawner"
very simple, if you know C#
Just a harmony postfix on CreateFlavoredWine
would it not then also work for things that aren't kegs, and also be more easily configured
there's reasons I can see for wanting a C# version
ah fair enough
Thank you! I will edit my mod soon.
I'm just trying to send a message to the log when junimo kart is started so I can start figuring out how to do everything else. the full mod is supposed to make the level layouts consistent by reading from a file and replacing the random generation, but I've literally just started and I'm kinda struggling from immediately getting an error that doesn't make sense
Forgot that this started with a discussion about conflicts from other wine rules
that asset does not coincide with the game starting and editing that asset will in no way let you change the level generation
and what exactly did you do codewise what would help reach that goal?
(I'm not being rude, just trying to walk you through it)
based off reading the wiki, I assumed using AssetReady would allow me to trigger the logging function to send a message when junimo kart is loaded, I'm guessing I assumed wrong?
Ah got it, I see why one would have that assumption
AssetReady deals with assets like object data or NPC data or machine rules, or loaded images
It unfortunately does not include Junimo Kart logic, wherever it is, and it doesnt include runtime stuff like when the minigame is loaded
I think one of the issues you're having is not understanding what an asset is
you did. Asset Ready is called when an asset (like a graphic, audio etc) is initially loaded into the game, often before it's used.
If you unpacked the files, everything in the Content(unpacked) folder is what could be called an asset
(Junimo Kart is a minigame, so you can check Game1.currentMinigame in an event like UpdateTicked; see change monitoring.)
God I hate Junimo Kart. I have never made it past the first level since I have played stardew for the first time....
But also, some of the changes you made to the code are unnecessary and will lead to errors, like adding IsEquivalentTo and removing e from the method you're calling, so we're trying to understand why they were made.
from going through the files, junimo kart is under content/minigames/minecart.xnb so I thought the command would work for it
that is the packed asset file containing some of the assets used by the game, not the game itself.
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!
so you can see exactly what you're trying to edit instead of guessing by name
as mentioned, what you want to do would not involve the asset pipeline in any way
follow pathos' code instead
ok, I feel really silly now, you can tell it's my first time trying to make a mod lol
The important thing is to know why you're doing or changing anything that you do.
(to elaborate further, if you were trying to log a message when the game finishes loading the graphics for the Kart minigame, which can happen at any point between the title screen and the minigame launching, your code would be correct)
(well the idea of the code would be)
(the code had several mistakes that would have needed fixing regardless of what the intention/plan was)
where do i find information on CreateFlavoredWine? I don't even know where to start looking in the game's code, nor how to write anything that changes it
this would be my first C# mod, so i'm going in blind
what do you know about it right now? like where did you find that name
Selph said it earlier. I'm trying to wrap my head around how the game's code works but unless there's something fundamental missing from my programming knowledge i just am too much of a beginner for this
(I could look it up for you but a) my pc is off right now and b) now's as good a time as any to learn how to find some of these things!)
yeah! i want to learn how to do this myself, not just have someone do it for me, but i'm too lost to be able to figure it out
we all started somewhere! how are you looking at the game code right now?
were you able to decompile it yet?
I have it decompiled and it's open in Visual Studio
profit
great! so your best method is the search bar in the project or in ilspy (like atra is showing)
I'm still waiting on that profit part tbh
wait that's ILspy
I thought that was vs for a minute
avi
do you know where the search bar is in visual studio to search the whole project
how did you decompile the game?

wouldn't that just be through one file though
personally I prefer working with the code in my IDE rather than in ILSpy but each person has their own preferences
IDE being in your case Visual Studio, and in may case I'm still deciding if I'm going to abandon my current one 
atra really broke you huh 
atra if you see this this is your fault
/lh
(Rider can't cope with shared projects and somebody has three of them)
so how do i make a mod that overrides this?
(try Ctrl shift F)
have you found what file it's in yet?
yeah, it's in StardewValley.ItemTypeDefinitions/ObjectDataDefinitions.cs
I uh forgot what we're trying to achieve
give me a sec (or catch me up if you'd like)
something about changing wine price
trying to reduce the wine multiplier from 3x to something lower. the exact value i'll figure out later but for now let's say 2x
I should open the game code myself
I don't know if this is the channel to post this in, but I'm editing a mod for personal use. I'm trying to add the custom music to the Ginger Island farm house and Ginger Island west, but for some reason the code is not working. The SMAPI log isn't posting any errors. Can I post the content.json code here so that someone can check it out?
you'd need to write a Harmony patch
Harmony is basically "call my code before/after/during the game's own code"; in this case you want to do something like "after the game runs that function, run my function that modifies the sell price of the final item further"
!harmony
Here be dragons. Venture forth with bravery, young warrior, for thou art alone in these dark lands. See the Harmony wiki page for more info.
ignore the graphics harmony's not that scary tbh
!json can you post it through this link please?
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.
the first one
(though uh did you have a basic C# mod set up yet)
selph i'm just looking at EMC and thinking to myself 'hmm i wonder what other chaos i can have with this'
Ok thanks. Here it is: https://smapi.io/json/content-patcher/ca1f7d6ac52a4e3ea6ca428b679ea3e8
i've got the one off the wiki
as always feel free to ask questions if you need help with sowing said chaos
hell yea
wait we're sowing chaos now? time to check what emc does
oh extra machine configs
not my kind of chaos rn 
i'm already looking to adding more machines to either GYM or a new mod with an equally cursed name
what folder are your music files in, and are they definitely named exactly what they're named in content.json?
oh and your smapi log would actually be pretty useful too
!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.
i'll be honest i'm usually good with code but looking at this without any hint of what it means is making my head swim lol
i mean ye could be good with some code but C# or CP is new to ye
yeah, modding can be like that sometimes. But stardew has a lot of resources now (in the wiki in the Modding namespace) and we can help too
Seriously the most useless bot command. Can we change this to one of the actual Harmony tutorials, like https://stardewmodding.wiki.gg/wiki/Tutorial:_Harmony_Patching?
Yup the folders are correct. I'm just editing a mod for personal use, so the original targets for the music is correct. Also, here's my SMAPI log: https://smapi.io/log/ada4be4b21704b85b0068540cb20a03d. Ignore the furniture error. It's not related to the Ginger Island stuff.
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home, with 104 C# mods and 506 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
does not help I have no idea what harmony even is
I think it's linking to a good page (though maybe they should both be on there), it's just everything except the link that's kind of pointless
Yeah, the link is fine, everything else is dumb.
harmony is good and Fine and i also hate the harmony command for making it sound scary and Bad
Bot commands can be edited and added in #governors-mansion by anyone with a high enough level, so if there's a majority in agreement to change it, I don't think there'd be any issues if you changed it yourself?
oh, so the music was already there? may I ask what you're trying to change?
(high enough level being Shepherd+)
So I edited the original mod so that the farmhouse layout replaces the Island farmhouse instead. I was able to do that with no issue, but the only issue is that the new custom music is not applying to the Island farmhouse for some reason. Instead, the Island farmhouse is playing random vanilla spring music, and the Island farm is playing vanilla island music.
Well I don't mind making the change but as you sort of imply here, changing it unilaterally seemed like it might be premature without any kind of group consensus.
the wiki page also makes it sound scary and bad
You're supposed to not change it without talking to the person who made it I believe
The question "can we" probably should have been worded as "can we all agree that..."
I think from what I see everyone seems to agree with you that it could use changing 
"don't change commands added by other users without discussing the change first" I was wrong it doesn't specify the person who made it
I'll write a new blurb tomorrow then unless someone else decides to beat me to it.
I'm going to just assume someone like me (who does not dabble in C#) will likely never have a need to use harmony?
(something something BETAS footguns)
not without betas since harmony is a c# thing, and with betas only if you feel like doing some very specific things
Can anyone tell me what 'frame' is Clint's sleep sprite? His large sprites in the middle of the sheet are throwing me off.
I wonder if the island music is overridden somehow 
43, which is probably the bottom-right one
I really need to reunpack my game... 
i should probably do it again too.. i think the last time I did was right when 1.6 came out and i dont even know if I moved anything around 
Definitely worth it, 1.6.9 added new assets and changed some others, from memory
I finally broke because my location data asset was still in the numbers separated by slashes format and the wiki doesn't even document that any more apparently 
is that old files from older versions
I know that the game used to have locale-specific location data before moving everything into tokenized strings
yeah, it's from 1.5
it wasn't locale-specific, it actually had no text whatsoever
"18 .9 20 .4 22 .7/396 .4 398 .4 402 .7/406 .6 408 .4/414 .33 418 .6 283 .5/-1/-1/-1/-1/584 .08 378 .15 102 .15 390 .25 330 1" this is the full Data/Locations entry for the bus stop for example
i dislike that
I think most people did
probably why it got changed
recipes next pls
i don't mind recipes weirdly enough
(for reference, I do already have an up to date unpack on my pc, I just didn't have one on my laptop)
where are recipes again
cooking recipes were localised apparently
the basic format stayed almost exactly the same except for a slash being added to the end of every recipe, but they removed all the localized versions
I'm honestly not sure - it definitely worked in the original mod, right?
when using tile data does the start time or open time need to be 0600 or can it just be 600
I'd do 0600 just to be safe tbh
Thanks 
Does Content Patcher have any events it fires for when its done applying loads and edits?
I'm registering my GMCM config option in GameLaunched, but CP hasn't made edits to my data asset yet, so the allowedValues are being captured without them.
It's API has a bool for whether conditions and stuff are ready but without that you need to wait 4 ticks
(the conditions API thing might be a separate thing anyway? but 4 ticks im very confident in that part at least)
are your allowedValues dependent on an asset
Yeah they're the dictionary keys of my data asset, so GMCM gets the default keys, but not the ones other mods can edit in to add their own entries
Does the API bool indicate that it's made all of its initial edits? Or should I just wait the 4 ticks (need to figure out how to do that cleanly)
instead of waiting on CP I'd probably do something like request the asset and populate allowedValues once on GameLaunched, and edit allowedValues on every time the asset is invalidated afterwards
well it wont do any edits until an asset is requested
I think I probably know the answer to this, but dyeable shoes aren't possible, right (with just CP)?
can you edit allowedValues in GMCM after the fact?
anyone know where map patching and patch modes are mentioned on the wiki? I cannot find them on CP docs or the stardew modding wiki and I know its somewhere
also to wait 4 ticks just put an event listener on UpdateTicked that checks if its a multiple of 4, then remove the handler after
on the EditMap CP author docs, Goat
ok I guess ctrl f hates me
I guess you can unregister and reregister the mod page afterwards? Not sure if that's any better than waiting 4 ticks
AFAIK I'd have to unregister and re-register the config option to update allowedValues, if I could just update it directly that'd be great.
alas allowedValues isnt a closure
Really what I'd like it to do is take a function instead of an string array so it could always get the current list, but that's not happening 
yeah prob just wait then
i think thatd probably do weird t hings if suddenly a value that was allowed before, suddenly isnt, but it IS whats written in the config.json
Alright, looks like waiting a bit to register it is, thanks all
(confirming you cant. boot color is from the data)
Hello, I am very, very new to modding. I am wondering, is it possible to make a mod that adjusts how/where shirts are rendered on the farmer?
not easily
that would still not be easy for someone who ISNT new to modding im rather sure
If you open the farmer's sprite sheet you'll see approx 999999 variants
(thanks for the confirmation)
Oof, that's what I thought. I couldn't find any mods that did so, so I assumed that it must be quite complicated. Thanks.
I adjusted a few for holding the horse leads and I found that to be tedious lol
Also in unrelated news, I'm so happy, using [LocalizedText Strings\NPCNames:Pierre] is working to replace my names in the dialogue
how do I go about making a has mod condition false so instead of checking for it, it allows the entries if itโs not present? I looked on the wiki but it only shows you how to check for a mod and I canโt find the documentation for it
you can also just do [CharacterName Pierre] 
wait, is that a thing? ๐ฎ
Thank you button ๐ญ
thank you!
Omg sorry Iโm clueless I thought thatโs where it was mentioned lmao
"HasMod |contains=modid": false
"HasMod | contains=FlashShifter.StardewValleyExpandedCP": false is that right?
id remove the space bwteen the | and contains
dont know if it matters but just in case
Ok so, I want to make a mod that changes all the characters in the game to 16x16 sprites, including the farmer's. Since it would be complicated to change how shirts look, I'm thinking maybe I should make just one of the shirts "invisible" and have the shirt be baked in with the farmer sprite. ๐ซ It's janky, but would that would be a viable option?
no thats like a hundred times worse in terms of difficulty i think
messing with farmer sprites at all is a mess
messing with them to that degree is like. i would not even know where to begin with that project
and then for every single character... it would be a lot. like, a lot a lot
it would also require copious amounts of C#
Sigh, my dreams are shattered... but oh well. I have some NPCs already made and can implement them but I just think the visual mismatch between them and the farmer would be too jarring for my liking. Thank you for sharing your knowledge!
Not to mention you'd break compat with every mod that affects the vanilla NPCs
as always it remains true that "with enough C# you can do anything" but i am sorry to have to be the bearer of realistic news
its not a beginner project by any means
I know ๐ญ It was just for my brother and myself as a fun idea
thank you for your honesty, maybe one day ๐ซก
What exactly is the thing you're trying to do? Because I'm getting the feeling you're asking about a potential way to work around something rather than the underlying problem
(also please don't ping me on reply)
Hi. Is there is a way to convert my Farmer Character (the XNB files) to an NPC sprite?
they wanna make the farmer 16x16 instead of 32x32
er, 16x32
Farmer sprites are not one-to-one with NPC sprites
hi, guys! the noob questins again. what's the easiest way to add lights to the map with CP?
and are also broken up into pieces
Are you talking to me, or to someone else?
yes, sorry
Ah okay. Are the two messages above that directed to me?
erverything after "er 16x32"
Ah ok.
(i have a bad habit of doing that and not realizing that its not clear i switched targets)
(my apologies!)
use replies ๐ญ
but its allg
So is there a way to make character sprites based off Farmer Sprites?
No
well, you can draw em yourself
but otherwise no theyre not really compatible like that
Really? Damn. From a development standpoint that doesnt make sense.
The farmer sprites work very different to the NPC sprites 
the game got released and is one of the best selling of all time, so it seems to have made enough sense
Farmers do look a lot different
Alright.
I think so. I haven't tested the original regarding the music, but I know that the original used map properties instead to create the music for the Farmhouse. I used that code at first for the Island Farmhouse, but it didn't work.
So this should work? (Ignore the errors)
https://smapi.io/json/content-patcher/3a7be27f37b046e9bb6ca2ab50cfae07#L22
So I just noticed something interesting... the delay I set for my animations is not applied when the tiles are patched in game? animation looks good its just a lot faster. Is there a reason for this, or a way to fix it?
while i havent been following too closely what you were doing, i do know that music set in the map itself is like, pseudo-deprecated now. it will still work, but only if the stuff in Data/Locations isnt overriding it instead. so it might be possible that you have another mod changing its Data/Locations entry to add music
You'll probably have to adjust the animation rate in Tiled
by that do you mean make it even longer?
this is how it looks in tiled but the delay I set for the last 5 frames is not present and in game its the same delay for every frame
Well I am using LNH's Ginger Island overhaul, which explains why the Island is playing random spring music instead. But I'm not sure about that mod replacing the Data/Locations music for the island.
No, you go into Tile Animation Editor in the Edit Tilesheet options and it'll let you adjust the frame duration
Unfortunately the game can't do that. All the frames need to be of the same duration.
Ahh I see good to know!
How does the game define where foragables can spawn?
So you'd need to do 250ms three times for each of the last five.
Perfect thank you both!
Huh, it can't?
I thought I'd done that in one of my other mods
Maybe I'm misremembering or it never actually worked, haha
Yar, I tinker with my mouse animations a lot and, believe me, it needs to be the same.
Aaah the wiki says this Make sure every frame has the same time; the game can't handle variable frame times.
dont you just love when something is tucked away in all the TINY text that is SO important...
I KNOW RIGHT
Like my glasses are thicker than ME... do you REALLY expect me to soak up all these details when there is a bajillion lines of text right next to each other LMAO
screens already hurt my eyes enough with bluelight glasses and now I have to read the stardew valley wiki
its like the final boss for people who are going blind and have an astigmatism

Would anyone happen to recall if Harvey shows up in any cutscenes other than his heart events? 
I'm afraid I don't know enough about map edits to help with that 
But looking into map patches is probably a good place to start
do you want to do it with CP or use the tile properties
I'm sorry I forgot Harvey was an NPC ngl lol
but I can help with this most likely
are you adding light to a map you made or one that exists in the game already or is from a mod that is not your own?
can i dm you?
Yea!
brb
Apart from the cheating-with-six-bachelors event? He's in one of Shane's heart event.
Also Maru's heart event where she broke a vial.
Understandable 
Thanks! I completely forgot about those
He's also in Sam's heart event (the band's show) but he doesn't talk there I think?
Oh, yea, I'm only looking for dialogue but I'll check in case 
He's also in Leah's art show event
Also depending on what you're planning and how much compat you want to handle, he's likely in a bunch of mod-added events
Probably not gonna worry too much about that, I'm inclined to expect he mostly only gets used when they need somebody to do medical stuff 
Looks like he doesn't speak in Leah's show either, at any rate 
he also goes to aerobics
or is that his heart event
ive never gotten that event on purpose so i dont remember what trigger it is
It is his own x)
That's his heart event, yeah (and without Airyn's mod he never even actually attends despite having convo topics about how he's improving
)
you add the Light map property for the glow. if it requires a tilesheet change, you useDayTiles and NightTiles. Both can be set via editing the .tmx in tiled and opening the Maps -> Map Properties menu, but can also be added through content patcher via "Action": "EditMap" to MapProperties.
example code:
"Action": "EditMap",
"Target": "Maps/{{ModId}}_BlossomCrest",
"MapProperties": {
"MapProperties": {
"Light": "29 36 4 76 77 4 10 86 4 59 120 4",
"NightTiles": "Buildings 29 36 507 Buildings 76 77 507 Buildings 10 86 507 Buildings 59 120 507"
}
}```
won't this just wait at most 4 ticks rather than exactly 4? you'd want an actual counter to do exactly 4
oh you want 4 from gamelaunched specifically, not some arbitrary 4
correct
another useless blueberry message then
Im about to patch in the house for my npc would I do that in the Content json or would I make another json for the house?
Up to you. You can add it through an Include for organisation if you like
oki
would anyone know why a map patch is breaking the day/night tiles of the forest map? the code itself for the mod is normal, there are no console/log errors and the lights work only when the patch mod is not installed?
No map properties or tile data is being messed with besides a custom map property that works fine
Does your patch possibly replace an area that has Day/Night tiles defined? If there was an object there on a layer and that layer was cleared in your patch, it could still be looking for the tile on that layer
You can change the Map properties for the day night tiles on the base map to remove those tile references if so
Also, make sure you have your lights on the paths layer in your patch
Does spouse festival dialogue still not work for the flower dance?
It sort of will, but do not make that part conditional. The pickup data part needs to always be there to keep things reliable. You would want the condition there to be on the map patch part.
And just to be clear, PEEM.Test.Pickup.BackwoodsArtifact can be whatever you like. It could be Flamingo.Overzealous.SeventyNine. Make it nice and descriptive! Though I would recommend YourModID.ItemPickups.BackwoodsArtifact in this case.
Other than that, yup, looks good!
Amazing, ty!
So like this?
"Changes": [
{
"Action": "EditMap",
"Target": "Maps/Backwoods",
"Conditions": "PLAYER_HAS_SECRET_NOTE Host SecretNote23",
"MapTiles": [
{
"Position": {
"X": 29,
"Y": 26
},
"Layer": "Buildings",
"SetProperties": {
"Action": "PEEM_InteractionGetItem PEEM.Test.Pickup.BackwoodsArtifact"
}
}
]
},
{
"Action": "EditData",
"Target": "PEEM/ItemPickups",
"Entries": {
"PEEM.Test.Pickup.BackwoodsArtifact": {
"ID": "PEEM.Test.Pickup.BackwoodsArtifact",
"ItemID": "(O)101",
"Quantity": 1,
"DaysToRefresh": 3,
"LocationName": "Backwoods",
"Tile": {
"X": "29",
"Y": "26"
}
}
}
}
]
}```
hello! idk if this question makes sense
im making a custom npc and i want to make it so that the npc straight up doesn't accept certain gifts (but it would still add/subtract heart points)
would this be possible, and if so how?
there is a reject_itemid dialogue that does that, it doesn't in itself change the heart point, but since any dialogue can have actions that change friendship you can make your own
ohh
how does that affect the gift tastes? does it just overwrite the dialogue for that but still do heart points?
no, it reject the gift, there's no change to heart point as i said
ahh
Minor correction: it'a RejectItem_itemIdHere, not reject_itemIdHere. The latter still works for rejection, but it's only meant for item quests, while the former is more recommended
thanks, i didn't remember the change/addition ๐
Also
you didnt make me decode it
You're bio

Well my mod is all ready for release when you are ready to send out the beta.
wait i cant do it like that?
has multiple patches with the 'Exclusive' priority which load the 'Mods/VanLamar.TestMod/Objects' asset at the same time (TestMod > Load Mods/VanLamar.TestMod/Objects #1, TestMod > Load Mods/VanLamar.TestMod/Objects #2, TestMod > Load Mods/VanLamar.TestMod/Objects #3, TestMod > Load Mods/VanLamar.TestMod/Objects #4, TestMod > Load Mods/VanLamar.TestMod/Objects #5, TestMod > Load Mods/VanLamar.TestMod/Objects #6, TestMod > Load Mods/VanLamar.TestMod/Objects #7, TestMod > Load Mods/VanLamar.TestMod/Objects #8, TestMod > Load Mods/VanLamar.TestMod/Objects #9, TestMod > Load Mods/VanLamar.TestMod/Objects #10, TestMod > Load Mods/VanLamar.TestMod/Objects #11). None will be applied. You should report this to the content pack author.
your Target is not a folder
Mods/VanLamar.TestMod/Objects may look like a path to a folder, but its a singular asset
so you are trying to load many things into one asset
the TargetWithoutPath example here is probably how you want to format that
https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide/action-load.md#examples
Will the NPCs GiftTastes autofill automatically from the item categories I specified for my custom items?
Like if it's Wine Leah will automatically love it?
Okay good, I didn't wanna go through doing all the NPCs manually.
Leah loves all wines.
i know it autofills for category, like everyone likes artisan goods
everyone but krobus and willy like cooked dishes etc
is this an actual category, or context tag
im guessing in that case leah likes the context tag for wine?
Well, I want everyone to hate these old coins that WTDR has, so I guess just an entry for each NPC.
you can make it a universal hate
Actually, can I just add the item to global dislikes/hate?
yes
"Leah": "Oh! This is exactly what I wanted! Thank you!/196 200 348 606 651 426 430 pretty sure wine is 348? ๐
well its one of them but it's by id not context tag
can do the same for hate
Wine id is "348" yeah
so i don't think making a wine will make leah love it automatically, no
vanilla gift tastes are item specific
I mean, she responds with love regardless the last time I checked.
will it have the same id tho?
oh right yeah
My wine isn't made any differently.
yeah she'll love it then
so it'll work
i forgot that flavored items are just, regular ass items really
like this?
{
"Action": "EditData",
"Target": "Data/NPCGiftTastes",
"TextOperation": [
{
"Operation": "Append",
"Target": [
"Entries",
"Universal_Hate"
],
"Value": "{{ModId}}_Giant_Old_Coin {{ModId}}_Old_Coin",
"Delimiter": " "
}
]
},
Yep! Please don't ping me in replies
can you add more than one in the Value section... ๐ have you been able to do that the whole time.. im
(Is delimiter even required, really?)
Well it's not something I can keep toggled, but sure I'll keep it in mind.
oh yeah i think that's what delimeter is for haha
{
"Operation": "Append", "Target": [ "Fields", "Leah", 3 ],
"Value": "{{ModId}}_Giant_Old_Coin {{ModId}}_Old_Coin", "Delimiter": " "
},
yeah
it depends what the existing delimiter is. it doesnt affect whats in the Value
it just means its gonna put a space between whats already there and what you're adding
if the list is normally separated by commas you use a ", " delimiter instead
good to know!
i believe the default delimiter is "/" so in this case it is necessary
yeah,l which is why its necessary here
bc it means it will split upp those gift tastes up separated by spaces
oh hey look at that there is a single context tag in there
i see. thank you for explaining Button! 
important to clarify still though that you dont have to use that delimiter in your value
you just most likely want to
you can put a delimiter of " " and then in your value write "128_530,333" for all CP cares
and would that work with gift tastes though?
but you probably dont want e.g. "194 216 262 304 815 book_item 128_530,333" in your stuff
it wouyldnt no
the point is that it is never going to treat what you write in the Value field as multiple values
it is a single value that you are adding
you just happened to put spaces in it
and that happens to lead to it being parsed correctly by the game when it loads gift tastes
so wait
"Operation": "Append",
"Target": [
"Entries",
"Universal_Love"
],
"Value": "{{ModId}}_Niji, 128, 530",
"Delimiter": " "
},```
would work?
ah, I see
its not getting rid of those commas it is literally copy pasting what you write inside the Value field
entirely
#making-mods-general message Just making sure you have seen the message. (sorry to ping you so much ๐ญ )
and the delimiter is saying "put a space before you paste it in bc thats what everything else is separated by"
ohhh, I see
i thought it did something with value, but it's just, adding a space? funky
adding a space and splitting the original list up to things separated by spaces, yeah
if gift tastes were instead like "128, 345, 100, book_item" then the delimiter would be ","
because theres a space between all the entries
and then it would add a comma before it pasted in yours
(or if you're prepending it'll do it after)
sorry, theres a comma between all the entries*
i think i understand. (sorry, brain is being slow today ae)
Since it's finally the end of the semester, I just went back and set VSCode up to work on FF, tried to build for the first time in about 2 months, and had a single warning. Obviously it can't tell me how good 3.0 actually works, but it's kinda surprising.
no that's scary, I haven't touched the code since early December (I think) and did not build since October. Knowing how much stuff I changed, it's very scary
anyway, I still have to finish this "migrator" python script before being able to debug that suspicious mess
If its a very specific gift and you wanted them to lose hearts you could have them hand it back in the response dialogue. But youd also use the gifting slot for the day.
lol wait if item with category -8 it can be placeable but i cant break it?
i cant take it back now lol
response dialogue?
does that mean player would have to talk to them again after giving the item or do they just give it back immediately as soon as you give them the itme?
Set a unique gift response so if you give them a red mushroom say, it would look like"no thanks, gross. [420]"
So theyd give the response and hand it bsck in the same dialog box.
wait that sounds cool
ohhhh i think i get it now
does that work with group items? or only specific items?
Only works if the gift response is set to the specific item, yeh otherwise its just like theyre just gifting you something.
Reject is better if its a category
also it doesnt only apply to hated gifts in my case
the npc gives back loved items as well
so how do i customize the given heart points?
And you can probably have it remove points using that new featire i havent used
What the code i gave qas basically just you gifting them the item and them gifting the same thing back to you so heart points correlate to how much they like or not the gift.
Anyhow i really need to sleep. Good luck!
ohhh okay okay
then i think i might implement that then haha
ty for answering my questions! :>
i cant fix it lol
like an item with "Type": "Furniture",
"Category": -8,
and it cant be taken from the ground lol
are you making actual furniture, or just some placeable item?
cant be taken from the ground
Oh no, not that again
do you have anything in the log? it might be that the game simply can't get the bounding box to check if you click on it since the category is sort of invalid
Nah like nothing there
What can i do to fix that if i don't even have the error message lol
Hi! I don't know why some mods show up who is their creator in UI infosuite in "added by mod ..." and some others no, do you know what info do you need to include in the mod for showing that?
Its manifest.json
I think you can find it there
"Author": "your name",
If you're talking about the text in the console
Have your uniqueID at the start of your item keys iirc
!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.
@ivory plume Hello! Sorry if this is already known but if it isn't I wanted to flag that the wedding event appears to be slightly borked. After saying "Well, let's get right to it!", Lewis is supposed to have another line pronouncing the couple wife and wife etc but instead he just says the player's name (the start of said line) and then jumps straight to the next line ("You may kiss.") instead of saying the spouse name. It's like the %spouse token is killing the line. Avi and I did some code scrutinising and playing around but we weren't able to find out why this is happening, since the spouse token works fine in other events and dialogue.
(This was discovered with a custom NPC but has been tested with vanilla NPCs with an extremely minimal mod setup.)
Sorry to bother but could anyone help me? The 'They Stay With You' mod's English translation's uploader deleted their account and I wanted to post my version of the translation but I don't know how to make it compatible with GMCM ๐ญ I think they changed the manifest or something
oh wait that's a vanilla bug?
I don't know! I am hesitant to try testing it without SMAPI because of how tedious it would be to try to reach a wedding with no cheats or debug commands lol
I've been having this exact issue too!
I thought it was just me
You can enable cheats in vanilla
Make a new save
I am not following. What compatibility with GMCM are you wanting? Translating the config options into English? If the OG mod has i18n keys for the config options then you should just be able to use those. I don't understand why the manifest matters here when you're just making an i18n file.
Sorry I should have clarified, I meant the title. I think I figured it out already though
I'm going to hazard a guess there's meant to be a step after this. PC Gamer is telling me to edit my save to allow chat cheats?
Yes!!!!
TIL, thanks Atra! I will explore
Even though playing vanilla is so painful because everything is so slooow
@vernal crest are you actually married to the NPC before running debug wedding?
the vanilla wedding script doesn't function correctly if not
I am not running debug wedding! I am giving them a pendant
ive encountered the wedding text skipping during regular playthroughs as well
And not married beforehand, no
Rokugin said they thought the borked wedding was the intended wedding because they've seen it so much
interesting. my wedding copies a great deal of the default one, including the spouse line, and it works correctly 
for your minimal mod setup, which ones are you using?
Content Patcher, Lookup Anything, Noclip, Console Commands
When testing my NPC's wedding lines, I also ran into this error, but I though that it was something between my mod, SVE, and other mods I have in my testing profile.
hm none of those look like it should bork anything
Are you editing the vanilla wedding event or just the dialogue lines?
mine is its own entry in Data/Weddings. i just copied most of the script from the default one
on reinspection, i edited mine a bit since i know what gender the spouse is ๐
Well, if Pathos doesn't immediately see the problem with his all-seeing eyes, maybe your working wedding event might be a useful comparator
if it helps, this is the vanilla command:
speak Lewis \"[GenderedText [SpouseGenderedText [EscapedText [LocalizedText Strings\\StringsFromCSFiles:Utility.cs.5371]] [EscapedText [LocalizedText Strings\\StringsFromCSFiles:Utility.cs.5373]]] [SpouseGenderedText [EscapedText [LocalizedText Strings\\StringsFromCSFiles:Utility.cs.5377]] [EscapedText [LocalizedText Strings\\StringsFromCSFiles:Utility.cs.5375]]]]\"
and here's mine (i do not need SpouseGenderedText, hence the edit):
speak Lewis \"[GenderedText [EscapedText [LocalizedText Strings\\StringsFromCSFiles:Utility.cs.5373]] [EscapedText [LocalizedText Strings\\StringsFromCSFiles:Utility.cs.5375]]]\"
ok back to trying to figure out why calling Game1.sounds.PlayLocal is freezing my game
it happened once before, seemingly without reason, and stopped happening just as mysteriously. now it's back and i'm going crazy
Wheee debug commands in chat are great I never should have resisted them
But yes, dialogue skipping in vanilla too! There's meant to be a lot more in that box that says "vannila..."
i got repro doing a debug wedding with harvey, too. i had no idea! i haven't played much 1.6 (quelle surprise) and the only NPC i have married is my own, which, as mentioned, works
I literally just got married in my play save and did not even notice the wedding was bugged
i too am guilty of not really reading many vanilla events anymore 
i noticed for a while but thought it was a bug in another mod
ok i think i figured it out! do not attempt to create more than one cue (via Data/AudioChanges, at least, but maybe also in general) backed by the same file on disk. everything will seem okay, but attempting to play the subsequent ones freezes the game
this is what i get for not having a ton of useful oggs lying around for testing, and simply trying to reuse the ones i had
revision: i thought maybe it was determined by differing values of StreamedVorbis but that wasn't it. unsure of exact cause, not fully consistent
revision part 2: actually i think there is a minimum length for an audio cue with StreamedVorbis and i suspect that's what it was the whole time
i bet my little beep noises are below the minimum buffer size or something and nvorbis isn't handling that, or something along those lines
Hi! Can you report that in the official bug report forums (and ideally attach a save set right before the wedding day, so it's easy to test the issue)?
I'm spawning objects the same way the game does in the coop where they can be picked up and for some reason coffee can never be picked up. i have to hit it with a pickaxe to turn it into debris item to get it. is coffee just special for some reason?
var coffee = ItemRegistry.Create<StardewObject>(ModEntry.coffeeId);
coffee.CanBeSetDown = false;
foreach (StardewValley.Object location_object in __instance.objects.Values)
{
if (location_object.QualifiedItemId == "(BC)165" && location_object.heldObject.Value is Chest chest && chest.addItem(coffee) == null)
{
location_object.showNextIndex.Value = true;
spawn_object = false;
break;
}
}
if (spawn_object)
{
coffee.Stack = 1;
Utility.spawnObjectAround(tile, coffee, __instance);
}
every other item i've tried works fine (bat wings, various fruit, triple shot, truffle, bug meat)
I'm not sure about edible objects specifically, but some object types aren't compatible with being picked up
comparing some of its properties after spawning to the ones that do work might help figure something out, though
Coffee for some reason is type Crafting
the fact that triple shot works but not coffee seemed strange, but if it's crafting that might explain it
TSE is Cooking
wat
same reaction tbh
god i love stardew
Mod that adds coffee crafting recipe for 5 bean
I wonder if anything would happen if you just sneak in a change to make it Basic in your coffee animal mod
yeah i'll try changing the type before spawning it and see what happens
Btw why are u doing this in C# rather than normal animal produce?
I was assuming they are trying to make animals that spawn 2 items at the same time
It's a monster hutch
Coffee slimes 
you should framework it
bold
making frameworks is overrated. you have to write documentation!
Not my one weakness 
i wouldn't even know where to begin making a framework
(truthfully, i enjoy documenting. but it is exhausting)
Well basically instead of hardcoding all the setup
i guess just copying other frameworks, same way i learn how to mod in c#
You read from a custom asset and do the setup using data from there
and i generally have to do it at the end, because implementation details change along the way, so then it becomes a hurdle i have to clear between my working mod and publication
Plus some kind of custom field on the building to say "this is a monster hutch"
surely someone will tell me that i should complete the design first, and then implement it. to that i say "peh"
frameworks are fun, not just because someone else might make use of it, but because it's easier to make changes down the line
right now the monster hutch is just a map edit to double the slime hutch interior
like if you want your dust sprites to make spicy eel instead of coffee
but we're admittedly not doing the work here so feel free to do what you feel best
vinilla was working on some kind of reptile building which i believe was to have snakes. not sure if that ever made it to release
I think chu means the spicy snek-yeah
oh, i see. worm time
(fun fact, fresh farm produce is a framework. I don't expect anyone outside of me to use it though. just linking in case you need an example and also to shill my mod at the same time
https://github.com/zombifier/My_Stardew_Mods/tree/master/FreshFarmProduce#modify-the-competition )
Although i made livestock bazaar as a framework i feel like 99% of people use it for the menu lol
Certainly spent most of dev time on that part
and I suppose I should also the tutorial: https://stardewmodding.wiki.gg/wiki/Tutorial:_Making_Framework_Mods#Custom_assets
confession time i have never encountered a royal serpent in SDV
I see a lot of them, but never the real way 
I would love a mod that makes the button usable as soon as u unlock the room
It's a big pain to have to roll the special order first
meanwhile my galaxy blade runs red with the color of spicy eel snek blood. I have a stack of 40 spicy eels that I neither eat nor sell, only as a grisly reminder to their kind that those who stand against me, rarely stand for long
(that was like 8 months ago before I started modding)
(Tbh I see y'all pushing people to framework it. I think usually I would want to do the first concept without frameworking then rip it all out and framework later.)
But that is just me
yeah, push out a MVP first, ignore the nerds in here and their scope creeping
for now
the coffee issue was one of the last obstacles before I was planning to publish, so i think i'll go ahead with that for now
but i like a good challenge so i'll be checking out the links that were shared and start trying to figure out this framework business
Is @tiny zealot around? I'm trying to make a custom note with Secret Notes Framework. The note shows up fine, but the %revealtaste doesn't seem to work like it does in the vanilla notes. It just displays the code as text in the note
hi, i'm here!
Hi! waves
this should have been fixed in SNF 1.1.1. are you up to date?
I downloaded a new copy today, so I think so. Let me double check the manifest
Yes, 1.1.1
ok. in that case, can you send me your patches and i'll have a look?
you can upload to https://smapi.io/json, or if you'd rather not share out loud you can DM me
Sure, give me a second. I was going to paste it here but smapi is better
The one that showed up so far (broken) is SecretNoteShane01
None of the others have shown up in game yet, so I can't confirm broken or fixed
are there any mods that increase museum spots and let you add stuff to the museum that normally wouldn't be included? I want to add the extra vanilla fossils from ginger island and some stuff from various mods (like relics from Ridgeside) to the displays. Also the Lewis's underwear
* not sure if this was the right place to ask, please shoo me to the appropriate channel if not
thanks! i'll check it out and let you know
Thank you ๐
You might try the "modded-farmers" thread?
it sounds like pixie wants to use a framework for their own project, so this is probably the right place
i think button and maybe some others have been working on or workshopping a museum framework mod. i don't know much in the way of details
Is it SVE that adds the room to the south of the Museum with like 4 more tables
i believe that's VMV
looking through that would be a good place to start
and yes i want to highjack a mod to display all the other stuff because it sparks joy
i don't know how to sort through .dll 
Have you decompiled the game code yet?
also not sure if it's even possible to make it so that Vanilla Stuff That Isn't Meant To Go In The Museum can go into the museum
everthing is possibleish
.dll isn't a readable file, but it can be decompiled to find the original C# code. For mods, often that's not necessary though, because many of them are open source
no i have only just started looking at mods to make a few tweaks for the farm im playing on with some friends
i think there's one mod that just adds like two giant tables to the right of the museum
Decompiling the game code is an important part of making C# mods so you can see what you're working with, and it's simpler than it sounds! I really recommend it. Decompilation also works on mods but remember to never use any of that code for anything other than personal purposes if they aren't open-source.
but that leaves the How Do I Add Non-Museum Stuff
Find the "Donate to Museum" routine in the code. There is probably a list of object IDs that you can change
I haven't decompiled the source for Stardew, but I'm a programmer in my other life and searching for text like "Donate to Museum" is how I would start xD
thanks for reporting this! it looks like the %revealtaste etc. are not parsed when you first use the note and it appears for the first time, but it works correctly when viewed from the collections menu later.
i'll fix this in the next release 
Oh good! I'm glad I was able to help debug
Thank you for the framework. I'm excited to use it more as the mod matures
It's going to be an optional include, but I think it will add a lot of richness ๐
(also, i am hooting at "Sebastian (asshole)"
great stuff)
xD
yes with the power of Context Tags but only on fresh new items
i initially wrote french new items
!vmv has example
Visit Mount Vapius (https://www.nexusmods.com/stardewvalley/mods/9600) is an expansion mod that adds a new region in the mountains. Accessible by train, you'll enter the hamlet of Glimsap, with its tight-knit group of villagers, that holds a market twice a week. You'll get to explore new places, fight monsters, get new crops and forage, trade local coins for exclusive goods, and complete tasks to unlock special items, including machines, buildings, and animals.
in addition of being able to donate gems and minerals VMV allows to donate a "forage" item
Wonder what blocks you from donating the bones to gunther, but instead to the island guy
since they are atifacts
maybe custom C#
By the "only on fresh new items" bit do you mean no vanilla items can be changed to Add To The Museum ?
i mean that you can change the tag a specific item has, BUT it will need a fresh version of the item to properly refresh the tag
(as far as i remember at least)
Like introduce the item anew?
so existing saves would need to gather new items
so if someone has an old fossil it may not get the tag, but a new fossil will
at least you'll need to check
new saves would work out of the box
some stuff IS refreshed and some stuff isn't
oh like versions of the item you get after the code update
context tags may, but i remember someone getting difficulty to work with stuff because some data weren't refreshed
yep
gotcha gotcha
and i don't remember if tags were one of them
i was thinking you meant coding in the new items
I kno categori don't refresh
note that if CA used code to prevent the GI fossil to be donatable, the tag that allow to donate may not be enough for those
but for stuff like ridgeside items, the tag should be enough
Hi Lumina
is the source for VMV public?
I think you can force a refresh by stacking old items into new items
Would it be simpler to make a machine that creates a new mostly identical version of the item except it is ?
not at the moment but it can be accessed on request and i may consider making it public at some point (i think atra would prefer that)
but in this case, VMV museum stuff is pure CP
I'm glad you're considering making it public!
I personally prefer to use mods that are open/accessible source too
- what can be donated is managed by category or tag
- where it can be donated depends of the tile so just patching new tiles is enough
- rewards are done by the museum reward json
i think the main reason it wasn't is that github is frightening for me
(If you ever need help setting a github repo up, I'm more than happy to work through it with you!)
Github can be daunting and helpful all at the same time
Does anyone know if there is an adoption framework or something? I don't think I can use CP to create a child
(there is one but private. If i remember i'll ask atra if i can make it public and see if i struggle with that)
@rigid musk hey its me again.. i remake the interior of the house but now it doesnt load again. i cant use the tilesheets as a png i tried but it doesnt work so i used as tsx. the map opening in tiled but doesnt load in the game. i looked at the codes but theres no climbing https://smapi.io/log/34d8d60d2a64439e94df23b0123d54f6
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
Open your tmx in a text editor and look at your image source path for the furniture png
it doesnt have
Howdy, everyone. o/
The game says it does, so check it anyway? The one in your game's mod folder, not wherever you are editing.
@hallow prism Could you explain how recipes for machines work in-game? Is it possible to do something like Amethyst + Ornate Necklace = Ornate Amethyst Necklace and Amethyst + Elvish Jewelry = some other kind of jewelry? or would all amethyst derived products be the same by necessity?
it is possible with the mod adding machine options for detailled recipes
but i'm not really around to explain right now
A question: is it possible to chain multiple "FromArea" and "ToArea" co-ordinates into a single entry? So, instead of having three separate entries for an overlay I could condense it into one?
I'll look up the mod you mentioned and try to figure it out on my own before pestering you or anyone else to explain it further for now. Thank you for the input/guidance so far! c:
I'm assuming it's Extra Machine Configs you mean
(i prefer no ping on reply when i'm relatively around)
and yes
the name escaped me
Not directly, but for a map you can sometimes use "PatchMode": "Overlay" to only replace specific parts of the map without needing separate patches.
Apologies, I'll keep that in mind. All the other servers I'm in have a blanket "please ping or ADHD goblins will immediately distract me and I will forget our conversation entirely" policy so it's a bit of a habit but I'll work on it
What does this mean? What do I need to fix in my JSON
[Content Patcher] Can't apply data patch "(CP) KMF Pets Cats > Add KMF Pet > entry #6" to Data/Pets: failed converting Array value to the expected type 'StardewValley.GameData.Pets.PetBreed': Cannot deserialize the current JSON array (e.g. [1,2,3]) into type 'StardewValley.GameData.Pets.PetBreed' because the type requires a JSON object (e.g. {"name":"value"}) to deserialize correctly.
To fix this error either change the JSON to a JSON object (e.g. {"name":"value"}) or change the deserialized type to an array or a type that implements a collection interface (e.g. ICollection, IList) like List<T> that can be deserialized from a JSON array. JsonArrayAttribute can also be added to the type to force it to deserialize from a JSON array.
Path ''..
So ```"FromArea": { "X": 128, "Y": 224, "Width": 64, "Height": 32 },
"ToArea": { "X": 128, "Y": 224, "Width": 64, "Height": 32 },
"FromArea": { "X": 176, "Y": 256, "Width": 16, "Height": 32 },
"ToArea": { "X": 176, "Y": 256, "Width": 16, "Height": 32 },
"When": { "Fences": "true" },``` wouldn't work?
Where the game expects an object ({ ... }) with the pet breed fields, you provided an array ([ ... ]) instead. If you need help finding the issue, can you upload your content.json and post the link here?
Nope. JSON doesn't allow duplicate field names, so the later fields will just overwrite the earlier ones and Content Patcher will only see the last one for each name.
What are you trying to do with moveEntries? I don't think that's correct where it is.
Your MoveEntries is inside the Entries field, so it's trying to add MoveEntries as a pet breed; you can move it down under the next } to fix that.
yeah i get it, and some people do like that, some prefer no ping, and some are ok with pings when they aren't active in discussion
my issue is that if i see the red bright "look urgent" ping notif i will look, while i would likely have looked just a bit after if i am already active, so it's kinda the other face of the same coin ๐
(I suggest adding ping preferences to your bio if applicable, since it'd be hard to remember everyone's ping preferences with thousands of people on the server.)
personally I go by nicknames usually since most people who don't want to be pinged have it in their name here I think
(i may add it if i find a way to summarize it nicely, but in my experience i also don't have to explain that often)
:meow:
Okay!
remind me in 20 hours to look at the publication of VMV repro uber pls
hopefully you don't mind if I end up a few hours off on that one, been a long day and I may doze off. (#6505293) (20h | <t:1738419055>)
for pings, names are great for the yes/no, but i must be special and have a complicated system ๐
Maybe - @ me if offline
is there a simple explainer about what open source and open source licenses are in one of the wikis?
if not it might be worth writing one (not an explanation of the individual licenses though because I am not a lawyer or expert haha)
(i did make an attempt in bio)
I have gotten in the habit of checking bios in this server. There are lots in here compared to other servers I am in that don't want pings
Yep, Modding:Open source.
perfect, I'm glad it also takes a hard stance on open source being important 
.>
Sorry, another question. When adding multiple conditions to"When":, how do I make the field be read as anandcondition instead ofor?
Basically, my understanding is that"When": { "Fences": "true", "FencesOption": "stone" }the comma means that if either condition is fulfilled the action will be performed. Is that right?
Each field under When is AND, while values within a single field are OR. For example:
// fences is true, AND fence options is (stone OR wood)
"When": {
"Fences": true,
"FencesOption": "stone, wood"
}
I might have a look at drafting a very short paragraph about what open source generally means and how it differs from just making the source code public, i.e. that it's free to use, modify and redistribute, since I think the wiki page currently doesn't actually mention that
(obviously with a note that licenses differ)
So is GNU better than MIT since it requires all derivitives to be open source?
in the stardew modding sense
It depends entirely on what you mean by "better". Projects with MIT licenses tend to get used more
that is a very controversial question haha

)