#making-mods-general

1 messages · Page 350 of 1

proud wyvern
#

The garbage collector is smart enough to figure out these make a self-containing cycle that isn’t reachable from anywhere else

calm nebula
#

It's less that it's smart enough and more that it doesn't even use that strategy

proud wyvern
#

Python also does reference counting? Huh

woeful lintel
#

I've never had to worry about GC before right now, so I didn't know anything about these different strategies

calm nebula
#

I'm a nerd

proud wyvern
#

You basically still don’t have to worry

woeful lintel
#

well, I would if it was in python apparently

proud wyvern
#

Fortunately we’re writing mods in the better language

calm nebula
#

Yeah, python also will occasionally mark and sweep

proud wyvern
#

Jk jk

#

(Although I do dislike Python)

calm nebula
#

Also tbh 97% of the time I write python I expect the script to finish in less than 20min

#

I like python as my fast glue scripting language

proud wyvern
#

20 mins still sounds like a lot

woeful lintel
#

yeah, that's why I don't know shit about GC

calm nebula
#

I think I rank languages: python if i want fast dev and don't care. C# AOT if I care a little more. Rust if I really want speeeed

#

Those are my picks

#

I also really need to learn zig

#

But yeah, python used to care about cycles. Not anymore

#

I'm not 🍏 enough for swift sorry

proud wyvern
#

I’m not advocating for Swift

woeful lintel
proud wyvern
#

It’s non-existent on non-Apple platforms after all

#

I stopped caring about AoC when they made a rule that you shouldn’t push your puzzle inputs to your repo

#

I’m here to have fun, this makes it less fun for me

#

So I’m out

calm nebula
#

I really want to learn zig

proud wyvern
#

What’s stopping you?

brave fable
#

gestures broadly

calm nebula
#

Time.

#

Turns out I have a lot of other things I want to do

woeful lintel
hard fern
#

knitting the national parks...

woeful lintel
calm nebula
#

For large scale data processing

woeful lintel
#

why do you want to have your puzzle inputs into your repo? (genuine question, I didn't know about that so they are in mine)

proud wyvern
#

Unit tests

#

Well

#

I guess not unit tests actually

#

Unit tests work on test inputs normally

normal rain
#

is there a reference guide for the game content dictionaries? I'm looking at the Data/Fish output and I'm not sure what all the fields mean

eg for pufferfish the game dictionary has this:
Pufferfish/80/floater/1/36/1200 1600/summer/sunny/690 .4 685 .1/4/.3/.5/0/true'

I can see the first three are the name, difficulty, and movement style, but I don't know what the 1 or 36 are, then we have the time range, season, and weather, then I don't know what any of the rest means

iron ridge
#

[[Modding:Fish_data]]

normal rain
#

ty apparently I suck at navigating the wiki modding data

vernal crest
#

It's not easy to do at first imo

thorny tiger
#

should i just keep adding npcs to my mod until i can't think of a good reason to add them or should I cap it at some number so it's not as overwhelming

hard fern
#

to start with at least

thorny tiger
#

i should specify I'm making a major expansion

hard fern
#

it's better to go in with an idea of how many you want from the start vs adding more as you go imo

#

since a fair bit of work goes into making npcs

#

even for an expansion, you dont want to bite off more than you can chew

thorny tiger
#

the last thing I'd want is for the area to feel empty

vernal crest
#

It also depends whether you want your NPCs to consist of multitudes of not very fleshed out characters, fewer characters with more depth, or many deep characters that it takes you about 200 years to finish xD

thorny tiger
#

it's planned to be a reasonably big area so I don't want to do too few but if I do too many it might be worse for a player idk

thorny tiger
lucid iron
#

Do you have a central theme in mind

#

Besides just "there's some blokes in a lil neighborhood over there"

vernal crest
#

I personally prefer fewer but deeper characters than meeting many characters who don't really feel real, but all three are valid approaches.

thorny tiger
#

it's a faraway island that's pretty much isolated from the rest of civilization until the farmer finds out how to make warp totems to the island and sets up a connection between the valley and the island

#

so really I need enough characters that they can function as a society

#

it's a town-sized island don't get me wrong

#

that or all the inhabitants are in one town on the island I'm not sure yet

lucid iron
#

Ginger island has like 2.5 characters so I think it's about the vibe you want to set

#

It's also about keeping your scope tight

thorny tiger
#

ok so maybe I tone it down from 18

lucid iron
#

Don't overwork yourself for it y'know, it is hobby in the end

hard fern
#

mhm

vernal crest
#

18 characters is hitting "minimum two years development even at top speed" for me

lucid iron
#

Maybe u r just npc fiend and wish to make 30 characters, or maybe u rather make town pretty Dokkan

thorny tiger
#

one day I'll finish the mod then die two days later from old age

vernal crest
#

I've been working on a single NPC for over a year

hard fern
#

SDVpufferflat im like torn between "ok keep this at a manageable scope" and "waaah i wanna make characters" myself actually

karmic gust
#

You could frame it as what stories/personalities you want to share and go from there. Does XYZ plotline go well with an existing character you have in mind, or would a new character suit it more

jaunty shuttle
hard fern
#

i thought i would just make one npc to start with to prove i could but honestly i can't just make one singular npc for the sake of it 😔 i want them to have friends and Lore TM outside of the valley

thorny tiger
#

ive got so many npc ideas for the island but i really don't know

#

if it helps they don't have any friends in the valley it's all pretty self contained due to the nature of their society

#

so I'm not spending time trying to make everything compatible

#

maybe at some point I add NPC timetables for coming to the valley once you build a permanent portal but that seems like a priority B

#

basically I'm in my very standard game dev phase of "oh my god wouldn't it be so cool if" and adding another 2 weeks of dev time every time I do that

hard fern
#

🤔 my current weird problem is not really having a good idea as to why on earth the farmer would ever interact with my npcs. i wanted to tie the wizard into it in some way, like an old associate of his is asking for help, but he's got his own problems and so he offloads them onto the farmer instead....

#

but i havent worked out what it is that said associate would actually need help with

thorny tiger
hard fern
#

XD from 0 to 100

calm nebula
#

There is also like. You can do a minimum viable mod and add more later

#

That's fine

thorny tiger
#

"hey I need a hand. you know, when you've got time, nothing urgent, I just forgot the 'save the entire world' spell and I'm pretty sure I need it"

calm nebula
#

So if something (like seasonal outfits) seems hard and time consuming save it for 3.9

karmic gust
#

Ooh maybe wizard's associate had an apprentice that abruptly moved and now they have a boatload of work to do but can't get it done alone

thorny tiger
#

yeah I'm ASS at art so sprites and portraits are gonna take me a hot minute

hard fern
#

i was actually thinking something like that, like his associate calls him up like "hiiii rasmodeus i know we havent talked in a while but i need a favor 🥺"

karmic gust
#

Wizard: "this isn't about a pyramid scheme right?"

hard fern
#

oh wait i have the perfect idea now

thorny tiger
#

🥺🥺

#

alright banger idea

#

I'll make the island

#

then on every second building

#

I slap on a coming soon sticker

#

and all the NPCs that would live there just don't exist

jaunty shuttle
#

Ghost town. I approve

rough lintel
lucid iron
#

I mean u can make 1 npc

vernal crest
#

Don't release an unfinished mod! You'll doom yourself!

thorny tiger
lucid iron
#

Then u make another

#

Eventually u move them all into a town

thorny tiger
#

i wish

vernal crest
#

(Adding extra content after release is different to "here are four maps with literally no content" etc)

lucid iron
#

I think passerby cemetery (rip) is basically that

thorny tiger
#

but they're pretty defined by their environment

lucid iron
#

But even then it got too much for clown and had to tune it back down to just hand full of npc

#

You can also let the Big Expansion of All Time stew while you do some smaller mods

thorny tiger
#

it's probably silly for this to be my first project

lucid iron
#

Ppl yelling at you that "ur mod borked >:(" is part of learning process too

thorny tiger
#

realistically it's silly to make a magnum opus your first piece

vernal crest
#

You can just do what I do and work on other stuff on the side

thorny tiger
#

...but

#

on the other hand

#

it would be really funny

rough lintel
thorny tiger
#

i just show up, drop a huge expansion and disappear into the void except to hand out updates like an unreachable entity

vernal crest
#

I have two mods published that I started after starting Hiria and finished quickly (though I do want to expand on Apollo I just don't know how. Plus it's not like anyone is banging my door down demanding more content for him lol)

thorny tiger
#

ominously "i am here to update Eldermyst"

rough lintel
#

makes me wonder if flash ever had any aspirations outside of sve before it became his full time thingy

thorny tiger
#

disappears

karmic gust
#

It is a big first project but also if that's something you really wanna see in your game then you should go for it (if you're having fun making it!)

jaunty shuttle
thorny tiger
jaunty shuttle
#

Mine is more like “ok what would be cool. Now what would be cooler. Oh no that’s a lot of work. But ooo this would be awesome too. Omg that’s so much work. But it would be so fun if I just showed up out of the blue and did all of it on my first project I think I’ll do that eventually.”

