#making-mods-general

1 messages · Page 578 of 1

near imp
#

eep, rule.. 12, was it? it recently had a change, just letting you know nullnnow SDVpufferheart

barren tapir
#

Sorry

void aspen
#

4 vs 1 😭

autumn tide
#

no worries! you didn't know

hard fern
#

Discord decided to scroll me up past all 287 messages....

autumn tide
#

oh heavens

void aspen
#

thats a really good idea I may use it one day

#

free labour is always cool

icy pond
#

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?

lucid iron
#

no

ornate locust
#

Can't do that without C# or something

lucid iron
#

simply just disregard

icy pond
#

Ok, thanks

#

I'll just add a description to those configs that tell the player they don't do anything without the other mod.

ornate locust
#

That'll do

torpid sparrow
#

On account of no more school I’m going to try to finish the last event tonight

#

It’s gonna be hard

whole prism
#

is this for npc >.<

torpid sparrow
#

Yas last event for the 14-heart arc

#

Not in general though

whole prism
#

oo okayy

#

cries

#

im so tired

#

i gotta test half of all my 30 new quests

twin mica
#

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

ocean sailBOT
#

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.

whole prism
whole prism
#

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

heady crest
#

is there any workaround for this? its really annoying that the windows wont go dark at night

barren tapir
whole prism
barren tapir
#

TYSM!!

twin mica
void aspen
#

whats delimiter I wonder

#

Ive seen it some places but never understood

whole prism
# twin mica tysm for all of your messages Lucy! where exactly would I put this snippet you s...

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#.

ornate locust
#

It... delimits. Specifies boundaries

#

It's the thing between items in a list basically

whole prism
brave fable
#

delimiters are also often referred to as separators in some cases. same principle

hard fern
# void aspen Huh

since gift tastes are all like
"74 206 835/", the delimiter is a space because that's what separates each item

ornate locust
#

Some lists are separated by commas, some by spaces

void aspen
#

oh I see

#

so delimiter just points out what symbol is used to separate items in lists?

#

I see

uncut viper
#

There's also nothing saying a delimiter has to be a special character either

void aspen
#

can it be a word or a sentence

uncut viper
#

If you have the string "wowow124abc" and say the delimiter is "2" then you get two items, "wowow1" and "4abc"

void aspen
#

neat

whole prism
#

or is that a very different approach they take

uncut viper
#

i havent the faintest

whole prism
#

gotchu

void aspen
whole prism
#

like some commands you can run "commandName --details"

#

and usually "--" is the delimiter

#

to specify flags

whole prism
#

this seems like that meme but

#

this emoji seems like it was breaded, and deep fried

iron ridge
void aspen
#

deepfried tbh creature

#

something I can imagine happening

#

poor thing

whole prism
#

really depends

hard fern
#

tbh katsu

hard fern
iron ridge
#

arguments are always separated by a space

#

a program could just as easily make arguments be *thing or **thing

whole prism
#

gotchu

whole prism
#

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!!

vernal crag
#

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

ornate locust
#

Easter egg

vernal crest
#

(I am orang again)

vernal crag
#

Okay, guess I can safely remove itSDVpufferparty

#

Thank you

calm nebula
#

Aba weren't you moldy

near imp
brittle pasture
#

~~aba took antifungal spray SDVpufferwaaah ~~

vernal crag
severe cairn
#

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)

brittle pasture
#

1.7 fixes it so 156 also works, but for now you need the full qualifier

uncut viper
#

(1.6.16 fixes it)

severe cairn
#

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

half tangle
#

@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.

void aspen
#

using cjb cheats 🫢

#

I still use debug commands manually

half tangle
#

heh, I use a mix... depends on what I remember exists in the moment

ivory plume
modest dagger
#

I thought setting the location to something other than their home would make them just spawn there at the beginning of their schedule

ornate trellis
#

with a 0 schedule point, i believe

long jungle
#

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?

brittle pasture
#

yes

long jungle
#

Dem, you are a legend SDVkrobusgiggle SDVemoteheart

#

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?

brittle pasture
#

yes

long jungle
#

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.

severe cairn
modest dagger
valid folio
#

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?

torpid sparrow
#

i underestimated how long this event was gonna take

#

ill finish tmr....

torpid sparrow
#

conditionally adding the entry to the geode list sounds right

valid folio
valid folio
valid folio
# torpid sparrow yes!

Can I send you a private message? I was going to message you on Nexus, but since you’re here haha.

torpid sparrow
#

