#making-mods-general

1 messages Ā· Page 134 of 1

lucid iron
#

Did you i18n?

knotty lark
#

Yap time but I think I'm going to make an all pink animals + product mod, I already did pink chickens but boredom eats at me so might as well do all animals ^^

#

Pink isn't even my fave colour but I doubt anyone would want grey animals šŸ˜‹

lucid iron
#

grey animals are great

knotty lark
#

TRUE

#

I love grey šŸ˜‹

tiny zealot
grave scarab
# lucid iron Did you i18n?

Nah it's a translation for the base game so it would need references to the original string keys to begin with, the translation itself is not meant to be translated further

#

I think the person just added to the files which I already released rather than adding as a patch to mine

ivory plume
#

@chrome mountain @calm nebula Hi! I'm preparing an update for the Stardew Aquarium C# component, and currently the C# component has a mix of code and content. I was wondering what you'd think of merging the CP component, STF component, and the content-in-C# into one Content Patcher pack which you could maintain and release outside the C# component?

calm nebula
#

Hi!

chrome mountain
#

Hi

calm nebula
chrome mountain
#

Yes that would be great!

ivory plume
#

Do you have a Git repo for the content packs, so I can just submit PRs with the changes? (Or I could just send you the modified content pack, but having multiple contributors without a code license is a bit iffy.)

chrome mountain
#

We don't have a repo for it SDVpufferchicksweatsip

ivory plume
#

Alright, I can just download the latest version and send you the changes then. (I'd really recommend making a repo with a code license though; that way you can see what changed, and every contributor doesn't have separate copyright say over their contributions to the content pack.)

whole raptor
wanton pebble
#

alright, I guess I have to check here because debug listtags is showing me something that I may just be too out of mod practice for - is there any way to have a catch-all context tag for cheese?

#

I've been going through my list of mod stuff that's bugfixes/small compat adds and someone wanted compat with "sheep cheese". I was hoping there'd be something like cheese_item like there is for milk (milk_item) but debug listtags is not showing me that's a thing

#

(tertiary question - in the event that's not the case, does a context tag have to exist on at least one item in order to use it in special order context tags? worst case, I'm hoping I can just add a item_sheep_cheese to the end, but not sure if that would break it for everyone)

brittle pasture
#

to every item you can to be considered "cheese"

wanton pebble
#

that would... be so much more work than just putting in /item_sheep_cheese XD

#

I was hoping there was a vanilla way

#

If there's not that's fine!

brittle pasture
#

if you want to do a one-off change and allow an item from a mod to be usable in your special order you can use the autogenerated id_o_itemid tag

wanton pebble
#

and it won't break if I do that for a mod item?

#

i.e. I want the same code to work if someone doesn't have the mod installed or if someone does

drowsy pewter
#

I have been encouraging people to use the cheese_item tag so there is some precedent but yeah theres no official way

#

You can always add code that appends context tags to modded items as well

wanton pebble
#

yeah that's what selph suggested

drowsy pewter
#

I dont know if special orders require one tag specifically or not

#

oh sorry

brittle pasture
wanton pebble
#

But for my own sanity and since this is my bugfix portion I'm trying to simplify code adds and not break it for people

drowsy pewter
#

(IMO the more mods that make use of generic context tags, the more onus there will be for item modders to add them to items)

wanton pebble
#

Yep, already using / so that'll work for me!

#

I'll add the one you suggested selph and I'll also use cheese_item like you suggested 6480 so it's forward-compat

#

(plus in the future I can then go "just have x mod add cheese_item to the context tags" so I can be even lazier XD )

#

(Since if there are MORE cheeses, they should have that tag added anyway)

drowsy pewter
#

I dont really know of many big mods adding cheese except cornucopia and VMV

wanton pebble
#

I mean, works for me, means I'm technically adding even more compat this way with cheese_item

drowsy pewter
#

Btw we have an unofficial list of the generic tags that I try and recommend people use; we can add your mod as one of the mods utilizing the cheese_item tag to show people that it improves compat https://stardewmodding.wiki.gg/wiki/Context_Tags

wanton pebble
#

oh hell yeah I can be even lazier than I was going to. Milkable Sheep (which is apparently the mod name that someone asked compat for) has:

"{{ModID}}_SheepCheese": {
                "Name": "{{ModID}}_SheepCheese",
                "Type": "Basic", 
                "Category": -26, 
                "SpriteIndex": 2,
                "DisplayName": "{{i18n:MS.SheepCheese.N}}", 
                "Description": "{{i18n:MS.SheepCheese.D}}", 
                "Texture": "{{ModID}}/Objects",
                "Price": 500,
                "Edibility": 50,
                "ContextTags": [
                    "cheese_item",
                    "color_yellow"
                ]
            }
#

rolls to literally add a real short addendum code wise

brittle pasture
#

yay

wanton pebble
#

Now for the annoying compat thing - someone wanted Gus marriage schedules for LFL compat. I probably don't have to test TOO hard, but I might want to add in schedule dialogue or something depending on LFL's usage of it. yaaaay.

hard fern
#

For some reason i managed to forget goat milk/cheesse was in the game

#

And was about to ask if anyone's made a mod for goat cheese

#

XD

drowsy pewter
#

I have asked Mizu before why we didnt add daffodils to cornucopia

hoary rock
#

Goat cheese isn’t used for anything but selling and gifting Leah and Robin, which is a bummer. (unless you have modded recipes)

drowsy pewter
#

agreed, and cow cheese is used in like 500 recipes

hoary rock
#

That’s why I’m here! (I haven’t coded in years before but this old idea was bugging me, so here I am.)

hard fern
#

SDVpufferflat i can't even call this scope creep i just mod creeped myself

hoary rock
#

Oh?

brittle pasture
#

(unrelated, but pls... 1.7 crafting overhaul... any cheese in recipes...)

hoary rock
#

(Please)

hard fern
#

This is like the 3rd recipe mod ive thought of

#

While i haven't even managed to do sprites for the first, because i am bad at spritework

#

😭

drowsy pewter
#

Draw stick figures and have people use their imagination

hard fern
#

Good ol "no, you do it" approach XD

#

Hm. Im suddenly thinking about my "dye" issue in quotations

hoary rock
#

You’re so valid, I don’t know how to do sprite work either… going to have to learn. SDVpuffersweats

hard fern
#

I want to make different items dyeable, but i don't know if that would be via a custom crafting menu, or a machine...

#

(as in, which option do i want)

brittle pasture
#

machine is probably more immersive(tm)

drowsy pewter
#

machines guy recommends using machines, more news at 10

hard fern
#

Lol

drowsy pewter
#

I had an idea for making dyeable cloth using vanilla items as ingredients to make certain patterns (like shirts), but that required spritepatcher

humble timber
#

HIIII im here FROM MY PC !!!!!

frigid hollow
#

YAAAYYY!!

humble timber
#

i. did a silly oopsies and tried to open stardrop before redling steam/sdv itself,

#

guess my steam itself was on the other drive whoops

patent lanceBOT
#

@gaunt orbit: do npc paintings compat for home designer (12h ago)

hard fern
#

SDVpufferflat yarn ball complete..

chrome mountain
ivory plume
#

That looks fine! I'll submit a series of PRs soon, so we can review and discuss each step if needed.

wanton pebble
#

are shops updated on day start or can I manually refresh it by, say, activating a trigger action via dialogue?

zenith steppe
#

Oh my god it's Pathos.

#

Nothing to ask, just fangirling!

tiny zealot
latent mauve
wanton pebble
#

the items within them, firered

tiny zealot
#

if you have stuff controlled by CP conditions you're at the mercy of Update, of course

wanton pebble
#

I'm writing Gus schedule dialogue because fml he has it for LFL so I want to give comparable quality, and I'm dealing with the Harvey Effect (TM) so I'm wondering if I can make schedule dialogue fire an extra bit of free food from him

zenith steppe
#

Does Item Extensions handle adding items as well as nodes? Or do I have to input a separate CP pack in order to get the items into the game then attach them to nodes?

wanton pebble
#

(Path would be "talk to him --> he says a dialogue line ---> free food item added to shop by way of a flag/condition/etc. that I add to shop")

tiny zealot
#

you can limit stock, too, so if you only want it to be free once or something you can set that up

#

and if you only want it to be temporary (say, for that day, instead of permanent), then you can clear the flag with a trigger on day end

wanton pebble
#

Excellent. I can cannibalize some Darkroom Portrait Shop code for the dialogue triggers and - yeah, the trigger on day end is gonna happen

#

Gotta keep things somewhat balanced XD

tiny zealot
#

what is the Harvey Effectā„¢ļø?

wanton pebble
#

sigh you know how everyone complains about Harvey charging you when you get knocked out?

#

or at least it's a big thing on stuff like reddit and I think in seasoned/new?

#

Essentially, I don't want to make the shop free if Gus is married to the player. So Gus would be charging the player for food. So Gus would get the same sort of blowback because he's charging the player

tiny zealot
#

ah, yes

wanton pebble
#

