#making-mods-general

1 messages · Page 89 of 1

brave fable
#

bird appears if no item is in nest, item is traded overnight, question mark appears until item is claimed
re-entering location respawns bird unless any item is in nest

woeful lintel
#

well, she's canonically a hawk, not a crow despite the fan name

velvet narwhal
#

💯 i did not even realize it wasn't the normal crow sprite, if you've animated it yourself, would there be a way to make it erratically flap for a few seconds up until the player finally comes up to it and it'll fly away?

#

that would be my tell that i need to click the stump cause that ain't normal bird behavior

brave fable
#

actually it's the LooseSprites/Birds crow rather than the Monsters/Crow haha

lofty ruin
#

Is there a way to animate dialogue text?

brave fable
#

i think these lil guys appear in the movie theatre

tiny zealot
lucid iron
#

The smaller cuter crow

brave fable
#

yea this location originally had just 2 big custom crows but then i found the baby crows and now they're everywhere lol

lucid iron
#

What r ur top 5 birbs

quaint moss
#

Excuse the ping, but as a Lacey enjoyer, I absolutely must ask: Would you ever consider adding a key for CP mods to add their own hat dialogue to her?

haughty charm
velvet narwhal
#

looks at bluebs

uncut viper
#

yeah i think blueberry did do some fancy bouncing text right

brave fable
#

birds are great, hard to choose - lorries, crows, jays, wood pigeons, robins

tiny zealot
brave fable
#

i did wavy/shaky text but it's not public or published

lofty ruin
velvet narwhal
#

wasn't it transpiler crimes

brave fable
#

you just need harmony and some other weird stuff

velvet narwhal
tiny zealot
uncut viper
lucid iron
#

Yoll the eurasian eagle owl my beloved

haughty charm
brave fable
#

yeah animated text does actually need a slightly ridiculous transpiler and a controller and a couple of trigger action methods

#

and the rest of the owl

#

it's not the worst, but it's not great

lucid iron
#

I like bin chickens (ibis) but that is probably because I don't live in Australia

brave fable
#

you'd like ibises more if you heard them. they honk

#

i didn't think they'd honk

velvet narwhal
#

ravens, vultures, parrots, owls, penguins SMCKekLmaoDog

lucid iron
#

Corvid supremacy DokkanStare

tiny zealot
#

oh you know what, the loon can probably unseat one of the unspecified owls on my list

velvet narwhal
#

when i lived in oklahoma my aunt hat a pet vulture so obviously i'm biased

brave fable
#

this bird i like ^

tiny zealot
#

loon: weirdass extremely heavy ancient bird that sounds like a ghost. A+

lucid iron
#

No particular order
Sulfur crested cockatoo
Night Heron
Rose ringed parakeet
Common Loon
Eurasian coot

haughty charm
#

American Woodcock, Superb Bird of Paradise, Hummingbirds, Blue (or Red)-Footed Boobies, Penguins

velvet narwhal
#

were you adding more birds to ornithologist or something

brave fable
#

oh i'm sure it was just another sneaky chance to post off-topic SDVdemetriums

haughty charm
hard fern
#

SDVpuffersweats why do i get ideas for more npcs when i havent even finished the first

velvet narwhal
#

we've done it folks, we got a mod to go off-topic

#

here i bring it back around

haughty charm
#

SDVpufferwaaah I fell into the trap!

uncut viper
#

instant demotion

haughty charm
velvet narwhal
#

my two bird npcs are based on chihuahuan ravens SMCKekLmaoDog

lucid iron
#

Birbs

haughty charm
#

oh wow

hard fern
#

maybe i'll dig up my old scrapped npc 🤔

brave fable
#

it's impressive but they also don't look much like chihuahuas

velvet narwhal
#

oh they're quite small in game

#

ichor begs for more anthro npcs, i bring out my bird obsession

tiny zealot
#

i always love to see non-humans

hard fern
#

🤔 if i plan to go all in with making npcs maybe i should just make a base for them to all hang out

#

aka: i stick them all in the void

#

oh, and my question from... yesterday that i fell asleep before asking.... is it possible to put quotation marks inside of a dialogue line?

uncut viper
#

yes, just either escape them or use single quotes for your outer quotes instead

brave fable
#

sure, just use \" wherever you'd use " (this is escaping them)

hard fern
#

a

vernal crest
hard fern
#

i forgot about those

uncut viper
#

"This is how \"you\" can write quotes in dialogue."
'This is "another" valid way to do it.'

vernal crest
#

If you do the second way you'd have to escape your apostrophes I imagine.

uncut viper
#

correct

hard fern
#

SDVpufferpensive how do i do a quick question again, i forgot...

velvet narwhal
#

in what?

hard fern
#

in dialogue

velvet narwhal
#

@ aba

#

iirc it's a mix of $q and $r

vernal crest
#

No a quick question in dialogue is $y

#

Example: Penny: "$y 'Breakfast?_Yes please._Here you go._No, I'm good_More for me then!'"

velvet narwhal
#

and this is why i don't do dialogue commands SMCKekLmaoDog

vernal crest
#

It repeats every time the dialogue is played, can't be used for $p commands, and I don't know if you can do $action inside them to set a mail flag.

#

But I do know from Nova last night that you can put $v inside $y

uncut viper
#

you could probably just put the action first right

vernal crest
#

No I mean to set a mail flag based on which answer was chosen Button

uncut viper
#

or does $y have to be the very first thing in the dialogue line

#

ahh

hard fern
#

do the regular questions still need numerical IDs? i know events got changed to allow non-numbers but idk about questions

vernal crest
#

Sorry

#

No, $q questions do not need numerical IDs

#

See example

#

Sorry it's a screenshot

hard fern
#

oh, thanks

#

🤔 npc modding is so much easier now i feel

velvet narwhal
#

i would use, but i have a feeling i'll get lost in my own syntaxing and forget what i've done

vernal crest
#

I don't really use $y because I did so much delving into $q for my nested questions tutorial that I'm comfy with it

#

But I bet there's lots of space for creative use of $y that I would enjoy exploring if I didn't feel so blah right now

hard fern
#

...am i allowed to put a question in a conversation topic SDVpuffersweats the player is likely never gonna see this line again

velvet narwhal
#

i mean sure why not

#

i stuck a whole event in a random chance dialogue that's hidden behind several #$e#

vernal crest
#

You're allowed to do anything you can make the game do lol

#

That's part of the fun of modding

hard fern
#

🤔 the "question_old" thing is never gonna be seen but

brave fable
#

'arbitrary game bs' is usually a good reason why not

vernal crest
#

If the CT ensures the question will never be seen again anyway you might find it easier to just go with $y

hard fern
#

i was debating... bc i want relationship changes

vernal crest
#

Ah then yup stick with $q

#

Again you might be able to shoehorn relationship changes into $y but it's built-in to $q

#

I am going to test action inside of y

hard fern
#

(im writing this one, completely arbitrary line of dialogue for me and me only SDVkrobusgiggle )

velvet narwhal
#

make mods for you and you alone, and you'll always feel fulfilled

vernal crest
#

My mods are just for me! (And anyone who gets invested and I want to put easter eggs in for haha)

brave fable
#

huuh what's the third row of bushes in tilesheets/bushes

#

that could pass for an azalea

uncut viper
#

i love when my IDE just randomly decides to say that things don't exist anymore and fill my files with errors without rhyme or reason until i restart it. like yes thank you maybe you're right, maybe Game1.player isnt actually a thing anymore as of 30 seconds ago

vernal crest
brave fable
#

ingame haha

teal bridge
#

That's never happened to me. You've got some bad juju.

brittle pasture
#

just some rando decorative bushes, no other in game uses

brave fable
#

