#making-mods-general

1 messages · Page 540 of 1

hallow prism
#

you may need to provide the whole thing so we can check if it's loaded properly

#

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

hallow prism
#

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

hallow prism
#

are the proper ways to share files for help

scenic ferry
ocean sailBOT
#

Log Info: SMAPI 4.4.0 with SDV 1.6.15 build 24356 on macOS Unix 13.4.0, with 47 C# mods and 115 content packs.
Suggested fixes: One or more mods are out of date, consider updating them, SMAPI is out of date, consider updating it

scenic ferry
#

ty governor

#

maybe I'll go update my various crap real quick

hallow prism
#

so

#

you have :
"Target": "maps/VaelExterior",

#

i think it expects the name to be VaelExteriorTilesheet

urban patrol
scenic ferry
#

Ah okay! I can try that

And yeah, I was earlier -- but I particularly wanted to test it with some of my recolor mods, and SVE, so I threw my actual playing mods back in

#

I'll probably rework it though to be more barebones soon here, loading everything over and over is certainly a little bit of a pain when a lot of it is just fashion sense mods haha

#

ill do that after this test actually, may as well

#

IT WORKS!!!! Ty all so much oh my goodness

#

The grass successfully recolors and everything!!!!

urban crest
#

yayy congrats!! SDVpufferparty

buoyant jackal
#

Cody I keep thinking you're me because of the witchhat + your pfp looks ever so slightly like my pfp in another server... Witch hat gang XD

autumn tide
ornate locust
#

juniro

gaunt orbit
autumn tide
#

true!

calm nebula
#

Me and Elizabeth

autumn tide
#

heyyy new user!

#

(it took me so long to realize ppl called you Atra-)

gaunt orbit
#

Most of the time

autumn tide
torpid sparrow
#

there is no atra only descending into insanity

vernal crest
#

Atra has never had Atra in their display name in the time I've known them lol

calm nebula
#

It was atraknits for a year

vernal crest
#

Hmm actually that does ring a bell

#

You've changed username so many times I cannot keep up lol

#

I've changed mine twice in the entire time I've been in the community

calm nebula
autumn tide
#

I'm still fairly new but I've always been some variation of 'Claude' LOL

vernal crest
#

I wasn't intending to actually be part of the community so when I first joined I was using my old username. And then when I decided to stay I picked a Stardew specific one and changed my discord to that.

autumn tide
#

oh also, how do you pronounce your user? sorry if I already asked and forgot-

autumn tide
#

got it!

vernal crest
#

It's from oblivion so if you ever want to hear how it's pronounced you can google it and find videos!

autumn tide
#

aaah okay

vocal knoll
#

Hey y'all! I am so lost on how to make the player recieve mail... I've looked at the Wiki, other peoples mods and everything, and I am so lost as to what I'm doing wrong DX

#

like so many tutourials are out of date too cause of 1.6. 🙁

#

and they say it's easy but like... it's been two days DX

torpid sparrow
#

err i think triggeraction

#

thats not helpful hold on im lookingat wiki lol

uncut viper
#

A trigger action is the most common way to send mail, probably

lucid iron
#

have you unpacked the game yet? helps to look at the vanilla mail setups

#

which are indeed trigger actions

torpid sparrow
#

yeah tractions

#

theres examples of how to add triggeractions if u scroll on that page

vocal knoll
#

so weird that no one mentions trigger actions DX They're like "download the Mail Framework Mod!" and then it just automatically works??? 😭 Thank you!! And I know AddMail but like, where do I put the actual mailID so the game knows what i'm talking about? Seperate json i'm assuming? I'm likely overthinking everything but I always get confused with where i put "include" vs "editdata" and so on DX

devout otter
#

You need to patch in the mail data. You don't need to put it on a separate json if you don't want to.

vocal knoll
#

I did do that part with the format and everything! I just didn't know where to put it

devout otter
#

(People use separate json mostly for self organization, not necessity.)

#

You can put everything in content.json if you want.

vocal knoll
#

do I patch it with a the whole "target" and everything? I wasn't sure how to format the actual putting it into the game and when I tried SMAPI told me no lol

devout otter
#

If you are altering an asset already in the game. (in this case Data/Mail), you'd need a Target field, yeah.

devout otter
vocal knoll
#

Thank you so much 🙂

wanton tulip
#

does anyone have the unpacked content files just into one place, me editing them one by one then making content.json finding every dialogue is a hassale and i need it for a mod im working to make and i kept getting errors upon errors in the loading of the content pack, so i'd appreciate it if somebody already have them grouped in one i18 or something if that was possible

autumn tide
#

could you clarify?

uncut viper
#

If you mean some online resource for the unpack, uploading the entire unpack publicly somewhere would be redistributing the games assets and would not be allowed at that scale. That's why we make everyone unpack it themselves, as they must own the game to do so.

wanton tulip
#

so the way i mod. .. actually lemme show, basically this is my method of modding and it feels like a cave man

#

i meant the unpacked thing but just grouped into one place so i can just search for the stuff i wanna edit withing one place instead of jumping fron file to file, and targeting it via content

sweet niche
#

i was trying to do that but i think its not possible because some of the dialogue check was by condition

wanton tulip
#

so i was wondering if anyone has the vanilla content grouped in an i18 or something

brave fable
brave fable
#

incredible. vs26 really is just a jetbrains clone

wanton tulip
brave fable
#

anyway the point still stands, you can open your unpacked game content folder in a capable text editor of your choice and find-in-files to search for a pattern in many files rather than one-by-one

#

which is to say no, i don't believe there's a massive single collated conpacked content file with all human-readable data

sweet niche
brave fable
#

which would also be abysmal since it'd make it unclear which asset you're targeting to edit that data

brave fable
wanton tulip
brave fable
#

patch export is only interested in an asset, not the context, not any related data

sweet niche
#

yeah

wanton tulip
#

thats why i asked for the compiled one but thanks anyway

vocal knoll
#

