#making-mods-general

1 messages Β· Page 27 of 1

teal bridge
#

That you should be able to do normally, I think. Though I haven't really tried.

#

You do have to be careful though, and again it's same as CSS and the like; depending on how you did your layout, horizontal and vertical size may or may not be independent.

uncut viper
#

your texture starts with Mod in the object but it needs to be Mods

lone ice
#

OH

#

let's see if that fixes everything 🀣

lucid iron
#

yea that is true, tho i doubt i would have to deal with wrapping at this time

plucky reef
#

quick dumb question, for assetrequested, I have a couple if statements for each png I'm loading, but once I get things finalized, can I make a tilesheet, call assetrequested once to pull the tilesheet, and then have the spells grab a tilesheet location off it? Would that work kinda like the usual defaultTilesheet part of projectile?

lucid iron
#

hm unsure what you mean

#

do you want to make a tilesheet.png with all your bullets on it?

#

or make your own version of cp editimage?

plucky reef
#

the first one. I have this right now because it's just "toss the png in, see if it works" but it looks kinda messy.

lucid iron
#

so you just have to get the correct sourcerect when you draw

plucky reef
#

oh sourcerect of course

lucid iron
#

game tends to represent this by sprite index

#

but ultimately u need the rect yes

plucky reef
#

I've seen it done more explicitly than sprite index but I think I remember where I saw an example. Can probably do it either way so I'll see which way becomes easier.

lucid iron
#

if u use temporaryanimatedsprite then they call it frame iirc

plucky reef
#

Might make it easier if someone wants to do a reskin too, if they can just swap out a single tilesheet.

lone ice
teal bridge
#

So here's something strange... when I do SpriteBatch.Begin(...) and provide a RasterizerState with ScissorTestEnabled = true, it does do the clipping... but if I subsequently look up SpriteBatch.GraphicsDevice.ScissorTestEnabled, its value is false.

Is this an XNA bug?

#

Ok, it doesn't update the GraphicsDevice at all. The only way to access the actual state is with reflection. SDVpufferflat

brave fable
#

@next plaza hi there, just wondering gohw OnGiftGiven changed in sdv 1.6? it seems to just call on any gift checks now rather than on given

calm nebula
#

Well

#

Probe was added in 1.6

next plaza
#

Are you meaning BeforeGiftGiven or AfterGiftGiven

brave fable
#

oh dear, beforegiftgiven

#

my method is ongiftgiven :/

next plaza
#

Yeah, there's a probe argument on the event now

brave fable
#

ah

#

whereabouts in the base game code is it placed? i was getting a stack overflow using npc.tryReceiveActiveObject, so in there?

calm nebula
#

I'm not sure why you're getting a stack overflow tbh

#

First call is your box

#

But the second call is unboxed, right????

brave fable
#

i'm not sure, i'll just reorder the lines until it stops overflowing

calm nebula
#

Like, if you go "is not my box? Bai!" I don't see a stack overflow

brave fable
#

the issue is more likely that it is my box, since it'd endlessly retrigge the gift-given behaviour for the box

#

but it looks fine now actually

#

beforegiftgiven -> not probe & is box & npc.tryReceiveActiveObject(box.item) -> npc.receiveGift(box.item) -> player.remove(box)

lucid iron
teal bridge
#

Sounds reasonable. Could probably externalize the ContentLayout same as is done for the FrameLayout.

#

It is just a convenience widget after all, trying to cover the "most common" configurations for a scrolling layout.

lucid iron
#

yay thank ukimasu2

teal bridge
#

I'll add it to the to-do list, haha.

#

Pimping the latest stuff coming out with it, just 'cause. It took longer than expected but was pretty fun.

#

Sliders, sprite animations and about a dozen other bug fixes are all going into the framework proper.

foggy crown
#

Is there any convenient way to make a daily question with npc dialogue? I want to make it so you can say no any number of times, but you can only say yes once per day. I've gotten it to work partially with $y and $action together, but there's always an empty dialogue box that pops up after the action runs, and an index out of bounds error on a custom trigger action so I've been unable to code any "one yes daily" functionality.

hallow prism
#

Maybe with query

#

But i cant help further because im going to sleep and dont really pucture what you want to do anyway

velvet narwhal
#

1.6.9 fixed the $action dialogue with a blank box thing but I assume by yes only once then an addmail function to the yes option and the no stays blank?

#

Honestly BETAS can do what you want with the replacer dialogue upon player hitting yes, my brain is fried and can't think of the vanilla way to do it

foggy crown
#

not gonna lie, I thought 1.6.9 was already out so I was very confused for a bit, I'll see what I can manage with queries and mail, thanks!

velvet narwhal
#

Tis not public release yet

foggy crown
#

I've just opted in and updated so hopefully it doesn't break anything and I'll be able to test dialogue shenanigans

velvet narwhal
#

Oh you can probably do conversationtopic upon "yes"

#

Since conversation topic eats everything except spouse dialogue

rancid temple
#

Depends on what you're using, there's definitely still a couple broken mods

foggy crown
#

Only really using my other mod so it'll be a good test run anyway

brave fable
#

pathos will PAY for this

next plaza
calm nebula
#

Lol

#

Kitty deserves head kissy

#

....I meant the cat in blueberries mos

next plaza
#

I figured that's what you meant πŸ˜›

calm nebula
#

Tbh I get confused every time pathos calls you kitty

brave fable
#

what dark arts

velvet narwhal
#

I don't question Casey I just follow

calm nebula
tiny zealot
#

issuing an important correction: earlier versions of the data model in Data/Characters had "SocialTabIconSourceRect", which was used in the social tab only. my contribution was to ask for it to be used in the Billboard (calendar) menu as well, when showing birthdays. after granting that request, pathos renamed it MugShotSourceRect.
we regret the error.

calm nebula
#

Why not enter your cat into data/characters

#

And use the normal spawn gsq

brave fable
#

i dont know what those are

#

this mod is from 1.3 or something

calm nebula
#

!1.6

ocean sailBOT
#

Stardew Valley 1.6 is the recent major game update, which added lots of content and modding changes. See...

It released for PC on March 19th; console and mobile are coming soon.

next plaza
#

I never noticed

calm nebula
brave fable
#

ohhh are we on 1.6 now

#

so anyway the cat is basically just the old mariner but a cat

#

does he use data/characters

calm nebula
#

You can make an antisocial npc

#

Using data/characters

#

Even birdie is in there these days

brave fable
#

i dont know what birdie is but if the old mariner is in there i'll take it lol

velvet narwhal
#

Content patcher has usurped a lot of things in the wake of 1.6

calm nebula
#

Good SDVkrobusgiggle

#

I am willing to offer more to be adopted

#

I'm too old for this shit. I'm now "why does everything hurt" years old

next plaza
#

Technically it's more the game itself and not CP

tiny zealot
#

i prefer to phrase it as "more things are controlled by data (content), and so fall under CP's purview"

next plaza
#

Since CP just edits the game assets

velvet narwhal
#

Honestly trying to annoy linkoid to pr smapi/cp for his crazy yaml thing only for him to be pinged for whitespace errors

next plaza
#

How about we all just adopt SpaceCore content instead? /s

calm nebula
#

I swear

velvet narwhal
#

Spacecore gonna be the next content patcher kirby

teal bridge
#

I think you're younger than I am. I'm "I'm not even going to ask why that hurts" years old.

calm nebula
#

As late as last year I was at "I know why I hurt I deserve it."

velvet narwhal
#

Listen if you bring in yarn for events I will be your evangelist

calm nebula
#

(Hiit training. Almost always hiit training)

brave fable
#

i was born 'i deserve it' years old

next plaza
#

"large"

teal bridge
#

kinda large to integrate into SpaceCore
I'm almost surprised to hear those words.

calm nebula
#

What is yarn

next plaza
calm nebula
next plaza
lucid iron
#

why r there so many tech things named yarn yggy

teal bridge
#

SpaceBorg

brave fable
#

i have to assume yarn is to do with rolling strings

next plaza
#

Hey now

lucid iron
#

is the knitting programmer overlap that big

teal bridge
#

All other frameworks will be assimilated

next plaza
#

I intentionally don't absorb other people's frameworks

calm nebula
teal bridge
#

Haha, I know, but the size of it still conjures up that image to me.

next plaza
#

I tend to avoid a feature if it's in another (unless there's some way I can differentiate it or need to, like the spawning stuff to get dungeons doing properly)

calm nebula
#

Most women I know irl either knit or crochet

brave fable
#

to be fair tho if you crochet or knit you really do become a magnet for other addicts, the yarn just naturally tangles together

calm nebula
#

Almost every person I know is a software or hardware engineer

#

(Again, irl)

