#making-mods-general

1 messages Β· Page 547 of 1

lucid iron
#

do u need irl midnight

ornate trellis
#

purple tree? HandsomePuffer

latent mauve
lucid iron
#

maybe u can just use the spacecore hud message trigger

#

as long as everyone install it it's basically the same

latent mauve
#

oooh, that could work, we already have Spacecore installed for another mod.

opaque field
ocean sailBOT
#

Log Info: SMAPI 4.5.1 with SDV 1.6.15 build 24356 on Unix 6.17.0.14, with 61 C# mods and 55 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

scenic ferry
#

at the risk of sounding like a moron... Is that a map property? Tile property? How do I... do that?

slow basin
#

oouugh i just need to write 2 more events and im done omg

oblique meadow
#

Water tile on back layer. Tile property Water T

slow basin
#

but what to write this si the uestion

lucid iron
#

its a tile property and u can put it in either ur tileset or object

#

im confused why u dont have it tho

slow basin
lucid iron
#

did u bake the tree on the water tile NotteThink

scenic ferry
#

Tiled got mad about my filepaths so I reconnected them via TiledSheetInator but I. May have gotten rid of the forest behind it in the process and remade it manually

oblique meadow
scenic ferry
#

ty!!

soft lance
slow basin
#

by jove ive got it what if i do a birthday event

#

:3c

scenic ferry
#

i like barely know how tiled works I am so bad at it still

#

i appreciate the help so much yall

loud thunder
#

I think you defined your target incorrectly

#

Im not a great coder so im not fully aure

#

I think itd be like

#

