#making-mods-general

1 messages · Page 21 of 1

naive wyvern
#

Hfidjxjd i find that very amusing
For kent it makes sense but like

lucid iron
#
"Kent": "Hello, @.^This item was collecting dust in the tool shed. I figured you might be able to use it.  ^   -Kent%item id (O)286 1 (O)287 1 (O)288 1 (O)787 1 %%[#]A Gift From Kent",
#

3 bombs and battery how nice of him

naive wyvern
#

If it were anyone else id be concerned

#

Thats so sweet of him

teal bridge
#

There's something disturbingly amusing about the idea of unloading a whole stack of bombs into the mailbox addressed to every NPC in town.

#

It's like ticking names off a Christmas list, but with explosives.

vernal crest
#

I mailed Keahi a bomb

#

RSV spoilers: ||There's a quest where he wants a bomb and I am lazy and do all my fetch quests via mailbox||

teal bridge
#

I have not yet tested if or how well this works for fetch quests. My guess is that it doesn't, since I'm not running any of the stuff in tryToReceiveActiveObject.

vernal crest
#

Quests are not as important to me as birthday gifts

dull river
finite ginkgo
teal bridge
#

Oh, that would be way too messy. Have you looked at that method? It's got a million side effects, no way would I want to run that in a loop overnight.

finite ginkgo
#

Ah, makes sense, yeah i've looked at the method and messed around with it myself

teal bridge
#

Not to mention, there isn't a single "active object", it's many gifts to many NPCs so at best it would involve some kludge of swapping objects in and out of the farmer's inventory.

#

I did consider using it with the probe parameter to check giftability, but ultimately went in a different direction because of the "next-day" option.

finite ginkgo
#

It being overnight instead of at the exact time you'd do it also complicates it so yeah

teal bridge
vernal crest
#

Handy!

teal bridge
#

If they're not, well... guess I'll find out. Compatibility testing is on the to-do list.

dull river
#

Yo fr

#

@vernal crest do you have a released npc mod?

vernal crest
#

Noooope. I have a veeeeeeeeeery WIP NPC mod lol

dull river
#

I think everybody should at least try making a very elaborate ONE

#

just like you're doing

#

If it's too much work to make one NPC, imagine making many for just one person coding.

#

It's so cool because someone could download new elaborate individual NPCs as the "new person" in town.

#

Because NPCs don't get added regularly.

#

Maybe even a community project to make NPC making easier or even standardize so no conflict or problems?

vernal crest
#

Well, there are actually quite a lot of NPC mods.

dull river
#

Could be a fun idea.,

dull river
#

I'm aware

vernal crest
#

Then what did you mean by NPCs don't get added regularly?

dull river
finite ginkgo
#

Yes, once

dull river
#

Because I'm new to Stardew. Been playing for around 5 months

#

Oh ok

#

Yeah, so I meant NPCs getting added in the vanilla game.

#

It's like everyone has their own story to tell, transferring that to an NPC. A more elaborate NPC is always better than quantity.

lucid iron
#

it kinda depends on what you count as npc

#

1.6 added ||raccoons||

gaunt orbit
dull river
lucid iron
#

yea they talk

uncut viper
#

and ||the bookseller||

finite ginkgo
#

The thing is the vanilla game isn't made to add whole new friendable NPCs in updates, it's got a pretty solid layout of characters already and the one time a new friendable npc was added it was earned because it also came with a big new area.

gaunt orbit
#

the main barrier for npcs though is less that it's hard and more that it's just a shitton of writing and spriting. (well, events are complicated, and it could be useful to have a tool for that.)

dull river
uncut viper
#

(honestly my biggest barrier for my NPC is just finding a place to put her...)

dull river
vernal crest
#

I would like to get to the point where I can offer commissions to do the coding work for NPCs, though I know that some people already do offer that and I don't know if anyone takes them up on it

gaunt orbit
uncut viper
#

i know East Scarpe is often recommended, either that or the boarding house, but i dont want to put her in someone elses area. i wanna put her in her area. basically, im stubborn

dull river
#

Idk might be talking crap

gaunt orbit
vernal crest
finite ginkgo
dull river
dull river
#

my bad

#

Yeah, her

gaunt orbit
uncut viper
#

as far as i know Miss Coriel also still plans on updating her NPC creator. its just not a small amount of work and iirc shes been busy

gaunt orbit
#

yeah NPCs changed a lot in 1.6, it's not just a trivial patch

vernal crest
#

I think if you're willing to put an NPC somewhere "outside" Pelican Town/the immediate surrounding valley there's plenty of options that preserve mod compatibility. Inside the town/immediate valley are it's definitely harder.

uncut viper
#

all the roads immediately leaving pelican town are taken by the major mods

gaunt orbit
#

for a long time I wanted to add a romanceable engineer npc who moved in later on, and add a lighthouse between the town and the beach that she would repair and move into

lucid iron
#

there's always bus/train

naive wyvern
#

Wren that sounds so cute...

velvet narwhal
#

(i'm cheating, i'm putting my expansion in the || golden scythe || map, a warp out to the rest of it)

vernal crest
#

Yeah, I intend to make use of the bus/train for my "extra compatible" config option.

tiny zealot
#

the secret is to make an NPC that already has a house set aside for them, in this essay i will

uncut viper
#

i want my NPC to have an actual house you can get to though, and also not rely on either t he train or bus being available (since they are both time gated) and also dont take you half the day just to walk to her house

naive wyvern
#

Im personally making my own map and planning to use the bus mod for it (if its compatible with 1.6 at least cjdnxjs)

finite ginkgo
gaunt orbit
#

Lacey is an outlier adn should not have been counted /jk

plucky reef
#

OK so I've been playing with slingshot stuff for a bit and then I remembered assetrequested to add weapon data but then I remembered I don't think slingshot has a type like the melee weapons to add in that fashion? Am I uninformed?

uncut viper
naive wyvern
#

YESSS thank u aba this gives me happie happie

vernal crest
gaunt orbit
#

there's a few empty spots in the town map, but that assumes someone's not using a mod that changes the town map

#

(like sve)

uncut viper
#

thats my point, though! its a big barrier to making an NPC when its also not really something you can control if you want any sort of compatibility. your options are either no compatibility or compromise in a way you might not always enjoy

lucid iron
#

put your npc in mines floor 120 AquaThumbsup

velvet narwhal
#

make one special hole in the tunnel /j

lucid iron
#

i did have some thoughts about a npc who lives in the quarry actually

gaunt orbit
#

add a new area to the west of the farm. custom map compatibility? nobody uses those. /jk

lucid iron
#

its free real estate AnnelieStare

tiny zealot
gaunt orbit
#

(hence the spreadsheet)

wise berry
uncut viper
lucid iron
#

its nice of RSV to like, add their own zone for all their npcs

velvet narwhal
#

i told my ideamen they ain't gettin spots for vanilla festivals, especially since they wanna make 3-4 npcs EACH

lucid iron
gaunt orbit
naive wyvern
#

And even then no not everybody uses the festival spreadsheet... last i checked at least 😭

uncut viper
#

speaking of festivals dont forget you better hope no one adds a y3 key or whatever it was

wise berry
#

It's my plan for my main expansion ehehe (dunno when that's happening considering I keep getting sidetracked though)

tiny zealot
naive wyvern
#

May I ask why button
Im not super deep in the npc making mines yet

tiny zealot
#

cough well, i'd better get going... SDVpufferlurk

uncut viper
#

i did have thoughts at one point about a mod that would find NPC collissions on festival maps and move them around as necessary but thered be no way to account for them having dialogue specific to that one spot they were meant for

velvet narwhal
#

ichor no, please no more festival years

gaunt orbit
#

hey wait I actually just had a really interesting idea, although you'd have to design the npc with it in mind-
you could make a one-time-constructable building that is an npc's house

uncut viper
gaunt orbit
#

(using NPCWarps and non-instanced indoors)

uncut viper
#

and since its not a required key, and the number is arbitrary, then...

tiny zealot
naive wyvern
#

Omg itd just be an empty festival JFNDNXJS

lucid iron
#

need like, project year3+ festival

uncut viper
#

i think the vanilla NPCs would still be there but goodbye modded NPCs

naive wyvern
#

Oh noooo thats so funny im sorry

teal bridge
#

NPC dialogue is tied to the map position in events?

velvet narwhal
#

if they've used the append i think so

tiny zealot
uncut viper
#

i more just meant like, if a mod maker places their NPC next to the punch bowl and has dialogue about the punch bowl, then if you move them, they w ill be talking about the punch bowl while somewhere else

velvet narwhal
#

yelling "i love this punch" (50 ft away)

dull river
vernal crest
#

I spent a while with most of my (downloaded, not made by me) custom NPCs not turning up to the year 2 festivals. It was quite peaceful lol

teal bridge
#

I see. Yeah, I guess it's most common to "script" the entire thing as opposed to have AI behaviors based on their surroundings, which SDV might not even support.

dull river
#

Yo @aba

vernal crest
#

Yes?

dull river
#

do you mind if I ask u NPC questions from time to time?

uncut viper
# tiny zealot i have had this exact thought