My solve is to at least mention why in the dialogue as long as it's not hamfisted, then also use the dialogue to unlock a secret free meal if you are married to him, but not infinite free meals.

latent mauve
#

I have half considered making a mod that changes all the knocked out mail from Harvey to be from someone else if married to Harvey for that but it's probably already been done somewhere

tiny zealot
#

i had a similar thing about making the hat shop available in lacey's spouse room. it's more convenient, but you still have to pay full price. she lampshades it in a couple spots

latent mauve
#

On the other hand, Harvey makes the most sense to find you passed out on the farm if he's married, because at least it's not a stranger crossing your property at night

tiny zealot
#

(actually maybe only one. the other is about having to pay full price at the stardew valley fair)

zenith steppe
#

Okay cool, I can add objects and nodes in the same pack. Okay, do I HAVE to add the object and node in the same json? Or can I have an objects.json, then a node.json? And they'll work together?

desert pagoda
#

Me trying to dissect weapon mods to see how they use content patcher

#

Almost every new weapon mod uses json assets SDVpuffercry

zenith steppe
#

I'm trying to follow Lumi's mods as a reference.

wanton pebble
#

Ack. Problem

#

Ichor, I just realized it's schedule dialogue

#

since it's not regular dialogue, is there actually a way to add in the trigger action in that?

#

I was putting it in i18n, realized that isn't the code area, and then realized "wait, crap, the schedule code is 630 Saloon 17 18 2 \"Strings\\schedules\\Gus:MarriageBreakfast\"/ "so I don't know if I can put the trigger action there

tiny zealot
#

as long as it ends up in a Dialogue, it should be fine (running the actions is part of parsing the string for display in the text box)

#

so: yes, it will work

wanton pebble
#

okay, so I can put it in i18n and it'll still go through?

#

....that would have saved me time coding mods prior but I'll take it

tiny zealot
#

yeah, i18n is fine. just remember to pass in whatever tokens you need (e.g. {{ModId}} for the mail id)

#

or you could always put the code stuff in the string and only farm out the dialogue itself to i18n

wanton pebble
#

.......

#

Oh my god I'm an idiot

calm nebula
#

No you're not an idiot

wanton pebble
#

I forgot the intermediate step wadeFacepalm

#

I mean

#
{
            "LogName": "Gus Schedule Strings - Breakfast Time (Marriage)",
            "Action": "EditData",
            "Target": "Strings/schedules/Gus",
            "Entries":{
                "MarriageBreakfast": "{{i18n:SB.Gus.Breakfast.Marriage}}",
                "BreakfastDay": "{{i18n:SB.Gus.Breakfast.Marriage.Thursday}}",
                "SundayBreakfast": "{{i18n:SB.Gus.Breakfast.Marriage.Sunday}}",
                "SundaySportsBreakfast": "{{i18n:SB.Gus.Breakfast.Marriage.SportsRoom}}",
            },
            "When": {
                "relationship:Gus": "married",
            },
        },
#

the intermediate step there makes me instantly able to put the code there

tiny zealot
#

something like "MarriageBreakfast": "{{i18n:mb_part_1}}#$b#$action mail whatever#$b#{{i18n:mb_part_2}}",
i fired this from the hip so edit until works

wanton pebble
#

so I somehow spaced the intermediate step

tiny zealot
#

generally i like to keep stuff like actions out of i18n, since there's risk of damaging edits. but i'm sure i'm not perfect about it

#

(i do leave emote choices and breaks/separators in there)

wanton pebble
#

Either way, thank you to the both of you. Just a couple more dialogues and then it's either the Scarlett updates for the SVE mods of mine, the DNR Island Date and small extra date thing I had an idea for, or the UWS-RSV writing

tiny zealot
#

there's no best or even standard way to do it. you get to decide how to do it so it's easiest/makes the most sense for you

zenith steppe
#

And the nodes will use the objects, no problem?

tiny zealot
#

yeah. there's no worry about loading stuff in the wrong order or having broken references (unless you forget to put something in entirely!)

zenith steppe
#

That makes perfect sense! Thank you so much!!!

#

Squee! This is gonna happen!!!

tiny zealot
#

(you do have to be careful sometimes about the order of your edits, but that's a different problem)

faint ingot
#

I wanted to try and help this town and somehow I've made it worse

wanton pebble
#

You fool! You captured his stunt doubles! SDVpuffersquee

light bramble
#

oh god...is...is that Peierr?

#

Did I spell his name wrong? Yes...Do I care? Not really XD

#

Pierre and Clint kinda share the hatred of the community...But like...I don't really hate Clint like I hate Pierre...After all...he DOES hide something from his wife...

carmine sphinx
light bramble
#

Why do people hate on Clint 😭

carmine sphinx
#

hes an incel

#

but morris and lewis are worse

light bramble
#

I mean Clint is misunderstood imo...

#

But enought chat about characters. I has a question. is there a bonafide list of needed tokens for i18n or is it just what's on the wiki?

brittle ledge
light bramble
tender bloom
#

Any token you want included in i18n dialogue has to be handled special (but it’s all the same special)

brittle ledge
#

You need an i18n key for every bit of text you're replacing. Which should be configs, all dialogue in daily/festival/schedule/events, display names, gift taste reactions, movie reaction text....

#

Any schedule strings or map strings.

light bramble
#

Ok. Methinks me was thinking about something else XD But while I wait for dialogue options from the person I am making the NPC for I will be i18nifiying my mods

ivory plume
#

@chrome mountain Do you have a preferred indent size in JSON (e.g. 2, 3, or 4 spaces)? My first PR will make the indentation consistent if that sounds fine to you.

uncut viper
#

what wiki page were you looking at?

swift wraith
#

self learner here. Can someone walk me through what I am doing wrong. Gladly will take any advice. " code " Game1.weatherIcon = Game1.weather_rain; Error receiving Cannot convert string to int

light bramble
#

ALL HAIL PATHOS
^This is a joke...But do respect the heck out of him

light bramble
#

I'm mush today

#

My brain is shot from like 5 days in a row working at my retail job

tender bloom
rare orbit
#

So? for making a portrait and sprite replacer.... is that possible for content patcher? should i use another mod as a framework if i make seasonal outfits?

tender bloom
#

The error is pretty straightforward

tiny zealot
tender bloom
#

You can’t assign something to be a string if it’s an int and vice versa

chrome mountain
uncut viper
light bramble
tender bloom
#

If that is confusing, looking up some basic info about types in programming is probably a good idea

uncut viper
#

(the Appearances system is for seasonal outfits but if you wanna replace the default portraits/sprites you can also just do that with CP, just change their Characters/ and Portraits/ assets)

rare orbit
light bramble
#

Ok well back to i18nifying my mods

rare orbit
#

is it ok to use the seasonal outfits' content json as a reference??

tender bloom
uncut viper
#

i dont know if that mod is updated to use the new 1.6 system or not

#

so i dont know

rare orbit
uncut viper
#

im not saying its not updated, im saying io dont know if it uses the new system added in 1.6

tender bloom
#

SCA should be using appearances last I heard

rare orbit
#

ohhhh

tender bloom
#

I haven’t checked

uncut viper
#

there was an old way to do it before 1.6 and a new way in 1.6

#

if its using the Appearances system (aka you open it and see changes to an Appearances list using TargetFields) then its fine

wanton pebble
#

it is

#

Source: I coded the update of it that Poltergeister released prior to them moving on entirely

rare orbit
#

yeah oh boy this'll be hard

uncut viper
#

there ya go then

wanton pebble
#

I mean

#

it shouldn't be too hard!

#

and if you need tips, feel free to give me a shout. I've coded... many an appearance mod at this point

#

I may be a bit rusty, but not too rusty XD

rare orbit
#

thank you!!!

#

i definitely will need all the help i can get ;w;

#

you know how to use content patcher right??

wanton pebble
#

Yep!

rare orbit
#

ok!!

#

want me to add ya as a friend on discord??

#

just so i can dm my progress and such?

wanton pebble
#

It'd probably be better for you to put any questions you have on it in here, just in case I'm not around or if I'm stumped on something, someone else can chime in too

rare orbit
#

cool cool!

#

i'll still add ya if that's cool!

whole raptor
ornate drift
#

hello i need help with creating a json as a test for my mod

#

i got this error for some reason

wanton pebble
#

that's almost always the comma chameleon

#

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

wanton pebble
#

toss your json file in the validator

#

share the link here and we'll tell you what's missing.

ornate drift
#

you mean the file or

wanton pebble
#

yeah

#

put the content.json in the json validator

#

then share the link the validator gives you here

rose shuttle
#

Hi, it's me again, I have a silly question. I'm working to consolidate my collection of furniture tilesheets into an AT mod for my own use, as I will be constantly (well, maybe not that often) updating it, and my question is this. Does AT need the folders set up like they are in the game folder (Furniture, Furniture 2, etc) or can I just drop them all into a folder called Textures?

#

ofc, then have them in individual folders for each item

rose shuttle
#

I guess I'm asking can I mix items from Furniture and Furniture 2 tilesheets into one main folder?

wanton pebble
#

.... ah. You have no changes in that file, speedy

#

get rid of the ] on line 4

