#making-mods-general

1 messages · Page 287 of 1

vernal crest
#

No it's not, sorry.

fathom hound
#

Actually idk what Crow.png is. But it’s not the secret woods one

#

This guy^

vernal crest
#

Did you open crow.png?

fathom hound
#

Yeah it looks like a cartoon crow 0.o not this one

#

Wtf…

vernal crest
#

It is pretty clearly the same crow

fathom hound
#

This is what’s showing for me ._.’

golden spire
#

erm

vernal crest
#

Have you edited your Content (Unpacked) folder contents at any point?

fathom hound
#

No ._.

vernal crest
#

And have you unpacked the game since the last update?

fathom hound
#

Yeah

#

Guess I’ll verify

vernal crest
#

And that's the file Crow.png from the Characters folder?

rigid musk
#

I have to day mine also looks like that lmao

tiny zealot
#

that one is Characters/Monsters/Crow.png

rigid musk
#

Ohh

#

Two crows..

vernal crest
#

Ah good spotting ichor

orchid glade
fathom hound
rigid musk
#

No wonder i remember it I've been in that folder forever

vernal crest
#

Characters/Crow.png

rigid musk
#

Just in characters most likely

vernal crest
#

Like I said

fathom hound
#

Yeah idk I don’t have it

vernal crest
fathom hound
#

Do I need to unpack again after verifying?

vernal crest
#

Yes

fathom hound
#

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

fathom hound
#

Ty btw!

orchid glade
#

How do you make an NPC not be able to go to the movies?

golden spire
#

use reject for all movies

#

