#making-mods-general

1 messages · Page 212 of 1

cyan marsh
#

tho there are some of the supplment packs that i won't be able to get to CP since they were CM specific

lucid iron
#

Oh rly what are the missing features?

cyan marsh
#

the Skull Cavern music

#

normally it uses LavaMine.. but with CM i had a LUA code to change it

lucid iron
#

Ah did CM unhardcode mines and skull cave

cyan marsh
#

can't do that with CP for now

teal bridge
#

I'm aware of these tools of course, but they're very lossy and mostly just end up creating more work at the end of the day.

lucid iron
#

Probably not that bad to roll your own

teal bridge
#

I'll use an analogy to localization vs. machine translation, with localization you have to actually work through the nuances.

cyan marsh
#

i just folded them in to the LavaMine.. so now you have 6-8 tracks available for LavaMine and onward

lucid iron
#

Usually gotta tweak afterwards

teal bridge
#

I have to change SVG images to PNG, deal with all the places where I can't use custom CSS, deal with the lack of admonitions and footnotes and all the other missing features, etc.

#

It ends up being less work to just rewrite it from scratch, sadly.

winter dust
#

MD and BBcode doesn't have too many differences.

teal bridge
#

Anyway, I've got it saving now, so that's not nothing.

#

Markdown and bbcode have enormous differences, like two generations of differences, three if you consider mkdocs with all the plugins and extra features.

rigid musk
#

If i had lost part of my mod page while making it I would have ceased to be

teal bridge
#

Well, of course I'd never be so foolish as to have my only copy of the text in a Nexus form, so I didn't literally lose hours of content, just all the careful formatting and tweaks.

#

The actual sentences are cribbed from the mkdocs and github pages.

winter dust
#

I have WTDR uploaded to nine websites, so I always have backups.

dusk mulch
#

does anyone know what the hexadecimle is for the squirrel screech?

#

like the little squirrel that jumps out of bushes and trees into other bushes and trees

#

found it

#

Is this how to format the OpenSound for editing shops?
"OpenSound": "000001a8",

tawny ore
#

@ivory plume Everything seems to work so far in the Automate PR. I have resources being processed by a machine next to the empty blue chest (with its own global inventory id), being sourced from the black chest, and they are connected in a third separate location.

vernal crest
#

I'm sure we mentioned before that NPCs change into their beach sprites using the changing room on ginger island so you can't just warp them there and expect the sprite to be different.

teal bridge
#

It takes a special kind of talent to be this bad at formatting. "Hey, this image is a little taller than the line of text, so, I know, let's render it several pixels above the text to make it even more obvious."

lucid iron
#

Does it have to be a Chest

deep cypress
#

LifeHack: Adding ModData to NPC's to make note that they need further processing later down in the code. Thx for ModData, like a year later!

tawny ore
lucid iron
#

I wonder if that works for roku's collector

#

Unsure if it is chest or just bc that opens

tawny ore
#

I just realized it's not propogating changes from chests in one location that are connected through global inventory ids to chests in another location

calm nebula
#

Anyways

#

New event!

#

Time to do a crossword when I go home

dreamy pagoda
vernal crest
dreamy pagoda
#

okay okay... i'll do that

vernal crest
#

I'm so confused about how you don't remember this. This conversation was only yesterday.

dreamy pagoda
#

i do remember and it is unnecessary to say

#

thank you for helping previously, i only wanted to double check something

vernal crest
#

I'm sorry, I'm not saying it to be rude, I just wasn't sure what was happening.

dreamy pagoda
#

but please don't act like i don't know any better

#

i forgive you

lucid iron
#

the people yearn for GIMA

calm nebula
#

The people are going to get an appearance debug command instead

lucid iron
#

is this another feature for event repeater

calm nebula
#

You know me. Infinite debug commands. No fun

#

Lack of fun

#

Fun-less. Humor less

lucid iron
#

if "Include" can have only 1 field (Changes)

#

why isnt it just a list

#

i feel like ppl trip over accidentally having Format in a include semi frequently

calm nebula
#

Lol

#

I have the feeling that it is this way because pathos coded it this way

lucid iron
#

implementation details Dokkan

calm nebula
#

I've accidentally forgotten the "Changes" before

#

And wanted less nesting before

lucid iron
#

the only reason i complain is cus i want to save 1 layer of indent

calm nebula
#

Sammmmeeeeeewee

#

Pathos

#

Please

lucid iron
#

think of all the you can not have

calm nebula
#

My autoformatter and me are in a war

lucid iron
#

saving ppl's ssd and ram trust

#

well, i already use 2 space indent for all content packs

brittle pasture
#

I put all my jsons through a minifier before uploading

calm nebula
#

Are you serious

brittle pasture
#

no

calm nebula
#

Tbh I've considered making a content pack autopackage tool

#

Automatically stripping the config.json and my gimp files

lucid iron
#

well, i did kind of want manfiest builder but for content packs

#

my ass forgor to incrememnt bc khloe spoiled me for C# mods

calm nebula
#

Lol

cyan marsh
#

My new NPC creator isn't really going to just be for NPCs

#

I'm trying to make it capable of doing everything individually

#

So it will let you make manifests for things

lucid iron
#

you will have to read other people's framework custom models then

cyan marsh
#

won't really be like that

lucid iron
#

then i cant use it for my purposes Dokkan

cyan marsh
#

I can just see all the common things and even give you a way to customize it

lucid iron
#

it is a different usecase

cyan marsh
#

example pls

lucid iron
#

well i have frameworks that have custom models and i make content pack for them sometimes

cyan marsh
#

so you can just use the custom feature

lucid iron
#

when i have time i will probably just make a cli tool that packages content packs for myself

cyan marsh
#

instead of selecting from a list

lucid iron
#

or setup a csproj

#

i dont think i am the usecase your tool ought to cover in the first place Dokkan

cyan marsh
#

i am trying to accomodate a lot of things

lucid iron
#

then ideally you detect custom models from ppl's installed mods and generate schema from it

cyan marsh
#

for a manifest?

lucid iron
#

for your general usage NPC and other stuff creator

#

if the goal is to make it a GUI for content patcher

cyan marsh
#

nope

#

It comes with a Dialogue Editor, Event Editor, and easy way to create schedules and animations.. which some of those things can make mods individually

lucid iron
#

then i dunno, i have no opinion bc you didn't specify your scope

#

were these not part of the npc umbrella before

cyan marsh
#

yes.. but using my tool it has made people make less mistakes that are technical

#

the human error is easier to diagnose

lucid iron
#

hm then i think 1 additional area you probably want to support is trigger actions (Data/TriggerActions), and maybe Mail

cyan marsh
#

I will be adding mail to the new one

lucid iron
#

besides that maybe some mod provided dialogue key (spacecore/BETAS)

cyan marsh
#

I don't understand Trigger Actions yet tho

lucid iron
#

they are like, because 🌞 happened, and there are no 🤡 , we shall now proceed with 🍎 🍊 🍌 , we will either do this only once, or everytime 🌞 happens without 🤡

cyan marsh
#

none of it makes sense until I actually use them

#

i am busy with a lot of data collection right now.. and I'm rewriting the whole thing.... it will be a bit before I think about trigger actions

lucid iron
#

in this silly description, 🌞 is Trigger event, No 🤡 is a GSQ that returns true or false, and 🍎 🍊 🍌 are actions which are effects like "send mail"

#

very common usage is for new npc to send you a mail only once to tell player that hey i exist now

cyan marsh
#

like i said.. need to use it before understanding it

#

it's how i work x3

lucid iron
#

yea i am just gib off hand example Dokkan

lucid mulch
#

@calm nebula I regret taking a peek at how VintageInterface2 works internally.
86 of the 107 patches on cursors aren't even "Oh load a small image to put on cursors" its copying a section of their fully redone Cursors file and putting it on the cursors asset.
And the vast majority were unconditional too 😦
(does mean because the source image is read so frequently caching the file io might do something purely due to how frequently the same source asset is being used)

cyan marsh
#

I need to also actually play the game..

#

helps me out knowing what's up

#

i really haven't played the game since 1.4

lucid iron
#

sinz what if u write a edit image optimizer that reformat a content patcher pack to have better edit image layouts Dokkan

winter dust
calm nebula
cyan marsh
# winter dust This is the NPC Creator right?

yeah.. i'm making the code more efficient.. basically when you decide to make a content.json, it will look at what you have in the project and create it from there... it won't be locked on an NPC

lucid mulch
lucid iron
#

if you do that would you save the resulting optimized content pack

#

or only perform the better edits directly

lucid mulch
#

only perform better edits directly.

For example if theres 10 edit patches all in PatchMode.Replace, the last edit wins for the region it selects, so don't need to bother running the earlier ones for the same region

#

