#making-mods-general

1 messages · Page 477 of 1

latent mauve
#

ah, okay, I didn't see any previous context when scrolling up, but I must not have gone far enough

lucid iron
#

Can u just call whatever skip event button calls on click

uncut viper
#

my context is just my memory from previous days, so not your fault

latent mauve
#

It sounded like a modded gameplay question out of context, LOL.

lucid iron
#

I suppose u could sorta click a menu if u call receiveLeftClick too but idk which one's event lol

loud sandal
#

Ah I see what you're trying to do. It seems like the second entry is overriding the first. For example:
If BathroomExpansion is listed last, then in that area the final tiles are always either:
-> Fireredlily_FarmHouse2_BathroomExpanded
-> Fireredlily_Farmhouse2_Bathroom
If you put BathroomRenovation last, then the expansion tiles get overwritten as well I think..

latent mauve
#

Right, no matter what order I use, one of the states get overwritten when I don't want it to.

digital herald
lucid iron
loud sandal
lucid iron
#

If you can avoid simulating input you should

digital herald
#

Im thinking of dismissing a Dialogue box, but I haven't found the exact method from SMAPI.

latent mauve
royal stump
#

is Data/HomeRenovations an option? it seems to have direct support for multiple flags, but idk why the wiki doesn't talk about it other than the migration pages SDVpufferdizzy

latent mauve
#

Esca, I'm having to use both in combination already as it is.

#

If I don't use the map property in addition, then the map simply doesn't update to include the renovation map.

#

Data/HomeRenovations is what is making it show up in Robin's list.

royal stump
#

sorry, no idea how the system works re: that asset

latent mauve
#

It's a weird system to be sure

uncut viper
#

yeah the map property directly uses the farmhouse map overrides and skips the robin middlewoman

latent mauve
#

I tried excluding the map property and that just meant the map never changed.

uncut viper
#

the wiki doesn't talk about it because no one cares enough about it SDVpufferpensive

#

Lily has used home renovations more than any other modders I've seen combined in like the last year

latent mauve
#

LOL

#

And I am still finding pain points.

uncut viper
#

the price you pay to be a pioneer...

latent mauve
#

Well, at least I have confirmation that it is indeed a limitation on the map property only checking for one mailflag. Thanks for looking into that, Button.

#

It's late and brain fog is hitting me hard, so I'll see if I can't figure out a workaround or an alternative to do what I want later ❤️

latent mauve
#

Yeah, I was trying to move away from doing EditMap directly to the farmhouse, because the behavior is kind of cursed, but I may have to go back to it.

loud sandal
#

Yeah it is scary for sure lol

latent mauve
#

Alternatively, I can just do it to the loaded Bathroom texture maybe.

royal stump
#

it seems like a dynamic token in the expanded entry for the inactive map (if open flag, use open, otherwise use empty) or a conditional edit to the empty map patch would do it

#

but yeah, probably several routes with CP features, it's just binary in the data itself

#