from where though? i'm sure i've never seen them (although they're in sdv1.4 hmb)

teal bridge
#

Oh but this is Rider isn't it?

uncut viper
#

it is Rider yes

woeful lintel
vernal crest
#

I have seen them in game but I play so heavily modded that I don't know if my seeing them is vanilla or mod-added

teal bridge
#

Yeah, Jetbrains software does that stuff. I had those issues with IntelliJ constantly.

hard fern
#

the friendship increase/decrease values, how much equates to 1 heart? 250?

teal bridge
#

Not that VS doesn't have its own issues. Just not "how did you miss that in testing, honestly" type issues.

brave fable
#

oh these bushes are all over town hahah. guess i'm just blind to them and never saw them in tiled since they're bush instances

brittle pasture
brave fable
#

weirdly they put up pink flowers in summer rather than spring

hard fern
#

bush

#

maybe they're summer flowering bushes?

vernal crest
#

They are medium bushes

velvet narwhal
#

the urge to shake

vernal crest
#

On the paths tilesheet

brittle pasture
#

those aren't flowers, those are actually juicy wild melons

brave fable
#

from a juicy melon bush..

brittle pasture
#

unfortunately we can't eat them because of Pelican Town bylaws

haughty charm
#

Is there a way to prevent farm animals from producing increased quality outputs? If I have a farm animal that "drops" ore, for example. I don't want them to drop ores in anything but the base quality.

teal bridge
#

Now I can't stop thinking of the "I SH** GOLD BRICKS" Robot Chicken sketch.

vernal crest
#

Ooh I am invested in learning this. I don't like getting iridium quality geodes from my coop animals.

brittle pasture
#

no, that's super hardcoded

uncut viper
#

theres nothing worse than asking an animal related question and then seeing selph say "you cant"

haughty charm
#

Well, I'm noticing this with Immersive Manure, too. I got the next level poo and I can't process it because I have a bunch in mixed qualities.

brittle pasture
#

FWIW high quality poo do make better fertilizer

haughty charm
#

Well, there's no real difference in Hyper Speed-Gro or Iridium Quality Hyper Speed-Gro

vernal crest
#

Nooo Selph unhardcode it SDVpufferpleading

brittle pasture
#

I'm actually looking at the code right now to see whether this is possible without throwing a couple more transpilers on top

vernal crest
#

I am kidding I am not that bothered by it (but maybe Logo is?)

haughty charm
#

By "next level poo" I mean the gold poo, too

#

I have some farm animals(?) that drop pretty high value stuff, and it's awesome enough that they can drop a Prismatic Shard, but it doesn't need to be an Iridium Quality one. SBVLmaoDog

hard fern
#

🤔 thats some next level poo

vernal crest
#

I wonder where linkoid is, they haven't been around for a while

velvet narwhal
#

yeah i saw yaml mentioned and didn't pop up, must be work?

haughty charm
#

let me Quality Smash the gold poo, please

vernal crest
#

That is a new mod to me

hard fern
#

this convo out of context is hilarious

brittle pasture
haughty charm
#

Thanks for looking into it at least, Selph! SDVpufferheart

vernal crest
#

Other mods just have to submit to yours, Selph. You are the animal monarch.

teal bridge
#

I prefer "Manure Monarch", it just rolls off the tongue.

brittle pasture
#

the Brown Baron, the Doo-Doo Duke, the Excrement Emperor

hard fern
#

the poop prince(?) sounds bad.

brittle pasture
#

anyway we should probably stop now for the sake of anyone in a dinner timezone

hard fern
#

XD

velvet narwhal
#

i think only hawaii is left in the dinner timezone

haughty charm
#

Well AUS is heading towards it, yeah?

vernal crest
#

NZ is in dinner time!

haughty charm
#

Anyway

#

Yep

velvet narwhal
#

ah hawaii's cousin

uncut viper
#

if a function generates an Item, then sends that Item to a different function as a parameter, and that second function edits that Item, will those edits persist back in the original function once the second one returns. i can never remember reference vs value passing

vernal crest
#

But Lemurkat is the only NZ-based person who comes around here that I know of

brittle pasture
#

edit, yes. not if it's reassigned to a new instance unless ref is used.

uncut viper
#

hmm. would you be able to just patch FarmAnimal.HandleStats then with a prefix or postfix to check the quality of the produce since that gets called with the produced item but before its placed on the ground, instead of a transpiler

brittle pasture
#

hmm that's kinda genius actually, do the evil deeds in another unrelated function that takes the object

uncut viper
#

trojan horse method

brittle pasture
#

though unfortunately handleStats is only called for dropped items, not milked/sheared ones
so you'd still get iridium quality ore from a hypothetical ore cow mod

haughty charm
#

They're not milked or sheared, they just drop

uncut viper
#

im surprised it doesnt do it for milked/sheared drops SDVpufferthinkblob

haughty charm
#

Oh

#

I see what you're saying, lmao

#

I'm half asleep

uncut viper
#

wait, are you sure

#

oh... the item gets added to the inventory before the stats check with the pail/shears...

brittle pasture
#

yeah there's literally no other function to hijack in the pail/shears

#

and also dig up

uncut viper
#

the pail/shears call HandleStatsOnProduceCollected tho which calls HandleStats

#

but you can also just set FarmAnimal.produceQuality in a DoFunction prefix on MilkPail and Shears

#

no clue about digging up stuff though

brittle pasture
#

oh that's new, gotta stop using outdated decompiles urgh

uncut viper
#

oh yeah i have no idea when this was added i just moved to the beta like 2 hours ago so i redid all my decomps and stuff

brittle pasture
#

(only a week old in my case. 1.6.9 moves fast)

uncut viper
#

is FarmAnimal.dayUpdate not where the dug up produce gets made too?

#

oh i guess that makes no sense

#

bc its not a daily thing

#

right

brittle pasture
#

produce quality does get set there though so I can change it depending on current produce ID

#

anyway this does seem much less a pain now, thanks

uncut viper
#

anything to give me a distraction from working on my 1.6.9 mod updates lmao

velvet narwhal
#

i was gonna ask, what else do you have left of the museum framework

uncut viper
#

uhhhhhhhhhhhhhhhhh

#

i forgor

#

im working on my books mod right now, converting all the i18n to use the new subfolders feature

#

but its a bit of a pain bc i loaded all my i18n into assets so i could use my CP translations in the C# component instead

#

so i gotta rework that

velvet narwhal
#

ah right i18n can be tokenized or something, right?

uncut viper
#

iunno what you mean by tokenized but you can have like a folder named "default" now with different .jsons inside it

velvet narwhal
#

oh, i meant the c# thing uhhhhh

uncut viper
#

the C# thing is just me loading those assets and stuffing them into a dictionary im not doin anything with tokens

#

like i am loading i18n/default/books.json into like, {{ModId}}/Translations/Books to access those strings in my C# by loading em

finite ginkgo
velvet narwhal
uncut viper
#

oh nooooo

#

man. i actually just have completely forgotten what needs to be done for museum framework though. like literally 0 clue what i was last working on

#

something about mail flags maybe

#

gonna need GSQs i know that much

velvet narwhal
finite ginkgo
uncut viper
#

apparently i also added a new book sprite to my books mod at some point? it was just sitting there uncommited. i have no idea what book i was planning either

#

if someone could tell me what i was planning with this thatd be great, thank you

velvet narwhal
#

looks like...... burnt grass

vernal crest
#

That looks artifact spot

#

The wiggy worms

uncut viper
#

im 80% sure its cut grass

#

but i dont know why

velvet narwhal
#

faster horse?

uncut viper
#

cuz ive already got an artifact spots book

#

i dont think it was faster horse either SDVpufferthink

#

cmon guys how do you not know what i was thinking when i told no one about this smh

velvet narwhal
#

someone already made a "harvest while on horse"

vernal crest
#

Little bits of grass grow up against the edges of all the buildings that don't already have them? /j

velvet narwhal
#

true, but you have at least 5 more braincells than me so i definitely cannot fathom the depths of your magnanimous brain

brittle pasture
#

...wheat fields now tickle your toes, giving you a brief movespeed burst?

uncut viper
#

apparently i last modified the file on september 11th..... maybe if i go back and search through all the messages in this channel from that day ill find something

velvet narwhal
#

that is....... so long ago

uncut viper
#

oh i did actually talk about it

brittle pasture
#

oh good, so I was 25% correct

uncut viper
#

thats better than 0

velvet narwhal
#

tickled toes

uncut viper
#

if you had asked me when that conversation was though i would not have guessed 2 months ago wtf

velvet narwhal
#

time sure flies when you're having fun

#

looks at when i posted my mod for the mod contest

uncut viper
#

thats a moth actually not a fly

velvet narwhal
#

considering uber gave me a jumpscare about me sending in a timer for 10 days about the hardcoded spouseroom 90 degree angle, i feel like i blinked and the event was over

uncut viper
#

whens the next modjam anyway

#

its been a while since we've had one

velvet narwhal
#

if it's a team modjam i'll definitely join

vernal crest
#

Nooo I need to rest

brittle pasture
#

Thanksgiving mod jam

velvet narwhal
#

too soon SMCKekLmaoDog

vernal crest
#

I literally just had to google thanksgiving to find out when it is lol

velvet narwhal
#

stardew is 8 years old, so maybe we can bang on the door for a 10th anniversary modjam, but definitely want one in 2025

vernal crest
#

Oh my goodness Stardew was released just a week before my wedding day

haughty charm
brittle pasture
#

but think of the turkeys

uncut viper
#

i just like the shared community spirit SDVpufferpensive

haughty charm
#

Yes! I completely agree.

velvet narwhal
#

i just don't want to be orange

#

i'm with selph, give us another excuse to not be cheetos

haughty charm
#

But jams/events/contests in general are a lot of work behind the scenes.

#

You can opt to remove your mod author role? Then no more cheeto dust.

uncut viper
#

doesnt need to be a lot of work if you just never set an end date for one SDVpuffersmart

vernal crest
#

I hope you all got lots and lots and lots of thanks for the Spirit's Eve event, Logo

velvet narwhal
#

true, but then i couldn't ask at any time for that private git

vernal crest
#

It was wonderful

uncut viper
#

(but also i of course understand and am very appreciative of the work that goes into them SDVpufferheart i am just jokes)

hard fern
#

i missed the halloween eventhaha

uncut viper
#

pathos's ethos is a surprisingly twisty tongue twister

velvet narwhal
#

oh, right, pathos did say tonight's beta is the last, i should re-decompile

haughty charm
uncut viper
#

squeaky!!

haughty charm
#

They're almost out of testing. Cuteduckbop

brittle pasture
#

egg

velvet narwhal
#

so many egg

haughty charm
#

22 different varieties of egg in 6 categories

hard fern
#

making my npc hate pretty much all of the ginger island recipes is pretty funny, by virtue of hating coconuts lol

#

...i am still writing marriage dialogue

#

SDVpufferflat its done enough

clever sinew
#

It’s 3 am and i am deliriously looking at recipes

#

The question is…do I actually think I can sprite any of these

hard fern
#

🤔 why is marriage dialogue so fun to write compared to regular dialogue... is it because i get to write them in full?

velvet narwhal
#

wdym write them in full

hard fern
#

like with all of their personality(?)

clever sinew
#

Like not having to hide stuff for the sake of heart events?

hard fern
#

instead of like, as only acquaintances or "friends"

#

yeah

velvet narwhal
#

i think you're the first to think marriage gives an npc personality SMCKekLmaoDog we're all of the mindset that marriage removes all personality

hard fern
#

😔

vernal crest
#

It's not a bad thing!

clever sinew
#

Listen i will never be mad at more spouse dialogue

velvet narwhal
#

no more ginger island visits, forced to follow a different schedule, patio only available on saturdays with heavy restrictions SMCKekLmaoDog

vernal crest
#

NPCs should be able to have personality after marriage

velvet narwhal
#

yeah it's good that you're adding personality into it

#

this funny function called marriageDuties is just an inside joke that it becomes a shackle

hard fern
#

my npc normally doesn't talk much, but in the marriage dialogue im using so many #$b# lol

vernal crest
#

Imagine a C# mod that just completely removed all the restrictions of marriage. It would be so hard to do, would have no compat with anything, and would break after every update...

clever sinew
#

…see this makes me think of NPC adventures and mods like that. Going on an adventure with your spouse would be awesome

velvet narwhal
#

i don't know what you mean by restrictions of marriage but that's just up to the npc maker's discretion about whether or not they add more lines after marriage through cp or events

#

there is the "spouses can visit GI" already

uncut viper
#

doesnt spacecore also have a thing to make npcs ignore their marriage schedule

velvet narwhal
#

did casey fix 0 schedules yet

uncut viper
#

i thought those were a different thing

velvet narwhal
#

0's break it iirc

vernal crest
#

The 0 schedules break the ignoreMarriageSchedule

inner harbor
#

I miss Ginger Island Mainland Adjustments

velvet narwhal
#

something to put on the list of "atra things to bring up to 1.6"?

hard fern
#

SDVpuffersweats i wrote a line of dialogue too long, I need to put it in an event.

vernal crest
#

How is it too long?

hard fern
#

i got carried away

#

it's a paragraph now

vernal crest
#

Oh sorry I mean like is it breaking the game's dialogue or something?

#

Or do you just feel like it's too long for dialogue?

velvet narwhal
#

are there like 6 #$b#/#$e#s in there

hard fern
#

way too long for dialogue

velvet narwhal
#

cause, i have one of those, only one

hard fern
#

technically it won't break the game's dialogue but idk who wants to stand there clicking for like a minute or longer just to see all of the dialogue

velvet narwhal
#

looks at my comments and bug reports a lot

clever sinew
#

The Devoted

velvet narwhal
#

a lot of people will sit there and run an npc dry

hard fern
#

i also thought it would be nice to have more marriage events, so

vague acorn
#

how do you guys find inspiration for mods to make?

#

i am generally interested in yall's way of thinking

obtuse flare
#

i have a mod suggestion lol

#

if anyone is interested

#

i'd give a lot to reduce or remove moss spawns

velvet narwhal
#

if you understand c#, you find one inconvenient thing and you make a mod out of it
if you're just bored of the game, you think of one thing you wanna see in the game and you make a mod out of it
that's generally how i go about making my mods

vague acorn
#

also you made your own icon? it's lovely

obtuse flare
vague acorn
obtuse flare
vague acorn
vague acorn
obtuse flare
vague acorn
#

though ill assume people generally don't use it when modding a character

velvet narwhal
#

depends on the amount of laziness

#

i've contemplated it for the npcs that aren't social but i'll probably just do them myself SMCKekLmaoDog

vague acorn
#

yeah since i suck in sprite-making, especially with portaits, i might use them as a way to study

vernal crest
vernal crest
vague acorn
#

i will make sure to credit the author in multiple locations if i am to use it XD

vernal crest
#

No, people have to edit their own expressions

vague acorn
#

also, another question, not related at all to spriting, is there a way to force mossy rain using commands?

vernal crest
#

Polter has said she's not keen on people using the portrait maker for making an NPC just FYI. It's not disallowed, she just doesn't like it much.

velvet narwhal
#

i can't remember if cjb can force green rain SDVpufferthink

vernal crest
#

As for the green rain thing...not that I know of but that doesn't mean there isn't

#

Might be worth having a look through the decompile

velvet narwhal
vague acorn
#

is there a way to even force green rain in the base game?

vernal crest
#

Like with a totem or something?

#

I don't think so

#

But you can just use a save predictor with a new save to find what date the green rain will be

vague acorn
#

it would be fun to make a totem for it XD

rancid temple
#

There is a green rain debug command, not sure it's syntax

#

Maybe just debug greenrain

vernal crest
# vague acorn how do you guys find inspiration for mods to make?

To answer this question: before I was in this discord my ideas basically just came from me playing and wanting stuff (like a) my aborted attempt at making every house in the valley have a bathroom was because I have realism-autism and wanted bathrooms but I gave up because it was a lot of spriting and I was too proud to use the HxW tilesheets lol and b) Hiria coming from me really loving the very in-depth NPCs and wanting more).