{
"Tag": "*",
"Response": "reject",

#

for their moviesreactions

orchid glade
#

So "*" will get any tagged movie, and all movies are tagged?

golden spire
#

all movies have genre-tags and their ids are also tags

#
  • is just all movies
thin plover
#

Cc @vernal crest, I wasn't familiar with EditMap. All I know from modding I reverse engineered from other mods, so I had never come across EditMap, just Load. I'm used to making all edits in Tiled, which usually involve pretty hefty landscaping/terraforming to shift mountains/cliffs/water around.

My specific edits for Island_N were to make the southern entrance narrower (2 tiles instead of 3), make the bridge wider (2 tiles wide/high instead of 1), and move a couple trees/bushes from the paths layer out of the way for an in-game path.

Thanks to everyone that looked into it. I'll play around with EditMap to see how I can split the updates I want to make into separate things. I was surprised that I didn't see any tile action/properties to trigger the Island Trader interaction in Tiled.

golden spire
#

Pam has only 1 kind of reaction for movies and that's to like everything.

  {
    "NPCName": "Pam",
    "Reactions": [
      {
        "Tag": "*",
        "Response": "like",
        "Whitelist": [],
        "SpecialResponses": 

#

if you wanted to make an exception, you'd put that specific movie above the "everything" reaction.

#

Krobus does that, he dislikes everything except 1 movie

inland cedar
#

I am using this to do an animation with the object. however this only work with vanilla. how can I get the sprite of modded object?

    textureName: "Maps\\springobjects",
    sourceRect: Game1.getSourceRectForStandardTileSheet(Game1.objectSpriteSheet, obj.ParentSheetIndex, 16, 16),
    animationInterval: 300f,
    animationLength: 1,
    numberOfLoops: 0,
    position: objTile * 64,
    flicker: false,
    flipped: false
)```
vernal crest
# thin plover Cc <@560002918351110145>, I wasn't familiar with EditMap. All I know from moddin...

That's an impressive amount of knowledge just from reverse engineering other mods! I'll give you some links to some documentation that might give you more options:

Content Patcher docs: https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide.md
Maps page of official wiki (go to the index to see all the modding pages available): https://stardewvalleywiki.com/Modding:Maps
Modding wiki (more tutorials focused but has lots of out of date info so needs close cross-referencing with official wiki): https://stardewmodding.wiki.gg/wiki/Special:AllPages

fathom hound
#

Spacecore does animations

tacit sparrow
#

Not sure if this is the best approarch, but when I was using TemporaryAnimatedSprite it only worked on XNB file so I had to harmony patch that function to check if image

spiral lion
ocean sailBOT
#

Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home, with 22 C# mods and 53 content packs.
Suggested fixes: One or more mods are out of date, consider updating them, SMAPI is out of date, consider updating it

thin plover
#

To clarify your point, do I not need to include the tilesheet files in the assets folder of my mod? I can't remember if I do this because I read it somewhere or if it's just the error Tiled will throw if you try to open a tmx file without the tilesheet file being in the same folder. I'm definitely not referencing the tilesheets in my actual content.json.

urban patrol
vernal crest
# thin plover To clarify your point, do I not need to include the tilesheet files in the asset...

To edit the map in Tiled you need the tilesheets in the map folder but to use the map in game the tilesheets should not be in your map folder. The map will use the game's ones if it can't find any in its folder and that is what you want if you want recolour compatibility or seasonal changes (the latter is not relevant for GI, I know). It's also important when publishing to try to avoid including any vanilla assets that you don't have to include.

Two basic ways to achieve this are:

  • move the tilesheets out of your mod folder while testing in game, or
  • have a "maps editing" folder outside your mod folder that you put the map into for editing and then move it back out and into your mod folder for testing
ivory plume
#

Generic Mod Config Menu doesn't allow setting multi-key-binding options, which are needed for players in split-screen mode. I'm considering a PR to fix that.

Here's a possible mockup of how it'd work:

  1. The option would be shown the same way as before:
    Toggle search       LeftShift + F1, LeftShoulder
    
  2. If no keys are bound or it's not a KeyBindList, clicking it would show the same UI as before:
    ┌────────────────────────────────────────────────────────┐
    │ Rebinding key: 'Toggle search'                         │
    │                                                        │
    │ Press a key combination to rebind.                     │
    └────────────────────────────────────────────────────────┘
                                                    [OK] [🚫]
    
  3. If it's a KeyBindList, you'd see a new UI:
    ┌────────────────────────────────────────────────────────┐
    │ Rebinding key: 'Toggle search'                         │
    │                                                        │
    │ You can bind multiple key combinations for this field. │
    │                                                        │
    │ Bindings:                                              │
    │    LeftShift + F1  [🚫]                                │
    │    LeftShoulder    [🚫]                                │
    │    [add new binding]                                   │
    └────────────────────────────────────────────────────────┘
                                                          [OK]
    

Any thoughts on that design?

tiny zealot
#

even if no keys are currently bound, i expect i would want the multiple-bindings version for a KeyBindList, and just have it start empty. in this configuration it looks like you'd have to open it once and do one binding, then open it again to get the option for a second

ivory plume
#

Sure, that makes sense; I removed that bit.

lucid mulch
#

Got the inline provider working, need to clean it up a bit because its hacky, but progress is progress

light jasper
#

If I postfix a method in NetWorldState to trigger a recalculation in my mod, does that happen for all world players with the mod? don't have a ton of experience w the netcode and can't set up a second instance rn

spiral lion
orchid glade
#

I think maybe you're loading everything to Portraits/Hazel and Characters/Hazel, but then the texture you set for appearances is Portraits/Hazel_S_winterindoors etc.?

#

Though I may have misunderstood something or got lost in there

spiral lion
#

what is probably right!

#

oh maybe not

ocean sailBOT
#

@spiral lion You leveled up to Cowpoke. You can now speak in our voice channels and share images in all channels!

orchid glade
#

In fact, you seem to be trying to do both at the same time. You are loading the portraits first to Portraits/Hazel_S_winterindoors etc.,(conditionally), than you are loading them to Portraits/Hazel (conditionally), then you are using appearances to tell it to use Portraits/Hazel_S_winterindoors etc. (also conditionally)

#

I think (and I have only done VERY basic appearances), you need to start by removing all the portrait loads (copy paste them somewhere else) and start fresh like this:

lucid iron
orchid glade
#

Load each portrait asset as you have done under 'load short hair' and 'load long hair' - but REMOVE the conditions. This would load them to Portraits/Hazel_S_winterindoors etc. which is needed for appearances

light jasper
lucid iron
#

Like OnFieldChanged

orchid glade
#

Then, skip all the ones where you load to Portraits/Hazel or Characters/Hazel

spiral lion
#

ohhh i will try it!!

orchid glade
#

Then, set up the appearances WITH all the conditions you want them to apply

spiral lion
#

❤️

light jasper
#

oh cool, I didn't know I could add events to netfields

#

learn something new every day

lucid iron
#

So yeah find some event in there to hook

#

Then everyone should have it SDVpufferthumbsup

orchid glade
#

And, @spiral lion , if you haven't found it yet, refer to this: https://stardewmodding.wiki.gg/wiki/Tutorial:_Adding_Seasonal_Outfits_via_Appearances

Stardew Modding Wiki

If you want to add seasonal outfits for your NPC, there's two ways you can do this: the token way or the Appearances way. Appearances is a new code structure added in SDV 1.6, so if you're looking at an older NPC's code for reference, they'll most likely be using the token way. The main difference between the two is that the token way is simpler...

light jasper
#

looks like I can hook Building#DaysUntilUpgrade then, since that's a NetInt

#

awesome, thanks so much

#

never would've thought of that

lucid iron
#

Net events my beloathed 3sSmolMiku

#

But it is very abusable when I am trying for less harmony

light jasper
#

I don't mind adding a postfix here and there, but I like to confirm that I'm not insane from time to time lmao

#

something something too busy trying to see if I could vs asking if I should

lucid iron
light jasper
#

@lucid iron while I have you, what's the difference between fieldChange and fieldChangeVisible? it says fieldChange doesn't trigger on interpolation... what uses interpolation and do I care?

lucid iron
#

Interpolation is used for smoothing movement (normally netfield only update every 3 tick)

light jasper
#

so farmer motion and stuff like that?

#

and I guess particles?

lucid iron
#

For something like builder days I don't think it matters

#

Yeah motions

ivory plume
lucid iron
#

Yeah i mean a visual thing to show you didn't mess it up Dokkan

#

Not enforcing only keyboard or only gamepad binding

ivory plume
#

(That's getting into a bit fancier UI than I'd really want to do with the raw Stardew Valley UI code though.)

lucid iron
#

Fair enough

calm nebula
raw oxide
#

hi sorry to bother you i wanted to ask a few thing regarding modding, i'm fairly new to c# mod and before i start going into making this type of mod i would like to ask from more expenrieced people if it would be possible to create a mod that let you resize the windowless mode or is it impossible ?

uncut viper
lucid iron
#

Resize the windowless mode think

rancid musk
ivory plume
lucid iron
#

I suspect it's easier to get some 3rd party software that hides the window bezel than trying to mess with window things from within game

calm nebula
raw oxide
calm nebula
#

Guess who gets to walk back one building because they forgot something again 😦

uncut viper
#

so that way they dont overwrite each other

#

i dont remember what i did for removing the keybinds tbh

ivory plume
uncut viper
#

well heres hopin i dont miss whenever that update comes out then

#

(i was wrong anyway i dont copy the list i just directly set the 0th or 1st indices in the keybindlist as appropriate (since its limited to 2) but i imagine that doesnt change the need to update the logic)

calm nebula
#

What if I want to use a ddr gamepad, button

uncut viper
#

feel free, if monogame can detect it as a button

calm nebula
#

Or bongos

#

Please.

uncut viper
#

its only limited to 2 bc one is a keyboard bind and one is a gamepad bind

#

so whichever one your bongos show up to xna or w/e as is what itll be used for

calm nebula
#

What if you have four player splitscreen, button

uncut viper
#

well its rock paper scissors so theres not 4 people playing at once

calm nebula
#

And every player has their own layout

lucid iron
#

For a brief period i bound the tater toss button to left stick

uncut viper
#

also, its rock paper scissors, so why are you installing a mod instead of playing it irl

calm nebula
#

I bet we can generalize rock player scissors to four players if we nerdsnipe the mathspeople

lucid iron
#

But i was use keeb so that's the only thing i need gamepad for

lucid iron
uncut viper
#

is this enough to count as a breaking api change. is gmcm finally gonna reach 2.0

ivory plume
#

It would only affect mods which used custom logic to implement multi-key-binding support with the single-key-binding UI. I'm not sure how many (other) mod authors would do that?

lucid iron
#

It's not really breaking api is it? Your mod won't crash

uncut viper
#

is it not a breaking change if im required to change my mod in order to maintain functionality

lucid iron
#

I dunno tbh Dokkan

uncut viper
#

i also dont know what would happen if my current logic ran, only pathos yet knows what the implementation will be in the end and iunno what my current code would do with it

#

so who knows. it might crash

lucid iron
#

Mentally i would say your situation is halfway between "using the api normally" and "sorry i harmony patched gmcm"

uncut viper
#

i think if CP decides to say "yknow what, no more i18n token. every i18n token is now "translation (:"" then that wouldnt crash mods but id sure call it a breaking change

ivory plume
uncut viper
#

im not really sure why my method is out there at all, to be honest. why give the option for a custom setter if im not supposed to do anything custom?

#
if (value.ToString().Equals("None"))
                {
                    this.StartGame = value;
                    return;
                }
                KeybindList keybindList = this.StartGame;
                if (IsGamepadButton(value.Keybinds[0]))
                {
                    keybindList.Keybinds[1] = value.Keybinds[0];
                }
                else
                {
                    keybindList.Keybinds[0] = value.Keybinds[0];
                }
                this.StartGame = keybindList;

this is all it is

ivory plume
#

The setter was meant to save the value, not change the semantics of what the config UI represents. I guess we could deprecate the old API instead, but that means players wouldn't be able to use multi-key bindings for the vast majority of mods which seems like a net negative.

uncut viper
#

but it does just save the value. it still displays correctly as a list of keybinds in the UI

#

im not saying your way wouldnt be better, itd be miles better, and id be happy to update to it, i was just saying it does break things

lucid iron
#

I thought the argument is, whether this counts as +1 major version semvar

#

Not whether you should do it for everyone

#

Although maybe if u r prepend the list it'll work out better for mods previously assuming there to be 1 value only

ivory plume
#

I don't think it would count as a 2.0.0. Virtually any change has the potential to break some custom logic somewhere, but that doesn't mean it's a 'breaking change' for normal uses of the API. But the versioning would be for kittycatcasey to decide anyway, not me.

uncut viper
#

my pov was just that this does seem like normal use of it to me, is all! but like i said, i still like your way better and im not like, disappointed or anything in having to change it. just gotta keep an eye out for it so i dont miss it when it happens

light jasper
#

@lucid iron works great, thanks for the advice 🙂

lucid iron
#

Wow your editor looks like macha latte

light jasper
#

the color scheme is called "Hyrule" lol, at this point I can't change it or I can't read

#

I've been using it for like 10 years at this point, nothing looks right if I don't have it

orchid glade
#

Can I put conditions on my config options? Like, enable one config thing to open up further options... or is that a terrible idea, won't work the way I imagine, or would require opening and closing GMCM

uncut viper
#

no

lucid iron
#

You can only do that in c# (and it still kind of sucks there)

uncut viper
#

i would say doing that in C# would be a non-normal use of the api

orchid glade
#

lol, ok. The more I thought it out the less of a brilliant idea it sounded...

lucid iron
rigid musk
lucid iron
#

Anyways bezajel the ConfigSchema doesn't support tokens or conditions

orchid glade
#

good to know!

#

(it probably says that on the wiki anyhow, but at this stage of stayed-up-all-night the chaos prevails)

uncut viper
#

it does support tokens

rigid musk
#

Honestly it would be nice if it wasn't a nightmare, I was thinking about making the entire arena section of my mod toggleable for people who just didn't want that, it would be cool if, when they toggled the arena stuff on, they then got to toggle the additional arena configs. A dream, truly

uncut viper
#

or at the very least, it supports i18n tokens, bc i used to use them in my config before i realized what the correct way was

rigid musk
#

I didn't know they supported i18n tokens that's cool actually

uncut viper
#

(you shouldnt use tokens in them though just bc you can)

uncut viper
#

(dont even use i18n tokens in them use the built in CP way of doing it)

lucid iron
#

I thought i18n has to go through the special name format

rigid musk
#

I only know of the actual way you're supposed to do it

lucid iron
#

Instead of {{ }}

rigid musk
#

Which is what I've used heehoo

uncut viper
#

it should

#

but it need not

lucid iron
#

Fun DokkanStare

#

What is the order if u put itself as a allowed value then...

uncut viper
#

actually, it mightve been fixed or changed at some point? since i just downloaded an old version of my mod and it doesnt appear to work anymore

#

but i couyld have sworn it did before, otherwise idk why i wouldve done it bc i woulda checked

#

i suppose its also possible i thought i saw it working but didnt have a token in the value i checked, and no one on nexus reported it for months at a time

lucid iron
#

Yeah the docs don't have the usual "you can use tokens in this field, case insensitive" disclaimer (but not the "cannot" counterpart either)

uncut viper
#

yeah im gonna assume i just saw smth incorrectly and havew never tried it since and have had vestigial incorrect info in my mind all this time

ivory plume
#

(Tokens have never worked in ConfigSchema.)

uncut viper
#

i blame the nexus users not reporting it to me

#

bc it was therefor like. 6 minor versions

undone hawk
#

Currently making gifs and images for my mod release! Did not think of how many assets I’d need cuz I’m a goober.

raw oxide
#

what does this error means : The mod build package found a game folder at /Applications/Stardew Valley.app/Contents/MacOS, but it doesn't contain the Stardew Valley file. If this folder is invalid, delete it and the package will autodetect another game install path.

ivory plume
#

The detected game folder doesn't seem to contain the game. Can you post a screenshot of that folder?

raw oxide
#

i hope this is what you mean sorry if this is not

soft granite
#

I have made a modification to somebody else’s spriteswap mod’s content.json to include granularity that wasn’t there before- the mod originally didn’t appear in the generic mod config menu, making turning it on and off cumbersome, and I have modified the json so it does. But, i have been unable to contact the author of the mod so I can get permission to upload a version of his mod, so i can’t upload it. Would you think ti to be acceptable to just upload a single content.json file to nexus, asking people to copypaste into the original mod’s folder, or would that be stepping over the original author’s toes?

uncut viper
#

no, not acceptable if the permissions dont allow it

soft granite
#

darn

ivory plume
raw oxide
light jasper
ivory plume
# raw oxide

It seems you have two different game folders. Is it possible you installed the game through both GOG and Steam?

The mod build package is looking at the first one, and you're looking at the second one:

/Applications/Stardew Valley.app/Contents/MacOS
~/Application Support/Steam/steamapps/common/Stardew Valley/Contents/MacOS
light jasper
uncut viper
#

while not impossible ofc its probably likely that as a content patcher mod they havent set up a github for it

#

worth checking for thoiugh

raw oxide
#

oh i did have a gog version but i prefer steam so i deleted the gog versions and kept the steam one i don't even know why it's still showing this

lucid iron
#

Though I don't really know how much change u have done

uncut viper
#

i dont think thats really much better than just distributing the content.json

#

maybe if you only put in the pastebin the stuff you specifically added and no more, like a patch file give or take, but then you'd be relying on other users in the comments to know how to apply it

ivory plume
uncut viper
#

(be careful when typing the command, though SDVpuffersweats)

ivory plume
#

(Or if you want to be safer, manually navigate to that folder in the UI and delete it from there.)

calm nebula
#

(Maybe not the -f at first :shivers:)

light jasper
#

if it's in /Applications it may require sudo

raw oxide
#

ohkayyy just asking in case is there no way i could just delete the gog path ^^' i only use the steam one 😅

uncut viper
#

(i know the command is safe when done right but the thought of recommending a sudo rm rf command to someone who may not fully realize what it is or what it can do when done wrong sounds terrifying to me)

light jasper
#

I mean it's your computer, you can delete whatever you want lol.
just have to be aware of the consequences

light jasper
#

As a less scary solution, you can always find StardewValley.app, right click -> show package contents

#

that'll take you to the internals of the "app" and you can delete whatever you want through finder

soft granite
ivory plume
#

(It sounds like they already uninstalled the GOG version, but the folder still exists probably due to the Mods folder?)

light jasper
#

reinstall the OS /s

raw oxide
#

okay i'll try this

soft granite
# lucid iron Though I don't really know how much change u have done

I have not done much. The mod's sprite swaps can now be enabled and disabled through generic mod config. I have also added granularity so the characters and portraits who get new sprites/portraits can be picked on a per-character basis. Finally, when I used the mod I couldn't see some of the changes so I changed their priority to be later, which let me see them

lucid iron
#

hrm so looking at Game1.toggleFullscreen

#

graphics.ApplyChanges is called before graphics.PreferredBackBufferWidth even tho the docs say its supposed to be after

soft granite
iron ridge
#

yes

#

that's often done

soft granite
lucid iron
#

you basically have an unofficial update o sorts on your hand

raw oxide
#

okay i know what was causing this it was not even the gog thing it's because using steam i created a shortcut icon to add on the dock which caused this

lucid iron
#

tbh if i was you i'd just not share it since it seems like hassle Dokkan

light jasper
spiral lion
ocean sailBOT
#

Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home, with 22 C# mods and 53 content packs.
Suggested fixes: One or more mods are out of date, consider updating them, SMAPI is out of date, consider updating it

fierce vault
#

I've been working inside an i18n, and I'm feeling a little down knowing that some people will feed it right into something like chatgpt for personal use, when trying to translate it. It that just something I'll need to get over?

orchid glade
uncut viper
#

unfortunately yes

spiral lion
#

okey! i will try to change it 🙂

orchid glade
# spiral lion okey! i will try to change it 🙂
Stardew Modding Wiki

If you want to add seasonal outfits for your NPC, there's two ways you can do this: the token way or the Appearances way. Appearances is a new code structure added in SDV 1.6, so if you're looking at an older NPC's code for reference, they'll most likely be using the token way. The main difference between the two is that the token way is simpler...

fierce vault
#

I've never shared something on the scale of what I'm making with this mod, so there are some things I will need to get used to after it is published.

ivory plume
orchid glade
# spiral lion okey! i will try to change it 🙂

I'd also recommend trying to start a little more simple, and adding complexity once you have the basics working... like start with just long hair, four seasons, make sure that works, before adding the other variations! It will really help, and be less to change each time as you learn how it works

lucid iron
#

yea it's scary

spiral lion
#

smart.. it takes foreever right now haha 😦

lucid iron
#

i think i got used to idea of posting thing i made publically after mod 3-5ish

fierce vault
#

At the very least, I would like to know that the people who may want to publicly translate my mod are relatively confident in English as their second language, and won't use generative ai's assistance for anything. It would probably be too unreasonable to ask for no google translate, so, I'd be fine with that as long as it it only a part of the process.

I'm afraid I may sound too demanding to some people when listing my preferences for how the translations should be done, but I don't think there is much I can do about that.

ivory plume
tender bloom
#

I read something on a mod page one, I think Juna's — it described how translation is a complex process that really benefits from actually talking to the mod author who originally created the mod

#

So maybe including something about that will help people to understand your perspectives

#

I think Google Translate has been using something close to AI for a long time

fierce vault
undone hawk
#

First pass at a Header for my mod :3

uncut viper
#

at the very least, there can be some comfort in knowing that a large part of the stardew community (especially this server) does endeavour to respect a mod authors wishes, even if what they ask is only socially enforceable

tender bloom
#

There's some edge cases where it will attempt to translate nonsense and get true output, which strikes me as a side effect of various sophisticated NLP algorithms such as LLMs

lucid iron
#

i use a mtl even though im fluent in chinese cus sometimes it's hard to map words one to one

uncut viper
#

but there is unfortunately nothing to be done about the people who dont care, and that is true of any community

lucid iron
#

its a matter of scale really, i use it for like 1 or 2 sentence as a hint

#

not just toss your whole i18n through mtl

tender bloom
#

There has long been the existence of efforts on Google's part (google books) to have the corpus necessary to do translations

uncut viper
# undone hawk First pass at a Header for my mod :3

is that for the Header or the thumbnail image? if its the header, make sure it looks right when you have to crop it to its wide aspect ratio, and if its for the thumbnail, make sure its still readable enough when scaled down to thumbnail size SDVpufferheart

fierce vault
#

That would be better than just feeding the whole thing of course.

undone hawk
lucid iron
undone hawk
uncut viper
#

if its the header then it's definitely gonna need to be super cropped as is

lucid iron
#

i think it would be fun to use the sdv sprite font for "Fish Helper UI

undone hawk
#

I agree

#

Oh snap

uncut viper
#

i always think i have accounted enough for the aspect ratio nexus wants for its headers and i always underestimate it

undone hawk
#

That's super helpful

lucid iron
orchid glade
fierce vault
#

I was wondering about that

uncut viper
#

im not sure what you mean! i dont know the aspect ratio or the dimensions it expects exactly. it probably says but im a nexus user too so i dont read

#

i just take a screenshot and see how it crops and mostly just go "eh good enough"

fierce vault
#

Lol

uncut viper
#

i put more effort into the thumbnails, those are seen more

#

if its 1400x400 though thats good to know

orchid glade
#

The other thing is, even if you crop it well, the text will cover like a quarter of the image at least

fierce vault
#

I couldn't find a thumbnail space when working on the nexus page privately. Did I miss something?

uncut viper
#

also true. and the buttons on the right corners too

orchid glade
#

On my screen anyway, so don't put your own text under there.

uncut viper
#

its in your Media section, under "Your mod images"

#

the star icon lets you select which one is the thumbnail

orchid glade
#

I think it's just your first mod picture?

fierce vault
#

I'll check again and see if it is there now

uncut viper
#

you can reorder and change them as you wish. i believe first is default unless you specify otherwise

#

it wont call it thumbnail though itll say "primary image"

orchid glade
#

Oh a star. But strangely, a mod I worked on with someone else still shows an old (terrible, low res) image as the thumbnail even though it's not shown in the images tab

#

And since I'm not the one who uploaded it I can't go in and see if I can change it (waah I hate not having control lol)

uncut viper
undone hawk
#

The scroll maker is so cool!

#

Okay I'm gonna reorient it for the header dimensions nao

orchid glade
undone hawk
#

That'd be INCREDIBLE

orchid glade
#

I'll put it in the wacky inspiration pile

fierce vault
#

I sometimes see people post nexus pictures which look very blurry. I wish more people realized that they need to scale up the pixel art images before posting. Not every art app has that as a feature when exporting though, so I get why it happens.

undone hawk
#

The Legend peeking in from the sides has me VERY amused

urban patrol
#

ooh cute!

#

i'd download it

lucid iron
#

oh maybe move him to the top

undone hawk
#

Ohhhh I see what u mean

lucid iron
#

bottom has all the buttons and stuff

undone hawk
#

Donezo

#

What's ideal thumbnail size? Is it 1980 x 1080 and I just make it super easy to read when small?

ornate trellis
#

so, quick question cuz I have a "I may be stupid" moment but for hidden profile emote how do i trigger it to know i did it right? i thought it was just clicking or something thonking (or maybe this is more a "cheeto who isnt playing the game enough" moment)

rigid musk
#

isnt that the thing where you click on them and they do something in the friendship menu?

ornate trellis
#

damnit so i must be doing something wrong cuz im clicking and nothing happens

#

which im wondering cuz I copied from an example

urban patrol
#

what in the game sets the mail flag landslideDone? is it jojacorp sending the mail about the mines?

uncut viper
#

any large enough 16:9 image should be fine for the thumbnail

#

just have to imagine how it'll look in the front page and search lists when it's small

#

or zoom out to that size

orchid glade
ornate trellis
#

ok, im outta ideas and jsut ignore it for now cuz im looking at the characters.json for the vanilla npcs and im doing it like that and nothing happens so either im unlucky or stupid. just gonna do individual gift tastes instead

fierce vault
orchid glade
ornate trellis
#

OH

fierce vault
#

I asked this in the modded channel, but no one has anwered yet, so I'd like to ask you guys over here. Do you all prefer a nexus thumbnail that has nicely done digital art for a npc, or one that showcases their Portraits and other assets of the mod in an aesthetic way?

orchid glade
#

Directly from the wiki 😉

ornate trellis
#

no wonder it didnt work then lmao i deleted my old test save cuz it was borked so i dint have all the friendship anymore

urban patrol
orchid glade
ornate trellis
#

I do art for my main thumbnail combines with a screenshot of it and then also screenshots from the game showcasing what the mod is about

#

but im greedy and a perfectionist so idk

uncut viper
#

I prefer whichever is more eye catching in the thumbnail because that's not gonna be the best place to show off the pixel art anyway, that's for the mod description

fierce vault
#

It is a difficult one to balance, because if you are only advertising an npc, digital art can work really well in showcasing who they are

orchid glade
#

Yeah it depends on the type and scope of the mod

fierce vault
#

It is possible to combine both, but I would definitely need to put a lot of work into it before I would be satisfied with the design.

orchid glade
#

If it's a new NPC or a new portrait, I like to see that actual art. If it's like a recolour or furniture pack, probably something screenshotty, if it's a utility, something.... utile...

fierce vault
#

Makes sense. Sometimes the art covers just don't really match the pixel portraits at all. I think in those situations though, they usually had different artists.

lucid iron
#

i like how the sunberry add ons do it

#

illustration + in game

fierce vault
#

I was thinking about those actually. The cover art doesn't really match the pixel art in my opinion. Not saying that is a bad way of doing it, but that is something I would personally want to have more cohesion on. Like I said, they were likely done by different artists, so I understand it.

urban patrol
#

sorry to interrupt--is this valid syntax?

    "NOT HasFlag": "landslideDone"```
lucid iron
#

no

#

"HasFlag|contains=landslideDone": false iirc

urban patrol
#

hmm okay follow on question, this is what i had before, was it not valid either?

    "HasFlag": "landslideDone"```
lucid iron
#

this is fine

#

it's equiv to "HasFlag|contains=landslideDone": true

urban patrol
#

okay so it was just the negation got it

lucid iron
#

docs say This currently works for image and data assets. rn

calm nebula
#

When do we get EditAudio?

uncut viper
#

what is a map if not xml data asset /j

calm nebula
#

when do i stop being a snarky fucker

lucid iron
#

what would edit audio do LilyDerp

calm nebula
uncut viper
#

AudioOperations

lucid iron
#

scary

uncut viper
#

SpliceDelimited (the delimiter is a frequency in microhertz)

lucid iron
#

is fourier transform gonna be involved in this i never learned calc 2

calm nebula
#

Why ofc course!

uncut viper
#

i did and I don't know how to fourier transform either

lucid iron
#

well i guess only atra can make this PR 😌

calm nebula
#

I can pull out the Matlab for pythonistas i started working on ....seven years ago

uncut viper
#

it probably was in either calc 2 or 3 but I don't remember either

calm nebula
#

Tbh I recall Fourier from my signal processing course

uncut viper
#

i didn't have to take one of those SDVpufferthumbsup

calm nebula
#

Button, I took calc3 in high school lol

uncut viper
#

so where'd you take calc 4

#

why stop at 3

calm nebula
#

I took differential equations in high school

#

Last bit of formal math schooling I ever did

uncut viper
#

all in preparation for your fourier transform content patcher pr

calm nebula
#

Nah I'm not cool enough for that anymore

#

I'm also too lazy for that

#

I'll be on the back nine like a proper retiree

undone hawk
#

Mod uploaded y'all! Thanks to everyone for your help and feedback, y'all kick butt ❤️

lucid iron
#

do u want a showcase

undone hawk
#

Defo!

uncut viper
#

SDVpufferthinkblob if there's an active junimo lulu could get the role and showcase it too

lucid iron
#

you can request the cheeto role then

#

if you dont want to be orang then ill do it for you

undone hawk
#

I would love to be orange, I DM'd the bouncer

urban patrol
#

i have finally caved and added BETAS as a dependency for my mod. i wanted to limit the number of dependencies but there are simply too many goodies in there i couldn't resist

lucid iron
#

limiting dependency is fallacy PecoSmile

#

eventually u r just rolling your own version of desireable feature

undone hawk
#

TBF the idea of limited dependency is so you're not reliant on code that might no longer be receiving support

#

Like some of the pre-1.6 libraries

#

Also it means you understand (probably) what all of your code is doing since YOU wrote it

#

But libraries and APIs are lifesavers for things outside your wheelhouse

uncut viper
lucid iron
#

for CP mods tho it is choice between not doing a thing, doing things in really cursed way (if any cursed way exists), and properly using a framework feature to do what you want bolbsunglasses

undone hawk
#

Oh fair, I was thinking C#

lucid iron
uncut viper
#

dw it was mostly a jokey question anyway i just wanted to see if one could figure out an actual defined fallacy that can apply

undone hawk
lucid iron
#

yea but i considered it seriously for at least 10s out of respect

uncut viper
undone hawk
#

Slippery Slope?
Hasty Generalization?
Either/Or?

uncut viper
#

slippery slope would be if you said "if you add BETAS as a dependency, soon enough you're gonna be dependent on 50 other mods, too"

undone hawk
#

Oh heck yea I'm orange now

uncut viper
#

orange!

lucid iron
undone hawk
uncut viper
#

you could! but it wasnt SDVpuffersquee

urban patrol
undone hawk
#

Ohhhhh I can see the reasoning

lucid iron
#

yea but the people who are first adopters of mod also tend to be the 1000 mod list ppl

#

i don't know how you expect to pick your audience here blobcatgooglyblep

urban patrol
#

i fear them

#

oh i mean people in my fandom! i'm making a mod for a tv show we all like

#

so i've already hyped it to them

uncut viper
#

just tell them its totally normal for a mod to have 70 dependencies

lucid iron
#

yea dw about it AquaThumbsup

calm nebula
lucid iron
#

i think the better approach is just

calm nebula
#

You'll also need to get in contact with me specifically

lucid iron
#

have a proper install guide

calm nebula
#

I need to mail you a teensy pcb

#

Promise it isn't a keylogger

uncut viper
#

(anyway it might be circular reasoning. "i want to limit my dependencies because i want to have few dependencies.")

#

(there. i picked a fallacy for you chu)

#

(though that was ofc before nic provided an actual reason)

lucid iron
#

ty button wew

urban patrol
#

"hey it says this file is a .exe?" "yeah don't worry about it"

lucid iron
#

something that would appease the graph theory gnome is some flag to mark a mod as dependency

uncut viper
#

elaborate

lucid iron
#

i.e. safe to uninstall if there are no dependents

undone hawk
#

So looking forward to my first comment being "Hey I found this incompatibility with this extremely esoteric mod"

uncut viper
#

isnt that just, any mod?

lucid iron
#

any mod without user facing features at least

calm nebula
#

Yeah, but a mod that has no side effects except

uncut viper
#

any mod that doesnt fuck wit hthe save serializer

lucid iron
#

perhaps safe is too strong a word but more like

#

i see pp with json assets in their log and 0 packs and i go why...

rigid musk
rigid musk
urban patrol
lucid iron
#

pacman (the package manager on arch) remembers what packages are explicitly installed by user going "please get me firefox" vs installed as a dependency "ok i guess that means u need all these lib guys"

calm nebula
#

As does apt

uncut viper
#

if i had to guess, because its something i could see myself doing on accident, they HAD JA or SAAT mods initiallyt

lucid iron
#

thats the concept here i guess

calm nebula
#

Every normal package manager does that lol

uncut viper
#

and then they converted, and downloaded the new versions, but didnt delete the now unnecessary dependencies

urban patrol
#

yeah i last played modded SDV on my laptop a couple years ago and i'm pretty sure JA is still floating around on there

lucid iron
#

so for me i'd like to mark any of my mods that don't have user visible features as a dependency

rigid musk
#

I have JA with my big mod pack explicitly because there are mods that actually use it that I wanted

lucid iron
#

so for example mmap would be dependency=true as it does nothing without maps using it's features, livestock bazaar would be dependency=false cus it still provides a menu even with 0 custom animal shops installed

#

line aint that clear cus some frameworks like AT adds objects even without any packs so its just up to author to draw line ig

uncut viper
#

appeal to consequences fallacy, disregarded /j

#

im not sure if itd have too much value tbh personally

lucid iron
#

it would let smapi skip those mods automatically

#

i dont think it matters that much bc loads of people live with skipped mods section thats like 20 lines long

uncut viper
#

it would, but i think it would be very minor gains for a scenario that i dont expect happens all that often

calm nebula
#

Some weirdos srill try to use atracore (please don't)

uncut viper
#

my NPC mod uses atracore

lucid iron
#

the other approach is like

#

actually show dependency more on the log parser so ppl who care can look at it Dokkan

#

see how many mods in yer list is using spacecore and stuff

calm nebula
#

That would be cool

#

I assume Button would love to know how many mods use Betas

uncut viper
#

well for that i just look at nexus

lucid iron
#

yea and since button is fine with JS i vote button to do this PR

calm nebula
#

Oh no

lucid iron
#

idk where the source for smapi.io web is tho

calm nebula
#

Pathos is typing

#

Run

iron ridge
ivory plume
#

(Super early semi-functional multi-key-binding support in Generic Mod Config Menu.)

iron ridge
#

is this for a dependency graph

light jasper
#

my harmony patch I wrote for drawHoverItem a year ago still works now that I'm ready to use it 🙏

uncut viper
#

i dont know how to use whatever smapi.io is using SDVpufferthumbsup

lucid iron
#

yea graph theory again

lucid iron
#

oh is it serverside rendering

#

cshtml scary

iron ridge
#

it's some templating definitely

fierce vault
#

You know, when I first made my npc, I didn't know about the 32 pixel height limit, so I accidentally made it far taller than would work in game. I found that out after reading more online, and adjusted his height accordingly.

But as I've done even more reading, I've found out about spacecore, and how you actually CAN have custom heights with that. I'm kind of glad I didn't know that starting out because I don't want to think about all the extra problems I could run into for something that isn't that important in the grand scheme of things.

light jasper
#

what an incredible day for me

ivory plume
#

The log parser page is almost entirely JavaScript using vue.js. The server-side rendering just builds the basic page template, injects a URL, and the JavaScript fetches the log data from the URL and builds the UI.

uncut viper
#

i had a feeling it was Vue but didnt look too closely. ive never used that either though so. im not the best for a PR anymore

light jasper
#

on a semi related note, drawHoverItem is a terrifying method to deal with

ivory plume
#

(The actual log parsing happens server-side when you upload the file, which gets cached to Azure Blob Storage and fetched by the JavaScript.)

lucid iron
#

draw anything is Like that

uncut viper
#

but a dependency graph on the log parser wouldnt help me figure out how many people use BETAS anyway

calm nebula
#

Chue are you webdev flavored

lucid iron
#

nou

uncut viper
#

chu hates webdev

calm nebula
#

I'm also not webdev flavored

lucid iron
#

i done it b4 and didnt like it

light jasper
#

webdev supreme

ivory plume
#

(Don't worry, I'm a web dev and don't like it either.)

uncut viper
#

pathos have you considered rewriting the entire smapi.io site in react or svelte instead just so that i can PR it /j

undone hawk
#

Oh god

light jasper
#

I do unholy things with it at work lol
wrote a framework to run comms with all my ROS2 robots that I work with so I can write browser UI applications in react

undone hawk
#

When I was working to develop my Twitch Extension mod for Stardew, @rocky creek made me rewrite the ENTIRE front-end after we'd basically finished from JS to TS

#

It was so much work

light jasper
#

good.

#

TS is the way

undone hawk
#

TS makes my brain happy

uncut viper
#

i dont like TS but i also still agree that was for the best anyway

undone hawk
#

JS makes me want to eat a poisoned apple

uncut viper
#

my dislike is entirely irrational and wrong and i know this

light jasper
#

JS devs cope saying that you can have types through your documentation

#

insane take

undone hawk
#

The way you iterate over an enum in TS is actually wild btw

iron ridge
#

allows for great control of ifs, whiles, fors, etc

undone hawk
#

Just write the entire SMAPI codebase in Regex for the fun of it

uncut viper
#

yeah but how am i supposed to make that reactive without an entire framework

#

the tech isnt there

iron ridge
uncut viper
#

if only JS could manipulate the dom without react

lucid iron
#

so pathos what r your thoughts on displaying dependencies on log parser

light jasper
ivory plume
#

(Vue.js is a reactive framework.)

uncut viper
#

i would hope so

lucid iron
#

ik the data is there but i don't know what it should look like on parser LilyDerp

uncut viper
#

(take my prior sentences with heavy /s)

ivory plume
undone hawk
#

https://www.youtube.com/watch?v=aWfYxg-Ypm4 Have y'all seen the new video for Senior JS Developer interview btw?

Javascript programming language

Rust part soon on ?: https://www.patreon.com/ProgrammersAreAlsoHuman
JS Stack merch: https://www.redbubble.com/i/sticker/SATAN-stack-by-posix/160332098.EJUG5

Interview with a Javascript developer with Jack Borrough - aired on © The Javascript 2024.
more backend advise on https://www.youtube.com/watch?v=y8OnoxKo...

▶ Play video
uncut viper
#

get to it, chu

iron ridge
uncut viper
spiral lion
#

what does this error mean:
[Content Patcher] Ignored Bloom and Brew > Hazels's data > assets/Characters/HazelData.json > Hazel's LongHair: the FromFile field can't be used with an 'EditData' patch.
[Content Patcher] Ignored Bloom and Brew > Hazels's data > assets/Characters/HazelData.json > Hazel's ShortHair: the FromFile field can't be used with an 'EditData' patch.

undone hawk
lucid iron
#

ig just 1 level deep is enough

uncut viper
calm nebula
#

Is a reactive framework the opposite of an inert framework

lucid iron
#

dont need to know about FishDimensionMuseum -> CustomMuseumFramework -> Spacecore

iron ridge
lucid iron
#

but content packs r also already 1 level deep LilyDerp

spiral lion
#

ahhaha thx

lucid iron
#

what do for things dependent on cornucopia

light jasper
#

be careful

uncut viper
calm nebula
lucid iron
#

oh did you figure out how to swap out the custom location?

#

or did u just patch all the things u needed ukimasu

uncut viper
#

i just patched the things i needed SDVpufferpensive

calm nebula
#

I like explosions

uncut viper
#

and i store the donated items in a global inventory now

ivory plume
#

(That's why JavaScript frameworks change so often, the old ones slowly decay into radiation.)

undone hawk
iron ridge
#

what do they all decay into eventually

undone hawk
#

Writing that down

uncut viper
#

you can figure out when your framework is gonna be obsolete if you import halfLife.js

iron ridge
#

where do they hit stability

undone hawk
lucid iron
#

leftpad

uncut viper
light jasper
undone hawk
#

Vanilla JS is truly demonic

calm nebula
#

Leftpad.js

undone hawk
#

Someone explain to me the benefit of why Null is an object

iron ridge
#

because "everything is an object"

uncut viper
#

what situation did you run into where that made things more difficult

iron ridge
#

except undefined

urban patrol
#

so adding this trigger action with spacecore + BETAS works in game:

    "Id": "CCElevator",
    "Trigger": "Manual",
    "Actions": [
        "spacechase0.SpaceCore_PlaySound crystal true",
        "Spiderbuttons.BETAS_WarpFarmer handwrittenhello.dbda_DeadBoyAgency 6 18 0"
        ]
}```

but it seems to have messed up my NPC pathing. the TileData was previously `Warp handwrittenhello.dbda_DeadBoyAgency 6 18` but i changed it to what's pictured above. 

i have an NPCWarp already added, which i thought they had been using:

"LogName":"Set NPCWarp for Elevator",
"Action":"EditMap",
"Target":"Maps/CommunityCenter",
"MapProperties":{
"NPCWarp": "50 18 {{ModId}}_DeadBoyAgency 6 18"
},```

here's the relevant jsons:
Map json: https://smapi.io/json/content-patcher/b25472a5e04947299dc2a0de4152fb83
TriggerActions json: https://smapi.io/json/content-patcher/beb8ad114a714c3d8e2dd6263943df50

undone hawk
light jasper
lucid iron
#

can u have npc warp and warp on same tile yggy

light jasper
#

I think pathos posted the xkcd earlier, someone is probably using it lmao

urban patrol
undone hawk
#

It's just an example of why JS is terrifying. It's like the basis for 99% of the internet and it's held together with scotch tape and gluesticks

uncut viper
#

my thoughts are "it might be terrifying but if it never actually matters, does it actually matter that its terrifying"

uncut viper
lucid iron
#

hm since you are sticking your warp into the CC you shuld use the new AddNpcWarps instead

uncut viper
#

(50 18 might be correct but i thought it couldnt hurt to double check, i was just trying to match up my own map with yours)

urban patrol
urban patrol
#

that would an Append, right?

lucid iron
#

prepend

uncut viper
#

you could do it with TextOperations before too if you fsr didnt want to require the absolute latest content patcher version

lucid iron
#

it was released in 2.6.0

uncut viper
#

sorry absolute latest content patcher minor* version

#

aka the one that people write in their formats most often SDVpuffersquee

urban patrol
#

is it my manifest that defines that? i don't even know what i have there, it's whatever was on the wiki when i started in february lol

uncut viper
#

for the record im not saying you shouldnt require the latest

#

just if you had reason not to, you can do it in prior versions

lucid iron
#

"Format": "2.6.0",

urban patrol
#

i see i see

lucid iron
#

its this field

urban patrol
#

oh the one in content.json yeah!

#

i have 2.5.0 in there

#

but i'm happy to make it 2.6.0

lucid iron
#

the recommendation is that, whenever you want to do any change to your mod, bump up the version

#

(and ofc update contentpatcher.dll itself)

urban patrol
lucid iron
#

no im specifically talking about Format

calm nebula
#

Got it

uncut viper
#

atra

urban patrol
#

oh so i determine what Format is set as

calm nebula
#

Versioming mods like mozilla

#

We're at major version 99 babeeeeee

lucid iron
urban patrol
#

oh okay wait i think i understand. you're just saying i should check to see if there's an update each time, not that i should increase the number each time

uncut viper
#

the idea is just that you always want to be working with the latest version of content patcher if you can

#

and the format line matches the version of content patcher you're using

#

(ideally)

lucid iron
#

and if cp goes to like, 2.99.0, it'll know about any migration things it needs to do on your 2.6.0 pack

uncut viper
#

if Content Patcher knows what version your mod was written for, as learned from your format line, it knows how to migrate appropriately

urban patrol
#

that's cool

fathom hound
uncut viper
#

i believe it will even straight up prevent you from using a feature if your Format is too old

calm nebula
#

2033. Stardew 1.9 drops. CP 4.0 drops

uncut viper
#

even if your installed CP is newer

lucid iron
#

1.9 introduces monster data changes that finally let people do stuff trust

uncut viper
#

this is why for example older NPC mods that still have Format 1.51.0 or whatever can still work even though theyre using Data/NPCDispositions and such

rancid musk
#

Oh, are people talking about making changes to the smapi website? It was such a messy environment when I worked on the log parser updates. 😄

calm nebula
#

the raccoons have been moved to a data model. There are no more string string models in the game. Data/Triggeractions is Turing complete

uncut viper
#

content patcher sees the formatr and knows its old and knows what changes need to be done to get them up to par

#

which means they cant increase their format without also fixing their mod themselves, bc CP wont migrate them if their format is 2.6.1

urban patrol
#

makes sense!

lucid iron
#

khloe do u have thoughts about how2 display dependencies

calm nebula
#

Clearly do it like pip

lucid iron
#

e.g. show what mods in the log depends on spacecore

#

im also still not sure where the vue part of the site is at 3sSmolMiku

uncut viper
#

you know that fancy connected floaty particles background people overruse for their websites? it might literally be called particle.js. just do that but make each particle a mod and the lines are the dependencies SDVpuffersmile

calm nebula
#

Ahhh

uncut viper
#

you like graph theory, dont you? make a graph

lucid iron
#

but we have d3 for that

#

ty khloe

uncut viper
#

we do, but why use that when you can use overused floaty particle library like all the cool kids

rancid musk
#

My thoughts about displaying dependencies is that you'd probably want to do something graph-y in a pop-up.

lucid iron
#

oh this is cool DokkanStare

ocean sailBOT
#

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

rancid musk
#

You're wanting to visualize a many to many relationship, so you pretty much need a graph to show it accurately. Can't just toss them in a tree or something.

lucid iron
#

i did actually just have a tree but with duplicate nodes

#

since lack of cycle is assured

rancid musk
#

Honestly though, at some point the site is getting complex enough that someone should set up a proper js environment. It's not great how it's being authored right now

lucid iron
#

rewrite in svelte so button can PR it PecoSmile

#

what does proper js environment entail here

rancid musk
#

What's wrong with but Vue

iron ridge
#

button doesn't know vue

rancid musk
#

Package manager + ts + vite or something to bundle

uncut viper
#

Yeah nothing is wrong with it I've just never worked with it

#

Seems like a perfectly fine framework to me

lucid iron
#

oh does it not do like, npm serve

#

or equiv

iron ridge
#

smapi or vue

lucid iron
iron ridge
#

you'd have to run it from vs i assume

lucid iron
#

i really dont know much about webdev nowdays but when i briefly did it thats how i was doing things

#

what does run it from vs mean bolbphase

iron ridge
#

it would be if smapi wasn't whatever it is

light jasper
#

Does monogame do render caching or something? I don't know how to explain the drop off in my render time here

[18:38:11 DEBUG UI Info Suite 2] [Profiler (OnRenderedActiveMenu)]: Rolling average (400 entries) / 33871.45 us / 0.03 s
[18:38:13 DEBUG UI Info Suite 2] [Profiler (OnRenderedActiveMenu)]: Rolling average (400 entries) / 16947.00 us / 0.02 s
[18:38:15 DEBUG UI Info Suite 2] [Profiler (OnRenderedActiveMenu)]: Rolling average (400 entries) / 11305.46 us / 0.01 s
[18:38:16 DEBUG UI Info Suite 2] [Profiler (OnRenderedActiveMenu)]: Rolling average (400 entries) / 8484.95 us / 0.01 s
[18:38:18 DEBUG UI Info Suite 2] [Profiler (OnRenderedActiveMenu)]: Rolling average (400 entries) / 23.08 us / 0.00 s
[18:38:20 DEBUG UI Info Suite 2] [Profiler (OnRenderedActiveMenu)]: Rolling average (400 entries) / 23.08 us / 0.00 s
iron ridge
#

idk how it opened in firefox it's not my default browser

#

:O this is very cool

uncut viper
#

a

iron ridge
#

yep proper logs work too

lucid iron
#

i wonder how i can test outside of VS then, there's gotta be some way LilyDerp

#

problem for tmr chu

lucid iron
tawny osprey
orchid glade
#

Should I put 2.6.0 or 2.6.1 as my Format?

brittle pasture
#

there's a bunch of other errors but that's the first one the validator points out

#

side note, but does your editor have matching brackets highlight and an autoformatter

#

makes it much easier to spot errors in the bracket madness of JSON code

uncut viper
brittle pasture
#

oh, also missing closing }, before line 436

light jasper
brittle pasture
#

and you need a ] and a } to close out the first two opening brackets in the final two lines actually, no, it's more severe than this

#

your entry on line 466 seems to be completely malformed. seems like you accidentally deleted half of it?

tawny osprey
#

Oh i see it does have the ""operation" after it

lucid iron
#

is the bundle info itself cached somehow bolbthinking

light jasper
#

yeah I cache it, but it happens both on game load and if I've left the game and come back to it. I'm not too concerned about it, just curious

ionic jewel
#

So, I'm been learning content patcher, and I have a question: if the object machine has an "OutputMethod", do I have to make a seperate method and have the object pointed to that method, instead?

brittle pasture
#

yes
(IIRC you asked yesterday for a seed maker that gives more output depending on the input's quality? does quantity modifiers not do what you want?)

ionic jewel
#

From what I am seeing, no. I thought I saw it did once, but either I am not implementing them properly, or it's due to an underlying issue. I remember needing reflection because the seed maker discards the quality of the crop, so I think this method, which essentially does the same, is the issue.

brittle pasture
#

I don't think it does?

#

what did you have

light jasper
#

downside of not looking at this thing for a year is I can't fucking remember how my transpiler works

#

and I didn't leave enough comments 😦

uncut viper
#

what do you mean, the opcodes are the comments! they tell you exactly what theyre doing SDVpufferthumbsup

brittle pasture
#

you can do custom output methods of course, but just using machine data means you don't need C# and maximizes compat with game updates + any other mod that might patch the vanilla OutputSeedMaker (like that Fruit to Sapling mod)

ionic jewel
# brittle pasture what did you have
{
  "Format": "2.6.0",
  "Changes": [
    {
      "Action": "EditData",
      "Target": "Data/Machines",
      "Entries": {
        "(BC)25": {
          "OutputRules": [
            {
              "Id": "Default",
              "Triggers": [
                {
                  "Id": "ItemPlacedInMachine",
                  "Trigger": "ItemPlacedInMachine",
                  "RequiredTags": [ "!seedmaker_banned" ],
                  "RequiredCount": 1
                }
              ],
              "OutputItem": [
                {
                  "OutputMethod": "StardewValley.Object, Stardew Valley: OutputSeedMaker",
                  "MinStack": 1,
                  "MaxStack": 3,
                  "StackModifiers": [
                    {
                      "Condition": "InputQuality == Silver",
                      "Modification": "Add",
                      "Amount": 1
                    },
                    {
                      "Condition": "InputQuality == Gold",
                      "Modification": "Add",
                      "Amount": 2
                    },
                    {
                      "Condition": "InputQuality == Iridium",
                      "Modification": "Add",
                      "Amount": 3
                    }
                  ]
                }
              ],
              "MinutesUntilReady": 20
            }
          ]
        }
      }
    }
  ]
}
light jasper
#

the full patch class with all its methods is like 500 lines I gotta comment now

#

woahhhh

ionic jewel
#

sorry, I thought code will fold

brittle pasture
#

that's definitely not what the Condition field should look like

ionic jewel
#

ahh

brittle pasture
uncut viper
#

it still wont fold if wrapped, for longer jsons pls use the validator

brittle pasture
#

specifically you want ITEM_QUALITY Input 1 1 for "Input item silver quality" for example

#

also, it is not recommended to remake the machine's entire field like that, since you risk breaking compat with other mods

uncut viper
#

(tbh in this context id call it more "guarantee breaking compat")

ionic jewel
#

so just the stack modifiers will do?

brittle pasture
brittle pasture
#

that TargetField line is basically "find (BC)25 > Enter OutputRules > Find entry in OutputRules with the Id Default > Enter OutputItem > Find entry in OutputItem with Id Default > modify it"

#

this way you leave everything else the same

ionic jewel
#

Ah!

safe badge
#

Can someone point me in the direction of animating sprites?
Like what the triggers and such are for content patcher?

brittle pasture
#

what sprites are you animating?

tender bloom
#

content patcher doesn't typically do animations (outside of what vanilla has already)

#

for an example of vanilla animations, there's some spring onion animations at the top of Cursors.png

#

but if there isn't an animation in vanilla, you'd need a framework beyond CP, like SpaceCore

brittle pasture
#

yeah I asked since there's lots of contexts needed for "animating sprites"
if you want animated map tiles, that's straightforward in Tiled. animating machines when it's working, that's natively supported

reef kiln
#

How does animate fish work?

#

Oh wait, it had a special frame work, if I recall. Nm

safe badge
#

For vanilla assets!
Like npcs walking animations and such?

I have my sprites made and ready, I’m just wondering how to implement the movements in game?

reef kiln
#

Your warps are wrong. My guess and I may be wrong. But can you use {{ModId}} in a warp. Because they look right. Try adding the actual map name.

urban patrol
reef kiln
#

So if it is not the warps, what issue are you having? Or it is the warps but others have worked in the past with {{ModId}}

fathom hound
#

where would the icon for the festival flags on calendars be?

urban patrol
#

it's that my NPCs can no longer path from Town to DeadBoyAgency after changing the TileData from a Warp to the spacecore trigger action stuff, even though i have an NPC warp added (which i assumed they were using before, because i had added it after they were unable to use the normal warp for whatever reason)

urban patrol
# safe badge Thank you so much!

also in case you didn't know, you don't need to manually animate them walking! by having them in the correct indexes (the first sixteen spaces) the game automatically knows how to do that

brittle pasture
reef kiln
urban patrol
#

instead of walking back home, they stay where they are and begin the animation they're supposed to perform upon arriving home

reef kiln
#

Then I can't help as I was never given an answer on how to fix it. Sorry.

urban patrol
#

that's okay, thank you for trying!

safe badge
urban patrol
#

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

urban patrol
#

nice first try

orchid glade
#

Gaaah which of these options just gives you the 'posts' tab:

A single comment topic and a discussions tab
Just a discussions tab
No comments ```
lucid mulch
orchid glade
#

I freaking hate making nexus mod page. The number of times I click 'next' and it says I don't have permission, or I try to edit a page and it says 'this mod has not been published yet', warghhh

safe badge
urban patrol
#

funnily enough i very much like being called sir lmao you're good

vernal crest
urban patrol
vernal crest
urban patrol
#

oh it's not letting me, hang on gotta open it in PS i guess

urban patrol
ivory plume
urban patrol
#

that tile is one above where the NPC warp is set to

vernal crest
lucid mulch
#

can have the frontend upload it pre-parsed
though I admit theres already environments relying on the upload being raw, governor can auto upload logs, as do some nexus mods

urban patrol
#

i'll try it 👍 and i appreciate your time, even when tired

lucid mulch
#

The advantage of the frontend parser is its fast, and can be used to read logs larger than the filesize limit on the app service

#

during development of my site I was working on logs in the 300-500mb size rather than the <~28mb that smapi web can accept

urban patrol
#

same spacecore error when it's set to 49 18 (and again they don't move)

vernal crest
#

I know that will mess with your intended trigger action being the only way for the farmer to get there but for now I am just focused on finding the issue rather than jumping straight to a fix for an error we don't understand, if that makes sense.

urban patrol
#
"LogName":"Set NPCWarp for Elevator",
"Action":"EditMap",
"Target":"Maps/CommunityCenter",
"MapProperties":{
    "AddWarps": "49 18 {{ModId}}_DeadBoyAgency 6 18"
    },
},```
#

is it possible that i need to be adding a warp to every iteration of communitycenter map?

#

(refurb, ruins, joja)

vernal crest
#

Oh that one is because AddWarps is not a field inside MapProperties.

#

it's at the same level.

urban patrol
#

oh so just

"LogName":"Set NPCWarp for Elevator",
"Action":"EditMap",
"Target":"Maps/CommunityCenter",
"AddWarps": "49 18 {{ModId}}_DeadBoyAgency 6 18"
    },
},```
#

?

vernal crest
#

Close. Needs square brackets (and it needs both lol)

{
"LogName":"Set NPCWarp for Elevator",
"Action":"EditMap",
"Target":"Maps/CommunityCenter",
"AddWarps": [
  "49 18 {{ModId}}_DeadBoyAgency 6 18"
    ],
},
raw oxide
#

hi so i'm working on a mod to resize the borderless window but i don't know if i'm maybe missing something this is the result i get and this is the code

uncut viper
#

(you do need to do it for each version of the map)

urban patrol
#

ah okay

vernal crest
#

There is no Maps/CommunityCenter in my Content folder. Only CommunityCenter_Refurbished/Ruins/Joja.

urban patrol
#

so editmap targets a tmx?

uncut viper
#

yes. its not editing locations

urban patrol
#

which i guess makes sense it's kind of in the name

#

yeahhhh kind of having a head-against-wall moment here

vernal crest
#

You should be able to double check the map name with either Debug Mode or Lookup Anything

uncut viper
#

the Maps vs Locations confusion is common enough that you're in good company at least

urban patrol
#

yeah i could live to be 100 and still be confusing them lol

vernal crest
#

It's uncommon to do it in this direction though!

urban patrol
#

woohoo achievement unlocked

#

it worksssss thank you both so much

#

well, the addwarps works, but i assume the NPCWarps will as well

vernal crest
#

There's AddNPCWarps so you should just be able to add "NPC" in to the field name lol

urban patrol
#

yep, easy fix!

#

so they path to the NPC warp just fine, so they must know where it is, but why does it not warp them

ocean sailBOT
#

@urban patrol You leveled up to Farmer. You're now a prettier shade of blue. Thanks for sticking around!

urban patrol
#

omg i'm a real boy now

vernal crest
#

Did you make a new save after changing the EditMap targets?

urban patrol
#

i did not! i didn't know you had to 🙏

uncut viper
#

schedules can be fucky and the community center can be even fuckier so when working with both it definitely helps to pull out all the clean slate stops lol

vernal crest
#

I don't know if you do, but with schedule stuff it's always best to test on a new save or by sleeping in case the problem goes away by doing that. Not sure it's going to help here but it won't hurt.

uncut viper
#

at the very least, even if it doesnt help, you'll be able to confirm it didnt hurt

urban patrol
#

that did indeed fix it PHEW

#

i guess i never thought of map stuff falling under the umbrella of schedule stuff, but on second thought it's kind of like well of course it does lol

#

and with that, that might legitimately be the last bug to squash? i think... i can release my mod now??

spring marlin
#

would it be possible to add a book that gives +1 speed when you are in the secret forest with just frameworks?

uncut viper
#

yes (theres a vanilla buff for speed, right?)

spring marlin
#

yea

uncut viper
#

have a repeating trigger action check for the book's stat and fire on LocationChanged

#

put the AddBuff action in it and give the player a speed buff

#

ideally your own custom speed buff, so you can also remove it when they leave with another trigger action

#

i guess you can do it in the same trigger action with the If action

#

if in secret forest, addbuff, else removebuff

#

also i dont know if you were including Content Patcher as a framework or if you meant additional dependencies but that can all be done with just Content Patcher

fierce vault
#

Hey, anyone know here know what some of the most crowded festivals are, custom npc wise? Is there a festival you've observed that everyone just seems to want to add their own character to? I'm wondering specifically about spirit's eve...

urban patrol
fierce vault
urban patrol
#

i do not unfortunately. best of luck though

fierce vault
#

Thanks!

reef kiln
vernal crest
#

Yup I have overlaps galore when I play

fierce vault
#

I would guess that the spirits and winter festivals specifically would interest people who might not have their npc attend every festival.

ocean sailBOT
#

@fierce vault You leveled up to Farmer. You're now a prettier shade of blue. Thanks for sticking around!

fierce vault
#

Oooo

#

I'm a different blue now. Honestly, this shade doesn't go as well with the sprout in my profile name though

raw oxide
iron ridge
#

does tiled let you see what layer a tiledata is on?

lucid iron
#

Yeah

#

Gotta pick object layer with matching name

rigid musk
#

mine shows me in the bottom right corner when you click on it

lucid iron
#

Little stone qi...

#

He sit so politely

rigid musk
#

He just chillin

iron ridge
tiny zealot
iron ridge
#

the edge cases... so many edge cases

urban patrol
#

can i have a sound loop during an event, as music also plays in the background? i want my character to be stirring something and for the waterSlosh sound to repeat until he's done stirring. so far i've only been able to get it to play once

fierce vault
#

I checked out the custom npc festival spreadsheet by the way, and I'm not sure if it is just a problem on my end (using the PC), but it looked funkier and more misplaced the further I scrolled down. It was really broken in some areas.

uncut viper
#

i would say its still worth it to add your npc

#

have to remember too the spreadsheets and resources kinda give the "worst case" scenario of a user having everyone installed

#

theres many people who will only have a handful of NPCs extra

#

and if someone is in the worst case, then theyre used to the collisions anyway

fierce vault
#

You make a good point, I think. I wouldn't expect most people to have too many issues like you said, but I didn't also consider that the modded mayhem disaster scenario users would also probably be used to it and not think it's too big a deal.

vernal crest
#

There's also the path of config options for festival placements (using config tokens for the coordinates so players can control them), though I don't know if there are any snags to doing it. I've tested its function with Hiria in a vacuum but not in a real gameplay scenario.

uncut viper
#

very confusing moment for me where aba sent that msg as i was reading parcys but my brain didnt notice and i was wondering why parcy was suddenly talking about testing with hiria in a vacuum

#

personally i also just think festivals are a very fun thing to add stuff to an NPC for, so it would be a shame to skip out on that just to let other people do it for their npcs and not get in their way

tiny zealot
#

config tokens for placement should be fine. i use dynamic tokens for mine (i have preferred locations, and backup spots if those are taken) and it's never caused problems except for having to become confused math lady when somebody reports a collision ("exactly what mods have to be installed for this to happen?")

uncut viper
#

if you happen to choose a spot someone else chose, thats not your problem. it aint theirs either. its just a fact of modding life

fierce vault
#

I think that if I maybe carved out a space a space for him (while accounting for SVE, RSV, etc... sigh...) I may have an even better chance of avoiding collisions.

uncut viper
#

accounting for the big 3 expansions is probably good enough for most people tbh

fierce vault
orchid glade
#

Is the past tense of troubleshoot, troubleshot?

fierce vault
#

To see him there, I mean

tiny zealot
urban patrol
lucid iron
#

RSV is actually easy

uncut viper
#

its troubleshote

lucid iron
#

All their ppl are in a new area

orchid glade
#

Troubleshat..?

#

/snicker

fierce vault
fierce vault
lucid iron
#

Anyways one day someone will solve the assignment problem trust

ivory plume
#

(Fully working multi-key-bindings support in Generic Mod Config Menu. SDVpufferowo)

vernal crest
#

Very nice!

spring marlin
#

how do i make an item do the book open animation?

uncut viper
#

must be category -102 or -103

lucid iron
#

Like on use?

uncut viper
#

they were asking about adding a book to give a power earlier

#

so presumably on use

spring marlin
#

Yay i got a book item working! now how do i condition for if i have read the book?

uncut viper
#

PLAYER_STAT Current YourBookId 1

#

when a book is read it increments a stat value on the current player whose name is the books item id

ivory plume
spice inlet
ivory plume
#

Yep. GMCM already disables controller snapping for the config UI, so they work in free cursor mode.

spice inlet
#

Really cool PR btw, I know that's something people have been asking for frequently

#

I'll make sure to update my mods to support that once it's out ^^

ivory plume
#

It should work automatically! You just need to call the AddKeybindList API method like before, the API hasn't changed.

ivory plume
#

Here's a preview of Generic Mod Config Menu 1.15.0 (with kittycatcasey's permission).

