#making-mods-general
1 messages · Page 578 of 1
Sorry
4 vs 1 😭
no worries! you didn't know
Discord decided to scroll me up past all 287 messages....
oh heavens
Can I set a "When" condition in the ConfigSchema to only show a config option when a specific mod is included in my mods folder? Or do I need to just add the config options and ignore them without that mod?
no
Can't do that without C# or something
simply just disregard
Ok, thanks
I'll just add a description to those configs that tell the player they don't do anything without the other mod.
That'll do
On account of no more school I’m going to try to finish the last event tonight
It’s gonna be hard
l-last event
is this for npc >.<

hello everyone, im new to the server and also new to making mods for stardew valley, im pretty sure this is the right channel for asking for help but let me know if it's not
my smapi log is here: https://smapi.io/log/8c17f83d47ad4d92be6f146bc8d0a690
the error im having is IndexOutOfRangeException. im trying to change one of lewis' liked gifts to a loved gift, specifically the blueberry. the error occurs when i attempt to gift a blueberry to lewis in-game.
here is my code: https://pastebin.com/h22K7Y4L
thank you for reading
Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time.
Log Info: SMAPI 4.5.2 with SDV 1.6.15 build 24356 on Windows 11 (10.0.26200.0), with 3 C# mods and 0 content packs.
I sadly don't know much about modding with C#, however, I did just try something.
I don't think C# is needed for this, at least I believe. I just got Willy with gift tastes to replace his disliked item, a Daffodil, just now with a snippet I'll send u, but modified for your mod
{
"Action": "EditData",
"Target": "Data/NPCGiftTastes",
"TextOperations": [
{
"Operation": "Append",
"Target": [
"Fields",
"Lewis",
1
],
"Value": "(O)258",
"Delimiter": " "
}
]
},
If I'm not mistaken, this should allow Lewis to love blueberries
I'm not an expert, and I don't know if the game is reading that the blueberry is his favorite because it replaces the old ID, or, it just prioritizes loved items first
Regardless, this is a risk-free way to implement that, at least to my limited knowledge : )
for the target, the last value, 1 represents loved, 3 represents liked, 5 represents neutral, 7 represents disliked, and 9 represents hate
is there any workaround for this? its really annoying that the windows wont go dark at night
I've just published my golden chicken statue mod! https://www.nexusmods.com/stardewvalley/mods/44652
I love this. Thank you for your service
TYSM!!
tysm for all of your messages Lucy! where exactly would I put this snippet you sent, I'm a bit puzzled on that
This would be a different type of mod! We call them Content Patcher mods
Modding link: https://stardewvalleywiki.com/Modding:Index
Gift Tastes link: https://stardewvalleywiki.com/Modding:Gift_taste_data
And, how to understand Content Patcher link: https://stardewvalleywiki.com/Modding:Content_Patcher
Content patcher is a SMAPI mod which lets you change the game assets (images, dialogue, data, and maps) without replacing game files or writing code. You use it by creating a content pack (basically a folder) with a couple of JSON files (basically text). Just by editing a JSON file.
Most mods in Stardew Valley are Content Patcher mods, since a lot of things are simplified by it. Some logic is only available with C#, but thankfully, gift tastes does not require using C#.
It... delimits. Specifies boundaries
It's the thing between items in a list basically
I will send you in DMs a basic, stripped down Content Patcher mod, which has exactly what you requested, so you can learn, expand, and get a feel for it : )
Huh
oh okay! that's good to know
delimiters are also often referred to as separators in some cases. same principle
since gift tastes are all like
"74 206 835/", the delimiter is a space because that's what separates each item
Some lists are separated by commas, some by spaces
oh I see
so delimiter just points out what symbol is used to separate items in lists?
I see
There's also nothing saying a delimiter has to be a special character either
can it be a word or a sentence
If you have the string "wowow124abc" and say the delimiter is "2" then you get two items, "wowow1" and "4abc"
neat
If I'm not mistaken, doesn't terminal emulators do the same thing with flags?
or is that a very different approach they take
i havent the faintest
gotchu

like some commands you can run "commandName --details"
and usually "--" is the delimiter
to specify flags
gonna be honest with you
this seems like that meme but
this emoji seems like it was breaded, and deep fried
the delimiter is always the space for arguments, no?
depends on the app, but on terminals its sometimes --, sometimes just a space
really depends
tbh katsu
put it in a burger
flags are handled by the app
arguments are always separated by a space
a program could just as easily make arguments be *thing or **thing
gotchu
well, remember, if the argument doesnt work
thats not the problem with the application
thats a problem with glibc, systemd, kwin, systemd, pulseaudio, ffmpeg.. (this is a joke)
kidding, this isnt programming off topic
but yeah i get what u mean dw!!
What quest is this tile related to? Custom Property - Action: HMTGF
Hate that place, wanna rework it but don't know how important it is
Easter egg
It's an easter egg. ||If you interact with that tile with a super cucumber in your hands it gets swapped for the HMTGF statue.||
(I am orang again)
Aba weren't you moldy
perhaps move it out of the way?
~~aba took antifungal spray
~~
yea makes more sense
I'm having some issue with a game state query
I'm checking if they have caught a specific fish, but it seems to not be working? Other querys work, just not this one
I might be using the wrong IDs, but im not sure where to find "specified fish qualified IDs"
PLAYER_HAS_CAUGHT_FISH Current 156 (its the ID for the ghostfish item, which is why im assuming the issue is the id being wrong, but i dont know where to find the actual fish id)
has to be (O)156
1.7 fixes it so 156 also works, but for now you need the full qualifier
(1.6.16 fixes it)
ohh ty!
I did assume that too like an hour ago, dont know why i didnt try it tho
yay it works great! Now i can go to bed lol, thank u for freeing me from purgatory
@ivory plume a request: change the + button in CJB cheats to always draw as if the floor number was 3 digits long. Clicking (or shift clicking) on it to increase it only to have it jump several pixels to the right is a small annoyance that'd be nice to have changed like this.
heh, I use a mix... depends on what I remember exists in the moment
Sure! I can look into that for the next update, or pull requests are welcome if you wanted to make the change.
I thought setting the location to something other than their home would make them just spawn there at the beginning of their schedule
with a 0 schedule point, i believe
Hello guys
Please correct me if I am wrong
Does this mean that I only need to use Content Patcher to edit data/objects and use the CustomFields field to allow an item to become a slingsot ammo?
yes
Dem, you are a legend

