#making-mods-general

1 messages Ā· Page 439 of 1

vernal crest
#

Is that windows 11?

autumn tide
#

uhh macOS

#

..something

vernal crest
#

Oh yeah mac

autumn tide
#

IT WAS THE FUCKING TXT FILE!!!??!?!?!?!?!?!

vernal crest
#

It was?

autumn tide
#

YES šŸ’”

vernal crest
#

That has to be a Mac weirdness because look at this

autumn tide
vernal crest
#

I would never have guessed that

#

What happens if you change it to a .md file instead?

#

Or even .json?

autumn tide
#

..lemme see

#

WHY WAS IT THE FUCKING TXT FILE WHYYYYYYYY

vernal crest
#

This is partly curiosity, partly wanting to help you find a way to have extra files in there without it dying

autumn tide
#

ty :)

autumn tide
#

patch reload HeadInTheClouds.theyrejustcuteokay

#

shit meant to paste that into console-

#

okay it's fine with a terrible .json with NO formatting or meaning but not a TXT file?!?!!?

#

anddd it's fine with .md

#

im losing what's left of my sanity /j

oblique meadow
autumn tide
#

me rn i swear

#

..anyways thanks for helping @vernal crest :) I really appreciate it!

woeful lintel
#

I got stuck for a good 20 seconds on why your files/folders are placed like this

autumn tide
#

im still in disbelief

woeful lintel
#

what happens if you make it a txt again?

autumn tide
#

..i dont wanna know

little field
#

Good Morning!

autumn tide
#

hello cosmic i just officially lost my sanity

little field
#

I-

#

What happened :O

oblique meadow
autumn tide
#

...mod didn't load BC OF A FUCKING TXT FILE

little field
#

I just realized I need to make NPC sprites and portraits for another cutscene Pain
Oh and a map for the Ministry of Magic T^T

little field
#

My entire file crashed becuase of a missing comma

little field
#

I know its a lot of work for my mod but I'm 26.72% sure it'll be worth it

autumn tide
#

alr im gonna go draw-

vernal crest
#

I have exploded my whole game a few times. Well, lots of times if you count all the times I've broken it with symlink stuff.

woeful lintel
#

laughs in breaking the draw loop

oblique meadow
#

When I was first figuring out light tiles on my maps, I created a loop of crashing where the game wouldnt consider booting. I feel your pain

autumn tide
woeful lintel
#

I mean, at this point it's could even be laughs in breaking everything and anything with Harmony

vernal crest
#

I have made SMAPI stop immediately on startup so many times that I now start looking for broken symlinks as soon I see "press any key to exit"

tiny zealot
#

(cracks knuckles) i brought down my entire computer testing one of my mods /lh

vernal crest
#

You win! I've only had to force log out using ctrl alt del at my worst

oblique meadow
#

Oh yeah well <madeup inplausible thing that happened>

golden basin
#

like honestly everything is working except the portrait isnt changing

autumn tide
#

uhh looks like the link isn't working?

autumn tide
#

(just clicked on your JSON cause I'm curious lol, no clue what I'm doing)

tiny zealot
#

(font_bold questions) is this LATIN (CAPITAL|SMALL) LETTER Z WITH DOT ABOVE? https://en.wiktionary.org/wiki/ż
it's looking a bit like a line so i'm asking for clarification if anyone knows

urban patrol
golden basin
#

its a dynamic token its my seasonal portrait for the shop

#

the portrait works fine its the shop message for when its closed thats not really working

#

ive tried so many different methods and none o f them are really working for me right now

ivory plume
#