Now that I am in the discord I get a lot of ideas from discussing stuff with other people.

rancid temple
#

I started by updating mods I wanted and then making a few of the ideas I had, am now doing the "making mods others want and that I find interesting" path

#

While also waiting for my brain to think of new stuff I want lol

vague acorn
#

yeah what i do rn is work on stuff my friends and i come up with, while also looking for inspiration from other games/people

vernal crest
#

I have made one very small mod because somebody else wanted it but didn't know how to achieve it and I thought I could see a way to so I gave it a go.

#

And that was fun.

rancid temple
#

As a firmly-not-artistic type, I do have a fairly limited pool of ideas I can actually chase

vague acorn
rancid temple
#

A lot of frameworks are already made lol

vernal crest
#

There is a gigantic ideas list on github from the people who have the ideas but not the skill/desire to implement them.

rancid temple
#

!modideas

ocean sailBOT
#

If you have a mod idea that you aren't planning to make yourself, you can put it in the mod ideas github: https://github.com/StardewModders/mod-ideas

However, this does not mean anyone is guaranteed to work on your idea—modders who are looking for ideas sometimes go through and work on what they find interesting off this list. If you want to pay someone to make your mod idea, there are a few people who do commissions (mostly art, sometimes code); you can ask around, search usernames for the word comms, or see !commissions.

vernal crest
rancid temple
#

Eugh, but then I would have to be reliable

uncut viper
#

collaborations seem like a fun idea to me until i remember how unreliable i am in terms of actually wanting to work on anything

vernal crest
#

xD

vague acorn
#

i would love to collab with people XD

vernal crest
#

Yes I prefer a swap over the idea of collaborating

#

I am too controlling to let anyone else have input into my ideas hahaha

velvet narwhal
#

you can count on me to spit out art within reasonable time, cannot count on me to spit out c# within reasonable time

rancid temple
#

Re: reliability; see: me still working on this crane game mod after all this time

vernal crest
#

I will send Pau to make lots of melty eyes at you

rancid temple
#

Also: me starting work on a spatial sound mod, getting it working and then not progressing on making it scalable

vernal crest
#

(But Pau is not even into modding right now so I'm sure it's fine)

rancid temple
#

Yeah, Pau is waiting for 1.6.9 among other things

#

Which kind of works because I can't actually finish this crane game mod until SpaceCore updates again lol

uncut viper
rancid temple
#

I think you still list 2.3.0

#

For Format

uncut viper
#

but i wanted to use a 2.4.0 feature SDVpufferwaaah

velvet narwhal
#

it works in 2.3.0

rancid temple
#

That's why I was confused about Format 2.4.0 the other day, because I'm using the beta CP but still using 2.3.0 Format

velvet narwhal
#

you're doing the default folder splitter yeah? it works

uncut viper
#

the what

velvet narwhal
#

i18n splitter

uncut viper
#

this is unrelated to the i18n

velvet narwhal
#

oh

#

what's the other new feature then SDVpufferthink

uncut viper
#

ReplaceDelimited

velvet narwhal
#

ouh right

rancid temple
#

Does it for sure not work with Format 2.3.0?

uncut viper
#

cp doesnt complain about it so i guess it does work

#

i thought removedelimited had a minimum format applied to it so i thought replace would as well

rancid temple
#

Well, it might yet still

uncut viper
#

naw it for sure worked

rancid temple
#

All this being part of the beta might be causing some odd setup

uncut viper
#

shows up in the patch export

rancid temple
#

May change once the proper version is released

uncut viper
#

ooh i didnt realize beta CJB cheats can warp you to a specific level of the mines

#

if only id known that during all the time i was making Graveyards lmao

rancid temple
#

Oh huzzah, my beta version of Custom Locks Updated is showing in SMAPI, so it was patience all along lmao

vernal crest
#

Hasn't CJB cheats been able to warp you to a specific level of the mines for a while?

uncut viper
#

i think thats my books mod all done n updated then.... and i am exhausted. how the hell does pathos manage so many mods

rancid temple
uncut viper
#

apparently its been in since april

#

i coulda sworn id downloaded CJB cheats since then

vernal crest
#

I thought I'd been seeing it my entire playthrough this year so yeah, 1.6.8

uncut viper
#

but apparently not

#

dont tell anyone but ive still got mods in my playthrough mod list that are from the 1.6 beta

#

im not good at updating things

rancid temple
#

I'm assuming the shame part is that they keep nagging you for an update :P

uncut viper
#

oh i dont feel any shame

rancid temple
#

All Platonymous's mods are from the beta, but they don't have updates lol

