#making-mods-general

1 messages · Page 10 of 1

velvet narwhal
#

!reload

ocean sailBOT
#
How do I reload my changes while I'm still in game?

-You cannot reload tokens, that's a forced restart unfortunately
-If you've done any CHANGES, then type into SMAPI:
patch reload YourMod.UniqueID
-If you've done i18n DEFAULT.jSON changes, then type into SMAPI:
reload_i18n then
patch reload Your.ModUniqueID
-C# Visual Studio has a feature called "Hot Reload": https://learn.microsoft.com/en-us/visualstudio/debugger/hot-reload?view=vs-2022
-C# Rider has the same: https://www.jetbrains.com/help/rider/Hot_Reload.html"
-Generally working in C# it will be called "Hot Reload" (usage may vary)

marble verge
#

That's the umpteenth time today.

velvet narwhal
#

oh i need @vernal crest 's help on remembering what the tiled things don't get reloaded though

marble verge
#

"Let's load the .png's from another folder! Seperation of assets is fantastic!"

#

headdesk

vernal crest
#

Moi?

velvet narwhal
#

there's specifics that don't get patch reloaded for tiled and i don't know which

mossy belfry
#

Does anyone know the actual location name of the secret woods? Trying to make some fish catchable there

marble verge
#

Woods, I think?

gray bear
#

woods

mossy belfry
#

Awesome, thanks!

uncut viper
#

thank you to avi for helping me find the relevant functions so quickly SDVpufferheart

velvet narwhal
uncut viper
#

(also if any mod author around feels like showcasing that, that would be nice, but im honestly not too fussed either way about this one lol)

vernal crest
velvet narwhal
#

then i'll not worry about it until someone who is more intrusive with tiled goes, "yeah it's this this and that"

gray bear
uncut viper
#

SDVpufferheart thank you bea

gray bear
#

great mod ! instant download

#

ofc aSDVemoteheart

hoary lake
#

Hi Friends! how are you all?
so somebody is saying that my recipes aren't appearing in gus's store even tho they have 3 hearts with Gus (750 friendship points) so i was wondering....is it becuase they didn't have the mod when they met the requirement initially? any ideas?

brittle pasture
#

that shouldn't matter

#

can you post your json?

hoary lake
#

object.json? yeah sure!

#

context: this is for the with a side of mayo mod.

#

also Congrats on the release Button friend!

uncut viper
#

ALSO SORRY FOR THE PING,

brittle pasture
#

(ps: you should use the site next time)

#

!json

ocean sailBOT
#

JSON is a standard format for machine-readable text files that's used by Stardew Valley mods.

If you need help with a JSON file, you can upload it to smapi.io/json to see automatic validation and share the link here.

When making mods, it's recommended to edit your files in a text editor with JSON support, such as VS Code, Notepad++, or Sublime Text. These programs will check for syntax errors.

brittle pasture
#

(and the full file)

#

wait, is this JA?

hoary lake
#

there is a site? wow! thank you for letting me know! SDVpufferheart
i pretty much made the mod in my own isolated little bubble so i had no idea this existed. SDVpuffersquee

#

yeah it's JA!

#

also Hi Selph friend! how are you? SDVpufferheart

brittle pasture
#

I admit I have zero JA experience since it's already basically deprecated when I started making mods. still taking a look though

do you see the recipe in your own save at least?

fathom hound
velvet narwhal
hoary lake
#

but it's been over a month and this is my first report of it not working.

#

it might be possible that the person might not have json assets?

#

i have asked for a log!

brittle pasture
#

yeah probably should have waited for a log first lol

hoary lake
#

yeah...Thank you for your help so far tho! SDVemoteheart

modest dagger
#

Selph are you zombifier on nexus?

mossy belfry
#

can someone explain to me, or link me to an explanation of how to create an asset sheet that i can use the "sprite index" bit for? im so far just saving a bunch of separate images and its getting a bit messy. is there just a certain pixel size and i slap the images into one picture?

brittle pasture
modest dagger
#

Sorry was just asking since I was using EMC and got confused bc the ID said selph but the user was zombifier

brittle pasture
#

hence why I put "selph aka zombifier" in the author field lol

modest dagger
#

i am not that observant lmao

vernal crest
mossy belfry
#

thats actually what i was considering haha!

lucid iron
#

you can imagine dividing a image into many equal sized rectangles

#

and you count these rectangles left to right, then up to down, to get the index

#

starting at 0 for the top left rectangle

finite ginkgo
mossy belfry
#

thanks everyone!

velvet narwhal
#

