#making-mods-general

1 messages · Page 503 of 1

balmy valve
#

thank you!

#

so this would go after my normal map patch right?

ornate locust
#

I don't know what I thought you were asking, brain made of spaghetti today LOL

#

Yeah, it's basically two patches, you just use the "when" to tell the game which one to use

#

False for the one without SVE, true for the one with

balmy valve
#

Okay, and do I need two separate maps to pull this from?

hallow prism
#

(dynamic tokens can be an option too if the person feels better using it)

ornate locust
#

Not necessarily, though SVE changes quite a bit and it might look odd just moved. You'll want to check that

balmy valve
#

Because the location of the house changes and so the warps change too

ornate locust
#

oh hm, that's a point.

#

It's the inside door that would need the changes though

balmy valve
#

yeah i know

#

so i'd have to do like. a duplicate map specifically for SVE

ornate locust
#

Yeah, you can't use tokens in a TMX to my knowledge

#

or that'd be a way around it

hallow prism
#

you can add warps with CP

ornate locust
#

I guess you could add warps with- yeah that

hallow prism
#

i do that to a map so it changes destination based on the day

#

//Random cave warp { "Action": "EditMap", "Target": "Maps/Lumisteria.MtVapius_ForestCaveStar", "AddWarps": [ "5 10 {{Random:Lumisteria.MtVapius_ForestCaveAmber, Lumisteria.MtVapius_ForestCaveMoonPond, Lumisteria.MtVapius_ForestCaveMarsh, Lumisteria.MtVapius_ForestCaveWinterRift, Lumisteria.MtVapius_ForestCaveVoidGrove|key=Lumisteria.MtVapius_RandomRoom}} 7 37" ] },

balmy valve
#

so i remove the warp map propoerty from the interior of the house, right?

ornate locust
#

Just remove the warp from the TMX and do it by Content Patcher, yeah

balmy valve
#

okay perfect

opaque field
#

I'm having trouble getting my ocean map to - ocean-

#

the waves work on the shore, but I can't fish there

urban patrol
#

in tiled are your water tiles on the back layer

opaque field
#

Yes 😄 is that wrong?

urban patrol
#

no that's correct

#

do you see the water overlay over them in game?

opaque field
#

oh, uh no I don't actually

hallow prism
#

is there something on the building layer?

urban patrol
#

are they on back and not back1 or something

opaque field
#

the wave edges are on the buildings like on the regular beach map

urban patrol
#

well you can't ever fish on wave edges, is that what you're trying?

opaque field
#

haha no I'm going down on the dock I built and trying on the actual 'ocean' part and yes they're on Back, I have Back, Buildings, Paths, Front, Front 2 and Always Front

urban patrol
#

can you send your map as well as any custom tilesheets it uses

hallow prism
#

(it's just that building will block the possibility to fish so i wanted to be sure your ocean wasn't covered in building tiles)

opaque field
#

alright here - loaded up a bunch of vanilla tilesheets before I re-read the message and the 'custom' part sank in haha

urban patrol
#

why do your vanilla tilesheets have . in front of them?

#

i'm worried now that your tilesets don't have properties

opaque field
#

it was something recommended to me a while ago

lucid iron
#

That's fine

#

Before tilesheetinator it was best way to have vanilla sheets in the folder and still make em load for game purposes

urban patrol
#

i see

#

mannnn please hold while i manually redirect these then

#

this is what i'm seeing btw--make sure you don't have two copies of the same tilesheet in your map

opaque field
#

okie dokies, I'll make sure to check that I don't

urban patrol
#

is Paths.tsx something different from this tilesheet?

#

also, what is spring_BeachAnimations?

opaque field
#

It’s not. Also. I don’t know it’s not in my list of tilesets when I check tiled

urban patrol
#

oh okay i've had that issue before actually

#

you have a map open with an un-embedded Paths.tsx in it, and tiled is copying it over into every open map you have

opaque field
#

I’m only seeing one paths thing too and it maps to a png

#

OoooOOOOhh

urban patrol
#

i'm going to go ahead and delete that tileset from this map then

#

and you don't know what beach animations is?

#

probably the same issue since it's also a .tsx

opaque field
#

That would also be my guess

urban patrol
#

ok i'm going to go ahead and delete that too

#

you did use beach animations at some point--those gray squares used to be red Xs that went away when i deleted that tilesheet

opaque field
#

Hmmm. Maybe I did at some point and didn’t realize it? But those are bits hang on lemme do a little digging

urban patrol
#

if whatever those tiles are/were didn't have the Water property, then they wouldn't be fishable

opaque field
#

They were pulled from a tileset that links to a png when I check they’re from the beach.

The other spots aren’t fishable either

urban patrol
#

they're from spring_beach?

opaque field
#

yeah it's one of the ocean tiles

#

maybe it would be easier to re-make the map hmmm

urban patrol
#

at the very least you have to get rid of the duplicate tilesheets

#

you have both untitled tile sheet and .spring_beach which are both the same

#

!tilesheetinator i also recommend this over the . method

ocean sailBOT
#

You can use the Tilesheetinator tiled extension to create Stardew Valley maps that work in-game without having to copy vanilla and modded tilesheets back-and-forth, rename files with a . in front of their name, edit maps only in the unpacked content folder or make symlink workarounds.

See the mod page for full installation and use instructions.

opaque field
#

Yeah, I removed them and I removed the tsx from the map and making sure I re-add the properties with the .spring tilesheet :3 should have just enough time to test before hibachi.

Oooh, thank you! 😄

hallow prism
#

hmm, if i want the player to choose some options in a menu and have flags or something based on that, is there some other options than the ol classic event?

urban patrol
#

you can do it with questions in dialogue

#

i assume you don't want it to be config options lol

hallow prism
#

i want it to be on an interactible tile

#

so it makes dialogue a bit of similar option than event i would say?

urban patrol
#

yeah agreed

#

hmm maybe BETAS could do it? i feel like it would still do it through dialogue though

#

what sort of thing is the player choosing?

hallow prism
#

basically some options to obtain resources, maybe with a cost

#

like "obtain stones this week" and "obtain slime this week" sort of thing

urban patrol
#

what about opening a shop?

hallow prism
#

hmm

#

ideally i want the player to choose, then they'll receive a letter with the stuff, so i can have some character's stuff going on

#

so shop is a bit too direct

urban patrol
#

hmm i see

#

maybe different tiles, perhaps with signs in front of them, like "touch the red button if you want slimes this week" and then the player interacts with that tile

uncut viper
#

i believe MMAP has a better question interaction thing

lucid iron
#

The vanilla way is buy stuff from shop

#

Set action on purchase

#

Otherwise an event to do question in will work

#

As would fake npc to give the dialogue

hallow prism
#

thanks 🙂

#

i will consider my options then

ivory plume
#

(Aedenthorn's repo is easy to spot when testing mod source links.)

deep cypress
#

How does one make the Visual Studio build the program to a certain folder? As in, like MermaidFolder/MermaidProgram? (As in, instead of jsut building to MermaidProgram)?\

vernal crest
#

<GameModsPath>D:\Games\Steam\steamapps\common\Stardew Valley - 1.6.15\ModDev\AbaStardewModsPrivate\AbaCSharpProjects\_Compiled</GameModsPath>

ivory plume
deep cypress
#

Thanks all! 🙂

dusty pine
#

I'm so happy y'all. Immersive Festival Dialogue still works beginning at year 3 festivals! I might check it over at some point for consistency with the new dialogue and see if there are any new tricks I can do, but I'm soooo happy all that effort wasn't wasted :) 🧡

#

okay, so it's not perfect. idk if I'll get to updating it soon, but I'm just glad it still works :)

deep cypress
#

Just to check, when I define the mods path, when the mod goes on other OS's, does it still work?

ivory plume
#

The GameModsPath only affects where the files are deployed on your computer. It doesn't have any effect on the actual release zip that players download.

deep cypress
#

Yes! Thx!

silk basalt
#

out of curiosity, do you guys think it's easier to update a character mod from 1.5 to 1.6, or to just start from scratch...?
i started from scratch, but i was wondering if with this being my first try if i should use the npc maker program and then just... update the files? yaethink_anyuki ofc i know it's harder to test it if it's made to work with 1.5, but at least i'd have something to actually. y'know. test;;;

vernal crest
#

If you don't already know how to make an NPC, I say start from scratch in 1.6 so you learn best practice right from the start.

tiny zealot
#

if by "npc maker program" you mean miss coriel's npc creator 3, you should not use it

ivory plume
#

The actual NPC syntax is relatively straightforward. You can start from this example code which creates a full working NPC, and tweak it for the NPC you want to make. Most of the work will be tailoring the actual NPC (e.g. creating their sprites/portraits, writing all their dialogue, creating events and schedules if applicable, etc).

#

So it can certainly be helpful to look at a 1.6+ NPC to see how it works, but it's not much more work to convert a 1.5 NPC to the 1.6+ format.

silk basalt
#

OOO i think i missed that one before, thank you!

#

i got kind of overwhelmed before so i figured i should try the coding part again from the beginning, so thank you

vernal crest
#

I started by copying Jorts

#

!npc Have you seen the NPC making tutorial?

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:

ocean wave
#

idk if id ask here but, how does one update a mod? i want to update this mod https://www.nexusmods.com/stardewvalley/mods/8667

Nexus Mods :: Stardew Valley