Two initial issues:

  1. Portrait is part of the owner, it shouldn't be under Dialogues. If it's working, not sure how? It might just be showing the default portrait for the NPC.
  2. A closed message is set using the ClosedMessage field on the owner, not under Dialogues. (Putting it under Dialogues means the shop will open normally, but the NPC will just say it's closed.)

See Owners on Modding:Shops for an example of how it works, showing both a closed message and regular dialogues.

golden basin
#

in doing it backwards? that explains everything

#

ive put dyi furniture build together backwards even with instructions before. thank you pathos

tiny zealot
autumn tide
#

GUYS MY EVENT EXISTS NOW SDVpufferparty

golden basin
#

I even copy pasted a vanilla shop and it still isnt working.....

neat basalt
#

hi all. i'm just walking through the introductory steps on the stardew wiki for installing and getting started with visual studio for modmaking, and i'm quite overwhelmed as i'm completely new to programming. what's the best way to start learning the C# that i need to make mods for the game?

#

i imagine there's a lot of tutorials out there but i don't know where is best to start

autumn tide
#

is there any way to increase the volume of a playsound sound during an event?

autumn tide
uncut viper
#

there's not many c# tutorials because for the most part it's just general knowledge of c# you need, not Stardew specific
however you should figure out if you even need c# at all for your idea first, as a lot of modding can be done with just json and content patcher

sleek flint
#

Hi everyone! Can someone tell me if it's possible to use Visual Studio for both the C# and CP but like it compiles the C# code and put it in a folder normally AND also pastes the CP mod folder alongside it. I saw someone do it before, but I don't remember how.

royal stump
neat basalt
#

my main hope is to be able to make NPCs, and then potentially even worldspaces and items and all sorts of other things in future once i'm more confident in my abilities!!

ornate locust
neat basalt
autumn tide
royal stump
#

NPCs, map edits or new locations, and new items are all generally done through Content Patcher packs (which use .json text files for most things, and Tiled map editor files for the maps)

#

C# can also do them, but CP packs don't require knowing a whole programming language & dealing with compatibility, so it's generally the way to do that

neat basalt
#

oh okay! what sort of mods require c# knowledge?

neat basalt
autumn tide
royal stump
#

C# is used to make frameworks like Content Patcher, or to change game mechanics; the game intentionally has a lot of data files to let modders add new items/etc, but not everything can be done that way

urban patrol
#
  • or check the perms on nexus. it’s also permissible to make changes to any mod if it’s just for personal use
royal stump
ornate locust
#

just know that of the things you listed, the NPC is definitely the most time/effort intensive.

royal stump
calm nebula
#

!npc

ocean sailBOT
#
Creating a Custom NPC

Keep in mind that making NPCs is a complex process that requires learning many different aspects of Stardew modding.
Here are a few links that can help get you started on all that you need to know:

ornate locust
#

I've just passed a year working on mine SDVpufferchickcry

golden basin
#

YESSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS

#

I DID IT

#

finally i did it imma cry now

autumn tide
golden basin
#

no wait i spoke to soon

autumn tide
#

shit

golden basin
#

now it ONLY says its closed gdfjkgsdfg

autumn tide
golden basin
#

šŸ˜ž

neat basalt
ornate locust
#

and it did include making an item, which was quite fast overall, and making a map for him to live in.

neat basalt
#

who's your NPC? :)

#

are they publicly available yet, or still a WIP?

ornate locust
#

He's out in beta right now in Sunberry and East Scarp's servers, but it's Pelican Town Municipal. Sheriff Bill

#

He's basically feature complete, but I'm still doing a lot of testing and polish before I actually put him out for real.

#

NPCs need quite a bit of testing too. Testing an item is a lot easier

#

but with an NPC, you have to test their schedule and their events and where they live and festival stuff and their dialog

slow basin
#

real i am dieing out here thinking of events for my npcs šŸ˜”

ornate locust
#

I put out a tilesheet mod last year that I just made along the way to making this NPC. Easier to make and test both.

#

I don't want to discourage anyone making one, it's been fun! But if you want to build from something easier, it's not a good first step. Heck, it's how I started, more or less. I've learned one thing at a time basically

autumn tide
#

i mean i'm starting with an npc-

ornate locust
#

I started just playing with pixel art portraits, moved on to maps, etc etc

#

Yeah, but if the idea is that they want to start with something easier, it's not the easier

#

Splitting it up can work nicely though, that's what I did

autumn tide
#

generally stuff you find the most fun is gonna easier nonetheless

ornate locust
#

yeah I ended on learning events and that has definitely been a WHOLE THING

neat basalt
#

i don't mind a bit of a learning curve! it might be fun to learn something new like that, especially if it allows me to make and share with others the ideas and characters that are all bouncing about in my head

#

i just feel excited to create. it is intimidating though

ornate locust
#

Yeah NPCs are particularly intimidating once you know enough to realize how much you need to do

#

but take it one thing at a time and you will eventually be out of things

neat basalt
#

i imagine major expansions like Ridgeside and Scarpe took insaaane amounts of work!

#

it's so inspiring

urban patrol
#

i highly recommend a checklist—it both helps me keep track of things and also lets me feel a sense of progress

ornate locust
#

I set up a Trello that just listed out everything I needed to do so I could do it one thing at a time and mark it off as I went

neat basalt
#

like recently i've been absolutely loving always raining in the valley's sterling and eli and dylan, i can tell how much work and love and creativity and time went into them

neat basalt
#

love em

ornate locust
#

it's really satisfying to mark a thing as done and whoosh it over into the Done column

tribal ore
#

It's also OK to bounce around a bit as you get bored/fatigued with one part

calm nebula
ornate locust
#

Yeah sometimes you've got Art Energy and sometimes you've got Code Energy,

tribal ore
#

Exactly!

latent mauve
#

And sometimes you decide to implement i18n during your code energy and you question why you didn't start with it in the first place.

#

(don't make my mistakes)

tribal ore
#

Thank goodness for i18nify xD

ornate locust
#

see, I heard people doing that often enough that I started with i18n

#

I heeded the cautionary tales

latent mauve
#

To be fair, I'm dealing with a lot more than one NPC xD

tribal ore
#

I've gotten better with doing it as I go along. My first mod, I waited until nearly release before realizing i18n was a thing

ornate locust
#

Also don't be afraid to mess with your workflow. The way I was doing events was just awful, but I changed how I was working on them and it made things much better

urban patrol
#

i did not and maybe i should have, but nomori’s converter saved my life

latent mauve
#

stares blankly at 50+ NPCs worth of portraits and sprites

ornate locust
#

jesus

urban patrol
#

which i might actually prefer to doing it myself lol

golden basin
#

its finally working

#

i did it for real this time >:3

tribal ore
#

If you get really bored with writing events, you can always do something completely out of left field for awhile. I decided to add in a couple pieces of custom furniture in the mod I'm working on right now. Just because it fit the NPC's story

latent mauve
ornate locust
#

Ha, I ended up last second learning how to make a crop just because I was like "what can I do for a rival hearts quest that could involve a farmer?"

#

scope creeped myself into making a flower

tribal ore
golden basin
#

ive beendoing this

latent mauve
#

I've scope-creeped myself into making maps for regions I was not intending to release in the first edition of my mod. LOL

#

So, uh, oops.

#

Now I have to fill them with things! SDVpufferwaaah

tribal ore
ornate locust
#

the flower in place

ornate locust
#

(it's a mana bloom from Oblivion, I always liked them)

latent mauve
#

Kantrip, my overhaul mod is currently built to replace the vanilla NPCs (hence overhaul), but add new objects and locations.

latent mauve
#

If I were to make the required town for all the 'main' residents to be custom NPCs instead then it would likely end up on par or slightly smaller.

round dock
#

This convo about scope creeping makes feel seen SDVpuffersquee bc how did a mod update which was just supposed to fix some typos and add an i18n end up with me scripting an event and learning how to add an item in my mod

ornate locust
#

I have a whole scope creep column where I can stash the scope creep demons

#

but some of them get out and into the main content anyway

round dock
urban patrol
#

i’m lucky i have one android player who i want to keep my mod accessible for, which means i can now shove all my C# ideas into the ā€œrelease as separate modā€ category lol

golden basin
#

How do y'all keep scope creep from wearing you down

ornate locust
#

I shoo it over into the scope creep column and do not touch it until I am done with everything else

#

It's a fine line between scope creep and adding stuff to a mod, but when I have it marked SCOPE CREEP, it's easier for me to identify that this is extra stuff on top of what needs doing and I should think twice before doing it

#

I finished everything I intended to do for release before I touched this bit with the flower and all

tribal ore
#

The problem I keep having with modmaking is that it's hard to stay on track for one mod if it's big enough to take multiple months

#

I keep having other ideas that I have to write about and then ruthlessly repress

ornate locust
#

Oh I've taken a lot of breaks in making this thing for over a year. one of them was not my idea, but still

gentle rose
tribal ore
#

Working on Older Sam at the moment, but I just had this idea for a mod featuring Elliott. Going to put that in the "future" bin, but it's hard

ornate locust
#

Also some scope creep got incorporated because I needed a break from what I was doing and... well, I didn't have anything of the thing I FELT like doing that needed doing at the time

#

thus Stamps

tribal ore
#

there1

#

thx šŸ™‚

ornate locust
#

send your mail with SCOPE CREEP (pink so you can see where the edges are)

late gull
ornate locust
#

oooo pinball

gentle rose
#

yooo you should talk to @naive wyvern, they made some super pretty art for minigames

neat basalt
slow basin
#

omg firelily you just reminded me i wanted to make a cursed for fun overhaul of the games graphics for a silly thing i wanted to doi šŸ˜… i used to be super into a fandom and i kinda wanna make a mod for it but i dont wanna be judged for beign cringe XD

slow basin
#

at least allt hese other mods ive been making have been good practice for it XD

urban patrol
#

become cow

slow basin
#

im better at sprites fo sho

gentle rose
oblique meadow
slow basin
#

fkjwefioj the fandom has a bad rep so i worry about it lol

oblique meadow
#

That's why "block" was invented

slow basin
#

tru

#

ig ill make some silly little sprites soon XD

oblique meadow
#

People suck whether you make it or someone else does. So just make it and they can suck

gentle rose
#

I mean, are you planning on doing the things it has a bad rep for? if not, ignore them SDVpuffersquee

slow basin
#

nah XD i kept seperate from all the drama in the fandom its just one of those "peoples first fandom so they didnt know how to behave in social spaces" things

#

ill prob make the mod

#

thanks for the encouragement you guys ā¤ļø

oblique meadow
#

Anytime you need a "People are stupid, do the thing" peptalk, i gotchu

slow basin
#

X3

gentle rose
#

I feel like I have some guesses SDVpuffersquee and in all those cases, mods already exist for those fandoms

oblique meadow
#

It's peppa pig. Isnt it

lucid iron
#

My guess is problem sleuth's spiritual sequel

slow basin
#

p[stkpaehoetpmoaetm

oblique meadow
#

There are NO Bluey mods.

gentle rose
#

yup, that was mine too lmao

oblique meadow
#

Im shocked

gentle rose
#

had to look that up though

neat basalt
#

thank you all for being so helpful and supportive by the way!! i was worried that my noob questions would be a bit tiresome or annoying so i'm super relieved to get such wholesome feedback :D

#

i love stardew's community aSDVemoteheart

autumn tide
#

hey! uhh having some (more lol) trouble with an event, how can I get the camera to pan? I've tried using viewport move but it's not working, no matter how long i put as the duration it always just teleports SDVpufferflat

#

also happy october!! SDVpufferfall

red egret
#

Is it okay to make an AT for an image of size 2x2, but the AT would be bigger? e.g. 2x3

urban patrol
autumn tide
#

yes

urban patrol
#

what did you put

autumn tide
#

uhhh 2000 2000 8000

urban patrol
#

2000 pixels is way too much

autumn tide
#

oh?

#

hm, I'll try less then

urban patrol
#

Pan the the camera in the direction (and with the velocity) defined by x/y for the given duration in milliseconds. Example: "viewport move 2 -1 5000" moves the camera 2 pixels right and 1 pixel up for 5 seconds. The total distance moved is based on framerate, rather than time, and may be inconsistent.

#

if you want it to be total 2000 pixels then you have to do math

autumn tide
#

..oh shit heheh

red egret
#

If i want to replace a picture with a slightly bigger image in its alternative texture, is it ok? it wont cause problems?

#

to make the new picture taking up 2x3 tiles instead of 2x2 (wall decor)

gaunt orbit
#

You can't

#

Not possible

#

Must be the same exact size for at

red egret
#

aha okay ty

gaunt orbit
#

You can add custom furniture with cp though

red egret
#

yeah, it was just something particular i need

autumn tide
#

i have /viewport move 20 10 2000

urban patrol
#

is it not moving at all or is it happening instantly

autumn tide
#

this time, not moving

#

it might be too little for me to notice? I'll run it again at 200 200

#

yup, still no movement

urban patrol
#

are there errors in your log

autumn tide
#

lemme check

urban patrol
#

that should always be the first thing you check since it’ll be way easier to diagnose the issue if it throws an error

shut edge
urban patrol
#

can you send your json then

autumn tide
#

alr!

#

for some reasom it's not showing up?!!?

urban patrol
#

were you editing the wrong file

autumn tide
urban patrol
#

the validator struggles with comments sometimes

autumn tide
#

hmm okay, I'll remove them

urban patrol
#

try either taking them out or using the upload button instead

near island
#

Sooo... I may or may not have been working on a "freelance supply joja mod" off and on for a while... the Joja snacks I've been making were during my breaks from this mod. It's mostly feature complete. Still working on kinks. Ignore it asking for 30 daffodils and me only having 25. I added the last 5 after that screenshot lol. The JojaBoxes are basically mystery boxes with slightly different drop pools.

urban patrol
near island
#

The JojaBoxes are basically mystery boxes with slightly different drop pools.

shut edge
#

that's an interesting mod concept, i dig it

urban patrol
#

i see a bunch of \r

autumn tide
urban patrol
#

was this you copy pasting or using the upload button

autumn tide
#

uhh no "/r"s in my OG document

urban patrol
#

yeah they’re a special character. i’m just concerned about my own ability to check it with them present because i don’t trust i won’t miss something

autumn tide
#

oh, uhh what should I do then? and tysm for your help SDVpufferheart

urban patrol
#

try using the upload button if you copy pasted, or vice versa

#

i’m not familiar with how the validator handles things

autumn tide
#

gotcha, thanks :)

#

just the comments again after uploading the file :(

urban patrol
#

okay never mind

autumn tide
#

would it work if I paste it here?

urban patrol
#

huh, does playMusic Of Dwarves work even with the space?

autumn tide
#

huh, I just copied that from another event that had that music (didn't know the name)

urban patrol
#

i mean if it works it works

#

i just didn’t know you could have spaces

#

you don’t have /end

#

or any commands after viewport move

autumn tide
#

oh, should I? it's still a wip so i didn't bother adding it

urban patrol
#

i’m not sure but i always have /end in mine and then add stuff in the middle

autumn tide
#

I'll try it!

#

it works!! tysm @urban patrol :))))

urban patrol
#

yay i’m glad it was that simple!

royal stump
# urban patrol huh, does `playMusic Of Dwarves` work even with the space?

that and some other code use the "get all remaining args as a single string" helper, fwiw
(though it's less common than "don't use spaces" or needing quotes)

public static void PlayMusic(Event @event, string[] args, EventContext context)
{
    if (!ArgUtility.TryGetRemainder(args, 1, out var musicId, out var error, ' ', "string musicId"))
urban patrol
#

ahh good to know

near island
#

I'd love some opinions if anyone doesn't mind. Regarding my Joja freelance orders: #making-mods-general message
At the moment I have around 12 quests per season, and you can only do 1 a week. They're set up to reset every Monday and be randomly chosen from the 12. Is that enough for the pool? Should I add more to avoid it feeling repetitive for longer lived games?

stiff pond
#

Hi! I wanna make stardew valley mods but I don't know what format they use, if you could help out. Please reply! Is it like 16 x 16 or something, and also for the character art like in their dialouge. TYSM!

brittle pasture
#

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

brittle pasture
#

!startmodding and check out the tutorial for making content packs

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.

brittle pasture
#

(I assume you’re mainly interested in retextures?)

little field
#

Man Portraits are hard DeerBoredLean

verbal narwhal
brittle pasture
#

category -2 (gem)

verbal narwhal
#

gems dont show up?

brittle pasture
#

last I checked they very much do? gems, minerals and artifacts

verbal narwhal
#

ah ok, sorry, I need to look into which categories dont get added to it

brittle pasture
#

you can make your gems not a donatable item with a context tag

#

not_museum_donatable

verbal narwhal
#

thank you very much!

brittle pasture
#

though note that in the current version it’d still show up in the collections menu

#

I think it’s fixed in 1.6.16?

verbal narwhal
#

ok thank you!

sleek flint
stiff pond
#

I also wanna make sprites for my game so I wanna know what type of width and height they use

brittle pasture
gloomy hill
#

ohai, what's the best way to implement per-save per-player data?
I'm basically trying to implement something similar to the Farmer.fishCaught (just for non-fish).
ReadSaveData sounded nice, but modding docs say it can't be 'used' by farmhands?

#

Is having a per-save cache file in the mod folder the only alternative (without workarounds)?

brittle pasture
#

what about Farmer.modData

#

it’s just a string dictionary for you to set whatevs

gloomy hill
#

oohh... when I clicked mod data it jumped me to save data - I thought that's what I was reading xD

#

thanks, that looks more like what I need

verbal narwhal
#

another question (because my brother said this is not a logical scenario and it only makes sense to me):

#

if the frog in the frog tank gave you the mummified frog item and it displayed this message: "The frog is staring at the other corner of the tank. Its expression seems sad... Or horrified...#$b# There is a frog's skeleton inside.#$b#This would be concerning, if it wasn't for the fly skeleton in its mouth... Or the big red button next to it that says 'Try me!'"

  • would that make sense to you?

or read more like a stroke?

marble needle
#

Hey, I'm trying to figure out how I can override the animation offset that stardew valley applies automatically to some animations, for example run animation. There is a way to do this using SMAPI, if the answer is yes how?

#

I managed to get the Animation Frame, but there is anything like Offset_y

uncut viper
marble needle
#

or there is a mod that I can use for disable that?

#

I intent to use it for fashion sense

verbal narwhal
#

maybe I should change it

marble needle
#

Maybe I should use Harmony instead of smapi?

tender agate
#

you would still need smapi to do harmony changes?

drowsy pewter
tiny zealot
verbal narwhal
#

the frog clicked on the obvious explosion button

#

idk I had some old catroons in mind ? maybe?

#

idk why but it is so funny to me

drowsy pewter
#

that makes it more concerning

#

lol

verbal narwhal
#

but do you get it now?

#

q.q

drowsy pewter
#

i guess so but i would never have guessed it, i think if you change the context you could imply it but im not sure

#

the "would be concerning" part is confusing because it makes it sound like theres not actually a dead frog in there

#

like its a fake skeleton

verbal narwhal
#

mhmm i thought a fly skeleton would sell it as cartoony

drowsy pewter
#

i think because you started off by saying the other frog looks horrified its gonna be hard to make it seem cartoony lol

#

Id even just like

marble needle
#

what I'm trying to do is to disable this up and down in the sprite from the engine

drowsy pewter
#

get rid of all of that and do something simple like "frog seems to have pressed a button it shouldnt have"

marble needle
#

if I can do that, I can be a pokemon

drowsy pewter
#

yup

marble needle
#

I found how to erase the bobbing, if somebody it's interested I overriden this in the Tick:

            List<AnimationFrame> anim = sprite.currentAnimation;
            int currentFrameIndex = player.FarmerSprite.currentAnimationIndex;

            if (currentFrameIndex < 0 || currentFrameIndex >= anim.Count)
            {
                return;
            }

            AnimationFrame frame = anim[currentFrameIndex];
            frame.positionOffset = 0;
            anim[currentFrameIndex] = frame;```
twilit quest
#

Isn't there usually a Spirit's Eve mod contest in October?

brave fable
#

often a halloween event, but not usually

uncut viper
#

also its only the 1st

brave fable
#

it's not the first, there's been a mod contest before SDVshorts

gentle rose
calm nebula
#

Your timezone is fake news

lucid mulch
#

time is an illusion anyway

calm nebula
#

Also go to bed

lucid mulch
calm nebula
#

Not you. The one at 3am

lucid mulch
#

again time is an illusion

verbal narwhal
#

would you say that the one seasonal (spring only fish/tadpole) that my mod adds should default to "counts toward fishing completion" or defaults to "doesnt count towards fishing completion"?

vernal crest
#

:O SinZ is in the same timezone as me

brave fable
#

how quickly you forget the number of aest members here

brittle pasture
verbal narwhal
#

ah yes, but I made that a config option

#

and I wondered what would be the more welcomed default option in your opinion

tiny zealot
#

in my opinion, if a mod adds a catchable fish, it should by default count toward fishing completion

#

and if it's not catchable, it should not

verbal narwhal
#

thanks!

#

and adding currently unused cp tokens with a smapi mod isnt expensive, right?

#

or costing much performance

tiny zealot
#

i don't think it's expensive to add a token that isn't used, no. but it's more expensive than not adding it, if you aren't using it

tender agate
static seal
#

Excuse me,I want to know how to add a falling leaf effect to the map similar to the Secret Woods?

static seal
lucid mulch
vernal crest
#

I had to google what PAX is lol

lucid mulch
#

well that answers that question

vernal crest
#

Looks like it will be fun though!

calm nebula
#

Pax = peace?

lucid mulch
#

Penny Arcade eXpo, tl;dr Gaming culture convention

tender agate
#

I think I've heard of it in passing before and its a big thing?

patent lanceBOT
#

@uncut viper: remember the invisible NPC halloween mod idea (285d ago)

tender agate
#

I fear this idea.

static seal
verbal narwhal
#

it is so funny to me, i refactored and rewrote basically the whole silly mod in the course of like 3 weeks, made usage of more cp stuff and thought this would shorten my whole code by a lot.
... it did in fact not

#

it is more adaptable and has some qol changes though schmoovin

tender agate
#

why does stardew valley have so many repeating variables.
like I'm extending the Tool class rn and there's a description, Description, and _description. and its just Description returns description which returns _description?
and err... ultimately I just need to override loadDescription() which means its time to set up i18n? am i getting this right

brittle pasture
#

_description is the private field that contains the cached description
description is the public property that exposes getters and setters for that private field, handling caching as needed
Description... just returns description seemingly

brave fable
#

Description doesn't actually appear to be used at all, but if you've added an item data definition for your new tool type you can simply set the description from there and it'll be used for loadDescription

brittle pasture
tender agate
static seal
brave fable
#

you don't need to unless you want your tool spawned in generic contexts, e.g. shops, dialogue, cjb item spawner

#

and it's generally more trouble than it's worth unless you need to

#

but if you do need to, just copy how the base game does it, maybe overriding the tool data definition

tender agate
#

oh what are suggested ways to get it to the player then. I was thinking mail when testing and eventually give it through an event

brave fable
#

if you want to give it through an event and you're working with C#, you can just define a new event command that adds the tool, meaning you don't need to add a data definition at all

tender agate
#

ohhh thanks!

brittle pasture
#

(though you should probably ask @lucid iron, the author, I'm not actually familiar with that)

brave fable
#

Event.RegisterCommand is your friend SDVpufferthumbsup from there just call MyFunnyToolClass.getOne() in your event command delegate, with an appropriate method override on your MyFunnyToolClass to return one of the correct instance

tender agate
verbal narwhal
# verbal narwhal it is so funny to me, i refactored and rewrote basically the whole silly mod in ...

https://pastebin.com/mvpKSiRi
so if anyone wants to read through 2000 lines of code and help me improve as to what could be changed, improved or simplified, I would be happy.
but 2000 lines are 2000 lines and also I might be a bit primitive and simple, if not redundant at times in my code SDVpufferuwu

#

but! everything is working and running and doing what I want

brave fable
#

(speaking of aest, finally some good fucking nbn. 25/10 to 500/50 for a 15% price increase)

verbal narwhal
#

so there is also no need for you if anyone of you might feel the need to read through this

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.

verbal narwhal
#

speaking of aest.. im in cest and should go to bed schmoovin

lucid iron
#

It is indeed just a map property (or a custom field on location)

gentle rose
#

were they raising errors?

verbal narwhal
#

oh sure, but i didnt understand how i can make a new branch on github that is like empty, because on my current github repo for it there are so many files i deleted in my rewrite

#

but maybe i will open up a new one wholly

static seal
brave fable
static seal
#

If that's not the case, could you please let me know if my current edit is correct?

brave fable
#

which is to say if you add a new branch to your repo with your current project files, only those files will appear in the branch, and comparing changes with your master branch will show these files as added/removed

#

(likewise, adding files to your gitignore will also remove them from the remote when pushed, as git will no longer track them)

lucid iron
verbal narwhal
#

thanks!!

#

here you go!

verbal narwhal
tender agate
verbal narwhal
#

but maybe i should delete those as well, is "try catch" fragile?

#

or rather turn them into normal methods/functions/whatever the correct term for these blocks is

tender agate
#

what's a serializer? and how is it used in context of stardew?

gentle rose
static seal
gentle rose
#

basically they aren’t a bad thing, it’s just that in this case you’re kind of using them as duct tape

verbal narwhal
#

ah, i am like 95% positive that in the last build of the mod none of them should raise any errors anymore!

lucid mulch
#

serialization is the process of turning in memory data models into a form that can go over the wire or written to disk.
deserialization is the process of taking files or network traffic and turning it into in memory data models.

ie, writing to the save file is serialization, reading the save file is deserialization

lucid iron
static seal
verbal narwhal
#

also i removed/reverted back from subclassing TAS Sweating although my old version luckily didnt cause save file explosion and added some extra cache clearing where I was unsure if anything of my mod would get saved into anything other than moddata

brittle pasture
#

I believe TAS isn't saved anywhere at all

#

so you're good regardless

verbal narwhal
#

Oh! Nice!

oblique meadow
#

The Alder Scrolls.

tender agate
#

TAS?

brave fable
#

(TemporaryAnimatedSprite)

verbal narwhal
#

If anyone is reading through it and has any questions or feedback or comments, please ping me or write on GitHub issues, sadly I need to sleep now

#

And I know that the current situation of blocks/methods/functions doing similar things but being named differently isnt ideal yet q.q but are part of the process of fixing all the unwanted behavior and now still part of it due to my inability to fuse/refactor them more elegantly

urban patrol
brave fable
#

nope, no dialogue needed.

urban patrol
#

hmm >:/

#

what am i doing wrong then i wonder

vernal crest
#

Did you blank load the schedule?

urban patrol
#

let me check

#

yep

vernal crest
#

Also you'd better be adding your mod id to those ids later missy chancla

brave fable
#

later now

urban patrol
#

NPCs are my one thing that don't have mod ids šŸ˜”

#

they do have first and last names but

vernal crest
#

Fortunately the mod is under your control!

#

If she's a new character she can have a mod id even if the others don't

urban patrol
#

but won't that screw up all the ones already in people's save files

vernal crest
#

There's a field you can use to migrate the internal names for NPCs. The only thing you can't save is if there are other mods that edit yours because they'd have the wrong targets.

#

Have you tried setting her home to town in case the location is the problem?

#

She won't need gift tastes either unless you want to give her CTs or location dialogue by the way

urban patrol
#

no, let me try that. although the location does work in general

urban patrol
vernal crest
#

(But if you think there's a chance you might add either of those things in future it's probably worth keeping the gift tastes in case you forget gift tastes are needed for those)

brave fable
#

(this is FormerCharacterNames: [] in your character data, by the way)

urban patrol
#

with the amount of times i've told people gift tastes are required, i would hope i don't forget šŸ˜‚ but yeah no harm keeping it in

#

when do NPCs spawn? like do i need back out of the save and create a new one

vernal crest
#

No, sleeping should be enough

urban patrol
#

okay she did spawn in town! i wonder what's up with my location then

#

it exists and i can warp to it and everything

vernal crest
#

Try putting her back and sleeping another day

urban patrol
#

uhhhh now she's there? bizarre

#

well. thank you for the debug steps lmao no idea what was wrong

#

maybe i changed something a while ago and never slept? idk

#

oh you know what i did resize the map. she might have been trying to spawn on a buildings tile

vernal crest
#

Not sleeping would be my first guess

ornate locust
#

cackling, lightning strikes TEXT OPERATIONS

#

praise be to text operations

#

they have given me too much power

#

...it's just the power to show up for the most part, but I don't get a lot of power in day to day life, let me have this

urban patrol
#

the power to show up sounds like a very inspiring real life thing, to be fair!

ornate locust
#

I am giggling a bit at Sam in his Joja work attire... I assume my debug command to force the event is to blame

#

drowning out a book reading with his headphones

brave fable
#

a bit rude he's got his headphones on

urban patrol
#

he's just listening to the audiobook version šŸ™‚ā€ā†•ļø

lucid mulch
#

Note that depending on how you are injecting into vanilla events they may break for 1.7 when that shows up

ornate locust
#

that's a later me problem

urban patrol
#

maybe we can all murphy's law our way into getting 1.7 sooner by making stuff we know will break in the update

ornate locust
#

I think I'll be able to release this year

#

I just want more bugtesting and polish time for now

brave fable
#

(fortunately by then an older, wiser you)

ornate locust
#

Yeah, future me will have had more time to cook

#

she can solve that problem, I'm sure

urban patrol
#

is there a better way to precondition an event besides a mail flag, when the player chose a certain response to a question in another event?

vernal crest
#

If you used a question format that has dialogue answers you can use ChoseDialogueAnswers. If you used a question format that resulted in a switchEvent, you can use SawEvent with the forked event ID. If you did neither of those, then yep mail flag.

brave fable
urban patrol
#

i was looking at that but wasn't sure if it only applied to regular dialogue. thanks!

vernal crest
#

It won't work for QQ or the event command question, I am pretty sure

#

Because they don't have IDs for their answers

urban patrol
#

so question fork then?

#

they also don't have IDs i don't think

vernal crest
#

No, question fork is just one of the possible question options

brave fable
#

you need to use dialogue response IDs for ChoseDialogueAnswers, so any question-like dialogue structures need to have response IDs for the answers to be used

vernal crest
#

It'll only work for the dialogue $q format, I think. Or adding the event command questionAnswered so you're giving the answer a fake ID.

urban patrol
#

ohhhhh

#

ngl i forgot formatting event dialogue like that was an option

#

i'll have to rewrite this then

vernal crest
#

Is it worth it just to avoid a mail flag or using questionAnswered?

urban patrol
#

well to be fair the event already doesn't work SDVpuffersquee it's in first draft stages

#

this is the one with like six forks that makes me want to wait for 1.7 to release

#

using questionAnswered would be easiest of those though

vernal crest
#

Are you using question fork or its superior friend qq?

#

Or fork and switchEvent if it's without a question

urban patrol
#

question fork

vernal crest
#

D:

ornate locust
#

You can qq without a question

vernal crest
#

Why do that to yourself

urban patrol
#

which may very well be why it doesn't work lmao

urban patrol
ornate locust
#

love QQ. Will be happy for the next way to do the same thing, but for now, QQ is friend

vernal crest
#

What has linearity got to do with it?

urban patrol
#

so like. my understanding is that question null is out because the answers have an effect. QQ would be good but i don't think they would allow me to jump between topics. i wasn't aware you could use fork without a question i don't think?

#

for reference these are the fork options

vernal crest
#

I ask this because I do not know of anything that question fork can do that QQ with a switchEvent cannot

#

Except muck around with the annoying specialEventVariable1 I guess

urban patrol
#

like i said, it failed the very first question, so i'm not opposed at all to restructuring it lol

#

i'll make a note now to look at using QQ and switch event

vernal crest
#

I do my QQs by switching to the new event as the first (and only) command inside the QQ answer

urban patrol
#

ah yeah i don't think i've ever used switch event? normally my QQs are big ol' blocks of escaped commands lol

#

yeah 0 hits when searching lol

vernal crest
urban patrol
#

honored to learn from spenny

vernal crest
#

Also, the main reason I use only switchEvent inside the QQ answers is because I hate having to have more than one command per line and QQ messes with that so I just reduced the QQ part as much as possible while keeping its utility.

urban patrol
#

oh does multilining mess with escaped commands because of the \ ?

vernal crest
#

What is an escaped command? I only know of escaping dialogue inside events.

#

Oh right the \\ part inside QQ

urban patrol
#

like how inside QQ you have to have all following commands separated by \ instead of /

#

yep

vernal crest
#

Hmm, I don't know. That might be why it breaks.

urban patrol
#

they're probably not called escaped commands lol

vernal crest
#

It was a reasonable name once I remembered what goes inside QQ answers if you don't immediately switchEvent haha

ornate locust
#

You escape the quotes and stuff in them, so it made sense to me anyway

vernal crest
#

Technically the only part being escaped is the backslash but yeah it made sense

ornate locust
#

I mostly do single lines in QQ, but I do have one that has escaped backslashes

vernal crest
#

Axell did actually manage to single line QQ

urban patrol
#

i'm the event freak who uses question fork and plain move lmao

ornate locust
#

Plain move BURNED ME

#

no more plain move

vernal crest
#

But he puts his slashes at the start of his lines rather than the end, so perhaps there's some difference there

urban patrol
#

hmm perhaps that's it

ornate locust
#

just about crashed out trying to figure out why all of my plain moves were doubling in one event and not another one

urban patrol
#

blueb i see you SDVpuffersquee

vernal crest
#

Like so

#

I also haven't tried putting just one command on the same line as the break, so that could also be it

#

I'll find out if I get back to events before 1.7 haha

urban patrol
#

it's not procrastinating if you're waiting for the update, right? right??

hard fern
#

i love avoiding work...

#

eh but i will have to continue working šŸ˜”

vernal crest
#

Lol I am not really procrastinating...just letting my brain work on what it wants to. Maybe a little bit of procrastinating with Hiria due to fear of cultural appropriation/misrepresentation

urban patrol
#

i definitely support a relaxed schedule for a hobby, don't worry! and i think it's admirable that you're taking care to be respectful

vernal crest
#

Thank you SDVpufferheart Bog's Monster Mash also ended up being a way bigger project than initially planned so my head has been full of nothing but monsters for the past wee while

urban patrol
#

just in time for spooky season!

vernal crest
#

Yesss! Bog especially was so excited that we got it done in time. Now we only have all the rest of the monsters to do haha

urban patrol
#

i'm still so excited to install it for when i... eventually... play...

#

although maybe it'll be the kick in the pants i need to start a new save!

vernal crest
#

Haha don't pressure yourself, just play when you are ready

#

I am finally collecting mods for my first time playing since 1.6.8

#

In a few more months I might be ready to actually start the save

#

Now the question is do I install Monster Mash for my own playthrough by just symlinking my dev copy or do I download the player copy from Nexus? SDVpufferthinkblob

urban patrol
#

i download from my mod page all the time lol

#

DP fraud /j

vernal crest
#

Haha I am just worried about having two separate copies

#

That seems like a guaranteed way to accidentally edit the wrong one

urban patrol
#

do you use stardrop? it'll put it in a special folder if you download it using that

#

valid fear though

vernal crest
#

But at the same time, if I use the dev copy I am going to forget it's the dev copy and think something I'm developing is already in the released version

#

I do use Stardrop, but once I have finished downloading everything I move it out of the Stardrop folder lol

urban patrol
#

so not very helpful then lol

vernal crest
#

The dev version is never in my actual Mods folder, so the risk is just that I'll have both folders open for some reason and choose the wrong one to edit

lucid mulch
#

Stardrop sees all my dev copies fine and I run all my dev builds normally.

#

Granted with being exclusively a C# dev, I kinda need all my mods to be directly at the root of the mods folder without additional hassle

vernal crest
#

My setup is definitely full of hassle

#

But for the most part so far it's saved me of the much greater hassle of falling victim to my stupid ADHD

brave fable
#

demoted to mod middle-manager

urban patrol
vernal crest
#

I'm still going to use Stardrop for managing my play profiles, plus it's helpful for checking if I have endorsed mods and for updating mods

#

And one day I will hopefully have premium!

urban patrol
#

i switched to stardrop recently after using vortex for forever (i know, i know, cone of shame for one million years) and i love it

#

it was super helpful for testing compatibility

vernal crest
#

I get overwhelmed by the way everything is just in a big list

#

But if I choose to sort by folders, it doesn't let me choose which folders matter for that

urban patrol
#

(btw i'm already liking QQ in this event more. much easier to see paths instead of having a default path for a fork and then branches)

#

if i knew anything about actual programming and UI, i think a feature with dropdown lists in stardrop would be super helpful

dire kestrel
brave fable
#

dropdown lists are one thing, but i mainly don't use stardrop due to the lack of marquee banners and flashing text

urban patrol
#

i mean it has like profile switching and sortable lists so it's not completely disorganized but yeah lacking folders like aba said

urban patrol
brave fable
#

truly a very narrow pool of ui elements to choose from. pensive emoji

urban patrol
#

it's so much prettier chinhands

woeful lintel
#

I'm personally allergic to mod loaders/managers

#

the only one I technically have is prism for Minecraft, but it's mostly because you need a launcher for it anyway and it's a good alternative

#

I like moving folders so much, no way I'll let third party software do it on my computer

hard fern
#

sometimes i wish that i could like. use i18n in events while also actually being able to read my event the way it's supposed to be

#

cuz im always going back and forth getting lost

#

bc i dont actually know where i am in the event if it's all in 18n

urban patrol
#

yeah that’s why i i18n afterwards all at once using the converter

hard fern
#

oh i forgor i could do that lol.

vernal crest
#

I've toyed with adding comments to the events that contain the dialogue

#

More confusing for someone else reading it, but handy for me

hard fern
#

as of now ive split up the npc portion of my mod and the actual maps part of my mod just to keep them separate... šŸ¤” but would it be better if i just put them together so im not juggling mutliple mod ids?

drowsy pewter
#

just think about what experience you want your players to have

#

can the maps or the npcs be enjoyed on their own

#

if not then why separate them

hard fern
#

uh, it's not about players or anything

#

i just have them broken up while i work on them separately at different speeds

drowsy pewter
#

do you plan to release them in the same download

hard fern
#

it's just while im working on it

#

in the end it's going to all be put together anyways

vernal crest
#

It seems more annoying than helpful to me

drowsy pewter
#

so it sounds like you have to put it together eventually

#

or you plan to

#

if you do it now its easier

#

especially if you have unique ids to change

brave fable
#

yeah imo it feels like organisation for organisation's sake

#

better spend time actually working on the mod than moving it around

vernal crest
#

If you really desired a way to remove parts of the mod from the game while others were present, you could use a config setting and include files

hard fern
#

well at least i dont have too much done rn... SDVpuffersweats easier now than later, yeah

junior tiger
#

Hey, does anyone have the troubbleshooting links for me? 🄺 I have an issue where one of my npcs doesn't show up. NPC_A works fine and well, all is good, but NPC_B doesn't show up and SMAPI says something with the Animations didn't work out, but I'm not sure where the issue could be

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.

hard fern
#

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

junior tiger
#

Thank you ā¤ļø I hope someone could help me find the issue if I paste the log 🄺

hard fern
#

you should paste both log and the json the error is in

junior tiger
hard fern
#

well just post the log first

#

then maybe i can figure out why it's mad

junior tiger
#

Okay, so... it seems to have fixed itself... somehow. The character does appear and I can talk to him (I swear yesterday it was broken 😭 ). I do still have a question about my mod though. The characters all live in the same house, and I'm still not sure how to handle the house in question then.

For now my files are:

Character A folder --> House folder
Character B folder --> House folder (exact same folder copy and pasted)

Would that allow the characters to live in the same house together or could it cause problems this way? (Keep asking this question, I know, because it keeps confusing me)

hard fern
#

why not just set all the character's home location to a room in the house?

junior tiger
hard fern
#

can you please share the relevant jsons?

#

that way i can at least see what it is you're trying to do

junior tiger
# hard fern can you please share the relevant jsons?

I can do that, of course. Could you tell me which specific ones are important so I don't forget anything? But basically, I have 3 characters, A, B, C and I made a custom house for them and I just wanna know how I should set up my folder structure so they all can read and interact with the same house

brave fable
#

NPCs aren't aware of files and folders; all assets are loaded into the game before they begin to interact in terms of locations, spawns, pathfinding, etc

hard fern
#

honestly, you dont need any kind of complex folder structure. all of your information can be contained in one singular content.json, and one assets folder for everything, what matters is how your json is written

brave fable
#

simply having a mod that adds a map and location data is enough for all other NPC mods to use that location for their schedules and homes

#

consider that you can add your NPC to any existing game location without duplicating all the map files in your own mod

hard fern
junior tiger
#

content-Taq: https://smapi.io/json/none/be63065f0f844bd6b96c22d25beaa437
manifest-Taq: https://smapi.io/json/none/e233905a8fe14da99d73968e546cea53
dispos-Taq: https://smapi.io/json/none/3703abfd718c4403b87484905e16272c

Content-Ashara: https://smapi.io/json/none/3b2a8b3be927404490298ffaa3a2683d
manifest-Ashara: https://smapi.io/json/none/98d30c377ec0468b82105c44cd92de7d
dispos-Ashara: https://smapi.io/json/none/aa7482cdeac943f0b071656fa4b17ca7


Screenshot is of my folder structure so you understand how it is currently laid out (I know that content and manifest cannot be renamed it was just for this screenshot)

brave fable
#

are both NPCs meant to live in the same location, or two completely separate locations?

hard fern
brave fable
#

as it stands now, you have two different locations, and both of them place a warp to each location on the same tile in the Forest (which will cause one to override the other)

#

if i were you i'd combine both NPC mods into a single mod, likely with a root 'Taq and Ashara' folder and a simple content.json that includes each of their individual content files, and also separate the location changes into a third subfolder

junior tiger
brave fable
#

consider:

Mods/
[CP] Taq and Ashara
content.json
manifest.json
assets/
[NPC] Taq
content.json
assets/
sprites/
portraits.png
sprites.png
data/
schedule.json
dialogue.json
festivals.json
gifttastes.json
marriagedialogue.json
[NPC] Ashara
content.json
assets/
sprites/
portraits.png
sprites.png
data/
schedule.json
dialogue.json
festivals.json
gifttastes.json
marriagedialogue.json
Locations
content.json
assets/
Ashara-tileset.png
Custom-basement.tmx
Custom-forest.tmx
Custom-house-exterior.tmx
Custom-house-1.png
Custom-house-1.tsx

junior tiger
brave fable
#

note that none of the nested folders have a manifest file; only the root folder that contains all three parts

gray bear
#

wait this is legal? u can do this? SBVCatGasp

junior tiger
#

Okay, okay, but what do I put in the content 1 vs the content 2?

brave fable
gray bear
#

ooh, subfolders

#

smapi doesn't count content.jsons that aren't in the main folder

brave fable
#

and your subfolder content files would look as they do currently, but without a Format field (because only the root content.json file may have this field), and of course edited to match the actual assets in each

gray bear
#

pseudo content.json

brave fable
#

i've kept their filenames as content.json for simplicity's sake, but they could be anything since you're including them manually from the root content.json (which is the only file that Content Patcher requires you to have named as such, and is required to be in the root folder)

#

i also edited in a third subfolder content.json there for the location data, since you'd want it separated from the NPC assets

gray bear
#

this is very cool! puffer_wow

hard fern
#

make it corn.json

#

(do not take my suggestions)

gray bear
#

can do like NPC data.json

junior tiger
#

Ah, so I really just combine my 2 existing files, extract the maps into a separate folder and make a new original content.json and combine the existing manifests? Otherwise everything stays separate?

junior tiger
gray bear
#

yeah! it's all one modā„¢ but the folders and files make it 3 seperate ones

junior tiger
gray bear
#

easier to manage, but only one manifest!

brave fable
#

well the important part is removing the duplicate location changes from both of the NPC mods, since currently you're adding 2 unique locations and keeping dubiously-exact copies of all of the map files

#

it just so happens that you can also combine them all into a single mod as laid-out above

junior tiger
gray bear
#

less locations, less jank

junior tiger
gray bear
#

make a manifest for all of them combined, like expansions do

junior tiger
#

We don't love big files, but needs must

gray bear
#

or just "NPCs Taq and Ashara"

brave fable
#

you want a single manifest.json file in the root mod folder, with the same fields as your current ones. the file won't be any larger since you're likely not adding or changing anything other than the Name, Description, and UniqueID values

junior tiger
#

So edited to look like this?

brave fable
#

sure, but probably with a more meaningful name, since that's what's shown to players

gray bear
#

yeah make it specific

junior tiger
brave fable
#

generally i'd say it should match the folder name (and mod page name) so players can correlate between the two if they need to update or remove the mod, but that's just a suggestion

junior tiger
#

I can do that! I am not too attached to the name

#

Thank you so much you lovely peeps ā¤ļø I might be back soon, but for now I know what to work on next

brave fable
#

no worries SDVgunther every problem's simpler than you think

junior tiger
#

Oh, one more thing 🄺 the smapi does sometimes throw the error that the marriage dialogue couldn't be found or something along those lines, did I just name or connect something wrong?

https://smapi.io/log/095ec37c5d3b41719355fcb034c9e18e

I believe the issue might be this line, I don't have the guide open what else should this line contain?

ocean sailBOT
#

Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on Microsoft Windows NT 10.0.19045.0, with 4 C# mods and 2 content packs.

brave fable
#

the issue's that you've wrapped your placeholder text in {{}} token tags, so CP's confused as you don't have a token with the same name

junior tiger
#

Oh so just one set of {}

brave fable
#

well given this is just a placeholder you can just leave it with no tags at all, and later on use the correct {{i18n:myi18nkeygoeshere}} format for the i18n file translations

gray bear
#

the amount of brackets is correct but the value isn't

brave fable
#

your Target also isn't correct though, and should instead be Characters/Dialogue/MarriageDialogue{{ModId}}_Taq to match the asset name pattern the game uses when checking for dialogue

gray bear
#

i was today years old when i realized that's how the game uses marriage dialouge

brave fable
#

it's best you look at the way your unpacked game asset files are structured when writing your Target values

gray bear
#

why not just a subfolder

brave fable
#

why use many folder when few folder do trick

gray bear
#

this is terrible

#

no just one folder for marriagedialouge

#

instead of using MarriageDialogue 700 times

reef shuttle
#

Oh thats bad

junior tiger
brave fable
#

well the most prominent issue here is that you've put the portrait dialogue keys at the start of the dialogue line, when they should be at the end, between the spoken words and the # delimiter

#

e.g. "Outdoor_0": "Don’t wander too far, alright? I’ve lost enough already...$2",

#

"Rainy_Day_3": "I never thought I'd get married, but standing here... with you, while the rain crashes down around us...$1#$b#It's nice.$4",

junior tiger
#

Okay, okay that's one thing to fix, but in my normal dialogue I have it the same way and it works

brave fable
#

they don't have šŸŖ™ sprites appearing where the $ signs are? SDVpufferthinkblob

junior tiger
#

It's that SMAPI doesn't even load in the marriage dialogue, or at least shows me a minor error

junior tiger
brave fable
#

i wouldn't expect that to work. all SDV dialogue puts the portrait keys after the spoken words

#

still, not the issue at hand

#

your first change in that file will be applied, because the Target matches the asset name the game will attempt to load for marriage dialogue, but since the value (dialogue entry) is read by CP as a broken token it won't be added, so the result is a blank asset and no dialogue

#

your second change will not be applied because the Target doesn't match any asset names the game or any mods will try and load

junior tiger
#

I think you just can't have two profile tags in the same sentence without a #$b# inbetween, because then it does show the coin

brave fable
#

huh

gray bear
#

dialouge is funky, yah

junior tiger
#

I cheated the system :3

#

I did have it happen with the coins, that was when I wanted a tag before and at the end of the dialogue, but for me it was that last tag that showed as coins

gray bear
#

last tag? where

junior tiger
# gray bear last tag? where

I deleted it but basically "$1 Hello, how are you? $4" would turn into " šŸ™‚ Hello, how are you? 4 šŸŖ™ "

gray bear
#

# are needed wiki doesn't mention but it straight up does nothing without

brave fable
#

looking at the dialogue parser, Dialogue.checkEmotions() will in fact parse portrait dialogue keys from anywhere in the text

gray bear
#

oh no

#

that wasn't formatting discord

#

can't have 2 emotions for one line

junior tiger
gray bear
#

ur trying to use two expressions for one line, game no do

#

gotta break

junior tiger
gray bear
#

i don't think where it is matters. usually you put it in the end but there's no rules for it iirc

brave fable
#

so if you have this dialogue:
"Guess what @? You just won $1,000 in the lottery!$h"
it'll give the result:
Guess what Farmer? You just won ,000 in the lottery!$h
and use the happy portrait

gray bear
#

wiki does say "Portrait commands should be at the end of a dialogue line: "

brave fable
#

wiki is full of shit apparently

#

since it removes all instances of that portrait key only from the line of dialogue, if you used $1 in both places for a happy portrait it'd remove both

gray bear
#

wonder if u can fake a $

junior tiger
brave fable
#

precisely 😌 the spritefont dollar always wins

junior tiger
gray bear
#

that's horrible

#

yeah i don't see a single mention of having to use hashtags for commands but u fucking do

brave fable
#

if it didn't swap out for a dollar sprite though, you could fake-out the dialogue parser by writing "$hYou just won $1,000 in the lottery!" and having it only remove the $h, apply the happy portrait, and not remove the $1 later

gray bear
#

dialouge manipulation

brave fable
#

# is there to separate lines of dialogue, just like spaces in properties and slashes in old data entries

#

it's somewhat load-bearing

gray bear
#

i'd like to line about this, i didn't know this Toto_Sad

#

there's some in examples but me need insturction

brave fable
#

well all that fluff aside, it's best to format your dialogue as people expect to save on confusion and make debugging/troubleshooting easier

gray bear
#

can u fake the emoji

#

maybe just give up on that

brave fable
#

otherwise they might go slightly mad and write strange ways of freaking out the dialogue parser with dollar signs and happy faces

gray bear
#

does any vanilla dialogue use šŸŖ™

brave fable
#

apparently for hovertext on mail with money

#

see Strings/UI:LetterViewer_MoneyIncluded

gray bear
#

could u use that for dialouge?

brave fable
#

searching for other usages, i got a little excited when i spotted willy's turkish quest dialogue includes $ {0}g, but that's just the closing $ for a ${^}$ inline gender switch block

#

well you can use $ for a šŸŖ™ sprite anywhere that uses the regular spritefont

#

which includes regular dialogue

verbal narwhal
#

do you think many players will want to place a frog tank (from my mod) outside?
currently i'm only scanning decoratablelocation for frogtanks

gentle rose
gentle rose
verbal narwhal
#

ah wait, is the whole class decoratablelocation obsolete?

brave fable
gaunt orbit
#

oh wait the island farmhouse is also DecoratableLocation

#

Furniture has always been able to be placed in any location, it's just that some furniture items can't be placed in locations marked as outdoors

verbal narwhal
#

thank you!
I made it a toggle with the note that enabling outside frog tanks might cause performance issues and make the toggle look for this:

{
    var list = new List<Tank>();

    bool isIndoor = loc is DecoratableLocation;
    if (isIndoor || this.Config.EnableOutdoorFurnitureTanks)
    {
        var furn = loc.furniture;
        if (furn != null)
        {
            foreach (var f in furn)
                TryAddTankFromFurniture(loc, f, list);
        }
    }

    return list;
}```
and it works great!
#

for something to show up on the animalpage though it needs to be an actual animal/pet instance, if I have read that right..
can i create a fake/invisible petbowl instance outside of the normal farm map boundaries or is that risky/stupid/causing errors?

gaunt orbit
gaunt orbit
verbal narwhal
#

I didn't think that far tbh Sweating
would checking loc.IsOutdoors though then trigger looking for my frog tanks in any indoors map? like undecoratable npc houses?

near island
#

This far into my mod and I still don't have a concrete name for it. I'm thinking "JojaFlex - Freelance Contracts", but I'm not fully sold on it

gaunt orbit
verbal narwhal
#

I didnt know that!

#

thanks!

gaunt orbit
#

(also if there's no furniture somewhere, your loop will be essentially free anyways)

rigid musk
#

So just a question- why exactly do mods go under review HUHcat like what are some of the reasons other than violating nexus' content tos

verbal narwhal
rigid musk
#

Cause like.. this is probably the weirdest one for this to happen to and I don't even know what to do about it if anyone has any suggestions

gaunt orbit
lucid iron
#

Or picky

#

This is just the game's retro furni but desaturated?

rigid musk
#

Literally just that yeah

#

Dm them on Nexus? How.. do i do that

lucid iron
#

Uh use the āœ‰ļø button

#

Or dm them on discord tbh either is fine

rigid musk
#

The joja one isnt under review either so Im extra confused

verbal narwhal
lucid iron
gaunt orbit
#

most locations dont really have furniture anyways, and the heavily decorated ones are most likely locations you would want to check anyways

lucid iron
#

In mmap i have a whole elaborate thing for tracking furniture placement state but it just boil down to

  1. Player entered location that hasn't been cached yet? Do work
  2. The furniture net collection changed? Do work
verbal narwhal
# lucid iron If you only do work when player enters a location then it is really not that bad

I check for it onassetsinvalidated, ondaystarted, onwarped, onsaveloaded, onfurniturelistchanged and this funky check onupdateticked:

private void OnUpdateTicked(object? s, UpdateTickedEventArgs e)
{
    this._ticks++;
    if (this._ticks % 30 == 0)
    {
        this.DecayFiQueues();
    }

    if (!e.IsOneSecond) return;
    const string SebEventIdStr = "9333220";
    bool isSebEventNow = false;
    try
    {
        isSebEventNow = Game1.CurrentEvent != null && (Game1.CurrentEvent.id == SebEventIdStr ||
                                                       Game1.CurrentEvent.id?.ToString() == SebEventIdStr);
    }
    catch
    { }

    if (this._wasEventUp != Game1.eventUp)
    {
        this._wasEventUp = Game1.eventUp;
        this.RebuildForCurrent("EventToggle");
    }

    if (this._wasSebEvent != isSebEventNow)
    {
        this._wasSebEvent = isSebEventNow;
        this.RebuildForCurrent("SebEventToggle");
    }

}

the RebuildForCurrent creates a tank instance (map and/or furniture based) and adds frog sprites and interaction logic

verbal narwhal
rigid musk
#

Okay thanks chu :) I did that

#

It says something about an original mod but I desaturated it myself 😭

tender bloom
#

Most likely, someone reported it thinking it was from some other mod or something

hexed ember
#

hello! i'm super new to modding so apologies if i don't explain things the best.

i have a content patcher sprite replacement mod for a different mod, nature in the valley.
how would i go about making my mod change a sprite which doesn't seem to be loaded via the original mod's content.json, but still shows up on the map? it's in a folder named MapStuff so i assume it's considered a tilesheet

#

the governer is on the overworld so i'd like to change his sprite- from what i can tell, in the original mod the sprite is loaded via an EditMap of Gov1.tmx and Gov2.tmx, a map which seems to load only a tile of the governer and that is all. would i have to edit the .tmx?

lucid iron
#

The original mod is C# right

hexed ember
#

the original mod is a content patcher mod!

#

well, i think it has a C portion too. but the map is loaded via content patcher, and the sprite i want to edit is in the content patcher folder

lucid iron
#

(side note why is this map patch huge)

#

In tiled you can see what tilesheet the governor came from

#

If it indeed never loaded to content (i.e. placed next to tmx) then yes you must editmap over their editmap

hexed ember
#

seems to just be this! so on the bright side it's a pretty simple tilesheet to edit. i see.. so, would i want to have my own MapStuff folder with my edited sprite in it, and then use editmap over the two maps but make it so that the tmx loads my tilesheet instead?

#

thank you very much for your help btw!! realized i had not thanked you yet, i appreciate it a ton

lucid iron
scarlet quarry
#

simple question but what do you add on the manifest key part when you don't have the nexus key yet? i remember it's something like "???"

lucid iron
#

Otherwise up to you

hexed ember
oblique meadow
#

Can the travelling merchant schedule only be changed with C#? I can't see it in any of the unpacked files

brittle pasture
#

you can make her show up in other locations in other days with map patches (both RSV and VMV does this)

#

I think you can also prevent her from showing up fridays and sundays just by patching over the forest map too (I wouldn’t recommend it for obvious reasons) forgot about the waving sprite and a bunch of other hardcoded stuff, probably don’t do this lol

oblique meadow
#

ok i see how they did it with RSV. Thanks Selph

brittle pasture
#

yeah outside of the hardcoded stuff for flavor in Forest.cs the merchant is just a shop tile

static seal
#

I would like to create an effect, similar to the mechanics of the Witch Hut's Dark Shrine of Night Terrors, that allows players to repeatedly contribute items in exchange for changing an NPC's portrait and sprite,it can unlimited contribute to change NPC's portrait and sprite. Would this be possible to implement through a JSON file? If so, I would be extremely grateful for some guidance on how to approach creating it.

golden basin
#

is there a way to make a crop glow ?

golden basin
lucid iron
#

Assuming i spelled tbat right

#

Set a mail flag or a stat on there and then control your npc's appearance through that

golden basin
#

ooo you can do that?

lucid iron
#

Yeah you can run whatever action you want

golden basin
#

thats fantastic

lucid iron
#

Ofc it does mean it takes up the gift count of that week

slow basin
#

im hoping to see a friend of mine in mods general soon SDVkrobusgiggle i just made their clown mascot a little spritesheet for halloweens trick or treats, i think i deserve a little modding break now 🫔

golden basin
#

So i am wanting to make one of my crops glow with light is there a way to do that with like a existing framework

lucid iron
slow basin
#

i feel like i remember seeing someone use a mod before for something similar šŸ¤” maybe i can key search it in discord to see if anything comes up

#

i cant find it i swear someone was doing something similar with something in the wizards tower šŸ˜” not crop but they were trying to apply a glow effect im p sure unless im hallucinating al;jf;f it was a loong time ago tho

brittle pasture
#

if nothing I can probably add it to MTF (once I’m done testing this chimken harvest stuff)

#

(also side note, I believe I figured out why attack chimkens wasn’t working with MEEP before. I’ll need someone else to test it though)

tiny zealot
#

@vernal crest at your convenience, could you provide for me a list of glyphs you would like support for? (fully-composed ones, so e.g. a-with-macron) i'd like to look into this.
ideally you can just type them into discord here

vernal crest
tiny zealot
#

thanks!

#

i guess if anyone else is feeling the lack of particular diacritics in the default latin/cyrillic font_bold and/or SmallFont, let me know about them

#

maybe not SmallFont though, i'm not sure i can handle that one yet ._.

vernal crest
#

What's the font used for dialogue?

tiny zealot
#

font_bold is the one in dialogue boxes, mail, bold headings in some menus, etc.

vernal crest
#

Sweet

tiny zealot
#

much of the other interface text is in SmallFont, but those are texture atlases with big json sidecars and i don't have a good way to generate or modify those (yet?)

#

and they have locale variants, which makes sense, but font_bold does not and it's all crammed in one sheet

vernal crest
#

What is your font project for, may I ask? I asked about macrons mostly jokingly without knowing the actual context lol

tiny zealot
#

i'm literally just tweaking the font for funsies. that's it

vernal crest
#

To make it more readable? Prettier? Able to display macrons now?

#

Give you an opportunity to make your "Noooooo" joke?

tiny zealot
#

sort of all three! (i might split out the macrons, and other diacritics if necessary, into its own thing)

#

i detest the mostly-monospace nature of the vanilla dialogue font. i want it to feel sort of the same but be nicer (to my eyes) and hopefully easier to read

vernal crest
#

Is it just a personal thing or with a thought to sharing it?

tiny zealot
#

oh i'll publish it

#

let me get a screencap. i think it's turning out quite nice

vernal crest
#

I'm trying to figure out how much I should place my hopes of getting actual macron support in my planning for Hiria (as well as general curiosity about your project)

gentle rose
tiny zealot
#

part of the reason i never did this earlier is that Font Settings exists and completely solves the problem

#

but i simply feel the need to do my own take

vernal crest
#

Quick get your screenshot before I must sleep

uncut viper
#

and its capital

#

Ŷ

tiny zealot
#

bonus mouse content by mistake, i picked lewis at random and forgot i implemented that CT lol

vernal crest
#

Wow so sans serif

#

I have no memory of vanilla so I cannot compare but it looks good SDVpufferthumbsup

#

More words per line, I think?

tiny zealot
#

yes! most of the lowercase letters are narrower
(part 2 of above line, please laugh at my jokes /lh)

#

here's some cyrillic, if anyone wishes to alert me to crimes in that area

fast plaza
#

Does anyone have any insight on what SMAPI event I should hook into to setup values when a player loads in?

#

so like, there's GameLoop.SaveLoaded which seems correct but I'm unsure if thats appropriate since I don't know how it works with stuff like multiplayer

brittle pasture
#

I believe it does get called for every player when they join

timid onyx
#

Is there a mailflag for Willy's boat being fixed that I can manually enable? Don't really feel like taking this to modded-support, but somehow my game refuses to fix the boat overnight and I can no longer interact with the boat after delivering all parts.

fast plaza
#

Ok thats good then. Does it also get run when creating a save for the first time? And does SaveLoaded apply only locally? like if a client connects does it run it on both the client and server?

calm nebula
#

Use SaveCreated

#

There is also a PeerJoined or smth

calm nebula
#

SaveLoaded runs for the player that joins, it's not run on host when a farmhand joins

fast plaza
#

Ok, thats good to know

timid onyx
oblique meadow
#

So @brittle pasture if I am reading the machine rules correctly and I use RandomItemID then would the code for the machine look like so?

    "Target": "Data/Machines",
    "Entries": {
        "(BC)Huskyn1nja.SylvanlightMeadows_TotemOfTheWilds": {
            "OutputRules": [
                             {
                    "Id": "TotemForage",
            "Triggers": [
                {"Trigger": "MachinePutDown"  },
                {"Trigger": "OutputCollected" }   ],
                    "MinutesUntilReady": 180,
                    "Output": [
                        {"RandomItemId": [ "(O)16", "(O)18", "(O)20","(O)396", "(O)402","(O)404", "(O)408","(O)414", "(O)418" ]}
brittle pasture
#

yeah I think that looks good

#

wait actually

#

you should put Triggers inside the object in OutputRules

oblique meadow
#

ok updated. So like that

brittle pasture
#

yeah that looks good feel free to test

autumn tide
#

hey! tryna make a dwarf portrait mod that gives them facial expressions, should I just go about it like a regular portrait mod or do I have to do something additional?

shut edge
#

so if i decide to update a mod by making it a whole new mod, is there any best practices for that?

#

like some kind of trickery with migrating IDs to make previous-mod saves stuff transfer over?

brittle pasture
brittle pasture
verbal narwhal
#

I know I was discouraged to make the frogs count as pets, but I also really wanted them to display there (and hopefully count towards the pet thing for the ||2nd year grandpa evaluation event ||
so I wrote this:
https://pastebin.com/WucASczu

this seems safe regarding safe file explision, right?

shut edge
#

i plan to add like...a lot more of them

#

and overhaul the house

#

i suppose i could just rename the mod too, dunno what the best path is tbh

#

the existing livestock will also have some things about them changed, outputs etc

#

texture paths will also change but that probably doesn't break anything as far as a save is concerned i assume

brittle pasture
uncut relic
#

Hi, how can i make specific type of artisan goods as an input item on machines? As an example for Grape Wine, i tried the "RequiredItemId": "(O)348/398", but it doesn't seem to work.

brittle pasture
#

and would throw errors if you add more portraits

brittle pasture
autumn tide
brittle pasture
#

retexture = change one image to another

autumn tide
#

Oh yeah, I'm making custom portraits with emotions, so it makes sense that they wouldn't be compatible then

#

thanks :)

uncut relic
shut edge
#

oh dang fish factory is a trending mod, nice

urban patrol
#

where are you seeing that grape wine's ID is (O)348/398 ?

brittle pasture
#

ah, must be from Lookup Anything

#

the format is slightly misleading, the item ID is only (O)348, if you want the ā€œgrape flavorā€ part you need to set the appropriate context tag in RequiredTags

#

(I read too quick and thought you wanted one of two items, whoops)

#

"RequiredTags": ["preserve_sheet_index_398"]

brittle pasture
shut edge
#

thanks

#

the main part is the roof of jojamart lol

verbal narwhal
#

I still need to figure out how I can make it count towards the grandpa score and also show if the frog was pet this day

shut edge
#

probably would have done the art a bit different but the vanilla sheet kind of locked me into where i ended up

#

the monitor-signs worked out ok tho i feel

#

definately one of those mods you make and it's like "welp i'm actually gonna use this one"

brittle pasture
shut edge
#

indeed

#

that's why the item door is on a little pedestal etc

verbal narwhal
brittle pasture
#

Utility.cs

shut edge
#

looking at chocobo valley to see how they did things

#

looks like it's just deluxe produce eggs for the next bird? guess that's a pretty simple approach

#

ah you don't even buy them from marnie, just as eggs from a custom store

#

kind of a neat way of doing it, i will prob stick to marnie for mine tho

brittle pasture
#

you can go fancy and have a custom animal vendor

#

with Livestock Bazaar

shut edge
#

yeah i'm still trying to decide how i wanna break these up a bit

#

mine level progress + barn upgrades most likely

#

but should i have them become different animals to buy or just variants on the same one, hmm

#

(i've probably posted similar things like three times this week i apologize lmao)

uncut relic
brittle pasture
#

hmm I had assumed that the game checks both RequireItemId AND RequiredTags

uncut relic
#

no, when i tried it just with just the command you gave me, it accepted grape jelly too

brittle pasture
#

just that line? no RequireItemId?

uncut relic
#

tried it with coconut & accepted dried coconuts too, so the exclusions were required

#

RequiredTags you mean? I meant the whole command, soz >D

#

tis: "RequiredTags": ["preserve_sheet_index_398"],

brittle pasture
#

like if I do this then it should work for grape wine:

{
  "RequiredItemId": "(O)348",
  "RequiredTags": ["preserve_sheet_index_398"]
}
uncut relic
#

oh, i didn't include the RequiredItemId one, just the RequiredTags

#

maybe that's why

#

y you were right, it worked perfect, and much simpler than adding a bunch of exclusions šŸ˜„

soft lance
#

insanely common question

calm nebula
#

What's up?

soft lance
#

where are the aquarium sprites in stardew valley located

#

i know its dumb but

#

i forgot where

#

so i can unpack them

ornate trellis
#

LooseSprites

soft lance
autumn tide
#

finally got my whole event to (sorta!) work!!!

wheat sundial
#

hey guys is it possible for an NPC to give you an item during a heart event?

#

I'm coding my wife into stardew valley and was wondering if I could do that for the heart events

#

like maybe have her make you something

ornate trellis
#

shore

brittle pasture
wheat sundial
#

thanks

#

also just a question with content patcher

ornate trellis
#

selph was faster linking it lol