#making-mods-general

1 messages · Page 538 of 1

analog yacht
#

Found the issue. Needed to rewrite the json

glossy jacinth
#

after you establish each character's position, you can change it with 'viewport x y true' (in your case 10 23)

fresh tree
#

Sorry, but I'm not sure if I understood correctly.

glossy jacinth
# fresh tree Sorry, but I'm not sure if I understood correctly.
Stardew Modding Wiki

Last edited by Handwrittenhello on 2026-01-09 21:39:22Warning: This tutorial is from 2023 and contains some pre-1.6, outdated information (for example, the use of numerical event IDs instead of string IDs). Please also refer to the main wiki and other resources that have been updated for 1.6 best practices.
In the SMC server, we had a team compe...

#

so maybe the issue would be that you haven’t loaded your custom house in your content.json yet

ornate trellis
#

yeah for an event the location must be loaded into Data/Events/YourMap

glossy jacinth
#

and also i think that you're missing the '{{ModId}}_' before Charlotte (or the name you give her, to avoid conflicts if another mod has a character named the same)

hallow prism
#

where does the voidwalking happen?

#

the only move command i see is on the bus stop event

merry river
#

For some reason, my tiles are not aligning with the grid which causes the map to be all kinds of skewed in-game. Does anyone why that happens and how I can fix it?

pale river
merry river
#

wait, I posted it here the other day, let me find it

#

here

pale river
merry river
blissful panther
#

(A small chance for a kind birb to drop a random seed in any unplanted hoe dirt every night... yea or nay? SDVpufferthink)

calm nebula
#

You better sprite them in and they better prefer sunflowers :P

blissful panther
#

Well, it's all CP driven currently!

{
    "Changes": [
        {
            "Action": "EditData",
            "Target": "DecidedlyHuman/PlantingByBirb/SeedData",
            "Entries": {
                // Spring
                "597": { // Blue Jazz.
                    "PlantingWeight": 2
                },
                "CarrotSeeds": { // Duh.
                    "PlantingWeight": 1
                },
                "474": { // Cauliflower.
                    "PlantingWeight": 1
                },
                "477": { // Kale.
                    "PlantingWeight": 1
                },
                // Summer
                "481": { // Blueberry.
                    "PlantingWeight": 1
                },
                "482": { // Hot pepper.
                    "PlantingWeight": 1
                },
                "453": { // Poppy.
                    "PlantingWeight": 2
                },
                "SummerSquashSeeds": { // Summer Squash.
                    "PlantingWeight": 1
                },
                // Autumn
                "490": { // Pumpkin.
                    "PlantingWeight": 1
                },
                "BroccoliSeeds": { // Broccoli.
                    "PlantingWeight": 1
                },
                "488": { // Eggplant.
                    "PlantingWeight": 1
                },
                "425": { // Fairy Rose.
                    "PlantingWeight": 2
                },
                // Winter
                "PowdermelonSeeds": { // Powdermelon.
                    "PlantingWeight": 1
                },
                "498": { // Winter seeds.
                    "PlantingWeight": 2
                }
            }
        }
    ]
}
calm nebula
#

I think it's super cute

hallow prism
#

my experience with a mod that have stuff appearing in adjacent spots (self seeding flowers), is that it's cute but basically install and forget, because in practice, hoeing dirt that will disappear is annoying and i don't usually lack seeds

blissful panther
#

It would be pretty useless for me personally, because I never leave bare dirt! That's just wasted seed space. SDVkrobusgiggle

hallow prism
#

i would prefer a thing like, plants appearing around a bird feeder, but auto sprouting (no dirt hoeing needed) if you want a similar concept but that may be requiring less player intervention

merry river
#

Would the planting birds take the remaining days of the month into consideration?

ornate trellis
#

i think its a cute idea and I guess i do belong to the type of player who doesnt count the space and just hoes away and be left with extra hoed space lol

blissful panther
lucid iron
#

I will invest in scarecrows to avoid this ANGERY

blissful panther
#

I think I would almost certainly have that be a setting, though.

merry river
#

Evil bird setting, planting cauliflowers on Spring 26

blissful panther
#

There is also a DH_BirbPlanting_ExcludeSeed mod data key you can add to hard exclude any seed. So even if someone added a seed to be birb planted, it would refuse.

#

Of course, nothing would prevent them from removing that mod data key... but at that point, there's nothing you can really do.

calm nebula
#

Eh, they're free seeds

#

I think it's cute.

blissful panther
#

I did initially think to have them drop seeds anywhere and not just existing hoed dirt, but it felt... odd, because there's a very good chance you would never notice so they'd never get watered.

ornate trellis
#

Quick question but if i wanna do a debuff action in a dialogue is this the right setup or even possible "DialogueText $action AddBuff 27 -2 $5"

merry river
#

i was just setting up debuffs for objects

ornate trellis
#

ye i been looking at the wiki but sometimes im not sure i understood right fdsgsfs

merry river
#

big big mood

ornate trellis
#

cant test ingame rn since i havent set the npc up fully for them to spawn so...i fear by the time i do i might forget to check

merry river
#

ignore the witch swamp warp, i haven't deleted it yet

merry river
#

they're not talking to me yet so i have some debugging to do first

pale river
pale river
royal stump
lucid iron
#

So i think it is actual tmx issue

royal stump
#

SVE/VMV/etc tend to use action like

...#$action AddMail Current Lumisteria.MtVapius_GiftReceivedFlag received|...
merry river
pale river
#

you could try copying and pasting

#

does anyone know of any examples that use spacecore's dungeon system like a custom mine?

ornate trellis
#

sadly no, but i hope by the time i gotta try that feature out myself there will be because it looks complicated lol

merry river
# lucid iron So i think it is actual tmx issue

so any idea what could I do about that SDVpufferthinkblob ? I don't know how to explain it, those two tiles should be flush against reach other but instead, they are off by a couple of pixels and I don't even know why

pale river
#

have you tried deleting them and placing them again?

merry river
#

those are my map properties

#

I edited an existing vanilla map, too

lucid iron
#

Wait which vanilla map

fresh tree
#

I need to fix the code; I ended up losing some things I had done.

merry river
ornate trellis
#

chu sounds like as if there could be certain cursed vanilla maps out there 🤔

merry river
#

if it's the witch hut one---

#

i didn't do anything to the map other than deleting the tiles and resizing it

lucid iron
#

Yeah i was worried it was editmap

#

But hrm can u send ur tmx over

#

Plus any custom tilesheet

merry river
#

I fixed it by pasting all of my tiles over into an entirely new map. The back tiles were still off but I deleted them and placed them again

#

still kinda weird

short temple
#

Hi, how can i add decorative Animals to a custom map? I want to add cows like the ones of the marnie's ranch to a NPC farm i did

proud wyvern
#

do you want to do this right now, or are you willing to wait for the next game patch

short temple
#

Thanks, i was looking around for that info 🙂

lucid iron
#

Right now you can use MEEP

#

And if you want to do it yourself it's just matter of tagging your animals with some mod data and making sure you remove them before saving

blissful panther
#

Right now, Custom Companions with something that just resembles a farm animal or MEEP, yeah.

I think CC is still kept working?

hallow prism
#

yes, i think it was recently updated

autumn tide
#

hello! getting this message when I use any of the SMAPI schema things, is there something I'm doing wrong?

latent mauve
#

Are you using a trusted workspace in Visual Studio Code?

autumn tide
#

i have no clue what that is SDVpufferthumbsup

latent mauve
#

(if it's in restricted mode, I might expect to see that error)

autumn tide
#

how can I set the workspace to trusted?

latent mauve
#

Can you screenshot the bottom of your Visual Studio code window? There is usually a spot along the bottom left that will say Restricted

#

If it's not a trusted workspace

autumn tide
#

okay!

#

thanks so much :)

latent mauve
#

Interesting, nothing visible there

#

Gimme a minute to load up my computer

#

I've noticed after the latest update, it always opens my windows as restricted now and I have to click the banner to make it go away

autumn tide
#

alrrr I'll try restarting it and see what happens LOL

#

..that really should've been what I do first what kind of modder am I to not do the universal fix

latent mauve
#

Mine does this:

#

can you right click on that bar and make sure workplace trust is checked so you can see the element?

autumn tide
#

okay!

latent mauve
#

should be something like that

autumn tide
#

okay this is weird

latent mauve
#

interesting

#

Schema still not working, though, right?

autumn tide
#

mhm

#

oh? there's not error but it's still not working hmm

#

..turn it off turn it on again round 2

#

...still there

latent mauve
#

If you go into settings and type trust in the search bar, you should see an option to add a trusted domain, which might help it go away

autumn tide
#

okay!

latent mauve
#

It's in JSON -> Schema Download, like this, for me:

autumn tide
#

aah!

#

yayy it works!!

#

thanks so much SDVpufferheart

violet valley
#

How would I make an event trigger if the player has reached floor 100 in the skull cave?

latent mauve
autumn tide
#

hm, do you mean upon reaching that floor or as a condition if the player reaches that floor?

#

jinx LOL

violet valley
latent mauve
#

okay, so you would need set one of your event preconditions to indicate they have reached that level, lemme see if there's a pre-existing vanilla one that you can use

#

(If not, you can make a TriggerAction to add a mailflag, and use that mailflag as the precondition)

autumn tide
#

this would work!

#

it would be level 220 iirc