A quick reskin mod for a uni assignment. All of the date-able characters have been reskinned to be various fantasy creatures! That + some of the farmhouses have been changed to fit a fantasy aesthetic

ivory plume
#

What issue do you want to fix? (Note that most older Content Patcher mods should still work even without an update.)

tiny zealot
#

you won't need to do much. it's a content patcher mod, so it probably still works

ocean wave
#

i have no idea if it works actualy, but in #modded-stardew was told it should be updated

tiny zealot
#

you would need to update any images that are out of date, namely to add missing frames (i am thinking in particular of hazmat suit demetrius and sam's new portrait, both introduced in 1.6)

ornate locust
#

Make more art, really

ocean wave
#

oh

tiny zealot
#

use your image editor of choice to edit the image

#

oh and of course winter outfits are a thing so you would need those. that increases the work substantially, in fact

ornate locust
#

Might need beach outfits too, I forget when those came in

ocean wave
#

TheVoices so im cooked

ocean wave
#

what was the version in may 2021,,

ornate locust
#

Yeah, think that means you'd need those too

tiny zealot
#

1.5 was late 2021 i think

vernal crest
#

Can't be, I was playing 1.5 in early-mid 2021

ornate locust
#

Oh hang on think I read this date wrong. It was December 2020, not 2021

vernal crest
#

December 2020

tiny zealot
ornate locust
#

Might have those, then

vernal crest
#

Doesn't look like it

ocean wave
#

soam i cooked?

vernal crest
#

Well, anyone can learn to draw and anyone can learn to make a json mod, so not really if you want to do it

ocean wave
#

n what if i want to keep the base outfits for winter?

tiny zealot
#

easiest solution is probably to load/edit the winter textures the game expects as well, just using the same base image

#

you could also overwrite each character's appearance data to remove the winter sprite reference entirely but that's slightly more work

ocean wave
#

where does one find the textures? sorry i never done this before

tiny zealot
#

!unpack you'll need to unpack the game's content files to be able to see how they're set up, so you can figure out what edits you need to make using Content Patcher. but you'll also have to learn content patcher in order to be able to do that in the first place

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!

tiny zealot
#

if this is truly your first dive into modmaking, i recommend doing something simpler first, or just limiting yourself to one aspect first before trying to do the full update: for example, try just editing sam's portrait image in the mod and adding the new expression he got in 1.6, without having to do all the json/content patcher stuff yet

#

if you go straight for the finish line, it is easy to get overwhelmed

ocean wave
#

so i have retextures for 4/12 people,, which i think helps?

#

sorry for so much asking

#

nvm only 1/12 from the mod

#

TheVoices ill do it tommorrow

deep cypress
#

Start by getting just one to work, then expand from there. 🙂

ocean wave
vernal crest
#

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

vernal crest
#

Ignore the C# part and have a look at the tutorial for Content Patcher and the tutorial wiki

noble ermine
#

How do I put a dialogue into speech bubble?

urban patrol
#

during an event?

noble ermine
#

yes

#

Is that textAboveHead?

urban patrol
#

yep

noble ermine
#

thx

silk basalt
#

possible stupid question: is the code to load the blank.json in the dobson sample code...? if not, where should i put that code?

#

in the content.json above the other load codes, right?

urban patrol
#

to load a blank.json, you would make a patch (the block of code between {} that has an action) to load blank.json to whatever target you want. you can put it into any file you want as long as that file is content.json or is being Included in content.json

#
  "Action": "Load",
  "Target": "Characters/schedules/Dobson",
  "FromFile": "assets/blank.json"
}```
like this
silk basalt
#

ahhh okay, so it won't like, break anything if i put it right after "Changes": [ ?

urban patrol
#

nope! as long as your syntax is correct

#

patches all go on the same level inside of Changes

silk basalt
#

okay, thank you!

#

i appreciate y'all being patient lmao

urban patrol
#

we were all beginners once lol no problem

#

are you making an NPC? have you been linked to tia's NPC tutorial yet?

silk basalt
#

yeah, i just got kinda overwhelmed back when i started so i abandoned it for a while

#

i actually!! just got some basic overworld sprites done, and i've had the portraits done for a bit, so i'm excited to actually get coding

urban patrol
#

nice!

silk basalt
#

how do you input specific dialogue for gift taste items? yaethink_anyuki

vernal crest
#

Search for the AcceptGift lines on the dialogue page of the wiki

silk basalt
#

er i mean like, if i gave the npc a specific item on their loved items list, how do i input dialogue for them responding to that specific item? like, if i wanted them to say "oh thanks i was getting kind of tired" or something if i gave them coffee for example?

#

is that in gift taste or in a different file?

urban patrol
#

for a specific item (or category, or context tag), it would be in dialogue, but for all loved gifts generically, that would be gift tastes

#

"thanks i love coffee" = dialogue
"oh wow thank you i like this" = gift tastes

silk basalt
#

AHH okay thank you!!

vernal crest
#

Yes, that is what I meant. The AcceptGift lines on the dialogue page of the wiki are how you write lines for specific items.

silk basalt
#

OH i was on the wrong page sorry

noble ermine
#

Is it possible for me to play a springtime petals or a wedding particle effect in an event?

silk basalt
#

is there a sample schedule that people use for testing i can slap on my character for the moment?;;

ornate locust
#

You can just pick a spot for them to stand and one spot for them to move to.

#

Simple as it gets, really

urban patrol
#

yep as long as you have the “spring” key that’s bare minimum

vernal crest
#

I usually just copy and paste a vanilla NPC's schedule

ornate locust
#

also works

noble ermine
silk basalt
#

so uh, i just got a really long code from smapi that basically told me that it doesn't like my mod yet lmao, can someone take a look at it and tell me what i need to fix?;; given how long it is i'm a little worried about just copying and pasting it in here

ocean wave
#

sorry for ping :(

ocean sailBOT
hard fern
vernal crest
ocean sailBOT
#

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

Please share your SMAPI log file. To do so:

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

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

ocean wave
#

how do i add the new expression though ?

hard fern
ornate locust
#

A mod for an older version of the game might just have blank space there instead

hard fern
#

i know there's funny placeholder sprites in demetrius's spritesheet

ornate locust
#

If you don't particularly care about replicating what the original portraits and sprites have going on, doing it for personal use, you can just pick one of the other portraits/sprites you deem close enough and copy it over into the right spot

ocean wave
#

TheVoices i'm awful at puxel art i won't be able to do it sobbing

ornate locust
#

Well still, if it's just for personal use, you can just copy Demetrius's normal expression over to that right spot and it'll be good enough to use, anyway.

silk basalt
ocean sailBOT
#

Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on Microsoft Windows NT 10.0.26100.0, with 3 C# mods and 1 content packs.

ornate locust
#

Won't have Invisible Demetrius during Green Rain

ocean wave
ornate locust
#

Not really any art to that, just a copy/paste job.

ocean wave
#

updating this mod so

ornate locust
#

Yeah you can copy Sam's first expression down to that blank spot and if you want, slap some eyeliner pixels on

#

It's basically the same face anyway. Demetrius's hazmat suit is... well, more difficult if you want to keep the vibe.

vernal crest
# silk basalt https://smapi.io/log/b4654daedeb847f0a1e31e078edcc4d8 here's the log,,, i also d...

!json
It's saying his name twice because your mod's unique id is espurrel.Hugo and your NPC's internal name is {{ModId}}_Hugo, which Content Patcher turns into espurrel.Hugo_Hugo in game. It's meant to be like that.

As for the error, it's saying your json is broken so it can't load it. You're probably missing a comma on line 5. If you want help finding the issue rather than me guessing based on reading the error message, you can share your json using the json website.

#

Poop it did not like me doing that

#

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

hard fern
#

(u can't !json line breaks)

ocean wave
#

i'm probably so cooked TheVoices

urban patrol
#

!anyonecancook

ocean sailBOT
#
ocean wave
hard fern
#

you're only as cooked as you believe you are

urban patrol
#

putting yourself down is the number one way to fail

hard fern
#

if you don't want to draw the extra portraits, you can just leave them blank and just deal with them being missing if they come up in dialogue

silk basalt
ocean wave
#

wait are the portraits only thing needed to be updated?

silk basalt
#

yeah, spirit, you literally will never improve if you don't try!! give it your best

hard fern
silk basalt
#

i'm also fumbling rn so

#

you're not the only one lol

hard fern
#

but you can just make the game use the regular ones if you don't care about the villagers wearing seasonal clothes

ocean wave
#

TheVoices surely i can make game not make em wear the seasonal stuff

ornate locust
#

Just copying one of the other portraits over would be enough to remove invisible faces. A similar emotion would really do well enough. Sam's new portrait is really just his very first one with eyeliner and a background.

vernal crest
silk basalt
#

notepad,,, thxIloveit

hard fern
#

oof

vernal crest
silk basalt
#

you can tell i haven't coded since high school saying that huh

#

lmao

ornate locust
#

You can just replace the winter ones with the new ones too, yeah. Same with the beach ones

vernal crest
silk basalt
#

where can i find those?

hard fern
#

!software

ocean sailBOT
ocean wave
#

when i actually get sleep n all ill prob ask for someone to do like a step by step with me,, i have autism so its hard for me when just reading if that makes sense

silk basalt
#

OH thank you i keep forgetting we have these

vernal crest
silk basalt
#

if you're really tired rn, it can make this kinda thing a lot more daunting than it is too

hard fern
#

better to pick it up in the morning with a clearer head

ocean wave
#

IH I DIDNT MEAN IT LIKE THAT TheVoices i love the resources you guys gave me !!! idk how to explain what i just said :(( sorry if it came off that way

#

i bookmarked the stuff

#

okay gonna try to sleep, gn guys ! sorry if i offended you guys :(

silk basalt
hallow prism
#

things will be better after sleeping!

vernal crest
# silk basalt i have vsc open now!!

Okay! Try deleting that closing curly bracket on line 5 and then press Shift-Alt-F on your keyboard. It should tidy up all your indentation, hopefully. If you have more syntax problems, it might not fully tidy it up but it'll be a start.

silk basalt
#

gonna test it out again, vsc is saying there's issues still but

vernal crest
#

If VSC is saying there's still issues then there probably are, unless it's complaining about comments or trailing commas (neither of which are a problem for Stardew)

silk basalt
#

diving back into the code then GanyuSalute_GM

vernal crest
#

Rules of thumb:

  • brackets always have to be in pairs
  • you need commas between lines
  • where something is nested inside bracket pairs matters. Things have to be at the right level (i.e., inside the right set of brackets for them to work properly.
silk basalt
#

okay, maybe stupid question incoming, but what do the different text colors mean?

#

i assume red text means there's an issue, but

vernal crest
#

Do you mean in the smapi log or in VSC?

silk basalt
#

vsc, sorry

vernal crest
#

If you can share a screenshot I can see what you mean

#

I don't use the default VSC theme so my colours will be different and therefore I can't just go off description

silk basalt
#

like, there's two red brackets, green, teal, and pink text here

vernal crest
#

The yellowy green text indicates that it's a dictionary key (also referred to in Stardew circles sometimes as a field name) while the teal indicates that it's a dictionary/field value. The brackets change colour just to make it easier to match them up, but when they're red it indicates that they are missing a matching bracket - so you're missing a closing square and then curly bracket at the end of your file.

#

A dictionary is a programming concept. It's one way that we store data that computer programs use. The key/field name is used in the programming code and the code will then find the value that is associated with that key.

#

So for example with an NPC, you have a DisplayName field/key - your NPC's name is Hugo, so the value in your file is Hugo. When the game wants to show a player the NPC's name, it will call that DisplayName key and find the value associated with it and display that, allowing players to see that your NPC is named "Hugo".

pale river
#

if i name my sprites file to sprites_winter will it change to it or do I need to add code somewhere

silk basalt
#

it doesn't seem to mind the first part of the character data, but when it goes past the language data it kinda freaks out?
i tried adding more linebreaks but it didn't do anything different

#

IH NEVER MIND I SAW IT

#

er, maybe

#

i'm going to test it again and see if it breaks again thxIloveit

gentle rose
pale river
vernal crest
pale river
vernal crest
pale river
vernal crest
pale river
vernal crest
pale river
vernal crest
#

But apart from the name, it looks like you are doing things correctly.

silk basalt
ocean sailBOT
#

Log Info: SMAPI 4.3.2 with SDV 1.6.15 build 24356 on Microsoft Windows NT 10.0.26100.0, with 3 C# mods and 1 content packs.

pale river
silk basalt
#

i did wanna say again that i really do appreciate the patience thxIloveit i'm trying my best

uncut viper
#

no one else is going to have a unique id starting with your username, and you presumably arent goign to name two mods the same thing

vernal crest
uncut viper
#

and many mods look for an ID in that format (like Lookup Anything)

silk basalt
#

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

vernal crest
#

My only other advice is to make it something you can reasonably remember and type repeatedly since you'll need to do it a lot while developing and testing your mod lol

#

I'm just lucky that I can actually type Abagaianye quickly

pale river
vernal crest
silk basalt
#

OHHHH THE COMMA AGAIN

pale river
silk basalt
#

thank youuu

vernal crest
silk basalt
#

commas............

vernal crest
#

And then your Home field is in the wrong place. You've nested it outside your Hugo entry in Data/Characters

vernal crest
silk basalt
vernal crest
#

Now you have got your EngagementDialogue patch inside your NPCGiftTastes one

silk basalt
#

my joy is immeasurable my day is made my crops are watered my skin is clear

#

thank youuuu

vernal crest
#

Now that you have conquered that mountain it's time to introduce you to i18n!

#

!i18n

ocean sailBOT
#
Creating Translation Capability

So you'd like to stop writing all of \"your strings straight in your content.json?\" and/or you'd like the capability to see all of your strings across all of your .jsons?
Introducing i18n!

  • How to make your mod compatible with other languages: stardewmodding.wiki.gg

  • The file where you can put all of your strings is called default.json, and it sits in a folder at the same level of your assets, named "i18n".

  • If you're converting from an older version of the game, there's a converter for ease-of-access.

Not to be confused with {{DynamicTokens}} since these require the specific {{i18n:<KEY>}} modifier

vernal crest
#

We recommend i18n so that your mod can be translated more easily and without the translator having to upload any of your mod files to Nexus

silk basalt
#

LET'S GOOOOOOO

vernal crest
#

It will require that you stop Loading your dialogue and instead make use of that blank json you're Loading but not currently using.

silk basalt
#

should i save making those files until the end? for right now i've just copied and pasted npc schedules and dialogues in

vernal crest
#

Making the files? Do you mean starting to write dialogue and schedules or do you mean doing what I said about switching away from loading them?

silk basalt
#

oh, i meant like... if i make the i18n stuff now, will i have to redo it after i write all the dialogue?

ocean wave
#

dows this look right?
-# i tried to sleep to the point imnot tired anymore

vernal crest
vernal crest
ocean wave
#

mhm

vernal crest
# ocean wave mhm

It's a bit hard to tell, but you can turn on the grid in your editing program, set it to 64x64px and then use that to make sure you've placed the portrait in the right spot

ocean wave
#

TheVoices try to get athing from one file to another and its not letting me

west thunder
#

Today.

silk basalt
#

how do you get coordinates of in-game locations for schedules?

vernal crest
silk basalt
#

i need to set lookup anything to work with tiles, yes?

ocean wave
#

LETSGO its 64x64 i think its good right

vernal crest
silk basalt
ocean wave
#

so do i just replace it

#

thw old one

vernal crest
ocean wave
#

mhm

vernal crest
#

Yep

ocean wave
#

im gonna stay w sam for now me thinks
so what would i do for the seasonal outifts?

vernal crest
#

By seasonal you just mean winter, right?

ocean wave
#

yuh

hallow prism
#

maybe try to brainstorm your concept and note words related to your theme

#

and see what happens?

ocean wave
#

i want to keep the orignal sprites

hallow prism
#

it's hard to have ideas on demand for other modders

vernal crest
#

Oh, zey aren't asking about ideas, Lumi

ocean wave
hallow prism
#

oh ok you meant about the technical side

#

i misunderstood 🙂

vernal crest
#

You copy and paste your existing sheet and give it a different name (one with winter in the name is useful). Then you open up the content.json and copy the patch that is Loading the regular Sam portrait sheet and edit it so it has a Target of "Sam_Winter" instead and a FromFile that uses your file name.

hallow prism
#

(i am more used to people asking a lot of questions about the creative side and asking for ideas so i thought it was one of those again)

ocean wave
#

okay wait

#

so ima rename the dupiclate file to same winter, right?

#

i cant spell

vernal crest
#

You can name it whatever you want to, but having sam and winter in the name is most useful, yes.

ocean wave
vernal crest
#

What is the issue?

ocean wave
#

oh i was just saying there was more than i thought, no problem

vernal crest
#

Yeah, you will just do the same thing for those others that you'll do for winter, once you know how to do winter

ocean wave
#

in the mod it says this,, do i still just do sam winter?

vernal crest
#

Please listen when I say you can name it whatever you want to

#

It doesn't matter what the existing file is called

ocean wave
#

alright, sory, thought it would be different

vernal crest
#

Your file name just has to match what you write in your FromFile field

#

The names of files don't matter at all for Content Patcher mods

ocean wave
#

whats fromfile,,

vernal crest
#

Their only purpose is to be usefully descriptive to the reader

ocean wave
#

ooo okay

silk basalt
#

i'm about to conk out so i won't be able to fix it right away, but wanting to ask before i forget-- i changed the coordinates for hugo's home location to a spot that i can actually get to, and i gave him a simple schedule to walk around in spring, and slept to spring 2-- is... there a reason he's not where he's supposed to be?;;;

#

do i need to program the animations too?;; is that why?

ocean wave
#

this look good?

vernal crest
ocean wave
#

okay i think i did it for all

#

should i go to sprrites?

vernal crest
#

Try hopping in game first to test the portraits

ocean wave
#

peepoSitti waiting for him to comeout of house

hallow prism
#

debug wtc sam

#

and in general

#

this is a staple when testing

ocean wave
#

YUMP it works

vernal crest
ocean wave
#

winter works :D

hallow prism
#

no slash, and just sam instead of <s:sam>

#

and preface with debug

ocean wave
#

ooo okay

#

winter portaits work :3

hallow prism
#

(i was super confused by debug command format at first, there is a logic in the formatting, once you get it. At first, i didn't 😄 )

vernal crest
ocean wave
#

the beach sprites are different though

#

like different sheet in general

vernal crest
#

And so what do you think the solution is?

ocean wave
#

Blubbers make my own sprites

vernal crest
#

That's one option

#

If you don't want to do that, there's nothing stopping you from using the regular sprites and portraits for the beach outfit as well

ocean wave
#

sprite work for winter

ocean wave
#

huzzah sam done

#

ty aba YUMP

#

okay wait

#

theres some non npc stuff, lie houses. could i delete those + stuff related to it inconfig?

vernal crest
#

You can if you want to

noble ermine
vernal crest
#

Don't use When conditions for events if you can avoid them (which you almost always can)

#

And null events are the old way of sending mail, don't use that. Use a TriggerAction instead.

#

The reason it's saying the event doesn't exist is because your letter is AppleFirstInviteMail (you should add {{ModId}}_ to the front of that) but you're checking for {{ModId}}_AppleFirst. Remove the When condition from the event patch and the mail patch, remove the Farm event entirely, switch to sending the letter via TriggerAction, and use a precondition for your event to check for the letter.

noble ermine
#

ananloading what would be changed for the entries part? sorry I was following a chinese mod guide written pretty long ago on mail part

vernal crest
#

Which entries part?

noble ermine
#

The sending mail part

vernal crest
#

Just remove that Farm event entirely

#

And add another entry to your Data/TriggerActions patch to send the mail instead

noble ermine
#

Sorry I'm a little confused, who should I trigger to here...shall I move all the conditions from when to trigger?

vernal crest
#

Yes, you should never have any When conditions on a Data/mail patch anyway

#

But don't add them as When conditions for the trigger action, make them use the Condition field in the trigger action

vernal crest
opaque field
#

I use a lot of when conditions for events because in config people can pick from 3 paths or 'all paths' - should I also change those to mail flags?

vernal crest
vernal crest
noble ermine
#

Like under the same target but different enrties?

vernal crest
#

Yes

#

Hmm

#

Unless you mean a different Entries field, in which case no

opaque field
vernal crest
# noble ermine Like under the same target but different enrties?

It should look like this.

{
      "Action": "EditData",
      "Target": "Data/TriggerActions",
      "Entries": {
        "{{ModId}}_Christmas": {
          "Id": "{{ModId}}_Christmas",
          "Trigger": "DayEnding",
          "Condition": "PLAYER_HAS_SEEN_EVENT Current {{ModId}}_Christmas",
          "MarkActionApplied": "false", // put it here instead
          "Actions": [
            "MarkEventSeen Current {{ModId}}_Christmas false"
          ]
        },
        "{{ModId}}_AppleFirstInviteMail": {
          "Id": "{{ModId}}_AppleFirstInviteMail",
          "Trigger": "DayStarted",
          "Condition": "PLAYER_NPC_RELATIONSHIP Current Wizard Married, SEASON_DAY Winter 28, PLAYER_HEARTS Current Apples 10",
          "Actions": [
            "AddMail Current {{ModId}}_AppleFirstInviteMail now"
          ]
        },
      }
},
#

And then make sure your mail entry is {{ModId}}_AppleFirstInviteMail

#

And then don't forget to remove this from your event

"When": {
        "HasReadLetter": "{{ModId}}_AppleFirst"
      },
noble ermine
#

This always happens, I really had no idea

vernal crest
#

It's always important to pay attention to exactly where you are putting things.

#

Not in terms of indentation, which only matters for our ability to read it, but in terms of what sets of brackets things are in and whether you have put a comma at the end of every line (or nearly every line - the last thing inside a set of brackets doesn't need a comma).

#

Unfortunately it's so messed up that I can't even figure out how to tell you to fix it, so I think I am just going to have to fix it and send it back to you.

noble ermine
vernal crest
#

What text editor are you using?

noble ermine
#

visual studio 2022

vernal crest
#

Oh that's very overkill for a json mod

#

Are you planning to start doing C# modding too?

noble ermine
#

I'm not really sure if I could understand C#...but if later I find some part of my plan requires that I will learn...

#

Though it might be taking a lot of time for me to understand

vernal crest
#

In that case, I recommend you get Visual Studio Code instead

#

VS22 is more suited for programming

#

If you decide to stay with VS22 though, you can press Ctrl-K and then Ctrl-D and it should tidy your formatting

noble ermine
vernal crest
#

Once you do have VSC installed, you can use Shift-Alt-F to auto format your files

#

It helps keep them easier to read

noble ermine
#

Cool! Learned

ocean wave
#

peepoarriveandSit back again to ask for help with updating a mod

vernal crest
#

That one is a C# mod so you'd need to learn C# to update it

ocean wave
#

oh em gee hi aba

#

oh TheVoices im guessing its hard/annoyin?

vernal crest
#

Well, it's a big learning curve that will require a lot of patience and dedication

#

It's a lot harder than the json you learned today

#

But it's still possible, you just have to be willing to keep trying

ocean wave
#

oh,,

vernal crest
#

Have you checked that there isn't already an update for that mod?

ocean wave
#

mhms

vernal crest
#

!startmodding Well, if you want to start learning C# there's a tutorial to get you started

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.

halcyon loom
#

Is it possible to give an NPC item likes from a mod - for instance, sodas from the Artisanal Soda Maker mod - without actually requiring the mod? So it'll be added to their likes if a player has the mod, but won't be an absolute necessity?

#

Working on a concept for my NPC's likes and dislikes before I even touch coding.

vernal crest
#

Yes it is

#

You might even be able to do it without gating it behind a check for having the mod. I can't quite remember. But either way it's possible.

halcyon loom
#

Nice, thanks!

opaque field
#

Ok I remade my beach map, but I still can't fish there. I think if my charms/weapons/buffs work I'm just gonna push my Shane update where everything is in i18n bc I love him but I have other stuff I wanna do

vernal crest
#

Have you gone over the usual suspects? Checking you have the Water tile property, making sure you don't have Buildings tiles in the area?

opaque field
halcyon loom
#

Thinking about it and I might try to add cassettes to the game. Not necessarily playable, just like... misc items you can rarely get from fishing (the bonus chests), killing monsters, or cracking geodes, usable as gifts. If I do, I'll definitely have those as a Loved gift.

opaque field
#

Do I need to do that on an objects layer?

vernal crest
#

No, it's on the tileset itself

opaque field
#

hm

opaque field
vernal crest
#

For example

opaque field
#

ookay that's why

#

crackles in learning things today

#

let me try that then

vernal crest
#

You made your map using the vanilla one as a starting point, right?

opaque field
#

oh uh, no actually this time I started with the one already in my mod's asset folder

#

(which is probably why the custom properties weren't working)

vernal crest
#

Always start using a vanilla map

#

There's no advantage to doing otherwise

opaque field
#

okie 😄

vernal crest
#

But if you have a map that doesn't have things you need - tile properties or animation - you can export a tileset from another map and import it into your map (and then EMBED IT because I am so sick of seeing unnecessary tsx files!) to grab them

halcyon loom
opaque field
halcyon loom
#

unfortunately I have to try to get some sleep for work, but I've been looking at the wiki for modding NPCs and I think I've got a pretty good idea of things I want to add and do. Still debating if he should be a marriage candidate, on one hand that could be fun to write for, but on the other hand the rest of the social stuff (and the "find the DeLorean" quest I want to add) may be a bit much for my current lack of modding skill, so that's a problem for Future Me.

uncut aspen
#

Having trouble with creating an NPC mod. When the npc would spawn at the bus stop, instead I get a smapi error saying there's a problem with my dialogue.json file. But i can't seem to find the error in the file. I tried a the online smapi json validator, but it says no errors found. The exact smapi error text is Newtonsoft.Json.JsonReaderException: Can't parse JSON file at c:\program files (x86)\steam\steamapps\common\Stardew Valley\Mods[CP] Belivia\assets\Dialogue.json. This doesn't seem to be valid JSON.
Technical details: Unexpected character encountered while parsing value: [. Path 'Changes', line 3, position 14.

short temple
#

I need to add the [CP] to My nexus mod name or if i do it inside the folder it runs fine?

vernal crest
short temple
#

I think i finished the kobolds mod but not sure if this works tbh

vernal crest
#

Only the content.json uses the format field. Includes should not have it.

short temple
#

At least it does work fine for me

uncut aspen
#

i only added it because of the online validator erroring out without it. It doesn't work even without that in there

calm nebula
#

(You're loading a file you actually intend to include)

vernal crest
#

Yup, you need to switch your patch in the content.json to an include patch instead of a load one. Have you got a patch loading a blank json for the dialogue first?

uncut aspen
#

so this needs to be changed?

vernal crest
#

Yes, you need your Load to be a blank json file and then the one with your dialogue in it should be an Include

uncut aspen
#

should i be doing this with other things too like schedule?

#

thanks every1 for helping, it fixed the error.

opaque field
#

MY BEACH MAP WORKS

#

OML joy

wispy yarrow
#

Hello ! I've been playing the game for 5 years and I've already tried downloading mods. Now I'd like to go further and develop one myself. I already have some programming knowledge and I should just need to learn the game's language to succeed (I hope).

Just, how do I do that ?

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.

lucid iron
#

What is the mod that you want to make?

wispy yarrow
#

I dont know just made small mods for now because its the same for game devlopment

latent mauve
#

Loading the blank.json first for those targets lets you use tokens (like {{ModID}} ) in your EditData patches afterwards.

lucid iron
#

And people can give you better directions if you have a specific idea

wispy yarrow
#

can i do a tile spawner (i build farm, its a hobby)

#

I think it's hard to do

lucid iron
#

I'm not sure I know what tile spawner would do in context of stardew

wispy yarrow
#

thanks you !

ivory plume
#

Monthly mod stats time!

Mod compatibility

80.9% of SMAPI (C#) mods are compatible or have a workaround, up from 80.2% last month.

Unique mods by type

There are 439 more mods this month.

Two notable details:

  • Alternative Textures just reached the #3 spot behind Content Patcher and SMAPI (C#), with 1591 content packs! XNB mods (deprecated since 2018) slipped to #4 with 1572 mods.

  • There's an unusual number of new C# mods, with 115 new C# mods this month compared to an average of 59/month over the last year.

    That seems to be driven at least in part by AI-generated mods (where AI tends to write custom C# code over content packs). That's a troubling pattern; C# mods are less compatible with future game/SMAPI updates than content packs, AI-generated mods tend to be unnecessarily complex (e.g. managing files manually instead of using built-in APIs), and AI-generated mods often seem to be one-offs that aren't updated or maintained past the initial release. AI code generation might be here to stay, but its impact on the health of the modding ecosystem is concerning.

    That said, the impact is mitigated by AI-generated mods so far tending to be very simple, so those mods breaking in future updates will have little impact beyond them (unlike framework mods breaking).

The breakdown of new mods by type is:

  • +246 Content Patcher;
  • +115 SMAPI;
  • +24 Fashion Sense;
  • +21 Alternative Textures;
  • +9 Farm Type Manager;
  • +2 Furniture Framework;
  • +1 Producer Framework Mod;
  • +1 Shop Tile Framework;
  • +1 XNB;
  • 0 Better Artisan Good Icons;
  • 0 Custom Furniture;
  • 0 Dynamic Game Assets;
  • 0 Json Assets;
  • 0 Mail Framework Mod;
  • 0 TMXL;
  • -2 Custom Music;
  • +21 for frameworks with <100 content packs.

Content Patcher packs

We have 13,064 Content Patcher packs.

The top five Format versions remain...

  • 2.0 (3,842 ↗ 3,903), 2.3 (867 →), 2.4 (667 ↗ 668), and 2.7 (495 ↗ 508) for Stardew Valley 1.6;
  • and 1.19 (572 ↘ 571) for Stardew Valley 1.4.

Open source

  • We have 3,899 tracked C# mods, of which
  • 2,350 mods (60%) have a source code repo, with
  • 1,247 (53%) in a multi-mod repo and 1,103 (47%) in a single-mod repo.

The percentage of open-source mods notably dropped from 61% to 60%, which also seems to be affected by the recent trend of AI-generated mods (which are rarely open-source).

Web costs

And finally, web hosting costs for the SMAPI.io site, update-check server, and API held steady around US$206/month. (The graph is always a bit behind due to billing cycles.)

See also

And that's it for this month! Feel free to ask if you have any questions.

ivory plume
#

(Congrats to @polar escarp on Alternative Textures reaching the #3 spot! SDVpufferparty)

gentle rose
#

several of the aigen authors have their code in a repo but don't always link it for some reason

ivory plume
#

If you see any mod repos that aren't linked from the mod compatibility list (when 'show advanced info' is checked), feel free to ping me and I'll add the link.

gentle rose
#

(btw I was wondering, do you check for the license or just a repo link? because I know some people have source-available ARR mods)

ivory plume
#

(Or just ask them to add the link to the description; the monthly update tools will automatically detect a new source link.)

#

Technically 'open source' in the stats just refers to source available. Tracking actual licenses is something I want to do at some point, though it's a bit trickier since it involves calling the GitHub API for each repo instead of just reading the mod metadata.

lucid iron
#

I been wishing that we could start tracking the dependencies too instead of just content pack counts in monthly mod stats

autumn tide
lucid iron
#

Though button's graph is essentially that Dokkan

autumn tide
#

..but also the sheer amount of AI mods is infuriating-

lucid iron
ivory plume
#

Tracking dependencies is a bit more complicated. Every mod has a single type, so it's easy to count; but for example, how do you count one mod with a type, three required dependencies, two optional dependencies, and four fake dependencies that are only used for ordering?

autumn tide
#

the creator who shall not be named

#

at least we got pigduck from em!

gentle rose
#

who has a monorepo that is indeed missed from the compat list and which I'll dm you pathos since it's against server rules to post it obviously

ivory plume
#

(There's one prolific AI author recently, but it's worth noting that I've seen many other new authors submitting AI-generated code too.)

urban patrol
#

at least one of them is encouraging others to try AI modding on nexus and reddit, including posting “tutorials” of how to AI mod

autumn tide
#

that being said the internet tends to foster hate and animostiy very well, and it's the ppl in charge of AI's lack of regulation whom we should be blaming

ivory plume
#

To be fair, being able to describe what you want and often have a working mod in a few minutes is amazing, and it's great that AI makes modding more accessible to more authors. I don't think the issue is with people submitting AI mods necessarily, but with the AI code generation itself (e.g. copyright/licensing issues, not applying best practices, creating mod code that's unnecessarily complex/fragile, authors not being able to maintain the generated code, etc).

lucid iron
gentle rose
#

the only really egregious thing in an absolute sense that I saw one of them do was detect if a decompiler is running and log a notice saying decompilation without permission is banned because someone gave them a heads up there are issues with their code overwriting translations

#

other than that the ai mods mostly just either don't work or don't do much tbh from what I've seen

autumn tide
ivory plume
#

(Do you mean detecting a debugger? I don't think you could detect decompilation.)

lucid iron
gentle rose
#

(nope. they detected if known decompiler apps were running at the same time as stardew. obviously ineffective but that's what they were doing)

#

(they had a list of like five popular decompilers)

gentle rose
pale river
#

what's the difference of {{player}} and @? @ doesn't work for overworld dialogue, and then I think {{player}} doesnt work for the dialogue boxes

ivory plume
#

Do you mean {{PlayerName}}? If so:

  • {{PlayerName}} is a Content Patcher token. It's replaced before the game sees it, so it'll work in all Content Patcher text fields (including overworld dialogue). Note that tokens don't work in files loaded via "Action": "Load", since that's the actual data to load rather than Content Patcher commands; in that case the typical pattern is to load an empty file, then edit the content into it.
  • @ is a dialogue token in the base game. It works in some dialogue and cases where the game specifically supports it.

I suggest using @ in the cases where it works (since that means less dynamic content editing), and {{PlayerName}} anywhere else.

pale river
lucid iron
#

Can you show us this example

#

Alternatively, tell us what you actually want to do

ivory plume
#

There's no {{Name}} global token, but that might have been a dynamic token created by the content pack. If so, all tokens work the same way in terms of content editing.

pale river
lucid iron
#

Oh the text overhead thing?

#

Yeah I don't think it parses the dialogue syntax there, {{PlayerName}} should work Bolb

#

Some mods let people specify their own name/title so that might be why they use a different token

#

You can do that too if you want

pale river
#

I'm also in the process of renaming the internal name of my npc, will this work?

ivory plume
#

Assuming boxosoup.cmx is your mod ID, I recommend "Target": "Characters/Dialogues/{{ModId}}_x" which ensures the mod ID always exactly matches (which improves compatibility with other mods/tools like Lookup Anything).

pale river
ivory plume
#

(Note that you can't use tokens like {{PlayerName}} inside that assets/Dialogue.json file currently, since it's loaded as a raw asset. Feel free to ask if you need any help converting it to an edit to allow tokens.)

pale river
woeful lintel
ocean wave
#

i want to plant bushes that spawn the fruit-

woeful lintel
#

oh yeah, forgot the fruits

#

C# it is then

ocean wave
woeful lintel
#

hmmm... is it possible to patch a vanilla sprite (from the game files) into a custom asset with CP? I'm thinking of frankensteining a FF sprite-sheet together by pulling from vanilla tilesheets to make stuff compatible with recolors automatically.

#

I could also make the hardcoded FF offsets configurable...

ocean wave
#

idk what youre saying,, gulp

woeful lintel
#

that's for my problems, don't worry

lucid iron
#

And it's not something CP itself supports either you'd have to do dumb content pipeline manipulation

#

Almost always better to just have your drawing code do a Load from real asset with the given source rect

silk basalt
#

i finally got him to show up. by using noclip and taking tiny steps till the dialogue box opened alksdjf

#

elliott dialogue jumpscare

woeful lintel
lucid iron
#

If your ultimate goal is to have the FF format be the authority on creating a furniture, it will probably help if you offer a way to use image sourced from content

lucid iron
#

Right now ppl would write assets/bushes.png and have things load from modcontent

silk basalt
#

I FINALLY GOT THE HOME LOCATION TO SET CORRECTLY LET'S GOOOO

lucid iron
#

Could let people write Content:LooseSprites\cursors to use the already loaded cursors texture

#

To skip having a base png

brittle pasture
#

@ivory plume I have some quick Automate questions:

  • Can you have a modded IAutomatable sharing the same tile as a vanilla one? I'm assuming you can't?
  • If you can't, is it feasible to relax the requirement? I believe removing the break here would do it, but there may be other requirements I'm not aware of.
    Thanks so much in advance!
#

(context: I'm trying to add a machine for modded Silos, but if a silo building works as both a vanilla and modded silo only Automate's factory for the former is working)

silk basalt
#

hrmmm
why can't i give him a gift?

urban patrol
#

what are you trying to give him and what happens when you try

silk basalt
#

i tried to give him a bottle of wine and then a daffodil, but whenever i tried it just asked me if i wanted to eat it

#

it's also not loading in his gift tastes at all, so i'm thinking i might have put that in incorrectly

urban patrol
#

if you weren’t adding gift tastes correctly i wouldn’t expect him to work at all

#

hmm

silk basalt
#

should i upload the json again?

#

lemme just

#

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

silk basalt
#

i managed to get all the errors out of it last night that we could find, but

ocean wave
silk basalt
#

he shows up on the map, his introduction dialogue displays after his daily dialogue for some reason...?

ocean wave
#

am i wrong ,,

silk basalt
#

tragically the farmer can only respond to his rizz by giving him a cool rock

#

(autobiographical)

ocean wave
#

giving u an idea

make farmer a proxy

silk basalt
#

yeah vsc is showing as having a whole bunch of errors on the sidebar but i'm not sure why??? i think it just thinks the commas are annoying and while they ARE my nemesis rn i don't think i have anything... incorrect

urban patrol
#

you have ModId.Hugo in your gift tastes

#

instead of _

silk basalt
#

b r u h punctuation is gonna kill me here

#

thank you

urban patrol
# silk basalt

VSC doesn’t like trailing commas but SMAPI allows them

silk basalt
#

i got itttt

#

that. also fixed the intro dialogue too

urban patrol
#

yep gift tastes are a key component to an NPC working right

silk basalt
#

thank you!!!

#

i can get back to the fun stuff now lol

urban patrol
#

also, are you aware you’re currently loading a blank and then overwriting it with a load?

#

for the schedule

silk basalt
#

i just have it input as the sample one was that was linked yesterday, i've been gradually changing things to test them out

urban patrol
#

you can’t use tokens in loaded files so typically you load a blank and then Include an edit

silk basalt
#

i saw on another one of the guides to add a blank one, so i put that in too

urban patrol
#

yep you probably saw tia’s tutorial for the blank

#

what you’re doing right now, the mix of both, is just redundant

calm nebula
silk basalt
#

AHH thank you!! that fixed it

ivory plume
# brittle pasture <@226803198218731520> I have some quick Automate questions: * Can you have a mod...

Automate already allows multiple machines per tile, but it assumes that one entity = one machine. For example, tappers and trees are different machines on the same tile, but you couldn't have two different tree machines for the same tree. We'd need to change more code to support that; in particular we'd need to change the IAutomationFactory API, but I'm not sure off-hand how much else would need to be changed. I'm not opposed to the concept in theory, though not sure when I'd look into it myself unless it's something many mod authors want.

silk basalt
#

is there a way to set a category of cooked items? or will i need to list every item that falls under that category as a dislike? yaethink_anyuki

urban patrol
#

you can set categories with negative numbers

#

see either objects or items

#

also note that specific things will take precedence, so if you have them hate all cooking but like pink cake then they’ll like pink cake but hate everything else

hallow prism
#

in gift taste you can also use context tags, and categories are also context tag

pale river
silk basalt
#

thank you YISS

silk basalt
#

do the buy animal dialogues also work for, like, void chickens and dinosaurs and such? do they work for horses?

#

er, like, the conversation topic, sorry

calm nebula
#

Yesh

#

[*] in English

brittle pasture
#

they do work, though a quirk in the current version makes them only work on the English version

calm nebula
#

[*] in this version of the game

#

But not horses

brittle pasture
#

for horses you can use the structure built CT for the Stable

#

also note that for White and Brown Chickens the game specifically changes them to "Chicken" for the CT

opaque field
#
            "Action": "Load",
            "Target": "Mods/{{ModId}}/Hats",
            "FromFile": "Assets/Items/Hats.png"
        },
        {
            "Action":"EditData",
            "Target": "Data/Hats",
            "Entries": {
                "CacklingCaracal_ShaneHat": "CacklingCaracal_ShaneHat/Hat from Shane/false/false/0/Mods\\{{ModId}}\\Hats"
            }
        },```