So for example, I just gotta put
"selph.ExtraMachineConfig.SlingshotDamage": 50
and whatever item I edited the custom field of can now be slingshot ammo that deals 50 base damage?
yes
Thank you so much Selph! I was honestly lost when the Slingshot Framework suddenly disappeared. I really appreciate your mod.
Now I just gotta test if they modify ammo damage the same ways and replicate how my mod was when it was using the old framework.
Had the same issue cus I have an event in the mines, but wait
If you shift click does it go up by 10? I've just been spamming 
thanks void now during green rain she spawns and just glares at the witches cave ❤️
Hi, is it possible to make an item obtainable from a geode only if a specific mail has been received?
Maybe using When and PLAYER_HAS_MAIL?
yeah i think so
conditionally adding the entry to the geode list sounds right
Are you the author of the Tilly NPC? Sorry for the random question haha.
yes!
Nice, I´ll try, thanks
Can I send you a private message? I was going to message you on Nexus, but since you’re here haha.
If you have a specific question/request sure! Otherwise I prefer just here or you can shoot me a dm on nexus too
I wouldn’t even know how to categorize what I want to tell you haha, but if you prefer a DM on Nexus, I can do it there, it was my first option after all haha. Thanks a lot!
Geodes support item queries, which have Condition field
no need for CP's When
Selph to the rescue 
Yes pls!
Always haha
But where should I put the condition? It’s my first time trying to do something with a geode haha.
is this the GeodeDrops field?
then it's just in the item spawn entry (ie. next to ItemId)
if you unpack and look at the Artifact Trove it should be obvious
I didn’t know that about the Artifact Trove, thanks a lot. My idea was to put it in the Magma Geode, but I’ll take a look at the Trove.
Ah, I thought the Artifact Trove had a condition on one of its drops, that’s why you told me to check that one specifically.
none of the existing geodes have a conditioned drop, but if you unpack with default settings it should still show them as null
Ty
Hii!! Is it possible to change a map sprite during certain weather with the when condition? Like rainy?
Context, im making an npc that has a barn and sheep and I'd like the barn door closed when it rains o.o
yes, you can either patch the map itself or the tilesheet (if this is a custom tilesheet) with a When condition
Thank yeouu
Selph, do you know if it’s possible to make an item a one-time obtain, meaning you find it once and can’t get it again from the geode?
there's the SetFlagOnPickup field
set a flag, then condition on "player does not have flag"
Mmm, I understood it halfway, I get that we would mark that the player already obtained it, but I’m not sure how to write that. If you know of an example…
"SetFlagOnPickup": "CoolMailFlag",
"Condition": "!PLAYER_HAS_MAIL Current CoolMailFlag"
So, to make the item appear after I receive X mail, I put the condition, and to make it so that once the quest item is found it won’t appear again, I put what you told me? Changing the name CoolMailFlag to whatever I need?
you'd use two conditions
has mail flag "allow quest item" AND not has mail flag "quest item found"
you can specify two conditions separated by commas
I think with this and a link a friend gave me, I can start working. Thanks again, my friend, always ready to help.
I've got 68 portraits so far, do you guys think that's enough? (So far I've got annoyed, angry, sad, angrysad, happy, happysad, blushing, shocked, and broken.)
This includes variations, obviously, like tears and stuff
holy DAMN 😭
Excuse me, but 68 portraits of whom?
Just one NPC or each one of them?
Or is it for yourself?
For a custom npc I'm making. They are all for one individual
I am really sorry, but can you explain what you mean by that-?
This is my manifest
{
"Name": "Evelyn's Big Lips",
"Author": "AngelWhatEver",
"Version": "1.0.0",
"Description": "This mod gives Evelyn big lips for her husband George but be careful when it's winter then her lips will turn ice cold blue.",
"UniqueID": "AngelWhatEver.Evelyns_Big_Lips",
"UpdateKeys": [
44642
],
"ContentPackFor": {
"UniqueID": "Pathoschild.ContentPatcher"
}
}
the json validator gave me this error 8 UpdateKeys[0] Invalid type. Expected String but got Integer.
can anyone help me pls
the question usually isn't 'is this enough portraits', but 'have i fully expressed this character', where there are plenty of ways of doing so
the wizard for example has 2 portraits, no seasonal outfits, no schedule, never leaves his house, isn't interactible at most festivals, and barely has any dialogue, but the player can very well appreciate his character all the same
he just gets a few cutscenes, good characterisation, an iconic, a unique mail style, and a couple of decently useful unlocks and story points
assuming you're uploading to Nexus, you'd use "UpdateKeys": [ "Nexus:44642" ]
tysm
also how do you get that block around your text?
Ooooh okay. Thank you for explaining! I get it now
one backtick for inline style, three backticks + newline + text + newline for a block
!codeblock
You can embed code in Discord using a series of three ` :
```
Your code can go here
Even if not a haiku
Just an example
```
For syntax highlighting, add the language code on the same line as the first
``` (with no space, like ```json).
The usual codes are cs (C#) and json.
oh ty
Wow. Is your mod not released yet?
May I know the future name of your mod so I can check it out when it's released?
for another example i have a character with happy + sad + blush portraits and then like 5 different eating portraits since i feel that's better to express their character
one outfit variant, one no clothes beach variant, maybe a winter one if i can be bothered
That's the thing, the npc I'm making isn't going to be released anywhere. She's going to my best friend and my best friend only, ehe- The reason for that is because, well, this npc is based heavily off of myself
in that case, 1 is enough, and everything else is just as much as you like until you're satisfied
"Format": "2.9.1",
"Changes": [
{
"Action": "Load",
"Target": "Portraits/Evelyn",
"FromFile": "assets/EvelynLips.png"
},
{
"Action": "load",
"Target": "Portraits/Evelyn_Winter",
"FromFile": "assets/Evelyn_WinterLips.png"
}
]
}```
its giving me this error "10 Changes[1].Action Invalid value. Found 'load', but expected one of 'Load', 'EditImage', 'EditData', 'EditMap', 'Include'."
Alright! Thank you for your help. I appreciate it
can someone please help me thanks
you wrote load instead of Load 🙂↕️
my mod is still not changing evelyn's sprite?
You forgot the ,s at the end
i think
which line?
Portraits are for when you are talking to them, the overworld sprites is Characters/Evelyn
the } and ]
There's no missing , in that code block, and any extra would be technically against json spec, though SMAPI/CP would accept it anyway
I meant portait
where tho
I have those there before yhe last one tho
oh
it's not visible here
{
"Format": "2.9.1",
"Changes": [
{
"Action": "Load",
"Target": "Portraits/Evelyn",
"FromFile": "assets/EvelynLips.png"
},
{
"Action": "Load",
"Target": "Portraits/Evelyn_Winter",
"FromFile": "assets/Evelyn_WinterLips.png"
}
]
}
]
}
Like this
?
that seems like too many brackets
"Format": "2.9.1",
"Changes": [
{
"Action": "Load",
"Target": "Portraits/Evelyn",
"FromFile": "assets/EvelynLips.png"
},
{
"Action": "Load",
"Target": "Portraits/Evelyn_Winter",
"FromFile": "assets/Evelyn_WinterLips.png"
}
]
}```
"Format": "2.9.1",
"Changes": [
{
"Action": "Load",
"Target": "Portraits/Evelyn",
"FromFile": "assets/EvelynLips.png"
},
{
"Action": "load",
"Target": "Portraits/Evelyn_Winter",
"FromFile": "assets/Evelyn_WinterLips.png"
}
]
}```
that was my original but it still isnt loading
does anyone want to test the mod out?
you could share your log
does anyone know where the hats are located in the unpacked game files
characters/farmer
https://smapi.io/log/1932abf46a4647a2a94efdc4f9db52d6 here ya go tysm
Log Info: SMAPI 4.5.2 with SDV 1.6.15 build 24356 on Windows 11 (10.0.26200.0), with 24 C# mods and 1 content packs.
there's only one content pack loading, are you making edits to Desaturated Trees for Stardew Valley Expanded orrrr?
I'm guessing this is your mod:
- Mod try because parsing its manifest failed:
Newtonsoft.Json.JsonReaderException: Can't parse JSON file at C:\Program Files (x86)\Steam\steamapps\common\Stardew Valley\Mods\Mod try\manifest.json.
Technical details: Unexpected end when deserializing object. Path 'ContentPackFor', line 11, position 1.
check the manifest
no im not
im using vortex
i think it just does that
oh wrong mod's manifest failed to load then:
- Evelyn's Big Lips because you have multiple copies of this mod installed. To fix this, delete these folders and reinstall the mod: Mods\EvE\CP Evelyn's Big Lips, Mods\Stardrop Installed Mods\CP Evelyn's Big Lips.
you got two copies
oh ty
https://smapi.io/log/d739258b9b6d4756bdc27ed6f6aa56e5 it still isnt working?
Log Info: SMAPI 4.5.2 with SDV 1.6.15 build 24356 on Windows 11 (10.0.26200.0), with 24 C# mods and 1 content packs.
I don't see it loading or failing to load now, still only have the one content pack loading
do you want to test it
if you want tho
idm
Do you think it could not be working bc of the file order?
Sorry not at PC rn. The problem is it's not loading into smapi. Not sure if it's vortex or what but according to that log it's not loading.
oh its alr ty tho
could you maybe check it out later? if possible
@lucid iron Hi, I have been playing around with MMAP for furniture and I have some questions:
-
Is it possible to use mushymato.MMAP_Light to create custom window lights? Like the ones that overlay the white "haze" during daytime? I have tried by specifying the light type for windows (2/6) and the lightContext "WindowLight" but I can only seem to get the normal type of lighting, using the window texture. I know that window lights work a little different so I wonder if that's actually supported or I'm just not doing it right.
-
For changing which furniture goes on top when I want to place them overlapping I can use SortTileOffset within DrawLayers, but I wonder if it would be possible to add SortTileOffset as it's own furniture property so it wouldn't be necessary to specify the texture again since I am not actually changing it (and maybe then it could also be compatible with AT).
-
I found one restriction when using SortTileOffset. In vanilla for wall furniture, the furniture that is 3 tiles high always places above a 2 tiles high which places above a one tile high furniture. With SortTileOffset, it is possible to make a 1-tile high furniture place above a 2- or 3-tile high furniture, but it is not possible to make a 3-tile high furniture go below a 1- or 2-tile high furniture. This is maybe just a vanilla limitation but I was wondering if there was a way around that to have some wall furniture automatically place in the background.
uhhhh
the game did not replace the hats png
its supposed to be replaced with a white cowboy hat
is it because its farmer and not Farmer
Do you want to replace a hat or do you want to make a new hat entry?
its Characters/Farmer/hats
hats has a folder...?
no folder, but thats the asset to target
it says so on the wiki https://stardewvalleywiki.com/Modding:Hats
im already targetting Farmer though
didnt know i had to target hats as well, i figured it was just a PNG
you were not targeting deep enough
didnt know you can also target PNGs
I mean, that's how most cp retexture mods works
i mean thats the same for example when you have a farmhouse retex you dont just target the buildings folder but the exact farmhouse
Have you set hat entries
wdym
Oh you just replace them
do you want to replace a single hat or all hats?
its specifically 2 hats but yeah
FromArea and ToArea is what'd you need
How does your asset file look like
also a patchmode (I think)
You should one replace ones you need not all of them me thinks
ykw ill just make completely new ones at this point 😭
No you gotta learn how to do it
i already know objects and edibles
i just need to learn wearables
or hats as you call them
I had my original file already cropped so I only needed ToArea, tho not sure whats patchmode
but ig FromArea is just as good as manually cropping
oh jeez im gonna need xy as well?
yeah
if you want to replace yeah
i figured it was as basic as replacing an entire PNG
okay uhhhhh
the one i replaced is below the straw hat one
you should generally not replace an entire PNG, you should crop your sprite to size and then target only what you'd need
Replace is going by default so its not necessary to put in content most of the times
ideally youd want to create a 20x80 tileset for one hat and then the same for the other and then you use two editimage to replace them on the target file
"ToArea": { "X": 80, "Y": 80, "Width": 20, "Height": 80}
I thought you had two hats to replace
im using tiled to easily get the cords btw
yeah I was just mentioning it without really thinking
wait you can just use tiled???????
I mean it does help
its not necessary and isn't used that much
but it does its job well
gets the sprite index too if needed
then you just count your rectangle size which for hats is 20px wide and 80 tall
cuz its 4 sprites on top of each other
how can i check their xy coords
are you replacing that green and blue cap
your hats already cropped so they dont need FromArea
You only need ToArea on the target file
oh okay
I found this one for you here
for a green hat
not sure what other hat you replace
much appreciated
its the trucker cap
and sports hat
so it should be like this right?
"ToArea": { "X": 160, "Y": 640, "Width": 20, "Height": 80}
pretty much me thinks
then you do the second one just with other coords and from file
you could as well use the original big file but it would require you to use FromArea which is the same as ToArea since you just colored other them
can you teach me this btw
so i dont have nightmares about xy coords placement
do you have Tiled rn
Open it
Create a new tileset
Find your image
Don't forget to put the right grid res, for hats its 20x20
for other stuff it could be either 16x16 or 16x32
oooh ok, ill note this down
then you press okay and save the tsx file in any place
its a tiled file that has your texture
then you just click on any tile and its gonna have the coords and sprite index
top left sprite corner is its origin, to keep that in mind
If you really wanted to use your big asset file then youd need to use FromArea as well, but since you already covered the right tiles with your own texture then youd use the same FromArea coords you used for ToArea
So it still would be two editimages but youd have the same FromFile just with different Areas
x tile y tile height width
its generally width then height
oh
that should work as well for your big file
{
"Format": "2.8.0",
"Changes": [
{
"Action": "EditImage",
"Target": "Characters/Farmer/hats",
"FromFile": "assets/hats.png",
"FromArea": { "X": 80, "Y": 80, "Width": 20, "Height": 80},
"ToArea": { "X": 80, "Y": 80, "Width": 20, "Height": 80}
},
{
"Action": "EditImage",
"Target": "Characters/Farmer/hats",
"FromFile": "assets/hats.png",
"FromArea": { "X": 160, "Y": 640, "Width": 20, "Height": 80},
"ToArea": { "X": 160, "Y": 640, "Width": 20, "Height": 80}
},
]
}```
See how I use the same Coords for both area things
so its not anything hard once you get it
true
i appreciate you explaining all this
now i know how to edit stuff properly xd
thanks
maybe someday ill try adding custom hats
you can do it today tho
should just be EditData for the most part
you already know how to do custom food
busy with Manny
hats arent any harder
tho I never did hats myself
Im not sure of hats have 20x20px based indexing or 20x80px
Probs 2nd
So it would be a bit harder to count the index
index shouldnt be that hard
I think it would be something like this for your hat1
{
"Action": "Load",
"Target": "Mods/{{ModId}}/PinkCowboyHat",
"FromFile": "assets/hat1.png"
},
{
"Action": "EditData",
"Target": "Data/Hats",
"Entries": {
"{{ModId}}_PinkCowboyHat": "Pink Cowboy Hat/{{i18n:PinkCowboyHat.description}}/false/true//{{i18n:PinkCowboyHat.name}}/0/Mods\\{{ModId}}\\PinkCowboyHat"
}
}
Bit of a stupid question but with Content patcher can i make it so you get an item instead of gold when you sell an animal
- The haze isn't really a light source it's an actual draw thing. I would use a draw layer for this and condition it on daytime
- The sort tile offset should work on the base texture too. AT compat is doomed though
- Hmm did you try negative numbers?
Any idea why would this remove all vanilla items when I try to add my item?
Or do I somehow replace the whole stock with my own item
All I wanna do is just add them to existing items
{
"Action": "EditData",
"Target": "Data/Shops",
"Entries": {
"VolcanoShop": {
"Items": [
{
"Id": "{{ModId}}_Item1",
"ItemId": "(O){{ModId}}_Item1",
"Price": 2000
}
]
}
}
}```
oh
and then entries
tyyy
[game] Item spawn fields for shop 'FishShop' > entry '???' produced a null or empty item ID.
hmmm
things did work with custom shop
can you share the json
or the section
{
"Action": "EditData",
"Target": "Data/Shops",
"TargetField": ["FishShop","Items"],
"Entries": {
"FishShop": {
"Items": [
{
"Id": "{{ModId}}_Monster27",
"ItemId": "(O) {{ModId}}_Monster27",
"Price": 2000
}
]
}
}
},```
not using vsc is kinda hurting me
but generally everything worked with a custom shop
now theres issues when I do the same for vanilla
for fishshop you'd put the same as id and you don't need the second "items"
- That makes sense I will try that!
- I didn't even think to try lol but that does work, thank you!
- Aaand this got solved by trying 2., I guess I forgot to tell it not to draw the base layer as well so it kept putting that on top anyway...
Your reply solved all my problems in any case
"Action": "EditData",
"Target": "Data/Shops",
"TargetField": ["FishShop","Items"],
"Entries": {
"{{ModId}}_Monster27": {
"Id": "{{ModId}}_Monster27",
"ItemId": "(O) {{ModId}}_Monster27",
"Price": 2000
}
}
},```
Oh I see, I got confused with the custom shop code that doesn't look the same for vanilla one
tysm
okay everything worked ty again
No problem 
you're doing quite advanced Furniture tinkering, you might want to look at FF's feature, I think they'll be easier to use than working with vanilla hardcoded behaviors through MMAP (even though MMAP is also a good option)
yeah I know about FF and it's great (haven't kept up with the more recent updates though) but the thing is I only need/want special stuff for some of the furniture items and I don't feel like rewriting everything for FF right now, and also I want some parts to stay compatible with AT and then I'd need to split it so I wanted to see what MMAP could do for this.
I should make a converter at some point... and compat with AT is complicated indeed.
hello!
does anyone know a good way of how to move a custom NPCs home tile after an event???
I'd say to have their home tile definition be conditional to a flag, so depending on whether or not the flag is enabled the home will change
I'm no expert, but I think you can set flags after an event
i will try it!
I just got the coolest comment where someone said they thought my mod’s writing was so good! Really made my day even better 😄
Hi, does anyone here play stardew in a language other than English?
Do ALL items in the game have a translation?
I'm trying to provide translation keys for some smapi logs for my mod but I'm not sure what more I can do other than
"log.yield-item": " {{name}} ({{quality}}) x{{count}}"
would this print out the item name quality and count in their respective language?
So for example if it's printing in English
"Milk Gold x2"
Would it print the Chinese equivalent if the person has the game language in Chinese?
uhh
ah yes
you can maybe use the DisplayName property of the item
2000 uh.
can I get 2000 uhhhh
qi shop doesnt have Prices it has Requires apparently
gotta fix it ig
fixed it yay
behold....the last event
In case anyone else find themselves in this situation
"TradeItemId": "(O)858",
"TradeItemAmount": 30,
"Price": -1
my goodness is that how events are created?
C# is so much simpler compared to that 
Now I'm even more afraid of creating my events 😭😭🫡
would be nice to have some kind of event builder that converts simple things to this text