violet valley
autumn tide
#

happy to help!

latent mauve
#

Hold on, for an event precondition, you have to do a little bit more than that. 😛

autumn tide
#

OH, it would be a GSQ, so more complex!

autumn tide
#

..double jinx LOL

latent mauve
#

make sure you use GameStateQuery MINE_LOWEST_LEVEL_REACHED <min> [max]

violet valley
#

thanks

latent mauve
#

There's already an in-game event/quest marker for reaching level 100 of the skull caves, IIRC, which is why I wanted to check for vanilla mailflags first. 😛

violet valley
autumn tide
#

aah smart! there's a page with all of em on the modding wiki

latent mauve
#

Yeah, you can just piggyback off that pre-existing mailflag

violet valley
#

wait so I would write it like this?
GameStateQuery MINE_LOWEST_LEVEL_REACHED 220 220

latent mauve
#

You don't need to set a max

violet valley
#

oh

#

ok

latent mauve
#

the [ ] means it's optional IIRC

violet valley
latent mauve
#

I could absolutely be wrong on that, but I would worry that setting 220 for both would stop the event from triggering if they got to floor 101 before seeing it, for example.

violet valley
#

in the event code, do I write mr qi's name as MisterQi?

autumn tide
#

if they're in your event, check data/characters for their id!

violet valley
latent mauve
#

Based on other events with Qi, in this case, it is MrQi

#

He's an odd one

latent mauve
#

Looks like there is a mailflag for if the player drank the iridum milk? qiCave

royal stump
#

for reference, yeah, the modding pages use this format for arguments
<required>
[optional] - if not included, it uses a default behavior, like max floor = infinite
[optional_1 optional_2] - an optional group, like when you need x and y together for a tile
[optional]+ - optional and you can just add any amount of them, separated by spaces

latent mauve
#

Awesome, thank you for the explanation, Esca!

latent mauve
#

This is so helpful

violet valley
autumn tide
#

yeah, that was the one I mentioned earlier haha /nm

violet valley
autumn tide
#

no worries!

#

it's really useful! i have it bookmarked bc I never stop doing dumb mod shit LMAO

latent mauve
#

I must have completely missed where you mentioned it earlier, claude, 'cause I didn't see that post.

limpid zealot
#

hello! i have a small beginner problem. im making a new fruit crop (called moonberry) using content patcher, where the item is called "moonberries" similarly to cranberries. everything works, except for the fact that all products are called "dried moonberrieses" and "moonberries wine" and i cannot for the life of me figure out how to change it. i tried looking at the wiki and searching this channel and while i found how to somewhat do it, i cant get it to work. this is my second crop ever so excuse me if its something obvious lol

here is what i have so far. the fruit id is {{ModId}}_Moonberry. if i need to send anything else please let me know

        {
            "LogName": "Fix moonberrieses",
            "Action": "EditData",
            "Target": "Strings/Objects",
            "Entries": {
                "Jelly_Flavored_{{ModId}}_Moonberry_Name": "wghg43g",
                "Wine_Flavored_{{ModId}}_Moonberry_Name": "wghg43g",
                "DriedFruit_Flavored_{{ModId}}_Moonberry_Name": "wghg43g"
            }
        }

is it because {{ModId}} is there instead of my actual mod ID? is it the underscore before moonberry?
"wghg43g" is a placeholder. if nothing works because of that then... oops

latent mauve
#

Oh, there's a thing specifically for that, IIRC!

urban patrol
limpid zealot
#

yep that is what i based it on, but it doenst seem to work with the custom fruit id

urban patrol
#

but instead of 258 make it your object id

#

