#making-mods-general

1 messages · Page 36 of 1

uncut viper
#

i want to hide one tile randomly in the world where if you step on it it calls harmony.UnpatchAll

lucid iron
uncut viper
#

seeded by the save id

brave fable
#

definitely put that one in marnie's microwave

velvet narwhal
#

Put an egg in the microwave get a harmony.unpatchall

brittle pasture
#

tbh there's no distinction as far as the 'framework' page is concerned

lucid iron
#

hm so i am cacheing the animal spots and i noticed that i get 2 coop instance maps

#

1st when i load game

#

2nd when i enter coop

#

even tho i only got 1 coop

brittle pasture
#

I added animal produce debris a while ago and noticed that the debris only spawns upon entering the coop

#

even though I added them on day start

#

may be related; I didn't really look into it deeper

lucid iron
#

yea like i would expect game to make instanced location lazily

#

but it just makes it twice ig

brittle pasture
#

yeah seems so

#

an instance exists on day start to do stuff with, another instance is initialized when actually entering

lucid iron
#

could have just kept the day start one blobcatgooglyblep

worthy rose
#

So about my issue of galaxy sword getting deleted when using my bind key or key combo to inventory item mod, gf said she was super quickly swapping between salads and the sword, eating salad, taking a swipe at dragon, back to sword etc and she was doing this very fast when the sword vanished. I'm wondering if introducing some small async time.sleep in between emulated slot switches would maybe fix it

#

The logs showed diddly

#

Well at least the console did

#

No mention at all of any error

#

There's not some like, insta trash button is there? Lol

brittle pasture
#

I'm not exactly an expert but I don't think async sleeping is a good idea. you can instead check the ms delay since last swap and only do your stuff if it's been some amount of time since then

worthy rose
#

Ahh yeah

uncut viper
#

i also dont think async sleeping is a good idea but i didnt wanna say it bc i dont know how to explain why i think that

brittle pasture
#

it's still weird your items are being eaten though. on the surface I don't see any part of your code actually mutating the inventory

worthy rose
#

What about non async sleeping

brittle pasture
#

then your game freezes for that amount of time slept

worthy rose
worthy rose
brittle pasture
#

SDV doesn't use threads/async stuff, all of your logic should have been done the next time the button is pressed

worthy rose
#

Oh then wtf

#

Something about it being in humanly fast has to be at play

#

Or this would be a known bug

#

And it's not like inventory is popping up and no items are ever moved around by mod

brittle pasture
#

you tested with no other mods enabled?

worthy rose
#

It's very odd

#

Yep

#

Was the only mod running last time

#

I just wish there was some explanation

#

I can maybe run the game via debugger, put a pause break on a hey this item is missing line that I have that then removes the bind but that would prob be too late to give us any info

#

I guess I should just spam try to reproduce the issue

lucid iron
#

does it happen in solo

worthy rose
#

Yep

#

Both times it was indeed solo

lucid iron
#

i thought u r coop all the time though

worthy rose
#

She been playing without me

#

Because I'm busy with refactor at work etc

#

But the option for it to work together was paramount when making it yes

uncut viper
#

are you sure the eating animation finish function isnt just eating the active object, so switching back with a hotkey means the sword gets eaten

worthy rose
#

Ohhhhh shit

#

That actually makes some sense dawg

#

And it's over riding the normal wait because it's a programmatic item switch

brittle pasture
#

oooh

worthy rose
#

It doesn't seem to go "slot by slot" once it's on the correct row

lucid iron
#

sord eaten DokkanStare

worthy rose
#

Lmao

brittle pasture
#

Rust Monster GF

worthy rose
#

She is now the galaxy

uncut viper
#

for the record i dont know if thats how the eat animations work

#

just a guess

lucid iron
#

u know this reminds me of a mod idea i saw

#

lunchbox it was called

worthy rose
#

It makes by far the most sense

#

It has only happened when eating

#

And we didn't even consider that

#

U certified genius

lucid iron
worthy rose
#

I can totally make that

lucid iron
#

this would be like a tool that holds 2 stacks of consumables

worthy rose
#

I mean steal that

lucid iron
#

and on use you eat 1 each

worthy rose
#

I always hate when MA spicy eel runs out

#

I considered removing eat animation by referencing skip animations repo

#

But idk I find it is some mkuch needed reprieve, cheesing that feature yknow?

#

"can't touch this"

worthy rose
lucid iron
#

make a hat that let you sip 2 triple shot esspresso

#

to go more fast

worthy rose
#

Another mod idea: stack status length if same item type is eaten

#

Oh

lucid iron
#

oh 1 each is like

#

u put 30 spicy eel

worthy rose
#

Here I thought u meant it'd just auto eat for u when it ran out

lucid iron
#

ofc u dont eat whole stack

#

yea but i think needing use anim is more balanced AnnelieStare

#

im not making this mod though do whatever u like

worthy rose
#

Why do u think that cuz it's more vanilla

#

Or because it adds a layer of annoyance

#

Honestly a little do you want to eat pop up would be cool enough

brittle pasture
#

time pause when eating anyway so skipping the animation isn't more balanced

worthy rose
#

Or less

#

Unless multiplayer of course

lucid iron
#

its about having to perform the action

tiny zealot
#

eating for health/stamina is super OP, so requiring you to navigate your menu and do some inputs in the heat of the moment is the least it can do to be balanced

lucid iron
#

click the yes i want to eat

rose forge
#

omg this is amazing thank you!!!

worthy rose
#

I won't hear it

rose forge
#

is it okay for me to use in the future? i will give full credit

lucid iron
#

let me know if it explods kyuuchan_run

uncut viper
#
case "Eat_Yes":
  Game1.player.isEating = false;
  Game1.player.eatHeldObject();
  break;
case "Eat_No":
  Game1.player.isEating = false;
  Game1.player.completelyStopAnimatingOrDoingAction();
  break;

why do both of these set eating to false

worthy rose
#

I mean he's not wrong but that makes my entire mod less cool

lucid iron
#

well if you release your mod, i'll put mine on nexus too

#

so that you can put as dependency

rose forge
#

okay okay! will let you know once im done adjusting the other coops and barns

lucid iron
#

rn its on github so u can test and see if it work good, i only tested with coop and coop2 (just to see that u dont keep old animal spots)

rose forge
#

would you like my barn tiles to test with?

uncut viper
#

no this is from the game answerDialogueAction function

#

in GameLocation

worthy rose
#

Ohhh interesting

#

So wait holy shit

#

I lead to u finding an actual bug

uncut viper
#

eatHeldObject calls eatObject which sets isEating to true anyway so its probably not relevant i guess

lucid iron
worthy rose
#

This is big, aww wait I think ur on to something

rose forge
#

okay will do when i have some time, ty again!

uncut viper
#

i dont think this actually has anything to do with your bug, i dunno if i have it in me to keep exploring all the eating related functions, i just thought that bit of code looked odd but it seems like it works right anyway

worthy rose
#

Wonder if we can make a "objectIsEdible check

uncut viper
#

i mean obv it cant work too wrong bc. eating works

calm nebula
#

Are we eating or not?

worthy rose
#

Yeah you're right

uncut viper
#

an object being inedible is already determined by its edibility field

worthy rose
#

Oh we eating

worthy rose
#

I have no eating logic in my code at all

uncut viper
#

well, normally you're not allowed to switch your active object when eating

worthy rose
#

Maybe I should

#

Then that's what I need to fix

#

What other things should I not allow item switch during

#

Prob only this

#

He said, full of doubt

uncut viper
#

probably easier to just check if the farmer can move or not

worthy rose
#

Big ass brain over here

uncut viper
#

you can also just check player.isEating

worthy rose
#

Idk how I'd check that without doing a try to move

uncut viper
#

but idk other mods might add more animations that you'd not want to allow swapping during

#

player.CanMove

worthy rose
#

Yeah for compatibility purposes

#

Oh wow

#

This game has so many amazing functions Jesus

#

Best booleans ever

uncut viper
#

well Farmer.CanMove but yknow. Game1.player.CanMove

worthy rose
#

Yee

#

Got multiplayer

#

For*

uncut viper
#

Game1.player is always you, the person looking at the screen, regardless of multiplayer or singleplayer

worthy rose
#

It's the person performing the event, Yeah?

uncut viper
#

it is the game that is running on the computer

worthy rose
#

How does it differentiate between me and Co OP partner then

uncut viper
#

your co-op partner also has a game window open, which is its own Game1.player

worthy rose
#

On split screen?!