(I'd been misreading earlier and looking at trigger actions SDVpufferdizzy)

latent mauve
#

If I went back to config-based, then I would just be changing the Maps/Fireredlily_Bathroom entry based on if they wanted the small or large bathroom.

lucid iron
#

Fireredlily if everything else fails you can maybe use the mmap map overrides thing i made

#

It can apply after vanilla map overrides for sure

#

I feel a little silly to suggest this when it's kind of based on farmhouse renovations tho

latent mauve
#

Honestly, this would be less of an issue if I had the bathroom somewhere else, because then I wouldn't be creating the open space on the right side and shifting the contents left into the blank space.

#

The bathtub/changing area and mirror are the pieces that kind of block traffic and make it hard to add the empty space after them.

wet elm
#

Anyone got any tips on how to read a dll file? I have the app to open and edit it, but I can't understand it at all

#

Tag me if so please

digital herald
#

You will need to de-compile the file to read its content, or find the source code of it on github.

wet elm
#

It's batform I'm reading

#

I wanna make something similar just for my game that turns the farmer into a wolf

digital herald
#

I also just been learning C# for like 2 days, it will be a learning curve at first for sure.

ornate locust
#

It kinda is a different language, C#

loud sandal
#

You get used to it, just keep at it. Persistence in tears was it for me lol

digital herald
#

I just did a quick scan over the Bat Form, it seems like you will need to update the AnimalSprite, and the time of day when you can transform.
Other than that, the code should stay the same.

lucid iron
#

If u know java or some other oop before then not as bad

lucid iron
#

And the farmer has 3many animations tbh

wet elm
lucid iron
#

A lot of harmony

#

By sucks i just mean "difficult to work with"

#

Not that it's impossible to do what you want because you can do basically anything with C#

wet elm
#

C# specifically for Stardew

brave fable
#

honestly given there's a (massive) Fashion Sense content pack out there that does full-body farmer sprite replacements with pokemon sprites, i'd say it's entirely possible to change the farmer into a wolf with FS only

digital herald
#

@lucid iron I got it, after reading so much, it was Game1.exitActiveMenu();, much better than clicking around randomly.

cinder zodiac
#

Where to get free to use .tbin file for stardew?

hard fern
#

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

grizzled crescent
#

I'm throwing in the towel, I'm on my 15th attempt and I don't know why my mod won't show up in game D; SMAPI gives zero errors but they aren't showing up in Marnie's shop.
Please help someone ;.;

gentle rose
#

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

ocean sailBOT
#

Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on Microsoft Windows NT 10.0.26100.0, with 88 C# mods and 503 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

supple pecan
#

Is this kind of thing using mods? Or just for PC? I don't know I'm new to the game XD

vernal crest
grizzled crescent
iron ridge
#

(Isn't that livestock bazaar? Could that do skins individually?)

hard fern
#

(methinks so) (in regards to the ui layout thing)

grizzled crescent
#

My foxes are grouped under 1 fox D:

vernal crest
grizzled crescent
#

I wrote them just like my foxes but my foxes aren't doing this

vernal crest
#

I think you should double check that you did actually write them exactly like your foxes

grizzled crescent
#

This is what I get trying to copy and paste

#

I can't find anything different that I did ;.;

hallow prism
#

!json may help

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.

hallow prism
#

of the animal data

grizzled crescent
#

Did I not save the content file as a json? Did I save it in the wrong language?

vernal crest
#

The tanuki wouldn't be in the game at all if the problem was the file itself

hallow prism
#

it is just to see if we can see why they are showing individually

stray hemlock
#

I just published my first mod and am happy.

unkempt scaffold
stray hemlock
# unkempt scaffold Congrats! What mod is it?

Basically an add-on for the "Inches to Metric System" mod I made in correspondence with the author. The mod works by converting the minimum and maximum fish sizes into metric (though I suggested a change to that workflow) and that will permanently alter the recorded sizes of caught fish, making them three times bigger than they should be (not an issue when always using that mod and English).

#

I made a converter so that old save files will be re-converted back to inches in case you switch to a different language or stop using the mod.

#

I just realized that my code is a bit dirty, but it works.

unkempt scaffold
#

That sounds so complicated hahaha
Great work!

stray hemlock
#

Thank you.

woeful lintel
#

changing the data value directly to change the unit sounds like a bad idea™, but I guess it's fine for a mod

#

the "proper" way to do that is to just change the code that displays the number. Probably how the game does it btw, it could have saved you some time to use the built-in system?

stray hemlock
# woeful lintel the "proper" way to do that is to just change the code that displays the number....

I wasn't the person who made the original mod. But yeah, I agree, changing the data isn't good. Which is why I made my mod to "fix" old saves where the data has already been changed by applying the formula they used in reverse. Due to rounding it isn't exact, but it works well enough on already corrupted saves.
The new method I suggested is to simply add a new language, because the game will only use inches for vanilla English, not for a modded language that uses English text.

gentle rose
stray hemlock
gentle rose
stray hemlock
gentle rose
#

does the game not use the full language and region code? (genuinely asking)

#

english is en-EN (or default for mod i18ns) but other languages have things like pt-BR which I would hope is handled differently to pt-PT

#

(or whatever the portugal region code is)

stray hemlock
#

I've been using 24H Clock Language, which uses the same method, for quite a while and didn't encounter any issues. But maybe I haven't used any mods that could cause issues.

{
    "Action": "EditData",
    "Target": "Data/AdditionalLanguages",
    "Entries": {
        "English24": {
            "ID": "MetricEnglish",
            "LanguageCode": "en",
            "ButtonTexture": "LooseSprites/LanguageButtons.xnb",
            "UseLatinFont": "true",
            "TimeFormat": "[HOURS_12]:[MINUTES] [AM_PM]",
            "ClockTimeFormat": "[HOURS_12]:[MINUTES] [AM_PM]",
            "ClockDateFormat": "[DAY_OF_WEEK] [DAY_OF_MONTH]",
            "UseGenderedCharacterTranslations": "false"
        }
    }
}

As far as I know, the game doesn't check "ID", which is why it automatically loads English text simply based on the language code.

#

When you request a translation, it will automatically handle locale fallback (e.g., if a translation isn't available in pt-BR.json, SMAPI will check pt.json and default.json)
That sounds good enough to me. But I will read up on that. Thank you for the consideration.

gentle rose
#

fair enough! interesting that other mods use that. it may turn out that I was just having a kneejerk reaction and it’s a perfectly stable method for sdv

inland rain
#

is there a way to detect long press on an android touchscreen?

brave fable
#

you might have better luck asking in the android SMAPI (thai SDV) server, i've not noticed anyone here ever mention touchscreen gestures

inland rain
#

I just wondered if there was an SButton or smth

heavy pewter
#

It has buttonAHeld, buttonBHeld, buttonAPressed, and buttonBPressed

#

The screen taps are SButton.MouseLeft

inland rain
#

so I could detect MouseLeft and make my own long press logic ig?

heavy pewter
#

I think so

magic zodiac
#

Hello, I’m kinda new to this topic so please, bear with me while I try (emphasis on try) to explain what I want/need.
I wanna use more pixels/bigger arts for my stardew assets, like say 32*32.
How do I do that? Do I need a framework? And if so are there any available and working currently? :))

whole raptor
#

Weird question... but since we can in one action edit multiple assets with one FromFile, can we also edit one asset with multiple FromFiles? SDVpufferthinkblob

iron ridge
#

How would that work?

lucid iron
whole raptor
# iron ridge How would that work?

For example something like this:

"Target": "Portraits/NPC",
"FromFile": "assets/Portraits/Portrait.png, assets/Overlays/Overlay_1.png, assets/Overlays_2.png",```
So it'd apply those one by one. Overlays could be added with dynamic tokens depending on if they are needed, so we don't need multiple actions ![SDVpufferthinkblob](https://cdn.discordapp.com/emojis/958634925639225395.webp?size=128 "SDVpufferthinkblob") I doubt it's a thing, but would be neat imo
magic zodiac
#

Uhhhh lemme explain better, you know how sprites are mostly 16x16? I want more detailed ones. Ones that are 32x32 or even bigger :)

whole raptor
#

Oh wait.. it'd need to be 2 actions anyway, since one would need to be replace and the other overlay... unless all the other ones after 1st would be automatically set as overlays

magic zodiac
magic zodiac
lucid iron
hard fern
lucid iron
#

I do think it's probably worth considering if you really wanted 32x32 but y'know that's artistic preferences

#

Just dont go above 64x64 for a 16x16 and u good

magic zodiac
magic zodiac
whole raptor
#

Yeah, when I remembered about patch modes the whole question stopped making sense 😅 But I wonder if it'd be something worth considering in the future SDVpufferthinkblob

hard fern
#

not even sure how the order would work

#

like i guess the first file gets patched over first

whole raptor
#

Yeah, if not specified as a overlay 1st would be a replace, then each one after that as overlay? SDVpufferthinkblob

dusk terrace
#

Fairly sure i know the answer but just wishful thinking... SDVpuffercry Is there any way to get which mod requests an edit to an asset, similar to how you get the mod name requesting your api?

inland rain
whole raptor
#

I'm guessing you don't mean just checking the log to see which mod edits an asset? SDVpufferthinkblob

lucid iron
#

Secondary question is why i suppose

dusk terrace
#

Patching old issues lol

#

Old ddfc model all edit the same dict entry so it has been an issue logging who's the culprit when something goes wrong

#

It'll be fixed in the new release though, but issue will still be there with backwards compatibility

lucid iron
#

Yeah I don't think you can do much in finding exact one

#

Usually I just verify on an entry to entry basis to see of something is incorrect

#

Your new model has a new target right

#

Not the same data asset as previous

dusk terrace
#

Big respect to aedenthorn, but sometimes i seriously question why they chose to do things a certain way lol

#

New model has mods register new patches under their own name yea, similar to how you'd use CP or other content frameworks

lucid iron
#

Well u can just ask erinthe now that she's here Dokkan

#

I ask my past self why i did things a certain way all the time

dusk terrace
#

I dont blame them though, at the rate they were pumping out mods, future compat was probably low on the list xD

gentle rose
#

she’s literally the message below your question SDVpuffersquee

dusk terrace
#

Wait wah

gentle rose
#

erinthe is aedenthorn

dusk terrace
gentle rose
#

so just ask her SDVpuffersquee

boreal cliff
#

hey gang how do i get recolors to target custom vanilla tilesheets,,,,,

like i tried to modify a map patch with tiled, but after i modified it it started using vanilla colors,,,,,,,,,

dusk terrace
#

queue "she's right behind me isn't she"

hard fern
#

and also properly embed the tilesheets

#

wait what do you mean 'custom vanilla tilesheet'

#

if it's a custom tilesheet it's not vanilla

#

and will never be recolored automatically

teal thistle
#

how do I download smapi launcher on android

hard fern
ocean sailBOT
#
Android SMAPI

We are not able to provide support if you run into trouble or compatibility issues with Android SMAPI; please use the discord linked on the Android SMAPI github.

IMPORTANT: This is a highly experimental build and may be prone to glitches, bugs, or incompatibilities. Please see the wiki instructions for more information regarding installing the unofficial Android port of SMAPI for Stardew Valley 1.6.

Do not harass mod authors to make Android specific compatibility patches.

hard fern
#

this is the wrong channel anyways

#

(for asking about android)

boreal cliff
#

and by custom i mean copy pasted from the vanilla assets mb,,,,

lucid iron
#

It sounds like your map is referencing your png instead of the loaded vanilla sheet

hard fern
boreal cliff
#

ohhh

hard fern
#

unless you want to use the vanilla appearance

#

when you embed the tilesheet the game will figure it out for you, so long as you don't do any tilesheet climbing stuff

boreal cliff
#

i see

i love map modding SDVpetcatsad

hard fern
#

it's very fun :)

boreal cliff
woeful lintel
#

gonna be honest, it looks like hell as an observer

hard fern
#

do we have an "embed" command for tiled...

#

!tiled

ocean sailBOT
#

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

  1. Use Tiled to edit .tmx or .tbin files.

  2. Refer to the Maps wiki page for details on how maps work in Stardew Valley.

  3. Content Patcher allows you to create custom locations through editing Data/Locations

  4. Vanilla Maps can be edited via Content Patcher as well: EditMap

hard fern
#

eh.

boreal cliff
#

no command list from governor ? SDVpufferpensive

hard fern
#

well

#

there is a list

#

but it's

#

LONG

#

!tilesheetclimbing

ocean sailBOT
#

When creating or editing maps in Tiled, one common error is tilesheet climbing, marked by red text containing "invalid tilesheet path '../../..'. This is caused by SMAPI not being able to find the tilesheets needed by the map file. To prevent this error, make sure that you have a copy of all necessary tilesheets in the folder containing your WIP tmx file. Copies of vanilla tilesheets can later be deleted, but must be present while working on your map.

If you get this error with a completed map, an easy way to fix it is to open your tmx file in VS Code or a similar text editor, find all of the places with <image source=, and remove the filepaths to so that only the tilesheet names remain. For example, if the code says <image source="Content (unpacked)/Maps/townInterior_2" width="512" height="64"/>, change it to just <image source="townInterior_2" width="512" height="64"/>.

hard fern
#

mmm

#

well

#

this will probably work too

#

the second half

#

you can open the tmx in a text editor and cut out the file path

boreal cliff
#

tilesheet doesnt feel like a word anymore

#

but thank u vv much i get it now SDVpufferblush

boreal cliff
dusk terrace
#

imagine playing without such gameplay improvements as [Skip Intro]

hard fern
#

thats already in vanilla tho

#

skip the intro cutscene

brittle pasture
#

intro here means the mr ape splash screen before the main menu

hard fern
#

oh

#

the mr ape screen

#

i see.

#

i always click on him

#

XD

gaunt orbit
#

Same

woeful lintel
#

the escape key?

dusk terrace
#

the intro feels like an eternity sometimes lol

#

must be the adhd SDVpuffercry

whole raptor
#

I don't think I've seen the intro in years..

gaunt orbit
#

Well it takes ages to load my game with mods anyways, so usually I just leave smapi running in background while I do other stuff, and then when I hear the intro playing I bring the window up

#

I usually click through the menu animation, but the title screen doesn't feel that long to me, and I like clicking on mr ape

stray hemlock
#

I want to code, but the cat that is laying across my chest and stomach and purring is causing issues.

#

It's a cruel world.

#

Seems like mods will take longer to finish.

jaunty shuttle
#

So real

odd ginkgo
#

it didn't even occur to me

#

must be the OCD, I need the exact same dopamine experience everytime I open the game or it doesn't feel right

#

new NPC idea: single dad, grungy fisherman type vibe, overgrown beard and a big straw hat so you can't see his face. Later, heart scene where he shaves his face and reveals he's a handsome guy. His daughter is Jas's age, and it's implied that she's half-mermaid (i.e. widowed fisherman who once had a love affair with a mermaid). He would be friends with Willy? Tell me if this is an appealing storyline, or has already been done somewhere?

hard fern
brittle pasture
#

every story has been told before

#

but was it told by you is the important part

odd ginkgo
#

oh it's definitely a trope, I just meant in the sdv modding canon

hard fern
#

i think mermaids in general have been done before

#

specifically even half mermaids

odd ginkgo
#

🤔 there might be fanon to think about in terms of implying mermaid lore

#

ty

whole raptor
#

There definitely isn't any content about shaving the beard
(and good, cause that goes against all my principles SDVpuffersquee /lh)

odd ginkgo
hard fern
#

im a certified beard hater XD keep it off

whole raptor
#

It it grows back quickly into a shorter clean beard than I'm all for it SDVpuffersquee

brittle pasture
#

flashbacks to Disco Elysium ||shaved Harry||

odd ginkgo
#

🤔 excellent ty ty

brittle pasture
#

do not ||shave him|| worst mistake of my life

whole raptor
#

Now that I think about it.. would be fun if there was a bearded NPC and his beard's length changed depending on season SDVpufferthinkblob

brittle pasture
#

ngl I have never seen a single person who look better without a beard than with

whole raptor
#

Well... depends if it's an actual beard or patches of random hair 😅

brittle pasture
#

Vincent does not have a beard to start with

odd ginkgo
#

I'm a gay woman so I feel like I understand the appeal of beards *aesthetically more than anything

#

like the way someone understands avant garde fashion

hard fern
#

idk i like stubble more than a full beard

#

or a nice 5 o clock shadow

odd ginkgo
#

if I follow my own aesthetics we'll end up with the dad from Ponyo lol

#

looking forward to sharing some portrait options here later lol

subtle condor
#

How does a map spawn monsters? I am trying to do something similar to island West's tiger slime spawns, but I cannot find where or how the game actually does that. Maybe I just didn't find the right wiki page, but I simply cannot find it XD does anyone know how to do that or where to get info on how to do that?

brittle pasture
#

you need a framework like FTM of SpaceCore

subtle condor
#

Oooh, I completely forgot about FTM, I've been doing everything with CP XD thank you, I'll look further into that

gaunt orbit
#

Vanilla does it with c#.

drowsy minnow
#

why is adding forage so tiring AAA😭

#

i havent touched my forage mod in forever so i feel drained immediately looking at it
lowkey might just scrap what i got and restart it since the files and coding are all so messy rn

#

might have to study a bit and make some notes..tiredheadache

wet elm
#

Finally decided the mod I'm gonna make

#

Yokai Valley

#

@drowsy minnow I LOVE YOUR PFP IT'S ETHEREAL

dusk terrace
#

Would setting a field/property to null overwrite its default value?

data model:

class CustomData
{
  public int? SomeProperty { get; set; } = 0;
}

Content patcher:

{
  "Action": "EditData",
  "Target": "mod.customDataAsset",
  "Entries": { } // Default: SomeProperty = 0
}
 // vs
{
  "Action": "EditData",
  "Target": "mod.customDataAsset",
  "Entries": { SomeProperty = null }
}
drowsy minnow
wet elm
uncut viper
wet elm
#

I love art like that sm

wet elm
#

Qi Rong inspired assets, ig

uncut viper
#

Or rather I know it will but don't know if the nullable part is required

#

I do the same thing for Custom Museum Framework and it worked fine

lucid iron
#

Normally if it's a new entry then u should get the default value

#

You can confirm with patch export easily

urban patrol
#

there’s a GSQ for found all lost books, but is there one or a mail flag for a certain lost book? or like # found since they go in order?

uncut viper
#

they just go in order

urban patrol
#

and is there a way to track “has found seven books”

uncut viper
#

not as far as i know

#

you can check if theyve read the 7th book in the library

#

but not if theyve picked it up and just not read it

urban patrol
#

even better actually!

uncut viper
#

in that case, the mail flag is lb_<number>

urban patrol
#

excellent thank you

uncut viper
#

are you adding lost books? or just checking a vanilla one

urban patrol
#

checking that you’ve read the old mariner one

urban patrol
uncut viper
#

the actual note text is held in Strings\Notes.json, so anyone can technically change what any of the notes say, but i dont see any reason why someone would

#

someone can add more on to the end, but they still just go in order, and its difficult to do that anyway bc despite the keys being strings, they must also still be ints

urban patrol
#

ah okay so i don’t need to worry

uncut viper
#

i mostly asked because its hardcoded that 20 books = all of them

#

regardless of how many are actually in Strings\Notes or how many note map actions someone adds to the library

urban patrol
#

interesting!

#

okay wait i just went to the wiki to find out which # old mariner is and it said there are 21 books

uncut viper
#

21 then

urban patrol
#

oh ok lol

uncut viper
#

i forgot to count the 0

urban patrol
#

ahh

uncut viper
#

is it the one telling you you need a pendant?

#

"Marriage Guide for Farmers"

urban patrol
#

yep

uncut viper
#

thats 13 then

drowsy minnow
#

i need help

uncut viper
#

with making a mod?

drowsy minnow
#

the forage stuff is overwhelming me so badly especially because i cant find a non-complicated forage mod for visual reference(easiest way for me to learn vs reading paragraphs of explanations) and most if not practically all involve spacecore and i utterly cannot with github and how the spacecore stuff is set up to be read on there(i mean this respectfully im js overwhelmed)

uncut viper
#

unfortunately i am wholly unfamiliar with both spacecore forage and ftm forage

drowsy minnow
#

im just trying to find an easy forage way especially bc i want to be able to place heavy conditions(location & weather & sometimes date specifics) or an alt thing i can do insyead of forage

gentle rose
#

@next plaza update: writing texture2d bytes to a file does not work :(

hard fern
#

since it seems to be stressing you so

#

and come back to it later with a clearer head

drowsy minnow
#

yea :( im just sad i keep getting the creative bursts for sprites but cant do the coding

hard fern
#

people joke that sleeping a day helps both in-game and irl but sometimes just sleeping on it does help

drowsy minnow
#

very true

#

ill try focusing on other stuff

next plaza
#

As an XNB, or just in general?

gentle rose
#

xnb

next plaza
next plaza
#

Like in the code I sent, that snippet didn't include stuff like the XNB header

gentle rose
#

what version of monogame does stardew use Squint

next plaza
#

Or the decompile

#

Or the github fork with the SDV branches (not sure which one is the right branch though)

gentle rose
#

you're a bully SDVpufferwaaah /lh

#

(3.8.0.1641)

regal leaf
#

I wanna make a mod adding cooking recipes that would need crops that can already be found in the many Cornucopia mods. Should I add said mod in the dependencies of my own (and if so, do I need the permission of the mod creator?), or just create my own version of the needed crops?
I don’t think a lot of people will download my mod to begin with, but I still think about how having dupes of crops can be annoying for some people. 🙁

urban patrol
#

you don't need permission to add dependencies! you're welcome to create your own version of the crops, but if you'd rather not, it's not at all weird to require cornucopia

brittle pasture
#

you are free to make your mods depend on cornucopia

sleek igloo
#

can someone explain rq why some fields have // and others just use \ for filepaths?

#

whats the difference

#

I know there is one, I just can't quite figure out what

brittle pasture
#

they are mostly equivalent; \\ is used in data models that still use /'es to split their fields

urban patrol
#

it depends on where you're using it, but \\ is used to escape slashes in fields where that matters (for example, calling a texture in an event where / means continue to the next command)

brittle pasture
#

for example you can use ModId/Textures/Chairs in object data's Texture field for, but if you use that in furniture data the game will think you're trying to give it 3 fields named ModId, Textures and Chairs

sleek igloo
#

ohhhh I see

#

so \ is the alternate option when / is in use?

#

\*

#

\\

#

thank you!

#

I was trying to make vintage interface recolors for act of cooking but all the examples I looked at for patching another mod were different 😅

#

wasnt sure what to do

#

is adding .assets to the end of a mod id a way to tap into the assets folder? or is that a specific thing only certain mods do

#

I'm seeing this patch for love of cooking has blueberry.LoveOfCooking.Assets in the target field

brittle pasture
#

when loading a new asset, what the name is doesnt matter as long as it's unique

sleek igloo
#

right, I just mean the target path though

brittle pasture
#

yes

#

on your part what you need to do is use the exact same name as what they use

sleek igloo
#

I'm confused

#

in this patch, this is how it's written to tap into love of cooking { "Action": "EditImage", "Target": "Mods\\blueberry.LoveOfCooking.Assets\\Sprites", "FromFile": "assets/mod-sprites.png" }

#

but loc's mod id is blueberry.loveofcooking

brittle pasture
sleek igloo
#

ah, so then why does this work in this case?

brittle pasture
#

because that's the name LOC uses for its assets

#

not because there's any specific asset name scheme that allows you to access another mod's assets

sleek igloo
#

ahhhhh i found it, i was so confused where that came from

#

i didn't realize it was specified in the content file rather than the manifest

#

thank you for the clarification! SDVpufferheart

#

speaking of act of cooking, has anyone had their cookbook color change while in the kitchen menu? Mine goes very dark, like there's a dark semi-opaque filter over it

uncut viper
brave fable
#

i'm pretty sure that's an issue with a mod editing the inventory menu. maybe a backpack mod?

#

it's come up once before

#

see the cookbook isn't actually part of the menu, it's an animation drawn behind the menu

#

so if a mod adds a blackout overlay to the inventory menu, wawoosh

gaunt orbit
#

Oh, interesting

sleek igloo
#

I don't have a backpack mod SDVpufferthinkblob

#

oh i think I have a menu mod somewhere, that is probably it

lucid iron
#

that is cursed

sleek igloo
#

lmao it DID hurt my eyes

#

hmm i cant get the aoc patch to work, but the log doesn't seem to have anything to say about it either

#

i think I'm targeting the assets wrong somehow

#

is this not right? { "Action": "EditImage", "Target": "Mods/Kana.ActOfCooking/assets/Interface_1", "FromFile": "assets/{{TargetWithoutPath}}.png" },

#

i feel like its a dumb error staring me in the face

#

taunting me

obtuse wigeon
#

it's possible that the mod doesn't load assets via the content pipeline meaning they may not be editable with CP, I can't find a source for the mod, if you have one I'm happy to have a gander through it to see

uncut viper
#

^ its impossible to tell you if you're targeting the right thing when the mod you're editing can make up anything it wants for its targets and we dont have the other mod to look at

sleek igloo
#

yeah i think that's the problem, I have no way to see how its adding stuff

uncut viper
#

yeah, it isnt using the content pipeline

#

the assets are not targetable

sleek igloo
#

ok then, manual replacer it is

#

I just hate having to replace it every time there's an update sigh

obtuse wigeon
lucid iron
#

I been wondering if I could do something like

  1. Divide mod into 2 dll (still 1 manifest)
  2. Conditionally load the 2nd dll, when another mod is present
    Purpose is that the 2nd dll can therefore have hard dep on the other mod
lucid mulch
#

yes, though the second dll wont go through smapis rewriter stuff

#

technically you dont need the 2nd dll though

#

.NET will only get angry that the dependency is missing when a method that uses it is called

#

so as long as you have abstractions to keep logic from being called unless its loaded, you are fine

lucid iron
#

Hm the specific problem here is that I want to edit another mod's content

sleek igloo
lucid iron
#

What degree of abstraction would be sufficient to make net not angy when another mod (spacecore in this case) isn't there

#

I know I can do some dynamic classes stuff instead but y'know type checking would be good monS

lucid mulch
#

if isLoaded() new SpacecoreIntegration(helper)

and have that integration register the assetrequested event handler

sleek igloo
#

also. successsss

lucid iron
#

Hm I'll try it then

lucid mulch
#

you just need to not touch the compile time types in the method signature or body somewhere where it could be not loaded

lucid iron
#

It is sort of a perpetual problem with many competing solutions for cp style frameworks

#

What is the isLoaded method in this case?

lucid mulch
#

ModRegistry.something

lucid iron
#

Is it the smapi mod registry one or assembly

lucid mulch
#

SMAPI in a sense does this with stardew itself.
its early startup intentionally avoids any contamination with stardew so it can startup and then complain gracefully if stardew is missing

lucid iron
#

Hm wait wouldn't smapi rewriter bonk me for having missing things

lucid mulch
#

it only checks for missing things from the allowlist of vanilla assemblies

lucid iron
#

I wonder why i thought i needed to like

#

Reflect for lookup anything assembly to patch it

#

If this works then i ought to be able to just put the lookup anything patch in its own thing?

lucid mulch
#

actually I might be wrong, I know the rewriter had an allow list, but I think the generic missing assembly reference isnt

brave fable
#

also the author of the Act of Cooking is in the server from time to time, so you can probably ask them to update their mod to use the content pipeline, or submit the changes yourself if you can

lucid mulch
#
            // detect broken assembly reference
            foreach (AssemblyNameReference reference in assembly.Definition.MainModule.AssemblyReferences)
            {
                if (!reference.Name.StartsWith("System.") && !this.IsAssemblyLoaded(reference))
                {
                    this.Monitor.LogOnce(loggedMessages, $"      Broken code in {assembly.File.Name}: reference to missing assembly '{reference.FullName}'.");
                    if (!assumeCompatible)
                        throw new IncompatibleInstructionException($"Found a reference to missing assembly '{reference.FullName}' while loading assembly {assembly.File.Name}.");
                    mod.SetWarning(ModWarning.BrokenCodeLoaded);
                    break;
                }
            }

but the rewriters use

    private readonly ISet<string> ValidateReferencesToAssemblies = new HashSet<string> { "StardewModdingAPI", "Stardew Valley", "StardewValley", "Netcode" };

as their search path for rewriters

#

but you can hide from the first block by having the hard dependency in the second dll

uncut viper
#

i do look at the MethodInfo and turn it into a delegate in order to register the trigger action, but i dont actually call it

lucid iron
#

Weh

#

I'm tabling this for later when someone actually need it

#

The idea was that im lazy and don't wanna do animation stuff but the way I am dealing with textures makes using spacecore animation as is impossible

#

So i was gonna let ppl give me some data that I'll give to spacecore asset with the correct computed target rect and texture name

lucid mulch
#

probably for good reason as it can be a pita to troubleshoot if you didn't intentionally put guards in place to prevent the runtime from being spooked

uncut viper
#

which i didnt bc i forgor so BETAS actually has a hidden hard requirement on CP for the time being

#

its fine no one plays without content patcher anyway,

lucid mulch
#

if you lived entirely in reflection you would be fine due to no assembly reference but also be annoying for larger things

brittle pasture
#

(this + optional content packs make me wish for a "load if mod is present but don't complain if it isn't" feature)

uncut viper
#

i actually originally did it with reflection before switching to a hard dep bc i didnt realize smapi would refuse to load it lol

#

and ive been too lazy to go back and change back to reflection bc of the aforementioned no one plays without cp anyway

obtuse wigeon
#

gunna map a CP less pack just to spite you Button

uncut viper
#

user error

lucid mulch
#

tbh does BETAS do anything if you didn't have any cp packs to use its triggers?

uncut viper
#

well, a C# mod can use its triggers and stuff

#

i dont know if there are any C# mods that do though

#

if we ignore C# mods then yeah no content packs = nothing happens

#

well thats actually not true. it does have that NPC cache stuff i added for multiplayer

#

that will happen in multiplayer regardless of any packs using the other features

lucid iron
#

hm i am massive dum actually

#

theres 0 reason for me to actually use an intermediate texture 2d now kyuuchan_run

#

nvm i am still using it to make it possible to omit the color overlay blobcatgooglyblep

boreal cliff
#

so peak

the map edit i did is working now SDVpufferparty

true lynx
#

issue wierd block using content patcher
Code ```{
"Format": "2.8.0",
"Changes": [
{
"Action": "Load",
"Target": "Characters/Farmer/Farmer_base",
"FromFile": "assets/farmer_base.png"

    }
]

}```
Trying to change farmer base i have no idea if its my mod.. my sprites or content patcher tell me if you need more info added my asset that im try to replace with\

obtuse wigeon
#

Just tried installing one of my mods through stardrop and I'm getting this error: https://smapi.io/log/0f24ade502264e76b4a7bad923194237
I'm assuming it has something to do with the manifest.json hoewever the validator isn't showing that anything is wrong: https://smapi.io/json/manifest/dbcf1abd1dd144e3a2196146bccb4b28
Hoping someone with a better understanding on C# errors can tell me if this is a manifest issue on my part or a stardrop issue I need to look into more, been looking at the code behind stardrop for a little while now and can't find where the error could even occur

ocean sailBOT
#

Oops, couldn't parse that file. Make sure you share a valid SMAPI log.

uncut viper
#

stardrop issue, my guess is file path too big or somethin

uncut viper
#

its in a substring call so just look for wherever is using substring in that function, idk stardrop source

obtuse wigeon
true lynx
#

i dont think so

#

sorry im new

#

i think i joined 10 or 5 minutes

tight rivet
#
16:48:37    ERROR    game    Festival 'spring2' doesn't have the required 'conditions' data field.
16:48:48    ERROR    game    Festival 'spring2' doesn't have the required 'conditions' data field.``` I so wish I could trace down what mod is causing this
urban patrol
obtuse wigeon
tight rivet
#

I.. do not.

uncut viper
#

assuming you are using Content Patcher to load your assets, a patch reload should reload them

tight rivet
#

... I do have the fox mods though..

uncut viper
#

ive no clue what sprite sheet extender is

true lynx
uncut viper
#

but there is no other way to reload assets added via Content Patcher

#

i would double check that you are correctly editing the right pictures and that they are properly Loaded into your game

#

rather than using internal asset keys (if they are)

obtuse wigeon
true lynx
urban patrol
uncut viper
#

if the things that are not reloading are things using Sprite Sheet Extender specifically, then its up to Sprite Sheet Extender to handle asset invalidation correctly, which it may not

#

looking at its mod page, it doesnt look like its using content patcher at all?

ocean sailBOT
#

Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on Microsoft Windows NT 10.0.26100.0, with 157 C# mods and 265 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

tight rivet
#

yes, thank you, I did. >_>

obtuse wigeon
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.

tight rivet
#

it is

#

It is a "known issue"

#

(follo0wed your link)

#

thank you so much!

urban patrol
#

np, i'm just surprised i could help lol i haven't browsed mods in months until today

latent mauve
tight rivet
#

and now to see if I can fix it..

urban patrol
#

ooh if you can i'll add it to my playthrough! i passed on it because i didn't know if i'd even get to y2

true lynx
drowsy pewter
#

Farmer sprites are unique in that the game needs to be closed and reopened to edit them

latent mauve
drowsy pewter
#

Was a huge issue with SVO's seasonal farmer sprites for a long time

#

Conditional farmer sheet stuff just doesnt work

drowsy pewter
#

Unless this was fixed in 1.6.16

#

1.6.15 i mean

#

Well it sounds like you're using another framework anyways so no

#

But Im chiming in on farmer sheet editing in general, idk if this was fixed in the past year

#

Its up to the framework to add mod refreshing capabilities

#

Most mods other than cp dont have mod refreshing functions

uncut viper
#

i think SSE is more of an outlier in that regard tbf if you dont count a deprecated one like JA
AT and Fashion Sense both have reload commands for example
idk what exactly you need SSE for but it might be worth considering if you can do it in FS instead

obtuse wigeon
#

is there a way I can hide a config option in a CP pack while still keeping it so it can be used? or would a better option just be to put it in a "depreciated" section? I want to migrate a building from a single building with a config to change interior size, to a building with 3 tiers total

uncut viper
#

no

obtuse wigeon
#

gotcha, depreciated section it is, ty

tight rivet
#

I thiink the solution's fairly simple:

#
            "Action": "EditData",
            "Target": "Data/Festivals/spring2",
            "Entries": {
#

it probably should be Load

#

because it doesn't exist yet

#

testing c.c

uncut viper
#

no, theres a blank.json load in the content.json

#

if that was the issue you would get a much different error

tight rivet
#

.. if that's to me, there is no such blank load

uncut viper
#

i am looking at it

#

the first change in content.json

tight rivet
#

uh..

#

yeah, you're right.

#

Weird. Well, time to figure out why it's not loading in conditions then

latent mauve
#

(Even if you think there isn't a load, it's still not best practice to load anything other than a blank JSON with a priority for any data asset other people may want to add to)

tight rivet
#

..oh.

uncut viper
tight rivet
#

hm.

tight rivet
#

Honestly, I thnk I just want ot move the festival initiation within the actual when patch

uncut viper
#

for most assets i ofc very much agree though

latent mauve
#

Button, I think the problem might still come up if anyone else makes a festival on that same day in their own mod?

uncut viper
#

thats the second half of what i said

#

it doesnt matter if the mod loaded a blank or a pre-filled spring2.json, so long as it was low priority

latent mauve
#

I'm gonna be honest, my focus is shot so I think my brain completely glazed over at the second part

tight rivet
#

.. if you have two festivals on spring2, one's going to have to lose unless it's passive anyway

uncut viper
#

even if they loaded spring2 exclusively and the other person loaded priority low, theyd still be doing editdata after, so its still safe

#

passive festivals use a different data asset as well anyway

tight rivet
#

right, yeah

#

anyway, I think just loading the blank file within the HasFlag will resolve the issue

uncut viper
#

if the blank load is happening before the actual data can be (bc of when conditions) that would be the problem id think tho

tight rivet
#

.. to be kinda honest

#

eh

#

it feels weird to load assets you know won't be usable, but >_>

uncut viper
#

its not weird if you arent aware that the game is going to complain about it if it finds it empty

tight rivet
#

fair

#

author does seem to know but I bet they just haven't had time to fix it since May

#

"Notepad: hey, want to enable copilot to help you edit this json???"

#

"Me: No."

uncut viper
#

(also i think the most common case of a blank load is for events i imagine? which is completely safe to have empty, so could just be habit)

#

(i forgor where else blank loads are used commonly)

tight rivet
#

ahh

uncut viper
#

oh dialogue and stuff duh

tight rivet
#

as much as i am trying to learn CP

#

events scare me

#

thank you, though!

latent mauve
#

(any brand new JSON file target where you might use {{ModId}} is a valid place for a blank.json load, so you can use EditData to add the tokens)

autumn tide
#

hellooo can ItemDelivery quests have several item IDs to be delivered?

#

like the quest requires multiple items

brittle pasture
#

don't think so
you'll need a special order, but the current version of SDV doesn't support special orders that never expire yet

autumn tide
#

aw :(

urban patrol
#

you can do a series of quests though

autumn tide
#

hmmm tryna think of a way i could walk around the expiry date

latent mauve
#

What's the use case here?

autumn tide
#

Oh, a quest (or delivery ig) where Krobus asks the player for a variety of items that they eventually use to make a warp rune thingy

latent mauve
#

Any reason why it needs to be one quest rather than a series?

autumn tide
#

hm, it could be a series! just wanted it to be fairly quick as opposed to drawn-out

#

hmm

urban patrol
#

do you want to see the way i handle three item delivery quests at once

urban patrol
#

quests.json:

            
            "{{ModId}}_SeanceIngredients2": "ItemDelivery/{{i18n:{{ModId}}_SeanceIngredients2.title}}/{{i18n:{{ModId}}_SeanceIngredients2.text}}/{{i18n:{{ModId}}_SeanceIngredients2.objective}}/CharlesRowland (O)156 1/-1/0/0/false/{{i18n:{{ModId}}_SeanceIngredients2.reaction}}#$action AddMail Host {{ModId}}_SeanceIngredients2 received",
            
            "{{ModId}}_SeanceIngredients3": "ItemDelivery/{{i18n:{{ModId}}_SeanceIngredients3.title}}/{{i18n:{{ModId}}_SeanceIngredients3.text}}/{{i18n:{{ModId}}_SeanceIngredients3.objective}}/CrystalPalace (O)376 1/CuringNiko_{{ModId}}/0/0/false/{{i18n:{{ModId}}_SeanceIngredients3.reaction}}#$action AddMail Host {{ModId}}_SeanceIngredients3 received",```
#

and i give all three in a letter

autumn tide
urban patrol
autumn tide
#

also i'm intrigued by seance ingredients 👀

autumn tide
uncut viper
autumn tide
uncut viper
#

oh, i said it bc i assumed you were saying that bc you thought they did expire

autumn tide
uncut viper
#

ahh, i see, missed that part from selphs message. glad to reassure anyway at least SDVpuffersalute

latent mauve
#

I'm going to hazard a guess that it's the second row second column post

sleek igloo
#

@drowsy pewter obligatory bug report, sir! SDVpuffersalute 20:07:05 ERROR game Trigger action 'Cornucopia.CookingRecipes_QoSRadio_RecipeBody' has action string 'Spiderbuttons.BETAS_Message Mille-feuille! Despite its 'million' layers, it’s not fussy; it’s precise. It’s the kind of dessert that rewards patience, celebrates craftsmanship, and says, You deserve something beautiful today. Layers of flaky pastry and cream, so smooth, so rich. And the top? That signature glaze, striped with chocolate, dragged into that iconic feathered pattern with the tip of a knife... true' which couldn't be applied: optional index 2 (bool Typing?) has value 'deserve', which can't be parsed as a boolean.

Full log: https://smapi.io/log/9877fa3031c946d883bb336244ed324a

ocean sailBOT
#

Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on Microsoft Windows NT 10.0.26200.0, with 165 C# mods and 864 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

sleek igloo
#

normally i fix these sorts of things myself but I have no idea how to use Button's mod and I figure more folks will find their game being crashy after checking the radio with that

uncut viper
#

(not enough escaping; the i18n token is escaped properly, but then you have more escaped quotes inside the i18n dialogue itself)

sleek igloo
#

(I don't really know what that means fhweifhei)

uncut viper
#

(dw thats for 6480 to see)

sleek igloo
#

I know I'm dumb about code but I DO like to learn, what is it?

#

escaping in this context

uncut viper
#

in the json somewhere there is this trigger action happening:

"Spiderbuttons.BETAS_Message \"{{i18n:Radio_{{TodaysRecipe}}}}\" true"

that i18n token is being replaced with the actual i18n ofc, so it becomes this:

"Spiderbuttons.BETAS_Message \"Mille-feuille! Despite its 'million' layers, it’s not fussy; it’s precise. It’s the kind of dessert that rewards patience, celebrates craftsmanship, and says, \"You deserve something beautiful today.\" Layers of flaky pastry and cream, so smooth, so rich. And the top? That signature glaze, striped with chocolate, dragged into that iconic feathered pattern with the tip of a knife...\" true"
sleek igloo
#

oh the quote inside?

uncut viper
#

thus it sees the escaped quote before "You deserve" and thinking thats the end of the first escaped quote, before Mille-feuille, which was before the i18n token

sleek igloo
#

why is it called escaped though

uncut viper
#

therefore it thinks thats where the actual message part ends, and then it tries to parse the rest of the dialogue as other stuff

sleek igloo
#

(i can assume but yknow what they say)

uncut viper
#

because if you have a string like this:
"i am string!"
then json parsers use those quotes to determine where the string starts and ends. if you want to use a quote in the string, you need to tell the parser that this special quotation mark is not marking the end of the string, i want to literally use it in my in this case dialogue
so the slash must... escape the parser, i guess, is the reasoning behind it.
"i am a \"string\" apparently!"

#

the slash tells the parser that the character after it has no special meaning and should be taken literally

#

"escaping" is not a stardew term, it's not even a json term it's used generally in programming. dont know the exact origin of using the word "escape" specifically

sleek igloo
#

ahhh okay, thank you!

uncut viper
#

this is also why you see \\ used in asset names, because the \ has a special meaning, because it acts as... the escape character! so you need to escape the slash so the parser knows you arent trying to escape something else

sleek igloo
#

also sorry for always having so many annoying questions, this is how i learn/attempt to understand things I can't quite get my head around SDVpufferlurk

uncut viper
#

which is why it can be very easy to get into nested escape hell if you try to put quotes inside quotes inside quotes and havbe it all come out right

#

they arent annoying!

#

if anything, they let me practice my explanations for when i eventually write more tutorials and help me figure out where some things might not be clear to people SDVpufferthumbsup

sleek igloo
#

I worry I'm being difficult SDVpuffersweats or that someone might think I'm being deliberately dense and get upset

#

but thats a me problem

uncut viper
#

ive never seen someone in here get upset at someone for trying to learn when its been clear that the person was actually, genuinely trying to learn, and not just trying to pass off the work of learning to someone else to tell them how to do everything with little effort on their part

sleek igloo
#

this is true, but the internet is scary fweifheif

uncut viper
#

if someone gets mad at you for it then you sic the junimos on them SDVpufferthumbsup

sleek igloo
#

I say this because I used to write for a blog many years ago and I got a LOT of nastiness

uncut viper
#

oh, and for the 6480 backreading this, i see this error will also probably happen with the Cannoli

obtuse wigeon
#

the general internet is a fickle beast, usually filled with equal amounts of good and bad, here though, it's a wonderfully curated community with plenty of people willing and able to help across any time of day

sleek igloo
#

(my point is, thank you guys for being so nice and patient with me) SDVpufferheart

uncut viper
sleek igloo
#

I have no social media, just the very occasional discord chat

tiny zealot
#

protip: never try to do anything with stardew's fonts. i have complained about them before but every day i learn a new thing about how they are handled which drives me the slightest bit more insane. they are fractally wrong. stay away (/lh)

sleek igloo
#

ahahaha

#

i feel that way about a few assets, though I think a lot of it is better these days than when I started modding

drowsy pewter
#

damn escaped quotes

uncut viper
#

if its easier you can just load your i18n to some string asset and toss in a translation key instead

drowsy pewter
#

Hmm

#

might account for translators sticking quotes in too

uncut viper
#

single quotes instead would also work, though i understand they dont really look as fitting sometimes, and it also wouldnt stop a translator from accidentally using double quotes either

#

replacing the double quotes around the trigger action itself with single quotes might also work? uncertain

drowsy pewter
#

Yeah I'll swap to single quotes as the first thing

uncut viper
#

like:

'Spiderbuttons.BETAS_Message "{{i18n: etc}}" true'
drowsy pewter
#

translators love to goof around though hehe

uncut viper
#

... except use single quotes and not backticks like i did

#

i think that would actually fix it bc itd mean the escaped quotes inside the i18n dont need to be changed at all bc theyll be escaped correctly already

#

i think

#

dont quote me on that no refunds if im wrong

#

dont singlequote me on it either

narrow owl
#

when making recipes is there a way to make it be able to be bought if so how (cooking) ik there are diff things like /s fishing 9 or /f leo 3 but is there one for shops?

tight rivet
hard fern
narrow owl
hard fern
narrow owl
narrow owl
hard fern
narrow owl
drowsy pewter
#

You're welcome to look at cornucopia code as well, it's all on github (so can be viewed on your browser), though its quite a large mod

narrow owl
brittle pasture
#

shop data uses common spawn fields as noted on the shop page, check the documentation on that link

#

you can also look at the vanilla entry for Pierre's Dehydrator recipe or Willy's Fish Smoker recipe

vernal crest
stray hemlock
# uncut viper because if you have a string like this: `"i am string!"` then json parsers use t...

Interestingly, the history behind it is the opposite. The normal mode for teletypes and printers was to simply print all text, and you needed an "escape" character (which was the original purpose for the Escape key) in order to make it do different stuff. In a way, it would "escape" from it's normal way of operation.

Nowadays strings are a specific type of data inside a bigger meta-context, and as such the meaning has basically flipped.

#

You can still use these sequences nowadays to change the color of the text in the terminal, for example.

smoky sage
#

OMG, I'm back again. I checked my content and added Action to each one, but this problem still occurs. What should I do? 😭

#

[Content Patcher] Ignored Zayne > invalid: must set the Action field.

stray hemlock
#

Why this not working...

hard fern
#

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

stray hemlock
#

The bot doesn't like me.

ocean sailBOT
#

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

stray hemlock
#

And now it's mocking me.

smoky sage
#

It says I have no errors!🙀🙀

gentle rose
stray hemlock
#

I'll test the new JSON in a few minutes, but right now I can't see any big issues.

smoky sage
#

It is so sad--Then I’ll go check for any other issues… 😣

#

Wow! It seems to work after I deleted one file! But the character still won’t load—though there are no more errors now! I’ll keep working on it 😋 Thank you all so much!! ❤️❤️

smoky sage
stray hemlock
smoky sage
devout otter
#

So, I wanted to remove Lewis's truck for an event, and tried usingremoveTile <x> <y> <layer>. But this apparently removes the tile forever! Is there a way to get them back? Or is there any other way to remove tiles only for an event?

drowsy pewter
#

ive been told it comes back the next day ?

devout otter
#

It didn't, but maybe that's because I was using debug sleep. Let me sleep properly...

drowsy pewter
#

i think you can also add the tiles back at the end of the event can you

gray bear
#

the truck has left...

drowsy pewter
#

Truck? What truck? SDViconghost

devout otter
#

So it doesn't come back after sleep, but it comes back if I quit and load.

drowsy pewter
#

that must be what i was thonking

gray bear
#

i did check the wiki and it seems like there's no option for like a temp map, which seems troubling

devout otter
#

Well good enough, I guess/

finite ginkgo
gray bear
#

would makeInvisible help here? oh wait, same issue

stray hemlock
devout otter
#

Save the state?

stray hemlock
#

Of the map before removing the truck.

devout otter
smoky sage
finite ginkgo
#

You can force invalidation of the mal with what would amount to a blank patch to the map, if you want it to be immediate use a locationChange update rate,- yeah

stray hemlock
finite ginkgo
#

(though I'd personally not use location change on it, let it reappear overnight and just tell users "suspense of disbelief" "well it's not breaking your game so why are you complaining" /silly)

devout otter
#

It disappearing and only appearing the next day is actually ideal. Maybe I'd use trigger so the blank map applies on the next day only. Thanks for the tip!

finite ginkgo
#

Np!

devout otter
#

Portraiture does support high-res portraits. But it would need more step on behalf of the users.

gray bear
devout otter
#

If one wants to have high-res portrait immediately working via Content Patcher, currently the best working framework to do it is Scale Up Unofficial.

stray hemlock
stray hemlock
devout otter
#

Hm, I've never had any problem with it. At least portrait-wise. The thing about the original Scale Up 2 is that it's pretty taxing and give a noticeable performance hit if it's handling many portraits.

gentle rose
#

I'm currently in the performance mines with my framework SDVpuffersquee

devout otter
gentle rose
#

do you remember when you were getting performance hits? or was it just always?

stray hemlock
#

I guess I need to try again.

devout otter
#

(Also the unofficial version was made to begin with to reduce performance impact.)

gentle rose
#

-# uberbot remind me in 1 hour to try to figure out why content unload isn't working

patent lanceBOT
#

Ask me one more time and I'm going to jam a paperclip into my reset button. (#6968350) (1h | <t:1764166834>)

gray bear
#

guess it doesn't like whispering

devout otter
gentle rose
#

oof, even outside of dialogue?

devout otter
#

Yup. Just walking around.

gentle rose
#

oh wait scale up is also for sprites, isn’t it

devout otter
#

I didn't notice it with my PC, but on my laptop, phew.

devout otter
lucid iron
#

Scale up can do any texture as long as you get to do the Load i think

stray hemlock
#

For me I have frame drops when picking stuff up with right-click. I always blamed the Right-click Move Mod, but maybe the frame drops only become noticeable because Scale Up 2 slows everything down.

stray hemlock
gentle rose
#

unrelated but hehe I love my npc realm

#

chu has access to it but decided not to try it SBVPensiveButt

devout otter
#

Spoilered NPC!

gentle rose
#

damn, grandpa needs spoilers now

devout otter
#

I'm still very amused that the Bouncer is like a whole NPC.

drowsy pewter
#

what the hell are you doing with them

gentle rose
drowsy pewter
#

you cannot do everything in the name of science

gentle rose
#

them being clones also means that qi, leo and krobus don't have annoying hardcoded dialogue any more 😌

drowsy pewter
#

first it starts with testing portraits... then cloning people... then putting all the clones in a nature reserve on an island and charging for access...

gray bear
#

error npc

#

and also just a bear

devout otter
#

(Bouncer being a whole NPC is like 60% of the motivation behind Portraits for Extras. Every time I worried "is this too much" I reminded myself "fricking Bouncer has a portrait".)

gentle rose
#

do you like the bear? he's the most annoying out of all of them because for some reason his sprite is set as 16x32 and then hardcoded

gray bear
#

hardcoded bear

lucid iron
#

Boncher...

gray bear
#

hes very cute

smoky sage
hard fern
#

i like how bonch just explodes when you show him the club card

stray hemlock
gentle rose
#

oh btw dolphin my portrait framework mod, even on my potato, only has a single stutter when you first start talking to an npc in a play session and that's it, sooooo SDVpuffersquee

gray bear
#

😎

devout otter
#

Yey! I'm excited for it! I've been preparing to promote (force) it to some portrait modders.

smoky sage
gentle rose
#

I'm hoping that by the time it's ready for the official release I'll even have some converters made

stark mason
#

I’m making a new machine and need some help with PreserveId. I want the product to inherit the flavor of the input item but whenever I use DROP_IN or DROP_IN_PRESERVE it’s not working how I thought it would?

Basically I want a machine that makes cheap wine fast but the output is either my cheap wine item but no flavor or it’s vanilla flavored wine with a cheap price. The problem is when you combine vanilla and modded items in your bag the prices change to match.

exotic token
#

where is data on the path on a map an npc makes

hard fern
#

so it's not really a set in stone path that's on a map

exotic token
#

oh thats a relief

#

i was worried i'd have to edit directions for an entirely set path

patent lanceBOT
hard fern
#

oh my

#

has dacar been providing you with all the rsv npc portraits for testing XD

gentle rose
#

the main issue with trying to profile ram is that my pc is already using up this much withOUT stardew running...

gentle rose
#

I probably could make a separate npc realm only for npcs that have portraits in my framework SDVpufferthinkblob

...Later™

#

okay I closed everything I could on my pc, will this actually help? let’s find out

a second monitor would be nice right now, I say as I have an unused monitor and an extra monitor arm right there

stray hemlock
gray bear
gentle rose
#

anyway, once I closed some stuff it went down to roughly 40% utilisation

#

(in fact, on my linux machines, I have a performance polybar I can bring up with a shortcut that shows ram utilisation haha)

narrow owl
#
    "Format": "2.8.0",
    "Changes": [
        {
            "Action": "EditData",
            "Target": "Data/Shops",
            "TargetField": [ "FishShop", "Items" ],
            "Entries": {
                "(O)219": null,
                "Example.ModId_Pufferfish": {
                    "Id": "Example.ModId_Pufferfish",
                    "ItemId": "(O)128",
                    "Price": 2000
                }
            },
            "MoveEntries": [
                { "Id": "Example.ModId_Pufferfish", "BeforeId": "(O)685" }
            ]
        }
    ]
}```

this is the ex of editing shops on wiki, is the (O)219: null removing and already existing item and pufferfish is creating the new one??? and what does move entries do? sounds self explanitory but idk
heavy pewter
gentle rose
#

correct for both! and move entries moves the pufferfish entry up in the list above whatever is (O)685

narrow owl
#

is there a way to download the stardew wiki? im going on a flight and I wanna code on it so wiki should be helpful

gentle rose
#

not really afaik, and its servers are kinda fragile so I can't recommend it unfortunately. the wiki bot actually needed to get a special captcha exception

gentle rose
heavy pewter
#

I've tested it like 8 times now, actually that's a part of a bigger snippet, all the rest are working, it's just that part isn't. I checked the raw logged too and and the rest of the other buffs I added are being detected.

#

Smapi says no error at all

gentle rose
iron ridge
whole raptor
#

Hmm... decided to change the queries into the simpler version of CMCT's tokens...

  "Name": "e0",
  "When": {
    "HasMod": "Parrot.RomRas",
    "Spiderbuttons.CMCT/Config: Parrot.RomRas, Portrait Mode": "12"
  },
  "Value": "0"
},```
Resulted in
```[Content Patcher] Ignored Romanceable Rasmodia - Female Wizard > 'e0' token: its When field is invalid: Mod or pack not found..```

Is this not how it's suppose to look? ![SDVpufferthinkblob](https://cdn.discordapp.com/emojis/958634925639225395.webp?size=128 "SDVpufferthinkblob")
#

For comparison, when I used "Query: '{{Spiderbuttons.CMCT/Config: Parrot.RomRas, Portrait Mode}}' = '12'": true there were no issues

lucid iron
#

You can't use them in same block

whole raptor
#

What do you mean? SDVpufferthinkblob

lucid iron
#

Iirc you need to have HasMod include before u can use the cmct token

#

I don't think you can do a dt unless you have required on the other mod

whole raptor
#

Hm? So either the query was an accidental workaround... or it never worked to begin with SDVpufferthink

#

Although I'm like 95% sure it worked

#

Yeah, it definitely worked

gentle rose
#

asdfds just tested with the portraits dacar sent me a while back, why are people in this community so talented 😭

#

-# I go to test my mod and get distracted by pretty portraits

hard fern
#

Lol

dusk terrace
# lucid iron I remember some jank around this when target field is involved

...sorry got really sick yesterday so had to give up for the day 😅

what kind of jank? if it were to only set defaults when adding a new entry and not when editing one... that'd actually be perfect for my use case

that use case being merging a set of model entries in a list asset... it's easy enough with direct fields if I just give it a default entry that gets merged in last... but gets problematic with entries of list fields

e.g. somebody has a patch (A) with an image with IDModExample.Image0 and some missing fields should be expected to use a default value
another mod could add a patch (B) for that image entry in 2 ways:
option 1) target both the entry in patch A and the image and change the required fields only
option 2) make a new entry and list an image with the same ID

so in option 1, patch B's empty fields should be ignored and filled with patch A's values when merging
and option 2, patch B's empty fields should use defaults which would overwrite and ignore patch A's values, unless those fields are explicitly set to null in which case they would use patch A's values when merging

lucid iron
#

It seems target field related at the time

whole raptor
#

I sometimes wonder what the hell am I doing with tokens just to shorten something... SDVpufferblob

safe kraken
#

(Also I have Lucikiel and now Jean and almost Jorts if you want them too to test stuff)

uncut viper
# whole raptor Hmm... decided to change the queries into the simpler version of CMCT's tokens.....

chu is correct, because with the way CMCT and CP work, content patcher will still check both your HasMod and the cmct token to see which ones are valid. this means that even though HasMod is false, it still has to check the cmct token after, which means it checks a mod that isn't installed and fails. if the query worked, then it's an unintentional and unsupported "workaround" which may not always work and falls under the disclaimer on the cmct mod page that says you might get weird bugs

gentle rose
whole raptor
#

Interesting.. I don't think I've seen any bugs related to that (and I had it like that since CMCT released

#

Hypothetical question... could it affect performance impact tho? SDVpufferthinkblob Or just cause weird bugs

uncut viper
#

if anything the mod not being there helps performance. but it means the token might crash at some point

#

depending on how you try to use it and how the other mod in question might change in the future

#

it's not something likely to cause bugs during a single play session, but across play sessions

safe kraken
whole raptor
#

If the other mod isn't installed the token isn't used at all, so shouldn't be an issue SDVpufferthinkblob

uncut viper
#

it is, with that dynamic token setup, for reasons just explained

dusk terrace
#

why does CP condition not have an early escape clause? SDVpufferthinkblob

#

or is it just that the token substring is applied before any check is done?

whole raptor
#

How so? Even if all the e<number> tokens are only used in an include gated by has mod? SDVpufferthinkblob

uncut viper
#

it's because of cmct. Content patcher has no reason to not look at a cmct token because cmct is installed

#

it's cmct that is then checking the other mod

dusk terrace
#

ohh just noticed their hasmod isn't checking for the mod the token is from, ignore me :D

safe kraken
#

(Be adviced, Jorts only has the first face fully animated, the others are WIP still so they won't show)

uncut viper
whole raptor
#

Yep, I think I mostly get it now

whole raptor
#

Cause if it's installed I'm assuming it's just "Is 12 = 12", but if not there's no way to get anything

uncut viper
#

don't remember how query works off the top of my head. it's unique in a couple ways. it might just eat the error and turn it into false for all I know

whole raptor
#

That's what I'm guessing too

dusk terrace
gentle rose
#

it doesn’t really explain what happens when they do fail though

dusk terrace
#

I assume fail means the expression fails and returns false, not the entire patch failing

gentle rose
#

that’s exactly what button and nomori are wondering though haha

dusk terrace
#

maybe Pathos could clear up the wording there but I think it makes sense given what we see 😅

glossy cargo
#

So uh, I'm blue now, can I become mod author?

#

It says to just ask in this channel, no mention of who to ping Krobusconfused

dusk terrace
#

you can DM bouncer and they'll add the role when a mod comes around to it SDVkrobushappy

#

did you add yourself to the wiki page?

uncut viper
#

i believe you typically wait for bouncer to guide you through the wiki page process

#

(I know it's been said both ways plenty of times but iirc that's the recommended? And it's that the text in that screenshot says, too)

gray bear
#

probably best to do it later i think

brittle ledge
#

Last I asked it was DM first, then wiki

latent mauve
#

I also DMed first, added to wiki when directed, and then requested a Cheeto dusting after following the directions.

blissful panther
#

(A ping here is also fine. In that case, a modder-junimo hybrid is normally better for obvious reasons! But Bouncer is more reliable if there aren't many of us around at any one time in case the ping gets missed.)

hard fern
#

modder junimo hybrid...

#

theyve fused

#

and become more powerful

blissful panther
#

The old mouldy cheeto. SDVpufferwaaah

obtuse wigeon
#

oh no, they have too much power!

gray bear
#

green cheeto

#

are there green ones

narrow owl
autumn tide
#

thought i'd forward this here :)

brittle ledge
blissful panther
gray bear
#

so you guys actually see it, yeah

stray hemlock
# gentle rose this is windows, and also I strongly disagree, because what if there just isn't ...

There's usually always something to do. RAM is storage that is faster. You rarely get into a situation where you use less than your memory's worth of storage, be it caching or anything else.

Of course RAM usage should have priority, which is a much bigger issue to properly determine that. Maybe I should have clarified: Under optimal conditions RAM usage should always be used up because the system automatically uses it for less important tasks when it's free and clear it when there are more important things.

This is not to say that software shouldn't be unoptimized.

blissful panther
narrow owl
#
      "Action": "EditData",
      "Target": "Data/Shops",
      "TargetField": [ "Festival_DanceOfTheMoonlightJellies_Pierre", "Items" ],
      "Entries": {
        "{{ModId}}_IrishMossPudding": {
          "Id": "{{ModId}}_IrishMossPudding",
          "ItemId": "{{ModId}}_IrishMossPudding",
          "IsRecipe": true,
          "Price": 10000
        }
      }
    },```


would this work for getting the moonlight jellies shop to sell the recipe?
urban patrol
#

you can debug festival summer28 to test it

gentle rose
#

(there's also things like ram speed being limited and the fact that operating systems just need a certain amount of ram to be free at all times in order to function that mean it just isn't practical to be always aiming for 100% utilisation)

stray hemlock
# gentle rose I'm sorry but I have daily driven linux systems for years and you just aren't ri...

For me they are. It takes a while, but they are quickly at 95% and then stay there. And in the beginning I wondered whether that was correct, but then I read up about it, and the system does a lot of stuff when nothing is important otherwise. Buffer cache is one of these things.

Granted, I almost never turn of my systems, so I when I say "under normal conditions" I meant "running for at least 24 hours".

gentle rose
#

ah, what is happening to your system (whether necessary or not) isn't necessarily a rule of thumb for all unix systems. I tend to have more customised installs (have I mentioned I use arch btw) and simply do not see 100% utilisation full time, despite my ram never exceeding 8gb. I can't remember if my buffer cache is fixed size or dynamic so that may be a factor but my system barely works at 95% utilisation haha

#

but also I'm diligent about regularly turning my computer off

stray hemlock
#

Yeah, I was more talking general in my initial post. I didn't really know your level of expertise so I was giving a rather general answer (the "always" was a really bad choice of words, sorry qq) because I have seen a lot of people worrying about RAM usage and saying Linux is bad because it uses too much memory.

But I think you are more experienced and knowledgeable than me, so I'm sorry for that.
Also, ❤️ Arch

gentle rose
#

yeah, I don't think it's a almost always/always thing but it's worth pointing out that it can be normal! so thank you for clarifying SDVpufferheart

narrow owl
dull bay
#

Hello ! How are you ?

I would like to use Selph's Extra animal config to change the animal texture skins when they reach a certain amount of frienship,
I read the documentation but i don't really understand where to put the condition and texture changes in my code. Is it under "Skins" ?
Should i add some code elswhere ? (i'm learning modding)

latent mauve
dull bay
#

this is the documentation, i tried to add it under "skins" fields to change animal texture, with the animal friendship condition
but i don't know where to put it in my animal code

latent mauve
#

I think all of that still is in reference to entries added via the Animal Extension Data?

stray hemlock
dull bay
#

oh ok i see ! thank you a lot, i will try this 🙂
i'm reading the TargetField documentation, it will help me a lot !

limpid gorge
#

Hi guys, I wanna ask something about delete Warp in Farm Door to FarmHouse. How can I delete this warp in content.json?

autumn tide
#

hellooo how might someone make an NPC disappear (using SetNpcInvisible) the day after an event?

autumn tide
#

hmm maybe! i do want it to temporary though

gaunt orbit
gaunt orbit
autumn tide
uncut viper
#

you dont even need to remove the mail flag, the trigger action that makes them invisible will only happen once unless you tell it to repeat

autumn tide
#

OH

autumn tide
uncut viper
#

yeah. dont tell it to trigger again

#

repeating must be opted in to

autumn tide
#

gotchaaa okay

autumn tide
autumn tide
#

okay just to double check, I have a trigger action thing set up to check how many years Krobus has lived with the player, would this be correct?

                "{{ModId}}.Trigger_Stat.YearsRoommated_Krobus": {
                    "Id": "{{ModId}}.Trigger_Stat.YearsRoommated_Krobus",
                    "Trigger": "DayStarted",
                    "Condition": "PLAYER_NPC_RELATIONSHIP current Krobus Roommate, !PLAYER_HAS_CONVERSATION_TOPIC current {{ModId}}.Topic.NewYearRoommated_Krobus, PLAYER_HAS_MAIL current {{ModId}}.Letter_FLAG.KrobusMovesIn Received",
                    "Actions": [
                        "IncrementStat {{ModId}}.Stat.YearsRoommated_Krobus 1",
                        "AddConversationTopic {{ModId}}.Topic.NewYearRoommated_Krobus 112"
                    ],
                    "MarkActionApplied": false,

uncut viper
#

is this the only way the player gets that conversation topic?

autumn tide
#

hmm I think so?

#

lemme see

uncut viper
#

then this will happen on day one of being roommates

autumn tide
#

ohhhh

#

hmmm

scarlet ether
#

Does anyone know how/have a mod link to stop the artifact spots from shaking?

autumn tide
#

okay i should either set it up to get the topic upon roommate-ing or maybe set it up to be -1 when the world is made or somehting

uncut viper
#

you cannot set it to be -1

autumn tide
#

aww

uncut viper
#

if a stat is 0 or lower, it is removed

autumn tide
#

dammit okay

#

eugh my brain is too laggy rn

#

hm, how could i set it up to go back to 0 after it triggers on the first day

uncut viper
#

have a different trigger action right after it that checks if the stat is 1. if it is, increment it by -1 to undo it

autumn tide
#

OH YEAH

#

cause it wouldn't repeat!

uncut viper
#

correct

autumn tide
#

tysm buttons SDVpufferheart

uncut viper
#

In other news, I've just published a new simple framework for custom emotes, should any mod authors be interested in adding any without the compatibility nightmare that comes with editing the vanilla emote spritesheet.
https://www.nexusmods.com/stardewvalley/mods/39656

Nexus Mods :: Stardew Valley

Allows mod authors to add extra emotes for NPCs to use in events and elsewhere.

autumn tide
obtuse wigeon
#

Button is so fast with mods it's insane

autumn tide
#

oh, do you want me to showcase it cause i have the role?

uncut viper
#

wouldve been faster but i spent like 4 days just sitting there with the mod 99% finished but didnt wanna do documentation

uncut viper
#

if you feel like it

median spire
#

What key works with stardew hack mod?

#

I couldn't open the hack mode, I can't find the button

uncut viper
#

how you can tell i was procrastinating doing actual real work on it:

obtuse wigeon
median spire
#

this mod

round dock
uncut viper
#

the dream can now be reality 🌠

round dock
#

Button, you are an absolute gem to the community

autumn tide
#

omg omg

brave fable
#

the dream of having my wife announce the word SDVdemetriums

gentle rose
uncut viper
round dock
#

I’m ngl i think i’ll forever associate SDVdemetriums to blueberry lmao

limpid gorge
obtuse wigeon
uncut viper
#

25% of the time i use demetriums is because i want someone to assume that it was blueberry who used it

#

likewise with 😌

gentle rose
#

chu uses it sometimes too

brave fable
#

fraud and identity theft

uncut viper
#

though recently bluebs has been using 🙂‍↕️ a lot more

round dock
uncut viper
#

you've changed, blueberry...

uncut viper
#

every time is a time to be sapphic when you're as big of a lesbian as i am

autumn tide
uncut viper
#

wren is the one that responded to you, no one else has responded because no one else knows the answer

round dock
#

Button do u mind if i (gently) poke u w questions when integrating this in good luck, haley

uncut viper
#

feel free as long as its in here and not DMs or nexus messages SDVpuffersalute

gentle rose
#

also if you took half an hour to respond I think it would be nice to give wren more than five minutes

round dock
#

(it’s ready for release but what’s another feature)

uncut viper
#

(and by in here i mean this server, could be in my thread or in mmg idm)

autumn tide
round dock
dusk terrace
uncut viper
#

honestly not terrible, definitely preferable to nexus messages

autumn tide
#

..just a little

median spire
#

stardew expanded how to go new city and village

lucid iron
#

!gameplayquestions

median spire
#

sryy

iron ridge
#

!gameplayquestion

ocean sailBOT
#

Hi! This is a support channel for issues such as game errors, missing saves, games not launching, and so on. Your question seems to be more gameplay focused, and as such would be better suited for:

brave fable
#

thank you pillow. i would now like to ask about game errors, missing saves games not launching, and so on in this support channel

uncut viper
#

sounds like a pebkac error to me sorry blueberry

obtuse wigeon
#

that's a new one

brave fable
#

oldest tech support acronym in the book 🙂‍↕️

gentle rose
#

pebkac? it's about as classic as percussive maintenance

#

if not more

uncut viper
#

that and picnic

obtuse wigeon
#

picnic is the usual one I hear, easier to remember aswell

uncut viper
#

pebkac is more fun to say

gentle rose
#

I never heard picnic until I joined this server SDVpuffersquee

brave fable
#

i'll admit i've never heard picnic in my life

gentle rose
#

problem in chair, not in computer

obtuse wigeon
#

it's great if you have sandwiches and a blanket

uncut viper
#

you can also say its an IBM error if you wanna be meaner about it

obtuse wigeon
#

I do like that one, but that's more reserved for my own stupidity XD

gentle rose
#

a little outdated now that that's not a relevant thing to say 90% of the time SDVpuffersquee

uncut viper
#

because PEBKAC is totally relevant

#

an acronym with so much more meaning

brave fable
#

wonderfully it does also open up the avenue for the problem to be a cat

gentle rose
#

at least we still use keyboards and chairs SDVpuffersquee gone are the days when so many computers were IBM

uncut viper
#

IBM itself still pretty relevant though i reckon

gentle rose
#

glorified patent troll I mean what /lh

brave fable
#

(here i stand at a laptop without a chair or keyboard SDVpufferpensive )

gentle rose
#

no laptop keyboard sounds diffifult SDVpufferpensive

uncut viper
#

... are you using speech to text

brave fable
#

i could be using a touchscreen keyboard, but for the purpose of being an exception a laptop keyboard is not a discrete keyboard 🙂‍↕️

uncut viper
#

if you call it a keyboard then it is a keyboard

brave fable
#

look ma, no chair

uncut viper
#

it aint a PEBDKAC error

brave fable
#

ok a combination computer-typewriter sits in front of me as i stand

uncut viper
#

oh i know this one, GO EAST

latent mauve
#

I have always heard it as PLBKAC -- "Problem Lies Between Keyboard and Chair"

uncut viper
#

theres no word starting with E in that one tho

latent mauve
#

Yeah, not sure why the people who taught me it didn't use an E word

#

But there was always an L

ornate locust
#

Problem Exists Between Keyboard And Chair

#

It's a PEBKAC error

gentle rose
fierce vault
#

Hey guys! It’s been a while since I’ve been here or touched any code, but I’m back because I have an update I’m trying to get out by the end of the week, since I made some promises.😅 I need to make portraits that have a random chance of being chosen among each other during a specific season, but each of them will also need to have the option to be individually disabled in a config.

If all but one option is disabled, would it be possible make whatever portrait is the last remaining to be the default for the entire season, vs it still being chosen by chance? I basically need one special portrait to always be chosen, but all to have an equal chance of getting picked if two or more are enabled.

I also need to link each portrait chosen to their own specific sprites. So… how should I go about this? Which wiki pages would you recommend I look at? Are there any mods that do this which I should also check out? Thanks!

uncut viper
#

re: default portrait, you can probably make a dynamic token for the portrait that checks if its config is turned on but every other config is turned off, and if thats the case, set its value to "1", but otherwise set its value to "0.1" or whatever percentage chance you give them all by default, and then use that dynamic token as the value in the RANDOM token i assume you're using for the appearance data

#

(and by RANDOM token i mean the RANDOM game state query)

#

that does ofc as mentioned assume you're using that GSQ in the first place or even using the Appearance system at all in the first place

fierce vault
#

I’ve done dynamic tokens before, so I’ll need to open up the json and my references to see if I can get this done. Thanks.

gaunt orbit
#

Adding warps won't work properly because the farmhouse is hardcoded to move any incoming warps from the farm to the front entryway. It's an unavoidable side effect of how building interiors work

devout otter
fierce vault
#

Thank you!

#

I’ll report back when I’ve created something, hopefully functional

inland rain
twin wadi
#

oh wow the emote framework is out!! this is going to be a lifesaver

opaque cobalt
#

Is there a file that shows which schedule's an NPC follows during events? Trying to see what Penny does during the Trout Derby and Squidfest

vernal crest
#

They just use normal schedules during passive festivals

fierce vault
urban patrol
#

the token is {{ModId}}

fierce vault
#

Ohh