#making-mods-general
1 messages · Page 171 of 1
For help with modding issues, please ask in #1272025932932055121! When asking for assistance there, sharing an error log will help others identify your issue (see https://smapi.io/log for instructions).
thanks 😊
no, you need another section of your json to handle loading the image to the content folder
oh can you help me with it ?
it can be as simple as this though:
{
"Action": "Load",
"Target": "Mods/{{ModId}}/Test_sword",
"FromFile": "assets/Test_sword.png"
},```
I was typing that out but you're way faster xD
where i should put it ?
I stole it from one of my own mods lol (changed names)
Underneath the other "Action" block — send your json via smapi.io/json if you want me to show you
So it goes in the same json file, but added on top of your other thing that does EditData
im so bad i didnt understand smapi.io is a link 
the format 1.23.0 work so i dont think changing that now
The Format in this case is the version of Content Patcher you're using for the mod dependency. 🙂
you did it perfectly! I do recommend changing the format to at least 2.0.0
okay thank you, ill make that and test it (just add a map after)
out of curiosity, where did you find 1.23.0?
(we've been trying to see where people get that version number from)
on a youtube video dating of 2021
interesting! can you send the link?
yeah sure
Hey! In this series, I'll guide you through everything you need to know to make a Stardew Valley mod! In this episode, we make a content.json file and a manifest.json file!
Things I mentioned in the video:
#1 - SMAPI - http...
oh no, a video tutorial
😅 these youtube tutorials, huh
That explains a lot
x) he explain really good for following his 4 video (he made 5 but the last is C#)
This makes a lot of sense, we had been wondering
Video tutorials tend to become outdated very quickly, so there are some mixed feelings here regarding them.
I'm gonna leave a comment on the video about the format number, I think.
I'll never make one, but I trust Harvz to make something accurate (for the time of publication of the video)
I'm guessing people who are using 1.23 all come either from that video or LemurKat's old blog tutorial
there was also a modding wiki tutorial that used it too but I updated that now (and idk how popular it was)
{{ModId}} when it says that i need to put the unique ID of my mod like {{Author_NameOfTheMod}} ? or something else i dont see ?
Does this sound good for the comment?
For anyone coming to this video in 2025, please note that the "Format": "1.23.0" portion of the content.json template is outdated. The Format number should always be the latest version of Content Patcher you are using to make your mod, which at the time of me writing this comment, is 2.4.0.
I know CP is 2.5.1 now, but the parser is still recommending 2.4.0
anything with {{}} means it's a token, and Content Patcher will handle that automatically
so you should leave it as {{ModId}}
effectively its working i have the sword but not the texture
you loaded the texture but didn't change where you told the weapon to look for the texture to match where it was loaded to
Comment left
i love you so much i dont know what to do (my french humor could possibly take the lead of my speak)
that almost worked
what does your image look like?
you'll want it to be a 16x16 pixel image, that is .png
i made it png and 32x32
This one is too big
32x32 is too big ?
Unless you want to go through a lot more trouble, stick to 16x16
Most things in the game are built around a 16x16 grid
okay that not a big problem
I am not personally familiar with the mods (frameworks) that help you use bigger images than the game was designed for, but they do exist — you'd just need to learn how to use them and decide which one can help you. It's not as easy as using Content Patcher.
Is it possible to change the amount of bars required to upgrade a tool?
sure, edit the entry in Data/Tools. you can change upgrade costs and requirements for any and all tools
if you've unpacked the game content already, you can open up the file and peek at the vanilla setup
It looks like I can change the price but not the amount of bars required
Not true found it
find a tool that has a value for UpgradeFrom to copy from, and set ConventionalUpgradeFrom: null
i've a custom generic tool that behaves similarly to the trashcan tool, and UpgradeFrom works just fine on that
of course they may behave differently to the usual held-item tools, but that's something to discover yourself hahah
I'm already lost not sure what I'm doing
Not sure what you mean
I'm doing something like this, probably wrong
oh, i just mean that the game may handle tools like Axe and Hoe differently to Trashcan, which is the only tool that uses UpgradeFrom instead of ConventionalUpgradeFrom. tools are very very specifically handled behind-the-scenes
but that's something to run into when we get to it
it's wrong yeah, just needs a little reformatting
So I can change the amount of bars only for trash can?
Can you help me?
not sure, haven't tried! we'll find out once this is all put together
so following this chapter of the author guide, we'll use TargetField, since we're not just looking to edit Data/Tools: SteelAxe, but more specifically Data/Tools: SteelAxe: UpgradeFrom, which is its own {} object
https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide/action-editdata.md#target-field
oooh actualy no since we're adding a whole new UpgradeFrom we can just use EditData no we do need targetfield lol
following the style of the Trashcan entry you screenshart above, something like this should work:
{
"Format": "2.5.0",
"Changes": [
{
"Action": "EditData",
"Target": "Data/Tools",
"TargetField": [ "SteelAxe", "UpgradeFrom" ],
"Entries": {
"Condition": "..."
"Price": -1,
"TradeItemId": "(O)334",
"TradeItemAmount": 5
}
}
]
}
you'd want to find an appropriate condition to use here, there should be a GSQ for checking the current axe upgrade level
i don't have the unpack in front of me atm, just a web browser, so i can't do much more than fetch the CP docs
Shouldn't we just leave there like in vanilla?
I mean the condition
is it needed?
What is the gsq?
I don't know how to fill that
well the condition will just be null in vanilla since UpgradeFrom is also null
if there's no condition, the upgrade is always going to be available, but we want the upgrade to only be available if you're at a certain tool level
But that's already like that in vanilla. Why if I don't change it, it still require me to fix it?
it's using ConventionalUpgradeFrom in vanilla, so it's handled automatically with a specific number of bars and money and conditions
if you want to change the number of bars, you have to account for the rest, too
Ohhh I got it
but i'm looking at the wiki page https://stardewvalleywiki.com/Modding:Game_state_queries and i don't actually see a query for tool levels
So it's a dead end
there's a trashcan level query 
By the way I deleted the condition field before and tried the mod like that
It's not like appearing always
Didn't work
you could use PLAYER_HAS_ITEM (T)SteelAxe maybe, but that'd require the player to have the item in their inventory
i don't remember if you already need to bring the tool to clint directly when upgrading so it might be fine
ahhh perfect
I took out the format as I use the command include
Actually should be if player have copper axe
that looks good to me, but again i can't exactly test any of this atm
alright there might be a second Changes entry needed
{
"Changes": [
{
// the other upgradefrom
},
{
"Action": "EditData",
"Target": "Data/Tools",
"TargetField": [ "SteelAxe" ],
"Entries": {
"ConventionalUpgradeFrom": null
}
}
]
}
that's fine, the iron bars are 335 or 336 or something
if the game uses our new item/quantity i'll call that a win
we just need to get it to ignore the conventional behaviour first
I should have seen 10 copperbars but didnt so still didnt work regardless of that I guess
Like this
nope
keep your existing changes entry how it was, and add the one i sent above to the list
you did not 🙏
Where?
{
"Changes": [
{
// add specific upgrade behaviour
"Action": "EditData",
"Target": "Data/Tools",
"TargetField": [ "SteelAxe", "UpgradeFrom" ],
"Entries": {
"Condition": "PLAYER_HAS_ITEM (T)SteelAxe probably"
"Price": -1,
"TradeItemId": "(O)334 or 335 or 336 or something",
"TradeItemAmount": 5 /// or more
}
},
{
// delete conventional upgrade behaviour
"Action": "EditData",
"Target": "Data/Tools",
"TargetField": [ "SteelAxe" ],
"Entries": {
"ConventionalUpgradeFrom": null
}
}
]
}
more like that
Player has item you put again steel axe
Ahahah that's a fair point of view
you ate a bracket somewhere
{
"Changes": [
{
"Action": "EditData",
"Target": "Data/Tools",
"TargetField": [ "SteelAxe", "UpgradeFrom" ],
"Entries": {
"Condition": "PLAYER_HAS_ITEM (T)CopperAxe"
"Price": -1,
"TradeItemId": "(O)335",
"TradeItemAmount": 10
}
},
{
"Action": "EditData",
"Target": "Data/Tools",
"TargetField": [ "SteelAxe" ],
"Entries": {
"ConventionalUpgradeFrom": null
}
}
]
}
This is the code
you're missing the player condition PLAYER_HAS_ITEM <player> <item> [min] [max]
How do I add that
ooh right, should be PLAYER_HAS_ITEM Current (T)CopperAxe
but innnnnn any case i think i need to reformat the thing
{
"Changes": [
{
"Action": "EditData",
"Target": "Data/Tools",
"TargetField": [ "SteelAxe" ],
"Entries": {
"ConventionalUpgradeFrom": null,
"UpgradeFrom": [
{
"Condition": "PLAYER_HAS_ITEM Current (T)CopperAxe",
"Price": -1,
"TradeItemId": "(O)335",
"TradeItemAmount": 10
}
]
}
}
]
}
this is probably what we want
Also a comma after the condition I think
absolutely
wtf why is upgradefrom a list
"ClassName": "Axe",
"Name": "Copper Axe",
"AttachmentSlots": -1,
"SalePrice": 2000,
"DisplayName": "[LocalizedText Strings\\Tools:Axe_Copper_Name]",
"Description": "[LocalizedText Strings\\Tools:Axe_Description]",
"Texture": "TileSheets\\tools",
"SpriteIndex": 196,
"MenuSpriteIndex": 222,
"UpgradeLevel": 1,
"ConventionalUpgradeFrom": "(T)Axe",
"UpgradeFrom": null,
"CanBeLostOnDeath": false,
"SetProperties": null,
"ModData": null,
"CustomFields": null
},```
updated this to use a list
no worries! if you want to change all the other tools, you'll need to copy that same Changes: [ { ... } entry over and over with different TargetField and UpgradeFrom values
just make sure to validate it online via https://json.smapi.io to check for missing commas and such
(dont copy the "Changes" part)
Yeah I just copy for each one. I Was just wondering, If I want to change the price as well, I can just put like 1000 instead of -1?
Ahah I know thank you
The requirements to buy this tool from Clint's blacksmith tool upgrade shop. If you specify multiple entries, the first one which matches will be applied.
(from the wiki, emphasis mine)
widely used feature im sure
that doesn't tell me why.
ca added at least 2 more messages to this chat with that change
was it rly worth it
Hello guys, how do you do a drawObjectDialogue with npc portrait? Edit: figured it out, it's just drawDialogue
idk what "the first one which matches" even means in this context tbh
condition waterfall, i'm sure
but that doesn't even make sense for upgrades? bc (if I'm understanding correctly) you'll still only be able to upgrade from one item at a time
maybe I'll test it out later and see what the exact behaviour is
i suppose you could have an entry that costs 10 bars by default, or 2 bars and a chicken if you've got 10 hearts with Flint
flint
or if you've received some Magic Mail, you can upgrade your Copper Trashcan into a Steel Cereal Bowl instead
sounds pretty fun actually
well, costing a chicken might not be within the scope of this actually. Might have to be a cp thing 
on tuesdays clint won't even offer an upgrade if you like. go ham
capitalist clint charges you more for upgades as an overdraft fee if you're low on cash, or maybe he doubles the price of upgrades if your hearts with emily are too high. the world is your clint
triple the cost in winter. peak upgrade season. what are they gonna do, upgrade their tools themselves?
endless plausibilities
This would be DIABOLICAL. I'm here for it
I can imagine there being an event triggered after gifting Emily a bouquet. Walking into the shop and he's VISIBLY not having it then grumbling "hm... times are rough... i gotta raise the prices. you understand, right?" It's a fun scenario to think about
Hello. This is my first time translating a mod for Stardew. I had experience with other games before. But it doesn't help much, because I'm a humanitarian :)
$29, $13 and similar values are repeated many times in the text. On the wiki, I was able to read that $1 - $6 are responsible for portraits. I also figured out that words like {{word}} are listed in another file and I can understand what it's responsible for. But I don't see where I can find other phrases with "$" yet. Let's keep quiet about "$18#$b#". I hope I won't need something like this.
if you're married to emily he requires 3 prismatic shards per upgrade
is the mod you are working with i18n'd?
yes
there can be more than 6 tokens for some characters - I think going by the wiki, $<number> is always a portrait
then i guess they left the control characters in the i18n files 
u will have to just disregard these im afraid
here's the wiki list, though i assume u read this already
so $18#$b is "use portrait 18 then put a break in the dialogue"
i habitually do this for portrait selection and e/b breaks, since i consider those things to be part of the writing and i want them in the same place if i am making edits
Yeah, I would just leave them in the i18n as-is
same as if you see any other commands beginning with $ or #
@whole raptor Hey, heads up about your i18n converter - it apparently doesn't read events as events if you have linebreaks in there (which events can do now.)
If you're still here, one more question, please. Is there a way to quickly check what will be displayed in the game after a certain command? I mean ${lad^lass}$. Not sure if it will be ok with another alphabet.
if you have the modded game open, you can open a dialogue box with arbitrary text using debug commands. in your SMAPI console, type:
debug speech Lewis "put your text here, ${lad^lass}$." and hit enter.
switch focus back to the game and the dialogue box will open. you can use any NPC you want in place of Lewis and you can paste in the dialogue line you want to test.
huh wait are you supposed to leave all the #$b# in the i18n or not
Thanks!
it's not best practice to leave the dialogue commands inside of the i18n
it's up to you, just like everything else 
like i said, i like to leave them there because they're part of the writing, from my perspective
i'm just lazy 
.... 
well ill keep them in
no harm...
At the same time it's not worst practice 
i think code should be separate from logic
because, like above, translators will look at it and possibly accidentally translate things like #$action
but i also recognize ppl who actually write npcs dont want to chop up their dialog
is code not logic
i expect SDV translators to understand how dialogue is put together enough to avoid chopping out the #$b#s
mood
i do separate out stuff that isn't part of the actual dialogue, like quickQuestion separators etc. i just consider portraits and box breaks part of the text
you need a comma after your } on line 18
and similarly on every copy-paste entry after that
Thanks! I'll work on a PR and consider your suggestion. The one challenge to this helper method is that the id should remain consistent between sessions since it affects the player config. But otherwise, I think it'd be perfectly reasonable for me to add a shortcut method.
how do you queue dialogues?
This seem to only render the last dialogue:
NPC harvey = Game1.getCharacterFromName("Harvey");
Dialogue dialogue = new (harvey, null, "Test");
harvey.setNewDialogue(dialogue);
Game1.drawDialogue(harvey);
Response response = new("test", "test");
Response response2 = new("no", "no");
Game1.drawObjectQuestionDialogue("test", new Response[] { response, response2 });
you want a choice question box type thing from C# right
tbh this might be the kinda thing easier if you just wrote a event script
I can get the choice box working with just the 2nd part and the harvey's dialogue working with just the first part, but if I have both, only the choice box is rendered and harvey's dialogue is skipped

