#making-mods-general

1 messages ยท Page 193 of 1

uncut viper
#

i think it changes it a bit

lucid jewel
#

Okay, I'll compare the maps. And does anyone know if there is some reason that Harvey hangs out there? I've admittedly never looked twice at that man

calm nebula
#

he listened to the doctor books about this touching grass thing

#

(this is not supported by the game at all, it's just my headcanon)

ivory plume
#

I like coffee, but I don't drink it too often since I'm prone to caffeine migraines.

uncut viper
#

hey Pathos, if you're still lurking, any reason why IMonitor doesnt have a LogLevel.Success? not havin Critical makes sense but i was just curious if there was a deeper reasonin behind it

#

its got a nice green colour i enjoy SDVpuffersmile

rigid oriole
#

cursed question: I want more enum options in FriendshipStatus. I can cast ints to type FriendshipStatus (e.g. (FriendshipStatus)(49)) and the game will run fine and use those new values right up until save time when it goes "hey those aren't defined". can I do anything about this or should I just entirely reconsider my approach

lucid iron
#

i dont think u can do anything about this

rigid oriole
#

pain

uncut viper
#

shove em in mod data before saving and set the enums back to normal

#

and reapply on save load

ivory plume
# uncut viper hey Pathos, if you're still lurking, any reason why IMonitor doesnt have a LogLe...

It most cases a success would be either:

  • Something which happens in the background (e.g. successfully updated cache), in which case it's usually not important enough to be highlighted in a bold green color. So Debug or Info would be more appropriate for those.
  • Something which happens in response to a player console command, in which case they're watching the output and probably don't need it to be highlighted. So Info would be more appropriate in that case.

Also the level system was a response to the unusable kaleidoscope of console colors before SMAPI 1.0.0 standardized the log levels, so reducing the number of colors to a small set of semantic meanings was the main goal.

(Technically Critical does exist, but it's only available to SMAPI itself.)

rigid oriole
#

aight mod data it is

uncut viper
#

all fair enough! and i do know Critical exists cuz im messing around with SMAPI functions i shouldnt be and thats how i found Success too SDVpuffersquee

#

my curiosity satisfied, thank you

rigid oriole
#

i guess it's safer to use mod data anyway because it won't bork saves if someone uninstalls

gentle rose
#

I think it's possible to change the save serializer itself but that doesn't seem like a particularly advisable thing to do in this case

rigid oriole
#

no i don't want to touch that part haha

crude holly
#

I like this a lot. I'm looking to start a new save and am on the hunt for a new farm to start with. I wish this was ready!

gentle rose
#

idk what Alert is meant to be for (for mods) but I personally use it when I'm being lazy and debugging my code using a bunch of logs SDVpuffersquee

wanton pebble
#

Alright, extremely minor question that I can work around if I don't get an easy answer to, so don't feel pressured to tell me what this is

uncut viper
#

Alert is for update notices and things requiring user action, typically

#

to be used sparingly in actual shipped mods

wanton pebble
#

how would I write "else if <player's farm name> is "Fortune"" in C#

uncut viper
#

i also use it for debugging though so i notice it better

gentle rose
#

I guess in a way my stupid debug logs are things that require user action SDVpuffersquee

wanton pebble
#

Context: in Polyamory, there's:

public static int GetBedWidth()
        {
            /*if (bedTweaksAPI != null)
            {
                return bedTweaksAPI.GetBedWidth();
            }
            else*/
            {
                return 3;
            }
        }

I don't want to mess with it in my personal copy much because API stuff is weird. But my bed is width 9

dire canopy
#

Festivals - some ocupy that area

wanton pebble
#

so I want to just elseif the farm name is ONLY if it's Fortune Farm

uncut viper
gentle rose
#
else if (Game1.ICan'tRememberTheName)```--- dammit ![pffft](https://cdn.discordapp.com/emojis/1247511613406187550.webp?size=128 "pffft")
uncut viper
#

probably DisplayName actually

#

oh wait is Fortune a farm type

wanton pebble
#

nope

uncut viper
#

not like, a player inputted name?

wanton pebble
#

It's the literal name of the farm

#

so the value of %farm

uncut viper
#

oh. then i thiiiiink DisplayName does that. lemme check real quick

wanton pebble
#

Worst case, I can just alter that return value

#

so don't exhaust too much effort

uncut viper
#

you can do that with BETAS Harmony

gentle rose
#

I'm pretty sure displayname is right

#

tbh I never remember which languages use elif and which use else if (despite the fact that I'm pretty sure elif is literally just python)

uncut viper
#

ok yeah DisplayName will get what you named your farm with the " Farm" at the end

gentle rose
#

is it even saved anywhere without the " Farm" part?

uncut viper
#

can also use GetDisplayName() instead of the property directly

gentle rose
#

or theoretically .displayName.Value() iirc but I think that's dodgier

wanton pebble
#

so
else if (Game1.getFarm().GetDisplayName("Fortune"))?

gentle rose
#

no, you aren't checking for equality and I think button was implying that getdisplayname isn't a method of the farm

#

I'd just do what button was saying tbh

#

but put "Fortune Farm" instead of "Fortune" so it works

uncut viper
#

its a method on GameLocation, it can take the place of DisplayName

#

theyre equivalent

#

but you still need to compare the string

gentle rose
#

-# why does this game have so many getters for some things...

wanton pebble
#

just to verify here before I build

uncut viper
#

not name

#

DisplayName or GetDisplayName()

wanton pebble
#

Better? (edited it)

gentle rose
#

now it's right

uncut viper
#

should work

wanton pebble
#

Thank you both. Hopefully when I start learning C# next month I won't have to ask simple questions like that

#

But thank you

uncut viper
#

(one day s omeone will use BETAS Harmony SDVpufferpensive)

ivory plume
#

(Should work when playing in English.)

wanton pebble
#

This is a personal edit so I'm down with that being the caveat!

uncut viper
#

does the farm type change in other languages?

ivory plume
#

The farm display name does (e.g. "Farm" is translated).

gentle rose
#

or something like that

uncut viper
#

i guess you could do .Contains("Fortune")

ivory plume
#

Yep. If you want to check the actual name entered by the player, you could do Game1.MasterPlayer.farmName.Value.EqualsIgnoreCase("Fortune").

uncut viper
#

do farmhands not get their farmName synced up?

#

i.e. do you need to use MasterPlayer instead of just Game1.player

gentle rose
#

oh I was just trying out the central station demo and noticed something interesting, if I travel to central station without having the bus unlocked, I can still travel to the bus stop from central station I just can't travel back to central station

ivory plume
#

I think it's copied to farmhands too?

gentle rose
#

(I can see why this could be the intended behaviour, just figured I'd ask)

uncut viper
#

i guess masterplayer cant hurt anyway just to be better safe than sorry

fervent horizon
#

Hey Pathos, how are you planning on handling the Mod Shop for central Station? Like what if 5 mods add a shop

ivory plume
ivory plume
fervent horizon
#

So the shop data will be tied to a token that gets randomized?

ivory plume
#

It'll probably be the classic seeded random approach which the game usually uses for that kind of thing.

fervent horizon
#

Will you have options for the shops to only be able to appear on certain days?

ivory plume
#

Yep, you can specify a Condition field to use game state queries (or use When conditions on your EditData patch).

gentle rose
#

oh I keep meaning to ask this and forgetting, would warps in the MapPatch theoretically be functional? (I assume yes but I'm not sure if you're patching it the usual way)

fervent horizon
#

I'm excited about the possibilities. Will the shop just be an outdoor stand like the desert festivle shops, or a shop interior

ivory plume
#

The main Central Station area is an indoor location. Kind of like the big train/bus exchange terminals, where you've got a ticket counter and little shops and waiting areas around. One of the areas is reserved for the pop-up shops, though the map design is still being worked on.

fervent horizon
#

It would be cool to add the ginger island shop as a shop that can pop up once you unlock it on the island

ivory plume
#

Yep, that'd be pretty easy to do.

ivory plume
wanton pebble
#

Thank you Pathos/Button/irocendar. You guys helped me fix a longstanding issue (Sophia went to the void sometime during the day for some reason, but the rest are now spaced out in bed properly rather than stacked all on top of each other)

uncut viper
#

oh Pathos, you mind if I ask for some clarification on some advanced token API stuff as long as your around? I'm rewriting one of my mods and I wanna do it better this time but I'm still a little confused on how advanced tokens that calculate their value dynamically should be cached? The docs say "as long as the calculation does not change" but does that mean as long as the input doesn't change, or the method of calculating?
i.e. for my mod that adds a token that returns a config value from a different mod. The config of the other mod can change whenever, but if the way the token grabs that value remains the same, is that fine? Or should it only actually grab it in the UpdateCintext method, cache it, and use that cache in GetValue? (Which I think is how I have it right now, though it's kinda wonky when, since it relies on input, it has a cache miss)

ivory plume
# uncut viper oh Pathos, you mind if I ask for some clarification on some advanced token API s...

Essentially the token must never return a different value if GetValues is called multiple times with the same input, unless there was an UpdateContext between them. So you would need a caching layer in your case.

You don't necessarily need to pre-cache the value in UpdateContext though. For example, it's fine to cache the result when GetValues is first called for an input, and reset the cache in UpdateContext.

uncut viper
#

oh, and here I thought I was doing something wrong in grabbing and caching those missed values in getvalues itself

#

so as long as I prioritize the cache always over getting fresh values, unless there is no cached value, it should be fine?

#

In GetValues that is

ivory plume
#

Yep.

gentle rose
#

(if I could tack one thing onto button's question, the advanced token API has some warnings about changing with no notice/being experimental, do you know if you'd consider it stable enough to be used in published mods right now?)

uncut viper
#

wonderful, thank you so much SDVpufferheart

ivory plume
#

It's already used in quite a few mods, so it won't change without reason. The problem though is that it's a direct reflection of how tokens work internally in Content Patcher, with minimal abstraction over it. So if that internal Content Patcher token implementation ever changes, the advanced API will automatically change with it.

tawny ore
#

Breaking changes coming in Content Patcher 3.0, confirmed.

ivory plume
#

In general I wouldn't recommend using the advanced API unless you really need full control over the token. The basic API is enough for the vast majority of tokens, and it has a guaranteed abstract interface that doesn't depend on the Content Patcher internals never changing.

tall cloud
#

Does any of you more experienced Modders know where to find following file StardewValley.BellsAndWhistles.TrainCar.draw() So far its should be where I can find something for a mod I'm trying to make. But I can't find that file anywhere, however I read on reddit that something in said file, can help me.

gentle rose
#

Makes sense SCyes thank you

latent mauve
gentle rose
ivory plume
uncut viper
#

the basic API can't do token input, can it?

pine elbow
#

help why is it so difficult to make a seasonal outfits mod

ivory plume
uncut viper
#

that's pretty much the only reason I'm using the advanced one tbh

gentle rose
#

that would solve my need for the advanced api, at least

tall cloud
#

So if i need to remove the trains Siderod, I have to code it away?

ivory plume
#

I assume that's probably part of the train cart sprite? If so you'd only need to edit the image asset using Content Patcher, not change the code.

tall cloud
#

I have looked for the siderod, I can't find it in any sprites

uncut viper
#

isn't that a custom train anyway or have I just never seen it somehow

tall cloud
#

Yes, I am bit of a train geek, so I felt the game needed a more, normal looking locomotive

uncut viper
#

oh, you drew that front train car?

gentle rose
#

is the siderod not part of the train sprite?

tawny ore
#

What the heck kind of instructions are you finding on reddit

tall cloud
tender bloom
#

temporarily patch any sheets you suspect in all-red

tawny ore
#

Canโ€™t imagine why youโ€™d need to look into the code to edit an image

tender bloom
#

occasionally, very occasionally, something is generated off that one weird white pixel

#

for example: I'm pretty sure the energy bars are

#

(tinted green)

uncut viper
#

staminaRect my beloved

ivory plume
#

I assume the side rod is just a separate sprite overlaid on top of the train car. Not sure where it is though.

tender bloom
#

in this case i doubt it because it's not a simple rectangle

tiny zealot
#

or sometimes it's the particle effects when you eat or drink and those use a specific white pixel in the moon

latent mauve
#

You're not just patching Cursors in the locomotive area for the train locomotive image?

tawny ore
#

Cursor?

tender bloom
#

i would def suspect cursors

gentle rose
tender bloom
#

there's also weird little bits on cursors

gaunt heath
#

It's always cursors

tiny zealot
#

every Draw() call in TrainCar.cs uses cursors, so consult the haiku

gentle rose
#

are the actual cursors on cursors? I genuinely don't know

tawny ore
#

99% of the time itโ€™s Cursors. The other 1% are you sure itโ€™s not in Cursors?

drowsy pewter
#

maps/springtrain

tiny zealot
#

.q 6218

patent lanceBOT
#
#6218

It's not in Cursors
There's no way it's in Cursors
... it was in Cursors

calm nebula
#

(it's probably cursors_1_6)

gaunt heath
calm nebula
#

tbh

ivory plume
tender bloom
#

it started as cursors.....

gaunt heath
#

Cursors got scope creeped

calm nebula
#

although I'm not spotting it

#

tbh.

gaunt heath
#

Scope creep comes for us all SDVpufferwaaah

tall cloud
tender bloom
#

odds it's a couple pixels tiled?

gentle rose
# calm nebula

this is why I try not to look at the draw code for too long... it scares me /lh

ivory plume
#

Yeah, I looked through the cursors files and didn't see it. We might need to check each rectangle used in the draw code to find it.

gaunt heath
#

6480 dropped a filepath from an alternative universe and then dipped

gentle rose
#

I can't find the springtrain file either but I haven't unpacked the game on this laptop since 1.5 so that says nothing

tiny zealot
#

never forget when pathos gave us the secret alpha reveal of Cursors_1_6.png

latent mauve
#

springtrain does not exist in my content files at all.

gaunt heath
#

I'm going to redo my unpack and check

tender bloom
#

the blob on one end is below the extra wheel

drowsy pewter
#

guys it was a joke

latent mauve
#

I missed that 6480 posted that

#

I thought it was the person doing the edit saying that's where they edited

tender bloom
teal bridge
#

Is that actually a vanilla train car? The whole car design looks unfamiliar to me.

tender bloom
#

so all we need to do is find the bar

gaunt heath
#

You forget how silly the real filenames are! We have qinutroom, anything is possible!

tender bloom
#

it's not a vanilla car, the point is that it's an edited car with 1 bit that doesn't match

#

which we are seeking

#

i am worried the bar is made of 3 pixels tiled

#

actually zooming, 2 pixels

teal bridge
#

I'm confused as to why the vanilla cursors sheet would have to be modified to remove an element from a modded train car.

gentle rose
#

but it also has vertical bits which I would hope are not that

uncut viper
#

have you considered that the bar is just a small column from the circle you just highlighted

teal bridge
#

Just... don't draw that part on the modded train car?

tender bloom
#

there's like a patchwork sprite draw call going on

#

they already did that

gentle rose
#

I think it's being drawn automatically

ivory plume
#

The game draws the train car, then adds 'decal' decorations on top of it.

tender bloom
#

but there's other stuff being done in C#

drowsy pewter
calm nebula
#

what's the thingie we're looking for?

tender bloom
#

it's the part circled in red

tender bloom
#

i have the image open reall big in my browser

calm nebula
#

oh yeah

#

except the lines are uh

tall cloud
calm nebula
#

that's the lines

tender bloom
#

the problem is, it could be 2 pixels off the wheel or the the train or rrr

calm nebula
#

not cp targetable

tender bloom
#

oh no

#

worst

gaunt heath
#

But why though???

calm nebula
#

best

drowsy pewter
#

lmao

latent mauve
#

Time to redesign with the bars in mind

calm nebula
#

does the game have carrot cake yet

drowsy pewter
#

the game decided to add new crops with zero function

calm nebula
#

6480, if there is one thing you need to know about me

uncut viper
#

you can give them to horses

calm nebula
#

my favorite dessert in the world is carrot cake

uncut viper
#

carrot cake is pretty damn good

calm nebula
#

no other fact about me is important, I'm pretty boring and nondescript

drowsy pewter
#

i have cake for you

calm nebula
#

in particular carrot cake from a whole foods in massachusetts

tall cloud
rotund elm
#

is sve the only major mod that edits the layout of the town and the inside of pierre's shop?

#

Can't think of any others

gentle rose
#

idk if I've ever had carrot cake

rotund elm
#

WHAT

drowsy pewter
#

who knows why

rotund elm
gentle rose
#

a bunch of mods add buildings

#

overgrown valley adds grass and probably other stuff like layout changes

tall cloud
slender badger
rotund elm
#

hmm so if I was to place a map patch where would my best bet be to do it without it being alterred by another mod? its a 1*2 tile patch

#

also

rotund elm
drowsy pewter
slender badger
pine elbow
#

sorry

gentle rose
slender badger
rotund elm
#

I need it

#

everyone uses sve or at least like 90% of mod users I swear

slender badger
#

Definitely not everyone.

rotund elm
#

I can do an sve patch easy

slender badger
#

I refuse to do SVE compat and there are plenty of other mod authors that don't either

gentle rose
#

you could have a conditional patch that puts it in one of the added sve maps when sve is installed and somewhere normal if it isn't

rotund elm
#

but other mods if there is many may be a problem

lucid iron
#

just make other ppl do it for u ez

rotund elm
#

yea thats what I do for FoS

tawny ore
# calm nebula

brb, gonna make a new Framework mod called TrainLinesCore CustomTrainLines

uncut viper
#

TLC, not a bad acronym

#

oh

lucid iron
#

BetterTrainLines

uncut viper
#

nevermind it's ruined now /lh

gentle rose
#

ngl a framework that finds every instance of manual drawing and makes it editable via content patcher might be appreciated by some people lmao

uncut viper
#

that's what theme manager does for UI elements

rotund elm
#

Mmk I will just make it extremely clear I never intend to even consider making a patch other than for sve and I will hex anyone that mentions it to me XD

tawny ore
#

inb4 my mod falls way out of scope and you end up with Prismatic trains

gentle rose
#

how am I still hearing about frameworks for the first time

rotund elm
#

wHaT

gentle rose
#

brb looking up theme manager

gentle rose
brittle pasture
#

How familiar are you with TargetField
You'd need to use it to add a single new entry to a nested field in machine rules
So (BC)12 > OutputRules > Default_Wine > OutputItem > Default > PriceModifiers
Then you can add a new entry to that PriceModifiers list: a new quantity modifier object that's something like "divide by 2"
https://stardewvalleywiki.com/Modding:Common_data_field_types#Quantity_modifiers

amber carbon
#

can someone please explain what I'm doing wrong here, this is my first time making a mod and I have no idea why I'm getting this error

brittle pasture
#

did you get AI to write that

nova gale
#

Because you seem to be adding an object to a boolean value of I'm reading that right?

rigid oriole
modern ether
brittle pasture
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.

rigid oriole
#

actually idk if they want the content API bc i'm not sure what the goal is

amber carbon
#

I literally copied the wiki's example, I have no idea why that error's there

modern ether
#

this is what i got from the one you linked me about honey

gentle rose
#

I also don't think that's the right method signature for an OnAssetReady handler? but I may be wrong

rigid oriole
#

what.... what wiki page did you copy this from

calm nebula
#

I got pinged twice and don't know why?

gentle rose
brittle pasture
calm nebula
#

hopefully it wasn't important, lol,

amber carbon
calm nebula
#

not sure which messages were teh pings and can't find them now so

gentle rose
calm nebula
#

goes to sleep and knits

brittle pasture
#

and what are you trying to do?

gentle rose
latent mauve
#

There were two more about carrot cake, atra

uncut viper
#

Neither of those wiki pages have what you have so what did you literally copy it from

latent mauve
#

But they were not positive, so not worth tracking down to go back and read /lh

tall cloud
modern ether
calm nebula
#

(ILSpy has a search function.)

tall cloud
drowsy pewter
calm nebula
#

!decompile

ocean sailBOT
drowsy pewter
#

!decompile

#

nooo

tender bloom
#

narrowly avoided a 3rd myself

tawny ore
#

And my axe

tender bloom
#

the reflex is strong

rigid oriole
amber carbon
brittle pasture
#

try making some wine from kegs

tall cloud
#

Okay, thank you all for the help, I'll try it later, but right now I'm way too tired for coding ๐Ÿ˜„

gentle rose
modern ether
#

ohhh, ok. god if that's the only issue i swear i'll be so mad at myself

brittle pasture
rigid oriole
calm nebula
#

also just fyi

#

dicking around with the minigames graphic for junimo kart hasn't the slightest hope to make the minigame less random

modern ether
drowsy pewter
quick adder
#

Any way to get $q working in festivals?

Dialog just seems to end after the choice is selected, so I think it doesn't pull the answer lines. Tried putting under festival, and under the characters but it didn't work

$y I could only get to give a response that ends the conversation, I wanted more complex dialog

drowsy pewter
#

unless your mod is like titled "Change Wine Price in CJB Item Spawner"

brittle pasture
uncut viper
#

would it not then also work for things that aren't kegs, and also be more easily configured

#

there's reasons I can see for wanting a C# version

drowsy pewter
#

ah fair enough

dusk mulch
#

Thank you! I will edit my mod soon.

amber carbon
# brittle pasture Ok and what are you trying to do

I'm just trying to send a message to the log when junimo kart is started so I can start figuring out how to do everything else. the full mod is supposed to make the level layouts consistent by reading from a file and replacing the random generation, but I've literally just started and I'm kinda struggling from immediately getting an error that doesn't make sense

drowsy pewter
#

Forgot that this started with a discussion about conflicts from other wine rules

uncut viper
brittle pasture
#

(I'm not being rude, just trying to walk you through it)

amber carbon
#

based off reading the wiki, I assumed using AssetReady would allow me to trigger the logging function to send a message when junimo kart is loaded, I'm guessing I assumed wrong?

brittle pasture
#

Ah got it, I see why one would have that assumption
AssetReady deals with assets like object data or NPC data or machine rules, or loaded images
It unfortunately does not include Junimo Kart logic, wherever it is, and it doesnt include runtime stuff like when the minigame is loaded

tawny ore
#

I think one of the issues you're having is not understanding what an asset is

gentle rose
#

you did. Asset Ready is called when an asset (like a graphic, audio etc) is initially loaded into the game, often before it's used.

brittle pasture
#

If you unpacked the files, everything in the Content(unpacked) folder is what could be called an asset

ivory plume
#

(Junimo Kart is a minigame, so you can check Game1.currentMinigame in an event like UpdateTicked; see change monitoring.)

rotund elm
#

God I hate Junimo Kart. I have never made it past the first level since I have played stardew for the first time....

gentle rose
#

But also, some of the changes you made to the code are unnecessary and will lead to errors, like adding IsEquivalentTo and removing e from the method you're calling, so we're trying to understand why they were made.

amber carbon
#

from going through the files, junimo kart is under content/minigames/minecart.xnb so I thought the command would work for it

gentle rose
#

that is the packed asset file containing some of the assets used by the game, not the game itself.

brittle pasture
#

that's the graphics for the minigame

#

!unpack do this first

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!

brittle pasture
#

so you can see exactly what you're trying to edit instead of guessing by name
as mentioned, what you want to do would not involve the asset pipeline in any way

#

follow pathos' code instead

amber carbon
#

ok, I feel really silly now, you can tell it's my first time trying to make a mod lol

gentle rose
#

The important thing is to know why you're doing or changing anything that you do.

brittle pasture
#

(to elaborate further, if you were trying to log a message when the game finishes loading the graphics for the Kart minigame, which can happen at any point between the title screen and the minigame launching, your code would be correct)

uncut viper
#

(well the idea of the code would be)

gentle rose
#

(the code had several mistakes that would have needed fixing regardless of what the intention/plan was)

modern ether
#

where do i find information on CreateFlavoredWine? I don't even know where to start looking in the game's code, nor how to write anything that changes it

#

this would be my first C# mod, so i'm going in blind

gentle rose
#

what do you know about it right now? like where did you find that name

modern ether
#

Selph said it earlier. I'm trying to wrap my head around how the game's code works but unless there's something fundamental missing from my programming knowledge i just am too much of a beginner for this

gentle rose
#

(I could look it up for you but a) my pc is off right now and b) now's as good a time as any to learn how to find some of these things!)

modern ether
#

yeah! i want to learn how to do this myself, not just have someone do it for me, but i'm too lost to be able to figure it out

gentle rose
#

were you able to decompile it yet?

modern ether
calm nebula
velvet narwhal
#

profit

gentle rose
#

I'm still waiting on that profit part tbh

#

wait that's ILspy pffft I thought that was vs for a minute

modern ether
#

yeah, im in vs

#

do i need ilspy?

gentle rose
velvet narwhal
#

to decompile the game, yeah

#

i literally just ctrl + f

gentle rose
velvet narwhal
modern ether
#

wait

#

im stupid. i have it already

gentle rose
velvet narwhal
#

you can dropdown to search whole project

gentle rose
#

personally I prefer working with the code in my IDE rather than in ILSpy but each person has their own preferences

#

IDE being in your case Visual Studio, and in may case I'm still deciding if I'm going to abandon my current one pffft

velvet narwhal
#

atra really broke you huh SDVpufferpensive

gentle rose
#

atra if you see this this is your fault

#

/lh

#

(Rider can't cope with shared projects and somebody has three of them)

modern ether
#

so how do i make a mod that overrides this?

uncut viper
gentle rose
#

have you found what file it's in yet?

modern ether
#

yeah, it's in StardewValley.ItemTypeDefinitions/ObjectDataDefinitions.cs

gentle rose
#

I uh forgot what we're trying to achieve pffft give me a sec (or catch me up if you'd like)

velvet narwhal
#

something about changing wine price

modern ether
#

trying to reduce the wine multiplier from 3x to something lower. the exact value i'll figure out later but for now let's say 2x

gentle rose
#

I should open the game code myself

brazen arch
#

I don't know if this is the channel to post this in, but I'm editing a mod for personal use. I'm trying to add the custom music to the Ginger Island farm house and Ginger Island west, but for some reason the code is not working. The SMAPI log isn't posting any errors. Can I post the content.json code here so that someone can check it out?

brittle pasture
#

!harmony

ocean sailBOT
#

Here be dragons. Venture forth with bravery, young warrior, for thou art alone in these dark lands. See the Harmony wiki page for more info.

brittle pasture
#

ignore the graphics harmony's not that scary tbh

gentle rose
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.

gentle rose
#

the first one

brittle pasture
#

(though uh did you have a basic C# mod set up yet)

modest dagger
#

selph i'm just looking at EMC and thinking to myself 'hmm i wonder what other chaos i can have with this'

modern ether
brittle pasture
modest dagger
#

hell yea

gentle rose
#

wait we're sowing chaos now? time to check what emc does

#

oh extra machine configs

#

not my kind of chaos rn SBVPensiveButt

modest dagger
#

i'm already looking to adding more machines to either GYM or a new mod with an equally cursed name

gentle rose
#

oh and your smapi log would actually be pretty useful too

#

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

modern ether
#

i'll be honest i'm usually good with code but looking at this without any hint of what it means is making my head swim lol

modest dagger
#

i mean ye could be good with some code but C# or CP is new to ye

gentle rose
#

yeah, modding can be like that sometimes. But stardew has a lot of resources now (in the wiki in the Modding namespace) and we can help too

teal bridge
brazen arch
ocean sailBOT
#

Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home, with 104 C# mods and 506 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

modest dagger
#

does not help I have no idea what harmony even is

gentle rose
teal bridge
#

Yeah, the link is fine, everything else is dumb.

tiny zealot
#

harmony is good and Fine and i also hate the harmony command for making it sound scary and Bad

slender badger
gentle rose
#

(high enough level being Shepherd+)

brazen arch
# gentle rose oh, so the music was already there? may I ask what you're trying to change?

So I edited the original mod so that the farmhouse layout replaces the Island farmhouse instead. I was able to do that with no issue, but the only issue is that the new custom music is not applying to the Island farmhouse for some reason. Instead, the Island farmhouse is playing random vanilla spring music, and the Island farm is playing vanilla island music.

teal bridge
modern ether
calm nebula
uncut viper
#

You're supposed to not change it without talking to the person who made it I believe

teal bridge
#

The question "can we" probably should have been worded as "can we all agree that..."

gentle rose
#

I think from what I see everyone seems to agree with you that it could use changing SCyes

uncut viper
#

"don't change commands added by other users without discussing the change first" I was wrong it doesn't specify the person who made it

teal bridge
#

I'll write a new blurb tomorrow then unless someone else decides to beat me to it.

modest dagger
#

I'm going to just assume someone like me (who does not dabble in C#) will likely never have a need to use harmony?

teal bridge
#

(something something BETAS footguns)

gentle rose
#

not without betas since harmony is a c# thing, and with betas only if you feel like doing some very specific things

faint ingot
#

Can anyone tell me what 'frame' is Clint's sleep sprite? His large sprites in the middle of the sheet are throwing me off.

gentle rose
#

I wonder if the island music is overridden somehow SDVpufferthinkblob

tiny zealot
gentle rose
#

I really need to reunpack my game... pffft

rigid musk
#

i should probably do it again too.. i think the last time I did was right when 1.6 came out and i dont even know if I moved anything around pondering

slender badger
#

Definitely worth it, 1.6.9 added new assets and changed some others, from memory

gentle rose
#

I finally broke because my location data asset was still in the numbers separated by slashes format and the wiki doesn't even document that any more apparently pffft

brittle pasture
#

is that old files from older versions

#

I know that the game used to have locale-specific location data before moving everything into tokenized strings

gentle rose
#

yeah, it's from 1.5

#

it wasn't locale-specific, it actually had no text whatsoever

#

"18 .9 20 .4 22 .7/396 .4 398 .4 402 .7/406 .6 408 .4/414 .33 418 .6 283 .5/-1/-1/-1/-1/584 .08 378 .15 102 .15 390 .25 330 1" this is the full Data/Locations entry for the bus stop for example

modest dagger
#

i dislike that

gentle rose
#

I think most people did pffft probably why it got changed

brittle pasture
#

recipes next pls

modest dagger
#

i don't mind recipes weirdly enough

gentle rose
#

(for reference, I do already have an up to date unpack on my pc, I just didn't have one on my laptop)

#

where are recipes again

#

cooking recipes were localised apparently

#

the basic format stayed almost exactly the same except for a slash being added to the end of every recipe, but they removed all the localized versions

gentle rose
rotund elm
#

when using tile data does the start time or open time need to be 0600 or can it just be 600

gentle rose
#

I'd do 0600 just to be safe tbh

rotund elm
#

Thanks SDVpufferthumbsup

languid aurora
#

Does Content Patcher have any events it fires for when its done applying loads and edits?

#

I'm registering my GMCM config option in GameLaunched, but CP hasn't made edits to my data asset yet, so the allowedValues are being captured without them.

uncut viper
#

It's API has a bool for whether conditions and stuff are ready but without that you need to wait 4 ticks

#

(the conditions API thing might be a separate thing anyway? but 4 ticks im very confident in that part at least)

brittle pasture
#

are your allowedValues dependent on an asset

languid aurora
#

Yeah they're the dictionary keys of my data asset, so GMCM gets the default keys, but not the ones other mods can edit in to add their own entries

#

Does the API bool indicate that it's made all of its initial edits? Or should I just wait the 4 ticks (need to figure out how to do that cleanly)

brittle pasture
#

instead of waiting on CP I'd probably do something like request the asset and populate allowedValues once on GameLaunched, and edit allowedValues on every time the asset is invalidated afterwards

uncut viper
#

well it wont do any edits until an asset is requested

latent mauve
#

I think I probably know the answer to this, but dyeable shoes aren't possible, right (with just CP)?

uncut viper
#

can you edit allowedValues in GMCM after the fact?

rotund elm
#

anyone know where map patching and patch modes are mentioned on the wiki? I cannot find them on CP docs or the stardew modding wiki and I know its somewhere

uncut viper
#

also to wait 4 ticks just put an event listener on UpdateTicked that checks if its a multiple of 4, then remove the handler after

latent mauve
#

on the EditMap CP author docs, Goat

rotund elm
#

ok I guess ctrl f hates me

brittle pasture
#

I guess you can unregister and reregister the mod page afterwards? Not sure if that's any better than waiting 4 ticks

languid aurora
#

AFAIK I'd have to unregister and re-register the config option to update allowedValues, if I could just update it directly that'd be great.

uncut viper
#

~reflection crimes~

#

(id just wait)

brittle pasture
#

alas allowedValues isnt a closure

languid aurora
#

Really what I'd like it to do is take a function instead of an string array so it could always get the current list, but that's not happening SDVkrobusgiggle

brittle pasture
#

yeah prob just wait then

uncut viper
#

i think thatd probably do weird t hings if suddenly a value that was allowed before, suddenly isnt, but it IS whats written in the config.json

languid aurora
#

Alright, looks like waiting a bit to register it is, thanks all

brittle pasture
molten charm
#

Hello, I am very, very new to modding. I am wondering, is it possible to make a mod that adjusts how/where shirts are rendered on the farmer?

uncut viper
#

not easily

#

that would still not be easy for someone who ISNT new to modding im rather sure

languid aurora
#

If you open the farmer's sprite sheet you'll see approx 999999 variants

latent mauve
molten charm
languid aurora
#

I adjusted a few for holding the horse leads and I found that to be tedious lol

latent mauve
#

Also in unrelated news, I'm so happy, using [LocalizedText Strings\NPCNames:Pierre] is working to replace my names in the dialogue

rotund elm
#

how do I go about making a has mod condition false so instead of checking for it, it allows the entries if itโ€™s not present? I looked on the wiki but it only shows you how to check for a mod and I canโ€™t find the documentation for it

uncut viper
latent mauve
uncut viper
rotund elm
#

Thank you button ๐Ÿ˜ญ

uncut viper
#

theres a handful of em

#

that was for lily!

latent mauve
#

thank you!

rotund elm
#

Omg sorry Iโ€™m clueless I thought thatโ€™s where it was mentioned lmao

uncut viper
#

"HasMod |contains=modid": false

rotund elm
#

"HasMod | contains=FlashShifter.StardewValleyExpandedCP": false is that right?

uncut viper
#

id remove the space bwteen the | and contains

#

dont know if it matters but just in case

molten charm
#

Ok so, I want to make a mod that changes all the characters in the game to 16x16 sprites, including the farmer's. Since it would be complicated to change how shirts look, I'm thinking maybe I should make just one of the shirts "invisible" and have the shirt be baked in with the farmer sprite. ๐Ÿซ  It's janky, but would that would be a viable option?

uncut viper
#

no thats like a hundred times worse in terms of difficulty i think

molten charm
#

โ˜ ๏ธ

#

heard

uncut viper
#

messing with farmer sprites at all is a mess

#

messing with them to that degree is like. i would not even know where to begin with that project

#

and then for every single character... it would be a lot. like, a lot a lot

#

it would also require copious amounts of C#

molten charm
#

Sigh, my dreams are shattered... but oh well. I have some NPCs already made and can implement them but I just think the visual mismatch between them and the farmer would be too jarring for my liking. Thank you for sharing your knowledge!

slender badger
#

Not to mention you'd break compat with every mod that affects the vanilla NPCs

uncut viper
#

as always it remains true that "with enough C# you can do anything" but i am sorry to have to be the bearer of realistic news SDVpufferpensive its not a beginner project by any means

molten charm
molten charm
slender badger
#

What exactly is the thing you're trying to do? Because I'm getting the feeling you're asking about a potential way to work around something rather than the underlying problem

#

(also please don't ping me on reply)

keen barn
#

Hi. Is there is a way to convert my Farmer Character (the XNB files) to an NPC sprite?

uncut viper
#

they wanna make the farmer 16x16 instead of 32x32

#

er, 16x32

#

Farmer sprites are not one-to-one with NPC sprites

steep oracle
#

hi, guys! the noob questins again. what's the easiest way to add lights to the map with CP?

uncut viper
#

and are also broken up into pieces

keen barn
uncut viper
#

yes, sorry

keen barn
#

Ah okay. Are the two messages above that directed to me?

uncut viper
#

erverything after "er 16x32"

keen barn
#

Ah ok.

uncut viper
#

(i have a bad habit of doing that and not realizing that its not clear i switched targets)

#

(my apologies!)

keen barn
#

use replies ๐Ÿ˜ญ

#

but its allg

#

So is there a way to make character sprites based off Farmer Sprites?

slender badger
#

No

uncut viper
#

well, you can draw em yourself

#

but otherwise no theyre not really compatible like that

keen barn
#

Really? Damn. From a development standpoint that doesnt make sense.

slender badger
#

The farmer sprites work very different to the NPC sprites KR02Shrug

uncut viper
#

the game got released and is one of the best selling of all time, so it seems to have made enough sense

#

Farmers do look a lot different

keen barn
#

Alright.

brazen arch
dusk mulch
rotund elm
#

So I just noticed something interesting... the delay I set for my animations is not applied when the tiles are patched in game? animation looks good its just a lot faster. Is there a reason for this, or a way to fix it?

uncut viper
slender badger
rotund elm
#

by that do you mean make it even longer?

#

this is how it looks in tiled but the delay I set for the last 5 frames is not present and in game its the same delay for every frame

brazen arch
slender badger
rotund elm
#

Yea, the last 5 are set to 750ms and the rest are 250ms

#

I think something is bugged

devout otter
rotund elm
#

Ahh I see good to know!

dusk mulch
#

How does the game define where foragables can spawn?

devout otter
#

So you'd need to do 250ms three times for each of the last five.

rotund elm
#

Perfect thank you both!

slender badger
#

Maybe I'm misremembering or it never actually worked, haha

devout otter
#

Yar, I tinker with my mouse animations a lot and, believe me, it needs to be the same.

#

Aaah the wiki says this Make sure every frame has the same time; the game can't handle variable frame times.

rotund elm
#

dont you just love when something is tucked away in all the TINY text that is SO important...

rotund elm
#

Like my glasses are thicker than ME... do you REALLY expect me to soak up all these details when there is a bajillion lines of text right next to each other LMAO

#

screens already hurt my eyes enough with bluelight glasses and now I have to read the stardew valley wiki

#

its like the final boss for people who are going blind and have an astigmatism

versed wyvern
#

Would anyone happen to recall if Harvey shows up in any cutscenes other than his heart events? rosathink

steep oracle
#

anyone? :')

versed wyvern
#

I'm afraid I don't know enough about map edits to help with that rubyslime

#

But looking into map patches is probably a good place to start

rotund elm
#

do you want to do it with CP or use the tile properties

#

I'm sorry I forgot Harvey was an NPC ngl lol

rotund elm
#

are you adding light to a map you made or one that exists in the game already or is from a mod that is not your own?

steep oracle
rotund elm
#

Yea!

steep oracle
#

brb

devout otter
#

Also Maru's heart event where she broke a vial.

versed wyvern
versed wyvern
latent mauve
#

He's also in Sam's heart event (the band's show) but he doesn't talk there I think?

versed wyvern
#

Oh, yea, I'm only looking for dialogue but I'll check in case noted

slender badger
#

He's also in Leah's art show event

#

Also depending on what you're planning and how much compat you want to handle, he's likely in a bunch of mod-added events

versed wyvern
#

Probably not gonna worry too much about that, I'm inclined to expect he mostly only gets used when they need somebody to do medical stuff ThinkO_O

#

Looks like he doesn't speak in Leah's show either, at any rate noted

uncut viper
#

he also goes to aerobics

#

or is that his heart event

#

ive never gotten that event on purpose so i dont remember what trigger it is

fossil osprey
#

It is his own x)

versed wyvern
#

That's his heart event, yeah (and without Airyn's mod he never even actually attends despite having convo topics about how he's improving yugu )

unique sigil
#

example code:

      "Action": "EditMap",
      "Target": "Maps/{{ModId}}_BlossomCrest",
      "MapProperties": {
        "MapProperties": {
        "Light": "29 36 4 76 77 4 10 86 4 59 120 4",
        "NightTiles": "Buildings 29 36 507 Buildings 76 77 507 Buildings 10 86 507 Buildings 59 120 507"
      }
      }```
brave fable
uncut viper
#

yes bc i thought CP finished on tick 3

#

so its the 4th that ur good to go on

brave fable
#

oh you want 4 from gamelaunched specifically, not some arbitrary 4

uncut viper
#

correct

brave fable
#

another useless blueberry message then

gentle pebble
#

Im about to patch in the house for my npc would I do that in the Content json or would I make another json for the house?

slender badger
#

Up to you. You can add it through an Include for organisation if you like

gentle pebble
#

oki

rotund elm
#

would anyone know why a map patch is breaking the day/night tiles of the forest map? the code itself for the mod is normal, there are no console/log errors and the lights work only when the patch mod is not installed?

#

No map properties or tile data is being messed with besides a custom map property that works fine

latent mauve
#

Does your patch possibly replace an area that has Day/Night tiles defined? If there was an object there on a layer and that layer was cleared in your patch, it could still be looking for the tile on that layer

#

You can change the Map properties for the day night tiles on the base map to remove those tile references if so

#

Also, make sure you have your lights on the paths layer in your patch

inner harbor
#

Does spouse festival dialogue still not work for the flower dance?

blissful panther
# dusk mulch So this should work? (Ignore the errors) https://smapi.io/json/content-patcher/3...

It sort of will, but do not make that part conditional. The pickup data part needs to always be there to keep things reliable. You would want the condition there to be on the map patch part.

And just to be clear, PEEM.Test.Pickup.BackwoodsArtifact can be whatever you like. It could be Flamingo.Overzealous.SeventyNine. Make it nice and descriptive! Though I would recommend YourModID.ItemPickups.BackwoodsArtifact in this case.

Other than that, yup, looks good!

dusk mulch
#

Amazing, ty!

#

So like this?

"Changes": [
    {
        "Action": "EditMap",
        "Target": "Maps/Backwoods",
    "Conditions": "PLAYER_HAS_SECRET_NOTE Host SecretNote23",
        "MapTiles": [
            {
                "Position": {
                    "X": 29,
                    "Y": 26
                },
                "Layer": "Buildings",
                "SetProperties": {
                    "Action": "PEEM_InteractionGetItem PEEM.Test.Pickup.BackwoodsArtifact"
                }
            }
        ]
    },
    {
        "Action": "EditData",
        "Target": "PEEM/ItemPickups",
        "Entries": {
            "PEEM.Test.Pickup.BackwoodsArtifact": {
                "ID": "PEEM.Test.Pickup.BackwoodsArtifact",
                "ItemID": "(O)101",
                "Quantity": 1,
                "DaysToRefresh": 3,
                "LocationName": "Backwoods",
                "Tile": {
                    "X": "29",
                    "Y": "26"
                }
            }
        }
    }
]
}```
atomic current
#

hello! idk if this question makes sense
im making a custom npc and i want to make it so that the npc straight up doesn't accept certain gifts (but it would still add/subtract heart points)
would this be possible, and if so how?

hallow prism
#

there is a reject_itemid dialogue that does that, it doesn't in itself change the heart point, but since any dialogue can have actions that change friendship you can make your own

atomic current
#

ohh
how does that affect the gift tastes? does it just overwrite the dialogue for that but still do heart points?

hallow prism
#

no, it reject the gift, there's no change to heart point as i said

atomic current
#

ahh

brittle pasture
# atomic current ahh

Minor correction: it'a RejectItem_itemIdHere, not reject_itemIdHere. The latter still works for rejection, but it's only meant for item quests, while the former is more recommended

hallow prism
#

thanks, i didn't remember the change/addition ๐Ÿ™‚

blissful panther
#

That looks like it should work?

#

And decode it?

dusk mulch
blissful panther
dusk mulch
#

Well my mod is all ready for release when you are ready to send out the beta.

cosmic thorn
#

wait i cant do it like that?

has multiple patches with the 'Exclusive' priority which load the 'Mods/VanLamar.TestMod/Objects' asset at the same time (TestMod > Load Mods/VanLamar.TestMod/Objects #1, TestMod > Load Mods/VanLamar.TestMod/Objects #2, TestMod > Load Mods/VanLamar.TestMod/Objects #3, TestMod > Load Mods/VanLamar.TestMod/Objects #4, TestMod > Load Mods/VanLamar.TestMod/Objects #5, TestMod > Load Mods/VanLamar.TestMod/Objects #6, TestMod > Load Mods/VanLamar.TestMod/Objects #7, TestMod > Load Mods/VanLamar.TestMod/Objects #8, TestMod > Load Mods/VanLamar.TestMod/Objects #9, TestMod > Load Mods/VanLamar.TestMod/Objects #10, TestMod > Load Mods/VanLamar.TestMod/Objects #11). None will be applied. You should report this to the content pack author.
uncut viper
#

your Target is not a folder

#

Mods/VanLamar.TestMod/Objects may look like a path to a folder, but its a singular asset

#

so you are trying to load many things into one asset

cosmic thorn
#

oh

#

i see

#

okay thx

royal stump
winter dust
#

Will the NPCs GiftTastes autofill automatically from the item categories I specified for my custom items?

#

Like if it's Wine Leah will automatically love it?

gray bear
#

yes

#

well unsure about if leah would love it actually

winter dust
#

Okay good, I didn't wanna go through doing all the NPCs manually.

winter dust
gray bear
#

i know it autofills for category, like everyone likes artisan goods

#

everyone but krobus and willy like cooked dishes etc

hard fern
#

is this an actual category, or context tag

gray bear
#

im guessing in that case leah likes the context tag for wine?

hard fern
#

for your wine

#

i can check rq

winter dust
#

Well, I want everyone to hate these old coins that WTDR has, so I guess just an entry for each NPC.

gray bear
#

you can make it a universal hate

winter dust
#

Actually, can I just add the item to global dislikes/hate?

hard fern
#

yes

#

"Leah": "Oh! This is exactly what I wanted! Thank you!/196 200 348 606 651 426 430 pretty sure wine is 348? ๐Ÿ˜… well its one of them but it's by id not context tag

gray bear
#

can do the same for hate

#

Wine id is "348" yeah

#

so i don't think making a wine will make leah love it automatically, no

#

vanilla gift tastes are item specific

hard fern
#

well it will so long as it follows regular wine rules

#

like put fruit in keg

winter dust
#

I mean, she responds with love regardless the last time I checked.

gray bear
#

will it have the same id tho?

hard fern
#

yes

#

wine is a flavored item

gray bear
#

oh right yeah

winter dust
#

My wine isn't made any differently.

gray bear
#

yeah she'll love it then

hard fern
#

so it'll work

gray bear
#

i forgot that flavored items are just, regular ass items really

winter dust
# gray bear can do the same for hate

like this?

{
            "Action": "EditData",
            "Target": "Data/NPCGiftTastes",
            "TextOperation": [
                {
                    "Operation": "Append",
                    "Target": [
                        "Entries",
                        "Universal_Hate"
                    ],
                    "Value": "{{ModId}}_Giant_Old_Coin {{ModId}}_Old_Coin",
                    "Delimiter": " "
                }
            ]
        },
gray bear
#

Yep! Please don't ping me in replies

hard fern
#

can you add more than one in the Value section... ๐Ÿ’€ have you been able to do that the whole time.. im

gray bear
#

(Is delimiter even required, really?)

winter dust
#

Well it's not something I can keep toggled, but sure I'll keep it in mind.

gray bear
winter dust
uncut viper
#

it just means its gonna put a space between whats already there and what you're adding

#

if the list is normally separated by commas you use a ", " delimiter instead

gray bear
#

is it needed to have more than one value or is there a default one?

#

ah okay i see

uncut viper
#

its not

#

your value is just one string always

gray bear
#

good to know!

uncut viper
#

i believe the default delimiter is "/" so in this case it is necessary

gray bear
#

i mean it might be for universal ones bc this is how they're formatted

uncut viper
#

yeah,l which is why its necessary here

#

bc it means it will split upp those gift tastes up separated by spaces

gray bear
#

oh hey look at that there is a single context tag in there

#

i see. thank you for explaining Button! love

uncut viper
#

important to clarify still though that you dont have to use that delimiter in your value

#

you just most likely want to

#

you can put a delimiter of " " and then in your value write "128_530,333" for all CP cares

gray bear
#

and would that work with gift tastes though?

uncut viper
#

but you probably dont want e.g. "194 216 262 304 815 book_item 128_530,333" in your stuff

#

it wouyldnt no

#

the point is that it is never going to treat what you write in the Value field as multiple values

#

it is a single value that you are adding

#

you just happened to put spaces in it

#

and that happens to lead to it being parsed correctly by the game when it loads gift tastes

gray bear
#

so wait

                    "Operation": "Append",
                    "Target": [
                        "Entries",
                        "Universal_Love"
                    ],
                    "Value": "{{ModId}}_Niji, 128, 530",
                    "Delimiter": " "
                },```
would work?
uncut viper
#

the TextOperation would work

#

it would break when the game tried to read gift tastes

gray bear
#

ah, I see

uncut viper
#

its not getting rid of those commas it is literally copy pasting what you write inside the Value field

#

entirely

dusk mulch
uncut viper
#

and the delimiter is saying "put a space before you paste it in bc thats what everything else is separated by"

gray bear
#

ohhh, I see

#

i thought it did something with value, but it's just, adding a space? funky

uncut viper
#

adding a space and splitting the original list up to things separated by spaces, yeah

#

if gift tastes were instead like "128, 345, 100, book_item" then the delimiter would be ","

#

because theres a space between all the entries

#

and then it would add a comma before it pasted in yours

#

(or if you're prepending it'll do it after)

#

sorry, theres a comma between all the entries*

gray bear
#

i think i understand. (sorry, brain is being slow today ae)

woeful lintel
#

Since it's finally the end of the semester, I just went back and set VSCode up to work on FF, tried to build for the first time in about 2 months, and had a single warning. Obviously it can't tell me how good 3.0 actually works, but it's kinda surprising.

gray bear
#

this is good news! SDVpufferheart

#

you're mastering the craft :3

woeful lintel
#

no that's scary, I haven't touched the code since early December (I think) and did not build since October. Knowing how much stuff I changed, it's very scary

#

anyway, I still have to finish this "migrator" python script before being able to debug that suspicious mess

inner harbor
cosmic thorn
#

lol wait if item with category -8 it can be placeable but i cant break it?

cosmic thorn
atomic current
#

does that mean player would have to talk to them again after giving the item or do they just give it back immediately as soon as you give them the itme?

inner harbor
#

Set a unique gift response so if you give them a red mushroom say, it would look like"no thanks, gross. [420]"

#

So theyd give the response and hand it bsck in the same dialog box.

hard fern
#

SDVpufferlurk wait that sounds cool

atomic current
#

ohhhh i think i get it now
does that work with group items? or only specific items?

inner harbor
#

Only works if the gift response is set to the specific item, yeh otherwise its just like theyre just gifting you something.

#

Reject is better if its a category

atomic current
#

also it doesnt only apply to hated gifts in my case
the npc gives back loved items as well
so how do i customize the given heart points?

inner harbor
#

And you can probably have it remove points using that new featire i havent used

#

What the code i gave qas basically just you gifting them the item and them gifting the same thing back to you so heart points correlate to how much they like or not the gift.

#

Anyhow i really need to sleep. Good luck!

atomic current
cosmic thorn
brave fable
#

are you making actual furniture, or just some placeable item?

woeful lintel
#

do you have anything in the log? it might be that the game simply can't get the bounding box to check if you click on it since the category is sort of invalid

cosmic thorn
#

Nah like nothing there

cosmic thorn
strong ice
#

Hi! I don't know why some mods show up who is their creator in UI infosuite in "added by mod ..." and some others no, do you know what info do you need to include in the mod for showing that?

cosmic thorn
#

Its manifest.json

#

I think you can find it there

#

"Author": "your name",

#

If you're talking about the text in the console

calm nebula
#

Have your uniqueID at the start of your item keys iirc

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.

woeful lintel
#

that'll be a good start

#

but my guess is that setting a normal category could help

vernal crest
#

@ivory plume Hello! Sorry if this is already known but if it isn't I wanted to flag that the wedding event appears to be slightly borked. After saying "Well, let's get right to it!", Lewis is supposed to have another line pronouncing the couple wife and wife etc but instead he just says the player's name (the start of said line) and then jumps straight to the next line ("You may kiss.") instead of saying the spouse name. It's like the %spouse token is killing the line. Avi and I did some code scrutinising and playing around but we weren't able to find out why this is happening, since the spouse token works fine in other events and dialogue.

(This was discovered with a custom NPC but has been tested with vanilla NPCs with an extremely minimal mod setup.)

sterile crescent
#

Sorry to bother but could anyone help me? The 'They Stay With You' mod's English translation's uploader deleted their account and I wanted to post my version of the translation but I don't know how to make it compatible with GMCM ๐Ÿ˜ญ I think they changed the manifest or something

vernal crest
tough crater
#

I thought it was just me

calm nebula
#

Make a new save

vernal crest
sterile crescent
vernal crest
# calm nebula Make a new save

I'm going to hazard a guess there's meant to be a step after this. PC Gamer is telling me to edit my save to allow chat cheats?

calm nebula
#

Yes!!!!

vernal crest
#

TIL, thanks Atra! I will explore

#

Even though playing vanilla is so painful because everything is so slooow

tiny zealot
#

@vernal crest are you actually married to the NPC before running debug wedding?

#

the vanilla wedding script doesn't function correctly if not

vernal crest
hard fern
#

ive encountered the wedding text skipping during regular playthroughs as well

vernal crest
#

And not married beforehand, no

#

Rokugin said they thought the borked wedding was the intended wedding because they've seen it so much

tiny zealot
#

interesting. my wedding copies a great deal of the default one, including the spouse line, and it works correctly SDVpufferthinkblob

hard fern
#

for your minimal mod setup, which ones are you using?

vernal crest
flat sluice
hard fern
#

hm none of those look like it should bork anything

vernal crest
tiny zealot
#

mine is its own entry in Data/Weddings. i just copied most of the script from the default one

#

on reinspection, i edited mine a bit since i know what gender the spouse is ๐Ÿ˜…

vernal crest
#

Well, if Pathos doesn't immediately see the problem with his all-seeing eyes, maybe your working wedding event might be a useful comparator

tiny zealot
#

if it helps, this is the vanilla command:
speak Lewis \"[GenderedText [SpouseGenderedText [EscapedText [LocalizedText Strings\\StringsFromCSFiles:Utility.cs.5371]] [EscapedText [LocalizedText Strings\\StringsFromCSFiles:Utility.cs.5373]]] [SpouseGenderedText [EscapedText [LocalizedText Strings\\StringsFromCSFiles:Utility.cs.5377]] [EscapedText [LocalizedText Strings\\StringsFromCSFiles:Utility.cs.5375]]]]\"
and here's mine (i do not need SpouseGenderedText, hence the edit):
speak Lewis \"[GenderedText [EscapedText [LocalizedText Strings\\StringsFromCSFiles:Utility.cs.5373]] [EscapedText [LocalizedText Strings\\StringsFromCSFiles:Utility.cs.5375]]]\"

#

ok back to trying to figure out why calling Game1.sounds.PlayLocal is freezing my game

#

it happened once before, seemingly without reason, and stopped happening just as mysteriously. now it's back and i'm going crazy

vernal crest
#

Wheee debug commands in chat are great I never should have resisted them

#

But yes, dialogue skipping in vanilla too! There's meant to be a lot more in that box that says "vannila..."

tiny zealot
#

i got repro doing a debug wedding with harvey, too. i had no idea! i haven't played much 1.6 (quelle surprise) and the only NPC i have married is my own, which, as mentioned, works

vernal crest
#

I literally just got married in my play save and did not even notice the wedding was bugged

tiny zealot
#

i too am guilty of not really reading many vanilla events anymore SDVpuffersquee

hard fern
#

i noticed for a while but thought it was a bug in another mod

tiny zealot
#

this is what i get for not having a ton of useful oggs lying around for testing, and simply trying to reuse the ones i had

#

revision: i thought maybe it was determined by differing values of StreamedVorbis but that wasn't it. unsure of exact cause, not fully consistent

#

revision part 2: actually i think there is a minimum length for an audio cue with StreamedVorbis and i suspect that's what it was the whole time

#

i bet my little beep noises are below the minimum buffer size or something and nvorbis isn't handling that, or something along those lines

ivory plume
ivory umbra
#

I'm spawning objects the same way the game does in the coop where they can be picked up and for some reason coffee can never be picked up. i have to hit it with a pickaxe to turn it into debris item to get it. is coffee just special for some reason?

#
                        var coffee = ItemRegistry.Create<StardewObject>(ModEntry.coffeeId);
                        coffee.CanBeSetDown = false;
                        foreach (StardewValley.Object location_object in __instance.objects.Values)
                        {
                            if (location_object.QualifiedItemId == "(BC)165" && location_object.heldObject.Value is Chest chest && chest.addItem(coffee) == null)
                            {
                                location_object.showNextIndex.Value = true;
                                spawn_object = false;
                                break;
                            }
                        }
                        if (spawn_object)
                        {
                            coffee.Stack = 1;
                            Utility.spawnObjectAround(tile, coffee, __instance);
                        }
#

every other item i've tried works fine (bat wings, various fruit, triple shot, truffle, bug meat)

royal stump
#

I'm not sure about edible objects specifically, but some object types aren't compatible with being picked up

#

comparing some of its properties after spawning to the ones that do work might help figure something out, though

brittle pasture
#

Coffee for some reason is type Crafting

ivory umbra
#

the fact that triple shot works but not coffee seemed strange, but if it's crafting that might explain it

brittle pasture
#

TSE is Cooking

tiny zealot
brittle pasture
#

same reaction tbh

tiny zealot
#

god i love stardew

lucid iron
#

Mod that adds coffee crafting recipe for 5 bean

brittle pasture
#

I wonder if anything would happen if you just sneak in a change to make it Basic in your coffee animal mod

ivory umbra
#

yeah i'll try changing the type before spawning it and see what happens

lucid iron
#

Btw why are u doing this in C# rather than normal animal produce?

brittle pasture
#

I was assuming they are trying to make animals that spawn 2 items at the same time

ivory umbra
#

It's a monster hutch

brittle pasture
#

nvm my guess lul

#

cool idea, the slime hutch can use more occupants

lucid iron
#

Coffee slimes DokkanStare

ivory umbra
#

dust sprites dropping coffee

#

or TSE

lucid iron
#

you should framework it

brittle pasture
#

bold

tiny zealot
#

making frameworks is overrated. you have to write documentation!

lucid iron
#

Not my one weakness hokuhands

ivory umbra
#

i wouldn't even know where to begin making a framework

tiny zealot
#

(truthfully, i enjoy documenting. but it is exhausting)

lucid iron
#

Well basically instead of hardcoding all the setup

ivory umbra
#

i guess just copying other frameworks, same way i learn how to mod in c#

lucid iron
#

You read from a custom asset and do the setup using data from there

tiny zealot
#

and i generally have to do it at the end, because implementation details change along the way, so then it becomes a hurdle i have to clear between my working mod and publication

lucid iron
#

Plus some kind of custom field on the building to say "this is a monster hutch"

tiny zealot
#

surely someone will tell me that i should complete the design first, and then implement it. to that i say "peh"

brittle pasture
#

frameworks are fun, not just because someone else might make use of it, but because it's easier to make changes down the line

ivory umbra
#

right now the monster hutch is just a map edit to double the slime hutch interior

brittle pasture
#

like if you want your dust sprites to make spicy eel instead of coffee
but we're admittedly not doing the work here so feel free to do what you feel best

lucid iron
#

Yeah it's ur mod

#

I think it would be cool if i can raise sneks

#

Biuuu

tiny zealot
#

vinilla was working on some kind of reptile building which i believe was to have snakes. not sure if that ever made it to release

lucid iron
#

Oh i mean like

#

Royal serpent enemies

brittle pasture
#

I think chu means the spicy snek-yeah

tiny zealot
#

oh, i see. worm time

brittle pasture
lucid iron
#

Although i made livestock bazaar as a framework i feel like 99% of people use it for the menu lol

#

Certainly spent most of dev time on that part

brittle pasture
tiny zealot
#

confession time i have never encountered a royal serpent in SDV

royal stump
#

I see a lot of them, but never the real way SDVkrobusgiggle

lucid iron
#

I would love a mod that makes the button usable as soon as u unlock the room

#

It's a big pain to have to roll the special order first

brittle pasture
#

meanwhile my galaxy blade runs red with the color of spicy eel snek blood. I have a stack of 40 spicy eels that I neither eat nor sell, only as a grisly reminder to their kind that those who stand against me, rarely stand for long
(that was like 8 months ago before I started modding)

calm nebula
#

(Tbh I see y'all pushing people to framework it. I think usually I would want to do the first concept without frameworking then rip it all out and framework later.)

#

But that is just me

brittle pasture
#

yeah, push out a MVP first, ignore the nerds in here and their scope creeping

#

for now

ivory umbra
#

the coffee issue was one of the last obstacles before I was planning to publish, so i think i'll go ahead with that for now

#

but i like a good challenge so i'll be checking out the links that were shared and start trying to figure out this framework business

tribal ore
#

Is @tiny zealot around? I'm trying to make a custom note with Secret Notes Framework. The note shows up fine, but the %revealtaste doesn't seem to work like it does in the vanilla notes. It just displays the code as text in the note

tiny zealot
#

hi, i'm here!

tribal ore
#

Hi! waves

tiny zealot
#

this should have been fixed in SNF 1.1.1. are you up to date?

tribal ore
#

I downloaded a new copy today, so I think so. Let me double check the manifest

#

Yes, 1.1.1

tiny zealot
#

ok. in that case, can you send me your patches and i'll have a look?
you can upload to https://smapi.io/json, or if you'd rather not share out loud you can DM me

tribal ore
#

Sure, give me a second. I was going to paste it here but smapi is better

#

The one that showed up so far (broken) is SecretNoteShane01

#

None of the others have shown up in game yet, so I can't confirm broken or fixed

toxic hornet
#

are there any mods that increase museum spots and let you add stuff to the museum that normally wouldn't be included? I want to add the extra vanilla fossils from ginger island and some stuff from various mods (like relics from Ridgeside) to the displays. Also the Lewis's underwear

* not sure if this was the right place to ask, please shoo me to the appropriate channel if not

tiny zealot
tribal ore
#

Thank you ๐Ÿ™‚

tribal ore
tiny zealot
#

it sounds like pixie wants to use a framework for their own project, so this is probably the right place

#

i think button and maybe some others have been working on or workshopping a museum framework mod. i don't know much in the way of details

fervent horizon
#

Is it SVE that adds the room to the south of the Museum with like 4 more tables

fervent horizon
#

looking through that would be a good place to start

toxic hornet
toxic hornet
gentle rose
#

Have you decompiled the game code yet?

toxic hornet
#

also not sure if it's even possible to make it so that Vanilla Stuff That Isn't Meant To Go In The Museum can go into the museum

gentle rose
#

.dll isn't a readable file, but it can be decompiled to find the original C# code. For mods, often that's not necessary though, because many of them are open source

toxic hornet
fervent horizon
#

Vapius is not open sourced

#

according to the SMAPI website

toxic hornet
#

i think there's one mod that just adds like two giant tables to the right of the museum

gentle rose
toxic hornet
#

but that leaves the How Do I Add Non-Museum Stuff

fervent horizon
tribal ore
#

Find the "Donate to Museum" routine in the code. There is probably a list of object IDs that you can change

#

I haven't decompiled the source for Stardew, but I'm a programmer in my other life and searching for text like "Donate to Museum" is how I would start xD

tiny zealot
tribal ore
#

Thank you for the framework. I'm excited to use it more as the mod matures

#

It's going to be an optional include, but I think it will add a lot of richness ๐Ÿ™‚

tiny zealot
#

(also, i am hooting at "Sebastian (asshole)" SDVpuffersquee great stuff)

hallow prism
#

i initially wrote french new items

ocean sailBOT
#

Visit Mount Vapius (https://www.nexusmods.com/stardewvalley/mods/9600) is an expansion mod that adds a new region in the mountains. Accessible by train, you'll enter the hamlet of Glimsap, with its tight-knit group of villagers, that holds a market twice a week. You'll get to explore new places, fight monsters, get new crops and forage, trade local coins for exclusive goods, and complete tasks to unlock special items, including machines, buildings, and animals.

hallow prism
#

in addition of being able to donate gems and minerals VMV allows to donate a "forage" item

fervent horizon
#

Wonder what blocks you from donating the bones to gunther, but instead to the island guy

#

since they are atifacts

hallow prism
#

maybe custom C#

toxic hornet
hallow prism
#

(as far as i remember at least)

toxic hornet
#

Like introduce the item anew?

fervent horizon
#

so existing saves would need to gather new items

hallow prism
#

so if someone has an old fossil it may not get the tag, but a new fossil will

#

at least you'll need to check

fervent horizon
#

new saves would work out of the box

hallow prism
#

some stuff IS refreshed and some stuff isn't

toxic hornet
#

oh like versions of the item you get after the code update

hallow prism
#

context tags may, but i remember someone getting difficulty to work with stuff because some data weren't refreshed

fervent horizon
#

yep

toxic hornet
#

gotcha gotcha

hallow prism
#

and i don't remember if tags were one of them

toxic hornet
#

i was thinking you meant coding in the new items

fervent horizon
#

I kno categori don't refresh

hallow prism
#

note that if CA used code to prevent the GI fossil to be donatable, the tag that allow to donate may not be enough for those

#

but for stuff like ridgeside items, the tag should be enough

gentle rose
#

Hi Lumina CB_wave_boy is the source for VMV public?

fervent horizon
#

I think you can force a refresh by stacking old items into new items

toxic hornet
#

Would it be simpler to make a machine that creates a new mostly identical version of the item except it is ?

hallow prism
#

not at the moment but it can be accessed on request and i may consider making it public at some point (i think atra would prefer that)

#

but in this case, VMV museum stuff is pure CP

fervent horizon
#

Am I correct in thinking the donation spots are a tile action

#

in the map

gentle rose
#

I'm glad you're considering making it public! SDVpufferheart I personally prefer to use mods that are open/accessible source too

hallow prism
#
  • what can be donated is managed by category or tag
  • where it can be donated depends of the tile so just patching new tiles is enough
  • rewards are done by the museum reward json
hallow prism
gentle rose
fervent horizon
#

Github can be daunting and helpful all at the same time

tribal ore
#

Does anyone know if there is an adoption framework or something? I don't think I can use CP to create a child

hallow prism
light shore
#

@rigid musk hey its me again.. i remake the interior of the house but now it doesnt load again. i cant use the tilesheets as a png i tried but it doesnt work so i used as tsx. the map opening in tiled but doesnt load in the game. i looked at the codes but theres no climbing https://smapi.io/log/34d8d60d2a64439e94df23b0123d54f6

ocean sailBOT
#

Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home Single Language, with 11 C# mods and 8 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

latent mauve
#

Open your tmx in a text editor and look at your image source path for the furniture png

light shore
#

it doesnt have

scarlet ether
#

Howdy, everyone. o/

latent mauve
toxic hornet
#

@hallow prism Could you explain how recipes for machines work in-game? Is it possible to do something like Amethyst + Ornate Necklace = Ornate Amethyst Necklace and Amethyst + Elvish Jewelry = some other kind of jewelry? or would all amethyst derived products be the same by necessity?

hallow prism
#

it is possible with the mod adding machine options for detailled recipes

#

but i'm not really around to explain right now

scarlet ether
#

A question: is it possible to chain multiple "FromArea" and "ToArea" co-ordinates into a single entry? So, instead of having three separate entries for an overlay I could condense it into one?

toxic hornet
#

I'm assuming it's Extra Machine Configs you mean

hallow prism
#

(i prefer no ping on reply when i'm relatively around)

#

and yes

#

the name escaped me

ivory plume
toxic hornet
#

Apologies, I'll keep that in mind. All the other servers I'm in have a blanket "please ping or ADHD goblins will immediately distract me and I will forget our conversation entirely" policy so it's a bit of a habit but I'll work on it

reef kiln
#

What does this mean? What do I need to fix in my JSON
[Content Patcher] Can't apply data patch "(CP) KMF Pets Cats > Add KMF Pet > entry #6" to Data/Pets: failed converting Array value to the expected type 'StardewValley.GameData.Pets.PetBreed': Cannot deserialize the current JSON array (e.g. [1,2,3]) into type 'StardewValley.GameData.Pets.PetBreed' because the type requires a JSON object (e.g. {"name":"value"}) to deserialize correctly.
To fix this error either change the JSON to a JSON object (e.g. {"name":"value"}) or change the deserialized type to an array or a type that implements a collection interface (e.g. ICollection, IList) like List<T> that can be deserialized from a JSON array. JsonArrayAttribute can also be added to the type to force it to deserialize from a JSON array.
Path ''..

scarlet ether
#

So ```"FromArea": { "X": 128, "Y": 224, "Width": 64, "Height": 32 },
"ToArea": { "X": 128, "Y": 224, "Width": 64, "Height": 32 },

"FromArea": { "X": 176, "Y": 256, "Width": 16, "Height": 32 },
"ToArea": { "X": 176, "Y": 256, "Width": 16, "Height": 32 },

"When": { "Fences": "true" },``` wouldn't work?

ivory plume
ivory plume
gentle rose
ivory plume
hallow prism
#

my issue is that if i see the red bright "look urgent" ping notif i will look, while i would likely have looked just a bit after if i am already active, so it's kinda the other face of the same coin ๐Ÿ˜„

ivory plume
#

(I suggest adding ping preferences to your bio if applicable, since it'd be hard to remember everyone's ping preferences with thousands of people on the server.)

gentle rose
#

personally I go by nicknames usually since most people who don't want to be pinged have it in their name here I think

hallow prism
#

(i may add it if i find a way to summarize it nicely, but in my experience i also don't have to explain that often)

gentle rose
#

wooo more public source mods! aSDVpufferparty

#

(or possibly even open source? hmmmm)

hallow prism
#

remind me in 20 hours to look at the publication of VMV repro uber pls

patent lanceBOT
#

hopefully you don't mind if I end up a few hours off on that one, been a long day and I may doze off. (#6505293) (20h | <t:1738419055>)

hallow prism
#

for pings, names are great for the yes/no, but i must be special and have a complicated system ๐Ÿ˜„

fervent horizon
#

Maybe - @ me if offline

gentle rose
#

is there a simple explainer about what open source and open source licenses are in one of the wikis? SDVpufferthinkblob if not it might be worth writing one (not an explanation of the individual licenses though because I am not a lawyer or expert haha)

hallow prism
#

(i did make an attempt in bio)

fervent horizon
#

I have gotten in the habit of checking bios in this server. There are lots in here compared to other servers I am in that don't want pings

gentle rose
#

perfect, I'm glad it also takes a hard stance on open source being important SDVpufferheart

scarlet ether
#

.>
Sorry, another question. When adding multiple conditions to "When":, how do I make the field be read as an and condition instead of or?
Basically, my understanding is that "When": { "Fences": "true", "FencesOption": "stone" } the comma means that if either condition is fulfilled the action will be performed. Is that right?

hallow prism
#

that is an and

#

to have an or you'll need a query or a dynamic token

ivory plume
gentle rose
#

I might have a look at drafting a very short paragraph about what open source generally means and how it differs from just making the source code public, i.e. that it's free to use, modify and redistribute, since I think the wiki page currently doesn't actually mention that

#

(obviously with a note that licenses differ)

fervent horizon
#

So is GNU better than MIT since it requires all derivitives to be open source?

#

in the stardew modding sense

tribal ore
gentle rose
#

that is a very controversial question haha