#making-mods-general

1 messages Ā· Page 224 of 1

uncut viper
#

you can also just fix that with additional dependencies

gritty hazel
#

is inheriting quality from the input item the same problem, or can you do that with contentpatcher alone?

brittle pasture
#

is there a mod that does that
I contemplated adding something like "affected_by_angler" tag to EMC, but lazy and busy

uncut viper
#

i meant fixing the price of already created items

brittle pasture
#

would that work with dynamically priced machine output (re: button)

uncut viper
#

no

#

if you kept one that was more expensive than the base price it would be a downgrade i suppose

brittle pasture
#

pein

gritty hazel
#

what happens if you stack pre- and post-angler products?

brittle pasture
#

the pre-angler product consumes it

#

well there's another workaround, that is if in your machine rules you give your post-angler product a different internal name

#

then they wont stack

#

(note: internal name is not the item ID. they'd both have the same item ID)

#

I think that idea should be good enough

gritty hazel
brittle pasture
#

[[Modding:Machines]]

brittle pasture
#

(checkout the Index page for the rest!)

gritty hazel
brittle pasture
tribal ore
#

Quick, probably dumb question, but how do you load in a larger object during an event? I'm trying to add a fallen log (one of the 2x2 sprites from springobjects.png), but no matter what index I feed into addObject, I get the little crossed out circle of unhappiness

gritty hazel
#

so how does CopyColor work btw? does it just automatically know how to hueshift correctly?

brittle pasture
#

it will hue shift the entire sprite, unless you set ColorOverlayFromNextIndex to true in your fish sauce item's data, in which case it will color the sprite next to the main sprite and overlay that on top

#

you can see how the game does it for wine/pickles/etc.

gritty hazel
brittle pasture
#

yep

gritty hazel
#

and it'd recolor only the label

#

what's up with cornucopia using this instead of just "CopyColor": true?

uncut viper
#

does MachineItemOutput really call it CustomData instead of CustomFields
horrendous

gritty hazel
#

am i missing something?

calm nebula
#

That was a 1.6.9 thing

brittle pasture
#

CopyColor used to not work properly before 1.6.9

#

Cornucopia Artisan Machines was released before 1.6.9 so it used the framework for that

#

now you can just set it to true

gritty hazel
gritty hazel
brittle pasture
#

true

brittle pasture
#

it just also happens to be supremely convenient for modded settings

gritty hazel
#

also
localization my beloathed

brittle pasture
#

(under ObjectDisplayName)

tawny ore
#

Some of that stuff isn't supposed to be in the brackets

#

You probably want to have this ] after Flavored_Name

brittle pasture
#

wdym

#

that looks fine

tawny ore
#

Oh is LocalizedText not just a lookup of the String?

brittle pasture
#

LocalizedText also supports {0}, {1}, etc., and the optional arguments will be substituted into those

tawny ore
#

ah, I didn't realize that

gritty hazel
#

wait whats up with the double %PRESERVED_DISPLAY_NAME?

brittle pasture
#

an item named "{0} Juice" in English might be "Nuoc {0}" in another language

#

you can't rely on %PRESERVED_DISPLAY_NAME to be before or after the name

lucid iron
#

why is mail parsed in the constructor this is terrible

brittle pasture
#

ie. it turns into "Anchovy" if your item is Anchovy-flavored fish sauce

gritty hazel
uncut viper
#

why are you digging around in mail

#

some things only need one substitution

#

pickles_flavored_name has two

gritty hazel
#

is pickles_flavored_name just completely arbitrary btw?
pickles_flavored_name only appears there and on another pickled item in objectdisplayname

uncut viper
#

no

#

Strings/Objects:Pickles_Flavored_Name refers to a specific string in the game

dusk mulch
#

😭 end my suffering...

vernal crest
uncut viper
#

i mean its arbitrary in the sense that you can load whatever custom string you want i guess

#

but in the LocalizedText tokenizable string, it must match whatever exists

brittle pasture
#

I believe addObject also needs a valid item in game data to start with

gritty hazel
brittle pasture
#

beeg log is not an item

#

for now just to get it working do "%PRESERVED_DISPLAY_NAME Fish Sauce"

#

you can convert it into i18n/tokenized strings once you get the rule working

tribal ore
vernal crest
#

Lol addObject just calls TemporaryAnimatedSprite anyway

uncut viper
#

(addObject does indeed need an actual Item to copy from)

tribal ore
#

textureName = what for springobjects?

brave fable
uncut viper
# calm nebula Why not?

personally i would just rather it be put in its own method, not that its a problem with parsing it on creation

tribal ore
vernal crest
tribal ore
#

Will give it a spin. Thank you!

calm nebula
dusk mulch
uncut viper
#

yeah but in three different constructors

calm nebula
#

Could have a fourth SDVpufferthumbsup

brittle pasture
#