If you have a specific question/request sure! Otherwise I prefer just here or you can shoot me a dm on nexus too

valid folio
brittle pasture
#

no need for CP's When

torpid sparrow
#

Selph to the rescue SDVpuffersquee

valid folio
brittle pasture
#

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

valid folio
brittle pasture
#

well either works really

#

I'm just using an example

valid folio
brittle pasture
#

none of the existing geodes have a conditioned drop, but if you unpack with default settings it should still show them as null

misty ivy
#

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

brittle pasture
#

yes, you can either patch the map itself or the tilesheet (if this is a custom tilesheet) with a When condition

misty ivy
#

Thank yeouu

valid folio
brittle pasture
#

set a flag, then condition on "player does not have flag"

valid folio
brittle pasture
#

"SetFlagOnPickup": "CoolMailFlag",
"Condition": "!PLAYER_HAS_MAIL Current CoolMailFlag"

valid folio
brittle pasture
#

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

valid folio
stoic chasm
#

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.)

stoic chasm
long jungle
stoic chasm
#

For a custom npc I'm making. They are all for one individual

brave fable
#

consider: the wizard has two (2) portraits

#

he is universally beloved

stoic chasm
#

I am really sorry, but can you explain what you mean by that-?

primal garden
#

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

brave fable
#

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

brave fable
brave fable
#

[[Modding:Manifest]]

#

alas

primal garden
#

also how do you get that block around your text?

stoic chasm
brave fable
#

one backtick for inline style, three backticks + newline + text + newline for a block

#

!codeblock

ocean sailBOT
#

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.

primal garden
#

oh ty

long jungle
brave fable
#

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

stoic chasm
brave fable
#

in that case, 1 is enough, and everything else is just as much as you like until you're satisfied

primal garden
#
  "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'."
stoic chasm
primal garden
brave fable
#

you wrote load instead of Load 🙂‍↕️

primal garden
#

didnt even realize

ornate drift
#

is there a way to replace existing hats into two different colors

#

EditData?

primal garden
#

my mod is still not changing evelyn's sprite?

ornate drift
#

i think

primal garden
lucid mulch
ornate drift
#

the } and ]

lucid mulch
#

There's no missing , in that code block, and any extra would be technically against json spec, though SMAPI/CP would accept it anyway

primal garden
ornate drift
#

at the end

#

right before the last }

primal garden
#

I have those there before yhe last one tho

ornate drift
#

oh

ornate drift
primal garden
#

{
"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

#

?

mellow laurel
#

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"
        }
    ]
}```
primal garden
# mellow laurel 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"
    }
  ]
}```
#

that was my original but it still isnt loading

#

does anyone want to test the mod out?

mellow laurel
#

you could share your log

primal garden
#

oh yeah

#

let me get it

ornate drift
#

does anyone know where the hats are located in the unpacked game files

mellow laurel
#

characters/farmer

ocean sailBOT
#

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.

mellow laurel
#

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

primal garden
#

im using vortex

#

i think it just does that

mellow laurel
#

no

mellow laurel
#

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

primal garden
#

oh ty

ornate drift
#

if i wanna replace a spritesheet

#

is it just EditData?

primal garden
ocean sailBOT
#

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.

mellow laurel
#

I don't see it loading or failing to load now, still only have the one content pack loading

primal garden
#

if you want tho

#

idm

primal garden
#

Do you think it could not be working bc of the file order?

mellow laurel
#

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.

primal garden
frozen elm
#

@lucid iron Hi, I have been playing around with MMAP for furniture and I have some questions:

  1. 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.

  2. 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).

  3. 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.

ornate drift
#

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

verbal glacier
#

Do you want to replace a hat or do you want to make a new hat entry?

ornate drift
#

replace

#

thats why its EditImage not EditData

#

im trying to replace hats.png

ornate trellis
#

its Characters/Farmer/hats

ornate drift
#

hats has a folder...?

ornate trellis
#

no folder, but thats the asset to target

ornate drift
#

im already targetting Farmer though

#

didnt know i had to target hats as well, i figured it was just a PNG

verbal glacier
#

you were not targeting deep enough

ornate drift
#

didnt know you can also target PNGs

void aspen
#

I mean, that's how most cp retexture mods works

ornate trellis
#

i mean thats the same for example when you have a farmhouse retex you dont just target the buildings folder but the exact farmhouse

ornate drift
#

that...didnt work either

void aspen
#

Have you set hat entries

ornate drift
#

wdym

void aspen
#

Oh you just replace them

verbal glacier
#