darn :(

#

it might be hardcoded then

#

did you try with the O

limpid zealot
#

i tried both (O){{ModId}}_Moonberry and (O)Moonberry, so it seems like there is no luck here for me

#

i can just rename the item. no big deal just sligthly annoying

#

but wait, the dried fruit would still have the wrong name no?

lucid iron
#

it should be qualified item id

#

"Strings\\Objects:Jelly_Flavored_" + parsedItemData?.QualifiedItemId + "_Name"

latent mauve
#

Mind showing your code for the Data/Objects entry for the Moonberry just so we can make sure everything lines up?

limpid zealot
#

yep give me a second

lucid iron
#

they did codeblock

#

is your discord not displaying it

limpid zealot
#

have the seeds as well since its loaded in the same action

        {
            "LogName": "Load moonberry items",
            "Action": "EditData",
            "Target": "Data/Objects",
            "Entries": {
                "{{ModId}}_MoonberrySeeds": {
                    "Name": "{{ModId}}_MoonberrySeeds",
                    "DisplayName": "{{i18n:MoonberrySeeds_name}}",
                    "Description": "{{i18n:MoonberrySeeds_desc}}",
                    "Type": "Seeds",
                    "Category": -74,
                    "Price": 0,
                    "Texture": "assets/Moonberry/Seed",
                    "SpriteIndex": 0,
                    "ExcludeFromShippingCollection": true
                },
                "{{ModId}}_Moonberry": {
                    "Name": "{{ModId}}_Moonberry",
                    "DisplayName": "{{i18n:Moonberry_name}}",
                    "Description": "{{i18n:Moonberry_desc}}",
                    "Type": "Fruit",
                    "Category": -79,
                    "Price": 85,
                    "Edibility": 25,
                    "IsDrink": false,
                    "Texture": "assets/Moonberry/Fruit",
                    "SpriteIndex": 0,
                    "ExcludeFromShippingCollection": true,
                    "ContextTags": [ "color_sand" ] 
                }
            }
        },
autumn tide
#

-# ohhh shit didn't see the earlier ones! sorry :/

lucid iron
#

when you change stuff are you creating a new moonberry jelly

limpid zealot
#

i thought they are created automatically since i can see them in the item spawner mod. should i create my own?

latent mauve
#

Yeah, the old object won't get the new data

#

So you need to spawn in a new one when you update your mod and patch_reload or reopen the game

lucid iron
#

it may be cached to some degree, since flavored items be like that

#

if u want to be extra sure just fairy dust a preserve jar

limpid zealot
#

i tested with fairy dust on my previous fruit but not this one SDVpufferwaaah

lucid iron
#

based on decompile, Jelly_Flavored_(O){{ModId}}_Moonberry_Name is the key

limpid zealot
#

um. what lol

#

it works now??

latent mauve
#

If you were checking one that was already in your inventory, it wouldn't have changed

limpid zealot
#

i might have forgotten to reload earlier.... oops

latent mauve
#

And yes, you'll need to change the Dried version also

limpid zealot
#

might have been that

#

yep it was that. oh

#

well, thank you so much and sorry for taking your time!

latent mauve
#

We are here to help (and be helped)

limpid zealot
#

now i have to actually give them names. thank you again and have a nice rest of your day/night!

violet valley
#

Any way to make an item that opens an image sorta like a secret note, but its not a one-time use type of thing?

autumn tide
#

hmm, I think spacecore and meep has stuff like that?

violet valley
#

thanks SDVpufferthumbsup

autumn tide
#

6480 has an inspect tortilla mod that they allowed me to use as a base for my own stuffs, maybe check that out?

violet valley
#

Ok SDVpufferthumbsup

autumn tide
#

mhm!

violet valley
#

ok thanks!

blissful panther
#

Well that tortilla looks familiar! SDVkrobusgiggle

autumn tide
#

AAA

subtle palm
#

Hello, everyone! I've tried figuring it out on my own and haven't managed to get it to work as I have pretty basic level coding knowledge.

But I'm using Ash's Farmhouse Redesign and would like to have it with T's Apartment Mod. But the mods seem to conflict with each other. I was wondering if someone could help with merging/editing the mods so they work together. It would be for personal use only

opaque cobalt
#

what events do you think would make sense for formal wear? Community center re-opening, wedding, any other good ones? My mind might just be blanking

west thunder
#

Err...

#

Not many formal events I could think of beside those.

opaque cobalt
#

cool, thanks. I didn't think there was many but wanted to make sure from folks that are more familiar with the events than me

west thunder
#

Yeah, the countryside isn't particularly known for being formal. /lh

lucid iron
#

Flower dance

lucid iron
subtle palm
#

Yes, as far as I am aware, they both edit the vanilla farmhouse

lucid iron
#

What exactly do you expect from a merge

#

The actual answer to this is that you probably have to go edit the tmx yourself

subtle palm
#

Yeah, thats what I've been trying to do it and its not working out so much for me 😩

pale river
#

does any framework have a "action on entry" map property?

uncut viper
#

That's just a trigger action with a LocationChanged trigger

pale river
uncut viper
#

It would. Just set the condition to check if the player is in a location using your map

urban patrol
#

for context, they're trying to do spacecore monster spawning in a dungeon, but the map sizes are different. it's my thinking that a regular trigger action to check for one of 58 variants of mines map would result in a ton of lag, right?

uncut viper
#

If you know which variants go to which floors, then no, it's not a ton of lag. I'm not familiar with spacecore dungeons to know how much control you have over the variants though

latent mauve
uncut viper
#

Do you control where the player spawns in a dungeon? If so, you could try putting a touch action on the spawn point, but I'm not totally sure if the player being put there counts as touching it

pale river
#

you'd have to move to trigger it which is kind of strange

uncut viper
#

I mean if spacecore is teleporting you into that tile, that would ideally count as touching it

#

Which would happen as soon as spacecore set things up

#

But I've not tested that

#

All else fails I'm sure chu would be fine adding that to MMAP

west thunder
#

Say.

#

You know how the Skull Cavern uses music from the lowest layers of the mines?

#

Is there a way to replace them with unique tracks only for the cavern?

lucid iron
urban patrol
#

i'm pretty sure audio is special and can't be conditionally loaded or edited after the mod is loaded, so it would be replacing the lava levels too

uncut viper
#

You'd have to re-replace them when you exit the cavern

urban patrol
uncut viper
#

With their original files

#

It can be conditionally loaded and edited just fine, it's just that the condition is kind of a one time permanent thing once it happens

#

But another future edit can overwrite it

urban patrol
#

i see i see

uncut viper
lucid iron
#

Yeah I think my ehhh about it is mostly on how rare it is to have different map per location

pale river
#

yeahh its kind of better to have it in spacecore cus thats where the issue originated

uncut viper
west thunder
#

I was, of course, talking about NOT directly replacing the files so they'd also appear in the mines.

#

Was just curious if there were a way to only do it in the caverns.

uncut viper
#

you cannot do it only in the caverns without replacing the audio

west thunder
#

mid......

lucid iron
#

Terror

uncut viper
#

i dont think that was a very obvious point since you did say "is there a way to replace them"

#

unfortunately the way described is the only way

#

at least until some mine music framework comes along, or already exists and i dont know about it

lucid iron
#

I am thinking about doing it at least since it'd probably help with traction explosion perf issues

uncut viper
west thunder
#

Well then.

#

Next best thing would be to make it so the new tracks play alongside the Vanilla ones only in the caverns.

#

That's probably possible?

lucid iron
#

It's just question of whether it's a ActionOnEntry list or a ManualTriggerActionOnEntry

uncut viper
#

not really

#

you could do it with C#, don't think you can do that with CP

lucid iron
#

I guess the 2nd option is more flexible bolbwut

uncut viper
west thunder
#

Oh the agony.

uncut viper
#

(the second one is more flexible and what i would go with)

urban patrol
#

@pale river here

lucid iron
#

(fwiw i think boxo's issue is actually what nic had a month back so casey maybe fixed it)

uncut viper
#

no need to make it require Manual though if you didnt want it to

urban patrol
#

see the file sent below

urban patrol
valid folio
#

Hello, how are you? Could you help me get the settings we added to a mod via GMCM to recognize the translation tokens? Because it’s showing up like this and I don’t know why. A friend who checked the files told me she doesn’t know why it isn’t working, since she was able to do it for her own mod.

ornate locust
#

The i18n has to be named very specifically

ornate locust
#

You want EnableSakura not Sakura

pale river
ornate locust
#

The i18n has to be named exactly the same as the key basically

pale river
#

mr beast??

urban patrol
#

also there are more recent builds of spacecore in here from like a week ago, but idk if they're experimental or not

valid folio
ornate locust
#

Your i18n key is Config.Sakura.Description. Your key is EnableSakura. So it should be Config.EnableSakura.Description

valid folio
#

oooohhh

valid folio
little sun
#

I am not sure how I can iterate through the player inventory. I have tried printing out Game1.player.Items but it just prints StardewValley.Inventories.Inventory in the console.

I am trying to use a foreach loop but I am not sure what the class type would be?
foreach (<unsure> item in Game1.player.Items)
{ print item name }

royal stump
ornate locust
#

I have now grasped Event Limiter Exceptions

little sun
ornate locust
#

(they're easy to do, I just didn't realize they were a thing :V)

#

I had a user who couldn't meet Bill because his intro kept getting event limited out, whoops

glossy jacinth
#

i know the answer is probably no, but is there any way with CP or some framework to make items that boost the horse's speed?

#

like the same effect carrots have, but with a different item

hallow prism
#

i don't remember if there's a context tag you can use for that

royal stump
#

seems like it's specific to the ID, this is the horse C# check

if (!this.ateCarrotToday && who.Items.Count > who.CurrentToolIndex && who.Items[who.CurrentToolIndex] is Object { QualifiedItemId: "(O)Carrot" })```
#

so probably no with just CP, and I've never heard anyone mention that framework option at least

#

(looks like the permanent buff from a horse book is also ID-specific)

glossy jacinth
#

why is it that I only come up with ideas that work in C#? SDVpufferchickcry

#

but thanks anyway!

brittle pasture
#

obligatory "this is a perfect candidate for a first C# mod"

little sun
brittle pasture
#

the inventory can contain null (empty slots)

#

aka items[i] can be null and you have to check for it

#

QualifiedItemId is just a field like the others

royal stump
#

yep, something like items[i]?.QualifiedItemId should work
? will leave the text blank if the item is null, without the error caused by trying to check fields on a null item

#

the longer alternative being something like

if (items[i] is null)
  //log something about that fact
else
  //log the way you already were```
little sun
brittle pasture
little sun
#

Okay, I take a break now. Thank you Esca and Selph for the help! SDVpufferblush
I will continue to slowly chip away at the Combine Machine mod, I want to see if I can add custom machines to have the same functionality SDVpufferowo

#

brain needs to learn more about C#, feels so distant from Java SDVpufferwaaah

brittle pasture
#

you're talking about Combine Machines on Nexus? its source is available, and I looked at it; to make it work with modded machines you need to dehardcode it so it uses the 1.6 machine data instead of a static list of BCs

lucid iron
#

One Day i will Use EMC to make simple machine upgrades mod

brittle pasture
#

(I looked into it some time ago; I would send a PR but 1. it doesn't seem like the author's active since 1.6 release, and 2. I don't play with it lol)

lucid iron
#

Not today

little sun
lucid iron
#

But yeah machines changed a lot tbh i think it's more useful to understand the system from ground up and decide what you want to do

#

Don't get tied up for code written for bygone era

little sun
lucid iron
#

Don't get frighten by the harmony patched game code warning from smapi either SMCPufferjail

glossy jacinth
#

but maybe I’ll give it a shot idk

brittle pasture
#

it's probably as straightforward as a button pressed event, and in the code check that

  1. the player's active item is the required item
  2. the cursor is hovering above the horse
  3. if the horse's carrot field is not set, consume the item and set the carrot field
#

though obviously I'm familiar with C# and it's straightforward to me

glossy jacinth
#

honestly, i don't even know where to start, it'd be my first try with C# and i'm kinda lost

#

i'll see how I can figure it out

#

thanks for breaking it down like that, it'll definitely make things easier if i decide to give it a shot

subtle palm
pale river
ocean sailBOT
#

Log Info: SMAPI 4.5.1 with SDV 1.6.15 build 24356 on macOS Unix 14.6.1, with 5 C# mods and 1 content packs.

long reef
#

do I need to add a mod to cheats

gentle rose
#

what do you mean?

sacred bobcat
#

has anyone tried to make machines that can input and output Items that aren't Objects? i've been trying to subclass Object to make a class that can be used as machine with arbitrary Items, but it's not going very well because some of the relevant methods aren't virtual and some of the logic seems to be in external classes that look at public fields on the machine and expect them to be Objects

lucid iron
#

it's annoying but there is working example in extra machine configs

#

the solution there is a intermediate holder object

sacred bobcat
#

ah, thankyou!

old edge
#

Hello I’m working on a clock with moving hands that the farmer can set for alarm similar to the clock setup in Pokémon.

#

I was thinking of making watch mod

shrewd flint
#

hi hello, im having an error and i think it's bc of my formatting (i just kinda copied and pasted before and tried recreating it for new entries from other forms).

urban patrol
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.

shrewd flint
queen kite
#

sorry im new to mods, would adding this affect the playstyle of my game? i only want to have cosmetic changes. not gameplay related

urban patrol
#

also, i see you're replacing shane with your NPC. are you interested in instead adding a custom NPC? it's almost the same amount of work, but easier in some places because you don't have to untangle them from stuff like vanilla events

shrewd flint
#

yeah, i just thought it'd be funny

#

im editing the json right now though in the meantime

#

i'm getting the same error for the same line but i closed the patch and the bracket inside

brave fable
#

looks to me like you } closed the Entries block in the previous action, but didn't also close the action itself

shrewd flint
#

oh like that line that connects them?

brave fable
#

ideally it'd look like ```json
// ...
"HitBySlingshot": "OWWWWWW FUUUUUUUCCCKKKKKK!!!!!!!!!!$10",
}
},
{
"Action": "EditData",
// ...

shrewd flint
#

yay! Thank you, I guess I did close everything else properly but didn't format the end of the dialogue changes when I added new things for mail and such

buoyant jackal
#

Looking for advice
How difficult is it to add a sound file that plays when text loads? I wanna add text sounds to a mod and wanted to know how much trouble it'll be

inner harbor
#

In line with my discussion the other day re: esst scarp apparently overheating someone's CPU... are there any ways i can optimize it?

west thunder
#

Where could one find the font used specifically for characters' names under their portraits when they speak?

#

Spriter's Resource ain't doing too good and the game files themselves don't tell a lot either.

woeful lintel
#

Hey, guess who has to rewrite the pack loading process again to be able to implement retro-compatibility?

woeful lintel
buoyant jackal
#

I figured I was probably using C# (my only coding experience is in C#)

devout otter
#

Or for non-dialogue messages?

buoyant jackal
fossil osprey
#

Ichor hiding bangers in github

#

That'll make your endeavour way easier, with this framework x)

buoyant jackal
#

Oh hey Mr. Duck XD

fossil osprey
#

Hi! :3

unborn shadow
#

Hi everyone, I'm working on a custom event where my NPC approaches Willy while he is fishing. I want Willy to finish his fishing animation (16×64) and then return to his normal standing/talking sprite (16×32) to continue the conversation. I’ve referenced the vanilla JuicyBugsWanted event, but that cutscene ends without showing the transition back to idle. I tried using the stopAnimation and ShowFrame command to handle the animation, but after the animation stops, I end up with two Willys on screen. Is there a way to transition him from the fishing frame back to his default sprite so he can face my NPC and continue the dialogue?

karmic gust
#

Can you use a dynamic token inside of an i18n key?

Like {{i18n:{{DynamicToken}}.1}}

lucid iron
#

Yes

karmic gust
#

Awesome! Thank you!

pale river
void aspen
#

Is there any kind of basic info one needs to know before making a custom farm?
I really wish to make one with vanilla sprites but I basically have zero knowledge on how to make it work

#

I tried map editor mod and it was interesting but there's surely a more convinient tool which everyone use

unborn shadow
gaunt orbit
gaunt orbit
#

!startmodding if you're new to making mods, you should also read this

ocean sailBOT
#

Making mods can be broadly divided into two categories:

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

gaunt orbit
#

what you will want to make is a content patcher mod

void aspen
#

Thank you ❤️

gaunt orbit
#

I realize it's a lot of information all at once, but if you take your time with it, it's not too hard to understand

void aspen
#

I'm sure its not that hard to make content packs, but later i'd love to implement some coding too

gaunt orbit
#

There's a lot you can do with just framework mods, but if you do end up needing c# for a feature, there's a guide for that on the wiki as well.

C# and programming in general has more of a learning curve than content packs. All of us blacksmiths in the channel would be happy to help you learn it if need be, just be aware that it is an entirely new skill you'd be learning.

latent mauve
#

Content packs still use some code: it's JSON, while SMAPI mods use C#.

gaunt orbit
#

content packs do require writing JSON, but JSON doesn't require general programming knowledge to write, so it's a bit more approachable

pale river
unborn shadow
pale river
merry river
#

is there a way to do a when check for whether a specific trigger action has been run? it doesn't seem like there's mail flags or CT for that

merry river
ornate trellis
#

why not just warp the sprite offscreen and warp the actual willy where it was

#

theres also that command to basically fuse the temp sprite to the npc or w/e isnt there

merry river
#

i don't think this is what i need? not sure
i basically need to patch in some warp tiles after running a map update trigger action with mmap

#

otherwise the warp tiles will exist even if theres no map patch lmao

pale river
merry river
#

wait perhaps i could just add a traction that adds a CT and gate the warp tiles behind that

#

wait no if the CT runs out, my warp tiles will disappear lmao

urban patrol
#

or you could set a mail flag as one of the traction actions

merry river
#

yeah i know of that one, i was wondering if i could use that in a when check

#

but it's a condition so i was trying to find the right way to set it up

lucid iron
#

what is a map update trigger action

urban patrol
#

GSQs resolve to bools so i think you can just shove it in a token? let me check

#

or maybe i have it the wrong way around

merry river
#

i forget whatever i'm reading after 2 seconds

lucid iron
#

they are persistent until you remove them

merry river
#

yes but i need warp tiles with them

#

but they are not supposed to exist until i run the override traction

#

otherwise you'd just step onto the tile and warp, right?

lucid iron
#

can u just put a touchaction warp NotteThink

#

i am bit confused about order of operations tbh

merry river
#

wait let me just grab the code

lucid iron
#

touchaction warps accept a mailflag as one of it's args

#

which let you control if the warp is active

merry river
#
            "Action": "EditData",
            "Target": "Data/TriggerActions",
            "Entries": {
                "{{ModId}}_MMAPWoodsWarp": {
                    "Id": "{{ModId}}_MMAPWoodsWarp",
                    "Trigger": "DayStarted",
                    "Condition": "PLAYER_VISITED_LOCATION Any Woods, WEATHER Target GreenRain", //super creative condition until i figure out something better
                    "Actions": [
                        "mushymato.MMAP_UpdateMapOverride Woods + {{ModID}}_WoodsWarp"
                    ]
                }
            }
        }```
#
            
    "LogName": "Add magic warp tiles from Woods to mushroom meadow",
    "Action": "EditMap",
      "When": { "HasMod:| contains=FlashShifter.StardewValleyExpandedCP": false },
    "Target": "Maps/Woods", 
    "MapTiles": [  
        {  
        "Position": { "X": 48, "Y": 26 }, 
        "Layer": "Back", 
        "SetProperties": { 
            "TouchAction": "MagicWarp {{ModID}}_MushroomMeadow  39 21" } }, 
        { 
        "Position": { "X": 48, "Y": 27 },
        "Layer": "Back", 
        "SetProperties": { 
            "TouchAction": "MagicWarp {{ModID}}_MushroomMeadow  39 21" } } 
        ]

        },
        ```