for the other patch modes need to be a bit more careful and do things properly

cyan marsh
#

doing the NPC Data will hopefully be a little better than before

lucid iron
#

the reason why i was thinking "save optimized" is cus in VintageInterface2 case you'd be able to change a lot of these small patches into 1 patch on a recomposited image that has alpha in every never changed reason right

#

unsure if this is perhaps too specific

calm nebula
#

It is and isn't

#

Vanilla Tweaks is also like that

lucid mulch
#

It becomes slightly more complex due to a single CP patch can only select one rectangle and cursors is spaghetti

calm nebula
#

I think the more global change to avoid get/setdata when possible is the direction I want to head

#

And I think it's possible to maintain the current api and still do that

#

But I want to prototype it first and well

#

Uh

lucid mulch
#

but yeah my first performance attempt will be a SMAPI patch for optimising AssetDataForImage.PatchImage

cyan marsh
winter dust
winter dust
cyan marsh
#

VS

#

I was considering learning Godot to make a multiplatform version.. but I can't seem to get into it

winter dust
cyan marsh
#

it's more of a time thing for now

#

I have a job now so a lot of my time and energy goes to it D:

winter dust
cyan marsh
#

I got me a new lappy so I can do some stuff at my bed when I'm off

#

but I'm also interested in trying to design my own game

#

mcsrs tho all the people I consider friend keep trying to tell me not to make it

cyan marsh
#

each of them specialize in one aspect of game creation <.< while I'm not a master, I am capable of doing most the tasks alone

#

pretty sure that makes them nervous

#

They also don't like the style of game I'm trying to make.. tbh the idea is antiquated but that's what I like about it

cyan marsh
#

Can i take it to your DM.. it breaks off topic

winter dust
#

Yes, of course.

tribal ore
#

Marriage schedules: Is there any way of telling the game that the spouse should wander around the farmhouse (like they do by default) up until the schedule tells them to leave?

#

Also, I've read in a couple of places that the spouses tend to do their fun activity (Sebastian working on his bike, Elliott reading his book, etc) on Saturday, but is that specified anywhere in the configuration? I can't find it

uncut viper
#

its not specified anywhere configurable

tribal ore
#

But is it mostly Saturday?

#

I can at least schedule around it

uncut viper
#

non-rainy, non-winter saturdays

rigid oriole
#

Dang, the first random person wanting to translate a mod of mine is an offer to do it with chat-gpt :/

tribal ore
uncut viper
#

i believe there are some things that might have higher priority than the patio sometimes

#

but i dont really know how to parse marriage duty code very well

uncut viper
#

but i can say with certainty that those are the only kinds of days they go to the patio

#

also only if its the host's spouse and only if the NPC isnt Krobus

tribal ore
rigid oriole
#