"Target": ["Entries", "Charecters" or something

sweet niche
#

i see, lemme try

latent mauve
#

I just opened Data/Weddings.json from my unpacked files and I am wondering if the fact that the tree goes EventScript -> default matters?

sweet niche
latent mauve
void aspen
#

I already managed to publish a custom map thanks to tiled

#

Btw is there a tiled guide specifically for sdv?

latent mauve
#

@sweet niche alternatively, you could create a custom wedding event for Abigail specifically rather than changing the default, which would just mean copy/pasting the default entry and changing what you wanted.

#

The game only uses the default script if it can't find one that has the NPC name as a key

sweet niche
latent mauve
sweet niche
latent mauve
sweet niche
latent mauve
#

gotcha, ok.

green elm
#

Repeating question for context: how do I hotload a C# plugin, if at all possible?

sweet niche
#

thanks for the help guys, almost 4 AM maybe i need sleep soon

latent mauve
#

I feel like it's been talked about before, but I am blanking on the equivalent of patch reload for a C# mod.

ruby marsh
#

Thanks! Now that you mention triggers and states, I did something like that for AbigailHairDye, totally forgot about it...

tawny swallow
#

I spent crazy hours mucking about with this one mod and its reaching completion and Im sad bro this is my baby Im not ready to let you go yet

unborn badge
#

does anyone know where i can find a list of conditions for the trigger actions

unborn badge
#

thanks!

latent mauve
#

!reload

ocean sailBOT
#
How do I reload my changes while I'm still in game?
  • Content Patcher pack: enter patch reload <your_mod_id> in the SMAPI console window. This will reload and reapply all your patches (but won't recalculate the ConfigSchema or DynamicToken sections if you use them).
  • Translation files: enter reload_i18n in the SMAPI console window. If it's for a Content Patcher pack, also run patch reload afterwards.
  • C#: see the Visual Studio hot reload or Rider hot reload feature.
scenic ferry
#

Is there a way to reverse When: { HasMod: " " } ?
My tree building needs to be in a different spot when SVE is loaded, but I then need the vanilla patch to, yknow, not load, so there isnt multiple houses and all
Or am I going about this completely the wrong way

#

yknow I should probably stop fing around without knowing what I'm doing huh

calm nebula
calm nebula
#

(I'm a dumbass who needs to do valid json(

sweet niche
#

anyone know why replacedelimited not work for CFE?

    "Format": "2.9.0",
    "Changes": [
        {
          "Action": "EditData",
          "Target": "Characters/Dialogue/Abigail",
          "TextOperations": [
            {//"Introduction": "Oh, that's right... I heard someone new was moving onto that old farm.#$e#It's kind of a shame, really. I always enjoyed exploring those overgrown fields by myself.$9",
              "Operation": "ReplaceDelimited",
              "Target": ["Entries","AcceptGift_(O)109"],
              "Search": "my collection.",
              "Value": "my collection.$15",
              "Delimiter": " "
            },
            {//"FlowerDance_Accept": Hey, sure. Let's do it. We can be embarrassed together.$h",
              "Operation": "ReplaceDelimited",
              "Target": ["Entries","FlowerDance_Accept"],
              "Search": "$h",
              "Value": "$15",
              "Delimiter": " "
            },
            {//CFE_Abigail_GoldPumpkin": "No way! Is that-?$7#$b#You actually found the gold pumpkin!$h#$e#@, you are so cool. I mean it!{{LovePortraitsHappy}}
              "Operation": "ReplaceDelimited",
              "Target": ["Entries","CFE_Abigail_GoldPumpkin"],
              "Search": "pumpkin!$h#$e#@,",
              "Value": "pumpkin!$15#$e#@,",
              "Delimiter": " "
            }
          ]
        }
    ]
}```
and is this the only way to do it properly just for change or adding stuff to all dialogue lines from base or other mods?
scenic ferry
ocean sailBOT
#

Log Info: SMAPI 4.4.0 with SDV 1.6.15 build 24356 on macOS Unix 13.4.0, with 13 C# mods and 3 content packs.
Suggested fixes: SMAPI is out of date, consider updating it

scenic ferry
#

.... i really should actually update smapi

autumn tide
#

hey! just bumping this

final arch
autumn tide
#

it works!!! tysm :)

final arch
latent mauve
#

For those who saw my post the other day about the backpack chat messages, I did in fact successfully personal-mod my way into a fix by actually adding the entries to Strings/UI since the mod wasn't doing that in multiplayer xD

scenic ferry
# final arch we need to know what the problem is to help

Ah right sorry omg

Basically:
I want VaelExterior to load in one spot of the forest if the player doesnt have SVE, and a separate spot if it does. Seems to work fine in vanilla, but once I add SVE, the vanilla location still loads and the SVE version doesnt

latent mauve
#

Was this the thing you needed HasMod|contains for?

scenic ferry
#

yeah :')

final arch
scenic ferry
#

AHHH Thank you ill try that asap

loud thunder
#

To like track certain player actions would that need to be written in C#?

slow basin
#

finished the dialogue for the most part just gotta finish the 10 heart days of the week ones but guh!! i dont get errors now but i still can't talk to my npc :/

#

im gonna finish my events and such first before i really complain cause its prob just a mistype somewhere

#

fixed it

loud thunder
# lucid iron it Depends

Like how many items have been purchased or something like that? Im curious about adding some sort of like vendor npc that you can build affinity or something with by purchases

lucid iron
#

if you control the vendor as in you made the shop, you could probably use action on purchase to do this

#

have it increment a stat

#

after that you can check stat for other purposes

#

this is doable in content patcher (and in c# if you just edit the content)

scenic ferry
loud thunder
slow basin
#

for some reason my events arent working but theres no errors =-=

#

wait maybe i fogort a pach thing

ornate trellis
#

hm, i need some input. I got a good chunk of tillable soil on my map you can hoe where artifact spots can possibly spawn. obviously i added to those spots via CP. Now i am wondering how to go about the fact that vanilla wont have much spots naturally without making things too complicated.
this area is reachable the moment central station can be used. I was thinking to either simple recommend the increased artifact spots mod or maybe rarely sell one of those artifact totems? if i go with the selling totem route what do you think would be a fair enough price and rarity thonking i know i could try spawneables via spacecore but i wanna think of something possbly simplier stuff first

unborn badge
#

is it possible to remove a markaction after triggering an action while its on true

#

i cant trigger my action anymore even if i set markaction to false now

gentle rose
#

What are you trying to achieve?

#

and are you testing on a new save?

unborn badge
#

i was testing if the game would give me an mail while i have a certain item in my inventory. It worked. Then i tested it again after changes but it didnt work anymore because it had an actionmark

loud thunder
unborn badge
gentle rose
slow basin
#

i think i forgot to load the events is all

#

ugh

#

still no working

dusty scarab
#

@unique sigil hey, are you the same dev who made the Kisaa's Rustic Cellar mod? someone basically copied your map and posted it as their own by adding your optional room onto the main map, I thought you might like to be made aware
https://www.nexusmods.com/stardewvalley/mods/30070
vs
https://www.nexusmods.com/stardewvalley/mods/43048

Nexus Mods :: Stardew Valley

A lofted, rustic cellar with a compact layout and an empty nook to decorate. Choose between a compact or expanded cellar. Has native recolor support for VPR, Earthy, Starblue, Aster's Oak Saloon swatc

Nexus Mods :: Stardew Valley

A rustic cellar for the farmhouse.

slow basin
#

ill worry about this another day because im about to flip my desk and eat it

unborn badge
uncut viper
#

There is a trigger action action to mark a trigger action as not applied

gentle rose
latent mauve
#

There is an example on the trigger actions page on the wiki that changes whether or not MarkActionApplied is true or false based on the presence of a mailflag set with a separate trigger action

unborn badge
#

ah thanks ill try and look into these things πŸ™

slow basin
#

i think ik what i did wrong now but i will fix it later as i do not feel like messign with it rn

#

im gonna take a breather and maybe fix it tomorrow

meager ginkgo
#

not exactly a mod but I wasn't sure where else to put it

scenic ferry
#

this damn tree right infront of my npc house event πŸ’”

rigid musk
#

Not really sure how to phrase this question - but is it required to load some assets with the 'targetwithoutpath' thing (via CP) ? could you theoretically just load everything like that and then reference it the way you do when you load the asset instead of directly referencing its directory? I dont even know if that makes any sense

rigid musk
hard fern
calm nebula
scenic ferry
hard fern
#

like if i had "Target": "Maps/BleepBlorp", "FromFile: "assets/{{TargetWithoutPath}}.tmx

#

this will work

#

so in assets i will have a map called BleepBlorp.tmx

#

you can also use {{Target}} if where your file is/named matches the path you put in target

rigid musk
#

okay so like... for example i have this right.. so when I make the actual animals i would reference Mods/{{ModId}}/[insertchosenanimalpnghere].png

#

(please ignore comic sans)

hard fern
#

it's handy if you need to load a large number of files at once

rigid musk
#

But sometimes you dont actually need to load the assets ... but you can? like.. i cant think of a specific asset i havent loaded but there are a few that i just have to reference the actual file directory - like 'assets/sprites/animal/blueberry_dog.png' instead of 'mods{{modid\blueberry_dog.png'

#

and im wonder why sometimes i dont have to do that

#

now that i think of it, it might be because of whatever specific action im doing with content patcher 6_pondering

ornate locust
#

Loading an asset means other mods can access it

#

So if you have a building and another mod wants to recolor the building to match a specific recolor, the building tilesheet needs to be loaded for this to work without having to paste the new texture over the old one

rigid musk
#

I see i see... like my tilesheets/sets/whatever

ornate locust
#

for example

#

Yeah

rigid musk
#

if someone wanted to make compatibilities for a recolor for them having them loaded is useful 1r_sillythumbsup

ornate locust
#

Technically we can get around that with the newest SMAPI with some extra steps

hard fern
#

time to test my mod and watch it explode

ornate locust
#

Which is how I patch Haley's Bakery without screaming now

hard fern
#

i cant wait for things to go wrong

rigid musk
#

I love when everything explodes pain /sarc

ornate locust
#

(The tilesheets weren't loaded, so I couldn't make a patch that moved the building. I couldn't reference the tilesheets)

rigid musk
#

I'm completely reorganizing the entirety of my mod files so i expect everything to blow up when I try to launch it later

ornate locust
#

well. doesn't exactly move the building, you know, just puts stuff behind it.

hard fern
#

already forgot a dependency

ornate locust
#

Speaking of, I don't know when I forgot to put shadows under my little free pantry

#

but it now has them SDVpufferparty

rigid musk
#

even though im an artist i forget s hadows exist when making stuff in stardew im ngl

rigid musk
#

its so cute O:

ornate locust
#

Sebastian/Robin's garage is a pro reference for roof slanting, the lightened bits on the bottom of the roof help the slant effect so much

hard fern
#

i fucked the i18n.

rigid musk
#

i do that constantly

brave fable
#

scandalous

rigid musk
#

I released my mod over a year ago and im still having people complain about broken dialogue keys 😭

#

broken dialogue keys will haunt me till my grave and to the next life im sure of it

hard fern
#

why do you do this

ornate locust
#

Path's wrong

#

it should beee one second...

#

I believe ../TileSheets/Craftables

hard fern
#

ah

#

yes...

#

you are right...

#

i am stupid

#

.......

#

i forgot to actually Mail

#

i wrote it, it's been Included

#

forgot to send the damn thing...

quasi crow
#

can a value in the translation file reference a different line in some way? like {{translation1}} from "translation-2"

mellow laurel
#

I'm making furniture that opens shops, I'm already using Calcifer to do so but I just wanted to confirm there's no way to do it with Content Patcher. Wouldn't want to use another framework if I didn't have to.

lucid iron
ornate trellis
hard fern
#

SDVpufferflat and nowwww my npc has no schedule. whyy........

#

for the record here are my jsons top is schedule bottom is content

#

i slept for a day too

#

the schedule simply isn't showing up with lookup anything, and my npc refuses to go to work

ornate trellis
#

your saturday beach schedule is missing the facing direction

brave fable
hard fern
#

oh thanks

#

i wouldve never caught that LOL

ornate trellis
#

not sure if thats the issue but the first thing i spotted lol

hard fern
#

well i'll see

jaunty shuttle
#

If one wanted to have a custom animation when you use a totem (like the rain totem) how might that be done?

ornate trellis
#

also, are you loading no blacks for your stuff? O:

hard fern
#

(for me? or)

ornate trellis
#

blacks......i meant blanks

brave fable
ornate trellis
#

yeah i mean you forsy

ornate trellis
#

man i am typoing worse than usual i really should go to bed

hard fern
#

you know maybe a blank would've been nice.

brave fable
#

always load blank πŸ‘

jaunty shuttle
#

Sleep is good

hard fern
#

npc shedule still nonexistent

brave fable
hard fern
#

sure

brave fable
#

note: i do not know what the debugger does πŸ™‚β€β†•οΈ

hard fern
#

(neither do i)

brave fable
#

note: i do not write schedules

hard fern
#

(yet)

patent lanceBOT
rigid musk
#

did you sleep

#

when testing your schedule that is

#

because if you try to load in on the same day it will still have broken schedule from before cached and being used

hard fern
#

yes i am sleeping so much

brave fable
#

good life choice

rigid musk
#

fun fact: all of those includes can go in one thing

hard fern
#

i know i can nest includes

#

this is all so i do not explode trying to remember where everything is

rigid musk
#

thats so fair actually

#

also did you... did you load it to a blank.json yet? if so can you send an updated one please

hard fern
#

windows what the hell are you doing

brave fable
#

it's not nesting, more collating into a single Include call using a comma-separated Target list

peak copper
#

is the appropriate place to ask where i can get my smapi log to upload in the modded help section?

patent lanceBOT
brave fable
#

if you just paste your SMAPI log in chat it'll auto-upload to the site via the Governor bot SDVpufferthumbsup

hard fern
brave fable
peak copper
brave fable
#

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

peak copper
#

thank you!!! very much thank you

scenic ferry
#

just found out one of my pet events has been checking for "adoptionLetter" instead of "MarniePetAdoption"
adoptionLetter is for a human adoption
No wonder the event wasnt triggering holy

meager ginkgo
iron ridge
#

it strips the only guranteed pii, being your OS home path

meager ginkgo
#

ah

brave fable
#

it strips some userprofile paths down, but there's nothing stopping mods from logging your other data

meager ginkgo
#

yeah that makes sense

hard fern
#

SDVpufferflat sigh..........................

#

now what...

#

it's official, i hate schedule

rigid musk
#

did you send the updated json

brave fable
#

do you have a gendered warp? oddly it's checking for female versus Female

hard fern
#

i uh. dont think so

rigid musk
#

it always says that when the schedule is borked

brave fable
#

ah. spacecore oddity then

rigid musk
#

yeah it did that with me when qi's schedule was weird

glossy plinth
#

Anyone know how to set Robin's position in a building while she's doing an upgrade? (C# mod specifically)

brave fable
#

i used to SDVpufferpensive search the decompile for netWorldState.Value.builders

#

alas no decompile on hand

hard fern
#

well nothing has actually changed about the content.json and the schedule.json aside from me adding a blank load

#

so i assume the issue is with my map

rigid musk
#

i cant help you unless i can see the updated json so

#

i dunno what to say other than that

hard fern
#

i'll fix it on my own, it's fine

#

i was just complaining lol

#

i was going to send it but

#

not sure what to even send

rigid musk
#

also did you actually make a blank.json in your mod files, you do need that too

brittle pasture
rigid musk
hard fern
#

{{ModId}}_Yumemi

rigid musk
#

im thinking that should be '{{ModId}}_Yumemi' - yeah

hard fern
#

there's a dynamic token

rigid musk
#

not {{Yumemi}} but what i put there

#

doesnt matter

#

you reference that in other things not this

hard fern
#

uhh

rigid musk
#

you also dont need a dynamic token for the name afaik

#

unless you want it to change in specific circumstances in game

brave fable
#

i use dynamic tokens for all my npc names. it's a useful shorthand

hard fern
#

yeah

#

this is what im doing

#

and it's directly copy and pasted from another npc mod ive made

#

so i know it works

rigid musk
#

6_pondering interesting ive never done that

brave fable
#

easier to read, easier to write

rigid musk
#

new thing i found out but its pretty cool

#

did you make a blank.json in your data folder?

hard fern
#

yes

rigid musk
#

if you switch from your custom location to the bus stop or anywhere in vanilla does it work/do they move?

#

thats a good way to see if your location is the reason its borked but i cant see much info on your locations so i dont know

#

(also thank you for teaching me about the dynamic token -> name thing, very cool)

scenic ferry
#

who was gonna tell me none of these count

#

i hate marriage dialogue actually i have just decided

rigid musk
ornate locust
#

don't look at me, marriage stuff is one NPC thing I do not understand

hard fern
#

im going to eat my quiche and think about this later SDVpufferflat

brave fable
#

can't you simply tokenise it like {{i18n: funReturn_{{Random:xxx}}?

hard fern
#

i hate schedules with a passion LOL

brave fable
#

oh to have a modding quiche

rigid musk
#

thats what i did

#

mm quiche...

brave fable
#

love of cooking has a modded quiche...

rigid musk
#

i have made it in game before

#

very good would eat in game again

rigid musk
#

if you can even READ that

#

ignoring all of the tokens it would be exact ly like what blueberry suggested

hard fern
#

quiche eaten.

#

fixed my problem

rigid musk
#

a perfect day really

uncut stag
jaunty shuttle
#

Ty ty, is that doable with CP?

rigid musk
#

Appears to be a C# thing and i dont know any frameworks that support it

jaunty shuttle
#

Oh no, not the C# SDVpuffersweats

rigid musk
#

spacecore has this

#

but it only allows you to do the color the screan flashes

jaunty shuttle
#

So it’d show the warp animation then?

#

Does stuff not exist for custom weather?

uncut viper
#

Cloudy Skies framework

rigid musk
#

forgot that exists (<- has never once made a weather mod)

jaunty shuttle
#

Does that let you have an animation for the custom weathers totems?

#

Like what do custom weather people do in this situation

slow basin
#

last ditch attempt to get events to work

#

if this fails i sit and cry

hard fern
#

still not sure how to add multiple npc warps but at least it works now. and the introduction line changes based on if you talk to her inside the store vs outside it. abby has donated her body to science until i finish the sprites

uncut viper
#

They just use the same animation.

rigid musk
rigid musk
glossy plinth
hard fern
#

no longer in the glass

slow basin
#

im not getting any errors that I have things written out wrong but when i try to trigger my events nothing seems to happen, the first event should be as simple as just walking into town at any time at 2 hearts but no errors or anything

rigid musk
#

what are the preconditions for your event? like c an i see them

ornate locust
#

Sounds like a precondition thing yeah

slow basin
#

sure let me put them in the parser thign again so i can link you

jaunty shuttle
torpid sparrow
#

anyone know where the wedding event is located

rigid musk
#

like... weddings in general?

torpid sparrow
#

no the script for wedding

uncut viper
#

Not if Cloudy Skies doesn't offer it.

torpid sparrow
#

i want to edit it but idk where it is

uncut viper
#

(@ Mailia; I forgot to hit the reply button)

rigid musk
slow basin
#

eh!

jaunty shuttle
#

Alright, ty for the help button! SDVpufferheart

slow basin
#

are they supposed to be in the blue section?

ornate locust
#

Yeah like this

slow basin
#

oooh ok

rigid musk
#

i sent an example

torpid sparrow
#

nvm found it

#

in data

slow basin
#

ok thank you!

hard fern
#

-# sadpiano

tiny zealot
#

(sadpiano is up there for worst vanilla track names. it doesn't sound sad, and the instrument does not really sound like a piano /lh)

uncut viper
#

maybe its sad because it doesnt sound like other pianos

slow basin
#

the other pianos are bullying him like punch the monkey

ornate locust
#

Yeah that event isn't sad at all LOL

#

Okay a little sad but not that kind of sad

slow basin
#

me with my 13 thousand saves to test my mod:

rigid musk
#

i have been blessed with the information that i can make things glow with spacecore, i would like to make a mushroom tree glow

#

this is my goal in life now

rigid musk
ornate locust
#

What about SDS + SVE

rigid musk
#

i did break them all many times, it was fun to watch everything be completely and utterly dead-

ornate locust
#

because that's a thing too, god knows I did patches for that!

rigid musk
#

well... i would just add sve temporarily to the SDS save :)

#

i had to as well it was a nightmare i hated every second of it

ornate locust
#

did you accidentally do what I did and put an entire building in the same place as an SDS building

#

that giant stall with the bunny ghost thing at it

rigid musk
#

sds' overwrite of the oasis caused me nightmares

#

no but i tried to put Qi's room in the casino and accidentally deleted half of it :D

ornate locust
#

oop

#

my personal headache

#

there are so many layers in that stall

rigid musk
#

this was my favorite screenshot from when i was editing stuff because i was editing several things and broke literally everything

rigid musk
ornate locust
#

"I'll just scooch the stall- WHY IS IT ON SO MANY LAYERS"

#

circled: where the stall used to be

#

like I just squashed that baby

rigid musk
#

amazing, i like where your building sits though its really cozy

ornate locust
#

Thanks. I guess they thought so too LOL

#

There used to be a cliff there in vanilla, so compatibility for where people stand is easier.

rigid musk
#

the patch i made for SDS' casino was only this big btw i dont know how i broke half of it. i wish i got screenshots though it was kinda funny

ornate locust
#

Maybe the wrong type of patch? Replace instead of overlay or something

glossy plinth
#

confirming something for harmony:

Prefix patches run before the patched function. Can they completely block execution of the patched function by returning early? (I need to block something from running in a very specific set of circumstances)

slow basin
#

how do you do viewports? do you use both x and y twice for each corner?

ornate locust
#

No, because the view may be bigger or smaller based on what zoom someone is at

#

I think it's centered?

slow basin
#

i do not understand hopw to make sure the viewport is looking at my characters

ornate locust
#

because obviously that doesn't change no matter someone's zoom

tender bloom
ornate locust
#

The coordinates are the center of where you want it to view

slow basin
#

aah ok

tender bloom
#

prefix return false is a bit more invasive/can have weird effects more generally so it can be worth it but it's worth thinking about other options to make sure it's what you want

uncut viper
#

Also you can set a priority on your patch to be reasonably sure you prefix first

slow basin
#

go the viewport to work but my farmer just continously walks off to the distance oops lmao

tiny zealot
#

events do be like that sometimes

ornate locust
#

that happens

#

or maybe they'll walk double for no apparent damn reason

tiny zealot
#

sometimes it's using move after positionOffset (broken in many cases, causes movement to never terminate and breaks the event)
sometimes it's messing up the arguments, like using coordinates instead of distances

ornate locust
#

best one is STILL that one alpha NPC saying the grocery store was too crowded for her and then walking off into space

#

Social anxiety queen

slow basin
#

i have a thoery

#

nope was wrong

#

sigh

glossy plinth
# tender bloom prefix return false is a bit more invasive/can have weird effects more generally...

Button (the right one, sorry other button) and @tender bloom
More context that might help:
I need/want to over-ride the GameLocation.AddDefaultLocation function for adding a greenhouse if and only if a special Bpendragon.GreenhouseSprinkler.GreenhouseX (where x is 1, 2, or 3) exists. Normally my mod reverts the building type on the user sleeping the next day after upgrade/construction is finished. BUT if the user closes out of the game before it saves again the value is not updated, so on next load the game believes it's missing the greenhouse (a default building)0 and creates a new one.

Alternate might be patching whatever the "onupgradecomplete" function is (I have yet to figure that one out) to immediately change it from the special mod version to the regular version.

uncut viper
#

(Wrong Button)

slow basin
#

my npc doesnt even show up to the event b ut i have her set to stand in the right coords

#

πŸ€ͺ

uncut viper
#

Is Bpendragon.GreenhouseSprinkler.GreenhouseX a class?

glossy plinth
uncut viper
#

I'll admit I'm not totally sure I understand what you're trying to do with that explanation, but why does them re-opening the save not lead to the same result as them waking up?

slow basin
#

can you not set npcs to do animations in events because my npc is not showing up :/

glossy plinth
# uncut viper I'll admit I'm not totally sure I understand what you're trying to do with that ...

Because of this line in my on OnDayEnding event listener:

            if (gh.buildingType.Value.StartsWith("GreenhouseSprinklers"))
            {
                gh.buildingType.Set("Greenhouse");
            }

(correction I guess the building type isn't bpendragon...)

It has to be set because a building upgrade must always change the building to a new buildingType once it's done. But because a standard Greenhouse is required I reset the special building type and have a BuildCondition that runs some other checks including against the ModData key that is also attached to the Greenhouse

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.

glossy plinth
#

I think that the difference between sleeping and exiting and reloading is that AddDefaultBuildings which calls AddDefaultBuilding(buildingType) only runs on initial game load.

uncut viper
#

When is it getting set back to GreenhouseSprinklers (if at all? I assume it is)

#

Just OnDayStarted?

glossy plinth
#

The only time it gets set to GreenhouseSprinklers... is when it finishes upgrading each time. (there are 3 upgrades)

slow basin
#

first one

tiny zealot
slow basin
#

Ah

urban patrol
#

you need to declare all characters in the same event command

slow basin
#

idk what that means

tiny zealot
#

you want farmer 54 30 1 Kandi 63 24 <direction>

slow basin
#

ah

urban patrol
#

you can look at vanilla events for an example

tiny zealot
#

(you also want to modid-prefix your npc's internal name, but that's a discussion for maybe not this second)

uncut viper
rigid musk
#

can you make a mushroom tree glow with spacecore (this would be very cool SDVpuffercool )

opaque cobalt
#

How hard is it to get a piece of furniture added to an NPC's house? Say adding a portrait of Kent to Jodi's house?

slow basin
#

im angry so im going to take a break now

#

ill work on this stupid thing tomorrow

#

kicks my events

ornate locust
#

Yo uwant a map patch for it

rigid musk
slow basin
#

yea

#

i typically give up once i start physically crying from anger at modding something at least for the day

rigid musk
#

breaks are always good

ornate locust
rigid musk
#

never worth making yourself beyond upset

slow basin
#

frustrated is my most despised emotion

rigid musk
#

if you want you can ping me when you're working on it ag ain tomorrow and i can try walking you through stuff

slow basin
#

thank you lily

rigid musk
#

i hate events but ive coded like 30 of them now so im a pro ... id like to think anyways

ornate locust
# opaque cobalt How hard is it to get a piece of furniture added to an NPC's house? Say adding a...

if you want an example, I've got some in my mod, let's see...

            "LogName": "Municipal Fire Safety Map Patch - Saloon",
            "Action": "EditMap",
            "Target": "Maps/Saloon",
            "FromFile": "Assets/Maps/FireSafety-WallB2.tmx",
            "PatchMode": "Overlay",
            "ToArea": {
                "X": 19,
                "Y": 15,
                "Width": 1,
                "Height": 2
            },
            "When": {
                "HasFlag |contains={{ModID}}_Municipal_Open": true,
                "FireSafety": true
            },
            "Priority": "Late + 1"
        },```
The WallB2 file puts the thing I add on layer "Buildings2". The when is just referring to a config setting and a mail flag, you can do what you like
glossy plinth
ornate locust
#

Buildings2 lets something be on a wall without you being able to walk "behind" it, if it's low enough that's a worry.

uncut viper
#

All else fails, I doubt anyone else is gonna be patching that function really

glossy plinth
#

Yeah.

glossy plinth
uncut stag
#

Hey! I’m trying to let my machine hold multiple Objects.
Before I was saving item data manually in modData (id, stack, preservedParentSheetIndex, etc.) and rebuilding the items myself. It works, but seems to break compatibility with other mods, especially ones that add custom flavor data / moddata to items.
Should I subclass and add NetRef field? (I heard it's complex) What’s the cleanest way?

tiny zealot
#

you could try using a global inventory? you can save its id in your moddata instead of the item fields

slow basin
#

Quick question so ik how many portraits to have, can you have a different portrait for flower dance day event?

ornate locust
#

As many or few as you need

slow basin
#

Like for when you ask an npc to dance/talk to them day of

ornate locust
#

and yes

slow basin
#

Awesome

#

Tyy

fierce vault
#

Can I put periods in an asset png's name?

#

Like: portrait.npc.blue

uncut viper
#

You probably shouldn't and there's no reason to

fierce vault
#

Ok, thanks

#

I just have a bunch of assets in one folder, and wanted to make the names look as short as they can

uncut viper
#

Your Mod Id has one, and it should have that, so it's not like it will break anything

#

But there's always the chance of some other mod parsing it wrong because its expecting file extensions or something

#

So it's more of a "yes but why" thing

#

Not to say the odds of that are high or anything. They're probably very low

fierce vault
#

ok. my asset names don't need to be unique do they as long as the have a mod id in the content json, right? I remember Aba and Dolphin disagreeing over that.

uncut viper
#

The mod ID is what makes them unique

fierce vault
#

Ok, I'm not going to make them as long then

uncut viper
#

I don't know the context of the discussion between Aba and Dolphin

fierce vault
#

I don't remember it that well honestly

ornate locust
#

I don't think Aba and Dolphin disagreed, one of them just said that yeah technically you can make it whatever as long as it's unique, but using modID is easier

uncut viper
#

Using modID also makes it identifiable

fierce vault
#

If you're curious I could find the conversation

brave fable
#

i disagree with anyone who says ModId is optional. it's not up for discussion πŸ™‚β€β†•οΈ

fierce vault
#

But I need to get back to naming all these assets

uncut viper
#

I also personally disagree with it being optional

ornate locust
#

The point was very much a "technically yes"

uncut viper
#

I do love technicallys

ornate locust
#

you are able to do it and not cause problems. You just shouldn't, ModID is easier to ensure it's unique

#

and has other advantages

fierce vault
#

This is how it should look right? "{{ModID}}_Fall Orange Scarf": { "Id": "{{ModID}}_Fall Orange Scarf", "Condition": "SEASON Fall, {{Fall Orange Scarf}}", "Portrait": "Portraits/Krobus_Fall_Orange_PK", "Sprite": "Characters/Krobus_Fall_Sprites_Orange_PK", "Precendence": "1", "Weight": "1" }

brave fable
#

the odds of two Zaynes walking into a modlist are low, but never zero

uncut viper
#

For similar reasons to above, I would recommend against putting spaces in asset names and IDs

#

Except with the addendum that spaces are more likely to cause issues for various things and is much more understandable when it breaks someones parsing (not entirely, but not not entirely)

tiny zealot
fierce vault
#

Ok, I'm in a pinch there then, because that's also what shows up in the config

ornate locust
#

when in doubt, consider the mighty underscore

uncut viper
#

Is this not your mod?

fierce vault
#

It is. I guess I should make an i18n?

ornate locust
#

that is generally a plus

uncut viper
#

To be clear I'm talking about the ID, not the token

brave fable
#

"noone is going to do that" unless you're one of the leagues of people making licensed characters and simply using their full name

#

whoops, more than one fan of Mega Blorbo Reincarnation is making stardew valley mods

uncut viper
#

That said you can and probably should i18n your config

ornate locust
#

Zayne didn't exist when Zayne was made, but the Double Zayne problem still happened

#

you never know when there'll be another Zayne

uncut viper
#

But no other mod is gonna see your token so if it works in content patcher then its fine if the token has spaces however i will personally be a little sad because its broken CMCT in other cases due to my bad parsing

#

i should really get around to uploading cmct 2.0.0

fierce vault
#

I've just been at this for hours, and I'm so done with it, but I don't want to stop until I'm finished with my goal.

brave fable
#

you can unwind for a while and get back to it, it's not going anywhere without you

fierce vault
#

I need to be done with it, and I need it not looming over me anymore

urban patrol
fierce vault
#

Yeah

#

That's the one

urban patrol
#

oops meant to turn off @

brave fable
#

maybe i've been living in the looming shadow of half-baked mods for too long SDVcharkrobus

fierce vault
#

It's amazing how much time I have wasted working on this

#

It really does feel like a waste too

uncut viper
#

Progress isn't a waste!

#

Neither is learning

fierce vault
#

The art actually

ornate locust
#

My mod took a year and the progress really came easier when I just... made peace with taking big breaks hwen I needed

fierce vault
#

I'm talking about the art

brave fable
#

oh yeah the art is a waste

#

i could be spending that time making the mod page

jaunty shuttle
#

Me doing the art for my mods and not touching code to make them real-

#

I mean, I made a NPC's sprite sheet that will never be used/exist SDVpufferblush

fierce vault
#

me too

#

Well, actually I might use it at some point

brave fable
#

i've thrown out whole locations with their own art. you're good hahah

ornate locust
#

I have made a thousand stupid memes that took at least an hour to make for exactly one joke (and some less, but some of those took work...)

#

Art is never a waste

brave fable
#

a lot of the time you'll try an idea and you won't know it doesn't work until it's done. just part of the creative process

fierce vault
#

My files for my portait mod are such a wreck

#

The art files in my program, (not in the actual mod)

jaunty shuttle
#

Yeah it was the first stardew art I ever created. IN my defense though- I had hoped to give them to someone, but they abandoned their mod idea

patent lanceBOT
uncut stag
# tiny zealot you could try using a global inventory? you can save its id in your moddata inst...

sounds like a clean idea
wait I just thought of something When the machine gets stacked into someone’s inventory it loses its modData. If I’m using some kind of global inventory system, would that mean i have to manually clean up those global entries when the machine is removed from the map? otherwise, I guess there could be ghost inventory id left behind I’m not super familiar with how it’s implemented but feels like that could happen

fierce vault
#

Thanks for the advice by the way

tiny zealot
#

just like how vanilla won't let you collect a chest when it has stuff in it (chests use global inventories to hold their contents)

swift sinew
#

I'm trying to learn how to mod. Does anyone know how I can do that?

uncut viper
#

!startmodding

ocean sailBOT
#

Making mods can be broadly divided into two categories:

Usually it’s easier to start with making content packs, since you don't need to learn programming.

swift sinew
uncut viper
#

Well those are the resources for learning. If you're having trouble though, you can ask for help in here and people will try and help you figure out what's going wrong

fierce vault
#

Can I ask if you guys like the names Seaglass or Seafoam better to describe an asset color?

#

Seaglass doesn't get a space for reasons button listed

rigid musk
#

what the color look like

fierce vault
#

Oh hey lily!

rigid musk
#

hoi :0

fierce vault
#

Long time no see!

swift sinew
gentle rose
#

lily!!!

rigid musk
rigid musk
uncut stag
rigid musk
#

well not really modding right now, mostly just lurking in this channel to see what folks are talking about

fierce vault
rigid musk
#

seafoam

#

seaglass is more light to me, like ... soft? if that makse sense

fierce vault
rigid musk
#

One day perhaps vibincat its okay i cant do nothing to change it so might as well exist as well as i can right

uncut viper
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 musk
#

^ i could take a looksee to see if i can help

#

ive patched places before on some occasions

brave fable
#

maybe i should switch to packaging glass for my delicate belongings

swift sinew
rigid musk
fierce vault
#

@rigid musk Btw, I've been meaning to ask, did you get rid of the mr Qi lite version of your mod?

torpid sparrow
#

glass does let more light through than foam

tiny zealot
fierce vault
#

Oh, I guess I missed it. It is a separate file right?

uncut viper
#

(Player inventories are also not global inventories. Junimo chests are though. Global inventories are very handy though, any mod can make their own)

rigid musk
#

yeah its a separate mod page because i did not feel like making an entirely new section on that already massive mod page for the lite version ... or dealing with update stuff between the two of them being out of sync and what not

#

that reminds me that id have to update the lite version of my mod too 2r_bowsob

fierce vault
#

Oh, ok, thanks for explaining

rigid musk
#

ill pretend it doesnt exist for now... its fine its so fine

fierce vault
#

Oh, is there a big difference between the 2 right now?

#

Update wise I mean

fierce vault
swift sinew
uncut viper
#

Definitely absolutely do not do that

ornate locust
#

That doesn't work at all

#

It is VERY unadvisable

rigid musk
swift sinew
rigid musk
#

right now ive completely reorganized my files and im rewriting all of the dialogue and stuff so ... yes big difference

ornate locust
#

Content Patcher can replace assets pretty easily and without causing compatibility explosions

uncut viper
#

There is zero reason to be XNB modding in this day and age and people will not advise you on how to do it.

swift sinew
tiny zealot
#

xnb modding is sort of like using content patcher, but less convenient, less powerful, and less compatible with other mods

rigid musk
#

smapi is.. not... it shouldnt require even an itty bit more from your pc than regular stardew on its own

uncut viper
#

It would require an itty bit more. But a really itty bit

swift sinew
ornate locust
#

if SMAPI is the straw that broke the camel's back, your laptop can barely run Stardew unmodded, and I do mean barely

rigid musk
#

mm stardew (vanilla) but i get 3 fps

ornate locust
#

I'd be worried that just running a save too long would also cause crashes on that

swift sinew
uncut viper
#

Our tech support forum could probably help you if you wanted to make a post in there regarding your SMAPI issues, but RE: XNB modding, it's not done anymore and people in here do not do XNB modding. All of the resources and help you can find would be for SMAPI and Content Patcher et al.

rigid musk
#

im guessing its user error then, not to be like rude about that or anything but generally SMAPI can run on potatoes with lightweight mods

uncut viper
#

I don't even know where to go to get an xnb repacker. I'm sure it's probably still somewhere on the wiki, but I don't know where

tender bloom
#

Possibly if you have 4GB ram??

rigid musk
#

if it can run on a phone im 100% certain it can run on your pc unless your pc has like ... yeah 4gb of ram

tender bloom
#

But at that point you’re really pushing it for vanilla iirc

rigid musk
#

^ you definitely couldnt run it for hours in that case

ornate locust
tiny zealot
#

4GB of ram can barely run an OS these days. it's a pretty sad state of affairs

swift sinew
ornate locust
#

How many decades old is this laptop?

tender bloom
#

You should post in support, not here β€” I don’t want to get too off topic

rigid musk
#

it... is barely a difference (this is without mods on one of my long term vanilla saves)

#

miniscule difference

swift sinew
fierce vault
#

Wait, lily, I just realized because of my name there might be some confusion lol. You did recognize me as Parcy right? πŸ˜…

rigid musk
#

:D i literally did not

fierce vault
#

πŸ˜„

rigid musk
#

i just assumed i forgot your name or you changed it honestly SMCKekLmaoDog

ornate locust
#

Then it's absolutely not a computer power problem. nothing newer than the laptop I used in college is going to have that.

#

And I am nearly 40

#

you should head to tech support

rigid musk
fierce vault
rigid musk
#

because in no way should you ever, and i mean EVER use an xnb mod

#

thats so funny actually

fierce vault
#

@ashen thunder

#

Just thought you should be here for this lol

swift sinew
meager ginkgo
#
{
            "buy": 240,
            "harvest": {
                "extra_chance": 0.1,
                "level_increase": 5,
                "max": 6,
                "min": 2
            },
            "id": "cranberries",
            "index": 493,
            "name": "Cranberries",
            "regrow": 5,
            "seasons": [
                "fall"
            ],
            "sell": 75,
            "stages": [
                1,
                2,
                1,
                1,
                2
            ]
        }```
this is the json I have for vanilla cranberries (from <https://github.com/exnil/crop_planner>), it lists `extra_chance`, `level_increase`, `max` and `min` under `harvest`, but I have no idea what `level_increase` could mean other than it relates to farming level of some kind. any ideas? or where to look to find this info? wiki has nothing on it and neither does lookup anything in game
gentle rose
meager ginkgo
fierce vault
#

Sorry for the dumb question, but I can use & in an asset name right?

urban patrol
#

it looks like this is super outdated. up to date crop data can be found by unpacking your files (we have a tutorial for that) and by cross-referencing with the wiki

#

ugh why did it not @meager ginkgo

meager ginkgo
#

it probably is super outdated 😭 thanks I'll look at unpacking them

urban patrol
#

!unpack

ocean sailBOT
#

Follow this guide to unpack the game's content files in order to see and explore how the game data is structured.
It's helpful when making your own mods, or just to learn about how the game works!

meager ginkgo
#

is there such a thing as unpacking stardew with mods running so I get all the data or is that the same as just opening a mod folder

urban patrol
#

unpacking is to view the vanilla assets

meager ginkgo
#

ok figured

#

thx

urban patrol
#

if you want to view mod data you can go into the mod folders, or use commands like patch export to see the output of assets after mods have modified them

meager ginkgo
#

perfect I'll try that

glossy plinth
#

You ever read your own debug log and die a little inside because you know you have to do something painful?

I have to HarmonyPatch in the middle of a save file loading

if that ain't asking for trouble I don't know what is.

tiny zealot
#

i must say that does sound painful, and i suspect there is a way to avoid doing it

old edge
#

Is it possible to launch the arcade game journey to the prairie king at the intro sequence when the farmer is at the desk about to read a letter

glossy plinth
# gentle rose ...why do you have to do that <:SDVpufferfear:282662022926172162>

Log for reference: https://smapi.io/log/66d181aa873c406cab3b6bb8b60bb0c7?Levels=trace~debug~info~warn~error~alert~critical

if a player uses my mod to upgrade their greenhouse and if they exit the game without saving the day after it finishes upgrading it exists as a special type of building, and not a "normal" greenhouse. But the game doesn't like this, the game wants there to be a normal greenhouse, so if this happens the game tries 2 seperate times during file load to force the existence of said greenhouse before it loads mine in.

If the player plays through the first day after the upgrade this doesn't happen because I change my special greenhouse into a normal greenhouse.

old edge
#

I want to interrupt the start of the game

ocean sailBOT
#

Log Info: SMAPI 4.5.1 with SDV 1.6.15 build 24356 on Windows 10 (10.0.19045.0), with 9 C# mods and 0 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

glossy plinth
#

Note: Out of date mod not a problem, it's one of my other ones.

uncut viper
brave fable
gentle rose
#

wait, if the player exits the game without saving?

#

why does that change anything in the save at all

glossy plinth
uncut viper
#

Right, but... you can still apply the patch in your entry function.

#

just keep track of how often it was called, or what the current load stage is

#

You kinda have to anyway, because what if they exit the save and re-enter it again?

glossy plinth
# gentle rose why does that change anything in the save at all

Because AddDefaultBuildings is only called on file load, not on a new day. So it is saved into the save file in the special case, but then I overwrite that on the next save. So if they quit out after the save where the upgrade occurs, but before the next save when I fix the problem then they can end up getting a duped greenhouse.

gentle rose
#

sorry, it's late here for me, but you're saying you're patching the save logic too, right?

#

oh wait no you're saying the game is calling it

glossy plinth
uncut viper
#

Okay, that makes more sense, I (and I believe iro and ichor too from the sounds of it?) thought you meant you were literally calling harmony.Patch during save loading.

gentle rose
#

(no I was just generally 4am confused)

glossy plinth
#

oh hell naw

uncut viper
#

Go to sleep!

glossy plinth
#

I choose life over angry pitchfork mobs because I irrevocably broke the game.

sullen rain
#

Hey wem

#

[Content Patcher] Ignored (CP) Tilly, the Tea Loving-Librarian NPC by strawhatwem > Character Load Tilly > assets/Characters/Tilly.json > Include assets/Events/eventsTilly.json > Tilly's 6 Hearts 2: one of Entries, Fields, MoveEntries, or TextOperations must be specified for an 'EditData' change.

torpid sparrow
#

yeah its fine

#

guh ill update the files rn in case other people begin reporting too

glossy plinth
#

oh no. I was afraid that might happen.

Naively patching out all instances of AddDefaultBuilding(Greenhouse) means that the ruins are never even spawned in.

So I have to patch around file creation.

torpid sparrow
uncut viper
#

Why not just remove the greenhouse after its added on daystart?

glossy plinth
uncut viper
#

Well, messing around with the save loading like you're doing also might screw up things, too

glossy plinth
#

Yes, but I feel like "Keeping an unwanted greenhouse from spawning" is better than "possibly accidentally destroying a wanted greenhouse"

fierce vault
#

Wait, I just realized, this would be an incorrect way to use a mod id because I'm aiming for base game krobus to be edited right?```
{

        "Action": "EditImage",
        "Target": "Portraits/{{ModID}}_Krobus",
        "FromFile": "assets/Krobus.png"
            
    },```
brave fable
#

this will edit an NPC named blueberry.LoveOfCooking_Krobus, which doesn't exist

tiny zealot
#

right. krobus's internal name is Krobus and does not have your mod id in it

fierce vault
#

Right, I thought so

#

I'm trying to mod id my own sprites, so I'm working on that right now

#
            "LogName": "Krobus Appearance",
            "Action": "EditData",
            "Target": "Data/Characters",
            "TargetField": ["Krobus", "Appearance"],
            "Entries": {
            "{{ModID}}_Krobus": {
                "Id": "{{ModID}}_Krobus",
                "Portrait": "Portraits/Krobus",
                "Sprite": "Characters/KrobusSprites",
            }
          }``` Would this be correct?
loud thunder
#

How do green houses logic even work? Is there some tag that effects the interior of one to say "any crop can grow here"?

urban patrol
fierce vault
#

Yes

#

Default

urban patrol
#

then you probably just want to EditImage the png. right now you're adding a new appearance

fierce vault
#

Oh, I have an edit image

urban patrol
#

krobus doesn't have a default entry in appearances

fierce vault
#

Not sure how to mod id my default sprites then

#

thanks though

urban patrol
#

you only need to add your mod id to original assets you add to the game, such as a new NPC

#

presumably you can't have two mods that both edit how krobus looks by default, and it's natural to conflict

#

actually you could even Load his portraits if you wanted

fierce vault
#

Oh, ok thanks.

gaunt orbit
#

worth noting that GI also ignores seasons, but the GI behavior is hardcoded into IslandLocation IIRC

#

IsGreenhouse is how the greenhouse does it nowadays, since the greenhouse interior is no longer a special location type like it was pre-1.6

fierce vault
#

And this is my asset folder:

hard fern
#

you loaded them like this, but the mod is looking for this

#

so only SantaOrange exists, not Portraits/{{ModId}}_SantaOrange

fierce vault
#

ohh, I needed to add the mod ids there too

#

Thank you Forsy

uncut viper
#

Every custom target should have a modid in it, and every custom entry key/ID in your appearances should also have your ModId in them.

#

I don't know if {{TargetWithoutPath}} plays nice if there is no path to begin with

fierce vault
#

thanks

urban patrol
#

isn't there a token that's just {{Target}}? let me check docs

#

yeah there is

hard fern
#

there is

glossy plinth
#

Can I use OnAssetRequested to somehow give multiple instances of the same type of building different textures?
Or is there a smarter way to do that?

brave fable
#

you have a custom type already, right? why not override one of the relevant texture or getdata methods?

#

simply return a different asset name based on whatever conditions you need

brittle pasture
#

does the building skins system not do what you want

#

or gods forbid just AT

#

dont tell chu I recommended AT

glossy plinth
woeful lintel
azure raven
#

anybody uses StardewUI, ive a question. How do I define a fallback case when the *switch doesnt define match to any *case values?

trim sand
#

question about map patches, when applying a .tmx file as a map patch for like a bridge or simmilar, is there something specific i need to do to properly remove the building layer 'shore' tiles so the bridge can actually be used?
since currently thats the only issue im having with this unlockable bundles bridge is that it can't actually be used once its placed.

ornate trellis
#

Set it to passable T

trim sand
#

i mean. that'd make it work. but assumedly it'd leave the tile visually there

ornate trellis
#

Oh the image didnt load for me earlier lol

trim sand
#

since the bridge itself is on back2. and i have tiles on the buildings layer for the island visual that i need to remove for it to be properly passable. (and some stuff with layering.)

#

I guess a sol

#

Solution would be to embed an invisible tile on the building layer then via properties make it passable

azure raven
#

thought so. havn't see anything in the docs, thanks for confirming

merry river
gentle rose
#

do you have a log?

merry river
ocean sailBOT
#

Log Info: SMAPI 4.5.1 with SDV 1.6.15 build 24356 on Windows 11 (10.0.26100.0), with 17 C# mods and 19 content packs.

merry river
#

Okay, found one error I made, used the wrong fromFile, let me see

#

Still nothing

#

I'm guessing I screwed up the load order somehow

lucid iron
merry river
#

huh :o

lucid iron
#

If these are internal asset keys then smapi ignores all edits

#

It's just how it works blobcatgooglyblep

hoary flame
#

I'm not all that familiar with CMCT, but from reading the nexus page I would at the very least try setting the dependency for Hitme.SVESimpleFoliagePatch to true. don't know if it will change anything, but worth a try maybe?

lucid iron
#

I would simply do an even later edit on whatever Hitme.SVESimpleFoliagePatch is editing

calm nebula
merry river
merry river
#

Okay so does that mean I can't edit the assets of a mod using CMCT and will rather have to target the according coordinates on the tilesheets instead? SDVpufferwaaah

fallow musk
#

is there any place i can listen to all audio ids in the game, instead of extracting all the xwbs?

torpid sparrow
#

yes on youtube

#

although im not sure if that is considered pirating? i dont know about the specifics

lucid iron
#

You don't have to depend on this other patch in that case

frosty tree
#

hey there! i'm planning a mod but since i'm new to modding from scratch i'm still collecting docs and such. if i wanted to add a cat to a space and have it operate like a pet cat (petting + seeing the name), but not have it counted as the player's pet, is there anything special that would need to be done?

torpid sparrow
#

sounds like an NPC, im unsure about the ability to pet though

fallow musk
#

i downloaded foobar with the xsb extension

#

makes it easier to go through all audio files

austere forum
#

Hiii guys, I'm new to modding and need help.
I'm adding heart events for Harvey, and want to add a special dialogue line after one of events, based on player's answer in quickQuestion where a Flag (addMailReceived) was given, and I don't know how to. Anyone maybe knows? T-T

torpid sparrow
#

oof idk if u can add an action inside a quickQuestion

#

if u are then i'd add a conversation topic

austere forum
#

How would that work?

torpid sparrow
#

you can add commands in an event and one command is addConversationTopic

#

a CT sets a topic for other NPCs to talk about, provided you add the appropriate dialogue lines for them

#

so that is half of what u want solved

#

i don't know if you can incorporate it with unique quickQuestion answers, i've just never done it

austere forum
#

Okay, either way, thank you for trying to help.
Would it be better to change quickQuestion to something else? So it works based on, idk, answer IDs or something? Is this a possible option?

torpid sparrow
#

hmm i'm really not sure about conditionals in events like that, i've barely used it and it was a while ago mayhaps someone else will know !!

austere forum
#

Thank you anyway!

frosty tree
calm nebula
#

Stats for March are gonna be fun!

torpid sparrow
#

oh yea

austere forum
#

omg I found a working solution! Maybe it's not logical (or maybe is, idk), but works just fine!

If anyone also has a problem like me, there's my solution for addMailReceived + quickQuestion combo in event

urban patrol
#

or that works too!

austere forum
#

It's probably one of the easiest ways and my brain was looking for something more complicated just because

torpid sparrow
#

i will file that away in case i need it :3

austere forum
#

okii!

fallow musk
#

How can i make villagers change their schedule temporarily for a day? and that day/moment is randomly triggered so i cant preconfigure it for a specific day
most of the NPC guides are about making new NPCs

torpid sparrow
#

like completely randomly triggered?

fallow musk
#

yeah, my C# code should be able to trigger this schedule change for the day

#

and the C# trigger is random within some day range and day time

lucid iron
#

In C# you can directly manipulate the schedule points to do what you want

#

The schedule is calculated one time in the morning though, so if you get the data to update before then it'll also work

fallow musk
#

thanks

#

can i temporarily make NPCs deviate from their schedule?

#

like walk to location x,y and wait there for 1 minute or something like that

lucid iron
#

Or you could take over their pathfindcontroller

lucid iron
fallow musk
lucid iron
#

Make sure to increase their speed, flip the ignore schedule thin, and uh figure out how to restore the schedule SMCPufferjail

scenic ferry
#

Does this??? Work in tiled??? I've just been doing the same thing with a content patcher EditMap but the wiki seems to imply you can just add them in here?

#

i could totally be understanding wrong though tiled confuses the ever loving shit out of me

opaque field
ocean sailBOT
#

Log Info: SMAPI 4.5.1 with SDV 1.6.15 build 24356 on Unix 6.17.0.14, with 61 C# mods and 55 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

fossil osprey
#

Quick question: The game is translated to Chinese, but is it actually simplified or traditional? I'm translating my mod (the ac plushies), and some names are written differently between simplified and traditional chinese, and unless I missed an info where both are available I only see one "zh" i18n file
Edit: I seem to have found the info, it's Simplified Chinese (if anyone wondered)

fierce vault
blissful panther
old edge
#

is it possible to explore joja office before the player opens the desk letter from grandpa?

ornate locust
#

That office just exists in a cutscene, and probably not any more of it than you can see in the scene

fickle thicket
hard fern
#

it's in minigames or something

brittle pasture
#

if you're doing C# anything is possible obviously; the question is how much of your own sanity you're willing to sacrifice patching/recoding the minigame

latent mauve
#

There's no actual map associated with the office, yeah. It's just a series of illustrations that get panned through for the cutscene.

patent lanceBOT
uncut viper
#

I know it's possible for farmhands to have a null currentLocation, but is it also possible for NPCs to have a null currentLocation? SDVpufferthinkblob

lucid iron
#

Like if they are in the characters list but have null location for some reason?

uncut viper
#

I ask cuz I got a comment about an NRE on this line so I feel like it has to be either a null currentLocation or a null NPC, but I have no idea what kind of situation results in me getting those from a Utility.ForEachCharacter() call, as I've never gotten a report about this before.

lucid iron
uncut viper
#

I thought you had to give them a name to even construct them

lucid iron
#

Yeah but it's not read only is it

uncut viper
#

I mean I guess not, but what reason would there ever be to set an NPCs name to literal null?

lucid iron
#

The thing is just I don't think the npc itself can be null here, gotta be some field on it which is null

uncut viper
#

It'd have to be either the location or name, because the NRE happens specifically on this line, not inside the NpcCacheData constructor

lucid iron
#

Mysterious...

uncut viper
#

Or well

#

If it was name, then it would mean the NPC itself is null

#

Since name is the first time it tries accessing the NPC

lucid iron
#

I guess u would have to just check for either

#

I don't remember if the location is actually set if u just add something to characters maybe go look for the on change handler

uncut viper
#

Naturally no log to try and investigate further to see if I recognize any mods that might be makin fake NPCs or somethin SDVpufferpensive

lucid iron
#

If there's nothing then maybe some mod is doing it

uncut viper
#

Does the characters list have an onchange handler?

#

Seems like it uses OnValueRemoved but not OnValueAdded

#

I'm just gonna wait for a log and hopefully remember to add in a bunch of random null checks soon, I guess

lucid mulch
#

I vaguely remember issues if NPCs went into the movie theatre like sve Claire but that was 1.5

uncut viper
#

This UpdateCharacters function happens at least once every 10 seconds so I feel like I would've gotten a lot more reports about it before if that was still the cause here

#

Unless you mean it was like in the transition between town to movie theatre and not just them being in the theatre, in which case this'd be some seriously unlucky timing, if so SDVpuffersquee

calm nebula
#

You have three layers of cache

#

That's awesome

#

Anyways, people have before inserted nulls into the character list

uncut viper
#

Wanted to cache as much as possible instead of sending data about potentially hundreds of NPCs every second SDVpuffersquee

#

Inserting nulls in there sounds scary why would they do that and cause problems for me specifically

#

how dare

#

And why has it never blown up on me before

orchid glade
#

Hello, is it possible to get a CP mod's config to show a block of text like this, or is that something only done in C#?

uncut viper
#

C# only iirc

orchid glade
#

Awwwwwww dramatic sigh

#

I think my whole personality grates against config option limitations tbh

ornate locust
#

You can make it so that it has text if you mouseover the option though

#

just not underneath it like that

orchid glade
#

Yeah, I know the "Description". I'm trying to work around needing lengthly explanations that get cut off in my UI at least.

#

How would I line break in the mouseover text?

ornate locust
#

Hm. Not sure if that works, maybe someone else knows

brave fable
#

you could try \n

orchid glade
#

I'll give it a go. I've seen line breaks appear in them, but the example I saw also failed to wrap on the lines that were not broken. Also that was probably C# too.

old edge
#

I intercepted the desk letter scene and added a dialogue prompt now that it works I was able to play the prarie kiing game from here. I'm trying to figure out if I can add any more features to this...

brave fable
#

start with cowboy hat if you beat the game SDVpuffercowboy

pine lark
#

I'd like a little help, if anybody could. I've made up a new farm, and I'd like to put some bridges on it that need to be repaired (like the beach bridge.) I've got the broken bridges set up with an Action object set on each of them in Tiled, and I've coded the event in my json, but I can't get the game to let the player interact with the bridge.

old edge
#

oh that would be cool if the player got something for playing the game before the game actually starts..

uncut viper
#

Replace the grandpa letter with a pink slip for playing video games at work

uncut viper
lucid bobcat
#

Is there an easy with with Tiled to see the X and Y locations that cause warping?

old edge
#

I added a gameboy sprite hidden beneath the desk

#

now maybe I can add a special item cowboy hat is perfect

#

hopefully it's not too difficult

pine lark
#

Ah. I have that installed, I just thought it was more for the community house and those.

brave fable
#

creating the existing hat is easy, adding a new elite cowboy hat is also quite easy

old edge
#

I need to add it into my C# code

brave fable
#

should be as simple as ItemRegistry.Create("(H)0")

old edge
#

is the prarie king game difficult? Stage 1 should allow for a normal hat maybe and then better hats for completing final stages....

lucid bobcat
#

After a lot of trial and error and a few hours of work
I understood how to make and customize my custom building and map and teleport in and out of it!!! Accomplishments xD

fierce vault
#

Is there a wiki page or CP doc I should look at too?

#

Ohhh

#

Wait

#

My values!

#

They need to be mod id-ed too don't they?!

#

I thnk someone mentioned that and I didn't get it then lol

#

I'm... going to go try that πŸ˜…

brave fable
#

imo prairie king is quite luck-based, you can cruise if you get a lot of coins early, or completely fail because you weren't able to get a damage upgrade ahead of stage 2

fierce vault
brave fable
#

a lot of runs are decided by whether you can actually kill a mummy lol

orchid glade
#

Reporting back on line breaks in config descriptions. Using \n inserts a line break -BUT- prevents the normal text wrapping behaviour.

fierce vault
#

Oh, wait

#

I may have realized another problem SDVpufferthinkblob

hard fern
#

uh oh

hard fern
orchid glade
#

Yeah it looks like that - but if you don't use ANY line breaks it does the wrapping automagically. But if you do use one, it expects you to do them all manually.

orchid glade
fierce vault
#

I have not fixed it yet. I guess I could try loading it

old edge
#

thanks I have added some logic in time to see if it works

urban patrol
brittle pasture
#

yes the issue is that you haven't loaded anything into either Portraits/{{ModID}}_SantaRed or Characters/{{ModID}}_SantaRed (+ others)

urban patrol
#

the target needs to match the texture

fierce vault
#

Oh πŸ€¦β€β™€οΈ

orchid glade
#

Yay I still got it

uncut viper
#

Technically you can also just remove the Portraits/ part from your Appearance data but it helps to stick with convention where possible

orchid glade
#

heresy

calm nebula
#

Which is more important

#

Junimo role or 10th anniversary role

uncut viper
#

Junimo!

calm nebula
#

I'm going to petition aquo to get you a special slitherlegs-junimo role

hard fern
#

i kinda wish i were purple

#

like regular slitherlegs

#

πŸ˜” but it would mean forfeiting my pufferchick

fierce vault
#

Would this be correct?{ "LogName": "Load Krobus Clothes", "Action": "Load", "Priority": "Low", "Target": "Portraits/{{ModID}}_SantaRed, Characters/{{ModID}}_SantaRedSprites, <etc. the rest go on like this>", "FromFile": "assets/{{TargetWithoutPath}}.png" }, Because I'm still getting errors πŸ˜…

hard fern
#

looks good... πŸ€” but depends on the rest of your json

#

and what the errors are

orchid glade
#

Do your assets include the {{ModID}} in the .png file name?

fierce vault
#

Still a lot of FromFile which matches non-existent file errors

fierce vault
uncut viper
#

They do.

#

Not the token itself, but your ModId written out.

orchid glade
#

Well, it is part of the targetwithoutpath

fierce vault
#

Oh

#

OH

#

OK

uncut viper
#

{{TargetWithoutPath}} basically takes everything in your Target field after the last / and uses that as the file name to look for

#

And it does this after evaluating what the token is, so your ModId gets turned into the actual modid from your manifest first

calm nebula
#

(If you want you could do Portraits/{{ModID}}/whatever)

uncut viper
#

Could do

fierce vault
#

So, Portraits/{{ModID}}/SantaRed?

uncut viper
#

As long as you then plan on looking for assets/SantaRed.png

orchid glade
#

And you file would be called SantaRed.PNG

#

yah

uncut viper
#

And then updating all of your Appearance entries to look for e.g. Portraits/{{ModId}}/SantaRed

fierce vault
#

Ok, I'll try that

#

The customs are showing now and no errors!! I also changed the values to do the same{ "Name": "Santa Red", "Value": "{{ModID}}/SantaRed" }, But did not change the config schema: ```"ConfigSchema": {

    "SantaRed": {
        "AllowValues": "true, false",
        "Default": "true",
        "Description": ""
    },``` It still works though! The only thing not showing now are my custom default sprites:```        {
                
        "Action": "EditImage",
        "Target": "Characters/KrobusSprites",
        "FromFile": "assets/KrobusSprites.png"
            
    },``` I'm guessing I should load these in, even though the default portraits work just fine with the edit image? Thanks so much for the help you've all given!!
urban patrol
#

load vs editimage is a personal choice; the issue is your target is wrong

devout otter
#

Krobus's default sprite's asset name should be just Characters/Krobus.

fierce vault
#

Oh, didn't realize the asset was named wrong. I did that because I had them all in the same folder, and couldn't use Krobus twice. I'll change all the paths and make a separate sprites folder I guess. Thanks!

orchid glade
#

Your asset can stay with that name

#

it's just the target that needs to change

brave fable
#

you're fine to simply use ```json
{
"Action": "EditImage",
"Target": "Characters/Krobus",
"FromFile": "assets/KrobusSprites.png"
},

fierce vault
#

Ohh I see what you all meant now

brave fable
#

you'd only need to also change the FromFile value if you were using {{Target}} or {{TargetWithoutPath}} in the FromFile value, since then it'd be relative to the Target value

#

or rather derived from

orchid glade
#

Unless you went {{TargetWithoutPath}}Sprites.png

fierce vault
#

I remember knowing the difference, and somehow just didn't see it here

#

Thanks for pointing it out

brave fable
#

targets are arbitrary asset names, they just happen to match with filepaths in the base game

orchid glade
#

As a mod user I prefer conventional file names, as it makes it easy to search my HD for stuff.

fierce vault
#

The characters/ is what specifies that they're sprites too anyway

brave fable
#

as a mod author my only concern is making something that works, if the users want to look at files they should probably sign a waiver

fierce vault
#

Thank you for the explanations!

hard fern
#

ive just started formatting my mods the same as vanilla's files

devout otter
#

Yeah, I put everything in the LooseSprites folder.

hard fern
fierce vault
#

If i formatted events like vanilla does, I think I would actually die

#

Especially if I have to do it without the help of any VScode extensions

#

Just remembered I need to add an i18n now lol, and I thought I was nearly done πŸ˜…

calm nebula
#

Also, will encrypt

#

Decryption keys will be provided to those who write me a letter

fierce vault
#

Oh no, I just realized my santa orange just looks like a warm red lol 😦

#

I mean, I knew it was on the border, but I don't think it makes a lot of sense in a config. Guess that's what the i18n is for

#

Is it bad I don't even like my non seasonal portraits anymore? Outside of a couple of expressions, the sprites, (and the seasonals), I don't think I even want to use my own mod anymore lol.

Guess those are enough reasons to keep using it, but I feel like he needs outfits for every season now.

hard fern
#

so uh SDVpuffersweats

fierce vault
#

Whyyyy, I need to know!

hard fern
#

ehe :3

#

(idk the real answer is i got tired of looking at it

#

much nicer in the Giant Event Block

fierce vault
#

Interesting. I know that way does save space. I think like multilining makes it feel more modular., personally

calm nebula
#

Technically you're still open source if you promise source available on request

#

You know

#

I only accept carrier pigeon

fierce vault
#

I like using falcons

#

I don't think I can send that over with pigeons around though

hard fern
#

i actually prefer carrier snail

hard fern
torpid sparrow
#

is there a reason why ur doing the actions in the json instead of in tiled? /gen

brave fable
#

typically you'd do it either to use CP conditions or CP tokens, such as {{ModId}} in the action value

torpid sparrow
#

ohh right fair

brave fable
#

to be clear, the 'tiledatas for the exterior of the house' covers lines 127~227 for the Backwoods edits, right?

hard fern
vernal crest
hard fern
#

What am i gonna do with an action warp at like. The top of the map...

vernal crest
#

Confuse players xD

gaunt orbit
#

running a transpiler inside another transpiler, what could go wrong

gaunt orbit
calm nebula
#

Wren, if you are "just" figuring out what to patch, look for PatchProcessor.GetOriginalInstrictions and the similar function that gets the modified instructions

gaunt orbit
#

hey, it works

glossy plinth
#

SDV Mods are still .NET 6 right? Not 8 or 10? (asks the man currently upgrading a huge project at work from 6 to 10)

gaunt orbit
calm nebula
#

That's what i do for similar stuff....to find the function I actually want to patch

#

Yeah

gaunt orbit
#

that is better

uncut viper
glossy plinth
uncut viper
#

I would personally assume that to be very unlikely (based on nothing but vibes).

glossy plinth
#

(but I'll survive)

lucid iron
#

Sinz was fiddling with getting SMAPI to run on net9+

lucid iron
glossy plinth
#

I don't actually need the newest language features. More it's been the fact that IRL I've been migrating a ton of projects from 6 to 10 to make the it security team happy.

lucid iron
#

I enjoy having field and thing?.prop = value

glossy plinth
#

yeah... I can see that

#

oh, I didn't realizre this mod of mine was that popular.