#

I cannot get this hat to exist TT

#

Even copying the format of a hat I did get to work, does not work. The png is called Hats.png, it's 20 by 80.

silk basalt
#

oh right! is there a conversation topic for the bat cave specifically?

#

i don't see one on the list but. i could just be missing something so

#

as usual asking Those Who Know Things (you guys!!)

calm nebula
#

Iirc there is not but you could make your own with a trigger action iirc

silk basalt
#

i don't know how to do that but i will keep it in mind!

silk basalt
#

could someone maybe explain very simply to me how to get i18n to work...? i read over the page on the modding wiki last night and couldn't quite make sense of it

urban patrol
#

i18n is essentially tokens. you have your i18n folder, which has the files with the translations in it, in the format of key:value just like any other dictionary. then, in your actual code, you would put {{i18n:key}} and it replaces that with whatever value matches to that key

devout otter
autumn tide
silk basalt
#

basically just how to set it up and how to make the dialogue files i'm working on work with it
i THINK what i know is like... the code calls for the i18n file, which then reads the text based off of whatever the game's current language is (but only if there's a file for it), right?
i'm kinda struggling to focus right now so i'm about to take a break, but since i'm new to all this stuff i feel like i threw myself into the deep end all at once lol

tame moat
#

Anyone have an example of how to prevent something like the farmers sword block animation and replace it with something else? I'm having no luck

