#making-mods-general
1 messages · Page 13 of 1
I'm not sure if that's doable in CP (I know next to nothing about CP) but it's one line of C#. Potentially, a bit trickier if it has to work with an actual NPC and be integrated with dialogue, vs. just an object or tile trigger.
Actually setting the Builder name in the Building data is possible in CP.
Yes, it is.
I'm just not sure if the ShowConstructOptions call can be done from a CP trigger.
Ah, the wiki decidedly says that part needs C# to build the menu
I think at least 99% of this can be done in CP and if there needs to be C# it's just a couple of lines.
i think you should add a tile action
@rancid temple: follow up on the custom renovation decoration issue and the cooking recipe guide (6h ago)
to call this
Right, add a tile action and then hook performAction in the C#.
then ppl making maps just add the tile data (with the right builder name argument) and they r all set
Makes sense to me
Yeah, I suppose if someone wants to go create another "framework mod" to let any CP mod do this then that'll work too.
Otherwise, I think one of us could pretty easily add this to an existing CP mod.
STF is deprecated and in maintenance mode
Isn't STF in performative-maintenance only status?
Yeah, I have it in my list because of some dependency and I get warnings about it.
im hesitant to use a mod that is deprecated
Don't worry about that.
also correct me if I'm wrong but I think you also have to dehardcode Robin's messages after the build menu? Like if the building isn't an instant magical construction Robin will pop her mug out after building
Mainly what STF used to do is covered by CP now. All that's missing is the "action" code in C# which again is... a few lines.
regardless of who was passed into the builder constructor
I believe she wanted it to work like the wizard, which is instant magical construction.
Hi is there a place where I can ask for help about a mod?
^ if it's a mod you're making, here; otherwise, #1272025932932055121.
by the way, i have another question: so i still have modding alfa from the time i was working on my mod for 1.6 update before it came out. how do i-uh-exit it now 😆
yeah then it would work, I was just pondering possibities for an actual builder framework
it's here!
right click > Properties > Betas
Text is gray, are you sure it's installed, should auto update (Edit: auto-update is opt-in)
Sure, that's cool. As I said, if someone wants to make a whole framework for this, that's another way to solve it, but for what's being asked here there's no need to overengineer.
oh rightttt. thank you. i forgot we had to do that whole thing.
well this npc mod is nowhere near finished. im just unsure of how to get to the player to the custom area...
i'll consider all my options in the meanwhile
oh it's not about installing a mod Or about issues with it (even though I do have issues with a mod called animated gemstones for some reason) but like I am stuck somewhere in it and it's a really popular mod so I thought if someone could guide me what to do ;-;
If you have the map itself in a working state, and you have the building working, I think putting it all together is easy, just come back and ask (if someone hasn't already done the er, framework).
yeah but mainly because pathos has really too much mods to maintain. I'm not sure a small mod "just" for animal shop may be used, but it may be different if it's part of your animal feature mod
hm i may have had auto updates off. i just uninstalled hoping it would remove itself but that didn't work
(but also it was in case the code in it was in a state good enough to worth using)
anyway yes, i'd love the feature cool
i wanted VMV to have its own place to sell animals 😄
the map is sorta working? rn it's just a blank space for me to test my ideas on
you should try nexus posts then. if it is a popular mod, most likely it is maintained and author checks it often~
i havent done the house pixel art or interior yet
yeah that sounds cool, and I admit I did think about making it, though I am a bit swamped rn in both real life and modding related things rn
so if any other C# modders lurking in here want to make a "builders and animal sellers" framework mod feel free to go ahead
Well it would help to at least have something to test, even if it's not entirely complete.
well if said mod gets released i shall be on the lookout for it
oh sorry to hear, i didn't want to make your load higher than it already is!
hey Lumina~ you probably don't remember me but you helped me lots with shane mod back in spring
i am back in the game now. hope you're doing fine~
Oh alright thank you then I was talking about the sve mod btw which I just searched was the most popular one so it must be easy to find sorry I'm new to modding 😭
(For the record, and speaking only for myself, I am not that interested in making a "builders and animal sellers framework", but I'm happy to help add a quick "FooBook" action glue for a mod that needs a custom buildable shop.)
welcome back! mostly fine, with some irl stress depending of the moment
sve has it's own server btw! try there!! and author definitely checks posts on nexus for that one
i fully understand you. giving you some respectful ghost hugs, only if you are ok ofc 😌
yes, but pls, don't sent me serpent hugs, those are scary! /j
Aight :) btw um I'm asking u just in case u know it's fine if u dont tho do u know how to unlock junimo woods in sve? (I did joja btw and movie theatre not unlocked and year 2)
Can you replace / edit an image asset after it has already been requested & loaded into memory? Say if you want to change it on save load, for example?
C#? you can invalidate an asset to trigger another load
Oh, I'm not patching the constructor; I'm patching a function that returns a StardewValley.Object that it just allocated via new
i think simply by exploring cindercap forest? it is somewher on the bottom left, and then you need to navigate a bit of a bush maze to get there. and then later you can connect a teleportation pillar to it. i could be wrong because it's been a while but i think it is how it works
Yeah, I'm trying to just use C# / SMAPI to keep things simple.
Alr will try I tried that but I can't find the teleportarion rune I have been not able to unlock it since 2 weeks and I almost quitted sve cuz of it ;-; guess I will ask in the server
(not to be that person, but if you're not making a mod, the appropriate channel for this conversation would be #modded-stardew)
Alright sorry
Should probably try ask there too
Q: If I want to enable/disable a patch via config option, is it better to just have the patch method early-exit when disabled or should I actually Unpatch
That reminds me of the Instant Animals mod. For whatever reason, that mod WILL NOT WORK for me
assuming patch means harmony patch here, then you should just early exit
adds to ideas.txt
unpatching means applying everyone else's patch again
prob not huge deal if u patch some specific func somewhere but best to not do that too much
Hmm. Then I have to worry about whether other modders thought about that when they wrote their patches : D
Eh, I don't expect it to happen much
It should be mostly transparent to other modders
That’s what already happens if any mod patches the same method you did
@hallow prism i just checked pins and saw that beta is in the works currently. ahh i feel like i am so behind everything. did things change a lot for 1.6.9? also, more practical question: did somebody finally write a documentation/guide for appearances thing for 1.6? that is, to be able to change an autfit for the sprite in the event
back in february it was so unclear i couldn't figure it out
in event or during festival, i got both
i yoinked the template from lyoko
https://github.com/Aviroen/LanceExpanded/blob/master/[CP] LanceExpanded/data/Outfits.json
(i prefer no pings as questions are best asked so everyone can answer them)
(while i was pretty active in the 1.6 alpha i have no special knowledge on the 1.6.9 beta)
apologies
why did my response ping shocka, sorry
There's an appearances tutorial on the modding wiki!
school internet is janky
ahhhhhh bless. gonna look it up. do you have a link handy by chance? if not it's ok i'll google
!moddingwiki
You can find modding guides in two places:
- intro to modding and technical docs: https://stardewvalleywiki.com/Modding:Index;
- various modding tutorials: https://stardewmodding.wiki.gg.
You want the second link here!
thank you very much
oh my god finally
thank you to whomever wrote that
back in the day i tried to make it work by pure experemintation. it didn't work 
Airyn 🥺🥺🥺 i feel so bad he really really helped me. And he wanted to include my shane into his seasonal mod too before i got sick 😔
(this happen, everyone has different ping preferences)

Am I correct to assume that tile actions in CP can specify the entire argument list? (Seeing as how I never use CP, I can only look at the performAction code here...)
If by that do you mean are they just a string that can be virtually any length?
Yeah, for Jen's thing, if the action is e.g. construct wizard, will that get translated into ["construct", "wizard"] for the args?
Oh, you did it already?
internal sealed class ModEntry : Mod
{
public override void Entry(IModHelper helper)
{
helper.Events.GameLoop.GameLaunched += OnGameLaunched;
}
private void OnGameLaunched(object? sender, GameLaunchedEventArgs e)
{
GameLocation.RegisterTileAction(
ModManifest.UniqueID,
(location, args, farmer, tile) =>
{
if (args.Length == 2)
location.ShowConstructOptions(args[1]);
else if (args.Length == 3)
location.ShowConstructOptions(args[1], int.Parse(args[2]));
else
return false;
return true;
}
);
}
}
Well, that saves me the trouble.
its nice cus u dont need to patch anything 
Oh, you put the whole thing in C#. I was doing it so you could put a tile action in CP.
yea the corresponding map edit is like this
the code is registering a new tile action for CP
{
"Action": "EditMap",
"Target": "Maps/BusStop",
"MapTiles": [
{
"Position": {
"X": 26,
"Y": 21
},
"Layer": "Buildings",
"SetProperties": {
"Action": "mushymato.CustomBuilderTileAction Wizard"
}
}
]
}
or equiv in Tiled
@merry rampart do u want a 1.6.8 build i only did 1.6.9
OwO custom builders?
yeah we talked about this earlier
(1.6 SPOILER warning!) Posting here due to the spoiler: my new mod to replace the sprites of your ||trinket companions||! https://www.nexusmods.com/stardewvalley/mods/27305
I am doing something similar for my crane game overhaul but mine needs to be able to accept different values so it's quite a bit messier lol
that said i wonder if this will actually work with a real custom builder 
since i didnt have data to test that part
I'm good but thanks for offering <3
I don't see why it wouldn't, I looked all over for reference to the Wizard shop and there were hardly any in the game code, just the trigger for it.
It's all determined by the Buildings data.
I think it should, Robin dialogue issues notwithstanding
But Jen can do that.
Yeah pathos did a LOT of work to unhardcode buildings
i did notice that when i put wrong string as builder it gave a divide by 0 error 
lol, well that's important for a framework I guess but not if it's just some bespoke code for a mod.
That sounds like a bug
ooh interesting!
this npc probably won't be done before 1.6.9 officially launches
What is specifically 1.6.9 about that? I have the same method in 1.6.8.
The version of SMAPI/SDV they had while building likely
Right, but I'm sure if she copies that code it'll work in 1.6.8 too.
i can switch to my 1.6.8 install if you are testing your npc on 1.6.8
nothing to do with the func signatures
1.7.0 will be able to divide by zero and enjoy it.
i did go build it for 1.6.8 in the end
it should work in both
ty ❤️
I have a token that registered base on the save data to use for editmap. since it can only be read on the main player, is there a way to send that token to farmhand?
api.RegisterToken(ModManifest, "IslandProgressLevel", ...
Could someone help me?
For some reason that used to work correctly but now it doesn't.
I'm trying to get the npc to change clothes for the festival. I used to do it correctly but for some reason now I can't get it to work, do I have to make any changes?
Appareance system?
ok so you're likely not 😄 (it's a new thing in 1.6)
!patchsummary pls, it'll help people to have more info
Can you do these steps to provide more info?
- Load your save and view the content that should be patched.
- Type
patch summarydirectly into the SMAPI window and press enter. - Upload your SMAPI log to https://smapi.io/log (see instructions on that page).
- Post the log link here.
@brittle ledge: mark that as depreciated (8h ago)
you can read that data on the farmhand's side with Game1.MasterPlayer
Alright. My simple little first mod is published. Thanks to everyone who answered my questions and helped me figure it out.
would anyone know why my custom spouse room i've made has the window lighting when there isn't one there? i've checked all the layer properties in tiled and there doesn't seem to be anything that affects lighting so i'm really confused and don't even know where to start to fix the issue
@wanton pebble Would this be a clean solution to your problem? (mainly the last two)
... that would be helpful, albeit a little awkward since it'd be adding a dependency for an entire date
Yeah, I don't like dependencies either.
Window lights are a map property
In this case it would be the farm house
Having a difficult time. What's the best way to stop an event from triggering when entering a map? I currently have the event set up to trigger with an Action map property which is the only way I wish the event to be triggered by the game!
ahhh okay
Did you want a showcase post?
Sure!
In order to remove it, you'll likely want to use a EditMap TextOperation
https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide/action-editmap.md#edit-map-properties
Any particular message you want attached to it?
i'll try that, thank you!!
Not really. This was basically just a learning to do a simple mod project for me.
Friends, before I finalize this code, can someone remind me whether or not this will add the new entries or overwrite the entire group of entries? I'm hoping it does the former and just adds the new ones.
"Action":"EditData",
"Target": "Data/AdditionalWallpaperFlooring",
"Entries": {
"Fireredlily.MoreWalls": {
"Id": "Fireredlily.MoreWalls",
"Texture": "Maps/wallpapers_3",
"IsFlooring": false,
"Count": 7},
"Fireredlily.MoreFloors": {
"Id": "Fireredlily.MoreFloors",
"Texture": "Maps/wallpapers_3",
"IsFlooring": true,
"Count": 9}
}```
(I have code elsewhere to load them in with those target/texture names)
https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide/text-operations.md#removedelimited
The particular Operation you're looking for should be this
I think I may have to add the map property with some Game State Queries using when conditions?
This should just add new ones, assuming you aren't adding them somewhere else already
game state queries cannot be used in When conditions (without esca's mod)
It'll only overwrite if your key (ex. Fireredlily.MoreWalls) is the same as one already in the dictionary
Thank you! The use case is snagging the assorted vanilla wall and floor textures from other maps (sewers, movie theatre, etc.) and adding them in to be used in the farmhouse/decoratable locations, so that's good to know!
Alright, showcase post is up! (First time doing that, glad I didn't screw it up.)
ok then idk how to use gamestate queries yet.
game state queries go in "Condition" fields
(that's not the only place but they're most commonly named that/used in em)
game state queries are vanilla behavior
game state queries are inside the game file data for the game to read, content patcher When fields are for CP to read to determine what to put into the game files
could not have put it any more clearly. bravo
Okay, so step 2 of my Wallpaper/Flooring endeavor... How do I go about adding them as objects that can show up in the catalog? I looked at Data/Objects on the wiki and couldn't find what I'd need to list the Type and Category number as.
anyone know if ilspycmd works on linux 
when i tried i can decompile to IL, but not to a project
it makes the folders and then give up
ILSpy works (i use it. i think mine might be old though?). one sec, there's a weird bug when you're writing out a decompile
i am try to use the dotnet tool
this thingy https://www.nuget.org/packages/ilspycmd/
ah, i see. carry on then (i can't answer your question)
who knows, maybe it's related since it's the same engine: #making-mods-general message
oh yea that is the behavior i observe on avalonia ilspy yes, which does work
the behavior for ilspycmd is that, i can decompile to 1 big il file
but i can't decompile to csproj 
Are you getting any errors?
well, nevermind on my issue I guess-- the objects seem to have added fine, I just can't rename them anything but Wallpaper or add descriptions unless I figure out how to add them formally in
I honestly got so used to custom objects that I forgot that Stardew doesn't actually name or describe any of the wallpapers or flooring at all, it's all generic text.
sometimes i get free(): invalid size
Oh
want to make an item that can instantly grow a flower when used (like a fertilizer, but.. yk) but i'm not sure what item type to piggyback off of & patch for
idk if that's too powerful either. it would be hard to get but
i don't think it's that powerful, unless you have those ridiculous modded flowers
do you want it to grow actually immediately or grow the next day?
seems to me the best case with vanilla flowers is 2 or maybe 3 extra fairy rose honey harvests per year, and that's if you aren't using GI for honey
It might be something at a lower level then ilspycmd.
It could be filesystem issues
Like maybe you're out of storage space.
You could try using sudo maybe.
oh sudo worked 
i have like 400 gb free space though
glad you stopped me before i attempted to write my own cli tool using the ilspy backend
unfortunately the output all belong to root now, but ill live
That's why it wasn't working
Something must be wrong with the output path you specified.
no i definitely had write perms to it
otherwise it'd fail at making the folders
rather than at making files 
partition space?
must be some funny win32 vs posix file write deal
come to think of it this is possibly the same issue affecting another dotnet tool i was trying to use
immediately?
i imagine that's just like Crop.growCompletely() ?
i haven't checked the decompile for that though one sec
i have an idea for the whole situation lemme try it before coming back for help
yay docs
smh not trinker
Is there a channel to discuss mods in general?
Oh I see. Thanks ^^
this channel is for people who make mods
you are welcome here if you ever want to do one 
time to huff some copium and program my own github with c++
Why?
school assignment
github, or git?
i didn't read it, but probably just git
You're gonna need a lot more than C++ to make your own github 
i get to do one of my graduate level classes alongside a +1 intro level class, yay! i just LOVE screwy university credits!
i will not continue off topic, but it did make me realize i retained much more than i thought i did when i dove into c# for modding and it screwed with me for this "no point pop quiz"
i do not understand. what is wrong with my content.json file. i dont know programming stuff but i was following a tutorial to make content packs for this mod pretty exactly? any insight would be invaluable thank u :)
also heres. alink to the tutorial idk if that helps
!json here is a validator you can use for your json files. i can see right away that you have some curly quotes in there (only straight quotes will work for 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.
!vsc
When creating content mods, it's useful to have a program that will check the validity of your json for you. We tend to recommend either VSCode https://code.visualstudio.com/download or notepad++ https://notepad-plus-plus.org/downloads/
(I'm putting my bets on a BOM)
but the line 1, position 1 error probably means you have a byte order mark (BOM) in your file, and you should use utf-8 without a BOM (the correct way to use utf-8) instead
okie thank U all so much :)
Hi ichor!
hello! thank you for typing faster than me
Get VSCode, we'll get you set up correctly
Don't forget the Fairy Dust. The diamond is the "harder" component to get but typically by late game you've got a shed dedicated to those whereas you have to make a painful trade of land for fairy roses vs. the actual crops you want to keg & cask.
Not to say it's unbalanced or anything, just that it can in fact be a pretty powerful effect at one point in the game since instant growth -> instant fairy rose -> instant fairy dust -> instant iridium starfruit/ancient fruit wine which is about 6k each.
Remind me in 4 hours to make a new modgroup for vanilla-ish testing
you bet your tail I will abagaianye! (#6206045) (4h | <t:1724740602>)
Lol I have never used fairy dust because I didn't even consider I could use it on my ancient fruit wine
On the casks, not the crops.
Yeah missed a word lol
Since you can only build so many casks (well, unless you use a mod that lets you fill the quarry with them etc.)
And they take literal months to complete.
it's a fair point. i did forget about fairy dust, since i don't use it much
Yeah and to be fair I did say late game, when balance matters less anyway. You're not going to be dropping stacks of diamonds on that stuff until you're already well into the millions and grinding for the gold clock/perfection waivers.
As the resident "dude who does vanilla-difficulty challenges" I just figured I should fill in the blank there, didn't mean to argue or anything.
it works 
oh, no worries. all i could think of was i'm pretty sure there's a modded flower that takes like two and a half seasons to grow, and its base value is so high that the honey it makes sells for like 20,000g. imagine getting like 20 extra harvests out of that
to be fair i can make it quite hard to get
OKAY i am hoping i am not interrupting but i fixed all my formatting stuff the programs u mentioned were all very intuitive thank u :) um so the issue i am facing now is my pathing and i am hoping it will be the last one. so i need to lead the game to the asset i want to integrate into the content pack right? but it cant find it. heres the code from the tutorial i was copying and my code, i assumed the "moddedDogTexture" in the reference would be the name of the mod folder of the hypothetical example but maybe its something else? it really was not clear what i was meant to replace that with
Yikes. At least the honey rate becomes a limiting factor in that case. The flower itself sounds kind of unbalanced since you can run an entire bee farm of a couple hundred hives off maybe a dozen flowers at that stage of the game.
^^^ i think that's unbalanced in the first place
TargetTexture refers to the name of the asset that is set as the pet's texture in the pet data
what pet are you trying to patch? a vanilla one, one from another mod, or your own?
one from another mod :) the texture i am trying to patch is pathed to Mods/[CP] Elle's Cuter Cats/assets/FoldSolidFawn.png i thought
that's the actual file name. you want the name of the asset that file is written into with the Load action
for example looking through Elle's Cuter Cats mod I see that the Elle.CuterCats.FoldSolidFawn pet has the asset Mods\\Elle.CuterCats\\FoldSolidFawn set as its texture
so you want TargetTexture as ["Mods", "Elle.CuterCats", "FoldSolidFawn"]
this is making me rethink one of the profession bonuses, the capstone of one is a crop growth spell
(side note but that mod's content pack format is surpringly CP-like. I wonder why they decided to go with their own format instead of just using a CP asset)
(Is it an older mod?)
no its super new
so sorry. like think? i think its still wrong but idk where i misinterpreted u
that looks fine to me. do you get any errors?
YES BUT THATS MY FAULT SORRY I SAVED THE ILE TO THE WRONG PLACE
okay nevermind i Am still getting this error i have no idea why
Hm is it expecting you to have a content patcher pack for adding in the pets to begin with?
they're editing an existing mod
So texture loads would happen
Elle's Cuter Cats, which loads Mods\\Elle.CuterCats\\FoldSolidFawn
(it is enabled right?)
elles cuter cats? yeah that one works fine
Ah do you have extensions enabled
Could be that you have a FoldSolidFawn.png.png situation
MAYBE. should i just try removing the extension in the fromtexture?
(it sure is a novel choice to have paths be a list of strings)
No you should turn on extensions in file explorer and double check the file name for FromTexture
OH THAT MIGHT BE IT
...side note though, from my understanding of how this mod works, you will have to include modified versions of Elle's animal sprites in your Pets Enhanced content pack. do you have permissions to do so?
oh this is just for personal use. i want to give my kitty a treat. also i am not going to modify them bc im not planning on using any of the features that would require edited sprites. im just very weird about the fact that i cant feed my pets in sdv thats all
is that fine? i guess im not sure of the etiquitte
i was thinking i might ask later once i know how to do it
becasue someone else was commenting about it
I think personal use is fine?
I've never heard of permissions that don't allow editing for personal use.
A little question about buffs: I did find the common buffs in StardewValley.BuffEffects but I wonder where status effects like "Darkness", "Oil of Garlic Buff" or "Nauseated" are being set
okie dokie ^_^ yeah the prospect of completeing an ENTIRE content pack is a little much right now this is jsut for me to have one feature i want. but maybe later
Data/Buffs define the buffs/debuffs. they can then be applied via eating food (which is set in Data/Objects), or some other sources (e.g. monster attacks)
they also can't stop you. it's your computer 
I rather meant apply to the player directly in C#, phrased it badly, sorry 😄 So for speed, defense and such applyBuff(Buff buff) does its job, but I can't find any of the special buffs in the BuffEffects
You can use applyBuff(string) to pick any Data/Buff items
Many special buffs are hardcoded to do their effect
But that's just limited to those ones, no?
There's Buffs, and there's Buff Effects that each Buff has
I.e. Game specifically check for a buff id and then do stuff
what you're linking is the latter
!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!
Do this if u haven't already
and there's also a bunch of hardcoded effects as chue mentioned
for example I can define a Buff named "Jinkies" that adds FarmingLevel 2, ForagingLevel 3, but Defense -2
Are there any cons to lumping all my Includes into one code block instead of having one code block per file?
(visual clarity)
Right, makes sense, but "Nauseated" e. g. has none of the buff effects, so I was a little lost. But I'm unpacking the stuff and look around for that
ty 🙂
Nauseated is hard coded
Cheers. I think I will combine most of the Includes and separate the special ones.
the game checks if the player has buff ID 25 (Nauseated) and does its stuff in the eating function
Since you are do this in C# anyways u can just give the player multiple buffs at a time
The nauseated id 25 plus whatever custom
Nope, changed my mind. If I do separate ones it will be easier to add comments explaining what code is in each file (like that my Data/Locations stuff is in hiria_maps.json) because future me will forget and because I always have to hunt around when other mod authors put theirs into different files than I would expect.
man, i forgot button added a machine ready action and now i'm like "wait i can actually make the spouse useful--"
TIL, thank you guys so much, works just fine 😄
your spouse using ancient junimo magic to make a 2 months cask instantly ready
#justEmilyThings
@vernal crest: make a new modgroup for vanilla-ish testing (4h ago)
Somebody talk me out of making more mod ideas, I just saw the laundry machines in H&W's bathroom set and thought to myself "it'd be kind of neat if you interacted with the laundry machines and randomly found a copy of your spouse's shirt/hat/etc that got left behind in the wash and is yours now."
Here's a good one I use: Are all your mods working without any issue's whatsoever? No? Then maybe fix those first. (Also the more you take on the more you have to maintain)
(Otherwise, bonus idea: Repeatedly washing the same clothing item has a chance to turn it into plain cloth)
My problem is that my brain wants to make more little mod mechanics instead of finishing art for my big in-progress mod
Maybe we need a modder analogue to the mod ideas repo!
"Here, I made this fun mechanic in a thing because I just wanted to get it out of my system, now someone take it and handle maintaining it for forever please thanks bye!"
and someone should scoop up a bunch of those mechanics and call it ConglomerateCore
Hi loves! I just wanted to ask for a bit of help: I am working on the multiplayer bug for PolyamorySweet Rooms. I am able to make the Hosts's spouserooms appear, but they are only seen by the hand. The hand's spouserooms are only visible to the host. In the host's house, the host sees only a shell room. In the hand's house, the hand sees only the glitched room. In the other's house, they can see the rooms correctly. What do you think would be where I should look at fixing this?
Hi angel
It's not an amazing advice, but have you tried looking up how it was done in the Free Love back in the day? Maybe something in the conditioning is wrong.
is GameLocation.Objects on farmhand only return initial map object, not the current one?
[game] {X:86 Y:69}Weeds
[game] {X:87 Y:29}Twig
...```
Am looking at that, at the old 1.5 code for building farmhouses, how they work together, comparing 1.5 code to 1.6 code... have got the stuff to almost work. But not quite.
It's very hard to see without seeing the code itself but what did you do for when you built it for singleplayer? Could it be maybe that the location of the spouse room is hard coded? Or maybe it's trying to place multiple spouse rooms in the same spot, if thay makes sense?
Maybe something in the location is wrong. That would be my first guess guess.
https://github.com/ApryllForever/PolyamorySweetRooms here's where the code lives.
No, it should be synced in multiplayer
It's at https://github.com/ApryllForever/PolyamorySweetRooms/blob/master/LocationPatches.cs , on line 79
found it the second before you replied 😆 i don't see where the farmhand is defined. please let me know if i am being blind
maybe the issue is that it is trying to place farmer's spouse room into hand's house and this is why it is glitching out?
seem like it only be sync when the location is always active
(Removed the embeds to make this all much easier for people to not have to look at the same thing 500 times)
The farmhouse gets made for each farmer, __instance.owner defines the farmer or farmhand
okay i see! so from my limited knowledge i could guess that the issue is in the initialization. You may probably want to check that each spouse data is specific to the unique __instance.owner, and then initialize room characteristics based on the spouse data for the owner of the house. Then, maybe kind of similar with the issue i faced before you could implement some code block that would update all the present farmer's view? For example, after a farmer A initializes their room, share relevant data with other connected farmers B and C to update their view as well. Maybe it could use some event triggers.
it is not much but that's what i could suggest from the brief glance
I will look into that, thanks so much love!!!
well done myself, i'm pretty sure this action #$action AddFriendshipPoints NPC 20 is very effective when you DON'T replace NPC with the actual NPC name!
I'm trying to make flavored vinegar and CP gives me an error. I don’t understand what I’m doing wrong, because I took the FlavoredMead mod as a basis.
Error:
[Content Patcher] Can't apply data patch "MKCrafting > Machine Rules > code/Machines.json > Modify Vinegar Rules" to Data/Machines: the field '(BC)12' > 'OutputRules' > 'Default_UnmilledRice' doesn't match an existing target
Code:
"TargetField": ["(BC)12", "OutputRules", "Default_UnmilledRice", "OutputItem", "(O)419"],
i don't see this rule in vanilla
This is the code from FlavoredMead and it works
"TargetField": ["(BC)12", "OutputRules", "Default_Honey", "OutputItem", "(O)459"],
Or should Default_Rice be used instead of Default_UnmilledRice?
it should be the name of what is in the file
if you want to use unmilled rice, you probably need to add a "Default_UnmilledRice" rule instead of trying to edit it (it doesn't exist in the vanilla Data/Machines entry. consult your unpacked files)
it's why i'm telling you i don't see it, because i don't know if you want to use the vanilla one (that has a different name), or made a default_unmilledrice that i don't know about
Both, I need to convert the vanilla recipe and add my own.
then to target vanilla one you need to match the exact ID
to add your own you will do a bit differently
How exactly do I add my recipe?
!vmv has example (search trash in the machine file for ex) i have to go prepare lunch, see if someone has a simpler example to provide 🙂
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.
Thanks
posting this here instead of the modded-farmers channel coz i’m too shy to interrupt the conversation going on there 👉👈 but i finally uploaded my leo arts to nexus!!!!!!!!!
i think i followed the tutorials i looked at to a T, but plz do tell me if anything is dysfunctional or funky :3c
Post it in modded farmers too! 
They look really cute 🥺 great job
Made a mod with a lot of help from @drowsy pewter (Since I don't know anything about pixel art)
https://www.nexusmods.com/stardewvalley/mods/27333
great job you too!
FROG :3
one day when i stop to scope creep myself i shall also publish my mod 
is a mod really done unless it has a three times bigger scope than you intended?
!json Please share your json file so we can check it
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.
Is a mod really done, ever?
no not really
I’m so happy my custom NPC can enter/exit a coffin now. One step closer to making a vampire NPC. 
does anyone know where shane's coop is in the tilesheets?
i havent been able to find it:/
Maps/spring_outdoorsTileSheet
Which means it has seasonal variants on each of those tilesheets as well
This looks amazing, can't wait for this mod
hiya!! i was wondering if there are any ways to edit a map without getting too deep into coding
i'm using a custom farm mod i quite like but there's a bunch of minor issues that drive me up the wall (mostly misaligned textures/walls without collision/forage being able to spawn in out of bounds) and by the look of things it's never getting fixed officially
Hello, I have a mod that patches the "pullFishFromWater" function from the fishing rod with harmony postfix, it works in multiple cases but the postfix (and prefix as I tested) is not called when Ridgeside Village is installed together. How can I find what is causing this?
If you just want to make a personal edit, you don't need code. You can open the .tmx file directly in Tiled and edit it
oh thank goodness there's a tool for that
Like Wren said, you can just open it directly in Tiled. However, editing maps requires very careful management of tilesheets (the images used to make the maps) to avoid breaking things. You'll need to make sure that you have all the tilesheets that the map uses inside the same folder as the map while you're editing it. That might mean unpacking the game's contents and copying tilesheets in the mod folder (or copying the map file into the game's Maps folder, which is another way to do it).
sounds a little complex
i guess i'll just give up on it for now
If you're good at following step by step instructions, I can give you personalised ones to follow
You'll probably have to run the game with a debugger.
Run it without RSV first, add a breakpoint inside your patch. When you hit the breakpoint, use a "step-out" or three to step-out into the function that called "pullFishFromWater" and add a breakpoint somewhere before it. After you added a breakpoint there, run it again with RSV installed, and when you hit the breakpoint, step through, 1 line at a time until you figure out what's going wrong.
You may have to decompile the game depending on which debugger you use.
Ugh, almost done with actually finishing my recipe page on the modding wiki, brain feels like pudding 
I tested with breakpoints and console logs, the patch isn't even called. It is called without RSV
That's why you need to add a breakpoint to the function that calls pullFishFromWater.
I am attempting to work on my questions tutorial again so I will shortly be joining you in pudding land.
Ok I understand now, run the game on vs, not the mod
You can step out into the game's code when debugging your mod with Visual Studio.
You can? I've never seen the debugger do that.
I thought you needed the special top secret repo for debugging in-game code.
Mine does it all the damn time
When it says "source not found" there's a link that says "decompile code"
Because I'm shit at debugging
that'd be fantastic if you wouldn't mind
Maybe I have Just My Code on and didn't realize it. They keep changing all the debug options around...
You can decompile that extra code yourself, it just isn't decompiled by default
Cheetos can one of you please make a thread for rafi and me?
I can, uh, I don't remember what all goes into making a thread lol, a name right?
thats p much it
maybe a desc
remember tho that only the thread owner can change it(and jiunimos)
Meow
woof
Meow
Tēnā koe rokugin!
Oh goody that one doesn't get censored
I need a way to type macrons without having to copy and paste from websites
Add the IME for your desired language? I have that for Japanese.
/goes to google IME/
hey all - sorry for the probably obvious question, but where are the backgrounds for junimo kart found in the unpacked content folder? new to this whole thing
having trouble finding them but i may just be blind
Minigames/MineCart.png
ahhh thanks! swear i checked there
no worries, i know how to handle that
i'm porting it into Celeste and we deal with that stuff pretty often there
... fml
void postfixes prevent other postfixes from running I assume? 😅
for now you can set the priority of your postifx higher so it runs before ours (which runs with standard prio)
Postfixes shouldn't affect each other
Prefixes are the ones that don't play well together
And transpilers to some degree
https://harmony.pardeike.net/articles/patching-postfix.html states "An alternative way to change the result of an original method is to use a pass through postfix. A pass through postfix has a non-void return type"
so wasnt 100% sure... but yeah would be news to me too tbh
@calm nebula do void postfixes prevent other postfixes from running?
It won't stop it from running, but depending on whichever one goes last is going to decide what the final result will be I guess
If they're all trying to change the result
postfixes shouldn't ever affect whether any method runs, including each other
that postfix seems fine, besides the possibly not needed ref on __instance
No
I'd assume it's more likely they might affect each others' behavior in some other way, but it's hard to guess w/o context
we gotta check what amadeus' postfix is doing
the harmony_summary command might help, incidentally
It's more likely that neither of the postfixes are running in this case in my opinion.
We don't even have confirmation that pullFishFromWater is even being called right now.
Are you sure someone else isn't eating the entire call
No, we're not sure.
I had them add a breakpoint to the function that calls pullFishFromWater and that's what they are working on now.
I see a lot of frameworks are distributed as their own mod. Is it possible to distribute an assembly with each mod? I don't know if SMAPI gives each plugin it's own AssemblkyLoadContext or not.
what type of framework are you taking about?
It does not
the content pack ones or the content patcher add on ones
Shockah has a PR that would give each mod a context but I don't know details
I'm asking for my own project, Stardew.Tasks.
SMAPI does support private assemblies, but you have to opt in IIRC.
My guess is that bad things will happen if multiple mods want to use the same private assembly, but I've never attempted it.
Making Stardew.Tasks into it's own mod seems like overkill though.
Most of us tend not to do it that way, though; Shared Projects are easier to manage. (somewhat)
What's a shared project?
you can have project ref to some common thing
Oh, a project reference in a monorepo
Stardew.Tasks is suppose to be something any C# modder could use.
yea then that's just a core mod 
So I need to make it a mod then.
It's not just a project reference, it's a reference to a Shared Project which doesn't use an actual DLL, it just includes the code directly.
i was confused earlier bc frameworks in stardew modding context usually refer to mods made for content mods to do stuff without C#
But yeah, if you want other modders to use it, well then you should just get it over with and make it a proper independent mod/API.
what are the features of Stardew.Tasks 
Better to get it out of the way early because there are a lot of restrictions on what APIs you can expose.
Stardew.Tasks allows writing async functions that wait for SMAPI's events. I've shown it being used a couple times but never talked about it directly.
ah yes the unittest stuff 
but don't we just use it via nuget package in this case?
i thought it's not expected to end up in a user's actual mod list
For a the ValleyUnit.Sdk yeah, but Stardew.Tasks is a separate package that ValleyUnit just happens to depend on.
Stardew.Tasks just adds a buch of extensions methods for the IModHelpert.Events interfaces.
I might look at how Pathos has been doing it with the ModBuildConfig.
im not sure if this is the kind of thing that pintail can handle tbh, but ig you could offer it as shared project that other modders can submodule 
Since this isn't really meant to be used by players, I think you sort of want to set something up so that assemblies are downloaded and referenced but not actually included in the release.
alternately sneak this into SMAPI itself as a PR 
A private assembly might actually be the right choice here, but only used in "test/debug" configurations and not in release.
It has uses in actual release mods though.
Your call, but beware of scope creep.
If it's just for testing then you can design custom analyzers and build tasks to handle it without needing an actual mod. If you feel the need to make it an actual mod with an actual API, you're going to be severely limited on what kind of API you can expose from it.
I think you're missing something in here, somewhere... the only reason to have a framework mod is to expose some kind of API, whether it's for C# or CP.
Otherwise what is the point of it?
(slides in...... are quests given through mail still a c# coding requirement or have we circumvented it? i know we have the special orders but i'm assuming the question is about quests brought up with the lil accept button through mail)
Sorry, I'm not trying to be difficult, but you're kind of saying "I just want this to work like NuGet" and it just... doesn't. Not in Stardew.
it doesn't look very hardcoded, perhaps just try it
need to add new Data/Quests entry ofc
So what you're saying is I'm required to only expose things via a "Mod Provided API"?
If its only purpose is to add extensions to an IModHelper and it maintains no state of its own then the options are either (a) a shared project that's included as a submodule, (b) a nuget package that has to be added as a private assembly (most modders will find a way to screw this up since it's rarely used and sketchily documented), or (c) an analyzer similar to Pathos's ModTranslationClassBuilder that silently adds code without changing the assembly surface at all.
Analyzers are your best option if you want users to be able to just add a NuGet package without being forced to take on in-game dependencies.
You could, rather than releasing the extension class as-is, release a source generator that essentially copy-pastes it into the target mod.
But yes, the only way different mods can talk to each other is through the Pintail API. Private assemblies are also a thing, but rarely used, and you're relying on the user of your tool/library/etc. to get it right.
We've all struggled with this problem more or less since we started modding; "here is some useful bit of code that I'd like to use over and over again, but it doesn't really work with Pintail and/or doesn't feel justified to make a framework mod out of". And the canonical solutions are monorepo + shared project, or separate repos + submodules + shared project.
Is there a way to launch SMAPI with the terminal through Stardrop? I can get the terminal if I launch thru Steam but I'd like to have my Stardrop profiles work
are you on mac
yeah
this is a known issue yea, you need to launch stardrop via terminal to get smapi terminal
I see
it'll replace stardrop's terminal
I could just release Stardew.Tasks as source package I guess.
You mean like using contentFiles?
Interesting, yeah. Didn't even consider that you could include source code files that way. (Hopefully they are actually included in compilation when you do that.)
They are
speaking of "bit of code to reuse", is there any built in generic for parsing string to generic type T?
I wish
i was use TypeDescriptor.GetConverter(typeof(T)) but it is not very convienant
You could use JSON for it.
hm but that means serializing modData dict to json and then back?
If this is modData then why would it need to be generic that way?
the use case is that i have modData key mushymato/ThisIsANumber yea
and i would parse it to int
Let me rephrase that slightly - how will your code actually know what type it is, at compile time, to choose the generic type arg? And if your code knows that, why does it need a generic parse method?
no i just dont want to write Parse func several times 
I'm just having trouble imagining what kind of architecture that fits into.
would like to just use Parse<int>(somestring) and Parse<bool>(somestring)
You're storing keys in mod data but don't know what type they are until runtime?
But you still have to write Parse<int> and Parse<bool>, how is that substantively different from int.Parse and bool.Parse? Unless you're alluding to higher-order generics which C# definitely doesn't have.
hm yea now that we r talk about this i think im being too python brained again 
There are solutions when dealing with non-primitive, user-defined types; for example, you can define a generic with new() constraint that also implements an interface, IParseable that takes ParseFrom(string). But I feel as though that's not really what you had in mind.
the actual convienance func i am wanting is a wrapper on Dictionary<string, string>.TryGetValue to get the string and then parse it to the expected type (likely a primative), or return to null if there's no string, or if it fails to parse
How do you determine the expected type?
This sounds like it can't be resolved at compile time and needs reflection somewhere.
but it sounds like what i ought to do is just write TryGetParsedInt and TryGetParsedBool for the types i know i need?
The dictionary in question is modData? You are trying to write some high level bridge that reads the dictionary with a schema, similar to how a JSON parser would look at the target type?
yea kinda
I'm not positive but I wonder if you could build a JObject or similar out of that entire dictionary and just treat it as actual JSON. This is assuming you're trying to deserialize to a known type. (If it's not a known type then I'm back to wondering about its purpose.)
Kinda sounds like a lot of work though, unless it's a very complex type.
yes on the known type, and yea it does seem like i should just avoid having to parse at all
So specific keys correspond to specific fields/types, it's not an arbitrary system in which the expected value type has to be guessed from the key, or some value prefix, etc... right?
Yeah the keys in modData are of known type since I (or the modders in general) would be the one adding stuff there 
I doubt most mods need/want to deal with whatever keys in modData was added by others
It does sound like what you want is just a deserializer. I know JavaScriptSerializer used to work with string dictionaries, I think you can do it with Json.Net too.
Just copy the keys/values into a JSON object and deserialize it to your target type.
I mean, that's the most convenient way to do it given the tools already available. You could of course also write your own using attributes, source generators, or just general reflection kludge.
I'm trying to make my own fruit tree, but the game complains about the texture:
[game] Failed loading texture MirandaKusland.MKCrafting/Items/FruitTrees/MK_Almond_Sapling.png for item (O)MK_AlmondSapling: asset doesn't exist.
Texture code:
{{ModId}}/Items/FruitTrees/MK_Almond_Sapling
Disk location:
Mods\MK Crafting\assets\Items\FruitTrees
What did I do wrong?
!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.
yeah we need to see if it's properly loaded and all
But if I have to guess you need to remove the .png part from the asset name
File code:
{
"Changes":
[
{
"Action": "EditData",
"Target": "Data/Objects",
"Entries":
{
"MK_AlmondSapling":
{
"Name": "MK_AlmondSapling",
"Type": "Basic",
"Category": -74,
"DisplayName": "{{i18n:MK_AlmondSapling_name}}",
"Description": "{{i18n:MK_AlmondSapling_description}}",
"Texture": "{{ModId}}/Items/FruitTrees/MK_Almond_Sapling",
"Price": 3750,
},
}
},
]
}
thats not what your error says
wait
we need to see your texture load
please follow the json instructions instead of pasting portions here
The validator shows the error Oops, found some issues with your JSON. But I took an example from a cornucopia, everything is the same except for the texture address and item ID. I don't understand what I should do 😢
do you want to send the link for people to look at
please just send stuff after the first time it's asked for
are you sure this is your entire content.json?
For sure it's not, or the error would be sooner than not finding a texture
This is the part that adds the seedling as an object
well we need to see the texture load code
so please tell me if you have that or not
You should send the whole thing, your problem is not specific to this part
if you dont know what texture load code is, then please send the entire content.json file
or zip your mod and send it all, idk
Then here is the mod archive
so you dont have any texture loads at all?
@sleek aurora https://smapi.io/json/content-patcher hey hey~ this is where you can upload and attach json files in the future~ first, it will tell you the errors you have automatically, second, you can just copy a link and send it in chat, so others can easily see your whole file
Are any of your images working in the whole mod?
Only wood and a keg of vinegar do not work. But I’ll finish the keg later
That was suggested earlier but they were only posting snippets there
ah i see. didn't notice
everything except the seedling
I don't see a Load for the texture of the seedling (sapling but still)
The same way you've loaded the textures for all your other things, you have to load the texture for the sapling as well
This is in the files FruitTrees.json and FruitTrees_Sapling.json
Nope, I see where you're trying to use a texture you never loaded in those
It seems that I did just that, only I corrected the path to the folder
thanks all!
this looks gorgeous
"Action": "Load",
"Target": "Cornucopia.MoreCrops/teabushes",
"FromFile": "assets/teabushes_{{season}}.png"
},```
This is from cornucopia more crop's content.json file. You need to be doing this for anything you list in Texture fields
If you're not doing that for anything, then i dont understand how you have any images working
(one more asset for fun)
Look at MK_Drill, you're literally doing it in there
i wanna play Madeline kart so if you could just port Madeline into stardew too that would be great thanks
Based on the Russian comments, I'm guessing the language barrier is causing some issues
Hmmm is there a way to specify multiple time ranges? or do I need 2 full action blocks {
"Action": "EditImage",
"Target": "Characters/Shannon",
"FromFile": "assets/NPCs/Sprites/Shannon_PJs.png",
"When": {
"Time": "{{Range: 0710, 0750}}, {{Range:1930,2600}}",
"LocationName":"sdvhead.LawAndOrderSV_AboveJail"
},
"Update": "OnLocationChange, OnTimeChange"
},
!codeblock
You can embed code in Discord using a series of three ` :
Your code can go here
Even if not a haiku
Just an example
For syntax highlighting, add the language code on the same line as the first (with a space between, like json). The usual codes are cs (C#) and json.
"Action": "Load",
"Target": "Cornucopia.MoreCrops/teabushes",
"FromFile": "assets/teabushes_{{season}}.png"
},``` sorry
lol
oops wrong code i'm bad at this lol { "Action": "EditImage", "Target": "Characters/Shannon", "FromFile": "assets/NPCs/Sprites/Shannon_PJs.png", "When": { "Time": "{{Range: 0710, 0750}}, {{Range:1930,2600}}", "LocationName":"sdvhead.LawAndOrderSV_AboveJail" }, "Update": "OnLocationChange, OnTimeChange" },
Oh, suddenly I missed this moment, thank you 😊
Huh. You are the one who asked this last time.
I did ask something similar, at the time someone suggested using the individual times listed. This is a much larger block but if two ranges can't be used i can work around it
I know you can use two ranges, but I don't know if you can do so for time. I am trying to find where I have done it before.
also, that is a pretty amazing memory I think I asked over a month ago last time
Sorry to let you down, but I only remembered that someone had done so and it was only when I went to search for it that I saw it was you xD
"Query: ({{Time}} >= 0710 AND {{Time}} <= 0750) OR {{Time}} >= 1930 AND {{Time}} <= 2600": true
Maybe?
Gonna be honest, to me being able to use discord search at all is like a super power
It's the wackiest, most useless search I've ever interacted with and drives me insane every time I try to use it
it only really works if u hit the right combo of words
Ok since the double range setup that works with dialogue is one matching how you already have it (#making-mods-general message), I am going to say that you should definitely try rokugin's option.
Woo I am a super hero!
in the future i can prob search from:rokugin wackiest to find this msg
It is terrible that you can't disable fuzzy searching
Except you will also get all results for wack and probably wacky and maybe event just EST because why the fuck not
god the ability to search for exact text in discord would save me so much headache
is it possible to add Buildings using Content patcher?
Soz mate :P
that didn't seem to work but maybe I have something else wrong. I will work around it. Thank you for trying. ''' {
"Action": "EditImage",
"Target": "Characters/Shannon",
"FromFile": "assets/NPCs/Sprites/Shannon_PJs.png",
"When": {
"Query: ({{Time}} >= 0710 AND {{Time}} <= 0750) OR {{Time}} >= 1930 AND {{Time}} <= 2600": true,
"LocationName":"sdvhead.LawAndOrderSV_AboveJail"
},
"Update": "OnLocationChange, OnTimeChange"
},
off topic: those who make pixel art for the mods and are not artists at all: how do you tackle your your impostor syndrome and avoid "hating" what you poured hours drawing into
i thought if i step away, the piece of clothing i drew would look better, but it doesn't. it looks very "messy"
As in farm buildings? Yes.
https://stardewvalleywiki.com/Modding:Blueprint_data
https://stardewvalleywiki.com/Modding:Migrate_to_Stardew_Valley_1.6#Custom_buildings
I dunno if blueprint data has gotten this, since this isn't marked as having been moved
(I moved the Data/Buildings schema at least, which is most of the relevant info)
What has helped me is to ask myself whether I am actually capable (skill-wise) on improving what I already have. If not, then no matter how much I agonise over it, it's not going to get better in that moment anyway. So I either decide to put it aside and go try other things or go "eh, good enough".
you arent impersonating anyone when you are make a mod that otherwise doesn't exist without you doing it 
My answer is unhelpful: I don't, it takes everything I have to just avoid deleting the crap I make lmao
Hey there guys, I wanted to slightly reshape the dining room renovation so I edited the FarmHouse_DiningRoom_Add.tbin, packed it back into a .xnb and threw it into the content/maps. It doesn't acknowledge changes but slightly breaks the side wall in-game. Am I doing something wrong, or maybe I should make a content pack out of it instead? (image 1 is what's supposed to be, 2 is what it is in-game)
Is it not working or are you getting an error or anything?
You should definitely avoid XNB modding whenever possible (always)
It wasn't working I don't think there was an error
is that with the purpose of being able to revert changes if needed, or is there a chance that certain things wouldn't work as an XNB mod?
makes sense. i think i struggle with the good enough thing siiigh
thanks
XNB has some concerns, but the biggest issue I think is that you're just very unlikely to get any help with it
your answer made me cackle
it's nice to be understood
alright I'll make a CP mod and see if it works
At the very least, when you get stuck you can come here for help
(I was gonna correct that to if, but honestly even I still get stuck)
I do too. For me, it helps to look at others' art - not just art that I think is better than mine, but also art that I think is worse - doesn't matter if someone else would disagree with me that my art is better than theirs - the point for me is to recognise that there will always be someone better and there will always be a way that something I do could be better, but also to be able to see that actually, from my perspective, I could be doing worse. It sounds mean but it's intended to be a reality-check, not a dunk on other people's work.
The only other thing I can think is maybe Query needs to be {{Query}}, I see it both ways on the docs but I don't see any rhyme or reason for it
You have one opening parenthesis in there randomly before the first {{Time}} (also please do use code block, it's hard to read without it). It's rokugin's fault though so blame them 
thats not a random parenthesis, theres a matching closing one
Nope, that was unclear
depend where it's used, you have example of those different formatting?
sorry I did try to use code block but it didn't format that time, maybe because it was in a quote-reply? Sorry I'm bad at discord.
There's a parenthesis set around the first AND pair but not the second.
Like right next to each other lol, but no context unfortunately
i think the braces vs no braces thing roku is talking about is confusing me too bc where im looking at it it seems like it shouldnt have braces since its in the key?
Oh right, throw a second parenthesis pair around the second AND pair
You want it to evaluate both of those first and then the OR
you can actually probably just get rid of the Time <= 2600 check entirely
is there a general Pixel = Grid Sqaure if that makes sense?
that's actually a very nice point of view. thanks a lot for encouraging angel 
That's true, any time before 2600 is a valid time lol
that doesn't make sense for me
Me either Lumi
do you mean render scale?
prob
one tile is i believe 64x64 pixels
game renders at 4x by default
in screen pixels that is
so a 16x16 sprite like an item is 64x64 on screen
i mean the amound of pixels in a grid sqaure
for now it is working to use two action blocks, I will see if I can play around with the query in a bit, thank you everyone for your help
What's a grid square?
maybe if you tell us what sprite sheet you are looking at, we'd be able to help
If you mean in game, it's 64x64, if you mean in a tilesheet, it's commonly 16x16 but it differs depending on what sheet you're looking at
havent done anything yet
Big craftables are 16x32
i assumed they were trying to calculate like what tile coordinate they'd be on if they were at x500 pixels and y270 pixels or something
Aquarium fish are like 24x24 or something right?
this stuff
this looks like maybe the building placement so 16 pixel for each tile
Oh for placing buildings?
yea
Right. Well, each square is one tile and as everyone has been saying, each tile is 64x64 pixels in game but in your image editor you would be making it 16x16 for one tile (because the game renders it 4x the size)
It is 5am. Mistakes have been made 
Without knowing what you're trying to do, it's hard to know what kind of answer to give
Alright, I made the content pack, and now it's.. bugging differently
If you make your map a different size to the existing one you are going to have to edit the HomeRenovations data as well
(speaking of mistakes, i finally fixed mine (using mathjax and colour coding to try and make my BETAS docs easier to read) and moved all the docs over to a personal website where i am finally free from the limitations of markdown formatting \o/)
Which...should be less painful than custom renos I think. Right roku?
The map size itself is the same, I only erased a part of the room. Or is that what you mean by resizing the map?
Remind me in 6 hours to read the BETAS documentation
Oh okay, abagaianye (#6207391) (6h | <t:1724806720>)
if you just filled it in with that 1 black tile then u should be ok
Technically less painful, I have a newfound distaste for renovations lmao
not having any tile would be a problem i think
(i even added a fancy button to bring up a code block example for all of the triggers if you need em
)
If you have changed the number of tiles that were empty or moved any of them, that counts as changing the size (specifically for renovations where the map size is actually the size of the entire farmhouse but the game cares about the size of the actually non-empty tiles).
(partially my fault anyways, except for the weird tilesheet issue...)
(Are you still going to bring that up to Pathos?)
Yeah, I was trying to figure out how to word it yesterday but there was too much ambient noise (partner was home lol)
Fair
Definitely also that very mild anxiety of pinging Pathos lmao
So if I'm removing this part, it's as if I'm shifting the map to the right?
can I just fill it all with black squares instad?
Technically but also I think you just have to fix the rect transform the game is expecting
That part on the left doesn't matter
It's the fact that you've made it longer that is the issue
the piece with the palm is the only working wallpaper tile though
I don't really think I've made it longer..?
Although maybe removing the bit on the left is messing with the rects
Interesting, I assumed because it was a vanilla renovation that it wouldn't run into the decoratable location issue
i think this is cus there's another renovation there
to blow up the wall between kitchen and dining room
need to edit that to match
Alright yeah, I shouldn't have meddled with .xnb, I've actually lost the vanilla file
Oh well it's a matter of 5 minutes
!reset
Please reset your game files. This will fix any broken game files, but won't affect your save files or mods.
If you use XNB mods, see using XNB mods for more info about why they're deprecated, and a list of Content Patcher alternatives.
Yeah, that's another problem with XNB lol
I'd also recommend using a better method for unpacking your game contents so you can use .tmx files for your maps instead of .tbin
Man, now I'm about to test messing with vanilla renovations to see if they also get broken
Because .tbin is old and stinky
(Real reason: .tmx allows for tile rotations and editing the XML directly using a text editor and .tbin doesn't)
ī
Macrons!
Tile rotations sounds so sweet
alright I've re-downloaded the game files, let's see if the original room works, if it does I'll try it without stretching the room downwards
If I get really frustrated because some part of my keyboard isn't working properly, please someone remind me I have changed my language to Māori!!
New quote added by rokugin as #6231 (https://discordapp.com/channels/137344473976799233/156109690059751424/1278070077769388202)
cant you just switch with win space 
I don't actually know how to use quotes once they're made
If I get really frustrated because some part of my keyboard isn't working properly, please someone remind me I have changed my language to Māori!!
- @vernal crest (Jump)
Eyyyyyyyyy
sometimes i accidentally go to chinese IME when i code and put 。instead of . lol
That honestly feels just as hard to remember as the original message lmfao
xD
tfw when my spouse walks out of bounds and doesn't let me place the renovation down
"goodbye boundaries of this world, i'm going to a different game"
do u want to go to the universe where sinitic languages ppl invented computers and we gotta do like
公开 类 模组入口 : 模组 {
}
Apparently the Māori keyboard is identical to the Australian English keyboard except for allowing the use of tilde+vowel to add a macron. So I am safe!
I have changed my Windows display language to Te reo Māori and now I am in trouble because I can't read it
Well, no problems there
!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.
I dunno if this'll ever make it to my git, but you can do whatever you want with it
Primarily wanted to make sure the issue with wallpaper and flooring that custom renovations have doesn't apply to modifying vanilla renovations
the only error it found was the version, i had 1.8 instead of 2.3.0
thanks a lot for the file
Generally, you'll want to be using the latest version (currently 2.3.0)
I know there are some cases where you want an older Format to force SMAPI to do some conversion stuff, but I don't know them
yeah, I just snatched the config from some other mod I had
the worst (or best) thing is that after I get it working I'll spend a couple of hours decorating the room because everything has to be P E R F E C T
Happy Home Designer mod:
https://www.nexusmods.com/stardewvalley/mods/19675
I still haven't redecorated since installing this, but it seems super useful
It is
I spent like 4 hours for these 2 rooms
alright I'll use this file, thanks a lot!
couldn't get my own to work
womp womp i guess
If you ever feel like tackling it, you can always use mine as a reference to see what's different
Referencing other peoples mods is the best way to learn
the hardest part is figuring out what mod to learn from
Yeah, you can basically grab Cornucopia and VMV and have quite a lot of it covered lol
Though, if you're new jumping into those can be daunting
don't learn from me, i am a problem
honestly I do very tiny alterations and do them rarely, plus so far everything that I've done has worked with no issues
and while I'm curious to learn a bit more about modding I don't really think my curiocity will overpower my desire to just play the game
Fair enough, everything I've actually released on Nexus has been stuff I made because I wanted to use it lol
Everything else I do for the sake of learning or teaching
the only thing that I might be overly curious about is making the mod that makes the time not pause in singleplayer
I've seen it done in Ridgeside Village because when you're fishing in the Ridge Forest the mobs are actually still hitting you, and the time is still going
At least I think the time is going, since mobs definitely do
Harsh, the only reason I still fish is because time pauses lol
keep that energy, i've been working on this 1 mod and i can't even open stardew without thinking about my mod
Otherwise I find it too boring despite being the best money early on
I really like fishing, it just makes my brain release happy chemicals, and ever since I started playing alone I just noticed how looooong the days have become
plus I spend a lot of time talking to people, and when I've already done everything and talked to everyone and it's still like 7 PM I don't feel like finishing the day
but I don't have anything else to do so I just walk back and forth until it's like 10
the ridgeside forest thing is a FTM quirk i believe
I used to get really hung up on "using the whole day" but now I'll just got to bed at 10 AM, screw it
if you kill everything around you and manually freeze time the monsters wont spawn
What I found to occupy myself for a few days is purposefully doing all the quests that I have hanging
Although I think that I shouldn't complain because I haven't even been to ginger island after having unlocked it like 1 year ago
I always wanna go there from the very morning, but I always find something to occupy me until like 2 PM and then I like "eh, I'll go there tomorrow"
Me_irl
Big same lmao
me searching on nexus "weird, i thought this was named wildflower something"
Big mistakes, it's wild flower something!!! totally different
I had to slow time down because I was getting so stressed about getting things done. Sometimes I don't even finish tending to my farm for the day (crops, animals, machines) until 5pm
Nexus: search is too strict
Discord: search is too wild and free
But also I need to get rid of several projects I don't wanna do anymore.
Solution: make new project extremely tiny
What is this? /j
laughs nervously in dozens of unfinished projects
So many partially made mods
have u considered making a new arcade mini game for stardew it'll be very fufilling trust
don't believe chu
i like having some stuff already started, when i finish something it's easier to continue stuff than start from scratch
i think we all have at least one minigame in our pocket to start or work on
"When I finish something". Wonder that's like lol
If you mean me, I already did that once!
Not me! I dislike minigames and didn't even know most of the ones in Stardew even existed until I joined this server
Nah
im bad at both of the minigames it's too much reaction speed for me
Mini games? More like many games
These days I concern myself more with silly little python scripts that make my day to day life better
atra would offer a knitting mini game
I'm imagining a python script to knit for you
Ugh, I really do want a skee-ball minigame now though
one day i'll get over fear of pixel art and make a bird pack i think
Atra if I make you a knitting minigame would you get back into modding (/s, I know the answer is no)
need this creature on my farm
He looks loud
knitting minigame to create your own rugs /j
nah these dumb birds just stand beside the water and do nothing all day
just like me
i only ever seen 1 vid of their call
Pau was planning all the minigames earlier #1254227087007416410 message
pau is a demon, we don't listen to the demon in our thoughts
Pau is the minigame tycoon
they have retractable neck though, unsure how that's gonna work in stardew with sprite bounds
i mean we have toppest of hats for fashion sense
yea i should amend "stardew" to "ornithologist's guild"
Just gotta patch draw and make your own sprite limits
Same here, that way if I feel like putting off the thing I'm working on, there's a distraction available that's actually still productive.
(Though having 228 projects active like some people might be a little too distracting)
Oh! I forgot to tell all y'all that I finished v1 of my Christmas mod! Thanks to everyone who helped me here.
@dense tartan You leveled up to Cowpoke. You can now speak in our voice channels and share images in all channels!
@ivory plume ran into an issue with adding custom farmhouse renovations that are supposed to have floors and walls that can be changed. The renovation is using the tiles from the walls_and_floors tileset as placeholder, but the walls/floor on the override that's applied can't be changed and don't switch to their defaults. When attempting to put a wallpaper or flooring down it consumes them but doesn't change.
Felt like the image might be pertinent, though I'm unsure what the StaticTile component is or how it factors in. Please let me know if you need anything else.
You have all the needed data? My custom farmhouse had same issue because i was missing a data
Without trying to sound like I'm begging, would it be possible to get a mod showcase of my holiday mod?
I'm pretty sure I do, it works when I patch the map directly just not when I'm using it as a renovation
Ok! I remember some map property being needed and im not sure if renovation add those
(My phone definitively adds typo however)
Added the AdditionalRenovations, FloorIDs and WallIDs
Can you link your mod and what you want it to say? 
When I was testing I am 100% certain that I had the correct map properties for floorIDs and wallIDs and also the correct object properties on the tiles themselves and it didn't work. I think three of us trying hopefully means we didn't miss anything.
Thank you! https://www.nexusmods.com/stardewvalley/mods/27219 - New mod to add nearly 60 new holiday decorations and one free crafting recipe. All available from Robin only from Fall 24 through Winter 28 each year.
Posting on behalf of @dense tartan 🎄
"New mod to add nearly 60 new holiday decorations and one free crafting recipe. All available from Robin only from Fall 24 through Winter 28 each year."
Gah, it wont let me publish. :((
I saw it in modded-farmers...
Hah... I hope I didn't ping Pathos for nothing, just noticed I'm missing the Delimiter field from my AdditionalRenovations Append
I had the Delimiter field in mine when I sent it for initial testing, pretty sure of that
I'm gonna give it a try anyways, just gotta cover all my bases on that
No change, so at least it wasn't that particular bit of user error
I do appreciate y'all following up on this, I was going mad trying to figure out why it wasn't working
Playing with renovations is one of many things I'd been meaning to dip into, plus it dovetailed nicely with Aba finding an invalid tile GID error for me to play with
i love looking at other people's decorations, i am far far too lazy to constantly decorate my own home
I pretty much have the desire to do it one time and then I'll just live with the same exact house forever lmao
I want to fill in gaps left behind by the existing renovations in the vanilla farmhouse, so I figured I'd tackle adding a bathroom that way and then go on to add more "pre-fabricated" rooms (kinda like the Study in the Tears of the Kingdom house module things)
So I'll decorate the rooms for a specific purpose and then have a blank and let people pick prefab (and unalterable furniture) or not. xD
i decorated to hell and back for one savefile, kept it that way until i eventually deleted that savefile and now it's just testbeds
i would probably be the most benefitted from prefabs
The bathroom was just a convenient start since the 'bathtub' and 'mirror' are tileData that I can't really MOVE after placing them in the TMX. 🙂
At least not without figuring out how to attach them to a furniture object specifically, which, I don't want to even try.
Technically you can patch TileData in CP
nope don't fall into the trap, i'm avoiding the trap of creating a mirror with dynamic reflections mod
Brain hurts just thinking about attaching the TileData to moveable furniture
I essentially did that with my standalone crane game mod
By the time I get done with these crane game mods I'm going to have a whole family of products
I don't C# and I am resisting learning because it's bad enough I fall into CP rabbit holes
If I had C# knowledge, I don't think I'd be able to stop myself. LOL
it's a good stopgap
Well, I think you should be able to do it with a dependency on another mod
I think SpaceCore might have it? And Better Crafting I think has it
Ah, that's right
Calcifer as well
To be honest... As wonderful as SpaceCore is, I struggle to understand how to actually USE most of the features since there isn't really a tutorial or expansive documentation for many of them.
i guesstimate for spacecore, then inevitably casey tells me i'm wrong
Well, Casey is working on some new documentation
A lot of it is "go look at this mod" but some of the mod links are broken or the mod's not visible anymore
Yeah, when the new documentation is out, I'll definitely dive into it more
aba's working on the questions part of it, i've only delved into animations with sound
I tried to use the fence thing in SpaceCore to spawn in a coop and fence on a modded map (to mimic Meadow farm) and stumbled across the Y coordinate not being read, but that's been fixed now. 😄
hoping to see that custom tools really is a spacecore feature so my dream of aluminium pickaxe can become reality 
anyway, bless bigger animations 
SpaceCore is lovely, I just need more documentation to know what the heck I'm doing with it. 😛
mood
bless animations with sounds, my lil hammering animation has the proper sound
public static Microsoft.Xna.Framework.Rectangle controllerMapSourceRect(Microsoft.Xna.Framework.Rectangle xboxSourceRect)
{
return xboxSourceRect;
}
huh moment
who doesnt want this cool pickaxe /lh
love the clink hammer sound tbh
okay but it needs to swing
it's beautiful, and I want to cover it in vines
ill totally make it happen if we really can make custom tools with spacecore, watch me
I could see that being reskinned for an earthy/overgrown tree limb look with the irregular shape of the handle
i love floppy hammer....
huh, I did not know those existed
But that makes more sense than what I was thinking
I assume it changes for the various platform releases?
yeah, thought the same thing
sadly the sourceRectangles for the gamepad buttons don't really translate well
as they each have their own separate positions and sizes
so it only really makes sense for the more detailed button tutorial popups
The things on the side in a new game or the loading screen things?
So I'm working on adding a chest to my Christmas mod that looks like a present. I want to add one, not replace one. Everything appears to be working except the chest doesn't open - the animation doesn't play nor is there sound. Is chest data stored anywhere else besides BigCraftables?
chests are kinda hardcoded
you need something like this for custom chests:
https://www.nexusmods.com/stardewvalley/mods/7431
yea that, also you could consider making an AT pack for the chest
I definitely considered the AT pack thing. That might be the easiest way to go.
@brittle pasture Thank you! I tend to prefer to limit the number of dependences. I wish I didn't have to rely on another mod or framework to add something like this and I'd prefer not to outright replace the chest graphic. Seems like AT is probably the way to go.
When you're going into a save and it shows a big controller with all the buttons and their purpose
oh I thought that's what you meant by "things on the side"
yeah that function makes most sense for them
but the singular button sprites don't have the same relative positions/proportions
the smaller ones in particular
Rokugin sent this a while back for controller prompt graphics https://thoseawesomeguys.com/prompts/
Ahh that's the thing I was looking for ages ago, thanks
Feh. AT can't modify chests. So it's either a CP replacement or adding framework dependences. https://github.com/Floogen/AlternativeTextures/wiki/Framework-Limitations
Expanded Storage is definitely your best option, I think, if you wanted a separate item
There are definitely chest AT packs. The wiki only mentions recoloring as not supported
Not sure where pads come into play in this image, but button prompts are a big pain because you have to figure out what kind of controller is attached...
the way the game seems to handle it is to just display the xbox variant on pc?
I think doing the same is fine
Really? I guess I never noticed such a blatant hack since I do have an Xbox type controller.
Usually the low-tech solution offered by games is to let players pick which controller style they want to display. But that's only viable at a game level, not individual mods.
the number of Steam games that actually detect the controller and show the correct prompts instead of just the XBOX one is a single digit number
none in my library that's for certain
Do u have a psp controller to try
(source: PS4 controller user)
Ik the yakuza games did give button prompt options and would swap on the fly if u use keyboard+mouse temporarily during game
Swapping between controller and mouse prompts isn't that bad, there is actually a state to track the last input type.
Auto-detecting is definitely rare, hell maybe it's not even possible, but it is fairly common for games to allow customizing the controller type.
I was sure that Stardew had PS controller assets in there somewhere...
Unity's newer input system has built in detection for various gamepad types, easy enough to set up auto switching
The more annoying part is setting up the glyph swapping system
Yeah, look in LooseSprites/ControllerMaps, they're there!
I'll bet there's a configuration setting somewhere for the button prompts where you haven't looked.
The glyph swapping code is... okay, if you can just switch the entire texture or maybe an offset rect. Which looks like how SDV does it.
last I recalled it's a limitation of Steam Input API which basically abstracts away the controller hardware. Very convenient for compat reasons, but prevents you from getting the specific device
A couple games actually have a workaround to show PS prompts via disabling Steam Input
Ah Steam Input, bane of my existence
Steam input breaks as many games as it fixes, ugh.
Neither as a user or a dev has it been a useful addition to my life
I can see why it's convenient if you don't want to actually have to write the controller remapping code (even though it's really not that big a deal if you just design for it in the first place). But it also ties you to Steam, so...
Steam Input is useful for really exotic keybinds setups (like a mixed keyboard/controller/joysticks, which basically no game supports properly)
but who does that
maybe flightsims lol
Old meme, but I had to.
but steam input is sooo easy
I must have missed that. I was looking for instructions for specific items and AT, but didn't readily find anything. I'll keep looking.
@rancid temple just to make triply sure, I've altered my WIP mod so I can swap between the patched room and renovation room TMX files freely via the config, and when the wallpaper and flooring are consumed in renovation-mode (which is a separate TMX with the same floor and Wall IDs), swapping to the patched room shows the changes from the consumed wallpaper and flooring that were used while in the renovation version of the room.
The visual changes are only in the MapEdit patched room, but the wallpapers and flooring get consumed in both
So yes, I have confirmation that the ID setup is 100% correct there
@final arch @pine ermine i'm late but this is what my patch is doing. And the problem is not the annotations, I tested without them applying the patch by the Harmony object instance and didn't worked either. The breakpoint doesn't work because isn't even called.
Have you confirmed that it works without RSV?
yes, I only discovered it wasn't working because a user posted a comment. I tested they modpack and found it was RSV
My mod tracks quality of fish put on the Fish Pond, and then recovers the quality when fhishing them. I am sure it's this fishing rod patch because everything else works, the qualities are saved, and they are kept when clearing the pond.
what if instead of harmony you add a handler to FishingRod.pullFishFromWaterEvent
If the mod patched DoFunction to not call pullFishFromWater at all, then maybe the postfix wouldn't run.
Can be a solution, but I also want to know why RSV blocks this call, because it can break other mods.
did you try patch_summary
i forget if thats a spacecore thing or part of regular console commands
p sure that's smapi
how do I run this command?
Does RSV have source? There's no link for it on Nexus.
i don't know how it looks when you're doing a c# though 