Changes:

  • Added support for setting multi-key-bindings (automatically enabled for all mods using the standard KeybindList).
  • Fixed compatibility with the upcoming Content Patcher 2.7.0.

Let me know if you have any issues or feedback (or if it works fine for you!).

rancid musk
#

If you're going to cut a release of GMCM please include my PR for Better Game Menu compatibility.

#

(Not that it's needed for an unofficial build, but I know you have publish permissions for a lot of mods)

ivory plume
#

I won't be releasing a public GMCM update, I'm just beta-testing these changes for her. Casey will be looking at the PRs and preparing an update separately (possibly later this month before the Content Patcher update).

crude plank
#

Khloe are you still interested in mods that need compat for BGM?

rancid musk
#

Of course. I want everything to be compatible.

crude plank
#

I pinged you a while ago but i'm not sure you saw it, informant's shipping collection decorator is not appearing while BGM is installed

#

The rest of them are fine it's just the shipping one

#

I don't think it's the decorator itself that's the problem but how they check if something is needed for the collection page, but i could be wrong

spring marlin
#

just started making the texture for my book, what are these smaller skill book sprites for?(ones on the bottom)

uncut viper
#

unused

rancid musk
rigid musk
#

the tiny books are so cute...

#

would bea shame if someone... turned them into decor...

spring marlin
#

how do i add a rare drop to hardwood stumps and skull cavern rocks?

inland rain
tacit sparrow
quaint scroll
#

I want to make a custom shop that can be opened furniture. For example, if there is a vending machine furniture, I want to place that furniture where I want it, and when I interact with it, I want the custom shop to open. How do I do that?

golden spire
#

You can create a custom shop, I'm not 100% sure what you're asking in some of your question.

quaint scroll
#

sry I don't know how to explain it

#

I think I should say that it is a furniture that also functions as a custom shop

fossil osprey
#

All stores are somewhat a "furniture", they just are only open on the condition there is a NPC nearby - but you could create a custom shop without that condition, and that could be what you're looking for

#

However I don't know if it would be possible to move a custom shop in-game, I'm not verse in the art of making a custom shop

lucid iron
#

You can use the OpenShop tile action with a furniture via calcifer

calm nebula
#

6480, does cornucopia have kale?

lucid iron
#

Shops in this game aren't usually furniture tho

calm nebula
#

Well, except for the catalogs

#

Also, does stardew have okra?

#

Kale is my favorite veggie, you know 🙈

quaint scroll
hard fern
#

Mmm okra

barren compass
#

I think SVE has kale?

hard fern
barren compass
#

Great to know thanks

fickle galleon
#

Question, to have custom player sprite, how do we do that?

#

it's like a mod or directly drawing on game files?

golden spire
#

as in the farmer?

fickle galleon
#

yep

fickle galleon
golden spire
#

My username is that, I don't make dragons for mods

fickle galleon
#

I was thinking of the dragon film mod ^^

golden spire
#

yep, that's me

#

me and my ego

fickle galleon
golden spire
#

are you just wanting to make custom clothing or the actual body?

fickle galleon
#

custom clothing

golden spire
#

you can use content patcher to add in basic clothing but if you want something fancier then you'll have to look into using 'fashion sense'

fickle galleon
#

ooh nice pretty cool

#

I wonder if it works with 1.6 and multiplayer, i'll look into it

#

thanks

inland rain
golden spire
#

aedenthorn!

mortal goblet
#

Adding Events to my mod is so complicated. Is there any way to add events easily?SDVpufferwaaah

golden spire
#

depends what issue you are having with it

#

what are you finding hard?

mortal goblet
#

there are so many commands or values

golden spire
empty vector
#

Someone plagiarized my mod and uploaded it on nexus, I reported it and it got taken down. Now it's up on github. Is there something I can do or do I just drop it? He's linking the github in his nexus profile

golden spire
inland rain
golden spire
#

just move npcs/pause/speak etc

mortal goblet
#

ok.. So is there a way to test these events?

golden spire
#

yes

mortal goblet
#

which mod I need

calm nebula
#

I'm sorry to hear that.

golden spire
#

well any cheat mods help with debugging but just type debug ebi eventid in the smapi console

#

patch reload yourmod.id to reload your mod

mortal goblet
#

omg i always restart my game again and again

#

really useful for me

#

thanks!

golden spire
calm nebula
#

@ivory plume errors are no longer red 😦

crude plank
#

errors must be red

stark spindle
#

Is there a way to make an ItemDelivery quest for multiple people in 1 quest?

mortal goblet
#

what is "$8" ? I can't search it in wiki

stark spindle
#

its the portrait

mortal goblet
#

where is Abigail's 8th portrait?

devout otter
#

First column, fifth row.

stark spindle
#

ha took me too long to go through my mess of file organization 🙂

mortal goblet
#

SDVpufferwaaah thank

#

my file is mess too

stark spindle
raw oxide
#

hello i made a code file tried to improve it by integrating GMGC but it changed something which make it not work i don't know why but by chance i did kept a copy of a version before it but i don't know which software you use for decompiling ?

gaunt orbit
#

also, you should look into using git in future so you can roll back changes instead of having to decompile your own mod

raw oxide
#

thank you ^^

ruby rapids
#

If you add a dependency in your manifest file, does that mean you mod load after or before the dependency mod. For example, If I have a map mod that needs to load before SVE because their maps clash, can I do so by adding SVE as a dependency in my mod (as false)?

gaunt orbit
#

your mod is always loaded after dependencies listed in your manifest

#

setting a non-required dependency is how your force your mod to load after another mod

#

Loads are not dependent on mod order, though

ruby rapids
#

Really? LOL learning all of this can be a little confusing even after reading up on it.

gaunt orbit
#

it's based on priority- default setting is that if two mods try to load the same map, both will fail. if SVE has a non-default priority, you can set your priority to be higher than theirs to make your map override it

raw oxide
ruby rapids
#

Thanks! I'll try to figure this out. 😄

raw oxide
#

thnak you very much

next quarry
#

is it possible to have these Action Letter "..." be functional without anything in the building layer? so that you can walk over them?

lucid iron
#

You can add Passable

#

They do have to be on Building tho

next quarry
#

cool I will try that

ivory plume
# uncut viper ```cs if (value.ToString().Equals("None")) { ...

The multi-key-binding support will be in Generic Mod Config Menu 1.15.0. If you want to add forward compatibility now, you could do something like this:

set: (config, value) =>
{
    // GMCM didn't support multi-key-bindings before 1.15.0
    if (this.Helper.ModRegistry.Get("spacechase0.GenericModConfigMenu").Manifest.Version.IsOlderThan("1.15.0-alpha"))
    {
        if (value.ToString().Equals("None"))
        {
            this.StartGame = value;
            return;
        }
        KeybindList keybindList = this.StartGame;
        if (IsGamepadButton(value.Keybinds[0]))
        {
            keybindList.Keybinds[1] = value.Keybinds[0];
        }
        else
        {
            keybindList.Keybinds[0] = value.Keybinds[0];
        }
        this.StartGame = keybindList;
    }
    else
        this.StartGame = value;
})
next quarry
tacit sparrow
#