lucid iron
#

Did u already skip prefix

tame moat
iron ridge
#

no

#

its skipping the function in a prefix patch

tame moat
#

Okay, I'll do some reading on it. Thanks 🙂

lucid iron
#

!harmony

ocean sailBOT
#

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

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

For more information, refer to the following:

lucid iron
#

I'm assuming you are in C# here

tame moat
opaque field
#

Ok I fixed the missing fields but my hat still doesn't show up { "Action": "Load", "Target": "Mods/{{ModId}}/Hats", "FromFile": "Assets/Items/ShaneHat.png" }, { "Action":"EditData", "Target": "Data/Hats", "Entries": { "ShaneHat": "ShaneHat/Hat from Shane/false/false/0/Shane Hat/Mods\\{{ModId}}\\Hats" } }, it's just - invisible

lucid iron
#

what does ShaneHat.png look like

#

(and once again i implore thee the importance of {{ModId}}_ for your items)

opaque field
#

I will put the ModId back when it works - all of my stuff is in i18n - but sometimes when an error occurs it's helpful to me to strip the mod id and then add it back :p

#

it's a 20x80 image TT

lucid iron
#

are you spawning new hat

opaque field
#

like using CJB? yeah

#

but the tile is just invisible

#

does it have to be an object before it can be a hat?