lucid iron
#

hm i guess im just confused about why this even needs mmap map override

#

it seems like the kind of thing a normal editmap would be sufficient for

merry river
#

i'm already using mmap anyway, i can be extra like that

lucid iron
#

the mmap feature is for actively changing the map in middle of day bolbsun

#

but putting that aside u should just put the TouchAction in the map override tmx

#

or do EditMap targeting the loaded map asset

uncut viper
#

being extra can be an actively bad thing if not required, in terms of functionality and/or optimization

lucid iron
#

instead of targeting Maps/Woods

#

still i dont see any benefit of u using the funky map override thing here if its just gonna be a day started deal

merry river
#

button don't bonk me SDVpuffersob

uncut viper
#

what would I be bonking you for

merry river
#

okay no let me be serious now
i somehow assumed what i wanted to achieve needed a trigger action

lucid iron
#

well if u wanted something like

#

shroom appear when player uses item

#

then yea thats the kind of thing the mmap map override is for SDVpufferthumbsup

#

the advice is the same though, put any map things on the map override's map asset

#

don't split them into map override and also regular editmap targetting the base map, that kinda defeat purpose

#

the main limitation is no map property only tile property PecoWant

merry river
#

yeah makes sense
I'll see if doing a regular editmap is enough for what i wanna do, otherwise i'll be fancy and do it with the trigger action thing

#

also i get the functionality and optimization argument, i was just being silly

#

thank you, chu SDVpuffersquee

uncut viper
#

i mean it not as a personal attack or anything I just like a nicely optimized json. please insert here that one emote chu likes to use of that character tucked into bed

#

if you don't know the one then feel free to make one up in your head to get the point of lightheartedness across 😌

lucid iron
uncut viper
#

Yes those
Thank you chu

blissful panther
#

I only write my CP files in manually minified JSON.

ornate locust
#

I usually do a :V, don't need any particular emoji set for The Duck Face

uncut viper
#

It was the unbothered sleeping I wanted to get across more than the face

#

The "it's not a big deal, I'm sleeping" vibe

merry river
#

noo i wasn't feeling attacked! all cool, i'm also character tucked into bed here

violet valley
#

Anyone know how to make a tillable spot give you an item with Content Patcher?

spice inlet
#

you can use FTMs buried spots or UBs digspots for that

brittle pasture
#

(adding new drops to dig spots is technically vanilla, but FTM/UB/SpaceCore/etc. allows adding new dig spots entirely instead of having your drops compete with other drops in vanilla dig spots)

#

(all depends on your needs)

violet valley
#

yeah

#

Wait how would I do it in vanilla?

high acorn
#

Does anyone have a favorite mod manager? Not loving the whole pulling zip files from Nexus mods and hand installing them.

spice inlet
#

I think he means the artifact dig spots with the little worms

violet valley
#

No, like for example from secret notes where it tells you to dig at a certain spot

violet valley
spice inlet
#

yes for those you need eg. ftm or ub

violet valley
#

yeah I think I'm gonna use ub

#

thanks guys

high acorn
#

Has anyone used that with a steamdeck for example?

lucid iron
#

This channel is for making mods

#

I don't use a mod manager bc it makes build process complicated

spice inlet
#

stardew is the only game I dont use a mod manager for tbh

west thunder
#

I'm going insane. I'd like to come up with at least two more brand new monster concepts before I begin spriting. Problem is almost all my ideas go to the volcano due to my bias. Yikes.

#

I've got a cool trilobite enemy that uses the spider as a base on my mind, but if I send it to the volcano, I'd have a whopping four monsters for the damn thing.

#

Of course, I could distribute them to different floors, especially when there's a pre-set miniscule amount, but I'd like to hear your feedback on the matter.

#

If you need more context regarding any of the other monsters, go right ahead and ask.

plush lantern
#

good afternoon all aSDVbutterfly does anyone know if it’s possible to ‘split screen’/show two characters in two different locations at once on screen during an event to simulate a phone call?

fossil osprey
#

You'll need to make a separate map that simulate that

swift falcon
#

oh my that would be awesome

#

though

#

havent seen that been done tbh

fossil osprey
#

So have one unique map with half of it being one location, the other half another one, with a border in-between to simulate it being two different spaces, and then your characters would just be inside their respective space

plush lantern
#

oh sweet thank you! I guess my mod-making work time later will include looking up mapmaking LOL

swift falcon
#

Will be super useful anyways!!!