(chu if you're here are you also impling item query mail attachment)

#

(something something I have two pennies)

gritty hazel
#

i assume if ObjectDisplayName works to change the name of the item when you make it, ObjectDescription changes the description?

brittle pasture
#

no, that's not a thing

#

just display name

#

smoked fish has dynamic description, but that's specialā„¢ļø

lucid iron
#

feeesh

vernal crest
gritty hazel
#

ah, so different wines always have to have the same description?

gritty hazel
tribal ore
uncut viper
#

if a mod gets popular enough (which in some cases is like, 50 downloads), other people volunteer localization

brittle pasture
#

ok, but you dont have to be the translator

gritty hazel
uncut viper
dusk mulch
#

welp guess im not doing mod testing today (its like 38*c where i am and my computer would die)

#

(100*F)

hard fern
dusk mulch
hard fern
#

Magic

dreamy cedar
#

QQ - Are 'update' methods, like NPC.update called on a fixed cadence, like 60/sec? Or is it framerate-dependent? I see a bit of code around that seems to assume a fixed 60/sec cadence, but not sure...

dusk mulch
#

im going to make a tutorial for modding for myself, like my own little book for modding (since i am going to make it i can make it so i understand it however i want)

uncut viper
#

someone smarter than me will correct me if im wrong im sure

rough lintel
#

idk ur pretty smart id believe it

brittle pasture
#

I think if the game cant handle 60 ticks per sec then it'd just slow down

#

(not smarter than button)

uncut viper
#

i know OnUpdateTicked has that being true, but i cannot personally confirm from my own knowledge whether every single custom Update() method happens after every tick

#

but if they all follow SMAPI's UpdateTicked event then its "appriximately 60/sec"

#

under good conditions ofc as selph mentions

#

(and in this case wen i say Custom i just mean "doesnt come with XNA/monogame")

dreamy cedar
#

That's been my working theory. I think I'll just go ahead and assume 60/sec for things that are basically aesthetic.

lucid iron
#

usually animation frames are on a timer not frames

vernal crest
lucid iron
#

175ms and stuff

#

so it's not important that tick is 60/sec exactly, using elapsed time from GameTime is enough

dreamy cedar
#

Yup, animations seem to work with elapsed, but things like jump are going to be tied to tickrate. (As it updates gravity every update, regardless.)

vernal crest
#

Every time I go to place furniture in game I think "argh, I hate AT for furniture, I will go convert all these AT packs to CP" and then when I am out of the game I think "argh, it's so much work to convert all these AT packs to CP just to avoid a slight annoyance in game, I'll just deal with them being AT".

#

Stuck in an endless cycle of avoiding decorating.

tribal ore
# vernal crest I can offer an example and help, if you like!

Yes please. I have this based off the Marnie dance example:
temporaryAnimatedSprite Maps\\springobjects 32 400 32 32 400 0 99999 39 11 false false 32 0 1 0 0 0 ping_pong/

It is currently flickering between the log and the next 32x32 spot on the sprite sheet XD

#

And I can't figure out how to change it so that the animation has only one frame

dreamy cedar
tribal ore
vernal crest
#

Lina made me a thing to automatically convert AT packs to CP but I can't remember how to use it lol

hard fern
#

I converted furniture from at to cp but then didn't want to use the furniture because i hate decorating

tribal ore
#

But it thinks that the animation should be more than one frame. Posted the code above

vernal crest
tribal ore
#

is the last field required? if so, what can I use besides ping_pong?

vernal crest
#

There's a more indepth explanation of the command on the migrate to 1.6 page which I think needs to be on the event page

#

No, the flags aren't required

tribal ore
#

ok good. I'll give it a try!

tribal ore
vernal crest
#

Hooray! Glad it worked.

rotund elm
#

Hi Chu, are you still present?

uncut viper
#

is there a question that only chu can answer

rotund elm
#

Its about their mod he made for flavored items

uncut viper
#

@lucid iron the answer is yes there is a question that only chu can answer

rotund elm
#

XD

#

Thanks Button

uncut viper
#

(but you should ask it so chu sees it when they find the ping)

#

(too late)

lucid iron
#

im scope creeping the mod

rotund elm
#

WAIT I CANT TYPE THAT FASY

lucid iron
#

check back in 24hrs

uncut viper
#

(sorry chu i forgot they didnt actually type the question before i pinged)

lucid iron
#

but i did post the test one yesterdya

rotund elm
#

lol omg ok so do you plan on publishing that mod soon? I would like to use it for a shop in my mod FoS

lucid iron
#

u will have to change the id eventually

#

but u can try it

vernal crest
#

Ahhhh it's scary trying to update wiki pages with info from the migration page.

lucid iron
rotund elm
#

Ok, I just don't want to add a dependency for it, if users have no way of downloading it from Nexus yet, and there is no rush at all, but I will be eyballing your modpage like a hawk until it is posted : )

lucid iron
#

well it matters a little in that

#

u will have to change the Id

rotund elm
#

Wait are you saying it is posted with a new Id

#

Im slow sorry XD

lucid iron
#

it will be

#

bc putting this in my map mod is a little silly

dusk mulch
#

i would love a mod where you can deny the letter at the start of the game and work for joja instead (put it on the mod idea repo)

lucid iron
#

so if u already put stuff in ur mod using the mushymato.MMAP id u will have to change it later

latent mauve
dusk mulch
#

Oh yeah lol

latent mauve
#

Like Morris with JojaMart, but you're meant to be a plant in the town to demoralize Lewis, LOL

vernal crest
#

I hate trying to read the wiki syntax but I love helping the wiki be up to date. Such is life in the zone.

scarlet saddle
#

Could someone quickly take a look at this? am I using when wrong?

          "Action": "EditImage",
          "Target": "Maps/townInterior",
          "FromFile": "assets/wiztowerinterior.png",
          "ToArea": { "X": 0, "Y": 0, "Width": 512, "Height": 1088 },
          "PatchMode": "Overlay",
                "When": {
        "SelectedWarpMap": "WizardHouse"
       },
       {
          "Action": "EditImage",
          "Target": "Maps/townInterior",
          "FromFile": "assets/wiztowerinterior.png",
          "ToArea": { "X": 0, "Y": 0, "Width": 512, "Height": 1088 },
          "PatchMode": "Overlay",
                "When": {
        "SelectedWarpMap": "Custom_WizardBasement"
       }```
lucid iron
#

yea i dont think SelectedWarpMap exists

scarlet saddle
#

...oh

latent mauve
#

So, on the backburner for that perfection farm thing-- the string mentions that you are left a Magic Lamp that grants a powerful bonus. What would make sense for that? Daily buff similar to the mastery statues? Daily iridium/resources/gold similar to the perfection statues? something else?

vernal crest
scarlet saddle
#

found it on CP wiki

vernal crest
#

CP wiki?

#

There is not a CP wiki AFAIK

rotund elm
latent mauve
#

There's an author guide on the Github, but that is very much not a wiki.

scarlet saddle
#

errr. the content patcher github, yeah xD

vernal crest
#

And there's no mention of SelectedWarpMap on the github as far as I can find

latent mauve
#

Which section? I've never seen that on there either, even in the config or token sections

vernal crest
#

(We are asking because we want to help btw, not to nitpick at you)

scarlet saddle
#

uh oh.. where did I get that from xD

#

Okay, so basically I'm trying to make the modified town interior only apply when in the wizards tower/basement

latent mauve
#

ah, then you want the location as your when condition

tawny ore
#

The only place I see the word SelectedWarpMap being used is a DynamicToken from SVE:

scarlet saddle
#

... that's probably where I grabbed it then.

rotund elm
vernal crest
#

I think this is what you want then:

"When": {
        "LocationName": "Custom_WizardBasement, WizardHouse"
       }
#

You'll need to change the update rate to OnLocationChange.

scarlet saddle
#

ty! Idk why I didn't try locationname first.

rotund elm
vernal crest
tawny ore
#

Jellyfence

dusk mulch
scarlet saddle
#

That just makes me think of a fence in skyrim that only accepts jam and jelly

latent mauve
#

"The gate is closed but looks at you hungrily. Offer jelly?"

fierce vault
#

I’d like to hear some opinions from you guys here on npcs. What kinds of custom npcs would you say don’t seem very common but you’d like to see more of? Are there some ideas your surprised no one has done yet?

latent mauve
#

Toll gates, LOL

latent mauve
scarlet saddle
#

I like seeing NPCs that traverse several mods, in general. Like Eli and Dylan seem to

vernal crest
#

Not enough children!

fierce vault
vernal crest
#

I have the Stardew Kids Expansion mod but it's a bit sad because none of the NPCs really acknowledge that they exist so they feel like ghosts

fierce vault
versed wyvern
#

Maybe pirates related to the ones that show up at the Ginger Island cove?

lucid iron
#

make bird npc

latent mauve
#

There was that one mod that filled out a school with more kids before, I think. But I'm not sure it still works.

tiny zealot
#

children are tough to do because they generally depend on adults, so you automatically have more work to do

versed wyvern
#

A whole pirate crew just comes and goes but no one mentions them

scarlet saddle
#

Yeah.. I've started limiting the types of npc mods I get if no one in town seems to take note of them, or they're sort of monolithic

brave fable
#

there really aren't many edible npcs in the game are there. now there's a mod with moral dilemma

tiny zealot
#

something something krobus black licorice

uncut viper
#

i would really like more monster people

brittle pasture
#

an NPC whose heart level is an indicator of how much you ate them
at 10 hearts they just fking disappear permanently

scarlet saddle
#

Ooh yes.

latent mauve
# fierce vault Like more pet npcs that can talk?

Either ones that can talk (you can lock the understandable speech behind the Forest Magic wallet item if you want), or just random animals that have descriptions about things they are doing when you click on them rather than direct speech.

fierce vault
tiny zealot
vernal crest
#

Are you saying Lacey is a pet?

#

Because I think she would have something to say about that ichor

latent mauve
#

I think they're saying Lacey is an alternative to a talking pet that's still an animal

scarlet saddle
#

You could pet her, theoretically.

uncut viper
#

theoretically?

fierce vault
#

a little weird

uncut viper
#

if i was a mouse girl i would want to be petted

fierce vault
#

I’ve never played any hat mouse mods

tiny zealot
#

listen i'm not going to tell anyone what they can and can't do with their mouse wife

latent mauve
#

Instead of "can I pet the dog" it's just "Can I give the mouse an ear rub"

scarlet saddle
#

I mean.. you can't actually pet her, but in theory? xD Need a way to give her headpats

uncut viper
#

their mife, if you will

scarlet saddle
#

Ooh the forest mouse mod is also cute, but they're not really npcs you interact with much

tiny zealot
#

anyway, assuming i ever make another NPC, i think i have it lined up, and would you believe it's another nonhuman

uncut viper
#

i would actually

vernal crest
#

My IRL wife actually is my mouse wife and I do pet her so this checks out

uncut viper
#

mostly bc i think it would be really weird to lie about it

latent mauve
#

Truly groundbreaking

fierce vault
#

I’m a little confused now

vernal crest
#

By the way we have just meandered around saying some useful stuff and some silly stuff?

lucid iron
#

||crow||

latent mauve
latent mauve
#

Random chance sea monster?

fierce vault
calm nebula
#

My ||favorite new 1.6.9 addition||

fierce vault
tiny zealot
versed wyvern
#

Sorry to add another topic btw but is it possible to make a music file not get added to the jukebox selection after playing?
Because my scene is adding a clip of snoring sounds to the jukebox and I don't want that there CleveWhat

uncut viper
#

i dont remember what the jukebox menu looks like, does it show "???" or smth if you dont have one unlocked?

#

or does it just show nothing

#

bc if it shows nothing you can just use MarkSongHeard Current songId false

versed wyvern
#

Nothing's there, the selections just increase every time you unlock more songs

uncut viper
#

(its a trigger action)

#

(... action)

fierce vault
#

I wonder why there aren’t more shadow folk npcs honestly

brittle pasture
#

I think you can edit Data/JukeboxTracks and ban your track

scarlet saddle
#

Sen and Krobus need more friends

vernal crest
#

Sen is one of my favourite NPCs

fierce vault
brittle pasture
versed wyvern
#

I'll look into those methods then, thanks Watame_BounceFast

scarlet saddle
#

There needs to be like... an outcast shadow person club, where they sit in Sen's hideout and sew cosplays and discuss shadow person politics

tiny zealot
#

i'm 96% sure you can manage the jukebox with just CP but i forget how

uncut viper
#

is that what the _disabled_ entry in JukeboxTracks is for

brittle pasture
#

(tbh Sen is great, but imo he's kinda lore breaking since he's just waltzing around in daytime)
(unless there's a heart event that explains it and I missed it)

uncut viper
#
  "_disabled_": {
    "Name": "Invalid",
    "Available": false,
    "AlternativeTrackIds": [
      "buglevelloop",
      "coin",
      "communityCenter",
      "jojaOfficeSoundscape",
      "nightTime",
      "ocean",
      "title_day"
    ]
  },
#

i have never looked in this file before

calm nebula
#

Neither have i

brittle pasture
#

I can't believe I'm not allowed to loop my favorite track jojaOfficeSoundscape

calm nebula
#

We can enjoy it together

uncut viper
#

why is title_day banned ):

calm nebula
#

Well.

uncut viper
#

no ocean sounds either... rude

calm nebula
#

You can look at it, I can look at discord, because I sure the hell am not getting out of bed for anything right now

uncut viper
#

you have the repo you can look at it in there

calm nebula
#

Not on my phoneeeeeee

uncut viper
#

i cant believe atra doesnt have a web browser on their phone

calm nebula
#

Although I could log in to github with my modding github I guessss

scarlet saddle
#

....is it a nokia or something??

tiny zealot
calm nebula
#

(I have two githubs. One for modding. One is my real name github.)

uncut viper
#

why is the weird one there

hard fern
#

šŸ˜… my npc's sorta break lore but not in any significant ways, just like "yeah this exists now btw, not like the average person would care though"

calm nebula
#

In irl we don't speak of my mods

#

Tbey don't exist.

tiny zealot
#

i don't know, button

uncut viper
#

why not :/

tiny zealot
#

i wouldn't say lacey breaks lore so much as i just wrote what i wanted

#

(it helps that the extent of hat mouse lore in the game is "hat mouse. poke")

hard fern
#

talking mouse is already canon, apparently. Are there more talking mice other than yhe hat mouse ?

fierce vault
#

I wish I could survey what the most common npc professions ppl write are

hard fern
#

Honestly probably science something

brave fable
#

"desperately unemployed"

hard fern
#

I keep seeing characters in the field of some kind of researcher

calm nebula
#

Adventurer

brittle pasture
#

"truck freak"

calm nebula
#

I feel like I see a lot of adventurers

uncut viper
#

i cant wait for my NPC to bend/break the lore i hope people complain about it in my nexus comments

fierce vault
hard fern
#

You'd be surprised

uncut viper
#

theres someone to care about everything

hard fern
#

I want more nonsensical wizards in my game

fierce vault
hard fern
#

Im going to put more wizards in my game

calm nebula
#

I just ignore

hard fern
#

Tbh you can't expect anything until it's done unless it's like. something you know will be a talking point from the start

fierce vault
#

I mostly see positive on others posts. Are the mean ones deleted?

uncut viper
#

i dont want to ignore them for my npc though for my NPC i would find it entertaining to read any complaints

brittle pasture
#

if your NPC says geez you're breaking lore /s

ornate locust
#

I got one that just collects hate speech that I report and hide

lucid iron
#

dire times

fierce vault
ornate locust
#

It's not for Stardew, but man can comments get that way

uncut viper
tiny zealot
brittle pasture
hard fern
#

what are you doing with so much sea jelly what

uncut viper
#

then i decided you probably know its not your job to

lucid iron
#

yea

#

people should enter the fish dimension

versed wyvern
rotund elm
fierce vault
uncut viper
rotund elm
#

I volunteer as tribute

ornate locust
#

you appear to have had a fish bomb dropped on you

tiny zealot
#

yobeez nu-- (i am yanked off the stage by a large cane)

uncut viper
#

yobeez louise...

brittle pasture
rare orbit
#

what does each permission mean on nexus mods?
i feel really dumb for asking but just to make sure,,,,

calm nebula
#

I'm so old

uncut viper
#

there are explanatioins of the permissions beneath each permission

tiny zealot
#

thinking about falco calling you einstein in star fox 64

brittle pasture
rare orbit
#

i mainly ask since i assume the permissions of this mod are open

uncut viper
#

"Minced Oath" is a great term

ornate locust
rare orbit
#

it's the nyapu-styled portraits for nora

uncut viper
brave fable
rare orbit
#

and i'd like to not get into trouble over uploading the spirit eve set

#

sorry if it's really dumb

ornate locust
#

and it's internet comments, the bar for entry is super low, people just spit out whatever they think about something sometimes

fierce vault
ornate locust
#

You do not

scarlet saddle
#

yaaay it worked ty ty

hard fern
#

Oh nice

ornate locust
#

hm... that looks like a problem

hard fern
#

Now that is a mysterious pot

brave fable
#

i think your stew's burnt

ornate locust
#

maybe full of shadow guys

fierce vault
scarlet saddle
#

Since the green crud is coded into the game I used the invert to try and mess with it xD

rare orbit
hard fern
#

You cooked krobus

scarlet saddle
#

kjsgbshjsgjhk

rare orbit
#

nooooo

#

did you season him at least?

#

qi seasoned him?

tiny zealot
ornate locust
scarlet saddle
#

I seasoned him with some of sebastian's vase contents.

hard fern
ornate locust
#

Weedbus

fierce vault
#

Are there a lot of farmer npcs that people have made?

hard fern
#

Hmm i don't think so exactly

brittle pasture
#

SVE adds 3

ornate locust
#

Those tend to be in expansions

hard fern
#

There are farmers but they're p-

#

Yeah what they said

brittle pasture
#

RSV also has a bunch more

uncut viper
#

(dont forget rule 6)

fierce vault
#

Not just one off mods huh?

hard fern
#

There aren't really any standalone farmers

ornate locust
#

Hmm... Wait, there's one recent, Coal Point Farm?

fierce vault
versed wyvern
#

Farmers as a concept need a lot of space to look believable which I imagine is hard to fit into town

uncut viper
#

as in, rule 6 of this discord server

hard fern
#

It makes sense they're generally in expansions

#

Since. Expansions expand

scarlet saddle
#

I want a farmer NPC that somehow ALSO gets a deed from grandpa so you both fight over the farm and pull up each others crops.

ornate locust
#

Coal Point Farm does add a farm and people farmin it

#

I think that's as small as farmer-adding mods get

hard fern
scarlet saddle
#

yesss

scarlet saddle
#

they walk around town trying to sabotage your relationships

rare orbit
brittle pasture
#

sounds like a use case for Barley's thing

lucid iron
#

Remraf

fierce vault
#

We need an enemy ark with a character

brittle pasture
#

one day I will have negative 10 heart with Pierre

hard fern
#

Remraf x2

fierce vault
#

Oh wait, you were talking about enemy nps right?

scarlet saddle
#

hmmmm.. is it possible to animate the sve wizard overlay via spacecore or anything?

versed wyvern
#

A rival like in a couple of the old Harvest Moons sounds interesting but there'd need to be some mechanic for tracking your progress vs theirs and some kind of reward for competing with them

hard fern
#

The...sve wizard overlay?

#

I am unfamiliar

scarlet saddle
#

the wizard house, glow thingy

hard fern
#

I am... Very unfamiliar

scarlet saddle
#

xD do you use sve?

hard fern
#

Nope

scarlet saddle
#

ahhh

hard fern
#

Havent done so in years

scarlet saddle
#

it's an overlay png of the whole room that has like glowy lights

lucid iron
#

mail sure does suck

scarlet saddle
#

lmaoo

brittle pasture
#

that's now two mods for item query attachment in mail

lucid iron
#

idk we could always have 3rd

brittle pasture
#

depending on what I want for my next there might be a 3rd

uncut viper
#

not always

scarlet saddle
#

prank spam mail, your mailbox is now sticky

brittle pasture
#

sneak peak on what I'm working on. sending this in mail will need an item query

lucid iron
#

but this one does have reason, i made a item query model so i was trying to think where this would be nice

brave fable
#

CP again failing to tokenise values in data models with tokenised keys SDVpufferfush

#

somehow it feels like its only me who runs into this

lucid iron
#

blues maybe try local tokens

#

they resolve really early i think

#

i didnt realise atra already released tho

#

since atra is supposibly retired and stuff

uncut viper
#

released what

lucid iron
#

item query in mail

uncut viper
#

why did i think selph did that

brave fable
#

how would a localtoken solve this? this is just dynamictokens not being parsed

brittle pasture
#

I did item query trigger action

lucid iron
#

i think local token resolves earlier

brittle pasture
#

not mail yet, which two people have now beat me to

uncut viper
#

item query trigger action... i dont remember what that means

brittle pasture
#

add item but it can use an item query

lucid iron
#

oh i did that one too blobcatgooglyblep

uncut viper
#

oh just that specific action

lucid iron
#

well its ok 3 cakes etc.

uncut viper
#

this is more like 2.5 i think

brave fable
#

wow! n+1 cakes

lucid iron
#

n! cake

tender bloom
#

so much cake

brittle pasture
#

hmm should I make the fire bait trigger on legendary fish. on one hand that'd screw careless people over, but on the other hand funi

uncut viper
#

what is fire bait

brittle pasture
uncut viper
#

oh it smokes fish

#

do you want my honest answer

brittle pasture
#

:SBVYes:

lucid iron
#

i think u should do it

uncut viper
#

ftr i dont think you need to be careless to accidentally get the legend

#

my honest answer is no i would really hate that actually

#

as a player

lucid iron
#

my noob ass will just use deluxe bait anyways

brave fable
#

please do not smoke the legendary fish

brittle pasture
#

yeah makes sense
but on the other hand I can sign them up for my pyramid scheme

rare orbit
uncut viper
#

i would still hate it, bc i dont like fishing them up enough to a) want to do it again and b) not be aggravated if i lost it bc ive had the same stack of 999 bait in my fishing rod for 7 seasons

brittle pasture
#

(yeah I agree, I would also not want my legend to be smoked as a player)

lucid iron
#

i smoke my legendary fish and then display them on tables

uncut viper
#

fucked up

#

they have families

lucid iron
#

well, i stopped doing it in 1.6.9+

#

they get to be in a pond now

#

i'll smoke their family instead

brave fable
#

localtokens not solving the issue here for some Include-d assetjson { "Changes": [ { "Action": "EditData", "Target": "{{ASSETS}}/Definitions", "Entries": { // . . . "FoodsThatGiveLeftovers": { "{{LocalID}}_seafoodsando": "{{LocalID}}_seafoodsando_half", "{{LocalID}}_eggsando": "{{LocalID}}_eggsando_half", "{{LocalID}}_saladsando": "{{LocalID}}_saladsando_half" }, // . . . }, "LocalTokens": { "LocalID": "{{ID}}" } ] }

lucid iron
#

i wonder why

uncut viper
#

how early are you populating this dictionary

lucid iron
#

ppl made extensive use of tokens for my very nested model

brave fable
#

GameLaunched -> OneSecondUpdateTicked and LoadStage.Ready

#

again the keys tokenise fine, but the values dont

#

doesn't seem to matter whether i put the LocalTokens in the Include action or the EditData action

uncut viper
#

does it work if you use LocalID in the key but like, LocalID2 in the value

#

a second token

#

(or just ID and ID2 ig to abandon the localtoken stuff)

brave fable
lucid iron
#

what if you try lazy loader instead

brave fable
#

i was really hoping it wasn't the tokenised-key-blocks-tokenised-value issue

uncut viper
#

maybe dumb but what if you use Fields instead of Entries

#

sidenote i am way too dumb to be able to read CP's code

brave fable
#

errrr if i use Fields nothing is loaded to the data model hahah

uncut viper
#

not ideal

brave fable
#

the bug report is that the values on json:129-132 aren't tokenised, so itemregistry.create("{{id}}_item", 1) is failing

#

i've run into this with 2 mods and a repro pack already haha

lucid iron
rotund elm
#

NO WAY ALREADY

#

you are amazing

lucid iron
fossil spear
#

Sorry to bother you guys. Can anyone tell me, can you set dialogue or whatever for a year past Year 2? I see that you can set stuff for year 1 and the _2 means year 2 or later, but can you set stuff for Year 3 specifically? Like a When condition? "Year": "3" Is that a thing?

tender bloom
#

(yes, and here's the guide for more details)

fossil spear
#

thank you, I appreciate it

uncut viper
#

(i give up trying to read CP code sorry blueberry)

#

i dont think i can even find where its actually parsing the token in the value ever. like i think i did but heck if i know

brave fable
#

that's fair, i'm sure you'd need a degree in the source code before you could start to debug something like this

lucid iron
#

I think i never ran into this problem cus i always did invalidate+lazy load

uncut viper
#

i did my best SDVpufferpensive

lucid iron
#

Instead of ready+one sec tick

uncut viper
#

the problem isnt the tokens being not ready though bc the tokens in the key work

#

and if they simply werent ready they would just be empty strings

#

or null

lucid iron
#

But empirically some trinket mods have serious token abuse inside and they r ok

uncut viper
#

and empirically it is not here either

#

it feels like a weird thing with specifically Dictionary<string, string> models

brave fable
#

lazy loading wouldnt change much since they're reloaded and invalidated on LoadStage.Ready

lucid iron
#

Hm does it make diff if it's a string: some model

brave fable
#

nope, i had the same issue in a different mod. here i had to use "LocalId": "_suffix" because "Id": "{{ID}}_suffix" wouldn't tokenise:

"Entries": {
  // . . .
  "ShrineTrees": {
    "{{SHRINE}}": [
      /** Small Cherry **/
      { // Graveyard shrine
        "LocalId": "_Cherry_S",
        "Tile": "34, 11",
        "Flip": false,
        "Leaves": true
      },
    ],
    // . . .
  },
  // . . .
}
uncut viper
#

what does ID actually resolve to

#

oh just your modid

lucid iron
#

Did you try patch export

brave fable
#

in LOC? just the same as ModId. in the other mod? some string used in the assets that predates pretty much any CP implementation of locations

brave fable
#

oh the page expired

#

well anyway the repro pack is there

vernal crest
#

Can someone please tell me the name for these things? Event.fromAssetName and Game1.eventsSeenSinceLastLocationChange. The context is listing them on the wiki to explain that you can use them in C# mods. I don't think they are methods?

uncut viper
#

those are fields

brave fable
#

fields, surely

uncut viper
#

on Event and Game1 respectively

vernal crest
#

Thank you!

#

It's so hard to do the C# part of wiki edits when I don't know what anything is lol

rotund elm
#

Chu, where did you even find the PeliQ mod page banner XD Im dying SDVpuffersquee

uncut viper
#

blueberry does your dictionary work if you load it after the save is loaded

brave fable
#

i don't think i can do that

#

i use the values in the gmcm page at the main menu

uncut viper
#

well i mean

#

just as atest

brave fable
#

the mod won't get as far as testing it hahah

#

i'll try with the repro pack tho

uncut viper
#

just load the same asset into some random dictionary in a ButtonPressed event for testing

brave fable
#

oh well the repro pack already does

#
public class ModEntry : Mod
{
    public static Data Data;

    public override void Entry(IModHelper helper)
    {
        helper.Events.GameLoop.SaveLoaded += this.GameLoop_SaveLoaded;
    }

    private void GameLoop_SaveLoaded(object? sender, StardewModdingAPI.Events.SaveLoadedEventArgs e)
    {
        ModEntry.Data = Game1.content.Load<Data>("Mods/CPNestedModelTokenTest/Data");
    }
}
uncut viper
#

nope SDVpufferthumbsup

fierce vault
#

There. Any Idea if a lot of mods use this place?

brave fable
#

honestly you're better asking in #modded-stardew , people there play with a wider range of mods than us here

#

this is the busstop, right?

vernal crest
#

That looks different to my busstop by quite a lot, I think. I assume that's because I use SVE.

uncut viper
#

that area was only added in 1.6 i think

#

when the bus stop was widened

#

SVE might be using the smaller one still

brave fable
vernal crest
#

SVE's is the same size so maybe I just have never paid attention to that spot lol

uncut viper
#

not high enough server rank

brave fable
#

ooh right, villager role. you need to post some before you can share images

uncut viper
#

its loosened in tech support and mod makining channels

brave fable
#

always forget the rules around here

uncut viper
#

you can copy the message link to your message in here though thats probably fine

vernal crest
#

Talking!

uncut viper
#

(but not spamming)

#

1 exp per message (once per minute), 30 xp to level up

vernal crest
#

If you combined your image and question into one message you could forward it to modded farmers (or I could if you don't have permission)

lucid iron
#

isnt that where tim's garage is

brave fable
#

if you want a naive answer, since the area was only added in sdv1.6 there won't be so many mods using it

lucid iron
brittle pasture
#

is that tim drake from the hit webtoon series wayne family adventures

uncut viper
#

there is literally nowhere in the vanilla locations that you can put something that isnt already taken up by some mod somewhere

#

so dont worry about it

urban patrol
#

does anyone know how to code sprite animations for sprites that are double-wide, such as clint hammering or elliot fishing?

brittle pasture
#

I believe you need SpaceCore for those

#

every instance of that in the vanilla game is hardcoded otherwise

urban patrol
#

eurgh okay, like in C#?

vernal crest
#

No

brittle pasture
#

SpaceCore adds features you can use in CP mods

brave fable
#

instances in the vanilla game are hardcoded in C#, yes

urban patrol
#

alright, thank you! downloading now :)

lucid iron
#

hm so i suspect i never ran into this bc

#

ModId works perfectly as token in key

#

no other tokens do so it prob have special sauce

uncut viper
#

hm

#

what other tokens did you try

final arch
uncut viper
#

i have seen a mod add stuff to the quarry mine but it was in 1.5 iirc so

#

who knows where it is, both on nexus or in my memory

final arch
#

lewis basement has only 1 mod afaik

vernal crest
#

Someone has added an NPC to the quarry in 1.6, I believe. Or planned to.

brittle pasture
uncut viper
#

oh its even updated, nice

final arch
#

that is outside the mine tho :p

brittle pasture
#

tbh if I'm adding NPCs I'd just add Central Station and have them come in via bus

lucid iron
uncut viper
lucid iron
#

it does look like modid is speshul for being invariant at least so not that surprise

brave fable
#

if i'm adding npcs i think i'll use gil's character stub just to see what breaks

final arch
uncut viper
brittle pasture
#

all the cool kids who were modding since 1.4 took all the good spots smh

uncut viper
#

i dont know what other immutable token to try though

#

apparently ConfigTokens are also ImmutableValueProviders

#

ImmutableValueProvider(..., isMutable: true) SDVpufferthink

#

config tokens, modid, and HasMod seem to be the only ImmutableValueProviders i can find

#

HasMod works in the key

#

and when using HasMod in both the key and the value, both work

#

HasMod in the key + {{KEY}} in the value works

#

so does "{{Round: 2.5}}": "{{KEY}}" actually

brave fable
#

but my asset key isn't 3 SDVpufferpensive

uncut viper
#

it seems to literally just be when you use a dynamic token in both the key and the value

#

so idk why season and day werent working for you chu

#

were you even in game yet

modern sinew
#

c. I'm working on a weigie re-texture for the farm cat
I'm doing sprites right now but i wanted to know if someone could help me figure out how to put my lil guy into the game
Referrals to video tutorials would be helpful

#

c. sry for intruding!

uncut viper
fallen lagoon
#

Hi, I'm new to modding and trying to add events that remember choices in a previous event that will affect how a later event goes. I noticed the event script:
fork [req] <event ID>

Can someone please tell me how to properly use it? Does the [req] only work for addMailReceived <letter ID> ?

Also does [req] , <event ID>, and <letter ID> all need " " around them?

uncut viper
brave fable
#

splitscreen my beloved

uncut viper
brave fable
#

still useful! a little further than i got with debugging before i just made a git issue

uncut viper
#

at the very least it is definitely a problem when there are two dynamic tokens, one in the key and one in the value

rancid musk
uncut viper
#

it also doesnt just break itself it breaks every other token in the value

#

"{{Render: {{Other}}}}_{{ModId}}" just results in exactly that being displayed

#

not even {{Other |valueAt=0}} works

#

and now i can also confirm that it happens with any combination of config tokens too

#

gotta toss out the whole punnet square of config and dynamic tokens

brave fable
#

honestly i'm just relieved it's not a me problem

uncut viper
#

im surprised ive apparently never seen anyone else try to use a dynamic token in both the key and the value (or dynamic + config or config + config or etc etc) before

brave fable
#

ah well you know me, breaking new ground, breaking new features, just generally breaking things

uncut viper
#

but not the dishes

#

thats splitscreen breaking them not you 😌

brave fable
#

my beautiful perscreen<cookbookanimation> class is so completely ruined by splitscreen. i crafted it so finely, hand-picked artisanal static keywords, reset on return to menu, ..

#

and yet kitchen interactions on one screen play the animation on both, adds the clickablemenu to the wrong screen, and closing it does nothing on either

#

even though it's always referenced with ModEntry.Instance.States.Value.CookbookAnimation

uncut viper
#

to me, that reaches acceptable quality control standards for split screen modding

brave fable
#

absolutely, but it just so happens there's a number of very unhappy splitscreen players out there

#

an even number of them, strangely. going to need to look into that

uncut viper
#

ive never met a single one, so i cant corraborate that

brave fable
#

ah well they're never single, see. always doubles

uncut viper
#

probably no reason for that

lucid iron
#

I feel like im inflating split screen player counts by testing

uncut viper
#

did you ever actually tell pathos about the token thing by the way or did you just open an issue

rancid musk
#

PerScreen is such a useful utility

brave fable
#

i'm fairly sure i raised it to him and he mentioned he'd get around to it when there wasn't mountains of things to do (understandable since nobody else ever has had this issue and the mod i originally ran into this on is never releasing anyway)

uncut viper
#

yeah thats fair, i was just curious if he'd said anything about it or mused why it might be happening

brave fable
#

of course if you hit a breakthrough i give you permission to ping him again

#

just don't tell him i told you to

uncut viper
#

the fact that its dynamic/config tokens specifically is probably the only breakthrough id make, i have tried so hard to follow along CP's path of functions that handle these things and i cannot do it

brave fable
#

for now removing the tokens in LOC's broken tokenised values will do me fine, i just want to get these bugfixes out of the way

uncut viper
#

the only next step for me would be downloading the source and compiling it myself with breakpoints and debug logging but id just be placing those randomly

#

and i do not wish to do that

vernal crest
#

Did you ever get an answer to this? In case you didn't and still want to know, there is a stopSound event command.

versed wyvern
#

There is? Why's it not on the list on the wiki? cathuh

vernal crest
#

It is on the migration to 1.6 page but the events page hasn't been updated with everything on there (I'm trying to do it now).

versed wyvern
#

Ooooh

#

I'll see if the event works as expected with play and stop sound commands later, thanks for the heads-up henyadance

vernal crest
#

You're welcome! I forgot to check the 1.6 page at the time or I would've seen it and told you sooner.

orchid glade
#

Is it better, in "When", to list all the conditions that apply, or only the necessary ones

versed wyvern
#

Uhh, well generally you use conditions to restrict when the action applies so the more specific the better?

orchid glade
#

I think I can be specific enough without using so many though... (I'm duplicating the conditions of another mod but I think I can do so without specifying some of the conditions)

uncut viper
#

if they do not ALL apply, then the patch will not run

orchid glade
#

does a patch run much more efficiently if it has tighter conditions?

vernal crest
#

If the inclusion of a condition wouldn't affect the outcome, it's not worth including imo

uncut viper
#

the point is that there is no such thing as an "unnecessary" condition in a When. if you write it, it becomes necessary

vernal crest
#

I think that depends on how you're looking at it, Button. You're coming from the angle of "once it's in there it has to be true" but I think bezajel is coming from the angle of "does it need to be in there?"

orchid glade
#

I'm thinking of using a kind of narrowing-down-the-conditions approach, where the first patches editimage for a broad category then the following patches editimage only in the specific cases

uncut viper
#

to me, the phrases "all the conditions that apply" and "the necessary ones" are the same things

orchid glade
#

Yes Abagaienye is right

versed wyvern
#

If you have in mind a VERY specific case where you want the action to apply then you want more conditions

#

But if some of the conditions are already covered by other conditions, then those would be unnecessary

orchid glade
#

I'll try to give an example (and i know this is not the right syntax). if I go editimage when A=false, then editimage when B=true, then editimage when A=true, would that be the same as.......... editimage(1) when A=false and B=false, then editimage when A=false and B=true, then editimage when A=true and B=(true or false)

#

sorry ignore the (1)

versed wyvern
#

Not quite the same if I'm reading that right

vernal crest
#

No, your first patch is only checking that A=false, so it will return true regardless of B's value as long as A=false.

orchid glade
#

hmm yeah I guess i know they're not the same.... more, will i get the same outcome by the end once all three patches have run

#

sorry, they are all editing the same image

#

might be relevent to know !

uncut viper
#

by the end of what state? A and B being true or false or what?

orchid glade
#

by the end of the content.json...

#

as in by the time the patches have all run or not run

uncut viper
#

im asking what end result you want them to be the same in

orchid glade
#

ohh ok

uncut viper
#

as in, do you want them to be equivalent end results when A is true?

orchid glade
#

let me try to get my head around your question

#

in a situation where A is true, it should not matter whether B is true or false

uncut viper
#

if your edit when B=true does not depend on the state of A at all, then there is no condition on A at all

#

condition relying on A*

orchid glade
#

if A is false, it should give one result if B is true and another if B is flase

versed wyvern
#

Well, your action priority will indeed come out the same way at the end at both, I believe

orchid glade
#

and is one way better coding than the other?

#

like, will one take significantly more processing time?

#

I know spelling out all conditions will make it possible to change the order, but other than that?

uncut viper
#

i don't think the outcome would be the same between the two sequences in your example

orchid glade
#

what do you think will be different?

versed wyvern
#

In both cases it seems that if A=true that will take priority, but if A is false then B=true has second priority, and both being false has lowest priority

orchid glade
#

^ yes that's my intention Mud

uncut viper
#

but A being true does not necessitate overwriting B being true

#

if both of them are true, they can both have their edits done and showing

orchid glade
#

They are straight EditImage, where the default is replace

uncut viper
#

editimage does not always replace an entire image

orchid glade
#

so given they both edit the same image the later applier patch would overwrite the earlier?

versed wyvern
#

Ah yes, I'm coming at this assuming they're editing the exact same part

orchid glade
#

no it doesn't always

#

but yes in this case they are editing the same part with the same size target and from file

uncut viper
#

the later patch applies in addition to the earlier

#

if they are covering the same and only the same exact areas, A will overwrite everything if it's true and the last patch listed

versed wyvern
#

Functionally what should happen in this specific context is that you'll get your desired priority but I believe Button is describing a situation where not having all the checks could lead to additional edits from prior patches

orchid glade
#

yep okay

#

I think that will be fine, because all the edits I'm making a straight 1:1 replacements in terms of target and source size and area

#

(portrait replacements)

inner harbor
#

NPCs count as "met" if you see a cutscene with them in it, right?

uncut viper
#

in this case though it's not that B has tighter conditions or unnecessary conditions, just rather that B has no conditions at all relevant to A. that's where I was coming from earlier

rotund elm
#

Does anyone know where in the spacecore docs I would want to look for using an animation for the OnItemUse trigger? or is it even possible?

uncut viper
#

afaik that's not possible.

orchid glade
#

So is it better to do it one way or the other? (letting the patch order sort it out or specifying more precicely the conditions)

uncut viper
#

but all the spacecore docs are just on the one page

#

so if it's not there it's not anywhere

orchid glade
#

I'm not a programmer so I don't know these things inherently

uncut viper
#

does B need to not apply if A applies?

orchid glade
#

nope

uncut viper
#

then there's no condition to write, as it doesn't require that

#

patch order within your own content. json is guaranteed assuming all priorities are equal

orchid glade
#

Cool, I think I know what I'm doing then? Thanks for helping me sort it out and sorry for being confusing

uncut viper
#

Boolean logic and equivalency is a confusing thing

versed wyvern
#

Especially when you have multiple ways to come to the same end result suzunaderp

orchid glade
#

Oooh ooh another question (this one not logic related)...

#

If I am listing different targets eg. "Portraits/Alex, Portraits/Alex_Winter,..."

#

Can I put a line break after the commas to help me see what's in the list?

uncut viper
#

probably but I won't promise it

vernal crest
#

Button, I think this line means that the event command it's for has one required argument <actorName> and one optional argument [ignore] (default true). Is that correct?

if (!ArgUtility.TryGet(args, 1, out var actorName, out var error) || !ArgUtility.TryGetOptionalBool(args, 2, out var ignore, out error, defaultValue: true))

uncut viper
#

correct!

vernal crest
#

Yesss I managed to read something on my own! Thank you! SDVpufferheart

uncut viper
#

and specifically that ignore is a bool

vernal crest
#

And I think the [ignore] is basically the on/off switch for it

uncut viper
#

So either true or false but nothing else

#

Iunno what command this is but probably

versed wyvern
orchid glade
#

will do!

vernal crest
#

So you could write ignoreMovementAnimation "Mr Qi" to make Mr Qi move without animating and then ignoreMovementAnimation "Mr Qi" false to make him animate again.

uncut viper
#

Are you adding an example on the wiki or just asking for yourself

vernal crest
#

I'm not necessarily adding an example to the wiki, but I am adding the command to the wiki lol

uncut viper
#

id have to look at the command (can't rn) to confidently confirm what ignore does though

#

i just asked because I'm not sure if it'd expect "Mr Qi" or MrQi or "Mister Qi" or what lol

vernal crest
#

It's in the 1.5 page without arguments and with only a very hesitant explanation and in the 1.6 page to say that it's ignore argument is fixed, but nowhere does the wiki state what its arguments are.

uncut viper
#

is it a long command in the decompile or would it fit in a screenshot

vernal crest
#

Oh, that part is definitely right because the 1.6 page specifies that's how you write the NPC name

uncut viper
#

for Qi specifically?

vernal crest
#

(But again, I am not actually including anything to do with Mr Qi for what I write)

uncut viper
#

i just know Qi has some name weirdness sometimes

vernal crest
#

This is the 1.6 page

versed wyvern
#

Wait is that another event command that just isn't on the modding events page

vernal crest
#

But again I won't be including an example anyway lol

versed wyvern
#

I was actually wondering if I could do exactly that for a future mod idea nanipeko

vernal crest
#

Well that's handy then!

uncut viper
#

(assuming that is indeed what ignore does)

vernal crest
#

Yeah, that is true. I have to test it before I actually add it to the events page so I will find out.

#

If you would like to peruse it, Button, it is here

#

If my edits to this page end up getting reverted I will cry forever after the amount of time and effort this is costing me lol

versed wyvern
#

Worst case scenario I'd just have to do a clone NPC that doesn't have an actual walk cycle but an innate command for it would be much less work PaimonSLEEP

distant radish
#

Hello, everyone! One question. If I created the following condition ā€œRANDOM 1ā€, it would always happen, right?

uncut viper
#

im back in ilspy now and yeah that should ignore movement

#

it will also NOT change their facingDirection

#

as in, if ignore is true, they wont face the way theyre moving towards either

distant radish
#

Got it, thank you SDVpufferheart

uncut viper
orchid glade
#

@uncut viper , I'm using CMCT for config, but the name of the config values are complete sentences, and at least one has a comma in it, will that cause any issues?

uncut viper
#

uhhhhh

vernal crest
uncut viper
#

maybe admittedly

orchid glade
#

hmm

uncut viper
uncut viper
# orchid glade hmm

can you show (or DM me if necessary) the config in question you want to get the value of

#

(aba i dont know what it does technically i just happened to see it just now, but it seems to just make them throw like, a popcorn sprite up in the air with a dwop sound)

#

(popcorn, joja cola, etc. whatever the concession is)

vernal crest
#

What on earth

#

Why is movie food called concessions

uncut viper
#

is that not normal?

#

you get concessions at the concession stand at a movie theatre

vernal crest
#

Calling anything to do with movies "concessions" here is pretty much unheard of but I thought it meant tickets

uncut viper
#

ive never heard popcorn or snacks or anything referred to like, anything but concessions

vernal crest
#

We just call it food

uncut viper
#

weird term for it

hard fern
#

huh apparently it's called that because you buy it at a concession stand

#

a small business or shop where things are sold in a public place (such as a sports stadium or theater)

vernal crest
#

We also do not have concession stands

warm spruce
#

i just call those kiosks/snack standsSBVLmaoDog

vernal crest
#

To me, a concession is when some sort of right or expectation is given up to someone else, usually by agreement. Like someone agreeing to turn their music down as a favour to their neighbours because they want to keep the peace, or a company agreeing not to trade in particular area as part of a deal with another company or something.

hard fern
#

yes that is correct

#

i didnt know the word had so many meanings

#

šŸ˜… i had to dictionary it

vernal crest
#

My guess is that you got to movie food from some sort of agreements being made to allow food vendors to sell food at movie theatres (or other public places), so the vendor was being granted a concession and then that became how their stall was referred to and then that became how the food itself was called.

hard fern
#

you are correct x2

uncut viper
#

yeah thats pretty much spot on

hard fern
#

(i had to look it up again)

orchid glade
#

wow, language

#

we call it the candy bar by the way

#

at a movie theatre at least

dusk mulch
#

damn, a grand total of 0 modding done today

#

i feel unaccomplished

brave fable
#

it's saturday, even doctors take weekends off

hard fern
#

ugh i should take a break from writing <NPC loredump> and go to sleep

civic nacelle
#

Hey!
I'm super new to modding and I tried to just change Emily and Haley's names but after I did they spawn in the middle of the town and are just stuck there.
I bet its something super obvious but can anyone help me out?

hard fern
#

but lore is fun...

latent mauve
#

I really need to do a character model study for the side view and movement frames at some point, to go along with my character height studies

latent mauve
vernal crest
civic nacelle
#

Ohhhh yeah!
That makes sensešŸ˜…

brave fable
#

if you just wanna change their names there's a mod on nexus, Ultimate Villager Manager

#

it covers pretty much all vanilla dialogue and events, too

civic nacelle
#

I want to do more than just the names but since I'm starting out I thought the names might be an easy start

#

But they are still stuck even after I deleted the part where I change their internal name

brave fable
#

hot tip: there's a data asset specifically for NPC names

#

Strings/NPCNames

latent mauve
#

You temporarily broke their home and scheduling, so you will need to load a new save or sleep to fix it

civic nacelle
#

Gotcha!
Ill try that

civic nacelle
brave fable
#

i just don't understand. screen 0 is the one that invokes Play() ```cs
ModEntry.Instance.States.Value.CookbookAnimation.Play(
animation: Animation.Open,
onComplete: () =>
{
Game1.activeClickableMenu = menu ?? new();
});

and screen 1 is the one that handles `onComplete`
#

how does this even happen

civic nacelle
#

Sorry for the very obvious questions but what does that mean?

brave fable
#

there's an FAQ here:
#1272702286245920799 message
another person suggests it's a possible brief server outage on their end, but you'd need to visit a tech support channel to find out more

#

(this is for mod authors)

vernal crest
civic nacelle
#

Ah

brave fable
#

oh you're the same person as before. what a dirty trick

civic nacelle
#

Yeah sorry had to change usernames

brave fable
#

at last, functional splitscreen

dusk mulch
civic nacelle
#

What do I do if I want to change multiple things but it says that a member with the name already exists?

vernal crest
#

You're trying to combine two actions in one code block, but they must be in their own separate block. Basically you're missing a closing curly brace on line 16 and an opening one on line 16.

brave fable
#
{
  "Changes": [
  {
    "Action": "EditData",
    "Target": "Strings/NPCNames",
    "Entries": {
      "Haley": "Homie"
    }
  },
  {
    "Action": "EditData",
    "Target": "Data/Characters",
    "TargetField": [ "Haley" ],
    "Entries": {
      "Gender": "Male"
    }
  }
}
civic nacelle
#

OHHHHHH

brave fable
#

it's important to use TargetField: [ Haley ], Entries: {...} here since otherwise if you simply use Entries: { Haley: {...} } you're wiping ALL of Haley: {...} and replacing it with your new version

vernal crest
#

Oh, that too

civic nacelle
#

Thank you all so much

brave fable
#

hardest nexus comment in history šŸ’Ŗ

vernal crest
#

Ahhhhh I set my globalFadeToClear speed too low and now I'm stuck fading forever!!!

#

Oh thank goodness for endevent

drowsy pewter
#

Yes it was a headache

#

Yes it was a recent change

#

This only applies if you're re-purposing a vanilla string like I was

drowsy pewter
gentle rose
vernal crest
versed wyvern
#

Powerful

vernal crest
#

Coming soon to an Events page near you

brave fable
#

oh dont be mad at them, i did actually give loc a pretty vicious xp system haha

#

forgot to add the +25% xp gain to this update tho

#

maybe later, as a treat

vernal crest
#

tossConcession works too! It does throw the food in the air. I would show a video of that but the video programs are doing annoying and confusing things I do not care to investigate.

iron ridge
iron ridge
#

just ignore the animated tiles

gentle rose
#

is it a website that shows the properties of a given map, basically?

#

or can you add some

iron ridge
#

it's a tbin parser in js

#

and the easiest way to test it is just display the parsed data

#

(aim is to convert tmxl2cp and the other converters to being web only, I could feasibly do everything that tmxl2cp python could do in web, except the tbin parsing)

gentle rose
#

oh nice, that's a really good idea

#

you could probably use flask or something to do the python scripts directly in the web, it just wouldn't be static which would mean hosting etc which you probably don't want

iron ridge
#

mhm

#

oh no there's multiple types of tiledata formats

hard fern
#

šŸ˜…

iron ridge
#

are there any tiledatas that would in theory use a float? (as in, a number iwth a decimal)

brave fable
#

yep, any of them can

#

bool, int, float, string, object, color, and file are all valid types in tiled SDVdemetriums i wonder how many of those are supported by the game

iron ridge
#

I should probably actually parse 32 bit numbers

#

because except for acouple of cases, all I do are just 8 bit numbers and then ignore the other 3 bytes

fathom rapids
#

can someone please help me with Tree Size Framework? I don't know how to add mossy sprites )=

finite ginkgo
#

Currently it doesn't support them, will add on the Todo list for the next update

fathom rapids
#

Please!! I want the non-glitchy look for my pack ^^

#

It's just modified assets from Simple Foliage, so I can't release it unless I get permission, but if/when I add mossy sprites I might actually go and ask...

jagged void
#

How can i change shop opening times via c#?

rough lintel
#

you can change them with cp no?

#

but if you explicitly want to use c#, then unsure

calm nebula
#

You want to adopt the rest of the code too?

dry flicker
#

Ciao, If I change a script while In game, If I make the player sleep, will the npc scripts refresh? or do I have to close and re open the game always?

ocean sailBOT
#
How do I reload my changes while I'm still in game?

-You cannot reload tokens, that's a forced restart unfortunately
-If you've done any CHANGES, then type into SMAPI:
patch reload YourMod.UniqueID
-If you've done i18n DEFAULT.jSON changes, then type into SMAPI:
reload_i18n then
patch reload YourMod.UniqueID
-C# Visual Studio has a feature called Hot Reload
-C# Rider also has Hot Reload
-Generally working in C# it will be called "Hot Reload" (usage may vary)

dry flicker
#

thank you a lot

vernal crest
#

You will still need to sleep after doing a patch reload if you're changing NPC schedules but most other changes will happen straight away.

versed wyvern
#

Patch reload while testing schedules just seems to make my NPC peace out through a wall most of the time GWshizuPlsRember

iron ridge
#

oh no are layer properties breaking this

fathom rapids
#

(my Tree Size Framework mod: the two nice oaks at the top and the mossy one at the bottom) (it's this yellow bc of heatwave from weather wonders)

slender badger
#

@ivory plume Hey Pathos, got a question about Platonic Relationships since you're maintaining it. Would you be open to making its dating requirement config accessible via GMCM and possibly splitting it into individual character configs? We've been troubleshooting an issue where Platonic Relationships is overwriting Content Patcher edits to the 10 heart events made by Platonic Partners and Friendships and Gender Neutrality Mod (and likely other mods that affect those events) if the dating requirement is enabled, but since it's only editable via manual config, it's not as accessible to users compared to GMCM. Splitting the dating requirement check would also help with compat since then people could turn off the dating check for a character they're using another mod for but still keep it enabled for the other characters.

fathom rapids
#

ooooh it would be so cool if you could enter a list of character names in the config that you wanted the mod to affect, so it would be compatible wtih all modded characters but like manually
(or the other way around, enter a blacklist)

ivory plume
proud wyvern
#

"via GMCM"

ivory plume
#

I added the initial structure for Generic Mod Config Menu support to CherryChain's repo, and added the first few integrations. Most of those mods don't have GMCM support yet, but it's on the roadmap.

slender badger
#

Thanks!

iron ridge
#

perfect now, except animated tiles

fallen lagoon
#

Hi, does anyone know how to use fork [req] <event ID> properly? I tried to to do it like I saw how the vanilla Leah Event Script did it with my addMailReceived but it didn't work.

hallow prism
#

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

it may help to see what you did

#

and what do you mean by the addMailReceived part

hallow prism
turbid grotto
hallow prism
#

@lucid iron if memory serves me right, you're the author of Livestock bazaar. I wondered if there was a way to have a different sell price for animal at (custom shop) and marnie?

#

i tried searching in doc but it's entirely in the order of possible that i missed that (i saw the option for using a custom currency)

#

or should i use tradeitemamount without specifying an item to use?

lucid iron
#

Yep you can do that

#

Can also specify trade item (O)GoldCoin since that's how it works internally

hallow prism
#

thanks! i was searching a setting on the shop side

#

(like the pricemodifier)

lucid iron
#

Ah yeah this mod didn't implement shop wide things like that, the animal custom data stuff holds all the info about how the animal should be sold (where and what price)

hallow prism
#

ok šŸ™‚ i'll set that up later today then maybe a custom sign if i feel fancy

lucid iron
#

Maybe I should do price modifier tho

#

But I won't have time to do it for a while

hallow prism
#

i can't tell if it would be complex so i let you see if it's worth it

#

and it's fine by me, i don't have that much animals

#

(and half of them aren't in shop)

brittle ledge
#

I believe there's a mod that does this already that you could reference!

fathom rapids
#

i just rly like it when trees are big :3

#

at least just the oaks!

quasi ice
#

Hello, I am new to modding, wondering if there is anyone who can help me with making a darth maul npc mod?

lucid iron
#

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

real atlas
#

!help

ocean sailBOT
#
please get me off discord
real atlas
#

burh

uncut viper
real atlas
#

alr

#

is therew a command for smapi to open shop gui? i dont want to go to pierre everytime

brittle pasture
#

debug shop ShopIdHere

ivory plume
real atlas
#

alr

dry flicker
#

Little question. I've been 'studying' how to make events, and I have encountered the question fork.
I understood that you ask a question with 2 response, to wich the second gains a new line, or fork.
So, i can continue the new event on the under line, for the second answer, but what about the first answer? Do I continue on the before line with just an / blah blah?

Example I took from the site:
question fork1 "Go fishing with Willy?#Yes#No"/fork noFishing Continue first answer here by adding /?
noFishing: "pause 500/speak Willy "...Oh. Another time, then."/pause 500/end warpOut" #!String

fallen lagoon
# hallow prism <@330912325991137280>

For example in Leah's 2 heart event after the choice "Why don't you sell your art on the internet?" it forks to "internet" and there is an addMailReceived LeahInternet command after the first dialogue. Then in Leah's 10 heart event if the choice "Why don't you sell your art on the internet?" there is a fork LeahInternet choseInternet that forks the event to choseInternet. I was trying to do the same thing with an event I'm creating.

tiny zealot
dry flicker
#

perfect, thank you a lot

real atlas
#

how do i add custom crafting recipes for items that players have at the start

brittle pasture
#

set unlock condition to default

real atlas
#

Thabks

tacit moth
#

Hi, i am new here. I dont know if its the right place to ask, but does somebody know how can i use seasonal tilesheets in tiled? (Like the tilesheet to change with the season)

iron ridge
#

the game will replace it

rancid musk
#

You know, I'm surprised there isn't a Tiled plugin for working with built-in Stardew tilesets.

#

(At least nothing I'm aware of.)

iron ridge
#

like one tha tautomatically adds the animations/properties?

tacit moth
rancid musk
#

I was thinking more like, something to automatically use the images from your local Stardew installation without goofing up the image names in the output. Something to let you swap the season you're previewing.

iron ridge
#

ahh

rancid musk
#

I mean in theory it could set up animations and stuff but that sounds like more work than just "start by copying a vanilla map"

iron ridge
#

onto the todo list it goes

civic nacelle
#

Hey
If I want to make a mod and turn one of the non-romancable characters to romancable, what files would I need to change for that?

rigid musk
#

Pain and suffering
Many

civic nacelle
#

I was afraid that'll be the answer

rigid musk
#

Technically if you just wanted them to be romanceable and gift able and that's it (we're talking bare minimum no events etc) you'd just have to change a few things

#

Now if you wanted the whole sh-bang...

#

You can feel free to take a peak at the files from my Qi mod if you wish, though it really depends on the NPC how you'd have to go about it.. and that mod has a lot of extras

civic nacelle
#

Yes.....?

#

Whats the name of the mod?

#

My idea was romancable Gus and I was looking for a mod that I could peak at how they did it but I couldn't find any that did

rigid musk
#

Oh boy that's gonna be interesting pondering

#

That'd take a lot of work simply because of the saloon- iirc he needs to be behind the counter for you to buy stuff so you'd have to make his marriage schedule him going to work 7 days a week lol

#

Also it's in my name! Friendable Mr.Qi (the name is deceptive but I chose it at the start lol)

civic nacelle
rigid musk
#

Qi was a different beast to tackle with his npc creation due to his... Qi-ness (Aka the fact that he has a lot of weird hard coded things and phantom sprites and whatever)

civic nacelle
rigid musk
#

You could also look at make Marlon real which i think actually edits the vanilla Marlon npc

#

My mod makes a "new" npc to handle the weirdness that vanilla has with Qi but you likely wouldn't have to do that with Gus

civic nacelle
#

Ah gotcha!
so il try looking into the Marlon mod and see if I understand anythingšŸ˜…

rigid musk
#

Everyone here is willing to help along the way, I surely couldn't have done what I did without these lovely folks

#

If you're confused or need help don't feel afraid to ask

civic nacelle
#

Will do!
Thank you so much

rigid musk
tacit moth
#

How can i use a copyrighted tilesheet like DaisyNiko's tilesheets in tiled? (I know that if the tilesheets aren't in the assets folder, they won't work in game) I'm sorry if it is a dumb question but i am new here

iron ridge
#

copy it and delete it before publishing

uncut viper
#

daisyniko's mod is the one that loads the tilesheets into the game, which will make your maps work without needing the files in your mods

iron ridge
#

and then add it as a requirement

uncut viper
#

tilesheets do not need to be in your assets folder to work in game

#

as long as they are loaded in there either by someone else or the game has them by default

tacit moth
#

Thank you again so much!

ivory plume
#

@teal bridge For your usage of the Data Layers API, do you need the ability to register a custom color scheme? If not, I'll remove that from the PR so this version can focus on the layers API since there's some consequences of custom color schemes that we'll need to think through.

rancid musk
#

Interesting. I extracted my Stardew android executable, and there's no SkiaSharp.

#

For that matter the game content isn't in the APK so I need to try using a different tool to back it up. šŸ¤”

#

Probably just need to grab my rooted phone

frail flower
#

anyone aware of a way (even if convoluted) to get crossplay between xbox and pc

iron ridge
#

if not, i sincerely doubt it - microsoft would probably not want the online services to be reverse engineered

#

if yes, good luck converting the packets and hoping there aren't large differences

dry flicker
#

[Heart event] Can I use the question fork for 3 responses and 2 forks? if so, how?

rancid musk
#

@ivory plume So, I've tried following the instructions from the android repo and using the PC version of the game to extract the android build's content xnbs using StardewXnbHack but I'm getting an exception that is fairly opaque to me. Do you have any input? I'm not sure how worth it it is to even unpack the content since we do have the PC version, though I guess there'd be mobile-specific UI textures. šŸ¤” The exception that was thrown: https://smapi.io/log/e92a312e6e194bcd9e4a2aac7190d1da

ocean sailBOT
#

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