#

Actually, wait, even the patch there is off

calm nebula
#

Missing comma line 4

wanton pebble
#

gimme a sec, I'll just rewrite it quick

ornate drift
#

my brain is stupid when it comes to coding

wanton pebble
#

there you go, and thanks for letting me know about the 2.4.0 stuff

#

I should probably recorrect the uploads I just did for Tool Seller and Part of a Saloon...

ornate drift
#

er no problem, thanks for you

#

is the content fine?

gray linden
#

is it not possible to check if a player is in a custom map with c# by using if (e.NewLocation.Name == "Map") where map is the name of the map. im currently warping there using console commands, is there any difference when warping with tiles and terminal?

compact thicket
#

What is this?

wanton pebble
#

that looks fine for the manifest on first glance

ornate drift
#

awesome

lucid iron
#

But the answer depends on whether it's an instanced map like say building interior

gray linden
#

what if i want to do it in c# though? 😭 or is it a lost cause to do it with c#

lucid iron
#

In C# you can just check GameStateQueries

#

Look for LOCATION_NAME

calm nebula
#

Hell

#

That should work tbh

#

Would need to see code in more content

#

Context

lucid iron
#

You can also tag all ur custom locations with a custom field and check that

#

See LOCATION_HAS_CUSTOM_FIELD

gray linden
#

just straight up checking if the player is there and showing a global msg if true

#

simple stuff

ornate drift
#

YESSSSS

#

his portrait sprites are done i just need to set them up

lucid iron
#

Just remember that things C# can do is a superset of things framework can do Dokkan

#

Since frameworks r implemented in C# after all

uncut viper
#

like atra says though what you had up there with NewLocation in the SMAPI event should work so we'd need to see the context

ornate drift
#

townsfolk are gonna be confused af seeing a blue small hedgehog walking around their town

#

how can i make it so the game changes every instance of Sams name to Sonic?

brittle pasture
#

edit his display name and every instance of his name in dialogue

ornate drift
#

arent there hundreds of them or something

uncut viper
#

theres no other way to do it besides manually in CP

ornate drift
#

yikes

brittle ledge
#

Keep in mind that's just the vanilla dialogue, too. It won't change any modded dialogue unless you add compat for it.

#

