#making-mods-general
1 messages Ā· Page 331 of 1
There are some steps that I can't find right now tho
like you have to add yourself to a wiki and whatnot
also this
people here are so quick to put themself in a box and say they aren't good enough or cannot do something but the truth is you are plenty good enough (did you make something? that's great! this isn't a popularity contest!)
I got the mod author role with bagi mods, if you want to be orange just add yourself to the community wiki and you shall be cheeto
Here
to answer the original question, i'm not sure there is a mail flag for crafting an item
the game doesn't use mail flag data to track it afaik
I thought u do GSQ for that
you can GSQ if there's the recipe
well, I don't think it needs to be mail specific, more that I am looking to use it to get a mail sent. sorry if I explained it poorly
but i don't see one for "having actually crafted it"
The game does track somewhere whether you crafted something tho right? Whether that can be read/targeted by CP is a separate question
It does, but I dunno where that info is
I'm making a mod for soapmaking, and I want the first letter about 'tips' for how to get started to be sent after the player has crafted their first Soap Pot big craftable. I know that there's a flag for if a player has SHIPPED an item, so I assume there has to be one for if a player has CRAFTED an item, too. I just don't know where to find the information
on the other hand sounds like an obvious add to BETAS
i agree for the betas add if it's not already there
https://smapi.io/json/content-patcher/a3abc77f838748ffa1b9fbdef29749f1
now it seems to be mad about colons? and i don't understand that either. š line 17 and 55 have their colons in red on vsc. (once again i just copy-pasted from the wiki so idk how this is even incorrect)
you've got a rogue closing bracket line 16
Barley speeb
see if i delete that then i get a red bracket in vsc
select all the text in your window. then hit ctrl + shift + i
to format the document so easier to fix
line 55, pull that outside the array
i'm procrastinating going to my actual responsibilities
i'm not sure what this means
Condition is on the same level as RandomItemId, not inside it
ah, gotcha
In case you can't find a 'has crafted' mailflag (I don't know of one), a potential roundabout method could be to have a quest to craft the item and a mailflag triggered by the questcomplete's conversation topic
I was hoping to avoid having to do a quest to do this. it's a good idea for a work around, though. I wish I could find a list of flags, though. I know PLAYER_SHIPPED_BASIC_ITEM works for checking to make sure a player has shipped an item, so there's gotta be a flag for if a player has crafted an item
Dude i code-dived for you in the decompile and I can't find one
Nor does there appear to be a gsq
Sometimes vanilla just doesn't need it
I greatly appreciate you doing that. I'm sorry that there was nothing there to find
It is unfortunate tho
I guess I just thought it would be a logical thing to track since shipping items is tracked
Does BETAS really not have a gsq for it?
It could be a feature for BETAS tho if it isn't already
BETAS?
Search betas on nexus
Summoned
(it isnt in alreeady)
it can technically be done with BETAS in a very inefficient and hacky workaround sort of way
but i can add it if desired once im done with custom museum framework (very close to done)
Does better crafting have anything
(the hacky workaround being, use MenuChanged to detect the menu closing and then checking if the item exists anywhere in the world now (wont check crafts before BETAS was installed, though) and using BETAS Harmony to do the same thing but postfix clickCraftingRecipe (wont check crafts before BETAS was installed either)
actually yknow what if you were gonna use BETAS if it did have a GSQ for it, i can just add it right now
horrific, thumbs up
would it be a difficult add? I know the game tracks crafting recipes for Perfection, so it still boggles me that that's not a default flag
no its like 5min of work
The game doesn't need the flag so it doesnt have one
I know, but it boggles me still XD
This is worse than BETAS harmony i think
I mean, I suppose it's not even strictly necessary. I would assume that people downloading a mod would read what the mod is and how to get started on the basics before they use it
...one would hope
Sekundes you can make a guidebook if you want
Spacecore
Another idea is to make a crafting station (better crafting)
That way it's clear that your mod's stuff is here
there is a crafting station. I was wanting the mail to be sent when the player had crafted the Soap Pot, which is a Big Craftable
That's a reasonable feature yee
You can settle for just "learned the recipe"
Instead of crafted
Otherwise wait
the recipe is set to be a default-known recipe when starting the game, like how the recipe for a regular Chest is known at the start of game
I guess I could have it be learned on Farming 1 instead of start? or having Farming 1 be the trigger that sends the mail
Small chance the NPC sleeping next to them will "wake up" (doEmote(12)).
My mod titles are the most boring in the world so idk.
Certain NPCs Snore.
Some NPCs Snore.
"NPC honk shmimimimi"
Cinema.
yeah, I think what I need to do is change how I'm thinking about this, instead of trying to brute force what 'makes sense' to me. if I change the learning order, so that the Soap Pot recipe is learned at Farming 1, then I can also have the trigger flag for the mail set at Farming 1, and then that should fix my problem here, correct?
I KNEW I'M NOT CRAZY! IT DOES EXIST!
Now she appears finally! but she's not moving as intended for her schedule, being on this side of the beach while the brdge is not fixed has to do something with it?
Would it be reasonable to assume that after crafting it enters their inventory and thus you could use the GSQ for player inventory containing it to set a one-time trigger action instead?
okay, sure, it's not the exact thing, but if I have my stupid soap pot learned at Farming level 1, I can use this to get the stupid mail sent out
I'm just spitballing ideas here while I catch up on chat
no obligation to use it Sekundes (i was going to add it either way since it was easy) but the latest version of BETAS now has PLAYER_HAS_CRAFTED_ITEM and PLAYER_HAS_COOKED_ITEM GSQs
Still not doing her schedule
possibly, but I think I came up with a work around of learning the recipe on farming level 1 and then having the recipe being 'learned' be the condition that sends out the mail
thank you :3
Have you slept?
yeah? its just 8 PM here
Schedule changes in the code require either a sleep or a new save to take effect
In game
forged new sword
If they still don't move then you might have a pathfinding issue because the bridge is still broken, yes.
Nice! Just to clarify what I said before: any time you change the code or the maps mid-save, you have to either sleep one day in game or load a brand new save to update the schedule pathfinding
I didnt change her schedule, just started a new game
again, not having the bridge has something to do about it?
Pathfinding is determined during the night/sleep sequence before the game is saved.
maybe it's cause she doesnt have a sleep target
Do we have a command about schedule debugging? Iāve written out some common issues before but never saved it or anything
Just slept and shes going again to the same spot
This is her spawn place
The first part of her schedule needs to be the same by any chance?
- Invisible buildings tiles in the maps prevent walking
- You canāt make schedules start at 600 instead of 610
- Schedule points too close together means void walking
- Ambitious scheduling (re walking speed) means void walking
- If thereās multiple routes between 2 maps at the warps level it may take a longer route
Check your warps from that beach and make sure there's not a tile blocking it and that it doesn't make them walk over the warp back to the beach
- Coordinates are X = left right with right being positive, Y = up down with down being positive
ive heard its better start at 610 cuz sometimes it bugs when making an event
yeah shes spawns right where I wanted her
- There must be at least 2 schedule points
- Night time after midnight means 2am = 2600
(i think 601ā609 work too tho. not that im saying you should. just a fun fact)
Town - Forest - Saloon
These are just all the issues Iāve see before to see if any of them might be it, not that I suspect any particular one of these issues
Maybe its because theres no bridge on the beach, since its a new game, so it makes her walk over the water
I am suspicious of a tile blocking your warp to town, or your destination warp FROM the beach forcing the NPC to walk over the warp in Town TO the back
Could always add a NPC warp on the beach to test it
Ah yes if you canāt walk somewhere, they canāt walk somewhere
i could move her to the main beach
I MEAN, she does moves to the other side of the beach
That would probably be better, if you want her to walk
thereās a GSQ for having repaired the bridge
If you want her in the tide pool beach, you would definitely need to add an NPC warp until the bridge is repaired
how do I do that?
Iām guessing sheās just walking left continuously or some other bad result of schedules (often called void walking)
(Cause they donāt stop until they hit the empty void of space)
She walks to left and then down and stay there forever
Yeah my top guess after what you said is that because there isnāt actually a path to the exit, sheās void walking
there isnt a GSQ for the beach bridge, but there is for the ginger island bridge
There's a flag though, I think
most defnitely a flag somewhere
networldstate does not have beach bridge stuff
oh my bad, i thought it was for the beach bridge
(otherwise it would (possibly) be GSQ accessible)
actually i stand corrected, it is added to worldstateids
Once she reaches the bench, she goes down and stays forever on the south side of the beach
one moment, looking up a code block
(in that case WORLD_STATE_ID beachBridgeFixed would work)
the reason I put her on the beach its because she's a sea creature. She's from the anime Mermaid Melody Pichi Pichi Pitch, so other places might not fit her
IT WAS THE THE SPAWN POINT
Moved her to the main beach and she's going to town now
(huh, theres even an undocumented AddWorldState event command for adding to world state IDs... interesting. i wonder what uses that)
that's because she doesn't have a path from the tide pool beach, as we said earlier xD
I thought that, yeah, thats sad. Theres a way to make her only starts her schedule once the bridge is fixed? And appear on the map after it?
you can set her UnlockCondition to require t he beach bridge to be fixed if you dont want her to appear at all before then
if you use the condition buttons sent that should work
probably a dumb question but how do you set up dynamic tokens for setting up pronouns? I followed similar framework but someone mentioned to me that it's still giving "their" pronouns instead of "she" pronouns and she showed me that the pronouns are set right in the config
I've got the dynamic tokens wiki open rn too
Whoops, needed to pull AddNPCWarp
im looking on the wiki and I couldnt find it
"Action": "EditMap",
"Target": "Maps/Beach",
"AddNPCWarps": [
"63 5 Town 91 103"
]
}``` this *should* add a NPC Warp to the Beach
Please don't add that npcwarp. Npcwarps have higher priority than normal warps. Every npc will try to take that
no but Im asking about the condition for the beach bridge to be fixed
Good to know
Then it sounds like the best option is to indeed use the condition to determine the spawn point
do you want your NPC to not exist until the bridge is fixed? if so, put it under her unlock condition (where you add your NPC). if you want to change her schedule dependent on if the bridge is fixed, then look into conditions (am i remembering correctly that GSQs canāt be used with When conditions?)
So it'd be set via the Condition in your "Home" entry most likely, if you just wanted to change where she is until the beach is fixed but still want her to exist.
correct, GSQs cannot be used in CP When conditions without Esca's Modding Plugins
Don't know how, sorry
It'd go in your Data/Characters entry
See how "Condition" is an optional field in "Home" ?
That takes GSQs
if you change the Home entry to put her on the main beach beforehand, you'll still need When conditions to change her schedule, right? (/gen, idk much here) since theyll still be written as if she was starting at the tide pools
You'd want to set two separate entries in this case, and put the one with the Condition higher up so that it checks it first
I usually need a visual example to really understand stuff
Im trying to understand it tho
given that most of content patcher modding is all text/json based, visual examples that arent just more walls of text are really hard to come by
Could look at how another mod does it, maybe?
There are a few that use conditional homes
I actually manage myself just watching it tbh thats how I managed to make the NPC working again
The one schedule entry I saw from this instance didn't actually have her go back to the beach, so it might be a non-issue?
Im checking Return to Mineral Town one on Kai's schedule
I think I understand it but some stuff makes me doubt a bit
The spawn block is in Data/Characters, not in the schedule
So you'd need to look there for what I am referencing
the mod doesnt have that folder
In vanilla, you get Leo as an example:
{
"Id": "Valley",
"Condition": "PLAYER_HAS_MAIL Host leoMoved",
"Location": "LeoTreeHouse",
"Tile": {
"X": 5,
"Y": 4
},
"Direction": "down"
},
{
"Id": "Default",
"Condition": null,
"Location": "IslandHut",
"Tile": {
"X": 5,
"Y": 6
},
"Direction": "down"
}
],```
Who's Leo?
Ginger Island ParrotBoy
Aaah, never reached Ginger Island
Well, he normally spawns on Ginger Island ("Default"), but after a specific event, he gets a house in the valley, which is his "Valley" home
So I put that on the disposition json
So you'd structure your section of the Data/Character entry under Home like that
I think I got it
Something like this?
But I dont know what to do with the leoMoved or how to tell the code what I want it to check is the bridge
Your Condition for Bridge Fixed should be exactly what Button gave you earlier: WORLD_STATE_ID beachBridgeFixed