lucid iron
#

no

#

"{{ModId}}_ShaneHat": "{{ModId}}_ShaneHat/Hat from Shane/false/false//Shane Hat/0/Mods\\{{ModId}}\\Hats"

#

you counted some slash delim fields wrong

#

the texture is position 7, zero indexed

opaque field
#

adding to my list of templated ty ❤️

lapis steeple
#

@deep plume Hey, so I used to use AdoptnSkin a lot and have a big folder of different skins for various animals. I was directed to use your reskins mod and 'just swap in the skins' by someone as a new workaround for adoptnskin not working anymore. But I'm fully confused about how that would work. I wouldn't be opposed to just writing my own mod even to get my old textures to work but looking at your mod has me very confused. Is there any way you could possibly help me figure this out? (I hope this ping is okay. Your nexus says pinging you about compatibility is okay and this is vaguely compatibility related)

lucid iron
#

!startmodding

ocean sailBOT
#

Making mods can be broadly divided into two categories:

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

lucid iron
#

in particular do you know how to use content patcher to edit nested fields?

lapis steeple
#

Yes and I've made mods before

#

But it's been over a year since I last touched one

lucid iron
#

mm as long as you know what TargetField is, we can continue Dokkan

lapis steeple
#

I mean, I've used it before but it's been a good bit since I last reviewed that since I tended to use Target more than TargetField before 😅