I have not messed with event script yet, gotta look that up
well that's exactly what you told it to do. you said drawdialogue, and then you said drawobjectquestiondialogue instead
yeah that's why i was wondering how do you queue the msgs
besides that maybe u want createQuestionDialogue instead?
it takes a string question then the responses
mm let me see how createQuestionDialogue works
dialog also has the $q thing
public void createQuestionDialogue(string question, Response[] answerChoices, string dialogKey)
{
lastQuestionKey = dialogKey;
Game1.drawObjectQuestionDialogue(question, answerChoices);
}``` seems to just call `Game1.drawObjectQuestionDialogue` internally
e.g. alex's daily dialog question
"summer_Wed": "Hey farm guy, I've got a question for you.^Hey Farm girl, I've got a question for you.#$b#$q 52/53 summer_Wed_01_old#Do you think I'll ever turn pro?#$r 52 30 summer_Wed_01_01#You're destined to be a sports legend#$r 52 0 summer_Wed_01_02#Maybe, if you practice a lot#$r 53 -50 summer_Wed_01_03#No, you'll most likely fail and become a salesman",
this is more complicated than I thought
i assume u can use the C# Dialogue class for these
Let me look up event script thing
overall it is area where, there is a lot of tools for doing things from content
Your worst case is to queue the question via the closed delegate of the first menu
so u might as well take advantage
Don't ask me for details, I'm grocery shopping after work
even if u r in C# for whatever reason
I dunno i just started with the example mod on the wiki, tbh I still dunno how to use content patcher or any other frameworks yet. I've only have 50 hours of stardew play time and 40 of them is me messing with making mods in C#
im sure other ppl told u already but content patcher is just a C# mod that does content editing for u
yeah
sometimes it's just convienant though, to not have to do all that manually
hence why some mods ship both a C# part and a content patcher part
Is there a way to edit a vanilla map to warp to a custom map? I'm creating a custom farm map and every time I try to edit the bus stop map warp it still teleports me to the wrong place
I see, in this case, what should I edit?
I'd recommend spending more than 10 hours in the vanilla game before you start making or even using mods, personally - it can help you a lot to know what exactly you want to change and how it fits into the game
if you are also editing the bus stop map, use caution. i'm fairly sure spouses are still hardcoded to warp from the farmhouse to the appropriate coordinate on BusStop, so make sure it's still passable
identifying what you want to see in the game is the best way to get into mod making
also, editing the bus stop will a) conflict with like a million other mods that edit it unless you're careful, and b) if you add/change warps, can cause npcs on the farm
Im just using my harvest moon experience and winging it xd
if you make a mod that you do not intend to use yourself, it will feel like a chore to create and update, and it will not be as high quality as it could be
the secret ingredient really is love
I see, thanks for the help you all
(unless it's a throwaway meme mod)
without playing vanilla, you won't know what the game already has implemented or what actually gets unlocked later! which is especially an issue for if you're making more complex mods, which it sounds like you are. If you're just adding cosmetic items, then I'd recommend not using c# and using frameworks instead
it's working, im just polishing it and adding flavour text
shitpost mods also run on love. it's just that it's love of posting, and not necessarily love of the thing
nah I'm just making a sickness mod that has a chance to give you a sickness debuff if you spend too long in the rain or stay up too late. I just want to add some flavour text to harvey when you talk to him while sick
the love of committing to the bit
warning u both ur on thin ice for copyright violation with these posts
the mechanics of the mod already works 
we weren't questioning your ability to make the mod so much as we were recommending experiencing more of stardew so you know what fits in before you make a lot of mods tbh - I believe you that it works!
that's fair. I just rarely play any game vanilla
Is there a boolean check for "is the game currently in a cutscene"?
(Specifically one that won't catch festivals but will catch heart cutscenes, jas and vincent at the sewers, etc. Ones where you don't have control over your character)
!Context.CanPlayerMove probably
You just check if game1.currentevent is not null and if game1.currentevent.isfestival is not true
Game1.eventUp && !Game1.currentEvent.isFestival or something like that ^
(for example, you already do get an energy penalty the next day if you stay up too late, so your mod will be essentially adding yet another penalty on top of that)
there's also an IS_EVENT gsq you can look at
in summary, there are a few things you can check lol
yeah but usually i just eat a berry and im a okay again
that's fair point tho
I've not made it past summer in my actual game yet
Is there an easy way to trigger a cutscene for testing? Feel like there should be a debug command or something for that
debug ebi

This one didn't work, interestingly
This one did though, thanks all for the help
Ah, it doesn't work if the line break is between / and command
that does seem to be the issue we were running into!
I keep crossing things off my mod's todo list and somehow it keeps not getting any shorter 
the saying goes there are two parts of any project: the first 90%, and the second 90%
Honestly at this point there's only one item on the list that really needs to get done for my mod to be usable, but it's the one item I've been avoiding doing because it's going to take a lot of work
(Everything else is just extra convenience functionality and a very minor bug I need to fix that's unlikely to come up regularly during normal gameplay)
I has a question...
Between Map Music
Data/Location Music (not MusicDefault or MusicContext)
and
Data/LocationContexts DefaultMusic and Music
Is it for priority:
Map Music>Data/Location Music>Data/LocationContexts Default Music>Data/LocationContexts Music
?
I am not sure if I am making sense 9-9
Okay I saw somebody mention that you can scale smallfont, how might you do that?
Pushed an update, should work now
it should be an additional parameter in DrawString, if you hover the method or start adding to the params with a , then VS should show the full params list for any overloads
fonts (like all other sprites) generally scale quite badly though if you aren't going by increments of 100%
fairly sure drawstring uses 1.0f as the default scale, since it's applied to the default game scale of 4i
I don't have VS sadly, I'm working in vs code which shows me that there are overloads but not what they are 
I can find it though
if you're modding on Windows i'd suggest getting VS Community
if nothing else, at least you can build the mod without going through the terminal lol
alternatively you can get ILSpy and decompile StardewValley.dll and check out the methods yourself
you can even view in C# and select Save Code to export it as a browsable C# project with (roughly) the original file structure, meaning you can click around in VS/VSCode
Anyone recommend a trouble shooting for when an i18n file just doesn't do anything even though it is a valid Json and the text you're telling it to change is correctly formatted and is genuinely copy pasted from the thing that does work?
@ivory plume after some additional thought, I decided to add an API method for an id-less icon with the understanding that the id-less Add/Remove methods would affect the same icon instance.
I submitted the first PR for LookupAnything: https://github.com/Pathoschild/StardewMods/pull/1075
id recommend sending the json and log
I haven't modded in a long time (like four years...) So I have a very specific random map question about the greenhouse. I know things have changed a lot since I first made my many greenhouse variations. How is the warp from greenhouse to farm handled these days? Is it still a map property? Is it still directly to a coordinate on the farm? Or is there some convenient sorcery that's been added to make modding easier? TIA!
and being more specific about how it is not working (is something not even trying to use i18n or is it saying it cant find the translation?)
and checking that you're not trying to use an en.json
so the greenhouse is a building now
you make a normal Warp property on the inside map
and on the outside the building door logic magic it for u
So like. If I'm editing the greenhouse map and setting up the warp to the farm, is this correct? This is what I had originally from wayyyyy back. Not even sure if that's the correct location on the farm at this point tbh. But I just want to make sure that's how it's done still.
the destination coord does nothing
I'm not, I'm on linux, hence the no vs
Building is like the easiest thing about my setup though lol, there's a keyboard shortcut for it
I do have stardew decompiled already though which is why I said I can find it :)
Okay cool. Should I do anything to the destination coord? Or just leave it there to do nothing lol. What's best practice?
I am trying to get the reminisce function in the mobile phone to correctly display the name I want the events to have. Each event has an internal name, and then the i18n is supposed to change that internal name into a displayed name (This is for Tsundere Alex, so the one I'm using is his intro event, with an internal name of TsunAlex-1-Heart with a desired displayed name of "Introduction (one Heart)") but there are no errors, and the displaied name is still the internal name.
Gimmie a sec and I can get the two jsons and the log, I'm just angry that the i18n is doing absolutely nothing instead of at least popping up an error or something so I have a thing to go off of
Yeah. Wasn't sure if I should set it to something specific to futureproof it, or if it's fine as whatever. Thanks for the help! I'll probably have more questions as I get back into the swing of things lol.
ah, well, those kinds of mods cannot be discussed here
so you'll have to remove any of the actual content
which might make it kinda hard to troubleshoot
What do you mean they can't be discussed here?
i thought the rule was against yandere. are they the same thing or
i don't know what they mean lol, i just assume they're different
they are, and maybe tsundere ones are okay? idk im not a junimo. depends on the specifics of the content i suppose. im not wholly familiar with them myself
OOOOHHH Yea this has nothing to do with the actual Tsundere or yandere stuff, it's just getting Events to show properly
From highest to lowest priority (i.e. the top-most is used first):
Data/Locations Music
Data/Locations MusicDefault
map property Music (which isn't meant to be used anymore, but still works)
Data/LocationContexts DefaultMusic
Data/LocationContexts Music (only before noon, if it's not raining, and if there's no default for the context, according to the 1.6 migration page)
It's honestly pretty complicated, but basically: use Data/Locations for area-specific background music, and context for the lower-priority ambient music that might not always play. And yes, the default fields don't match names or priority. 
sorry for the confusion
tsundere is almost certainly okay to discuss on here. if the -dere part gets too spicy, though, you might be in trouble
although, really, if any mod gets too spicy you are in trouble
No it's ok, I was really confused for a moment because this has little to nothing to do with the actual Dere part of the mod, it's just getting events to show in the phone so I had no fluffin clue why it might have to do with anything
If we're worried I'll get the RomRas one up because that is not a particularly spicy mod and as of right now I'm pretty sure I'll still have the same issue.
Oh blessed vv I gotta write this down on my forehead
i mean if it was the other kind of dere, it wouldnt matter how much it has to do with it, they cant be discussed. the content/words wouldve had to be removed from the logs before sharing them, iirc
but its moot anyway
but also, i noticed you said you're trying to change the internal name of something?
for what reason?
looks you in the eye
Carolina Reaper
No, I'm trying to get the displayed name to work, because it's showing the internal name not the display name I'm trying to get the i18n to display
Thanky Esca, I go commit music crimes
As it is right now I might well just say forget it and use the display name as the internal name so that I don't have to futz with the i18n if it's not even going to throw me a bone with a flippin error message
well i wouldnt say that before sending a json
Well I mean the Json is just
https://smapi.io/json/none/719d8d692cba4b41828fb904468b07d0
like... there's so little to it... but there's nothing more to put to it
There is no content Json for Mobile phone stuff...
Like...
This is for the actual mod I'm modding... No content.json, they don't ask for one when you're adding stuff... and the events show up, I just wanted to use the i18n like they do to alter the display name... which isn't working so shrug
what do they ask for? im not familiar with mobile phone, but that i18n folder is just going to be for the actual MobilePhone.dll mod itself, and if nothing in there is going to ask for your keys, its not going to get them
You put the events in a folder assets/events, name the jsons in there with the character's display name... and there's a structure for adding the events... Then if you wanna do an i18n you throw it in the i18n folder under default.json and go to flippin town.
There's not a lot of documentation that I can find on the whole thing so I'm going off another functional mod and the original stuff they have in the phone mod...
But like I said before. I can fix this by cheating and making the internal and display name the same thing... so I guess I'm just gonna do that.
I just figured I'd use this to figure out the whole... i18n thing and it's still as greek to me as it was at the begining so Meh. I'll cheat
well i18n itself is a very straightforward system, but the implementation is completely up to whatever framework you're using, which is however the author decided to write it that day
aedenthorn mods weren't all that well supported even before they left the scene, as well
yeah i was looking at the mobile phone mod and i dont really get the system so. do whatever works i suppose
So I seem to have discovered XD
Any idea why this is a star? It should be "="
Is "=" just converted to a star in smallfont?
yeah
Oh well that's not helpful
Whatever's clever right? Aaaand now that I've swapped them it works fine. So if it's stupid and it works it's not stupid
What other things get converted?
plenty of stupid things work just fine until they don't
random special characters mostly
Is there a list somewhere?
Oh that might actually be +, not =
Wonder if = is fine
XD yeah, but there aren't any life altering possible consequences so I'll take my chances giving this the ole Harvey try
Plus is fine, which is good enough
I was hoping it would link to the exact section lol. But the special characters section lists all the conversions
https://stardewvalleywiki.com/Secrets#Special_Characters this is the exact section in question
(so be careful because +s DO have special side effects)
Thanks! The rest of those should all be good, I'm using a bunch of special characters for key labels but not any of those. And I'm guessing plus doesn't actually make a sound if you're using it as printed text elsewhere, only when input by the player?
there's no telling tbh, someone would have to check exactly how that part of the code works
I don't hear a sound at least when I load it up 
since the = did get replaced, I would try to double check haha. But also the page I linked is a general wiki page not a modding page, so who knows if the two things are actually related
I'm not a reliable source necessarily (hearing loss) but tbh even if it did make a sound, it'd be fine I think
things that get replaced typically do because they're used somewhere in the game, by the way, and I know that SVE adds/changes some of them
Hello again! I am still stuck with my hat mod, and I can reproduce the same issue with another user's hat mod - the 'show real hair' value from data/hats isn't working from their mod either. Could this be a Content Patcher issue, or is it an issue with my game?
The correct value is passed through to data/hats, it's just that the game won't listen!
It's not a problem when copying the string from a vanilla hat, so I think it's something to do with the custom sprite value
only happens specifically in TextBox.RecieveTextInput
Well if SVE randomly changes my text I'm fine with that tbh
I might try editing hats.png with EditImage and see if that fixes the problem
Out of curiosity, not as a solution
ty button!
Update: It does!
So, for my hat's data string:
"RainHood": "Rain Hood/Optional extra for your rain coat./hide/true//Rain Hood/0/{{ModId}}\Hats"
the bolded dynamic token doesn't fulfil the bolded 'show real hair' value
But I fixed it by adding my hat sprite to characters/farmer/hats and calling its sprite number:
"RainHood": "Rain Hood/Optional extra for your rain coat./hide/true//Rain Hood/131"

taking a break from my current struggle bus (writing an event) for a forbidden treat: playing a day of stardew
blasphemy
(As much as I joke about orange names never playing I do think when you stop playing is when you slowly start losing touch.)
I agree. Sometimes you can get so carried away with modding that you forget that the player is gonna also pay attention to other aspects of the game too
Thanks! I made a few tweaks and added one comment for discussion.
Now I'll always know at any given moment what the best place to fish is. 
Should I report this hat issue as a CP bug?
I guess "proceedPosition farmer" doesn't work like it does with NPCs? It only waited like 10% of the route in the event I just tested before moving on.
Went to bed and then had to get up again because I figured out a way to make my config file nice and neat and couldn't sleep until I'd implemented it 
Now I've got a bunch of custom config classes to categorize my configs 
Good job! Now go to bed!
@indigo yoke can I offer a suggestion on your EXP Control mod to put "Experience" in your title somewhere? It's impossible to find searching "EXP" because of all the "expanded" mods.
done
darn, still waiting for LoC to update to use spacecore's learning recipe system instead of it's own T_T I don't want to make like an unpatch or patch someone else's mods to just be able to make a compatibility thing.
what's a good soundbank ID for a punch / whack?
Fishslap best whack sound
i wouldn't hold your breath on that
so you're not going to switch to the inate level up recipe system and just keep the one you made?
oh that, i thought you meant spacecore recipes
uhhh well you probably wont suffocate if you hold your breath on that one but like get a scuba tank or something
I guess invasive patch for compatibility till it happens then?
I would have done a PR but their github doesn't look up-to-date with some features it seems like they done since the release. or at least the public github.
master is the most up to date branch atm
uptodate with the release version yes, but wasn't there a BC + LoC update that was being worked on? I remember you and khloe talking about it ... I think around December 15th.
if it was a simple translation PR or something like that I wouldn't mine doing a PR, but I don't want to do a PR that changes a chunk of things while someone is working on an update.
Is there a working mod that shows what everyone's gift preferences are
Lookup Anything
selph beat me to it
also fyi #modded-stardew is a better channel for those questions
this channel is for making mods, while modded-farmers is for general modded gameplay (and has more people there playing the game)
Sorry thanks
I've been banging my head against the wall with this event and no matter how much I tinker the fade doesn't seem to work right
It starts to fade out, then flashes back unfaded, then fades out again. Is it because I'm doing a changeLocation? How can I fix this? showFrame farmer 5 emote {{Russell}} 16 globalFade viewport 1000 1000 warp {{Russell}} -1000 -1000 warp {{Shannon}} -1000 -1000 changeLocation {{ModId}}_Jail viewport 1000 1000 warp farmer 14 10
globalFade always just end when it's done
If you want it to "remain black" you have to set the viewport out of bounds
Usually something like -10000 -10000 does wonders
Then when you're ready to fade back in you do a globalFadeToClear and set the viewport where you want it
OK well I'm doing the viewport 1000 1000 which should functionally be the same as -10000 -10000, right? I'll try the globalFadeToClear
the thing I don't understand is it's doing the snap back to unfaded before I change the location
https://smapi.io/json/content-patcher/3ed179b86e014f77a6a4277bc34af29a
im back, where i should put the 2nd part
and how ? pls
uhhh so my map is like 20x20 but for some reason changing the viewport from 1000 1000 to -10000 -10000 did in fact do wonders. I'm baffled but thank you.
Pretty sure it's the negative numbers that do it
this should be the usual order https://smapi.io/json/content-patcher/ebfb224c0306420e9e1ad74368852ad0. CustomLocations is deprecated and it would be better to use the newer method https://stardewvalleywiki.com/Modding:Location_data#Simple_location, but i think both still work
anyone know any mods that do weird screen visuals or anything?
like tinting colors when you eat a food or stuff like that
yeah no probleme, for this part of my code i follow a tutorial dating of 2021
I think you really need to find a new tutorial
With how fast things in modding changes, a tutorial from 2021 is very out of date and will trip you up in places
Can someone point me to either an example mod to look at or a wiki or something to help me figure out how to change the pieces of furniture that spawn in the farmhouse when a new game is created and their locations? I'm floundering a bit and don't really know where to look.
there is a map property related to it at least https://stardewvalleywiki.com/Modding:Maps#Farmhouse_interior. not sure if it's as simple as editing that
Interesting... that could work, potentially. Do you know where I'd find the furniture IDs I need for that?
I assume there's a list somewhere
probably from Data/Furniture, by unpacking the game files
!unpack if you don't know
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!
I couldn't find it in the game files, but I did find this and I think it's going to be incredibly helpful to myself and others so I wanted to drop the link. If that's not cool, Junimos feel free to moderate with full force lol! https://mateusaquino.github.io/stardewids/
that link is often posted and it's fine and not against any rules, though it's worth mentioning that the IDs from that site are just from the unpacked game files
I know they had to come from somewhere, but I couldn't for the life of me (and with the level of patience I have today lmao) dig deeper to find them when I couldn't find them in Data or Maps or anywhere intuitive.
they are just in Data/Furniture like Kristian said
That thing helps me a lit too
It’s so much easier for me to see and browse…
Plus i can quickly hop through the tabs, instead of mining through the files! It’s an executive dysfunction thing.
This all might be futile anyway - I just did a test, and despite me specifying the position of a piece of furniture in that map property, the game still loaded the default set of farmhouse furniture when I started a new game 😭 The issue I have is that the TV in particular spawns right where I'm trying to place down a little starter kitchen, so I wanted to be able to tell the game to spawn it somewhere else and add some other cute little furniture tweaks to the beginning house. But this might not be the way to accomplish that. Or I'm just doing it wrong, which is also always a possibility. Further testing required, but also further advice apprecaited.
Yeah I worried about that too.
im not 100% on that but i feel like i remember that being the case
I know back in the day when I was actually actively modding and first created this mod, it was a whole thing and I basically had to just have people manually move it around after spawn. But I was really hoping there was a way to do it after all these years 😂
actually its just the bed thats hardcoded
Huh. So this should theoretically be possible.
I swear that I saw something about being able to list out furniture and locations in a map (though I know the farmhouse is it's own whole thing, so it may not apply anyway) using JSON when I was going through the mountains of information that is the Stardew Modding wiki and github trying to make up for being gone for years. But I can't find it again now. I didn't even remember this map property existed until Kristian reminded me of it above.
Blergh. I certainly decided not to ease back into this with easy problems 😂
Well. Okay. Time to experiment more. Can anyone explain the rotations part of this to me? The wiki didn't say anything at all 😦
thats how many times the furniture will be rotated when its placed
i do not know which way it rotates
Yeah, I figured. The questions I had were: What's the default value for just forward facing? If I go up by 1, is it clockwise or counterclockwise? Do I use -1 to go the other way?
I'd guess if I want it forwards, I'd use 0?
i assume 0 is facing forwards
you do not use negative numbers
it will simply rotate it as many times as the number you wrote
I think I remember some map properties did back when I was modding more, so I wasn't sure.
From what I recall of the furniture tilesheet layout, objects will rotate to face right on a single rotation
anyone know the path of least resistance to making a clothing item that provides a buff?
when worn
hi !! ive gone through the stardew mod commissions site but i was just wondering if anyone knows some modders who can help out with making a marrigiable npc (using content patcher probably)
By "help out" do you mean give you advice about what resources you can use to make one yourself, or do you mean someone you can pay to do the work for you?
pay to do the coding work for me
well
My first thought would be spacecore's onitemequipped buff trigger
most of it
Well, we're not allowed to directly advertise here as it's against server rules. Is the comms page on the wiki not proving helpful enough somehow?
and id be willing to pay for just help with figuring it out honestly
sounds promising
it is helpful i just wanted to know if there were any people that other would reccommend working with !!
i understand if its against the rules !! thanks
Well, I can tell you that of the people who are listed under CP code on the website, it looks like Avi (Aviroen) is the only one who has that she does full NPCs and you can trust her to do a good job, imo. She's very fast and has written several NPC mods already and has an entire template for an NPC mod available.
!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's Avi's template at the third link there if you want to see what she has done.
yes i dmed her !! thank you ^_^
tysm !!
omg this is so helpful T_T
tysm
Thylak might also be a good option except he hasn't been around for a while so I don't know if he's currently accepting comms. He doesn't say he does full NPCs but I am pretty sure he can (whether he'd accept a commission for them, I'm not sure).
Arknir is a very accomplished NPC creator too (creator of Lucikiel and Lavril on Nexus) and makes very advanced events. Again, not sure if he'd take a comm for a full NPC but he is active.
thank you !!
And finally Pau hasn't advertised herself as being able to do the CP code side of an NPC but I think she's underselling her capabilities so she might be worth contacting too.
Buffs from worn items - These are in asset in spacechase0.SpaceCore/WearableData,
I would put myself on there as I am also primarily an NPC creator but I am insufficiently reliable to do comms haha
hmm, guess this exists but an example file sure would help
Should be some examples floating around in this channel from someone recently trying to get this working for rings. Let me see if I can find for you.
Looks like we have some example code from Casey herself for it #making-mods-general message
rad
that is perhaps all i need, neat
probably should do that stuff AFTER i finish up this bigass animal mod i've been working on tho lol
i understand that haha
do you have advice on where i should start? you totally dont have to answer btw
like with dialouge, art, code,,, etc
where do i begin
😅 i have a question, are there flags to check which of the seasonal foraging bundles have been completed, and can i use them as conditions for unlocks?
Vouching for Avi as well 
If you're considering giving it a go yourself, start with learning how to make a little mod in Content Patcher that just changes a vanilla NPC's dialogue or changes their portrait. That gets you familiar with how to read and write CP .json files (I can point you in the right direction for some resources for that). Then read Tia's tutorial for making an NPC (first link in the "Creating a Custom NPC" box from before) and maybe cross-reference that with Avi's template and/or fireredlily's NPC builder tool.
as a person dabbling in NPCs, i'd just start with figuring out what you want to do
events you want, character aspects etc
ooh okie thank you
i see !!
can i have the resources for that?
I have found the coding part of NPC creation to be pretty easy and the creative stuff to be hard, personally haha
!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.
im just the opposite T_T
so just to confirm
i somehow made a whole house and stuff and then stalled the hell out on dialog
npcs are made with content patcher right
and c# isnt for npcs
i have no idea what the difference is between the two actually
ahh
There's no step by step tutorial for specifically making the sort of mod I suggested, I don't think, but if you read through the wiki information about Content Patcher and try to find a little mod that changes some dialogue or a portrait and then attempt to modify that it should help you.
CP is mostly easy to learn, C# is actually coding
got it thanks !!
good lord I can't remember, can we comment out sections of our JSON? 😅 It really has been forever, and I don't remember the syntax very well at all. I feel old.
Content Patcher is just a C# mod. anything Content Patcher can do, you can do in C#. but its easier to use Content Patcher for things that it can handle because of all its nice features
Not quite. The game is written in C# so if you can write C# you can achieve...many things. Including creating an NPC! But Content Patcher is a mod that lets you basically write content for the game that it then feeds to the game in the format the game needs. (Disclaimer for knowledgeable people: I am trying to say this in a very simplified way, I am sorry if it's slightly inaccurate!)
yes, use // for single line comments and /* */ syntax for multi line comments
THANK YOU.
It's important to know as well that although the members of this channel will generally try to encourage you to look at the available resources and other mods to learn what you can, we're also happy to help explain things that people don't understand or suggest tips for doing things in a better way and so on. Questions are always welcome! We also have the #1277457201077813280 thread if you ever feel like you want to ask NPC stuff but feel like this main channel is moving too quickly.
oh im glad i was worried id annoy ppl with all my questions T_T
ill check out that thread too thank you
as long as you're making an effort and not just looking to make people do free work for you, people will not be annoyed
got it
Ahhhh! I finally got it working and I need to celebrate/explain/rant lol. It was a whole freaking journey, and we were going in the right direction but it was more complicated, becuase of course it was 🥲
Because the FarmHouseFurniture map property isn't applied to the farmhouse map directly for some reason, I couldn't get anything to spawn. It's apparently applied to the farm map itself? Idk man, CA does weird things sometimes. But like. On the actual tmx farm maps, there is no such property??? And I couldn't find it anywhere that would make sense in the Data files. So I had to try a lot of things and nothing worked. But I finally found the blurb I remembered about using Content Patcher and the EditMap action to edit a map property in your content.json! So I managed to edit the property that way, and it replaced the default furniture spawns, giving me the desired result of a cozy house with a small kitchen upon spawn 💜 As an unforseen bonus of doing it this way, I can very easily change the furniture items that spawn in for each farm if I want, or just give people a config option for a different set.
Most of the vanilla maps don't have the property, they rely on the hardcoded defaults
But Farm_Ranching has it
It's kind of a "don't fix what's not broken" policy lol
Farms and the farm house are probably the most complicated map based stuff you can mess with
A lot of specific issues and rules around their functionality
I know, I remember them being a huge headache back when I was actively modding maps a few years ago. My memory is slowly coming back to me about the pain points 😂 And I have to laugh at myself, because jumping into the deep end with harder things is very typical of me.
"Oh, I kind of want to start dabbling in mods again. Let's do x thing."
hi Froststar 🙂
Hey guys! Just a quick dialogue question.. I’m making a 2 npc mod and they’re brothers, so I wanna make sure I’ve got the dialogue down for bouquet rejection if the farmer is already going out with or married to the other brother. The wiki says
“RejectMermaidPendant_NpcWithSomeoneElse: the NPC is already engaged or married to someone else. You can use {0} in the dialogue for the other player's name.”
My questions are 1. do I just replace “SomeoneElse” with the name of the other brother?
And 2. What does it mean by use {0} in the dialogue?
Sorry if these are dumb questions. It’s my first mod and I’m learning along the way.
Also on a similar note. The wiki example for “FriendsAndFamily” is “inlaw_<NPC>”. I tried adding this as “FriendsAndFamily”: “brother_Name” to data/dispos but smapi says it can’t apply data patch for that entry. I also tried “little_brother_Name” as little_brother is an entry in character strings but that didn’t work either. 🤷🏻♀️
HI OH MY GOSH 💜 Hope you're well! Feel free to DM me to catch up! 😄
That rejection key doesn't support specific names, so it'd happen to any proposal if they're already married to anyone, without context. If you use the text "{0}" in your dialogue for that key, it'll get swapped out with the NPC's spouse's name. For example, if you added this dialogue:
"RejectMermaidPendant_NpcWithSomeoneElse": "I refuse. I'm already married to {0}."
The game would display something like this when a player proposes while your NPC is already married:
I refuse. I'm already married to Player1.
check the unpacked data/characters and imitate what it does there
Ohhh right. I misunderstood the meaning then. Thank you so much for clearing that up!
I just saw your message (sorry that it's a week later) and actually fixed it this time 😅 I must have skipped config page when I was adding escaped characters handling, it should work now if you're ever gonna need it. Feel free to ping me if you find any other bugs
@shut edge This is Goat's json to use spacecore's wearabledata buffs with rings. It's slightly incorrect here in that he had BuffToApply instead of BuffIdToApply and was using unqualified item ids when they should've been qualified, but is otherwise correct I'm pretty sure (because it worked after he fixed those two things). https://smapi.io/json/content-patcher/a0b4070651d44544b793d0c99daf8f90
appreciated
qualified here would be adding (O) right?
"(O){{ModId}}_PrismarineRing": {
"BuffIdToApply ": "{{ModId}}_FishermansBounty"
like that?
Thats an o right?
yeah
I thought I'd check the pins for a guide first but I guess not. What's a good place to start with making my own mod? I have some coding experience, but not with c#. My experience is primarily with JavaScript but I imagine that is not helpful herem
There’s a hello world type example on the wiki
!startmodding let’s see if this is the command I want
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.
Second bullet here
javascript can actually be helpful if only for the json experience for content mods
and depends on what you want to make you can go pretty far with content mods
I just want to change what some of the professions do
If you want to make SMAPI mods with C#, one important resource is decompiling the game to read the game code. Here's how to do it: https://stardewvalleywiki.com/Modding:Modder_Guide/Get_Started#How_do_I_decompile_the_game_code.3F
Thank you so much! I'll get to work with learning the basics of c#
@ivory plume if you want help with the mod-compat-github, I'm willing to review PRs there!
avoids modideas though
I'm having trouble to find the documentation on how to make a mod work with ModRegistry
is there a guide that I'm missing? 
ohhh, yeah I wasn't aware I was looking for APIs technically
it was right there all along 
Thank you!!!
is it possible to make my custom npc crawl...?
You could always make a crawling sprite, but you would need a framework to allow yourself to have sprites wider than 16*32
so its possible right?
im not gonna work on it immediately but i just wanted to know !
Walking animations are just a serie of pixel art, so of course you can simply draw them crawling
yay thank you
However, usually sprites are 16 pixel wide, it's a bit too narrow to comfortably draw a person laying on the side
There are framework that allow you to bypass these limit tho
i dont find other tutorial, there is always some reason like: i dont understand everything, the tutorial have bad explanation and sometime there is no tutorial, if you can help me find one or two i will be sure happy
We don't really have a lot of tutorials for making mods in Stardew. If there's not a recent tutorial for what you want on the modding wiki (https://stardewmodding.wiki.gg/wiki/Special:AllPages) then there probably isn't an up to date tutorial, usually. We make do using the wikis, looking at other people's mods, and asking questions.
Confusion?
About the i18nifier not working with escaped quotation marks in the config?
Can anyone tell me where/how to specify a custom npc’s winter star gift? I tried adding “WinterStarGifts” from the wiki to my dispos file but it didn’t like it, maybe it’s meant to go somewhere else? Can’t seem to find any more info on it
You can check unique winter star's custom gifts. I'll try and backsearch an example though
Use the SECOND code block in this as an example on how to patch it in without adding it in Data/Characters itself
The syntax within is the same for if you natively patch it in
You keep saying dispos file and referring to data/dispos, can you confirm that you're following a tutorial for 1.6 and not an outdated format?
And again I would check your unpacked data/characters file and imitate what's done for vanilla characters
Oh damn. Are you saying disposition files are outdated? If so then yes 😣
Keep in mind that making NPCs is a complex process that requires learning many different aspects of Stardew modding.
Here are a few links that can help get you started on all that you need to know:
-
Tiakall has a great tutorial on making a custom NPC for 1.6.
-
NPCs no longer use dispositions, check the wiki page for the new NPC data.
-
Aviroen has put together a template that will allow you to easily create a romanceable NPC.
-
Feel free to jump into the https://discord.com/channels/137344473976799233/1277457201077813280 thread for more interactive feedback and help!
-
Fireredlily has a WIP NPC Builder Please do report any errors you get with it into the NPC thread!
Oh thank you so much!
Good catch 6480, I wouldn't have cottoned onto that
did a tutorial tell you to use them by the way? just so we know if something needs updating
thank you, could you send a link to that please? we can have a look at updating it
I think this must be where I found it but it’s the same as the link posted just now above
which one?
So, you're interested in creating a new character for Stardew? Good news: with version 1.6, creating a character is easier and allows for more flexibility than ever. However, NPCs are one of the more complicated things to create for Stardew, as they have a LOT of moving parts. This guide aims to provide...
thanks!
Oh, I think there's some confusion - the tutorial is actually up to date, it just calls something "dispositions" which isn't the old dispositions feature. Everything in this tutorial should be up to date as far as I know (@brittle ledge, can you confirm?)
Hello. I have a question. I saw this information on the wiki before, but lost it. If i18n has a default folder, and there should be folders for other languages, what should the file in that folder be named? Just default or also as a language abbreviation?
There is a folder there because there is more than one file in it.
Ohh okay. If that’s the case then I am up to date!
There's a guide here:
https://stardewvalleywiki.com/Modding:Modder_Guide/APIs/Translation
with the file names
it also mentions how to separate them into folders like you wanted
exactly, I didn't notice that there was one
not me but the author of the mod :))
Dispositions aren't outdated, they just changed formats significantly in 1.6. The tutorial you linked has the 1.6 info 
That's probably the biggest change in NPCs since 1.5 so definitely don't refer to old tutorials (before March 2024) for that.
Sure! Since that repo tracks data/changes and is deployed live to the server, there's a few extra considerations when handling PRs though.
We need to...
- Enforce the repo guidelines and unofficial update guidelines. For example, one of the current open PRs should be gently rejected.
- Rename PRs to keep a consistent commit message pattern in the Git history and be clear about what it changes, which makes it much easier to review changes later.
- Perform a squash merge (not regular merge), and edit the auto-generated commit message to remove the commit list and/or clarify the specific changes if needed.
- Push the
releasebranch to the top ofdevelopto deploy the changes live.
If that all sounds fine, I can add you to the repo. (I can also document this stuff in the readme for future reference.)
@next plaza FYI it seems Content Patcher Animations broke in the latest Content Patcher 2.5.1 update, since it used reflection to access the unused EditImagePatch.LastChangedTick field which no longer exists (see sample log).
kay
In order for a tutorial to exist, first you need a modder with:
-a comfortable understanding of the content
-a desire to write a tutorial
-time to write a tutorial
The center of that venn diagram is small indeed 
And that's to say nothing of keeping the tutorial up to date!
The content patcher docs r decent tutorial though
You need to understand the concept of "edit content to put my stuff in the game" but after that any unpack asset is example to follow
Quick question about event IDs for my mod: I've been using placeholders but am almost ready to publish it. How do we make permanent event IDs so that there is no conflict with other mods?
I think usually people prefix it with the nexus mod #
At least that was the case in 1.5
Ok perfect. So can I keep the mod private on Nexus until I've swapped the IDs around?
Yeah
Tysm!
now that they're not numeric anymore you can use mod IDs
don't use integers
Ah yeah that's probably better
you can run out of numbers
Wait really?
do not, do not, do not use integer ids for anything unless it's absolutely unavoidable (secret notes is the only thing that comes to mind)
All of the mods I was using as an examples used integer IDs, so I'm glad I asked
in 1.5.6 it was mandatory. in 1.6 we are finally free
Library books
old mods that existed before 1.6 typically leave theirs alone and are grandfathered in, but there's no reason to do so now
Bad question, but do you have an example mod that uses string IDs for events? Reading the wiki helps, but I learn better by looking at someone else's stuff usually
!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!
Vanilla still uses integer IDs I thought?
mine, for instance, but it's not exactly barebones: https://github.com/ichortower/HatMouseLacey (see CP/data/heart-events.json)
Im gonna seem dumb BUT- Im totally new to modding I wanna make a mod to change basically the entire post-marriage system, now I know how to extend the game logic and to patch assets thru content patcher but I never saw any proper documentation on how to get around changing the game logic. So basically what I wanna know is how to learn to do that 👉
👈 I concluded that that for the most part of the NPC behaviors post-marriage I might wanna switch it to my custom code as schedules probably won't cut it unless I can make them read from my dynamic strings instead assuming I can even change those mid-game (omg it ended up so long dont eat me)
Thanks! I appreciate it
!decompile
If you want to make SMAPI mods with C#, one important resource is decompiling the game to read the game code. Here's how to do it: https://stardewvalleywiki.com/Modding:Modder_Guide/Get_Started#How_do_I_decompile_the_game_code.3F
!harmony
Here be dragons. Venture forth with bravery, young warrior, for thou art alone in these dark lands. See the Harmony wiki page for more info.
ah shit harmony patching
(as good a time as any to mention the new human-readable event precondition format, which lacey also uses https://stardewvalleywiki.com/Modding:Event_data#Event_preconditions)
I was afraid of that
You will need to use c# with harmony to change the game how you want to
You may not need much harmony depending on exactly what you want to do
well- basically probably? just to change NPC tryloadschedule() and to load a completely different block of code if married
The marriage stuff is pretty hardcoded
But i think spacecore(?) has feature to make a married npc follow previous schedules
I don't know yet how it will be possible, but I thought that I can either make use of existing schedule code but use dynamic variables or need to write a completely new AI for the things I wanna do with those
You can change your spouse's married schedule already through ContentPatcher, but it sounds like you want something much more involved?
well as I said, the difference is I want to make it dynamic
keep in mind when you are looking through the game code that spouses have no schedule (null) on the days that they stay in the house. they just wander randomly
doesn't null simply default to some schedule?
anyone here know creating AT packs pretty much inside and out? I need a hand and would appreciate any help 🫶🏼
basically I don't want to just change the schedules like for example immersive spouses does, I want them to do things in specific ways depending on variables for example walk up to any given tile, tile x, and tile y being dynamic and changed by certain conditions. Basically giving them a bit of an AI instead of following a string of set commands
you can load different schedules based on different conditions but they'd apply to entire days I think, not specific decisions during the day
schedules are kind of a cursed thing to modify in stardew
yeah thats the thing
Hello everyone 😄
does anyone know if there is an easy fix for "Custom Music"? I know the original mod is outdated but I believe there is another way of overwriting the default music as before
Content Patcher can add music im pretty sure
theoritically if I were to make a "schedule" a dynamic value and make them load it for every action it maybe could be possible but honestly idk yet thats why I ask for clues
That sounds cool, but yeah... the schedule system can only do so much. You can definitely make things feel more dynamic by adding a TON of schedule entries with preconditions, but that's about the extent of it
i've heard that before but unsure of how
i'm unsure of the exact specifics myself. might be worth it to check the docs. please don't ping me
there are ways to apply patches during the day, but the scheduling system is fragile. A lot can break very easily
alright then Im back to square one and actually I think its safer by just throwing the entire tryloadeschedule() out for married NPC and replacing it
yep, sorry
There was a music mod that came out recently, though I don't recall the name
That would be the ideal solution! If you figure out the name please let me know!!
i don't think you need to do this. on home days, your spouse doesn't follow a set schedule, so you can probably just edit the logic of how they randomly move about the house. this mod is probably easier than you expect
if you want them not to leave the house for their schedule days, a simple postfix on the schedule load would do it
Yes, that's the one
But that one won't be able to use existing music packs to add into the game, right? Because I was intending to use Miss Coriels Music Pack
that is a valid point thank you, but do you know what exactly happens then? I will have to check what actually happens on those days and if the logic is actually somewhere else
i don't know where exactly it is, sorry, so you'll have to do some sleuthing. i would guess it's somewhere wacky like baked into FarmHouse.cs's update logic, but maybe that's a cynical assumption 😅
Aight I will look for it, thanks for the suggestion though, it might really ease the start process of making it
Or if I wont find it I will if(this.ismarried) {my code} else{gamecode} and pray it works (it probably wont)
Good luck! Sounds like an interesting project, either way 🙂
You will very likely see me here again and I will gladly update you on it when that happens
apparently you should check out marriageDuties
according to a friend of mine haha
If im not mistaken that is about giving food/ petting Animals/ fixing fences etc. Right?
I dont think so, I think its only the random world action and dialogue in the morning
The one bea linked adds, it doesn't replace. The other one I'm not sure about
Oh that mod is for the Custom Music framework, which is mega dead
Yeah, that's what i heard too 😄
But I appreciate the music of the mod itself so I was looking for a way to make it work again 😄
No you're correct
It's baked into the farmhouse
Well, if you can get permission from ms coriel you could use the other mod as a template and port it to cp
Alternatively you could write something in c# to hijack custom music packs and insert them into the game's music data
where i can find the seed of crops ? i'm not sure to where i can find it
incredible /lh
Yeah, there I am out. No idea of coding 😄
In c#? Or what
in the content unpacked
i'm trying to make a sprite and i search to make something similar of the vanilla seed
In Data/Crops, the key will be the seed item id. The data for the seed is in Data/Objects, and the sprite is probably in Maps/SpringObjects
Unless you mean the texture for the part that's actually planted in the dirt? Then TileSheets/crops, I believe?
actually no way he guessed that
i search the sprite in the inventory
!springobjects
Most vanilla object sprites are in the Maps/springobjects asset. See a table of springobject sprites by index.
Some newer object sprites are in TileSheets\Objects_2. You can check the entry in Data/Objects to see where its sprite is stored; SpriteIndex is the position, and Texture is the asset name (defaulting to Maps/springobjects).
i found thx
(Nexus sure has a lot of ads for non-premium users now, and each slot separately rotates through multiple ads too.)
that's so many 😭 that's worse than those scam websites
wow... that's cursed
also love that multiple of them are for an offshore crypto casino
Ick. This is why I never turn off my adblock anymore
I use an adblocking vpn because of that
Sure!
Why is there's some mods in your ads?
(The rest of the page is really just an ad for Vortex.)
Invite sent!
pls someone can say me again how i could add stuff with sprite more than 16x16
So I recently changed Junimatic to search for NPC's on the farm (e.g. Robin) and have the Junimos not work while the NPC is out there. I got 2 people say "Hey! The Junimos won't work because of a Truffle Crab, but there's no way there's a Truffle Crab around!" One of them sent me a save. Sure enough, the characters list on the farm includes an instance of RockCrab named "Truffle Crab". I don't see anything peculiar about the crab when I inspect it in the debugger, and I can see its position. In the game, that location is a bare patch of land not obscured by anything. Swinging a sword at that coordinate doesn't do anything. Placing a bomb on that coordinate doesn't do anything either. (That is, judging by inspecting the crab in the debugger). Any ideas on what's going on here?
Truffles produced by pigs have a 0.2% chance to be replaced by a Truffle Crab instead, but I don't see any reason they should be invisible or non-interactive, so I'd have to guess that's some kind of odd mod interaction. You could check the IsInvisible flag on them to see if that's the direct cause, I guess, but those crabs shouldn't do that themselves or anything 
Can you please help with the mod? I have a very unclear situation here...
it is better to just ask your questions out loud to the channel than ping one specific person and ask them to help
I just asked a couple of people before this and no one knew what the problem was, so for some reason I decided to just flag it :0
Yup, I can see how it could spawn. I checked IsInvisible, but nope, it thinks it's visible. The fact that it's also immune from bomb damage makes me think there's some way the game discards certain creatures on its draw/damage loops.
im sure you've checked, but just in case (bc i cant think of anothr explanation either), have you checked that the position you're looking for it in is actually its tile position and not its like, pixel coordinate position. like is it actually just off in the top left of the map out of bounds
There's isInvincible() for monsters too, which basically points to the field invincibleCountdown
Other than IsInvisible or having a blank (but not null) sprite, I don't see any way a specific character should fail to be drawn, at least by the base code
Hi! Can you summarize what you're asking for help with?
Well, in short, my fish seems to be not completely fish for some reason
When I catch it, there is no mini game, quality and size
Here is a video from the game
I checked the files, everything seems to be correct, there is even a smoked version and caviar, but no mini game
That may happen if...
- the player caught a non-object (i.e. non-
(O)) item; - or the fish isn't listed in
Data/Fish; - or its entry in
Data/Fishhas a non-numeric value in field index 1 (difficulty), so it's assumed to be a non-fishing fish.
that looks like when you catch trash
You need to use scale up 2 or spacecore hd textures
By Data/Fish do you mean information about weather, difficulty, size and so on?
You were right! About the position. I just assumed it was a tile position, but after looking at a few other things, nope, that position is a pixel-position, so yeah, the truffle crab is basically at tile 0,0. Can't think of how it could get there other than a game bug.
thx you
Ah, well, yes, the fish is recorded there and I put all the characteristics
Yep, the Data/Fish asset documented on the wiki.
What's the item ID of the fish you caught? Can you run patch export Data/Objects and patch export Data/Fish in the SMAPI console window, upload both files to smapi.io/json, and post the links here?
tbh id guess it was some weird mod bug instead, my first thought would be some weird modded auto grabber bug, but if they dont have one of those installed then iunno. glad my hunch was correct tho
My thinking that it's a game bug is that it'd be fiendishly hard for anybody to notice the problem, and the position was 67x49, which, in tile coordinates, is smack in the middle of the pigpen.
What's the item ID for the fish in that video?
tbh that just makes me suspect even more that its a mod doing it and not properly converting from pixels to tiles or vice versa. but, impossible to say without looking at the code of every mod they have installed, which i wouldnt do even if i had the list, so c'est la vie
As I understand waymeeNhaku.PrehistoricFish.Armored_pike
can anyone explain to me how question fork works please? i dont really understand what its doing exactly
I'm thinking I'll just start by looking at the game code to see if the bug's there. Is there a recent decompile on github? (I can do it myself, but lazy...)
if you're a mod author you can request access to the decompile repo. public decompile repos are not allowed
How do I do that? I think I'm a mod author.
you do not have the mod author role
nor are you the minimum level for it
(server level i mean)
(also i forgot its not just being a mod author you need lvl 50 too)
You're missing one field at the end in Data/Fish, for whether the fish can be selected for the first-catch tutorial. (It should usually be false.) Not sure whether that would cause the issue, but you could try fixing that and see if it makes a difference.
Otherwise that data seems fine. If it still doesn't work, you could send me a minimal repro content pack + repro steps and I can run the game through a debugger to see why it's treating it as a non-fish catch.
The 0 at the end seems to be responsible for this
That sets the minimum fishing level to zero, which should be fine; a lot of the vanilla fish have that too.
Pathos I have a question about the Day/NightTile map properties if you have a moment
Feel free to ask anytime! (I may not necessarily know the answer, but others here might.)
I just wanted to know if there will ever be the opportunity for animated tiles to be used with the Day/Night Tiles map property? Currently I cannot replace a unlit lantern with my animated lantern without jumping through extra hoops, or having the player leave and reneter the location
how hard is it to make a new location underground (similar to the sewers) under the train station
as in like is it possible and how
Not hard at all just like adding any other map
I am unsure if there is a map property specific for underground locations, but you would need to make the map.tmx and create an area in an existing map or a way to get to your location via warp
ive never added a map before so im not sure :0
okie thank you
That would need some changes to how tiles work, so not sure it'll be done in vanilla unless CA would want to use it in a future content update. That seems like something that a mod framework could do fairly easily with a custom map property though.
obligatory stare at spacecore
If I can make it exist I shall!
And does spacecore have this function!? I looked through the docs but didnt see anything
not sure but i sure always check spacecore if theres something not vanilla that i need
You need to load the map like so, and then use the Action EditData and target the locations data
but the docs are too summed up for my silly brain I am used to the awesome CP documentation 
Nothing changed 😔
thank you !!
too dense. i need more text
preferringly with pictures
and example! 
english not being my mothertongue makes things another layer of hard
being concise with me is how i lose my brain
Yes if you need an example you can look at the locations.json from my mod, but don't add a when clause for disabling locations, I just forgot to remove that for my testing X|
link is in my discord bio
(this reminds me i still need to move my special power utilities docs to my docs website...)
remind me in 1 week to do that
THUMBS UP EMOJI (#6475501) (1w | <t:1737494051>)
damn, the bots nice for once
immediately realizing that im going to be busy that day when the reminder happens. oh well
The only bot I use is Leah for mod-showcase XD
IDK what the others do besides Maru now lol
I think it's technically possible to use the reminders to set up reminders for other people but that feels mean haha
Looking forward to earning my orange tag. NPC mods are so so much work though
No kidding I was considering adding one to my mod, but decided against it for that reason in the foreseeable future
governor handles commands
looks away in adding 4 more NPCs
What is going on?
bouncer makes people start protests to have it renamed back to boncher (and I guess as a secondary feature also does modmail)
i think it also handles reports? is that what modmail is
farm computer can link to the wiki
it is
[[coconut]]
why does it work like that? idk
modmail is reporting things directly to the mods by dming the bot, but you can also report through app commands
(it's copying wiki link syntax!)
i'd imagine mini-jukebox plays music
I am trying to solve the problem
Ok so the issue is there is no minigame?
yep
Did you upload your .json for the fish in question and the fish data, I know your fish/data is probably fine after adding the tutorial portion
pathos asked you to send him a minimal repro content pack and repro steps if it still doesn't work
I don't know how to do it 😭
send him the version of the mod that's causing the issue, and instructions on exactly when it's happening
I am wondering if it is the way you added the object
send the mod as a zip file
The maximum size is 10mb, and I have 40...
is this one of multiple fish having the issue or only this one fish
All fish with this problem
Ok I think I can help you, but I would need to see the Data/Fish, Data/Object and Data/Locations info
they linked data/fish and data/objects
if you send it here rather than DMs you should be able to send it
Perfect thanks!
this server should have an upload limit of 100MB
Oh, ok
I think that is just the info from content unpacked no?
Oh ok I see
(though, ideally, a minimal repro pack is supposed to be a pack tested with only the absolutely essential mods and a pared down content.json to just be the problem patch in question)
Sooo it’s been a while and I suppose I’m in the mood to make more mods or revise my current ones. I made the Mystic Truffle Foxes mod and I suppose I was wondering if anybody else who has created a “dig up” custom animal has an issue with extremely low produce. Like I have 3 foxes and it’s a common occurrence to go entire days without them digging up a single produce item
Relevant info: I think I have like 8different types of produce they can dig up but I don’t see why that should make them decide to dig up nothing at all so often
-# hi button 
hi hi
Hiya
why is the smapi installer inside the mod folder?
Yeah I think I found out why the file is so large aha
I don't know, I didn't notice something about it...
I am going to change the way your fish are added to the location as I think that is what is causing the issue
the installer is actually pretty small, but it shouldn't be there
neither should the internal folder
40MB folder...?
my entire wip enpansion only goes up to a little bit less than 4MB whats in there O:
Without smapi installer 13 KB
please delete README.txt, install on Windows.bat, install on macOS.command, install on linux.sh and the internal folder from your folder
Thats more like it 😛
your ids' capitalisation doesn't match between the fish data and object data I think
idk if that would cause this issue though
Yes, item IDs are case-sensitive.
@elder mountain fix the IDs in FishDataStats.json to match your other IDs exactly
Its not your Data/Locations either
it probably wasn't loading the fish data at all then, thanks for confirming pathos
Yippee, just goes to show how much one minor detail can throw a whole mod off X|
I think the locations one is using the correct capitalisation actually, though I could be wrong.
It is, I just tried doing it an alternate way instead of by randomID as I'd never seen that and to double check casing, but the issue was reproduced the same
But yea I didn't notice the capitol case in fishing data
So I probably would've been no help unless I used Cody
This also scares me because when I start working on my new mods... It's gonna be another learning curve XD
Also can we take a sec to just "appreciate" how nexus doesn't alert you about new mods requiring your mod? I was scrolling through New Mods this Week and found another translation XD
Sucks. That would be a really nice feature
Maybe make it optional?
You would obviously be able to turn it off XD
Or better yet, configurable
(That's fine, I already do.
)
But yea
Poor Pathos XD
I just like to know so I can go show support, it means a lot when someone takes time out of their day for a translation I don't have or a resprite
I sometimes check my framework mods to see if anyone's made things with them 
i also check CMCT every so often for that reason too
I got an alert today too! it was an android smapi question /lh
Meanwhile I go check in case someone's DP farming crappy translation mods so I can report them lol
It still irks me that Nexus doesnt let us display our own translations in the translations dropdown tho
like its pointless especially if they're added as optional files
If I wanted a bad machine translation that has no quality control I could just make my own!
There was a community suggestion opened at some point
To let authors mark translations as out dated
That would also be nice
because the Mandarin translation for my mod is so outdated
by months XD
I don't know if I'm just misunderstanding this but why would you include a translation for your mod as an optional file instead of just as an i18n file in the main download?
hello
That’s what nexus support wants you to do for translations because they’re nuts
lost internet just now 😭
Either way they should have it setup to read an i18n folder and list those translations under the dropdown
and like Chu mentioned being able to mark them outdated instead of having to do the alternative would be convenient
Especially for people with quite a few translations
that doesnt sound like something nexus should handle to me personally
the reading the folder or letting you list your own files in the translations, i mean
marking translations outdated or w/e i agree with
I guess they should let you add a "x language - built in" line to the translations box
just so people know it's not needed
i mean dont forget "an i18n folder" is not a universal concept
we only use those because SMAPI tells us to
Yeah i don't expect nexus to actually parse the file upload
Just some feature to document is enough
Yea, it would be nice, to have the flags listed for all the translations not just ones done by other authors tho
I want i18n to have version numbers and unique ids and update checks
Rn i just write a translations section since i usually do my own simplified chinese tl
I have a message at the top of my modpage letting readers know if they even make it that far XD I do 6 translations
i have thought about making something for this but unfortunately 30,000 mods in is kinda really late to start setting a new standard for translations
Thats a rabbit hole nobody wants to go near XD
Tbh the standard should probably be through Strings assets
(insert xkcd 15 standards thing here)
i have one mod with a translation and i just have a tag for it
It has a number of advantages
i have no idea if spanish speakers actually find this mod
translations arent only used in places where those assets are even applicable

