#making-mods-general

1 messages ยท Page 120 of 1

brave fable
#

technically my first mod is an npc, it's just also my current mod

velvet narwhal
#

i went from portrait/sprite replacer to a full on custom framework-added npc expansion, so does that count as an npc being my second mod?

hard fern
#

i went from sprite replacers to JA objects, then randomly made a map mod XD

#

and now i am in npc hell

brave fable
#

i'd say it's closer to npc limbo

#

not living, but also not dead

lucid iron
#

hm i wonder if anyone would be interested in like

next plaza
#

Ah, like most of my in dev mods

lucid iron
#

a sprinkler attachment framework

next plaza
#

Everyone loves microframeworks

latent mauve
#

Speaking of distractions, here's my latest "this didn't need to be a google sheet, but here we are":

next plaza
#

Who doesn't want more dependencies ๐Ÿ˜›

lucid iron
#

like it does some trigger action action on each dirt within range

velvet narwhal
#

the 10 weirdoes who installed my customfield framework woopsDerp1

next plaza
#

Chu just make a central framework like the rest of us!

lucid iron
#

no that's sinful

#

i never even came up with a 2nd idea for "what should sprinkler attachments do" besides plant seeds anyways sleep

uncut viper
#

scare crows

velvet narwhal
#

scare crows-

next plaza
#

<flashbacks to an in dev mod from eons ago>

lucid iron
#

but the scarecrow is already so much range

uncut viper
#

yes, but

#

i dont like them

latent mauve
#

But, uh, if anyone needs a quick reference for what spriteindex furniture objects are mapped to, I got you, I guess? LOL

lucid iron
#

i thought about make it harvest but then i was like

hard fern
#

one scarefrow for the WHOLE farm

uncut viper
#

and i only need scarecrows to cover my crops

#

where my sprinklers are

lucid iron
#

what could this possibly be called Thqnkqng

uncut viper
#

the rest of the range doesnt matter to me

velvet narwhal
#

Spooky Sprinkler

lucid iron
#

no it'll just be a fake robo crow

brittle pasture
lucid iron
#

it assert dominance over the other crows

#

yea exactly selph monS

uncut viper
#

it has to be more aesthetically pleasing than the normal scarecrows for me to use it

#

i think a cheap harvest attachment is still good

lucid iron
#

well i guess im wrong person for that good day

uncut viper
#

for an early game thing

brittle pasture
#

ooh, bounce pad so you can jump between sprinklers

uncut viper
#

i mean, iridium sprinklers already cover 4x4, so why do normal sprinklers exist

lucid iron
#

sprinkler attachments r later game than junimo huts

uncut viper
#

you could change that with a framework

lucid iron
#

no i dont wanna >:)

uncut viper
#

is there any reason i cant have a mod that sells it early game?

woeful lintel
uncut viper
#

its just a shop entry

lucid iron
#

i think the balance curve feels better

#

all vibes no thoughts

uncut viper
#

a bold choice for a framework author to be so opinionated but good luck /lh

lucid iron
#

and honestly i regret giving krobus the sprinkler attachments

grizzled stag
#

Is it possible to make trincket unlock erlier? Having it as a mastery thing

lucid iron
#

as a mod?

latent mauve
grizzled stag
latent mauve
#

So I can actually drop a furniture entry in and it'll break it apart for easy editing.

lucid iron
#

u just need to increment the stat

#

need C# but fairly ez

uncut viper
#

why do you need C# for that

lucid iron
#

is there action to increment stat

uncut viper
#

yea

lucid iron
#

oh ig u can make a book lol

uncut viper
#

or just any trigger action

brittle pasture
#

for an interesting early game sprinker attachment, maybe one that allows re-activating them

lucid iron
#

Game1.player.stats.Set("trinketSlots", 1);

brittle pasture
#

like that one mod but more balanced(tm)

uncut viper
#

a book wouldnt be what you want either bc a book will keep incrementing it and idk you probably dont wanna be able to get infinite trinket slots

#

whatever that may mean when the code checks that stat

lucid iron
#

nah i think vanilla only checks its above 0

brittle pasture
#

I think it just checks it exists?

lucid iron
#

u dont get more slot if u have "trinketSlots"=2

uncut viper
#

i wonder why it didnt use a mail flag then

grizzled stag
#

Does having the slot automaticly make trincket dropable?

lucid iron
#

no thats a separate thing

#

oh nvm it is controlled by trinket slot

#

silly Dokkan

#

if u dont want that i suppose u could edit data all trinkets to DropsNaturally=False until the player has the stat for mastery

#

but that wouldnt make much sense unless u r make ur own custom trinkets for early game usage

grizzled stag
#

What are the limitation of custom trinkets? Don't see a lot of those floating around

uncut viper
#

the limits are Very but thats why Trinket Tinker exists

velvet narwhal
#

i will forever call it trinket trinker

uncut viper
#

its a framework for creating custom trinkets

lucid iron
#

Yeah pls Consume me mod thank

uncut viper
#

i like trinker tinket

#

the 1.6.9 patch notes called them trinkers so it stuck

brittle pasture
grizzled stag
#

Ok I need a Pikachu trinket

lucid iron
#

i think trinket tinker could use more abilities implemented

velvet narwhal
#

i have no ideas for you, so don't look at me

#

i used up my peanut-amount-of-electricity in me brain to write my own gameplan

brittle pasture
#

flying mario hat, mind controls one enemy for you

#

have fun coding that

lucid iron
#

But hm it's hard to integrate a very active element (a little guy that follows the player around) with sdv's more passive time management mechanics

uncut viper
#

make it a big guy then

lucid iron
#

Well, you can do that already

#

Someone asked me questions about their 90*84 companion

uncut viper
#

i dont want to though i want someone else to

grizzled stag
#

Isn't the frog one, a little guy following you around?

uncut viper
#

that is a very large companion was it avi

lucid iron
#

I'm vaguely concerned

velvet narwhal
#

WHY AM I GETTING SHOTS FIRED I MAKE (1) BIG NPC AND I'M THE BAD GUY-- /j

uncut viper
#

you just seem like you like stretching numerical limits

lucid iron
#

No some nexus person whose main output is arknights npc xnb replacer

#

But avi is reasonable educated guess I agree

lucid iron
#

3 little guys even

velvet narwhal
#

ok i apologize for unleashing that hd portrait person into here while i was at work, but my brain don't wanna think about my own published mod

lucid iron
#

So yes if u want to make custom trinkets with a companion n everything without doing the C# part, you can

uncut viper
#

these arknight portraits seem very well done actually if you can ignore the fact that they are xnb mods

grizzled stag
#

Oh damn, one of the trinket can help with harvesting, thats cool

lucid iron
#

Yeah I'm psure they just can't read content patcher docs

velvet narwhal
#

the problems of having it all in english with no formal translation substitutions

lucid iron
#

But maybe they will go back n convert their xnb mod now that they r exposed to content patcher

uncut viper
grizzled stag
#

Can a trinket pet do more than 1 action?

#

With the framework that is

lucid iron
#

Yeah

#

Ability is a list of list

#

For level -> abilities for that level

calm nebula
#

Remind me in 14 days to add trade item ids to the gsq check

patent lanceBOT
#