vernal crest
rancid temple
#

They still work?

vernal crest
#

In fact I have started to remove some of my older mods because they're CP xnb so they make some dialogue odd - but not all!

#

Yes or I would have removed them lol

uncut viper
#

are they being updated though?

vernal crest
#

No, they are forever abandoned

rancid temple
uncut viper
#

thats the difference then

#

mine have gotten updates i just havent downloaded them

vernal crest
#

Ahh okay

#

Yeah I have some that I don't bother to update but none from as far back as the beta

#

I did have to remove a Maru dialogue mod yesterday because it gives me festival dialogue as though I'm married to Maru because it doesn't check for marriage

#

And weirdly it also makes use of the festival spouse dialogue keys to say different things so I don't know what they were trying to achieve there because sure if I actually did marry her I'd only see the spouse keys

rancid temple
#

Seeing updates in my log gives me anxiety, I would need to be able to mute it to ignore them lmao

vernal crest
rancid temple
#

I mean from others lmao

vernal crest
#

I am now even more offended that you are grouping me in with people who don't know how to read their own logs xD

rancid temple
#

So many logs with just waves of red from broken, old mods

vernal crest
#

I like to check what has been updated before i update because sometimes I don't actually want the change that's in the update. If i can be bothered, I change my manifest for them so I don't get the notification about it.

rancid temple
#

That's smart, not sure if I have the mental patience for that lol

uncut viper
#

yeah i learned that lesson very early on into 1.6

vernal crest
#

One time I went through and updated about 70 mods but ran out of time to play and by the time I came back to play I had another 30 to update

#

My mod for testing different question formats in dialogue has gone over 500 lines aSDVpufferparty

rancid temple
#

Wow

vernal crest
#

I should probably put it on the modding wiki once I'm done

rancid temple
#

Dialogue and events honestly seem like such nightmares to do SDVpuffersweats

vernal crest
#

But I do not want to do another tutorial because the other one took me so long

#

I can't speak about events because I've done nothing but the most basic in them (except TAS) but I find dialogue fun.

#

It's very easy to do really basic dialogue stuff without breaking anything so all the convoluted stuff is very much opt-in.

rancid temple
#

The great thing about the modding wiki is you could just dump the whole thing onto a page and just call it examples, maybe add a little info and call it good

vernal crest
#

I don't even have use cases for most of the stuff I investigate anymore, I just do it because I want to know.

#

Yeah it's already quite organised for my own sake so for anyone who isn't a beginner it probably would be useful as-is.

#

I would DIE if we couldn't have comments in our json files

rancid temple
#

I think there's some kind of silly way to get around it for traditional json, but it's definitely nice being able to just put plain comments

vernal crest
#

Probably more than half this file is comments because I have to have section headers, then explanations of what I'm trying to achieve, then testing results, then conclusions.

#

This has been such a good hobby to pick up after having to stop working lol

#

It scratches much of the same itch

rancid temple
#

Makes me wish I had gotten into it sooner, didn't even know what I was missing lol

deep cypress
#

Modding is such an incredible and beautiful act of creation. We are making whole worlds from literally nothing. It’s really totally amazing!!!!

vague acorn
#

for me at least, modding is a way to show my graditude to a game that i love

inner harbor
#

There's no way to add colored slimes to events is there? I'd really like to write a Slime Fanciers Show, but don't want to have to recolor and animate them all separately

#

FTM monsters don't show in events. I wonder if I Can use MEEP?

iron stream
#

I have a question: So OnTheRisk recently updated their animated portrait mods and included in one of the versions there's an animated Jas jump rope portrait. But currently they haven't figured out a way to add it in game. I was wondering if it would be possible to setup a content patcher mod that would only replace Jas' portrait during her time skipping rope to add in an animated portrait at all? Like even a vanilla style animated jump rope, or would it not be possible?

brave fable
vernal crest
# iron stream I have a question: So OnTheRisk recently updated their animated portrait mods an...

Hmm backreading in this channel it looks like SpaceCore can do animated portraits.

As for getting them to happen at a specific point in her schedule - you could maybe do a CP patch to replace the portrait based off some condition that CP tokens could check but you'd have to use an OnTimeChange updaterate.

Alternatively if you got BETAS you could use the GSQ Spiderbuttons.BETAS_NPC_NEAR_AREA <Location> <X> <Y> <Radius> [NPC]+ inside her Appearance data to check if she has arrived at her schedule point and then use her skipping portrait.

Or I guess you could just give her a schedule string and set the skipping portrait in that.

I suspect there may be even more options than the three I have mentioned.

hallow prism
#

she has a schedule string i believe?

#

the "1, 2, 3, 4, oops, let's start again"

vernal crest
#

Upon re-reading Sticky's question I now think that the animation part is already sorted so if that's the case ignore what I said about SpaceCore lol

#

If she already has a schedule string then just editing that to add portrait command for the animated skipping portait seems easiest, yep.

woeful lintel
#

oh, that's smart, just adding the animated portrait in a new slot of the portrait sheet and changing the dialogue... I would have never thought of that

vernal crest
#

I don't know if it will work because I have no idea how the animated portraits work lol

tender belfry
#

Does anybody know how to make a custom item, that when gifted will trigger some special even, like bouquet or pendant does?

hallow prism
#

you would likely need C#, unless you want that effect to happen to a limited numbers of NPC in which case there are workarounds by using gift answer dialogue and triggers/events

iron stream
#

Where could I find her schedule string? I'm unfamiliar with npc data

vernal crest
iron stream
#

Thank you for the swift response! What program would I need to use to open the schedules files?

vernal crest
iron stream
#

No I haven't unpacked my game files? How would I go about doing that? SDVpufferthinkblob

vernal crest
#

Looks like she doesn't have portrait commands in her jump rope schedule strings, so you might be able to use TextOperations to just append the portrait command to the end of it rather than rewriting out the entire string - but I am not familiar enough with TextOperations to know if that's how it works lol

#

!unpack

ocean sailBOT
#

Follow this guide to unpack the game's content files in order to see and explore how the game data is structured.
It's helpful when making your own mods, or just to learn about how the game works!

iron stream
#

Sorry for the barrage of questions just realised it seems to never end lol

vernal crest
#

No worries at all :)

#

I am not feeling like that.

woeful lintel
#

It's pretty far from the longest discussions we had in here, don't worry about asking about stuff, it's the first step to understanding

iron stream
#

Thank you unpacking the files now, I'll have a look and see if I can understand how the schedule will look unpacked

#

It's friend shaped

uncut viper
#
{
  "Action": "EditData",
  "Target": "Strings/schedules/Jas",
  "TextOperations": [
    {
      "Operation": "Append",
      "Target": ["Entries", "spring.000"],
      "Value": "$99" // <--- portrait number
      "Delimiter": ""
    }
  ]
}

(this is how it would look i believe, repeated for each of the schedule strings)

iron stream
#

Omg that's so kind of you!?!

uncut viper
#

one of them already has a portrait command in it. i dont know if you can have two and have it just choose the last one or not

iron stream
#

Thank you so so much Button!!! I'll be sure to let the author know. I'll still have a look at the schedules to learn how to read it and extrapolate how you were able to reach that as the answer :D

vernal crest
#