do you want to replace a single hat or all hats?

ornate drift
#

yeah

#

no new ones

ornate drift
verbal glacier
void aspen
#

How does your asset file look like

verbal glacier
ornate drift
void aspen
#

You should one replace ones you need not all of them me thinks

ornate drift
#

ykw ill just make completely new ones at this point 😭

void aspen
#

No you gotta learn how to do it

ornate drift
#

i already know objects and edibles

#

i just need to learn wearables

#

or hats as you call them

void aspen
#

but ig FromArea is just as good as manually cropping

ornate drift
void aspen
#

yeah

verbal glacier
#

if you want to replace yeah

ornate drift
#

i figured it was as basic as replacing an entire PNG

#

okay uhhhhh

#

the one i replaced is below the straw hat one

verbal glacier
ornate drift
#

what size are hats

#

16x16?

void aspen
#

if your hats aren't touch on the target file then youd need to do two edits

#

20x20

void aspen
void aspen
# ornate drift 16x16?

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

void aspen
#

I thought you had two hats to replace

ornate drift
#

yeah ill show the other one in a bit

#

aughhhh

void aspen
#

im using tiled to easily get the cords btw

verbal glacier
ornate drift
void aspen
#

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

ornate drift
#

okay uhhhh

#

hold on

void aspen
#

this works

#

after you finish testing them you can add them as new hats as well

ornate drift
#

how can i check their xy coords

void aspen
ornate drift
#

ye

#

i mean mine

#

hat1 and 2

void aspen
#

your hats already cropped so they dont need FromArea

#

You only need ToArea on the target file

ornate drift
#

oh okay

void aspen
#

for a green hat

#

not sure what other hat you replace

ornate drift
#

much appreciated

#

its the trucker cap

#

and sports hat

#

so it should be like this right?

void aspen
#

"ToArea": { "X": 160, "Y": 640, "Width": 20, "Height": 80}

void aspen
#

then you do the second one just with other coords and from file

ornate drift
#

hopefully this works

void aspen
#

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

void aspen
#

after from file

#

both lines

ornate drift
#

did it

#

time to test

ornate drift
#

so i dont have nightmares about xy coords placement

void aspen
#

do you have Tiled rn

ornate drift
#

and yeah

void aspen
#

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

ornate drift
#

oooh ok, ill note this down

void aspen
#

then you press okay and save the tsx file in any place
its a tiled file that has your texture

ornate drift
#

tysm!! saved me a ton of time

#

could not be more thankful

void aspen
#

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

void aspen
# ornate drift yay

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

ornate drift
#

yeah

#

xy hw

void aspen
#

wh

#

but yeah you got it

ornate drift
void aspen
ornate drift
#

oh

void aspen
# void aspen So it still would be two editimages but youd have the same FromFile just with di...

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

ornate drift
#

true

#

i appreciate you explaining all this

#

now i know how to edit stuff properly xd

#

thanks

#

maybe someday ill try adding custom hats

void aspen
#

you can do it today tho

ornate drift
#

should just be EditData for the most part

void aspen
#

you already know how to do custom food

ornate drift
void aspen
#

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

ornate drift
#

index shouldnt be that hard

verbal glacier
# ornate drift maybe someday ill try adding custom hats

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"
}
}
onyx reef
#

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

lucid iron
void aspen
#

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
        }
      ]
    }
  }
}```
verbal glacier
#

you need to use targetfield

#
                "VolcanoShop",
                "Items"
            ],```
void aspen
#

oh

verbal glacier
#

and then entries

void aspen
#

tyyy

#

[game] Item spawn fields for shop 'FishShop' > entry '???' produced a null or empty item ID.

#

hmmm

#

things did work with custom shop

verbal glacier
#

can you share the json

void aspen
#

im not sure you wanna look into 2500 lines of that

#

Ill fix it

verbal glacier
#

or the section