#

And then procrastinate doing it for eternity

hard fern
#

honestly my lack of... motivation to actually work on the dang thing... is stopping me. it's not like im not happy with it, i just dont want to look at all the work i have to do 😔 who likes plugging in individual machine rules all the time.. not me.

#

well the good news is i have a fun idea that i want to make the core of my npc mod that has absolutely nothing to do with the mod i was just thinking about

rough lintel
#

but then again, i love working on everyone else’s mod BUT MY OWN because i’m just a little silly

#

i’m like a guided missile. point me where you want a task done and i will do it with max efficiency

#

but then i look at my own mods and go “ehhhhhhhhhhh”

hard fern
#

😔 basically the mod i have like 60% complete is being stalled by me not wanting to do machine rules and pricing... i dont know how to price things at all.... lol.

#

ill probably like. eventually get around to it lol

rough lintel
#

oh me either. but i can assist with machine rules if u want :3c

hard fern
#

thanks, but its less figuring the rules out and more "copy paste this 9 billion times" 😔

#

i can do it, i just like complaining sometimes

thorny tiger
karmic gust
#

Something that helped me when I was at that point with mine was breaking down every little thing I still had to do and putting it on a checklist. Then, as I completed the small tasks I could see the progress, and it felt good marking them off

#

I mean it was a ridiculously long to-do list but it helped a lot

thorny tiger
#

i end up doing that but not breaking it down enough and it ends up being like 2 months and I check off 1 thing and it's like "ahhhhhhh... progress???"

hard fern
#

ill make a checklist right now more like the last checklist i had was in a private discord server that i then forgot to actually update....

#

ill go update that checklist...

rough lintel
#

it was like way easier than just “do the event”

karmic gust
#

Yeah same! That's pretty much exactly what I did too

rough lintel
#

because scripting an event without syntax is easy, but sitting down and locking in to go /speak Scrimblo and /move Scrimblo is like. pain

gaunt orbit
thorny tiger
gaunt orbit
#

Trust me it's not worth it

thorny tiger
oblique echo
#

hii, I'm trying to make an NPC on content patcher, but everytime I load the game he doesn't spawn and it says that the game couldn't find his xnb file SDVpuffersob

gaunt orbit
#

Making something people like? That's nice. People begging you to turn it into an unpaid part-time job? Less nice

hard fern
#

i broke the 4th wall in an item description in my mod 😌 that way i dont have to come up with a serious description

thorny tiger
#

I've been working on something for like two years and it's still not out which to be fair is entirely my fault but i just have other things to do and I don't think people quite understand that they are not giving me money and thusly I have more important things to do

hard fern
#

i get that

#

like yeah i wanna get a mod out... but there's 0 incentive for me to do so other than my own willingness to do so... so

thorny tiger
#

like sure send me £50 and I'll have a major update done in a week but you aren't gonna do that

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.

thorny tiger
#

im gonna try to finish my mod before everything on my "damn it still hasn't updated to 1.6" list is updated so that I can add my mod to my (soon™) modded playthrough and cringe every time I read my own dialogue

ocean sailBOT
#

Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home Single Language, with 38 C# mods and 1 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

oblique echo
#

(the outdated mods are unrelated to the mod, like fashion sense)

vernal crest
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
hard fern
#

sigh im just gonna throw my hands up with the pricing. if someone wants to complain that it's not balanced idc

#

this is why i shouldnt be trusted in finance 😔

wheat finch
#

People will complain no matter what. I get so many complaints on my craftable auto petter mod.

hard fern
#

ill just put a disclaimer on the mod page itself that i made up the numbers

idle lantern
#

don't be sorry! you didn't do anything wrong 🙂 Thank you for letting me know 😄

idle lantern
tiny zealot
wheat finch
#

I didn’t do a great job explaining the mindset behind why it’s so ridiculously cheap to craft the auto petter in my mod. It’s led to so much griping about how cheap the material cost is lol. But if I made it ridiculously expensive I’d also get complaints.

#

Maybe I should do a 2.0 that adds more lore to it.

oblique echo
vernal crest
oblique echo
vernal crest
oblique echo
vernal crest
twin wadi
rough lintel
urban patrol
#

anyway i’m a big proponent of go big or go home for your first (that’s what i’m doing and it’s a lotttt of work but i’m finding it so much fun!)

#

i also did the “put two NPCs in, add the rest later” approach, and blocked off my unused maps behind in-lore reasons (for example, the butcher shop got blown up in the show it’s based on, so it’s closed and under construction in the game rn)

calm nebula
#

Some people use Trello

spiral lion
#

Hello! I am despirate for help regarding event modding 😮

I am trying to make an question in the mod, kind of exactly like Pennys cooking question is set up. I cant get it to work. The event works fine until the question.

ERROR LOG: https://smapi.io/log/4395092f11ba49ea8793492ded8e9a32

LINE IN EVENT:
/speak {{ModId}}_Hazel "$q 730 event_drunkcaregiver#You ever feel like you're doing everything you're supposed to, but you're just... not enough?#$r 730 50 event_drunkcaregiver1#Oh, you're doing great, Hazel. It's okay to feel overwhelmed.#$r 731 -50 event_drunkcaregiver2#Maybe you should try to cut back on drinking to feel better?#$r 731 -20 event_drunkcaregiver3#Your grandma needs you to be strong right now Hazel."/pause 800/speak {{ModId}}_Hazel "$p 730#You really think so? Gosh... means a lot. Yeah, maybe you're right. Jus'... a lot. Thanks, sunshine. Really.$2|Oh, look at the perfect little farmer handing out life lessons. Yeah, cause that's what I needed right now. Thanks for the insight.$7"/

ocean sailBOT
#

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

royal stump
wheat finch
gentle rose
calm nebula
#

Get good

thorny tiger
#

so.

#

wiki says dont make a tiled map from scratch ever and to use a vanilla map as base

#

because the game requires some things

#

but it doesnt say what things

#

what exactly is stopping me from just using a new map

tender bloom
#
  1. layers of specific names
  2. preexisting tilesheets
  3. tile size grid is v strict
#

It's not impossible

tardy adder
#

I has question, Warp map properties can also work for npc?

tender bloom
#

you just have to be detail-oriented

thorny tiger
#

because at the moment id really just rather not have to find a map in vanilla that has an appropriate size

tender bloom
#

Just chop a map up or make it bigger

#

you can resize

thorny tiger
#

that i did not know

#

is there any way with tiled to make movement snap to grid

#

dont want this

royal stump
tardy adder
#

Thanky ^^

#

Oh also another question, lockeddoors can also be used by npc in terms of pathing?

#