urban patrol
#

[[Modding:Maps]] start here

fossil osprey
# swift falcon havent seen that been done tbh

Yeah usually the player sees the event because the farmer can see the scene, and a split-screen phone call would imply the farmer is able to see both sides

There are some "farmer-less" events, but they are more rare

lucid iron
#

In vanilla phonecall events you don't usually hear the phonecall right

#

Like leah calling her ex

swift falcon
#

i mean yeah but its also just a usual form of storytelling and i would love for it to be tried

plush lantern
autumn tide
#

helloooo is there a way to add a universal gift dialog response for NPCs with a certain gift taste?

lucid iron
#

does accept item keys not do what you want

hallow igloo
#

Help, some people are saying my mod's not working for them and when looking at their logs they contain a ERROR game An error occurred in the base update loop: System.Collections.Generic.KeyNotFoundException: Required location 'Polydot.PolyCarts_Expa' not found. but I don't get why it wouldn't exist, as it DOES exist when I look at the patchsummary

{
    "Action": "Load",
    "LogName": "Location Load Expa",
    "Target": "Maps/Polydot.PolyCarts_Expa",
    "FromFile": "assets/Expa/Expa.tmx"
},
{
    "Action": "EditData",
    "LogName": "Location EditData Expa",
    "Target": "Data/Locations",
    "Entries": {
        "Polydot.PolyCarts_Expa": {
            "DisplayName": "Expa",
            "DefaultArrivalTile": {
                "X": 19,
                "Y": 19
            },
            "CreateOnLoad": {
                "MapPath": "Maps/Polydot.PolyCarts_Expa"
            },
            "Music": [
                {
                    "Track": "woodsTheme"
                }
            ]
        }
    }
},```
autumn tide
#

OH, I mean for like every npc

lucid iron
#

nop theres nothing for that

autumn tide
#

..it's for a joke mod I don't wanna put too much energy into this-

#

aww okay

#

1.6.16 request time!

lucid iron
hallow igloo
ocean sailBOT
#

Log Info: SMAPI 4.5.1 with SDV 1.6.15 build 24356 on Windows 11 (10.0.22631.0), with 56 C# mods and 227 content packs.

hallow igloo
ocean sailBOT
#

Log Info: SMAPI 4.4.0 with SDV 1.6.15 build 24356 on Windows 10 (10.0.19045.0), with 34 C# mods and 46 content packs.

lucid iron
#

this is a multiplayer game, does everyone have matching mods?

hallow igloo
#

lol, no there's 70 mismatched mods in the log...

lucid iron
#

that's probably the problem tbh blobcatgooglyblep

#

they do appear to be not the main player as well

hallow igloo
#

the other one doesn't have that though

#

yeah, and while the host did have the same isssue it resolved itself for him

lucid iron
#

in that first log, Daily Screenshot is the one triggering access of these locations and subsequently dying

regal leaf
#

I'm currently listing all chocolate and garlic items to set them as hated gifts for a dog NPC... Why must Wildflour’s have so many chocolate based items!! SDVpufferwaaah

lucid iron
#

it might be doing things too early, or in a way that doesn't work very well in mp

lucid iron
urban patrol
hallow igloo
#

while genuinely disgusting, someone mentioned they fixed it buy shoving my code into an AI ||end me|| and it produced something that apparently works but means nothing to me?

{
    "Action": "EditData",
    "Target": "Data/TriggeredActions",
    "Entries": {
        "{{ModId}}_ForceCreateExpa": {
            "Id": "{{ModId}}_ForceCreateExpa",
            "Trigger": "DayStarted",  // Or SaveLoaded
            "Condition": "!LOCATION_NAME_HERE Polydot.PolyCarts_Expa",  // Only run if location doesn't exist
            "Actions": [
                "LoadLocation Polydot.PolyCarts_Expa"
            ]
        }
    }
}```
lucid iron
#

LoadLocation isn't a trigger action that exists afaik

#

barring rando ass mods adding something

uncut viper
#

None of that would work

regal leaf
uncut viper
#

The only correct thing there is "EditData" and "DayStarted"

hallow igloo
#

yeah okay that's kinda what I thought, as literally nothing in this made sense to me lol

uncut viper
#

From a glance at Daily Screenshot's code, that specific error might be due to farmhand currentLocation null stuff

lucid iron
#

but yea i dont think there is anything for you to do they are the ones who have to make sure their location adding mods match up

urban patrol
hallow igloo
uncut viper
#

Personally, I wouldn't recommend worrying about any issues until they have matching mods.

regal leaf
lucid iron
#

if u really want to dive deep into this, you will have to get their save file

#

i think this is more effort than worth

hallow igloo
uncut viper
hallow igloo
#

I changed
"MapPath": "Maps\\Polydot.PolyCarts_Expa"
to
"MapPath": "Maps/Polydot.PolyCarts_Expa"
though

regal leaf
hallow igloo
#

just cause I didn't quite get that either, does that work or does that break something?

lucid iron
#

smapi normalizes \\ into / so there is no difference

lucid iron
hallow igloo
#

oh, the one WARN it does show is apparently also related to mismatched mods

#

why do people not read SDVpufferwaaah

regal leaf
lucid iron
#

no i think it's reasonable since context tag improves compat for all future situations

#

maybe someone's npc loves choco

lucid iron
#

that's when the game crashed while drawing a menu of some kind

tawdry hazel
#

hi guys can anyone tell me where the beginner modders are gathering? I trying to make a dumb window and I'm afraid the wiki isn't gonna cut it so I want to see what other ppl are doing and try to identify a pattern

lucid iron
#

it tries to fix by yeeting the menu

regal leaf
lucid iron
tawdry hazel
#

oh man

#

ok uh

brave fable
#

what did you have for breakfast chu

lucid iron
#

water

tawdry hazel
#

so in order to make a standalone window, that won't replace any other window in game, do i need to have a dependency on custom furniture?

#

like that mod custom furniture? or is there anything new? maybe i'm outdated

hallow igloo
lucid iron
#

ah you only need content patcher to add furniture now AquaThumbsup

uncut viper
lucid iron
hallow igloo
#

okay well I will leave it at a lie in that case and report back when they report back lmao

lucid iron
#

window furniture have some specialness, you can only make them 1 wide, and you need to include the night sprite right after the day sprite

#

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

lucid iron
#

take a look at how vanilla windows are arranged and do it same way

tawdry hazel
#

apparently all i managed was to break one of the windows

lucid iron
#

if u want to add new, use a unique id

#

like {{ModId}}_window1 or smth

jaunty shuttle
hallow igloo
#

oh omfg, I'd been wracking my brain over an issue reported by a bunch of people now for so long, and it took a good friend to just DM me with the issue to figure out what it was.
After completing the Frontier Farm minecart quest, it takes like a week before they actually start working because of a conversation topic or smth

#

so I just needed to add one tiny when condition, fixed

tawdry hazel
#

maybe I'm being too ambitious because I'm trying to make this window work so I can use it with dynamic windows, so I made a static and an animated one

lucid iron
#

hm idk off hand if window also had to be exactly 2 height bolbthinking

tawdry hazel
#

I've spent more time reading other people's mods than playing I need to take a break probably

brave fable
#

windows have to be 2 high yeah, you need Furniture Framework for larger windows

#

even if they weren't misaligned, the 1x2 light glow will always appear in the topleft

tawdry hazel
lucid iron
#

does dynamic window do anything about it

tawdry hazel
lucid iron
tawdry hazel
#

should I just remove it?

brave fable
#

Custom Furniture is an outdated framework from way back when you couldn't easily make custom anything. Furniture Framework is a modern framework that takes the current furniture data models and extends them for extra/flexible functionality

tawdry hazel
uncut viper
#

current furniture data models
aren't they still strings for now

lucid iron
#

yea

brave fable
#

you right.

#

i should know after making about 20 drawers

lucid iron
#

hm so u can make a bigger than 1 2 window but if the bounds r 1 3 then u cant put them on walls MikuBear

tawdry hazel
#

;-;

lucid iron
#

if u make the bounds 1 2 then u get this lol

jaunty shuttle
#

RIP lol

tawdry hazel
#

so do i have to use a negative number?

jaunty shuttle
#

Can you do it with FF?

lucid iron
#

furniture hardcoding goes brrr

tawdry hazel
#

man ok I have to work on this

lucid iron
#

well probably, but i don't know if you can use FF window with dynamic window

lucid iron
tawdry hazel
#

no I said it wrong wait

lucid iron
#

man why is dynamic windows content pack for (grumbling)

brave fable
lucid iron
#

the screenshot from dynamic window indicates that it just supports bigger windows though

brave fable
#

altho the window looks fine here. not sure if i actually fixed it in data or made some c# garbage to realign it manually

tawdry hazel
#

well I was think about making a single 1 tile window

#

And then make it so I can just use a lot of them on the wall

#

ok yeah I need to go back to the drawing board

lucid iron
#

well u are not allowed to put more than 1 furniture on 1 1x3 slice of wall yggy

brave fable
#

left-right windows does sound smart tho

jaunty shuttle
#

You could use like window modules yeah, like part 1 and part 2 make a complete window together

#

But it’d still be limited to 2 tiles tall

lucid iron
#

the docs r pretty sparse tbh, so im not sure what the correct way to do bigger window is NotteThink

tawdry hazel
#