void aspen
#
 {  
    "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

verbal glacier
#

for fishshop you'd put the same as id and you don't need the second "items"

void aspen
#

so I do entries without opening new fishshop and items brackets

#

if I do target field

frozen elm
verbal glacier
#
    "Action": "EditData",
        "Target": "Data/Shops",
        "TargetField": ["FishShop","Items"],
        "Entries": {
                "{{ModId}}_Monster27": {
                            "Id": "{{ModId}}_Monster27",
                            "ItemId": "(O)  {{ModId}}_Monster27",
                            "Price": 2000
                        }
                }
},```
void aspen
#

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

verbal glacier
woeful lintel
frozen elm
woeful lintel
#

I should make a converter at some point... and compat with AT is complicated indeed.

spiral lion
#

hello!
does anyone know a good way of how to move a custom NPCs home tile after an event???

fossil osprey
#

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

spiral lion
#

i will try it!

fierce vault
#

I just got the coolest comment where someone said they thought my mod’s writing was so good! Really made my day even better 😄

whole prism
#

Happy Easter to everyone!!

clever monolith
#

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?

void aspen
hard fern
#

ah yes

vale holly
hard fern
void aspen
#

can I get 2000 uhhhh

#

qi shop doesnt have Prices it has Requires apparently

#

gotta fix it ig

hard fern
#

💎

#

big

void aspen
torpid sparrow
#

behold....the last event

void aspen
# void aspen uhh

In case anyone else find themselves in this situation

"TradeItemId": "(O)858",
"TradeItemAmount": 30,
"Price": -1
clever monolith
craggy goblet
#

Now I'm even more afraid of creating my events 😭😭🫡

void aspen
#

would be nice to have some kind of event builder that converts simple things to this text

clever monolith
#

yeah this will forever be just an idea
I don't have that kind of patience for that oml

fierce vault
#

events are fairly simple, when you're familiar with how they work better. It kind of is already text

torpid sparrow
#

i did not mean to scare anyone

#

that event is technically a 3-in-1

#

so it got super long

fierce vault
#

wem, idk what your event's about, but if it were mine, I think I would get ill if I tried multilining that thing 😵‍💫

harsh bobcat
#

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

torpid sparrow
#

bc of the sheer length

#

theres 72 strings (thanks i18n)

warm maple
#

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.
toxic topaz
#

is there a legend for npc sprite sheets somewhere? like which panels are which

primal garden
#

my mod isnt loading and idk why it is not loading the smapi json viewer said it the manifest and content.json were fine

verbal glacier
#

what does your smapi terminal say when loading, do you get an error?

ocean sailBOT
#

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.

primal garden
#

its a mod that supposed to change evelyn

verbal glacier
#

does it have evelyn in the mod name? cause that is not showing up

primal garden
#

or maybe by eve

verbal glacier
#

can you share your manifest and content.jsons?

verbal glacier
#

you shared content twice

verbal glacier
#

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)

verbal glacier
#

are both your manifest and content.json in the same layer? so not in a folder

#

(besides your mod folder)

fossil osprey
#

I was gonna say, maybe the issue lies with your folder structure

primal garden
#

this is it for me

fossil osprey
#

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

primal garden
#

well here is the folder layout

verbal glacier
#

your mod shouldn't be in another folder

primal garden
#

vortex did that for me

void aspen
#

do you have a steam sdv or gog one

primal garden
void aspen
#

im wondering

#

this folder layout looks rather strange for a steam one

uncut viper
#

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.

verbal glacier
#

ah

uncut viper
#

The content.json format also doesn't matter

void aspen
#

smart if one want to make separate folders of mods

primal garden
uncut viper
#

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

primal garden
#

I tried with stardrop

uncut viper
#

Try it without any mod loader at all.

#

Mod manager* sorry

void aspen
#

im a bit confused why use a mod manager if thats a mod you did

#

not sure how vortex or sdrop work

fossil osprey
#

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

primal garden
ocean sailBOT
#

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.

warm maple
#

You misspelled "assets".

#

Rename the "assests" folder and your mod should work fine.

crisp jasper
#

dude what the heck

#

(mod is Tool Upgrade Bundles btw, I’m just making some personal edits)

primal garden
#

it finally works

#

this would have been a good april fools mod

swift falcon
#

But you might already be aware

crisp jasper
#

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

proven spindle
crisp jasper
swift falcon
#

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

crisp jasper
#

oop lol

#

sigh tried sleeping in the bed and exiting and reentering my save but nothing 😭

#

also did a patch reload

old edge
#

For unlockable bundles?

crisp jasper
#

yeah, I’m trying to make some personal edits to Tool Upgrade Bundles, which uses that as a framework

stoic blade
#

you can type ub Savedata to check all UB bundles status

old edge
#

I’ve never tried to debug the bundles but you can with the console commands.

crisp jasper
#

testing

stoic blade
#

Had to work with that when testing UB integration for UIIS2Alt

crisp jasper
#

okay interesting

stoic blade
#

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.

crisp jasper
#

just did that

#

still 50 moss instead of 25 😭😭

stoic blade
#

I have to go back and look what i did to deal with that 😅 give me a moment.

lucid iron
#

I don't mean this in discouraging way but it may be faster to just give yourself 25 moss

merry river
#

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?

crisp jasper
#

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

lucid iron
crisp jasper
#

oh lol

lucid iron
#

You probably have to do indirect mail flag to do this

merry river
# lucid iron FTM does support cp tokens but not config tokens iirc

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

stoic blade
#

@crisp jasper Try ub ResetBundle <bundle.name> instead

#

That changed it whitout having to go to bed aswell.

crisp jasper
#

AAA FHANK YOU

#

IT WORKED :D

stoic blade
#

Great! 😃

lucid iron
#

Those would go in the cp pack and be able to use conditions

merry river
urban patrol
#

(after i heat up lunch)

stoic blade
#

I'l go back and keep working on my spinoff shoot of "Honey, I Shrunk the Trees!" ("Hide Trees"-toggle i'm testing)

merry river
urban patrol
#

spawning is complicated

merry river
#

...the first one obviously is not supposed to be a manifest file SDVpufferblob

primal garden
#

what permission allows me to tell people that they could update my mod for a newer version if my mod gets out dated

ornate locust
#

You can do custom permissions if you want to be that specific

#

There's a checkbox for custom permissions

primal garden
fossil osprey
#

You post it here, then ask nicely for someone with the mod author role to showcase it for you

uncut viper
#

(However keep in mind that a mod author is not obligated to do it on your behalf.)

primal garden
#

tysm

fleet oxide
#

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?

primal garden
#

Would these premissions let me update this mod?

ornate locust
#

this one here means you can, yes

uncut viper
#

As long as you don't enable DP

ornate locust
#

You have to ask re: DP, yes

uncut viper
#

(Or sell it obv)

primal garden
#

also why does it have these files in it

wispy bramble
#

mac user

primal garden
wispy bramble
#

no

#

they do nothing

primal garden
#

ty

ornate locust
#

That is not necessary, it's a file Macs tend to leave scattered around

brittle pasture
#

if you want more eligible items for the machine entry add another entry to the Triggers list

marsh reef
#

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 😅

urban patrol
modest dagger
#

when my event refuses to work but doesn't give an error

barren tapir
#

How would you create animated furniture?

fleet oxide
fierce vault
urban patrol
fierce vault
#

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

fleet oxide
urban patrol
warm maple
# brittle pasture if you want more eligible items for the machine entry add another entry to the `...

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.