(sorry this is my entire content json! DX

brave fable
#

where did you read about that format for Data/mail entries?

vocal knoll
brave fable
#

your Data/mail patch doesn't match the format given on that wiki page at all hahah

uncut viper
#

You're using MFM syntax and not vanilla syntax

torpid sparrow
#

whats MFM

brave fable
#

Mail (Framework Mod)

torpid sparrow
#

oh right

vocal knoll
#

i am so confused DX I feel like I did have it that way but it didn't work since the wiki doesnt say what the game is supposed to do with the info

torpid sparrow
#

iirc u store/write the mail content, then code something to trigger that mail being sent and thats about

brave fable
#

currently you have:

"Entries": {
  "Id": "stardewaly.rosalie_RosalieMail_Id",
  "GroupId": "stardewaly.rosalie.MAILTEST",
  "Title": "Rosalie's Test Letter",
  "Text": "Hey there @!^I had some extra moolah lying around... I thought maybe you could use it. Take care!  ^   -Rosalie %action AddMoney 5000g %%[#]A Gift From Rosalie"
}

instead, this should be correct:

"Entries": {
  "stardewaly.rosalie_RosalieMail_Id": "Hey there @!^I had some extra moolah lying around... I thought maybe you could use it. Take care!  ^   -Rosalie %action AddMoney 5000g %%[#]A Gift From Rosalie"
}
torpid sparrow
#

when do you want the mail to send?

brave fable
#

i believe their Data/TriggerActions patch handles sending the mail

devout otter
#

Yeah, you put the ID as the mail key, and put the title in the entry itself. The wiki says nothing about Id, GroupId or Title in separate fields.

vocal knoll
#

I'm just testing to make sure it works first so I had the farmer getting up at spring 3 but then i made it 4 so they could sleep and so on

#

i'll eventually have to do a mail flag too but Mail itself isalready a headache 😢

torpid sparrow
#

so how were you triggering the mail to send

brave fable
#

any mail is a mail flag, including stardewaly.rosalie_RosalieMail_Id

torpid sparrow
#

nvm i see it

brave fable
#

it's just that by adding an entry to Data/mail you're saying you want that mail flag to also have some readable mail in your mailbox

#

so you already know how it works and how to use them 🙂‍↕️

torpid sparrow
#

seems fine yeah the mail text wasn't formatted right but the triggeraction looks alr

vocal knoll
#

I'll give it a shot 🙂

sweet niche
#

sorry to interrupt but i wonder if its possible to apply this logic in content.json

A = true, false
B = "",1,2,3
c = 1,2,3

if A true,  B "",  C 1       -> result use C 1
if A true,  B 3,   C 1       -> result use B 3
if A true,  B 1,   C 3       -> result use B 1
if A false, B any, C any     -> result false (use vanilla)```

so its kind check A true or false -> check B empty or not, if empty check C, else use B
vocal knoll
#

It didn't work DX

#

and do I not need MFM at all or is it like a must have if you do mail for a custom NPC mod?

devout otter
#

You don't need MFM at all. For this, at least.

brave fable
#

can you use "Target": "Data/mail" instead of "Target": "Data/Mail"?

lucid mulch
devout otter
vocal knoll
#

yes

#

I'm just testing so I keep changing the date based on my farmer and they keep sleeping and waking up to no mail lol

uncut viper
#

Make sure to test with a new save.

wanton tulip
#

i decided to compile them all myself to make modding easier for anyone. . . wish me luck there is like 20k+ lines to compile T^T

sweet niche
fierce vault
#

any tips for coding in a lot of gift taste reactions? I read the wiki page, and I feel like I'm only going to be able to figure anything out by using actual references, as usual 😅

torpid sparrow
#

cause u have to edit files and whatnot

#

pathing

torpid sparrow
wanton tulip
fierce vault
torpid sparrow
#

by "a lot" of gift taste reactions do u mean like coding a bunch in at once?

#

or like

#

just the reactions in general

#

and doing them

brave fable
#

i18n* as in internationalisation

#

otherwise it's i19 SDVdemetriums

fierce vault
#

Uh, more so just understanding what I'm encountering when I look at the different references I have, I guess.

torpid sparrow
vocal knoll
#

I used it on a new save and it seemed to work (Thank you @uncut viper) and tried "mail" instead of "Mail" (thank you @brave fable) but the action didn't go through in the letter

Smapi says :

[game] Letter 'stardewaly.rosalie_RosalieMail_Id' has invalid action command ' AddMoney 5000g ': required index 1 (int amount) has value '5000g', which can't be parsed as an integer

torpid sparrow
#

5000

#

not 5000g

uncut viper
#

5000g is not a number, but 5000 is

fierce vault
#

I think I can copy the code structure alright, but I do not understand as much as I'd like with what's going on

torpid sparrow
#

what specifically is confusing

vocal knoll
#

omg the wiki literally said xD I'll try again! Thank you!!

uncut viper
#

(Also, the reason you needed a new save is because by default, a trigger action will only happen once per save file. So your trigger action already happened and no edits after that were going to change that.)

fierce vault
#

I'll grab an example

wanton tulip
uncut viper
#

The wiki does not say to add a g

vocal knoll
#

yeah i just read it wrong cause it said "%action AddMoney 500%% to add 500g to the current player. " and iw as like "huh... ok so add 500g" xD

wanton tulip
#

imma share that i18 when i finish it

brave fable
#

n

wanton tulip
#

fine i18n

vocal knoll
#

Yoba is good it worked 🙂 ❤️ thank yall!!

fierce vault
#

so, each reference I have which is a little more on the complex side has really different stuff going on. One of them uses AcceptGift_(O)233 for every gift that has a unique response, and I don't get what it's for, or how disliked/hated/ and neutral gifts are differentiated with this method.

Maybe I just need more references 🤷‍♀️

torpid sparrow
#

ohh

#

i can't remember if gift taste dialogue is layered or not like

#

accept gift dialogue should take precedent over the default dialogue

fierce vault
torpid sparrow
#

i would imagine anyway

#

let me check wiki and maybe my own files

#

yeah i think if you have the item set to dislike/hated/like/neutral that will handle the loss/addition of friendship

#

plus default dialogue

#

but u can also give them unique dialogue

#

using acceptgift specifically

#

as a separate dialogue entry

#

thats in here

#

as opposed to the gift tastes section

fierce vault
#

oh, that's interesting!

torpid sparrow
#

AcceptGift: "Shown when receiving a non-birthday gift from the player. If omitted, defaults to the dialogue in Data/NPCGiftTastes."

#

and if u dont set a gift taste, it'll default to neutral

#

with some exceptions i think but yeah

#

tldr its just default vs unique

fierce vault
#

so, it says you can (match?) by gift taste (one of Loved, Liked, Neutral, Disliked, Hated, Positive (neutral/liked/loved), or Negative (disliked/hated));

is that set through the default way of handling tastes, like this example:"LogName": "SVTNiki Gift Taste Data - After 14 heart event", "Action": "EditData", "When": {"HasSeenEvent": "SVTNiki14Caffeine"}, "Target": "Data/NPCGiftTastes", "Entries": // Likes TripleShotEssprosso, Neutral Coffee { "SVTNiki": "{{i18n:SVTNiki.Gift.Love}}/264 609 230 Book_Horse/{{i18n:SVTNiki.Gift.Like}}/772 917 book_item 253/{{i18n:SVTNiki.Gift.Dislike}}/814 -5/{{i18n:SVTNiki.Gift.Hate}}//{{i18n:SVTNiki.Gift.Neutral}}/433 604 618 649 651 731 216 241 178 152 153 349 351 245 157 395/", }and then by using "accept gift" just makes the dialogue unique?

torpid sparrow
#

yes

#

by the logic yes

#

ive not edited gift tastes after a specific event so i dont know about that

fierce vault
#

ah, ok then

#

yeah

#

it was just the first example I could pull up

torpid sparrow
#

nw xd

#

i mean theoretically

#

you could give really positive dialogue to a hated item

#

cause the gift taste and unique dialogue have no impact on each other

#

its just the default dialogue

fierce vault
#

right, ok. both could also be loaded in the same json doc to, right?

torpid sparrow
#

im not sure what that means

fierce vault
#

like if you had a specific giftresponses json

torpid sparrow
#

uhh yes you can do that you just target the dialogue stardew json

fierce vault
#

I've seen some more orginized mods separate stuff like that

#

thanks for the help!

torpid sparrow
#

np!

fierce vault
#

I guess the biggest thing confusing me now is where one of my reference mods is hiding the actual gift taste code. I probably need more references, like I said!

fierce vault
#

I'll check there again

torpid sparrow
#

or if its for a specific npc maybe theres a file for them although every modder does it differently xd

fierce vault
#

yeah, I've seen some interesting approaches

vernal crest
rancid tartan
#

For someone new to modding what would be the best kinda project to start with?

fierce vault
#

thanks

fierce vault
#

Depends on what your end goal is though

#

you could start with a lot of basic stuff

#

that's just one of them

sweet niche
#

okay finally the settings works
but i keep getting this warning message on console when EnableCustom = true

[Content Patcher] Can't apply data patch "Portrait Settings (Vanilla) > EditData Mods/JP98_HDPortraits #3 > entry #1" to Mods/JP98_HDPortraits: failed converting entry to the expected type 'ShinHDPortraits.Models.MetadataModel': Error converting value {null} to type 'System.Int32'. Path 'Size'..

https://smapi.io/json/content-patcher/35253723f1024dd9a0a4db7cca3cd92d

rancid tartan
fierce vault
#

i like replacing assets as a starting point, because if you like art, it's really fun to see your own stuff in the game!

#

there's some c# tutorials on the wiki

#

maybe you could learn the basics of that language and then try making some basic c# mods

brave fable
uncut viper
#

(Likewise with the Abigail one in the above patch)

rancid tartan
sweet niche
#

ah i see, imma try it

rancid tartan
#

god my spelling when i try to type fast TwT

brave fable
#

if you're comfortable with java you'll be comfortable with c#

rancid tartan
#

ok cool i figured between the two the syntax should be graspable

fierce vault
#

I don't code, so definitely ask the programmers in the thread where blueberry linked!

sweet niche
rancid tartan
uncut viper
#

Regardless of what you tested, "HasValue:Abigail" is not checking if your {{Abigail}} token has a value.

fierce vault
sweet niche
#

yeah, but weird by doing that the result is exactly what i want
but the console just keep get warning message

golden basin
#

is there a way to make custom tv channels?

uncut viper
#

There is the "Custom TV Channel" framework. I believe Astraios was also working on a TV channel framework, though I don't know the progress on it.

sweet niche
golden basin
uncut viper
#

If you're talking about Queen of Sauce, it has hardcoded elements that mean you can't just add to it.

#

And with a quick check, so does the Tip Channel.

fierce vault
#

is there a not very time consuming way to make it so your npcs don't automatically like all the universal loves/likes?

brave fable
#

are they not from this universe

fierce vault
#

EZ peasy

brave fable
#

you can add items found in universal tastes to their individual fields, such as adding glazed yams to dislike (defaults to universal like from cooking category)

#

but no, you can't omit all universal tastes from a character

fierce vault
#

yeah... that's what I thought...

#

thanks

brave fable
#

they are, after all, universal

tiny zealot
#

i do wish they were called default tastes and not universal

fierce vault
#

I was using look up anything, and I feel like these two statuses are in a bit of conflict...

tiny zealot
#

the presence of exceptions makes them not universal, imo

brave fable
#

technically roommates are married to you, just with an additional IsRoommateMarriage flag

#

no escaping holy matrimony

fierce vault
#

friendship: married

can romance: no, you're housemates!

brave fable
#

a loveless marriage...

fierce vault
#

Seeing the two statuses was kind of funny. At least it differentiates hugs from kisses

#

maybe it's because hugs have a little smiley face?

#

there's a lot of unviersal likes though, and if you're trying to account for SVE, eastscarp and ridgeside compat, it's a billion times worse SDVpuffercry

#

maybe making a slightly more difficult npc to befriend isn't worth it

tiny zealot
#

i wouldn't worry about it except for items where it's important for characterization

fierce vault
#

yeah, I guess so

#

i wonder how many players even discover unique gift tastes for things as mundane as liked items

brave fable
#

i did accidentally run into one of evelyn's unique gift tastes recently

#

got a good laugh out of that

fierce vault
#

oh?

tiny zealot
#

i suspect most modded players either use LA on your NPC or read whatever documentation you provide and jump straight to loved gifts

#

that's pure vibe speculation but i don't hear a lot of appetite for discovering things like that organically in the stardew modding scene

brave fable
#

she has a unique response if you give her ||broken glasses|| SDVdemetriums i just happened to have picked one up and didn't mean to gift it

fierce vault
#

Probably… but if loved gifts are hard, maybe they’ll try out some likes.

#

what am I even saying

#

I am most players

brave fable
#

i doubt most people cheat gift tastes

uncut viper
#

I cheat gift tastes

tiny zealot
fierce vault
#

I don’t try that hard for variety 😅

ornate locust
#

Discovering things organically in Stardew is guessing and mashing items against NPCs. Sometimes you get em with dialog, but it doesn't really spark joy to mash items

#

at least for me

brave fable
#

you can get pretty far with character cues and dialogue

fierce vault
#

I get that

#

It’s why i have a gift predictor mod

#

I don’t want to blindly guess

ornate locust
#

The number of times I had gone "Oh they'll love this" and they hated it is not small

brave fable
#

in any case, there's no rule that you MUST give liked and loved gifts to all the npcs. just talking to them gives some, and there's enough universal likes you'll get by without the specifics anyway

ornate locust
#

or just didn't care for it

fierce vault
#

I don’t want to "cheat" a whole lot tho, so it’s why I think that mod is nice middle ground

#

then again, I haven’t bothered to use lookup anything in a regular save yet, so I won’t say I can’t be turned

pale river
ornate locust
fierce vault
#

she has a strong prescription

tender bloom
#

I just can’t stand not giving an NPC a loved gift sometimes, like on their birthday or for Mr. Qi

fierce vault
#

Wait, is cheating gift tastes just using look up anything?

ornate locust
#

I just absolutely always end up giving someone a gift that they deeply hate

fierce vault
#

(Or the wiki)

ornate locust
#

Generally when I'm going with things most people seem to like

tender bloom
#

I mean looking it up in the mod json is definitely peeking under the hood

opaque field
#

If I strike out after the 4th or 5th time giving an NPC a gift I think they'll like and they don't - I peek at liked gifts first and then try to guess what a loved gift might be from there

tender bloom
#

Cheating maybe isn’t the right word

#

But it’s definitely not player-facing lol

ornate locust
#

I am amazing at giving a NPC the exception to a "people generally like this" gift

opaque field
#

like 'oh, I think they'll love/like this'
them: absolutely disgusted

fierce vault
#

Its "cheating"

ornate locust
#

"I have some spare sashimi and Kent's here, I've barely met him, here, have some lunch"
WAR FLASHBACKS

opaque field
#

"utilizing available tools to assist when struggling" is what I say

#

I made that same mistake with Kent TT I felt so bad

#

I gave Haley a prismatic shard for her birthday - rookie mistake

woeful lintel
#

You can do that with FF, and also make stuff of any size placeable on a table "slot" *nudge nudge wink wink*

ornate locust
#

Someone likes flowers, I will find the one they hate

brave fable
#

definitely some tastes are way out there like cactus fruit for sam. and i figured dumb kids would just love snails and mud and beach things, but alas

ornate locust
#

I have hit Haley with a prismatic shard, yes

opaque field
#

I was young and naive and didn't know better XD boy howdy was she steamed at me lmao

tender bloom
#

Even in vanilla it says Holly is popular but I think everyone hates or dislikes it

#

Actively misleading!!

brave fable
#

ah yes. the coconut has many culinary uses

fierce vault
#

You guys are bothering to waste shards on npcs at all??

#

those things are expensive!

ornate locust
#

I'm not saying I CURRENTLY DO THIS

#

I'm saying I have done this before I just went "fuck it" and got a mod that told me what people like

#

I think I made every mistake possible with gifts

woeful lintel
#

yeah, the slot feature of FF is perfect for that, my opinion is unbiaised

opaque field
#

It was a rare moment when I had one to spare and I was like "oh beautiful gorgeous Haley how you'll love this pretty thing" haha but I've learned since then and do my best to just try and pay attention to dialogue or other potential cues and then just throw things at people

tiny zealot
#

anyway my point was not that looking up gift tastes for an NPC is bad or cheating (it's fine, please enjoy yourselves everyone), only that i suspect the vast majority of the modded player base does it

brave fable
#

if FF allows arbitrary pixel positioning for item slots my download is yours

ornate locust
#

I think the Haley incident was why I ended up getting a mod to tell me what people liked

pale river
ornate locust
#

HOW DARE

#

scandalous strawberry giving

brave fable
#

you absolute fool. thought you could get away with giving away strawberries in this town

fierce vault
#

I think having specific hates is better if the npc has a personalized response

brave fable
#

in hindsight the game does subtly hint at you that haley will throw a prismatic shard in the trash because her sister is a crystal nut

fierce vault
#

I never thought of it that way

ornate locust
#

But it's super expensive and she has super fancy tastes

#

somewhat too subtle

brave fable
#

she likes SHOES

ornate locust
#

And clothes, and she won't throw out a diamond

#

She likes fancy rocks that aren't prismatic!

fierce vault
#

someone needs to mod in haley having a specific hatred for the mine's boots

uncut viper
#

she likes fashion. prismatic shards are not fashion!

ornate locust
#

You're telling me you can't make a rainbow rock into fashion? PFf

fierce vault
#

but diamonds are a girls best friend

uncut viper
#

theres plenty of rocks in real life of various and/or all shades of the rainbow that are not used for fashion nearly as much as a classic diamond

opaque field
#

Also, at least for me, part of the process and fun is getting to see the dislike/hate dialogue that people write for their NPCs, especially if they have custom responses for specific items :3

ornate locust
#

That stuff's fun, but also... I'm gonna be annoyed if it was something expensive and they hate it

fierce vault
#

theres a mod that makes npc's not like always being given the same thing

uncut viper
#

Back when I still planned on making my NPC, I exported a list of every vanilla item and wrote custom responses for like half of them, so...

ornate locust
#

unless it was REALLY obvious

fierce vault
#

what if they only are neutral to it?

ornate locust
#

Haley not liking the prismatic shard basically made me quit out of the game

#

and then she gets no birthday gift

fierce vault
#

oh, you know what? maybe if an npclike haley, hates something insane like a million dollar stone, they could just reject it. much nicer than just losing your item

#

I know people having gifted her that stone on accident too, so it would be a nice safety precaution

#

I need to get back to thinking about my own npcs gift tastes now though lol

hard fern
#

Wouldnt be too hard for her to just throw it back at you

fierce vault
#

it could make the farmer faint

#

oh, that's kind of harsh 😅

opaque field
#

That's a good point about it being something expensive. I hadn't thought about that. Iggy's hated gifts are: all mushrooms, fried mushrooms, escargot, caviar, rabbits foot (she's a jackalope human anthro so, I think it makes sense for her to hate it) survival burger and roots platter

buoyant jackal
#

I wonder... does anyone here watch Hermitcraft? I'm planning a mod where I make a town based on Hermitcraft, and I could use some help with the gifting guides

late pewter
#

Oh God Oh Frick Nexus is having a Modfest for Stardew

#

Moreover, I have, like, a 0% chance of winning anything....

green elm
#

Hi all! I have a question about Content Patcher edits.

If I need to use the token "HasMod" in an edit, does the resulting content pack require that mod to be listed as a pre-requisite? Please keep in mind that the mod I'm asking about that I'm making is a private thing, and will very likely not be published.

spice inlet
#

the two grand prizes are a bit weird. most endorsed and most downloaded are very heavily favored towards people that already have a mod ready to upload @.@

#

if you upload last day of competition you basically cant win grand prize

#

imo it'd be nicer if we had eg. a 3 month headsup period and the first month aftet release endorsements/downloads would be counted

hard fern
#

What is a modest

#

Modgrst

#

Modgred

#

:/

#

You get it

royal stump
green elm
#

Thank you, Esca!

royal stump
lucid mulch
#

So that's why people wanted to make a mod that disabled itself after an hour if you haven't endorsed it

hard fern
#

Huh....?

#

😅

#

Like a bomb ..

#

What is the full story behind that lol

lucid mulch
#

To cheese the modfest most endorsed category.

Endorse it or else

sterile crescent
#

wait thats hilarious

final arch
#

~~Slightly confused about configs in CP;

"ConfigSchema": {
      "Material": {
         "AllowValues": "Wood, Metal",
         "Default": "Wood"
      }
   },

in this case Material is both my CP token AND the display text in GCMC? theres no way to change/translate the display text?~~

#

nvm found it

hallow prism
green elm
#

Hello again, everyone! This time I bring a question about quantifiers (right word?) in the When field of a CP action.

I'm saving some trouble for myself (or so I hope) by using includes for my upcoming mod (donno if it'll be private or not tho, please don't ask). But two of those includes need to check for the presence of another mod, and also that a value is not the default.

For transparency, this is something like what I'll be planning:

"Action": "Include",
"FromFile": "assets/list of overwrites",
"When": {
  "ConfigItem": "not the default",
  "HasMod": "someone else's mod"
  }

My question becomes, how do I tell the config item field to only apply when the default option isn't chosen by the player in GMCM, and the not-mine mod is present in the player's mod folder?

#

Also, I did read up on tokens and conditions, and I'm still at best very vague on this part.

karmic gust
#

https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide/tokens.md#global-input-arguments

You'll want to read the "contains" section under Global Input Arguments here. It explains how to set true or false values for conditions (which if I'm understanding correctly, you're looking to set "default config" to false as a condition?)

And both the default config and hasmod conditions would apply at the same time

GitHub

Mods for Stardew Valley using SMAPI. Contribute to Pathoschild/StardewMods development by creating an account on GitHub.

green elm
#

I think I'm halfway to understanding. I just need one more bit of clarification.

#

I'll post what I have in a moment, so you can see more accurately what I mean.

#
   {
   "Action": "Include",
   "FromFile": "assets/daggers.json"
   "When": {
      "Dagger Overlay |contains=Meowmere": "false",
      "HasMod": "MissAnaira.MeowmereWeapons"
      }
   },

I'm assuming this would load the daggers.json only if the ConfigSchema value of Dagger Overlay isn't Meowmere and the mod in question is present?

karmic gust
#

Correct

green elm
#

Cool beans. Thank you for your help!

karmic gust
#

Np! 🙂

green elm
#

Oh! One last thing. How do I specify two mods being present? I forgot this is a mix of C# and CP I'm referencing.

vernal crest
#

If you want to check for the presence of more than one mod you use the contains as well, but use true instead of false.

green elm
#

Okay! Thank you, too! ^^

#

So it should look like this, right?

{
   "Action": "Include",
   "FromFile": "assets/daggers.json"
   "When": {
      "Dagger Overlay |contains=Meowmere": "false",
      "HasMod |contains=MissAnaira.MeowmereWeapons": "true",
      "HasMod |Contains=MissAnaira.MeowmereWeaponsCP": "true",
      }
   }
#

@vernal crestSorry, forgot to @ you.

vernal crest
green elm
#

Thank you ever so much. <3

halcyon finch
#

I am close to finishing a character mod, I just need to do the seasonal outfits now. But I can't find where two sprites that look like the flower dance is from.

hard fern
#

Well if it looks like the flower dance, wouldn't that be where they're used? 🤔

halcyon finch
#

I've been looking through multiple videos and these two do not look like it appear on the dance at all.

#

it looks like a walk to me

hard fern
#

I do think there are some unused flower dance sprites

#

Maybe these are the ones

devout otter
#

My speculation is that the girls are supposed to step backwards when the boys step forward or vice versa. And then CA decided it looked too awkward.

ornate trellis
#

random question but is there any existing core/framework mod that would make it possible to have something like the key to town for ones own area? or could it be done some other way thonking just had the spontaneous idea for my island houses to maybe let the player have that after having a certain friendship lvl threshold reached or w/e and if thats even worth it trying to figure out yall already know im not good in understanding new stuff lol

halcyon finch
gentle rose
#

but you'd have to manually add all the "normal" conditions yourself

ornate trellis
#

hmm

final arch
#

could CP patch the open hours of the doors etc with a friendship condition?

#

but yeah theres no framework that outright does that I think

gentle rose
#

there is

#

(vanilla)

ornate trellis
#

hm, i do not use tiledata for warps tho, i do it in a json

gentle rose
#

is that json not still updating the tiledata?

ornate trellis
#

oop, yeah, been a hot minute since I looked at my warps aSDVpufferleaves

#

so when i have "Action": "LockedDoorWarp 2 23 {{ModID}}_LostIsland_MermaidHome 830 2200" as my standard id then just do the conditional one with a "When" yaddayadda and w/e i decide either mailflag or straight-up friendship points?

#

oh wait nevermind i did not read that example at the end :B

#

but yeah ok i see where this is going now, im gonna wwrite it down before i forget once im ready to tackle that sdasa

#

hm...I think i gonna go with a mailflag so i can make it that everyones doors are unlocked at the same time or something thonking

green elm
#

Oh no. I'm back with another CP question. HEAD FOR THE HILLS EVERYONE.

#

How do I target an image asset for another CP mod?

brave fable
#

use the same Target value they do, replacing any {{tokens}} with their final values SDVpufferthumbsup

#

you'll also want to include the other mod either as a manifest dependency or as a content patcher When condition

green elm
#

Dependency already handled, I just need to figure out how they did it because it's part C# code and part CP pack, and it uses SpaceCore functionality to add its custom items, as opposed to JA or DGA.

vernal crest
#

You can't add custom items with SpaceCore, I don't think?

brave fable
#

what a strange mod SDVdemetriums which one is it perchance

green elm
#

Meowmere Weapons by MissAnaira. It adds Meowmere sparkle functionality to clubs and daggers, whereas vanilla SDV only allows swords to be reskinned at the forge with Meowmere for its sparkle death effect.

brave fable
#

oh so not one of mine

green elm
#

I'm trying to expand the thing so that the Meowmere itself can look like any weapon.

brave fable
#

in any case JA/DGA aren't used these days in favour of CP so that's not an oddity

green elm
#

I know. My own private suite of items uses CP entirely.

vernal crest
#

For a target from her mod, you will be looking for a Load patch where the target isn't vanilla

brave fable
#

it should be trivial to use the same targets then, provided they're not loading the textures via C# instead, which can circumvent the content pipeline used by CP entirely

green elm
#

Okay. I'll take a few more minutes to poke around in the content. I don't think she's loading textures via C#.

#

...oof. There's only one image file, sprites indexed. How do I handle this conundrum?

#

I think I'd do it like Mods/MeowmereWeapons:0?

vernal crest
#

By using the ToArea field in your patch

green elm
#

...give me a sec to look up Pathos' docs again. Sorry about being so much trouble.

vernal crest
#

It's not being trouble to ask for help in the "ask for help here" channel ^_^

brave fable
#

luckily this is also the trouble channel 🙂‍↕️

green elm
#

...I think dawning realisation hit me square on the temples and I think I actually know what to do here now. That, or the dawning sun hit me because it's morning where I am. :P

#

If I have further issues, I'll definitely ask for help. Thank you both again. ^^

wide flint
#

Does anyone happen to know which Method is being used when harvesting Wild Seed crops with an Iridium Scythe? Doesn't seem to be Crop.harvest() or GameLocation.checkAction()

sweet niche
#

hello, do anyone know how long quarantine usually does when uploading a mod on nexus?

calm nebula
#

Has it been more than a day

#

Did you use a rar

tiny zealot
#

quarantine meaning "you failed the virus scan"?

sweet niche
#

its been 4 hours i think, i use rar

tiny zealot
#
  1. don't use rar
sweet niche
tiny zealot
#
  1. there isn't really a 2. rar has no meaningful benefits over zip and only downsides
#

(one of which is nexus quarantines your files sometimes)

sweet niche
#

ah okay i will try

tiny zealot
#

if you get the "some suspicious files" marker and you didn't put anything virus-y in your file, typically you have to email nexus to ask them to unflag it and wait a day or two for a person to do it

sweet niche
#

yea i already contact them via email, but its been 4 hours and nothing happend so i wonder if it will taking time

#

i upload 2 settings, both was basicly same the different only one for vanilla and one for expanded
the vanilla one success uploaded but the expanded one keep getting flag

#

at first i thougt my manifest.json having inappropriate word (expose wich short term of expanded portrat settings) but after i upload new one it still get quarantine

sweet niche
#

finally i can publish it againPiperSalute

woeful lintel
brittle pasture
green elm
#

Got a curious question about the formatting of CP content JSONs. If using Include to include a content JSON, does the included file need to have its Format specified explictly, or can it be omitted still?

pale river
green elm
#

Thank you!

wide flint
brittle pasture
#

how wild seed crops work is that on day's end the crop is yeeted and an object gets put in its place

gaunt orbit
#

no way to get around that I'm afraid

brittle pasture
#

forage seeds are hardcoded enough you can probably just bake in direct checks

wide flint
#

I see. So how do I get the forage object in that case?

brittle pasture
#

check the location's objects dict at the hoedirt's tile location

wide flint
#

Oh, I did the same in GameLocation.checkAction
Didn't think about using that again. Thanks

#

Looks good, thanks again :)

silent jackal
#

I don't know how hard something like this would be to implement as a mod and if it was official in game would be awesome unfortunately it is not. Anywho, I think there should be a questline implemented with Mayor Lewis after a Joja run to be able to able to repurchase the community center back effectively reverting the community center back to the version where bundles need completed to restore it and somehow that trick the games achievement system where you could get both the Joja Warehouse and Community Center achievements on one single farm.

brittle pasture
#

someone here was/is working on that
it is fairly difficult, not the least of which is the CC/Joja division being very hardcoded
and there's the question of where the movie theatre will go

silent jackal
#

I figured it would be hard and if was something my inexperienced self could do I would. I would say once rebuying the CC back Joja would still leave the Valley so that the movie theater is still doable.

#

I went out of my way to make the suggestion on X to ConcernedApe knowing it will probably never be seen lol.

jaunty shuttle
#

Where would I find a guide that shows what other non-map non-tilesheet files I need in a map edit and what patches to use?

#

I'm looking at the modding:maps wiki page and don't see anything about it

#

Like what the CP side of a map edit is

unreal spoke
#

Your best bet is probably checking the Edit Map portion of the CP docs.

spark shoal
#

Hey mod wizards, I'm trying to get a single image, personal mod into my game (a banner my kid made) and I'm having issues with the way it's displaying in game - it looks like a "smear" of unrelated pixels.
Do I necessarily need to specify a texture for an image being added?
It's the only image in /assets, it's 16x48 pixels, it's in position 0 on the tilesheet (assuming the image in /assets is the tile sheet)...
What am I missing here?

tiny zealot
#

are you using content patcher?

spark shoal
#

Yep

tiny zealot
#

you will need to tell content patcher which asset to put your texture on, and which file to use to provide the texture

#

generally speaking, you tell it which asset using Target, and which file with FromFile

#

what in particular are you trying to edit?

spark shoal
#

Not editing anything, adding a custom banner.

#

Does it need to Target an existing in-game asset? Or is the asset the file in my /asset folder?

#

So so so co fused

tiny zealot
#

well, in what context does it appear? in fact maybe you had better just show us your json

#

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

spark shoal
#

Kk, just a sec

#

This requires tea

tiny zealot
#

Target is for specifying a game asset (often looks like a file path and mimics file path structure but is not a file) and FromFile is for specifying an actual file on disk in your mod folder

#

it is convention to keep your files in a subfolder called "assets", but this is not mandatory and often contributes to the confusion over these things for beginners

spark shoal
#

here's my content.json

    "Format": "2.9.0",
    "Changes": [
    { 
      "Action": "Load",
      "Target": "Mods/JMak.FeeBanner/FeeBanner",
      "FromFile": "assets/Felix_banner.png"
    },
    {
      "Action": "EditData",
      "Target": "Data/Furniture",
        "Entries": {
           "JMak.FeeBanner_FelixBanner": "Felix Banner/painting/1 3/1 3/1/0/-1/Felix Banner/A banner made by Felix.//Mods/JMak.FeeBanner/FeeBanner/true"
        }
    }
  ]
}```
#

That string is killing me to no end.

tiny zealot
#

looks mostly correct but try this

#

in the furniture data, replace Mods/JMak.FeeBanner/FeeBanner with Mods\\JMak.FeeBanner\\FeeBanner

#

i.e. change those two / to \\

spark shoal
#

ahh?

tiny zealot
#

just in that one string. your Load patch is fine as is

#

"JMak.FeeBanner_FelixBanner": "Felix Banner/painting/1 3/1 3/1/0/-1/Felix Banner/A banner made by Felix.//Mods\\JMak.FeeBanner\\FeeBanner/true"

spark shoal
#

Got it

tiny zealot
#

i am guessing the issue is you've left the unguarded slashes in the asset path, but the data string is slash-delimited, so the fields are off

spark shoal
#

My issue is that i understand the individual words in that sentence, but not the gestalt of the sentence. :P

#

Pixel smear again..

tiny zealot
#

make sure you did a patch reload <your mod id> and/or restarted your game, and spawned a new item

spark shoal
#

Game started from 0 (it hasn't been running between tests)

tiny zealot
#

well, hopefully someone else will be along to finish helping. i'm sorry to say i have to go

spark shoal
gentle rose
spark shoal
#

Desired: (magnification 1500%, in GIMP)

spark shoal
#

I got it to work!!!!!
In case this helps anyone else:
I changed the string to
"JMak.FeeBanner_FelixBanner": "Felix Banner/painting/1 3/1 3/1/0/-1/Felix Banner/0/Mods\\JMak.FeeBanner\\FeeBanner"
without specifying the "true" at the end and including the '0' for tilesheet index.

visual nymph
#

What does menutilesuncolored do? Where does it show up in game?

calm nebula
#

Qi shop

half tangle
#

tailoring menu and forge as well via Game1.DrawBox including a color argument

wanton tulip
#

how do i check which event is currently being played?

#

i think the mod im making is interfering with some event so when i make a playerchoice it never advance

#

smapi doesnt show me anny errors either which is confusing

#

so what is the command in smapi to see the event im currently in?

quasi dew
wanton tulip
#

oh yeah i have event repeater installed

#

thing is whenever i click something it just showed me

#

im confused beyond confusion

#

im not sure if its my mod causing this or event repeater i dont see my mod in the errors so yeah

gaunt orbit
#

!log

ocean sailBOT
#

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

Please share your SMAPI log file. To do so:

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

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

analog yacht
#

I need your opinion pls. I’m working on a majoras mask mod. One mask makes that you can get double the loot from slaying enemies. The chance is 40%. Currently you get a notification when you get double the loot. Should I remove the notification? Is it to annoying?

fossil osprey
#

Any "double loot" roll in vanilla is silent, so it feels like a nice bonus whenever you notice it
I'm for removing the notification

analog yacht
fossil osprey
#

Maybe a sound effect? Or a visual effect like some sparkles or something like that? It feels more discreet that a straight-up notification

analog yacht
#

Thanks

analog yacht
hallow prism
#

idea of what?

analog yacht
jaunty shuttle
ocean sailBOT
#

Log Info: SMAPI 4.5.1 with SDV 1.6.15 build 24356 on Windows 11 (10.0.26200.0), with 7 C# mods and 2 content packs.

hallow prism
#

no idea then!

jaunty shuttle
analog yacht
jaunty shuttle
#

I think 1 is a more logical consequence for that particular mask power SDVpufferthumbsup

hallow prism
#

if the drawback and bonus happen in different situations people will switch maskes or find the situation tedious (or both)

#

if a bonus is from loot then drawback could be damage related, like a small increase in damage taken

oblique meadow
fierce vault
#

are hats and shirts/other clothing items able to be specified as gifts? because they seem to have H or S before the item ID's. I tried one out using the number ID, and it didn't show

fierce vault
jaunty shuttle
oblique meadow
scenic ferry
#

I have a question!
I want to make my npc change their schedule after the player sees an event. Specifically, they will start going to the Secret Woods after, idk, 6 hearts. What would that look like in content patcher?

#

I'd also like to change their portraits after said event but thats a bridge I'll cross later

pale river
#

then just do something like hasseenevent: event id

jaunty shuttle
mellow laurel
oblique meadow
#

Oh. No

#

It shouldn’t.

oblique meadow
jaunty shuttle
#

That was it, thank you both!!! celebrating

scenic ferry
#

I thought I set their spawn inside their house too

#

aint that what this does?

final arch
#

they leave their house?

#

after spawning?

scenic ferry
#

they're not supposed to until later in the day

#

but they're currently in the forest and I do not know why

final arch
#

they walk over the exit warp in the house accidentally

#

when walking to their first schedule spot, probably

#

can you show us a screenshot of the house map and the spawn and 1st schedule point marked?

#

(or sleep and debug wtc YourName.VaelDeityOfThePack_VaelDeity and see what they do)

buoyant jackal
#

Does anyone here watch Hermitcraft? I need some help figuring out the gifting guide for the Hermits in my Hermitcraft mod

scenic ferry
#

Sorry for crappy phone picture

#

They're just sort of stuck there

final arch
#

doesnt look like they should walk over the warp

scenic ferry
#

They initially spawn in next to the wizards garden, they walk over to bush at 6:10am
Even past 7pm (when they are supposed to be walking to the forest, by the lake) they just... still stand there, at the bush

#

Oh! Their spawn location does give me a small clue?

They're spawning at the right coordinates, 6 22, but on the wrong map (should be in their house)

scenic ferry
final arch
#

your locationname is probably wrong

#

tho idk why that makes that spawn them in forest 🤔

scenic ferry
#

telling them to spawn again in their schedule seems to have fixed it ("Mon": "0 VaelHouse 24 18 1/...")
So I can just do that for every day I suppose
Still dont know whats causing them to warp to the forest so i'll keep an eye on them to see if it happens again

calm nebula
#

Do they have alternative schedules or home locations

scenic ferry
#

im sure i typed something wrong somewhere or something silly but I cant for the life of me find where

calm nebula
#

Did you previously have them spawn in the Forest

scenic ferry
#

Yeah, before I saved my new schedule

#

Had them spawn there before I made their house

calm nebula
#

That's the cause then

#

(It's baked into the save

#

But only for one in game day

scenic ferry
#

Oooooo I see!! Thats good to know

calm nebula
#

Had you just slept and moved on one day the issue would likely have resolved too

scenic ferry
#

That makes sense! Ty for helping

old edge
#

Hiya

fierce vault
#

hii

gaunt orbit
#

oh hey dreamy, long time no see

fierce vault
#

It would be cool if we could gift npcs hats and clothes

shut edge
slender wave
#

Apologies if this is a silly question, but when working with AT texture packs, does capitalization of file names matter? Like if you have "chair.png" but the json refers to "Chair.png" would that cause issues?

calm nebula
#

Yes, but only on Linux

slender wave
violet valley
#

When using Unlockable Bundles to add a custom Ginger Island 'parrot perch', is there any way to change the default text? I can't seem to figure out how to change it from 'Awk... (item)! Awk... Give?'

shut edge
#

so my machine rules work with "RequiredItemId": "(O)639", if i want it to be an option can i just do "RequiredItemId": "(O)639" OR "(O)whatever".?

#

or is that a comma separated thing

#

like either item would work

brittle pasture
#

add a new trigger to the triggers list

shut edge
#

ahh

#
              "Triggers": [
                {
                  "Id": "ItemPlacedInMachine",
                  "Trigger": "ItemPlacedInMachine",
                  "RequiredItemId": "(O)639",
                  "RequiredTags": null,
                  "RequiredCount": 3,
                  "Condition": null
                },
                {
                  "Id": "ItemPlacedInMachine",
                  "Trigger": "ItemPlacedInMachine",
                  "RequiredItemId": "Roseloves109_Beef",
                  "RequiredTags": null,
                  "RequiredCount": 3,
                  "Condition": null
                }
              ],```
#

like that?

#

it shouldn't have any problems if that mod isn't there either right? like it just won't do anything

#

oops forgot the (O)

scenic ferry
#

Question , how do yall go about testing npc dialogue?

#

especially for specific days? sleeping all that time just to test seems like a pain

round dock
calm nebula
#

It depends.....but

ornate locust
#

Much easier if it isn't randomized anyway

shut edge
#

CJB cheats menu helps

#

or is it CBJ

stiff acorn
#

Before I scrapped mine, I used cjb cheats!

round dock
#

Yep, this too.

calm nebula
#

check_dialogue

scenic ferry
#

ty for all the answers!!

shut edge
#

"When": {
"HasMod|contains=Mizu.TurkeyForAnimalHusbandry": "true"

#

can i have multiple mods here?

#

like, either or

vernal crest
#

Yes, add a comma after the first one and then add the second one

shut edge
#

cool

#

within the " ?

vernal crest
#

Yes

shut edge
#

nice, that worked

#

thank you

#

can i make it require two ?

#

like AND or something

#

or wait that's just another line right

vernal crest
#

Yep it's another line

shut edge
#

cool

fierce vault
#

I think I've asked this before, but does someone have any insight on how the game picks an npc to put on the front of the calender when multiple npcs share a birthday??

tiny zealot
#

offhand i would guess it does like Utility.ForEachCharacter and stops as soon as someone's birthday matches

#

which is to say you get whoever comes first in the collection's iteration order, which may or may not be knowable

fierce vault
#

Hmmm

#

It would probably always be in the same order for every player if they have the same npc mods, right?

uncut viper
#

Not necessarily

fierce vault
#

oh...

#

That's interesting

#

think that could be tested just by starting different saves?

uncut viper
#

Nope. Not that alone.

#

(Sorry, was going to type something else but gonna take a sec just to verify if it does actually just iterate over every character or not first)

#

Okay, it does just do Utility.ForEachCharacter, which itself just looks at every location in order and checks every character in that location, in order.

#

So it not only would depend on the order that locations were added in (via Content Patcher or C# or whatever) but also the order NPCs have entered or exited the same location as the NPC with the birthday in question

#

You can't control the order locations are added in and you can't really control which NPC goes where at any given time

#

And it gets even murkier when you think about the multiplayer shadow realm

fierce vault
#

wow

#

So, it sounds like it could dynamically change even in the same save? Am I getting that right?

uncut viper
#

It could change within a 10 minute timespan

fierce vault
#

that's really weird! Cool to know though

#

thanks for looking into it!

#

I wonder how many people with mega modded saves have even noticed it changing at all 😅

scenic ferry
#

Question : I'm working on my first event, and I added in my new npc, but their portrait doesnt appear and their sprite is just a big 🚫 sign
Smapi isnt showing an error

vernal crest
#

Can you share your json, please?

#

Of the event

scenic ferry
#

event is at bottom, not sure if I should keep events in a separate include or something but for now its there

vernal crest
#

Is your NPC's internal name just Vael?

scenic ferry
#

OH SHOOT

#

you're so right it should be {{modid}}_vael shouldnt it

#

tyyyy!

vernal crest
#

(Also, I really recommend that you add your mod ID as a prefix to Vael's house map and location - every ID should be unique.)

#

It looks like it should be {{ModId}}_VaelDeity actually

scenic ferry
#

ah right, i had removed it earlier for testing purposes but ty for reminding me!!

#

do i use the full modid every time they talk in the event?

vernal crest
#

Yes, the only time you ever use their display name is when the name is in you're writing text that the player will see.

scenic ferry
#

makes sense!

#

I think using the wizard just tripped me up

vernal crest
#

So for example if Abigail were to say something to them you'd write speak Abigail \"Hey Vael!\"

#

Yes, the fact that the vanilla NPCs have the same internal name as their display name does make it harder to understand that in this instance custom NPCs need to be different.

scenic ferry
#

Thanks so much as always, Aba!

buoyant jackal
#

Aba needs an award honestly for being so helpful with this stuff

vernal crest
#

Everybody in this channel is so helpful! I just can't work so I have a lot of time on my hands to lurk on discord FrogeLurk

hollow grove
#

I am working on a retexture of the SVE premium buildings and noticed that the buildings have remained paintable and the original SVE paint masks visibly overlap the retexture. I don't see anything about paint masks in other building retextures like this but I must be missing something. Any advice?

brave fable
#

i know it's a fool's errand, but is it possible to request my mod-provided tokens be refreshed with CP? i've registered a token that parses the player's DialogueQuestionsAnswered set and returns the split of a string with a matching pattern, which is meant to affect the next wedding event.

uncut viper
#

Through intended means or backdoor means?

brave fable
#

issue is that if the dialogue answer is added on the day before the wedding, the wedding event is apparently played before the token is refreshed, and the patch is only correctly applied if i return to title menu and load the save

#

intended, preferably, but this is already now using the assetrequested event and string replace instead of CP in some places

uncut viper
#

I don't believe there is an intended way then

brave fable
#

something something foreach

#

is there some equivalent workaround for this use case that you know of

uncut viper
#

Definitely not from CP at least, and the only way I know of from the C# side of things is to manually invoke CP's UpdateContext via reflection

#

You might also try purposely not caching your value in your GetValues() function but I'm only half sure that even matters and isn't just a "cache things just in case" thing, I don't think Content Patcher actually calls GetValues() every single time... or maybe it does, Iunno

#

not caching it might also break other things so shrugs your mileage may vary there

brave fable
#

ah well i'm using a simple token instead of advanced

uncut viper
#

well. it may be worth trying an advanced token then
Manually invoking CP's UpdateContext isn't difficult but it does involve updating every token and patch, so it's not cheap

brave fable
#

mm ideally i'd rather not (manually reflect into cp)

#

i'll give it a spin and see

uncut viper
#

You could make the relevant patches change on TimeChanged and that would most likely make the wedding patch update before the player actually sleeps

#

Unless they answer it and immediately sleep, or answer it at 2am

brave fable
#

it does seem oddly possible (and realistic) to have someone turn up at a wedding provider at 2am for some last minute changes before passing out and having the whole thing be a shambles

uncut viper
#

Is this for the main event script of a wedding in Data/Weddings?

brave fable
#

yep precisely

#

i have no idea how to approach the non-default events either

#

data/weddings gives me brain pain

uncut viper
#

If you have a C# portion already it might be easiest to just use a custom Tokenizable String

#

normal events are run through TokenParser.ParseText() so I assume weddings are too

#

yeah they are

brave fable
#

it's simply setup like this currently```json
{
"Action": "EditData",
"Target": "Data/Weddings",
"TargetField": [ "EventScript" ],
"Entries": {
"default": "..."
}
},
{
"Action": "EditData",
"Target": "Data/Weddings",
"TargetField": [ "EventScript" ],
"Entries": {
"default": "..."
},
"When": {
"bb/WeddingLocation |contains={{SHRINE}}": true
}
},
{
"Action": "EditData",
"Target": "Data/Weddings",
"TargetField": [ "EventScript" ],
"Entries": {
"default": "..."
},
"When": {
"bb/WeddingLocation |contains={{ISLAND}}": true
}
},

where `bb/WeddingLocation` is the c# component's simple token parsing `DialogueQuestionsAnswered` and returning the location name, matching one of the valid locations
#

but then there's also an (AssetEditPriority)int.MaxValue - 1 asset edit applied for all the backhanded clandestine string replacements and dictionary clears

uncut viper
#

Does it just change what goes inside a changeLocation command

#

Or does it change the whole script

brave fable
#

no, unfortunately you need to recreate all the temporaryAnimatedSprite coordinates

#

although i might just also run through that with some kind of horrible iterator instead of having three duplicate events

uncut viper
#

then if I were in your shoes I'd personally either just make the whole script one big tokenizable string, or just do this particular asset edit in C# and invalidate it myself as necessary

brave fable
#

rather than dealing with duplicating the dict of attendees i'm just keeping a dict of offsets per location and applying it to all the existing attendees (or those added to the cleared attendees dict with town-ish coordinates)

#

which could work for temporarysprites since they have a predictable set of params

uncut viper
#

that sounds both very efficient and very annoying to maintain

brave fable
#

Yes Absolutely

uncut viper
#

im surprised you're constraining yourself to CP here

brave fable
#

in a perfect world i wouldn't even need the assetrequested event handler doing rotten backsliding into string replacements

uncut viper
#

well you still don't if you just wanna do all the movements and location changes manually in C# when the event starts 🙂‍↕️

#

or just construct the event with a stringbuilder like the perfection cutscene

brave fable
#

in a perfect world this would be editable by normal human beings with content patcher

uncut viper
#

it is! with on time change

brave fable
#

annnnng

uncut viper
#

i understand

#

doesn't content patcher do some special handling for schedules or dialogue or whatever since theyre needed pretty early too

brave fable
#

it is with a heavy heart that i continue to edit weddings because i must and it is essential and vital

uncut viper
#

i might be making that up but if not it could probably do it for weddings too

brave fable
#

clearly it doesnt care so much about weddings

uncut viper
#

content patcher has no reason to marry

brave fable
#

this is already somewhere between unmaintainable and psychotic

uncut viper
#

another option: harmony patch Event.getAvailableWeddingEvent() 😌

brave fable
#

given this is already going to nuke any unique spouse weddings i may as well destroy literally everything right

uncut viper
#

i dont see why not

brave fable
#

since i've not actually elaborated on the concept, the shrine shop gets a 'weddings' dialogue option (shop/weddings/souvenirs similar to clint's shop/geodes/upgrades), which then goes through some cascading set of question dialogues for location > officiant > attendees > decorations, and the dialogue answers are simply used as CP tokens used as conditions/substitutions for the wedding event

#

obviously this needs to replace the wedding event script wholesale to apply the different options

uncut viper
#

that sounds like exactly the kind of thing i would just do entirely C#

brave fable
#

so naturally if you choose to customise your wedding you're going to lose any other custom event fluff you've installed. but i suppose that's not unexpected

#

it seemed so achievable with just cp

uncut viper
#

it is achievable just not painlessly 😌

#

you can just install this cool mod BETAS ive heard about too to make it easier

brave fable
#

you can even string together a little sequence of dialogue entries on the shopkeeper that seamlessly handles all the options. just takes a little c# cp token to get an iterator on the data model for available locations/officiants/attendees

#

does betas conditionally fuck with weddings

uncut viper
#

just as the cheetos yearn for the foreach, the sharpies yearn for more ways to influence a content patcher patch

#

no but BETAS can let you store things in mod data and then retrieve it in a tokenizable string

#

which bypasses the need for a custom tokenizable string

brave fable
#

being a cheeto does not necessarily mean not a sharpie, and sharpie does not necessarily mean not a cheeto (except us of course 🙂‍↕️ )

#

we lack a word for content-only

#

i nominate Jason

uncut viper
#

i use the term content modder to describe people who actually make Things

#

and not Tech to Make Things

gentle rose
#

where did sharpie come from

uncut viper
#

the same place tractions came from

brave fable
#

button probably

uncut viper
#

i got tired of writing "person who can write C#" and "C#er" looks ugly as sin

brave fable
#

i use it because it sounds like an insult in mandarin

#

don't ask what's with the mandarin all of a sudden. my life moves in mysterious ways

uncut viper
#

i wasnt gonna question it, i was just gonna wait to see how much mandarin was present in your next mod release

brave fable
#

probably none. this is japan mod of course

uncut viper
#

speaking of releases i would give someone at least one (1) endorsement and download if they made a mod that skip prefixed every annoying-to-patch function with their own version with their own mod hooks and events in it and convinced every other sharpie out there to add support for it

#

this message brought to you by: i hate Crop.harvest

brave fable
#

why convince anyone, just unpatch their harmony patches and apply them to yours

#

couldn't be easier

uncut viper
#

the classic conundrum: if they were so easily rewireable like that, the function in question would probably be easy/modular enough that i wouldnt be annoyed by it

gentle rose
uncut viper
#

but no, instead we all have to transpile these things like peons

brave fable
#

you've heard of Better Game Menu. now it's time for Better Game

uncut viper
#

mod title: Integrate With My Hooks Or I'll Brick Your Mod

#

im sure people would love drawTooltip to be less of a fight too

patent lanceBOT
brave fable
#

on the plus side, drawtooltip lets me easily add features by overriding the object class

uncut viper
#

thats only a plus side if you're drawing plusses

#

i was gonna say tryParseDialogueString would be another candidate too but I don't know if anyone actually patches that one or just looks at it in horror for what it is

brave fable
uncut viper
#

(which is to say if you or a loved one patch that method please let me know, im curious)

uncut viper
brave fable
#

if not buffs i not care

uncut viper
#

understandable. bricked mod 🙂‍↕️

brave fable
#

fair trade. pleasure doing business with you

patent lanceBOT
uncut viper
#

im glad i can rely on blueberry to understand my emojis

uncut viper
#

what is p4a

#

Persona 4: Allowance

gentle rose
#

portraits for all

uncut viper
#

oh

#

that does ring a bit of a bell

gentle rose
#

the one in which they made the cursed decision to use a unicode emoji as a delimiter

uncut viper
#

I don't see a patch for it in the code

#

the dialoguebox constructor is patched instead

gentle rose
#

that is an easy one to construct tbf

uncut viper
#

I honestly can't really think of a reason why someone would want to transpile into tryParseDialogueString if not to add their own dialogue command syntax, but also, why would someone need to do that

gentle rose
#

I did make a test version once that patches the string asset manager instead just for the fun of it, but that's kind of jumping one level over that method SDVkrobusgiggle

analog yacht
#

Currently working on a majoras mask mod. On mask gives you 30% of the time one extra loot from slayen enemies. Currently thinking about to change This so the player gets a random amount of gold instead of extra loot. What do you think

hallow prism
#

you may want to try stuff and see what you prefer

#

what would you find more fun when you play? and such, rather than "what should i do"

analog yacht
brave fable
#

for what it's worth, neither is particularly complex with c#. play around with it and see what you like

hollow hatch
#

stupid question but is there a way to update smapi mod configs while stardew is running or do i need to close and reopen every time

vernal crest
#

Have you got Generic Mod Config Menu? That lets you edit config files for most mods while in game.

vernal crest
#

Then that is how you do it. Not all SMAPI mods set up their config to use GMCM however, so for those you will still need to edit the config.json manually and then restart the game.

#

(I say that, but I have never had to actually do it because so few mods are like that.)

hollow hatch
#

im using music replacement framework and making my own custom replacement mod

vernal crest
#

You should not need any framework other than Content Patcher for music replacement

hollow hatch
#

i dont know how to do content patcher

vernal crest
#

What mod is it specifically that you're using?

hollow hatch
vernal crest
#

Ah, no wonder I couldn't find it. I have this person ignored because they use gen AI.

hollow hatch
#

i see, well youll have to forgive me this is literally the first time ive done a mod

vernal crest
#

They do list GMCM as an optional requirement though so they must have some sort of GMCM integration

hollow hatch
#

currently im trying to completely replace the sve soundtrack (or at least as much as would make sense) with HM DS songs

#

but im not sure how id do that with content patcher

vernal crest
#

With CP you edit the AudioChanges asset and use the ID of the track you want to replace as your key and ID for the track. If you don't intend to use shuffle, it may be easier this way - not least because everyone in here is very familiar with CP and can therefore provide more support. https://stardewvalleywiki.com/Modding:Audio

hollow hatch
#

i havent used CP so i dont really know how to format files for it

vernal crest
#

Well, you haven't used Music Replacement Framework until just now and that didn't stop you from starting that! So I have faith that you will be able to use CP if you decide it might be preferable.

(I am not trying to push you away from using MRF if you want to, just encourage you that if you do want to try CP it will be possible.)

hollow hatch
#

well i have the actual soundtrack converted to wav so that should work yeah?

vernal crest
#

!startmodding Ignore the C# links below. The rest are related to json modding so they are applicable to you.

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.

vernal crest
hollow hatch
#

its primarily for personal use but i might upload it one day

#

so i have a manifest file, i dont know what to do next

#

a content.json file?

vernal crest
#

Yup, that's right. And you can actually copy the example on the audio wiki page for the json to go inside your content.json

#

Though you can delete this part because it's for adding your music to be played in a location and since you're replacing existing tracks, it's unnecessary for you.

hollow hatch
#

so i put the name of the track into filepath?

#

and then next line and put in the next track and location?

vernal crest
#

You do put the name of the track into the filepath

#

To do a second one, it will look like this (but without discord's wacky indentation):

"SVE_SONG_ONE": { // You need to make sure you find the exact name of the SVE track in the data which is not necessarily the same as the file name - if the SVE music replaces vanilla music, you need to find the vanilla ID instead
                    "ID": "SVE_SONG_ONE",
                    "Category": "Music",
                    "FilePaths": [ "{{AbsoluteFilePath: assets/1_Opening.wav}}" ],
                    "StreamedVorbis": false,
                    "Looped": true
                },
"SVE_SONG_TWO": {
                    "ID": "SVE_SONG_TWO",
                    "Category": "Music",
                    "FilePaths": [ "{{AbsoluteFilePath: assets/2_Spring.wav}}" ],
                    "StreamedVorbis": false,
                    "Looped": true
                },

And then so on and so forth for the rest. Replace SVE_SONG_ONE etc with the actual ID of the track you are replacing.

hollow hatch
#

i replace this with the track ID in SVE?

vernal crest
#

Yes, but also the key as I said before.

hollow hatch
#

the key is the one line above?

vernal crest
#

Yup that's right

hollow hatch
#

alr

#

do i have to worry about the modid_music stuff

#

or can i delete it

vernal crest
#

You can delete it. Those are example IDs and keys for when you want to add new music with unique IDs instead of replacing existing tracks.

hollow hatch
#

so like this?

vernal crest
#

You need to change StreamedVorbis to false because that can only be true for .ogg files but otherwise yes that looks pretty good.

#

And with CP you can make changes to the file with the game open. Once you've saved your file, you can type patch reload <mod id> into the SMAPI window (replace <mod id> with the unique ID from your manifest) and it will update with your latest changes.

hollow hatch
#

gotcha

#

the mod isnt showing up in stardrop, do i need to upload it to nexus to get it to load into stardrop?

vernal crest
#

Nope

#

If your mod is in the Mods folder, you just need to go Tools -> Refresh Mod List

brave fable
#

is this still true?

vernal crest
# brave fable

I don't think so? I think it's that you can't remove your edits using patch reload because edits are applied permanently for the session. But I may have misunderstood the whole conversation.

vernal crest
hollow hatch
fossil osprey
#

Your "Changes" array isn't closed, you're missing a "]" after your second-to-last "}"

hollow hatch
#

fixed it

vernal crest
#

That shouldn't prevent it from showing up in Stardrop though. Try restarting Stardrop.

#

OH

#

You have no unique ID

#

That will stop it from showing up in Stardrop because that is a mandatory field

hollow hatch
#

can i make that anything i want?

#

ah okay it showed up

#

W

vernal crest
#

The usual convention is AuthorName.ModName, with the mod name often being a shortened version of what is in the Name field. But yes you can make it anything you want as long as it is not the same as any other mod's unique ID (hence why including your author name is recommended).

#

You probably also can't use slurs or things like that. I imagine those are blacklisted.

hollow hatch
#

i used VantageHGC.HMDSOST

#

should be fine

vernal crest
#

Yup that looks good

hollow hatch
vernal crest
#

Should do, yes

hollow hatch
#

gotcha

#

so i just repeat what ive already done for the main theme but for all the songs i wanna replace

vernal crest
#

Yes, but don't do that until after you have confirmed that it works for the main theme.

#

You don't want to get it all done and only then find out that you have a typo that we all missed seeing or that it's not actually doing what you thought it would do.

hollow hatch
#

yeah it works

vernal crest
#

You have made a CP mod, congrats!

hollow hatch
#

nice, though these music descriptions are kind of brief, is that a way i can find them in game easily

vernal crest
#

It lets you find the name in its menu and click on it to play it. The spreadsheet linked on the wiki page also has more in depth descriptions for some things and sometimes YT links.

hollow hatch
#

i see i see

#

thanks

brave fable
# uncut viper that sounds like exactly the kind of thing i would just do entirely C#

anyway i fucked off the duplicated event scripts and instead added a TokenParser lambda to match the default behaviour and nailed it to the assetrequested event. pity there's no reasonable way for handling nested tokens (e.g. offset tile coordinates token within decorations event script token), but i have no shame in just calling the parser again rather than making a wrapper token at midnight.
i'll probably keep the cp tokens just to construct question dialogues though since that works well enough, other than still needing to wait to the next day before new options appear (e.g. player visited custom island location)

vernal crest
#

You sure are, Grandpa

brave fable
#

his sprite is probably 5 years old by now. very old man

blissful panther
#

(You missed a bit of censoring up top there. Might want to delete and and re-do!)

vernal crest
# hollow hatch pain

Your error message just means that you've got some syntax wrong somewhere. Might be a missing comma or maybe a colon.

#

Basically it's just a typo

hollow hatch
#

ok fixed it

#

holy jumpscare

timber plover
#

i notice when i do a config for sounds and turn them off it only takes effect when i restart the game! Ö-Ö is there a raeson for that ?

#

im using generic config mod for that test by the way!

vernal crest
#

If you're turning an edit to a sound off and on rather than changing between different options, edits to AudioChanges persist for a session

#

So once the edit is there, it can't be removed, only changed (iirc)

timber plover
lucid mulch
#

Unlike every other Data Asset, AudioChanges is simply read and used to then do mutations to the soundbank, it isn't itself the source of truth of audio

hollow hatch
#

is there a way to split music prompts? i wanna have specific music for 0-4 hearts, 4-8 and 10

vernal crest
#

You can use the When field to set conditions that will decide which patch will be applied. So you'd have each of your different heart level groups in a different patch and then use the Hearts token to make CP pick which patch to apply. https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide/tokens.md#conditions

I am giving this information without really understanding what you mean about the heart levels - who with? In what situation would this music be playing? So I'm sorry if I've not understood the question properly.

hollow hatch
#

so in HM, theres only 3 tracks for heart events for all characters and i wanted to emulate that

devout otter
#

The very first field of an event is always the music, so the simplest way is to just patch that for every heart event.

vernal crest
#

You'll have to edit a lot of events though and any mods that add events or characters won't have the music you set

hollow hatch
#

yeah thats another thing i gotta get around to, SVE compatibility

#

and i dont know SVE music IDs

#

is there a way to have CP universally change every 1 heart event music?

vernal crest
#

Nope

devout otter
#

Presumably you wouldn't need to know those music ID because you'd be changing them to your music anyway.

hollow hatch
#

ugh

vernal crest
#

If you're talking about replacing the music tracks like you were doing with vanilla before you started the events thing, yes you will need the IDs for any SVE music that doesn't just replace vanilla.

devout otter
#

If you are changing the first field of all event to your music anyway, the original music that was there is irrelevant, yar?

vernal crest
#

Dolphin is, I think, going to reply based on just the events music

hollow hatch
hollow hatch
vernal crest
#

Every event has its own music

devout otter
vernal crest
#

Uh, I don't mean that the music is made custom for the events. I mean that like Dolphin is saying, the first field in an event script controls the music and that is set individually for every event.

hollow hatch
#

trying to wrap my head around this

#

sorry

torpid sparrow
#

I don’t think there’s a way to patch music for events that isn’t going through the individual events chiiThink

vernal crest
#

Basically the game doesn't have "event music" that plays during events. Any piece of music in the entire database can be used in an event.

torpid sparrow
#

Wouldn’t the event script override anything set to a general blanket anyway

vernal crest
#

There is no general blanket to set

torpid sparrow
#

Yeah

hollow hatch
#

so theres not really an option then?

vernal crest
#

There is

#

It just involves editing every single event in the game one by one

#

And, if you want to also edit mod-added events, manually editing all of them too

torpid sparrow
#

This an example of an event script

#

The movieTheatre field is the music set for the event

#

You can change that field, every event has it

#

But you can’t change all of them in one patch

hollow hatch
#

i dont think i know enough to do that yet

vernal crest
#

I think it'd be possible to edit all the events in one location in a single patch though

#

It's definitely not the thing I'd reach for on my first day of modding

hollow hatch
#

authenticity tho 🗿

vernal crest
#

Nothing to stop you from trying, of course. Make a backup of what you've got so far and jump in.

torpid sparrow
#

Sounds like head hurty but I think you’ll learn a lot SMCPufferSquee

pale river
#

is overwriting the music counting or not cus you can replace tracks

hollow hatch
#

yeah im trying to replace the soundtrack with HM DS soundtrack

vernal crest
#

And because events are slash-delimited strings, the field you need to edit for each event will be "1": "INSERT_DESIRED_MUSIC_ID_HERE

vernal crest
#

They want to set every single heart event at a certain heart level to the same music track

pale river
#

ohh yeah oof

#

it'd just be easier to replace the music instead of making every event the same theme

vernal crest
#

Except then you're making every single track in the game identical

torpid sparrow
hollow hatch
#

yea

#

0-4 is the first heart track then 4-8 is the second and 10+ is the third

pale river
#

replacing the music would also solve the problem of other mods potentially using vanilla music

vernal crest
#

But they also want other music to play in other situations

thorny acorn
#

Hey, sorry to interrupt but I'm looking into making my own NPC, with no mod making experience whatsoever because I never make things easy for myself, lol. Would anyone be able to help point me in the right direction?

vernal crest
#

So it's like trying to swat a bug using a nuclear bomb

#

!npc

ocean sailBOT
#
Creating a Custom NPC

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

torpid sparrow
#

Also, if you haven’t unpacked ur files, do that first

pale river
# ocean sail

theres a video tutorial in the bottom of tia's tutorial btw

torpid sparrow
#

That way you can access all the files you need

#

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

torpid sparrow
#

(Unpack first!)

pale river
#

you'd basically be copying the entire events.json except adding it to edit/data and then replacing the theme index with your desired theme

vernal crest
#

There is no events.json soupy friend

torpid sparrow
#

Well Aba did say u could edit the fields

#

And also yeah no events json

#

There are many a location

#

In an events folder iirc

vernal crest
#

And there absolutely should not be any inclusion of any part of the event that is not just the very first field

#

(I have already given instructions to vantage for how to achieve this, just in case you missed that and thought we were still in the brainstorming stage ^_^)

pale river
#

oh okay sounds good

thorny acorn
#

I'll have a look into all of this, thank you!

torpid sparrow
#

Yes we circled back to the nuclear bomb of it all SMCKekLmaoDog

#

What I would do is just blast my own music during the events and not code anything SMCPufferSquee

pale river
#

I wonder how you specifically target the first field in the edit changes though

vernal crest
#

Be like iro and play the game on mute

torpid sparrow
#

I do

#

I never have the volume up on any of my games

pale river
#

I only play with sound, no music

torpid sparrow
#

I’m always watching something else

vernal crest
#

Oh you are one of those ADHDers

#

Like my brother

hollow hatch
#

i didnt play with music either

torpid sparrow
#

I don’t know if I have ADHD but there is a non zero chance

vernal crest
#

I, on the other hand, have a book ready so I can read during load screens

torpid sparrow
#

I need my brain to be stimulated in at least 2 ways

#

Maybe 3 ways sometimes

vernal crest
#

Strong ADHD trait

#

I am hyper sound sensitive and have auditory processing disorder so while I need to always have several things on the go, they just aren't sound

torpid sparrow
#

Ahh that makes sense I’m very sound forward