(honestly, contemplated just doing a grid overlay template just because i hate having to sit there and go "0, 1, 2, 3, 4 okay next line--"

rocky stag
#

guys I can't seem to get my item to be edible is it maybe a conflict with the artisan goods category? here is the code:
`{
"Action": "EditData",
"Target": "Data/Objects",
"Entries": {
"EepyFemboys_MonsterCan": {
"Name": "EepyFemboys_MonsterCan",
"ItemId": "MonsterCan",
"Displayname": "Monster Can 0.5L",
"Description": "A 0.5L can of Monster energy, Gives a lot of energy at the cost of health",
"Type": "Objects",
"Category": -26,
"Price": 1000,

                "Texture": "Mods/EepyFemboys/Objects",
                "SpriteIndex": 0,
                "Edibility": 1,
                "IsDrink": "True"

            }
        }
    },`
rancid temple
#

What if you switch Type to Basic?

uncut viper
#

"True" might need to just be true

rocky stag
#

oh oki

#

lemme try both

#

thx :>

rancid temple
#

Just so you know, edibility calculates both health and energy so you won't be able to reduce one and increase the other

brittle pasture
#

(You can use SpaceCore for that)

rancid temple
#

That makes sense lol

rocky stag
#

didn't fix it tho :<

rancid temple
#

Does it patch the display?

calm nebula
rocky stag
#

sadge

rancid temple
#

ItemId isn't an accepted field either

rocky stag
#

huh

rancid temple
#

The ItemId is the key you put for entry automatically, so it'll be EepyFemboys_MonsterCan

rocky stag
#

ye

rancid temple
#

So try removing that, though I'm not sure what happens when CP runs into an unexpected field

rocky stag
#

removing it still didn't do anything :<

rancid temple
#

!log

ocean sailBOT
#

Important note: Your computer username may appear in the log. If your username is your full name, please be aware of this before uploading it.

Please share your SMAPI log file. To do so:

  1. Open this page: smapi.io/log.
  2. Follow the instructions at the top of the page to upload the log file. (Don't copy & paste from the console window!)
  3. After uploading, it will show a green box with a URL to share. Post that URL here.

Please do it even if you don't see any errors. This has useful info like what mods and versions you have, what the mods are doing, etc. If the issue didn’t occur in your last session, please load the game to the point where the issue occurs, then upload the log.

rancid temple
#

!json

ocean sailBOT
#

JSON is a standard format for machine-readable text files that's used by Stardew Valley mods.

If you need help with a JSON file, you can upload it to smapi.io/json to see automatic validation and share the link here.

When making mods, it's recommended to edit your files in a text editor with JSON support, such as VS Code, Notepad++, or Sublime Text. These programs will check for syntax errors.

rancid temple
#

More info required

lucid iron
#

you got the contents unpacked right

rocky stag
lucid iron
#

would start with a copy of some vanilla data

rocky stag
#

never needed them

lucid iron
#

so that you get all the field names right

#

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

ocean sailBOT
#

Log Info: SMAPI 4.0.8 with SDV 1.6.8 build 24119 on Microsoft Windows 10 Home, with 3 C# mods and 1 content packs.

vernal crest
rocky stag
rancid temple
#

You're getting a fresh new item each test?

rocky stag
rancid temple
#

Items already spawned won't get new data

rocky stag
#

i always register the same 2 ones

rancid temple
#

Any in your inventory before you make changes are trash

rocky stag
lucid iron
#

you have to use the correct version of stardewxnbhack

rocky stag
#

omfg

brittle pasture
# rocky stag

which version of stardewxnbback did you download? 1.1.1 only works with 1.6.9

#

You need 1.1.0

lucid iron
rancid temple
#

For testing, I also suggest CJB Item Spawner

#

That way you can easily give yourself more items to test with

rocky stag
#

IT WORKS THANKS SO MUCH!!!! >.<

mossy belfry
#

would anyone happen to know where i can find the sprites for water? im wanting to change the color of the pond in the secret woods if thats possible, but i cant find the water on any of the asset sheets, just the surrounding ground of the pond

#

been digging around for an hour pedrolaughcry

gaunt orbit
#

Cursors

#

But that's just the overlay

vernal crest
#

Maps/spring_outdoorstilesheet

gaunt orbit
#

The color is a combination of tile color and the hardcoded water color

vernal crest
#

Also some on spring_outdoorstilesheet2

mossy belfry
#

thank you codbless

whole raptor
#

Another weird question... is there something like a page detailing smapi history or development (besides github)? I remember seeing a timeline graph for smapi maintainers, but I can't remember where SDVpufferthinkblob

umbral vault
#

Hmmm, isn't Pathos the only maintainer but is open to PRs.

#

Pathos posts a lot of graphs and details here every month. Maybe one of those? Can't think of anything outside GitHub

tough crater
#

Unrelated question: I'm trying to find what the current format of Stardew Valley is (I'm working on a content patcher mod). I'm seeing there's "2.3.0" and another saying "2.1.0" so I'm very lost

uncut viper
#

thats the format of the Content Patcher mod specifically

#

it should match the current version of Content Patcher that you are using to make the mod

whole raptor
#

Yeah, he is, but it was originally started by Zorus (maybe..?) and Pathos took over and made it how it is today, I'll look through old posts I guess

uncut viper
#

the format number tells it what kinds of features your content patcher mod can do or what migrations it might need to perform to auto fix old mods

umbral vault
#

Ah, yeah

tough crater
uncut viper
#

yeah, using the latest version is always preferred

umbral vault
#

I remember Pathos saying that SMAPI has changed so much that it has nothing to do with the og code

whole raptor
#

I'd be surprised if it wasn't the case SDVkrobusgiggle

vernal crest
umbral vault
#

^^

vernal crest
#

Not sure how useful this is but there's some history in this post. He might have more info in other posts too.

brittle pasture
#

and now we're at 4.0. how time flies

vernal crest
#

Bit hard for me to search it properly on mobile

whole raptor
uncut viper
brittle pasture
#

the Chrome school of version numbering

vernal crest
#

You're welcome! I think pathos must've linked it in here recently for me to have read it. I really enjoyed reading it.

umbral vault
#

I think I remember this

whole raptor
#

Damn, 5 years SDVpuffereyes

velvet narwhal
uncut viper
#

just the number 5

#

in front of the decimal

vernal crest
paper sundial
#

And of course it will not be compatible with 4.0

velvet narwhal
#

that's honestly wild

#

wait so we have absolutely no idea who wrote the essentialSuper: superEssential ?

lucid iron
#

how would we know think

#

it's SDV code so the person would have to tell us

#

where's the puffer

velvet narwhal
#

was that actually genai, smh no puffer

gaunt orbit
#

Ah yes my favorite video game, SMAP VALLEY

uncut viper
#

(what ever happened to that drafted policy on generative AI anyway, cause i know "dont post ai-generated content in the modding channels" was part of it, but its been months since it was last brought up,)

calm nebula
#

That isn't bad for stylized pcb traces

#

What's that blue Dimond though

#

Upper right needs work

gaunt orbit
#

It looks alright at first glance but the background is melty and the pixels are fucked

calm nebula
#

Yeah

gaunt orbit
#

Oh god it's got like jpeg artifacts baked into it

calm nebula
#

It also doesn't have consistent scale

next quarry
#

Ew

lucid iron
#

fear

dusk terrace
#

what happened to the rule on AI generated content?

#

I'm fairly sure this is my problem, but just to be sure, would this line cause problems on Unix because the filename is "hairstyles" in lowercase?
Game1.content.Load<Texture2D>("Characters/Farmer/Hairstyles")

calm nebula
#

Linux yes

dusk terrace
mint eagle
#

i'm struggling with a wierd c# thing. anyone know how to tell "is this integer tile coordinate one of the passable bed tiles?"

#
if (readyforBed)
{
    if (!(isWarp || (isOnMap && !isOccupied && isPassable)))
    {
        bool isABed = location.IsTileOccupiedBy(v, CollisionMask.Furniture);
        if (isABed)
        {
            //let's be sure its a bed
            if ((location.getObjectAtTile((int)v.X, (int)v.Y) as Furniture)?.furniture_type.Value == Furniture.bed){
                //yep its a bed folks
                var bed = BedFurniture.GetBedAtTile(location, (int)v.X, (int)v.Y);
                isOccupied = !bed.IntersectsForCollision(new Rectangle((int)(v.X * 64f) + 2, (int)(v.Y * 64f) + 2, 60, 60));
            } 
        }
    }
}

been tinkering with it for hours, nothing I try seems to work lol

uncut viper
#

(that post also just says not to post substantial AI generated content in the modding channels at all, regardless of mod relevance, but the fact that it still says it's a draft and not the final version is why I'm still unsure if it's even technically in effect SDVpufferflat )

mint eagle
#

it keeps either returning passable for the whole bed or for none of the bed. i need to know specifically is this a walkable space. strangely, the other helper functions don't seem to answer that correctly inside a farmhouse (they just see furniture and say no)

velvet narwhal
#

people will just be left without context if they go back and read, it was truly a, "you had to be there to suffer it" kinda moment

lucid iron
mint eagle
#

im precisely trying to handle that in my pathfinder

#

but i need a way to tell the walkable spaces from teh nonwalkable ones (i already handle the dialogue popup)

lucid iron
#

are you hoping to path ppl onto bed or prevent that from happening?

mint eagle
#

because when i "fixed" it they got stuck on the headboard -_-

#

honestly i just need a way to tell which tiles are the walkable ones

#

that's it

#

(but to not be impolite, I'm presently pathing them into the bed to sleep.)

lucid iron
#

looking at BedFurniture, i guess you have to use bed.GetBoundingBox

#

actionOnPlayerEntryOrPlacement eventually calls that to pick the bed tile

mint eagle
#

I'm calling IntersectsForCollision which uses GetBoundingBox internally. for reference:

public override bool IntersectsForCollision(Rectangle rect)
{
    Rectangle rectangle = GetBoundingBox();
    Rectangle rectangle2 = rectangle;
    rectangle2.Height = 64;
    if (rectangle2.Intersects(rect))
    {
        return true;
    }

    rectangle2 = rectangle;
    rectangle2.Y += 128;
    rectangle2.Height -= 128;
    if (rectangle2.Intersects(rect))
    {
        return true;
    }

    return false;
}
#

i really feel like that should work

#

probably missing something silly

lucid iron
#

are you also use player's bounding box?

#

or the character's

mint eagle
#

just a custom one sized to a couple pixels smaller than the target tile

#

can see it here: ("v" is a Vector2 containing integer tile coords)

new Rectangle((int)(v.X * 64f) + 2, (int)(v.Y * 64f) + 2, 60, 60)
#

the +2s and 60s are to avoid edge collisions with adjacent tiles

#

e.g. that rect should be fully contained inside the tile id like to know about

#

it looks to me by the 64s and the 128s in the GetCollision that its working in virtual size units rather than tile coords, so i scaled mine to match (16 * 4 = 64)

#

unless i muddled something there which is entirely possible 😅

lucid iron
#

yea i can't think of anything obvious here

mint eagle
#

ooof

#

i found it

#

it was something silly

lucid iron
#

wow DokkanStare

mint eagle
#

i inverted a boolean check -_-

#

isOccupied = !bed.IsColliding...

#

but on the bright side it works blob_devil2
thanks for rubberducking!

lucid iron
#

in content patcher, is there token for locational seasons?

uncut viper
#

the Season token might take the LocationContext input argument? it doesnt say but worth a shot

royal stump
#

When field is invalid: invalid input arguments (current), token Season doesn't allow input. SDVpufferflat

uncut viper
#

SDVpufferpensive i dont know then

royal stump
#

I don't think there's a built-in CP token for it then, short of using EMP's GSQ one

brittle pasture
#

(for context, GetWeather below accepts a location)

lucid iron
#

i guess i can just do season + LocationContext island

#

the use case is a personal edit to idaida's flooring which includes flooring that looks just like grass

earnest orchid
#

haven't touched code in a couple months and I feel super rusty...

velvet narwhal
velvet narwhal
#

(ignore me if it was already answered though)

#

oh good

uncut viper
#

(it wasnt answered afaik i was just gettin the actual msg!)

velvet narwhal
#

i could not, for the life of me, remember who asked, i only knew they had a V name lmao

royal stump
#

FTM doesn't support pack configs and can't interact with any from CP, currently

velvet narwhal
earnest orchid
#

okay i dont think i have the brain to do the "mini coding adventure" i was thinking of... too sick today, what was i thinking. ill leave that on the backburner and get back to it on a day my brain is at full power

buoyant ivy
#

well, then i have to rework some parts. already have an idea what i could try.

royal stump
#

yri.ProjectYellogTownOverhaul is the manifest ID for "OUTDATED Yri's Project Yellog - Town Overhaul (Alpha)", if that helps?
(google gave me a direct download link for that on nexus, despite the page being hidden SDVpufferdizzy)

frosty bobcat
#

Hey, I’m trying to make special dialogue that appears only if someone has purchased specific animals, how would I go about that? I’ve searched through several wikis and still need a push in the right direction.

modest dagger
#

so i've added a new fruit to the game if i add the context tag for colour will that change what the wine/jelly looks like?

brittle pasture
modest dagger
#

thank u selph

frosty bobcat
drowsy pewter
brittle pasture
frosty bobcat
#

maybe

brittle pasture
#

It seems almost every base game animal has a produce stat associated so you can use it as an indicator for "has animals on farm, or had at one point"

brittle pasture
uncut viper
#

(id maybe update it to include the book info too before making a command for it!)

brittle pasture
#

(Hi Button! if you want feel free to steal my animals GSQs for BETAS)

uncut viper
#

(Hi Selph! i would feel bad cannibalizing a mod like that!)

drowsy pewter
brittle pasture
#

(my mod has like other features it's fine, the GSQs are kinda out of place anyway since it isn't a "animal data extension")

uncut viper
#

(if you're sure.. i may consider it at some point then, but it'll be low priority since if someone needs it they can just be pointed to yours in the meanwhile. ive got other stuff im workin on for BETAS right now anywho SDVpufferheart )

calm nebula
#

(There is also the spacecore one for "ever had a game generated conversation topic"

#

And there is a conversation topic here

uncut viper
#

is there?

calm nebula
#

Purchased Animal or something)

uncut viper
#

so there is

#

purchasedAnimal_ + the displayType of the animal

#

unless the animal displaytype is White Chicken or Brown Chicken, in that case its turned into just Chicken

brittle pasture
#

hah TIL

uncut viper
#

it is added to every farmer, if thats important

#

no matter who adopts the animal

calm nebula
#

(And despite the name it also fires for hatched animals)

brittle pasture
#

it doesn't solve the "farmer bought them and then sold all of them" problem but that's probably good enough™

uncut viper
#

it also doesnt work for pets I think

uncut viper
calm nebula
brittle pasture
#

I meant selling all your chickens doesn't retroactively unset it

calm nebula
#

But it doesn't split by breed

uncut viper
#

a specific pet, though?

#

yeah

brittle pasture
#

another one for BETAS maybe

uncut viper
#

you might be able to use ITEM queries for the pet license adoption though

#

its just one shop entry shared by all adoptable pet licenses

#

but the pet type and breed gets shoved into the item ID i thiiiink? its been a while since i looked at that code

#

but im not sure if ActionsOnPurchase can check the item id with the ITEM_ID query using the If action

brittle pasture
#

Name field I think

modest dagger
#

random question bout crops uh, is there a way to make them sway less because I just added one and like thing will nearly go horizontal

brittle pasture
#

do you have your speed set to Sanic the Hegehog with CJB Cheats

modest dagger
#

is that the only reason

calm nebula
#

Yes

brittle pasture
#

yes 🙃

modest dagger
#

nvm then

#

been awhile since i added crops heh

calm nebula
#

(Hey at least you didn't submit a bug report)

#

"Why is the ginger going like sideways?" "Atra you're +6 speed rn"

uncut viper
#

the trigger action pipeline is still hard for me to follow but i cannot tell if the actions within ActionsOnPurchase actually ever get sent any target or input items or really any context at all (which only matters for the items anyway)

modest dagger
#

my meat mod is takin shape atra art is all done

uncut viper
teal bridge
#

Meat mod? Is this bringing in/back the fabled meat that CA cut from the game?

brittle pasture
#

(Animal Husbandry already does that, even using the same unused sprites and item id)

teal bridge
#

I seem to remember looking at Animal Husbandry and finding it weird that it was essentially a "harvest" (as in, you're skinning these animals alive?). My memory's not what it used to be, though.

brittle pasture
#

Wiz's thing is making them crops I think

teal bridge
#

Ah. Meat crops. Obviously.

uncut viper
#

love a good mop

brittle pasture
#

AHM just makes the animal disappear and turn into meat items

teal bridge
#

I must be thinking of a different mod, then.

modest dagger
#

PPJA Fresh Meat

brittle pasture
modest dagger
#

meat is still a valid category in game, doubt i'm going to use it though i want my products to count as artisan goods

teal bridge
#

I suppose a suitably dry-aged steak could count as artisanal. In reality, I mean.

uncut viper
#

does AHM still keep the hardcoded non-red smoke puff when you sell the animal

#

or did they make it reddable

brittle pasture
#

I don't think it's changed
(because lore wise you're not actually butchering the animal, you're sending them to the shadow realm, whose inhabitants then keep the animal as pets and send you their magically created meat items)

uncut viper
#

oh so its vegan friendly

brittle pasture
#

yep lol

#

the shadow realm people even send you their meat wand (which happens to look like a butcher knife)

uncut viper
#

but totally not a butcher knife

misty wind
#

hii, first time mod-wanting-to-make-person here! I can't seem to wrap my head around something - I want to make a mod for a cutscene that activates around a certain number of hearts with each spouse in game, with the screen being black (similar when to when your spouse asks if you want to have a baby), just with different dialogue and portaits, how would I get started with that? the idea is relatively simple but I am dumb and I don't know what I'm doing lol

lucid iron
#

do you want to make just a heart event then?

misty wind
#

Yes! but one that activates after you go to bed! just like the baby prompt kinda!

lucid iron
#

oh i guess that's more like a night event then

misty wind
#

Yay thank you!

last plume
next plaza
#

AHM gets it from animals, PPJA's is crops

last plume
#

oh interesting. i heard of it but wasnt sure how it worked

#

i wonder if wildflour or cornucopia will fill the void

drowsy pewter
#

i dont think flour will

last plume
#

anyone know how to view the prismatic tools continued shop items? theyre in .dll i am trying to crossover it to improved shops sve

#

i wanna make sure i put the right item id and id for it

tiny zealot
#

patch export is likely your friend here

last plume
tiny zealot
#

run e.g. patch export Data/Objects in your SMAPI console to have CP spit out a json file containing the asset as the game currently sees it

#

(it will tell you where on disk it was written)

last plume
#

how will that narrow me down to prismatic sprinkler?

tiny zealot
#

if you can identify it in the shop, you can probably identify it in the asset. you'll have to put in whatever asset the items in question appear in (perhaps Data/Shops?)

last plume
#

when i put the item ID which i found PrismaticSprinkler do i have to put the unique id before it?

#

example iargue.PrismaticToolsContinued_PrismaticSprinkler

#

PrismaticSprinkler is item id

magic jewel
#

hello anyone here knows any mod that make easier to put decoration like u know sims

brittle pasture
calm nebula
#

(Sims is that creepy game right?)

#

(I'm sorry it's so uncanny valley

#

Every screenshot I've ever seen.)

tiny zealot
brittle pasture
#

sprinklers are (O) actually

#

(unless this prismatic sprinklers mod do something funky)

last plume
#

but when putting the id since it's a modded item, do i use the unique id of the mod as a prefix?

brittle pasture
#

what the item ID is you use it as is

#

so if it has the mod ID prefix, then yes

last plume
#
    "Name": "Prismatic Sprinkler",
    "DisplayName": "Prismatic Sprinkler",
    "Description": "Waters the 48 adjacenet tiles every morning.",
    "Type": "Crafting",
    "Category": -8,
    "Price": 2000,
    "Texture": "SMAPI/iargue.prismatictoolscontinued/assets/prismaticSprinkler.png",
    "SpriteIndex": 0,
    "Edibility": -300,
    "IsDrink": false,
    "Buffs": null,
    "GeodeDropsDefaultItems": false,
    "GeodeDrops": null,
    "ArtifactSpotChances": null,
    "CanBeGivenAsGift": true,
    "CanBeTrashed": true,
    "ExcludeFromFishingCollection": false,
    "ExcludeFromShippingCollection": false,
    "ExcludeFromRandomSale": false,
    "ContextTags": [
      "crow_scare",
      "crow_scare_radius_5"
    ],```
#

based on data shop patch

brittle pasture
#

then you want PrismaticSprinkler

#

or (O)PrismaticSprinkler for the full qualified ID

last plume
#

lemme get the prismatic bar section be right back

#
    "Name": "Prismatic Bar",
    "DisplayName": "Prismatic Bar",
    "Description": "A mystical ingot forged from legend itself.",
    "Type": "Basic",
    "Category": -15,
    "Price": 2500,
    "Texture": "SMAPI/iargue.prismatictoolscontinued/assets/prismaticBar.png",
    "SpriteIndex": 0,
    "Edibility": -300,
    "IsDrink": false,
    "Buffs": null,
    "GeodeDropsDefaultItems": false,
    "GeodeDrops": null,
    "ArtifactSpotChances": null,
    "CanBeGivenAsGift": true,
    "CanBeTrashed": true,
    "ExcludeFromFishingCollection": false,
    "ExcludeFromShippingCollection": false,
    "ExcludeFromRandomSale": false,
    "ContextTags": null,
    "CustomFields": null
  },```
#

something lik PrismaticBar?

brittle pasture
#

yes, exactly as in the files

last plume
#

ok thanks i was just trying to figure it out. learning how to use modded items

#

thanks for help

uncut viper
#

been driving myself crazy trying to figure out why this dialogue thing im working on kept adding random space at the end only to find out after so long that. the localizedtext string i was using for testing just. has an extra space at the end.

#

"ShopMenu.cs.11488": "Welcome to Pierre's! ", pierre i hate you

last plume
#

thanks for help. where can i find the event id that i want for sophia's sprinkler unlock?

#

nvm i found it

teal bridge
#

I just string.Trim everything. Always. Because.

uncut viper
#

it was difficult to diagnose bc i was having other similar errors that i could not tell if they were bc of extra spaces on the string or just weird argument parsing making things combined or uncombined or empty when they shouldnt be
(trying to make my actions/GSQs/etc accept tokenizable strings which is difficult bc the arguments for them get sent to you as an array of strings, where the original string is separated by spaces... which most tokenizable strings have inside them. so i had to rewrite all the ArgUtility.TryGetX functions to account for it)

teal bridge
#

adjacenet
SDVpufferblargh

#

Can't.... unsee...

velvet narwhal
uncut viper
#

(oh yeah hi avi, remind me, are you using the SetNewDialogue stuff already)

velvet narwhal
#

Yeah lemme get outta bed what's up

uncut viper
#

you dont need to get out of bed for it, just giving you a heads up (since i think you're the only person actually using the mod at all rn? or at least those actions) that the syntax for em is gonna change a bit

velvet narwhal
#

i'm sad but also, ok, i haven't actually released the update with the requirement

#

sad but also glad*

uncut viper
#

bad form to introduce a breaking change like, right away, i know and apologize, but im gonna move things to use Tokenizable Strings instead since thats a vanilla thing and might help people not be confused by my own custom syntax in the future

#

but with the added benefit of you being able to use them in actual dialogue too, if you choose to, i suppose

velvet narwhal
#

oh you meant the commands?

uncut viper
#

yeah

teal bridge
#

This is why I start with pre-1.0 versions, semver says that any update before 1.0 is likely to be a breaking change.

velvet narwhal
#

oEUh, yeah that'll be nice

uncut viper
#

you still can write the dialogue directly in the Action though so if you're doing that you're actually fine

velvet narwhal
#

uh the craziest i have is

uncut viper
#

but if you're using a translation key like Dialogue\\Lance:sun4 then it'll instead be [LocalizedText Dialogue\\Lance:sun4]

velvet narwhal
#

"Spiderbuttons.BETAS_SetNewDialogue Lance \"{{i18n:Lance.Kissed_{{Random:{{Range: 0, 5}}}}}}\" true",

uncut viper
#

then yeah that should still be fine and not need a change

#

the relative query stuff is also changing as a result but i didnt think you were usin those (yet)? correct me if im wrong tho

velvet narwhal
#

squints

uncut viper
#

the stuff like RelativeX:Haley:5

velvet narwhal
#

nope

uncut viper
#

perfect SDVpufferthumbsup

velvet narwhal
#

i did do the gift given one (Which probably has wrong syntax because i am not good at item_id queries) SDVpufferclueless

uncut viper
#

(instead of that weird syntax its now just gonna be a tokenizable string too like [CharacterLocation Haley] or [CharacterCoordinate Haley X] combined with an optional [NumberOffset <number> <number to add>]

#

none of the actual triggers are changing

#

just the setnewdialogue/textabovehead commands and the relative query stuff

velvet narwhal
#
"Condition": "ITEM_ID Target \"Lance\", ITEM_ID Target \"Aviroen.LanceExpanded_QiMomento\"",```
#

oh i forgot the extra bits of it

uncut viper
#

yeah thats not changing, you're fine. also you dont need to escape those im pretty sure

#

(also bc the tokenizable strings are gonna be usable in my GSQs now as a result too you could theoretically do like... "Condition": ITEM_MOD_DATA_RANGE [FarmerSteps] if you want a range to meet a minimum of the same amount of steps you've taken. dunno why you'd want tio but hey, you can! theres other tokens too ofc)

velvet narwhal
#

i'll grab food, i'll drop notes in your docs review

uncut viper
#

(the docs arent updated yet bc i havent pushed the new version out yet)

last plume
#

so i finished making is sve. ima test it. may release it early so its out before i return to school. i will make a small update when sve 1.15 comes out

#

idk what this means

rancid temple
#

Looks like a closing bracket maybe

#

Says line 788 so start there, pop it in the validator

last plume
#

here's the link

#

im confused

rancid temple
#

Add a } before the ]

last plume
#

what line?

rancid temple
#

Between 787 and 788

last plume
#

ok. i will fix it

#

ok trying again

velvet narwhal
#

it's because technically the very last "Joja Day Cloth": { "Id": "milosnikwiewiorek.ImprovedShopsSVE_Joja_Day_Cloth", "ItemId": "428", "Price": "375", "Condition": "IS_PASSIVE_FESTIVAL_TODAY FlashShifter.StardewValleyExpandedCP_JojaDay" } is using the "entries" closing bracket, rather than it's own closing bracket

#

or however which way you wanna read it

rancid temple
#

!vsc a good program will help deter this issue

ocean sailBOT
velvet narwhal
#

yeah it screams at you

#

you have to manually install the addons into notepad++ for it to yell at you

rancid temple
#

It also will usually create closing brackets for you

#

Like when you create an open it immediately creates a close and you just fill in between

velvet narwhal
#

was there a way to turn that off for ' because i literally only type that for dialogue

last plume
#

what does this mean?

velvet narwhal
#

means it's either in a wrong folder or it don't exist and you've called it somewhere

rancid temple
#

The last one you called .json.json

#

Probably need to remove a .json there

last plume
rancid temple
#

The other two, check your file paths and names

last plume
#

this is the content.json page

velvet narwhal
#

so you have a folder called Community Center Route ?

rancid temple
#

Are they supposed to be called Jumino or Junimo?

last plume
#

oh yea. i mispelled it

rancid temple
#

ZoeyVendor.json.json should just be one .json

velvet narwhal
#

100% suggest vsc, it yells at you for misspellings too

rancid temple
#

Only if you get an extension for it

#

Also looks like you can't disable just single quotes, only everything or nothing

velvet narwhal
#

i guess i'll just perish

last plume
#

yea i just fixed it

#

not sure what i should do instead

#

found it

#

i just mispelled the .json filenames

#

fixed it

#

so items are not showing for cc route. i will look into them tmr as ima go to bed

velvet narwhal
#

oh THAT'S why i constantly try to GSQ "PLAYER_HAS_FLAG" cause i'm perpetually in the state of thinking of content patcher SDVpufferflat

old edge
#

Hello there, could someone tell me why I have unitended behaviour in my C#mod? The portaleffect.png is being drawn onto every map in the game or maybe it's every map the player is on? Well I only want it to set on one map the one it was set on...

tiny zealot
#

we will probably need to see some of your C# code to do that

lucid iron
#

Iirc you implemented this with the render event

#

Gotta add check to only draw when a player's curr location is the one set for portal

#

(this kind of thing is why I originally thought the portal should be done via flooring)

old edge
#

add a check for currentlocation...

#

that seems to be working.

#

if (portalTexture != null && teleportLocation.HasValue && Game1.currentLocation.Name == teleportMap)

#

now how do I disable it from working when interacting with UI elements and in events. It seems to trigger still when holding the orb. Any ideas are appreciated.SDVpufferchicksweatsip

fossil stirrup
#

is there someone who could eli5 how to find the x y values for a set of items in a tile sheet? and do i have to change each item individually even if they're one after the other on the tilesheet? the craftables tilesheet has the seasonal plants i want to replace, and the second image is what i want to replace them with

tiny zealot
#

there are two ways to get the xy values for an item in a spritesheet: 1. math, and 2. open it in an image editor and select the item

#

in this case, craftables are 16x32 pixels, so count out the row and column values (start at 0) and multiply by 16 (column) and 32 (row) respectively to get the x and y. width and height are likewise multiples of 16x32 depending on how many items you are editing

#

(this is the math approach, which works when items are a consistent size. if you are looking at e.g. LooseSprites/Cursors, you have to use method 2 and select the item, because it's the wild west in there)

#

for example, the top left item in the sheet is (perhaps obviously) at 0,0. if you move right three items (the "fourth" item; index 3 when counting from 0), then your xy coordinates are 48,0. likewise, two items right and three items down would give you 32,96

slender badger
#

There's also a page on the modding wiki with co-ordinates for everything on Springobjects and a WIP table for Cursors

teal bridge
#

(re: item coordinates, Paint.Net has a useful feature where it'll tell you the pixel coordinates of the cursor/selection in the status bar. That's what I use, especially for wacky sheets like Cursors.)

slender badger
#
Stardew Modding Wiki

This is a table with co-ordinates for every sprite in the springobjects.png file. To use, reference the X and Y values in the row and column headers - eg: leek has a column header of 320 and a row header of 0, so its co-ordinates are 320,0.

Stardew Modding Wiki

The Cursors.xnb is full of various different icons that are used in-game. Of course, at first glance it is difficult to tell what they are used for and where. A running joke in the SV community is that if you are looking for something, it is either in Cursors.xnb, Cursors2.xnb... or Springobjects.xnb.
Note: some of the usage descriptions may be ...

tiny zealot
#

ooh, thanks

slender badger
old edge
#

now what's left is when interacting with doors might be a bit annoying and with the ui.

#

but overall my first C# mod is working fine now.

teal bridge
#

Yeah, lots of image editors have the feature. But GIMP has crummy UI and Aseprite isn't free. For those without much experience and without elaborate needs, I think PDN is a great choice.

fossil stirrup
#

im updating values and some of the structure itseld, but now im running into the problem where im not seeing any changes happen in game like i did the first time :/ any insight ?

brittle pasture
#

perhaps try typing in console patch export NameOfAssetYourePatching to see how/if your changes applied

fossil stirrup
#

stupid question but in the smapi console? (this is all really new to me sorry)

velvet narwhal
#

yeah, although have you set up the content patcher part of it where you're actually putting your asset over the existing one?

vast rover
#

is it possible for me to put my custom recipe in the mail?

velvet narwhal
# vast rover is it possible for me to put my custom recipe in the mail?

yes, you'd have to create the data/mail, and with the %item craftingRecipe <key> %% command, you'll also need a data/triggeraction to actually send out the mail unless you want to attach it to an event or some other way
craftingRecipe: Teach the player the crafting recipe with the given ID. The key is the item name. If the item name has spaces, such as "Mayonnaise Machine", use underscores in place of spaces, ie "Mayonnaise_Machine".
https://stardewvalleywiki.com/Modding:Mail_data
https://stardewvalleywiki.com/Modding:Trigger_actions

vast rover
#

ohhh i get it now thanks

spice inlet
#

not sure if it affects your draw event

livid surge
#

hi there, could someone tell me what ExtraChance in crop.json means? and is there any ingame formula for crops? It got me here...

velvet narwhal
livid surge
#

thx! I met the code in Korea Blossom mod, which is hidden from Nexus, its Extrachance says 0.02, while when harvesting flowers, 9 crops produces 1600+ flower objects. I can't see why.

velvet narwhal
#

is that running off an older version of the game? looking at crops.json in 1.6.8 has different fields:

    "Seasons": [
      "Spring"
    ],
    "DaysInPhase": [
      1,
      1,
      1,
      2,
      1
    ],
    "RegrowDays": -1,
    "IsRaised": false,
    "IsPaddyCrop": false,
    "NeedsWatering": true,
    "PlantableLocationRules": null,
    "HarvestItemId": "192",
    "HarvestMinStack": 1,
    "HarvestMaxStack": 1,
    "HarvestMaxIncreasePerFarmingLevel": 0.0,
    "ExtraHarvestChance": 0.2,
    "HarvestMethod": "Grab",
    "HarvestMinQuality": 0,
    "HarvestMaxQuality": null,
    "TintColors": [],
    "Texture": "TileSheets\\crops",
    "SpriteIndex": 3,
    "CountForMonoculture": true,
    "CountForPolyculture": true,
    "CustomFields": null
  },```
brittle pasture
#

That's JA code I believe

velvet narwhal
#

ah, yeah i have no idea how JA works SDVpufferclueless

livid surge
#

yes it's JA. thxSDVemoteheart i'm reading... I'm just a starter and know little about JA

velvet narwhal
#

json assets is depreciated, so if you're working with it, i would suggest switching into content patcher fully

#

it's only still up for compatibility with mods who haven't upgraded to 1.6.....some version # i don't remember

glad zenith
#

i was just about to ask what json assets is lol

velvet narwhal
#

it was the land before string unique ids

glad zenith
#

haha lol

little crag
#

Hi!

I'm making a mod that related to the Mullner house (Alex, Evelyn, George) but I can't seem to find it in Data/Events?

latent mauve
#

JoshHouse in the code refers to Alex's home IIRC

little crag
#

Ahh, I was thinking so since I was like "WHO IS JOSH" and I couldn't find any of their names with House

#

Thank you!

glacial hinge
#

anyone know about farmer sprite sheet for arms?? in wiki, well explained about body sprite (with pants and skirts). but it not explained about arms..

old edge
#

I just finished the nexus page for this mod.

sullen rain
#

Help I have had no sleep and can't figure out how to make two different size eggs produce the same mayo product like the vanilla eggs

#

It's probably simple af

#

Only my large size egg is working

sullen rain
#

Nvm figured it out

rocky stag
#

heyy guys :3 how would i go about adding a certain itemId to a persons gift tastes without adding them to universal categories? I can't seem to figure the wiki out :P

glad grove
#

Heya peeps,

it's my very first time modding anything at all and I've come into a dead end.

I'm currently spawning a monster with a 1-3 tile distance around the current player's position. What I can't figure out is how to check whether this exact tile is occupied so the monster is free to move (or just grant the monster no-collision for 1 second). Essentially avoiding the spawned monster to be stuck.

Code snippet of my spawning method:

public void SpawnMonster(string monsterName)
{
    GameLocation location = Game1.currentLocation;

    Point tilePoint = Game1.player.TilePoint;
    
    Random random = new Random();
    int direction = random.Next(4);
    int distance = random.Next(1, 4);

    Vector2 spawnPosition = tilePoint.ToVector2();

    switch (direction)
    {
        case 0:
            spawnPosition.Y -= distance;
            break;
        case 1:
            spawnPosition.Y += distance;
            break;
        case 2:
            spawnPosition.X -= distance;
            break;
        case 3:
            spawnPosition.X += distance;
            break;
    }

    spawnPosition *= Game1.tileSize;
    Monster monster = new Skeleton(spawnPosition);

    location.addCharacter(monster);
}

I've seen isCollidingPosition in a few other mods and just set the spawn position at the exact player's position if true... but I'm not even sure it does what I think it does as it always seems to return true

Rectangle spawnRectangle = new Rectangle((int)spawnPosition.X, (int)spawnPosition.Y, Game1.tileSize, Game1.tileSize);
    
    if (location.isCollidingPosition(spawnRectangle, Game1.viewport, isFarmer: false, damagesFarmer: 1, glider: false, character: null))
    {
        spawnPosition = tilePoint.ToVector2() * Game1.tileSize;
    }

Any help or guidance would be much appreciated 🙂

drowsy pewter
#

1 is for love, the others are listed on the wiki

woeful lintel
#

Hey there, someone reported to me that Custom Furniture are incompatible with the "pass through" option of Precise Furniture. I've done some investigation and it seems like all I need to do to fix this is to ensure that Precise Furnitue's Furniture.IntersectsForCollision Harmony postfix happens after the one I have in the Furniture Framework. According to the Harmony docs https://harmony.pardeike.net/articles/priorities.html, it's possible by using method annotations, but I don't know if it will work since I'm not using annotations but the Harmony.Patch method. Is this the right way to go?

little crag
#

With making new cooking recipes, the edibility line confuses me a little as it doesn't signify health or stamina?
I'm following this https://stardewmodding.wiki.gg/wiki/Tutorial:_Adding_a_Recipe and it even states it's a little arcane?

Stardew Modding Wiki

It is very easy to add recipes to Stardew Valley using Json Assets. You can use Vanilla items or items you or another mod you have installed created with JA.
If you would like to make a video based on this tutorial, you are welcome to do so! Afterwards, please edit the page to add a link to your video for users who prefer to learn that way. :)
F...

ocean sailBOT
#

@little crag You leveled up to Cowpoke. You can now speak in our voice channels and share images in all channels!

drowsy pewter
#

health and edibility are two multiplications of the same value

finite ginkgo
paper sundial
woeful lintel
#

I somehow blanked on the Priority.High I already used on my prefixes, it's sticking out and clear but I guess I can't read today

proud wyvern
#

isn’t Custom Furniture dead?

woeful lintel
#

I call Furniture made with the Furniture Framework "Custom Furniture". That might not be one of my brightest ideas, i see how it can be confusing.

proud wyvern
#

Ahhh

woeful lintel
#

WTH I don't know why but now my custom Catalogue has my Spouse as a shopkeep, how is this even possible?! I'm pretty sure it wasn't happening last time I checked and I didn't change anything about custom Catalogue in 4 or 5 months. I hope this is just an issue caused by a default value I can override.

last plume
#

question here. i have the shop name right but i noticed that the items aren't showing in the shop

woeful lintel
rocky stag
royal stump
glad grove
woeful lintel
paper sundial
calm nebula
#

Try the harmony before and harmony after thing?

woeful lintel
#

I went through their github code, but there's no priority set, so I suppose it should default to "Normal"

calm nebula
#

I forget which one delixx ran into

woeful lintel
calm nebula
#

Probably!

#

Everything annotations can do harmony.patch can do better

last plume
#

anyone know how to pull an event id that i've already seen? it's a special order event

woeful lintel
wispy delta
#

This might be a weird question, but did I understand correctly that there's automatic garbage collection so modders don'thave to worry about it?

paper sundial
#

Depends on how you mean, but C# does have automatic garbace collection yes

calm nebula
#

I vaguely recall DeLixx having issues with one or the other but no longer recall which one

#

So I'm as lost as you are now haha

woeful lintel
#

well, the other one wouldn't help much so...

calm nebula
#

I meant "one of before/after or priorities" sorry

woeful lintel
#

For now, I can just copy paste code from Precise Furniture at the end of my postfix, it's only 3 lines and calls nothing

calm nebula
#

One of the two ways to reorder

#

Wasn't clear

woeful lintel
#

Oh, I see

#

both doesn't work either

wispy delta
calm nebula
#

1.6.8 or 1.6.9-beta?

#

Try 1.6.9 beta

#

I believe there are fixes in the audio engine

wispy delta
#

1.6.8

#

huh, never would've guessed it might be from the game iteself. Thanks! I'll try the beta then

last plume
#

i cant seem to be able to post my mod announcemnt in modded farmers. has something change?

frigid hollow
#

is your message not sending or is leah not responding

glad grove
# glad grove I'll try that, thank you so much!

Okay, seems like location.CanItemBePlacedHere(tile) always returns false, even if surrounded by unoccupied tiles in every direction. Removing that however still lets the monster spawn within trees/stones/structures :/

last plume
frigid hollow
#

do you have markdown in it?

last plume
#

removed my heart emoji and it went through

frigid hollow
#

oh weird!

finite ginkgo
glad grove
# finite ginkgo maybe try `location.isTileLocationOpen(vector2)`

No success either unfortunately, does still spawn within trees and bushes.

Wondering whether another approach might be more pragmatic for this. Is there maybe a way to set a monster's value like seenFarmer on true so it automatically aggros the player? Then I could just set the spawn point to some pre-determined tile coordinates for each location

sleek aurora
#

Please send me the CP code to add preferences for residents 😁

rancid temple
sleek aurora
mint eagle
modest dagger
#

It's safe to divide up my code using /// and titles right so I can y'know know what each section does?

mint eagle
fathom hound
#

I’m so tempted to make a custom NPC… would any of it require C# or can it all be CP? Like for heart events and stuff

lucid iron
#

Yeah smapi accepts jsonc so comments are fine

fathom hound
#

Awesome thanks!

fathom hound
glad grove
#

Can you overwrite one of the HUD message icons like screenshot or the newQuest exclamation mark with a custom icon file with SMAPI?

lucid iron
#

yes you can use content patcher edit image for this

glad grove
lucid iron
#

it's LooseSprites/Cursors unfortunately

#

going by the decompile, there's 6 icons at

294, 392, 16, 16
403, 496, 5, 14
268, 470, 16, 16
0, 411, 16, 16
16, 411, 16, 16
96, 32, 16, 16
#

(x, y, width, height)

glad grove
#

Oh, pretty sneaky 😄 thank you so much!

sleek aurora
#

I can't figure out why this gift code doesn't work. Object - BigCraftables
{
"Action": "EditData",
"Target": "Data/NPCGiftTastes",
"LogName": "Universals",
"TextOperations":
[
{
"Operation": "Append",
"Target":
[
"Entries",
"Universal_Like"
],
"Value": "MK_MagicWood",
"Delimiter": " "
},
]
},

sacred sluice
#

Hey guys, i'm trying to change manually some dialogues, but they don't seem to change when i start the game.
exemple: i changed haley's name in every dialogue, but it stills showing "haley" on the dialogue.
How can i change the dialogues by myself?

#

(i'm only editing the PT-BR dialogues)

drowsy pewter
drowsy pewter
#

preferably

#

!json

ocean sailBOT
#

JSON is a standard format for machine-readable text files that's used by Stardew Valley mods.

If you need help with a JSON file, you can upload it to smapi.io/json to see automatic validation and share the link here.

When making mods, it's recommended to edit your files in a text editor with JSON support, such as VS Code, Notepad++, or Sublime Text. These programs will check for syntax errors.

drowsy pewter
#

if you're editing files directly, that will not work

#

so a description of what you're trying and failing is necessary for people to help

sacred sluice
drowsy pewter
#

okay you need to make a Content Patcher mod

#

!cp

ocean sailBOT
drowsy pewter
#

Start with the second link and follow the guide to make a basic mod

#

content (unpacked) is just a description of what is inside the game files when you unpack it, it has no effect on the game at all

#

in fact you should unpack it again and obtain the original files again

sacred sluice
# ocean sail

That doesn't make sense for me.. :(
I know how to change textures, but how to I apply that to dialogues?
Is there any video that can help me? :/

sleek aurora
drowsy pewter
#

I'm pretty sure JA does not allow you to gift BigCraftables either/

#

that's weird

drowsy pewter
#

or see if someone else here will help you

glad grove
sleek aurora
drowsy pewter
#

I'm confused.

#

Json Assets documents itself say you cannot gift big craftables

#

To be clear

#

big craftables are two-tile tall stuff like machines, some furniture, lamps, etc

#

I think you should post a screenshot or share the data for the item you are trying to add to gift tastes

sacred sluice
drowsy pewter
#

I'm unfamiliar with using CP to target other languages, but if you keep the code the same it will automatically apply to every language

#

so you dont have to change the code

#

I think that just adding .pt-br to the file names will cause it to not work

#

theres more explanation about targeting other languages in the CP author documentation of github, but it's unecessary since targeting the original file without any language signifier will also work for pt-br

sacred sluice
drowsy pewter
#

yes probably because they didnt include any translations

#

As you saw, any edit to the english files will apply to every language

drowsy pewter
#

So if you edit portuguese into the english file, it will work correctly for you

sacred sluice
drowsy pewter
#

Just write the new sentences in your language. Put the mod in your game. It will work with any language you play in, including pt-br

#

You only care about one language, so you dont have to worry about translations or including multiple languages in your mod or anything

#

If you want more help, you'll have to share some code and specific examples so someone else can correct it

sacred sluice
#

I think I got it now!
I will be back with updates soon, i hope it works.
Thanks for helping me :D

drowsy pewter
#

no prob

hallow prism
#

(make a backup in case you update the mod)

drowsy pewter
#

theyre not editing an existing mod

#

theyre trying to make a new one

hallow prism
sacred sluice
drowsy pewter
#

the mod which you were talking about, that changed dialogues, changed everything to english because the mod author only wrote it for english

round dock
#

I was under the impression they were making a translation tbh. I read the mod page and the mod author is pushing for a translation update.

sacred sluice
#

I tried to ask help from brazilian stardew valley players, but they don't know what to do

lucid iron
#

Does the og mod have i18n

round dock
#

Oh, that's rough. I didn't really read the comments but there was one post that said the author is doing their best to push for a i18n.

round dock
sacred sluice
lucid iron
#

Ah unfortunate, you will have to restructure it to have i18n first then

velvet narwhal
#

all of it's string data is probably straight inside of the content.json

round dock
#

I'd suggest just waiting for a i18n tbh. I feel like since there's a demand for translation, your best bet is just to wait til the mod author provides for a i18n. @sacred sluice

plain marsh
#

Hello, where can I get the fish textures?

lucid iron
#

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

sacred sluice
round dock
drowsy pewter
#

well that was a lot of context that i was missing

#

idk why editing unpacked files was part of the convo then

velvet narwhal
#

tbf you were in the right idea, i was confused at first about the "changing haley's name", bit and was also like, "yeah that'd be a character.json edit"

marble verge
#

Hi. Where can I find the shadows cast by wild trees?

lucid iron
#

those r just normal shadows i think?

marble verge
#

So, spring_Shadows.png etc.?

lucid iron
#

no its cursors my beloved

calm nebula
#

It's in bloody loosesprites....tes

lucid iron
#

663, 1011, 41, 30

marble verge
#

Cursors seems to have a lot of sprites that aren't cursors...

lucid iron
#

oo they added no leaf shadows in 1.6

velvet narwhal
#

welcome to the rite of passage

marble verge
#

Looks more like a dump file for anything that doesn't fit other categories

lucid iron
#

LooseSprites/Cursors_1_6.png
469, 298, 42, 31

#

u can find these coords in the Tree class

velvet narwhal
#

i haven't been able to touch ender's tree framework, but does it compensate for that?

marble verge
#

Thanks chu/e!

lucid iron
#

anyways i guess they aren't "regular shadows" that i was thinking of

#

so not LooseSprites/shadow

velvet narwhal
#

v16_shadows is probably what you were thinking of

#

for buildings?

marble verge
#

Nah, trees

#

Scenery trees don't cast shadows

#

So I want to add them in manually

velvet narwhal
#

SDVpufferclueless wait are you doing a map

lucid iron
#

what if u just turn them into real trees

marble verge
#

That leads to the whole seasonal desert palm trees problem I've been wrestling with

#

DTZ blends the desert with normal seasonal tilesheets, and I want to fix that

velvet narwhal
#

ahhh right

lucid iron
#

hm so since i am look at trees now

teal bridge
lucid iron
#

desert is excluded from tree seasons

#
localSeason = ((!(location is Desert) && !(location is MineShaft)) ? Game1.GetSeasonForLocation(location) : Season.Spring);
#

defaults to spring all the time blobcatgooglyblep

velvet narwhal
#

perpetual spring, interesting

lucid iron
#

just for trees tho

marble verge
#

That whole problem goes away if I just turn the palm trees into scenery, but then I don't get shadows

#

Yes, I'm a stickler for details

lucid iron
#

u should prob check if the shadow tileset suit your needs

#

b4 resorting to cursors as map tiles lol

marble verge
#

I'd copy whatever shadows I'd find in Cursors to another tilesheet, not about to embed even more of them

velvet narwhal
#

yeah, the v16 shadows should have everything regarding trees, but i... don't exactly know how you were going about the whole DTZ thing because i vaguely remember you were trying to just adjust the tilesheets, not the maps

marble verge
#

Yeah, editing maps wasn't the plan

#

But when needs must...

velvet narwhal
#

tbf you'd have an easier time if it got converted to data/locations instead of the old custom_locations format SDVpufferclueless

lucid iron
#

can u remind us if you wanted to have seasonal desert

#

or if u just wanted palm trees in places besides desert

marble verge
#

I want wild palm trees that respect seasons (I've made the images for them already).

#

But only in DTZ

#

Not in the regular desert or anywhere else

drowsy pewter
#

that can just be added as a custom tree type

lucid iron
#

hm then it'd depend on whether DTZ used Desert class for their desert location bolbthinking

marble verge
drowsy pewter
#

i mean sure you just add it to data/wildtrees

#

whether you add it with C# or CP it doesnt matter

marble verge
#

Hm

#

How do I go about putting a new wild tree onto a map using Paths?

drowsy pewter
#

theres a custom tree path tile

#

ill find the wiki one sec\

#

SpawnTree

#

just put it in the map file

marble verge
#

Ah, so I can just put down Tile Index #34 for whatever custom tree I've added to WildTrees?

drowsy pewter
#

Yup

marble verge
#

That simplifies things a great deal.

lucid iron
#

just remember to do reset terrain

drowsy pewter
#

its very simple

lucid iron
#

if you test on existing save

marble verge
#

Yeah, I've had to do that a bunch of times already. Glad that mod got an unofficial update.

#

The numbers in WildTrees correspond to Tile Index, right?

drowsy pewter
#

no, you should set a custom string id thats unique between mods

#

cornucopia more crops has an example of both custom wild tree and editing vanilla map to spawn a custom wild tree

marble verge
#

Ah, I see. So it isn't done from Tiled, but rather patched in afterwards.

drowsy pewter
#

Thats what we do because the maps we're changing are vanilla

#

but if you're working on a mod with maps included in it, its simpler to put it directly in the map file like you do for any other tile

#

its the same

marble verge
#

So directly in the .tmx?

drowsy pewter
#

do you know how to use tileproperties?

marble verge
#

No.

#

Not yet, anyway.

drowsy pewter
#

Okay Visit Mount Vapius would have examples of custom wild trees inside the map file

#

I just assumed you were already familiar with map tile properties

#

I thiiiiink any of these would have some custom tree tiles in them (inside assets folder)

marble verge
#

Looking at it right now

drowsy pewter
#

pull it into your unpacked content folder so it can display the vanilla tilesheets for you, and look for the custom tree path

marble verge
#

Aaaah!

#

Now I see.

#

You put TileData on top of Index #34.

drowsy pewter
#

yeah

#

you need both

marble verge
#

Okay, I'm getting somewhere. Off to tinker with it!

#

Cheers!

shadow vortex
#

Any advice or examples for creating a TemporarySprites animation attached to a working machine? I'm trying to make my power plant generate smoke when running.

brittle pasture
#

maybe the vanilla furnace?

shadow vortex
#

Those don't smoke when running, do they?

drowsy pewter
#
          {
            "Id": "Default",
            "Condition": null,
            "Texture": "TileSheets\\animations",
            "SourceRect": {
              "X": 0,
              "Y": 1920,
              "Width": 64,
              "Height": 64
            },
            "Interval": 50.0,
            "Frames": 4,
            "Loops": 10,
            "PositionOffset": "0, -4",
            "Flicker": false,
            "Flip": false,
            "SortOffset": 0.0,
            "AlphaFade": 0.005,
            "Scale": 0.25,
            "ScaleChange": 0.0,
            "Rotation": 0.0,
            "RotationChange": 0.0,
            "Color": null
          }
        ]```
formal crown
#

I know geode crusher does it in C#

drowsy pewter
#

it has whatever this is (the furnace)

formal crown
#

Which has its own OutputMethod

shadow vortex
drowsy pewter
#

its in data/machines

brittle pasture
#

there's also the keg's occasional bubbles

sacred sluice
teal bridge
#

Ok, then it's not localizable. Just wanted to make sure you were looking in the right place.

#

If it doesn't support translations, then making it translatable involves changing every hardcoded string in the mod.

hallow prism
marble verge
#

Okay, so resetting the map using Reset Terrain Features crashes the game. SMAPI tells me it can't find spring_PalmTree.xnb - which obviously doesn't exist. I've tried shifting around paths, but it doesn't seem to help.

lucid iron
#

did you do a Load for the texture

rancid temple
#

Do you have other seasonal palm trees you're using?

marble verge
lucid iron
#

also vanilla palm is at TerrainFeatures/tree_palm and TerrainFeatures/tree_palm2

marble verge
lucid iron
#

another possibility is windows/linux case sensitive problems again

rancid temple
#

What did you call your tilesheet?

marble verge
#

spring_PalmTree.png, summer_PalmTree.png, etc.

rancid temple
#

Then yeah, you would just need to Load them into Maps, easy fix

lucid iron
#

but u are make WildTree now right

rancid temple
#

Also, make sure you have one for each season

#

If you're missing any, you'll get that error again

marble verge
#

Embedding the tilesheet didn't work.

drowsy pewter
#
  1. its not a map tilesheet, it doesnt go into maps or the map file anything
#
  1. you need to be Loading your pngs to a texture name before using them
#

for custom textures you should be loading them to unique texture names, such as (ModId)/spring_PalmTree

#

the texture name that it's loaded to and the texture name in your wild tree entry has to match

#

but your png name can be anything

marble verge
#

It only took six more crashes, but I've finally got the pathing right. This stuff is a lot more finnicky than it looks.

royal nimbus
#

hey im wanting to mod individual npc rooms. im not sure how to go about it tho. i found the town interior tiles in maps but im not sure if that's everything. also im wondering if changing parts of one room will change parts of another that i dont want to change

marble verge
#

Thanks for all the help, folks 🙂

royal nimbus
#

i havent ._.; i will check it out tho

lucid iron
#

npc houses is a form of map, so usual stuff about making maps apply

velvet narwhal
#

npc rooms or spouse rooms?

royal nimbus
#

both

#

gonna see if i can find a mod that does it

vernal crest
#

If you change a vanilla tilesheet that will change it for every map that uses it. If you change a .tmx file then the changes will be restricted to just that map.

royal nimbus
#

i see.... .____.;;;

#

so this seems like it's gonna be complicated then.

lucid iron
#

this is a straightforward example of npc map edit

royal nimbus
#

okay ty

velvet narwhal
#

not complicated, but you will need to load any custom tilesheets that you create on your end, rather than changing vanilla tilesheets
added onto the tmx changes using content patcher because vanilla doesn't enjoy straight tmx loads

royal nimbus
#

its looking complicated to me. thanks tho. >_<

dapper bridge
#

How do I add ore to my map in Tiled?

rancid temple
#

If you want it to be interactable, pretty sure you would need to use something like Farm Type Manager, if you just want it for appearances then just use it like a regular tilesheet

hallow prism
#

if it's a farm there may be a property for the quarry

dapper bridge
#

it's not on a Farm, I'll have a look into Farm Type Manager. Thank you

royal nimbus
#

downloading several interior changing mods. most didnt even have png files so idk how they even work. some had files that look like this which is insanely confusing. im not sure if i will be able to do much with interors unfortunately because of how complex it seems it will be for me

vernal crest
#

The ones that didn't have png files - did they have .tbin or .tmx files?

royal nimbus
#

it wasnt tmx.. it was something else. i need to go look

#

oh yeah im seeing a tmx

lucid iron
#

you should really read the modding maps wiki page

#

it covers all the basics

royal nimbus
vernal crest
#

Those are png files right there though

royal nimbus
#

ugh so much to read for my adhd.

#

but yeah.... i will go over it at some point

vernal crest
#

Also you should turn file extensions on like I said the other day

royal nimbus
#

but it will have to be slowly

vernal crest
#

Also, using vortex means you're at risk of having broken mods

royal nimbus
#

if only this were just png editing instead of all this crazy stuff then id have no issue

#

its also weird that the insides are all broken up

#

i thought it would just be one fixed image, like what u see in game would be what u get for the file =/

#

like this

vernal crest
#

Have you unpacked your vanilla game content?

royal nimbus
#

yes

vernal crest
#

Ok

royal nimbus
#

thats how im doing most of what ive done

vernal crest
#

What you were expecting is a really inefficient way of doing maps.

rancid temple
#

Creating maps is like drawing with very specific brushes

royal nimbus
#

i guess. but yeah obv ik nothing about game dev

#

i can do graphics no problem but the rest is a headache for me

vernal crest
#

The way you're seeing it is that each couch, window, piece of wallpaper, wall beam, etc is separated on the tilesheet so they can be used with lots of other things in a map file. You use the map file itself to actually build the map. It means that each part of the tilesheet can be reused.

royal nimbus
#

aahhh

rancid temple
#

Once you have the tmx, the CP side of things is just telling it where and how to overwrite the vanilla area

glad zenith
#

question: are there particles in the secret woods?

royal nimbus
#

would it be possible to make a png just for spesfic rooms? like say just piece it all together and have it load in for which ever room?

vernal crest
#

Not without a tmx, no.

velvet narwhal
#

rooms require data, like how when npcs go into beds, there's a tile that goes over them that makes it look like the sheets are covering them, Tiled is basically an art program where you're creating the layers of the map

royal nimbus
#

i see

royal nimbus
vernal crest
#

The map file format

royal nimbus
#

it sounds like a nightmare lol

#

what can it be edited in?

velvet narwhal
#

Tiled -> tmx, like how photoshop -> psd

royal nimbus
#

is it like a text document?

#

oh.. its an image?

rancid temple
#

It's an xml format

vernal crest
#

Are you wanting to gothify existing rooms (like just change their colours) or move stuff around?

royal nimbus
#

idk xml lol

#

yes

#

.-.;

rancid temple
#

Tiled converts it to a visual medium

royal nimbus
#

mostly just color renders

rancid temple
#

You don't need to know xml to work on Tiled stuff

royal nimbus
#

k

#

sweet

rancid temple
#

You can do it entirely in xml, if you wanna lose your mind I guess

#

Or maybe already have lol

vernal crest
#

This is what opening a .tmx file looks like

royal nimbus
#

i cant afford no photoshop

vernal crest
#

No, you have to use a dedicated map editing program like Tiled (which is free)

tight rivet
#

So. I've been torn on this, but I'm no longer going to be updating my mods because.. I just don't have any urge to

royal nimbus
#

ahhhhh

#

ima go get it then

tight rivet
#

So if anyone would like to take them over, let me know and i'll update the nexus page or.. add you to it? >_>

vernal crest
#

But if you only want to do recolours, you can avoid dealing with the tmx files entirely

tight rivet
#

(Like I'm not sure why but I just don't have the urge to program any more.)

rancid temple
ocean sailBOT
#

If you want to make mods that add or edit maps:

  1. Use Tiled (https://www.mapeditor.org) to edit .tmx or .tbin files.
  2. Refer to the Maps wiki page (https://stardewvalleywiki.com/Modding:Maps) for details on how maps work in Stardew Valley.
  3. Use Content Patcher to load in new locations (https://github.com/Pathoschild/StardewMods/blob/stable/ContentPatcher/docs/author-guide/custom-locations.md) or make specific map edits (https://github.com/Pathoschild/StardewMods/blob/stable/ContentPatcher/docs/author-guide/action-editmap.md).
dense jolt
royal nimbus
#

yeah i will most likely just render colors and draw some stuff on the walls and such

velvet narwhal
#

burnout comes for us all

royal nimbus
#

^^^^^^^^

vernal crest
royal nimbus
tight rivet
vernal crest
#

I am using Stardew Notifications but I have no C# skill yet so that seems like taking over maintenance for it would be a bit of a stretch for me :/

dense jolt
#

I could probably maintain some of them, the ones like stardew notifications or the coal deposits ones seem feasible for me to do

#

I'm not a great programmer though. Bit they seem fairly simple to maintain since stardew doesn't receive frequent updates

#

Where can I find the source code btw?

tight rivet
#

generally are. Happy Fish just needs some fixes to actually read fish assets correctly to determien what fish are available. DNT is the msot difficut, tbh, but mostly in it's code is time consuming to calibrate properly so it's not so early for darkness.

#

I'm going to reupload the latest code to github probably tomorrow

#

It should be up to-date but probably isn't since I'm lazy about comitting sometimes

dense jolt
#

Alright do let me know. The ones with assets I probably won't be able to work on, since I never really work with it

vernal crest
#

I like that when I am testing an idea I can do very silly changes like making everything pink or giving characters absurd dialogue.

velvet narwhal
#

(my go to dialogue filler is: i can't believe it's not butter)

vernal crest
#

Time to start the game and find out what I've forgotten to include in my mod

#

Behold, a monstrosity

velvet narwhal
#

that's, honestly terrifying

vernal crest
#

Blood for the blood god

velvet narwhal
#

skulls for the skull throne

vernal crest
#

@royal nimbus have now confirmed that you can definitely do location-based recolours (was pretty sure, but now certain) so if you want to just recolour stuff for, say, Seb's room in Robin and Demetrius's house and then recolour totally different things for Abby's room - you can do that all without touching the .tmx files.

paper sundial
vernal crest
#

My sincerest apologies to anyone with the same form of colour blindness as my wife (red hurts her eyes)

vernal crest
# glad zenith blood moon?

Lol nope just the first random extreme colour overlay I came across for testing my code to only change tilesheet in one location

uncut viper
#

(wont stuff in abby's room also be shared with the rest of the general store though)

modest dagger
vernal crest
#

(Yes Button you are right - additional complication there if Ralo only wants to edit Abby's room rather than the whole house - and that complication would be present for pretty much everyone except Seb, lol)

modest dagger
#

when ur just tryna make a mod then you have a dozen windows open and 20 tabs

velvet narwhal
#

npcs require me to now have a grand total of ....... 18 tabs open

#

but god i love coding npcs

#

for ralo's case, i'd honestly just make the gothy tilesheet entirely of one sheet, so that way you don't have to constantly try to reference anything else, append it with something like z_RaloTileSheet so that it won't mess with the tile structures of the vanilla rooms, then you're free to rip open the Tiled on the vanilla rooms

modest dagger
#

i was humbled earlier

vernal crest
#

Yeah I was trying to help her avoid using Tiled though Avi

modest dagger
#

like leave me alone I forget commas okay

velvet narwhal
#

it's okay, i wait for my real mistress to yell at me anytime i type anything

vernal crest
# modest dagger

Do you not write your code in a text editor with syntax validation?

modest dagger
#

I use notepad++ c:

vernal crest
#

Well. JSON

#

N++ has syntax validation

modest dagger
#

it was worse before, before i just used notepad

vernal crest
#

JSON or JSON5 if you don't want it to pout about comment

#

s

lucid iron
uncut viper
#

my N++ doesnt actually have automatic json validation either

lucid iron
#

if you want other people to take over maintain though, you will have to update the license in your repository

rancid temple
#

Pretty sure you have to add an extension to it or something

lucid iron
#

need something more permissive

modest dagger
#

i think it's something we gotta set up button

uncut viper
#

only if i hit a hotkey or have a plugin check it but thats too much for me to ask

rancid temple
#

I prefer VSC

uncut viper
#

too much to ask of me*

#

i do still write all my json in N++ anyway though i just dont need the validation bc either a) i write it fine bc im comfortable with json now or b) SMAPI gives me an error but i know how to read the errors and can fix it

vernal crest
#

Hmm yes I see

uncut viper
#

i just dont like waiting for somethin like VSCode or Rider to open up just for a json file

tight rivet
vernal crest
#

Maybe I switched to VSC before I started writing enough JSON for validation to matter

#

Although since I use json lines now I don't get syntax validation anyway

lucid iron
vernal crest
#

I just wait for SMAPI to yell

vernal crest
#

Oop sorry for ping

rancid temple
#

Huh, I don't feel like VSC takes any longer to open than N++, but I don't have very many extensions in VSC

uncut viper
#

(oh, for the record RE: that license, you cannot prohibit forking if you put it on Github. by putting it on Github, you are agreeing to Github's TOS that you are allowing people to fork it)

rancid temple
#

One of the bigger reasons I switched to VSC is because N++ refuses to keep my stupid theme settings and I really hate being white screen blinded

vernal crest
# royal nimbus okay cool.

As Button pointed out though - this only works if you want to change an entire map's worth of tilesheet. If you only want to change Abby's room and not the rest of the seedshop, you will need to edit maps after all. Sorry!

uncut viper
#

((i do have a number of extensions...))

calm nebula
#

(Speaking of mods, I once downloaded a giant extension collection and then went "Oh. This is such a nice update for git integration. Thanks, VSC!")

#

(It was an extension.)

#

Gitlens

#

It's great

dense jolt
uncut viper
#

"Supercharge Git and unlock untapped knowledge within your repository"
this makes it sound like im downloading the necronomicon or something

velvet narwhal
#

unlimited POWER!! -- actually, vs22 installed something without my acknowledgement the other day and i was like, excuse me??

lucid iron
#

gotta step up your game aviroen

uncut viper
#

does that exist for Rider bc i want it

#

it does

vernal crest
#

That is horrific

velvet narwhal
#

OH IS THAT THE THING THAT ANIMATES EVERYTHING

uncut viper
#

(its much prettier in the VS version though...)

velvet narwhal
#

i'm gonna use that for my senior public speaking project

paper sundial
glad zenith
#

wow

rancid temple
vernal crest
#

Ahh the combo counter is so distracting

naive wyvern
#

maybe this will motivate me to learn C# UIGSFUYSGYGFS

#

good morning gang

rancid temple
#

I'm sure it's just entirely distracting lmao

lucid iron
#

(casey posted this b4 in this very channel, I just reposted)

velvet narwhal
#

yeah i remember casey being like, "just use this as your only extension"

proven vigil
#

Hey everyone, Stardew Valley Expanded 1.15 is now in beta and is available to anyone with a modder tag. Send me a message to get the files. I don't anticipate any compatibility issues with other mods, and for any potential conflicts, I've already reached out to the respective creators.

vernal crest
#

Does anyone use a screen recorder that is not OBS?

uncut viper
#

i use ShareX

vernal crest
#

Is it less busy than OBS?

#

I find OBS to be real overkill

iron ridge
#

or quite complex

vernal crest
#

OBS is not simple for me lol

#

I want something that just records my screen for me so I can compare event lengths and stuff. No fancy "record this window but not that window" or whatever.

#

I am not a content-creating sort of person lol

iron ridge
#

setting up sharex to record a specified screen area to a video or a gif is quite simple

#

then just one hotkey with no further input, mostly

vernal crest
#

Ok thanks I will give it a try

next plaza
#

ShareX doesn't do audio

#

I think

#

(Mine doesn't at least)

#

I use ShareX normally, OBS when I want audio

iron ridge
#

recording to video or gif?

vernal crest
#

Now to try to find a unique hotkey with my tiny keyboard

past crystal
vernal crest
#

I think I am okay without audio SDVpufferthink

#

It's mostly checking stupid fades /kicks fades/

lucid iron
next plaza
#

Sharex can do video or gif

past crystal
uncut viper
#

ShareX can also do audio

#

though only desktop audio or microphone audio but not both at the same time afaik

#

(disabled entirely by default though i think? idr its been a while since i set mine up)

vernal crest
#

Is there any advantage to using ShareX for still captures over the snipping tool?

uncut viper
#

does snipping tool give you a toolbar you can use to edit the screenshot area before you actually screenshot it
i also have my sharex setup to automatically both save my screenshot to a specific folder for all my screenshots and also upload it to an image host for easy linking to other people (unless i use a hotkey that just puts the screenshot in my clipboard only instead)

iron ridge
#

uploads, the editing tools

vernal crest
#

I automatically copy and paste my snips into paint and edit them there

#

It is second nature to me lol

uncut viper
#

it also freezes the screen when you hit the hotkey so you have time to edit the area and also see if you got the shot you wanted, i dunno if snipping tool does that (ive never used snipping tool)

vernal crest
#

I rarely ever actually save any stills

uncut viper
#

i digitally hoard things ive got my screenshots saved going back to like 2016

vernal crest
#

I usually just copy them into mspaint, edit, then copy and paste into discord or whatever

lucid iron
#

I think snipping tool has annotation features too

vernal crest
#

It does, but I never use the actual tool itself outside using windows-shift-s to take the capture

shadow vortex
#

Alright. I have created the machines that I wanted for my mod, and they seem to work. Now how do I go about adding a recipe to Mr Qi's shop?

lucid iron
#

Did you look at Data/Shops

#

just gotta edit QiGemShop and add your data

shadow vortex
#

Ok, think I have it figured out, thanks.