(when i first brought up that thought months ago someone also said it'd be a permissions issue too but i... didnt understand why, but i was also very new in here, so i didnt feel like questioning it as a lil green sprout server member)

naive wyvern
#

Hey yknow maybe they just walked away from the table after getting some punch SDVpuffersquee

naive wyvern
#

Ops forgot to reply to avis message cjdncjd

vernal crest
#

I wrote a whole thing with Hiria talking to Demetrius before I realised that Demetrius walks around and her dialogue would look really stupid if you talked to her when he was off somewhere else lol

velvet narwhal
#

how painful would it be if i just expanded-- /j

finite ginkgo
vernal crest
dull river
lucid iron
#

should we rename that thread lol

velvet narwhal
#

i forget, did chu make #1277457201077813280 , do you still have access to change the thread name to "NPC chatter" or something

uncut viper
tiny zealot
#

for the unfamiliar: in sdv 1.6.4, festival code added year variant keys for the additionalCharacters fields (setup and mainEvent), so you can set positions for modded characters on a year cycle, like with dialogue keys.
the problem is that that field is unique to the festival (instead of to the NPC), and if a year variant is loaded, no other years will be. so if even one mod adds a _y2 variant to modded character placements, any mod that doesn't also use it won't have their characters loaded in.
i knew this change was coming, since i was there when pathos added it, and had Lacey activate the appropriate fields automatically ahead of time, so as soon as people using Lacey updated to 1.6.4, all their other modded NPCs stopped attending festivals (except SVE, since that one rewrites the vanilla setup fields instead of adding their NPCs to the modded characters keys).

naive wyvern
tiny zealot
#

(i didn't know it would break other NPCs. it was an accident, please forgive me)

uncut viper
#

i feel like it shouldnt be too difficult to make a mod that loads previous years as a fallback but like i said a moment ago i know nothing about festivals. which means thats probably the devil whispering in my ear and its much harder than id expect

finite ginkgo
#

You didn't break other NPCs, its literally just the bug fix that made y2 use the _y2 postfix, Im not entirely sure how the idea that an NPC has to use the _y2 postfix for it to activate

tiny zealot
#

if _y2 loads, the key without _y2 won't load. so if it's year 2 and one NPC is using _y2, and the others are not, the others won't be there

finite ginkgo
#

(I've checked the code and even confirmed with Casey, it'll use _y2 whether any NPC uses it or not)

tiny zealot
#

oh, maybe it was fixed between 1.6.4 and now. at the time, i had people with my mod to blame for nuking their other NPCs, and they would return when Lacey was removed

finite ginkgo
#

Weird

velvet narwhal
#

i can only think of the delimiter nuking all other commands after it but i assume it wasn't that

finite ginkgo
#

Maybe I should check the code again but I'm pretty sure it shouldn't matter if an NPC uses it or not

tiny zealot
#

my understanding then (and now, unless it has in fact been fixed) is that if _y2 isn't defined (i.e. if no NPC has added to it, since by default it is not), it will load the regular key, like other year variant keys

finite ginkgo
#

Damn it I just went to bed but now Im gonna get up again cause I wanna double check the code one second

uncut viper
#

gotta download the decompile to your phone

tiny zealot
#

well, "fixed". it's not really a bug i don't think, it's just a consequence of shared year variant keys

finite ginkgo
velvet narwhal
#

ender gotta talk about tree framework for ages then

vernal crest
#

Do you have to be a cheeto to be given repo access?

uncut viper
#

ive seen you around so often i just assumed you were already level 50

#

you need to be a cheeto and level 50 yea

#

it is still just a decompile though and not the actual source code, keep in mind

finite ginkgo
#

i've already got the cheeto part

vernal crest
#

Next week for me then

finite ginkgo
#

just need lvl 50

tiny zealot
#

i also assumed endertedi was over level 50. i'm shocked

finite ginkgo
#

i'm apparently but a mere 39 right now

velvet narwhal
#

will button and i be left alone to the blues

uncut viper
#

im omw to purple so the blues dont matter to me sorry avi

round dock
#

(wait how do you ask for access)

tiny zealot
#

i'm much higher level than i thought. i spend too much time on here, huh 😅

uncut viper
#

you might ask pathos directly i dont remember

#

its on the github gist that explains the roles

velvet narwhal
#

i will soldier on, i want those purple shorts

lucid iron
#

so you need to be lv50 (shepherd)

uncut viper
#

im just gonna become a 1.6 developer for a fancy red name. ez

vernal crest
#

I have decided that the additional role perks of cheeto matter more to me than colour, soz Avi

lucid iron
#

and then you message bouncer

#

too late for that button, gotta become haunted chocolatier dev

uncut viper
#

its not too late they might still need a 1.6.10

velvet narwhal
#

i could definitely ask for mod author now but i fight inner demons

teal bridge
#

Oh, I forgot about the repo access, I think I can get that now.

round dock
#

Gen question for a new mod author like me who’s only doing CP, would having repo access have benefits in understanding how to do mods better? I fear I’ll never touch #C

teal bridge
#

It says Shepherd is 100 so I guess I reached it a long time ago.

#

I doubt repo access would help much with CP? Since CP is already open source.

uncut viper
calm nebula
#

(The only reason to get repo access is for diffs.)

#

Also why I'm still orange

uncut viper
#

but the repo will have the commit history and everything unpacked and ordered nicely and you can look it up on your phone and stuff

teal bridge
#

Repo is debuggable too, no? That's what I heard.

tiny zealot
#

what they said. it's convenient and you can see older versions easily

round dock
#

Oh that makes sense, a lot of CP material has been easily accessible to me thru github. Thank you for the clarification SDVpufferheart

uncut viper
#

tbh i dont really know what that means bc cant you alreeady just use VS/Rider's debugger

brittle pasture
#

or convenient access on mobile (which is less useful than it sounds because GitHub won't fking index files larger than an average jpeg)

teal bridge
#

(Also what do you mean about the orange, does getting repo access make you not-orange?)

tiny zealot
#

i think losing orange means you lose repo access

lucid iron
#

i had some strange trouble building the repo

uncut viper
#

you're still orange with repo access

lucid iron
#

it was refuse to link xTile

brittle pasture
#

and also readable variable names if you're on Linux and the decompile program won't give you them

lucid iron
#

ill fix it one day maybe blobcatgooglyblep

uncut viper
#

you can ask for a one time removal of your special role though so if atra asked to be removed as a mod author atra would lose repo access

teal bridge
#

There've been a few times when Casey posted some comment from the repo that actually explained well what the code was doing, which was not apparent at all from the decompile. Often the decompile is sufficient though.

vernal crest
uncut viper
#

are you sure those times werent casey posting something from the actual source? how would a comment get into a decompile at all?

rancid temple
#

I've used it to help with some CP related things, but usually not for the actual creation process

brittle pasture
#

if you do know how to read C# it could still be helpful

teal bridge
tiny zealot
#

(my understanding is that the decompile is not that far off from the actual source. but that's hearsay, you didn't hear it here)

velvet narwhal
#

it has been helpful to be like, "oh i see, fertilizers are hardcoded guess i'll throw this into the trash"

teal bridge
#

Oh, or you mean it's in the real source but not the repo we're talking about?

calm nebula
round dock
#

also gen question for the mod authors with a background in programming and the like, how much did your bg/profession aid in your mods?

uncut viper
lucid iron
#

well being programmer helps u learn C# real quick

teal bridge
#

Oh well, rather than speculate and get things wrong I should just request access and see for myself.

lucid iron
#

besides that not really, i dont write C# for work

uncut viper
#

you could leave and never come back but then you cant post your sweaters

rancid temple
#

I thought you had to request your roles back when you rejoin

uncut viper
#

the roles channel says otherwise

calm nebula
patent lanceBOT
#
uncut viper
#

or well

#

i guess it does say basic roles

#

i guess mod author isnt basic

vernal crest
calm nebula
uncut viper
calm nebula
#

(And I'm not even a real programmer)

tiny zealot
rancid temple
#

Understanding code helps some, but writing code for SDV is quite a bit different from programming elsewhere

uncut viper
#

(i am also similar to atra with that though ive never done programming professionally. but knowing one language helps you know any other for the most part. zero to harmony in 5 seconds flat)

vernal crest
#

Also, my stats programming background is not very long because I got sick shortly after getting into it from psychology SDVpuffercry So other stats programmers might find that they are less stunted with C# than I am.

velvet narwhal
#

(is2g if button's header image for that mod isn't 'it's dangerous out there! here's a shotgun')

uncut viper
#

oh its just being added to Special Power Utilities which already has a header image

velvet narwhal
#

oh, pain.jpeg

uncut viper
#

it is an ugly one but making it centric to this feature wouldnt make sense

#

so ill need to think of somethin else

#

centric? specific.

round dock
#

“Sometimes not advisable ways” 😭

calm nebula
pine elbow
#

hello, im trying to do tile data in tiled. is there a way to put the data to like 1 version of the tile and it span across all matching tiles?

vernal crest
round dock
#

Anywho, thank you for all of your work! SDVpufferheart you guys make understanding how to make mods simpler and better for mod authors like me and mod authors striving to create their first mod SDVpufferheart SDVemoteheart may all of your pillows be cold (or the ideal temperature for you) on both side SDVpufferheart

velvet narwhal
#

(duplicate? hold shift and place it over similar tile? suffer /j)

vernal crest
#

Yeah it's pretty fast to copy and paste but you can also streeeeeetch the object properties over all the tiles (YMMV on if that breaks anything, IDK)

velvet narwhal
#

i think it gets yeeted if it's not 16x16

pine elbow
#

so the water has like 5-6 different textures and i wanted all similar tiles to be not buildable or placeable and indicated as water

#

just tryina see if there was a easyer way than doin every tile lol

vernal crest
rancid temple
#

I think if you edit the tileset you can put properties on the tileset itself

vernal crest
rancid temple
#

Though, I'm not sure if you should do that if you're editing vanilla sets

pine elbow
#

i mighta made a edited version of the vanilla tilesets

finite ginkgo
# tiny zealot my understanding then (and now, unless it has in fact been fixed) is that if _y2...

For the none of you who are interested, I just checked the code, and the answer is.... 🥁

I was wrong lol, yeah adding a _y2 key does make that key active (what the game does is sets a var year = 0 and it checks if a <key>_y(year + 1) key exists, and then increments year++ until it no longer finds the key, and then to get the actual key for the year it essentially does (Game1.Year % year) + 1 ; so technically if you want you can make every npc author ever mad by adding a Set-Up_additionalCharacters_y3 key to a festival so custom npcs suddenly have to go through 3 year rotations)

calm nebula
#

If you export the vanilla tilesheet it should do water

vernal crest
#

If you're using vanilla, you shouldn't need to do your own tile properties because almost all the water tiles already have that.

calm nebula
#

Atra's Dialogue Expansion is now defining _y3, _y4, etc

#

For all festivals

#

Enjoy debugging that one!

pine elbow
#

so i took the vanilla tilesheet and expanded it, should i have not done that?

tiny zealot
finite ginkgo
#

atra don't even think about it I have 2 npcs how am i ever gonna find enough festival spots for infinite years

uncut viper
#

this also means that i could define y4 but not y3 and hold whoever decides to make y3 hostage bc if they add y3 then mine will fire and break everything, but it will be their fault

#

landmine modding

vernal crest
velvet narwhal
#

(i'mma make a y9000 for all of my ideamen now)

pine elbow
#

@vernal crest do you know how i could get those to auto update with the seasons, because igot sprites for each season

calm nebula
#

And event scripts

#

To five years out

#

(I'm aware dialogue keys are not shared. I use them in that mod.)

#

(Which will not see a release.)

vernal crest
finite ginkgo
#

you don't even need to add more event scripts, just add the additionalCharacters key and make vanilla characters just watch the madness of custom npcs shuffling for years upon years until they get on track for 2 years and then repeat the cycle

velvet narwhal
#

man, something in the punch this year, everyone's gone!

#

now i'm terrified, waiting for the landmines of _y#

finite ginkgo
#

rn adding _y3 through _y11 so custom npcs will match vanilla npcs on year 1 & 2, and then again on year 12 & 13, and then 25 & 26 etc

velvet narwhal
#

_y{{query % even}} wholly incorrect syntax

uncut viper
#

would using the year token in that not just work to make sure your npc was present in every year actually

finite ginkgo
#

not really, unless you know exactly how many year variants there are

#

if there's 11 year variants you can do _y{{Query: {{Year}} % 11 + 1}} but the moment the number of variants changes you get out of sync

velvet narwhal
#

wait if it's {{year}} % {{year}} + 1 in the loop, would that just circumvent it since that's how vanilla is set up?

finite ginkgo
#

but it's not year % year + 1

#

It's (actual year) % (number of year variants found) + 1

#

since year % year + 1 would always return 1 anyways

velvet narwhal
#

welp we're just gonna pray no other expansions add more festival years, i sure won't (because i don't wanna get yelled at)

finite ginkgo
#

i will (i won't i have too many npc author friends i'd like to keep as friends)

uncut viper
#

what function is the one that actually increments the variants?

finite ginkgo
#

It's in Event.TryGetFestivalDataForYear

velvet narwhal
#

it's too late for a pr, but god i see it now

silver pelican
#

is it possible to add an input and output item for an existing mod? like when theres this machine but it doesnt have what i need. so i was thinking if i can reference their machine in the code then add said i/o via CP?

lucid iron
#

yea you can, same as adding new input output to vanilla machine

silver pelican
#

ooo thank you thank you!

rancid temple
#

If it's for personal use, you can edit their code, otherwise make your mod dependent on theirs

uncut viper
#

just make sure your patch loads after their patch that adds the machine

rancid temple
#

Though, it would still be better to make your own mod if it's for personal use because then if they update you won't have to make the changes again

silver pelican
#

okii htanimeyay3

finite ginkgo
velvet narwhal
#

just number it {{Range: 1, 999}}

tiny zealot
#

i wish festival placements were controlled by NPC-specific fields in the festival the way dialogue keys are (maybe i'm missing something, but it seems like this would be straightforwardly doable). then we could have avoided this whole mess. oh well

silver pelican
velvet narwhal
#

i think that's what the set-up is supposed to be? but uh, y-yeah, year changes

tiny zealot
lucid iron
#

How would that solve problem of multiple npc on same position

tiny zealot
#

oh, it wouldn't solve that. only the _y2 hostage situation

hearty tide
#

damn

calm nebula
hearty tide
#

for me I might just not deal with that

calm nebula
#

Then we have a scheduling algorithm

hearty tide
#

anyhow:
"MoveEntries": [
{ "ID": "6480.blueegg_BlueEgg", "ToPosition": "Top" },
{ "ID": "6480.blueegg_GoldenEgg", "ToPosition": "Top" }

finite ginkgo
calm nebula
#

Place as many people as possible to their first spot

velvet narwhal
#

i just realized, SVE has up to 99

calm nebula
#

This is a dating algorithm tbh

hearty tide
tiny zealot
#

atra, i have considered exactly this

#

(so has button, or at least something close enough)

rancid temple
#

MoveEntries lets you reorganize entries in the asset you're editing

hearty tide
#

oh I see

uncut viper
#

no yeah that was basically what i considered too

finite ginkgo
calm nebula
lucid iron
#

It's algorithms all the way down

rancid temple
#

So like shops you can use it to move where something is, I usually use it for testing to move stuff to the top so I don't have to hunt for it

tiny zealot
lucid iron
#

But u know festivals are independent maps

#

What if we just make it bigger

velvet narwhal
#

i think ichor or tia shot down my suggestion of making a 124x124 festival editmap

calm nebula
#

And doesn't ES have the boat

lucid iron
#

Yeah it's nice we should do more DokkanStare

calm nebula
lucid iron
#

Casey had better shop menu

uncut viper
#

(tbh it would probably be not so difficult to just move NPCs if theyre overlapping.... but moving them to a good spot that still guarantees you can walk around and talk to everyone? probably a lil more difficult)

lucid iron
#

It got a unofficial update but there was some problems with that one using parent sheet index for some reason

brittle pasture
# hearty tide what even is this, I am so confused

to add, for machines rules it makes those trigger rules be considered before other rules. this is because the game defaults to turning all egg items without their own rules into mayo, and the mod maker doesn't want that to happen for their modded eggs, so they put their machine rules on top

calm nebula
#

I bet you that mod probably still works, eh?

brittle pasture
#

otherwise the default "egg to mayo" rule will fire before the "blue egg to blue mayo" rule

calm nebula
#

Anyways

lucid iron
#

I was under impression that it broke with 1.6

rancid temple
#

What's the specific issue with the shop interface?

calm nebula
#

An atra had a long day

#

An atra needs to sleep

#

Night night! Remind me to do probability tomorrow

#

(Four meetings smh)

finite ginkgo
#

It is 4am for me, a Theodore should probably sleep too;

#

Night night!

velvet narwhal
#

good night, don't let the year festival paranoia bite

teal bridge
# rancid temple What's the specific issue with the shop interface?

Curious about this too. I recall seeing some "better shop UI" mod several weeks back (not Casey's, apparently, I just looked that one up) that seemed, well, the opposite of better. I've never really had issues with vanilla shops? Maybe it's a problem with mods that add like 500 new buyable items?

rancid temple
#

Yeah, I could see that being an issue, being able to search and have tabs would be nice

velvet narwhal
#

will this work the way i think it does?

    "Id": "{{ModId}}_SeedReSender",
    "Trigger": "LocationChanged",
    "Condition": "!PLAYER_HAS_MAIL any {{ModId}}_{{Seeds}}Sender any, PLAYER_HAS_RUN_TRIGGER_ACTION any {{ModId}}_SeedSender",
    "Actions": [
        "AddMail all {{ModId}}_{{Seeds}}Sender now",
        "MarkActionApplied all {{ModId}}_SeedReSender false"
    ]
}```
`{{Seeds}}` being my dynamic token of all of the trees i've made so far, by name
(i'm testing it now but i'm just throwing it here before i implement)
lucid iron
#

So the one casey had gave you search bar and a optional grid view of shop

#

It is nice if u have a bunch of mods all adding seeds to Pierre's

uncut viper
lucid iron
#

For other shops it's not as important

#

Although for some reason the shop menu also counted drawers

velvet narwhal
lucid iron
#

Not sure if that was og mod or something from unofficial fix

teal bridge
#

I guess shop categories are OK as long as there's also an "all" category but it seems kinda meh in Stardew.

uncut viper
#

you would just wanna check for the mail then, and you can check that on the Current player

teal bridge
#

I've just never seen a shop menu that long or complicated.

uncut viper
#

what is the value of {{Seeds}}? i know you said its all the trees, but is that like, a list?

velvet narwhal
#

yeah it's a list of the mailnames i've sent out already, i'm trying to circumvent the "mail spam" for whenever i do an update, but i'm honestly thinking i should just bite the bullet, involve spacecore, and make a new map with a shop SDVpufferpain

uncut viper
#

if every mail name is in that list then its going to be looking for a mail with the ID of like, Seed1Seed2Seed3Seed4Seed5 etc

#

its not gonna make a separate trigger for every seed in the list

velvet narwhal
#

ah, i bite the bullet then and open Tiled

tiny zealot
uncut viper
#

you can just check if they dont have a mail for an individual seed letter and send it if they dont

#

or make a letter that contains all the kinds of seeds

#

but just one letter

velvet narwhal
#

yeah i was going to just do the individual letters as per "they don't have this one, better send it", but honestly since i'm going to just be like, "oops here's another mushroom" i might as well get it out of the way now and have a different location entirely

uncut viper
#

you could also make letters specific to different versions of your mod though if you've already released it it's probably too late for a nice naming convention there

#

e.g. LetterV1 would have all the seeds present in version 1, LetterV2 would only send the seeds you added in version 2, and so on

#

and then on a new save you check if they have none of those letters and if not, just send them all (but skip the mailbox) and send one letter with all the seeds instead

#

(you send them all with the mailbox skip so that the mail flags still get marked)

velvet narwhal
#

i'll keep that template for my trigger warning ones, lemme just write that down

#

the rest of them can get shoved into a custom shop

uncut viper
#

but also yeah i think doing !PLAYER_HAS_MAIL Any means "if anyone has the mail, dont do this" and not "if anyone doesnt have the mail, do this"
but admittedly im not 100% on that

#

which might be what you want, if you dont want farmhands to get extra seeds if the host already got them

#

but then you're sending the seeds to everyone anyway if the host doesnt

velvet narwhal
#

considering the drops and a good chunk of them are ~aesthetic~ it doesn't really affect balance imo

#

i've kept the prices to like, parsnip levels lmao

uncut viper
#

just as long as you keep in mind then that farmhands wont get mail on updates with that system

#

unless they join before the host moves from the farmhouse ig

velvet narwhal
#

yeah that's why i'll keep it to the less than savory-looking mushrooms, i'll just leave the seeds an unlimited buy as a money sink if people really enjoy the aesthetic

pine ermine
#
"{{ModId}}_SeedReSender":
  Id: "{{ModId}}_SeedReSender"
  Trigger: LocationChanged
  Condition: >
    !PLAYER_HAS_MAIL any {{ModId}}_{{Seeds}}Sender any,
    PLAYER_HAS_RUN_TRIGGER_ACTION any {{ModId}}_SeedSender
  Actions:
  - AddMail all {{ModId}}_{{Seeds}}Sender now
  - MarkActionApplied all {{ModId}}_SeedReSender false
#

(sorry, I've got yaml on the brain)

velvet narwhal
#

you're just enjoying that yaml aren't you

#

do you want me to throw my blank npc template at you?

pine ermine
#

Oh?

#

Go for it

velvet narwhal
pine ermine
#

This is a template?

velvet narwhal
#

well it's completely empty minus a few dialogue lines, if you want the actual templates i've uploaded to wiki.gg i'd have to find it

#

it's effectively a fully functioning npc minus dialogue

lucid iron
pine ermine
#

Hmmm

#

🚨 Scope Creep 🚨

teal bridge
#

That sounds wrong on so many levels.

lucid iron
#

if you want ppl to use yaml its better if they have yaml unpacked content to look at

#

but all u gotta change is the json serializer part right think

pine ermine
#

afaik, most people just use the examples.

vernal crest
#

I look at unpacked content for how to do stuff a lot

lucid iron
#

so if u want to just convert the unpacked thats fine too

teal bridge
#

Oh wait, my mistake, I saw xnbhack and was thinking xnb mods. It's just the unpacker.

#

Still, it's going to unpack what's actually there, and what's actually there is literal JSON, isn't it?

lucid iron
#

i figured it was just object like data

teal bridge
#

Maybe MonoGame has some special serialization format that is not JSON? But then I wonder how the web-based unpackers are able to unpack them.

lucid iron
#

not sure, possible that stardewxnbhack is special bc it just reads from loaded game content

teal bridge
#

It's some freaky BinaryReader stuff on the inside, and the Pathos lib calls it via Read<object> so it has no expected type.

#

Looks like there's a 7-bit int designating the data type and then a bunch of custom readers. But I don't see a DictionaryReader. I got lost at LoadAssetReaders.

lucid mulch
#

the source format is xml, the compiled format is close enough to it, but the json form we know and love is a translation that xnbhack is generating

pine ermine
#

xml is natively supported by C#

teal bridge
#

Does that mean that some of the strange slash/space-delimited formats inside the files are also not the real underlying data format, or is that a Stardew special?

lucid mulch
#

that is still a stardew special

teal bridge
#

Figures. Had to ask.

nova gale
#

interesting, NPCs won't use touchaction warps in path calculations, only those designated on the map properties in Warp properties

teal bridge
#

Right, I had the (apparently false) impression that XNB was some kind of archive/container format for other data as opposed to a unique serialization snowflake.

pine ermine
#

7bitEncodedIntegers.

teal bridge
#

From the latest, I'm inferring that it's more like "binary XML"

pine ermine
#

Gotta love em

lucid mulch
#

can be considered binary xml, with first class support of stuff useful for game engines like textures, 3d models, etc

teal bridge
#

(like BSON, but... for XML)

lucid iron
#

so is there a xna format thats ascii

#

assuming that xnb means binary

pine ermine
#

xnb is an "XNA Binary"

teal bridge
#

I think he was kidding.

lucid iron
#

i was somewhat serious cus this naming convention exists elsewhere

teal bridge
#

But ASCII is a text encoding, not a file format.

lucid iron
#

like maya has ma (maya ascii) and mb (maya binary)

teal bridge
#

And ASCII would be a terrible idea since these files clearly need to contain Unicode strings.

lucid iron
#

\u escape blobcatgooglyblep

teal bridge
#

I... guess so. But at that point, aren't they just essentially XML?

lucid iron
#

in this case yea DokkanStare

#

why are they like this
Microsoft XNA (a recursive acronym for XNA's not acronymed)

brittle pasture
#

time honored software tradition

teal bridge
#

This conversation started in the context of YAML which is exactly the same.

#

(Which in case you didn't know, stands for "YAML Ain't Markup Language")

#

So indeed, time-honored software tradition, with a bit of an eyeroll during the "honored" part.

lucid iron
#

wait i thought it was yet another

brittle pasture
#

it used to

teal bridge
lucid iron
#

weh

pine ermine
#

They changed it

teal bridge
#

If it used to, it must have been a very long time ago, like more than 10 years.

brittle pasture
#

all the way back in two thousand oh one

teal bridge
#

More than 20 years, actually.

brittle pasture
#

crumbles to dust

teal bridge
#

How did you even find the pre-1.0 spec? I could only find it back to 1.0 in 2004.

brittle pasture
lucid mulch
#

the better name tbh

teal bridge
#

They changed the pronunciation too, apparently.

tiny zealot
lucid mulch
#

a language whose purpose is being a superset of json which is just a retconned spec for using javascript syntax deserves the name "yet another markup language"

teal bridge
#

I was thinking about going with YAM or YAP for a mod name earlier today but came to my senses and decided no, the world does not need Yet Another Yet Another.

nova gale
#

YAYAPNP

#

yet another yet another poorly named project

teal bridge
#

I think it's a bit unfair to say its "purpose" had much to do with JSON, even if can accept a lot of valid JSON. It was always its own spec, as far as I know.

nova gale
#

chefs kiss

teal bridge
#

The "flow" constructs that are JSON-compatible came much, much later. 1.0 was not a superset of JSON.

tiny zealot
#

if i never encounter another Yet Another ___ project, it will be too soon. f-tier name category

vernal crest
#

/whistles/

brittle pasture
#

naming all my projects "The Ultimate ___" to serve as shining examples of hubris and audacity

teal bridge
#

Why not both? Yet Another Ultimate ___.

lucid iron
#

Yet Another Ultimate Immersive Overhaul

teal bridge
#

That would be like... self-aware arrogance. Clearly we know it's not the ultimate, but we're going to call it that anyway because we can.

#

Immersive really is a hilarious evergreen meme. It's hard to convey to the non-Beth world why it's so funny.

#

How do you sum up thousands of YouTube videos and hundreds of thousands of mod descriptions in a few sentences?

lucid iron
#

it escaped into general game design spheres by now

teal bridge
#

Oh, there's nothing wrong with immersion as a concept. But at some point the Skyrim modders realized that if their mod had the word "immersive" they'd get 10,000x the number of downloads, even if it was the most absurdly lore-unfriendly, game-breaking mod imaginable. And then that became a modder meme and "immersive" became a name for joke/trash mods. And then it morphed into a video meme, and achieved escape velocity.

brittle pasture
#

tfw one of my upcoming mods have 'immersive' in its name SDVconcernedCA

#

eh it's 1 mod out of 10 I think I'm allowed to use that word once, as a treat

teal bridge
#

It's valid if you combine it with something that is obviously and thoroughly un-immersive.

lucid mulch
#

I have my own convention for better or worse

lucid iron
#

Stardew modding is land of "authorname's thingymajigs"

teal bridge
#

Like "Immersive mistranslated item descriptions"

lucid mulch
uncut viper
#

tbf i think "authorname's thingymajigs" is a good convention to follow when the search is as god-awful as nexus search is

teal bridge
#

"Immersive futuristic dystopian cyberpunk Stardew visual and dialogue overhaul"

lucid mulch
#

ifdcsvdo is a great mod though

brittle pasture
tiny zealot
#

my cat mod has "ichor's" in the name, but it's descriptive. she was my irl cat

fiery cobalt
#

I like have shops that barters instead of just using gold but it's hard to decide what can equivalent

#

/ mod muttering

lucid iron
#

Yeah I like being able to find one author's stuff plus others following that author's style

teal bridge
#

You could just click on the author's profile, though.

fiery cobalt
#

I think I'll just use items of equivalent sell price

#

Also the raccoon family is so cute

teal bridge
#

I do think the author name gets more relevant when it's art, as you might be looking to mod in a particular consistent art style.

#

If I ever decide that I'm important enough or that modding is serious business enough to put all my mods under a brand umbrella, I want you to shoot me.

vernal crest
teal bridge
#

(fwiw, sinz gets a pass because of Profiler, which actually is that important, despite the occasional "do this better" comment)

vernal crest
#

If I wrote mechanic mods instead of NPCs I'd probably give them all the same branding

#

But for NPCs and random portrait replacers, nope.

velvet narwhal
#

.... I stole mycology because no one had it

lucid mulch
vernal crest
#

No Windows none of the files are open!!! Let me change the folder name!!!! SDVemoteconfuse

teal bridge
faint ingot
#

Is there something I can do to use my i8n file for the strings I load as "assets/NPCs/Schedules/Strings_Schedules_NPCname.json"? I tried the normal format I'm used to, and the character just says "{". { "Russell.DesertFestival001": "{{i18n:Schedule.Russell.DesertFestival001}}" }

velvet narwhal
#

Schedules are different, they need a specialized, lemme dig for it

lucid mulch
#

only EditData does tokenization, Load just loads your file as-is

velvet narwhal
#

\"Strings\\schedules\\EdelweissSeung:Spring_Sleepy.1\" schedule "dialogue" then the editdata: "EdelweissSeung:Spring_Sleepy.1": "{{i18n:EdelweissSeung:Spring_Sleepy.1_0}}", sorry I'm on mobile

faint ingot
#

OK I think I understand, thank you both

#

so will I have to do a separate editdata statement for every key? (schedule dialogue element)

velvet narwhal
#

They can all be in the same editdata if it's the same target

faint ingot
#

Is there a way to have my NPC prefer roads when executing the schedule? He is walking behind the community center and Pierre's shop

proud wyvern
#

They already do, a tiny bit

safe comet
#

Can anyone make a mod where the farmer can't talk since the day he/she was born.

vernal crest
frigid hollow
#

what kind of destination has your NPC going behind both Pierre's and behind the Community Center?

dull river
vernal crest
#

And know how pathfinding algorithms work and how to improve them.

dull river
#

How would they go around on doing that? Maybe considering the tile properties in the algorithm?

#

What tile they stepping on

#

Does stardew use A*?

#

most likely

vernal crest
dull river
#

pathfinding algorithms are easy, maybe one of the easiest hard-looking algorithms to learn

#

I love them

vernal crest
#

I know atra hates the pathfinder and that is enough for me to know it's horrible to work with.

dull river
vernal crest
dull river
#

But I guess functions to make it easier working with them?

vernal crest
dull river
#

because pathfinding itself, whatever algorithm it is, it has some type of interface to work with in stardew valley I suppose

#

Like many games

#

But when you said it's a pain to work with it, there is always a way to make it easier

#

By interface I don't mean struct, class, interface etc

#

I'm a functional programmer by nature

#

I mean a general form to work with whatever pathfinding is like right now. Must be something like this out there already

vernal crest
#

Have you decompiled the game's code so you can have a look?

dull river
#

That's what you do when modding, no?

vernal crest
#

Look at other stuff?

dull river
#

You typically start by reading whatever you can reverse engineer from the game, no? And testing out values?

#

After looking if there are any APIs out there ofc

vernal crest
#

...I don't, no.

wise berry
#

A lot of people use Content Patcher as a framework here

#

It opens up modding to a lot of more creative-leaning people

#

But it's certainly less technically intensive

vernal crest
#

I can't write C# and can barely read it. I'm definitely not starting anything by diving into reverse engineering game mechanics lol

wise berry
#

Stardew is, fortunately, a rather open book when it comes to modding it

dull river
#

I see

vernal crest
#

I'm also very hazy on what an API is

wise berry
#

I'm no master on it either ahaha

dull river
#

Shit

#

I should've used it

wise berry
#

Not too late to turn back I say ahaha

dull river
#

Yep, definitely gonna start using it

#

I read about it

#

A little-

#

But now I'm reading even more, looks great

wise berry
#

Plus if you want to, you can make a mod with a C# and a Content Patcher component (which is what I'm dabbling in) for more flexibility

#

Ichor's Hat Mouse Lacey NPC is a really good example

dull river
dull river
#

nice to know

#

I totally forgot about it

hollow aurora
#

One message removed from a suspended account.

wise berry
#

Oh it's probably the latter

hollow aurora
#

One message removed from a suspended account.

formal crown
#

SDVpufferthinkblob Question for anyone fluent with custom buildings, is there a way to give them a chimney smoke without giving them an interior map? (without using C# obvs)

frigid hollow
#

Like a particle effect or animated building sprite?

wise berry
# hollow aurora One message removed from a suspended account.

Wait I just realized, if you could make it so that your increased recipe prices correspond to gold quality, and if you can change the cooking to give you the food at gold quality, you'd be able to up the sell price without the Qi seasoning increasing it by too much

#

Now, the new question becomes whether you can have recipes give the gold quality instead of normal quality... and I dunno that

formal crown
merry rampart
formal crown
#

Or well, do it as a DrawLayers entry SDVpuffersquee Thanks for looking into it though

gentle sleet
#

Didn't do any modding since 2 years ago. Is JA and DGA still a thing? I have that unfinished project lying around on my GitHub, but never finished or released it.

merry rampart
#

Both are deprecated as of 1.6. for furniture use CP or furniture framework and use CP instead of JA

frigid hollow
#

Would the Particle Framework work for custom buildings maybe? I couldn't really tell

paper sundial
#

For content patcher, are vector's seen as strings or objects (e.g. "5, 7" or {"X": 5, "Y": 7})?

formal crown
#

Mostly objects

#

Rectangles are also the same

paper sundial
#

Figured, thanks SDVpufferthumbsup

rancid temple
#

@vernal crest TIL some mail flags are only set in events, so that's an unfortunate amount of extra files to poke through

#

I'm also wondering if I should make a list of world state ID's, since they're starting to get slightly involved here as well, just came across a second mail flag that's unused in favor of a world state ID that's set with the same name

#

Much like the beach bridge

jaunty vector
#

am i able to edit dialogue in a mod folder using notes?

hallow prism
#

notes?

rancid temple
#

Event.addSpecificTemporarySprite is horrifying

#

It checks against the specific length of the sprite key and then against a specific character in that key with nested switch statements, the vision board to keep these cases from conflicting feels fever dream-ish

calm nebula
#

You're looking at how switching over strings compiles

rancid temple
#

Oh thank fucking god

calm nebula
hearty tide
#

I just spent 2 hours on adding some code and it failed to register

#

And then I deleted the code only to realised my mistake

rancid temple
#

Can't undo?

hearty tide
#

Nope

#

The software I am using doesn’t have an undo option

rancid temple
#

!vsc

ocean sailBOT
tiny zealot
#

lacking undo in your text editor sounds... not ideal

velvet narwhal
#

sounds like a "only red ink" kinda feel

jaunty vector
velvet narwhal
#

highly suggested to use something with a json verifier, like notepad++ (with an addon) or visual studio code

#

mainly because 1) it will catch any missing }, ], and ,'s, as well as any syntax that seems out of place
2) it will actually save as a .json rather than something strange that mac does like name.txt.json

gentle sleet
#

VSC is also amazing, as you can install extensions for markdown, useful when working on your readme file.
I'm pretty sure it has some snippet extensions, better linting, etc.

velvet narwhal
#

if you're unlucky like roku, it also circumvents the flashbang effect that notepad++ does

rancid temple
#

Further on that weirdness, it only happens when I'm opening either the unpacked contents or downloaded jsons from others

#

When I open my older text documents or my own json files, it keeps my theme settings

gentle sleet
#

Classic npp quirkiness.
Btw, VSC has apparently an extension for Stardew Modding for code snippets and syntax highlighting for dialogues and events. Never installed them though.

velvet narwhal
#

yeah linkoid has a json highlighter for events

gentle sleet
#

Yeah that's the one I found. Actually good to know. Because I will start a new mod, this weekend

tiny zealot
#

(C#) hey everybody, is there a situation where ItemRegistry is unsafe to use in multiplayer?
in one of Secret Note Framework's patches, i am calling ItemRegistry.GetDataOrErrorItem, and this is ultimately causing concurrent access errors for one user https://smapi.io/log/af013a38a4514bb89db899a7562fc2a2, i think at the point where ItemRegistry updates its cache (ItemRegistry.CachedItems[itemId] = metadata;). this breaks the user's GameMenu

ocean sailBOT
#

Log Info: SMAPI 4.0.8 with SDV 1.6.8 build 24119 on Microsoft Windows 10 Home, with 118 C# mods and 222 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

tiny zealot
#
   at System.Collections.Generic.Dictionary`2.FindValue(TKey key)
   at StardewValley.ItemRegistry.GetMetadata(String itemId) in D:\GitlabRunner\builds\Gq5qA5P4\0\ConcernedApe\stardewvalley\Farmer\Farmer\ItemRegistry.cs:line 256
   at StardewValley.ItemRegistry.GetDataOrErrorItem(String itemId) in D:\GitlabRunner\builds\Gq5qA5P4\0\ConcernedApe\stardewvalley\Farmer\Farmer\ItemRegistry.cs:line 341
   at StardewValley.Menus.CollectionsPage..ctor_PatchedBy<ichortower.SecretNoteFramework>(CollectionsPage this, Int32 x, Int32 y, Int32 width, Int32 height)
...```
#

seems to only occur after sleeping, so maybe an earlier error is partly responsible?

rancid temple
#

This person lives a wild life

tiny zealot
#

(walk of life is failing on day end, which makes me suspicious, but it seems totally unrelated)

lucid iron
#

cursed log

faint ingot
lucid iron
#

no i feel like crab pots from wol might be related

frigid hollow
#

Oh yeah that makes sense

sacred crag
#

This is unbelievable.

lucid iron
#
Failed in CrabPotDayUpdatePrefix:
System.InvalidOperationException: Operations that change non-concurrent collections must have exclusive access. A concurrent update was performed on this collection and corrupted its state. The collection's state is no longer correct.
   at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior)
   at StardewValley.ItemRegistry.RebuildCache() in D:\GitlabRunner\builds\Gq5qA5P4\0\ConcernedApe\stardewvalley\Farmer\Farmer\ItemRegistry.cs:line 470
#

it is also explode in item registry

sacred crag
#

There was a bug, and it was a bug someone like me, who makes a slime-centric mod, would be most impacted by...

tiny zealot
#

oh heck, good eye chu. i missed that! that seems likely

sacred crag
#

And I was completely oblivious to it because of my own lack of presence.

#

It's actually hilarious.

#

(This isn't meant to be mean spirited or anything.)

#

(I'm actually laughing my ass off r/n because the bug happened and was fixed and I was completely unaware.)

plucky reef
#

can you make an NPC with a config to swap them male or female, and not have fully separate NPC stuff? Like reuse dialogue and just swap pronouns, have a config for which spriteset to use, etc.

lucid iron
#

hm kind of?

velvet narwhal
lucid iron
#

need to make your own npc_pronoun token to pass into all the i18n

#

sprite/portrait is simple by comparison

plucky reef
#

hmm interesting.

lucid iron
#

alternatively just never write pronouned dialog with them

velvet narwhal
#

my shapeshifter changes based on player gender, and sits on 'undefined' otherwise

#

also true, you can get away with ${male^female^undefined}$ in dialogue

lucid iron
#

that one is for the player

plucky reef
#

oh or just make them kinda enby and the config switches between the two general looks

lucid iron
#

i dont think its available for the npc

royal nimbus
#

how do we find id numbers for items? i thought it would be on the wiki but i didnt see it

velvet narwhal
#

yeah if any other npc refers to them i just say 'them' cause i'm lazy

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!

plucky reef
#

I know there was a genderfluid NPC called Riley but I didn't look at the code, could see what that author did.

royal nimbus
#

ty

plucky reef
#

thinking down the line for an optional NPC for my mod, getting more thoughts onto paper so I don't have to split attention

rancid temple
lucid iron
#

the game has some undefined gender npcs

velvet narwhal
#

just a word of caution if your nb npc is romanceable: flower dancing sprites is pain

plucky reef
#

I would make them probably not show up to that.

rancid temple
#

Give them two left feet

lucid iron
#

dwarf is the only social one though

#

the others are like mr qi, governor etc

velvet narwhal
#

thankfully the game has two separate instances for 'wedding' sprite indexes, so i was able to shove that in with no problem

plucky reef
#

High level concept is they're a junior druid who hangs out way in the forest somewhere and a marriage requirement would be hitting level 10 in the mod profession (if that's possible too, I know there is a custom NPC that relies on a certain event to become marriage candidate).

lucid iron
#

yea thats possible, u can make them reject pendent until u have lv10 by changing their dialog

#

be careful about adding stuff to forest though, its not free real estate there's so much stuff down there

velvet narwhal
#

i should honestly look around for all of the expansions at once just to reconfirm the place i want my warp is untouched

plucky reef
#

yeah I was watching that convo yesterday of like, there's no room for NPCs without a custom map, and then you have to worry about where to put the map.

#

could have a temporary tent in the secret woods

rancid temple
#

NPC's can't path there

velvet narwhal
#

honestly i'm fine with one "tunnel" doorway in the place that i'm looking at, and it'll go into the rest of my expansion

ornate trellis
#

secret woods is a whole different can of worms actually

plucky reef
#

oh no

#

there is a Juliet and Jesse event there (although the sprites were kinda messed up).

ornate trellis
#

events are different from schedules

rancid temple
#

As long as it's actually an event, it's fine

plucky reef
#

good to note

#

what's the issue with secret woods that you can't park someone in a corner? Pathing?

velvet narwhal
#

if they never move from that spot, it should be fine?

rancid temple
#

It's NPC banned, though I'm not entirely sure why

velvet narwhal
#

oh nvm

#

probably because of monster spawn

plucky reef
#

oh that would make sense

lucid iron
#

i think you can make it happen though

tiny zealot
#

you could still put their house in there and cheat around it with NPCWarps

lucid iron
#

junimatic has a event with linus in there

rancid temple
#

Yeah, as long as you didn't want them to do anything else that day it would probably be fine

velvet narwhal
#

(you'd have to think about SVE though)

tiny zealot
#

they just won't walk through the secret woods map proper

plucky reef
#

druids can use the mycelial teleportation network, no problem there

velvet narwhal
#

SVE yeets the whole damn map

plucky reef
#

yeah SVE is so huge that you have to make little carveouts in events for it or people will skip your mod

#

which is fine, I play with SVE so I would be doing it anyway

rancid temple
#

As if I needed another reason to avoid making an NPC, dealing with people wanting compat is reason enough

lucid iron
#

what if u just make a mushroom warp totem

plucky reef
#

compat with a really huge mod is fine, but if someone asks for compat with one-offs I would probably stop there unless it's trivial to add

lucid iron
#

that ppl have to build to meet ur npc

plucky reef
#

that would be very thematic to my mod so yeah I'll make a note of that too

tiny zealot
#

compat for festivals, map edits, etc. is definitely the worst part of making an npc. compat where you do fun tie-ins, that's joyful

velvet narwhal
#

SDVpufferflat oh you reminded me i still have to build my damn mushroom map

plucky reef
#

and that's easy, druids don't go into town so you can skip festival dialogue or stuff them way in a corner away from any other possible NPCs.

acoustic summit
#

Hello! I've been tackling at this for a while with no success so figured I'd ask cause why not- I'm trying to make a mod I'm working on compatible with generic mod config menu, and while I can follow the Modder's guide I've gotten stuck as I lack any reference to "IManifest", I do have references to StardewModdingAPI. Im not sure what to attach which could help clarify my issue, so yeah haha

lucid iron
#

it sounds like you are in C#, so you have inherited the Mod class

#

which has property ModManifest

#

that is what you give to GMCM

royal nimbus
#

hey so getting this error. what is the change field? how do i add that in?

iron ridge
#

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

acoustic summit
iron ridge
#

included files have to be

{
"Changes": []
}
``` like  a content.json
royal nimbus
#

would that go in this portion?

iron ridge
#

inside the file

rancid temple
#

You leave out Format, but Changes is necessary

#

In Objects.json your file should be something like

{
  "Changes": [
    //all your patches
  ]
}
royal nimbus
#

alright. what do i put for 'all ur patches' ? .-. bare with me as im still learning

rancid temple
#

Whatever you're trying to do in Objects.json, you didn't share it so I have no clue lol

royal nimbus
#

basically just the json is edited

#

i changed some item names

rancid temple
#

You definitely can't just edit the unpacked files and include them

#

You have to use CP to patch the base assets

drowsy pewter
#

"I want to change X name from Y object so I tried this (insert example of your change)"

#

then people can give you specific feedback

gentle sleet
#

If I were to make an "expansion" mod, should I make that new village available once the bus is repaired? I think it would reduce the potential conflict with SVE, Ridgeside, etc., right?

rancid temple
#

Bus seems hardcoded, unless you're going to add a different way to get there?

#

Though, was there a mod that lets you add locations to the bus?

gentle sleet
#

Hmm I will quickly check. I'm on the phone so I can't look at discord 😅

#

There is. "Bus Locations unofficial 1.6 fix"

#

I will use that as a dependency in that case.

acoustic summit
# lucid iron that is what you give to GMCM

Sorry for the followup, Im still having difficulty creating the API interface, where the functions include IManifest - should I put the interface in my entry class? If so - how should I handle the inclusions of IManifest?

rancid temple
#

Did you create a IGenericModConfigMenuApi.cs for your project? (@acoustic summit)

acoustic summit
#

I didnt, I guess that means its its own thing. When making it as its own class(ish), it still returns errors in regards to the lack of a reference for IManifest.

calm nebula
#

Right click on it

#

See what VS recommends

pine ermine
lucid iron
#

if you have intellisense the ide should indicate where a particular class name is from

#

DokkanStare multiline targets is very nice

#

i do wonder why targets werent like a list though

#

rather than this comma separated string deal

velvet narwhal
#

I can't read it now I'm in a car but I assume it'd be good as an example for npc creators

acoustic summit
pine ermine
#

If you look at the commit history, you'll see it only took me 40 mins to convert the whole project with my online converter. It would have been faster if I didn't take the time to re-multiline some of the strings (my converter will auto-multiline long strings, but not as a neat "list". It's more like an arbitrary word-wrap.)

rancid temple
#

I don't think I've ever had to manually reference Core Interfaces

lucid iron
#

what is meant by Core interfaces

acoustic summit
#

I dont really know, I just know that when I added it as an assembly reference the error for a missing reference finally went away haha

#

Its in Smapi internal

rancid temple
#

Yeah, I have no idea, sounds important though

pine ermine
#

You must be using a type that isn't exposed by SMAPI

#

or a namespace

lucid iron
#

this is just the gmcm api though think

pine ermine
#

It might be using StardewModdingAPI.Utilities;

rancid temple
#

I don't even have that lol

next plaza
lucid iron
#

ah makes sense DokkanStare

lucid iron
#

where IGenericModConfigMenuApi is your mod's copy of the api interface

rancid temple
#

I would also just go back and re-read the instructions on how to set this up, because it's pretty straightforward

pine ermine
#

There's already a tool that extracts XNB's using yaml

acoustic summit
calm nebula
#

The instructions are straightforward unless you know c# in which case they make no sense and you just have to follow them 😛

lucid iron
#

well i believe IManifest should just be StardewModdingAPI.IManifest

#

but it is prob same class as internal

rancid temple
#

Just be like me and only know enough about C# to cause problems

calm nebula
#

Everyone starts that way

lucid iron
#

i just dont want this to lead to issues where u r like, including all of smapi in your mod monS

calm nebula
#

Three years later you'll be like "yeah, that's just an oddity of how the net 5 string interpolation works."

rancid temple
#

Knowing my memory it'll be "wait hang on, I vaguely remember atra sent me something about this 3 years ago, lemme find it"

acoustic summit
velvet narwhal
#

I was reminded that marnie holds a monopoly on the animal shop ui so that's something on my wishlist

pine ermine
#

Ones still keep their braces
If the original JSON dictionary was defined on one line like "When": {"Spouse": "Abigail"},, then my converter will choose to use YAML's flow syntax to define the dictionary on one line as well --> When: { "Spouse": "Abigail" }

#

My JSON to YAML converter specifically keeps Stardew JSONs in mind. It even does it's best to preserve comments.

#

You can't find any other JSON to YAML converters online that preserve comments.

rancid temple
#

(slaps the top of the converter you can fit so many comments into this bad boy)

gentle sleet
lucid iron
#

its not really important but is there any perf differences Bolb

#

since u r just patch content patcher i imagine most of the bad perf is still gonna be people putting on time changed stuff

rancid temple
#

I mean, SDV is using .NET 6 so it's not that ancient by comparison lol

tiny zealot
gentle sleet
rancid temple
#

By comparison to LTS sure, but I was comparing against something that actually mattered in context

gentle sleet
lucid iron
#

There are still people who play on the compatibility branch too

#

I think it's nice that u can run stardew on fossilized potatoes

velvet narwhal
#

(I mean there's stardew mobile)

rancid temple
#

Isn't that still not up to date?

plucky reef
#

it's on 1.5 yeah

royal nimbus
#

here's something im trying to do. im just struggling with the highlight line. the json validator says "Invalid type. Expected Object, Null but got String." which i dont kno what it means

plucky reef
#

CA put a post out a bit ago that he's actively working on the 1.6 update for mobile but no ETA.

rancid temple
#

Your Entries should be a model (enclosed in {})

royal nimbus
#

oh i didnt see that. thanks. its just this chat is pretty active sweatdrop

lucid iron
#

Some ppl have phones with better spec than their pc from 15yrs ago monS

rancid temple
#

As for gift tastes though

#

I believe you have to use text operations for that

#

Unless it's for a new NPC?

velvet narwhal
#

If it's a vanilla npc, yes

rancid temple
#

Which is unfortunately a little more advanced

calm nebula
#

But that's okay

rancid temple
#

@royal nimbus I suggest finding a mod that does something similar to what you want, specifically try to find ones that do the same kind of edits you are doing, and use it to see how yours should be set up

velvet narwhal
royal nimbus
rancid temple
#

Follow the second link Aviroen sent just above

royal nimbus
#

sorry... there's a lot going on here atm so i wasnt able to read all the replies

royal nimbus
velvet narwhal
#

(goodbye i am in lecture)

royal nimbus
#

hey i heard that the greenhouseinterior.png is no longer used for whatever reason so when i tried to edit it, the changes didnt work. so im wondering, where's the texture for it which i can edit?

rancid temple
#

Maps/townInterior is what the map currently uses

royal nimbus
#

okay i will take a look

#

oh i see them. i think

rancid temple
#

If you have the greenhouse map open in Tiled, you can select the stamp tool and right click the tile you're trying to find and it'll select it on the tileset

#

You need the correct layer selected as well, but that helps narrow down what you're looking for

royal nimbus
#

i see. well im not familiar with tiled yet. it looks so complicated and its something im gonna have to save for last for working on x_x

rancid temple
#

Tiled is fairly easy, kind of like an image editing software but more simplified

royal nimbus
#

i srsly wish working on maps were easier. like just a put together set png

#

can u edit images on it?? i wasnt sure

#

im gonna have to look up a tutorial for it

rancid temple
#

Nah, just the map files

royal nimbus
#

yeah i meant like can u edit the textures on there? like change colors and draw things on spesfic opened textures on it?

rancid temple
#

I feel like creating a map is like making an image, just with specific stamp tools

#

Nope, you have to do that in a real image editor

royal nimbus
#

ah okay

#

something ive been wondering. whats this pink glassly looking texture? ive been wondering if its a place holder or something

rancid temple
#

Not sure, might be unused, kind of hard to track what's used where

royal nimbus
#

ah

rancid temple
#

I can't think of anywhere I've seen that, but it might just be something innocuous that I glossed over

little crag
#

Hi, I'm making a mod using the GoldCoin object in a shop system; I've ran into a issue where if the player purchased more than 1 gold coin it doesn't stack more than 250g into the wallet...

#

Would anyone know how to fix this? ;-;

lucid iron
#

this is a known issue i believe

finite ginkgo
#

I believe it's fixed in 1.6.9

little crag
lucid iron
#

(why are they buying coins)

little crag
lucid iron
#

If you are on steam can use the beta, see pins

cold plover
#

Hi! I'm kinda new at modding and I wanted to mod a heart event in, but the event isnt triggering. I used a new safe file. Any ideas why? This is the test code I've made:

{
"Format": "1.16.0",
"Changes": [
{
"Action": "EditData",
"Target": "Data/Events/Hospital",
"Entries": {
"88/f Harvey 250/t 900 1500/p Harvey": "50s -1000 -1000 /playMusic distantBanjo/warp farmer 5 9 12 Harvey 5 5 7/playSound doorClose/skippable/pause 100/playSound wateringCan/emote Harvey 16/pause 500/move farmer 1 3 12/pause 200/textAboveHead Harvey "Oh hello farmer. I just finished watering my plants.$0"/move Harvey 0 0 14/speak Harvey "How are you holding up on your farm?0$"/speak Harvey "I see! Good to hear! Don't overwork yourself on your farm and take care!$1"/pause 500/emote Harvey 16/speak Harvey "...$8"/pause 300/speak Harvey "Oh? You'd like to chat with me?$8"/speak Harvey "Well, I suppose we can talk about uhm...$2"/pause 400/speak Harvey "Jugulars...$2"/end warpOut",
}
}
]
}

lucid iron
#

do you have all the conditions?

pine ermine
finite ginkgo
#

you're missing a slash between 50s and -1000 -1000

pine ermine
#

Also your quotes " need to be escaped with \" inside the string.

finite ginkgo
#

You're also missing the 3rd command for the actors, events have to start with music/viewport/characters, otherwise the event script is invalid

brittle ledge
#

Also, you need to be in Format 2.0.0 at least, 1.16 is way out of date

pine ermine
#

(this is a great use case for yaml imo)

brittle ledge
#

(Would YAML help with event scripting tho?)

cold plover
#

ty all for the feedback!

cold plover
pine ermine
brittle pasture
#

I think JSON CP can do multilines now?

rancid temple
#

Use jsonl to get it to stop complaining

finite ginkgo
#

yeah events, dialogue and a few other places ignore whitespace now

brittle ledge
#

yeah, my point is that the event scripting isn't JSON, it's its own thing, so not sure the YAML would affect it

brittle ledge
rancid temple
#

I think for readability YAML is maybe better, but it won't help you understand the event scripting any better lol

brittle ledge
cold plover
heady spire
#

Hey I’m very new to the modding community and coding, I just wanted to ask is https://github.com/Pathoschild/StardewXnbHack#readme the right gitlab code for converting XNB’s? (My dad just asked me to talk with the community as he just make sure since he often works with code and I want to get started) ^-^

GitHub

A simple one-way XNB unpacker for Stardew Valley. Contribute to Pathoschild/StardewXnbHack development by creating an account on GitHub.

#

I’m sorry I didn’t mean to include the thumbnail

rancid temple
#

You can wrap links in <> to remove embeds, if you want

finite ginkgo
#

Yeah the StardewXNBHack is the recommended way to unpack the game files

rancid temple
#

For future reference, anyway

pine ermine
#

You can ignore this, it's unrelated. I just gotta proselytize for the YAML way.
||

Format: 2.3.0
Changes:
- Action: EditData
  Target: Data/Events/Hospital
  Entries:
    "88/f Harvey 250/t 900 1500/p Harvey": >
      50s/-1000 -1000 /playMusic distantBanjo/warp farmer 5 9 12 Harvey 5 5 7/playSound doorClose/skippable/pause 100
      /playSound wateringCan/emote Harvey 16/pause 500/move farmer 1 3 12/pause 200
      /textAboveHead Harvey "Oh hello farmer. I just finished watering my plants.$0"
      /move Harvey 0 0 14/speak Harvey "How are you holding up on your farm?0$"
      /speak Harvey "I see! Good to hear! Don't overwork yourself on your farm and take care!$1"
      /pause 500/emote Harvey 16/speak Harvey "...$8"/pause 300/speak Harvey "Oh? You'd like to chat with me?$8"
      /speak Harvey "Well, I suppose we can talk about uhm...$2"/pause 400/speak Harvey "Jugulars...$2"/end warpOut

||

heady spire
velvet narwhal
pine ermine
#

If you only wanted your heartevents.json file to be in yaml, that's also an option. You can "include" a .yaml file from a content.json file (as long as YACP is installed)

velvet narwhal
#

For my crazier events I can imagine the parsing would be faster for me to see errors SDVpufferthink

#

Honestly it'd be a great pr but you said the nuances were too complicated

#

I don't know about the average user, but a brand new modder can definitely have yacp as a requirement if it helps them push content

pine ermine
#

I'd have to make a PR to SMAPI too.

velvet narwhal
#

Idk what other examples you'd like, I probably have a decent chunk of content patcher related things lying around everywhere

#

Though I think my custom npc hits all the high points SDVpufferthink

cold plover
#

btw, do i use player or farmer in the code

pine ermine
velvet narwhal
#

Events? farmer

#

Maybe I'll throw in my crazy 12 splitting switchevent for you to parse in yaml, link

#

That's when I get home in like 6 hours though SDVpufferpain

pine ermine
#

That sounds fun

lucid iron
#

oh yea does the yaml support extend to i18n

velvet narwhal
#

I'll have to yeet my actual custom assets but I do want that github to be my command to be like, want a running example of an npc? Just fill it out

#

Wdym i18n

lucid iron
#

can you do i18n/default.yaml and such

pine ermine
#

Is that part of contentpatcher?

lucid iron
#

its not that important since i18n is flat key value

#

no its part of smapi i believe

velvet narwhal
#

Oh my i18n folder was untouched, all of my tokens are still bracketted

lucid iron
#

c# mods can use it without extra setup

#

though there is the ModTranslationClassBuilder thing as well

faint ingot
#

So, I have a problem. I had an idea to have my custom NPC give the player a custom beverage through their festival dialogue. This worked (yay!), however since festival dialogue can be repeated, it can be exploited to gain the custom beverage an arbitrary number of times. I tried setting up specific-day dialogue for the gift but that doesn't trigger once they arrive at the festival. Ideas?

#

its for a specific day of the desert festival

velvet narwhal
#

Location dialogue is endlessly repeatable, I would just set the dialogue to the specific day rather than using location

#

Oh once they arrive, I see

faint ingot
pine ermine
velvet narwhal
#

I cannot confirm, but location has higher precedence

#

If it's festival though, uhhh the appending for the festival might let you circumvent it?

fiery cobalt
#

Hmm I need opinions. Right now I have most of the crops in Forage to Farm set to just the raccoon family so later in game but should I also offer the ability to get them earlier in regular shops if you reach friendship markers?

faint ingot
#

My "Tue2" (spring Tuesday 2 hearts) dialogue key seems to be taking precedence over my "spring_16" dialogue key (specific day in spring any heart level). Is there a way to fix this?

hallow prism
#

are you in year 2?

faint ingot
#

yes

hallow prism
#

it's not a priority problem

#

it's that the key doesn't work on year 2

#
WARNING: this first-year-only behavior is different from other keys and often catches unsuspecting modders!
Example: 10: "Did you watch the game last night?#$b#Or wait, do you even have a TV set...?"```
#

having spring_16_2 should work for year 2 and after

rancid temple
faint ingot
#

Ah I've read that wiki page a dozen times and still didn't realize that, thank you

hallow prism
#

sure! it is something you kinda need to know about

#

(even with the warning, it's pretty easy to miss it)

#

and i remember it happened to me in the past and i also helped another modder figuring out why (took us a bit of time)

#

at least here i was "hmm, wiki is pretty clear about what the precedence order is... let's check it's not the year issue striking again"

faint ingot
#

Is there a way to get my NPC to the desert festival right away? Otherwise it's a 3-hour walk for them.

hallow prism
#

you can use 0 schedules to spawn a npc into a map at the start of day

#

they may sometimes (we don't know yet if it's because of them+some other stuff) duplicate npcs. It's quite an elusive bug usually so the causes aren't narrowing down i believe

#

so you can decide to make them spawn directly at the festival map, or at the bus stop/town if you just want them to be closer but not here too soon

faint ingot
#

I assume you mean setting the spawn point by editing their disposition? Anyway I think I am probably overcomplicating here and will just let them get there by 9ish. Thank you again.

hallow prism
#

no, but thanks for saying what you are assuming, because lot of people don't when they do that and it makes misunderstanding. I mean having the 0 in the schedule, let me grab an example/the wiki

#

well, the wiki doesn't mention 0 schedules so that doesn't help

faint ingot
#

OK lol I did search for it and came up with nothing

#

but if the behavior is buggy it's better if I leave it alone

hallow prism
#

"1": "000 Beach 9 8 3/1030 Forest 75 75 2/1500 Saloon 20 19 3/1900 Town 84 9 0",

#

as said, it's a rare and elusive bug that most people dont encounter even when using 0 schedules

faint ingot
#

gotcha

hallow prism
#

so you can avoid it, it depends if you really care about being here early or not

#

(i believe being around 9 for the desert festival for ex is ok since it's when things start anyway)

#

(but really i appreciate you trying to get clarification by explaining what you understood of what i said, it's rarely done)

rancid temple
#

What about giving them a warp room?

faint ingot
#

I hadn't thought of that, thank you, but I think I'll leave it as is for now.

rancid temple
#

I don't really even need one/it wouldn't be better than using the warp menu, but I really love the idea of a warp room for some reason

plucky reef
#

when you say warp room, do you mean an actual map area where the NPC goes and then warps to another map instead of pathfinding?

rancid temple
#

Typically that's what it's for, though my second comment was more of a player warp room

plucky reef
#

I know that sounds like a silly question, I was just checking that warp room wasn't a programming term I wasn't familiar with.

rancid temple
#

I don't think it's silly, clarification is important

plucky reef
#

like a special square that is linked to the target square in another map such that the pathfinding thinks it's closer and then a tileaction for the NPC when they hit that square to warp (so that they still walk around a bit instead of starting the day at that new location or immediately warping to the target).

#

But it would probably be easier to just have the schedule to be to walk to x spot, then at y time they warp to the new location.

#

The thought of the entire town slowly walking through the desert from town for three hours is funny though.

rancid temple
#

Just the yearly desert pilgrimage

fiery cobalt
lone ice
#

Anybody know how to set another map as safe to fall asleep on?

#

I'm looking at Data/LocationContexts but having trouble understanding what I'm seeing

inner harbor
cold plover
#

what is the code to get the players name in the dialogue?

hallow prism
#

@

finite ginkgo
#

@ is replaced with the farmer name

lone ice
#

this whole thing is a great guide for understanding what's happening in dialogue/events; @ for player name is on page 20

#

I'm guessing you might wind up needing more information like that

cold plover
#

Hmm weird. I did that and it turned into backwards arrow

#

The text is in a balloon

#

Could that be why

rancid temple
#

Also, I'd double check this guide against the wiki, it seems to say the last time it was updated was about 8 years ago now

lone ice
#

ah yeah good call

rancid temple
#

I think @ is for actual dialogue

#

I think you can do something to get player name in text overhead, maybe {0}?

deep cypress
rancid temple
#

I have to run or I'd find it, sorry

finite ginkgo
uncut viper
#

textabovehead only seems to care about gender specific dialogue

#

doesnt do any other kind of parsing

plucky reef
#

I see that there is a debuffprojectile but it seems to be limited in what debuffs it give (freeze, -def), which I was going to do something with. It looks like it might be easier to make a custom buff on the player instead?

#

specifically the original plan was "projectile hits monster, applies a debuff. If another attack his the monster with the debuff, do an extra thing".

#

And it might be easier to say "when you cast this spell, get a buff that empowers your next attack"

#

I guess that buff could be stored internally but having some visible for the player to get feedback on if it's active would be nice.

lucid iron
#

you can apply any buff to the monster that get hit by it

#

so you can make a -10 attack custom buff to use with the debuffprojectile

rain lion
#

translations aren't loading correctly for my JA mod, I can see it loading the different languages, but for some reason it seems to be displaying the previously selected language instead of the current one? Like I had it on english and it was displaying the names in english, but when I switched the language to german it still showed the english names. And then when I switched to portuguese it showed the german names..

#

and I'm sure the i18n file names are correct 😅

lucid iron
#

translations are cached differently

#

try reload_i18n from smapi console

rain lion
#

welp I tried that, it's still happening 😅

plucky reef
#

won't even need the debuff projectile I think

rain lion
#

wait.. if I exit to title and reload the game then the correct translation loads

calm nebula
rain lion
#

from the title screen

#

first time loading a game after changing language, the JA items don't display the correct language

#

but if I then exit to title and load the game again, it's correct

calm nebula
#

Interesting

#

I'm not really surprised tbh

#

May I ask why you're using JA?

#

Almost everything JA does CP can do these days