wait idk if I'm saying it correctly. From what I gathered, the vanilla windows occupy a the wall from a certain height, which means I can't make them go all the way floor to ceiling

lucid iron
#

im referring to the fact that dynamic windows showcase bigger windows on the mod page

tawdry hazel
#

yeah they're all to tiles tall

tawdry hazel
lucid iron
#

well it's their mod in C# and presumably dehardcoded stuff bolbsun

tawdry hazel
jaunty shuttle
#

Mod that makes window wallpapers when? /j

tawdry hazel
#

okay see I'm being too ambitious

lucid iron
#

eh it's just not knowing about various vanilla hardcoding bits Dokkan

tawdry hazel
#

Can't even do a full floor to ceiling working window and already want to make interactable animated ones

hallow igloo
#

what the actual fuck
my tiny little grass resprite is the 22nd most downloaded SDV mod on CurseForge???????

lucid iron
#

if u want to just have a big panorama bg and don't care about placing the windows

iron ridge
#

yeah curseforge isnt that popular

lucid iron
#

i'd just make map edit Bolb

hallow igloo
#

it has 1.5K downloads on Nexus, it has 236.7K on CF

tawdry hazel
#

I dreamed abt it alr

#

It's dumb

jaunty shuttle
#

You got this

tawdry hazel
#

Thanks

#

I'll come back in a few years

hallow igloo
#

that's as much as cape stardew on nexus

#

I do not understand

tawdry hazel
#

lmao

hallow igloo
#

what the hell hahahahhahahahahhahahaha

lucid iron
tawdry hazel
lucid iron
#

!anyonecancook

ocean sailBOT
#
jaunty shuttle
#

It’s a difficult beginner project but I think you can 100% do it if you really want to and put the work into it

tawdry hazel
#

yeah, they just have the example pack

lucid iron
#

but yea it really isn't about possible or impossible here more like "can do with just content patcher" or "need to learn C#"

#

in this case im pretty sure they did the C# needed already

tawdry hazel
lucid iron
#

but i am obviously not the author and the docs on how to is unclear, hence advice is go ask the creator Dokkan

tawdry hazel
#

on it!

#

Okay guys, thank you once again and sorry for overtaking the conversation I've been wracking my brain because I rly liked the idea of little windows that open and all

#

it was that freaking puddle and the butterfly gifs

jaunty shuttle
#

It was quite a fun conversation

brave fable
#

this channel was made for struggle tangents 🙂‍↕️

tawdry hazel
#

kekeke hopefully I'll be back with a solution to my own problem and if I ever post smth on nexus I'll dedicate it to this server

jaunty shuttle
#

Everyone here’s super friendly and helpful, even i’ve been bullied, thrown, tempted into working on one of my 3 dream mod ideas

tawdry hazel
#

I'm 65% sure someone already figured this out and I don't want to reinvent the wheel, I usually try to keep just the necessary mods for my game to run the way I want to a minimum... I only have like 900 mods according to smapi

jaunty shuttle
tawdry hazel
#

Thanks once again

#

oh great news it took me five minutes to realize the author had already uploaded another version of the template and the one I had was old because I might've been trying to to this on and off for a month or more (now onto my next mod idea)

#

so it's probably just copy and pasting stuff now

#

great

#

bye

#

lmao

buoyant jackal
#

How difficult would it be to change the UI?

urban patrol
#

if you just mean visual changes like "i want to make the cursor a cat and i want the loading screen to be cats", then it's doable with content patcher using EditImage. if you mean "i want to completely redo the menus" then pretty difficult and will definitely require C#

buoyant jackal
#

Just visual change, so that's good to hear!

urban patrol
buoyant jackal
#

Ooooh that's so cute

#

I decided I wanted to make the UI look like Animal Crossing for my Animal Crossing mod lol

urban patrol
#

cute!

devout otter
#

I'm in need for a logic and formula check. "When": {"Query: ({{Year}} - 1) % 4 = 0": true} Would this theoretically work for "patch only on Year 1 and every 4 years after?"

tiny zealot
#

i think so, but you should also be able to do {{Year}} % 4 = 1

devout otter
#

Oh dang you're right. 😅 Thank you!

half tangle
#

For anyone with a mod that uses StardewUI, have you encountered gamepad users who were unable to navigate parts of your menu? I don't have a controller to test the same conditions, but I can fake some version of it by forcing the game to treat the keyboard as a gamepad. By doing so I can't replicate the reported issue - I tested this a lot during development, so I would've caught it then and this is the first such complaint since release 8 months ago. I'm asking in case there's some obvious things I can try changing to try to get it to work for them. Or if there's some other way for me to test gamepad compatibility, that might let me replicate the issue myself. For reference, the latest comment on my mod describes specifics: https://www.nexusmods.com/stardewvalley/mods/28256?tab=posts

lucid iron
#

sometimes i wonder if it's platform specific even yggy

half tangle
#

useful to know, at least. Maybe some check that could use some epsilon of added distance to extend a search for somewhere for the cursor to go to, but not much I can do about that

old kite
#

Hello! I havent ever gotten super deep into this game and im in the middle of my second playthrough, im at Spring Year 2 rn and i was wondering from you guys if it would be a bad idea to add stardew valley expanded after already playing for an ingame year, i really dont wanna reset the work ive already done but i am curious about the mod.

half tangle
old kite
#

Okey

woeful lintel
#

@tawdry hazel I saw the discussion about your window ideas, and I'm just going to advertise FF a bit: with it, you can make a window of visually any size (I think the bounding box height is still limited by the wall), positioned like you want on the wall. You can customize the light glow, and use the on/off state of the Furniture to add interactibility (not sure if that would be enough for what you want). There's also a feature to change the sprite depending on day/night (also affected by weather), like the vanilla windows. With the CP compatibility, you can change the sprites depending on season and weather pretty easily.
Good luck making the window of your dreams, with or without FF!

#

@jaunty shuttle you might also be interested by this

#

Oh and I asked the author of Dynamic Window if I could see their code to maybe make FF compatible with it in the future because it seems to have pretty cool features (might not be possible, but worth a try)

ancient onyx
#