brittle pasture
#

then you use preserve_sheet_index_Cornucopia_WhiteGrape

warm maple
#

Ah, thank you! Yeah, I just needed the syntax lol

urban patrol
merry river
#

and the conditions like foraging level 10 or specific days are being ignored

urban patrol
#

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

merry river
#

i haven't used a When in that case, I stuck to the condition field SDVpufferthinkblob

urban patrol
#

in your trigger actions json? i see conditional edits based on config options and SVE has mod etc

merry river
urban patrol
#

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

merry river
#

the only other option would be to do a conditional includeSDVpufferthinkblob

urban patrol
#

which is essentially the same thing, yeah SDVpufferthinkblob

#

anyway i shall speculate on that no more

#

@merry river this is the issue i was having

merry river
#

@urban patrol so this is what you did eventually? would you mind showing me your code for better understanding? SDVpuffersquee

urban patrol
#

yeh let me link

marsh reef
#

guys what's the extra bit on the right side of the farmhouse texture? 🤔

near imp
#

legacy space probably. the greenhouse used to be on the same png as the farmhouse

modest dagger
#

I got multiple buildings layers but the additional ones are still passable, how fix pls

near imp
modest dagger
#

is there not a way to change a layer to be impassable

gaunt orbit
modest dagger
#

fucking hell

gaunt orbit
near imp
gaunt orbit
#

I just replied to the wrong message :P

modest dagger
#

right so what I need to do is layer better got it

near imp
#

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 SDVkrobusgiggle ). 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 SDVpetcatangy

merry river
urban patrol
merry river
# urban patrol did it fix your issue? 👀

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

near imp
urban patrol
#

ah gotcha well lmk, i'm curious!

craggy goblet
#

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])

near imp
#

!unpack

ocean sailBOT
#

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!

craggy goblet
#

tyy kattia :D

fierce vault
#

oh no… someone made a clearly ai translation of my mod when the i18n files aren’t complete and I said no ai SDVpuffercry

#

literally in the perms

near imp
#

bonk them aSDVpufferbonk

ornate trellis
#

bonk time

fierce vault
#

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?