just like this?
Also you CANNOT use "Location": null for "Default", in this case, you would likely still use "Location": "Beach" but change the Tile coordinates to be the left side of the beach
i thought the new items jsut were the words like [SmokedFish] why cant i give that in an event when i do action AddItem [SmokedFish] 1 0/
[[Modding:NPC_data]]
Can you please clarify exactly what you want to happen, DaniKH?
thats what I was watching the whole time
If you just want her to not spawn in at all until bridge is fixed, you'd use "UnlockConditions" in the Data/Characters entry instead, as nic just showed in the screenshot
But use the same WORLD_STATE_ID beachBridgeFixed there
dunno the format
And then you don't have to worry about the separate Home entries
do you have the vanilla files unpacked?
Nope
At this point, you might be better off looking in the vanilla Data/Characters file to see how it's done. Kent has an UnlockCondition set
!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!
there shouldnt be brackets around the item id
(that said for smokedfish its a flavoured item and i dont think you can give those with that action anyway. but probably a generic smoked fish i guess maybe? also you can double check what the item ID is in Data/Objects)
oh yeah i was just checking data/object but didnt really get an answer and uh, oh yeah youre right bout the brackets woops ill remove them and see if something happens
generic smoked fish is all i really wanna give tbh anyway
IIRC generic smoked fish doesn't render properly (it shows as a "Smoked {0}")
PeliQ or EMC allows using item queries in give item actions
I think I got it
def having the game files unpacked is really a big help
Sorry for being so annoying with my dumb questions and thanks a lot for the help
The vanilla files are easily your best resource if you need working examples!
maybe I will just uh, give something else lol
I'm surprised it even has an icon
Yep, now if you unlock the bridge, the next day after you've unlocked the bridge, you should have her there.
hm, what can i give when the convo was about smoking fish....cant jsut be like yo heres a raw fish smoke it yourself
Go big or go home, give them a smoker /joking
Oh wait, its 300, not 100
Dani, do you have CJB cheats? you don't have to get that wood manually when you're testing
well, thing is my npc was like yo i smoked some fish you want some too
Give an entire fishsmocker
could give one of the jellies that craft the smoker
YEP! SHE'S THERE
"sorry, the law of physics doesn't allow me to give you one." then turns directly to camera and says "install peliq"
If u also just had some kinda smoked fish fillet cooking they can give that
or emc im not picky
or "here's some spare hardwood"
oh, jelly is a good idea. i can give farmer my custom jelly
And her schedule is working as intended, thanks a lot all of u
Is it okay to ask beginner modding questions?
always, yes
I am a beginner, never modded
Ran the modding guide from wiki, all works good
Next step mentions about decompiling the game code so that you can look at it and learn from it,
I assume that's a good idea but is it faster to learn from the source code of small mods or the game code itself
Are you looking to create a C# mod?
I guess so, wasn't aware there are other mod types
Or since you're a beginner and might not know that, what kind of mod do you want to make?
There are also Content Pack mods, for frameworks like Content Patcher or Fashion Sense, and things like that.
What do you want your mod to do/add?
Custom object that mimics the ability of workbench + more features that are based around inventory management
Yeah that'll be csharp
Sweet, just out of curiosity
What other mods don't use C# and how do they work
over 50% of all tracked mods dont use C#
Ohwow
other mods use content patcher and just use json
Ahh asset mods
Content Patcher packs (CP mods) can edit most content found in the base game (hence the name) where as C# is needed for changes to the gameplay mechanics and methods.
got it
content patcher can do a lot, but c# is needed for changing the game mechanics
what fireredlily said lol
Got it
if you're curious, this graph shows dependencies between mods, but has a node for every tracked mod there is, so you can see the disparity between content pack and C#
It's also not unusual to create a mod that has both C# and CP components, because Content Patcher does a lot of the handling of existing game methods for you.
There are also other framework mods like Extra Machine Configs or Better Crafting that may allow you to do some or all of what you want to do using just Content Patcher plus one of those mods. (not so much the inventory management, though)
It's very useful to look at other mods sometimes but frankly looking at the game code is more useful
Will look at this
Yeah fair, that's right
Thans guys ā¤ļø
what is the high concept here 
^
No that's more a functionality
Yes, but beyond that. What exactly are the additional inventory management features you're considering?
High concept is more like "i want to make crafting expansion" or "i want inventory qol to be better by adding these features"
oh, gotcha, just thought you missed the initial ask
all I see is another entering the clickCraftingRecipe trenches
You mean the cage death match
I'm out here doing one little event after another when all i wanna do is make more items and stuff lmao but i shot myself in the foot shoving events far away and doing the most fun parts first 
F
its like im doing the L gesture but in the mirror, sigh
question, can I make a sound reproduce in a certain moment of my NPC schedule?
took me so long to find it that I ended up asking chatgpt
So when I saw the workbench description before buying, I thought it took the items in the nearby chests and made them available and depositable from one object.
Which reminded me of Refined Storage mod from minecraft (thats why it took me so long to chat because I could not remember the damn name)
And because I did not read the workbench description properly, I did get a bit disappointed but it making me want to make something like Refined Storage in Stardew
Please stop trying to get ChatGPT to write your C# mods for you, especially if you don't know how to write C#. It won't work without heavy editing, and it wastes everyone's time.
Large language models fundamentally are reguritating something from their inputāwhich is roughly speaking, the written output of humanity up until 2021 or so, for ChatGPT. For specific, niche topics like "is this framework going to do what I want" or "which things does Game1.cs have access to", it probably has no idea! But it's good at detecting that people in the past have....said things about frameworks and written things in C#, so it does its best to assemble words and symbols into a nice order for you. Sometimes it tells you true things, and sometimes it tells you false things, and if you can't detect when, you're in trouble. When you're writing code, this usually produces garbage, because you can't be "sort of similar", you have to be exactly correct or it won't work.
no I was using chatgpt to find me the name of the mod
Why not just Google it
I tried so many variations, nothing came up
Iām literally in the same position 
a more involved storage system mod wouldn't be a bad idea, but it is one of the more difficult ideas to start with
Got it, shelving the "connected chests" mod idea.
Not really, playing specific sounds on demand is usually reserved for events.
Or C# trigger actions, maybe.
one of the buildings in my buildings WIP is a mass-storage building
I've been procrastinating on it though because art
yeah you do need spacecore
sameee i hate events sm but i left them till the end
This was my approach but seems to not be working
try setting music in Data/Locations instead
ElliottHouse has MusicDefault set to communityCenter, which according to the wiki overrides the map property
i mean the command might be that old but who really cares, it still produces absolutely garbage Stardew mod related code
which is the point of the command
Can confirm. Copilot only knows how to betray me.
Apparently today a new ChatGPT version got released
and it aint allowed in this server anyway
at least thats what some news popped out on my phone
its a good thing 50% of all mods arent made with a specific framework only found in stardew game mods then... wait a minute
This is my thumbnail for the snore mod.
Wamuu Pam mod
if you give it a framework to teach it and then use it in a mod, you arent going to be talking about it in this server anyway because it is, as mentioned, against the rules
the point is you're not supposed to ask it about stardew code period, which is what the command is trying to get the point across for
not working yet
(though it probably could be updated to mention the new AI rules that werent in place when the command was written, too)
post what you have
.
except I changed AudioChanges to Map/Locations
i dont really care enough to check
And I said it doesn't work, and to try what I said below
yes, post that then
that's definitely not how you do it
you want to edit ElliottHouse and change the music fields
ye
Like this
oh yeah audiochanges lol
one patch targeting Data/AudioChanges to load your music, one patch targeting Data/Locations to change EliottHouse
have you unpacked Data/Locations and/or read the Location data page
no, a separate entry
as I said, one Targeting Data/AudioChanges, one Targeting Data/Locations
add a new entry to Changes, with its own Action/Target/Entries/etc fields
Like this?
(i think you forgot the pic)
good start, but it's in the wrong place
autoformat your code, it should be obvious
I got an example for this
yep, looks good
In my case VolcanoMines is vanilla music
Now that you have the audio changes YuriPiano can be used same way
You probably want {{ModId}}_YuriPiano just to ensure unique key
seems a bit complicated right now for me, I wanna keep trying my approach first
next, add
"Fields": {
"EliottHouse": {
"MusicDefault": "YuriPiano"
}
}
Fields: same as Entries, but don't wipe the other fields that I didn't set
missing a } again
actually
that might just be formatting hold on
yeah it's correct nvm
won't that still wipe the rest of ElliotHouse? I thought you needed TargetFields for anything more than 1-deep
but do autoformat pls
It is 1 deep i think
whats autoformat?
MusicDefault is a top level string, so Fields is safe here
And i only used TargetFields cus i was editing deeper at first
Ah right I was counting the dictionary as top-level and got confused my bad
whatever button you press in your editor that reindents everything so stuff on the same indent level is on the same neating level
Music is for case where you want the music to be conditional
this is why I do my asset stuff in c#
If the music is unconditional MusicDefault is what u should use, like what selph posted
yeah I want to start small because they're very new
you seem to want music to play only during the times elliott's on the piano in his schedule, that would require adding an entry to Music instead of setting MusicDefault
that's where nesting/TargetField comes in
look at chu's example above to see what it looks like
(i am horrible person who wiped all the beautiful Music on farmcave sadly)
Not Elliott, my NPC
So the TargetFields needs 1 more levels here
I guess I did the autoformat? dunno
It's MMPPPYuri
Usually, they may or may not have CharacterData
Depending on what u want to do u can just put ur custom info in the CustomFields section
After that u can use the helper to just get CharacterData and go from there
I want to play a song during an specific moment of the day to make pretend that Yuri is playing the piano
In her schedule she arrives to the piano at 16:15
I dont have animated her playing the piano yet, so she's just standing there
Made a little outfit mod for my farmer!
you dont need two changes sections
oh?
they should be separate actions but they should also be under the same Changes section
i think you might have some extra brackets in there but yes more or less
these specifically can go
looks about right, im not the most knowledgeable about music modding so youll have to test for yourself but the json formatting is correct at least
any errors in the log?
Nope
At least not with my NPC mod
Maybe theres something wrong on the MapMusic.json I did?
Hey does anyone know of a good mod making tutorial video? I'm trying to use wiki documentation but I'm getting lost in the text š
unfortunately most video tutorials are outdated. what are you trying to do? there may be a written tutorial we can direct you to instead of a video one
Add a chest with custom logic and ui
Still haven't figured out how to just add a chest
maybe changing from Random: YuriPiano to simply YuriPiano?
without the brackets....
yeah i dont think the random is really doing anything there?
but i also wouldnt think it is causing your problem
ah okay that sounds like it would be a C# mod if you're trying to changing game mechanics. unfortunately i'm not a good person to help with that, but you can try looking at the decompiled game code or mods that other people have made for an idea of how to achieve what you want
Not working yet (Im aware in the pic theres an space before YuriPiano, it's fixed)
chests with custom logic and UI are going to require C# and you wont find a tutorial for that, even just adding a chest, bc its something you have to do entirely yourself. there is no just "add a chest type" function. however, you can try looking at Expanded Storage too
Yeah I know it's gonna require C#, I already know C# but can't find anywhere to guide me how to add items to the game
1.6 makes adding custom chests pretty easy. You don't necessarily need Expanded Storage as long as you're fine with them being mostly identical to vanilla. You do need C# though.
Chests are (initially) an asset edit to Data/BigCraftables
Adding things to the game is editing a vanilla asset to add an entry for your custom thing
heres somewhere to get started maybe https://stardewvalleywiki.com/Modding:Items
Whats an easy way to look at a set of sprites and modify them, like, one at time? Like if i want to focus on one sprite on the sheet then press a button and look at the next one
I don't think you should do both this and Location data edit
Not clear which one takes priority here 
thats what they said I should do š¦
I thought selph has been helping you with the MusicDefault approach
Anyways I'll try and write up the exact patch for u in like 40mins when im back on a computer 
that would be cool
I need to go to sleep by now, if you figure out what I did wrong, pls feel free to DM me
Also just as a heads up, some AudioChanges require a relaunch of Stardew to apply, usually, in case you haven't closed the game since adding the music code.
Ah it's a wav
Real name: Kiyoufu Shirabe
I tried wav and ogg
dont mind converting it back to ogg
Wav work still but it is recommended to use ogg nowadays for file size reasons
This is also true, cannot patch reload audio changes
I mean I indeed retry a lot of times so the relaunch was there 100%
Just to confirm, not just going to title screen. Completely closing the game.
Strongly recommend using .ogg
I do use ogg but thought that maybe was the encoding the problem so Ive tried wav last time
i want to introduce a new tool but this doesnt feel right
while you can subclass Tool you will have to deal with save serialization via Spacecore
theres a small handful of ways you can do custom tools but which way is best kinda just depends on what you actually want to do with the tool and how you feel about dependencies i guess
i mean i just want to have a hoe like tool
i basically copied and pasted the code from the game source and modified just a bit
but the tool is not registed in game for some reason
Yeah no you have to add it to item registery if you want to do that
Or data/tools or smth
what is this tool supposed to do
its like a hoe but it applies fairy rose to the affected tiles
do you care about having the animation
no i mean the swing animation
no i dont mind
anyways i'd avoid actual subclass of tool for reasons button already outlined, instead i'd do this
- create the tool object by editing Data/Tools
- create a buttonschanged handler that checks if you are holding the tool, and apply the effects
if you do create a custom subclass of tool you need another mod (spacecore) to not explode the game when you save
i cant find how to properly create entries for content patcher
why is everything so distributed 
wait then how can I edit Data/Tools without CP?
using the information on the page chu linked you
all CP is is just a C# mod that does this stuff for you
ik
oh wait
okay i think i got it now
i didnt get that "OnAssetRequested" was called for every asset
i thought it was on per mod hook
what about fields like attachment slot
thats for fishing rods mainly
Man, I hate learning. You realize all of the stuff you fucked up so quickly. That sucks.
i wanna say game will let you use it (bc it'd create your item as a base Tool)
but i have no idea so if you arent sure just dont provide it 
yes but i want to add it
when i created a subclass
it was easyyy
just add a check and define attachment slot count
try setting AttachmentSlots in the data then
ok but your subclass doesn't actually work 
well thats also why chu asked what you actually wanted to do with the tool. i cant think of why a fairy dusting tool would need an attachment
so it uses fairy dust as ammo
it is definitely possible to influence the number draw i feel
from the data
but yea i have no idea what happens if its not a fishing rod pls try and tell us
"Up to two bobbers"
no but ObjectData doesnt have that property
and i cannot cast it to tooldata
but you are using tooldata
you're not working with ObjectData you're working with ToolData
Data/Tools
yea this would probably blow up at runtime 
if you go to Stardew Valley/StardewValley/DataLoader.cs in the decompile you can see all the expected types
and it says Load<Dictionary<string, ToolData>>(content, "Data\\Tools");
i wouldnt clone any existing tool tbh, just init a new ToolData for yourself
okay lemme try now
What spritemaking program do you guys use? I want to take all of one color in a sprite and change it to a different color, but i dont know how
I use Aseprite. It can do that with color indexing.
Aseprite is a pixel art tool that lets you create 2D animations for videogames.Features
- Compose sprites using layers & frames as separated concepts
- Create images in RGBA or Indexed color modes
- Open/Save GIF animations, sequence of PNG files, etc.
- A timeline where you can copy/move layers, frames, or specific images
ā¦
$19.99
17224
Title result: Aseprite on Steam
also? yall have any custom npcs that might like the items from the mod i just uploaded? let me know and i'll add gift tastes in a future update :3
I recommend using GenericTool instead of Hoe
also you "override" them with Harmony
with prefixes that say "if this GenericTool is actually my tool do this instead"
or you just check player is holding tool in ur buttons changed event
that works too, though iirc generic tool will do some generic swinging anims if you dont override the appropriate methods
we can worry about that later, check if your gun can actually spawn the thing 
btw you should use {{ModId}}_FairyGun
just in case theres a second FairyGun adding mod for some reason
(and it would be a C# concatenation with this.ModManifest.UniqueID or equivilent)
yeah but again
how do i override dofunction
part
!harmony
Harmony is a framework for patching .NET code, allowing you to take any portion of the game's logic and insert or substitute your own. This gives you more flexibility and control than SMAPI helpers and events, at the cost of being typically more complex and difficult to use safely and correctly, and more likely to break with a future update of the game and/or SMAPI.
If you are trying to do something that isn't possible or practical with SMAPI alone, then Harmony is usually the solution.
For more information, refer to the following:
- Harmony Modder Guide - Intro, Use Cases, Initial Setup
- Tutorial: Harmony Patching - Types of patches and code examples
- Decompiling Stardew Valley - For finding methods to patch
yeah I am currently at that page figuring out
but without harmony how would I do it
I mean im doing it with harmony rn
but just curious
so what exactly happens atm if you try tool use button 
without any patches
looking at the code it seems like none of the paths actually happen as is
could be wrong ofc
if you dont subclass, and you do not use harmony, you do not override methods. you simply watch for the button pressed event yourself and do stuff in addition to the methods that are there, assuming they do anything (which they may not for a generictool)
(like I made the chicken milker months ago I don't quite remember why I used harmony instead of button events)
harmony is fun nd easy
300 udl easily the mod with the highest "effort per udl" among the mods I made
gods I hate tool code
It's not [that bad lol](#making-mods-general message)
giff me a break im a baby modder who hasnt even touched audio stuff
either way i recommend doing things incrementally
well why havent you. get to it
i need someone else to complain to about audio stuff
make sure your tool spawns as actual object first, deal with giving it function next
the only other one i know off the top of my head is ichor i believe
i can only complain to people with whom i already have some kind of rapport with
New quote added by atravita as #6407 (https://discordapp.com/channels/137344473976799233/156109690059751424/1250411604156223578)
We need more quotes to get to 6480
We also need 6480 to say quote able things around that time
New quote added by chu2.718281828459045235360287471 as #6408 (https://discordapp.com/channels/137344473976799233/156109690059751424/1380351066067177573)
alternatively, quote 6480's very first message in this server when the time comes
already a modder when joined... such power
im going to cry it doesnt hit the breakpoint
Where do you call that code
public override void Entry(IModHelper helper)
{
helper.Events.Content.AssetRequested += OnAssetRequested;
var harmony = new Harmony(this.ModManifest.UniqueID);
HarmonyPatch_FairyGun.ApplyPatch(harmony, Monitor);
}
Entry only happens once
yes and i apply the patch there
should that be enough?
because its the DoFunction of all tools that im patching
omg obviously the baseclass's dofunction is not being called
i should make the tool GenericTool
generictool doesn't override DoFunction does it 
then what is the problem
huh but the wiki says return true to continue the normal logic
for a prefix yes
thats for prefixes
your ApplyPatch function is where the patch is applied
you made it a postfix patch in there
there are several types of patches you can do (and you can do multiple kinds to same method all at once too)
each type has their use and quirks
ok nice now it errored out meaning the patch did work
thankss
wish there was another way then restarting SDV each time
- Content Patcher pack: enter
patch reload <your_mod_id>in the SMAPI console window. This will reload and reapply all your patches (but won't recalculate theConfigSchemaorDynamicTokensections if you use them). - Translation files: enter
reload_i18nin the SMAPI console window. If it's for a Content Patcher pack, also runpatch reloadafterwards. - C#: see the Visual Studio hot reload or Rider hot reload feature.
hm well u can hot reload some things, dunno about harmony patches though
yey
ooh
The patching? Nah
i am a neanderthal who just restart game every time so i also just make mod list small and use skip intro 
you can hot reload the code in the patch itself and you can apply a new patch out of an existing function whenever (Harmony.Patch doesnt need to be on game launch) but you cant write a new function and then use it as a patch at runtime
you can also unapply and reapply a transpiler
so you can pseudo hot reload a transpiler
okay my game crashed anyways
no need for hot reloading
waiit
so how do I conditionally apply the patch
cuz im trying to call Tool.DoFunction (as the base method)
which causes infinite recursion
the prefix will automatically call the base function unless you set it to skipping
so just don't call it?
its like writing some code that happens before or after the original
it is not inheriting anything
Anyone know of an open source C# mod that has good documentation that I can use as an example while learning?
while learning what
!harmony
Harmony is a framework for patching .NET code, allowing you to take any portion of the game's logic and insert or substitute your own. This gives you more flexibility and control than SMAPI helpers and events, at the cost of being typically more complex and difficult to use safely and correctly, and more likely to break with a future update of the game and/or SMAPI.
If you are trying to do something that isn't possible or practical with SMAPI alone, then Harmony is usually the solution.
For more information, refer to the following:
- Harmony Modder Guide - Intro, Use Cases, Initial Setup
- Tutorial: Harmony Patching - Types of patches and code examples
- Decompiling Stardew Valley - For finding methods to patch
Tutorial linked
Learning how to make mods
I should probably update the tutorial to talk about skip prefixes and finalizers
Remind me in 1 hour to update harmony tutorial
ugh I was about to take a nap. but fine barleyzp I'll stay awake just for you (#6718990) (1h | <t:1749177166>)
hot reload is not showing up on vs code
see https://smapi.io/mods, enable "show advanced info" for a list of mods with source code available
well that wont change the fact that VS Code is not a full fledged IDE and wont have it unfortunately
Rider is free now and i think thats on Mac? im not sure what mac people usually use
pick one of your favorites (that's recently updated)
meh
Oh, i have to reload the ttranslation file too i didnt know that no wonder i had trouvle
its so stupid that you can only use hot reload on vsc with processes that you start from the vscode
I recommend looking Pathos
If you want good ideas
If you want chaos check out my repo
But more serious
What do you want to do
okay, i've been trying to figure this one out for like 3 days, so i think i have to ask
does anyone have any idea why this keeps happening, and how to fix it?
i've only got one recolor - daisyniko's - with foliage redone's trees merged into the .pngs myself
i've triple checked there are no bits of the vanilla trees peeping under the modded ones on the tilesheets, i've tried looking at any other mods that i might suspect to have it, and i can't find anything at all, i'm losing my marbles over a frickan tree LMAO
do i just need to delete the tree off the game's .xnb?? cause i would prefer not to have to do that but at this point i'm not sure what else would fix it lmao
it looks like you did Overlay edit when you should do Replace?
do patch summary and send log
i hadn't changed daisyniko's code, but if thats it then its a super simple fix (i think)
still in the process to cleaning up mods and all, so pardon the messy log
Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Home, with 146 C# mods and 367 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
oh yea which tilesheet is this
oops sorry for the late reply-
it should be spring_outdoorsTilesheet.png
hm so
- yep daisyniko used Overlay
- it might be a pain for you to deal with updates if you directly merge the tree png, consider writing your own EditImage for the tree only
so i can just edit the content.json to replace it instead, right?
not sure if it would be better to just have it replace the tree or replace evrything
its weird cause i never had this issue when i used it in 1.5 lol
well i guess dn changed to using overlay at some point, who knows
you'd basically add a new "Action": "EditImage", in a cp pack and have it target the tree
!startmodding
Making mods can be broadly divided into two categories:
- Content packs are formatted text files, and don't need any programming knowledge. They can add/edit NPCs, maps, new items, shops, and more. To get started, see the list of framework mods, the wiki tutorial for Content Patcher, and there might be relevant guides on the tutorial wiki.
- C# mods use programming code to change fundamental game mechanics. See getting started with C# modding.
Usually itās easier to start with making content packs, since you don't need to learn programming.
i think daisyniko chooses to use overlay because if you dig into the assets for Maps you can see that the recolor only touches some parts of the tiles
so the solution here is an EditImage that targets the tree only, with PatchMode Replace and a Priority Late+100 (i did that for my cozy rustic kitchen, because dn's earthy interiors patch causes the kitchen tiles from farmhouse_tiles to override my textures)
Seems Nexus is prototipying new mod upload page... I'm guessing there's 98% chance we'll still be stuck with bbcode and generic UI as a bonus 
if anything 98 is too low. i can't picture a world where nexus accepts anything but bbcode
extra bonus: the current prototype is ai generated
Is it..? 
will it make the mod publishing flow not break every time I reach the articles tab at least
yep, generated with https://v0.dev
Explains it being as generic as possible I guess...
this sentence is taken from the pages of the Necronomicon
selph, rule 6! that kind of language is highly inappropriate /j
swearing at all of us 
"hey guys, we need a business model for our AI slop. have we tried doing NFTs about it yet?"
"people are still doing those, right?"
Ngl, this feels like an insult to Necromicon
not this specific one, but prompt marketplaces are, in fact, a thing
I looked them up to see
oh no
I'm genuinely curious what's the point of something like that...
the one I found seems really successful as well? I'm losing faith in humanity
You still had some left? I'm impressed
@rigid oriole: update harmony tutorial (1h ago)
i forgot i promised to do work ugh
Do it 
fineeeeeeee!!!!
some notes about it
- this uses a GSQ to check conds like so
WEATHER Here Sun: weather is sunnySEASON Springseason is springTIME 1614 1700time is between 4:10 and 5:00
- you have to enter the house while all the conditions are true to get the music, music doesnt start if u just inside for 4:10
There is code flows for updating the music while in the location
GameLocation.checkForMusic(GameTime time) which does check the location specific music in map properties and Data/Location
but has a bunch of criteria for it to be allowed
oh rly would it work if we rearrange the TIME
i wasnt too sure why they put 1614 in their original EditMap patch, but i reproduced it here
I made a mod!
Sort of
I have been making item bags for myself, and I'm cleaning some up and sharing them.
do u wish for a showcase
Hi, I'm looking to make an NPC for the game just for fun and because I wanna add more drama to the town because why not? So if anyone could help with making an NPC for a beginner I would appreciate it š
!npc
Keep in mind that making NPCs is a complex process that requires learning many different aspects of Stardew modding.
Here are a few links that can help get you started on all that you need to know:
-
Tiakall has a great tutorial on making a custom NPC for 1.6.
-
NPCs no longer use dispositions, check the wiki page for the new NPC data.
-
Aviroen has put together a template that will allow you to easily create a romanceable NPC.
-
Feel free to jump into the https://discord.com/channels/137344473976799233/1277457201077813280 thread for more interactive feedback and help!
-
Fireredlily has a WIP NPC Builder Please do report any errors you get with it into the NPC thread!
that should cover a lot of it
but bear in mind that making an NPC is a lot of work. none of it is like, technically challenging work, but its just a lot of it
tiakall's tutorial is rly awesome for npc making
mhm it takes so much effort & creativity and its just a LOT of content
Okay, thanks so much for the help š
That's what chu usually says and they use VSC (which I assume is what you're doing)
whats the difference between them?
this says VS but it should be applicable to dotnet build too
for me though there r some csproj things i locked behind the Release configuration
and i use the #if DEBUG macro to block off stuff that shouldnt be in release build
oh ive been putting the debug build on nexus... should i be worried?
the big thing you get from debug vs release is using macros to enable/disable code. if you're not doing that it doesn't make a big diff
(there's probably other stuff too i'm not aware of, don't @ me)
tytyty
Debug is also less optimized, and will leave in a bunch of nops for breakpoints
Debug tends to not inline things that release will for sake of debugging
can someone point me in the right direction for bundling an arbitrary file with my release when I use modbuildconfig?
I've spent a while in the docs but i'm not seeing it
oh i think u just use C# things right
i presume i add SOMETHING to my .csproj
Oh I can show you, hold on
This is in my .csproj
<ItemGroup>
<Content Include="LICENSE.md">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
</ItemGroup>
ew who uses .txt for their license /lh /j
i mean... it's not a markdown file š
but it COULD be
leaked mod name
the horror
practically doxxed
oh no, someone might steal the idea of *checks notes* captioning audio
@ivory plume Sorry if you already know about this but your ModBuildConfig page appears to have broken formatting in a few places (Detect Game Path, Install and debug your mod, Code warnings).
i thought licenses r not supposed to have extensions...
yeah but then computers complain there's no default program
I thought about that but I want users to be able to read the file if they want to
And I do not trust many users to know how to manage an extensionless file
what is wrong with windows
a lot
What does Linux do?
thanks for asking
linux uses magic numbers https://en.wikipedia.org/wiki/List_of_file_signatures
A file signature is data used to identify or verify the content of a file. Such signatures are also known as magic numbers or magic bytes and are usually appended at the beginning of the file.
Many file formats are not intended to be read as text. If such a file is accidentally viewed as a text file, its contents will be unintelligible. However,...
not having any of these or having the utf-8 BOM makes unix like filesystems assume text
and that's why i gave it an extension haha
Yup
You know this made me realize
All of the mysterious LISCENCE
Files
I couldve juiced them
??? Juice
*just clicked on them
LICENSE Juice...
New unhinged mod idea.
crab juice. license juice. endless possibilities
would anyone be willing to help me figure out what's going on with this person's bug? it's the "tiling errors" bug report
im not really a modder, i just have surface level ability to use tiled, and i recieved a lot of help from someone else to make the ability to config between maps. i don't have stardew installed right now (no space on pc right now) so i'm unable to test it myself but i do want to try and fix it if i can
i don't know why their map is glitching out like that, it's like the default tent tiles are getting scrambled
i suspect it's a conflict and something they have is modifying the tent map, but i don't have a smapi log from them yet (the only smapi log is from when i messed up the files on accident and the mod wasn't loading at all, which is fixed now)
Beautiful
we will want a log yea, but hm it looks like you packed some vanilla sheets into the mod
ok i can reproduce it 
don't they have to be there? i put the dot at the start that tells them to use the regular game ones
No, you should not be including vanilla tilesheets in your uploaded mod
i see
You keep them there while developing but then delete them prior to release.
alright ill make sure to do that
ok so you need to either actually have tiles to replace all the tenty parts, or just do a Load which im fine with given the mod's nature
linus's schedule seems to blow up too but im trying to figure out why first
the exterior editmap has a similar problem here
agh that's still a thing DX
alright
the way i did it is that it uses editmap to replace it with the .tmx
for the interior
well u need to actually remove the top tiles 
u can do this in editmap too there is special thing
yes i think i made it too small
unfortunately i gotta sleep now n cant help more
it'd be pretty annoying to fix this if you cannot test in game though, perhaps whoever helpd with config can assist?
sleep well!
i can try to dm them again, i believe i did a while ago but they never responded
I can help
i appreciate it
Switching the interior map patches to Load fixed the tent issue, but you'll need to edit the .tmx files in Tiled to fix the ivy issue and the fact that the farmer pops out into the wall after getting off the couch.
i think the ivy is just on the wrong layer which i can fix relatively easily
Yes it is a layer issue
there's a stool on the wrong layer as well
alright i'll switch it to use load instead
thank you!!
The couch bit is also a layering problem. Your wall isn't on Buildings.
gotcha, i'll fix that too!
Do you want help adjusting the outside or just want to send me the fix to test once you've done it?
you're welcome to help adjust it if you'd like to!
i won't be able to focus on it for a couple hours so if you'd like to by all means ^^
We can do it without editing the map in Tiled using MapTiles in the json
Kind of like you're doing with the MapTiles with the shack.
What setup did you have when he walked into the void, chu?
I have it set to Cabin, Cabin and...yup he void walked
Yeah I have the interiors set to Load as well, but haven't fixed any of the interior layering stuff in Cabin. I did fix Original Cabin and he walked ok in there.
Hmm, looks like it might be the exterior actually. Kept interior as Cabin but changed exterior to Shack and he left properly.
He is now hiding in a bush outside.
which layer should the ivy be on? i'm putting it on buildings so it can't be walked through but unsure if that's right. it's on top of the wall, which is on back
Yup, Buildings is correct for that
Or you could put the wall on Buildings and the ivy on Buildings1, but as long as it doesn't mess up the floor to have the wall on Back it's same-same
ahh you can have multiple of the same thing? that's good to know
And I see the wall tile takes up the entire tile, so you can't tell if there's floor underneath or not. So it's fine to have the wall on Back.
this is the buildings layer, i have everything that's supposed to be a barrier on buildings. should i change the bottom line of wall on the 2nd image to also be on the buildings layer? it's currently on front but i think you can walk through front
No, those walls are supposed to be on Front and then the void tiles below them should be on buildings
But your void tiles are not on Buildings so make sure you do do that haha
Please note that if you make a Buildings2 layer, it will not block NPCs or players from moving through those tiles.
good to know!
gotcha!
Yup, only the non-numbered layer has collision
Ok it's definitely the Cabin exterior that's causing Linus to void walk so I will examine that
Whoops sorry your void tiles were on buildings, I had noclip on because I was testing Linus schedule so I was warping to his house and quickly running into the void to make sure I didn't affect his pathing in any way and then I forgot I had it on xD
all good!
Ah, also, you're trying to remove the bush spawn to the left when the shack exterior is chosen, but that only works if the shack is chosen before the save starts. If any player adds this to an existing save or chooses a different exterior for save creation, that bush is still going to be there when they choose shack.
Chose shack before new save and no bush (left). Left the default settings until after save creation, bush (right).
I fixed the exterior of Cabin. You had an NPCWarp in the json that was sending Linus back into the interior as soon as he left, so he was just stuck inside.
Is there a way to fix this or should I just warn people about it on the mod page?
Would you mind showing me where/how to fix that?
warn on mod page and recommend "Reset Terrain Features" mod for existing saves
I will, but first: I assume the NPCWarp was there because when the exterior is "Cabin" you want the player to be able to click on the door to go inside instead of just walking in like with the Shack or Tent. However, that does not happen because the TouchAction warp is set in the Mountain map properties which you don't affect with your mod so right now the player walks onto the door to warp and clicking does nothing. You can see what I mean with my screenshot.
I am not sure if it's possible to remove that one warp from the Mountain map properties without causing problems. I don't think so, if I am correctly extrapolating from a discussion about not being able to remove a specific DayTiles map property from yesterday.
I don't remember setting this up at all so I think this might have been something the other modder who helped me out added
how would I go about fixing the tent being visible behind the roof of the shack exterior? I don't want to mess up the tree behind it but I also don't see the tent visible in your image above. Is that another thing that would happen if you put it on an existing save?
I've already fixed that part in the json and will show you that.
oh, perfect, thank you!
So you're not concerned that players have to walk onto the door to get into the interior?
It's not ideal but if there's not a good way to fix it like you said I suppose it can't really be helped?
Someone else might be able to jump in with a solution but it's beyond my current foggy brain.
all good! i appreciate all your help so far
So to fix both Linus's schedule issue and the tent being visible above the cabin, replace your exterior cabin patch with this one:
{
"Action": "EditMap",
"Target": "Maps/Mountain",
"FromFile": "assets/Outside/Cabin.tmx",
"ToArea": {
"X": 28,
"Y": 3,
"Width": 5,
"Height": 5
},
"PatchMode": "Replace",
"MapTiles": [
{
"Position": {
"X": 28,
"Y": 2
},
"Layer": "Front",
"Remove": true
},
{
"Position": {
"X": 28,
"Y": 2
},
"Layer": "AlwaysFront",
"Remove": true
},
{
"Position": {
"X": 29,
"Y": 2
},
"Layer": "Front",
"Remove": true
},
{
"Position": {
"X": 30,
"Y": 2
},
"Layer": "Front",
"Remove": true
}
],
"When": {
"Outside": "Cabin"
}
}
I've removed the NPCWarp and am using MapTiles to remove the tent and box tiles above the cabin.
You also need to fix your exterior Shack patch because right now it's trying to remove a tile from the Path layer and it needs to be Paths with an "s".
Finally, change the interior EditMap patches to Load instead and that should be all the json fixing you need to do.
Does this look alright? (I also changed the name of OriginalCabin to RusticCabin since I've been wanting to do that, I changed the file names accordingly so it should be fine)
I might have messed up a {} somewhere so I'm checking that
Looks okay to me. VSC is not showing any errors so I think your brackets are ok
Make sure you remove the vanilla tilesheets from the Inside folder and you can also delete the Rustic Cabin.tsx file that's in the Outside folder because it's not doing anything (though you will need to keep the Rustic Cabin.png file in there - or learn to use ATA which would let you use the Rustic Cabin.png file that's in the vanilla content).
Alright, I'm gonna pack the mod up. WOuld you mind testing it one more time? It's okay if you aren't able to!
Yup I can do that
Alright, here you go. I really appreciate it
@burnt dock You leveled up to Farmer. You're now a prettier shade of blue. Thanks for sticking around!
Ok I will test now. By the way I really recommend just changing the folder name to [CP] Linus'sCabin and then never changing it, because having a folder name change between uploads is going to really mess with some users' Mods folders.
ah good point, I'll do that before I upload it
Ah, you've included spring_outdoorsTileSheet.png in the Outside folder so make sure you delete that.
Completely overlooked it, oops-
You have introduced tilesheet climbing for the outdoor cabin and broken it. You need to open the Cabin.tmx file in a text editor, go to line 1527, and replace source="../Inside/.townInterior.png" with source=".townInterior.png"
Yes
Linus is still hiding under the ivy
However, he is now able to leave his cabin properly and there's no tent above the cabin.
Quick fix, alright
Alright, both issues should be fixed now with this one.
You renamed the zip but the folder is still Linus's Cabin-FileFixAttempt. Is that intentional?
Linus is in front of the ivy and no tilesheet climbing error. Hooray!
I really appreciate all you guy's patience and help <3 It's good to upload now right? (Once I fix the file name---)
Yup should be good to go
thanks again! I'm really glad it's finally working now
You're welcome!
oops sorry

i wanted to tweak which map the omni farm is replacing to like the vanilla one, or even maybe four corners maps? what would the file names be for them for the content.json?
thankies ^^
@somber cipher: wake up (1h ago) [Requested by itofu]
when json files are referring to "FarmType"- what are the options? I'm assuming "Wilderness" means monsters spawn?
That is a Content Patcher token. If you search this page for FarmType it will explain the options.
alright- thanks ^^
Custom farms shouldn't really be replacing maps and using the additional farms mechanic instead
@outer glacier
(
)
Hello, I have a question or more like a problem related to Stardew Valley maps (apologies if this isn't where i should ask this). I'm making my own mod and I want to change a part of the map with my own TileSheet (I'm using Tiled) wich works fine and all but stardew also has these so calles "TileData" tiles that warp you into a certain room, house etc. My problem is that when I copy the Edited map over to my mod folder and load into the game, everything except the "TileData" tiles work. Tiled is telling me that I'm missing "TileData.tx". Any help is appreciated, thanks in advance.
Can you post your log
!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.
not sure if this helps since the mod/stardew loads up fine
Log found, uploaded to: https://smapi.io/log/c7ef22bf3f5f4ac2bdbbb02b6fd27275
yes
Oh did you Load over Maps/Forest 
You would have bonked everyone else's edit (not that there is anyone else in this mod list)
as far as i know this is how to do that
To answer your initial question though TileData isn't a separate file usually, you create a grid aligned Tiled object named TileData and then you can put properties on this object
I think the only time I've ever seen a reference to TileData.tx it was because someone had somehow managed to create a TileData template and the game did not like that.
Anyways please do not load over all of forest, use EditMap instead to apply only what you need
Oh yeah Sage did that. Took a vanilla TileData, turned it into a template, imported it into their map. It breaks things.
I don't know why Tiled would be asking for a TileData.tx
(You should absolutely listen to chu and not Load the Forest map)
okay oof I did the stupid then. This is my first try at this
(Incoming Quill self-deprecation message?
)
It's not the stupid 
Like you said, you're a beginner, and this was a valid way to do things before editmap became more common
(And before more people started wanting to patch locations)
Reminder that stardew doesn't natively understand tmx files and wont do many of the fancier features
while smapi does provide a translation layer between tmx to become the native xTiles format, it wont do the fancier features (With the exception of tile rotation which gets encoded as tile properties and smapi has functionality to have the draw code understand and apply it)
Look, if I can't get myself to be kind to myself without self-bopping, the least I can do is get other people to try to be nice to themselves 
Here's a smol example where i put 2 chimkins in the sewer
In other news, it is done... at least the non-generic-drop-in version that's slightly specific to my repo: https://github.com/AlanDavison/StardewValleyMods/attestations/7592596
Is it overkill? Yes. Is it nice? Also yes.
Poor chimkins
What is it alab
so I basically only edit the part I want to change?
Yep that's the idea
Awwww, chimkin friends!
Yup and that lets other mods edit other parts without your mods fighting each other
I was admittedly imagining two chickens on a raft
tl;dr, GitHub will now build my mods for me, and provide a nice little attestation like that along with a file hash to verify that people can theoretically use to verify the version they got came directly from me.
Thank for the kind words š
Is this like Atra signing their mods?
similar at least
Oh, that reminds me, @calm nebula! I discovered something about the strong name signing! Did you know strong name signing actually only signs the manifest portion of the assembly, and not the actual code part?
What r some engines that do support tmx natively and does let you use the fancy stuff
alright i'll try doing that
other question tough. the tile data file for the door to the wizard tower is 1x1 tile big. my version of the door would need to make it 1x2. can i just strech the og tiledata tile?
Yup
Follow the info about snap to grid
Let atravita: Option <Distressed Cat>?
Yes
Wdym 1x2
I got a question. There is someone who wants to translate my mod, but instead of just translating the i18n default file and uploading it, they want to upload my entire mod. It feels a bit wrong to me, I would lose out on downloads and traffic, since you wouldnāt be required to download the original version. Is this a common thing?
It's not a common thing
Not anymore, nope
like this
Is there anyway I can stop them? They seem very hell-bent on doing it
That's not common and not advisable, and I would not agree to it
Yup, just tell them no.
I have told them no
Tell them you don't agree to the translation, tell them very categorically not to upload it, screenshot that convo and report to nexus if they do upload it
You can, but like chu said you have to turn on snapping to grid because right now your object is not the right size or in the right place.
Tell them you only accept i18n translations with just the i18n, and that's non-negotiable
Are they bad at english? It's possible that they don't understand what i18n is
Alright, Iāll gather screenshots etc and report if they actually upload it. I have made it very clear that I donāt want them to upload the whole mod, only the i18n
And ofc make sure you don't have stray plain text in your content.json & includes
They are Russian and use a translator and know how to translate i18n
last time I looked into strong name assemblies I dismissed it as a thing and glad that its mainly relegated to .net framework history, as its only job really was to verify it was the same library but different versions so it could safely be stored in the GAC and be able to be loaded in the same AppDomain as the same assembly but a different version