This is majorly me not knowing much about npc pathing o(<

royal stump
#

I'm pretty sure that affects both too, though I'm not 100% sure

karmic gust
thorny tiger
# karmic gust

completely missed this thank you you absolutely lifesaver

latent mauve
#

Well, I know in vanilla some characters (like Gus) can enter Pierre's shop, for instance, when it's still closed to the players. Unsure if that's some hardcoded silliness though, instead of them disregarding the lock.

twin wadi
#

aaaand now i have to make the custom map for the shadow village....and a bunch of tilesheets. honestly maps are my least favorite tbh

rough lintel
#

maps are on the more iffy side for me. dont like em. but if i lock in its ok at best

#

i have never felt joy making a map

#

just relief that its over

#

LOL

twin wadi
#

mhmmm honestly im just relieved that it works and smapi isnt screaming at me afterwards

twin wadi
#

wait yay im a cheeto now SDVpuffersquee

blissful panther
latent mauve
#

Congrats on your cheeto dusting

blissful panther
#

(I can't take credit for it, but I can do the first cheeto emote to celebrate. SDVkrobusgiggle)

twin wadi
#

haha thats a cute emote

thorny tiger
#

guys how the heck do i unselect in tiled

#

i accidentally ctrl a and suddenly AAAAAAA

twin wadi
#

r on keyboard, then click anywhere outside

#

like, in the canvas but off the selection i believe?

thorny tiger
#

tysm

calm nebula
#

In my headcanon Pierre is just better friends with Gus than he is with you

twin wadi
#

anyone know where the sprites for campfires are? like the one with the fire, not when you put it out

#

im gonna check cursors rl quick -

urban patrol
#

yep it's cursors

#

inside a border near the bottom

twin wadi
#

ohhhh i see it

#

thanks

#

when it doubt, its cursors SDVpuffercry

tender bloom
hallow prism
#

and they may have business arrangement because gus needs to cook his dishes before a certain hour, and you can plant your seeds at any point during the day 😄

gentle rose
#

maybe our character is just a bit inattentive and the door was never locked in the first place

#

the farmer just refuses to try it outside of when they have permission SDVpuffersquee

#

my favourite thing is having noclip on and getting stopped by a locked heart level door that somehow still stops you so you step one tile to the side and walk through the wall instead SDVpuffersquee

languid matrix
#

Are there any mods that add Junipers or Yews to Stardew Valley as fruit trees?

hallow prism
#

hmm

#

i think cornucopia has junipers as bushes

#

i am not aware of yews

languid matrix
#

Fun fact: The fruit that Junipers and Yews make are NOT true fruit (as they don't make flowers AND are closer to pine trees than any flowering plant) but rather they're modified cones.

#

It would be interesting to see them in-game.

hallow prism
#

is yew fruit toxic?

languid matrix
#

The seed is still toxic though.

hallow prism
#

i see! must be tricky to only extract the edible part, altought i think it's the same for cashew when the edible part is surrounded by toxic stuff

languid matrix
lucid iron
#

would they actually be wild tree seeds

languid matrix
half tangle
#

If I'm using someone's API, does it matter if I leave the namespace in the interface as theirs or change it to my own? I see folks doing both across various mods I've checked.

calm nebula
#

Not to pintail

half tangle
#

That works for me - I'll stick with leaving theirs, then (and just add a using when needed)

proud wyvern
#

That’s what I do nowadays, yeah

oblique echo
lucid iron
#

remind me if i do "Season": "Spring, Summer, Fall" in a When

#

is that an OR

#

or AND

lucid iron
#

yay ty

#

confessing that im about to use {{query}} (sinful)

uncut viper
#

have you considered not using query

calm nebula
#

Yes

rough lintel
#

i knew that would spawn button

calm nebula
#

Have you considered moving into the forest forever

rough lintel
#

atra, when u said script it, did u mean in python or in c#

#

or in anything

lucid iron
#

sometimes i dream about the little observation station atop the mountain my parents took me to climb as a smol chu, theres ice cream up there

rough lintel
#

like would i use slicing or the filter function. probably filter

uncut viper
#

smol chu...

lucid iron
calm nebula
#

I was thinking r actually

lucid iron
#

but texture_1 texture_2 texture_3 texture_4 for winter

#

and pattern is texture_[n+2] is the not snowy version of texture_[n]

#

trying to local token this somehow

uncut viper
#

why

lucid iron
#

crimes

calm nebula
#

You can trivially do a dynamic tokens. But

lucid iron
#

im tryng to make it easy for the modder to maint AT and CP version of this building mod basically

calm nebula
#

Hey @ pathos can we have the filter and map tokens

#

is never seen again

uncut viper
#

so wait what is even your query then

lucid iron
#

texture_{{query: {{L@Seq}} + {{L@WinterOffset}}

uncut viper
#

whats an example of what you want to achieve on a given winter day here

#

i see

lucid iron
#

WinterOffset is either 0 or 2

#

per config

#

but some buildings only have 1 and 1 2 so

#

its not same number for all

uncut viper
#

seems like you could do something with FirstValidFile and/or HasValue

lucid iron
#

but how would ppl turn it on

#

and off

uncut viper
#

with the config

lucid iron
calm nebula
#

When has file

uncut viper
#

and dynamic tokens yeah

lucid iron
#

i dont understand how this solves the number of variants being different

#

i.e., WinterOffset can be a different value per building type

uncut viper
#

you always have the token first check for variants 3 and 4

#

if they dont then default to 2

#

if they dont have 2 then default to 1

lucid iron
#

idk you talked me into sticking with query kyuuchan_run

uncut viper
#

jail for chu

lucid iron
uncut viper
#

writing you out of my will

lucid iron
#

ill be in here

#

writing these {{query}}

uncut viper
#

you will be back

lucid iron
#

ok but see in the normally 2 variants situation the match is 1 -> 3 and 2 -> 4

#

and then in 1 variant it's 1 -> 2

uncut viper
#

ill be honest i have no idea what you're doing

lucid iron
#

framing that on my jail walls

calm nebula
#

What's arknights

latent mauve
#

Friends, with regards to the spacecore guidebook, since I know absolutely no C#: how difficult would it be to add a guidebook button somewhere in a menu to open it?

Alternatively, can I continue to avoid C# and just trigger the guidebook from a Tile Action or an item that opens it when "used" but without being consumed?

#

I'm looking at using the guidebook entries as an initial NPC guide/identifier since I am replacing all the vanilla NPCs and tweaking their gift tastes and locations

karmic gust
#

kinda sorta getting the hang of map editing except I am now in the wall and the doors are oddly transparent

untold oriole
latent mauve
half tangle
#

looks like you can open the guidebook with a trigger action - can you trigger that using a Tile Action? Your other ideas are not hard but I think would all need C# (i.e. the menu button or using an item)

#

I do the using an item thing a couple times - it's a very simple harmony postfix, but that's not easy if you've avoided C#

karmic gust
#

Ty!

calm nebula
#

Spacecore csn run actions on jtrm use

latent mauve
#

I have absolutely no foundation knowledge in C#, which is my concern

calm nebula
#

Item use

half tangle
#

ah, then use spacecore's own version of that

latent mauve
#

Excellent, that simplifies things

lucid iron
#

S&S latest version has example of that

#

craftable player handbook

latent mauve
#

The spacecore guidebook is an optional component of my mod, so I wasn't looking forward to potentially needing to learn C# for it when it's not actually required

lucid iron
#

i personally think it's not that important

latent mauve
#

(I am going to use the NexusMods articles to create out-of-game versions of the pages)

lucid iron
#

there r many npc info mods (lookup, npc map locations, uiis2 for bdays)

#

u can leave it as stretch goal AquaThumbsup

calm nebula
#

Everyone has spacecore so

#

It's finnneeeeee to require spacecore

latent mauve
#

I mean, the player will be able to work out the changes for themselves given time, but because I've changed so much, it would be nice to at least give them a heads up, LOL

rough lintel
#

omg i hate python 💔 just grab the elements out of the list PLEASE

#

fricken tmxl fricken festival positions

rough lintel
lucid iron
#

yea i just mean dw people will find em

#

some might even enjoy the process

latent mauve
#

...I should probably run my mod with lookup just to make sure everything displays correctly at some point

#

I know NPC Map Locations handled the changes just fine

lucid iron
#

...how r u checking data changes without lookup

vast flicker
#

I love making 3 more stardew valley npcs for my siblings!!!!

lucid iron
#

are you manually giving npcs everything

latent mauve
#

I renamed and changed schedules and the art, chu, I have just been playing the game and using Event Tester to check things xD

vast flicker
#

If you’re asking me if not then still yes

lucid iron
#

(i meant fireredlily, on how they r test gift tastes)

#

if you are also doing this then consider using smth like lookup anything

latent mauve
#

Answer was: I played the game and gave them the present, LOL

vast flicker
#

Now I sound like a crazy person

latent mauve
#

Because it was only one gift change

lucid iron
#

its alright we got Fire and Water here

vast flicker
#

My character likes dandelions

#

Ik a first

#

Haha

#

haha…

calm nebula
#

Lol

latent mauve
#

With our powers combined, we make Steam, oh, wait... SDVpuffersquee

vast flicker
#

Idk how many dialogues I’m going to make but I just know it’ll be a lot

#

Hmm

#

Thinking if I should make my character being related to my siblings’ characters

#

4 siblings living in a house

#

But where to put the siblings

#

Hm.

wheat finch
#

I really need to finish my big shop mod but I am debating if I want to change something fundamental about it and it's made me hesitate to keep working on it.

vast flicker
urban patrol
#

can a shop sell items by context tag? i would love to have my NPC sell all meat items that are added by other mods but i can't figure out if i can add that

wheat finch
# vast flicker Where on the map

At this point, with so many expansions out there that alter the vanilla maps/add NPCs and buildings/etc, it's usually more advisable to create a new map that connects in some way (these days usually by bus/train) to the vanilla maps to avoid the headache of trying to figure out potential compatibility. But it's ultimately your call whether you want to worry about that. Just be prepared for lots of "is it compatible with [insert mod name]?" questions and comments asking you to make it compatible. Especially with big ones like SVE, RSV, ES, and SV.

brave fable
wheat finch
#

Obviously not a requirement to make a whole new map area but it is a massive headache to try to figure out where on the vanilla maps a new building can be placed without conflicting with some other mod or five.

vast flicker
#

I’m just making it compatible with like only stardew valley

latent mauve
#

If you want to add compatibility for other mods later with a separate map, you could always have an add-on path from town that doesn't exist when things like SVE are in play, and instead have Central Station compatibility pick up the slack at that point.

latent mauve
#

(Central Station compatibility is wonderful, because you can completely ignore the need for player walkable paths to the location)

vast flicker
#

Might make it at Cindersap forest

latent mauve
#

Then definitely mention it's not compatible with SVE, the forest gets completely overwritten there.

lucid iron
#

its crowded but its not like theres zero space

latent mauve
#

You'd likely need to conditionally change where it is located for any SVE compat because of the major changes in the Forest.

vast flicker
calm nebula
#

(Don't worry about it if you don't want to.)

#

It's fine. Players will complain. It's fine.

latent mauve
#

but if you're disregarding compat, then just say that it's not compatible in the mod description, and ignore any posts about it. 🙂

#

(I am doing this for my NPC mod)

wheat finch
#

For my shop mod that adds two NPCs, I have a configurable map patch for the entrance to their little nook. That way I think I've got most major expansions accounted for and the player can actually decide where it works best with their mod loadout.

latent mauve
#

I thought I had a safe space in the Mountain for my Pelican Valley Loft / NPC apartments mod, but then there was one other mod that used the same spot that I had to then add compatibility for. xD

#

(the apartments are also a valid option for you to house NPCs if you don't mind another mod dependency)

sonic bluff
#

Hi everyone!

I'm working on a full custom NPC mod for Stardew Valley using SMAPI + Content Patcher.
The character's name is April – she's a romanceable bachelorette NPC who is fully integrated into the game.

Backstory:
April is the daughter of Mayor Lewis. She used to live in the same city as the player character, but recently returned to Pelican Town to take care of her aging father and reconnect with a slower-paced life. She’s a book lover, a former literature teacher and aspiring writer. She tries to stay active, and often spends time with the other women of the town, especially exercising, reading, and socializing.

What I already have:

_Fully written dialogue for all stages: normal, dating, married, with children
_Seasonal schedules (including unique routines for each season)
_Marriage + family life support
_Festival appearances (Flower Dance, Winter Star, etc.)
_Working SMAPI/Content Patcher mod structure
_Unique portraits for each season (summer, winter, and one for both spring and fall)

What I need help with:
I can handle all the code, event scripting, schedules, reactions, and SMAPI integration.
But I don’t know how to create or model the sprites (walking animations, clothing variations, poses, etc.).

I’d love to find someone who could help me design April’s sprite sheets based on her portraits and the Stardew Valley NPC art style. She has different seasonal outfits, so ideally I’d like help creating:

_Spring/Fall sprite (shared outfit)
_Summer sprite
_Winter sprite
_Dance & wedding outfits (optional later)

Once everything is complete, I will absolutely share the finished mod with the community. I want to give back and hopefully inspire others to create their own custom NPCs too!
Thanks so much for reading, and I’m super grateful for any help you can offer!

brave fable
#

fully prepared to make my next npc mod a raccoon that lives in the walls of someone else's npc house (saves on finding a house location)

wheat finch
#

OMG do it blueberry. that would be a lovely addition to 1.6 especially given the new friends in the forest.

#

Just realized halfway through my attempt at converting PFM to CP that I've been putting vanilla item IDs in the wrong place. 🤦‍♀️

sonic bluff
#

It's my first mod since it's my first time using Stardew Valley with mods.

lucid iron
#

smh blueberry stealing ideas from mr ape AND sbv now \j

iron ridge
# sonic bluff April

if you release with that as the portrait you have to attribute poltergeister btw

lucid iron
#

it is usually more effective if you have specific question to ask SDVpufferthumbsup

sonic bluff
karmic gust
#

There's also list of people who do commissions

dire kestrel
ocean sailBOT
iron ridge
#

(yes this is definitely a portrait maker one im not doing this baselessly)

lucid iron
#

nexus has a section for credits for this exact thing

brave fable
#

yeah it's pretty normal to do, just part of having a portrait maker out there

iron ridge
#

nothing wrong with using the portrait maker, it's a great tool, just to use it right

sonic bluff
lucid iron
#

well have you installed other npc mods before?

#

your own mod, if it is just content patcher, is basically same deal

#

toss that into Mods AquaThumbsup

wheat finch
#

Remind me what file in the game contents has the fruits? Pineapple is mysteriously missing from the id google doc.

lucid iron
#

springobjects springobjects?

sonic bluff
lucid iron
#

when you are using a framework like content patcher, that mod does the loading of your data into the game

wheat finch
#

Not the sprites but the data. Realized soon as I said it. But I can just count the indices on there...

lucid iron
#

data/fruitrees?

iron ridge
vast flicker
#

I think I’ll focus on my character first then maybe add my siblings’ characters later down the line

proven spindle
#

Wouldn't pineapples be in data/objects

wheat finch
#

Yeah found it there. Brain fart moment lol

lucid iron
#

if u do any kinda open source programming then you know what code licenses are right

vernal crest
vast flicker
#

Here’s what I got so far for my character

lucid iron
sonic bluff
#

I already know how to give credit, but I still need someone to help me with the sprites because, as I said before, I'm not very good at modeling or designing. Could someone help me or tell me how to make them?

lucid iron
#

yea besides paying someone for comms if you need art advice #making-mods-art is better place

vast flicker
#

I guess I can try

lucid iron
#

usually you can start from vanilla spritesheet

#

your npc is just regular sized (16x32?)

#

(again credit etc)

sonic bluff
lucid iron
vernal crest
wheat finch
#

Learn from me. Do all the non-art stuff first so you know exactly what art you want/need instead of adapting your events, schedules, etc, to the art you already have. (If you are commissioning work not making your own. If you're making the art yourself then disregard.)

#

"RequiredItemId": "(O)Powdermelon" or "RequiredItemId": "(O)[LocalizedText Strings\\Objects:Powdermelon_Name]" for telling CP what input object for a custom machine rule? I think the first one?

lucid iron
#

1

#

2nd is just displayname

vast flicker
lucid iron
#

if you have latest version of lookup anything, most lookup targets show a internal id field

#

thats the id/qualified id to use everywhere when game says gib id

wheat finch
#

Thanks! I thought so but was second-guessing myself. First time using the new object IDs in anything.

cedar turtle
lucid iron
#

missing bracket at line 29

cedar turtle
#

That being said, I have my doubts you will get remotely reliable code out of genAI

lucid iron
#

need another one

brave fable
wheat finch
#

why is it always a bracket lol

#

I'm also targeting the wrong place lol. For rules I need to target data/machines not data/bigcraftables

lucid iron
#

have u considered vsc my beloved

sonic bluff
wheat finch
#

I am using VSC lol. I'm trying to figure out where the missing bracket is rn.

brave fable
cedar turtle
brave fable
#

(it's more clear where you went wrong when you condense your file down to just the keys in your Changes entry:```json
{
"Changes": [
{
"Action",
"Target",
"TargetField",
"Entries",
"{{ModId}}_Blackberry_Lemonade",
"{{ModId}}_Blueberry_Lemonade",
"{{ModId}}_Cactus_Fruit_Lemonade",
"{{ModId}}_Coconut_Lemonade",
"{{ModId}}_Cranberry_Lemonade",
"{{ModId}}_Crystal_Fruit_Lemonade",
"{{ModId}}_Grape_Lemonade",
"{{ModId}}_Melon_Lemonade",
"{{ModId}}_Pineapple_Lemonade",
"{{ModId}}_Salmonberry_Lemonade",
"{{ModId}}_Spice_Berry_Lemonade",
"{{ModId}}_Starfruit_Lemonade",
"{{ModId}}_Strawberry_Lemonade",
"{{ModId}}_Wild_Plum_Lemonade",
"{{ModId}}_Powdermelon_Lemonade"
}
]
}

lucid iron
#

yea to make vsc and other editors really help you out, you should use a indentation you like and pay attention to bread crumbs

brave fable
#

(afaik CP doesn't support {{ModId}}_Blueberry_Lemonade actions in the current format)

wheat finch
#

I do have indentation on

lucid iron
#

another helpful thing is the cp schema

#

"$schema": "https://smapi.io/schemas/content-patcher.json",

#

put this just under first {

wheat finch
#

Indentation doesn't help when you legit missed a step and it's not just you forgot to close a bracket

lucid iron
brave fable
#

the CP schema is also pretty much just telling you what the web parser does, which isn't helpful if you don't understand what Invalid value. Found '{{ModId}}_Blackberry_Lemonade', but expected one of 'Action', 'LocalTokens', 'LogName', 'Target', 'Update', 'When', 'TargetField', 'Entries', 'Fields', 'MoveEntries', 'Priority', 'TextOperations'. means

lucid iron
#

it gives u squiggles tho Dokkan

brave fable
#

in short though you didn't wrap your first entry in some "{{ModId}}.AncientFruitLemonade": { ... }

wheat finch
#

I've put your fix side-by-side with my original file so I can look at it and learn.

lucid mulch
#

the difference would be L11 and by extension like L314 or something

#

and everything inbetween indented 1 layer deeper as a result

brave fable
#

hot tip: ctrl+\ in vscode to open a side-by-side comparison view

wheat finch
#

Love a good keyboard shortcut. I've just been doing the editor view split from the menu.

lucid mulch
#

I usually just make a temporary second file and in the open editors section right click OG and do "select as compare" and for the dupe file with changes, "compare with selected"

#

and get a diff view

wheat finch
#

That's good to know too.

brave fable
#

i was thinking of suggesting that actually, but thought i was going nuts since the option doesn't come up from rightclicking the actual tab heading

lucid mulch
brave fable
#

and the open editors view is hidden by default because of course it is

lucid mulch
#

oh one step better

#

I used to manually insert git merge conflict syntax to force the diff viewer, but this is way easier

wheat finch
#

Yay the vanilla fruits add-on for the lemonade machine mod is converted to CP! Now to convert the other mod patches whose base mods are still 1.6 compatible. Much easier now I know how to do it properly though I should probably test the vanilla patch first...

brave fable
#

most people go out of their way to avoid merge conflicts and here you are writing your own in perfectly good files

lucid mulch
#

they aren't perfectly good otherwise I wouldn't need to know what changed

brave fable
#

resistant to change, causing conflict SDVpufferpensive

calm nebula
#

Smh just tkdiff like the rest of us

lucid mulch
#

too many letters, I have a hammer and I will reforge everything else to look like a nail

wheat finch
#

This is why we always test...

#

Guess we're going to "everything in a single content json instead of using includes..."

#

LOL that was a dumb mistake on my part. Now to troubleshoot why it couldn't load the sprites...

lucid iron
#

hm i have a debug log thing in a transpiler

#

it logged 2 times...

calm nebula
#

Every time someone applies a patch on that method after you it will get called again

lucid iron
#

who be patching this on saveloaded

vernal crest
lucid iron
#

nvm its not save loaded reading hard

wheat finch
ocean sailBOT
#

Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on macOS Unix 12.7.6, with 18 C# mods and 7 content packs.

wheat finch
vernal crest
#

You need to point the texture field to the asset you loaded, not to your actual file path in your mod folder.

#

(That's the point of loading the texture in the first place, so the game can access it.)

wheat finch
#
            "Action": "EditData",
            "Target": "Data/Objects",
            "Entries":
            {
                "{{ModID}}_Ancient_Fruit_Lemonade":
                {
                    "Name": "{{ModID}}_Ancient_Fruit_Lemonade",
                    "DisplayName": "Ancient Fruit Lemonade",
                    "Description": "Ancient fruit flavored lemonade.",
                    "Type": "Basic",
                    "Category": -26,
                    "Price": 250,
                    "Texture": "Mods/{{ModId}}/Objects",
                    "SpriteIndex": 0,
                    "Edibility": 45,
                    "IsDrink": true,
                    "ContextTags":
                    [
                        "color_blue"
                    ]
                },```Like this?
#

(Ignore the wonky format at the start, it's just an excerpt)

vernal crest
#

Yup that's right

lucid iron
#

say do u want to do generic flavored item or just specific items for all

wheat finch
#

?

#

I followed the way the base mod this is an add-on for was structured when I built it. Base mod had every fruit its own item with its own unique sprite.

ocean sailBOT
#

Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on macOS Unix 12.7.6, with 18 C# mods and 7 content packs.

wheat finch
#

The machine name in the base mod is just "Lemonade Machine" so that's what I used for my rules file.

floral stratus
#

Sorry to interrupt. I need a small help. How do I reference the farmer's child's name in my translation file? {{ChildNames |valueAt=1}} and [ChildNames |valueAt=1] don't work. (Referenced from Content Patcher docs)

uncut viper
wheat finch
lucid iron
#

hrm i have no idea if you can cp patch that bolbphase

wheat finch
#

That's what I was afraid of last night when I embarked on this. I won't say the effort was wasted though because I needed to learn how to do all this for my shop mod.

lucid iron
#

but i guess you can first see if patch export Data/Machines has some kinda lemonade entry

#

patch export Data/BigCraftables as well

uncut viper
wheat finch
iron ridge
#

that goes into the smapi console yep

floral stratus
wheat finch
#

Do I exit the game after I do that? (I've never done either before so apologies for the n00b questions.)

vernal crest
#

Nope you just go to the folder it tells you and open the file

wheat finch
#

Looks like it did find it in big craftables.

#

Gonna try something.

#

Nope that didn't work...

#

I found this in the patch export for BigCraftables. "ja.lemonademachinegoods_Lemonade_Machine": { "Name": "Lemonade Machine", "DisplayName": "Lemonade Machine", "Description": "Turn fruit tree fruits into lemonade!", "Price": 0, "Fragility": 0, "CanBePlacedOutdoors": true, "CanBePlacedIndoors": true, "IsLamp": false, "Texture": "JA\\BigCraftable\\ja.lemonademachinegoods_Lemonade_Machine", "SpriteIndex": 0, "ContextTags": null, "CustomFields": null } So I tried this in my CP patch for the add-on to add more rules to it but it did nothing. { "Action": "EditData", "Target": "Data/BigCraftables", "TargetField": [ "ja.lemonademachinegoods_Lemonade_Machine", "OutputRules" ],

#

Leaning toward what was said earlier that CP can't patch a machine added via PFM.

#

There was nothing in the patch export for Machines.

tiny zealot
#

if the machine made it into Data/Machines, i'd expect it to be patchable via CP, but priority/timing may be at issue

uncut viper
#

(well bigcraftables dont have output rules, so you could patch the craftable itself if you corrected the targetfield. not that that helps)

wheat finch
#

Yeah it didn't get into Machines. This might be more complex than I'm capable of/require C# if the base mod isn't updated off of PFM. But I still learned things.

tiny zealot
#

oh, me saying machines was just me misreading, sorry. sentiment still applies (if it is in a data asset, you should be able to patch it)

wheat finch
#

I just don't know where the rules would be if they aren't in machines or big craftables in order to patch them.

#

I can always just add the powdermelon lemonade to the PFM file and keep the patch on PFM and JA for now. If the base mod updates at a later date to move away from them, I can revisit. Thanks for all the help troubleshooting tonight everyone! I'm gonna call it there and rest my brain.

lucid iron
#

what happens if you do a new entry in Data/Machines

#

with key (BC)ja.lemonademachinegoods_Lemonade_Machine

calm nebula
#

I don't think pfm puts stuff in data entries

lucid iron
#

who wins LilyDerp

#

worst case tho idk make ur own machine i guess

drowsy pewter
#

I think there's like a 50% chance that if you add a new entry for this bigcraftable in data/machines that it can work

lucid iron
#

if you sleep will this Random update

calm nebula
#

(I suspect it won't work but you can try it)

latent mauve
#

is Old Man Cannoli hardcoded, as far as the glowing eyes and the tile action?

#

Trying to figure out how annoying it's gonna be to swap him out

lucid iron
#

he's a bunch of TAS

#

hardcoded colors very annoying

#

is just 1 function to skip prefix tho

latent mauve
#

well, I'll try this out and if it fails, I'll just line up my eyes with the original ones. >_<

urban patrol
latent mauve
#

seems like I lined it up enough that I don't notice anything wonky with Skull Kid 😄

karmic gust
#

Is there a particular part in the event you're looking for feedback for or just overall?

urban patrol
latent mauve
#

there is the tiniest blip on the cactus pickup animation at the end, but I feel like you've probably done what you could there.

#

(it's when Crystal pops back up a tile)

urban patrol
#

maybe i can try to position offset her a bit?

latent mauve
#

It has the same issue very briefly when she puts it back down, she is positioned too far down after the drop

#

The same offset should fix both though.

urban patrol
#

cool i'll try that

#

i had one in there earlier but it was confusing me too much

#

it's because her sprites are shifted up to accommodate the plant in the 16x32 box

latent mauve
#

Yeah, you've got just a bit of variance between where she is during the TAS and where she is during showFrame

urban patrol
#

should i position offset her before warping, maybe? does it retain the offset through a warp?

karmic gust
#

Hmm, yeah I think this one looks a bit more stutter-y than the previous version

#

Door, window, and interior warp success!

#

Although now just walking up to the house warps you in, rather than on-click so I've gotta figure that out haha

untold oriole
#

I got curious

karmic gust
#

I published a mod where her and Emily get married, and now I'm working on adding kids SDVpuffersquee

untold oriole
#

Oh, how cool!

karmic gust
#

Tentative story line is them fostering a sibling pair!

untold oriole
#

I thought it would be the addition of some member of her family, like brothers or even nephews.

tropic basin
#

Anyone else get a bug where a move command in a custom event (via ContentPatcher) that’s supposed to move a character one space instead causes them to keep walking in that direction forever and softlocks the event? literally just /move Pam 1 0 1/.

urban patrol
#

yeah, all the time 😭 possible culprits are not allowing them enough time to finish the move, mixing move and advancedMove, and only moving them 1 tile (but only sometimes it's an issue??)

karmic gust
#

I've also had issues if I used speed changes or a move with another NPC that continues the event

urban patrol
#

moves are soooo picky

untold oriole
#

I think a good start to a mod is to start with just 2 events

#

And later, keep adding

tropic basin
#

this is infuriating. I have /move Pam -1 0 3 Gus 0 -1 3/waitForAllStationary/. Gus goes to his position and looks left, just fine. Pam walks off into the ether and holds up the rest of time.

#

and the event worked fine before! I changed different parts of it and now it’s breaking on this one!

#

hm. maybe the problem is waitforallstationary actually.

#

not sure why that would break Pam and not Gus but I’ve been programming long enough to know that just because I have no idea how something could cause a problem doesn’t mean I can rule it out

#

nope

twin wadi
#

iirc you need separate move commands for that case? like /move Pam -1 0 3 as one line

tropic basin
#

no, that’s syntax

#

I fixed it by changing things so Pam isn’t facing the same direction she faced while moving

#

and by fixed I mean avoided the bug

twin wadi
urban patrol
#

you're allowed to have multiple actors in a move command

twin wadi
urban patrol
#

i didn't either until i pointed out the same thing as an "error" a bit ago lol

round timber
#

i somehow forget about it every time i read it

twin wadi
#

nvm me then, sorry abt that! SDVpuffercactus

tropic basin
#

it’s validating to run into a bug that other people have also experienced. the thing I was working on before was forcing the game to follow around an NPC as they go about their schedule instead of the player character, which meant I was exclusively dealing with brand new bugs invented by me. and believe you me the game does not want you to do that. don’t ask me to explain how I managed to do it, I barely know myself

urban patrol
#

oh wow that sounds hard af

#

does anyone know when sappypiano plays in the game? idk if i've heard it but i haven't played much of 1.6 if it's new lol

karmic gust
urban patrol
#

yep, that's what i'm using haha

karmic gust
#

Ohh, sorry I thought you wanted to hear it to use for an event haha

urban patrol
#

i'm thinking about it! but i wanted to check if it would remind people of like "oh my god remember that time when xyz"

royal stump
#

the name never shows up in code or assets, and the wiki says it's unused, so you may as well SDVkrobusgiggle

sappypiano Wavebank 43 0000002b A midtempo track featuring sparkling harp notes, synths, flute, and drums. It is unknown why the track is titled this way. Unused by Vanilla.

urban patrol
#

oh fuck yeah awesome

#

i'm deciding between sappypiano and sweet for the event i posted above

#

actually i think i'll go sweet and save sappypiano for another NPC it'll fit more

#

@uncut viper i'm not sure if this is intended behavior, but i may have found a bug with the soundboard? i left a track playing, exited to the title screen, created a new save file, and the same track began playing upon loading the new save. going into the soundboard and playing/stopping it only made it play over itself.

#

relaunching the game did stop it though

wheat finch
#

Can't sleep so reading through the brainstorming files for some of my mod ideas. "A bookstore (probably just a front since books are useless in game)" clearly written long before 1.6 arrived...

#

Boy was this mod ambitious. A cat cafe and a new movie...

stark spindle
#

cat cafe is a neat idea

round timber
#

sunberry has one! :D

half tangle
#

and it's awesome, but also definitely the kind of thing that you can two cakes

unreal spoke
#

Three cakes, actually. SDVkrobusgiggle

proven spindle
#

It'd be cool if we could get different animal cafes

#

A dog cafe, a reptile cafe, a butterfly cafe...

round timber
vernal crest
#

Chinchilla cafe!

urban patrol
#

guys!! it just happened!! i wrote an event entirely correctly on the very first try!!

#

i thought that was literally impossible

round timber
#

its rare but it does happen...

vernal crest
#

Has never happened to me, probably never will lol

visual dirge
#

is there any particular reason why a single mod (in terms of uniqueid, manifest.json, i18n, etc) can't e.g. be a content pack for multiple mods and also have an entrydll?

#

it seems like a weird design choice to me that so many mods have to be split across two (or three or four) mods

#

itd be nice to be able to share a single uniqueid and share i18ns and share dependency lists and etc

proud wyvern
#

think of content packs as different types of mods

rigid oriole
#

Because then what happens when 2 mods want to specifiy the content in a file called content.json

proud wyvern
#

and ^

rigid oriole
#

You're fighting people for file name real estate

visual dirge
#

the content packs system could be designed in a way that allows this. i'm just wondering why it isn't

rigid oriole
#

A c# mod and a content pack of files that are provided to a framework are just fundamentally not the same thing and mixing them seems like it would add complexity, particularly on smapis shoulders

proud wyvern
#

why does it have to be a default?

#

content packs don't necessarily need to be JSON

rigid oriole
#

Separation of concerns is great

proud wyvern
#

it just happened that people did that

gentle vessel
#

Hello. Sorry to interrupt (I’m not sure how discord works sorry - let me know if I do something wrong). I’m new to this group but I’ve been playing SDV for a while (including modded). I want to learn to make mods and I have ideas for 2 small mods. Now I’m trying to work out if these mod ideas would fit under C# mods or Content Pack Framework mods. If I say the ideas, can someone help out?a

royal stump
#

feel free to ask, interruptions aren't an issue for the most part

visual dirge
royal stump
#

(it's possible nobody is around who'll have feedback, but worth asking)

visual dirge
#

honestly, the fact that a mod is partially c# and partially content patcher should be invisible to the end user, exposing that implementation detail is also the opposite of separation of concerns

rigid oriole
gentle vessel
#

So my first idea is for a new recipe using joja cola - I think that is a content pack framework mods folder when? My other idea is to make the autograbber available early on (level 5 farming) and cheaper (only 10,000g).

#

Ignore “folder when” - typo

visual dirge
rigid oriole
#

I vote no tbh

brave fable
#

if you need to share translations you're able to just load them into the game like any other strings and load them from game content from your other mod/content pack

royal stump
#

I think both of those can be done with Content Patcher packs, though I'm not familiar with the autograbber data personally

rigid oriole
visual dirge
#

when they see two separate entries in gmcm named foo and [cp] foo they do 😆

rigid oriole
#

Just make all ur config in the c# portion?

#

Ur already in c#

visual dirge
#

i just mean like

gentle vessel
rigid oriole
#

Maybe i dont download enough mods but is that common?

#

I think personally it'd be unnecessary complexity on smapis codebase

royal stump
#

ultimately, many designs could exist, but Content Patcher expanded its scope to include things like i18n and GMCM tie-ins at all
(and yeah, adding complexity to avoid copy-pasting a file feels low priority to me, but it's subjective)

proven spindle
#

I think you're viewing complexity from the standpoint of the average modmaker, when in actuality the complexity is going to fall on the shoulders of the person maintaining the tools that let us make mods (mostly Pathos, but it'll be sonething other framework makers will have to figure out too). A giant combined system is going to be a lot harder to get SMAPI to interpret properly than the current modular setup, with little reward for the extra effort expended to make it happen

royal stump
#

and if all else fails, a C# component can load whatever i18n file it wants, though it might set off SMAPI's file access warnings SDVkrobusgiggle

rigid oriole
#

I didnt even know we had those

#

I refuse to touch anything outside my mod folder on principle because do Not come to me telling me I deleted your c drive

royal stump
#

FTM used to use normal file system commands to delete obsolete data files, which made SMAPI post yellow warnings (similar to the save serializer thing)

#

it's something to avoid for the sake of SMAPI being assured you're not doing virus stuff, but technically allowed

brave fable
#

when some i18n file is loaded by smapi it's accessible through reflection, so you can of course just use underhanded backsliding trickery to get translations if you need

#

no warnings ☀️

royal stump
#

right, I guess those would be accessible anyway

proud wyvern
#

Pathos plans to have warnings for reflection tho

lucid mulch
#

there is a mode in smapi to not load mods that trigger those warnings, which pathos does use when doing mod compatibility updates, though he does a second run for some of those mods in more limited set

brave fable
#

fuck ☀️

visual dirge
royal stump
#

I vaguely recall it being specific to arbitrary file system access, but it's been years since I touched it

visual dirge
#

i assume they would be if they're supposed to be a general security thing

#

like if they're going to be set off by reflection

proud wyvern
#

i think it's just the .NET file IO APIs right now

lucid mulch
#

though it does currently only scan the primary assembly iirc

gentle vessel
#

Hi I need some help please. I am trying to find instructions on how to add a brand new recipe to the game. I found this:

https://stardewmodding.wiki.gg/wiki/Tutorial:_Adding_Recipes_with_CP

But it only seems to be talking about editing a recipe, not making a new one. I can’t find a reference on the internet to how to make a new one?

Stardew Modding Wiki

Hello! Rokugin here with another tutorial on how to make some simple stuff with Content Patcher. If you need any help with this or any of the stuff on my Git, feel free to try to reach me on the SDV Discord, there are also a lot of other super helpful and knowledgeable people there that are willing to...

gentle rose
vernal crest
gentle vessel
#

I have since found out that I am not being clear enough. I want to make a brand new recipe and item - add a new sprite for it, a new recipe, etc. So I need to use DGA, not CP

finite ginkgo
#

You don’t

#

DGA is dead as of 1.6, you can add items through CP

#

[[Modding:Items]]

finite ginkgo
#

Wait not that page

#

[[Modding:Objects]]

thorny tiger
#

i actually despise map making

#

i want the grass to be darker

#

and suddenly its like

#

changing all the sand

#

because the grass and sand is tied together in a season

#

so i have to change all the sand

#

but i liked the sand

#

agh

gentle vessel
hard fern
gentle vessel
#

Um ok, that page seems to have a lot of info but not what I can learn from to make a brand new item. I am super super beginner. i tried reading through the content patcher readme but got confused.

vernal crest
gentle vessel
#

Thank you so much!

drowsy minnow
vernal crest
#

You shouldn't really be using a fake event to send mail

#

The trigger action is for sending the mail, not adding the item

#

You put the item in the Data/mail entry

drowsy minnow
#

a h alright SDVpufferheart SDVpufferthumbsup

vernal crest
#

Use %item id [<item id> [count]]+ %% in your Data/mail entry to add it to your mail. And since your item ID has spaces in it (which is not recommended) it will need to be %item id \"(O)G0th1cc80HDBvnny.GBsForage_Mystery Dice Bag\" 1 %%

drowsy minnow
#

alright thank you and ill keep the thing about spaces in mind SDVpufferheart

stark shore
#

Could anyone please help me?
I'm stuck with my custom NPC, they're spawning in just fine and I can talk with them but they're not following the schedule, they spawn in a custom map.

I have tried putting them in the centre of town, I've also tried setting the first task in the schedule to being the spawn location and still they won't move

#

I've also tried giving them an already existing characters schedule and they still refuse lol

vernal crest
stark shore
#

Oh my goodness haha, please tell me that's not it

#

I'll try

vernal crest
#

Schedules are set the night before so unless you make a brand new save after you have made all your changes to the schedule/added the schedule you always need to sleep at least one day for it to start working.

stark shore
#

Thank you SO much. I've been stuck on this for like 6 hours straight!

vernal crest
#

Did it work?>

stark shore
#

Checking now 🙂

#

Yes it works hahahaha. I'm so annoyed. Thank you SO much, you're a life saver

vernal crest
#

I'm sorry you struggled with it for so long but I'm glad it works now!

gentle vessel
#

I need help. I’ve been trying for hours, and I finally have the mod working - Triple Shot Joja Cola - to a certain extent. I can spawn it in game, it has the right sprite, and I can drink it. But I can’t get any buffs or the right amount of energy gain to apply. Can I show someone my content.json for advice?

thorny tiger
#

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

thorny tiger
#

use that link and post here

gentle vessel
lucid iron
#

Buffs format is incorrect

#

Did you look at how tea buff is defined

gentle vessel
#

I'm so new to mods it's not funny. I don't know how to look at tea buff sorry

lucid iron
#

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

gentle vessel
#

I have unpacked the files, yes

lucid iron
#

Yep so look in Data/Objects.json

#

For tea

gentle vessel
#

ok i found green tea. how does that help me?

lucid iron
#

You can look at how the buffs there is specified and copy it

gentle vessel
#

I'm not sure how [ {…} ] helps?

lucid iron
#

oh did you use wrong xnb unpacker

gentle vessel
#

nevermind I was opening the file in the wrong program

#

I think I have you now

lucid iron
#

ok cool Dokkan

gentle vessel
#

does that mean my whole file is wrong though? because it's not in that order? or do I just replace the buff part?

#

ugh now smapi says i've broken the json 😦

lucid iron
#

you need a ] at line 60

#

but yea just replace the buffs part, order is not important

#
"Buffs": [
  {
    "Id": "Drink",
    "Duration": 360,
    "CustomAttributes": {
      "MaxStamina": 30.0,
      "Speed": 0.5
    }
  }
],
#

this but with ur numbers is all that's required

gentle vessel
#

thank you, I'll try that

#

I really don't know what I'm doing. I found the info on the net confusing so I tried to get an AI to teach me but it kept getting stuff wrong. Not sure how to learn from here.

#

what's the calculation for the duration? I want it to last for around 3 minutes real time

thorny tiger
gentle vessel
#

yeah it tried but it failed. I don't know how else to teach myself though. I tried reading the contentpatcher read me but got overwhelmed/confused

lucid iron
#

i remember the timing math being wacky for food associated buff

gentle vessel
#

maybe I'll just guess then

thorny tiger
#

it's measured in in-game minutes according to the wiki

lucid iron
#

yea i mean just copy whatever value's on triple shot expresso and u good

thorny tiger
#

10 minutes is about 7 seconds so for 180 seconds you probably want a value of 250 (175 seconds) or 260 (182 seconds)

gentle vessel
#

thank you

#

the mod only needs one more thing now - can I get the recipe to be sold at the joja shop? players can't get it until then like triple shot espresso?

#

I can copy and paste triple shot espresso's thing I guess - but what is the joja shop calle dinstead of the saloon?

thorny tiger
gentle vessel
#

ok I can't see the info for where to get the recipe in data/objects - is it seomwhere else?

thorny tiger
#

bear in mind if someone chooses community centre route and finishes cc before getting your recipe they'll be locked out of perfection unless you add another way to get the recipe

gentle vessel
#

oh dear

#

can I make it not count towards perfection?

#

or should I keep it simple and make it a basic everyone-knows-it recipe?

lucid iron
#

I think you can make gus sell it after joja closes

#

If that's alright with you

gentle vessel
#

sure!

vernal crest
# gentle vessel yeah it tried but it failed. I don't know how else to teach myself though. I tri...

Looking at existing mods that do what you want yours to do, looking at vanilla files, reading the content patcher docs, reading the official wiki, and (sometimes) reading the modding wiki are the ways to learn all of this. When it gets overwhelming, take a break and then try something smaller than you're currently trying so you can just try to understand one small thing at a time. It will add up! We can also explain concepts here too if you need them worded differently to be able to follow them.

gentle vessel
lucid iron
#

Need to check for the mailflag in ur shop entry (i forgor what it is but lostitemshop entry for trophy should have it

gentle vessel
#

Ok i found lostitemshop.json but how does that help me?

#

looks like it's not showing up in the kitchen cooking menu at all so I at least need to fix that

thorny tiger
#

have you added the recipe itself?

gentle vessel
#

I don't think so, no

#

I just want the ingredients to be 3 joja colas

thorny tiger
#

ok you'll have to add the recipe to Data\CookingRecipes

gentle vessel
#

ok cool I found the recipe data for triple shot espresso. I'll go find that page I saw that tells you how to edit a recipe, maybe I can figure it out from that

thorny tiger
#

sorry I can't be more help, I would love to just spit json at you and explain what it does but I am on mobile and I guarantee without an IDE my syntax will be wrong

gentle vessel
#

I am looking at this page:
https://stardewmodding.wiki.gg/wiki/Tutorial:_Adding_Recipes_with_CP#New_Cooking_Recipe_for_an_Existing_Item

and I can't figure out if the "new cooking recipe for an existing item" is what I need, or "changing a cooking recipe for an existing item"?

Stardew Modding Wiki

Hello! Rokugin here with another tutorial on how to make some simple stuff with Content Patcher. If you need any help with this or any of the stuff on my Git, feel free to try to reach me on the SDV Discord, there are also a lot of other super helpful and knowledgeable people there that are willing to...

thorny tiger
gentle vessel
#

oh thanks! I was thinking that was it - do I just use {{ModId}} or do I have to actually put my mod name into those {{}}?

thorny tiger
#

{{ModId}}

gentle vessel
#

thanks 🙂

#

how do I find the item ID for joja cola?

vernal crest
#

!itemids

ocean sailBOT
gentle vessel
#

how do I put my triple shot joja cola as the output in the field for what the recipe gives?

vernal crest
#

Use the id you gave it in your Data/Objects entry

gentle vessel
#

nevermind, fixed it

#

darn. Still can't see it in the recipe list in game at the kitchen stove

vernal crest
#

You can export the Data/CookingRecipes asset to check if yours was added properly.

Copy this (next line) into your SMAPI console and then go to the folder it tells you to find the file and look inside it.

patch export Data/CookingRecipes

gentle vessel
vernal crest
#

Please do what I just said to do in order to check if your recipe is being added to the game.

#

No, you don't have to start a new save.

gentle vessel
#

Sorry, Ithought I had done what you said

#

i'll try again

#

ok sorry i completely misunderstood what you meant. I think I've done it now - my recipe is not in that file

#

sorry if I'm being a pain. I'm trying.

vernal crest
#

It's okay! The trying is the important part :)

#

Okay so your recipe isn't in game. Do you have CJB Item Spawner and can you check if your triple shot joja cola can be spawned?

gentle vessel
#

I spawned it through smapi, and it worked fine. Should I try CJB item spawner as well?

vernal crest
#

(Once we find out why the recipe isn't in game, I'm going to get you to change your object ID to {{ModID}}_TripleShotJojaCola because IDs should be unique and should not have spaces.)

#

Nope if you spawned it through SMAPI that's totally fine! I just suggested CJB because I can never remember the console commands for spawning items haha

gentle vessel
#

Yes I spawned it through smapi, drank it - the buffs work. Just can't see it when I click on the stove

#

ok I removed teh spaces so it just says _TripleShotJojaCola

vernal crest
#

Oh I see why the recipe isn't working. You put the patch inside your Data/Objects patch.

calm nebula
#

Missing}, line 34

#

Causing recipe block to nest too deep

#

Sorry

vernal crest
calm nebula
#

I owe you soda

gentle vessel
#

"{{ModId}}_TripleShotJojaCola": "-167 3/10 10/Triple Shot Joja Cola/default/"

vernal crest
gentle vessel
#

that's what I have in my content.json

vernal crest
#

Yes, my question is why you're posting it here.

thorny tiger
#

why is it -167 am I missing something

gentle vessel
#

oh that's just what the fried egg had, but I made it for joja cola ID

thorny tiger
#

joja cola is 167

#

why negative

vernal crest
#

Oh fried egg uses the negative because it's asking for a category rather than an item id. You can't keep the minus.

gentle vessel
#

because that's what fried egg had. What should I change it to?

#

oooooh thanks 🙂

thorny tiger
#

ahhhh that makes sense

#

i see what's happened

vernal crest
#

But right now the issue is that it's not in the right place in your file

#

You need to move it outside your Data/Objects patch

thorny tiger
#

yeah it seems to be 1 layer too deep right?

#

no wait

gentle vessel
#

oh gosh I find all the {{ and [[ very confusing

thorny tiger
#

2 layers

#

follow your Data/Objects patch down to its end brace, then comma and start your Data/CookingRecipes patch

calm nebula
thorny tiger
#

if you've got the same action but a different target you still need a separate Changes entry

gentle vessel
#

so you mean the data/cookingrecipes needs to come under it's own changes entry?

thorny tiger
thorny tiger
#

(good idea)

vernal crest
gentle vessel
#

oh ok

vernal crest
thorny tiger
gentle vessel
vernal crest
#

Yes you have. You haven't closed your Data/Objects patch with enough brackets. You need to have a closing bracket for every opening bracket (starting from the opening bracket on line 12). You can click on a bracket to see which other bracket it matches with.

gentle vessel
#

what do you mean click on a bracket?

vernal crest
#

Like click on it with your mouse on the json website

gentle vessel
#

oooh

karmic gust
#

The brackets also gave me a lot of trouble when I first started. It wasn't intuitive to me, but after a lot of practice I got the hang of it!

#

(and I still make mistakes 😅)

vernal crest
#

It's hard for me to explain because it is extremely intuitive for me. Was there an explanation that helped it click for you kcspace?

hard fern
#

I live vscode and it automatically closing my brackets for me

karmic gust
#

Honestly no, it just took trial and error unfortunately

blissful panther
#

The winning pattern, in my opinion:

  1. Use an editor that automatically closes braces when you type an opening one.
  2. Do not ever delete a closing brace without also planning to immediately delete the opening one.
gentle vessel
#

what editer should I use? I've just been typing in notepad

rigid musk
gentle vessel
vernal crest
#

I think people struggle with nesting because they don't know how to deal with brackets that were opened three in a row rather than open->close three times.

hard fern
#

Wow the rest of my sentence got eaten

vernal crest
#

You've put your closing brackets too early and removed your buffs field from your data/objects patch.

blissful panther
vernal crest
#

It belongs with your cola object.

vernal crest
blissful panther
#

(Oh, yes, thank you for answering the question I missed. SDVkrobusgiggle)

gentle vessel
vernal crest
#

I've started directly linking VSC because everyone ends up with VS22 even when I explicitly tell them that they're different and not to get that one lol

vernal crest
tiny zealot
gentle vessel
#

so i just remove the two square brackets?

blissful panther
#

That's the first step!

tiny zealot
#

i hear this is a good tutorial for understanding what json is and how to format it: https://stardew.button.gay/tutorials/json
having this knowledge will help you reason about the changes you are making without blindly guessing

vernal crest
#

Ohh yeah I forgot Button's tutorial! She makes great documentation.

gentle vessel
#

I don't undesrstand what you mean by "then move everything except one closing curly bracket above that"

karmic gust
#

(side note: I love that it's .gay haha SDVpufferprideowo)

gentle vessel
#

If I look at that tutorial, will I be able to fix this on my own?

vernal crest
#

I mean cut and paste everything below the closing square bracket that is a pair to the changes field and move it above that square bracket. Except leave one closing curly bracket behind.

vernal crest
gentle vessel
#

oh.... i already guessed what you meant and I completely stuffed it up again.

karmic gust
#

You will likely still make mistakes, but it may give you a baseline of knowledge to know what you're doing and why

gentle vessel
#

I'm sorry I'm wasting all your time. I feel like crying.

vernal crest
#

You're not wasting our time, this is what this channel is here for :)

fossil osprey
#

!anyonecancook

ocean sailBOT
#
vernal crest
#

It can be frustrating to try and not get it right but that's normal. We all have things where we try over and over and over again and fail many times before getting there.

gentle vessel
#

it's really late here. But I feel like I can't leave this alone and go to bed

vernal crest
#

Having patience and understanding this is actually a normal part of the process rather than something that's indicating you should give up are necessary qualities but as long as you have those you can get there!

fossil osprey
vernal crest
#

(That being said, it's much easier when you're rested so taking breaks is helpful!)

woeful lintel
#

being good = being persistent

#

I usually say this for Soulslikes, but it works here too

gentle vessel
vernal crest
#

Yes! The only thing left is to put a comma between your patches which I forgot to tell you to do before.

#

So after your closing curly bracket on line 40 you need to add a comma to tell Content Patcher there's another item in the list for it to look at

blissful panther
#

And when your mind's cleared some tomorrow, it might be a good idea to go through that JSON tutorial to see if it helps. It shouldn't take long, and might help things absorb faster!

vernal crest
#

Ooh it even is a list isn't it. List of models?

(Goannawoman ignore this message it's not relevant for you)

gentle vessel
#

oh i already started that tutorial and can tell it's gold - thank you so much

#

ok so json is saying no errors now

blissful panther
vernal crest
#

(Is there a difference between a list of objects and a list of models?)

gentle vessel
#

hahaha ok so now in game, it shows a new recipe but calls it Error Item (Triple) and the image is a red circle crossed out

#

it does say that the ingredients are 3 joja colas though

karmic gust
#

Progress!

gentle vessel
#

yes i'm very happy with progress 🙂

vernal crest
#

You didn't update your IDs like I said to a while ago

gentle vessel
#

oh sorry. how do I do that again?

vernal crest
#

Change Triple Shot Joja Cola to {{ModID}}_TripleShotJojaCola

gentle vessel
#

I've done that

vernal crest
#

No you haven't

#

I don't mean your recipe id I mean your object ID

#

And its Name

blissful panther
vernal crest
#

And the output in your recipe

gentle vessel
#

that line now reads:
"{{ModId}}_TripleShotJojaCola": "167 3/10 10/Triple Shot Joja Cola/default/"

#

OH

#

so this?
"{{ModId}}_TripleShotJojaCola": "167 3/10 10/{{ModID}}_TripleShotJojaCola/default/"
OK output changed

vernal crest
vernal crest
gentle vessel
#

ok i changed the object ID, and the name I think.... I'm not entirely sure what you're referring to but I think I might get it. Setting up to check in game now

blissful panther
vernal crest
gentle vessel
#

it works!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

uncut viper
#

the wiki calling them models is probably just a quick and easy layman's term and to not confuse it with an in game Object/Item

#

easier than explaining the concept of objects everywhere it's mentioned on the wiki

blissful panther
#

And there we go, the answer that makes sense.

gentle vessel
#

lol I don't think I did exactly what you said but it works so yay

#

thank you so much!!!!!

vernal crest
vernal crest
gentle vessel
#

i think it's easiest to just show the file again

vernal crest
#

But now that I've said that, I don't know the relationship between dict and object so maybe I'm just getting confused.

uncut viper
blissful panther
#

Well that's new.

#

Oh, empty. Did it maybe not paste?

vernal crest
gentle vessel
#

let me try again

harsh bobcat
#

ah that pasted

vernal crest
#

Yup that worked. Just copy your object ID into the Name field (which is right below the ID) in case you ever want to put your recipe in a shop.

uncut viper
gentle vessel
#

like this?
"Entries": {
"{{ModId}}_TripleShotJojaCola": {
"Name": "{{ModId}}_TripleShotJojaCola",

vernal crest
#

I've never encountered json outside of Stardew. I wonder how much of my knowledge of it is wrong or strange because of that.

uncut viper
#

a CP patch for instance is a model colloquially but it isn't itself a dictionary

#

a dictionary would need every value of every key to be the same type, but that's not a requirement for an object in json (or JavaScript, which doesn't really have dictionaries in the same way)

vernal crest
#

Huh, fascinating

gentle vessel
#

yay I am all done for tonight then 🙂 I want to add it to a shop eventually but that is a battle for another day. Thank you so much everyone for your help and patience!

vernal crest
gentle vessel
#

lol not sure how exactly but I will see it clearer tomorrow I think

#

thank you again - goodnight!

uncut viper
#

(basically, both the terms object and dictionary mean something technically different between both c# and json (and by extension JavaScript) and also between those things and in game terms. to make modding easy to understand for someone completely green to all of them, just gotta pick the term of least confusion)

calm nebula
#

Tbh it's downstream of languages like python making everything a dictionary

uncut viper
#

(also the reason I keep bringing up JavaScript is because json stands for JavaScript Object Notation)

#

used absolutely everywhere now though

vernal crest
#

I think I'd like to learn some more computer science as long as nobody brings anything to do with networking anywhere near me