ornate trellis
#

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

near imp
#

breaking perms sounds like something you can report to nexus ye. get it taken down

fierce vault
#

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?

near imp
fierce vault
#

kind of upsetting, i even stated in the i18n itself the mod wasnt translation ready

ornate trellis
ornate trellis
near imp
fierce vault
#

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

near imp
#

this is fixable, you got this 🫂 and im pretty sure nexus will take your side

old edge
#

I'm having an issue with an important item I made being destroyed by bombs

ornate trellis
#

i mean, since theres no i18n yet that would mean they had to upload parts of your mod so thats another issue, isnt it

old edge
#

do I need to create code to make the item impervious to bomb blasts

near imp
ornate trellis
#

ah

fierce vault
#

I clearly state this in the file itself

#

oh

autumn tide
#

eugh, sorry parcy :(

fierce vault
#

and it's opted in to receive donation points :/

#

should make a takedown even easier tho

autumn tide
#

destroy them SDVpufferwoke

fierce vault
#

which one? stolen content or DP issues? I'll get to explain either way

#

Probably stolen?

near imp
#

feel like the stolen / no permission is the major one

#

the other one is like salt in the wound

fierce vault
#

yeah

uncut viper
#

Also, enabling DP isn't an issue unless it is done without permission, so it would still fall under the first one.

autumn tide
#

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)

fierce vault
#

wait, when it askes for a source link, do I put in my mod?

fierce vault
uncut viper
#

(Publicly calling people out in this server is against our rules.)

fierce vault
#

oh

#

alright

#

that's fair

autumn tide
#

aah okay, gotcha

#

makes sense

fierce vault
#

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

autumn tide
#

the internet can really be a breeding ground for the most horrific dogpiling and hate

near imp
#

yeah brigading is unnecessary

fierce vault
#

I just want the translation down 😅

autumn tide
#

that's wholly reasonable!

fierce vault
#

I think it is?

autumn tide
#

I'd assume so

near imp
#

whats the context of the word?

#

but i think so too. like source where something was taken from

fierce vault
#

source link (required)

#

ok got it

near imp
ornate trellis
#

yeah the link is for the mod the content is stolen from(if you picked the first like others suggested) so you put yours

fierce vault
#

do I mention ai likely being used?

#

I don't have solid proof outside of their other mods looking pretty obvious

near imp
#

in the context of that your perms state 'no such usage', i think (but no expert)

fierce vault
#

Ok

near imp
#

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.

fierce vault
#

I have perms set that you have to ask for permission before modifying my files I think

#

its the default one

near imp
fierce vault
#

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

near imp
#

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

lucid iron
#

Nexus usually sides with author on these things so don't fret too much Bolb

near imp
#

im hoping and assuming that whoever handles reports on nexus will have more than two braincells to rub together SDVpuffersquee so they will probably figure it out

lucid iron
#

You mainly just need to express that you did not allow this translation to be made

fierce vault
#

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

toxic topaz
#

you can never too much detail for a report imo

jaunty shuttle
fierce vault
#

Yup

#

in the literal file

#

Which they probably couldn't read

near imp
fierce vault
#

Could've used google translate on my permissions at least

near imp
#

something something "if those children could read they'd be very upset" SDVkrobusgiggle

#

.jpg

jaunty shuttle
#

So they probably did not even look at it, which means it's likely they used AI which is also against your permissions

fierce vault
#

Kay, it's sent

autumn tide
#

you gotta be bilingual to be a translator imo

fierce vault
#

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

autumn tide
#

damn that was the quickest I've seen a scam post removed! ty junis :)

near imp
near imp
icy pond
#

What is the proper syntax to set the "Value" of a Dynamic Token to the string of a config setting?

autumn tide
#

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

autumn tide
lucid iron
autumn tide
#

usually always the same photos too smh

lucid iron
#

But i guess there is a question of why do u need this

icy pond
#

Ok thanks

fierce vault
lucid iron
#

You can use config token directly no?

autumn tide
#

scammers gotta get better material smh

fierce vault
#

I wonder if they even played with the mod, or just thought it looked good enough to make a translation for their massive list SDVpufferthinkblob

#

Idk, but they endorsed it though

autumn tide
#

there's that at least

icy pond
#

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.

uncut viper
#

CMCT can grab your config tokens just fine too, no need to put them in a dynamic token.

icy pond
#

Oh that's good to know.

long jungle
fierce vault
#

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 :/

lucid iron
icy pond
#

@lucid iron I'm not sure what that is.