Any plans to add List support in GMCM?

public class MiningOreOrGem
{
    public string Name { get; set; }                 // e.g. "Diamond"
    public string Type { get; set; }                 // e.g. "Ore" or "Gem"
    public string ObjectID { get; set; }             // e.g. "(O)72"
    public int AddAmount { get; set; } = 3;          // How many extra to add
    public double Multiplier { get; set; } = 1.0;    // Bonus multiplier
    public List<string> DropsFromObjectIDs { get; set; } = new(); // Object IDs this item can drop from
}
ivory plume
# tacit sparrow Any plans to add List support in GMCM? public class MiningOreOrGem { ...

That'd be a question for kittycatcasey; I'm just contributing the multi-key-binding feature, not maintaining the mod in general. I suspect not though, it seems like a pretty rare edge case.

One option would be to have a comma-delimited text field which you just split:

get: config => string.Join(", ", config.DropsFromObjectIDs),
set: (config, value) => value.Split(',', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries).ToList()

Or use AddComplexOption to create your own UI for it (but that might be overkill).

tacit sparrow
#

I'll explore options you provided thanks

urban patrol
#

to lock an NPC behind quest completion, i would set a mail flag for has seen event and then a trigger action every day to set npc invisible if you haven’t seen that event, correct?

ivory plume
hallow prism
#

does someone has a check for if farmer is dating or engaged to a npc on hand?

urban patrol
latent mauve
#

Condition or When statement, Lumina?

hallow prism
#

when