The one with a portrait command in it is not for jumping rope (unless it's changed for 1.6.9)

uncut viper
#

they all have almost the same text anyway so i wasnt sure but if it isnt then thats great bc removing just the portrait command woulda been weird

#

textoperations weird i mean

#

but doable with a * delimiter lol

vernal crest
uncut viper
#

(im going to sleep now so good luck!)

iron stream
vernal crest
#

Feel free to come ask questions about them if anything about them puzzles you

iron stream
#

I was able to make sense of it, since there are three different schedule strings for Jas practicing skipping rope would it be structured like this (using Button's code as a base obv I don't take credit):

//Spring
{
  "Action": "EditData",
  "Target": "Strings/schedules/Jas",
  "TextOperations": [
    {
      "Operation": "Append",
      "Target": ["Entries", "spring.000"],
      "Value": "$0" // <--- portrait number - is Jas' neutral expression as no specific portrait is mentioned
      "Delimiter": ""
    }
  ]
},
//Summer
{
  "Action": "EditData",
  "Target": "Strings/schedules/Jas",
  "TextOperations": [
    {
      "Operation": "Append",
      "Target": ["Entries", "summer.000"],
      "Value": "$1" // <--- portrait number she's happy here so it's her second smiling portrait
      "Delimiter": ""
    }
  ]
},
//Winter
{
  "Action": "EditData",
  "Target": "Strings/schedules/Jas",
  "TextOperations": [
    {
      "Operation": "Append",
      "Target": ["Entries", "winter_15.000"],
      "Value": "$0" // <--- portrait number - is Jas' neutral expression as no specific portrait is mentioned
      "Delimiter": ""
    }
  ]
} 
``` ?
I am curious to know how `"Delimiter": ""` comes into play, is that where I would add the command to replace the referenced portrait ($99) when skipping rope?
#

Also just learnt you can set is as a json through discord?? The more you know

vernal crest
#

Bother I was wrong about the one with the portrait command not being for jumprope, sorry Button

#

You will need to do more with the summer.000 string because you'll have to remove the $h before adding the correct one

iron stream
#

I'm guessing that $99 is her neutral portrait so I'd need to replace that one

vernal crest
#

No, $99 doesn't exist

brave fable
#

that's a pretty expensive portrait SDVpufferchicksweatsip

vernal crest
#

You'd have to have Aviroen levels of portrait madness to have that high a portrait index

iron stream
#

hahahaha ohhhhhh so 99 as in the 99th row portrait

vernal crest
#

But I will explain that in a second - delimiter - that's what you are telling TextOperations to add between the existing text and your addition. In this case you don't want anything to be added so the delimiter is just ""

iron stream
#

I see, I will have a read through of the github to see if it answers any of my questions SDVpufferthumbsup

vernal crest
#

The $h in her vanilla summer.000 string corresponds to $1 (the first 5 portraits have aliases of letters and you can use the letter or the number to indicate the correct portrait).

#

I don't know if you could target the inside of a schedule to add a schedule string (for the Sat schedule) or if you would have to replace the entire Sat schedule.

iron stream
#

ohhh so I'd change the $99 to $1 in the summer config

vernal crest
#

All of the values you are appending will need to be the correct number for her skipping portrait

iron stream
#

#h means her happy portrait? and since no portrait is referenced I'm guessing that means it defaults to her normal portrait. I'll try checking in-game to see if that's correct

vernal crest
#

In a few days, once 1.6.9 arrives, you might be able to use ReplaceDelimited for the Sat schedule...if I am understanding it correctly.

iron stream
#

Maybe I'll wait a few days before sending the message 😂 seems like new features from 1.6.9 will make this easier to use will come out

vernal crest
#

$h means her happy portrait (aka $1), yes. That's the one in summer.000 that you'd need to remove and then replace with the skipping portrait. For the other two strings she doesn't already have a portrait command (and you're right that means the default - $0 - is used) so you just need to append the correct value on.

woeful lintel
#

Hey, it's been so long since I messed with draw calls, can someone tell me where is Furniture.drawAtNonTileSpot used (except to draw held item)? I can't remember all of its use-cases, and I'm starting to look into ignoring it if it's not used.

hoary lake
#

mod idea: if you fail a help wanted board/ it disappears from the help wanted board without being completed then there is a chance that another npc will head to the npc and give them the item instead.

woeful lintel
#

I'm getting an aneurysm trying to wrap my head around how I made relative draw position work, and how the game handles draw position

woeful lintel
#

like physically walk to them and give it to them?

hoary lake
#

that! or it could be mentioned the next day if you talk to them? "i helped X npc with their help wanted request since nobody else had gotten to it yet and i had some free time" or "oh X npc forfilled my help wanted request which was very npc of them"

woeful lintel
#

I feel like the 2nd one would be more manageable, it looks like it would be a pain to make the first option possible with schedules and all this stuff already in place

hoary lake
#

nod nod

tame moat
#

Hey, new to modding (but not coding). Working on something simple to start that makes a colored rectangle based on luck, but it's cycling through the character sprites instead. Can one of you tell me where I'm messing up to not get a solid color?

lucid iron
#

You can use staminarect for this

brave fable
#

(you also really don't want to create a new Texture2D() most of the time, let alone on every single OnRendered draw call)

#

(honestly i'm amazed creating a default texture actually draws something when called)

lucid iron
#
b.Draw(
        Game1.staminaRect,
        new Rectangle((int)localStartPos.X, (int)localStartPos.Y, 16, 16),
        Game1.staminaRect.Bounds,
        Color.Red,
        0f, Vector2.Zero,
        SpriteEffects.None,
        1f
)

This draws a red square

brave fable
#

you also want to use e.SpriteBatch instead of b = Game1.spriteBatch, the EventArgs e parameter for this event handler comes with an instance just for you

woeful lintel
#

you never set the pixels of your new Texture2D, and as someone told you already, you should create it once and reuse it instead of creating it each frame

brave fable
#

also to explain, Game1.staminaRect is a basic blank texture used for drawing coloured squares and overlays

#

it is not, as you would think, a rectangle

lucid iron
#

Oh I thought it was a singular pixel blobcatgooglyblep

tame moat
#

Awesome, thanks peeps 😄

woeful lintel
#

Something I did for a flat color rectangle is just a 1x1 texture with a white pixel, and change the source rectangle when drawing

calm nebula
#

fundamentally your problem is that texture2d does not clear memory on init

#

you get...something random. it's pretty fun.

brave fable
#

you'll also probably notice quite quickly that you're printing a value to log on every draw call too hahah

tame moat
#

Yeah, it was entertaining, lol

calm nebula
#

what you SHOULD do is use Game1.staminaRect (or pack your own single pixel texture that's just white)

#

secondly

#

making textures is considered an insanely stupidly expensive operation

ivory plume
#

(Tip: you can use Utility.DrawSquare instead of manually drawing a texture.)

#

(Despite the name, it can be any rectangle size.)

brave fable
#

rect is a texture, square is a rect, where will it all end SDVpufferpensive

lucid iron
#

SDV 2 will feature healthtriangle

brave fable
#

oh beloved sdv developer, are we encouraged to use TemporaryAnimatedSprite.GetTemporaryAnimatedSprite instead of new TemporaryAnimatedSprite in general cases (such as sparkles, wobbly things, wooshes, etc)

ivory plume
#

That returns a pooled instance, so you need to return it to the pool by calling sprite.Pool() when you're done with it. But if you do that, it reuses instances instead of allocating a new one for each animation that plays, so it's more efficient.

brave fable
#

don't they return to the pool when their alpha reaches 0?

#

i'd just assumed they did since my sprites apparently stop updating once they're invisible

ivory plume
#

Not directly, but looks like TemporaryAnimatedSpriteList returns an item to the pool when it's removed from the list. So in theory it should happen automatically in most cases (e.g. if you're adding it to location.tempSprites instead of a custom list).

brave fable
#

wonderful, thanks SDVpufferthumbsup pretty much always to the location list (or event lists)

woeful lintel
#

god damn it, I can't get anything done today

#

I'll add a message to the nexus page to say that an update is on its way to avoid some of the "where update" posts

icy viper
#

Is there a function to get a list of catchable fishes in a location in C#? I know getFish and GetFishFromLocationData but they only get one fish.

brave fable
#

presumably you'd start with this.GetData().Fish for a given location

humble horizon
#

Can someone help me with making a bug catching mechanic

ivory plume
#

Location fish use item queries and conditions, so they can be very dynamic. For example, you can use a RANDOM_ITEM query with a DAY_OF_MONTH 24 condition. So there isn't an easy way to get a list of all possible fish.

vernal crest
humble horizon
#

Not much

#

Can't i just use custom companions tho

vernal crest
#

How?

humble horizon
#

I'll use it to spawn bugs around the map like the wild animals mod

vernal crest
#

My understanding of CC is that it is for spawning creatures of various kinds to wander around or follow you. How would you use CC to catch them?

humble horizon
#

Oh that's what you mean

#

Tbh i don't know all i ever modded was new locations

vernal crest
humble horizon
lucid iron
#

I guess you could make meleeweapon for the net

humble horizon
lucid iron
#

And then reference some monster or critter code for bug

ivory plume
#

The game code has changed significantly since that mod was written (e.g. string item IDs didn't exist yet), so it would probably work differently if it was created today.

lucid iron
#

Might need spacecore to serialize your net

humble horizon
vernal crest
#

Casey's code is MIT anyway

humble horizon
#

It would be a starting point

lucid iron
#

It's gonna be a fair bit of work and I think u should just write from scratch under 1.6 context

#

Less hassle trying to figure out why original mod's code was like that akaShrug

humble horizon
#

I'm not a good coder tho

#

😅

lucid iron
#

If you don't code then you will never become better at code

humble horizon
#

That's true but i actually have no idea where to start

lucid iron
#

wew you can do it I belieb in you

#

!startmodding

ocean sailBOT
#

Making mods can be broadly divided into two categories:

Usually it’s easier to start with making content packs, since you don't need to learn programming.

lucid iron
#

Follow the c# guide here

#

!decompile

ocean sailBOT
humble horizon
#

Okay then i will start working on it thanks for believing in me

#

@lucid iron add me

lucid iron
#

No

#

Just ask any questions you have in here, it's nice cus more people are around for answers

humble horizon
#

Ok 🥲

vague acorn
#

question: can you use the machine tokens inside a condition (IE, to check for a nearby flower in the condition for the bee house for example)?

vernal crest
#

Machine tokens?

golden basin
#

So I got a interesting bug from the secret note framework mod? Its very odd the note was working before but currently it is throwing a menu error now.

vague acorn
#

these

golden basin
#

if i post a log woudl anyone be willing to peak at it?

vernal crest
# vague acorn

Whoops I forgot you're doing C#. Pretend I don't exist!

vernal crest
golden basin
ocean sailBOT
#

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

vague acorn
#

i found them here

vague acorn
golden basin
#

wrong error were looking at.

lucid iron
golden basin
#

we're looking at the secretnote error at the bottom

vague acorn
lucid iron
#

Some gsq take input and target though

#

What's the desired use case?

golden basin
#

so I've no idea what this error means, I was hoping someone could give me a run down so I know what to do to fix it on my end if possible. What occurs is I get the error at the bottom whenever I try and open my note.

vernal crest
#

The menu crash is secret note related?

vague acorn
golden basin
vernal crest
golden basin
#

of course one second

#

here you go

lucid iron
#

Does it have to be nearby flower

golden basin
#

I wonder if it's the when condition that causing it

lucid iron
#

There's lots of examples of the special output for input in vanilla

vague acorn
lucid iron
#

Like pale ale hops vs generic wine/juice

vague acorn
golden basin
#

It was the condtional I had set

#

For some reason it causes a menu error when applied to the entry.

vague acorn
lucid iron
#

So you can just make special flower -> special output rule, on top of the general one

golden basin
#

thank you

vague acorn
vague acorn
#

hope that clears it

lucid iron
#

Then you do need nearby flower DokkanStare

vague acorn
#

trying to find new stuff to make is so hard... ):

lucid iron
#

I think there might be way with item spawn conditions, I'll have to double check what is go first

#

yea i dont think there is way atm

hard fern
#

oh man i was so tired last night, i fell asleep on my dialogue...

#

...yep im gonna fight with my portraits again 😔

woeful lintel
#

don't complain, some of us have to fight with the game

hard fern
vernal crest
#

Unless you're asking this as a precursor for a discussion about making your own, this is the wrong channel. #modded-stardew is the place you want to head to for asking about mod recs :)

topaz salmon
#

Hi guys, how do I identify a NPC string name? Just to make sure its string name is correct in case the creator decided not to use just their name as string?

#

I'm making some location fixes for some NPC mods so I wanted to know the strings they used to refer to their NPCs

vernal crest
# topaz salmon Hi guys, how do I identify a NPC string name? Just to make sure its string name ...

If you have Notepad++, VSC, or Sublime you can do a "find in files" search through the mod folder for "Data/Characters" which will take you to the file that the mod author has defined their NPC in. If you don't want to do a find in files search, you can manually look through their files to search for that (starting with content.json because it will either be in there or they will have an "Action": "Include" code block that will probably guide you to the right file.

Or you can just do "patch export Data/Characters" in your SMAPI window when your game is open, then go to your Stardew Valley folder and find the patch export folder, open up the file inside it and search for the NPC in there.

wanton field
#

Hello everyone. I wanted to get a bit more into modding and thought of starting a simple map extension would be a great idea for learning by doing. But I already struggled to install Tiled on my Mac OS 11+ with M1. Anyone know why I can't open it? It crashed immediately.

brittle pasture
# vague acorn making an output that only appears when a specific flower is used

Ok this might be a stupid idea but I think this is doable with CP only with a combination of Machine Terrain Framework + SpaceCore
MTF adds a new field to machine rules which is a GSQ that has a bunch of extra custom params passed inside the context, including "tile the machine is on". SpaceCore has a GSQ for "has nearby crop" which only works if the context has a "Tile" parameter

#

so you can combine the two, and have a machine output item gated behind "there's a certain flower near this beehouse"

vernal crest
wanton field
vernal crest
iron ridge
#

nothing else for editing tmx map files

#

there's tIDE for tbins

lucid iron
#

What's the error you get?

rare orbit
#

btw? i pray that 1.6.9 will not axe most mods and/or mod making ;w;

lucid iron
#

Content patcher stuff will be fine

wanton field
#

Yeeeah I get it worked. Version 1.11.90

You will see me in a few days again with many questions 😂

vernal crest
acoustic stag
hard fern
#

the problem is usually the frameworks, once the framework is updated, the mods should work fine, no?

latent mauve
#

Assuming that the framework doesn't have to change how the content packs are structured, then yes

ivory plume
#

1.6.9 is mostly new features (which shouldn't affect existing mods) and fairly technical changes (which will only affect some specific mods like the light source changes). Most mods should be unaffected in theory, but I'll be preparing the mod compatibility list for 1.6.9 this weekend so we'll have a better idea soon.

hard fern
#

if the content packs needs updating then it's up to the mod author to update them then

faint ingot
#

if I use addLantern in an event how do I then remove it? removeObject and removeSprite both don't seem to work.

ivory plume
#

The main mod compatibility issue in 1.6.9 is probably the net field changes; C# mod authors who have been ignoring build warnings since 2018 will have issues in 1.6.9.

latent mauve
#

(somewhere, a large portion of infrequently active mod authors just felt a chill)

tender bloom
#

Pathos calling us out

#

It’s me I ignore warnings

faint ingot
ivory plume
#

addLantern adds a temporary sprite, so you can use removeSprite x y to remove it again.

#

removeTemporarySprites should work too in theory.

faint ingot
#

I am using addLantern 927 3 5 1/ , I chose an 'empty' icon from springObjects instead of the Lantern at 735, because I don't actually want the lantern, just the localized glow effect. is that why the glow isn't removing with removeTemporarySprites? should I be adding the glow some other way?

ivory plume
#

Nope, that should be fine. Essentially addLantern just does this:

context.Location.TemporarySprites.Add(new TemporaryAnimatedSprite(initialParentSheetIndex, 999999f, 1, 0, @event.OffsetPosition(tile * Game1.tileSize), false, false)
{
    lightId = @event.GenerateLightSourceId($"{nameof(AddLantern)}_{tile.X}_{tile.Y}"),
    lightRadius = lightRadius
});

It doesn't matter which sprite index or light radius you use, since removeSprite will remove any temporary sprite on the given tile.

rancid musk
#

I am still shocked at how little broke in my most transpiler-y mod with 1.6.9.

ivory plume
#

If you change it to use a visible sprite, does the sprite get removed even if the light stays behind? If so, that might be fixed in 1.6.9.

exotic saddle
#

Heya! I have a quick question, does anyone know DaisyNiko's policies on making mods compatible with her Earthy Interface mod/if that's allowed? I unfortunately cannot access their profile so I'm unable to check, but I wanted to ask if it would be okay for me to post a Earthy Interface edit for the Generic Config Mod, just since I haven't seen anyone else recolor it for that mod/wanted to give access to my personal edit in case anyone else wanted it

faint ingot
brittle pasture
ivory plume
exotic saddle
faint ingot
ivory plume
#

@next plaza I'm reviewing your passthrough tokens PR to hopefully include in Monday's Content Patcher update. I was just curious about the reason for this change in the LocalContext?

merry rampart
#

ok so im having an issue here.

my spouse doesnt leave my custom and not yet released farmhouse and i am unsure of why. i removed the farmhouse and reverted back to vanilla and she leaves. so... im not shre why she isnt leaving

hard fern
#

is something blocking her?

merry rampart
#

nope. no obstacles in the way. unless wooden flooring counts?

velvet narwhal
#

Are the warps set?

merry rampart
#

only on the main map. do i need to set warps on each of the renovations too?

shut bane
#

Probably a silly question, but my brain ain't cooperating today: is it possible to make a token to alternate between two values based on the in-game year? I want to make an outfit mod that alternates between two base sprite sheets every year.

#

I was trying to do so with a content patcher dynamic token

vernal crest
hard fern
#

arent each of the renovations a separate map? 🤔

lucid iron
#

You can do a modulo % to get even/odd years

shut bane
lucid iron
#

Yeah I believe so, you are basically trying to derive a token from the year token

merry rampart
shut bane
#

oh wait durr, I can load one set of sheets by default and swap when the year number is even. Shows how well I think at midnight

lucid iron
#

I'm not sure if gsq/condition has anything though

merry rampart
#

nope, she still isnt leaving

latent mauve
#

Double check your farmhouse warp out and make sure there are no NPC barriers blocking the exit?

ivory plume
shut bane
ivory plume
#

Essentially you're just assigning a new value to the same token in that case.

shut bane
#

kind of like a += operator?

merry rampart
hard fern
#

🤔 hmm

latent mauve
merry rampart
#

right, only the farmhouse map. when i reverted it back to vanilla, she was able to leave. so it's something wrong with my map

shut bane
#

ty all for the help, hopefully I can figure the rest out

rancid temple
#

Did you make the warp out the same in your farmhouse as vanilla?

merry rampart
rancid temple
#

Where is it going?

merry rampart
#

28 38 Farm 64 15 29 38 Farm 64 15

hard fern
#

oh

rancid temple
#

NPC pathing doesn't work on the farm by default I'm pretty sure

hard fern
#

it doesnt

rancid temple
#

You would have to patch out the path blockers on every exit if I recall

ivory plume
# shut bane kind of like a += operator?

Each new entry is essentially token = value, but you can do things like token = "{{token}}, value" for example.

Which allows for interesting things like...

  • incrementally build a list based on conditions (e.g. get the vanilla NPCs, then add SVE NPCs if that mod is installed, etc);
  • set an initial value, then override it based on conditions;
  • etc.
merry rampart
#

That's my Warp Map Property. I can't change it or else I won't be able to leave

rancid temple
#

Add an NPC only warp that goes to the bus stop

latent mauve
#

Yeah, create a NPCWarp tile inside your farmhouse for them to leave without going onto the Farm map

teal bridge
hard fern
#

so your spouse being stuck is probably because she actually can't leave 🤔

ivory plume
merry rampart
#

Nope she still isnt leaving

sweet sphinx
#

why remove items when you can just so significantly alter them to what you need?

rancid temple
#

Been trying to follow the logic for pathfinding and scheduling for spouse's, it's a lot and now I gotta run. Only other thing I can think is maybe it's a scheduling issue?

merry rampart
#

I thought of that but her schedule is fine. Besides, she wouldn't be able to leave the house in vanilla if it were a scheduling issue

#

Ok I've done everything I can think of. I've changed the warp, added NPC warp, added warp to the renovation maps... nothing. She still won't fking leave....

vernal crest
#

Are you still needing help with this?

merry rampart
#

FML... I figured it out.

It was because I had two buildings tiles right on the warp point. I was looking at the path from the stove to the door, the warp point itself completely did not occur to me

hard fern
#

😭

#

that would explain it..

vague acorn
#

is there a way to track how many of a specific item are sold within a time-frame?

rain flax
#

someone messaged me on nexus, they're unable to see the farmhouse i uploaded with content patcher. smapi is giving them no errors, and it looks like the content patcher is loading the file just fine. has anyone else run into this before?

teal bridge
#

SMAPI log posted on Nexus is a screenshot of the console containing no useful information... I am shocc

latent mauve
#

If you haven't, I suggest getting them to do a patch summary of the farmhouse asset to make sure nothing is replacing it after you

drowsy pewter
#

i bet they have another farmhouse mod and dont even realize that their house isnt vanilla

#

In these cases I always make them send an ingame picture first

#

You have no idea how many times ive wasted my time on a problem like that for the user to go whoops i totally thought that sprite was vanilla :/

rain flax
#

lol thanks all, i'll ask them!

granite ridge
#

Is there a list of languages people have translated Stardew into?

teal bridge
#

If it's a question about unofficial/unsanctioned translations then ¯_(ツ)_/¯

granite ridge
#

It's a question about unofficial.

granite bluff
#

hey i want to add a nps's scedule to a custom map, where to start? i have no experience with scedules yet

#

oh it's alex so its no custom npc

vernal crest
brittle pasture
drowsy pewter
#

theres also a number of unofficial translations that were finished prior to 1.6 and not updated

faint ingot
calm nebula
#

(yeah, none of the removal functions in DefaultCommands call TAS.unload)

spiral hamlet
#

Is is possible to use CP to modify a schedule to have a spouse go to the default path tile in their spouse room?

rain basalt
spiral hamlet
#

Yes, I've managed to make several schedule changes. But I can't figure out how to get a spouse to go to that specific spot.

rain basalt
#

There is a tile association on the map

rancid temple
#

Spouses don't always follow their schedule

#

Usually they're just being piloted around the house by the game

velvet narwhal
#

iirc it's rain that forces them to sit in the spouseroom

rancid temple
#

Marriage guts an NPC

brave fable
#

al bundy was right all along. and we never listened SDVpufferpensive

rain basalt
#

Reason I marry Abigail she’s still fun to be around

rancid temple
spiral hamlet
#

I was hoping to put the spouse in the spouse room on green rain day.

brave fable
#

idk al seemed pretty gutted, let's go with him

rain basalt
#

🤔 don’t listen to me but what if you made the npc a fake shop and she goes there to “sell” only on green rain days

brave fable
#

did someone speak just now

spiral hamlet
#

Hmmm. That's an interesting idea!

lofty ruin
rain basalt
brave fable
#

you've torpedoed your multi-line string by closing the string on line 8

rain basalt
#

Then again you could have them sell mod items if you felt like it lol

brave fable
#

err actually i can't even decipher the format hahah

spiral hamlet
#

I'll see if I can get the fake shop idea to work. Thanks!

velvet narwhal
#

those are dialogue commands, not event commands

frail rapids
#

Hey,
I am trying to implement an inventory for horses, however I cannot figure out how to actually display a Menu which I can both place items in and take them out

I tried using an ItemGrabMenu, but I cannot place items in it, my assumption would be that ItemGrabMenus are just for grabbing items from them, rather then putting items in them, is there a better API for my issue?

rain basalt
velvet narwhal
#

though this is assumed that you've made an entire location named Aven?

frail rapids
rancid temple
#

UI is pretty convoluted to get into

rain basalt
#

Look at junimo building and windmill and pond think they all have an inventory

velvet narwhal
#

wouldn't chests have to be built from scratch

calm nebula
#

(The chest menu is itemgrabmenu

lofty ruin
calm nebula
#

You're just probably calling it wrong somehow

velvet narwhal
brave fable
#

yeah itemgrabmenu is standard here, i use it as a base for all my menus. the shipping bin, for example, just uses a basic ItemGrabMenu itself

rain basalt
#

Hmm 🤔 I’ve never done custom yet so not sure

calm nebula
#

There are like....five or six variants. Make sure to get the one meant for chests.)

brave fable
#

if you haven't already decompiled the game code korsti, it's best if you do

frail rapids
brave fable
#

you likely want to set the constructor param reverseGrab: true

velvet narwhal
# lofty ruin OH

beyond that, you would have to use quickQuestion if you're doing something that requires player input, the $q and $r is usually reserved only for actual dialogue lines outside of events

brave fable
#

excuse the tall text here

#

here's how the shipping bin sets the current menu on player clicked in ShippingBin.cs:doAction, obviously you won't be using this exact method but it gives you an idea:

ItemGrabMenu itemGrabMenu = new ItemGrabMenu(
    inventory: null,
    reverseGrab: true,
    showReceivingMenu: false,
    highlightFunction: Utility.highlightShippableObjects,
    behaviorOnItemSelectFunction: shipItem,
    message: "",
    behaviorOnItemGrab: null,
    snapToBottom: true,
    canBeExitedWithKey: true,
    playRightClickSound: false,
    allowRightClick: true,
    showOrganizeButton: false,
    source: 0,
    sourceItem: null,
    whichSpecialButton: -1,
    context: this);
itemGrabMenu.initializeUpperRightCloseButton();
itemGrabMenu.setBackgroundTransparency(b: false);
itemGrabMenu.setDestroyItemOnClick(b: true);
itemGrabMenu.initializeShippingBin();
Game1.activeClickableMenu = itemGrabMenu;
lucid iron
#

i think the important part is behaviorOnItemSelectFunction and behaviorOnItemGrab

#

u can skip highlightFunction if u dont need to filter

#

the very popular horse overhaul mod implemented saddle bags by placing a chest in an unreachable spot of the farm

brave fable
#

these days though we have global storage, so -1000,-1000 chests aren't needed

next plaza
#

Also you risk the chests disappearing if the player uses the world_clear command

next plaza
granite bluff
frail rapids
#

the first one seems to get called when selecting it from the player inventory

lucid iron
#

yea and behaviorOnItemGrab for opposite way

frail rapids
#

So when someone grabs from the"menu iventory"

#

howevber when mnoving something from the player inventory into the menu inventory nothing happens

lucid iron
#

do u want to post what you have?

#

im unsure what is meant by move into, normally inventory operate on click right think

frail rapids
#

Sure

#
        private void OnButtonPressed(object? sender, ButtonPressedEventArgs e)
        {
            if (!Context.IsWorldReady)
                return;

            var horse = Game1.player.mount;

            if (e.Button == config.OpenInventoryKey && horse != null)
            {
                if (!horseInventories.ContainsKey(horse.HorseId))
                {
                    horseInventories[horse.HorseId] = new Chest(true); // Ensure chest is created
                }

                if (Game1.activeClickableMenu is ItemGrabMenu itemGrabMenu && inventoryOpenStatus.TryGetValue(horse.HorseId, out bool isOpen) && isOpen)
                {
                    Game1.activeClickableMenu = null; // Close the ItemGrabMenu
                    inventoryOpenStatus[horse.HorseId] = false; // Update the status
                }
                else
                {
                    // Fetch the items for the player from the horse's chest
                    var playerItems = horseInventories[horse.HorseId].GetItemsForPlayer(Game1.player.UniqueMultiplayerID);
                    this.Monitor.Log($"Horse Inventory Items: {string.Join(", ", playerItems.Select(item => item?.DisplayName ?? "Empty"))}", LogLevel.Debug);

                    Game1.activeClickableMenu = new ItemGrabMenu(
                        playerItems,
                        true,
                        true, // Allow taking items
                        InventoryMenu.highlightAllItems,
                        (item, who) => {Monitor.Log($"{item.DisplayName} was selected by {who.Name}");},
                        null,
                        (item, who) => Monitor.Log($"{item.DisplayName} was grabbed by {who.Name}"),
                        false,
                        true, // Allow putting items
                        true,
                        true,
                        true
                    );

                    inventoryOpenStatus[horse.HorseId] = true; // Update the status
                }
            }

            this.Monitor.Log($"{Game1.player.Name} pressed {e.Button}.", LogLevel.Debug);
        }
frail rapids
#

that's what I want to achieve

#

Also clicking an item causes it to be attached to my curser, rather than moving it around

lucid iron
#

you can't use ItemGrabMenu then

#

might wanna subclass it and do your special behavior in there

brave fable
#

yeah the shipping bin's instant-transfer behaviour comes from destroyItemOnClick, where you'd need custom behaviour to preserve the item since that's normally handled by the baked-in shipping bin logic on ItemGrabMenu

frail rapids
#

So there is nothing predefined, which does the same as chests

lucid iron
#

chests dont do that either though?

frail rapids
#

I described the behavior wrong

lucid iron
#

you click a thing in your inventory and it goes inside

#

you click a thing in chest and it comes out

frail rapids
#

Yes that exactly what I want to do

#

I decribed it wrong before

lucid iron
#

then yea just look at Chest.ShowMenu()

#

the default: case should be all you need

#

u can see that the transfer of items happen in grabItemFromInventory and grabItemFromChest

#

rn ur code just logs the items so no item transfer happens

ivory plume
#

(It could be interesting to add ForEachLocalTokens or something, so you can have one patch that's applied for each set of values.)

next plaza
#

That would be amazing - I feel like it'd be more useful if you could have more complex structures somehow though

teal bridge
#

(Did I say 5 days, earlier? Apparently I meant 5 hours.)

next plaza
#

Like, A: { Name: ..., Description: ..., ... }, B: { Name: ..., Description: ..., ... }, ...

ivory plume
#

Well, the idea is you could do this:

{
   "Action": "Include",
   "FromFile": "assets/add-hat.json",
   "ForEachLocalTokens": [
      {
         "Id": "PufferHat",
         "DisplayName": "Puffer Hat",
         "Description": "A hat that puffs up when you're threatened.",
         "Price": 500
      },
      {
         "Id": "ClownHat",
         "DisplayName": "Clown Hat",
         "Description": "A hat that jingles as you move.",
         "Price": 250
      }
   ]
}

Which would load assets/add-hat.json twice, and pass in the respective {{Id}}/{{DisplayName}}/{{Description}}/{{Price}} tokens. Not sure if that's what you mean?

frail rapids
uncut viper
#

why not just make the original LocalTokens itself a list like that?

ivory plume
#

I think it would lead to some confusion, because the behavior of the LocalTokens list (call patch once for each entry) and the behavior of the DynamicTokens list (each entry can override the previous one) would be different.

#

(And replicating the DynamicTokens behavior on every patch would be prohibitively expensive performance-wise.)

lucid iron
#

could i foreach foreach

#

the particular case i have in mind was applying map properties to a large rectangular area

teal bridge
#

Just make all tokens be compilable C# expressions, done.

ivory plume
#

Yep. The file loaded through your Include patch with a ForEachTokens field can itself contain Include patches with their own ForEachTokens, nested as deeply as you want.

atomic vale
#

Hey I need to read a dll file is there any way to do that?

uncut viper
#

ilspy, dnspy, IDE extensions

#

!decompile

ocean sailBOT
lucid iron
wise berry
#

Dunno if this was happening pre-1.6.9, but I'm testing my mod and I have some NPCs with "ShakePortraits" fields set. When those portraits appear, they start shaking and don't stop... is that supposed to happen?

velvet narwhal
#

i think that's intended behavior, i think the only one that has the light shaking is the $h assigned?

wise berry
#

Dang, alrighty

atomic vale
teal bridge
#

Content Patcher's i18n substitutions are scoped to translations in that specific content pack, right?

brave fable
wise berry
#

Ohhh frick I should've tested immediately after Pathos said he fixed the issue I had

#

I'm getting it again SDVpufferpensive

brave fable
#

well i assume it's to do with mods given you're in making-mods, but more specifically hahah

#

if you're looking at a mod's DLL, you might be better off finding its source code if linked from its nexus page description

lucid iron
#

if u r windows u just need the ilspy executable thing

brave fable
#

does CA know there's a 1 pixel gap in drawDialogueBox since the fill colour sprite draw doesn't try and overlap the shadow that's part of the border sprite

#

fieldofficemenu for scale

ivory plume
velvet narwhal
#

10...

atomic vale
rancid temple
#

A hard road since decompiling is likely to leave you with something that won't function at all

lucid iron
#

depending on what it is you might as well write the mod again

atomic vale
#

I have decided to see if the mod author is still active and see if i can get the code that way

lucid iron
#

particularly cus u likely dont have perms to share mod if it is close source and all rights reserved

tame moat
#

Made my first mod of a luck meter below the experience bar mod. Thanks for the help earlier guys 😄

knotty phoenix
#

When I'm replacing mine music, do I replace the overarching variable (EarthMine, LavaMine, etc) or do I replace the invidual songs (Of Dwarves, XOR, etc)? Or do both work?

faint ingot
# ivory plume Can you [report that in the forums](https://forums.stardewvalley.net/forums/help...
patent lanceBOT
#

@next plaza: look into SpaceCore serialization for 1.6.9 if I haven't already (92h ago)

atomic vale
#

I need to get smapi mod to not be recognized as it's orginal mod and as a new one is there a way to do that?

brittle pasture
#

change the unique ID in manifest.json

atomic vale
brave fable
#

why is it an issue?

atomic vale
#

trying to see what happens for a mod that is currently borken

brittle pasture
#

the Name/Description/Author is what shows up to the user in the console, so if you're talking about those change them also

#

but the unique ID is what's important

brave fable
#

again, not sure why this is an issue

atomic vale
#

I have changed everything in the manifest

calm nebula
#

!log

ocean sailBOT
#

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

Please share your SMAPI log file. To do so:

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

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

lucid iron
#

smapi detects broken mods from the mod itself being unloadable

brittle pasture
#

ok then what's the issue then

lucid iron
#

it has nothing to do with the manifest afaik

#

stardrop does use manifest + smapi.io info though Bolb

ivory plume
#

(You can disable SMAPI's compatibility auto-detection in its smapi-internal/config.json ifle, but generally that just means it'll either fail to load anyway or crash/error in-game.)

ivory plume
#

Oh, looks like you can only disable the rewrites. Well, the mod would almost certainly crash anyway even if you disabled the compatibility checks (that's why they're checked).

#

Generally you should update the mod code instead.

opaque igloo
#

anyone experienced enough with Spacecore Spawnables stuff to help me debug an error im dealing with?

#

im fairly new to stardew modding but trying to figure out where I went wrong with some custom trigger action stuff.

knotty phoenix
#

Anyone know where the graphics for the fireflies in the Witch's Swamp are stored?

brave fable
#

yep, here's one:
.

knotty phoenix
#

awesome thank you so much

brave fable
#

seriously though they don't have a texture, they're just a coloured pixel

knotty phoenix
#

i suppose i was hoping their glow was part of the sprite, i'm making a character who's a zelda-style fairy and wanted to use it as a template

hard fern
#

There's some funny light effects going on

brave fable
#

if you're down to clown with c# you can check out Firefly.cs

hard fern
#

You can make a texture "glow" with good shading though

lucid iron
#

you can make a light source with custom texture

brittle pasture
#

light glow is indeed a texture, though if you patch the fireflies' you'd touch every other light source using the same texture

lucid iron
sweet sphinx
#

ngl that looks like one of the terraria mods to turn the pixies into zelda faeries I used ages ago

brave fable
#

an incredible coincidence SDVdemetriums

sweet sphinx
#

is there, like, an official pixel art of the zelda faeries?

brave fable
#

well sure, they had to appear in the 2d games somehow

#

not sure if the blue-ball fairies ever appeared before the n64 era though

sweet sphinx
#

ah

brave fable
#

maybe they came back for the gba series?

#

(<-- has only played zelda 1 and like half of ocarina)

sweet sphinx
#

(<-- hasn't played any zelda)

lucid iron
#

i think they were standard small human with wings prior to n64

#

it was easier on the hardware to draw ball o light than model

brave fable
#

yeah they looked much closer to the sdv fairy

tiny zealot
#

snes zelda faerie was definitely tiny wand lady

lucid iron
#

mod that adds the big zeldo fairies to the game...

brave fable
#

oh i love their little antennae lol

velvet narwhal
#

isn't lily working on a zeldo mod

tiny zealot
velvet narwhal
#

throw the galaxy sword into the pond, become universe slayer

brave fable
#

(looking at this list i'm surprised how on-model the CD-i fairies are lol)

lucid iron
#

their designs r great for being such a departure from regular graceful fairy queen kinda deal

brave fable
#

oh right you want the BIG zeldo fairy

velvet narwhal
#

minish cap is my favorite fairy

sweet sphinx
lucid iron
#

this is an apng

sweet sphinx
#

oh.

hard fern
#

😭

sweet sphinx
#

apng to gif to the rescue!

velvet narwhal
#

intrusive thought, trinkets with a soundID

sweet sphinx
#

do it

brave fable
#

(psst, those are called 'ideas')

lucid iron
#

that's supported

velvet narwhal
#

welp, i know what's coming after the baseball bat

lucid iron
#

need to load the sound n all through standard means ofc

velvet narwhal
#

yeah, it'd be my own voice though so good luck to everyone who uses it SMCKekLmaoDog

sweet sphinx
#

omfg

old edge
#

Hello there

#

How is the projects going?

velvet narwhal
#

no more braincells, modding-contest over SDVpufferclueless

brittle pasture
#

this will be fixed in the next release of EMC for SDV 1.6.9, thanks for the report!

calm nebula
#

I am told you're going to be making an orange cat npc with a hatred of SharePoint

tender bloom
#

and a love for knitting

sweet sphinx
#

gods, how do I colour pick in Aseprite?

lucid iron
#

ive come up with a name for my next mod sleep

brittle pasture
tiny zealot
#

(i don't)

velvet narwhal
#

"The humans... not only do they toil away with how stupidly disorganized their SharePoints are, but they also keep their nicest and softest yarn hidden behind what they call a 'baby lock'. aSDVpufferrise "

sweet sphinx
#

fixed green fairy

lucid iron
#

ichor what would get you to install spacecore AnnelieStare

sweet sphinx
#

one frame was missing some pixels, for some reason...

tiny zealot
#

to be clear, i have it around, but my standard mod loadout is tiny and nothing needs it, so i don't use it

lucid iron
#

yea that's fair, i think save serializer is the only thing i use consistently

#

maybe if i come up with idea for a skill one day bolbthinking

uncut viper
#

i was tempted to roll my own serialization for fun for museum framework but figured id just be making a worse, buggier version of the spacecore serializer

#

so i caved

#

bc i similarly do not want to use a bunch of string fields

velvet narwhal
#

you didn't want casey to be alone in the smapi warning? SMCKekLmaoDog

lucid iron
#

well you could shove ur stuff all into save data

brave fable
#

making a kinda shitty serialiser is almost a rite of passage

uncut viper
#

tbf that was back when the actual framework idea was more just me experimenting and messing around and not a solid mod idea