Hello! I'm newer to mod creation but I've been emblazoned after making my first asset replacement mod in content patcher. I got an idea from the github board for a glittering water retexture and it seems like a fun idea. I understand mostly how to create/insert assets, but I would ideally like to make it compatible with dynamic reflections and was wondering if anybody had advice on how to approach that (or to know if it's something I even need to be worried about).

devout otter
#

Hi! If it's just retexture, then Dynamic Reflection should already be compatible with it.

red egret
#

Would it be possible to change the nasty line spouses say about a messy house at random? Just overwrite it to something normal?

inner harbor
#

you can change it, yeah.

#

either by overwriting the strings or in their dialogue

#

also they don't say it at random

red egret
#

Oooo

hard fern
#

they say it if your house is "messy" (furniture blocking their path and such)

red egret
#

Yeah even when it isnt

woeful lintel
jaunty shuttle
iron ridge
#

@ivory plume considering making a PR for smapi to support forgejo releases on arbitrary instances, is that something that'd be of appeal?

quasi dew
#

TIL you don't need to "load" overlays.
the more you know. 🙃

ivory plume
brittle pasture
gaunt orbit
#

I have a horrible suspicion that furniture may in fact be disk bottlenecked

#

since the texture sheets seem to be loaded when the furniture is instanced

iron ridge
ivory plume
# iron ridge yep, for mod updates

I'm hesitant to support that because single-mod update checks are very inefficient and expensive for the update-check server (compared to CurseForge/ModDrop/Nexus, where SMAPI can pre-fetch every mod version in bulk). We have it for GitHub mainly because it predates bulk update checks, but at least we can assume that the GitHub API will usually have good uptime and performance. Arbitrary servers don't even have that, so it potentially increases performance issues with update checks.

proud wyvern
#

local update checks when

iron ridge
half tangle
#

I'm editing a json and it's been ages... any reason why VSC is telling me
Unable to load schema from 'https://smapi.io/schemas/i18n.json': Location https://smapi.io/schemas/i18n.json is untrusted.json(65538)

#

Is this something I can fix or...

iron ridge
#

did you open your workspace in restricted mode?

half tangle
#

I've changed nothing, so I imagine not

#

Other than the odd VSC update over the months since I've been in this code

#

hm, I see VSC has a "trusted domains" setting which means I can probably add smapi.io to that

#

Yeah, that handled it... not sure when that trusted domains setting got added/checked

surreal wagon
#

Hello everyone!

I’d like to introduce my new mod: PerPlayerFarm.

It allows each invited player to have their own individual farm instance, providing a more personalized multiplayer experience.

You can find it here:
https://www.nexusmods.com/stardewvalley/mods/38441

Feedback and suggestions are welcome!

calm nebula
void aspen
#

it was super confusing but I think I got it

brave fable
#

it's important to just mess around in tiled and draw stupid things before you get set on making a proper map SDVpufferthumbsup

void aspen
#

it is pretty interesting

#

only thing I wonder is how I copy properties like collision or water tile being fishable

#

I suppose it is something with layers

brave fable
#

all tiles have properties, either explicitly from 🟪 tile object layers, or implicitly from the properties as defined in the tileset

#

you can add properties to any arbitrary tile explicitly by creating tile objects, or to all instances of a tile by editing the properties in the tileset for that tile

#

if you want to copy all tileset tile properties from a map, including animations, you should generally use the 'export tileset' (from vanilla map) and 'embed tileset' (in your custom map) buttons in the tileset viewer

#

or 'replace tileset' (in your custom map) button if the tileset already exists in your map, but without the properties you need

gaunt orbit
#

It's mentioned on the map page, but there's two ways to do it-

  • you can apply it to the tilesheet directly, and then all copies of a placed tile will have that property
  • you can use TileData objects to apply properties to single specific tiles
brave fable
#

it's usually sufficient to just start working from a copy of a vanilla map file that already has all the tilesets you need with all the appropriate properties, but obviously if you need more tilesets then you'll need to export/embed/replace

#

you can choose not to embed the tileset and simply use the TSX file generated on export, but this has some niche issues that can brick your map

#

i however stand with TSX files and dedicate my life to understanding their bullshit

uncut viper
#

sounds like you should be PRing Tiled to fix these tsx issues

brave fable
#

i will do no such thing

uncut viper
#

i did say should, not would, after all

brave fable
#

i should do no such thing 🤝

#

i should also mention that one common 'gotcha' in tiled is that tilesets are not equal or the same just because they share the same image. for example, the outdoors tileset in the Forest map is different to the same in the Mountain, and both have different tile properties and animations depending on which tiles are being used in the map. if you sample a tile with the Stamp tool in the Mountain and paste it in the Forest map, it'll copy the entire Mountain outdoors tileset in your map as a duplicate

#

so it's important either to avoid copying tiles between maps, or know how to best use the export/embed/replace tileset features to combine the duplicates when they come up

void aspen
#

something to really think about before completely understanding

brave fable
#

on the other hand, the 🟪 tile object layer items can safely be copied between maps if you want to quickly copy some explicit/arbitrary tile properties from one map to another, since they don't actually use any tileset

void aspen
#

Ill reread everything tomorrow with a fresh head

#

this is plenty of stuff to test before realising that they really do

#

thank you for the details 🙏

brave fable
#

no worries, ask here if you have any questions SDVpufferthumbsup maps are fun, just a few pitfalls to watch out for

summer spoke
#

Okay, say, for example I'm not naming any names, someone is so bad at technology that they had to reset their computer, again, and, again not naming any names, accidentally lost months worth of progress. Where do I start again?

#

Or rather, that person start again?

#

Yeah, no that person is totally me

hallow prism
#

with something small in scope so they can feel motivation, then building from there

#

having some backup of sort to have less anxiety about losing stuff again

summer spoke
#

yeah, at this point, having a backup is probably a good thing...

#

I'll start small then, thank you

dreamy cedar
#

Can I get a quick pointer/vocabulary-word for this? I'm wanting to create something very much like the Traveling cart - that is, a map feature that may or may not be there, has a minimally-animated shopkeeper, and can be clicked on to do shopping. And this is in a C# mod. Any good canonical examples of that kind of thing?

uncut viper
summer spoke
#

I'll definietly look into it as soon as I stop downloading everything, thank you. And who knows, maybe 5th times the charm

opal glen
#

So I've got a question - I'm trying to add in a few colorful eggs, and I want them to be worth more money leading up to the egg festival. Is the best way to do this with dynamic tokens, which I then reference in the price field? It just feels a little clunky. This is what I've got

    {
        "Name": "IndianRunnerEggPrice",
        "Value": 50 //PLACEHOLDER VALUE
    },
    {
        "Name": "IndianRunnerEggPrice",
        "Value": "Query: {{IndianRunnerEggPrice}} * 1.5",
        "When": {
            "Season": "Spring",
            "Day": "{{Range: 7, 13}}"
        }
    },
    {
        "Name": "BlueEggPrice",
        "Value": 50 //PLACEHOLDER VALUE
    },
    {
        "Name": "BlueEggPrice",
        "Value": "Query: {{BlueEggPrice}} * 1.5",
        "When": {
            "Season": "Spring",
            "Day": "{{Range: 7, 13}}"
        } ```
brittle pasture
#

the problem with changing price in data is that existing items don't have their prices updated

opal glen
#

that's fine, I'm not trying to change prices for existing items

brittle pasture
#

the other problem is that what if your new eggs stack into the old ones

#

anyway to answer your question I don't think CP supports self referential tokens like that (EDIT: no it does)

#

it would work if you pull the base price into another token though

#

or just put the base value into it

uncut viper
#

A dynamic token can use itself in its value

lucid mulch
#

dynamic tokens can use itself yes

calm nebula
#

No that works fine

#

Might need to round it though

brittle pasture
#

three people who know better than me have spoken SDVpufferrad

#

also yeah round it

calm nebula
#

Who knows, I'm very dumb

brittle pasture
#

CP will complain if you pass a float into the int price field

uncut viper
#

The main caveat is that it will use the value of itself at that point in the list, ofc, and not a further down value

#

Even if the further down value is also valid

lucid mulch
#

yeah the mental model is that they "run" top down

opal glen
#

that's what I thought! I've been getting into the documentation and I'm starting to feel a little less lost on the pages about tokens and config files haha

lucid mulch
#

I can't actually remember if cases like this could get optimised by buttons work or not.

it is technically an immutable entry that then gets consumed by a deterministic second entry.

uncut viper
#

My what

opal glen
#

the other question is, could I add a When condition and have it take the object ID into account? Becuase if that would work, I could just have one token ColorfulEggPrice, assign it a value based on which of the 3 eggs it was, then tell it to multiply by 1.5 during the week before the egg festival

lucid mulch
#

was it button or chu that I nerd sniped, I can't remember

calm nebula
#

Chue i think

uncut viper
#

Sounds like a chu thing because I have no idea

lucid mulch
#

names not aligning to github hurts

uncut viper
#

My github username aligns!!

#

Can't say the same for chu though. But chu is mushymato

lucid mulch
#

was chu I nerdsniped then

calm nebula
#

Where the fuck can I find dinner

brittle pasture
#

(behind foreach, content modders perhaps yearns for "get existing value of field as a token" the most)

calm nebula
#

Is Selph matchy matchy on github

brittle pasture
#

no, I use my government name

uncut viper
#

Selph is zombifier

calm nebula
#

On github too?

#

Smh.

#

What is with u guys not matching matching

brittle pasture
#

and my steam name also differs lol

lucid mulch
calm nebula
#

Well my steam name differs but also I dont use my steam name here and also I need to fix it

#

Smh my username matches just not the display name

brittle pasture
#

and also I don't actually use Tumblr aside from lurking but my name there differs too

lucid mulch
#

I don't think I really have any online references left that point to anything other than SinZ (plus either 163 or 167 suffixes where needed due to being taken)

#

been using it consistently since late 2009 early 2010.

though there was a year or two period early on where it was S1NZ on minecraft for reasons

calm nebula
#

I have a handful

#

But all stardew related stuff uses the atravita moniker

lucid mulch
#

all my minecraft, stardew, dota, etc used SinZ.
Halo CE I used OMalley

uncut viper
#

Did you do stuff with dynamic tokens chu

lucid iron
#

yes but u snipe me not sinz

#

hence confusion

uncut viper
#

Wait what did I snipe you with

lucid iron
#

that is what the PR is about

#

sinz wanted to do some token immutability improvements but i didnt do it

uncut viper
#

It's incredible how little memory I have of this conversation

#

what a liar

lucid iron
uncut viper
#

i was talking about myself SDVpuffersquee

lucid iron
#

i did it when pathos house fixed but i missed the wave oop

calm nebula
#

Is ur PR in or not yet?

lucid iron
#

no bc i missed the wave

fierce vault
#

wow, I just made an event that won't end itself after I added basic movement lol

#

back to the drawing board after I kill this smapi instance

#

any idea why debug would say the event script: move is stuck at (82%)? (Paraphrased) I can't even skip the event for some reason...

#

and I did put skippable

urban patrol
#

what does your log say?

fierce vault
#

no errors, but I forgot to put a facing direction after the character's name when stopping the animation, so I'm hoping that's it

lucid iron
#

@jaunty shuttle i closed your bug report on nexus too bc i can't do anything about it from my end, but do let me know if you need help on converting kids over or anything

fierce vault
#

ok, I can skip the event this time thankfully, but after adding the direction my character is still moving forver, and in the wrong direction...

#

the x y and facing cords all look fine to me

urban patrol
#

can you send your log and event script

#

i'd also check that you're not pathing them into Buildings or anything

fierce vault
#

I'm going to try a little more to see if I can figure it out myself, but if I can't, I'll upload over the event script

#

thanks

urban patrol
#

good luck!

fierce vault
#

oh, would trying to make a temp actor go into the void where a non npc warp exists affect anything?

#

because I don't see an issue with the code

summer spoke
#

I remember being confused by something that I think was Unique ID but I can't remember how. Is it still "<your name>:<mod name>" or is it something else?

uncut viper
#

Generally a period . and not a colon :

#

Otherwise yes

summer spoke
#

right, okay thank you

uncut viper
#

A colon can introduce parsing issues so I would advise against it (notably with Content Patcher token input)

#

(It actually might be strictly barred from UniqueIds anyway now that I think about it)

summer spoke
#

then what is {{ModID}} thing again?

uncut viper
#

That gets replaced with your UniqueId

#

It's a Content Patcher token

summer spoke
#

Oh, okay, I think I understand again now. Thank you

fierce vault
#

Ok, I can't seem to figure out why my actor goes to the right infinitely insteat of upwards and why the event can't end itself. Is anyting apparent in the event code here? "parcy.mrNPC.intro/Time 600 1700": " continue/16 2/farmer 14 23 3/skippable/addTemporaryActor Mystery 16 32 16 2 2 false Character/--(X,Y, & facing direction)/animate Mystery false true 150 0 1 2 3/playSound bob/pause 1000/playSound bob/pause 1500/playSound bob/pause 1000/stopAnimation Mystery 2/playSound bob/move Mystery 16 -1 0/pause 2000/end "

#

no smapi errors either.

#

I feel like the animate command might be breaking something, but I have no idea why it would...

urban patrol
#

move can only move them one axis at a time

fierce vault
#

Ok... I read over that but clearly misunderstood it then. I'm still not sure I get it, because I'm only moving it in one direction. Sorry if the question's kind of dumb. I'm not sure what to change still

vernal crest
#

When you write a move command, one of the first two numbers has to be 0. You've got 16 -1, meaning you're trying to move Mystery 16 tiles right and 1 tile up at the same time.

fierce vault
#

Oh

#

Thanks, I'll try and see if I can apply that

summer spoke
#

What's the difference between a content pack and a smapi mod again?

vernal crest
#

Content Packs are written using json in the format that the relevant framework mod has specified. They require the framework mod in order to work. A SMAPI mod is written using C#. It doesn't require any other mod to work, only SMAPI.

urban patrol
#

content pack: written in JSON, needs a framework like content patcher or similar. broadly considered easier to learn for beginners
SMAPI mod: written in C#, can do pretty much anything you can make it do. higher level of difficulty for beginners because of its versatility

vernal crest
#

Content packs are more accessible to most people because they merely require learning the data format that the framework sets rather than learning an entire programming language.

summer spoke
#

right, I remember now, thank you

#

another dumb question, what are update keys?

#

I feel like I should know this already, but I think I have the flue and its kinda hard to think right now

vernal crest
#

They are the unique identifier for the mod on the website they're uploaded to (e.g., Nexus) that SMAPI and mod managers use to alert users to mod updates. A Nexus mod update key is the number of the mod page in the URL.

summer spoke
#

thank you

fierce vault
#

if you make a private mod page, you should copy paste those numbers into your manfiest json before uploading

#

It needs to be done before people download it

uncut viper
#

(Fun fact: There is no limitation requiring that a Content Pack may only be json and nothing else)

summer spoke
#

right, okay, I think I understand now. thank you

fierce vault
#

Some people are quite good at c# here!

urban patrol
#

oh yeah didn't someone make a TOML mod before?

summer spoke
#

what's a toml mod?

urban patrol
#

TOML is a language like JSON

uncut viper
#

That one NPC helper uses TOML (sort of) and there is a YAML loader for content patcher as well

#

TMXL could use Lua as well

#

Json is very easy to use and supported by the use of Newtonsoft for SMAPI, though, unlike other options

fierce vault
#

I was just thinking about lua the other day

#

I know nothing coding wise, but I heard it's a pretty lightweight language and good for making games

#

Would probably still take me months to learn though 😅

lucid iron
#

I think the sort of things people used to do by lua via tmxl is now simply done by trigger action actions

fierce vault
#

Ok, I changed move Mystery 16 -1 0 to move Mystery 0 -1 0. Am I still misunderstanding somthing, or should my character be moving more than one tile up?

urban patrol
#

-1 will move them one tile up*
*results may vary because moving one tile at a time can be weird

fierce vault
#

Oh, I guess I'm still confusing it with being the Y tile location I want the npc to end up one

#

not the tile amount moved

#

Ok

#

so -2 should move more right?

urban patrol
#

yep, -2 would move them two tiles up

fierce vault
#

OK 😅

#

thanks!

#

I hope I wasn't the only one confused by that at first lol

urban patrol
#

i'm sure you aren't lol

old edge
#

Where is the gold clock sprite? Having trouble

brave fable
#

should be in Buildings chief

old edge
#

I’m designing a clock face

brave fable
#

alternatively you can use the community centre clock which should be in LooseSprites/Cursors

brittle sandal
#

I wanna fix a mod but idk how to mod can someone help me

#

I can send the mod if you want me to

fickle thicket
#

!startmodding

ocean sailBOT
#

Making mods can be broadly divided into two categories:

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

fickle thicket
brittle sandal
#

I do not have any moding experience but if you are willing to help I would appreciate it

fickle thicket
#

Uh, do you have permission from the mod author to update it?

brittle sandal
#

What is that

vernal crest
#

What is permission?

brittle sandal
fickle thicket
#

bblueberry is still an active mod author both on nexus and in this discord server so, I'd suggest trying to ask them if they plan on updating it before you try and update it yourself.

vernal crest
#

Laurie is assuming that you intend to share a fixed version of the mod with others. If so, you'd need permission from blueberry because the mod is not open source.

brittle sandal
#

@brave fable do you plan on updating the kitchen community center

#

Love of cooking is a great mod btw

fickle thicket
#

well. maybe i should've clarified. It'd be best if you sent them a message on nexusmods or if you dm-ed them instead

#

SDVpufferthinkblob i'm not sure they'll see this or if they do appreciate pings at all

vernal crest
#

But don't do it now you've pinged her

brittle sandal
#

Well if they say no can you help me fix it

vernal crest
#

Nope, closed perms means that nobody else can do it for you

brittle sandal
#

I mean no to updating it

vernal crest
#

We can point you to resources for how to learn C# and Stardew modding though :)

brittle sandal
#

Ik that we need perm

#

How hard is it to mod

vernal crest
#

For some people, very easy. For others, the hardest thing they've ever attempted. How much programming experience do you have?

brittle sandal
#

I have the animation canceling thing

#

But that took me like 1 hour to get

#

Lol

vernal crest
#

Ummm, like the thing you do in some video games to attack faster?

brittle sandal
#

Yea but for stardew

#

But I'm a fast learner

fickle thicket
fickle thicket
brittle sandal
#

But can I fix it on my own

#

Or is that still breaking the rules?

#

Sorry I'm new

fickle thicket
#

If blueberry allows you to update it for personal use then you're welcome to fix it on your own. Personal use means you're not going to share the updated version with anyone else.

As for us helping you, I'm not sure(?) I'm also a little bit iffy about stuff like this, sorry.

brittle sandal
#

Ok thanks

west thunder
#

Are these crab sprites meant to be, like, directional?

inner harbor
#

I think so?

brave fable
analog yacht
#

Hi. Im currently working on a majoras mask mod. One of the masks I want to implement is the Giant mask. But I can’t get the character to get bigger. It stays the same. Anyone an Idee how to implement this

fickle thicket
fickle thicket
#

Are you making an NPC or a monster?

summer spoke
#

Hey, sorry but I have another dumb question, how do I know if the mod I'm making is C# or a content pack. I'm hoping to add a new map and several new NPCs if that helps any.

hard fern
summer spoke
#

thank you

analog yacht
gentle rose
#

the farmer renderer is kind of very cursed

#

(it's not even all sprite textures iirc, some of it is drawn dynamically)

analog yacht
#

Currently I have also a frog mask. It worn while sleeping, the next day will rainy. But I’m thinking to change it to that rain starts when worn or stops when deequipt. What’s your opinion.

summer spoke
hallow prism
#

wrong format somewhere, like having just text when it expect { or something like that

#

let me check format for keys

summer spoke
#

right, okay. thank you

hallow prism
#

"UpdateKeys": [ "Nexus:NUMBERHERE" ],

#

update keys can list several sites so it needs a way to know which one you're refering to

summer spoke
#

I'll change it, thank you for your patience

summer spoke
#

when talking about format, it's the version of the mod itself and not Stardew, right?

vernal crest
#

The format field in the content.json? Or are you still in the manifest.json?

summer spoke
#

content.json, sorry

vernal crest
#

In the content.json it's the version number of Content Patcher

summer spoke
#

Oh, right, goood thing I asked then. Thank you

#

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

summer spoke
#

!json wikipedia

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.

summer spoke
#

sorry, what's the command to have a wikipedia take me to a page that explains what json I do after making the manifest?

#

or is it just format, changes, and then I leave the rest to put on the page of my actual event?

summer spoke
#

thank you

#

I'm sorry, I'm still a little confused. What should I work on after making a manifest?

vernal crest
#

Writing the mod

summer spoke
#

write okay, and I don't need a json file to load anything, right? I can just put it into the mod that I'm currently working on - an event for this instance - and it'll automatically pull it up from the folder?

vernal crest
#

I'm not sure what you're asking. Yes you need a json file. If you don't have a content.json you don't have a mod.

summer spoke
#

content.json, that's what I'm missing. Sorry for the confusion. I knew I was missing something I just didn't know what

#

thank you

jaunty shuttle
#

Oh btw, do you prefer to be pinged for bug stuff on here or have it submitted on nexus?

lucid iron
#

One of the reasons why hmk has custom kid stuff is that I felt like it's going to be pain in the ass compat situation LilyDerp

#

Hence the recommendation to just adapt other kid mods if you can rather than trying to get UC and HMK to behave nicely together

jaunty shuttle
#

Lol yeah 100% fair

summer spoke
#

since I'm focusing on writing the events out before spending money on the project, is there anything I need to add:

vernal crest
summer spoke
#

sorry, haven't written them yet. I thought the order was manifest -> json -> event.