#

(aka I know what it is, but forgive me if I forget something dumb)

lucid iron
#

the docs are there if you need refresher

#

here's a example of adding a skin to a rabbit

#

it's the same for basically all animals, you just have to change out "Rabbit",

#

now having the rate be exactly 10% is difficult because skin rand works in terms of weights

lapis steeple
#

ah okay, cool

lucid iron
#

if you have 5 rabbit skins for example, each skin would be 20% chance

#

but if u had 20 they'd be 5% each

#

you can make your skin more rare by having a weight less than 1, like 0.5

lapis steeple
#

welp that answered my question i was about to ask

lucid iron
#

(this is also where i warn you that there are mods that bypass the rand entirely so it might not even matter much in the end)

lapis steeple
#

(I don't use a whole lot of mods and no other mods that change the animals so no worries there)

lucid iron
#

nah i specifically mean alternative textures and livestock bazaar

#

its mods that let ppl pick what skin directly

lapis steeple
#

lol yeah, nope. 😅

#

i was trying to avoid having to do that 😂

#

but okay cool

lucid iron
#

i dont like having to roll for the skin i want hence my decisions kyuuchan_run

#

there is a random option tho

lapis steeple
#

is there any chance there is a way to like, dynamically add more skins to the pool? (ie. if I drop a second tilesheet into a folder named "Rabbits" is there a way to have it pick that up when I load into the game and add that new sprite to the list of possible rabbit skins?) or is that too complicated for content patcher?

lucid iron
#

well it is a list

#

if you mean like "can i do this without writing more jsons" the answer is no

#

but u can do it with very little json if you use local tokens

lapis steeple
#

yeah that's what I meant. I had been wondering if there was some way to set it up so if I get more tilesheets of sprites I could just drop them into the respective folder without editing the code at all and it would just.... work. 😂 it's no big deal if not, it just would have been nice

lucid iron
#

this is the same example as the one i sent earlier except im using a local token L@Kind

#

after that, i do this to include it

{
  "Action": "Include",
  "FromFile": "data/rabbit-skin.json",
  "LocalTokens": {
    "L@Kind": "Red",
  }
},
#

now it's all setup to pick up assets/RedRabbit.png and assets/RedBabyRabbit.png and put that as a rabbit skin

#

if i made a GreenRabbit + baby i do another include but with "L@Kind": "Green",

#

content patcher's design is that you must declare what changes you want to make to the game's content via patches in json, but it has features to make declaring these things easy

lapis steeple
#

is something like "L@Kind": {"Red", "Green"} possible? So you only have to tack on another variable name?

#

(as opposed to copying the entire block)

lucid iron
#

nope, the content modder's yearn of foreach continues Dokkan

#

for ref this is what the full content.json looks like, while the earlier examples are actually data/rabbit-skin.json

lapis steeple
#

lol sorry. I'm a programmer 😅 for loops just come naturally to me 😂

lucid iron
#

yea me too AnnelieStare

#

it is a bit of running joke that we get ppl wanting such a thing every few weeks

#

and it would be nice, it's just a complex problem bc u can have more than 1 LocalTokens, as well as nested LocalTokens

lapis steeple
#

(part of me is just like "maybe I should just make a full smapi mod in C#" and another part of me is like "I don't want to bring work home" 😂 )

lucid iron
#

i had a mod that went 4 layer deep b4

#

bc i did want bootleg for for loop lol

#

so for now u can at least reduce it to only duplicating the include block

#

while the actual skin adding is templated

lapis steeple
#

I mostly just have one mod that someone else made that I edited to hell and back to make it match how I wanted it to be for myself, but it was a fairly simple mod that mostly dealt with editing schedules and making content patcher animations work right

#

but cool awesome. thanks for the help!

lucid iron
#

if u want to mass apply this to multiple kinds of animal

#

the "Rabbit" part in target field itself can be a local token too

lapis steeple
#

ooo

brave fable
#

was it ever mentioned whether loops not being present in CP is a design decision or a technical limitation?

lucid iron
#

it does have example for the sheep tho, who has harvesttexture

lucid iron
#

i believe it's not implemented simply cus no one can agree on the syntax for it

brave fable
#

the ISO CP design committee has much to discuss

lucid iron
#

stuff like how do u express the equiv of foreach ((a, b, c) in tokensABC) vs foreach (a in tokensA) { foreach (c in tokensC) { foreach (b in tokensB) { } } }

#

would you like to contribute a PR bluebs

#

sneak it in before pathos notices

brave fable
#

sure, i'll PR in an excellent footnote in the readme explaining why it's not feasible

lucid iron
#

ty blueb i knew the commitee could count on you

lapis steeple
#

I def could use it 😂 just for rabbits alone I have 29 and copying and pasting for each one is tedious, and I have about that many for every animal

#

wait question. the FromFile for the copied and pasted part, do we not need those to ...be a real file?

lucid iron
#

they will be resolved to a real file

#

my example had this right "FromFile": "assets/{{TargetWithoutPath}}.png"
and there's 2 targets separated by , but let's look at the first one {{ModId}}/{{L@Kind}}Rabbit

#

if L@Kind=Red tokens there resolves to <whatever you have in UniqueID in manifest>/RedRabbit

lapis steeple
#

No I meant for the copied and pasted part

lucid iron
#

{{TargetWithoutPath}} splits that and takes the stuff after /

lapis steeple
#

Like

            "Action": "Include",
            "FromFile": "data/rabbit-skin.json",
            "LocalTokens": {
                "L@Kind": "7" 
            }
        },```

Does  "data/rabbit-skin.json", not need to be a real file?
lucid iron
#

which becomes assets/RedRabbit.png and that should be a real file you have otherwise error

#

the data/rabbit-skin.json is a real file

#

mod has these files

assets/whatever.png
data/rabbit-skin.json
content.json
manifest.json
#

however, u can use tokens in FromFile if u want

lucid iron
#

and the template without for others

lapis steeple
#

how are they all coming from 1 file?

lucid iron
#

well they are the same file

#

but they are given different values for the localtoken L@Kind

lapis steeple
#

So you are loading like 10 skins from a single file?

#

Or 10 versions of the same skin?

lucid iron
#

im adding 10 skins but reusing the same template

#

with only small change wherever i put {{L@Kind}}

lapis steeple
#

I'm so lost

lucid iron
lapis steeple
#

yes

lucid iron
#

the 2nd example involves 2 jsons

lapis steeple
#

Okay. I'm just gonna send what I have so far because this is confusing me more. I so far have this content.json https://smapi.io/json/none/6b3f5b77e1894f44b322971ca2660798 and the files are in a folder called Skins with subfolders for each animal type, with every animal named a number and has a corresponding Baby version where applicable. Should I be changing the FromFile in the many repeated parts to the exact filenames? Doesn't that defeat the purpose?

lucid iron
#

you need to have the parts you want to repeat in a different json

#

to be included Bolb

#

as you may know include is a way to have content patcher load patches from a different file

lapis steeple
#

🤦 you didn't mention that before. but i digress that is besides the point here

lucid iron
#

well, that's why i started off asking if you read the content patcher docs Dokkan

lapis steeple
#

Like I said, I know the concepts but I have forgotten some bits

#

but i would have figured that part out on my own when it didn't work

lapis steeple
#

but again, it's entirely besides the point

#

and not the question

lucid iron
lapis steeple
#

I'm starting to get frustrated with your insistance on going on about something irrelevant to the question

#

I got it

#

move on

lucid iron
#

it's not irrelevant to the question though

lapis steeple
#

yes it is

#

i'll seperate it into two files

lucid iron
#

ok cool thanks

lapis steeple
#

okay, now that that is covered. Answer the question

lucid iron
lucid iron
#

and the number is the only thing that changes each time

lapis steeple
#

Did you look at the file I sent beyond the fact that it's all in one? Yes. The question is if the FromFile file in the copied parts has to be each individual file by name or if it's basically just a random placeholder that doesn't actually matter

lucid iron
#

i don't have a way to magically see your filesystem

lapis steeple
#

You don't need to

lucid iron
#

and im confirming we are on same page

lapis steeple
#

Then no

#

we are not

#

You seem to not understand the question

lucid iron
#

look if you are going to be like this im gonna go and actually code some mods

#

good luck to figuring it out though i believe in you

lapis steeple
#

Honestl we need a mod here because my god. I don't understand how you can be this unbelievably rude

lucid iron
#

im not sure why asking for a confirmation on whether im understanding something correctly is rude

uncut viper
#

the way i see it, chu has been exceptionally patient and polite

tiny zealot
#

i'm not a mod, but maybe i can change the subject. hey chu, how are you, happy new year etc.

lapis steeple
#

I ask 1 question and you first insult my code, then refuse to move on from one minor error that I already confirmed would be fixed, then get annoyed at me for not wanting to go into tangents that cannot possibly answer the question

#

So yes, it's wildly rude

lucid iron
lapis steeple
#

this shouldn't be a hard question. is it a placeholder or not

hard fern
#

I can't believe it's the end of the year already

lapis steeple
#

fuck it. Im not modding anymore. You've ruined my enjoyment of this. Bye

hard fern
#

I don't make new years resolutions, not really but i hope i can get some more stuff done

#

Maybe finish an npc mod for once haha

lapis steeple
#

@outer glacier

tiny zealot
hard fern
#

I always end up just kinda losing steam

#

Bc the initial excitement fades

summer spoke
#

The guide says that I need to Download SMAPI first. Can I use Vortex or do I need to download it straight to my computer?

hard fern
#

And sometimes i look at the ideas i have and go "why did i think this was a good idea"

hard fern
uncut viper
#

SMAPI itself is not a mod, so Vortex wont work anyway afaik (unless it got support for installers like SMAPI when i wasnt looking)

summer spoke
#

Right, thank you

#

Sorry, the last time I tried to make a mod I had to facotry reset my computer just to play the game again. So I thought I'd start slowly this time to get this right, so I might be asking dumb questions if that's okay.

hard fern
#

We all have to start somewhere

summer spoke
#

Right. Let's hope this time is a bit more successful, lol.

hard fern
#

Good luck

summer spoke
#

Thank you

tiny zealot
gentle rose
brittle pasture
#

IIRC (never used it) vortex does things by treating every "mod" as an atomic modification to the virtual filesystem, and "uninstalls" a mod by rolling the filesystem changes back

#

so SMAPI can just be another mod by its definition

#

now in practice I'm only trusting the software making those changes if the author is like "Linux kernel developer" level of expertise

summer spoke
#

Okay, so I've thankfully made a backup of Stardew Valley which I think is part of the problem I ran into last time. Now it's talking about C# and JSON, but I don't really know which one I need to make. Can I talk about what I want my mod to start as and be told which one I'm aiming for?

brittle pasture
#

sure, that's a common inquiry 'round these parts

summer spoke
#

I want to start by kind of saving this kid that passed out which would lead you to waiting until they wake up and eventually lead you to a new map, so I don't interfere with any other maps. I want to introduce a small story and introduce a number of NPCs as well, so I'll need to put in work with their heart stories, but I don't want to get overwhelmed so I want to start with the kid first.

brittle pasture
#

NPCs, maps and heart events are all doable with content packs

#

!npc we have some nifty tutorials and templates here

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:

summer spoke
#

Right, okay. Thank you.

#

This might be an odd question, maybe a bit of a dumb one, but I'm not artistically gifted. If I manage this, can I sort of pay for someone to help me with the designs?

gentle rose
#

yup!

summer spoke
#

Great!

#

Thank you

gentle rose
#

!commissions (but be careful using that word in this server, you'll get scam dms)

ocean sailBOT
gentle rose
#

honestly there's a chance what you've already said is enough to get you some scam dms so be careful

summer spoke
#

Will do. Thank you

brittle pasture
#

yep, ignore all incoming friend requests

gentle rose
#

but that link has the info of a bunch of artists who do stardew commissions who you can reach out to

summer spoke
#

I'll be sure to favorite it, just to be sure I don't lose it

pale river
#

does anyone have any tips for making schedules and festival for npcs, I got the code part finished; I'm just not creative when it comes to making schedules + haven't installed any debug mods to help me with coordinates yet

ornate locust
#

You can keep schedules simple as you like. Be warned festival positions are a headache for compatibility.

vernal crest
#

I don't think schedules have to be fancy

#

It's a real pain as a player to have to try to find NPCs with really complex schedules, and pretty much nobody is going to be following NPCs around to see what interesting things they get up to. So if you just give them a few stops per schedule at places that it makes sense for them to go to, and give them at least as many schedule entries as a vanilla NPC, you'll be doing fine.

pale river
peak halo
#

How hard would it to make a mod that replaces your starting house with a tent and have it where you have to get Robin to build the starting house?

ornate locust
#

There's a site that can help with festivals mostly, but it's not entirely accurate anymore. I think SVE did some change right after it was made, and several people with NPCs saw their guys were standing on other guys and moved them which had a sorta domino effect. Not even counting new stuff that's come out since.

#

But it will speed up picking spots a lot anyway

pale river
#

I was so bad doing coordinates I put him in the bush by accident 😭

iron ridge
ornate locust
#

oh man I should have taken note of the ones I noticed when I was doing my stuff

#

But I was overwhelmed by all the positioning

summer spoke
#

Right, so I've gotten to the point of downloading SMAPI, but it's asking me either nexus, github, and curseforge. Since I want to use nexus, I think that's the right one. But then, do I manually download it? Also @peak halo that seems like a really fun challenge!

iron ridge
#

it doesnt really matter which you use for smapi, github is probably the easiest in most cases

vernal crest
summer spoke
#

Right, okay thank you.

iron ridge
#

@ornate trellis merged your pr! i didnt notice it until know SDVpuffersquee

ornate trellis
#

oh nice, wasnt sure if I did it right but good to know xD

iron ridge
#

theres some minor syntax issues but ill fix those

vernal crest
iron ridge
#

all deployed now

pale river
iron ridge
#

very possible

ornate locust
#

There's a lot of NPCs out there

iron ridge
#

this isnt even all of them its just the ones with positions

pale river
ornate locust
#

I'll have to figure out how it works and add Bill sometime.

ornate locust
#

Sometime when the sky isn't exploding

#

(Fireworks guys it's 9, new year isn't for three hours, are you going to be doing this the whole time???)

vernal crest
#

Do you not normally have early fireworks for kids?

#

The fireworks start here as soon as it gets dark at 7pm

ornate locust
#

I live in the middle of a forest

#

Whoever's doing the fireworks is just some guy

pale river
peak halo
vernal crest
#

Ah yeah not quite close enough for city ones lol

ornate locust
#

They shoot em off over a nearby lake

vernal crest
summer spoke
#

Good news! I have successfully run SMAPI! Bad news, it's telling me that it's skipping a mod I deleted through nexus? Is that something I need to worry about?

#

Also, Happy New Year

vernal crest
#

You can't delete a mod through Nexus, Nexus is a website. Are you referring to either Vortex or NMA?

summer spoke
#

Right, Vortex, my bad

vernal crest
#

(Pedantry is because it's hard to know what's happening when words get mixed up, not just for the sake of pedantry ^_^)

#

Recommendation: yeet Vortex

summer spoke
#

Yeet Vortex?

vernal crest
#

Also, didn't someone mention before that this isn't the right channel for getting help using mods?

#

Or are you trying to start making mods?

vernal crest
ocean sailBOT
#

Vortex isn't recommended for Stardew Valley.

It's hard to troubleshoot and often causes issues like SMAPI/mods not being installed or updated correctly, files mysteriously disappearing, crashes, etc. Volunteers here often can't help with Vortex issues.

Some options:

(See also the Nexus App feedback thread, if you want to help Nexus avoid the same issues in their upcoming replacement for Vortex.)

summer spoke
#

Make a mod

vernal crest
#

All righty carry on then ^_^

summer spoke
#

But I'm following the guides so I'm not using Vortex. I thought I could use Vortex for playing, but is that not something I can do? Will it break the mod I'm hoping to make?

vernal crest
#

Vortex always has the possibility of breaking any mod

#

We recommend not using it for Stardew in any capacity at all

peak halo
vernal crest
#

If you want to use a mod manager, Stardrop is made specifically for Stardew

summer spoke
#

Right, okay

#

I'll look into it. Thank you

pale river
vernal crest
vernal crest
iron ridge
#

there a difference in the data files so it refelcts that

pale river
pale river
iron ridge
pale river
peak halo
vernal crest
ocean sailBOT
brittle pasture
#

my professional opinion is that it's going to be a pain in the ass

ornate locust
# iron ridge please submit PRs for any tweaks you'd like tweaked :)

Pillows, a question for the future: I imagine showing both spots for NPCs that move after events would probably clutter things up, but would what about NPCs that only show up after events? Like Claire, Scarlett, Martin, and Gunther in SVE. Basically like Kent in vanilla. I'm gonna scrape together some little problems I noticed while using this last, and want to know if you want those included.

brittle pasture
#

but the old adage applies - if there's a will there's a way

peak halo
vernal crest
#

Since 1.6 the game has had a native option for adding additional farm types and we can use Content Patcher to edit that asset to add our own

silk basalt
#

how hard is it to add a new map to the game? and is it possible to use that map editing mod to. er. edit it? yaethink_anyuki i’ve tried using tiled before but i wasn’t really happy with what i made,,, the eternal struggle lol

summer spoke
#

This might be a really dumb question, and I'm sorry for even asking, but I'm being told to create a subfolder. That's basically just a regular folder, right? Not a zipped one?

brittle pasture
#

you, the mod author, has to make it to start with, and that means entering the Tiled mines

ornate locust
# iron ridge whats the current behaviour?

None of those NPCs are shown on the map, so if it hits Y3, a modder might find out their character stands on top of Morgan, for example. But Morris does show up, even though he's also unlocked by an event. I'm not quite sure what the difference is.

silk basalt
#

(whatever your main folder is)

summer spoke
#

Thank you

silk basalt
iron ridge
#

@crude plank why are they different pls thx SDVpuffersquee

ornate locust
#

I can get the positions for those if you want, I just wasn't sure what was wanted. Also Krobus in Halloween, he's added after you meet him, he's missing

#

but I bet that's because he's a map patch that adds his little icon, so it's an odd way of adding him

calm nebula
#

Someone should make an npc that randomly selects an open tile to stand on

#

Per event

#

Randomly

#

That npc should also have a 30% chance of being a cat

summer spoke
#

Also, is there a reason why everything is popping up in the notepad instead of word?

#

You can't go wrong with a cat!

tiny zealot
iron ridge
#

because you shouldnt be editing jsons in word..

ornate locust
#

My favorite bug though: Andy uses Sandy's icon. For some reason. The filename for it does appear to be Andy, but it's Sandy's face, which is very funny

summer spoke
#

Right, okay. Thank you

vernal crest
ornate locust
#

the fireworks have become quieter, so I'm trying to backtrack and find stuff I remember noticing, huzzah

tiny zealot
ornate locust
iron ridge
#

hmmm

#

i think thats another scarlett question

ornate locust
#

Also it shows Marlon on one spot in SVE but MarlonFay stands next to him, even though Marlon himself never exists in SVE. Could probably just scoot him over so people know the spot "Marlon" stands on is free in SVE

iron ridge
#

hmm

#

could probably add a way for the system that adds in vanilla spots to sve can ignore ones even with different npc names

ornate locust
#

(I tried to make someone stand next to Marlon, but MarlonFay was actually standing there and I didn't notice because his icon is an error and thus invisible)

pale river
ornate locust
#

Actually several SVE Fair Year 2 positions seem off, maybe because they're changed in the map and not in text anywhere

#

weird

iron ridge
#

hmm