(If you would like to make him a separate NPC, though, you won't have to worry about it....)

ornate drift
#

wait, you can make custom NPCs????

#

WHAT

uncut viper
#

custom NPCs are one of the most popular mod ideas

ornate drift
#

are they hard to make

uncut viper
#

technically? no

#

motivationally? yes

#

each individual step in making an NPC is not difficult

#

putting them all together takes work

ornate drift
#

what about the sprite placements, dialogue, interactions, etc

wanton pebble
#

Yeah most everyone can make a custom NPC, but not everyone can make a custom NPC well

uncut viper
#

NPCs just have a lot of moving parts that need to function properly in order for an NPC to work

wanton pebble
#

Speedy, I mean this as an actual question, not anything insulting, since I know how it might sound

#

How new are you to modding?

uncut viper
#

it can be a lot and despite being popular is not recommended as someones first mod for this reason, but theres no reason you cant if you put your mind to it

wanton pebble
#

like not just making mods, but playing them

ornate drift
#

...like, VERY new

#

i just learned how to replace a characters sprites

wanton pebble
#

Okay, so custom NPCs are extremely popular

#

We've got whole expansion mods which add dozens of new NPCs

#

For example

#

!sve

ocean sailBOT
wanton pebble
#

!rsv

ocean sailBOT
wanton pebble
#

!es

ocean sailBOT
#

East Scarp (https://www.nexusmods.com/stardewvalley/mods/5787) is a mod that adds a new location to the east side of Pelican Town, along with a few new NPCs, new shops, fish, and special orders. There are also a variety of additional NPCs that live in East Scarp that can be installed through optional add-on mods—see the mod page for details.

wanton pebble
#

!vmv

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.

ornate drift
#

impressive

wanton pebble
#

And many more!

ornate drift
#

damn

wanton pebble
#

There are also solo NPCs, like Juna, Jade, Alecto, Jorts and Jean, Isla, I could go on

#

if you want to take a look at all their code, you can probably get an idea of what goes into making a custom NPC

ornate drift
#

where would the npc live...?

wanton pebble
#

that's one of the things people determine upfront

#

Cecilia, when she was around, created a whole house in Cindersap

uncut viper
#

as the mod maker thats your job to figure out

wanton pebble
#

Isla has her own Island area

#

and of course, the expansion mods have their own areas, so they give their own houses there

ornate drift
#

jeez

#

id rather copy an existing house and just make sonic live there

#

i aint good at building sprites, mostly just characters

wanton pebble
#

A custom NPC is a lot of moving parts and is quite the journey. You really would want to define what you want to do first, then tackle each portion in order

ornate drift
#

i can tell

brittle ledge
#

!NPC But we have a lot of resources on making them šŸ‘€

ocean sailBOT
#
Creating a Custom NPC

Keep in mind that making NPCs is a complex process that requires learning many different aspects of Stardew modding.
Here are a few links that can help get you started on all that you need to know:

round dock
#

Pelican Real Estate SBVLmaoDog

wanton pebble
#

oh, yeah, if you have an NPC with NPCDispositions, it's using old code, don't follow its instructions

#

Tia's resources is great

uncut viper
#

not to scare you off either, but the living situation is also just one non-majority part of it

#

most people i see trying to make an NPC mod for the first time take like, a month or two minimum

inner harbor
brittle ledge
#

(I hate mapmaking so I included a few tips on how to not have to do that SBVLmaoDog )

uncut viper
#

i didnt say no one makes it as their first mod, plenty of people do, just that people dont recommend it

ornate drift
#

all i know is to replace existing sprites and thats kinda it

inner harbor
#

My main advice really is don't rush it.

uncut viper
#

rushing it is the number one way to run into that motivation problem and burn yourself out completely, for sure

inner harbor
#

learn how to operate every moving part, and don't release before you've got a character that's fairly solid.

drowsy pewter
#

I think you'll learn a lot just by playing with mods

latent mauve
#

Also, it is perfectly acceptable to not plan a custom home for your NPC, there are many that just have them "commute" by spawning in at the BusStop, or start out in places like the Adventurer's Guild and don't have a room until later, if they are romanceable.

ornate drift
#

im guessing it requires a lot of code too

latent mauve
#

It depends on if you are making a social or non-social NPC, as far as how many moving parts you need

wanton pebble
#

A fair bit, yes, but you end up learning a lot about how the game works in the process

drowsy pewter
#

Basically expect to spend a month AT LEAST on learning everything

latent mauve
#

For a first-time NPC, nonsocial is way less intense.

drowsy pewter
#

You're not finishing this tomorrow

uncut viper
#

if you mean C# code though, it can take none, you can do it all in Content Patcher with json

wanton pebble
#

I have so far managed to do all my modding without a single bit of C#

ornate drift
#

would it be fine if i could like
get a coder to do the work while i do the sprites

latent mauve
#

My NPC builder handles a lot of the base Data/Characters code for you, but some base knowledge of Content Patcher/Content Pack JSON is helpful.

#

Yeah, lots of people do collabs!

wanton pebble
#

.... that's changing probably next year if I can find the time to learn it using the resources I now have at my disposal

uncut viper
#

i mean you can definitely collab with someone

wanton pebble
#

But that requires time

#

Anyway, yes, you can get someone to code it while you do the art

uncut viper
#

but you'd be asking them to do a lot of the work

drowsy pewter
uncut viper
#

you can commission someone, if thats an option for you

ornate drift
#

thats the thing i know zero knowledge about coding lol

ornate drift
latent mauve
#

In a lot of cases, you'd either be commissioning someone, or doing an exchange where they did the code, you did art for one of their projects, etc. But that'd be a discussion between you and whoever possibly took on the project

drowsy pewter
#

You can learn from scratch perfectly fine. But like I said, it's not fast

uncut viper
#

you did make a sprite/portrait replacement already though! its the same kind of coding as what you just did

ornate drift
#

hm

uncut viper
#

just a lot more of it

latent mauve
#

^ Yep, it's not that big of a leap once you know all the components, it's just multiple things you have to add now.

brittle ledge
#

And the resources in the !NPC command can walk you through it!

#

Not knowing code is not a big deal, no one's born knowing CP.

drowsy pewter
#

You can check out that tutorial and get a feel for what it involves

brittle ledge
#

!anyonecancook

ocean sailBOT
#
ornate drift
#

thanks guys

wanton pebble
#

No probs

rose shuttle
#

Ok so I've done a bit of reading, but my question isn't exactly answered. I guess I just want some confirmation. AT works by texture type. I'm left assuming that means it doesn't matter what tilesheet it's refrencing? I have some end tables with lamps, and now that that's a functioning light, I would like to use them as such. So I just need to make a folder "Oak Lamp End Table", drop in the required files, and it can live in the main Textures Folder, right?

#

I'm sorry if I'm not making any sense. I'm trying to learn as I go.

#

Hmm, well, not using the old end table with lamps to replace the new items added, the images aren't the right size, so I guess I don't need to worry about that right now. And I think, for my own sanity's sake, I'm going to keep the sheets and their items seperated. Furniture, Furniture2, etc...

ornate trellis
#

i am suffering from the bracket curse again evaporated i cant effin find my mistake

#

i mean, the validator tells me the line but I am jsut sitting here like...but where did i miss what...

latent mauve
#

Start doing what I do and comment on your ending brackets as you make them. xD

#

(Post the link from the validator and I'll help you find it)

ornate trellis
uncut viper
#

there needs to be another } before that highlighted line because its still part of your "Entries" from the first block

ornate trellis
#

goddamnit

latent mauve
#

right before NPC Gift Tastes, yep

ornate trellis
#

thanks, button

#

theres always the point of messing up brackets the more i add evaporated

brittle ledge
#

Yeah, when it gives an unexpected character error, try checking the line just before.

latent mauve
#

VSC has a cool feature to help with that by collapsing blocks too

ornate trellis
#

notepad++ got that too but collapsing things tend to confuse me even more lol

#

tho i was considering switching to VSC for the sole reason it has dark mode...

uncut viper
#

you can change the theme in N++

ornate trellis
#

win11 newest updates dont allow custom themes so i suffer the curse of eyesearing lightmode for notepad++ as their themes only change the inside for some reason

#

idk it just really bothers me

brave fable
#

is your system theme set to dark mode?

ornate trellis
#

i looked at vsc before but all its windows kept confusing me ngl

ornate trellis
knotty lark
#

I might have to teach myself how to make mods that aren't recolours/sprite replacers hrmmm

gaunt orbit
lucid iron
#

well if you used CP for that u r half way there

rose shuttle
#

Yeah I have my np++ set to dark mode as well. Light blinds my old eyes.

ornate trellis
#

huh

#

i feel stupid now

rose shuttle
#

you're not stupid

lucid iron
#

u can make ur n++ urple if u want

#

its got a themes system

uncut viper
#

tbf i didnt know that existed either bc my N++ version was 4 years old so it didnt exist

#

and now i updated and it removed my custom theme so thats rip

gaunt orbit
#

yeah it's good to stay up to date

ornate trellis
#

unless its win11 because 24H2 killed custom themes

#

but yay my notepad++ is dark now

#

.....i also set brackets and stuff to auto close

teal bridge
#

Huh, I just realized that when you do a custom language in N++, it defaults all the styles to having an explicitly white background, making them look atrocious with any theme but the default.

drowsy pewter
#

I hate autoclose its like Ill put the bracket in when Im damn ready for it

ornate trellis
#

i am in a constant state of confusion i need my crutches

teal bridge
#

What really throws me is the "auto-open" where it automatically adds the opening brace after pressing enter. So I always end up with two braces and later have to hunt down why the code doesn't compile and the indentation is all screwed up.

brittle ledge
latent mauve
uncut viper
#

arent they talking about N++ though

teal bridge
#

I'm OK with auto-close. The auto-open-bracing was one of Rider's idiosyncracies. Though there's probably a way to turn that off too, if I'd looked.

uncut viper
#

imo every IDE/text editor/etc should automatically detect the settings i personally prefer for everything when i install it

latent mauve
#

I wasn't sure if the auto-close was a N++ thing too

teal bridge
#

With machine learning as prominent as it is, I believe that somewhat unironically - that at some point they should realize you're fighting their code completion and selectively disable the features you hate.

#

Maybe not literally on install. But after a few hours of development.

uncut viper
#

i hope not, i think thatd just make me more confused why something that was happening earlier was no longer happening despite me doing nothing

teal bridge
#

Not silently of course, I mean with the unobtrusive notification saying something like "hey, you delete the closing brace 9.6 out of 10 times we insert it, do you want us to just stop doing that?"

uncut viper
#

oh, thatd be perfectly fine then

lucid iron
#

i need the butler who hands me my closing braces

uncut viper
#

on a colour-scheme-respecting platter

brittle ledge
#

"Your punctuation, ser, and your champagne"

calm nebula
#

Hi matt!

tawny ore
#

@brittle pasture Hi Heads up, I'm preparing an update to Custom Bush that breaks your patch, but in this update your patch is no longer needed because Custom Bush checks the Indoor Pot for its qualified item id before it plants a bush.

orchid pelican
#

How do I go about adding new music (not replacing) to locations? The "back to the valley music addon" mod only adds seasonal songs, but I want to add new location-based tracks.
For instance, how do I add this track to play when the player is in the secret woods?
"Format": "2.4.0",
"Changes": [
{
"Action": "EditData",
"Target": "Data/AudioChanges",
"Entries": {
// Woods 1
"woodsMd1": {
"ID": "woodsMd1",
"Category": "Music",
"FilePaths": [ "{{AbsoluteFilePath: assets/woodsMd1.wav}}" ],
"StreamedVorbis": true
},

latent mauve
#

Now that you've loaded the Audio track, you should be able to just edit the Locations data for the Woods to change the Music property there

brittle pasture
tawny ore
#

@brittle pasture Would you mind if I DM you a separate/related submit?

brittle pasture
#

nope, go ahead

orchid pelican
latent mauve
#

You don't change it in the Location Contexts for this, but in Data/Locations instead

lucid iron
#

Do you want your music to be added to an existing location context think

orchid pelican
#

I'm terrible at reading technical documentation

lucid iron
#

Context would be for several locations

latent mauve
lucid iron
#

But you can just add to single location too

latent mauve
#

That's what you'd need to change for the Woods, since it's specifically defined in Data/Locations instead of falling back to the Location Context/MusicContext data.

orchid pelican
#

K changed from data/LocationContext to /Location since it's a single, specific location. Testing now for the nth time

lucid iron
#

You should use targetfields

uncut viper
#

it wont work just by changing the target

#

the format of the asset is different

latent mauve
#

You would need to change your TargetFields as well

orchid pelican
latent mauve
#

If you followed the link where it says "see target field below" it's explained more directly

hoary rock
#

To anyone who’s made recipe mods before: what’s a good way to judge what edibility value and buffs to give a dish?
I don’t want to make anything too overpowered by mistake.

brittle pasture
#

my approach is picking the closest vanilla dish and compare against it

hoary rock
#

Oh, that’s an excellent idea, thank you.

tawny ore
#

@latent storm Hi not sure if you're aware, but if you add DisplayName and Description to your CustomBush data model, it'll be used by Lookup Anything and UI Info Suite. Otherwise, it'll just display a default value.

nimble marlin
#

Hi guys!
I was wondering if anyone here has the treecrack and treethud audio files, but if not, how can I get them?

nimble marlin
uncut viper
#

you should probably add your own audio rather than edit other ones

#

unless you just meant you want them for non modding purposes ig

lucid iron
#

maybe if u want to take and adjust the cues a bit

#

tho theres the pitch stuff u can suffer make use of

old edge
#

are buffs in vanilla turned off by default in vanilla? I can't seem to get the buffs to stay active after new day/saving. Is it even possible?

#

I added a logging in my code to tell me if it's being applied it says it does but still not working.

uncut viper
#

as said earlier buffs do not persist across days, you need to reapply them

lucid iron
#

theres a mod called persistent buff for that

#

nexus down tho

uncut viper
#

nexus is functional for me, so probably dependss on your location

rancid temple
#

Not sure how you would use Persistent Buffs to keep equipment buffs active though, wouldn't want it to keep giving the buff when you don't have the equipment on

#

Plus they're already working in C#, just need to reapply the buff on day started when the ring is equipped, like Selph said before

old edge
brittle pasture
#

if (contextTags.Contains("item_ring,color_blue,armor_ring"))
contextTags is a set of already separated context tags, so this is never true (unless your item somehow has a context tag that's those 3 strings joined together as 1)

#

split that string and use Contains on each tag individually (or IsSupersetOf on the list?), or ContextTagManager.DoesTagQueryMatch .

old edge
#

I see

#

What u mean

golden basin
#

Do y'all think there would be a way to create a vending machine type of thing using content patcher only?

#

I have a concept, of a animatronic that tells stories in exchange for money

#

So you'd input money, machine animated and tells a story and then afterward he turns off and stops moving?

#

I have the machine asset already

lucid iron
#

Maybe if u buy coins

#

And they r items that go in

#

The thing I'm unsure about is triggering the dialog boxes and timing the thing think

gaunt orbit
atomic vale
#

Maybe make it a shop?

#

I think there is a way using cp to tell if something is bought

gaunt orbit
#

Could maybe do it with that one map framework from erinthe but idk if that's been ported to 1.6

lucid iron
#

Hm

atomic vale
#

Or you could make it a shop

lucid iron
#

Can you start an event with trigger actions?

atomic vale
#

With a giftable npc

uncut viper
lucid iron
#

The payment/shop is not the hard part

tiny zealot
#

button: "let me tell you about some crimes i'm going to let you commit"

lucid iron
#

The little guy has to do a song and dance

uncut viper
#

no, i actually have nothing for this one unfortunately, i did try

lucid iron
#

Idk I support whatever it is

#

Darn ok

uncut viper
#

as far as i can tell it requires some custo mC# functionality from somewhere

lucid iron
#

I was thinking if u could use trigger actions here

#

Then u can code a event where he do the thing

uncut viper
#

spacecore can play an event with trigger actions iirc

lucid iron
#

And start event on purchase

uncut viper
#

BETAS can make a message box appear but the timing wouldnt be doable afaik

gaunt orbit
#

I could do the c# part

lucid iron
#

Shops do have action on buy

gaunt orbit
#

As long as I don't have to do anything else

lucid iron
#

So this route doesn't need additional C#, besides the spacecore

#

And ig if it is a shop he can have several jigs

atomic vale
#

Make a shop with one item, have a giftable npc(if you can hid it in the npc menu too) with its only loved gift being that item and every other item being hated make, remove the cap on npc gifting per week for this npc, make the loved gift received diolog for this npc be the machine and the hated gift received be the denied diolog.
This should be doable but C# would probably help

lucid iron
#

You don't need an npc to make a shop

uncut viper
#

thats not doable without C#

gaunt orbit
#

I was thinking instead of shop + event I could do a custom tile action

atomic vale
uncut viper
#

it also wouldnt let the animation play first

#

you cannot selectively disable gift giving limits

atomic vale
lucid iron
#

Shops accept trade items if u want that think

uncut viper
#

i didnt think you could bypass the limit for them either, but regardless, you dont want to make the machine your spouse

lucid iron
#

Or whatever that one framework the hogwarts person wants is called

gaunt orbit
#

Nooooo

#

That framework is cool but also very complicated

atomic vale
gaunt orbit
#

Seems like maintenence hell

uncut viper
#

that doesnt seem like a viable way at all compared to just a little bit of custom C#

gaunt orbit
#

I would totally do a one-off thing for clown's robot though

lucid iron
#

I originally suggested with "machine" in mind but honestly I think event makes the most sense

#

Caveat u gotta make event ofc

uncut viper
#

also spouses dont have higher gift limits either anyway never mind i misread the wiki, friendship is just halved but you can

atomic vale
gaunt orbit
#

I think you can avoid events with c#

uncut viper
#

if theyre going to use another dependency it would be easier to use spacecore anyway

gaunt orbit
#

Just do some TAS shenanigans

lucid iron
#

Hm

atomic vale
lucid iron
#

* takes notes for one of those 2025 things I have *

gaunt orbit
lucid iron
#

Spacecore has a lot of space in it

atomic vale
#

CP is great in all but it has it’s limits if you don’t want jank

lucid iron
#

Maybe a cat too

gaunt orbit
#

Actual answer is it's essentially the communal c# toy chest

atomic vale
#

Can you buy nothing?

#

If so this can be done jank free as long as there is a event from buying something

calm nebula
#

Actual answer is Casey is awesome

atomic vale
#

How does the goblin in the witches swamp get his mayo in the code?

gaunt orbit
#

Hardcoded I think

atomic vale
#

You could yoink that and have a shop that gives tickets

calm nebula
#

Tbh I would, personally, ask DH

gaunt orbit
#

DH?

lucid iron
#

Hooman

gaunt orbit
#

Oh

calm nebula
#

Fellowclown has a c# component made by DH

uncut viper
#

might be easy to make it a Machine and just detect when it starts processing after money is put in, display a message, then stop its processing after the animation is done

#

you could make its little jig the loadeffects or workingeffects or w/e

rancid temple
#

Only idea I can really think of is having an NPC who just stands in the right place whose only dialogue is to ask if you want to hear a story and selecting yes charges you money and it starts a random event

gaunt orbit
#

Oh yeah the machine thing is an idea

rancid temple
#

Getting the positioning right might be the only annoying part, if you want them to look like they're the animatronic in a box

atomic vale
#

You could make the npc invisible

rancid temple
#

Pretty sure invisible NPC's can't be interacted with

uncut viper
#

you can give them invisible .pngs though

rancid temple
#

You could make the NPC stand direclty in front of the animatronic as some kind of usher or something

atomic vale
rancid temple
#

So you talk to them and they ask if you want to use the machine and that triggers an event of you walking up to it and putting money in

uncut viper
#

this still requires a dependency though anyway

rancid temple
#

Does it?

uncut viper
#

how do you start the event?

rancid temple
#

Oh, I guess I assume dialogues could start events

atomic vale
#

CP?

rancid temple
#

But haven't checked

wanton pebble
#

Content Patcher

uncut viper
#

oh, turns out it can actually, i didnt know that duialogue command existed

atomic vale
#

Interacting with something can trigger it

rancid temple
#

Dialogue and events are not really my thing, so I'm working with half remembered things I've skimmed lmao

uncut viper
#

i still think if you're going the event route anyway that a custom C# component is cleaner though

lucid iron
#

cleaner is subjective Dokkan

rancid temple
#

Sure, just doing it in C# would be my preference too lol

uncut viper
#

is there not just like a map tile action already that just starts an event?

uncut viper
#

and atra says a C# component already exists

rancid temple
#

There is a TouchAction and Action for PlayEvent

#

Though neither would give you the option to decide if you actually want to spend the money

#

That could be baked into the event I guess

brave fable
#

question fork. why not?

lucid iron
#

yea in this case it is moot, only really matters if its like

#

0 C# to 1 C#

rancid temple
#

I would personally lose my mind if I had to sit through 2 fade outs because I was curious but didn't want/have the money

lucid iron
#

rather than 100 C# to 101 C#

gaunt orbit
#

I think tile action is definitely the way to go

atomic vale
#

C# can be called cleaner every time

uncut viper
#

thats not always true

rancid temple
#

It can be, but my 1000 line script would beg to differ

gaunt orbit
#

Could also avoid the fade on events and just directly trigger dialogue and a TAS

rancid temple
#

Temporary Animated Sprite

atomic vale
#

I was thinking Tool Assisted Speedrun

gaunt orbit
#

Yeah, the full name is just a lot to type

rancid temple
#

Speedrun tool might not be much use here

gaunt orbit
#

And they're a pretty important part of the game

atomic vale
#

I mean CP is a lot worse if mis interpreted

lucid iron
#

in these parts we call speedruns weekend mod jams Dokkan

#

though idk if any mod jam was that short

calm nebula
#

I can't imagine making a mod in 2 days

rancid temple
#

I did a game jam that was 24 hours

calm nebula
#

What about the three months you spend ignoring it

gaunt orbit
#

8 hour modjam when /jk

rancid temple
#

Sorry 48 hours

#

It was hell

calm nebula
#

Wow

#

Did you art

rancid temple
#

I missed my meds several times, didn't sleep the entire time

#

No art bones in this body, all code

atomic vale
#

Yea I would 2d every game jam

calm nebula
#

Tbh I also don't see mod jams as fun lol

#

Just stress.

wanton pebble
#

MAKING a mod in 48 hours is for bite sized stuff

#

UPDATING a mod in that timeframe, though

royal stump
#

I'm happy with the results of the one mod jam I did, but I never felt like doing one again SDVkrobusgiggle

wanton pebble
#

easy peasy

atomic vale
#

You don’t have the looming expectation to keep your mod updated and adding new features/compabilty

wanton pebble
atomic vale
wanton pebble
#

blinks

#

moves eyes to Isla mod

rancid temple
#

The real key is to just ignore other peoples demands on your time dogekek

wanton pebble
#

I mean, I have to disagree somewhat

#

I do understand the complexity thing because trying to remember all the ins and outs of Saloon Breakfast after a while away was a challenge

wanton pebble
#

but it's more just trying to figure out what the author originally intended with the code if you're working on someone else's mod

calm nebula
#

Gotta make moneyyyyyy

wanton pebble
#

It's why comments are great, atra! Even if I do remember that Isla was commentless

calm nebula
#

Lol.

wanton pebble
#

treat it like a gigantic research project and hope that eventually you can get your own rosetta stone XD

rancid temple
#

I'm afraid if anyone is interested in my mods and I'm not updating them, they're gonna be better off starting over, I'm never gonna be good at comments

gaunt orbit
#

Im dumb enough that given a few months, going back to my old code is like reading hieroglyphics. I comment not only for future development, but for my future self

atomic vale
#

I always feel bad when I suggest fixes to mods or suggest to add compatibility to mods

calm nebula
wanton pebble
calm nebula
#

Unless you hit me very hard on the head

#

I will remember specifics, months down the line

gaunt orbit
tiny zealot
#

i do jokes on occasion, but mostly i despise useless comments and try only to write ones that explain why code is the way it is, or explain tricky stuff that isn't clear

uncut viper
#

commenting my code is unfortunately the thing im worst at i think and even more unfortunately it hasnt come back to bite me yet over the years so ive not had reason to change my ways

tiny zealot
#

(also don't look at my professional output from a decade ago, when i wrote lots of useless and jokey comments!)

gaunt orbit
rancid temple
#

I don't like useless comments and every time I try to comment something I feel like I'm just stating exactly what I named shit anyways lol

gaunt orbit
#

If you still feel bad, though, you can always try and fix it and do a PR

lucid iron
#

the main kind of comments i write is my ratings on how bad i think the following workaround is

royal stump
#

I think I still have a few comments like "this fixes a bug in 1.4.5 but idk why, look into it later"

rancid temple
#

// TODO: this

gaunt orbit
#

Oh yeah ever since I found out about VS's task list feature I've been using TODO so much

calm nebula
#

It's so good, right?

rancid temple
#

This is news to me

royal stump
#

does it do something with those? I just wrote like that incidentally SDVkrobusgiggle

calm nebula
#

Also #hack

gaunt orbit
#

Incredibly useful tool for me, who is always forgetful. (same reason I write good commit messages)

calm nebula
royal stump
#

neat, I should really poke around the UI some time (//todo)

uncut viper
#

Rider tells me if i have remaining TODOs before i can commit ssomething but then i can (and do) choose to ignore them and commit anyway bc i use TODOs as "this is a pipe dream for later"

gaunt orbit
#

Yeah! It'll fine them all and put them in a nice list for you

tiny zealot
#

i use TODO and FIXME all the time, but my tool for getting a work list out of it is called grep

gaunt orbit
#

Grep is nice

tiny zealot
#

grep my beloved

calm nebula
#

raise NotImplemented my beloved

tiny zealot
uncut viper
#

grep makes me think of like how a cat goes blep but its a frog or possibly a toad instead

lucid iron
#

one of the top 5 linux cli things Dokkan

#

no 1 is top ofc

calm nebula
#

The lack of a git grep for svn makes me so sad

gaunt orbit
#

My favorite Linux thing is pattern-based file manipulation

#

It KILLS me that mass-renaming on windows is so bad

#

You have to do horrible things with loops

calm nebula
#

PowerRename

gaunt orbit
#

I have that but it's still not as convenient as having it baked in

tiny zealot
#

i had to write some ill-advised .bats at my old job and robocopy was involved. i cried

royal stump
#

I dug up a program for that that was okay, used it once, then forgot its name again SDVpuffersquint
would be nice if Windows had anything similar

calm nebula
#

PowerRename also has a nice ui

royal stump
#

oh, that's a first party thing, hmm

calm nebula
#

It's regrx based but it gives you a preview

royal stump
#

yeah, seems useful for the tag-naming stuff I'd been doing

gaunt orbit
#

I think the single most useful shell tool I have for windows is Link Shell Extension

#

Adds options for junctions/symlinks to the context menu

#

Only wish it supported right-click-drag

#

Still a lot easier than doing it through cli though

candid estuary
#

how do i remove the flooring under joja mart

dark cedar
#

Is there some sort of tutorial for adding items? I'm new to modding and I'm having trouble with this

candid estuary
#

just realized my dumb a spelt the sign wrong lol

dark cedar
candid estuary
#

its canon now

gaunt orbit
#

There's not a lot of guides, but there is a lot of documentation, at least for json stuff

dark cedar
gaunt orbit
#

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

dark cedar
#

huh

#
=====================
== Content patches ==
=====================
The following patches were loaded. For each patch:
  - 'loaded' shows whether the patch is loaded and enabled (see details for the reason if not).
  - 'conditions' shows whether the patch matches with the current conditions (see details for the reason if not). If this is unexpectedly false, check (a) the conditions above and (b) your Where field.
  - 'applied' shows whether the target asset was loaded and patched. If you expected it to be loaded by this point but it's false, double-check (a) that the game has actually loaded the asset yet, and (b) your Targets field is correct.
#

my content.json must be wrong

#

(there's nothing below it)

gaunt orbit
#

Can you post the whole log?

rancid temple
#

If you upload and share the whole log it'd be more helpful

gaunt orbit
#

I want to make sure the mod is being loaded

dark cedar
#

it is

gaunt orbit
#

(on the smapi website)

dark cedar
uncut viper
#

use the website linked in that Governor bot command post

gaunt orbit
dark cedar
rancid temple
#

May as well use the latest, but that won't stop it from working

gaunt orbit
gaunt orbit
dark cedar
#

ah I see

stray wigeon
#

I converted a certain broken animated scarecrow mod from CP to AT for personal use, but it crashes my game when I leave the farmhouse upon season change. HOWEVER, I am able to spawn, place , and paint bucket the texture inside my house and it animates just fine without crashing... does anyone know why this might happen?

dark cedar
#

I'll update that and see if it works

#

Yeah, that was the issue, thanks

gaunt orbit
# dark cedar Yeah, that was the issue, thanks

To explain what ContentPackFor is- it tells SMAPI what framework you're using to load the mod. Your json is set up in a way that CP can understand, so to get it to run, you have to tell smapi to give it to CP to use.

Earlier, you were telling smapi to use your c# component as the framework, and then not reading anything out of it on the c# side

dark cedar
#

That makes sense

golden basin
#

i passed out right after posting im so so sorry jdfsd but pathos suggested a custom trigger actions for the tile animation

cedar turtle
#

So.. So I get the scope of what I need to do. (my brain is juggling around ideas, it's awful)
I want to add more fish what would I need for the code?

  • fish data: Spawn locations, times, rates/weight, difficulty, behaviour, category, description, potentially gift taste if they should diverge from generic fish
  • fish pond data
  • assets of course
  • i18n
ivory plume
cedar turtle
#

Haven't seen it yet no. I am too tired to look up the code so I started with the assets first.

Thanks you two!

#

(and I didn't want to read it all up just to get distracted by work and having forgetting everything once I wake up tomorrow)

#

How would aquarium data work? Sprite wise I mean, would I need to make animated ones for that?

acoustic summit
#

Data/AquariumFish, it uses a seperate sprite sheet, which can have all added fish + seperate sprite indices, or individual sheets per fish

brittle pasture
#

yeah you draw a bunch of frames and define which ones should be used for the animation in the data

#

you can unpack and see how LooseSprites/AquariumFish is laid out

acoustic summit
#

As an example you can also look at how the squid is coded in Data/AquariumFish and compare it to the LooseSprites/AquariumFish

cedar turtle
#

Gotcha. Is that something I have to do right away or can I just add it in a later version of the mod?

acoustic summit
#

To see how to lay out custom orders of the sprite. You dont need to do it till the very end

#

Just note that visibleFish uses the same AquariumFish data, so you wont be able to see your fish in the water if you wanted to do that for testing.

brittle pasture
#

if you don't add it your fish simply can't be put in a fish tank

#

nothing else breaks

cedar turtle
#

That's good to know. Thanks!

hard fern
#

is there a guide for making flavored items SDVpufferflat i cant find one

lucid iron
#

its just part of machines now

#

what are you hoping to make?

hard fern
#

well less so "flavored" but i want to be able to output different colored items without having to make a custom sprite for every possible option

acoustic summit
#

Like Roe? I think thats a ColoredObject - I think

brittle pasture
#

that's C#, we're presumably talking about CP land

hard fern
#

i'd like to hopefully do it in CP, yeah

acoustic summit
#

Yeah, Im not sure how CP accesses colored Objects

#

/ how preserve jars work with roe

brittle pasture
#

if you need examples, look at Cornucopia Artisan Machines' essential oil and flavored yogurt

pale summit
#

hey I don't have the role yet (haven't sent enough messages) but I just released an update for my mod. Is there any way to get it posted in mod showcase?

brittle pasture
#

vanilla flavored items use some hardcoded stuff

hard fern
#

someone here can showcase it for you

lucid iron
#

wag 2.0 switched over as well

pale summit
#

that would be amazing can i just post the link here?

lucid iron
#

yea go ahead

pale summit
lucid iron
#

do you have a message to go with it

pale summit
#

oh uhhh I assume for here it would be something short not the full release notes right?

hard fern
#

localized text strings... i dont know what that means 😭

latent mauve
#

You can just say a little description or introduction to your mod, they'll include it in the post for the showcase

pale summit
#

How about

# Better Special Orders v1.1.0
Sick of getting stuck with Special Orders you don't want to do? Now you can reroll them. 1.1.0 reworks and expands the settings menu, adds chinese translation, adds support for more mod boards, and fixes some bugs.
brittle pasture
# hard fern localized text strings... i dont know what that means 😭

it's just a fancy way of ensuring the generated display name changes when the user switches languages. You basically load the actual display name into a string asset and reference that instead of passing the string directly into the field
for now you can just use something like "%PRESERVED_DISPLAY_NAME Cake" in your machine rule, and it'll turn into "Blueberry Cake" if blueberry is used

hard fern
#

ohh god it

#

*got it

hard fern
#

.> am back. is it possible to make items that buff the player if it sits in their inventory with C#?

tender bloom
#

Most things are possible in C#, that in particular I am pretty sure is possible

#

I recall when the buffs system got rewritten there should be some nice function that just applies buffs

hard fern
#

sigh is this what im gonna learn C# for... lol

tender bloom
#

You could check per tick, probably

#

The quirks you’d need to work out are probably things like: is this in addition to food buffs or does it replace

hard fern
#

i want them to be in-addition

#

ive already scop creeped myself so hard 😭

uncut viper
#

if you didnt mind it only happening onlocationchange then you dont even need C# for it

hard fern
#

wdym? like the buff will only apply whenever the player changes location?

uncut viper
#

you can use trigger actions to apply a buff and theres a GSQ to check whether an item is in the players inventory

#

combine the two and you can make a trigger action to apply the buff if this special item is in their inventory and remove the buff when its not, but the downside is you're limited to however often you can make that trigger action run

#

and the quickest with vanilla is LocationChanged (though you can do it on DayStarted too ofc)

hard fern
#

so something like

#
{
            "Action": "EditData",
            "Target": "Data/TriggerActions",
            "Entries": {
                "{{ModId}}_LuckyCharm":{
                    "Id": "",
                    "Trigger": "LocationChanged",
                    "Condition": "PLAYER_HAS_ITEM Current <item> 1 1",
                    "Action:": "AddBuff <buff ID> [milliseconds duration]",
                }
            }
        }```
#

(id isn't filled out whoops)

uncut viper
#

something like that yeah

#

and one to remove it if they dont hav the item

hard fern
#

if they don't have it, what is the gsq?

uncut viper
#

!PLAYER_HAS_ITEM Current <item> 1 1

hard fern
#

ah

uncut viper
#

adding a ! at the start of a GSQ inverts it

wide flint
#

I'm trying to do something whenever a specific Dialogue pops up using OnUpdateTicked() but for some reason the second one isn't working at all. What's different with that?

Working example:

bool hasClintDialog = clint?.CurrentDialogue.Count > 0 && clint.CurrentDialogue.Peek().getCurrentDialogue() == Game1.content.LoadString("Strings\\StringsFromCSFiles:Tool.cs.14317");
if (hasClintDialog) {
     //DoSomething
}```

Non working example:
```NPC robin = Game1.getCharacterFromName("Robin")
bool hasRobinDialog = robin?.CurrentDialogue.Count > 0 && robin.CurrentDialogue.Peek().getCurrentDialogue() == Game1.content.LoadString("Data\\ExtraDialogue:Robin_HouseUpgrade_Accepted");
if (hasRobinDialog) {
     //DoSomething
}```
fossil osprey
wide flint
fossil osprey
#

Alright then ^^
Have you tried to check what's in your variables then? That could orients you towards the problem

old edge
#

it wowked!

#

thank you selph.

wide flint
candid estuary
#

Any idea why trees refuse to display properly? I've been working on updating my tilesheets, fixed mostly everything but I can't figure out how to fix this, driving me crazy lol. Might not be super noticeable in the photo but the vanilla trees sit underneath (and at times) on top of the modded textures.

slender badger
#

Do you have your code set to PatchMode Overlay?

hard fern
#

^ if you just set it to overlay, it will layer the tilesheet over the vanilla ones

candid estuary
#

Thank you! That did the trick

hoary rock
#

Noob question, sorry, but. I'm pretty sure I need that bracket, so I'm not sure why I'm being fussed at about it...

hard fern
#

you're missing commas between

#

is this a JA mod?

#

it doesnt look like content patcher

hoary rock
#

OH, commas.
Yeah, it — oh. Wait. Hold on. I know where I messed up.

#

I’m using an older guide for this.

fossil osprey
#

You need a comma after every property or object if there is another one on the same level after it
So your "Duration" property doesn't need a comma since it's the last one of its level

normal kelp
#

hey, any idea what these errors mean after updating ModBuildConfig?

hoary rock
#

Thank you, thank you.

normal kelp
winged basin
#

Im using Content Patcher and im currently writing an dialogue. I was wondering if it would be possible to spawn an entity like an item or so at a specific Location and x, y coordinate via the dialogue itself

hard fern
#

it goes in the text box

slender badger
winged basin
hard fern
#

this seems more like something that would work better in an event,
as you can spawn temporary sprites/npcs and such

slender badger
#

What exactly are you wanting to do?

calm nebula
#

I vaguely feel you may be able to find a trigger action for that in spacecore tbh

winged basin
hard fern
#

šŸ¤”

slender badger
#

Yeah, you're not gonna be able to do that with CP

winged basin
#

would it be possible without Harmony?

slender badger
#

No idea, I don't do C#

frigid hollow
#

cursed option: make a dummy npc whose normally transparent but one of the animations is just a bomb going off

hard fern
frigid hollow
#

though mega bomb might be too wide for an npc spritesheet SDVkrobusgiggle

hard fern
#

sprites in detail:

calm nebula
#

It's fully possible lol

#

In c#

#

You just spawn a bomb and call placementaction

winged basin
#

I guess im done with ContentPatcher and play around with C# now. but kinda cool how easy it was to add an (barebones) NPC

rancid temple
#

Realistically speaking, it's probably easier to create an entire NPC in CP than C#, there's just too many parts to NPC's

gray bear
tiny zealot
wanton pebble
#

Out of curiosity only, how do modders deal with events in farmhouses that aren't in the kitchen?

#

I'm sticking in the kitchen for what I'm presently doing, but with the myriad farmhouse stuff is there a baseline way to determine a different spot?

calm nebula
#

Nope!

wanton pebble
#

Ah, chaos reigns, got it XD

calm nebula
#

Warp to kitchen spot would be a Bice event command

#

You can do it as your first c$ mod

#

And spouseroom spot haha

wanton pebble
#

Trust me, I've had to prevent myself from scope creeping that exact thing because it would require stopping my christmas time mod inspiration when I have limited time for it XD

#

And learning C# of course

calm nebula
#

I believe in you SDVpufferheart

brittle ledge
#

One of the romanceable wizard mods (RRRR I think) has events not set up at the kitchen, but they're very specific in the mod description about "don't place a furniture at X" "make sure you have a couch at Y"

hard fern
calm nebula
#

Tbh rrrr is also a very opinionated mod last I understood

brittle ledge
#

(if the farmer themself doesn't move around, furniture placement isn't an issue per se because NPCs will clip through, it'll just look odd.)

hard fern
#

šŸ˜” too many rs

#

for reference RRRR refers to the sve required one, right?

rancid temple
#

Just give the NPC a parkour animation

calm nebula
#

You can also set the farmer to clip through iirc

brittle ledge
#

Yeah, I thought there was a farmer noclip type command for events, I just don't remember what it is

tiny zealot
#

doing some C# to add farmhouse event commands to do stuff like harvey's dinner would be kind of fun, but i think it would be more fun if someone else did it

#

(the specificTemporarySprite for harvey's dinner like, locates the fireplace and does a bunch of cursed setup)

calm nebula
#

I mean, it's pretty easy c#

#

Good for a learning experience

#

(I love how hardcoded spouse events are.)

lucid iron
#

what if house doesnt have fireplace

calm nebula
#

You get put on the top left corner

wanton pebble
#

is there a way to determine if an item exists anywhere on a save?

hard fern
#

ignoreCollisions

#

to have the farmer/any actor clip through walls, i think

winged basin
brittle pasture
wanton pebble
#

which GSQ?

#

or wait

lucid iron
#

rmbr that its kind of slow and iterate all items

wanton pebble
#

Do you mean betas as in the 1.6.15 thing

lucid iron
#

altho maybe buttons caching it

wanton pebble
#

or a mod

brittle pasture
drowsy pewter
#

buttons extra something

#

I dont like calling it betas. sorry button 😭

lucid iron
#

the horse tweets mod

brittle pasture
wanton pebble
#

Oooh, this might be useful for later projects

#

for this one I'll still probably use it, but in a dependency-less manner

#

(until I have a working prototype I don't want to say too much, but I want to have a way to have the tea set enter a gift pool I'm making if someone's past year 1 and doesn't have it anywhere on the save)

#

Ah, heck. I'd need something to eval a GSQ in Content Patcher when conditions for that

brittle pasture
#

trigger action on season start that checks the GSQ once and sets a mail flag if it passes

#

then you can gate your patch behind that flag

#

also solves the problem of that GSQ being expensive

sterile fossil
#

@brave fable based on your modpage I think this is the correct way to reach you
I wanted to ask how I’m supposed to unlock cooking chocolate, and further if there’s any issues with some of your love of cooking recipes not unlocking?
It’s possible because I had to remove and re-add LoC with the advent of 1.6 things got messy, but I seem to be missing things even though I hit level 10 cooking.

lucid iron
#

this is the mod making channel, are you making a mod that depends on LoC somehow?

sterile fossil
#

I’m sorry if I interrupted anyone

wanton pebble
lucid iron
#

no worries, just saying no one plays game here and u should ask in #modded-stardew

wanton pebble
#

I gotta check this

lucid iron
#

for any (modded) gameplay things

wanton pebble
#

well damn

#

they actually did

lucid iron
#

i guess thats for translators

wanton pebble
#

Most likely

lucid iron
#

cus loc 2.0 has a wacky system for that

sterile fossil
wanton pebble
#

'tis for translation stuff. Yeah, in the future, post on the modpage

wanton pebble
#

What's the sound cue for when you're cutting weeds with a scythe/opening the Winter Star present?

rancid temple
#

Not sure about Winter Star, but for cutting weeds it's weed_cut

wanton pebble
#

they're pretty much the same sound, no?

#

so that'll do!

rancid temple
#

weed_cut isn't called by anything in the Winter Star stuff, so no idea

#

Still trying to find what's being used there, might have to actually look at the event stuff though

#

It's been forever since I last reached that festival, I can't remember any sound from it at all lmao

latent mauve
#

Question: if I am adding a second floor to the island farmhouse, is there anything specific I need to set so that if the player passes out there, they aren't penalized? Or does it already work that way unless I add the location to the PassOut locations?

#

(it's a new location in Data/Locations entirely for the second floor)

winged basin
wanton pebble
#

d'oh you're right

#

my only excuse is I'm rusty and forgot I could look there, I thought I'd have to look in the C#

rancid temple
#

Ah, I was looking too far down in the event

unique sigil
rancid temple
#

There's a map property

#

PassOutSafe

#

Interesting, it's not on the wiki I guess

unique sigil
#

i was going to say "LocationContext": "Island" condition would help, but thats a thing?

#

that map prop is defo not on the wiki

rancid temple
#
if (!(passOutLocation is FarmHouse) && !(passOutLocation is IslandFarmHouse) && !(passOutLocation is Cellar) && !passOutLocation.HasMapPropertyWithValue("PassOutSafe"))```
And then if it's not any of those locations or doesn't have the map property it does the pass out stuff
unique sigil
#

i live on that page almost 24/7 and have never seen PassOutSafe SDVpuffersquee

rancid temple
#

Fairly easy thing to test, I'll slap it on Forest and see what happens

#

Yep, you simply wake up in bed the next day

#

Guess I'll add it to the wiki

wanton pebble
#

Alright. This may have to be a question for casey, but just in case I'll ask everyone else first

faint ingot
#

I just talked to my custom npc at the island resort and they had their regular portrait instead of beach. Do I need anything besides this? { "Action": "Load", "Target": "Portraits/{{Russell}}_Beach", "FromFile": "assets/NPCs/Portraits/Russell_Beach_Portrait.png" },

wanton pebble
#

how does the spacechase0.SpaceCore_PlayEvent eventid ifNotSeen - ifNotSeen is optional (defaults to false) - if true, the event won't play if it has been seen before triggeraction react with the "DayEnding" check?

#

i.e. if I set an event to fire on "dayending" will the event play and then the day end no matter what?

#

will the event be skipped because the day should be ending and events shouldn't happen?

blissful saddle
#

base game has some events playing at DayEnding by default, so your last worry should not be a problem. Vide the mistery box appearance event

#

"DayEnding" goes just before the Day truly ends, calculates what needs to calculate like shipping items, and starting the next day

#

not sure if the SpaceCore event goes like this, but this is the base DayEnding event trigger behavior

faint ingot
blissful saddle
#

yeap, probably check if that is the right portrait name to change.

#

you can also check if the portrait is being correctly be changed using patch export

rancid temple
#

If you're using the Appearance system you can just make an entry for when they go to the resort

#

It has a field for specifically making an entry for when they go there

faint ingot
#

I'm not using the appearance system I didn't know about it before. I thought it was working with just the code I posted above but maybe it broke at some point.

#

they have the correct beach sprite but not portrait

latent mauve
blissful saddle
#

fireredlily is migrating to C# mods?? SDVpufferwow

latent mauve
#

Haha, no, but I am gonna use the newly discovered map property

#

Maybe next year I will have time to venture into C# but not yet

unique sigil
#

observatory?? šŸ‘€ i am interested

lucid iron
#

Next year is in less than 3 weeks Dokkan

latent mauve
#

Holiday time is busy

calm nebula
rancid temple
#

Next year is in 3 weeks, but it lasts for a whole year

calm nebula
#

I wouldn't. Personally

blissful saddle
#

by next year I understand in some time through the next 12 months

rancid temple
#

That's 12 whole months of procrastination

calm nebula
#

By next year I read as "mayhe some day"

lucid iron
#

I thought panorama with parallax is done by C# for just a few locations though

#

Like the summit

blissful saddle
#

and "maybe some day" I read as "never at all"

latent mauve
#

One of your interpretations is correct

blissful saddle
#

one, but you will not say which, right? lol

lucid iron
#

I read it some day as tomorrow because it's the most fun

latent mauve
#

Exactly, Relativistic

rancid temple
#

The thing I hate the most about editing the wiki... Exactly how many changes until I'm no longer making a minor edit

frigid hollow
#

i feel like minor edit is like. fixing a link or a typo, or some visual adjustments, but a non-minor would be adding new content and/or redoing formatting?

rancid temple
#

Welp, I already saved it, so hopefully the wiki mods don't get fed up with my bullshit

faint ingot
rancid temple
#

(I've seen Margotbean's talk page, I'm not sure I could bring myself to be annoying enough to actually anger them)

frigid hollow
#

i'm planning on making a modding wiki page for available tilesheets SDVpuffersquint but i can't figure out what kinds of things should be listed as features/how detailed i should get with the features. not like there are that many on nexus so it's not super difficult to look through them i guess??

faint ingot
#

Seems like my mod is occassionally duplicating an NPC when I change his disposition home, or it may have to do with giving him a 000 schedule. Is there anything I can do to prevent the duplication besides not making those edits?

rancid temple
#

Pretty sure 0 schedules are the culprit and there's still no fix as far as I'm aware

#

Normalize warp rooms, abandon weird schedules

faint ingot
#

If I create a warp I'm worried other NPCs will use it to get places faster

rancid temple
#

Generally I think you just have a singular warp tile that changes destination depending on what you need

#

And the warp back can be somewhere ridiculous so they'll never calculate it as closer

tough crater
#

This is a question about commissions related to Stardew mods: Are there people making requests for events? I'm interested in opening commissions for events once I get confident enough in my skills to make it a service

brittle ledge
#

Possibly. I commissioned Arknir for two of the Jorts and Jean events.

rancid temple
#

I would say there's a market for almost anything, usually when people are asking about commissions it's just where they can request them, not sure how many of them were looking for events specifically

brittle ledge
#

I know a lot of people are intimidated by even simple events, but I'm not sure how many would be willing to pay for them

tough crater
#

I'm just having a lot of fun with making events rn šŸ˜‚

rancid temple
#

Hi yes, it's me, the person who won't touch events lmao

tough crater
#

I'd probably be open to doing just about anything NPC-related content patcher stuff

#

I've found my passion for programming again since I started this project!

rancid temple
#

I spend so much time relaunching the game to test even simple things, I can't imagine doing that for an event, sounds absolutely exhausting

next plaza
#

Hey, sorry for the delay. I've been having a lot of problems past few days, will try to look into these things soon

tough crater
finite ginkgo
# next plaza Hey, sorry for the delay. I've been having a lot of problems past few days, will...

Yeah that’s understandable, glad you’re ok now (or at least enough to reply!), take your time!

Also since that we’ve also noticed another bug but I didn’t want to tag you again with more stuff since you hadn’t replied yet as I didn’t want to just pile stuff on you. The SC health regen buff doesn’t seem to be working correctly, not sure if it works for positive values but at least negative values don’t seem to be damaging the farmer, the buff applies correctly it just does nothing

tough crater
rancid temple
#

Isn't there an i18n reload command?

#

reload_i18n

#

Can't save you from caching though

tough crater
#

HUH

#

I-

#

i think i might sob 😭 jk jk

tough crater
#

The wording on the official wiki makes it sound like only some mods do that

rancid temple
#

Not without changing it, reloading it and testing again, unfortunately

#

I'm not sure if the base game does any caching of translations, but usually it's something you'd have to do intentionally

next plaza
finite ginkgo
#

I'll check turning off some mods I was using, but I was mostly using a mod testing mod list

next plaza
#

Hmm

#

Remind me in 48 hours to look into EnderTedi’s collection of SpaceCore bugs

patent lanceBOT
#

ask me that again I dare you (#6416578) (48h | <t:1734284915>)

calm nebula
tough crater
#

hell yeah šŸ˜Ž

tough crater
winged basin
#

what Class does a "thrown and ignited" Bomb belong to?
I tried:

StardewValley.Object bomb = new StardewValley.Object(position, "288");
Game1.currentLocation.objects.Add(position, bomb);

Neither "288" nor "Mega Bomb" works so I assume its for something else entirely? It places an Object in the game world however its just (see pic related), I also tried itemID "64" and instead of an Ruby I get some kind of bookshelf

rancid temple
#

You should use ItemRegistry.Create

tender bloom
#

Bombs also go through a pretty weird sequence that's mostly in the TemporaryAnimatedSprite and GameLocation classes

#

After they're placed

rancid temple
#

atra was saying something about using placementaction on them