yeah this will forever be just an idea
I don't have that kind of patience for that oml
events are fairly simple, when you're familiar with how they work better. It kind of is already text
i did not mean to scare anyone
that event is technically a 3-in-1
so it got super long
wem, idk what your event's about, but if it were mine, I think I would get ill if I tried multilining that thing 😵💫
real quick, does anybody know if you can add multiple stacks of one item in one command?
I'm pretty sure no triggeraction commands allow that
but want to check
multlining would drive me crazy
bc of the sheer length
theres 72 strings (thanks i18n)
Hi! I'm trying to mod Copper Still/More Sensible Juices to be compatible with Cornucopia (currently the CS/MSJ code interferes with the production of e.g. Sparkling Wine, because White Grape Juice doesn't follow the rule set down for White Grapes). I have a snippet of the code that Copper Still uses to make Sake out of Rice Juice:
"RequiredItemId": "(O)350", // swap unmilled rice for juice
"RequiredTags": [ "juice_vegetable_item", "preserve_sheet_index_271" ]
},```
and I'm trying to get it to work with the juices of the Cornucopia crops, but I have no idea how to modify the `preserve_sheet_index_foo` to apply to a modded item.
is there a legend for npc sprite sheets somewhere? like which panels are which
my mod isnt loading and idk why it is not loading the smapi json viewer said it the manifest and content.json were fine
what does your smapi terminal say when loading, do you get an error?
https://smapi.io/log/d739258b9b6d4756bdc27ed6f6aa56e5 here is the log
Log Info: SMAPI 4.5.2 with SDV 1.6.15 build 24356 on Windows 11 (10.0.26200.0), with 24 C# mods and 1 content packs.
its a mod that supposed to change evelyn
does it have evelyn in the mod name? cause that is not showing up
it should
or maybe by eve
can you share your manifest and content.jsons?
you shared content twice
well for content I believe the format should be 2.9.0 (even though content patcher is at 2.9.1, the format only jumps up every 0.1)
okay thx I will try that now
it still isnt working?
are both your manifest and content.json in the same layer? so not in a folder
(besides your mod folder)
I was gonna say, maybe the issue lies with your folder structure
so how should it look
this is it for me
In your game Mods folder:
MyCoolMod
- content.json
- manifest.json
- [any other folder or file you use]
So if that screen is in a folder that's inside the Mods folder, it should work
well here is the folder layout
your mod shouldn't be in another folder
should I take it out
vortex did that for me
do you have a steam sdv or gog one
steam
As long as the folder the mod is in doesn't have it's own manifest, it doesn't matter if it's inside another folder.
ah
The content.json format also doesn't matter
smart if one want to make separate folders of mods
Roaming\Vortex\stardewvalley\mods\b25zJbYl1\CP Evelyn's Big Lips , this the layout
Ultimately the issue likely lies with Vortex and not your mod, which isn't something we can really do anything about. You'll just have to try your mod without vortex to see if it works fine when done manually
I tried with stardrop
im a bit confused why use a mod manager if thats a mod you did
not sure how vortex or sdrop work
When you use a mod manager for modding your game, it's not unheard of to simply try to plop your own mod with the rest of them
I used smapi and not any mod loader and here is the log https://smapi.io/log/1a8e27a99b74416691751e7fb811fda6
Log Info: SMAPI 4.5.2 with SDV 1.6.15 build 24356 on Windows 11 (10.0.26200.0), with 4 C# mods and 1 content packs.
omg tysm
dude what the heck
(mod is Tool Upgrade Bundles btw, I’m just making some personal edits)
bundles cant change unless you make a new save fyi
But you might already be aware
like sleeping in the bed? because exiting and reentering the save has worked for me
and I have successfully changed the amounts of items, like on the copper axe
moss on the gold axe and mossy seeds on the iridium axe are just not working for some reason
Vanilla bundles like the CC bundles can't change, but bundles made using the Unlockable Bundles framework can 
yep, that’s what Tool Upgrade Bundles is working with
Ohhhhhh
nvm i forgot tool upgrade bundles are unlockable bundles
I just had an image in my head that they were in the boiler room
oop lol
sigh tried sleeping in the bed and exiting and reentering my save but nothing 😭
also did a patch reload
For unlockable bundles?
yeah, I’m trying to make some personal edits to Tool Upgrade Bundles, which uses that as a framework
might have to use ub Undiscover name.of.bundle first before going to bed to reset it's data.
you can type ub Savedata to check all UB bundles status
I’ve never tried to debug the bundles but you can with the console commands.
testing
Had to work with that when testing UB integration for UIIS2Alt
okay interesting
So yeah, make your changes outside game then inside console type ub Undiscover Pixelatica.Tool_Bundles.Gold_Axe_Bundle . Go to bed to save and then check.
I have to go back and look what i did to deal with that 😅 give me a moment.
I don't mean this in discouraging way but it may be faster to just give yourself 25 moss
Can FTM check for a specific config value of the main mod it belongs to so a certain FTM pack only loads in when the according config is set?
you could add a config to that mod, something like Enable: true/false and then add a When field to the textures and maps and stuff
FTM does support cp tokens but not config tokens iirc
oh lol
You probably have to do indirect mail flag to do this
Okay, I was afraid that is the case. Do you have any idea how to solve this? It's about my NPC house's map patches, some of which target the vanilla maps, and the items should obviously not spawn there if the player didn't select the house location to be in the forest map
@crisp jasper Try ub ResetBundle <bundle.name> instead
That changed it whitout having to go to bed aswell.
Great! 😃
I think you might wanna look at using spacecore spawning stuff here
Those would go in the cp pack and be able to use conditions
I already did but the spacecore spawn trigger actions ignored the conditions I set up
maybe I'll try to figure out what exactly I did wrong
i can take a look if you want to send the json
(after i heat up lunch)
I'l go back and keep working on my spinoff shoot of "Honey, I Shrunk the Trees!" ("Hide Trees"-toggle i'm testing)
no rush and I'd appreciate it! I initially tried to figure it out myself but alas 
spawning is complicated
trigger actions: https://smapi.io/json/manifest/d1d200c324854182bbba7a94b43aee35 (this is specifically about {{ModID}}_Trigger_CursedSpawnable)
spawnable definitons and spawn groups: https://smapi.io/json/none/94ef32bf2ed042fcbaf6f2d9958f9692 (see {{ModId}}_no and {{ModID}}_CursedSpawnable)
The specific object is supposed to spawn super rarely but despite that, multiples tend to spawn daily even without the conditions being met
...the first one obviously is not supposed to be a manifest file 
what permission allows me to tell people that they could update my mod for a newer version if my mod gets out dated
You can do custom permissions if you want to be that specific
There's a checkbox for custom permissions
how do I get my mod to show on #mod-showcase
You post it here, then ask nicely for someone with the mod author role to showcase it for you
(However keep in mind that a mod author is not obligated to do it on your behalf.)
tysm
Am I correct in understanding that if I want to add some items from different .png assets to an event, I need to turn them into map tiles and overlay them using CP's "EditMap" action?
Would these premissions let me update this mod?
this one here means you can, yes
As long as you don't enable DP
You have to ask re: DP, yes
(Or sell it obv)
Well I wont be planning on doing that tysm
also why does it have these files in it
mac user
will I need those files
ty
That is not necessary, it's a file Macs tend to leave scattered around
Anyone?
preserve_sheet_index_271 = item's flavor is 271 (the ID of the Unmilled Rice item)
if you want more eligible items for the machine entry add another entry to the Triggers list
are there any mods that use AT to change the farmhouse texture that I could look look at for structure? bc the wiki doesnt make sense to me 😅
nah, if they're already objects in the game, you can use addObject
when my event refuses to work but doesn't give an error
How would you create animated furniture?
ah ok thanks! that sounds so much easier. I wasn't sure if I could use addObject for anything other than springobjects
You can get rid of them if you want to though
yeah just use whatever the modded object's internal ID is
I have a tutorial I can link to from a previous conversation if you’d like to do it
Besides just being unnecessary file bloat (though pretty minimal), they also can contain your computer user name, which may or may not matter to some people
Oh, but what if it's something like Maru's telescope, where it doesn't have an ID?
that's not an object. when i say object i'm referring to entries inside of Data/Objects. you're correct that you would need to either make a map patch or use something like changeMapTile
Ok, thank you!
I don't understand what you mean. What I'm trying to do is make new rules using the same preserve_sheet_index function, but for juices made out of Cornucopia crops. For example: Sparkling Wine is supposed to be the product of Cornucopia's White Grapes in the Keg, but More Sensible Juices has you put Juice in the Keg instead of Fruit, so I need to apply preserve_sheet_index to (0)Cornucopia_WhiteGrape if I want to make Sparkling Wine out of White Grape Juice.
then you use preserve_sheet_index_Cornucopia_WhiteGrape
Ah, thank you! Yeah, I just needed the syntax lol
so you're seeing multiple cursed objects appear daily?
not daily in particular but a lot more frequently than intended
and the conditions like foraging level 10 or specific days are being ignored
i had an issue like that where i was seeing pearls spawn like every single day, let me see if i can find what i did
i'm also always wary of editing trigger actions with a When, though i don't know if that's warranted
ask someone smarter than me about that lol
i haven't used a When in that case, I stuck to the condition field 
in your trigger actions json? i see conditional edits based on config options and SVE has mod etc
ooooh that's what you mean
i don't know enough to confirm or deny whether or not using when does anything, but they are required since there's three different maps
oh yeah i can see why you're doing it, i'm just cautious and wondering if there's perhaps a better way to do it using just Conditions. but again idk if that's even relevant
the only other option would be to do a conditional include
which is essentially the same thing, yeah 
anyway i shall speculate on that no more
@merry river this is the issue i was having
@urban patrol so this is what you did eventually? would you mind showing me your code for better understanding? 
yeh let me link
guys what's the extra bit on the right side of the farmhouse texture? 🤔
https://github.com/nbeymer99/DeadBoyDetectives/blob/main/data/Spawning.json you're looking for the lighthouse beach/grass stuff
legacy space probably. the greenhouse used to be on the same png as the farmhouse
I see
I got multiple buildings layers but the additional ones are still passable, how fix pls
only the OG building layer blocks passing
is there not a way to change a layer to be impassable
extra layers are cosmetic only
fucking hell
you can put Passable F on Back
yeah, better formulated
sorry bit tired
I just replied to the wrong message :P
right so what I need to do is layer better got it
if there is room for something on Buildings, you should probably put it on Buildings. otherwise you can use invisible tiles to block (although this may bite you in the butt later on
). It seems best practice to only use the extra layers for the tiles that you need to overlay on something on the original layer.
bah i cant english real gud tonight 
Ohhh I see now! Thank you so much, Nic 
did it fix your issue? 👀
any tips?
I will attempt to change my code tomorrow but I set up my spawn groups differently without grouping everything together, so I'm positive this is what I have been doing wrong all the time
https://www.nexusmods.com/stardewvalley/mods/16507 this looks to be what many are using to fix the issue
ah gotcha well lmk, i'm curious!
thank you ill check it out
Probably silly question, but how exactly do I open the game's XNB files? 😅😔 (preferably the maps and tilesheets to work on my own map[s])
!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!
tyy kattia :D
oh no… someone made a clearly ai translation of my mod when the i18n files aren’t complete and I said no ai 
literally in the perms
bonk them 
bonk time
I know its ai because they have a billion other translations and have an ai profile 😔
They did not ask for permission, so thats what i would report, right?
hey, so, whats the common thing to do when one would make a terrain recolor and wants to add compat with tilesheets? do you just...recolor them and then put the tilesheet mod also as a dependency orrr
breaking perms sounds like something you can report to nexus ye. get it taken down
yeah, I’ll try
I have the standard perms on, and no ai stated, so im assuming even if the ai cant be proven, the fact that they didnt ask would be enough right?
i would think twice, and then again, and then again if i really really wanted the compat hell of a recolor mod /unhelpful
but yeah i think so? you would need to check the tilesheet authors perms, if the perms are not open then you would need to check with them
kind of upsetting, i even stated in the i18n itself the mod wasnt translation ready
i wouldnt dare to try all lmao, only the ones i use myself (tho thats far in the future, first is vanilla tiles)
yeah, I'd just say that you said no translations yet as the reason
definitely not cool. sounds like they cant translate or read 🙄
I'll see what I can do. hope this doesn't ruin the experience for a few people, because the translation would clearly be lacking
this is fixable, you got this 🫂 and im pretty sure nexus will take your side
I'm having an issue with an important item I made being destroyed by bombs
i mean, since theres no i18n yet that would mean they had to upload parts of your mod so thats another issue, isnt it
do I need to create code to make the item impervious to bomb blasts
it sounded like they have a partial i18n
ah
oh no, there is, but it's missing a lot of keys from stuff like events
I clearly state this in the file itself
oh
eugh, sorry parcy :(
and it's opted in to receive donation points :/
should make a takedown even easier tho
destroy them 
which one? stolen content or DP issues? I'll get to explain either way
Probably stolen?
feel like the stolen / no permission is the major one
the other one is like salt in the wound
yeah
Also, enabling DP isn't an issue unless it is done without permission, so it would still fall under the first one.
can I ask which mod creator it was? tryna hide all AI/ripoff accounts on my nexus so they don't show up for me
(no worries if not I get not wanting to spread this shit)
wait, when it askes for a source link, do I put in my mod?
I can ping you the name after
(Publicly calling people out in this server is against our rules.)
I was going to say, no malice towards this person though
not a nice thing to do obviously, but it doesn't make them a bad person
the internet can really be a breeding ground for the most horrific dogpiling and hate
yeah brigading is unnecessary
or, you can't judge their character solely off of this
I just want the translation down 😅
that's wholly reasonable!
is this my mods link though?
I think it is?
I'd assume so
whats the context of the word?
but i think so too. like source where something was taken from
ugh well thats brief
yeah the link is for the mod the content is stolen from(if you picked the first like others suggested) so you put yours
do I mention ai likely being used?
I don't have solid proof outside of their other mods looking pretty obvious
in the context of that your perms state 'no such usage', i think (but no expert)
Ok
but if you have your perms set that all translations must be approved first, then that would be the major one, that applies regardless
regardless of how a translation is done.
I have perms set that you have to ask for permission before modifying my files I think
its the default one
seems like this would be the one. but again i havent done this before. it just seems like the one that applies directly.
this good? The translator for this file did not ask for permission first to make this translation.
Idk, do I go into more detail?
like, that's technically the issue
You could add that your permission settings state that this is not allowed without approval by you, or something like that? just to drive home the point.
but it seems like a good short summary of the issue
Nexus usually sides with author on these things so don't fret too much 
im hoping and assuming that whoever handles reports on nexus will have more than two braincells to rub together
so they will probably figure it out
You mainly just need to express that you did not allow this translation to be made
Is this ok?
The translator for this file did not ask for permission first to make this translation, when I have asset use permissions set to "You must get permission from me before you are allowed to use any of the assets in this file". I also would not have approved this translation if asked, because the mod is not translation ready and I believe this user uses ai to make translations. AI use on my assets is also against the permissions set on this mod.
Idk, too much detail?
I can't prove ai use, but that's not the main point either
you can never too much detail for a report imo
I mean if you put "do not translate it's not ready" in the literal i18n...
i dont think they even read the file 
Could've used google translate on my permissions at least
So they probably did not even look at it, which means it's likely they used AI which is also against your permissions
Kay, it's sent
you gotta be bilingual to be a translator imo
I wouldn't be that mad if they'd just asked. Yeah, it would've meant they didn't read the perms still, but I respect asking for permission first
damn that was the quickest I've seen a scam post removed! ty junis :)
that does feel like step 1 
i didnt even see what it was 😮 but you knew it by the way that it was?
What is the proper syntax to set the "Value" of a Dynamic Token to the string of a config setting?
like, if you wanna properly translate you need to understand the nuances of both languages and be highly proficient at writing in the translation language as well
yep there's this whole genre of photos of computers showing Mr Beast tweets telling you to visit some link to win 20k or something
It'd be "Value": "{{ConfigToken}}"
usually always the same photos too smh
But i guess there is a question of why do u need this
Ok thanks
Some people would be ok with ai translations on their mods, and I'm fine with these translators releasing those kinds of mods in that context. They just need to disclose that they're using ai to make the entire translation, or most of it anyway (meant to link to my other message)
You can use config token directly no?
scammers gotta get better material smh
I wonder if they even played with the mod, or just thought it looked good enough to make a translation for their massive list 
Idk, but they endorsed it though
there's that at least
Well that's the issue. I'm working on a gender dialogue mod. I want it to support other mods and I want to include a NonBinary option. I also want Dynamic Tokens that can easily be used in other mods with "Cross-Mod Compatibility Tokens"
That said as I was working on this I suddenly realized that NonBinary pronouns and gender references tend to change the grammar structure of sentences. Which would mean totally rewriting every sentence to fit the NonBinary version.
That's more work than I'm willing to put in ATM.
So instead I thought for now I'd use names/nicknames. But since the names can be changed in the config I need to make three values for each Dynamic Token. MalePronoun, FemalePronoun, and a reference to the NPC-Name config.
CMCT can grab your config tokens just fine too, no need to put them in a dynamic token.
Oh that's good to know.
aa that's awesome :)
Aww I see. So it is a personal mod. Well, thanks for sharing!
i was going to say something more on my thoughts abt translations, but my laptop died, so I just hope it saved what I spent minutes writing :/
i think since u are the provider of Gender™ here i'd just do a LocalizedText
@lucid iron I'm not sure what that is.
write this into various dialogues: [LocalizedText EazyT4RG3T:PronounA]
and then Load the asset EazyT4RG3T, populate the key at PronounA with value "{{PronounAConfig}}"
all mods can use [LocalizedText EazyT4RG3T:PronounA] in their dialogue to fetch the value you have provided
Right, but if my config options are "AllowValues": "Male, Female, NonBinary",
Then that solution wouldn't work would it?
it would cus u r just putting the config into asset
and content patcher will invalidate the asset for you when you change config
here's what the load and edit looks like
Okay, even sillier question than before – is there any way to access the game's XNB files when you play on Android?
-# probs not, right... 😅🥲😔
for ref, LocalizedText is actually what vanilla game uses for translations, but much like i18n it's nice for fetching some text from some key value store
i dont think the content is different?
the mobile atlas stuff is in the pc version of game too
Tried using XNBHack via PC, didn't do anything...
Maybe I'm just stupid
But I did follow the readme on the Github page...
do you own the PC version of game
Noooo.... that's most likely the issue
But my pc can't handle the game, that's why Android
(AKA not enough space atm)
(and no money either lol- 😅)
ig the question is what exactly do u want to mod 
if android smapi let you use console commands then u could maybe use cp patch export?
its very out of my knowledge base
you could probably get the apk and the assets might just be in their raw xnb form instead of in another weird format?
and then use xnb-js or xnbcli
wait i think i found something to workaround
Wanna make a Custom Map
Where the Quarry Mine bridge is
just a small thingy
"small" for now lmao
im guessing sharing even just select parts of the unpacked files is considered a no-no, since its technically redistribution of material?
an map making
prob not getting around having to unpack stuff
maybe this work on phones i dunno
It's saved! 😅 This is what I wanted to say:
You know, there's something I've noticed about many people offering to do translations, for the authors that care about not having ai translation released. If you look at some translators' files/profiles, they have ai avatars or thumbnails (sometimes both), and/or they also release translations very quickly. I know it's flattering to receive a message asking to translate your mod, but a lot of the "big" translators (the ones that are more likely to often offer soon after release, I think) are using ai, or heavily relying on google translate at least.
Not a big deal imo if the mod author's fine with that, just something to be aware of. I think they should also be disclosing the ai use when offering to translate, but some of them probably don't even think of it though 🤷♀️
@lucid iron Wouldn't I still have to pass the config tokens for "NPC_Gender" and "NPC_Name" to the LocalizedText? I guess I'm just not understanding the benifit of doing it that way.
the main benefit is that localized text works inside of i18n files
tokens require people to pass it through args
@lucid iron Gotcha. So better Translation support.
~~hmm, does nexus not always update permissions immediately? i turned one setting on, changed my mind, and turned it off again (the part about uploading to other sites), but its not updating the mod page
~~ nvm there it goes
its like an extra feature you are providing to mods who might depend on you to provide Gender™
and they wont need CMCT to use it cus this is a vanilla system
the existing "Gender Neutrality Mod Tokens" mod does things by registering mod provided content patcher token in their C# which also allows everyone to use it
but since it is still a token you cant use it inside i18n as easily
Pretty funky to use but I liked it
Yeah. I'm afraid C# is currently beyond me
Thanks to this mod I started modding myself
@void aspen oh hey sasha, ive been meaning to ask you a witchcraft-related question about the program you use sometimes. can it select pixels in a sprite based on if they are part of the outline of the sprite? like select every pixel that is next to the transparent part of a spritesheet, that kind of thing. if youre busy right now i totally understand though 
I'm pretty sure it can totally do that, tho I'm not that smart in its myself but I'm sure it can
I find new things there everyday
(Correct. General rule of thumb: If someone could take what you shared and use it as is as a drop-in replacement for one of the games files, you probably shouldn't be sending it.)
I can help you with it tomorrow or anytime, just not now cuz it's 1am
(Emphasis on "general rule of thumb" not "hard and fast rule that covers everything and every case 100%")
Oh, you know what? To very briefly touch on this (since I was just looking through some of the messages again), I'm glad this servor states "Secondly, we want to remind you that people who do use generative AI are still people." in the rules, because some artist spaces I see online will straight up demonize other people over ai art/etc. and can be really cruel. Genuinely, no actually hateful feelings towards the translator from earlier. I hope they enjoy the mod if they can understand it, and I wouldn't ban them from the page over this.
oh yeah, and there are much greater evils in this world to be upset about
I don't even mind if they use a personal ai translation at this point, since it's already been fed to one
Just don't want it published
Bye for now guys 👋
a lot of times people will prioritize hating on a perpetrator or perceived perpetrator rather then actually helping the victim (not necesarily about this, just in general)
Is secret notes framework simple?
-# pls summon me upon answering the above question I am also very curious as to how easy-to-use it is
I made a few notes with framework just text dialogue but I have no idea if or when they show up
is it possible to make an item ungiftable except for specific npcs
With SpaceCore, yeah.
darn
It has item blacklist/whitelist.
Space core isn’t too hard
its not but id be adding a dependency for 1 thing
Yeah, but it's the thing you wanted to do
its ok i can do without
could it be made optional? that whole feature? (/gen)
yeah you can do a conditional HasMod patch
so like if you have spacecore it does thing, but if not then nbd
that's what i did with all my BETAS features before it became android compatible
u could make it Universal_Hate except for ur npc
obviously u can still gift but yknow
its a red envelope so that seems not good 
(Honestly there's a good chance the user would already have SpaceCore anyway. It has more than half Content Patcher's download.)
true
(You could also make the item ungiftable to begin with but emulate gifting it through $actions and/or BETAS shenanigans.)
hm why would u want to not give red envelop to everyone 
its ok most of the town is unemployed
i have an event set up where tilly gives 2 envelopes to farme
LOL
-to farmer to give to jas and vincent
they r valid targets for free money
ah in that case u could make it be like
tilly: cant believe u lost money
heres 2 more dont do a dum again
ultimately the quest wont complete until the right ppl r gifted right
Or they could be quest item maybe.
true yas
thats a good idea
thanks friends
i like when i ask something here and i end up somewhere else
Special order
not in one quest
i think soup/chu's framework can do this but idr
:( why mailbox no maibox?
ate it
@lucid iron I'm looking through the documentation for LocalizedText and I'm still struggling to fully wrap my brain around it. Would it be okay for me to make a short example json the way I am currently writing my mod and send it to you so that you can rewrite it as the LocalizedText method. I would very much like to make things easier for translators if possible. I simply lack the skill ATM and I think having a full scale example would help.
evil :(
i think u should try to adapt the example I already gave by itself
There were several homework bits in there like
- what's a blank.json
- actually hooking this onto config
- actually using this in a dialogue
:3 mailbox coded to be 2 tall for any wondering
if the hitbox of the lower tile is off of the house hitbox, no mailbox
love it when people return to share what fixed stuff
especially instead of like "fixed it nvm" and then not share the solution to the issue 
I'm attempting to edit an existing mod for personal use. The mod changes the sound of gravel path to that of grass; I also want wood path to do this. I think I've copy-pasta'd and correctly changed all the relevant bits except I need the ID for Wood Path (the unique string ID for this floor/path) and I can't figure out how to find that number. Gravel Path is ID 5 apparently according to the content.json I'm editing. Anyone know how I can find the corresponding number for Wood Path?
@lucid iron blank.json is just a json file named however I want.
{{PronounAConfig}} is the config token.
And to use it in a dialogue it would look something like this
"eventSeen_4": "[LocalizedText MyMod:Abigail_Name] is going through a rebellious phase... I get it.#$e#[LocalizedText MyMod:Abigail_HeShe_UC]'ll wise up when [LocalizedText MyMod:Abigail _heshe_LC] has to make [LocalizedText MyMod:Abigail_hisher_LC] first mortgage payment!$h",
if youre planning to do any significant amount of modding i would recommend unpacking the game files
but if its just for one mod i could see if i can find it for you
It's just this one mod that I am editing. If it helps the mod is "Gravel Path sfx to Grass Path" by Serafiep on Nexus. Any help would be appreciated
no problem, give me a few seconds, im just double checking which one is wood path
its path ID 6, if you mean the one thats sort of loose planks, not the solid wood floor
I guess what I'm trying to say is I don't understand how to get dynamic tokens from the content.json into the blank.json for the LocalizedText. Like I'm not understanding the format of the LocalizedText file itself. Or how the two interact.
so returning to this thing
Like [LocalizedText MyMod:Abigail_HeShe_UC]
Needs to return either "He, She, {{Abigail_Nickname}}"
That is the right one. I tried 6 on intuition earlier and it made SMAPI mad so I assumed I guessed wrong, but considering SMAPI is still throwing a error when that's the correct ID it must be something else hmm
ah i see you are confused about the conditional editing part
Yeah
so lets say we have Config_Abigail_Pronoun as a token
depending on the player's settings, {{Config_Abigail_Endearment}} can resolve to He She and {{Abigail_Nickname}}
altho i guess in this case it'd have to be a dynamic token, so let me amend my example
Okay so I do need the Dynamic Token still
@slate pelican this might also be useful, the top numbers here are the IDs of the item that goes in your inventory (stored in Objects.json in unpacked Data). the numbers below are the IDs they have in FloorsAndPaths.json (the ids for the stuff that actually goes on the ground)
not neccesarily, ill flesh out my example for this particular usecase
maybe you can share your content.json with the validator? im not an expert but i can try to take a look, i added a custom path to the game last week so im at least a little bit familiar with this area
{{Abigail_Nickname}} is a string config btw
so in this case i simply put the When on the actual EditData patches
you could indeed make a intermediate dynamic token if that suits you better
DT approach would be like this https://smapi.io/json/content-patcher/abed2490c4234e35882fa68ea794bf11
Thank you, I appreciate. I'm sure it's probably something simple; I understand mod coding just enough to be dangerous. https://smapi.io/json/content-patcher/2acad4a72ebc4307af1326bd584b859c
ill stress again that this is not strictly about getting your own mod to work
you are providing something accessible to everyone by doing this
thats how i like to think of myself too, like a monkey with powertools and no adult supervision 
in your own mod you do benefit from being able to just write [LocalizedText EazyT4RG3T:PronounA] and so on in your i18n, without needing something like {{i18n:key |PronounA={{Abigail_Endearment_Value}} }} on the outside
I'm doing this mainly for myself but I'd like to make a universal solution if possible yes.
@slate pelican looks like you got got by a comma (very common). try adding one right after the bracket on line 29. you see the validator complains about error on line 31. which is often caused by the thing directly above
since your starting mod added only one part, it wouldnt have had a comma there. but when you add two, one is needed between them for ..uh computery reasons im not competent enough to put into correct words at this hour 
this mod edits more of the path than strictly necessary i believe
and because the coordinates for the second entry is also pointing to the texture of the gravel path, the wood path is probably gonna look like gravel now too. let me see if i can mock something up to remove the redudant edits. if the goal is only to edit the sound, its best practice to leave the rest of the stuff untouched
Of course it was a comma. /facepalm You're right though, they now look the same
ye gimme a min and ill give you another version to try
is it only FootstepSound youre looking to edit?
@lucid iron Okay, I think I'm starting to get it. Another question, can I pull a string config's default value from i18n? Like
"Abigail_Name": {
"DefaultValue": "{{i18n:Default_Abigail_Name}}",
}
Mostly. If I can also make the placement sound grassyStep that would be perferable, but the main thing is the footstepSound; I have texture replaced the gravel and wood paths to look like light and dark grass respectively and it's annoying that they don't sound like grass
@slate pelican https://smapi.io/json/content-patcher/845ec916774e495c87874bcfc6015fa5 try this one and see if it complains about anything. i left in the stuff thats relevant for sounds and debris type
no
this is another thing that you'd have to use intermediate dynamic token for, with HasValue:Abigail_Name as the condition
yeah you should be able to put grassyStep in PlacementSound too. unless im entirely mistaken the names for these sound assets should be able to be used interchangeably, at least in this case
Haha Okay so they look different now, but when I place them they place as one individual tile that doesn't do the path-connect-together action and also functions as a placed object that stops me (like furniture would) instead of letting me walk on it
But no SMAPI errors
Ohh i think i know why. my intention was to remove unnecessary overwrites of the default settings, but its possible instead we've just wiped all the properties of the path except for the ones we set. maybe you gotta include them all in there after all
unless theres something more appropriate to use than EditData for this
lemme see
I didn't think you could use "HasValue" in a ConfigSchema
I went back to the original version+comma and tested the placement sound; changing that variable to grassyStep DID change the placement sound effect without issue. So it's just a matter of correcting the tilesheet pointing issue so it shows the correct textures
ye, imma get you the coordinates for the wood path
yes thats why you'd have to use intermediate dynamic token
i think im too tired to figure out if theres a more elegant way to do the edit right now (02:25 here)
That's so valid
wood path is 128, 64. as opposed to the gravel path which is 64, 64 as you probably know
remember to change the winter version too. its just another spritesheet with the exact same layout and winter coloring. so same coords
Oh I figured out how to debug the secret note framework. It’s the debug command json debug sn <noteid>
I checked if there was a better (grassier) debris type listed on the wiki you could use for your RemovalDebrisType, but it looks like theres none of a grassy kind listed for paths. https://stardewvalleywiki.com/Modding:Floors_and_Paths
It works; YAY! Thank you so much
I did consider changing it to the scythe noise since that's how you cut grass, but since it's a path you remove it with the pick/axe so it still makes sense. My retexturing mod changes the pathing to the light and dark snow/winter ground textures and I'm realizing snow and frozen dirt have different sound effects than grass and I'm trying to decide if I care enough to try and figure out how to change the sound effects for winter
you should be able to use a When for this, i might have an example lying around i use for trees
@lucid iron I am sorry. I think I've hit my limit of hard thinking for the day. Been dealing with a TBI and after a while my head starts going all foggy. Thanks for all the help. I'm still a bit confused on how to use localization for the default names, but I've hit my limit for today. Gonna go make some notes and start back up tomorrow. Thanks again for all the help.
IDK if it's bc Content Patcher is amazing or if CA made it easier in 1.6, but I remember not too long ago people basically said editing sound effects wasn't possible bc it was so hard to parse. Stardew Modding/mod tools have come so far
i believe it was added recently
content patcher is very good at its job, but the real game changer when it comes to modding is that, over time, more things qualify as content (they are driven by data instead of being hardcoded or otherwise difficult to edit) and can therefore be patched
(and of course the real trick is that the same person, pathoschild, is responsible for both)
pathos! pathos!
@slate pelican this one has two sections, one is active in spring, summer and fall, and the other in winter (hopefully). so you can set different sounds for winter. i didnt change the sounds and coordinates with your progress (so youll need to update that again), but the structure should be ok. https://smapi.io/json/content-patcher/fe1e9bc45b494cd78a19cd66a168fe65
(And Casey!)
ack the validator mangled my comments a bit, but not in a major way. but, its very late, so i shall leave you in the much more capable hands of these fine people for further assistance
and ill go get some sleep 
if the When isnt Whenning good then they can probably help you sort it 
Is it just not possible to edit the raccoon requests with content patcher? Or am I overlooking something? They're not included in Quests, Bundles or Special Orders at least, as far as I can tell.
Hey yall! I was wondering if anyone had good resources for learning how to make a mod for stardew valley? I have no experience with mods, but I do have a tiny bit of coding experience. I pick up coding languages pretty easily, I just dont know what I dont know lol. Any articles, youtube videos, or anything yall have would be greatly appreciated!
Hey guys if I finally got back around to finishing a mod ive been off and on working on for like 2 years, can I post it somewhere? im excited, i have it on nexus i just want to share the link
As a fellow extreme beginner, the wiki has a dedicated modding section that I find extremely helpful
good to know I will check that out right now
the decompilation of the game is the single most helpful asset i cant lie
stuff i didnt think was possible, is totally possible, and its thanks to looking at the variables and stuff in there
Hardcoded.
yeah you can link to your mods on here. if they're not about modmaking (i.e. not a framework or something and intended for players) i would use #modded-stardew (and i'd do it here otherwise)
i wanted my hotkey - to - item equip mod to be able to auto eat when the item is a food and then swap back to whatever tool you had on last (so like in the mines, could press hot key on controller or kb to swap to food, eat it, and swap back) and it kept eating the food, getting the status affects, and keeping the dish, yeah i was using the wrong function that was really one of two parts of a larger function
so here? or modded-stardew
oh but also there are some rules about content and what is allowed on here in general so check those first
Rip. Is it possible to add a specific smoked fish to a shop then, maybe? That might work as a workaround for me.
i used to talk in here a lot when i first started
but stardew is like a ship through the night to me, i always come back to it
I don't think so, but I'm not super familiar with all the item queries available, so don't quote me on it
Actually there is FLAVORED_ITEM I think, that might be able to do it
There's some item queries page on the wiki.... somewhere
What's the current "state of the art" reguarding providing both simplified and traditional Chinese translations (i.e,. cn and cn-TW json files)? Best I can tell from searching in this channel is that as of a couple of years ago it required some other mod to add cn-TW as a language in order for SMAPI to automatically try loading i18n strings from it?
yea u can make a shop sell smoked fish with FLAVORED_ITEM
FLAVORED_ITEM SmokedFish 120 0
something like that
u can also just give that to urself with debug iq FLAVORED_ITEM SmokedFish 120 0
120 is tuna iirc
How would I do this? Just put it where the ID for the item usually goes? Or does it need an extra field?
the whole thing goes in "ItemId"
im not really sure how this helps you with racoon tho
Afaik you would still need a custom language mod to add a cn-TW or cn locale.
The point is just to avoid having to kill a fish for the quest. Ideally I'd have just changed the item required, but this will have to do as a workaround I guess.
i guess you could make a font mod to use with the simplified translation
font smasher should be able to do it but it'll perhaps suck slightly
SMAPI won't load a cn.json or cn-TW.json though without something to set the locale to cn/cn-TW
this is assuming you only want a tranditional chinese display and not an actual localization
i think chu means if the traditional and simplified hanzi are different unicode code points then you can make font smasher add them independent of the locale, but i agree it would suck
It works perfectly, thank you so much! Your comma comment made me chuckle. I hope you have a great night and sleep well. Now I just have to figure out what the relevant snow/frozen ground footstep sound effects are, because they appear to not be the obvious ones (because of course not)
防风草
防風草
\u9632\u98ce\u8349
\u9632\u98a8\u8349
so in the theoretical font mod only approach u just make 风 look like 風 even tho it is still \u98ce
instead of the real thing at \u98a8
ah, sorry, I meant zh, which is listed on the translation page on the wiki so I assume there's native support for it. I've got some person offering a zh-TW.json and asking if there's a way to do that besides overwriting the zh.json.
Possibly soundboard mod or one of the debug commands for sound could work. But now im really off, i just wanted to know if the latest would work

So to summarize, the choices are either provide an alternate file for the user to overwrite the zh.json or install an additional mod that adds a zh-TW language code (presuming such a mod exists)?