uncut viper
#

yes, actually

worthy rose
#

It's just 2 games

#

Wow

teal bridge
uncut viper
#

the game handles its own data switching for split screen

worthy rose
#

So fucking cool

brittle pasture
#

(earlier I recall your code saves bindings for a player MP ID even though it only uses Game1.player. you shouldn't need to!)

uncut viper
brave fable
#

finally a nice blend effect for the background class at night 🌌

teal bridge
#

"That'll teach 'em not to waste their money on lootboxes!"

uncut viper
#

(lootboxes isnt even the right word for the mods i mean but i cant remember what they are. just boxes that when opened have completely random effects that might just destroy your entire world. for fun!)

worthy rose
#

Say you're using a key bind that involves movement buttons, like say dpad left plus X, pressing dpad left as someone who has used dpad left as a modifier needs to suppress it

#

But for player who doesn't, it would suppress them too

#

Ur prob still right

brittle pasture
#

the other players would not get your button presses

lucid iron
#

what is the behavior if you give machine rules to a non big craftable think

worthy rose
#

Yeah yeah

teal bridge
#

Ah, I thought it was like hiding a little "surprise" in some mod list or Nexus collection.

lucid iron
#

ive never heard of any mod doing it

worthy rose
#

Listen the code works, your radical ideas upset me

lucid iron
#

like idk, furniture

worthy rose
#

George is getting upset

uncut viper
worthy rose
#

Radical truths, I should say

#

"there is no spoon player 2" - Selph, probably

teal bridge
worthy rose
#

It's basically just really well handled object oriented programming

#

Ape is a pro

lucid iron
#

well the incubators code does check big craftable i think?

#

before trying to get machine data

worthy rose
#

Damn big craft able

#

Just like big media

teal bridge
#

It's the other way around - you can get machine data on any item because that's how the data is set up. But the machine processing code might very well assume that the target is a BC.

brave fable
#

Big Craftable is forcing small farmers to invest in kegs for profit SDVpufferpensive

teal bridge
#

You could grow a whole farm of gem berries if you really hate kegs.

#

But really, who doesn't love kegs?

#

(P.S. I realize that was a "Big Ag" joke and chose to ignore it.)

lucid iron
#

yea hm, i guess i should try it bolbpopcornhat

brittle pasture
#

going through the code chain right now to see if there's a BC check anywhere. so far haven't found it, surprisingly. but I have a slight suspicion you'd trip the "pick object up" code earlier than the "put object in machine" code

oak dragon
#

If I just want to read code instead of running, Are Smapi and SDV still necessary? I build the project and add package without them, but namespace cant be referenced

teal bridge
#

Don't see any typecasts to (BigCraftable)?

brittle pasture
#

there's no BigCraftable type

#

both Object and BigCraftable are the same Object type

teal bridge
#

I meant BigCraftableData

#

There's a rawData as BigCraftableData but seems only for context tags.

brittle pasture
#

all the usages I've found so far casts and checks it

teal bridge
#

It looks like it'd be at least unpredictable. For example, Object.IsConsideredReadyMachineForComputer requires a bigcraftable.

lucid iron
teal bridge
#

What are we supposed to be seeing here?

brittle pasture
#

that coffee is not placed in the world

#

it should be on the ground, somehow nvm I thought you made the coffee do stuff lol

brave fable
#

a furniture with machine rules...

lucid iron
#

i gave coffee table (F)724 the rules of coffee machine

teal bridge
#

Oh, it's a rule on the furniture. Interesting.

brave fable
#

sure is a coffee table now huh SDVpufferthinkblob

teal bridge
#

Well, there you have it. Subject to maybe a few idiosyncracies here and there, anything can be a machine.

lucid iron
#

i think it is on the table though

teal bridge
#

Though I'd probably advise against turning, say, crops into machines.

lucid iron
#

i cant pick up the table without picking up the coffee

uncut viper
#

where would the coffee go if it wasnt a table

brittle pasture
#

heldObject is used for both machine output and item placed on table

brave fable
#

probably nowhere, tables have logic to draw heldobject

lucid iron
#

it could have actually gone to the floor ig

teal bridge
#

Yeah was going to say that machines use heldObject normally.

brittle pasture
#

(ignore my previous comment I had assumed you added machine rules to the coffee itself)

teal bridge
#

So if the object can't handle a heldObject then... it's just invisible, probably.

uncut viper
#

good for easter egg secrets SDVpufferthinkblob

teal bridge
#

Literal easter egg in this case, maybe.

brittle pasture
#

hmm but I don't think input/output rules work for furniture? since it overrides performObjectDropInAction

#

still pretty surprising that day update just works (tm) though

lucid iron
#

the skeleton worked too even tho not a table

uncut viper
#

i love that i think

teal bridge
#

Hahaha, skeleton coffee table.

#

If it wasn't for the shadow, it'd look like a giant coffee cup.

calm nebula
#

Tell me

#

How do I get that irl

teal bridge
#

You could probably turn the bed into a machine too.

brave fable
#

SDVpufferchickskeleton your morning brew, my liege

lucid iron
#

first you need to find 24 fresh leaks for an old man

teal bridge
#

Hey, can the output be furniture too? I'm thinking a bed that produces other beds so your farmhouse just fills up with beds.

brittle pasture
#

it should work

lucid iron
#

well its not going to become heldObject of heldObject i hope

brittle pasture
#

though I have no idea how that would display

teal bridge
#

I guess you'd still have to pick them up and place them, so doesn't quite capture the "wtf are all these beds" feeling.

teal bridge
lucid iron
#

unfortunately keg rule didnt do anything, prob cus the place action is special

teal bridge
#

Task: Implement the Banach-Tarski Paradox in Stardew

lucid iron
#

i guess its ok that i continue to only worry about big craftables for this mod kyuuchan_run

brittle pasture
#

of course you could remove that override and just have it call base

#

would need a patch though

#

and also calling base function in the prefix is a pain

#

oh yeah chu/e are you also handling crab pots

lucid iron
#

i dont think so

#

those r some wacky code right

#

also didnt do anything special for tappers come to think of it

brittle pasture
#

yep, an (O) with hardcoded pseudomachine rules in its class

uncut viper
#

what do calling base functions look like in IL, would it be easier to do a transpiler for that

brittle pasture
#

tappers also do their own thing

teal bridge
#

Pretty sure calling base is just a call (instead of callvirt)?

sleek flint
uncut viper
#

SDVpufferthinkblob doesnt seem like itd be too bad then maybe

sleek flint
#

I know the cover photo is bad but I am lazy

uncut viper
#

i like the name

sleek flint
#

Thanks

teal bridge
#

No, I'm wrong, there's a constrained opcode.

#

Still, it's nothing terribly arcane or complicated.

uncut viper
#

i have no idea what any of that means, to be honest
i just went to the first function i knew off the top of my head that had base in it and didnt see any constrained opcodes tho

#

just calls

teal bridge
#

I think maybe it's possible to do both, depending on precisely how the hierarchy looks.

#

Like if you're an nth subclass and don't know for certain that the parent has an implementation, call is not reliable.

tiny zealot
lucid iron
#

having a proper image is already miles ahead of me slapping a screenshot on there and calling it a day

teal bridge
#

Yeah seriously... I've been fussing over this for the next one, really want to find some cool fish-themed image that's not just a lazy screenshot.

#

But it's probably gonna be a screenshot.

brittle pasture
#

Willy with photorealistic shades next to a photorealistic salmon

uncut viper
#

that does make me think i do kinda love the idea of just finding the wildest stock photos for mod pages. theres gotta be some good fishing related stock photos

calm nebula
#

Over on the knitting subr3ddit it was a theme for a while to pose with your freshly handknit socks thr way men show off fishy they caught

tiny zealot
teal bridge
#

Hmm, maybe a stock photo could work if I put some effects on it like pixelation. Feels like it might be strange as-is on a Stardew mod.

lucid iron
uncut viper
#

dont you use the mod that removes all the pixelation anyway

teal bridge
#

lol, there's a difference between running an xbrz mod to make it not look like ass vs. a legit 4K photo.

brittle pasture
#

is that David Tennant

teal bridge
#

It still looks "gamey", but more like SNES-era games and not Atari-era games.

lucid iron
#

i think this is a wax sculpture

teal bridge
#

Yes, fine, I exaggerated a little with the atari reference.

lucid iron
#

wow i never seen it from this angle b4

teal bridge
#

And yes, I'm well aware that SNES used mostly 16x16 sprites if that's what you're getting at. But we played on 480p CRT screens which was a completely different experience.

lucid iron
#

the artist is Patricia Piccinini

calm nebula
#

What's an snes

teal bridge
#

Not gonna take the bait. /fishjoke

nova gale
#

it's an emulator you can download

#

all I'm hearing focus is you need to play SDV on a 480p CRT

calm nebula
#

(I know what an snes was. I also know it was before my time.)

nova gale
#

it was not before my time, but i didn't get to have one 😦

teal bridge
#

I do actually use an expensive CRT shader for emulation. But Stardew wasn't designed for that, nor is it really an option anyway.

nova gale
#

I had an NES though

brave fable
#

oh wow i've known that blobfish image for so many years and didn't know it was patricia piccinini

#

i guess the man's made of latex too huh

nova gale
#

yeah that man looks much less realistic from this view

uncut viper
#

i thought chu was joking about the wax sculpture thing but was very less sure after the second picture

lucid iron
#

no i am srs u can just google the name

#

her statues sure are something

brittle pasture
#

damn that wasn't David Tennant gingerly holding a blobfish

uncut viper
#

its a name id never heard before i wouldnt have known to google it

nova gale
#

it's certainly a choice of subject

brave fable
#

all this time making a nice night sky scene and you can only even see it with a 4k screen SDVdemetriums

#

really pay to win

lucid iron
#

only highest spec gamers allowed here

#

i rmbr there was a sdv speedrunner who got a 4k screen specifically to see more stuff in the mines

#

so that they can manage the route to marry emily

brave fable
#

sounds like a blade thing to do SDVdemetriums

teal bridge
#

You could also just set the zoom level really low.

#

Though I guess that plus a 4K screen is still better.

tiny zealot
#

vanilla minimum zoom is 75%

brave fable
#

it only goes down to 75%, but it sure looks pretty

teal bridge
#

Yeah, but even without mods you can just edit the config file.

#

And mods that let you zoom lower generally aren't considered cheating for that exact reason.

brave fable
#

'in order to enjoy the sunset, pleaese head to this ini file and install these mods'

teal bridge
#

So say hello to 1-pixel tiles.

#

(Can you imagine 6.2% zoom on a 4K screen?)

brave fable
#

busstop.tmx is going to look incredible

teal bridge
#

Also the treasure levels in mines/cavern.

#

You said you wanted dark mode, didn't you?

lucid iron
#

Mod that unlocks zoom but also draw all the other maps ur map can warp to bolbsunglasses

teal bridge
#

...I mean, newer 2D frameworks generally do have the concept of neighbors, and preloading neighbors.

#

In Stardew, though... good luck.

lucid iron
#

1oo

#

I did always like how sve grandpa's farm included a copy of the bus stop

calm nebula
#

Well, isn't everything just always loaded in stardew anyways

uncut viper
#

dont tell that to the farmhands

teal bridge
#

The locations are always loaded, but I don't think there is any global coordinate system independent of the individual maps, is there?

#

A warps to B when you take the north exit, but the game does not know that B is actually "above" A.

calm nebula
#

I was gonna say maybe you can assume when you're at the edge of a map

#

But busstop

noble jolt
#

So something "funny" happened...
On my meadow farm mod I added this

{
        "Action": "EditData",
        "Target": "MindMeltMax.MapBuildings/Buildings",
        "Entries": {
                "{{ModId}}": [
                    {
                        "Location": "Farm",
                        "X": 130,
                        "Y": 36,
                        "Building": "Coop",
                        "Animals": [
                            "White Chicken",
                            "Brown Chicken"
                        ]
                    }
                ]
        }
},```
#

It added things as needed, but when i went to reload the game just now, there were two new baby chickens instead of the onse that had grown up in my last playing sesion

tiny zealot
brittle pasture
#

black bars are not aethestically pleasing

noble jolt
#

I have no idea what I would need to put in to make it so it doesn't just keep replacing the chickens everytime you quit out of the game and reload.

rancid temple
#

Maybe a When to check for days played less than 2?

noble jolt
#

hmmm

rancid temple
#
"When": {
  "Query: {{DaysPlayed}} < 2": true
}```
I haven't actually tested this, dunno if that's the correct number of days
uncut viper
#

i dont know if that would w ork for new saves

rancid temple
#

Could make it based on a mail flag maybe

#

If that doesn't work

uncut viper
#

the mod re-adds the buildings and their animals both on asset invalidated and on save loaded specifically, so whatever you use would need to be ready either at the time the save is loaded or just before you go outside i guess

noble jolt
#

I'll test on a new game, and the one that's a bit in

#

It for sure works on the one that is at day 15

uncut viper
#

well, adding the When condition would make it default to not applying any building at all, so it will of course look like its fine if you already had a coop and chickens

#

if the token gets updated after the save loads though then i think that should invalidate the asset and cause the buildings to be re-added though so it might be fine

#

unless days played starts at 0

noble jolt
#

i made a new farm, and it added the coop and chickens the way it's supposed to.

calm nebula
#

DaysPlayed does start at 0 but thar should be fine

#

Yeah you'll likely want to do that for now

lucid iron
#

this is mindmeltmax's framework u prob want to report this to em

uncut viper
#

wont it re-add them on day 2 tho

#

because thatll be DaysPlayed = 1

noble jolt
#

Ideally if someone is just now using my mod, then it's going to be a fresh farm anyway, and if they have been playing already then odds are they've progressed enough to have a coop anyway, so it wouldn't matter if a new one was added.

rancid temple
#

Sleep, save, reload, see if it added more

#

Ultimately it's up to you how far you want to test it

uncut viper
#

the new coop would overwrite objects that were there that were naturally spawned so thatd suck if they had a meteorite or maybe a giant crop there

rancid temple
#

I like to cover as many bases as I can think of at least

#

Because people will always find new ways to fuck it up

noble jolt
#

true

#

or have a different mod that messe things up, but ask why it's yours

rancid temple
#

I need chu/e's scribbly 100

noble jolt
#

looks like day 2 chickens were the same, or somehow ended up with the same random names. Reloaded to see about day 3

teal bridge
#

There's no way to turn off snow with a console command, is there?

#

There's one for rain but apparently not snow.

lucid iron
#

its from fren private discord

noble jolt
#

same chimkens again, so it looks like the when condition worked.

#

I did already add a warning on the mod page about the coop being added, and that it could cause issues, but i wasn't sure.

rancid temple
#

All you can really do is hope

#

Any way to try to get a value from a dictionary without knowing what the exact capitalization of the string key will be?

lucid iron
#

if you control the dict then just make all set key lowercase?

calm nebula
#

Do you control the dictionary

lucid iron
#

if you dont then its doomed

rancid temple
#

No, the game gets it from the Data/Pets Breeds list

oak dragon
#

Unify the case of all characters

lucid iron
#

more or less exact issue i have with id_o_modthathadcapsinid

rancid temple
#

Well, I guess I'll just demand they use the same case and hope

uncut viper
#

can you just iterate over it

calm nebula
uncut viper
#

why the bap

rancid temple
#

I think one of the benefits of a dictionary is not having to manually iterate over it?

calm nebula
uncut viper
#

well, yeah, but if you have no other way

lucid mulch
#

what dictionary are you referring to?

uncut viper
#

you did ask for any way to get the value

oak dragon
rancid temple
#

Pet data CustomFields

tiny zealot
teal bridge
#

Thanks, unfortunately it does not seem to be debrisweather. (I actually tried changing the season to fall, which still kept the snow, then running debrisweather, and it added the fall leaves with the snow)

lucid mulch
#

Why is case unknown keys being used in CustomFields?

rancid temple
#

Primarily because I can't force people to use proper casing

lucid iron
#

sure you can

lucid mulch
#

That sounds like a them problem

rancid temple
#

I can tell them they need to, but I can't actually make them

lucid iron
#

just make it not werk AnnelieStare

rancid temple
#

It just would be nice to solve the problem lol

uncut viper
#

i mean i can see the benefit of wanting to give them leeway since a lot of other things are definitely not case sensitive

lucid mulch
#

destroying performance and/or doing very hacky methods to try and idiot proof setting a key is a lost cause

oak dragon
#

You can regularize their input yourself so that it conforms to the dictionary key format?

lucid mulch
#

are you also going to make it typo resiliant next?

brittle pasture
#

your audience is framework users. they're smarter than that usually

lucid mulch
#

and regardless, the second you allow more than 1 key to do the same thing, now you run into issues of order of precedence issues (and the fact that other cp mods wont be able to safely modify the values anymore)

rancid temple
#

Well, as I said before "all you can do is hope" so I guess I'll run with that. Thanks!

lucid mulch
#

the probability of getting the casing wrong, and probability of just straight up making a typo are the same if the instructions aren't just "Copy this key from the docs"

rancid temple
#

Or at least for vanilla pets if you want to add trade items it's just numbers

lucid iron
#

if you want u could make a custom asset with model yggy

#

keyed same way as pet and breed

teal bridge
#

Well, I found a workaround, which was to put a breakpoint in an arbitrary spot and set Game1.isSnowing = false and Game1.currentLocation.GetWeather().IsSnowing = false. Weird that there's no console command for it.

rancid temple
#

Yeah it was a toss up between custom asset and CustomFields, decided on fields because it seemed like less overall work and technically has been

lucid iron
#

then u get newtonsoft.json quirk

rancid temple
#

Though it will mean slightly more work for the user

teal bridge
#

Re the whole custom fields thing, why don't you just iterate the keys? Are there really so many custom fields that performance is a concern?

lucid iron
#

the argument is more whether we should let people do this LilyDerp

#

and what exactly do u do if 2 keys are same except for cap

teal bridge
#

I'm sort of ignoring the argument and assuming he's going to do it anyway regardless.

#

And given that, if there are like eight custom fields, it's really not any faster to try to do dictionary magic than it is to just iterate the keys.

uncut viper
#

roku already said they were just going to hope people dont mess up the casing

rancid temple
#

Ignoring more than the argument :P

uncut viper
#

hey chu

teal bridge
#

Guess I misread that part, sorry.

oak dragon
uncut viper
#

chu. how come you didnt bap focustense. they suggested the same thing i did. chu. chu. hey chu.

#

(/lh)

lucid iron
#

u are right button he gets animated bap

teal bridge
#

I was distracted.

lucid iron
#

.choose play sdv, write docs

patent lanceBOT
#

Choose result: write docs

uncut viper
#

(its ok it was more abt me (lighteartedly jokingly) wondering why chu was singling me out than it was trying to point out to you that it was already said)

lucid iron
#

i am conflicted about how to make page switching

#

rn its just 2 footer buttons

uncut viper
#

are the footer buttons gamepad compatible

calm nebula
#

Clearly clearly clearly

#

You need to ask chatgpt

lucid iron
#

well i implemented the tab interface too

calm nebula
#

If these two keys are identical

oak dragon
#

chatgpt is all you need(?)

lucid iron
#

i was make tab buttons on the side but the width of the page is variable

#

so it was kinda awkward to use with a mouse

calm nebula
#

I wonder if it's possible with the new dotnet dictionary to have a dictionary thar both is and isn't case sensitive

uncut viper
#

if the page buttons dont need labels you could just do arrows like other pages have

lucid iron
#

they do need labels

uncut viper
#

hear me out. but what if they didnt

lucid iron
#

sec lemme take some pic

#

this is the rules page

#

and input page

uncut viper
#

tbh id maybe just align them to the edges and maybe give em some space between em but aside from that it looks fine to me

lucid iron
#

its wider due to stupid maffs i did to fit things

teal bridge
oak dragon
#

hey Can I ask a question now? I found NPCs schedule is not cover all time, where can I get others ..wiki said If none of these keys match, they won't have a schedule for that day

brave fable
#

i think the typical fallback key is default
example from sailor styles:```json
{
"Mon": "GOTO shop",
"Sun": "GOTO shop",
"shop": "0 33 96 2 blueberry.SailorStyles.Anim.Standing/1240 33 96 2 blueberry.SailorStyles.Anim.Sitting/1830 33 96 2 blueberry.SailorStyles.Anim.Drowsy/2020 33 96 2 blueberry.SailorStyles.Anim.Snoozing",
"default": "0 Forest -999 -999/2400 Forest -999 -999"
}

uncut viper
lucid iron
#

i thought they have fallback one think

oak dragon
#

ouch My problem solved

brave fable
#

oh am i meant to have a spring key lol

uncut viper
#

the one thing i thought i knew about NPCs is that a spring key is a soft-but-mostly-hard requirement

brave fable
#

i don't know anything about npcs anymore

#

and i already didn't know much

calm nebula
#

Do you know a thing about player characters?

oak dragon
#

i don't know anything about anything T T

brave fable
old edge
#

Hello

oak dragon
rancid temple
oak dragon
rancid temple
#

FWIW, you'll actually want a spring schedule as your default and not just default, spring is used primarily as a fallback

#

And also to send NPC's home after festivals and stuff

oak dragon
rancid temple
#

Yeah you just had default highlighted so I wanted to make sure

oak dragon
#

only scrolled down about one centimeter ... too difficult to find what i need in so much information

oak dragon
plucky reef
#

Is this the right way to do this?

  {
      if (Game1.currentLocation.NameOrUniqueName != "FarmCave")
      { Helper.Events.GameLoop.UpdateTicked -=  GameLoop_UpdateTicked; }

      Helper.Events.GameLoop.UpdateTicked += GameLoop_UpdateTicked;
  }```
Basically when the player warps, if it is into the farmcave, start caring about ticks. When the player warps and it is not the farmcave, stop caring about ticks. Is it a problem to try to unsubcribe from an event if you are not currently subscribed to it?
rancid temple
#

I would probably just have an update ticked and check in there if the current location is the farm cave

#

I don't actually know what's better in this case

plucky reef
#

I was hoping to unsub to the event when not needed to save on processing time.

next plaza
#

I don’t think it would cause a problem but I’ve never tried it

uncut viper
#

that if statement isnt going to stop the second statement from being run

next plaza
#

I’ve done unsubscribing a few times but not for performance reasons

#

(I was abusing garbage collection)

plucky reef
#

oh, I need to add a return to it

calm nebula
#

In local coop you need to distinguish between the player you want to affect and the player you don't

#

(Am going to sleep, will explain maybe later.)

plucky reef
#

oh fun, good breadcrumb to explore

rancid temple
#

Can we just pretend local co-op isn't real?

uncut viper
#

does unsubscribing before you've ever actually subscribed cause an error too, or does it just do nothing?

tender bloom
uncut viper
#

good to know

tender bloom
#

I’ve been told actually you just perscreen everything

plucky reef
#

I'll put a disclaimer on all my mods that they are not guaranteed to work in local co-op

calm nebula
tender bloom
#

My policy is no controller = no split screen = I can’t test it = i don’t support it (if it works fine that’s good though)

calm nebula
#

Joy!

#

"What's local coop" "well what is a video game."

next plaza
#

It’s like when two people knit on the same article at the same time

calm nebula
#

Anyways nighty night!

tender bloom
#

I could steal em 😛

#

Gnight!

plucky reef
#

I dunno, was doing that to cut down on how much the game would be checking on tick, would the performance hit be that bad?

next plaza
#

Will they get it done faster? Will they cause chaos? Who knows!

tender bloom
#

If Atra is asleep they can’t stop me from bad ideas

next plaza
#

I usually just always stay subscribed

#

And just return early if conditions aren’t met

tender bloom
#

Most code I’ve read agrees with Casey

plucky reef
#

it will be doing a timer so that every x ticks, it drains your stamina one point.

#

when swimming in the farmcave

#

well x milliseconds

rancid temple
#

Lmao, well big items are kind of a problem

lucid iron
#

can u normally buy stuff with big craftables

teal bridge
rancid temple
#

I dunno, I haven't really messed with trade items before

tender bloom
rancid temple
#

Wiki doesn't seem to indicate that there's any limitation, just needs to be a qualified or unqualified item Id

teal bridge
#

(re: subscriptions, if you really take a holistic look at everything that happens in the game's update loop, it'll be obvious why a single subscription or even 100 subscriptions on their own have little to no impact; it all comes down to whether the subscriptions do anything expensive.)

plucky reef
#

drawing things to screen is expensive, running a timer is not? (or more often, checking location and returning)

old edge
#

Got this recently error cs0104: rectangle is an ambiguous reference between X.tile.Dimensions.Rectangle and Microsoft.Xna.Framework.Rectangle

#

Which one do I use?

rancid temple
#

You want Xna

old edge
#

Oh

#

Let see

brave fable
#

ignore xtile.dimensions wherever possible 😌

rancid temple
#

You can set a using directive for it at the top to avoid adding it to every rectangle

#

If you have a using for X tile delete it

old edge
#

This time my code built

#

What is the protected override void cs resetlocalstate()

#

I see it changes the mapbasetilesheet to white in caldera.cs

#

Do I need cs base.resetlocalstate();?

rancid temple
#

All I really know is that reset local state is called when you enter a location, it usually handles resetting anything that was deemed to need resetting

lucid iron
#

you are override this specifically to avoid Caldera stuff

old edge
#

Hmm I got the code all set up for the lava logic mod in my map. But how do I target the map In c#?

#

The map is added by content patcher

lucid iron
#

need to cast it to GameLocation and do that resetLocalState

rancid temple
#

@ivory plume #making-mods-general message Setting trade item's to things like big furniture or large big craftables causes them to draw in the player inventory, not sure if this is in scope for 1.6.9 at this point

#

Though big craftables might technically be fine since they're only two tiles tall, they might peak out a tiny bit into the player inventory but nothing like that palm tree lol

old edge
#

cs public class CustomLavaLogic : GameLocation

rancid temple
brave fable
old edge
#

cs string locationName = "custom_maze";

rancid temple
#

Well, I guess I'm not publishing this tonight lol, thanks Nexus. Gonna release the pet adoption shop mod now and work on the animal shop next, by which I mean try really hard to not quit halfway through it

#

I wanna try just using the current shop setup and making a new animal license item to populate with it, see how that looks

#

If I don't like it, then I tackle UI and last time I started a UI mod I got really overwhelmed and gave up lol

lucid iron
#

well if you make it use the general shop ui

#

then the grid shop ui casey had should work on it, when that is made compat with 1.6

#

also focustense's StardewUI has a grid widget

old edge
#

FarmHouse farmhouse = Game1.getLocationFromName("FarmHouse") as FarmHouse;

#

I only found this reference to cast to gamelocation from 1.4 era

lucid iron
#
GameLocation baseLoc = this;
baseLoc.resetlocalstate();
#

this is prob some kind of OOP crimes actually

#

if you dont want to commit crimes u can just inherit GameLocation and copy the lava stuff

#

rather than inherit Caledra and block Caledra.resetLocalState (plus IslandLocation.resetLocalState)

teal bridge
teal bridge
# lucid iron also focustense's StardewUI has a grid widget

One thing I haven't given a ton of thought to is integration with vanilla menus, and especially the "menu with inventory" scenario. I'm not sure how deep I really want to go down that rabbit hole, but if someone wants to give it a try for something like a shop menu and leave feedback on what sorts of things have to be done (or what can't be done) and so on, then I can try to come up with a more baked-in solution that just works.

lucid iron
#

I think in this case you just block the vanilla animal menu from ever drawing in favor of your own

brave fable
old edge
#

What chu talkin bout, chu

magic tide
#

Chat what coding language is stardew aSDVpuffercri

uncut viper
#

JSON if you count that, C# otherwise

magic tide
#

thanks!

uncut viper
#

(assuming you mean for mod making purposes. the game itself is C#)

magic tide
#

Yeah cause I'm interested in modding mcdonalds

old edge
#

I'm making lava

oak dragon
#

Q:What is difference between GameLocation.displayname and .uniquename?

unkempt bluff
#

How hard would be to when making a none realistic fantasy firearm mod based on the Archery mod to also do stuff like allow Pierre (the town seed seller everyones hates) or any specific to sell diferent NPC to sell firearms blueprints?
https://www.nexusmods.com/stardewvalley/mods/16767

Nexus Mods :: Stardew Valley

A framework which allows mod authors to create custom range weapons, ammo and related recipes.

faint ingot
#

I shot myself in the foot by making overly complicated NPC schedules and now it is taking forever to test them

unkempt bluff
faint ingot
#

like just because your house has a kitchen doesn't mean you have to stop at the coffee maker then the fridge then the kitchen table (after you shower and change out of pajamas)

unkempt bluff
#

Oh

#

and using wierd components that are not realistic as crafting components, but force the player to do more than just buy a nlueprint and mine metal?

#

Like the rusty gear and farming machines you can craft

faint ingot
unkempt bluff
#

Im waiting for a steam discount

faint ingot
#

OK seems like a lot of work to make a mod when 1.6 players can't use it though

unkempt bluff
#

But it could be fun to make?

#

I know stardew valew is not COD

#

And thats good

silver sand
#

🧏‍♂️🤫

unkempt bluff
#

Could a handmade cowboy action revolver have less lack of lore friendliness than a regular modern firearm?

silver sand
#

Gotoro has firearms

#

The game is in fantasy 90s

#

Firearms do exist

unkempt bluff
#

So acording to stardew valey lore firearms exist.
But they are iligal as a civilian tool and so well regulated that nobody has them?

pine elbow
#

I don't think CA thought that much about it

unkempt bluff
#

Some mods ad stuff like old west-ish revolvers and overpriced ammo.
But its not canon by the slightest.

faint ingot
#

you do use a pistol in journey of the prairie king

unkempt bluff
pine elbow
faint ingot
unkempt bluff
#

thers also a male blond NPC that went to war and has some trauma

#

By hes clotes I supose they dont use swords and slingshots as army weapon

#

But mods are here just to be fun 🙂

#

So 18 round semi auto AK time

pine elbow
#

My modded NPC is a war vet as well

faint ingot
#

whaaaat mine too

pine elbow
#

Awesome sauce! Can I hear about them?

faint ingot
#

adding a sheriff (above) and police officer. short version is he lost his arm in the war, and comes to pelican town with the daughter of a war buddy to reopen the sheriff's office

#

and just maybe put some local fraudsters behind bars

pine elbow
#

I love him. Do you think he and my npc would be drinking pals?

faint ingot
#

cheers

pine elbow
#

I love him!

faint ingot
#

lol thanks what's your mod? is it published?

unkempt bluff
#

Its possible to use items aded by mods as crafting ingredients in said mod?

pine elbow
faint ingot
#

oh awesome I've seen your stuff in the art channel just never knew the explanation

vernal crest
#

I have never actually known the explanation for Margo either haha

faint ingot
#

I love the cane

vernal crest
#

(Also Sage, do some writing as well so you don't leave all the writing to the end again and get stuck again!)

pine elbow
pine elbow
vernal crest
#

I am trying very hard to intersperse my drawing in between everything else so I don't end up with just a bunch of art to do to finish Hiria and then give up forever lol

livid kite
#

I usually do the drawing part as a reward when I complete Reyla's i18n for that day/week. It really makes it fun and gets you motivated

vernal crest
#

That makes sense if you enjoy drawing!

#

I like the coding the most so my treat thing is figuring out a new way to break things SDVkrobusnaughty

livid kite
#

Lol I mean Reyla has 12 different outfits!

pine elbow
vernal crest
#

Yayyy I love NPC outfits!

#

Well, I love NPC outfits that other people make. It's so stressful for me doing it. Clothes are so hard!

livid kite
#

Ooooo breaking things is part of the fun too when it comes to modding!

#

I find the outfits to be the easiest, it the spite part that tends to get me

pine elbow
vernal crest
#

The blues and greens suit her so well too and her hair colour is gorgeous so it's a win-win as far as I am concerned!

#

I get so frustrated at how borked Hiria looks in her sprites so I open up some vanilla sprites to see how to fix her and then go "ohhh they're worse so actually her sprites are fine" haha

livid kite
#

Lol i remember trying to put a lot of detail in her sprite work, but found that making it simplistic works the best

pine elbow
#

You gotta find that good balance

#

And you gotta remember that the portraits exist too

#

So they'll be your intricate detail

livid kite
#

I make sure Reyla goes all out in her portrait

pine elbow
#

I love her sm

livid kite
#

This is her second spirit eve outfit I just finished this week

#

Thank you! ☺️

#

She does have a beta if your interested in having her in your game. You can find it in the East scarp server.

faint ingot
#

I enjoy sprite work but I'm bad at portraits which is why I haven't done winter outfits or sprits eve for mine : (

pine elbow
pine elbow
livid kite
pine elbow
livid kite
oak dragon
boreal fern
#

got my first smapi mod running. now onto the slightly more involved task of reworking DialogueBox

pine elbow
oak dragon
#

If somebody wants to look at my code I will apreciate it really. I always write many comments in my project(even if nobody will visit)

vernal crest
#

I literally have comments like "This was copied from DestyNova's dynamic tokens" or "Pooh suggested I do this" in my files because I am a magpie for json lol

oak dragon
#

My point is that if you can find the source code, then you can assume that the author allows you to see even copy it , otherwise there is no point in OPEN SOURCE

vernal crest
finite ginkgo
pine elbow
#

It's not even like a "my code is precious to me so it must be for others" kind of thing. I guess for me it's kinda like looking through someone's purse? The feeling of it, anyway. Idk I'm just weird ahah

vernal crest
oak dragon
brave fable
vernal crest
brave fable
#

DisplayName is a translated title for the location for players to view, and Name is otherwise the usual ID for each location

finite ginkgo
brave fable
#

oftentimes you'll want to refer to a location by NameOrUniqueName

vernal crest
livid kite
#

Oh blueberry! I wanted to say that I'm a big fan of your mods! That you for making such great mods! 😀

pine elbow
#

Man I missed how tightly knit and kind this community is,,,

brave fable
#

thank you! it's nice to know people still like my dumb stuff haha

finite ginkgo
#

(we'll always love your dumb stuff)

oak dragon
oak dragon
oak dragon
velvet narwhal
pine elbow
velvet narwhal
#

my templated github? go learn from that, i cleaned that up and separated things as a learning tool, my ACTUAL published mods? please no, please don't look at it

vernal crest
oak dragon
pine elbow
velvet narwhal
#

i even put tree framework in there last night cause i was like, "yknow this is useful"

finite ginkgo
#

Totally not speaking from experience

velvet narwhal
finite ginkgo
#

If not for me copying how Desty organized sns my npc mod would've been a mess too

oak dragon
#

yep I havent touched too .I can only touch warm laptop screen

pine elbow
#

I'm not smart enough for c# 😵‍💫

finite ginkgo
oak dragon
#

I've only been using it for a few weeks, and my feeling is that it can be called Cjava as well (just joking

vernal crest
velvet narwhal
#

!anyonecancook

ocean sailBOT
#
royal stump
#

(my first mod is 95% partial class ModEntry, which is similarly very bad SDVpufferlurk)

finite ginkgo
#

(esca no--)

royal stump
#

the stuff that needs to not be in ModEntry is a mess as a result
(and reflection/Harmony is weirder for the people patching it, etc SDVpufferdizzy)

velvet narwhal
#

for my first c# to be a karaoke framework, i can just shove everything into modentry and then a minigame.cs right-- /j

finite ginkgo
#

(at least you're not loading the same asset over and over every tick (sometimes twice))

velvet narwhal
#

(i will have to actually think about the midiparser and how /i'm/ going to read it to game but that is, uh, a very later problem)

finite ginkgo
#

(I really need to move that function out of Tree.draw and FruitTree.draw and use AssetRequested/AssetInvalidated to cache the data instead)

velvet narwhal
#

on that note, would it be a pain to have it also be attached to a separate instance of the v16_Shadows for wild trees? if not then i'll just deal with the spiky shadow and not care
apparently not in there it's time for me to dig

lucid mulch
#

If it's a pipeline asset, loading it every tick isn't that bad as it's internally cached by smapi anyway

#

If it's modcontent, less so...

finite ginkgo
#

Oh I'm also loading two different Texture2Ds every tick too-

#

(sometimes 4 if there's a tree and fruittree)

boreal fern
#

do methods patched with harmony have to be static?

harmony.Patch(
  original: AccessTools.Method(typeof(DialogueBox), nameof(DialogueBox.receiveLeftClick)),
  postfix: new HarmonyMethod(typeof(ModEntry), nameof(ModEntry.DialogueBox_receiveLeftClick_Postfix))
 );
lucid mulch
#

The original method doesn't, the prefix/postfix/transpiler/finalizer does

velvet narwhal
#

SDVpufferflat it's cursors nevermind it's cursed

oak dragon
#

true like by a witch

frigid hollow
#

How do i add a drop to a monster's loot pool? All i'm managing now is to replace it entirely

velvet narwhal
#

are you using entries or are you using fields

frigid hollow
#

fields bc i can't figure out how to format entries

velvet narwhal
#

oh it's a freakin

#

okay you'll probably have to use the textoperations

#

one sec i'll repurpose my gifttastes

#
    "Action": "EditData",
    "Target": "Data/Monsters",
    "TextOperations": [
{
    "Operation": "Append",
    "Target": [ "Fields", "MONSTERNAMEHERE", "6" ], //field 6 because that's where the drops are at
    "Value": "<ITEM ID> <CHANCE I.E. .7>", //space delimited
    "Delimiter": " "
},
]
}```
frigid hollow
#

hell yeah thanks that works

lone ice
#

Good morning, does anyone know how to set mail to appear upon completion of a quest? (preferably 3 days later)

#

In looking at Data/Quests it doesn't look like there's a spot to specify setting a mail flag upon completion

tiny zealot
#

the game automatically generates a conversation topic when you complete a quest. you can use a trigger action to check for that topic and add the mail

lone ice
#

ooh okay thank you!

tiny zealot
#

the topic looks like this:
Game1.player.autoGenerateActiveDialogueEvent("questComplete_" + (string)this.id);
so, questComplete_<your quest id>

lone ice
#

Perfect, thank you

tiny zealot
#

you can do two days pretty easily by using the memory_oneday version, setting your trigger action for the morning, and adding the mail for tomorrow

#

if three is really important you might have to chain actions to get the extra day

#

or maybe there's another way i'm not thinking of

lone ice
#

3 days isn't important

lament gulch
#

hey guys. Is there something similar to the addCraftingRecipe (basegame) Trigger in ContentPatcher

#

cause using addCraftingRecipe doesnt seem to work

rancid temple
#

Are you trying to add a crafting recipe through a trigger action?

lament gulch
#

well I want to add a crafting recipe during an Event

#

like with the unlock of the furnace

rancid temple
#

!json I don't really do event scripting but if it's a format issue maybe I can spot it

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.

lament gulch
#

oh my mod is already on nexus gimme a sec

#

choose the hard version

#

the normal version just unlocks it with farming 8

rancid temple
#

You didn't name your crafting recipe key {{ModId}}_AgeingMachine

velvet narwhal
#

addCraftingRecipe AgeingMachine should be the syntax

rancid temple
#

It's just AgeingMachine but your event is trying to get {{ModId}}_AgeingMachine

lament gulch
#

ohhhh

vernal crest
#

(Also FYI but event IDs do not have to be numbers, they can be strings.)

lament gulch
#

cause if you use addItem i used it with the {{ModId}} and it still gives me the item

rancid temple
#

That's because your big craftables item id is with {{ModId}}

lament gulch
#

yep works now

#

I didnt find anything about that in the documentations though

tiny zealot
#

(you should use the version with {{ModId}} in both places, and not just AgeingMachine)

lament gulch
#

if I do it with {{ModId}} it wont work

rancid temple
#

Didn't find anything about having to use the exact keys you established?

lament gulch
#

it needs to be done without

tiny zealot
#

broadly speaking, you should prefix all your stuff with {{ModId}} in every place that the game lets you, which is almost all of them

rancid temple
#

You should change your crafting recipe to have ModId is what ichor means

#

And then call that in the event and anywhere else you need to use it

tiny zealot
#

they have to match. you should use the ModId one, because it guarantees no collisions

lament gulch
#

so I just copied from the games code

rancid temple
#

I mean, the event page has it on there but it's not robust or anything

tiny zealot
rancid temple
#

Like most of the event page, there's way too much to cover and not a lot of examples

lament gulch
#

i dont remember anymore

vernal crest
#

It is not explicitly stated that you have to use the exact key but it is assumed because how else is the game going to know what you're referring to?

lament gulch
#

i made the mod a few month back

rancid temple
#

The idea of using the exact key you establish is not specific to events though, that's a general CP thing

lament gulch
#

and didnt notice the issue

#

someone on nexus pointed it out to me

rancid temple
#

Like you can't give something the wrong name and assume it'll work

#

Really, it's generally true in everything code based

lament gulch
#

yeah

rancid temple
#

Console commands are cool in that they have a lot of fuzzy search stuff going on

lament gulch
#

I might have as well already solved the problem

rancid temple
#

But I have no idea how you do that and it wouldn't really be feasible in most places

lament gulch
#

but with me having had two copies of the mod I sometimes changes variables in the wrong version

rancid temple
#

Config settings might have been a better way to go

lament gulch
#

yeah

vernal crest
#

I love config settings. I considered making my Sialia update contain an optional file for the standalone sprite replacement but I did not want to deal with that so config to the rescue.

lone ice
#
{
  "Action": "EditData",
  "Target": "Data/TriggerActions",
  "Entries": {
    "{{ModId}}_PUDDINGSHOPOPEN": {
      "Id": "{{ModId}}_PUDDINGSHOPOPEN",
      "Trigger": "DayStarted",
      "Condition": "PLAYER_HAS_CONVERSATION_TOPIC Any questComplete_{{ModId}}_PUDDINGSHOP",
      "Actions": [
        "AddMail All {{ModId}}_PUDDINGSHOPOPEN tomorrow"
      ]
    }
  }
},```
#

For some reason this isn't actually ever triggering mail; anyone know what I'm doing wrong?

#

(the mail does exist, I checked)

rancid temple
#

Does that flag correspond to an entry in Data/mail?

lone ice
#
  "Action": "EditData",
  "Target": "Data/Mail",
  "Entries": {
    "{{ModId}}_PUDDINGSHOPOPEN": "Dear @,^^ Please join us for the grand opening of Charlotte Chocolat in the cottage by the sea, Stardew Valley's first chocolatier! Store hours are from 9am to 5pm. Please enjoy this free sample! ^^ Sincerely yours, ^ Pudding %item id (O){{ModId}}_Chocolate 1 %%[#] Pudding Store Opening"
  }
},```
rancid temple
#

What about the entry in Data/Quests?

lone ice
#
   "Action": "EditData",
   "Target": "Data/Quests",
   "Entries": {
     "{{ModId}}_PUDDINGSHOP": "ItemDelivery/Pudding's Chocolate Cravings/Pudding wants you to bring her some cacao pods for a special project./Bring Pudding 10 cacao pods./Elliott {{ModId}}_CacaoPod 10/-1/3000/-1/false/Wow, you really did it! Wait a few days and I'll show you what I can do with this."
   }
 },```
rancid temple
#

You're sleeping twice after completing the quest?

lone ice
#

yep

rancid temple
#

Did you try on a new save? Or try making sure the trigger action wasn't marked as complete before completing the quest?

#

Nothing is jumping out to me as wrong...

tiny zealot
#

are you able to view the mail itself with debug showmail <mail id>?

#

i know the mail asset is Data/mail but i am constantly forgetting when case matters, because mostly it doesn't until

lone ice
#

Let me try on a new save file

velvet narwhal
#

(and double checking, if you have these as separate jsons, have you included them?)

lone ice
#

Yeah so it works, I just needed to use a totally new save file to be sure

rancid temple
#

Your other save likely had the trigger marked as completed before you had it tied to the quest properly

royal nimbus
#

anyone know if there's a mod to where u can test animations? like things some npcs do during certain seasons and what not?

pine elbow
royal nimbus
#

i guess. i just feel like it'd be quicker and more convenient.

pine elbow
#

Just have em move to stand beside their bed at 6:10 and watch

#

It's tedious but there's no mod as far as I know

royal nimbus
#

alright

oak dragon
#

Made a stupid mistake. In receiveleftclick, among many if...else if, I forgot one else, which caused check twice when click once. And then very confusing bug appeared...SDVkrobusnaughty

faint ingot
#

Tried to get my NPC to sit in the saloon and this happened? not sure why the chair clips like this

pine elbow
tiny zealot
#

not much you can do besides have them sit somewhere else. the layering on sittable tiles is generally not fun for NPCs to use, which is why there are bushes behind the benches near the saloon (so you can't walk behind them and discover that they're not layered for you to walk behind)

round dock
#

question, ichor, in the event mod i’m doing rn, i wanted them to take a seat after certain dialogue, i found the sitting sprites for both the farmer and the NPC, would the layering look awkward too? i’m tryna do it at gus’ priv room like at Alex’s 10 heart

tiny zealot
#

if you're using the same spot as that event, it will probably be fine

round dock
#

vanilla event alr has them sitting so idk if i can pull it off to have them, say stand at a certain event then sit at the chairs without making it look awkward bcat_stare

#

i figured i could just do away with having them sit automatically as the game starts so i don’t have to worry too much but

finite ginkgo
#

Reject logic, make them shoot up into the sky, smoke effect and all, and then land sitting down on the chair /j

tiny zealot
#

you can "animate" them sitting down with showFrame/positionOffset but it rapidly becomes janky

faint ingot
#

nah I'd win

tiny zealot
#

i did some shenanigans for Lacey's 10-heart event so you can both sit on her couch, you are free to crib from that if it's helpful

#

not perfectly analogous to what you're doing but i did animate her jumping into the seat

round dock
#

SBVSob may i please, i’m still working on glh rn but i’m getting my butt working on the event mod when i get extra time

#

thank you, ichor SBVCute

tiny zealot
#

you can ignore the bespoke event commands, that's some of the shenanigans i was talking about

calm nebula
#

Realistically can you make an npc jump and travel at the same time

#

I like shenanigans

tiny zealot
#

i adore shenanigans. i'm always getting up to them

round dock
#

i shall link this to my thread so i can look at it again when i go back to fix my code SBVCute thank you!!

drowsy pewter
#

ca could fix the furniture layering issues if he just rendered the game in 3d

tiny zealot
#

key thing to remember is that each event command takes one frame to do (unless it blocks, like move), so chaining instant commands like positionOffset one right after the next gives you animation at the game's framerate

unique sigil
#

spent 30 mins wondering why floors and wallpapers wont apply to this room i made only to realize i put the floor/wallID tile datas in the wrong layer

#

this is why i should NOT be working on maps at midnight

finite ginkgo
#

(to be fair my timing also was "while NPC is in air during this big jump, walk 1 tile right and then 2 down while falling so I had pretty loose timing)

tiny zealot
#

mine, linked above, is fairly smooth, but it's not a "real" jump. i was trying to more or less replicate the timing of when the farmer sits on chairs

finite ginkgo
#

If you timed it right you could also get it with a real jump and either move, advancedmove or positionoffset, but if your current solution works, then why change it

royal nimbus
#

this is adorable but he's positioned weirdly. not sure if its due to my mod xD

floral canyon
#

hi guys, does anyone know or remember if the game has some sort of openable object with random stuff inside? Like a geode without needing to use geode crusher. like a gift package?

#

i havent played the game since umm 1.4 so i don't remember or know stuff 😅 just making mods

finite ginkgo
#

Technically the volcano mine chests I suppose?

velvet narwhal
#

SDVpufferthink in inventory I don't think there's anything like that unless you count the fishing treasures

hazy kayak
#

hi

floral canyon
#

okay hmm the treasure chest doesn't have anything in it's object data so i guess the only thing i can use is geodes. but for my mod where i would have like suprise parcels it doesn't make any sense clint is opening them at the forge 😆

velvet narwhal
#

(You can kinda get away with it being a letter? But then it doesn't have that brain tingle of opening a box)

floral canyon
#

can object be an openable letter?

velvet narwhal
#

Well it'll be a random set of items in said letter

unique sigil
#

test decorating done!! now that i've got the hang of this i can move on to making the rest of my planned layouts SDVpuffersquee

velvet narwhal
#

That the game only picks one, unless you specify a multiple

floral canyon
#

but can letter be an object? I need it to be an object 😅

#

an object that can be opened

velvet narwhal
#

I'm pretty sure even qi's boxes are only openable through Clint I don't know if those can be replicated in cp though

uncut viper
#

you could maybe use Secret Note Framework to make secret notes that look like little parcels that have items in them

floral canyon
#

yeah they are. they are basically just geodes

uncut viper
#

i think secret note text allows you to use the usual item commands like you would in mail but theres likely not gonna be a spot to draw the item, but even if not you can run trigger actions upon opening the secret note to give items too

tiny zealot
#

SDVpufferlurkhmm. could you do this? i've never tried putting an item in there

#

oh of course, the triggers! derp

uncut viper
#

i have vague memories of finding out that secret notes can take commands like that when i was messing with the mail code for BETAS but i could also be making it up too

#

but yeah the triggers would also work

tiny zealot
#

technically secret notes are mail with a different name. i fear you'd either not get the item, or get it every time

uncut viper
#

secret notes just open up a LetterViewerMenu iirc which does parse those commands ofc bc thats what mail uses. but again its been a lil while

floral canyon
#

so from the mod page it seems like i can have actual objects that open these notes. seems promising

uncut viper
#

they work like the vanilla secret notes, which were the only vanilla thing i could think of that lets you "open" them off the top of my head

#

(ichor here is also the person who made it so. he's the expert here)

tiny zealot
#

if you do use SNF, you can set requirements for the note to be available to spawn, but you can't change the actions that spawn them (fishing, fighting, hoeing, mining, and cutting trees)

floral canyon
#

ah okay so no objects. aww well

uncut viper
#

a Secret Note is just an Object anyway right? like the note itself

tiny zealot
#

yeah, you can definitely make your own object

uncut viper
#

if you make it so that the notes requirements to spawn are impossible or are never true, you can just spawn it yourself via other means

#

i assume?

tiny zealot
#

oh, button makes a great point

floral canyon
#

ah okay now i understanf

tiny zealot
#

truthfully i'm not sure it's a great fit for random loot boxes

#

i would tell you to look at (airyn's?) mod that added joja loot boxes but i'm pretty sure it's hidden rn

floral canyon
#

it's the best so far 😅 i mean i guess if the vanilla game uses clint as a letter opener i shouldn't think about it too much :

uncut viper
#

maybe not the greatest fit, but it should work i think if theres nothin else and the act of "opening" the box is critical

#

unless ofc you were fine with doing some C# work yourself

floral canyon
#

basically it just feels silly to use clint to open a literal letter 😂

velvet narwhal
#

Spacecore maybe?

#

Vanilla item extensions? I can't remember anything off the top of my head except totem warp though so gimme a sec

uncut viper
#

if you just want the object to disappear upon opening you could use spacecore for that

floral canyon
#

so with spacecore you can have openable items?

uncut viper
#

i think at this point it would be best if i asked what exactly you mean by "openable item," like what are your requirements here

velvet narwhal
#

UseForTriggerAction - True to run a trigger action upon use, false otherwise. Default false.

#

Yeah I'm trying to figure out how you want these items to spawn then I'd have a clearer idea

floral canyon
#

i have letters/parcels that my pigeons drop. i would like to have them openable with some loot SDVpufferheart

uncut viper
#

but like when you say openable, do you mean you want a menu/screen to appear to show you whats inside? or do you just want to be able to right click while holding them to gain an item?

#

do you want to be able to close them with the items still inside after?

floral canyon
#

just open and pop theres items is enough, i just dont want to take them to clint 😢

#

so click and gain is good enough

uncut viper
#

then yeah, SpaceCore can let you run a trigger action when trying to use any item you want

tiny zealot
#

yeah spacecore is probably the way to go here

floral canyon
#

amazing SDVpufferparty

uncut viper
#

i assuemd you wanted it to come with a letter viewer like a parcel which is why i suggested SNF and also bc i think SNF deserves more use

velvet narwhal
#

Does Casey have a spacecore command

finite ginkgo
#

I don't think so

tiny zealot
floral canyon
uncut viper
#

eventually it will be me if no one else gets to it first

velvet narwhal
#

I will use snf for my expansion because it's gonna be a lengthy story questline

tiny zealot
#

i'll probably use it for mine, too, if i ever make it

finite ginkgo
uncut viper
#

the letters thing wouldnt actually be much more work, just a creative use of a framework meant more for something else

floral canyon
#

i guess i can weight these options. and go crazy and do both

uncut viper
#

besides the fact that you'd then have to, yknow, write dialogue for the letters. thats work SDVpuffersquee

velvet narwhal
#

The trigger action itself can have the letter sendout so it won't be a hassle

uncut viper
#

in this case its not a literal letter its a secret note

#

the letter would be opened when you read the secret note

#

and the secret note item would just have a custom texture to look like. idk. a box or something

#

(i mean i say not a literal letter but the game considers them kinda the same thing but you know what i mean. its not going in the mailbox)

floral canyon
#

yeah that's what i thought 👍 thanks for clearing it up though

uncut viper
#

it does make me kinda wanna make a custom loot box framework now though

calm nebula
#

Isn't that geodes lol

calm nebula
#

Or you could male a machine

velvet narwhal
#

Add field for sfx too please

calm nebula
#

Like

uncut viper
calm nebula
#

What are the qi box that isn't a loot box

floral canyon
#

well you need clint for those

uncut viper
#

they are lootboxes. but birdb didnt wanna have to go to clint

calm nebula
#

Why the Clint hate lol

uncut viper
#

which i can understand. i also dont want to have to go to clint if i dont need to

#

he closes too early

calm nebula
#

Skill issue

finite ginkgo
uncut viper
#

i dont think its hate its just why make it so that Clint is required for every goodie bag a mod wants to add, yknow

calm nebula
#

Because loot box is immersion

finite ginkgo
#

Obviously

velvet narwhal
#

That would solve pau's problem of having a random cake box

calm nebula
#

Make ot charge real money for immersion

finite ginkgo
#

Have you never played a real life so many loot boxes there /s

uncut viper
#

imagine if every time you left a party with a goodie bag you had to go to your local blacksmith to get it open

floral canyon
#

no comment on clint hate but it literally means that the farmer is not even able to open a letter 😆 rather not have something so silly in my mods

calm nebula
#

A box labeled "cremated remains" showed up at the office yesterday

finite ginkgo
#

A loot box, see? And no need for Clint to open it

velvet narwhal
#

I am reporting tedi for my grotesque laughter in this parking garage

#

Wouldn't you be able to expand on spacecore's vanilla object extension and just add the dictionary like how data/char winterstargifts has?

uncut viper
#

random goodie bags (which dont even need to be random. the framework wouldnt control how you delivered the loot boxes) arent any less immersive than randomly finding clothing or furniture or notes in trees anyway

calm nebula
#

Tbh

#

That is a .16 additional I don't like

#

How is this shirt in this tree

#

Which teenager put it there

velvet narwhal
#

How'd this couch get in this tree??

calm nebula
uncut viper
#

a wah

#

i18n randomization

floral canyon
#

i thought fishing wall baskets was weird enough

finite ginkgo
#

We literally saw Qi fly a plane and drop lootboxes down on the whole world or smth, Qi likely put the shirts and couches there too

velvet narwhal
#

I think flat randomization could do it too? $action addItem {{Random:objects here delimited by commas}}

round dock
#

(also Avi can you teach me how to randomize my dialogue if I have three Fri6s but for that mod exclusive dialogue later)

uncut viper
#

oh yeah

#

thats what i meant actually

#

idk why i said i18n

velvet narwhal
#

I am poisoning your mind with i18n

finite ginkgo
velvet narwhal
#

If it's a trigger action then pinned random?

calm nebula
#

SMe jssue

#

Update rate

uncut viper
#

(atra was replying to the msg abt the framework anyway in which case its moot bc it wouldnt need to rely on the vanilla action anyway)

calm nebula
#

You could add the action to betas

uncut viper
#

i could, or make a tokenizable for it

finite ginkgo
#

Wish you could use item spawn fields for addItem

uncut viper
#

i was considering it

velvet narwhal
#

You're already giving it the footgun

uncut viper
#

tho i guess i cant use a tokenizable string for it bc vanilla actions cant handle those

calm nebula
uncut viper
#

so id need a custom action anyway

calm nebula
#

Could make an asset for it

#

Spawn group or something

finite ginkgo
uncut viper
#

tbh im not saying you're wrong but i think if i, personally, was going to do something like that id just spin it into the aforementioned loot box framework instead

uncut viper
#

(if i made a whole asset for it i mean. addRandomItem like EnderTedi said is what i was thinking of instead)

calm nebula
#

Creeping up upon you

brittle pasture
#

I feel like we can use the built-in GeodeDrops field and just add a context tag that allows Hulk smashing by hand

uncut viper
#

dont call it that

#

but also you'd still need a way to have it count as like, a usable thing

lucid iron
#

can it be like

ocean sailBOT
#

@lucid iron You leveled up to Rancher. That's level 250. Woot!

lucid iron
#

addItemQuery

brittle pasture
#

(changed)

uncut viper
#

how did chu beat me to 250 smh im slacking

lucid iron
#

go away governor u cant make me touch grass

next plaza
finite ginkgo
#

I mean clearly not you've got level 250 that's like at least 125 hours or talking

next plaza
#

(Let's ignore my level...)

velvet narwhal
#

(I live in the desert there's no grass here /j)

next plaza
#

(1156 for thecurious)

finite ginkgo
#

Hey Casey you wanna talk about that

velvet narwhal
#

I'm waiting for the spacecore command when you're done with your website SDVpufferwoke

finite ginkgo
#

(I would stay and talk about it but I'm literally boarding a plane right now and will be going offline in an undetermined amount of time)

tiny zealot
#

avi you can probably make the command yourself if you're impatient

next plaza
#

Minus a couple hiatuses

velvet narwhal
#

I just don't feel like I should touch others mods with commands SDVkrobusgiggle

next plaza