whew ok i'm pretty booked up at that time but...I'll squeeze it in for you. (#6383489) (14d | <t:1733809596>)

calm nebula
#

Also, remind me in 14 days to actually try learning a katseye dance

patent lanceBOT
#

don't you have like a cell phone or something atravita? it can do the same gosh darn thing and then I can be lazy. but okay, I'm on it. (#6383490) (14d | <t:1733809616>)

calm nebula
#

.....

#

That was a joke I didn't realize it didn't have to be at the start if the line

brittle ledge
#

You're going to have to report back in two weeks and tell us if you've learned one

calm nebula
#

Something about debut's leg kick is just so perfect

quaint moss
#

With CP only, is it possible to add custom minerals to the drop pools of the vanilla nodes? The spiral rock that drops gems especifically

brittle pasture
#

unfortunately no. you can add your custom rocks with Item Extensions, but the vanilla nodes are hard coded

quaint moss
#

I see, thanks

deep cypress
#

Spacecore does something with custom ore nodes of somekind, it's like a newer function, lemme go look...

#

So, there are the spawnables which will allow you to define literally anything as an ore node and what to release.

#

(SpaceCore is the greatest mod of all time, and solves all problems).

brittle pasture
#

they wanted to add a drop to an existing vanilla node, which SC/IE doesn't solve

deep cypress
#

I see! Sorry, I misunderstood!

shadow pagoda
#

Is there a way to force the seed of a save file to be the same every time it's generated?

velvet narwhal
#

Iirc vanilla lets you put in seeds, no?

shadow pagoda
#

It does. I didn't notice the text box, thanks

latent mauve
#

hey friends, what is the proper way to have a RandomItemId pull from any objects with (S) or (P) as the type? (Shirts and pants)

#

Because the way I have it is clearly wrong, since it's throwing a lovely repeating error in my log.InvalidCastException: Unable to cast object of type 'StardewValley.Objects.Clothing' to type 'StardewValley.Object'. at StardewValley.Object.OutputMachine(MachineData machine, MachineOutputRule outputRule, Item inputItem, Farmer who, GameLocation location, Boolean probe, Boolean heldObjectOnly) in D:\GitlabRunner\builds\Gq5qA5P4\0\ConcernedApe\stardewvalley\Farmer\Farmer\Objects\Object.cs:line 2430

#

(trying out my machine idea for a laundry machine that randomly outputs a clothing item)

brittle pasture
#

you can't have machines output clothing...

#

...without extra machine configs

latent mauve
#

Well, drat.

latent mauve
#

Good to know that I probably didn't do it wrong, though, it's just... not allowed without another mod that makes it accept clothing. xD

#

Would this also allow for a secret note to be the output, by chance?

#

My brain cannot parse those docs right now, I'll look at it again later

rancid temple
#

Ooh, so I can fix the geode crusher with this

#

Ah, I love that the example is exactly what I want lmao

#

Though missing the stat increase for opening mystery boxes

brittle pasture
#

(the example also should be limiting the input to mystery boxes only)

#

(because the vanilla rules rely on the function to do the filtering)

latent mauve
#

I tried to code it but it's getting late so I should sleep soon. If it fails, can I poke you for help tomorrow, Selph?

brittle pasture
#

sure!

latent mauve
hard fern
#

๐Ÿ˜”

#

map making

#

is hard

brittle pasture
#

(Side note but also add "Color": "White" to the holder output rules. It's to make the output ready bubble draw the clothing item instead of the holder item, which looks like the weeds icon)

latent mauve
#

If I want random to be either shirts or pants, do I need to do RANDOM_ITEMS (S) (P) in that format?

deep cypress
#

For the Ocean Farm, which spawn the supply crates, those are hard coded, right?

brittle pasture
#

keep them separate

#

add RANDOM_ITEMS to both

hard fern
rigid musk
#

What's the game state query for unlocking the casino ?

rigid musk
#

When I made the berry woods map, making the outside leaves was a nightmare

rancid temple
#

Tiled has a feature to make that a little easier

rigid musk
#

Oh?

#

I was thinking I was just a perfectionist but if there's a way to make things easier...

rancid temple
#

Trying to remember what it's called

#

Terrain Sets

rigid musk
#

Terrain sets?

rancid temple
#

I had a map that was using it but might have lost it at this point during the upgrade to 1.6.9

#

Well, okay Discord

rigid musk
#

O:

#

I could have made my map in 10 minutes not 2 hours what is this

rancid temple
#

I definitely lost that map I had, I'll have to make another one at some point

rigid musk
#

Thank you for the blessed information

rancid temple
#

Albeit, I definitely spent like 2 hours trying to figure this out lmao

#

I also didn't get into the probability or any of that you can use to lean more towards specific tiles showing up, kind of just made it and repainted if I didn't like how a specific area looked

royal stump
# deep cypress For the Ocean Farm, which spawn the supply crates, those are hard coded, right?

Technically no? It depends on your goal.

  • To enable those on a different farm type, you need to add the map property SpawnBeachFarmForage T, then add the tile property BeachSpawn T the Back layer where the objects should appear. You could also spawn the items yourself with other means, they're all basic object types (IDs 922-924 are the floating boxes, notably).
  • To disable those spawns on the normal beach farm type, you'd need to remove BeachSpawn tile properties from every tile, it looks like. The map property is ignored/hard-coded to always be on there, but it only targets those tiles.
#

(and per the game's usual forage logic, more spawn tiles = more chance it'll spawn more stuff; it just randomly picks a tile, asks "is this BeachSpawn?", and has a 90% chance to keep trying either way SDVpuffersquint)

deep cypress
#

Thanks so much luv!!! This is super helpfu!

rancid temple
#

@brittle pasture Seems like the Geode Crusher will accept any item and if it's not a geode will give the placeholder item, using your example from github

#

I was confused earlier about what would make it only accept Mystery Boxes for this method, as there's nothing I can see limiting it, but only just tested it

#

Would it not be better to create an entry that sits above Default specifically for Mystery Boxes? That way anything else would just fallback to default and it would handle the denial of non-geode items

rigid musk
rancid temple
#

Something like that probably doesn't have a specific GSQ, maybe a mail flag or world state

#

There's definitely a flag associated with completing the quest to get rid of the bouncer

#

HasClubCard

rigid musk
#

I...CH_FaceWhyCH_SmhFacePalm

#

I saw that one, I saw it and was like noo that's not the casino :(

#

Thank you

rancid temple
#

Yeah, it'll be true as soon as you interact with the lumber pile for Qi's quest, so technically before you've actually entered the casino

#

Could check if the player has actually visited the casino location and has the flag

#

If it matters

rigid musk
#

No for what I wanted that's perfect

#

Sometimes I question myself deeply

#

Thank you very much

rancid temple
#

Really gotta find time to finish that mail flag page

#

Oh lmao, I didn't realize the geode crusher already had the stat increase stuff for mystery boxes, guess that wasn't rolled back when the other stuff was

#

I guess Golden Coconut also needs to be added to this, since you can get a hat from it

brittle pasture
rancid temple
#

Oh, I misunderstood, I thought you meant it did that somehow lmao

brittle pasture
#

english hard

rancid temple
#

It's the only language I know, and I agree lmao

#

Hm, Golden Helmet flag doesn't get set when Automate collects it from the Geode Crusher

#

Collecting it manually does work, so definitely just an Automate issue

brittle pasture
#

does it work when it enters the player inventory

#

after automate put it in a chest

rancid temple
#

Nope

#

Has to be triggered by the GeodeDrops stuff it seems

inland rain
#

hey everybody, how's things?

#

there can be only one

drowsy pewter
#

I smell an imposter

inland rain
#

or someone (I won't say who) lost access to their 2FA authenticator for discord including their own server

tardy adder
#

The disappearing Mike NPC mystery continues, time to do further tests >->

solemn glade
#

Can you hot-reload CP stuff like you can with FS?

drowsy pewter
#

Yes, you type patch reload yourmodid in the smapi window

solemn glade
#

Thank you!

#

There I caved in and made an abigail hair recolor mod for my first CP mod ๐Ÿ˜ญ

drowsy pewter
#

HAHAHA

solemn glade
#

uniqueID: xGloomii.YetAnotherAbigailHairRecolor

drowsy pewter
#

Laughing

#

Hey, you did it!

solemn glade
#

It works!

drowsy pewter
#

What's next on the menu?

solemn glade
#

I guess expand this YAAHR to give her different look when you're married to her

#

to play around with different tokens

#

Abigail Hair Recolor mods are like the River Flows in You of pianist's first song or smoke on the water for a guitarist's

blissful saddle
#

is that chestnut hair? her natural hair color?

#

should so change Caroline's winter line where she hints about it

#

My mod just got a chinese translation. This will be awesome for the business

frozen elm
#

Is it possible to make an AT pack for custom furniture that has been added with CP?

solemn glade
#

should be able to

lucid iron
#

Why would you do that instead of just making more furniture

calm nebula
#

Slight variation of single

frozen elm
#

I am making more of them anyway

coarse lance
#

So I'm new to modding and looking at some triggers documentation. I'm finding most of what I need but a couple of things were going to be based on whether a bundle had completed i.e. if the movie theatre or quarry bridge was present. Is there a simple way of detecting this in 1.6 or is the bundle code cursed, as some online posts suggest?

blissful saddle
#

the bundle code is cursed. That said, I am sure SMAPI has a neat way to detect if they are present

#

are you going for your first C# or CP mod?

coarse lance
#

CP, I'm steering clear of C#.

ripe arch
#

is there like a website in order to get mods (iโ€™m new to sdv pc)

blissful saddle
# coarse lance CP, I'm steering clear of C#.
Stardew Valley Wiki

โ† Index

GitHub

Mods for Stardew Valley using SMAPI. Contribute to Pathoschild/StardewMods development by creating an account on GitHub.

coarse lance
#

Goodness me, exactly what I needed! Thank you!

blissful saddle
#

for instance "HasFlag":"{{ccCraftsRoom}}" and "HasFlag":"{{ccMovieTheater}}" are the conditions you will need

coarse lance
#

Hmm, I suspect I'll have to do some debugging on how that interacts with the phone call trigger conditions but it certainly moves me past my current block and into the testing phase.

calm nebula
#

"{{HasFlag|contains=ccMovieTheater}}"

#

Or condition edit the phone call in

coarse lance
#

Appreciated! Ideally I'll upload the mod sometime this week with the first batch of phone calls.

tiny zealot
rare orbit
#

hey? could you dm me the code you made for wildflour's mods? i lost my copy of it ;-;

tiny zealot
#

clarifying: you would still use content patcher, but instead of directly adding e.g. carrot juice you may be able to put in an item query instead which would return carrot juice

#

oh there you go, FLAVORED_ITEM is the second one listed

fervent horizon
#

Yep, I think the flavored item query is what I was looking for

#

Thank you, that helps a lot

orchid shard
#

If this has been brought up before I wasn't able to find it -- I noticed that above a certain player speed that daggers will stop auto-swinging when holding C. Is there any way to limit the maximum number of swings/sec the game will attempt to avoid that?

latent mauve
light jasper
#

@mellow knot hey what was that mod you asked about last night, I wanted to test the displayname for the wildtree

mellow knot
#

I believe I see it happen with her birch and amber trees iirc

#

Also I remembered something this morning - this same unreleased mod has a random chance for a different fruit to spawn on a fruit tree than it's default and I recall a lot of error / unable to parse fruit tree drop text in smapi - I'm away from my PC at the moment but is that something in the next patch as well?

light jasper
mellow knot
#

And lmk if there's anything I could add that could make it easier for you as well SDVemoteowo

light jasper
# mellow knot I can dm you the json when I'm back at my PC !

That would be great! I'm still trying to fine tune the code that I'm using to parse crop GSQs since they're so customizable, there's a lot of stuff I miss.
I kind of threw it together for Custom Bush / Cornucopia so any extra mods that make use of it help me improve it

vestal solar
#

Hey hi guys, wanted to ask a quick question, I looked around on the modding wiki, in modded-tech-support, in modded-farmers, and also tried searching around, but I am also new to the server (and modding in general).
So basically, when making a farm map mod in Tiled using a base game map, why is the farmhouse not visible? Can I not change its starting location?
(Sorry if I'm asking this in the wrong place)

tiny zealot
#

the farmhouse isn't visible because you can change the starting location (and move it at Robin's). it's controlled by map/tile properties, although i forget which ones exactly

vestal solar
tiny zealot
solemn glade
#

oops wrong reply

solemn glade
#

Would cut down on having to make several new items that look slightly different if they all generally just share the same furniture "type"

frozen elm
solemn glade
#

Yeah that makes the most sense to me

mellow knot
light jasper
#

oh I don't, thanks

frozen elm
#

does anyone know if I can add more than one context tag to an item?

uncut viper
#

you can add as many context tags as you want

#

all items generally have multiple already

frozen elm
#

how do you separate them, with a comma?

#

or just blank space?

uncut viper
#

are you creating a new item or adding tags to an existing item?

frozen elm
#

new item, furniture to be specific

brittle pasture
#

for furniture context tags they're space separated

frozen elm
#

ok great, thanks!

uncut viper
#

(thank you selph bc i actually had no idea how it worked for furniture off the top of my head)

brittle pasture
#

(me neither I actually just read the wiki)

patent lanceBOT
#

@calm nebula: look at asset prop and additional farms (12d ago)

uncut viper
#

for some reason them just being a space separated list at the end of an already long slash delimited string feels wrong to me but i guess thats just the price you pay for not having a data model

calm nebula
#

Ahhhhhhhhhhhhhhh

#

No u

void cargo
#

Congratulations. I tried to install smapi, but it says that the null object is not like that

#

what to do

brittle pasture
#

!mh this is the wrong chat

ocean sailBOT
#

For help with modding issues, please ask in #1272025932932055121! When asking for assistance there, sharing an error log will help others identify your issue (see https://smapi.io/log for instructions).

brittle pasture
#

but also don't expect much help; not many ppl mod mobile here

#

!smapiandroid

ocean sailBOT
#
Android SMAPI is NOT compatible with 1.6

SMAPI isn't updated for Android and does not work past version 1.5.6.39. We don't know if/when it'll be updated or who will update it. It is not possible to legally downgrade to 1.5.6.39, so do not ask how to do this.

Please see Installing SMAPI on Android for more info.

Be advised we most likely won't be able to help you with android modding issues.

wanton pebble
#

I'm a little more confused by the "congratulations" portion of that

brittle pasture
#

probably weird machine translation

wanton pebble
#

...did my message post twice

void cargo
lucid iron
#

I kind of wish log parser would show dependencies somehow bolbthinking

#

Or rather, if smapi could emit some logs about dependencies of mod for log parser

uncut viper
#

time for you to make a pr

lucid iron
#

But do u think it would be useful

uncut viper
#

i think more information is generally better than less information, so long as that information is displayed nicely

velvet narwhal
#

iirc i tried to guilt trip casey into showing mods that are dependent on spacecore woopsDerp1

lucid iron
#

I was mainly considering how u can't see "all mods that use emc" the same way u can see "all mods that use pfm" on a log

velvet narwhal
#

(at least the API, not the cp)

brittle pasture
lucid iron
#

But given how dependency works dupes r gonna be a thing

uncut viper
#

not like there's much stopping SMAPI from logging dependencies when it loads the mods, it already needs their manifests

#

there shouldn't be any dupes within a single mod though

calm nebula
#

But what is a serious dependent

#

And what is a load order

#

And what is an optional and what is a required

#

Mac users, can you run smapi rn

uncut viper
#

i don't think you need to care about that when you can just log the dependencies from the manifest

calm nebula
#

And what is your version

drowsy pewter
#

whats a specific situation this would be useful in?

patent lanceBOT
#

@velvet narwhal: go into more detail about forks on the events tutorial (59h ago)

frail tartan
#

SDVemoteheart your explanations here really helped things click for me as a greenhorn-- thank you!

uncut viper
#

if someone asks for help with their mod that relies on another mod it'd show when they post their log, which could be useful for further debugging
can show whether they made it required or not, which someone might want to point out if they're doing wrong (e.g. "you actually need a hard dependency here")

lucid iron
#

If a framework mod is raising error with no obvious cause, knowing what cp mods are using that framework narrows stuff down

calm nebula
#

You actually have that already

#

Just search for the mods editing that frameworks CP asset

lucid iron
#

It could be custom fields

#

Or trigger actions

calm nebula
#

Then the framework mod needs to be better at logging

uncut viper
#

i think if the answer is just "a mod should do things better" then why do you need anything in the log at all. just make mods that work instead of throw errors SDVpufferthumbsup

#

but also, how would a framework that uses CustomFields know what mod it was that added to custom fields

#

how would BETAS know who used a custom trigger action? it just tells the game how to handle it, it doesn't manage who requests it

calm nebula
#

Don't you get the ID of the trigger action?

uncut viper
#

someone gives their trigger action the id "DoMailTrigger". what do I do now?

calm nebula
#

Search every mod that adds a trigger to data/triggeractions, or ask thr user to do a search

uncut viper
#

the only mod that reliably knows who added to the trigger actions asset is Content Patcher, assuming it was done with a CP mod on the first place

calm nebula
#

No, it's all loggrd

uncut viper
#

i mean, this is exactly why chu suggested putting dependency info in the log

calm nebula
#

So and so edited

uncut viper
#

i meant in regards to your "a mod should be better at logging" comment

#

if you have dependency info available, you don't need to search every mod that adds to triggeractions. You only need to search the ones that depend on BETAS

drowsy pewter
#

i think its a good point. I wish modders looking for help were clearer about their info in the first place though

calm nebula
calm nebula
uncut viper
#

the point is not for it to be important to me but to whoever is helping someone figure out why they're getting errors in their SMAPI console

calm nebula
#

If it's an user, vscode/sublime/git search works pretty well

uncut viper
#

Those "so and so edited asset name" logs don't need to be there either then. Why bother, when you can just look at the source code or jsons of the mods in your folder?

lucid iron
#

asking user to do file search is coin flip tbh

faint junco
#

does anyone know if the debug symbols are available for Stardew? I'm trying to debug some interactions but can't get VS to break on base game code.

lucid iron
#

You need to build from decompile

rancid temple
#

You'd have to get access to the repo, which means reaching mod author role

#

Did 1.6.14 get pushed up on the repo even?

calm nebula
#

Tbh often with data assets you have to get the user to export the data asset then inspect it to find the likely issue

#

Like, the cases I've seen were baby modder did something hilariously weird tbh

rancid temple
#

You could otherwise postfix in some logs to specific methods

uncut viper
#

i dont think that would show which mod added what to that data asset either anyway?

#

i dont think chu or i were ever trying to say that knowing this stuff is literally not possible without that dependency info logging though

#

its a convenience thing

#

something that may make debugging an issue a little easier if you want it, and has no impact if you dont

calm nebula
#

So the case I was thinking of was someone misbracketing badly enough to screw up all fish data

#

Causing the game to fail in a null ref

velvet grove
#

I've been working on a custom item that is meant to apply a light to the character the same way a glow ring would. I'm not sure if this is the best way to be doing it, but I've been able to get the light to appear and stick to the character, but when I warp to a new location, the light that was on the player in that location remains at the warp point. So when the player returns, the light is still there until they leave an return a second time. I was using the removeLightSource fuction to handle this and I think it was working for 1.5, but since the update, I can't get it to work again. The ID for the lights have switched from an int to a string and I can't wrap my head around why it wouldn't be removing the light source.

acoustic summit
#

What reference is needed for ObjectData? Can't find it, though I think its in SMAPI

brittle pasture
#

StardewValley.GameData.Object or smth like that

acoustic summit
#

Ah, thanks!

lucid iron
#

It's a different dll

rancid temple
#

GameData has to be decompiled separately

#

Though VS and ILSpy can jump into them without them being decompiled

#

Just kind of a pain in the ass to get it to happen sometimes

lucid iron
rancid musk
#

Hmm. It's a good thing that I'm doing this tooling stuff for SmapiCompatibilityList.

#

That docker image Pathos found is using a very outdated version of Ajv and not actually validating things properly.

brave fable
#

is it possible to suppress warnings about unmoved entries in CP? bottom of page:
https://smapi.io/log/81cd094b295c4e3cb1cd42f182688cdb

Can't move record "Love of Cooking (CP) > Include assets/shop-data.json > EditData Data/Shops #2" > MoveEntries > "blueberry.LoveOfCooking_chocolate" AfterID "(O)245": no entry with ID '(O)245' exists.
like ideally i'd move the chocolate to be below sugar (i think 245 is sugar), but i'm not so attached to it as to need a warning if a player has modded the shop list

ocean sailBOT
#

Log Info: SMAPI 4.1.7 with SDV 1.6.14 build 24317 on Microsoft Windows 11 Pro, with 48 C# mods and 68 content packs.

velvet grove
next plaza
lucid iron
#

Yeah that's the warped event

brave fable
#

allow me to rephrase: 'does CP allow me to ...'

lucid iron
#

So the main change is that light sources have a string id instead of a int id but the remove stuff is same as before

velvet grove
# brittle ledge not sure if this is relevant, but lighting changed in 1.6.9, this might help? ht...

This was helpful, thank you. If I use currentLightSources instead of currentLocation, I do seem to be able to remove the light correctly, though it is a bit more verbose since I have to remove and add it every update. With currentLocation, there was a repositionLightSource function that handled that for me I think which isn't available in currentLightSources. But hey, it seems to be working now.

lucid iron
#

Utility.removeLightSource(lightId)

#

Utility.repositionLightSource(lightId, c.Position + GetOffset());

#

These should do what u want Bolb

rancid temple
#

Utility has so much lol

lucid iron
#

I think there's some implications about multiplayer though

brave fable
#

there always are SDVdemetriums

velvet grove
#

I'll give this a shot as well. I'm not too worried about multiplayer right now. I don't anticipate it ever being used with multiplayer

calm nebula
#

Yeah you have to remove from the previous locations lights iirc

sharp field
#

Anyone know what flags an object to be created as a colored object?

blissful saddle
brittle pasture
#

outside of queries, it depends

#

if in C# just initialize a ColoredObject item

sharp field
#

I guess I was trying to understand the new ColorOverlayFromNextIndex field and how it could be utilized.

#

(and if I could piggyback on that logic if possible)

brittle pasture
#

that field controls whether the entire sprite gets tinted (false) or if it uses an overlay in the next index (true, like pickles and wine)

#

look at the draw code

sharp field
#

I understand what it does. It's only used for Colored Objects.

#

Hence, why I'm trying to understand what triggers the object to be a colored object vs a regular object.

brittle pasture
#

it's a colored object if it's ColoredObject

#

that's about it really

sharp field
#

Can a CP mod flag something to be a ColoredObject?

brittle pasture
#

in which context?

#

colored objects are created in specific parts of the game

  1. item queries with a color field
  2. crops with color variations
  3. machines output with copy color (can also mix with 1)
#
  1. mine stones, though you won't run into this often
rancid musk
hallow prism
#

we have modding tools, and tool for the modding list, now

sharp field
#

Hmm. Okay. I guess I need to process how an example item would be created to understand. Let's say I want and egg to be a colored object (just a part of it, so I would use the ColorOverlayFromNextIndex). That would be defined in the item query of the respective animal, correct?

brittle pasture
#

animals don't support item queries

#

(not without extra animal configs)

sharp field
#

Fair. It was a theoretical.

brittle pasture
#

(with EAC it doesn't have to be; live your colored eggs dream)

next plaza
#

What does Easy Anti Cheat have to do with colored eggs /s

brittle pasture
#

as another example, shops are one other place that supports colored stuff, since they use item queries

calm nebula
brittle pasture
next plaza
#

How does that prevent you from cheating? Wouldn't giving you free colored eggs without you earning them count as cheating? SDVPufferThink

calm nebula
#

Let's be honest

#

The game let's you chear

next plaza
#

You think you're dating Penny, but Penny doesn't see it that way /s

calm nebula
#

She's a strong independent woman

#

Who has kicked me to the curb

hard fern
#
            "HasSeenEvent: any |contains= {{ModId}}.8heartevent": true
        }
    }```
im just gonna pop in- 
is this the right way to stick in a check for if any player has seen a specific event?
#

or am i missing something

#

(ignore that curly brace at the end )

sharp field
#

I'm thinking from the perspective of prismatic framework. Say I have an item I only want to apply the prismatic effect to one part of. ColorOverlayFromNextIndex theoretically provides this exact functionality. But I have no idea how to hook into the ColoredObject code. I can't visualize how I can get stardew to create an object as a ColoredObject if some ModData flag is set.

calm nebula
sharp field
#

It's probably too restrictive though. I can't see it easily applying to other object types, such as big craftables so...

brittle pasture
#

if you're in there then may as well patch Object.draw

sharp field
#

I already have. Guess I need to add a whole extra logic branch. It's just going to get very messy.

brittle pasture
#

prismatic framework doesn't care about ColoredObject anyway, since it applies to every sprite

hard fern
#

ohh i was missing the Player part

brittle pasture
#

to answer your question of "getting stardew to create an object as a ColoredObject if some ModData flag is set.", ModData is a field in item queries, and so is Color

#

so you already can

#

now, to get the overlay to change color, that's probably a couple transpilers on ColoredObject's draw functions

sharp field
#

That's the "easy" part.

lucid iron
#

I thought you already patched item.draw

sharp field
#

Object.draw, yes. But that doesn't natively allow a layered object.

lucid iron
#

Oh I see, then yeah what selph said DokkanStare

#

The created item should have whatever ModData given in item query

brittle pasture
#

if you really want to override every Object creation to return a ColoredObject even in places that don't support item queries (e.g. animals), I guess you can patch ItemRegistry.Create

lucid iron
#

Well you can just make ur own custom item query

brittle pasture
#

won't catch code that calls new Object directly, but those are few and far between hopefully

lucid iron
#

To do whatever u want

sharp field
#

Oh. That's an idea. I wonder how spectacularly I'll end up breaking something.

brittle pasture
#

if you do it right, likely none SDVpufferwoke (ColoredObject is a subclass of Object, so it should not break functions that are expecting the latter)

sharp field
#

Thanks for the ideas. Any example of an item query with Color?

brittle pasture
#

it's a new feature introduced in 1.6.9 for mods specifically, so I don't think any exists in the base game

#

machines have CopyColor, but that's a little different

sharp field
#

Ahhh. That explains why I wasn't seeing it on the item query page.

#

I'll skim thorugh the 1.6.9 change log again.

brittle pasture
#

ah yeah we should start moving the 1.6.9 migration stuff

#

maybe later SDVpufferchicknight

lucid iron
#

Is wiki alive

brittle pasture
#

it seems to be fine now

lucid iron
#

We gotta deal with the 1.6 migration page first sleep

fervent horizon
#

Do when conditions not work for shop items?

brittle pasture
#

(heck there's unmigrated stuff on 1.5)

hallow prism
#

they do if set properly

blissful saddle
#

A NOP user is getting this SMAPI error:

This mod failed in the GameLoop.UpdateTicking event. Technical details: 
NullReferenceException: Object reference not set to an instance of an object.
   at NightOwlPlus.ModEntry.OnUpdateTicking(Object sender, UpdateTickingEventArgs e) in C:\Users\user\source\repos\NightOwlPlus\ModEntry.cs:line 432
   at StardewModdingAPI.Framework.Events.ManagedEvent`1.Raise(TEventArgs args) in /home/pathoschild/git/SMAPI/src/SMAPI/Framework/Events/ManagedEvent.cs:line 101

My ModEntry.cs:line 432 reads:

        private void OnUpdateTicking(object sender, UpdateTickingEventArgs e)
        {
            if (!Context.IsWorldReady)
                return;

            if (Game1.currentLocation is null)
                return;

     432--->if (Game1.timeOfDay < 600 && Game1.currentSong.Name.Contains(Game1.currentSeason) && !Game1.currentSong.Name.Contains("ambient"))
            {
             \\\Nighttime music treatment   
            }
        }

This condition was taken from DNT and I didn't even considered it could return null, neither it returned null from all my tests so far.

Considering the possibility to improve it to a null treatment in case a mod is causing to have no music, even so NOP has an option to disable this function (to the case another mod runs music late night)

blissful saddle
#

it has a condition to only be sold in case player has house upgrade

hallow prism
#

it's not a when condition?

brittle pasture
fervent horizon
# hallow prism they do if set properly

Any idea if this is set properly { "Id": "Cherry", "ItemId": "(O)638", "Price": 75, "AvailableStock": 5, "AvailableStockLimit": "Player", "When": { "Season": "spring", "Year": "2" } }

rancid musk
#

You're checking if currentLocation is null and then never using that and using currentSong instead.

blissful saddle
#

I think it is "condition" explicitly

hallow prism
fervent horizon
#

yeah, base game uses conditions

hallow prism
#

the base game conditions are GSQ and different

#

they are per item, when CP is per patch

blissful saddle
hallow prism
#

you can use them here, but it's another format

fervent horizon
#

Right now the item shows up, but the season doesn't matter

brittle pasture
#

when is a content patcher thing, and should be on the same level as Entries

#

right now you're nesting it inside the item query

#

if you're doing things inside the query use the vanilla conditions, like "Condition": "SEASON Spring, YEAR 2"

blissful saddle
calm nebula
brittle pasture
fervent horizon
calm nebula
#

"Condition": "Season spring, year 2"

blissful saddle
brittle pasture
#

mail flags? that's supported also

hallow prism
#

the wiki list all the default GSQ

calm nebula
blissful saddle
brittle pasture
#

uhh I'm pretty sure C, C# and Python all short circuits?

blissful saddle
#

Maybe I am just old

rancid musk
#

Yeah, everything short circuits pretty much.

brittle pasture
#

heck is there a language that doesn't

rancid musk
#

In fact I struggle to think of one that doesn't.

blissful saddle
#

probably Pascal or Cobol

#

I remember I struggled when I first learned Python 10 years ago because of this

fervent horizon
blissful saddle
#

I would make something like if (a != 0 and b/a > 1) and it would break because zero division

hallow prism
#

how do they even work if they short circuit? /j

brittle pasture
#

you're probably misremembering tbh

lucid iron
#

I guess u can write a dum compiler that never short circuits

blissful saddle
#

that may be the case

brittle pasture
#

(sorry ignore that deleted msg I was replying to something else)

blissful saddle
#

the issue is, unless I force it to be null, I don't know how to test if my patch works lol

rancid musk
#

By applying common sense?

#

Since it's using Game1.currentSong.Name you might want to do Game1.currentSong?.Name != null rather than Game1.currentSong != null

#

Just to be extra safe, though I don't think currentSong would ever have a null name unless people are doing weird things.

#

However, this is a modding community. Someone somewhere is bound to be doing weird things.

blissful saddle
#

I am thinking about

if (Game1.timeOfDay < 600 && (Game1.currentSong?.Name.Contains(Game1.currentSeason) ?? false) && (!Game1.currentSong?.Name.Contains("ambient") ?? false))
brittle ledge
#

imagine getting to learn programming in high school SDVpufferpensive

rancid musk
#

... why though? ๐Ÿค”

#

Not only does ?? false look ugly, you're doing double the null checking work

#

It's not going to suddenly start being null in the middle of your if statement

blissful saddle
#

that's why I sent my first suggestion

blissful saddle
lucid iron
#

Not related to the current ask but I had wondered about better way to write if (data?. CustomFields?.TryGet(key, out Val) ?? false)

#

The lang server is upset about bool? without the ??

brittle pasture
#

that's what I do too, it's fine tbh

#

any other method is more verbose

lucid iron
#

It's very goosequestion

calm nebula
#

Valley girl code, my beloved

rancid musk
#

I really wish C# would accept a null bool? as false in an if statement.

#

Make it an optional thing I have to enable in my project file.

#

But let me be lazy

calm nebula
#

You want falsey in your c# ๐Ÿ˜›

#

Outside of IL

rancid musk
#

atra you have no idea the number of times I have typed if (thing) or if (!thing) and then sit there staring at VS for a second like "why are you mad at me this makes sense"

#

Truly javascript is a curse

brittle pasture
#

js and python definitely spoiled me a bit with truthy/falsy

lucid iron
#

Undefined

rancid musk
#

undefined makes sense

#

It is a reasonable thing to exist in addition to null

brittle pasture
#

flashback to atra's serialization rabbit hole the other day where the concept of undefined in C# would have made sense

blissful saddle
#

if it's null, it is not true nor it's false. So yeah, I second it makes sense

rancid musk
#

As soon as you need to keep track of null as a possible value and not a lack of a value, then undefined makes sense. And that happens more than never.

calm nebula
#

Shut up

rancid musk
#

Make me

calm nebula
#

Shut up

lucid iron
#

I don't mind it's exist so much as it's comparison nonsense blobcatgooglyblep

calm nebula
#

No, selph

#

We don't mention xml

lucid iron
#

But hm can u like

calm nebula
lucid iron
#

Inherit nullable and impl a implicit bool convert in it

#

Would that work

rancid musk
#

There is no XML in Ba Smapi Se.

blissful saddle
calm nebula
calm nebula
#

What if....xml could handle unexpected subclasses with grace and elegance

#

It's no harder than harmony patching il emit code

brave fable
#

truthy/falsy is a curse. only minutes ago i try to bool = bool && !number and expect it to work SDVpufferpensive swinelike language casting the result to a number

calm nebula
#

Then I reminded myself I am very retired

eternal mortar
#

How do I use custom companions to put a cow on my tiled map?

brittle ledge
#

Have you looked at the wiki for it? I believe it's pretty straightforward.

lucid iron
#

What if you use MEEP instead

brittle ledge
#

iirc you patch them in with CP

hallow prism
eternal mortar
#

I havent ive been looking for the wiki can you link me to it? ๐Ÿ˜ญ

#

Iโ€™ve been looking at its GitHub

calm nebula
#

Null and false are the same

lucid iron
#

Null is a social construct

calm nebula
#

I also write a i64 into a u64 and IL seems to not care

#

Like, I looked it up, it's ldind_i8 for both an u64 and i64

#

Sorry

brittle ledge
lucid iron
#

Tbh i don't really know the nuances of MEEP vs CC

#

Both frameworks r updated so either is fine AquaThumbsup

hallow prism
#

i believe they have some overlap but also some specific features

latent mauve
#

I also need help getting it to generate just ONE of the potential items rather than all 3.

brittle pasture
#

can you post your new json?

latent mauve
#

Sure, gimme a moment.

#

The machine also doesn't wobble, but I'm not sure if I need to set a temporary sprite to make it do that

#

It seems to only generate the output on the sleep cycle, won't work for any other trigger I've tried

brittle pasture
#

to get it to yield only one item instead of three, only have one entry in extra output ids, and in said entry do "RandomItemId": ["RANDOM_ITEMS (S)", "RANDOM_ITEMS (P)", "SECRET_NOTE_OR_ITEM (O)428"]

latent mauve
#

ok

brittle pasture
#

looking into the other issues, gimme me a moment

#

hmm I notice you're using a furniture item as a machine, in which case I think OutputCollected doesn't work?

#

same with the wobbling

#

only day update will work, which tbh is kinda unintended

latent mauve
#

Interesting. I can make a second sprite for the animation I suppose if wobble is invalid for furniture items

brittle pasture
#

can you even do that with furniture? I don't think so, but don't quote me on that

latent mauve
#

I'm wondering if the TemporarySprite will get around that, since it tries to move it to the next index on the sprite sheet for animation

#

DayUpdate is fine, I guess, just not sure how finicky it will be if I then try to limit it to only outputting on certain days

#

(once a day for random clothing item is nice but maybe a little OP)

#

Okay, it gave me a grass skirt with the "weed" icon that time, which is kind of funny and appropriate.

brittle pasture
#

I'm investigating why the colored field is not working

latent mauve
#

It's not the worst, but definitely weird looking xD

brittle pasture
#

Ahh, it's ObjectColor not Color

#

the migration page has a typo

#

yep lol

#

(also wow my test example gave me a prismatic shirt on the second try. might be op lol)

calm nebula
#

That's amazing

latent mauve
#

(I got prismatic shorts on my second try, game is biased)

calm nebula
#

V cute

brave fable
brittle pasture
#

I wonder if I should change the holder item's default icon to something other than weed

#

too many ppl here confused it with the actual weed item

latent mauve
#

not sure it spitting out on top of the washing machine and in front of the dryer is any more useful, but I suppose I could use the single washer rather than the stack for this.

#

Unless there's an offset somewhere I'm missing

brave fable
#

i'd absolutely avoid using the second-most iconic error item as a default lol

brittle pasture
#

I think furniture items have an offset for placed object?

latent mauve
#

current result:

#

Which is perfect for the shorter machine, just not the 3 tall one

#

ah, is that what it uses?

brittle pasture
#

(it's weeds by default because it is not set, and I dont wanna draw a custom icon for something that will not be visible in normal gameplay)

latent mauve
#

I don't think there is an offset without using Calcifer for furniture unless that's changed

#

(honestly, I'd love to see the default just be the ! emote)

brave fable
#

it'd be cute if you could use the (. .. ...) overhead bubble emote

latent mauve
#

I'd keep the default if it was the ! emote

#

because then it's like a surprise until you pick it up

brittle pasture
#

(all intriguing ideas, I'll look into then in a couple months maybe)

uncut viper
#

ill be leaving a strongly worded nexus comment if its not done in 2 hours

brave fable
#

i fully intend to leave a comment, bug report, and github issue so you know it's important

#

oh unrelated, are there any custom weather mods for sdv1.6 yet?

uncut viper
#

Cloudy Skies

brave fable
#

location-specific in particular would be interesting

uncut viper
#

unless you mean mods using it

#

in which case. probably check the requirements tab of cloudy skies

#

there appears to be 3 weather mods

calm nebula
#

Deck data/locationcontects

brittle pasture
#

flashback to "why is mount vapius snowing in summer" bug reports

brave fable
#

that's funny, Weather Wonders uses my little pixel flag icons from love of cooking SDVdemetriums

#

i demand dp

latent mauve
#

yeah, shorter one works fine. xD

tardy adder
#

washing machine ๐Ÿ‘€ ?

calm nebula
latent mauve
#

Yeah, this is another of my "Let's make this random idea mod instead of working on the big Zelda mod" distractions xD

#

But, shorter one seems to work as far as granting a random clothing item or cloth or secret note each morning.

calm nebula
#

Why a secret note?

latent mauve
#

Wanted to know if I could

brittle pasture
#

the washing machine fairies drop them every night obviously

tardy adder
#

owo does that mean I get to collect many Lewis undies?

latent mauve
#

Canonically, it makes sense that you'd find stuff like the shopping list notes in someone's pocket. xD

#

My original thought was to change the output options when you're married so spousal clothing can pop up randomly

#

Which I may still do later.

#

(I like the idea of you being married to your spouse and just taking their clothes that they left in the wash to add to your collection. It's the equivalent of taking your SO's hoodie and I think that's adorable.)

calm nebula
#

Then the SO should steal something too

#

Like my galaxy sword

lucid iron
#

who put these emojis here ConfusedAnime

latent mauve
#

Figure out how to make the game steal a dresser item and drop it on the floor and we can have reciprocal clothes snatching.

#

But I am not a C# person, so this is beyond me

#

Could maybe pair this with a mod so that they wear YOUR clothes randomly

calm nebula
#

Speaking of clothing

#

I wish I could put a sword on a manne

latent mauve
#

Question: Is it possible to make a conversation topic based on the laundry machine being placed, or should I just do it as an ActionOnPurchase thing for the furniture item and hope the farmer has already placed it?

brave fable
#

oh btw is it possible to turn off nexus mail. like, block people from mailing me entirely

tardy adder
#

Question: latest CP format version is 2.4.0? right?

rancid temple
#

Should be

tardy adder
#

I am getting confused with my own files @-@

latent mauve
#

Yep

tardy adder
#

thanky

rancid temple
#

"$schema": "https://smapi.io/schemas/content-patcher.json", at the top of a content json will complain if you aren't on the latest Format

#

Assuming you're using VSC anyways

lucid iron
#

does npp recognize $schema

rancid temple
#

Not sure, N++ validation is bad in general

#

It's like having a temu version of the validator site built into your N++

brittle pasture
tardy adder
#

My pc is a bit potat so vsc sometimes makes it act up, so n++ is my way to go generally

frail tartan
#

sweating uh... is it still not possible to trigger custom sounds in event.json files?

rancid temple
#

That sounds incredibly potato, I wouldn't be surprised about VS22 but VSC is so light lol

tardy adder
#

it is very potat, I am slowly working to get a new one though

hard fern
#

ultra potat

tardy adder
#

so it doesn't turn into a campfire whilst opening SMAPI

rancid temple
#

Just pulls from the sound bank, which you are adding to/overriding when you make a custom sound

#

There's also playMusic

frail tartan
# rancid temple Just pulls from the sound bank, which you are adding to/overriding when you make...

I don't think I know what I'm doing KEKCERN after making sure it loads in properly (as it was kicking some errors back on initial game load), every time I start the event I get:
[game] Error playing sound. ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index') at Microsoft.Xna.Framework.Audio.Cue.Play() in D:\GitlabRunner\builds\Gq5qA5P4\0\ConcernedApe\stardewvalley\MonoGame.Desktop\MonoGame.Framework\Audio\Xact\Cue.cs:line 297 at StardewValley.Audio.SoundsHelper.PlayLocal(String cueName, GameLocation location, Nullable1 position, Nullable1 pitch, SoundContext context, ICue& cue) in D:\GitlabRunner\builds\Gq5qA5P4\0\ConcernedApe\stardewvalley\Farmer\Farmer\Audio\SoundsHelper.cs:line 108

#

I use playSound cuz it's meant to just be a sound effect

lucid iron
#

does the game ever shorten numbers

rancid temple
#

!json can you share your event?

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.

lucid iron
#

like changing 1000000 to 1mil

rancid temple
#

I had to manually shorten some floats so probably not

#

I didn't actually want 20 decimal places

calm nebula
lucid iron
#

my current solution is just drawing smaller font when its above 6 digits

#

it fit int max so whatever LilyDerp

rancid temple
#

If it was a big enough issue, I would just set up some manual conversions, be a pain in the butt though

calm nebula
#
  • translations
lucid iron
#

yea locales

calm nebula
#

you better do 100 ไธ‡

lucid iron
#

i would have only done it if game did have a thing

rancid temple
#

Probably another reason the game doesn't do it lmao

lucid iron
calm nebula
#

FREE. RETIRED. NO LONGER COMMITTED. STILL PROBABLY INSANE

tiny zealot
hard fern
#

oh no

rancid temple
#

Just start doing what all the clicker games do

#

1aa

frail tartan
rancid temple
#

Ah yeah, can't do obscured links

frail tartan
#

my b!!

#

I'm too used to it in other discords

rancid temple
#

Can you also share where you're adding this sound?

frail tartan
#

the filepath? mint_confused

rancid temple
#

Like where in your mod you're patching it into Data/AudioChanges

frail tartan
#

I put that into the content.json file

lucid iron
#

yea show us that

frail tartan
#

sure

rancid temple
#

I don't really do events, so aside from syntax I can't tell you if there's other issues with this event script lol

frail tartan
#

it's fine, I know this is relatively niche haha

rancid temple
#

I'm unsure about the \r\n, I know you can do multilined events but I didn't think you needed to actually newline it

frail tartan
#

Ah, I'm overhauling a mod mint_wink I've only added a few lines to the event files

rancid temple
#

Remove that /* */ comment in the content, it's breaking the validator lol

frail tartan
#

gdi miihau

rancid temple
#

Oh when I edit it I can see the whole thing, neat

#

Weird that it's a multiline comment when I edit it's several single line comments

frail tartan
#

I... couldn't tell you why badruuwheeze I yote it

rancid temple
#

Hm, interesting choice, the entry key is shb1 but the Id is shb, not entirely sure which one it actually uses in that case

frail tartan
#

let me match those

lucid iron
#

if the audio thing is a list i think the Id in the model wins

rancid temple
#

AudioChanges is... special

frail tartan
#

I just wanted to add some cues noooooo

#

damn yeah, same debug output Frog_Derp

rancid temple
#

!log

ocean sailBOT
#

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

Please share your SMAPI log file. To do so:

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

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

frail tartan
ocean sailBOT
#

Log Info: SMAPI 4.1.7 with SDV 1.6.14 build 24317 on Microsoft Windows 11 Home, with 87 C# mods and 152 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

frail tartan
#

oh yeah, gotta yeet range highlight

#

keep forgetting about that

rancid temple
#

I'm wondering if the \r\n's are causing issues, because I don't think they actually do anything

#

I think they're just getting added to the name of the sound ID it's looking for

tiny zealot
#

hey @lucid iron is now a good time to talk about trinkets?

fervent horizon
rancid temple
#

Hm, though there is a slash after the name in the previous json

frail tartan
lucid iron
rancid temple
#

Oh, maybe just the validator getting messed up by the multiline then

uncut viper
#

Orionis, you don't have any FilePaths

#

you have Filepath

frail tartan
#

I-

#

well, that explains it

tiny zealot
#

ichor wants a big friend

frail tartan
#

thank you

rancid temple
#

Lmao, didn't even think to check capitalization there

uncut viper
#

its not the capitalization actually, its missing a letter

rancid temple
#

Oh

#

Yeah, I am unsure if any fields are case sensitive, but they definitely require proper plurals

frail tartan
#

and I definitely did not set the paths up right at all

rancid temple
#

I know some values are case sensitive, which is why I usually just stick to matching exact case

frail tartan
ocean sailBOT
#

Log Info: SMAPI 4.1.7 with SDV 1.6.14 build 24317 on Microsoft Windows 11 Home, with 86 C# mods and 152 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

uncut viper
#

well, is there a shb.wav in your assets folder

frail tartan
#

yes

rancid temple
#

Do you have file extensions on?

frail tartan
#

I think I turned them on when I was doing skyrim shit, lemme double check and re-launch

uncut viper
#

and you're positive its not shb1.wav instead? same with shbb?
(and also double check file extension yes yes)

frail tartan
#

mint_lul once more, with feeling

#

stare loaded with no errors, I'll go run the event

#

we have a heartbeat

#

literally

rancid temple
#

Lol

frail tartan
#

thanks again for the help froggyUwu

atomic vale
#

Hey i can't get the fish pond color changes to work

light bramble
#

did farm mods get broken in the latest patch?

uncut viper
#

the last patch was like 2 weeks ago wasnt it

#

i dont think anything with farms changed in it

light bramble
#

Great, now I get to figure out what broke with my mod...with no log from the person who made the report...

atomic vale
light bramble
atomic vale
light bramble
uncut viper
#

unless you're trying to make your own mod like that, this is the incorrect channel to be in

atomic vale
#

can I have some help getting fish pond colors to work in cp?

brittle pasture
#

(whoops didnt see where I was)

#

you can do editdata and targetfield on the fish pond entries of the fish you want to edit

#

using the new WaterColor field

atomic vale
#

yea i can't get the formatting to work

#
"Precedence": 0,
"WaterColor": [
  {
    "Id": "Default",
    "Color": "red",
    "MinPopulation": 1,
    "MinUnlockedPopulationGate": 2,
  }
],
"SpawnTime": 5,```
#

is my code

brittle pasture
#

!json pls post the full 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.

atomic vale
#

sorry

#

line 1590~ should be where the code is

#

oh wait seems like i have 2 of them

brittle pasture
#

yeah about to mention that

atomic vale
#

me dumb

#

still no beans

brittle pasture
#

what's the current/max fish count in the pond that's not working

atomic vale
#

10

#

on both

brittle pasture
#

huh that looks fine to me
long shot but try updating Format to latest version

atomic vale
#

wait its 3

#

its fixed

#

thx

brittle pasture
#

always use latest when possible, fish pond color in particular is 1.6.9 only

blissful plover
#

quick question.. does debug cmenu in the smapi window open the main load menu where you create your character? I can't remember what the command it.

silver pelican
next plaza
#

Are you talking about debug customize? That will have some side effects

blissful plover
#

It isn't there. I know theres a command to open the start menu. where you choose your name, farm, appearance... I just can't find it . I even did a search for it but I couldn't find it. Someone sent it to me.

#

no that wasn't it.

blissful saddle
#

maybe it is a command added by a mod?

blissful plover
#

I pressed ok before I realized that I only got part of my name typed in. I guess i will restart.

latent mauve
#

there's also the WizardShrine action?

blissful plover
#

I have a brand new save, I'm not there yet.. and i don't want everyone calling me SAD

next plaza
#

debug customize asnd debug cmenu are the same thing

blissful saddle
#

yeap. that would be... sad

next plaza
#

They open the "new game" menu

#

But that does have side effects

blissful plover
#

it is? cmenu doesn't work.

opaque cobalt
#

how hard is it to add one or two lines of dialogue to a character without overwriting anything? Thinking of giving Kent lines where he pokes fun at the farmer for using a sword when he most likely used an M4. Just, what are you doing kind of line.

blissful plover
#

LOL

next plaza
#

It should SDVPufferThink

latent mauve
blissful saddle
proven narwhal
#

hey i have a quick question i havent touched stardew modding in over 4 years by now, and i just wanted to ask has the process adding and editing maps changed since then?

blissful plover
#

I get this: [SMAPI] Unknown command 'debug'; type 'help' for a list of available commands. I type debug cmenu

uncut viper
#

you dont have console commands installed

#

it comes bundled with smapi so you mustve either removed it or are using a different mod folder

blissful saddle
#

why people keep deleting stuff they shouldn't? SDVpufferchickcry

blissful plover
#

Oh. LOL

latent mauve
uncut viper
#

i mean i wouldnt say deleting console commands is somrthing you "shouldnt" do

blissful saddle
uncut viper
#

most people who play modded likely do not ever need it

blissful plover
#

I started fresh. But I just removed all mods and started over. so if it was there, I removed it.

uncut viper
#

its just a mod. theres no harm in deleting it if you dont plan on using console commands

blissful saddle
#

just reinstall SMAPI and it will change nothing beyond adding them

latent mauve
proven narwhal
#

ooooo sweet thankss

latent mauve
#

We can also use bonus layers now (Back, Back1, Back 2, etc.) to do more drawlayer shenanigans

proven narwhal
#

๐Ÿซก tysm i will now do great things with this info

latent mauve
#

ExtraMapLayers used to be required for that but has been consumed.

blissful saddle
#

by consumed they mean 'assimilated into the base game functionalities'

latent mauve
#

^

next plaza
#

You mean CA didn't eat the mod?

blissful saddle
#

I hope not

latent mauve
#

I have issues separating what got folded into SMAPI/CP and what got folded into Stardew Valley itself, so consumed it is.

blissful saddle
#

I hope CA never eats my mods... they demand work to do and they are not edible

latent mauve
#

I'd be flattered if any of my mods got folded into base game, tbh

blissful saddle
#

I can cook if CA need a cooker

lucid iron
#

CA should eat my mod and fix the pond draws MitsuYawn

#

i wanna make funny shaped fish ponds...

latent mauve
#

(consume my new child beds mod and give us more child beds in base game, I dare you)

calm nebula
#

Eat my new rng mod I dare you

blissful saddle
#

I have mixed feelings with mods being assimilated by the game. like credits concern and this kind of thing

#

maybe trauma with Bethesda? even so I was not a modder when they did such a thing

tiny zealot
next plaza
#

Mods getting absorbed never copies the code, if that's what you're worried about

blissful saddle
#

not really worried with copying, but with visibility

next plaza
#

Also CA doesn't really look at mods either

uncut viper
#

i mean i dont think its ever a mod actually being added at all either

#

just Ca adding things and with so many mods, theres probably one thats similar

next plaza
#

Usually "absorbed" functionality is like QoL type stuff that's natural to come up with as you play the game

blissful saddle
#

gotcha

latent mauve
#

To be fair, I'd be more concerned with my mods being consumed if/when I did more original assets for them. The ones where I'm just minorly tweaking CA's assets or adding TileData properties? Meh.

calm nebula
#

Tbh if you want visibility/downloads I would do almost anything else lol

next plaza
#

(Especially since he doesn't really look at mods)

uncut viper
#

i wouldnt expect any game developer to ever actually take a mod and add it to the game, original assets or otherwise, without some form of legal contact there between you and them. not just implement a similar idea but like actually add a mod

#

so your original assets are not in danger

latent mauve
#

Yeah

#

CA's always been really good with the modding community, I don't foresee any issues at all with SDV modding at least.

teal bridge
#

I thought CA accomplished that by writing a metaphorical blank check to Pathos for all things mod-related.

blissful plover
#

I am just going to start over. LOL ugh debug cmenu said : debug cmenu
[Console Commands] Sent debug command to the game, but there was no output.

uncut viper
#

that is normal
what do you need this for, anyway

tender bloom
#

Extremely normal

blissful plover
#

LOL I only got PART of my name in there..

#

OHH..

#

there it is.

tender bloom
#

Thatโ€™s what half the commands do in the console

blissful plover
#

I typed Sad and nothing else.

uncut viper
#

is this related to a mod you are making?

blissful plover
#

Now everyone calls me sad. So, I need to change my name to Sadie

#

No.

uncut viper
#

then youre in the wrong channel

blissful plover
#

oh. ok

#

sorry. but its fixed thank you all

blissful saddle
blissful plover
#

I see now. Thankyou!

latent mauve
#

Alright, so if I go ahead and make the washing machine mod happen, what would be the most appropriate way to give people access to it?

#

Add it to an existing catalog, put it in a shop (but which one?) or have it gifted by an NPC?

hard fern
#

maybe robin(?)

#

does demetrius like laundry...

blissful saddle
#

definitely Robin

#

she gets minifridges and televisions to sell. washing machine would suit very well

hard fern
#

robin can do anything huh

latent mauve
#

Alright then.

#

I suppose the next consideration is "do I remove the clothes you normally can't get through non-special means or just let them be a chance occurence anyway"?

#

Like Lewis's shorts, the clothes you get from the Traders, etc.

brittle ledge
#

make it a config? SDVpuffersquee

latent mauve
#

I'm a little worried about how to isolate those items individually

#

Definitely easier to not worry about it and just let it pick from everything

brittle ledge
#

you could append a context tag onto them and then allow/ban the context tag?

#

that would also let mod authors exclude stuff on their end

latent mauve
#

But then I have to find all those individual clothing items

#

To tag them

brittle ledge
#

there is that SDVpufferpensive

latent mauve
#

There isn't even a context tag field for the shirts and pants, unless it's somewhere else other than Data/Shirts and Data/Pants

#

So it'd have to be a custom field or something and I can't do C#

hard fern
#

... ๐Ÿ˜ญ i just realize ive been misspelling gunther's name the whole time because i mixed it up with another character's name...

rigid musk
#

For gifting, do trinkets have a specific item type (category) or would I have to list them all individually w/content patcher

brittle pasture
#

you can isolate individual items by IDs, it's not much but it's something

#

(re: the shirts/pants filtering thing)

royal stump
rigid musk
royal stump
#

SDVpufferthumbsup it doesn't seem to be on the wiki yet, but the code seems to use it

rigid musk
#

O: well that makes me feel better (i wasnt just missing it this time)

#

for gift tastes - if you are doing a 1.6 item is it MysticSyrup or Mystic_Syrup

brittle pasture
#

!itemids

ocean sailBOT
brittle pasture
#

or unpack the files alternatively

rigid musk
#

no no i meant the formatting of it not the id itself

uncut viper
#

you write the ID itself

hard fern
#

depends on the item i think

brittle pasture
#

use what's exactly in the unpacked files, so MysticSyrup

rigid musk
#

Thank you :]

latent mauve
#

Hey Selph, is it possible to display two items side by side if I have it outputting two things, or does it only show one?

#

(I found the washer/dryer combo sprite)

#

And if that's not possible, any ideas for what I should make the dryer do? >_>

brittle pasture
#

right now only one unfortunately

latent mauve
#

Fair enough!

uncut viper
#

dryer should output the same clothing but in a slightly more faded colour

#

(/j)

latent mauve
#

It only showing one item is another point in favor of the exclamation point placeholder icon though ๐Ÿ˜›

#

You joke, but I very briefly considered tossing a dyeable clothing item and a dye object in there to try to output a color clothing item

#

And then my brain broke

royal stump
#

(okay, recovered my wiki acct again, I think the Modding:Items categories are up to date now SDVjunimowhite)

brittle pasture
uncut viper
#

couldnt you create a duplicate piece of clothing for every shade (lets say 16 shades per clothing) from not faded to super faded, then have the machine take one as input and output the one with the next shade up

#

rinse and repeat for every colour

#

its only like... what, 256 to the power of something combinations?

latent mauve
#

My sanity demands that you stop that train of thought right now. LOL

uncut viper
#

oh my thought trains have no breaks, theyre always running i just dont speak them out loud sometimes

#

it only looks like i have separate coherent thoughts bc of the gaps in verbalizing them but rest assured each of my dumb ideas has some connection to the last

brittle pasture
#

the more immediate blocker is that machine input/output rules are not supported for furniture

uncut viper
#

in other words, you're the one that needs to write the C#

#

cuz that sounds like an extra machine config thing to me SDVpuffersmile

latent mauve
#

Yeah, I can convert them to BC if I have to

#

Was trying to keep them consistent with the existing HxW catalogs, which is the only reason they are furniture

tribal gull
#

Bored and wanted to make a Stardew mod so I randomized 4 random items to give me a theme. Got:
Ginger Ale, Orange, Qi Gem, Petrified Slime
My idea was a type of potion brewing or drink smithing mod with Ginger Ale being a pseudo base and other ingredients like oranges have offensive buffs like speed but then non-edible ingredients like petrified slime give defensive buffs like immunity to certain debuffs or just increased defense.

uncut viper
#

sounds like the volcano forge but for bartenders, which sounds cool and fun to me

tribal gull
#

Yeah exactly

#

This'll be fun

uncut viper
#

do you know C#

#

cuz that definitely aint a CP thing

brittle pasture
#

also like the ||desert festival food vendor||

uncut viper
#

i forgor about that

tribal gull
#

Yeah I've been doing game dev with Unity for years now C# was the first language I learned

brittle pasture
#

though I'm checking rn if Better Crafting's enhanced crafting would allow doing all that without C#

#

hmm probably not

latent mauve
#

Question: Is there a way to get a not-white variant of the dyeable clothes with my setup for the laundry machine mod? >_>

#

so far they're all white when they pop up and I don't know if that's because of the required setting for the placeholder object

#

on the upside, Robin sells them now, so, progress!

solemn furnace
#

Hi I was wondering if someone could help me out on my first mod? I'm trying to replace the entire Springobjects tilesheet and I've been following the wiki but I'm not quite sure what to put for the FromArea and ToArea section. Would I have to do it by each individual item or can i just replace the entire png at once?

brittle pasture
#

if fromarea and toarea is not specified it will be a total replacement

solemn furnace
#

would i just leave that section blank then?

brittle pasture
#

yeah just dont add them

solemn furnace
#

thank you so much!

uncut viper
#

that is, dont include the words "FromArea" or "ToArea" at all. dont just like, leave a weird blank space after them

#

omit the lines entirely

solemn furnace
#

glad you said that cause I was going to do it the wrong way lol

latent mauve
#

Also, use EditImage instead of Load if you want to avoid mod compatibility issues down the line.