teal bridge
calm nebula
#

(There is a reason why I assume everyone who is currently in college doing a technical degree knows python.)

next plaza
#

I feel like I kinda need to with SpaceCore being so used (though not as much as in 1.5 since JA relied on it)

uncut viper
next plaza
#

I can use python? But I don't know it well and don't like the syntax

teal bridge
#

If there's a mod out there that's on the good-enough side and I want to add a few tweaks or fixes then I'll submit a PR, and have done several of them. But there are a fair number of mods that are simply poor execution on an otherwise good idea.

calm nebula
#

Okay I'm the last person I the office. Do you think I can get away with taking some popcorn

teal bridge
#

I think they're fair game to redo.

calm nebula
#

(It is the ceo's favorite snack)

next plaza
#

Ah

calm nebula
#

But technically it's for everyone

uncut viper
#

is your resume up to date

rancid temple
#

LOL

brave fable
#

depends if you need a raise

calm nebula
#

But at some point I figured

next plaza
queen valley
tiny zealot
#

i have only sent one PR so far, and it was to casey, for spacecore. (i'm sorry i left some of my trace output in by mistake, spacecore users please forgive me)

next plaza
#

(And to be fair, I have way too many mods to maintain... hence most not being updated for 1.6)

calm nebula
#

I used to send a lot of PRs

#

I also kinda realized at some point

next plaza
brave fable
#

by the way, spacecore still has my wallet sprite

#

you might want to remove that lol

next plaza
#

There's some PRs I accepted during my depression phase a few months ago that I really should've taken a closer eye to

brave fable
#

unless it doesn't and i just merged folders

next plaza
#

Good point!

teal bridge
calm nebula
#

Gig is not a name I recognize

next plaza
#

Neither I

teal bridge
tiny zealot
#

Ginger Island Ghosts (wrong answers only)

brave fable
#

ginger island goblins

uncut viper
#

Good Immersive Ginger

calm nebula
#

Had to deal with popcorn

teal bridge
#

Garbage In Garbage Can, I put that out about a month ago. (It's not that popular, so don't worry, I'm not offended.)

next plaza
#

Ah, that one

#

I'm a hoarder

teal bridge
#

I have to update the SDUI version in that one too, now that I found out the scrolling UI was totally broken back then.

next plaza
#

Yes, I DO need those two rows of a big chest of stone

#

And the sap

#

And the slime

teal bridge
#

You can put it on limit mode, though, and still hoard whatever you want as long as the inventory doesn't get full.

lucid iron
#

I would like to do a shop menu mod at some point too

calm nebula
next plaza
#

Yeah, I really should update Better Shop Menu...

#

Grid mode is so nice

lucid iron
#

I used the unofficial update someone did but they did not handle item icons correct

#

So 1.6 items r borked

next plaza
#

Oof

lucid iron
#

The scrolling was also resetting but unsure if due to the fork

teal bridge
#

I'll admit I'm not eager to go after totally random mods fixing their crap just because, lol

lucid iron
#

I kinda want the shopping cart thing lefauxmatt has too

#

Tho I never had chance to actually use it

calm nebula
#

And would send out PRs if I found something

#

(Of course, only over the mod group I was using.)

hoary lake
#

Question....can i use non food items in a cooking recipe for json assets?
we apparently do not have jam in the game so i am considering Jamborite which has the word jam in it...

calm nebula
#

Do not recommend tbh

teal bridge
#

Because performance optimization is a pain? Or because the PRs were a pain?

hoary lake
#

also Hi friends! SDVpufferheart

lucid iron
#

You can use all object I think

calm nebula
#

Hmmm

lucid iron
#

And 1.6.9 is supposed to let you cook big craftables too

#

With qualified id

calm nebula
#

I wonder if you can use any random qualified item id

brave fable
#

.. is it

hoary lake
#

and if you want to know what i am making.
have you watched friends?

teal bridge
#

That's not serious, is it? Cooking your machines?

calm nebula
lucid iron
#

Maybe I interpreted wrong lol

teal bridge
#

flipping out at windmills
I know what the metaphor refers to in general but I don't think I understand the analogy in context.

lucid iron
#

Does that let you put qualified id in ingredients?

brittle pasture
brave fable
lucid iron
#

Ah I did read it wrong alas hokuhands

calm nebula
calm nebula
brave fable
#

unfortunately, we can't yet make crunchy coleslaw with mayonnaise machine

lucid iron
#

Ah so I can feed ppl an entire keg? DokkanStare

teal bridge
#

Turn all those useless auto-grabbers into auto-petters.

calm nebula
lucid iron
#

Yeah ig the deluxe worm bin does take a worm bin in ingredients

brittle pasture
#

that covers furniture, which is like 95% of use cases so good enough for me

lucid iron
#

So cooking ought to work?

calm nebula
brittle pasture
#

(ok I forgor weapons, dang, but still)

calm nebula
#

Not recommended

#

Play the damn game

#

Be happy

teal bridge
#

Ah, I see.

calm nebula
#

Don't bother to worry

teal bridge
#

Does that mean you've actually played? I thought you'd stopped that too.

calm nebula
#

Three years ago?

teal bridge
#

All this stuff hasn't really stopped me from playing yet. Although I did put my new playthrough on hold until this fishing mod is done, because early-game fishing is just too boring.

calm nebula
#

Tbh I do enjoy a nice flame graph

teal bridge
#

If a mod is written reasonably well then I don't mind going over it for performance optimization. Sometimes it's a fun problem.

calm nebula
#

Looking forward to getting some free time back to spend with flame graphs XD

teal bridge
#

Perfetto is nice

brave fable
#

is there a very flexible ja to cp converter around SDVpufferflat

next plaza
#

!converters

next plaza
#

I don’t know how flexible that one is

#

Just know that it exists

brave fable
#

Currently this cannot convert clothing (shirts/pants/boots/hats) because it was made to convert Raffadax and that mod does not have Json Assets apparel.

next plaza
#

Oof

drowsy pewter
#

Lumina is a proponent of "load JA mod ingame and patch export the data file"

#

god's own converter

next plaza
#

Ah, good point

brave fable
#

oh, and i just removed the ja api from the mod

#

good advice though

silver snow
#

hm if im doing this whole brain thing right, targeted bait should just affect the probability that any other item is chosen by making it the sum of itself and all other elements except the targeted one

#

so like if we have [a,b,c] and are targeting b, getting the prob that a is chosen in a shuffled list should be ((a*a) + (a*c))

#

or to simplify, a * (a + c)

#

that might make it easy enough to fit calculating targeted bait into here.. hm

#

I got to this conclusion because:

  • The list does not reshuffle itself upon rerolling for targeted bait (might not matter though)
  • Only one reroll is done, and only for targeted bait. Anything else just returns the fish
  • Targeted bait passing for its target fish just returns that fish rather than rerolling
brave fable
#

i knew updating sailor styles was going to be bad but even with patch export it's going to take years just to fix all the data before i even work out how to split all the hats and stuff into themed groups again

#

tens of thousands of clicks...

#

maybe even billions

#

4000 lines of shirts....................

calm nebula
silver snow
silver snow
calm nebula
#

if b == 1, then a cannot be caught

#

(skip first shadow, catch b)

#

so the lack of dependency on b is a dead giveaway something is wrong

silver snow
#

wdym? if a is caught initially, it goes back to the start, and rolls the chance for a again

calm nebula
#

it doesn't go to the start

silver snow
#

ah dammit ur right. it goes to the next fish

#

hmmmmm

calm nebula
#

(also, just fyi, the chances are changed when you have targeted bait.)

#

for most fish, it's multiplied by 1.66

silver snow
#

i get the probs like that beforehand

#

nw

#

the actual alg is done after probs like that are handled

patent lanceBOT
#

@teal bridge: two if there hasn't been any update. I seem to be almost at the point where I need a to-do list.) (1d ago)

plucky reef
#

Is JA deprecated?

tiny zealot
#

yes. it's keeping the lights on for old mods, but you should use CP to add items in 1.6

teal bridge
#

Haha, worst rem!nder ever.

#

At least it explains why the bot thought I was talking to it.

calm nebula
#

lol, pathos

#

this is great

lucid iron
#

helper.Events.GameLoop.SaveLoaded always run even on brand new save?

teal bridge
#

I sure hope so. I'm depending on that.

#

Oh wait, no I'm not, I'm using DayStarted everywhere. Still, the save is created before gameplay actually starts, as evidenced by the fact that quitting on day 1 still leaves the save.

#

Why do you need SaveLoaded to run anyway?

lucid iron
#

hm i guess it can just be lazy loaded

#

i am put some stuff in SaveData

teal bridge
#

I normally write to save data in the Saving event.

lucid iron
#

oh hm i thought u can call WriteSaveData as much as you want, it only gets saved for real at end of day

teal bridge
#

That is correct.

#

Saving is fired just before the real save data gets written.

lucid iron
#

yea ig i can move the write func there Bolb

#

but i was put ReadSaveData in SaveLoaded

calm nebula
#

(does it matter)

teal bridge
#

So the normal workflow, especially if treating nullable warnings as errors, which I hope you are, is:

  • Write private Data myData = new() in the field initializer to always have a default instance
  • Try to read Data in SaveLoaded, if it exists then overwrite myData
  • Save it again in Saving
lucid iron
#

prob not but ill feel better

teal bridge
#

You should do ReadSaveData in SaveLoaded, but don't depend on it being there.

calm nebula
#

if they have not saved before, all data should be default anyways

teal bridge
#

Exactly - even if the event fires, the data for a new save won't have your mod data.

#

Same with a save that isn't new, but was created before your mod was installed.

lucid iron
#

yea so i just put that in lazy loader

calm nebula
#

(anyways, the other common flow would be something like


private Data? myData

internal Data MyData => 
  myData ??= helper.LoadSaveData("mypath");
#

I'm rusty so that might not even be valid C# anymore

teal bridge
#

I guess you could implement it as a lazy loader? But it's really not necessary, just set a non-null field initializer on it.

#

I just don't let Data be null, it starts out as private Data myData = new()

calm nebula
#

(forgot a very important equals sign)

teal bridge
#

Even if the save data is expensive to load, which it rarely is, this is one instance when I'd prefer to incur the cost right away, while loading the save, while the player is expecting to have to wait, vs. at some random time during gameplay.

calm nebula
#

(I used to have a 1 day rule. If the player was more likely than not to see the content in a day, I would immediately load it. If the player was more likely than not to NOT see the content in a day, I would lazy load it.)

#

rule of thumb more than anything else

silver snow
lucid iron
#

why is dotnet dying every 30 seconds

silver snow
#

ok so maybe i could still do this without having to rewrite the original alg

#

if there's a, b, c, d and i'm targeting c, after getting the avg chance for each, there should be chances of :
[c, c+a, c+b, c+d, c+a+b, c+a+d, c+b+d] and potentially more for the new weighted prob that c is chosen

#

could probably average all those and do some other cool things

lucid iron
#

@teal bridge did you forget to commit OptionsSlider

silver snow
#

idk this is probably just me coping with not wanting to redo the math i already spent a while trying hard on, but i want to believe

teal bridge
lucid iron
#

foiled by not using the template once again LilyDerp

teal bridge
#

Was trying to keep the half-finished dropdown work out of it and left that import line out by accident.

lucid iron
#

hm so i want to make a text button widget

#

what is best way to do that?

teal bridge
#

Actually the template wouldn't handle that since it's in StardewValley.Menus, not the root.

lucid iron
#

i was try to find some kind of hover event

teal bridge
#

Well, typically buttons don't do that in Stardew. It's more common to animate a sprite on hover, which you can do with HoverScale. But you've got PointerEnter and PointerLeave if you really want to do something like tweak the background color during a hover.

#

And the best example you can find of those pointer events is... in HoverScale, since it uses them. Very simple usage.

lucid iron
#

sounds good ill do that

teal bridge
#

I'd been trying to make myself finish the dropdown but just ran out of steam today. Slider works great though, better than the GMCM version (sorry Casey!).

muted sable
#
                "Shin.Florist_LucienSpousePortrait": {
                    "Id": "Shin.Florist_LucienSpousePortrait",
                    "ItemId": "Shin.Florist_LucienPortrait",
                    "AvailableStock": 1,
                    "AvailableStockLimit": "Global",
                    "Condition": "PLAYER_NPC_RELATIONSHIP Current Lucien Married"
                  }
            }``` Does anyone know how to make this item permanently unavailable after the player has bought it?
uncut viper
muted sable
#

Oh right good point. I can't really think of a better way to implement it. Should the condition check for inventory?

velvet narwhal
#

you can put it into the travelling merchant sales

#

wait that's where it's at huh

uncut viper
#

you can check inventory, though it wont be found if they put it on the wall

velvet narwhal
#

can you set the object to "cannot be trashed" or something

uncut viper
#

i mean you could. that might be found kinda annoying though if they eventually dont want it anymore though

velvet narwhal
#

sve has it set to just player_hearts 14

uncut viper
#

that wouldnt make it unavailable after purchase though

velvet narwhal
#

onpurchase is a c# thing isn't it

lucid iron
#

Hm I can't seem to write a HashSet into save data

uncut viper
#

no, shop entries have ActionOnPurchase

#

sorry, ActionsOnPurchase, plural

#

it is of course limited to trigger action actions though

velvet narwhal
#

oh the negation always screws me up when it comes to flags

#

i was gonna say, action on purchase, setflag, if they have said flag, don't let them purchase, i don't know how to guarantee if it's "lost" though

#

(i tried digging into the lostandfound code but idk how to handle that)

uncut viper
#

i dont think there is a way to check whether furniture exists anywhere with just content patcher

velvet narwhal
#

i salute leroy, this furniture code has me confused

muted sable
#

Since theres no real way to check would players be annoyed if i make the furniture always available in the travelling cart?

uncut viper
#

you could tie it to a random chance if you want

#

if you did like SYNCED_RANDOM day lucienPortrait 0.5 as part of the GSQ condition it'd be a 50% chance each day of being for sale

#

(though ofc the days when the traveling cart isnt there wont matter but there's no week interval, just tick, day, season, and year)

muted sable
#

Okay that makes sense, i'll do that ty button SDVpufferthumbsup

uncut viper
#

you could even make it increasingly more likely to appear over the course of the month if you used SYNCED_SUMMER_RAIN_RANDOM. not super useful but hey! you could

#

though interestingly despite the wiki saying it accepts <base chance> and <day multiplier> parameters it doesnt seem to actually even use those?

velvet narwhal
#

oh--i should've asked this dang question when casey was around SDVpufferflat
are the new default folders going to automatically understand even if all of my keys are still i18n, or should i specify i18n/dialogue:
i'm about to begrudgingly set a folder for 1.6.8 just so i can see how it works

uncut viper
#

can you explain what you mean a bit more

velvet narwhal
#

ah lemme see if i can dig where the patchnotes for it, it's the new i18n folder splitting process where default can be turned into a folder, with the other things being .jsons, like dialogue.json/etc

uncut viper
#

the key thing would be a content patcher thing though right

velvet narwhal
#

yeah

#

i'm just wondering if it'll understand how to pull it, or if i have to specify, i don't really know how that'll work, or hells, if i have to include it

uncut viper
#

lookin at the code for it it seems like it just adds all the keys into one big pool of keys so it should be functionally the same

#

so long as you dont mix and match folders and top-level files for one language

velvet narwhal
#

... interesting

#

oh i know what i need to do, right

#

SDVpufferwaaah i still gotta think of the workaround

#

wait --would BETAS work for that

uncut viper
#

map actions and other map stuff are entirely foreign to me

velvet narwhal
#

right it's NPC not tile

uncut viper
#

i dont know how anything map related works except for basics

velvet narwhal
#

good to know my migration from custom npc to a jumbled mess of a skeleton of an expansion is smoothly working though SDVpufferflat

#

i just realized, yeah, it yoinked straight from a .json in my default with a benign name, so this is great, i can separate it based on npcs or whatever i need it for in regard to the default folder aSDVjunimobounce

vernal crest
#

Does the USA have a govt conservation department? I see there is the Fish & Wildlife Service. Do they employ park rangers and manage hiking huts and stuff?

uncut viper
#

thatd probably be the National Park Service for the most part

velvet narwhal
#

i think it's state-by-state?

vernal crest
#

National Park Service sounds like it might be what I want

velvet narwhal
#

i don't hike, i sit indoors like a roach

uncut viper
#

Fish & Wildlife also does some stuff but i also think you want NPS.

vernal crest
#

Yes I think NPS makes sense since I am envisioning Cindersap as a National Park

uncut viper
#

Fish & Wildlife has like. full police powers and idk if NPS has that.
im also just assuming this is mod related somehow and that you're gonna make a reference to one in stardew

#

(i didnt think about it at first and am a little surprised at myself for how ready i was to just go along with it. like yeah sure a question about NPS and FWC. thats normal here)

vernal crest
#

Yeah Hiria is a park ranger doing conservation, heritage, and trail/hut maintenance work.

#

I appreciate both your responses, thank you :)

#

I am mostly basing her work off NZ DOC rangers but I figured I should at least check US stuff in case it's noticeably different.

calm nebula
uncut viper
#

i did a lot of writing before i did modding so i know this all too well

calm nebula
#

(The answer is no.)

uncut viper
#

(on the other hand, the answer to whether or not NPS has policing powers is "very much yes." so dont push Hiria's buttons)

vernal crest
uncut viper
#

drop one joja cola on the ground? straight to stardew jail

velvet narwhal
#

drop joja cola in the lake? get drop kicked into the lake

uncut viper
#

and then get fined by stardew Fish & Wildlife for disturbing the fish habitat

velvet narwhal
#

wait does hiria take me on a lil hiking excursion, i want this now

vernal crest
#

I was considering scope creeping into a hiking experience lol

#

Currently she goes away for a few days each season to go check and maintain the trails and huts within her purview.

calm nebula
#

Scope creeping into a hiking experience?

#

Hiria hard crashes the game if you don't go outside and touch grass?

vernal crest
#

Lol no the opposite. Giving you more outdoors in your indoors. Maybe a choose-your-own-adventure hiking event in the vein of Airyn's Secret Forest Walk.

uncut viper
#

can you make a Firewatch mod to go alongside her?

#

if its not too much trouble

#

thank you!

vernal crest
#

xD

velvet narwhal
#

oh aba's gonna go into the cinematic events? eyeshake

vernal crest
#

Aba was considering this

velvet narwhal
#

aba's gonna write all of the dialogue then strongarm me to script said cinematic event? eyeshake

uncut viper
#

aba made the mistake of saying it publicly and now has given expectations

#

./j

vernal crest
#

Don't worry I will just procrastinate for so long you will forget this discussion ever happened.

velvet narwhal
#

i will forget by the morn, i'm roughly 2 beers deep with no luck of sleeping

uncut viper
#

hey marubot remind me inβ€”

fathom hound
#

Remind me to check up on Aba’s cinematic progress

#

LMAO button same brain

fathom hound
#

Can’t sleep 5266_pensive_clown might mod instead

scenic bison
#

Sleep? NZ? Aus? I think east coast America are waking up by now

vernal crest
#

Surely too early in the evening for Aus, unless she's a real early bird lol

brave fable
#

(eastern australia isn't even at 9pm yet lol)

vernal crest
#

Yep only just past 8:30 for us

fathom hound
#

It’s almost 7 am for me but I woke up at 3 am and can’t go back

vernal crest
#

I hate when that happens

fathom hound
scenic bison
#

active minds

vale veldt
#

As someone with insomnia: that sucks and I hate it too

fathom hound
#

Idk what to do

#

It’s just bad because I get like allergy attacks when I wake up. Idk why

#

So ima just mod instead heh

vernal crest
#

Can you take drowsy antihistamines at night and hope they both deal with the allergies and keep you asleep?

scenic bison
brave fable
#

i hate this mod. i hate this mod so fucking much

scenic bison
#

is that someone pushing?

brave fable
#

i need a midwife to push this many changes

floral portal
#

Hello.
I am currently checking the operation of my first β€œmachine” type mod that I created.
I have succeeded in crafting a machine in the game, but could not get it to function as a β€œmachine”.

#

The details of the error are as follows English is not my native language, so I don't know how to successfully correct the cause of the error. Is there a wiki page that might help?

#

[Content Patcher] Can't apply data patch "(CP)Bomb Manufacture Machine > Include data/Machine.json > EditData Data/Machines > entry #1" to Data/Machines: failed converting entry to the expected type 'StardewValley.GameData.Machines.MachineData': Cannot deserialize the current JSON array (e.g. [1,2,3]) into type 'StardewValley.GameData.Machines.MachineOutputRule' because the type requires a JSON object (e.g. {"name":"value"}) to deserialize correctly.
To fix this error either change the JSON to a JSON object (e.g. {"name":"value"}) or change the deserialized type to an array or a type that implements a collection interface (e.g. ICollection, IList) like List<T> that can be deserialized from a JSON array. JsonArrayAttribute can also be added to the type to force it to deserialize from a JSON array.
Path 'OutputRules[0]'..

finite ginkgo
#

You have an extra set of [ ] you shouldn't have

vernal crest
#

Yeah the [ on line 35 and the ] on line 65 should be removed.

floral portal
#

I see. Thank you very much for your very specific points!SDVpuffersquee
Since this was the first time I had edited the official JSON of the machine operation and various JSON references regarding the operation, I honestly couldn't figure out what the problem was and was at a loss.
I'll go fix it right away!

still frost
#

im having trouble figuring out which frame on the farmers spritesheet is the kiss frame, i want things to line up for the npc im making but i dont know what height the lips/hands should be

ocean sailBOT
#

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

rancid temple
#

Might be easier to line it up with another NPC, but also if you aren't lined up doesn't it just mash the sprites against each other terribly anyways?

still frost
#

another npc is a good shout, and yeah probably but im a perfectionist, its a bit of a problem lmao

vernal crest
rancid temple
#

What is that?

#

It looks like a series of... hats?

brave fable
#

it's the kissing sprites for a long dyeable dress, of course

rancid temple
#

This loops back around to pants are cursed huh

still frost
brave fable
#

believe me when i say cursed pants never left us

rancid temple
#

I'm really not sure how that image is supposed to help with kissing lmao

vernal crest
#

The kissing one is in the blue rectangle, I believe

brave fable
#

maybe when you're older SDVpufferpensive

vernal crest
#

The notation is explained further up the page

rancid temple
#

Think like when I'm 50 maybe?

still frost
vernal crest
#

I think it would probably be faster to test Natalie's kissing location in game, adjust her in the direction you think she needs to go, then test again than learn how to interpret farmer sprites.

#

I have not bothered to learn how the farmer works and I think I probably never will lol

rancid temple
#

Given how farmer sprites work, I would definitely approach it from that direction last

calm nebula
#

If you overlay the dress sprites over the farmer sprites

#

They are (kinda) indexed the same?

#

It's like a you know

#

Paper doll

#

Just 100+ if them for different frames

still frost
#

i think imma see if i can just screenshot the farmer during a kiss frame and count the pixels lmao

rancid temple
#

In game the scale is I think 4x

still frost
#

?

rancid temple
#

Everything is scaled up

#

So the pixels you see in game are not the same as you see in the files

still frost
#

well yeah okay, but the scale doesnt affect the number of pixels you see though, like sure one pixel is made up of multiple after its scaled up but i can still count pixel by pixel

rancid temple
#

Pretty sure if you open the farmer base, the frame you're looking for is at 80, 512

tiny zealot
#

just get it in the ballpark and you're good

rancid temple
#

Lmao, I was just testing that, male sprites are indeed an entire pixel taller

still frost
#

not including her bow abigails only 25 lol

tiny zealot
#

mine is 19, and that's generous, so i understand completely

drowsy pewter
#

ichor your npc is a mouse

still frost
#

yeah i shaved a pixel off natalie(my npcs) height cause its just a flyaway hair lol

rancid temple
#

For a while I didn't even know it was supposed to be a kiss, I just thought it was a hug

drowsy pewter
#

me too lol

#

its still a hug to me :/

rancid temple
#

I think it reads better as a hug lmao

#

The awkwardness of mashing the sprites together without matching their Y position works better for hugging than kissing

#

Especially with the wild height differences

still frost
#

still gotta at least match height somewhat for the marriage kiss though, so might as well try and get fairly close

vernal crest
#

Hiria is 31 pixels tall if you count her hair

#

I don't know how tall she would be if she was bald although I think I have drawn her as bald so I could count

still frost
#

atm the main issue is abagail is 15 pixels from floor to lips and my npc is 21 lol, she gonna be bending the knees a bit, good thing i made her wedding dress straight and flowy so i can kinda try and show that

vernal crest
frigid hollow
vernal crest
#

Yup

rancid temple
#

Oh I didn't know there was a literal difference lol

vernal crest
#

It is just the emoji and sound that are different. The sprites are identical.

frigid hollow
#

yeah, krobus uses the same animation when he's your roommate but it's a smiley face instead of a heart to separate it from kissing (and sound yeah)

rancid temple
#

Oh I guess I've never done a roommate playthrough

#

I was trying to think when I'd ever see the hug lol

vernal crest
#

(When you download the mod Hugs and Kisses and then run around town hugging everyone and scandalising your wife, of course)

#

I had to search the wiki to see if hugs were an actual vanilla thing lol

gentle sleet
#

Is the hugs and kisses the one where the romance-able NPCs can hug each other?

vernal crest
#

Yes, but more importantly for me, it also lets you hug all your friends (if they are romanceable and therefore have a kiss sprite). So I can romance nobody and hug everyone (ish)!

gentle sleet
#

I should download it. I have it on my list on my phone, but I always forget to download it on my steam deck

void aspen
#

Uh anyone knows where the main screen menu sprites are located?

frigid hollow
#

if i had to guess in cursors

#

ooh, not this time (?)

void aspen
#

It has some image sprites, I was thinking about ui mostly

calm nebula
#

Minigames iirc

frigid hollow
#

oop yeah there it is

void aspen
#

Also unpacking cursors.xnb makes some water pixels green

#

Thanks a lot

frigid hollow
#

titlebuttons and profilebutton (though what platform is profile button for?)

rancid temple
#

I don't have any un-platform specific profile buttons

#

All mine are prepended with Xb1

mortal stag
#
            "Action": "EditData",
            "Target": "Data/Crops",
            "Fields": {
            //Strawberry Seeds
            "745": {
                "HarvestMinStack:" 1,
                "HarvestMaxStack:" 2
            },
            //Blueberry Seeds
            "481": {
                "HarvestMinStack:" 6,
                "HarvestMaxStack:" 9
            }
            },    
            "When": {
                "IsJojaMartComplete": true,
                "Enable CC/Joja Completion Scaling": true,
                }
        },```

Getting: Line     Field     Error
1492     Changes[19].Fields.745     Invalid character after parsing property name. Expected ':' but got: 1. Path 'Changes[19].Fields.745', line 1492, position 23.

Which is the line under Strawberry Seeds showing "HarvestMinStack:" 1,

I have no idea what is wrong with this line
rancid temple
#

Your : need to be outside of the quotes

mortal stag
#

oh, thanks

rancid temple
#

"HarvestMinStack": 1

mortal stag
#

one of those things that just won't solve itself no matter how much you stare at it

rancid temple
#

The longer you stare, the less it makes sense until someone else points it out, kind of situation

plucky reef
#

there's def points where walking away and doing something else is more productive than continuing to code.

#

let it sit in the back of your brain to find a solution, or come back with fresh eyes and you find the problem point instantly (or someone else's fresh eyes).

calm nebula
#

(Or use VSCode. Which would have pointed out the issue immediately)

plucky reef
#

man there's already so many good rings, not much more unique things I could do with them.

silver snow
#

there definitely are such points

#

and then theres targeted bait SDVpufferwaaah

calm nebula
#

Teo, once upon a time I wanted to make a junimo trinket

#

It would wander around harvesting for you

#

Or picking up forage

plucky reef
#

what happened with that idea?

finite ginkgo
#

Atra started knitting

#

Presumably

plucky reef
#

my mod has a jumino trinket idea but more combat-focused, a utility-focused option would be cool too.

calm nebula
#

I had a bunch of ideas for noncombat trinkets tbh

#

Fairy with hammer anyone?

finite ginkgo
#

A fairy with a comically large hammer would be a great trinket

calm nebula
#

When I get some of my spare time back I have other projects I want to prioritize

plucky reef
#

that's fair. Mind if I use the idea?

#

6 colors of juminos, 6 types of trinkets...

calm nebula
#

Go ahead

deep cypress
#

Maybe a watering junimo, a seed planting junimo, a junimo who hoes any open dirt, a junimo who harvests crops, a animal petting junimo, and a forage finding and getting junimo?

silver pelican
#

having trouble understanding why this recipe wont work.

"{{ModId}}.Turon": "-14 1 -75 1 246 1 -5 1 247 1/99 99/{{ModId}}.Turon"
The 2nd ingredient shows null in-game . -75 is any vegetable category, -14 is any meat. -5 is any egg

calm nebula
#

Interesting

#

That's hardcoded

#

Use a spacecore recipe

finite ginkgo
#

Yeah, only the milk eggs and fish categories work in vanilla iirc

tiny zealot
#

spacecore also allows context tags (if memory serves), which in my opinion you should prefer over categories

silver snow
#

alright i give up on targeted bait. maybe ill get back to it but for now ill just raise a NotImplementedError

silver pelican
finite ginkgo
heady spire
#

i don't know if this is just me making a stupid mistake, but i've been trying to load HD portraits with Portraiture and according to the description of the mod ". The aspect ratio of the spritesheet and the layout of the faces needs to be the same as in the original" but most HD portraits i use work fine with it, but when i try making my own for some reason it doesn't work even when i use the exact same size as the other HD mods

rancid temple
#

Do you have an example of what you mean? Doesn't work is kind of vague

heady spire
#

basically it doesn't load, but doesnt say anything on the logs i'll show a video example

rancid temple
#

Hm, I know green role can't post images here, not sure if you'll be able to post a video

heady spire
#

then ill send a dm, just let me get the vid

rancid temple
heady spire
#

Okay thank you ^-^

rancid temple
#

Someone sent me a DM the other day asking if I make mods, I just ignored it because they didn't even see if I was okay with DM's first lol

heady spire
#

damn that sucks, thats really disrespectful tbh :(

rancid temple
#

Plus it's easier to get more help from others if the info can be posted here

brittle pasture
rancid temple
#

I wonder if they got phished or something, they've been on the server for a few years with medium activity

#

I just assumed it was an attempt to get me to make a mod or something for them

patent lanceBOT
#

@solemn roost: 4th anniversary of the #pokemon channel (365d ago)

royal nimbus
#

is there a map file png for spouse rooms and patios?

tiny zealot
tiny zealot
rancid temple
#

Spouse rooms use indoor and sewer for their tilesheets, there's not just a plain png image of the rooms or patios

royal nimbus
tiny zealot
#

ah, i misread. my mistake

royal nimbus
#

nw and tyty

rancid temple
#

Maps/townInterior and SewerTiles to be specific

royal nimbus
#

gotya ty

rancid temple
#

And spouse patios use Maps/spring_outdoorsTileSheet so gonna need to edit the seasonal variants as well

royal nimbus
#

ah right, thanks

patent lanceBOT
#

318487045129502720: it was a leap year, you dum dum (365d ago) [Requested by shockah]

#

@solemn roost: it was a leap year, you dum dum (365d ago) [Requested by shockah]

rancid temple
#

I'm dying πŸ˜‚

lucid iron
#

leap year police shockah

calm nebula
#

It's a leap year

tiny zealot
#

how did i fall for shockah doing this twice? i am cackling

calm nebula
#

What is this pokemon

heady spire
#

i'll send the aspect ratios, that's probably the problem

rancid temple
#

Portraiture works by replacing images based on specific names

finite ginkgo
rancid temple
#

So your image needs to be the same name as the portrait you're trying to replace

old edge
#

how may I add lava on a custom map?

calm nebula
#

Lots of c#

old edge
#

which method?

#

in the decompiled code

rancid temple
#

From what I can tell in this video, Karlach is a replacement for Leah?

heady spire
rancid temple
#

For Portraiture you would just call it Leah.png and then you can call the folder whatever you want

#

Or just Leah if you don't have file extensions visible

next plaza
teal bridge
heady relic
#

So I'm considering writing a program to make modding easier. My goal is to have a simple gui that let's you add a new item to the game, and it has fields for all the info you need. You type out what you want for each one, select edibility, shops, price, etc, and then click save and it just creates all the json files you need.

Before I started though, does anyone know if that exists already?

next plaza
#

I started on one a while back but never released it

plucky reef
#

Miss Coriel's NPC creator does that in a way but for NPCs, not items.

next plaza
#

It was also during the days of JA dominance, so it wouldn't be as useful now

rancid temple
#

Closest thing I can think of is the NPC creator but it's also not up to date lol

old edge
next plaza
#

I don't know off the top of my head. Just search for VolcanoDungeon in file explorer (or ILSpy or whatever)

rancid temple
#

I had considered learning Python to make something for the data types that aren't updated to the new models (clothes and such) but I am unsure if I really want to learn Python lol

calm nebula
#

I know aloe has a py to cp that allows currying

lucid iron
#

im not sure why you would need to learn py for that, C# should be sufficient

heady relic
#

My job is asking me yo learn python and I figured doing this would be the lease painful way to learn.

rancid temple
#

I guess, either way I need to learn to make UI

lucid iron
#

make one of those ascii interfaces AquaThumbsup

gilded comet
rancid temple
#

Oof, I wanted it to be user friendly lmao

#

Not something that looks like I pirated a "game" and am actually about to install a virus

next plaza
#

I used Godot for my attempt since it has UI stuff. Though these days I'd probably just do MonoGame + Mlem

#

(Since I'm using mlem for a game project and already wrote a XML/stylesheet loader for it)

rancid temple
#

I did consider just using Unity for it lmao

heady relic
#

Ideally I'll be able to get it to the point that it can read your mod folders and properly integrate between mods. So if you have SVE, you can select that it's a loved gift by Sophia and stuff like that

lucid iron
#

if i was making smth like that i'd prob just do some potato react app for it

#

so i can host it on github pages

next plaza
heady relic
#

I'm always down for a good challenge.

calm nebula
#

I don't say these words often

lucid iron
#

hm so something like wyrebash yggy

calm nebula
#

But python UI makes me want to shoot myself

rancid temple
#

Sounds like basically recreating how the game loads data lol

next plaza
calm nebula
#

I have literally spun up a tiny web server and written Javascript to avoid python ui

#

And I might do it again

next plaza
#

JS shivers

#

I didn't realize Python UI was that bad

heady relic
#

I learned JS from bitburner lol

teal bridge
lucid iron
#

i think pyside6 is ok

tiny zealot
lucid iron
#

but its just secretly cpp

next plaza
#

I mean, fair

lucid iron
#

not very pythonicℒ️

#

focustense dont u have some big skyrim npc tool

teal bridge
#

Wait, I'm trying to follow the conversation. Were we talking about a way to run a Stardew UI outside the game? Because I really want that for testing.

#

(chu: yes, getting to 1.0 of that is another long-running project. like, very very long.)

lucid iron
#

no i think they want gui content mod program

next plaza
#

It was more data editing outside the game

lucid iron
#

which was brought up b4, wren had a wip somewhere?

heady relic
#

Nah, more like a way to more accurately make json files to avoid as much testing as I do

teal bridge
#

I can't remember if the thing Wren was talking about was an actual thing in progress or an idea for a thing.

rancid temple
#

I feel like the testing is half the fun

next plaza
#

Json isn't too bad... (I say, as if I didn't come up with my alternate content patcher partially because I hate all the quotes involved)

#

(The other reason of course being embedding into C# mods)

silver snow
#

gui development...

teal bridge
#

A real editor UI would definitely be a big benefit to the CP modding community.

silver snow
#

i did like one personal project in ctkinter

teal bridge
#

I don't think JSON is bad either, but I'm not a writer or a spriter, I'm a programmer. We aren't representative of that clique.

heady spire
heady relic
#

I think my biggest hurdle is dealing with whatever the hell dll files are.

teal bridge
#

Ok, if you don't know what a DLL is, then you're probably a long way from being able to create a full GUI for content packs.

lucid iron
#

what kind of programming background do u have Bolb

teal bridge
#

(well, unless you're 100% Linux and just never use Windows)

rancid temple
calm nebula
heady relic
#

Extensive Java, JS, and performance testing for work

calm nebula
#

I'm glad to see the last of perfmon

silver snow
#

tbf I havent touched DLLs (i am going to this semester) and ive been learning programming for a fair number of years, just.. mostly python SDVpufferheart i couldnt tell you either

heady spire
silver snow
#

also dreammaker

lucid iron
#

oh i guess none of those would have *.dll extension (java is *.jar right)

teal bridge
teal bridge
#

(except Java, which is universally bad)

lucid iron
#

i think the first step is learn how the stardew content pipeline works

#

simple way is to try editing data in C# rather than through cp

#

wiki has doc about that

calm nebula
#

I think the sound of us bitchinf about SharePoint is music to their ears

heady relic
#

Yeah I've made and extensively edited a few mods (rip dead mods), so I have a solid general understanding of how everything links together. But I know a lot of the big ones use dll files

lucid iron
#

those are just builds of C# mods

teal bridge
#

Stardew uses MonoGame. Literally every instruction that runs is part of some DLL.

lucid iron
teal bridge
#

Also, some mods do actually use DLLs, and aren't just the one DLL for the mod itself, but rarely.

#

In .NET it's called an "assembly". Unless it's not an assembly.

lucid iron
#

and 1 possible route is to have a mod packaged with the gui app to run a instance of stardew

#

to have access to the internals

heady relic
#

Ooh. That's a good idea.

teal bridge
#

If all you want to do is load content, you really don't need to run the game. XNB can be read offline.

lucid iron
#

so that you dont need to reimplement various data models

rancid temple
#

Well it's more like reading the content added by mods with all the conditions and everything available

lucid iron
#

yea that too DokkanStare

rancid temple
#

I dunno if reading the XNB's would help all that much other than having a base to start from

teal bridge
#

But if this is an editor, you don't really actually want to run the pipeline, you want to look at what each individual mod is doing independently, i.e. read their content packs.

lucid iron
#

!unpack if u havent done this then unpack both Stardew Valley.dll and StardewValley.GameData.dll

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!

teal bridge
#

And yes, the data format is obtuse for a lot of them, but most of the time they are actually just strings until they reach some deeply-nested inner loop of the game; there is no format to speak of.

lucid iron
#

its not obsfucated so ez to read

rancid temple
#

!decompile you mean

ocean sailBOT
lucid iron
#

ah yea ty

brittle pasture
#

(both? both!)

rancid temple
#

Both is good

lucid iron
#

what r the options for C# gui anyways

#

aside from winforms...

brittle pasture
#

Unity

next plaza
#

Godot

#

More seriously, I think there's Maui now? Never used it myself

teal bridge
#

If you're not targeting cross-platform, then WPF is still the convention.

#

Rumors of its demise are greatly exaggerated.

#

And if I were trying to do cross-platform, I just wouldn't use C#, I'd use a web container (Electron, Tauri, etc.).

rancid musk
#

If you want WPF shouldn't you just use Avalonia

teal bridge
#

Maybe. It was pretty immature back when I was doing a lot of WPF stuff. Could be a better choice now.

silver pelican
#

help.
Include assets/Data/gifttastes.json > EditData Data/NPCGiftTastes > text operation #10" to Data/NPCGiftTastes: record 'Elliot' has no value, so field '1' can't be modified using text operations.

block in question:

                    "Operation": "Append",
                    "Target": ["Fields", "Elliot", 1],
                    "Value": "{{ModId}}.Halo-halo {{ModId}}.PutoBumbong {{ModId}}.Kopiko {{ModId}}.SalabatTea", 
                    "Delimiter": " "
                },```
#

the others have the same format and is working. but idk what's wrong here :/

hallow prism
#

there is no npc named elliot

rancid temple
#

Oh yeah, his name has two t's

hallow prism
#

as a french person i can tell you that there's no npc named georges either

silver pelican
#

*:'> ugh *

hallow prism
#

as someone who can perfectly read thanks you very much, there is no hailey either

silver pelican
rancid temple
#

Yes

hallow prism
#

yes

heady spire
gilded comet
#

omg

silver pelican
#

welp, i failed elliott

brittle pasture
#

!eliot

ocean sailBOT
#

Elliott has two l's and two t's in it...

gilded comet
#

so good

silver pelican
gilded comet
#

yes...

rancid temple
#

Just be me and don't remember their names without having to look at them

#

Chiseled beach guy

#

Blonde camera girl

gilded comet
#

blonde lady

silver pelican
rancid temple
#

Sad hammer man

silver pelican
#

gym guy / topless morning guy

heady spire
silver pelican
#

dat about rayt. phew.

heady relic
#

I wonder if I could do the GUI in Ren'Py

teal bridge
rancid temple
#

I can't tell if this is for or against lmao

teal bridge
#

No one got the reference? Phbt, flounce time.

#

"It's Elliott! Everyone knows it's two Ls and two Ts. I have two of everything!"

next plaza
#

Stardew raytracer person hasn't committed in a month, sad

brittle ledge
calm nebula
#

It's not just you

#

When I was toying around with JA gift tastes it was the most common error I saw

hallow prism
#

if it helps, CA had a schedule for lewis to go to the library (no map of this name)

next plaza
#

Brb implementing NPC/location aliases

calm nebula
#

!elliot

ocean sailBOT
#

Elliott has two t's in it...

next plaza
#

!false

ocean sailBOT
#

true

next plaza
#

I love some of these commands

tender bloom
#

the !stone one is fun

next plaza
#

I WAS JUST ABOUT TO

#

Sigh

tender bloom
#

It's just a brilliant moment when someone wanders in with that exact question

next plaza
#

You win this time, Elizabeth

tender bloom
#

Sorry for stealing your thunder πŸ˜›

next plaza
#

You can search and find times of me randomly popping in here, running !stone, and not saying anything

#

I might have it memorized now, is it 390?

#

!stone

ocean sailBOT
#

πŸͺ¨ The item ID for Stone is 390.

next plaza
#

Hooray

tender bloom
#

vitally important info

brittle pasture
#

!eliott

ocean sailBOT
#

Elliott has two l's in it...

next plaza
#

(I do actually have my SSN memorized, but it made for a funny meme)

calm nebula
ocean sailBOT
#

true

teal bridge
#

SSN => license plate and that's me.

calm nebula
#

(It was pathos' idea)

royal nimbus
#

i rly wish i knew what somethings like these are suppose to be xD

ashen oak
#

Q about this line from the wiki on Harmony patching (https://stardewvalleywiki.com/Modding:Modder_Guide/APIs/Harmony):

However annotations work differently in the compiled code, so SMAPI can't rewrite them. That means mods which use annotations are more fragile; they may break without warning in future game/SMAPI/Harmony updates, and may not work on some platforms.

What exactly trips SMAPI up here? If I write my own attribute and then use it to apply patches using the standard code API, will that end up being a problem?

calm nebula
#

Yes

ashen oak
#

-_-

next plaza
#

(I use annotations exclusively and never run into issues SDVpufferlurk )

#

But it is more fragile technically - the problem is Cecil (the rewriter library) can't pick those up for some reason

calm nebula
#

If you have any type reference

#

In the annotation

#

It may break

#

This is pretty commonly seen on mobile tbh

next plaza
#

It's not as much of an issue these days to be honest (on desktop)

calm nebula
#

"Can't find gamelocation"

next plaza
#

It used to be a cross platform nightmare when the assembly names were different per platform

ashen oak
#

Oh, I see

next plaza
#

Mobile... well, I like to pretend that won't exist for 1.6 πŸ˜‡

rancid temple
#

I mean... will it? lol

next plaza
#

(Modding mobile that is)

ashen oak
#

But if the annotation doesn't directly have a type reference then it should be okay?

next plaza
#

(Mobile will definitely exist)

calm nebula
#

I mean

calm nebula
#

So you can even use the harmony onws

#

Just use the form that uses a string to identify the class to patch

#

(Don't do that it makes refactoring worse)

brittle ledge
#

Is there even any interest in mobile modding programming nowadays? I.e., someone wanting to work on Android SMAPI?

ashen oak
#

Trading one maintainability issue for another wheee

proud wyvern
next plaza
brittle pasture
#

maybe someone is lurking in the woods ready to fix mobile modding the moment 1.6 is ready for mobile

ashen oak
#

I mean it'd be nice if mods worked on mobile for the folks who play there, but yeah is anyone maintaining that infra?

rancid temple
#

No way to maintain it currently lol

brittle ledge
rancid temple
#

Unless you wanna target the very select group of people who didn't update their mobile version and can still mod

brittle pasture
#

but right now why invest in effort to fix 1.5 modding when 1.6 is on the horizon

ashen oak
#

That sounds like a challenge (that I don't have time to accept)

next plaza
royal nimbus
#

how are any textures from the sewers being used in spouse rooms? i dont understand the connection.

brittle pasture
#

Krobus

rancid temple
#

Krobus

royal nimbus
#

ooohhhhhhhh

brittle ledge
#

Kro...

royal nimbus
#

lmao okay tyty

next plaza
#

We almost got uber to chime in

#

Just needed that one more Krobus

brittle ledge
#

SDVpufferpensive I'm sorry, I failed us

next plaza
#

tiakall typing faster training arc commencing

proud wyvern
lucid iron
#

r they swap out xamarin for 1.6

next plaza
#

I don't know how much I can say, sorry

lucid iron
#

syntax wise the harmony.patch function is clearer to me

ashen oak
#

I'm okay with either, attributes used to weird me out until my last job

lucid iron
#

helps when i look at my code and go

next plaza
#

I much prefer the attributes

ashen oak
#

Now they're actually kinda neat tbh

lucid iron
#

i didnt need a transpiler there LilyDerp

next plaza
#

(Hence only old code using the function based instead of attributes)

proud wyvern
#

i feel much more in control with manual patches

next plaza
#

I will say, it does bug me about attributes that if one patch fails the rest won't patch

proud wyvern
#

...that's how it works? omg

next plaza
#

Yeah, it goes in some sort of sequential order and bails once one fails

#

So if it fails half way through, half won't patch

#

(That could have changed I guess, but it feels like it does that last time I checked)

proud wyvern
#

adds yet another reason why he doesn't like Harmony to the pile

teal bridge
#

That's probably why so many mods relentlessly try/catch around all their Harmony stuff. (For me, it's just YOLO)

proud wyvern
#

try catching won't help you with applying patches

next plaza
#

I'm also kinda annoyed that you put [HarmonyPatch] on the class, but [HarmonyPriority] does nothing unless you put it on the method

#

Took me a while to figure that out

teal bridge
#

Depends on your definition of "help". If you try-catch each one then it will at least try to apply them all.

#

Whether or not the resulting combination of successful and failed patches actually "works", well that's another question entirely.

proud wyvern
#

in case of PatchAll, try catching in most cases won't do a thing for applying these patches, as applying itself could throw between the patches

#

the one thing it can help with is if you have a bad transpiler, but only in some cases

#

if you end up creating invalid IL, that will stop all other patches from applying too

ashen oak
#

I assumed try/catch on each patch was pretty standard just to ensure enough error handling/logging to keep players from bugging PathosChild when a patch goes south

teal bridge
#

The SMAPI error log will pretty clearly state which patch/mod failed, so if they bug Pathos, that's their fault.

ashen oak
#

That doesn't help Pathos out much tho

#

Hence the recommendation on the wiki

lucid iron
#

i figured it's more bc harmony can mysteriously fail with specific mod loads

next plaza
#

"Pretty clearly" not to users πŸ˜›

proud wyvern
#

no, the recommendation is so you don't break the flow of the game or other mods

teal bridge
#

What I mean is, if it's the sort of player who is going to bug Pathos over that sort of thing, I think they are going to bug Pathos no matter what you do.

lucid iron
#

so more than usual amount of error catching seems warrented

next plaza
#

Or me. I sometimes get error reports just because SCore is in them

teal bridge
#

Haha... SCore must be SpaceCore, right?

next plaza
#

Of course!

teal bridge
#

Oh, to behold the mind of a user...

next plaza
#

(It's really SMAPI)

#

(Pathos hates me, personally)

#

(Because of that + the serializer warning)

ashen oak
#

Yeah I tend to err on the side of "make sure the user knows that I'm (or they are) the one who messed up". That's for Pathos/casey/etc.'s sake and my own

#

No skin off my back hitting a quick key combination to wrap my patch in a try/catch with log with a macro

teal bridge
#

Thing is, if the patches are half-applied or 80% applied then it is probably going to break the game anyway. Maybe for some mods/frameworks, that is not the case.

ashen oak
#

Yeah that depends greatly on the mod

finite ginkgo
ashen oak
#

Our server played through an entire day of game after I busted one of the mods we're testing, then I fixed it and we restarted

next plaza
#

Wait is 4.1.0 not out yet?

#

I thought it was

ashen oak
#

Whereas if I'd been testing something with a lot of codependent patches that really affects gameplay then yeah a fail should have just stopped everything

finite ginkgo
#

It's in beta for 1.6.9 I think

next plaza
#

Ah

#

I guess my custom SMAPI version is what's making my i18n folders work still then

ashen oak
#

Oh, did they change i18n?

next plaza
#

I put in a PR that got merged for letting you use folders instead of a single file (atra's idea)

next plaza
#

You got my hopes up, how could you!

#

I did just spot a bug though

#

Time to DM Pathos!

#

(It's a very minor one)

brittle pasture
#

he should just add a hardcoded exemption for spacecore

finite ginkgo
next plaza
#

That context is totally lost 99.99% people here

finite ginkgo
#

oh yeah i know, i love confusing people

solemn roost
#

remind me the 4th anniversary of the #pokemon channel in 17 hours

patent lanceBOT
#

How Can Time Be Real If Our Timers Aren't Real? (#6234332) (17h | <t:1726061819>)

solemn roost
#

Tomorrow the timer will be right again, and the cycle continues

woeful quartz
#

what mods are good to get? i didnt get SDV on steam 😦 so I have no idea what to do

noble jolt
#

I would ask on modded-farmers, but Nexus mods is a good place to just brows them.

woeful quartz
#

AHH ok thanks didnt see that

quaint moss
#

Am I allowed to import .tsx tilesets into my map? I exported the spring_waterfalls tileset from the Forest as a .tsx file in order to keep the animations, if I were to simply use tilesets straight off the png I'd have to painstakingly set the waterfall animations and their timing again

rancid temple
#

Permissions wise, there's no difference between you using an exported tileset and just creating your own because both are using the base tilesheet, so it should be fine if it's a vanilla file otherwise normal permission rules apply

next plaza
#

tsx should work, yes. I'm using some in MMR

#

(Though those are custom tilesheets)

quaint moss
#

Good to know, thanks

rancid temple
#

The wiki even suggests exporting as a means to keep animations from vanilla maps, so it would be kind of wild if you weren't allowed to then use that lol

light jasper
#

Hey @tawny ore got a SimpleInjector question
How do you handle a harmony patch needing access to a singleton's content?
If I want my event manager to fire off an event from a harmony patch, I'll still need some kind of static method I can use to get the instance right?

noble jolt
#

Is there anyone on who is familiar with using the Cloudy Skies framework?

rancid temple
#

Documentation seems pretty straightforward, what's the question though?

light jasper
noble jolt
#

I'm still looking over the docs, was just asking so i would know who i could ask if questions came up πŸ™‚

light jasper
#

you're welcome to ask here, and if we don't know, the author is in this channel as well

rancid temple
#

I would say, in general it's best to just ask the question and if anyone is on who can help and is willing they will

noble jolt
#

True.

rancid temple
#

I don't actually use a lot of the frameworks but I can read and understand documentation and pick apart code pretty well

#

And I know there are a lot of people who are tangentially familiar with different mods even if they don't frequently use them

noble jolt
#

It's looking very promising to use as a trigger action for watering my greenhouse without having to learn c#

valid cobalt
#

hello! do you guys know of any in depth tutorials for making hair mods?

noble jolt
#

I do have one question though, i have this

 "BuildCost": 10000,
 "BuildMaterials": [
   {
     "ItemID": "(O)787",
     "Ammount": 5
   },
   {
     "ItemID": "(O)621",
     "Ammount": 6
   }``` and the items show up on the menu, but not the ammounts
rancid temple
#

Amount has one m

brittle pasture
#

Mispelled, you have two ms

light jasper
noble jolt
#

omg xD

#

thanks

#

I know many words, but spelling them all correctly evades me.

light jasper
#

mood

rancid temple
#

The eternal struggle

#

NGL, I don't see how Cloudy Skies would be able to trigger watering inside a greenhouse, still looking through but like the best I could think is maybe creating a new location context that's specific to the greenhouse and then making it rain there

#

But I don't know what kind of effect that would have on the rest of the functionality of the greenhouse

noble jolt
#

there is --indoors thing, so i'm hoping there's something that can be done with that, if i can get it to be specific to the map I made for the greenhouse. We'll see though.

rancid temple
#

Oh, I see, I hadn't gotten down to the added trigger actions yet

brave fable
#

is there a shop in the base game that adds a fixed number of items from a random pool? maybe other than the 1000 lines of traveling merchant code

#

i'm so locse to getting sailor styles entirely content patcher, but the shop behaviour is so incredibly specific in c#

brittle pasture
#

You can do RANDOM_ITEMS and then filter it to only items from your mod with PerItemCondition

#

the vanilla game maybe has something like that?

lucid iron
#

Sandy maybe

#

She has random clothes iirc

noble jolt
#

doesn't the guy with the camel also have random stock?

rancid temple
#

Bookseller?

fathom hound
#

fixed stock depending on days

noble jolt
#

ah

round field
velvet narwhal
#

oh i have one, one second

#

addTemporaryActor \"Duck\" 16 16 95 17 2 false Animal duck1
command "actor" <spritesheet dimensions height> <spritesheet dimensions width> <x coord of map> <y coord of map> <facing direction> [type] [name]

brave fable
#

ah, sandy's random items might not work since it's just using the global list of random sale items

#

mine would probably have some stupid cp tokens

lucid iron
#

does your stuff all have context tags

round field
lucid iron
#

so u could do it like the 1.6 catalogues

"ItemId": "ALL_ITEMS (F)",
"PerItemCondition": "ITEM_CONTEXT_TAG Target collection_joja"
brave fable
#

ooh

velvet narwhal
round field
#

Thanks man!

brave fable
#

am i able to add context tags to shirts hats and pants?

next plaza
brave fable
#

there's only 200 of them. i'm willing

brittle pasture
#

are all of these items guaranteed to have the same mod prefix in their ids

brave fable
#

yep, they're named author.mod.contentpack.item

lucid iron
#

ITEM_ID_PREFIX

brave fable
#

there's like 8 content packs i'm converting to cp

#

and originally it'd pick some random 20% of the items from each content pack to add to the shop

lucid iron
#

but hm shirts and pants dont have context tag very sad

brave fable
#

.. and also pair matching hats with shirts. and matching pants with kimono shirts

lucid iron
#

they only got custom field so i was gonna look at button's thing

uncut viper
#

wont there not be a way to guarantee each of those 20% of items is unique on any given day?

#

if going off the bookseller method

brave fable
#

repeat sales were fine before

brittle pasture
#

Shop item queries can return a list of multiple unique items, and you can choose how many to pick from that list

brave fable
#

oh honey item_id_prefix is probably it

brittle pasture
#

with MaxItems

brave fable
#

with maxitems.....

brittle pasture
#

so for example you can have a shop entry that gets every item that starts with a certain mod prefix, and set MaxItems to 5 to pick 5 of them for sale

uncut viper
#

ah, i was confusing that with Max_Stack_, whoopsie

brittle pasture
#

For completeness' sake, MaxStack (and MinStack) determines how many of each of those 5 items are on sale

lucid iron
#

ig u have to do RANDOM_ITEMS too bolbthinking

brave fable
#

it works it works it works it works it works it works it works

#

uyoiu are ALL beloved

round field
#

You are a lifesaver @velvet narwhal 😍

brave fable
#

is it possible to define a pair of items in a single shop entry, or do i need 2 entries?

#

like, a pants and a shirt with the same name

#

nvm it's probably not possible

calm nebula
#

I recall shop entries allowing multiple items

#

Check out vmv

brittle pasture
#

like you want to buy two items with one click?

calm nebula
#

I also have a test pack (lumi's wallpapers, was debugging weird ass shit as per usual)

brittle pasture
#

or two items with one entry?

brave fable
#

no ,just add two matching items in an entry. but it's fine since i can just use CP keys to ensure a pair

lucid iron
#

ig u can use seeded random

calm nebula
#

Bluebs

#

If it is easier for you

#

An item resolver is dirt easy to write

brave fable
#

nonono i got this

#

it's gonna be amazing

brave fable
#

i deleted the c# component 😌

teal bridge
#

Threw away the best part.

brave fable
#

hmmm m using two CP keyed randoms can give duplicate results. can i make the results exclusive?

brave fable
next plaza
#

There's a shop data thing to remove duplicates, I think the bookseller uses it

#

"AvoidRepeat": true, on the shop item entry

brave fable
#

oh, i assumed that was just for RandomItems and wouldnt notice CP changes

brittle pasture
#

Then if collision happens you'd only have one outfit for sale right

lucid iron
#

can u use SYNCED_CHOICE for this bolbthinking

#

same list for shirt+pants but in different order per pair

brave fable
#

current setup for CP keys kimono1 and kimono2


{
    "Id": "blueberry.SailorStyles.SakuraKimono1S",
    "ItemId": "(S)blueberry.SailorStyles.SakuraKimono.SakuraKimono{{Random:Dye, Aqua, Blue, Green, Lemon, Orange, Pink, Purple, Red, White, Yellow |key=kimono1}}Upper",
    "AvailableStock": 1,
    "AvailableStockLimit": "Player",
    "AvoidRepeat": true,
    "UseObjectDataPrice": true,
    "Condition": null
},
{
    "Id": "blueberry.SailorStyles.SakuraKimono1P",
    "ItemId": "(P)blueberry.SailorStyles.SakuraKimono.SakuraKimono{{Random:Dye, Aqua, Blue, Green, Lemon, Orange, Pink, Purple, Red, White, Yellow |key=kimono1}}Lower",
    "AvailableStock": 1,
    "AvailableStockLimit": "Player",
    "AvoidRepeat": true,
    "UseObjectDataPrice": true,
    "Condition": null
},
{
    "Id": "blueberry.SailorStyles.SakuraKimono2S",
    "ItemId": "(S)blueberry.SailorStyles.SakuraKimono.SakuraKimono{{Random:Dye, Aqua, Blue, Green, Lemon, Orange, Pink, Purple, Red, White, Yellow |key=kimono2}}Upper",
    "AvailableStock": 1,
    "AvailableStockLimit": "Player",
    "AvoidRepeat": true,
    "UseObjectDataPrice": true,
    "Condition": null
},
{
    "Id": "blueberry.SailorStyles.SakuraKimono2P",
    "ItemId": "(P)blueberry.SailorStyles.SakuraKimono.SakuraKimono{{Random:Dye, Aqua, Blue, Green, Lemon, Orange, Pink, Purple, Red, White, Yellow |key=kimono2}}Lower",
    "AvailableStock": 1,
    "AvailableStockLimit": "Player",
    "AvoidRepeat": true,
    "UseObjectDataPrice": true,
    "Condition": null
}
brittle pasture
#

I think ppl were discussing/asking for exclusive random tokens the other day. Not possible in CP yet I think