The thing is I woulda changed the license on this mod to be more permissive if it was someone offering a real human translation and even worked with them to actually make this mod i18n compatible (I got lazy don't come for me)

#

But not for chat gpt

ivory umbra
#

thanks! i'm not getting the error anymore, however crops (tested parsnips and tulips) are getting harvested to player inventory even though it's set to TinkerInventory

lucid iron
#

Oh i see i forgor to delete 2 lines of code

#

I'll fix it in 1.5.4 but that's probably next week at earliest

#

I need to make this spaget less spaget properly

#

Something i was thinking of making is harvest for artifact spots and harvest for weeds, if you want those for your mod update u can wait for me a bit Dokkan

teal bridge
#

harvest for weeds
Isn't that basically fiber seeds?

lucid iron
#

No like

#

Have your little guy break the weeds in the wild

teal bridge
#

Oh it's more trinket stuff.

lucid iron
#

Yes PecoSmile

teal bridge
#

(Not that I'm minimizing trinket stuff, I'm just almost done with my runs by the time I get them)

lucid iron
#

It took me much longer than the rest but i finally made the mule trinket you suggest

teal bridge
#

I suggested a trinket?

lucid iron
#

Yea

teal bridge
#

Wow, 7 months ago.

lucid iron
#

The actual implementation ended up being "your little guy has a global inventory you can access with a button (soon to be registered to iconic/star ctrl)"

#

And you hire this little guy from dwarf so she doesn't actually take a slot

teal bridge
#

Sounds interesting. Kind of a portable junimo chest then?

lucid iron
#

It's not shared between trinkets, i used global inv to dodge chest nonsense

#

Star control api is stable right, I'll probably just do that now

gentle rose
#

lame, shoulda used list of string encoded IDs + modifiers in a moddata field /lh

teal bridge
#

It should be. I've drafted up the Nexus page already and just trying to figure out exactly how I'll cut over for the update. Not actively working on any code or received any more bug reports.

#

And by "drafted" I mean "basically given up on trying to fix its insane formatting".

calm nebula
#

You're pink!!!!

#

I'm so bad at crosswords

uncut viper
#

you gotta put the letters in the boxes

dusk mulch
#

BRO IM GOING FUCKING INSANE WHAT, I SET THE SOUND TO PLAY WHEN THE SHOP OPENS, THE SOUND ID IS 000001a8 and when i go check the files ITS RIGHT THERE

#

AND I GO GET THIS ERROR [game] Can't get audio ID '000001a8' because it doesn't exist.

uncut viper
#

that is not even close to a valid sound id

dusk mulch
#

its a hexadecimal

uncut viper
#

which is not even close to a valid sound id

dusk mulch
#

😭

uncut viper
#

i also dont even see it on the wiki page that lists all the audio ids

dusk mulch
#

i dont either but when i unpack the audio id's its right there

hard fern
#

Uh

uncut viper
#

how do you even know what it is then

dusk mulch
hard fern
#

Are you sure you're looking at the right thing

uncut viper
#

that doesnt tell me how you know what "000001a8" is supposed to be

dusk mulch
#

they're in .wav files

calm nebula
#

Yeah, the sound unpacked gives you the memory offset

#

Not the key

dusk mulch
#

i will just scour the wiki for the sound i want

rigid oriole
#

I think button just said they looked at the wiki page and it wasn't there

#

[[Modding:Audio]]

lucid iron
#

i think the part of xact that does have all the mapping isnt unpacked by unxwb

gentle rose
dusk mulch
#

what is the audio ID for Parrot then?

uncut viper
#

well if you ctrl f on that page for parrot you should find it

#

or just browse the list

lucid iron
#

its easiest to look in decompile

dusk mulch
#

i tried using both the decimal and hexadecimal and neither worked and it doesnt have the ID listed

uncut viper
#

this wiki page is literally a giant list of sound ids

#

that is what their names are

dusk mulch
#

...

#

got it to work, ty

#

😓

#

oml its so annoying not having descriptions for these, im going to fill out as many as i can when i get this done

fleet oxide
#

Is it possible to use revealtaste in dialogue to show a random loved item for an NPC? Or maybe I just need to make a randomized list with a bunch of options?

vernal crest
#

I think you could try using the random token but I think you would need to list them, yeah. Unless there's some way to actually grab the data from npcgifttastes to auto-populate a list.

calm nebula
#

Not without c# BUT

#

The game does that already

#

The random friends and family gift taste dialogue lol

#

Don't look at me

vernal crest
#

What random friends and family gift taste dialogue?

brave fable
#

don't make me tap the sign

calm nebula
#

The game will randomly sometimes assign...

fleet oxide
#

Yeah, is there a place I can read about that in the modding wiki?

hard fern
#

I love friends and family

calm nebula
#

Tap the fucking sign, please

#

Daddy

#

Okay I can't even with a straight face

fleet oxide
#

Oh no, what sign

vernal crest
#

Please tap the sign bluebs so I know what sign you mean xD

brave fable
vernal crest
#

How does this get triggered? Does it override normal daily dialogue?

gentle rose
fleet oxide
#

Not what I was expecting but thank you

calm nebula
#

Tap tap

hard fern
#

Why is daddy in air quotes

vernal crest
#

Alternatively, please give me a hint about where to find this in the decompile and I will attempt to peer at it myself ^_^

brave fable
calm nebula
brave fable
#

i didn't setup any testdata to fudge that and it took me a solid 15 minutes of reloading to get elliott to say unspeakable things

calm nebula
#

When you could have just called the method yourself

vernal crest
#

Thank you for your service SDVpuffersalute

brave fable
gentle rose
#

I’m interested to see how many of you will become pink

calm nebula
#

Iro, I'm eating dinner

#

And then I need to go to bed

gentle rose
#

same (but it’s 4am here)

dusk mulch
#

@uncut viper This is the file I was talking about

#

.

#

do .wav files not work in discord?

#

OH COME ON

#

damn audio files dont like me

hard fern
dusk mulch
#

its from the wavebank.xwb

hard fern
#

What is fhat file even supposed to be

dusk mulch
#

idk where it is used in the game

#

sounds like a cat or something

#

im not sure how to describe it

#

anyway im going to go do these descriptions

#

actually nah im too lazy to do all that

#

i need to find this damn sound effect

dusk mulch
#

Why does the game asset repo need my IP address?

tender bloom
#

I don’t know what the game asset repo is but that sounds suspicious

dusk mulch
tender bloom
#

Oh, then if it’s asking for your IP that’s GitHub

#

Idk why GitHub would be doing that when presumably you have an account

#

Probably to prevent spam ?

dusk mulch
#

Yeah but you can only get in through invite

tender bloom
#

Or rather, to prevent someone from making a new account to pretend to be a new person

#

These are almost certainly the defaults GitHub sets

#

You can try looking up why GitHub made these choices

lusty elm
#

.choose small, normal, green, color, code, other.

patent lanceBOT
#

Choose result: other.

rigid oriole
#

.choose actually do the thing i need to do, stare at wall

patent lanceBOT
#

Choose result: actually do the thing i need to do

rigid oriole
#

darn

dusk mulch
#

.choose actually do the thing i need to do, stare at wall

patent lanceBOT
#

Choose result: stare at wall

dusk mulch
#

YAYYYYY

#

@rigid oriole

vernal crest
#

I figured I'd get more practice actually reading the game code before I ask for access to the repo since until I can it won't have much use to me.

vernal crest
#

Is it? I thought it was just the decompile

lucid iron
#

there's content in the repo too

#

but the things in repo and thing from ilspy is basically same

vernal crest
#

Yeah my only interest in it was if I wanted to look at things when on my laptop

dusk mulch
#

dude im going fucking insane, i re-unpacked the audio files in case the file i was seeing was a mistake and it was still there, and its not on the wiki, and its hexadecimal doesnt translate to anything

hard fern
#

asking again if ur actually looking at the right thing

#

since if it's not on the wiki

dusk mulch
#

yes.

#

i re-unpacked the audio files

#

it had the same hex

#

but its hex doesnt translate to anything

#

this is what it translates to: ���

brave fable
#

why did i read the readme to unxwb

uncut viper
#

a lifelong love of words

brave fable
#

a love sorely unrequited.

dusk mulch
#

it is from the wave bank (not 1.4)

ivory plume
#

(The hexadecimal value is just its index in the soundbank, it's not an encoded value.)

proud wren
#

Hey so I’m attempting to make a standalone mod that’s just the SVE Infinity Weapon buffs and I’m have no idea what to do for content.json

#

Turbo noob here

hard fern
#

i keep reading that as "uwuxnb"

uncut viper
#

if theyre custom buffs thats likely C# territory

#

i dont know what the buffs are

proud wren
#

No it’s just stat rearrangements

dusk mulch
proud wren
#

Nothing truly custom

uncut viper
#

!startmodding start here then

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.

uncut viper
#

(you want the Content Patcher stuff)

lucid iron
#

what do you mean sve infinity blade buff

#

do you just want to make the sword stronger?

ivory plume
dusk mulch
#

What do I put that script into?

acoustic summit
#

Does anyone know a better way to position menus to be consistent with UI / zoom scaling besides what Im currently doing? (Setting the pos x and pos y, then scaling them to the zoomlevel and the inverse of the UI scale, both to the one and a half power)

#

Its been working for me, mostly, but feels really odd

uncut viper
#

the better way is to use Stardew UI

#

other than that its trial and error and good luck

#

though i cant say ive had to do any scaling like that before

#

(i havent done TOO much ui stuff myself though, for a while)

ivory plume
acoustic summit
#

Alrighty, Thanks anyhow 🙂

uncut viper
#

vanilla ui coding is just hell and fun™

dusk mulch
#

I don't have VS... I will just figure something out.

brave fable
#

darn, that script really works

#

your 01a8 hex code is for a sound named Raccoon by the way

dusk mulch
#

Oh, ty!

brave fable
#

i'll update the wiki page with the mod output

lucid iron
#

what would you call {Artifact Spot, Seed Spot}

uncut viper
#

whats the context

lucid iron
#

i just need a enum name

#

for these 2 Things together

#

spot...

tender bloom
#

Wiggly spots

uncut viper
#

are seeds wiggly?

tender bloom
#

I call one wiggly worms and the other wavy grass

hard fern
#

SDVpuffersweats the mystery seed spots are wiggly

tender bloom
#

I assume these are the two chu meant

lucid iron
#

🪱

brave fable
#

ToolActionableTerrainFeatureButNotTreesOrBushes

uncut viper
#

i thought it was for hoedirt that had seeds planted in them

lucid iron
#

those are objects

uncut viper
#

i mean, yeah, but idk what {Artifact Spot, Seed Spot} is for out of context

lucid iron
#

this language is doomed

uncut viper
#

i wouldnt call the things you hoe up a seed spot

lucid iron
#

oh seed spot is the actual item id yea

uncut viper
#

there are many times where i find it best not to follow in SDV's footsteps

lucid iron
#

the hoe stuff just check these literal id if (base.QualifiedItemId == "(O)590" || base.QualifiedItemId == "(O)SeedSpot")

#

i was also reply to blueberry anyways

#

maybe i just call them DigSpot that seems fine

acoustic summit
#

Do Bus Locations, Train Station and Central Station all play nice when installed together?

lucid iron
#

ya

#

basically if u have central station

#

bus and train locations get onto same dialogue menu

unique sigil
#

destinations added by BL/TS will appear, just marked with Bus Locations or Train Station prepended to its name

lucid iron
#

but if u r add support in new mod do just add it to central station

lucid iron
#

however, i was under impression that if you use IClickableMenu you don't have to do anything about the draw bolbthinking

brave fable
#

includes (hopefully) all descriptions already on the page

uncut viper
#

unfortunately i can't edit the wiki since i haven't edited the wiki enough, so if anyone would like edit credit on updating the wiki's audio page for 1.6 soundback changes be blueberry and i's guest

lucid iron
#

i think it's probably too many changes at once

uncut viper
#

it is indeed a mass edit by a new user exception

brave fable
#

would they prefer i add the changes one line at a time

uncut viper
#

could make a diff instead

#

and yeah

#

add one by one

lucid iron
#

yea we only accept handmade artisan wiki edits here

uncut viper
#

no wiki slop

rigid oriole
lucid iron
#

yea i went with that

brave fable
#

there's a few ways about it though depending on how you build your ui, so do whatever works. there's no standards

#

unfortunately the wiki page source is sorted alphabetically rather than by wavebank index, otherwise we could very easily do small edits to append new soundbank entries

#

may as well just wait for someone who's made enough edits to come along and post that edit SDVdemetriums

uncut viper
#

why does that mean you cant
does it actually count moving everything down a few lines as one big massive edit, surely not

rigid oriole
#

i think i have wiki perms

#

i can tag your wiki name if you tell me what it is

proud wren
#

I am a big dumb idiot

#

There’s a mod that lets you edit weapon stats already on Nexus

rigid oriole
#

!twocakes

ocean sailBOT
#

If you discover that someone has made or is making a mod with a similar concept to yours, don't stress! Our community promotes the idea of "two cakes", where two versions of the same idea can peacefully co-exist. Your mod will have your own unique stamp on it that makes it special.

dusk mulch
# ocean sail

yeah but why would someone want 2 mods that do the same thing

lucid mulch
#

hmm my optimisation appears to have done an oopsie

rigid oriole
#

people are free to pick whichever one they like more

uncut viper
#

because they likely won't do it exactly the same

rancid musk
#

Some of the best tasting cakes I've ever had have been the not good looking ones

dusk mulch
#

oh so i just have to be better

rancid musk
#

(Wow I am tired lol)

rigid oriole
#

i don't think it's wise to see it as a competition lol

brave fable
uncut viper
#

TBH I didn't even question it Khloe I thought you were just going for a nice truism

rancid musk
#

Nah I am not in some kind of witty thing is thing mood I am just sleepy

dusk mulch
#

Oooo how exciting! I got an email! Let's go check it out- its spotify spam.

lucid iron
#

weapon rebalance mod...

brave fable
#

"holy shit, one tautology"

rigid oriole
#

hey blueberry what's ur modding wiki name so i can credit u with the mass edit

brave fable
#

surprisingly it's Blueberry

rigid oriole
#

neato, and it's an update for the 1.6 tracklist?

dusk mulch
brave fable
#

yep, straight from pathos' c# export script, updated with existing descriptions SDVpufferthumbsup

lusty elm
#
  1. there are pretty much always going to be differences, one might have 100 options, one 10, the 10 one is often going to be more approachable, even if some would see the 100 options as "better".
  2. regardless its also about learning and improving your own skillset, something you learn doing it will likely help you down the road as well.
  3. the users will use what the users use, as will mod authors, everyone has their preferences.
  4. even microdifferences like your mod being published in 2025 and the other being updated last in 2024 will often be seen as more reliable.
proud wren
#

I did not mean to spur this conversation

uncut viper
proud wren
#

Very sorry

lucid iron
#

theres no sorry

#

only more making mods and not play game

lusty elm
#

nothing to be sorry about

lucid iron
rigid oriole
brave fable
#

i'm afraid the bakers are out in force now. we're going to be buried in cake

lucid mulch
#

As long as you use Profiler, which I don't think I have competition still, you can use whatever else idc

uncut viper
#

it's a long section I use didn't want you to get the tempting urge to just Ctrl shift end SDVpuffersquee

#

I just didn't*

brave fable
#

now you're making me doublecheck that i didn't do that SDVdemetriums

uncut viper
#

i didn't and it still blocked me

lucid iron
#

i cant imagine how one would 2 cake profiler bolbthinking

#

how do u profile code different...

rigid oriole
#

I THINK the copy/paste from blueberry works fine if i'm only replacing the track list section

lusty elm
#

The pouring ran over the last like 24 hours has completely sapped all my energy... but i should do something...

uncut viper
#

measure in ticks and not milliseconds

brave fable
#

yeah it's only for Track list

rigid oriole
#

ok i did the edit, let me know if I messed up lol

brave fable
#

looks good! thank yooou

rigid oriole
#

thank u for ur wiki contribution 🫡 the other week i was reading the audio page and going "darn, i wish someone would update this for 1.6"

brave fable
#

well noone told me there was a script to do it for me lol

rigid oriole
#

sooooo real

#

maybe someday the 1.6 guide will finally find homes in its respective pages

brave fable
#

SDVpufferpensive if only there were a script to do it

uncut viper
#

tbf how would I even really know it wasn't updated. lemme just check the audio page for a list of IDs so I can check if any on there are missing from the audio page

rigid oriole
#

i knew it wasn't updated cause of the cursed_mannequin sound i saw in code being missing

rigid oriole
#

sometimes i contribute content to a modding wiki page and i'm like "wow. my civic duty to the community" meanwhile i have so many other obligations that should probably take precedence SDVpuffersquee

teal bridge
#

Most users probably don't want upwards of 50 MB of profile data generated per second.

lucid iron
#

i thought yours is in ur code directly

#

with diagnostics

teal bridge
#

It is.

#

Just because the cake isn't for sale doesn't mean there is no cake.

weak pulsar
#

@acoustic summit Hi again!! I had a few more questions/ideas as I chip away at sprites if that's still ok! MewHeartShiny

  • Could it be possible to spawn a few different critters together? Say, different rats/birds/pokemon (looking at Flabebe specifically atm--would love if they could spawn with multiple colors in a group!)

  • A way to make spawn rarity vary by season? Like making them rarer in the Fall/Winter?

  • If a critter is set to follow but not attack...will it still follow? Bc friendly following critters, if only for x distant, would be pretty adorable (if not a little cheaty with catching them 😂 )

Sorry for hitting you with so many questions!

lucid iron
#

nitv added GSQ right

#

could do the second one with just SEASON RANDOM

weak pulsar
#

Oh snap yeah I'm seeing that now-- looks like I get to learn more EyeShake

lucid iron
#

[[modding:game state queries]]

acoustic summit
lucid iron
#

did you do any cycle check DokkanStare

acoustic summit
#

Im not sure what a cycle is

#

haha

#

For the last one though I'll add in a separate option for the creature to be a friendly follower 🙂

lucid iron
#

prevent people from spawning infinite Bug because they trigger actioned on a Bug with additional Bug

#

though ofc if ur action spawn Bug do not raise trigger then no cycle is possible

uncut viper
#

or is that for C# gsqs only

lucid jewel
#

Does anyone know if I'm modding the Town map and made a building but now tall grass grows through the building tiles, can I do anything about that? Is that a map property?

lucid iron
#

!rtf

ocean sailBOT
#

Reset Terrain Features (https://smapi.io/mods/#Reset_Terrain_Features) is a mod that lets you reset, clear, or generate everything that spawns on a map using an in-game menu. That's especially useful when changing maps mid-save, as the debris will otherwise use the old layout (causing things like trees in the water or bushes blocking exits).

lucid jewel
#

oh, is it because it was already there?

lucid iron
#

if you are making a mod that edits town map, first of all don't, but secondly you can use a trigger action from BETAS to remove stuff at where you plan to put building

acoustic summit
#

My CP view of some of this is limited, since I haven't used GSQs or Trigger Actions in my mods. I kind of assumed CP could access the arguments passed in a trigger, unless they can't? In which case I don't know why are they bundled

uncut viper
#

they cannot. a custom GSQ can access them

lucid iron
#

since nitv bugs are items, what i'd recommend is to use the Input/Target scheme

uncut viper
#

(important to note that its not a CP limitation either, someone using your triggers in C# would also not be able to without writing their own custom GSQ)

#

you could also be the one to provide said custom GSQ

lucid jewel
lucid iron
#

So when you are doing things, check GSQ like this

GameStateQuery.CheckConditions(Data?.EnableCondition, player: owner, inputItem: Trinket, targetItem: Trinket);
#

(pretend trinket is bug im too eepy to edit)

#

make custom GSQ that acquires the inputItem/targetItem like this

#
!GameStateQuery.Helpers.TryGetItemArg(
    query,
    idx,
    context.TargetItem,
    context.InputItem,
    out Item item,
    out var error
)
#

idx usually 1

uncut viper
#

if you are the one writing the GSQ you dont need to do the input/target thing

lucid iron
#

but u r make the GSQ u do what u want (as long as u doc)

uncut viper
#

you can access the custom data

lucid iron
#

doing it like this let you use it in more places

uncut viper
#

but makign them target/input items does mean other GSQs can have access to them, if it might somehow be useful (like BETAS ones)

lucid iron
#

machines for instance

dusk mulch
acoustic summit
#

How would I go about making a custom GSQ which accesses the arguments in a trigger? Or would that be me updating some arbitrary stored data for a GSQ to reference each time the trigger occurs?

uncut viper
#

still, for a custom GSQ you might as well get the data directly since you also mentioned passing a tile

lucid iron
#

for trigger raise do it like this

TriggerActionManager.Raise(
    TriggerEventName,
    player: proc.Farmer,
    location: proc.Location,
    targetItem: e.Trinket,
    inputItem: e.Trinket
);
uncut viper
#

(as in, do both, custom data and input/target stuff, but in your own gsq just get the data)

#

a GameStateQuery delegate gets passed a GameStateQueryContext parameter which should hold your custom data

acoustic summit
#

I don't think I could pass Bugs as item, unless I was only passing the item version of them such that they could check its name

uncut viper
#

that would be the idea

lucid iron
#

well you can also choose to just pass the bug in CustomFields

uncut viper
#

if the item ID of the bug is their name then they can use the existing ITEM_ID GSQ to check it, for example

lucid iron
#

thats fine if u r like "im never using this GSQ anywhere else"

#

but hm, if u do that maybe just cut the Data/TriggerActions middleman

uncut viper
#

well you still want the trigger

lucid iron
#

not if you just let ppl put in a list of actions on the model Dokkan

uncut viper
#

you still want the trigger

#

the point of the trigger is to let mods react to a thing spawning

#

whatever mod that might be or whatever their intent is

lucid iron
#

yea im not saying to stop raising the trigger

uncut viper
#

im not sure what middleman you're talking about then

lucid iron
#

but for the narrow case of nitv spawn -> a follow up nitv spawn

#

you dont have to round trip to data/triggers

#

cus it's your mod u do whatever

uncut viper
#

i still dont know what you mean

#

neither the trigger nor the GSQ are doing anything in the middle of anything

lucid iron
#

Could it be possible to spawn a few different critters together? Say, different rats/birds/pokemon (looking at Flabebe specifically atm--would love if they could spawn with multiple colors in a group!)

#

this is the desired feature

acoustic summit
#

Its 4 am so my brain is a bit fried, but this has been super helpful info that I will use to make those parameters useful so thankyou both so much

uncut viper
#

oh, i was speaking generally and not in the context of that specific persons request

#

i understand now

lucid iron
#

yep i get that, and it's good for u to do the trigger stuff nicer too

#

prob also still good to have a GOT_SPECIFIC_BUG gsq

acoustic summit
#

There is a GSQ for a specific bug being spawned, my main concern is conveying the info on it's tile

uncut viper
#

that GSQ you currently have wont help with the trigger

lucid iron
#

So for position, you can shove into custom fields

#

Since it's just a Vector2/Point

uncut viper
#

if you have the data in the Trigger being raised, then you want to be able to react to that bug, so you need a way to access that data specifically happening at that trigger

acoustic summit
#

So some combo of a GSQ for last bug spawned (Or input item as item of creature) and using custom fields for tile, would allow for example that requested use case

dusk mulch
#

My mod has been up for an hour and it has 0 downloads and 0 views, how can i attract more people?

uncut viper
#

this isnt being pedantic but is just actually core to the idea, but its not just "last bug spawned." its specifically "the bug attached to this trigger"

#

you need to make sure the GSQ is looking inside the data attached to the trigger and not just at a list of recently spawned bugs

lusty elm
#

There, Hopefully that fixes that issue... I noticed my submaps for Forever Falls were showing up on other farm maps as valid options, so i put conditions on the loading for them, which caused multiplayer incompatabilities i believe, so i ended up removing all the conditionals from the loads, and removed the CanBuildHere T from the maps and added THEM back as a conditional CP patch to each of those maps based on the Type name of the main farm map. :p

lucid iron
#

You do get some lack of immersion tho, if your building aint there

#

The more general thing is that lots of mods put their houses in town

lucid jewel
#

It's just for me and I edited all of the festival maps so I wasn't really worried about it

lucid iron
#

It's just a compat concern that you can choose to ignore in favor of whatever mod list you got

acoustic summit
lusty elm
#

Town is the most popular thing to edit, so it causes incompatabilities, and sometimes adding stuff used to break pathing for NPCs, which would break them, I dont know if the NPC system got more robust in 1.6, but it used to be you could blow air in their general direction and they'd break.

uncut viper
#

there isnt actually really anything written on the use of custom data in trigger contexsts specifically, but looking at the Context stuff in ilspy will help

#

custom data using the actual triggerArgs array is not very common for basically this reason

lucid iron
#

I still think if it's an intramod thing you r probably better off with just regular ol C# event LilyDerp

lusty elm
#

.choose small, normal, green, color, code, other.

patent lanceBOT
#

Choose result: other.

lusty elm
#

Maru's Robot really doesnt want me modding atm.

uncut viper
#

i dont think triggers are intended to be an intramod thing

dusk mulch
patent lanceBOT
#

Choose result: yes

dusk mulch
#

well there is your answer

lucid jewel
lucid iron
#

you can have both internal stuff and external trigger

lucid iron
#

Just up to whether u think it is a core feature to be able to have spawn groups

acoustic summit
lucid iron
#

It's a framework so by definition you don't use any of it though

#

It is more like

  1. Offer series of Trigger GSQ Action to do dynamic spawns
  2. Design your own system for dynamic spawns, which you expose on some data model of yours
#

You can do 1 or 2 or both

uncut viper
#

i dont think doing 1 is "better off" than doing 1 AND 2 though

#

how can doing more than 1 be worse than just doing 1 here

lusty elm
# dusk mulch Bump

Improve the Description, both Shorthand and Long version, add more Images to show what it is and showcase it, respond to comments if there are any.

And honestly, Don't worry about it, some times of day are dead for people looking at mods, some days of the week, don't judge it on an hour, at least give it a full week.

Some mods also are naturally going to have less downloads, especially if its something that adds a map, or is based around starting a playthrough.

For example, a Farm map, you can only have 1 and it defines a playthrough, its naturally going to get less downloads than a mod that makes the barn look different. Some mods are also naturally just way more used, like recolors.

lucid iron
#

sleep dev time

uncut viper
#

the least dev time is doing nothing

lucid iron
#

Or like you didn't think of any good reason to do 2

lucid iron
#

Honestly i think sometimes i jump right into doing 2 then go hold on 1 would have done it

uncut viper
#

(also i actually meant to swap 2 and 1 in my post woops)

lucid iron
#

In that case the argument for 2 is "greater control over the behaviors"

uncut viper
#

right but my argument is "you can have that, AND still do triggers"

#

which is like necessarily better

#

bc adding triggers does not take away from the C# events

lucid iron
#

Yea

#

Both options in eye of CP mod is like

#

Yay more knobs

uncut viper
#

i think the more triggers there are the better

#

surprising coming from me im sure

lucid iron
#

Button is there any potential spaget with registering trigger not at game launched

uncut viper
#

no

#

besides something trying to use it before its registered

lucid iron
#

Well that part is c# so probably fine

uncut viper
#

i would often register things in my ButtonPressed event before i set up my automagic to do it for me

#

id just ad it to my F2 debug key to register it if i realized i forgor

lucid iron
#

I was thinking about this cus

uncut viper
#

same with queries and actions

lucid iron
#

I have 1 singular trigger atm

#

Potentially raised by some trinket

#

And people need to do a gsq to restrict it to that trinket

#

So what if i just let ppl give me a suffix

#

And register+raise that trigger

uncut viper
#

yeah theres no issue there

lucid iron
#

Yey

uncut viper
#

register freely

#

be unbound

#

the only thing i know and use that i know restricts to gamelaunched is CP's api

lucid iron
#

I didn't think about this much cus 1. mostly just one slot previously 2. actions is more direct than trigger

lucid jewel
#

On Tiled, if I use a TileData to make an action to warp, is there any reason it wouldn't show up when I test the game? There's no action for the square I put it on

uncut viper
#

is there a tile placed on the corresponding non-object layer

lucid jewel
#

yes

uncut viper
#

have you checked theres no other patches potentially overriding it

#

if there isnt then idk enough aobut mapmaking to debug further all i really know is the "you need things on both layers for tiledata to work"

lucid iron
#

Did you name it TileData

lucid jewel
#

Yes, no extra spaces or anything

lucid iron
#

You can use Lookup Anything (tile lookup on) to check whether it applied in game

#

If it's an action warp your cursor become hand when u hover

lucid jewel
#

yeah, but it doesn't

lucid iron
#

It's not applied then, guess you have to dig through patch summary to see who else patch there

#

Do you see other visual aspects working

lucid jewel
#

yeah, everything else is working. just the action warp

#

I even tried copying and pasting an existing one into that spot to see if that would work but no luck

lucid iron
#

You definitely used Buildings right

lucid jewel
#

definitely on buildings

lucid iron
#

And in game there is a buildings tile there that isn't passable

lucid jewel
#

yes

lucid iron
#

What spot did you try to patch

#

Or at least what location

lucid jewel
#

a spot in town that usually has a tree

#

I only have my own mod on

lucid iron
#

yggy is it some cursed town tree problem

lucid jewel
#

what's weird is that the map looks right

#

so it's loading almost everything

lucid iron
#

Some GameLocations just have special tiles that are hardcoded

lucid jewel
#

I'll try to move it and see what happens

lucid iron
#

I don't know if Town trees are special, maybe

lucid jewel
#

No, nothing

#

It's like the TileData just doesn't exist

uncut viper
#

can you send a picture of your tiledata

lucid jewel
uncut viper
#

is it normal that the X, Y, Width, and Height are not like, integers

brave fable
#

95.67 and 976.17 is your problem, same with height 16.33

uncut viper
#

im gonna guess its not

lucid jewel
#

okay, let me give it a try

#

edited to that

brave fable
#

you're able to prevent this from happening in future, as well

lucid jewel
#

Worked! Thanks! I must have grabbed a corner on accident at some point because that one was just a copied tile from Sam's house

lusty elm
#

.Choose season, code, game.

patent lanceBOT
#

Choose result: game.

urban patrol
#

hi everyone! i'm completely new to modding and i was told i could find help here? i'm trying to add a new location to the game accessible from the community center, and i've had issues editing the community center map

uncut viper
#

you chose like one of the more notoriously annoying maps to edit

urban patrol
#

oh man 😅

uncut viper
#

do still describe the issue though! its not impossible

#

it just has a lot goin on

urban patrol
#

this is my content file at the moment. i'm able to debug warp into the new location (DeadBoyAgency) no problem, but when i try to debug warp into the community center edited maps, i'm unable to move around without being kicked out to town. when i enter the community center like normal, i don't see my changes

uncut viper
#

!json

ocean sailBOT
#

JSON is a standard format for machine-readable text files that's used by Stardew Valley mods.

If you need help with a JSON file, you can upload it to smapi.io/json to see automatic validation and share the link here.

When making mods, it's recommended to edit your files in a text editor with JSON support, such as VS Code, Notepad++, or Sublime Text. These programs will check for syntax errors.

uncut viper
#

(use the smapi.io uploader link in there for sending jsons)

urban patrol
#

oop okay one sec

uncut viper
#

!log a log might be helpful too even if it might not show anything obvious

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.

lusty elm
#

can you start by describing the goal of your mod in more specifics? the more specific you are the more we can aid you in doing exactly what you want to do.

urban patrol
ocean sailBOT
#

Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Pro, with 3 C# mods and 1 content packs.

urban patrol
lusty elm
#

like do you always want it accessible? is it only when its completed? why do you want it linked through the community center, what is the goal of the room, etc.

urban patrol
#

always accessible both when completed and before, and i chose the community center for funsies which i guess i could change to another easier map lol. the goal of the room is to be like a secret attic of sorts i guess

#

i'm unsure if the edited community center maps are even being loaded into the game

#

i've tried using both load and editmap and neither has appeared to have any effect

uncut viper
#

are you 100% sure the file you are editing is actually the one in your mods folder?

#

because i dont see it editing communitycenter in the log at all

#

But I don't see anything that would make it not

#

well, actually I do

#

there is no Maps/CommunityCenter

urban patrol
#

okay that's what i thought actually because the files are _Refurbished and _Ruins

uncut viper
#

the file names are what the asset names are

#

this goes for everything inside the unpacked content folder

#

if it doesnt exist in there it doesnt exist in the game

urban patrol
#

should i write two separate editmap functions to edit each one with my edited versions?

uncut viper
#

you should fix your first editmap to point to the ruined one and probably remove the When condition bc its unnecessary

#

and fix the second one to point to the fixed one

#

the fixed CC

urban patrol
#

okay let me try changing that, thank you!

ocean sailBOT
#

Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Pro, with 3 C# mods and 1 content packs.

uncut viper
#

can you type patch summary into your console (when you've loaded a save) and send the log?

urban patrol
ocean sailBOT
#

Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Pro, with 3 C# mods and 1 content packs.

uncut viper
#

to be clear btw the Location is called CommunityCenter

#

the map isnt

#

so you cant warp to the ruins version

urban patrol
#

ahhh i see that makes sense

uncut viper
#

which is why it warped you to your DeadBoyDetectives_CommunityCenterRuins there

#

is your CommunityCenterRuins.tmx just a tiny piece of a map you are trying to overlay on top of the existing CC?

#

or is it a whole community center

urban patrol
#

it’s a whole community center, i copied the old file and edited that

uncut viper
#

bc i noticed you dont have a ToArea in your editmaps

#

but you are only specifying a 4x5 piece of your edited map

urban patrol
#

so you need both ToArea and FromArea in an editmap function?

#

i'm not against replacing the whole map btw but i got the impression it wasn't needed if it could be avoided

uncut viper
#

the FromArea will determine where from your edited version it will take that 4x5 slice, and if you dont have ToArea it will default to the same size as your FromArea, but place it in the very top left

#

you should not replace the whole map, no

urban patrol
uncut viper
#

where to put the chunk and how big a chunk it should be

#

if your edited version is the same exact map its probably just the same exact coordinates and size

urban patrol
#

nice okay let me make those changes real quick

vernal crest
#

If your map consists only of the change you want to make, you don't need FromArea because it defaults to the whole map.

#

I've recently seen an example of one map being used for multiple different patches, presumably because it was like spouseRooms.tmx and consisted of different bits on the same map file. I wonder if that is more performant than having multiple .tmx files.

urban patrol
#

it works now! i have to edit my warps a bit, because i put the player behind the warp when exiting accidentally, but omg what a relief

urban patrol
#

thank you all so much for your help <3 i'm sure i'll be back in here another day with more questions lol

vernal crest
vernal crest
dusk mulch
#

ty!

#

kudos given

#

i forgot to save a .tsx file and i was wondering why it was still saying i had tilesheet climbing

vernal crest
#

I'm curious about why you're using so many tsx files

dusk mulch
#

i have 1 in my mod, wdym

vernal crest
#

Are you animating that many different things?

dusk mulch
#

1 tsx, 1 txm

vernal crest
#

Well you made a tsx file for every file you used in the Farmers Market mod before

vernal crest
#

(Or nearly, I just went off what I saw in screenshots and stuff)

dusk mulch
#

i got rid of those

#

lol

#

wait.

#

screenshots?

#

SCREENSHOTS?

#

WHO FROM?

vernal crest
#

Are you aware you don't need a tsx for every tilesheet? /gen

#

It was just someone who wanted to check with me about the vanilla assets thing because they noticed it and know I make mods so they wanted to ask me why someone might do that (because they don't do map stuff)

dusk mulch
#

but hey i got the map patch working!

vernal crest
#

Tsx files are only useful for transferring animation and other tile information between maps

dusk mulch
#

well whenever i add a new tilesheet into tiled it makes me make a new .tsx file

vernal crest
#

So if there's a tilesheet with a lot of animated tiles on it, you can export the tsx from a vanilla map to keep those animations instead of having to redo the animations yourself

#

Are you using the "add an external tileset" option from the top menu or the "add a new tilesheet" button in the tilesets box?

dusk mulch
#

Add a new tilesheet

#

or

#

i drag and drop

vernal crest
#

This one?

dusk mulch
#

yeah

vernal crest
#

Oh, you might not have "embed in map" enabled when you're adding it

#

It's a checkbox on the popup box after you press that button

#

It just simplifies things because then all the information about the tileset is actually in the .tmx file so you don't have to deal with a bunch of .tsx files that don't add anything useful.

dusk mulch
#

ohhhhhhhh

dusk mulch
vernal crest
#

I do

dusk mulch
#

can you test my mod compatibility?

vernal crest
#

Possibly

#

Can your computer not run it?

dusk mulch
vernal crest
#

Even without any other mods? (Except pre-reqs)

dusk mulch
#

I will try without any other mods

#

damn its a big file size for a mod

vernal crest
#

Yup. It's a very big mod.

dusk mulch
#

i dont even think you can call this a mod, this is a whole DLC

#

2.3K FILES?!

rigid musk
#

XL mod

dusk mulch
rigid musk
#

Also I really have been coding for too long, I just got to a dialogue piece in my fanfiction and started typing {{i18n

#

I am unwell

dusk mulch
#

LOL

rigid musk
#

It was such a knee jerk reaction/habit I dont even know how to feel

dusk mulch
#

"{{i18n:Translation-Key-518}}" he said solemnly...

fossil osprey
#

What a profound wisdom

rigid musk
#

"{{i18n:Aos.QiFanfictionResponse1}}", he said, tipping his hat.

fossil osprey
#

Qi fanfiction 👀

dusk mulch
#

omg i love SVE im never leaving

rigid musk
#

I'm taking a break from my qi mod... to write qi fanfiction

fossil osprey
#

Please go on, I crave stories about that guy 👀

rigid musk
#

sideeye i mean ive posted a few chapters for it, i havent updated it in... checks notes my god two+ years

fossil osprey
#

You're so brave for posting stories that aren't finished SDVpuffercry looks at 30+ started projects

dusk mulch
#

i checked out everything in SVE BUT the 1 thing i needed

#

YALLL

#

MY MOD IS COMPATIABLE WITH SVE

#

I DID IT

#

I DIDNT EVEN HAVE TO CHANGE ANYTHING

#

as much as i love sve my computer doesnt love it

#

so time to get rid of it

hallow prism
#

mods that don't touch the vanilla locations usually are fine with existing stuff including SVE

dusk mulch
#

yeah i had to downgrade my mod drastically due to having too many vanilla game assets in there and it would take me too long to fix so i just resorted to this

#

(too many game assets = copyright uh oh)

dusk mulch
mellow karma
#

hey, are ther any common mistakes for new NPCs schedule in custom maps?`I got my NPC to spawn and everything (no errors in SMapi) but he will not move

#

{
"Changes":
[
{
"LogName": "Peters Schedule",
"Action": "EditData",
"Target": "Characters/schedules/Peter",
"Entries": {
"spring": "610 Custom_DansDorf 29 11 2/700 Custom_DansDorf 31 23 1/2000 Custom_DansDorf 30 11 0",
//"rain": "910 Custom_Backwoods_to_DansDorf 9 12 1/2500 Custom_DansDorf 30 11 1",
}
},
],
}

vernal crest
mellow karma
#

no i think not

#

i will try

#

it worked thank you

#

but i got this massage in Smaoi: [SpaceCore] Requested path to Backwoods is blacklisted from pathing, for NPC Peter
[SpaceCore] Requested path to Custom_Backwoods_to_DansDorf is blacklisted from pathing, for NPC Peter

#

so he cant enter the other area right?

rigid musk
#

yeah npcs cant go into the backwoods

blissful panther
#

Yeah, NPCs can't go through Backwoods. If that's the only route, you'll need some alternate path.

rigid musk
#

warp rooms are good for that

lucid mulch
ocean sailBOT
#

Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Pro, with 249 C# mods and 565 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

mellow karma
#

ah ok, is there a list where npc cant go?

rigid musk
#

Iirc the Backwoods and Secret Woods are the only two fully excluded from npc path finding

#

Well the farm too but

lucid mulch
#

(for completeness sake also the cellar(s)) and the tunnel next to backwoods/busstop

#

in Data/Locations defines Tunnel,Woods,Backwoods with content packs or other mods could override back again trivially. (you will cause bad things if you do that to the location north of the farm)

and in codebase theres hardcoded exclusions for Farm,Cellar and Backwoods as well

mellow karma
#

ok thank you, NPCwarp Mappropertie should also fix some problems, no?

lucid mulch
#

EditData on Data/Locations and setting ExcludeFromNpcPathfinding on the location to false for the vanilla location would re-enable it (for those that are disabled due to it at least, the hardcoded ones would be banned anyway)

lusty elm
#

If memory serves, the key thing is to make sure there isnt a circular loop in pathing via warps, it breaks (or used to, dunna if its been fixed in 1.6 or w/e) npc pathing, Hence why Backwoods and Farm have always been blacklisted from NPC pathing.

lucid mulch
#

yeah loops do bad things

#

even worse if its a fake loop like Backwoods because while it in theory connects busstop to mountain, they aren't navigatable without the shortcuts unlocked which only happen when the player shows up, not when an npc in the background would try routing

#

and npcs trying to go through the farm would cause chaos with destroying everything

lusty elm
#

Ye, cuz they only look at warp connections, not pathability

lucid mulch
#

the micro pathfinder would do pathability to a certain degree, but the micro pathfinder cant tell the macro pathfinder to try a different route

mellow karma
#

i got it working with NPCWarp, he dont need to be in backwoods

lucid mulch
#

SpaceCore's rewrite of the macro pathfinder iirc does fix the loop problem, though I dont think it does the false positives

gentle rose
#

micro being within a map, macro being between maps?

lucid mulch
#

yeah

gentle rose
#

makes sense, ty

lucid mulch
#

the macro one in vanilla is a depth first search, and so it just does the first learned way to get from A->D.
the micro one does a flavor of A* pathfinding

gentle rose
#

ah, a naive DFS explains the issue with loops

lucid mulch
#

it also recalculated the full depth first search cache every time a warp anywhere changed, which took a long time.
1.6 made it much much faster, though kept its flaws.

#

1.5.6 had SpriteMaster being a near mandatory mod to get load times from 10+ minutes down to 30 seconds and 9+ of that was the pathfinder

gentle rose
#

huh. Surely preparing some kind of proximity matrix in advance for known locations would be preferable SDVpufferthinkblob

lucid mulch
#

vanilla didn't need a complex pathfinder theres like 5 maps

gentle rose
#

true, I guess it was only necessary once the game got optimised for mods

lucid mulch
#

once you ban the naughty ones that vanilla shouldnt use anyway

gentle rose
#

this still seems like a less than ideal way to handle it for mods though, if I'm not mistaken? (and also like it would be very susceptible to the stardew map version of a zip bomb pffft)

lucid mulch
#

spacecores solves the problem well enough and anyone with enough mods to cause an issue has it anyway

blissful panther
#

Very quick question... does anyone know of any mods which manually spawn farm animals other than MEEP? As in: create animal instance, and add it to a location.

spice inlet
#

afaik both space core and cfl can spawn starter farm animals

blissful panther
#

Which puts them in some farm building and they live there?

#

If those are the only ones, that's potentially very good news.

lucid mulch
#

vanilla 1.6 farm?

blissful panther
#

Which will also have a home assigned, which is good for me.

#

Essentially, I'm just trying to figure out if FarmAnimal.home or FarmAnimal.homeInterior are ever not assigned by any other mod (or the game itself), and I'm not seeing any instance in the game itself except for Marnie's animals, and that wouldn't be affected by what I'm thinking of.

flat sluice
#

Hi,

It has been a long time since I first asked here, in this very channel, for help with modding - that day was the 3rd of August 2024. Since then, many things in many lives have changed. Some of them were good, some were not.

Anyways, here we are - 195 days later (BTW, happy Valentine's Day 💘). 225+ days from when I started coding my first SV mod. And today, after what felt like an eternity, I achieved the goal for this mod - version 0.8.0, which is the official Nexus Mods public release version for my NPC Eleanor mod 🎉

You can check my mod - NPC Eleanor - on Nexus Mods ( https://www.nexusmods.com/stardewvalley/mods/31663; inform me when it will be visible, please) or on GitHub (https://github.com/DenisSilent/Eleanor)

Also, by writing this, I'd like to thank everyone who helped me here. I really, really appreciate it. I know that without your help, I wouldn't be able to create this mod. I won't ping you as I don't want to disturb you, but don't worry - you won't be forgotten - check out the included changelog (also found here: https://github.com/DenisSilent/Eleanor/blob/main/[CP] Eleanor/zzz_dummy files/changelog.md).

Thanks again and have a nice day.
Denis001 a.k.a. StrojvedouciDenis

GitHub

This Github repo is a repo for upcoming NPC Eleanor, which is a mod created by StrojvedouciDenis (a.k.a. DenisSilent or Denis001 (at Discord)) for game Stardew Valley. - DenisSilent/Eleanor

hallow prism
#

it is visible when i click on the link

blissful panther
#

Yup! Visible with a downloadable file for me.

#

If you can come up with a short write-up, one of us can put it in #mod-showcase for you, too.

flat sluice
#

Yeah, it just took a while to upload I guess, so I asked for someone to check it, just to be sure. Thanks!

flat sluice
lucid iron
#

It would be nice to post some pics with her portrait

#

Like talking to her

flat sluice
# flat sluice Yeah, give me a minute, please, I'll think of something...

I think I'll stick with this:

New NPC mod out - NPC Eleanor

Eleanor is a young witch who studies under the guidance of the local wizard, Mr. Rasmodius. She is kinda shy at first, but she'll eventually open up to you (or, at least, that's how her dialogues & events are written). She loves studying and learning new things. Also, note that her past is not one of the best...

Download here: https://www.nexusmods.com/stardewvalley/mods/31663

Nexus Mods :: Stardew Valley

Eleanor is a young witch who studies at Mr. Rasmodius' tower.

flat sluice
flat sluice
quiet prairie
#

why do you guys make mods? just curious :3

#

like does it make you guys money, or is it for self enjoyment? or something else?

unique sigil
#

because i want to cook my own food

vernal crest
#

Enjoyment. Mods don't make much money for the most part.

#

I like learning stuff and I want more NPCs with interesting stories.

winter dust
unique sigil
#

modders in this community arent doing it for money. if they get money from mods its commission work. also, i make mods to give back to the community thats given lots to give a favorite game of mine some longevity

quiet prairie
lucid iron
#

This ain't sims 4 kyuuchan_run

unique sigil
#

Paywalls Georg is an outlier adn shouldn't be counted

lucid iron
#

Usually it starts with "oh i wish this didn't work this way >:("

quiet prairie
#

i just dont know how to mod?

lucid iron
#

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

quiet prairie
#

whoa

blissful panther
#

My first mod that took off was a result of me seeing the Haunted Chocolatier trailer, and thinking "...ooh, that counter placement."

winter dust
vernal crest
#

Yeah I started modding because I wanted Stardew to have more bathrooms lol

quiet prairie
winter dust
vernal crest
#

Though before that I edited other people's mods for my personal use (like tweaking dialogue and stuff).

unique sigil
#

i started modding because no farm maps cater to my exact tastes,,

quiet prairie
#

oh wow

winter dust
quiet prairie
#

oh cool

unique sigil
#

i made some personal use recolors for objects kyuuchan_nod2

winter dust
#

It's a long journey, but it's faster than fixing the bus. And cheaper.

#

Why should I have to pay gold to visit the Desert for something I just paid like 300k gold to fix.

#

Capitalism smh my head.

quiet prairie
#

thats so true

#

oh well ima go now bai thanks for the answers everyone :3

gentle rose
#

it depends what kind of mods tbh - people who make QoL/gameplay mods typically do it because we see something we’d want to be different. People who make aesthetic/farm map/farmhouse mods do it because they enjoy designing, people who make expansions/NPCs do it because they have a story they want to tell… lots of different reasons!

#

I mod because I’m bored and curious

unique sigil
#

you mod to commit crimes

calm nebula
#

Good morning it's Friday

gentle rose
#

that’s what I said /lh

vernal crest
#

It's only just still Friday

gentle rose
#

are you going to crochet something for the valentines event atra

#

or knit. idk if you crochet

unique sigil
#

good god its friday already?

winter dust
#

Good morning, it's definitely 100% still Friday.

unique sigil
#

i didnt notice

gentle rose
calm nebula
#

I considered making crochet chocolate

winter dust
#

My time zone ends with half an hour.

gentle rose
naive wyvern
#

i mod because i think "what if the game had this" or "what if this looked like this instead" a lot of the time kamo_laugh
That, and I wanted a hobby that wasnt exclusively just drawing (even though drawing's most of what I do for my mods)

tiny zealot
gentle rose
#

there’s literally not a single person making the big bucks from stardew modding KEK

blissful panther
#

The absolute biggest mods will be making a... decent little chunk, but certainly nowhere close to a living!

unique sigil
#

even if we're talking about money from DP, the 3-month turnout is way too long to be considered a stable source of income kekdog

woeful lintel
#

I finally finished all the testing I can do on FF3! Now I have to update all the docs so that I can ask for Furniture Pack makers to test the new version...

drowsy pewter
#

technically flash makes a stable income given that he has a patreon hasdhdjs

#

i think its his full time job

gentle rose
#

pathos has a patreon too I think but idk how much you can get from those

calm nebula
#

Flash's full time job is working for CA

drowsy pewter
#

after the update?

tiny zealot
#

as a modder, flash's level of patreon is a realistic upper bound

woeful lintel
calm nebula
blissful panther
#

I'm not sure if it's employee/contractor type status for anyone helping out with the game, honestly.

gentle rose
#

did other countries have a crackdown on contractors recently too? the UK had a pretty substantial regulation put into effect recently that makes contracting way more limited

#

(in an effort to fight companies like uber iirc)

tiny zealot
#

i think the US had a judgement against uber specifically on that point, but (cynicism, politics) ||you should not expect anything that inconveniences a corporation to come out of the US for a good while||

hallow prism
gentle rose
woeful lintel
#

Hey, does anyone know from where Furniture.canBeRemoved is called? Alternatively, how do I setup the decomp to see references (I only have ILSpy for now)?

lucid iron
#

I thought ilspy let you do that, but if it didn't just save the code as a project and open it in your IDE

woeful lintel
#

I don't actually have the code, that's what I mean by "setup the decomp"

teal bridge
#

You do what chu said, just open the assembly in ILSpy and save it.

lucid iron
#

!decompile

ocean sailBOT
lucid iron
#

You can also use ilspycmd if you want, skips the UI

#

This will put both game and the game data decomps together

#

Tbh i always wondered about why gamedata was it's own dll

calm nebula
#

Maybe for the xmb packer

#

It only needs the data

woeful lintel
#

Oh, forgot to mention I have ILSpy as a VSCode extension, that's probably why it can't see references

#

thanks for the wiki link btw

modest badger
#

Hey
New to stv modding. Tried googling stuff but honestly I am surprised how little info there is on internet about getting into creating mods.

My mod idea. Wanted to edit Crystalarium behaviour to require some kind of fuel. All I found on wiki is "basic" manifest and ModEntry class. But where can I find the rest of whole API documentation.

I was hoping for quick override / add method to crystalarium but man I can't start ):

tiny zealot
#

!startmodding you should check out the content patcher examples and documentation. a lot of mods don't require C# or knowledge of the actual API

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.

tiny zealot
#

(machine rules are governed by data, so you can probably do what you are thinking of with just content patcher)

#

but also, the wiki's API pages are quite good as a reference if you have programmed before and are doing C# mods. if you haven't programmed before and you want or need to do C#, i would start with any basic programming tutorial (skills will transfer easily between languages)

teal bridge
#

Crystalarium auto-restarts so requiring fuel would change the behavior - might be some nuances to deal with there.

woeful lintel
#

I found the stupid issue that made me unable to pick-up rugs! -> SDVpufferpoggers
The fix is a Transpiler, which I haven't done since last summer -> SDVpufferflat

tiny zealot
#

aww transpilers are fun

modest badger
#

Is there any available list of example simple mods out there?
Because honestly I can't figure out how to begin just from this wiki.

woeful lintel
#

the saving grace for this time is that I already have a transpiler on another method so I can find the IL to replace

woeful lintel
tiny zealot
#

ah yes, okay, transpilers on god methods are less fun /lh

brittle pasture
#

otherwise there's the C# button click example on the wiki

#

that's the simplest C# mod which you can use as a template

brittle ledge
modest badger
brittle pasture
#

what kind of fuel, do you want the crystalarium to clear out after every harvest and you have to put the diamond + something else in again

modest badger
#

Idk atm thought about batteries that would last for like 5 cycles or smthing

brittle pasture
#

ok so if you want something like Diamond + Battery => the Crystalarium produces diamonds for the next 5 collects, after which you need to put another Diamond + Battery in

#

that's doable purely with json content patcher, you however need a framework dependency

#

for the "next 5 collects" part because the vanilla game doesn't support that functionality in its machine data

modest badger
#

I'd love to try do it with C# tho to learn it and expand my mod later

brittle pasture
#

sure, what you need to know is that: the game reads much of its logic from data; machine rules specifically is Data/Machines

#

!unpack follow these instructions and you can view the unpacked data

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!

brittle pasture
#

then in your C# mod what you would do is register an asset event to edit Data/Machines and edit the game's machine rules or insert your own ones

#

see the "Edit a game asset" section

modest badger
#

Yeah thanks thats helpful! Need to read it now and attempt to make any change to game

pine elbow
#

i was wondering if there is a way to detect when items are spawned in or when a player recieves a item

#

i want to make a mod that announces when players receive like good items, so if someone picks a prismatic shard it will make a small announcement in chat

vale stream
#

if you want to check that items are spawned, you could postfix object's constructor

cyan marsh
#
            int mapCoordX = (int)Game1.player.getTileX();
            int mapCoordY = (int)Game1.player.getTileY();
``` has there been a change in code?
#

that seems not to work anymore

brittle pasture
#

hmm is there a framework that adds "item first enters inventory" trigger

vale stream
#

( there's also Game1.player.OnItemReceived and Game1.player.GetItemReceiveBehavior, but I haven't checked how they work )

brittle pasture
#

if not then you can postfix OnItemReceived

pine elbow
#

sweet, ill check this out just gotta figure out how to postfix

#

XD

brittle pasture
#

(GetItemReceivedBehavior has a "show notification" field but I think it's only for the current player, so you want OnItemReceived)

cyan marsh
#
int mapCoordX = (int)Game1.player.Tile.X``` disregard... i found it
tiny zealot
vale stream
# pine elbow sweet, ill check this out just gotta figure out how to postfix

oh that's easy, in Entry you add
var harmony = new Harmony(ModManifest.UniqueID);,
and then you add

Monitor.Log($"Applying Harmony patch \"{nameof(ModEntry)}\": postfixing SDV method \"Farmer.OnItemReceived()\".");
        harmony.Patch(
            original: AccessTools.Method(typeof(Farmer), nameof(Farmer.OnItemReceived)),
            postfix: new HarmonyMethod(typeof(ModEntry), nameof(Post_OnItemReceived))
        );

(assuming your patch is in the ModEntry class)

Just keep in mind your postfix must have the same fields as the original method

cyan marsh
cyan marsh
#

yeah.. i found it

next plaza
pine elbow
#

@vale stream do you mind hopping into a call and screen sharing how to do this, i am quite dense

brittle pasture
#

!harmony

ocean sailBOT
#

Harmony is a framework for patching .NET code, allowing you to take any portion of the game's logic and insert or substitute your own. This gives you more flexibility and control than SMAPI helpers and events, at the cost of being typically more complex and difficult to use safely and correctly, and more likely to break with a future update of the game and/or SMAPI.

If you are trying to do something that isn't possible or practical with SMAPI alone, then Harmony is usually the solution.

For more information, refer to the following:

pine elbow
#

oo thats quite useful too

vale stream
pine elbow
#

kk ill see how far i can get with this then will return if i need more assistance

#

thankyou all for the help

tribal ore
#

I still have a question about marriage schedules, if anyone has experience. Is there anyway to specify that the NPC should do their regular "marriage duties" stuff up until a certain time of the day? Just so I don't have the NPC standing blankly in the kitchen until it's time to leave the farm house

#

If not, I guess I can try to move them back to their spouse room or something, but I know that pathing inside the farm house is fraught with danger

vale stream
#

As far as I know, I don't think it's possible

tribal ore
vale stream
#

Ohh that sounds cool! Actually, you could get it to work via C#? I don't remember if reloading schedules works, I think there was a method for processing those

#

Let me check really quickly

tribal ore
#

Sure, thanks. I'm trying to keep this CP only, but might bend a little if I decide this is important enough xD

#

I also wonder if the coordinates for the spouse room in the farmhouse are the same regardless of upgrade 1 or 2

vale stream
#

Okay so- you could have a custom schedule key, called e.g "GoSomewhere" in his schedule file

And when time changes to 12:30, call npc.TryLoadSchedule("GoSomewhere"). According to the code, that should make him follow the schedule

#

I'm not sure about the coordinates though

tribal ore
#

Alright, I'm taking notes and will revisit with this in mind. Trying so hard not to scope creep any more, but the C# stuff has been tempting on a number of occasions xD

#

Thank you