lucid iron
#

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

icy pond
#

Right, but if my config options are "AllowValues": "Male, Female, NonBinary",
Then that solution wouldn't work would it?

lucid iron
#

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

craggy goblet
#

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... 😅🥲😔

lucid iron
#

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

craggy goblet
#

Tried using XNBHack via PC, didn't do anything...

#

Maybe I'm just stupid

#

But I did follow the readme on the Github page...

lucid iron
#

do you own the PC version of game

craggy goblet
#

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- 😅)

lucid iron
#

ig the question is what exactly do u want to mod blobcatgooglyblep

#

if android smapi let you use console commands then u could maybe use cp patch export?

#

its very out of my knowledge base

iron ridge
#

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

craggy goblet
#

wait i think i found something to workaround

craggy goblet
#

Where the Quarry Mine bridge is

#

just a small thingy

#

"small" for now lmao

near imp
#

im guessing sharing even just select parts of the unpacked files is considered a no-no, since its technically redistribution of material?

lucid iron
#

an map making

#

prob not getting around having to unpack stuff

#

maybe this work on phones i dunno

craggy goblet
#

That looks kinda OP actually XD

#

Yeah nah, my idea ain't working 😔

#

weird

fierce vault
# fierce vault i was going to say something more on my thoughts abt translations, but my laptop...

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 🤷‍♀️

icy pond
#

@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.

lucid iron
#

the main benefit is that localized text works inside of i18n files

#

tokens require people to pass it through args

icy pond
#

@lucid iron Gotcha. So better Translation support.

near imp
#

~~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 SDVpufferthinkblob ~~ nvm there it goes

lucid iron
#

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

void aspen
icy pond
#

Yeah. I'm afraid C# is currently beyond me

void aspen
#

Thanks to this mod I started modding myself

near imp
#

@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 SDVpufferheart

void aspen
#

I find new things there everyday

uncut viper
void aspen
#

I can help you with it tomorrow or anytime, just not now cuz it's 1am

uncut viper
#

(Emphasis on "general rule of thumb" not "hard and fast rule that covers everything and every case 100%")

craggy goblet
#

@lucid iron Map Editor does not work on Android. sighs

#

But thanks for the idea :)

lucid iron
#

try cinderbox maybe

#

but that one also require owning PC sdv

craggy goblet
#

🥲🥲

#

So I'm screwed any way

fierce vault
# autumn tide the internet can really be a breeding ground for the most horrific dogpiling and...

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.

autumn tide
#

oh yeah, and there are much greater evils in this world to be upset about

fierce vault
#

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 👋

autumn tide
#

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)

old edge
#

Is secret notes framework simple?

autumn tide
#

-# pls summon me upon answering the above question I am also very curious as to how easy-to-use it is

old edge
#

I made a few notes with framework just text dialogue but I have no idea if or when they show up

torpid sparrow
#

is it possible to make an item ungiftable except for specific npcs

devout otter
#

With SpaceCore, yeah.

torpid sparrow
#

darn

devout otter
#

It has item blacklist/whitelist.

old edge
#

Space core isn’t too hard

torpid sparrow
#

its not but id be adding a dependency for 1 thing

uncut viper
#

Yeah, but it's the thing you wanted to do

torpid sparrow
#

its ok i can do without

near imp
#

could it be made optional? that whole feature? (/gen)

urban patrol
#

yeah you can do a conditional HasMod patch

near imp
#

so like if you have spacecore it does thing, but if not then nbd

urban patrol
#

that's what i did with all my BETAS features before it became android compatible

lucid iron
#

obviously u can still gift but yknow

torpid sparrow
#

its a red envelope so that seems not good SMCKekLmaoDog

devout otter
#

(Honestly there's a good chance the user would already have SpaceCore anyway. It has more than half Content Patcher's download.)

torpid sparrow
#

true

devout otter
#

(You could also make the item ungiftable to begin with but emulate gifting it through $actions and/or BETAS shenanigans.)

lucid iron
#

hm why would u want to not give red envelop to everyone bolbthinking

torpid sparrow
#

typically given to children

#

and family but like u dont have family there

lucid iron
#

its ok most of the town is unemployed

torpid sparrow
#

i have an event set up where tilly gives 2 envelopes to farme

#

LOL

#

-to farmer to give to jas and vincent

lucid iron
#

they r valid targets for free money

#

ah in that case u could make it be like

#

tilly: cant believe u lost money ANGERY heres 2 more dont do a dum again

#

ultimately the quest wont complete until the right ppl r gifted right

devout otter
#

Or they could be quest item maybe.

torpid sparrow
#

true yas

#

thats a good idea

#

thanks friends

#

i like when i ask something here and i end up somewhere else

lucid iron
#

XY problem

old edge
torpid sparrow
#

hmm it might have to be a so

#

can u do itemdelivery quest to multiple ppl

uncut viper
#

not in one quest

torpid sparrow
#

darn

#

special order then

urban patrol
marsh reef
#

:( why mailbox no maibox?

torpid sparrow
#

ate it

icy pond
#

@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.

marsh reef
lucid iron
#

There were several homework bits in there like

  • what's a blank.json
  • actually hooking this onto config
  • actually using this in a dialogue
marsh reef
#

if the hitbox of the lower tile is off of the house hitbox, no mailbox

near imp
slate pelican
#

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?

icy pond
#

@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",

lucid iron
#

yep try it out

#

u can use debug tokens yourstring to test the localized text stuff

near imp
slate pelican
near imp
#

its path ID 6, if you mean the one thats sort of loose planks, not the solid wood floor

icy pond
#

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.

lucid iron
icy pond
#

Like [LocalizedText MyMod:Abigail_HeShe_UC]
Needs to return either "He, She, {{Abigail_Nickname}}"

slate pelican
lucid iron
#

ah i see you are confused about the conditional editing part

icy pond
#

Yeah

lucid iron
#

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

icy pond
#

Okay so I do need the Dynamic Token still

near imp
#

@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)

lucid iron
#

not neccesarily, ill flesh out my example for this particular usecase

near imp
icy pond
#

{{Abigail_Nickname}} is a string config btw

lucid iron
#

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

slate pelican
lucid iron
#

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

near imp
lucid iron
#

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

icy pond
#

I'm doing this mainly for myself but I'd like to make a universal solution if possible yes.

near imp
#

@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 SDVkrobusgiggle

#

this mod edits more of the path than strictly necessary i believe SDVpufferthinkblob 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

slate pelican
near imp
#

ye gimme a min and ill give you another version to try

#

is it only FootstepSound youre looking to edit?

icy pond
#

@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}}",
}

slate pelican
# near imp is it only FootstepSound youre looking to edit?

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

near imp
lucid iron
#

this is another thing that you'd have to use intermediate dynamic token for, with HasValue:Abigail_Name as the condition

near imp
slate pelican
#

But no SMAPI errors

near imp
#

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 SDVpufferthinkblob lemme see

icy pond
slate pelican
near imp
lucid iron
near imp
#

i think im too tired to figure out if theres a more elegant way to do the edit right now (02:25 here)

near imp
#

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

old edge
#

Oh I figured out how to debug the secret note framework. It’s the debug command json debug sn <noteid>

near imp
slate pelican
# near imp I checked if there was a better (grassier) debris type listed on the wiki you co...

It works; YAY! Thank you so much SDVemoteheart 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

near imp
icy pond
#

@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.

slate pelican
#

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

near imp
#

i believe it was added recently

tiny zealot
#

(and of course the real trick is that the same person, pathoschild, is responsible for both)

torpid sparrow
#

pathos! pathos!

near imp
#

@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

near imp
#

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 SDVpuffersquee and ill go get some sleep SDVkrobusgiggle

#

if the When isnt Whenning good then they can probably help you sort it catnod

thorn hollow
#

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.

tepid patio
#

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!

worthy rose
#

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

thorn hollow
tepid patio
#

good to know I will check that out right now

worthy rose
#

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

tiny zealot
worthy rose
#

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

tiny zealot
#

oh but also there are some rules about content and what is allowed on here in general so check those first

thorn hollow
# uncut viper Hardcoded.

Rip. Is it possible to add a specific smoked fish to a shop then, maybe? That might work as a workaround for me.

worthy rose
#

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

uncut viper
#

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

wide lake
#

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?

lucid iron
#

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

thorn hollow
lucid iron
#

the whole thing goes in "ItemId"

#

im not really sure how this helps you with racoon tho

uncut viper
thorn hollow
lucid iron
#

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

uncut viper
#

SMAPI won't load a cn.json or cn-TW.json though without something to set the locale to cn/cn-TW

lucid iron
#

this is assuming you only want a tranditional chinese display and not an actual localization

tiny zealot
#

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

slate pelican
lucid iron
#

防风草
防風草

#
\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

wide lake
lucid iron
#

There's native support for simplified chinese

#

But not for traditional

near imp
wide lake
#

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)?