#making-mods-general

1 messages ยท Page 435 of 1

shut edge
#

seeing anything @spice inlet ? mod is ready to release otherwise

spice inlet
#

kinda need a minute to get it to run to test it ๐Ÿ˜„

shut edge
#

lol fair

#

i'm just in that mood to be "done" with it for now i guess. would it be easier to test if i just went ahead and published it as a mod?

little field
#

Tried fixing my code and broke the whole thing Lcry

spice inlet
#

I mean changing the floors does work

shut edge
#

huh weird

#

wonder what's up with my end then

spice inlet
#

all I changed was I made sure the floor actually used tiles from the walls_and_floors tilesheet

#

strangely the little column bits dont want to change but it generally works

#

oh they dont have the "TileData" name

shut edge
#

oh oops

#

that was my big issue yesterday, must have missed those

spice inlet
#

I'll just assume the same fix would work for the walls

shut edge
#

probably. hmm

#

i guess i'll try a couple more things, thank you

#

i guess all the wallpapers have that little edge and shadow and thus slightly less overall height eh

spice inlet
#

what you could do for the walls is put tiles from the walls and floors tilesheet there so people can place decorable furniture

#

but then add another layer in front of it where the wallpaper you actually want drawn is

shut edge
#

hmm

spice inlet
#

like Buildings1 or Back1

shut edge
#

these tiles are trouble a far as actually decorating them goes

#

that fake wall might work

spice inlet
#

you have a very unique wall and it'd be great to keep it

shut edge
#

i shall experiment

#

thanks

shut edge
#

thonk

desert light
#

I think you were right about this! I just happened to try paths towards the exits I suppose. I'll look into bypassing it.

shut edge
#

there is the tricky option of just using vanilla floors and walls and having the query patch the graphics...

#

what in tarnation

#

so uhhhh the pizza layer there is back

#

the skeleton layer...does not exist? and my actual building1 layer that should be there is not

#

skeleton layer accepts wallpaper

#

so i guess it must be the tile data

#

but then why isn't it three tall

latent mauve
#

Make sure that your floor ID tiledata is on the Back layer under the bottom-most wallpaper tile.

shut edge
#

like that right?

#

do the floor and wall IDs need to be linked in some way?

#

i guess that would make sense

latent mauve
#

this is mainly just so that when you replace the wall you don't end up with black space behind it.

#

(you'll also want an actual floor tile on the Back tile layer there)

shut edge
#

hmm ok

latent mauve
#

A lot of the wallpapers don't actually take up the entire tile on the bottom, and instead have a mostly transparent set of 3-4 pixel rows that are 'shadow'

shut edge
#

yeah i noticed that, hence i'm trying to add a border on another layer atm

latent mauve
#

easiest fix is to also put the floor tile under that bottom wall on the Back layer, so that the floor still meets up

shut edge
#

trouble there is the tile i was using for the border has a shadow baked into it

latent mauve
#

well, in vanilla, they get around this issue with those wooden panels on the bottom half of the wallpaper.

#

and just stick those on the Building layer instead, LOL

shut edge
#

right

#

yeah for some reason it's like ignoring my building layer boarder for the walls

#

maybe it needs a proper reload

latent mauve
#

A lot of the wallpapers also use a bottom trim/baseboard, soooo, you're gonna end up getting doubled up trims unless you make it a fairly tall one.

shut edge
#

that makes sense

#

should be able to art around most of this if it would just behave the way i expect it to haha

#

closer

#

double border doesn't look too bad? maybe doesn't make much sense tho

shut edge
#

simplified a bit

#

yeah that might be the way to go

#

i could get very particular with where i'm imagining light sources but that seems like madness

near island
#

Is it possible to make a collapse-able message to post some dialogue for feedback? I don't want to make a big wall of text.

lucid mulch
#

Text file is the main way I know how to do it

#

!json or just send a link

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.

near island
#

Guess I'll try the text. I'm working on the greetings for the mod I mentioned earlier: #making-mods-general message

I'm just wondering if it's sounding okay. I've got a template that I'm just trying to move words around for each character (so it doesn't take me forever). I want the greetings to not feel too repetitive (except the hearts 0-3 entries since it's intended they don't know the player that well yet, so a bit of repetition is okay).

Basically the greetings are: 0-3 Hearts, 4-7 Hearts, 8-10 Hearts, Dating, + random weather lines for those, then Married + random weather lines, and morning-of-festival lines (those aren't all done yet for abigail).

#

Oh cool, that txt worked okay.

#

Well, it worked on my PC. Mobile has to download. Boo

shut edge
#

how2 speed up json edits

#

just make a button for stuff you gotta paste a lot

#

(if you have access to a deck or similar anyway)

strong lantern
#

Can anyone help me out with a mod being stuck in a loop?

urban patrol
#

!json is this for an event? can you please show us your code

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.

urban patrol
#

and also describe which options loop and what happens when they do

ornate locust
#

That looks like an event from RR

urban patrol
shut edge
#

damn it

#

ah, well then

#

mystery solved

#

seems the bottom row of a wall is expected to be on the buildings layer

#

which ok makes sense but also damn

true coyote
#

screee I literally took the texture json from my other AT farm animal mod. it must have something to do with it being a custom animal? idk

#

cant I just mod it correctly on the first try ever

shut edge
#

can anyone?

true coyote
#

uh, i would hope so on somethign as simple as AT ;__;

latent mauve
#

I consider CP way easier than AT

true coyote
#

like, why work in one at mod, changing animals, but not in another with same format

#

๐Ÿซ 

#

does it literally want to be called _BabyDonkey instead of BabyDonkey in the json

#

i stg this whole things internal info is a mess

shut edge
#

usually you'd want like {{ModID}}_BabyDonkey probably

#

i dunno about AT tho

true coyote
#

guess ill just keep going up the dang ladder of info >:(

#

nope its none of those :)))))))))))))))

little field
#

I have a dumb question... what is a bool HSusKitty

shut edge
#

boolean

#

which i think in most contexts is gonna be true or false? someone fact check me there

little field
#

I see the true/false flag; Does it like... make something update game code or...?

I tried looking it up but I need it broken down Barney style GirlShy

shut edge
#

what are you trying to do with it

little field
#

Nothing atm since I'm trying to learn what it is before I use it... I think its mostly used for flags? or adding things?

#

I... think????

urban patrol
#

it's used in many different cases but yes it just means the variable must be either true or false

little field
#

I see

#

Thank you very much, I will now retreat to my confusing cave of coding.

true coyote
#

ok, I found an at mod that changes another of the same authors custom animals. if this doesnt work Im gonna explode

#

thank GOD

stark zinc
#

hi guys!! i wanted to ask if anyone here knows how i can make my pet have max friendship with me by changing game files safely or by using a mod

shut edge
#

CJB cheat menu can do that i think

#

looks correct in tiled, but in game ther's an extra line or it's offset or something

#

...ok now there's not

#

welp lol

ornate locust
#

I have a question. So there's a schedule for rainy days. Does this count for snowy days?

calm nebula
#

No

ornate locust
#

excellent, thank you

verbal narwhal
#

Iโ€™m currently waiting at the airport so excuse my poor sketch but if I wanted a furniture (figure 1) to be just a statue no interactions but you can interact (if you happen to have an item/ object, โ€œtreasure/archeology category like pearlโ€ to be the only possible once in a life time interaction with it, and if you place it the furniture/statue gains new interactions (being a teleportation totem) and having a new sprote (figure 2) - what would be the best approach for this, talking its category and maybe what kind of framework or which directions to look on how to do something like this?

lucid iron
#

yoink the ItemPedastal code?

#

thats the thing used for the island 4 gem birb puzzle

verbal narwhal
#

Ohh great! Thank you! I cannot look up the Game code currently but this idea has really manifested and brewed real hard in my head so I wanted to ask

true coyote
#

ugh, the shop icon isn't changing :/ oh

merry rampart
#

anyone got a guide to making Gender Neutral Mod Tokens work? There's no documentation on the mod page and I am confused as hell...

merry rampart
#

yes, thanks

merry rampart
#

thanks

true coyote
#

nevermind I dont understand whats happening anymore

#

aba since youre here

#

somehow... i get my changes even though the asset is {{ModID}}_donkey_baby, and I have it as {{ModID}_babydonkey anyway not gonna question that. however the shop icon, even though I have it the same as the loaded sprite in the original its not replacing ๐Ÿ˜ญ

original

            "LogName": "Load shopIcon for Donkey",
            "Action": "Load",
            "Target": "Animals/{{ModId}}_shop_donkey_icon",
            "FromFile": "assets/animal_shop_donkey.png"
        },```

mine

```{
       "Action": "EditImage",
       "Target": "birdb.CP.Donkey/shop_donkey_icon",
       "FromFile": "assets/animal_shop_donkey.png",
    },```
#

patch summ

--------

   Local tokens:
      token name  | value
      ----------- | -----
      ModId       | [X] birdb.CP.Donkey
      Spritestyle | [X] aesthetic

   Patches:
      loaded  | conditions | applied | priority  | name + details
      ------- | ---------- | ------- | --------- | --------------
      [X]     | [X]        | [X]     | Exclusive | Load shopIcon for Donkey (Load Animals/{{ModId}}_shop_donkey_icon => Animals/birdb.CP.Donkey_shop_donkey_icon)

   Current changes:
      asset name                               | changes
      ---------------------------------------- | -------
      Animals/birdb.CP.Donkey_shop_donkey_icon | replaced asset```
vernal crest
#

That is not the same as the original

true coyote
#

?????????

vernal crest
#

Original: Animals/birdb.CP.Donkey_shop_donkey_icon
Yours: birdb.CP.Donkey/shop_donkey_icon

true coyote
#

ok but

#

I dont have the donkey sprites like that

#

and they load

#

as they also load animals/id/donkey and donkey_baby

#

I even have the baby donkey in mine as babydonkey instead of donkey_baby and it still loads

vernal crest
#

Okay but is your icon working?

#

And no they don't load animals/ModId/donkey

true coyote
#
            "LogName": "Load adultSprite for donkey",
            "Action": "Load",
            "Target": "Animals/{{ModId}}_donkey",
            "FromFile": "assets/donkey.png"
        },
        {
            "LogName": "Load babySprite for donkey",
            "Action": "Load",
            "Target": "Animals/{{ModId}}_donkey_baby",
            "FromFile": "assets/babydonkey.png"
        },```

```{
       "Action": "EditImage",
       "Target": "birdb.CP.Donkey/donkey",
       "FromFile": "assets/Donkey/{{Color}}.png",
    },
    {
       "Action": "EditImage",
       "Target": "birdb.CP.Donkey/babydonkey",
       "FromFile": "assets/Baby Donkey/baby_{{Color}}.png",
    },```

no and thats whats bugging me? why does it work for these two but not the icon
vernal crest
#

It doesn't work for those two

#

That adult one is the one that you were saying last night does not work

#

So you've got another EditImage patch somewhere with the correct target and that's the one that is working

true coyote
#

I'm about to punt cp into the stratosphere

#

i tested it today and it worked

#

and now, putting the cp on after testing at

#

and it doesnt work

#

why do I mod

vernal crest
#

It didn't work before, I'm sorry

#

Something else happened, but you did not have the correct target so it was not possible that it worked

true coyote
#

i literally pinged you about it working ๐Ÿ˜†

#

but anyway

#

I will

#

continue to test

#

to fix it

#

thank you fopr your patience

vernal crest
#

Not while you were using the one that you asked for help with because it wasn't working

slow basin
#

the time has come to once again add in items

#

i also decided not to break my mod up into parts gonna do comics cards and cds all in one

#

(i dont have that many cds or comics)

little field
#

Ooh that sounds cool

slow basin
#

๐Ÿ˜„

#

ik it shouldnt matter how many people enjoy it as long as i do but i really like seeing people download and enjoy my mods lol

near island
slow basin
#

real

#

thats why i hope my mod is able to catch ppls fancy for those who like collecting stuff like i do lol

little field
#

Thats my biggest fear about making a mod GirlShy I want people to enjoy it too

autumn tide
#

same here SDVpufferfush

#

what are you making? /gen

little field
#

I making a Morgan mod :D

autumn tide
#

...no clue what that's referencing but good luck! (it might just be me lol, i have weird media consumption habits)

little field
#

Lol Morgan is an NPC from expanded

autumn tide
#

OH okay gotcha!

little field
#

What about you?

autumn tide
# little field Lol Morgan is an NPC from expanded

I wanna try expanded but my brain's like an endangered animal at a conservation center that can't have too many new things introduced to their enclosure at the same time without getting overwhelmed-

autumn tide
# little field What about you?

making a dwarf and krobus expansion! it was just a krobus expansion at first but the relationship arc was too interesting lol

tiny zealot
autumn tide
#

that's why you always endorse your downloads!

slow basin
#

is anyone familiar with buttons museum framework im a bit confused about something

autumn tide
#

uhh you could @ them?

vernal crest
#

Yes!

#

I am!

slow basin
#

yippee

vernal crest
#

I made the example museum on her mod page ^_^

tiny zealot
#

(in the future, i recommend starting with your question instead of gating for experts /pos)

slow basin
#

ooo

#

oh sorry

vernal crest
#

Not something you have to apologise for, ichor is just saying it because it will make it easier for you to get answers

slow basin
vernal crest
#

(Sorry to keep speaking for you lately ichor lol)

lucid iron
#

did u read button's docs

tiny zealot
slow basin
#

thats where im getting the information i just get confused by words sometimes and wanted to know if anyone could clarify for me the Id field, it says to make it the same as the key used and the id as the location i want to use as my museum, does that mean that it all needs to be the same id or that i need to write the id with the other id in like a list? because i thought they would like do "you aghve already used this id" warning message in content json so i wanted to ask

vernal crest
# slow basin thats where im getting the information i just get confused by words sometimes an...

It needs to be the same ID. It won't tell you that there is any issue with it being a duplicate ID because you're not using it in the same place. You're using it once in Data/Locations and the second time in Spiderbuttons.CMF/Museums. The one in Spiderbuttons.CMF/Museums has to be the same as the one in Data/Locations because that's how Button knows what location the museum is actually in.

Have you downloaded the example museum in the optional files? It might be helpful for you to be able to see it in action rather than trying to write your own from scratch.

slow basin
#

oh i didnt realize there was an example museum, ill dl it

golden basin
#

is there a way to make a custom tv channel?

tiny zealot
#

i think there's a framework for it

paper geyser
#

Hi all, I'm new to modding! I have taken a couple of coding classes in college and now am looking to do this for fun

vernal crest
#

Welcome! Are you looking to get started with C# mods or CP/other framework mods?

#

If you're not sure, you can say what sorts of things you'd like to make and we can tell you which you'd need.

paper geyser
#

I'm getting started with C# mods. Currently watching refresher videos since I haven't coded in 3 years lol

#

Right now I'm just trying to get familiar with C#. I used java in college which I think is similar

vernal crest
#

!startmodding We have a set of wiki pages for getting started with C# modding, including a step by step guide for setting up your environment and getting your first basic mod in game

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.

paper geyser
#

Great! I was able to set all that up last night. I'm trying to get familiar with SMAPI's API right now

#

Do you code in C# as well?

vernal crest
#

Barely haha. I am slowly learning it in between my other mod projects.

#

I know enough to read some parts of the decompile but that's mostly it at the moment

paper geyser
#

Ah no problem at all hahaha! Coding ain't that easy. I always consult with chatGPT whenever I get stuck or curious about something. I recommend it since it does help with the research legwork

#

Gotcha

vernal crest
#

Oh no, no thank you

#

I am ethically opposed to gen AI

#

Plus you will find that ChatGPT is worse than useless for Stardew modding because it has too little source material so it spits out literal nonsense

uncut viper
#

(it and any mods created with it are also banned from this discord)

vernal crest
#

I would never trust anything that a chatbot told me

uncut viper
#

(any mods with significant AI content in them I should say, which includes code)

paper geyser
#

That I understand

paper geyser
uncut viper
#

the server rules in the server guide

vernal crest
#

The server rules link to the full policy, which is what I've linked to directly just there

hard fern
#

the typical "computer's haunted" stuff, yknow

paper geyser
#

Gotcha, just read the whole thing. I agree with it. I only use it for navigation instead of creation

#

Would y'all say working on CP/frameworks already gives a lot of possibility or flexibility in terms of modding or would learning C# be more useful in the longrun?

#

This is honestly my first time modding anything other than tinkering around with Minecraft datapacks when I was 17 lol

vernal crest
#

There are many things possible without you personally touching C#

uncut viper
#

literally over half of all tracked Stardew mods are CP mods

slow basin
#

im making a card collection mod with a museum for example ๐Ÿ˜„
(ty button)

#

if you dont just use cp theres also mods like buttons museum framework that do the hard stuff and simplify it

#

so like if you want custom plants ot anything

uncut viper
#

it still uses CP

slow basin
#

does it :0

#

thats so cool button

uncut viper
#

you're using CP to use my framework I mean

slow basin
#

ye

#

aaa

#

i c ic

uncut viper
#

just don't want them to think it's a C# framework

slow basin
#

i mean like in addition to if you wanna do more stuff

paper geyser
#

Wait Button are you the person who made the extra books mod?

tiny zealot
#

yeah, Button of Button's Extra Books

paper geyser
#

It's actually you wow lmao I feel like I'm talking to a celebrity

vernal crest
#

She is pretty great

uncut viper
#

i am always surprised (happily though) whenever someone says something like that

paper geyser
#

How'd you get into modding, if I may ask?

vernal crest
#

Just wait until you find out about BETAS (Button's Extra Trigger Action Stuff)

tiny zealot
#

button you shouldn't be that surprised. you have single mods (see extra books) with more downloads than my entire portfolio

uncut viper
#

you may not ask (lighthearted, I have stuff I need to finish tonight and was just about to afk again since I'm on a deadline, but TL;DR: I wanted to make a custom NPC of my OC. she is still not finished)

vernal crest
#

Good luck with your deadline Mrs Button!

paper geyser
#

Alright lmao goodluck with that!

slow basin
#

ooh npc cool have fun!

paper geyser
#

Alright I'm gonna do my reading to get on your modding levels. Nice meeting everyone ๐Ÿ˜„

vernal crest
#

-sigh- I guess it is time to do more map work

drowsy pewter
#

yay mapwork

lucid mulch
urban patrol
vernal crest
#

I'm not that bothered by the actual tile placing

urban patrol
#

oh interesting! i sort of build it as i go, and refine it over time SDVpuffersquee i love hearing different people's processes

vernal crest
#

Do you have any sort of image in your head that you work towards?

hard fern
#

i do a really weird lookin sketch and literally do the "draw a circle. then draw the rest of the owl" meme

vernal crest
#

What I'm working from is "I want dioramas...of some kind...in a space somehow"

hard fern
#

like a museum...? diorama of what

urban patrol
#

hmm vaguely? but more of a vibe than anything else

balmy python
#

I have a question about DSV as someone who's very new to modding and coding in general. I asked in the past if as someone who has very very little coding experience, can mod portraits. I was relieved to have been told that it's possible. However, I do worry that my goal might not be that simple?
I want to make a portraits mod that's compatible with DSV, meaning that my portraits would come up as selectable variants in the drop down in the mod's menu and get the dialogue and all that'd come with it. Is that too ambitious? How would I even begin to start something like that?

vernal crest
tiny zealot
#

my mapping process is remarkably similar to my pixel art process. i flail helplessly against the void and go through the five stages of grief wondering "how i will ever finish the thing" and "has anything ever looked this bad before" and so on until eventually it crosses an event horizon and looks okay and then i can begin the real process of honing it into a finished item

urban patrol
#

like "okay this person's house should be small and warm, but full of creepy witch stuff" and then also taking into consideration wanting an event with enough room for x y z

hard fern
#

they have a server right

balmy python
vernal crest
# balmy python I have a question about DSV as someone who's very new to modding and coding in g...

You won't be able to have your portraits come up as selectable variants in the mod's drop down unless Airyn agrees to work specifically with you on compatibility with your portrait pack. Which is not necessarily impossible, but Airyn is understandably cautious about agreeing to work with people on things like this as it's a lot of extra work for him and would require you to be very on top of updates as well as ensuring you respect DSV's vision and don't use any DSV assets without permission.

tiny zealot
vernal crest
vernal crest
# hard fern ohh thats so cute lol

Thanks! I originally wanted them to be more 3D (i.e., have the actual coop building in the map) but it was going to make the museum gigantic and that's not even including space for modded animals.

balmy python
#

Hmmmmm. I don't think that'd be possible considering where I'm at in coding rn. But thank you guys for the advice!

vernal crest
verbal narwhal
#

Button I also love your website!

#

Just wanted to tell

balmy python
vernal crest
balmy python
#

Oh! Yeah I can give more detail. It's pretty much the same. I'm not adding anything new, just changing the art style like Nyapu's mod

vernal crest
#

Then you'd very definitely need permission since you'd be using DSV's outfits and details and Airyn considers them part of DSV's property. And yeah, draw at least one in the style so you have something to show Airyn and then see how you go from there.

#

(Unless it's some sort of NSFW style because you won't get permission for that)

shut edge
#

fish factory is up, at last, enjoy

near island
balmy python
#

I'm coming to realize that this is a lot more complicated than I thought it'd be

drowsy pewter
#

It might be better just to start with an unrelated portrait mod and get a feel for the coding, before investing more in a bunch of seasonal outfits and stuff? --as well as before jumping into the complicatedness that is cross-mod compat

weary oyster
#

hello, im trying to make a search bar where a dropdown would pop up underneath as you start typing to try and match up your search with stored results. I already have the logic down to match the prefixes, but how would I go about creating a drop down menu? Does anyone know any mods that do something similar to this and can link me to that mod?

vernal crest
# balmy python Well the thing is, I wanted to commission the art since I'm not that good at pix...

It's more that I don't know if you can. You can't just add things into another mod's config settings and DSV's json is really complex. However, DSV does have a page about adding compat so you can use DSV's tokens to read the DSV settings and then do stuff with that, so I recommend doing what 6480 suggests and start by trying to make your own portrait mod that is completely unrelated to DSV and then if you want to continue, experiment with using the tokens.

If you want your portrait options to be actually available in the DSV settings, you'd have to hand control over to Airyn I think so I don't know if you'd get the opportunity to do much at all (if he even said yes).

vernal crest
near island
vernal crest
shut edge
#

validates json? 8U

vernal crest
#

I hear people also use it to check their json /j

near island
vernal crest
#

I've never used it for that though lol

shut edge
#

it also will format it a bit prettier for you

vernal crest
#

(Or, as is usually the case with my files, worse)

near island
shut edge
#

it's a good page to bookmark for sure

#

anyone else made a little stardew bookmarks folder?

uncut viper
vernal crest
#

Who's bookmarking? Real men memorise it /j

shut edge
#

when u don't feel like actually modding so u just streamline the workflow instead

uncut viper
#

i have an SDV bookmarks folder but i havent used it for anything in so long that the most recently added link to it is still lemurkat's NPC creation post on wordpress from 2020

vernal crest
#

I never use bookmarks but I have just discovered pinning tabs so I have a couple pinned on top of the...171 tabs I have open

shut edge
#

or make another spreadsheet

drowsy pewter
#

ive long since given up on any bookmarks organization

shut edge
#

i largely have as well, i just wanted these on hand easily

balmy python
shut edge
#

i've got bookmarks going back uhhh decades probably

#

most of them are prob dead by now

balmy python
vernal crest
drowsy pewter
#

I think you can start with asking for permission to make a separate portrait pack using dsv's character designs, and then just take the mod one step at a time

#

If you figure out how to integrate the coding in the future, that's great! But you can also just start with very simple asset replacements

near island
#

Fancy!

#

Much nicer than a txt file.

balmy python
balmy python
vernal crest
#

And since it's personal, you don't need to ask permission Edit: as 6480 pointed out below, you will need to ask permission even though it's a personal mod because you'd be paying someone else to copy DSV's designs

#

Just don't go around sharing it in any way (including pictures). If you do want to share it in any way, better to ask permission.

drowsy pewter
vernal crest
#

Yeah okay good point, I will edit my message to reflect that

balmy python
#

That's very true. It might end up on their portfolio and I wouldn't want to get anyone in trouble

drowsy pewter
#

Yeah just to make sure its all above board!

balmy python
#

Thank you guys so much for the help!

hard fern
#

im like a bookmark organizing fiend

vapid storm
#

Whoa

hard fern
#

woah?

vapid storm
#

Whoa.

#

Struggling with making mods;-;

#

Idk how to even code๐Ÿ™๐Ÿ™

#

Anyone have experience in customizing NPCs I'm trying to make a marry kent mod for my friend that really REALLY likes kent for some reason

hard fern
#

๐Ÿ˜” sorry i only have experience in making new npcs

hard fern
#

but i think what you would have to do is

  1. make him actually marrigable in his character data
  2. add in the necessary sprites (wedding, flower dance, i guess a kiss sprite?)
#

and 3. all of the marriage stuff.

#

which is a lot

vapid storm
#

Yeahhh

#

Ngl kinda want to steal that already marrigable Kent mod that hasn't been updated in centuries

hard fern
#

i mean you can do an update for personal use, i guess?

vapid storm
#

๐Ÿ™now gotta figure out how to update it without smapi getting mad but anyways totally will use that mod as reference

hard fern
vapid storm
#

Yeahh

#

Kk

#

Do you perhaps know any learning stuff for mods

paper geyser
vernal crest
#

THat's not quite what they are after since it's C#

vernal crest
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.

tough narwhal
shut edge
#

there's a kent mod that's recent enough to work i think

tough narwhal
# vapid storm Okay thank youuu!

In this video we will cover everything you need to know about JSON in only 10 minutes. We will cover what JSON is, why JSON is important, what JSON is used for, the syntax of JSON, and multiple examples of JSON. JSON is the most popular data representation format, and is one of the most important, and easiest concepts you can learn in programmin...

โ–ถ Play video
shut edge
#

can't recall the name

vernal crest
vernal crest
#

Whether it works well I can't say. There do seem to be a log of unaddressed bug reports.

shut edge
#

maybe i am just misremembering actually

#

was thinking of looking for love but thats' for like willy and linus and such

little field
#

I keep getting patch errors in SMAPI Sylv_Done

#

Im so tired

blissful osprey
#

A question about CP modding:

  • If all I want is retexturing characters and portraits, is there a meaningful difference between load and editImage?
  • I don't plan to use multiple mods on the same character asset. In other words, I'm simply trying to replace the whole portrait and then I'm done.
little field
#

Omg my pc just crashed 0-0

#

I've been at it since 10am and I think my pc is protesting

vernal crest
drowsy pewter
#

Why dont you have to worry about exclusive load for editing a vanilla file? SDVpufferthinkblob

vernal crest
#

Because vanilla didn't use a Content Patcher patch to load the content in the first place so your Load won't fight with anything

drowsy pewter
#

what if a different mod has another load for that image? it's still the same issue right? I just want to make sure I understand

vernal crest
#

This is specifically in the scenario that ShrimpManiac specified where there is no intention to have another mod that also edits the asset

blissful osprey
#

Didn't think about custom NPCs. Since I'm only concerned with vanila npcs, i suppose load is what I need atm.

Thanks for the clraification SDVpufferheart

drowsy pewter
#

Oh if it's for a personal mod then that's chill

#

I was just thinking because players accidentally install overlapping mods all the time lol

vernal crest
# drowsy pewter what if a different mod has another load for that image? it's still the same iss...

Yes if there is another mod also editing vanilla you run into the risk that they also decided to Load their custom stuff. However, people rarely use more than one portrait mod at once (on purpose) and if they have accidentally installed two portrait mods getting an error that there was an exclusive load is actually more useful than the silent weirdness that multiple EditImage patches are going to give anyway, so it's still helpful to Load for a non-personal mod anyway imo

drowsy pewter
#

i guess thats true

vernal crest
#

Best to upload your code to github or something and share that so people can see what you are actually doing. I definitely can't help because I have not touched Harmony.

little field
#

Ah okay, apologies

vernal crest
# drowsy pewter i guess thats true

And conversely, I have started the practice of loading everything in my mods with Low priority so that if some future scenario arrives where it'd be useful for someone else to Load something over one of my assets they can do so without frustration lol

drowsy pewter
#

i think that negates the supposed benefit of a warning LOL

vernal crest
# little field Ah okay, apologies

No need to apologise, just letting you know so that you are more likely to get help. It's easiest to help someone when all the information needed to help is up front.

drowsy pewter
#

Oh you mean for custom assets yeah

vernal crest
#

Yeah and if people accidentally download both "Hiria - Custom NPC" and "Nyapu-Style Portraits for Hiria" and then are confused why their Hiria portraits are Nyapu...that's on them lol

inner harbor
#

Has Pathos's Stardew repository been moved? Or have I been removed from it?

vernal crest
#

He moved it, yeah, you should've received an email inviting you to it again but it will have expired by now so you'll have to ping him to get added again

inner harbor
#

Ah yeh, I did see something but we were on holiday stuff so I ignored it ๐Ÿ™

#

(I also thought it was linked to the Patreon, which I had just signe dup to)

vernal crest
#

Don't worry, I missed it too

inner harbor
#

Oh, we were in the airport

slow basin
#

current troubleshooting thing, figuring out why my museum menu wont open, at least theres no errors showing XD

paper geyser
#

So what's the difference between a SMAPI mod and a content pack? How do I know if what I want to make is gonna be a SMAPI mod?

oblique meadow
#

These days, pretty much every mod goes through SMAPI

#

By content pack, do you mean through content patcher?

fossil osprey
# paper geyser So what's the difference between a SMAPI mod and a content pack? How do I know i...

SMAPI mod mean a mod made only with C# (and maybe frameworks), so you basically need to go into the code to call game functions to make your mod. You can literally do anything you want to, without restriction

Content pack is a mod made with Content Patcher. Today you can do most things with CP, without needing any C# at all (modify portraits, add NPC, make a new map, add objects, recipes, etc.)

oblique meadow
#

You can make content packs without content patcher. But youโ€™ll likely need SOME framework(s) if youโ€™re not coding your own C#

vernal crest
paper geyser
#

So if I decide to make a mod through C# does that interfere with anything that framework mods do like content patcher?

latent mauve
#

CP mods are able to add, edit, or replace data assets, with a few exceptions when something is hardcoded. C# mods are able to interact with this "hardcoded" content and change or introduce new game mechanics.

slow basin
#

lemme doublecheck i have it in right

latent mauve
#

C# mods can basically do anything, but CP mods have the benefit of having most of the methods and sanitization needed for data asset editing already built into the framework, so it's not uncommon to have a mod contain both C# and CP components depending on the complexity of what the mod is trying to do

vernal crest
slow basin
#

i do in fact have the correct tiledata, darn, i was kinda hoping it was caopitlization again

#

im gonna go over my content json again

paper geyser
#

Currently not trying to overwrite anything. I think my first step would be to study some framework mods to see how they interact with the game itself

vernal crest
#

Are you intending to make a framework mod?

paper geyser
#

I'm not dead-set on that, but I do want to see if I can change the loot table for the garbage bins

#

Just to start

vernal crest
slow basin
#

yup

vernal crest
# slow basin yup

And it's on the Buildings object layer and you have a tile on the Buildings tile layer too?

slow basin
#

i should but ill double check just in case

#

i do

#

have those tiles

#

hmm maybe it is in my content file

paper geyser
latent mauve
slow basin
slow basin
#

๐Ÿคฆโ€โ™‚๏ธ

#

ty aba

urban patrol
#

is there a way to detect that someone has changed their config mid-save and then run a trigger action based on that?

#

i'd like to clear terrain if the building moves

slow basin
#

it works now but i accidentally have the museum listed as completed lmaoo

vernal crest
urban patrol
#

oh smart!

#

do you think on location change is too frequent for this?

vernal crest
#

It's not likely to actually run very often so it's probably fine, though I think if someone is changing an entire building's location mid-save they are probably also okay with some terrain weirdness for the rest of the day.

urban patrol
#

yeah, true

slow basin
#

testing museum again ๐Ÿง˜โ€โ™€๏ธ

hard fern
#

i totally didnt make any physical progress with my mod but i did do some brainstorming and stuff to get a better grip of my npcs so... i guess it counts?? ๐Ÿค”

slow basin
#

y does it keep saying museum is completed =_=

#

also i think that counts

#

btrainstorming is an essential step after all

vernal crest
urban patrol
#

i'm going insane, why am i getting a "FromFile doesn't exist" error?

{
    "Action": "EditMap",
    "Target": "Maps/Mountain",
    "When": {
        "HasMod": "LemurKat.EastScarpe.CP",
    },
    "FromFile": "MontyHouseExterior_ES.tmx",
    "FromArea": { "X": 0, "Y": 0, "Width": 6, "Height": 2 },
    "ToArea": { "X": 80, "Y": 39, "Width": 6, "Height": 2 }
},```
hard fern
#

it's just the map name

vernal crest
#

No file path

urban patrol
#

but it says .tmx...

hard fern
#

but that's not the path

urban patrol
#

OH

hard fern
#

where is your file located

urban patrol
#

jesus yeah

vernal crest
#

It's in the assets/maps folder

urban patrol
#

assets/ etc

hard fern
#

so yeah you need that in the fromfile

urban patrol
#

i knew i was being dumb but couldn't figure out how

#

thank you

slow basin
#

i removed the additional item so i could test with just one

#

one sec

vernal crest
#

You still have a capitalisation error for your museum entry

#

You have {{ModID}}_Cardshopinterior2 instead of {{ModID}}_CardshopInterior2

slow basin
#

man i wish things werent case sensitive

vernal crest
#

It's best to copy and paste things rather than rewrite them

slow basin
#

ill have to keep that in mind ๐Ÿ™‚โ€โ†•๏ธ

vernal crest
#

I don't think that will solve the issue of being told the museum is complete, but you never know. Might as well test it after fixing it.

slow basin
#

just did, i think im missing something else hmm

vernal crest
#

Are you sure it's the museum complete message, not the museum empty message?

slow basin
#

it says 'the museum has been completed'

vernal crest
#

Do you have any item pedestals on the map?

slow basin
#

yes

#

maybe im targeting the wrong place

vernal crest
#

Are they within the Bounds?

slow basin
#

im gonna recheck

#

it should be within bounds

#

wait does the tiledata for the menu need to be within the bounds

vernal crest
#

No, just the item pedestals

slow basin
#

ah ok

#

hm

#

maybe i put the wrong thing on the tiledata

#

Spiderbuttons.CMF ItemPedestal

which i think i right

vernal crest
#

Yes that looks right, are they on the Buildings object layer on top of a tile on the Buildings tile layer?

slow basin
#

yes

vernal crest
#

Try putting a specific item ID into your DonationRequirements instead of the duplicate category of all furniture that you've got now

slow basin
#

ok

vernal crest
#

I assume you didn't want the player to be able to donate any furniture to the museum anyway?

slow basin
#

ooh

vernal crest
#

*furniture of any kind, I mean

slow basin
#

i probably mixed them up if it meant any furniture

vernal crest
#

Yes, you put in two possible donation requirements but both of them just meant "any piece of furniture"

slow basin
#

i meant id not category erfwef

#

ok it still says museum has been completed

vernal crest
#

I think you want just one list of donation requirements

#

And either give all your cards and cds and stuff a custom context tag and then put that context tag into the donation requirement list or list every single qualified item ID

vernal crest
slow basin
#
                        {
                            "Id": "{{ModID}}_Card1",
                            "ItemIds": [
                                "(O){{ModId}}_Card1"
                            ],
                            "MatchType": "Any"
                        },
                        {
                            "Id": "{{ModID}}_Card2",
                            "ItemIds": [
                                "(O){{ModId}}_Card2"
                            ],
                            "MatchType": "Any"
                        }
                    ]```
vernal crest
slow basin
#

ah ok

vernal crest
#

I am stuck about what is wrong though. I think I can figure it out if you want to zip up your mod file and send it to me but I can't tell just from reading the json.

slow basin
#

idm doing that i trust u lmao

vernal crest
#

You can DM it to me if you'd rather not share it publicly

slow basin
#

๐Ÿ™‚โ€โ†•๏ธ

#

ty

little field
#

Good morning waves

vernal crest
#

Good evening!

little field
#

Good evening!!!

#

(^-^)

#

I did end up fixing that SMAPI error before bed last night. I think I'm getting close to cracking the code LChaotic

#

Couldnt think of a better phrase

unique tusk
#

He is determined to stand by this bench instead

woeful lintel
#

Is there a mod that fixes the vanilla scrollbars? It's pissing me off a little more every time I have to interact with it.

desert light
#

I could be making this up in my mind, but I thought I saw somewhere that NPC schedules might not apply until the following day update? Maybe that is whats happening.

desert light
latent mauve
#

Per the wiki:

  • When an NPC is added to an existing save, they generally don't follow their schedule correctly until you've slept once in-game (which triggers their first day update).
  • Using a time of 600 (when the day starts) for an event may not work. Try using 610 if you want an event early in the morning and the NPC doesn't move if you use 600.
unique tusk
#

time to make a new testing save

little field
#

When an NPC is added to an existing save, they generally don't follow their schedule correctly until you've slept once in-game (which triggers their first day update).

#

Oop

latent mauve
#

You are also using 600 schedules

unique tusk
little field
#

Your NPC is pretty HEyes

#

I love the blue

unique tusk
latent mauve
#

If the NPC still doesn't work on a new save, then try setting their home to a vanilla location that isn't the town square temporarily and check your console log for errors

#

(if something is actually up with the location, it should spit out an error when they try to use the schedule there)

unique tusk
#

Ah, he's just not appearing anymore at all

unique tusk
slow basin
#

i usually set mine near the clinic by the tree personally

#

when im testing

#

on the other side of where lewis usually stands :3

latent mauve
#

Anything in the log?

unique tusk
latent mauve
#

And just to check, is the map accessible by walking?

unique tusk
#

Yeah, it's set where you warp by walking near the pentagram on the wizards floor and then warp again around the bottom of the grass :o

latent mauve
#

Would you mind sharing the JSON where you defined the location data?

woeful lintel
#

What name could be given to the last tab of the Furniture Catalogue? The icon shows lamps and plants, but it also includes fireplaces and bookshelves. "other" or "misc" is a bit misleading because it does not include some types that are not included in the other tabs (beds and torches) for some reason.

latent mauve
woeful lintel
#

not sure what you mean by "considered decor" since it's the name of one of the furniture types, which is specifically separate from lamps. It is one of the 6 types in this tab though

vernal crest
#

"Silver Tree" is not your location's ID. It is its Display Name. As in the name that is displayed to players. You cannot use it in the code to refer to your location. You must use "Blue.Jestar_Silver.Tree".

unique tusk
#

AH I SEE

#

I THINK I FIXED IT

#

dancingtoothless does a lil victory dance

latent mauve
#

Congrats

unique tusk
#

Tyyy guys!! :3

vernal crest
#

Hooray! Now please never let me see you use "Silver Tree" again lest I have a heart attack :P

woeful lintel
#

btw @latent mauve are you still interested by i18n support and storage with custom rules in FF? I have the first one working and I'm working on the second one.

latent mauve
woeful lintel
#

let's call it decor then, thanks for the suggestion!

latent mauve
#

I gave up on the personal mod edit I was intending to convert the furniture pieces to FF from CP because I couldn't get the seats to cooperate, and the group I was playing with that should have benefitted from the custom storage has ended their run, so mods for that have been put on the back burner for the moment

#

I'd still be interested in making the custom storage furniture at some point but it's not a huge priority

woeful lintel
#

ok, noted!

latent mauve
#

And also i18n support is just always nice to have. >_>

#

Weapons case/armory rack will be nice down the road but I haven't been playing as much and have been focused on the Zelda NPC Overhaul

#

One day I will finish the i18n and be able to resume testing xD

#

(converting the modified events to i18n is sapping my strength slowly)

shut edge
#

can the converter tool page not do those?

latent mauve
#

It can but there are a LOT

#

Even using it, it's taken days and I am not even half done

unique tusk
#

Alright chat, what am I doing wrong??? ๐Ÿ˜ญ

latent mauve
#

Keep in mind, I have to modify every single event that uses a name in it for my mod D:

#

(the event refactor cannot come soon enough)

#

I am going to hazard a guess that "Shadow Milk Cookie" is not the internal name/ID of your NPC

latent mauve
tender bloom
#

Are you in the right location?

vernal crest
#

My guess is no blank load

vernal crest
# unique tusk Oooohhhh

This is the same principle as with your location. Your code never refers to your NPC's display name. Only player-visible text (like dialogue) can use the display name. The code always uses the ID. Always.

latent mauve
#

But yes, if you don't have a blank load somewhere for the Data/Events/Blue.Jestar_Silver.Tree target, the game also won't be able to find it to EditData for it

latent mauve
#

It's an easy fix! Just create a file named blank.json which only has {} in it, and load blank.json to that Target

vernal crest
#

Before you do the actual event

#

(As in, higher up the file)

latent mauve
#

Load takes priority over EditData, so I don't think it cares in this instance

#

But it is good practice to put Loads higher in the file

vernal crest
#

Oh yeah you are so right

#

Wow I am tiiired lol

unique tusk
#

OMG IT WORKED!! THANK YOU!! :D

woeful lintel
#

Is it possible to use an inline function as a Harmony transpiler? as in:

Func<IEnumerable<CodeInstruction>,IEnumerable<CodeInstruction>> transpiler = (instructions) => {
  // Replacing instructions...
  return instructions;
};
harmony.Patch(original:method_info, transpiler:new(transpiler.GetMethodInfo()));

I can't see why it would be illegal, but I get this error:

Mod crashed on entry and might not work correctly. Technical details:
System.Reflection.TargetException: Non-static method requires a target.
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at HarmonyLib.CodeTranspiler.<>c__DisplayClass12_0.<GetResult>b__0(MethodInfo transpiler)
   at System.Collections.Generic.List`1.ForEach(Action`1 action)
   at HarmonyLib.CodeTranspiler.GetResult(ILGenerator generator, MethodBase method)
   at HarmonyLib.MethodBodyReader.FinalizeILCodes(Emitter emitter, List`1 transpilers, List`1 endLabels, Boolean& hasReturnCode)
   at HarmonyLib.MethodPatcher.CreateReplacement(Dictionary`2& finalInstructions)
   at HarmonyLib.PatchFunctions.UpdateWrapper(MethodBase original, PatchInfo patchInfo)
   at HarmonyLib.PatchProcessor.Patch()

I'm not 100% sure this is the issue, but it very well could be.

tender bloom
#

Harmony patches have to be static

#

Is your method static?

#

I canโ€™t really tell from the stack trace but it really looks to me like something isnโ€™t static

#

Yes but this is a specific harmony issue, the docs and tutorials probably wonโ€™t help with this issue

#

I feel like this isnโ€™t the usual โ€œaaah not staticโ€ harmony error but itโ€™s been a while so Iโ€™m not sure

woeful lintel
tender bloom
#

If itโ€™s not the usual then i think youโ€™re right itโ€™s how youโ€™re calling the method

#

Hmmmmmm I have no idea ngl

#

Iโ€™ve never made an inline method

#

How do you declare the method?

woeful lintel
#

I think it's called a Delegate when made this way?

#

don't know exactly how this works

little field
#

I wasnt trying to start anything apologies

#

Ive deleted it all apologies again

woeful lintel
#

Since I need to patch a series of method with the same instructions but there's an incrementing index, it would require me to write the same transpiler 5 times with only a single index changing, which kinda sucks

gentle rose
#

hmm

woeful lintel
#

hmmm, maybe the transpiler method can wheck which method it is transpiling and figure out the index from this?

gentle rose
#

6480 why are you a Garfield Cat

gentle rose
woeful lintel
#

really good visual

gentle rose
#

can we see the full lambda maybe

woeful lintel
#

                Func<Furniture, int, bool> is_in_tab = (furniture, tab_idx) => {
                    if (!FPack.TryGetType(furniture, out FType? f_type)) return false;
                    return (int)f_type.FurnitureCatalogueTab == tab_idx;
                };

                Func<IEnumerable<CodeInstruction>,IEnumerable<CodeInstruction>> transpiler = (instructions) => {
                    List<CodeInstruction> to_replace = new()
                    {
                        new(OpCodes.Ret),
                        new(OpCodes.Ldc_I4_0),
                        new(OpCodes.Ret)
                    };
                    List<CodeInstruction> to_write = new()
                    {
                        new(OpCodes.Ret),
                        new(OpCodes.Ldloc_0),
                        new(OpCodes.Ldc_I4, tab_idx),
                        new(OpCodes.Call, is_in_tab.GetMethodInfo()),
                        new(OpCodes.Ret)
                    };

                    return Transpiler.ReplaceInstructions(instructions, to_replace, to_write);
                };

here it is

#

I included another lambda I'm using inside it (yeah, overcomplicating it)

#

I know for sure it never runs because adding a log as the first line of it doesn't log anything

gentle rose
#

uh is that how you're supposed to call lambdas in IL

#

I'm not sure why is_in_tab needs to be a lambda anyway

drowsy pewter
#

oof, context tag cooking recipes cannot access LocalizedText for ingredient names. My idea of allowing every ingredient to be interchangeable is kinda dead in the water, unless i wanna reduplicate like a billion item names into the mod i18n for no reason

drowsy pewter
gentle rose
#

have you considered animating Garfield

woeful lintel
drowsy pewter
drowsy pewter
gentle rose
gentle rose
woeful lintel
little field
#

This social menu will be the bane of my existence Goddamn

#

After 3 days I finally figured out the hearts but that title is the last hurdle

woeful lintel
#

after my midnight snack break

gentle rose
little field
#

omg how!?

gentle rose
#

you're using harmony, right?

little field
#

I am

gentle rose
#

just find where in the code it does the relationship status label handling and patch that tbh SDVpuffersquee I can look for how I did it in a sec

little field
#

Ive been hunting in the code and can't find it, my brain is fizzy

#

Also I thought that's what I was doing the whole time... pain

gentle rose
#

it looks to me like you're adding it to the end of their name right now, are you not?

little field
#

Yes, I thought editing the display portion would like help with the title... I was having issues with the drawNPCSlot
I also am still confused by how it all works GirlShy

gentle rose
#

woah I actually wrote good comments for this, let me just send you the relevant parts then haha

little field
gentle rose
#

benefits of this having been written for someone else ig SDVpuffersquee I documented it properly

little field
#

Omg thank you

gentle rose
#

have you looked at transpilers yet?

little field
#

I can also use it to learn where I had the hiccup for next time

tender bloom
little field
drowsy pewter
#

surprising opinion from the context-tag-everything person

gentle rose
#

so theyโ€™re a way to edit the actual code of a method, basically

patent lanceBOT
tender bloom
#

Ok I think public override string DispayName => data.OverrideText ?? in VAECraftingRecipe.cs line 50 is your culprit

gentle rose
#

what I did was I put a transpiler on ProfileMenu._SetCharacter

tender bloom
#

data.OverrideText needs to get wrapped in the function that looks at localized text

#

lemme see if I can yoink that

#

my local copy of spacecore is like,,,, a year out of date so actually getting you a compiled copy is probably not a today thing but if it's literally a 1-line edit maybe I PR casey??

gentle rose
#

(and another one on SocialPage.drawNPCSlot)

little field
#

new HarmonyMethod(typeof(NPCPatches), "ProfileMenu._SetCharacter"));

#

Like... that?

#

Wow my code is so disorganzied

tender bloom
gentle rose
#

kind of, but you need to look into transpilers because they work very differently to prefixes and postfixes

tender bloom
#

anyways this is enough info that if blueb is inspired and can compile spacecore easily it should be an easy fix, I thiiiiiiiiink

little field
#

I am so sorry if this code is butchered

gentle rose
#

like I said, please look up transpilers, this part is correct but the actual transpiler method will work very differently

little field
#

Gotcha

#

To the documents!

tender bloom
#

If no one gets around to it, 6480, please ping me in a couple days and Iโ€™ll see if I can get you a compiled copy to test

wheat sparrow
#

Hello! I wanted to ask how to obtain the role of Mod Author. Have a nice day!

gentle rose
#

you need to be level 25 in the server and have a (sfw, non-AI-generated) mod published

fading walrus
#

What iro said

gentle rose
# little field Gotcha

(but also, why not just set Farmer.friendshipData for morgan to have RoommateMarriage = true? I havenโ€™t looked too deeply but are there side effects to that?)

lucid iron
#

Is the goal here to have morgan be a housemate

gentle rose
#

at the same time as a potential spouse, I think

lucid iron
#

Like adopt them cus u married wizard

gentle rose
#

without using a poly mod

lucid iron
#

I implemented this actually, way to adopt an npc as a Child

gentle rose
#

is it in hmk?

lucid iron
#

Yeah

#

This example is for Jas

#

I gotta rename the trigger actions and it's still very beta tho

#

If you want to do something bespoke this is still pretty viable

#

Essentially just need to add a Child entity to act as Morgan in the farmhouse

#

And make the real Morgan invisible while it's a "farmhouse day" for them rather than a "tower day"

gentle rose
#

@little field

little field
#

Sorry Im at work and multi tasking apologies

#

I wanted it so you could adopt them

lucid iron
#

Yep

#

You can use my framework or yoink the spaget as desired up to you

#

Is open sauce

gentle rose
#

just fyi, in some languages โ€œHousemateโ€ is gendered

small nacelle
#

What does that mean? Is it the dll file or the game file?

lucid iron
#

Er what are you trying to do

small nacelle
lucid iron
#

Yeah

small nacelle
#

I'm bout to compile a mod

lucid iron
#

I'm guessing that's solution explorer then, it just means your project depends on these dll

small nacelle
#

Yeah

lucid iron
#

And since it's sdv mod, depends on base game is given

small nacelle
#

Already put all dll file there

lucid iron
#

Why did u put them there

#

It's not a thing you need to copy QuestionMark

small nacelle
#

I mean on the mod files

#

That's the only thing that gimme an error somehow

lucid iron
#

Have you done the whole modbuildconfig business

#

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

There's a button press example mod in the C# tutorial page that's helpful to go through

small nacelle
#

Kk, thanks. Lemme check it one more time

lucid iron
#

It also helps if you tell us roughly what you want to make

#

Might not need C#

small nacelle
gentle rose
#

not really?

small nacelle
#

I do have the game on different pc

#

But not on the one i use to code

#

I think that's the problem when I'm bout to compile it

fast plaza
#

Nah I dont think that'd be possible cuz im pretty sure SMAPI requires stardew to be installed to allow building

#

yeah I can't imagine you'll be able to compile it like that

#

and like. why would you want to. If you can't access it on your pc for coding youre gonna need to port the code across literally every time you want to test

small nacelle
#

Ah I see, that's why

fast plaza
#

Thats not necessarily the reason your code can't compile but for sure having the game installed will help. I've been developing my mod for like 8 months now and I think my stardew playtime has gone up atleast 100 hours just through testing alone. Developing blind sounds like hell

#

Oh right I came here to ask a question too

#

I'm working on doing some setting up of i18n files for translation and stuff and I've got it working but I'm unsure how much load these operations take. For example, Is it a terrible idea to use the translation API in a draw call?

#

It'd make sense to me to cache it beforehand but I'm not sure how the backend of the translation API works so it could be like. not even a big deal to do it inside the draw call

lucid iron
#

Well if it's a menu i would definitely just put it on a field and not call it each draw

#

It's a dict lookup I believe

#

The reason why i say menu specifically is cus usually u dispose that when not active, so there's no risk of caching wrong language text when user changes lang

fast plaza
#

hmm well if its just a dict lookup it doesn't sound too bad. The difference between a dict lookup and creating a string probably is negligible

#

God I'm not even thinking about the worries to do with cacheing language text so far

#

that seems like a nightmare to work with

lucid iron
#

Well again if u new Menu and then not keep that around

#

Caching ia no issue SDVpufferthumbsup

#

There is a smapi event for locale change too

urban patrol
lucid iron
#

Naw no requirement

urban patrol
#

oh nice! i can just require HMK dependency then i think

lucid iron
#

Assuming you mean the Age field at least

urban patrol
#

yep

lucid iron
#

Is not like it's official release so plenty of time for me to fix stuff too

urban patrol
#

i havenโ€™t even started work on it besides brainstorming let alone how long itโ€™ll take me to actually make it lol

#

i gotta get more practice with C# for sure

little field
#

I decided to start the coding from scratch. I think having old code on new code and then forgetting which was which maybe, possibly might've been throwing me off also I did fine the correct path in the decompiled for those display stats cute_jam

#

Ty for all the help yall

autumn tide
#

so- I might be going a tiny bit insane, I've read through the categories on the items wiki page (https://stardewvalleywiki.com/Modding:Items#Categories) like 10 times and I can't seem to find the category for artifacts? uhh is this like a game-related thing where the category thing is different or am I missing it? I wanna find the artifact category ID for gift taste purposes

Stardew Valley Wiki

โ† Index

little field
# autumn tide so- I might be going a *tiny* bit insane, I've read through the categories on th...

Like this maybe?

Type The item's general type, like Arch (artifact) or Minerals. The vanilla types are: Basic, Arch (artifact), Litter (e.g. debris), Minerals, Quest, Crafting, Fish, Cooking, Seeds, Ring, interactive, and some placeholder values like asdf.
Caution: adding custom items with the Arch type is inadvisable as it often leads to artifact spots becoming broken and not giving any items

autumn tide
urban patrol
#

you can hold an artifact and do debug listtags

autumn tide
#

OH

#

tyyy!!!

latent mauve
#

If you look at Penny's gift tastes, there is a specific callout for arch / artifacts there

#

So you could probably just use however that got formatted

autumn tide
#

it's ancient_item!!1

#

hmm how could I add that to the wiki?

latent mauve
#

Well, that would be a context tag

autumn tide
#

oh?

latent mauve
#

So it wouldn't go on the categories page, and I think the official wiki only has a small set of example tags, but the modding wiki has a more comprehensive list if memory serves?

drowsy pewter
#

i levy a little bit of caution on editing the wiki to add info you just discovered

#

the wiki is pretty well up to date

latent mauve
#

Ah, nvm, modding wiki mostly lists the food related context tags on the page I was thinking of

autumn tide
#

gotcha, so it's a tag and not a category then?

#

okay

urban patrol
#

ancient item is on the raw dump of context tags on the wiki already

latent mauve
#

Yep, that

drowsy pewter
#

I'm not sure if ancient_item covers all artifacts, maybe try looking at object data for a few different artifacts as well

autumn tide
#

will do!

latent mauve
#

On a side note, if you do decide to add food items, please, help those of us who yearn for unified context tags and use the list from the modding wiki for extras tags where appropriate xD

urban patrol
#

yeah thereโ€™s also prehistoric item for instance

latent mauve
autumn tide
#

oh? okay.. I'll check out the modding wiki

#

oh thanks!

drowsy pewter
#

prehistoric, as opposed to ancient, which is an entirely different time period

autumn tide
#

ah of course, which matters very much in this context

#

can't miscategorize historical eras in a farming sim

drowsy pewter
calm nebula
#

Anyways

#

There is a context tag

latent mauve
calm nebula
#

Is like category_arch

#

It's also autogenerated

#

Penny liking arch items is actually just straight up hardcoded btw

latent mauve
#

Ah, I see

#

I must have forgotten that piece was still hardcoded

elder kite
#

Can these two actions be combined?

      {
         "Action": "EditImage",
         "PatchMode": "Overlay",
         "Target": "townInterior",
         "FromFile": "Assets/Maps/townInterior.png",
         "Priority": "Late",
         "When": {
                "= Enable Mod": "true"
            }
      },
      {
         "Action": "EditImage",
         "PatchMode": "Overlay",
         "Target": "Maps/townInterior",
         "FromFile": "Assets/Maps/townInterior.png",
         "Priority": "Late",
         "When": {
                "= Enable Mod": "true"
            }
      },```
#

The only difference is the target

urban patrol
#

does the first patch even apply?

elder kite
#

It should? I believe SVE adds files in that dir

#

This is my first time mapping though, I could be very wrong

urban patrol
#

oh iโ€™d have to check how SVE adds its assets

#

i thought you wanted to target vanilla two different ways

#

also whatโ€™s with your When condition?

elder kite
#

im adding more args

#

in the process

gentle rose
#

I donโ€™t think you need to do the first one

#

oh sve

urban patrol
#

i couldn't find a town interior tilesheet in SVE. can you please point me to what file you're trying to replace?

gentle rose
elder kite
#

I'm building this pack off the backbone of a superoudated mod, so its possible things have changed since then, im gonna test loading the mod without the edits to the base "Assets" folder

urban patrol
#

are you trying to update an old mod, or create your own using an old mod as a model?

elder kite
#

the latter

#

Its working for the record, havent found any issues

#

If CP tries to overwrite a file that doesnt exsist, nothing happens I suppose

urban patrol
#

well it doesn't exactly target files, it targets assets that are in the content pipeline (i think i phrased that correctly?), so it would be applying the patch but just to something that doesn't get used

#

and i would strongly strongly recommend using a mod that's been updated for 1.6 as your model. if you give us an idea of what you're trying to do we may be able to suggest good candidates for you to look at

urban patrol
uncut viper
#

It wouldn't be applying the patch at all if the asset isn't used

urban patrol
#

ah thank you for the correction

#

the content pipeline is still a mystery to me sometimes

uncut viper
#

Patches are only applied when a mod requests an asset, then SMAPI gives every mod a chance to edit it

#

When all edits are done, SMAPI gives the final asset to the mod/game

urban patrol
#

i see i see

uncut viper
#

If no one asks for a target then no point in editing it, not in the least because it might not exist

urban patrol
#

that makes sense yeah lol

elder kite
#

Ye seems fine with it removed

elder kite
#

But its already cleaned up and up-to-date now

#

sneak peak :p

#

(im just blacking out to find the egdes)

slow basin
#

I wonder what I should do for a banner for my mod hmm

#

maybe it'll just be a ss

ornate trellis
#

my fave is a combo out of ss and some art

slow basin
#

๐Ÿ™‚โ€โ†•๏ธ

autumn tide
#

hey! is there a way to italicize text in letters?

calm nebula
#

No

autumn tide
#

gotcha

#

will the %item quest <quest ID> true %% letter command thing still work for non-item quests?

calm nebula
#

Yes

autumn tide
#

nice! thanks :)

autumn tide
#

where's marlon's dialog?

hard fern
#

Or in like.. random text above head stuff?

#

He doesn't talk

autumn tide
#

uhhhhhhhhh

#

oh crap

#

forgot how crappy bg marlon was haha

#

was trying to find his dialog to use as a reference for his tone, but ig it's largely nonexistent sooo

humble timber
#

lmao

autumn tide
vernal crest
#

That means you get to invent your own personality for him!

inner harbor
#

Yeah he's only got one event, shop dialog and festivals.

autumn tide
#

..it's one line SDVpufferchickbig2

#

eh, a generic line should be fine

inner harbor
#

And the mines is basically "here's a scrappy sword, go kill monsters to prove yourself" he doesn't really seem to be the dashing hero we like to cast him as.

autumn tide
#

I KNOW i (respectfully) hate him

#

...maybe not repectfully

inner harbor
#

I love him and all that cos of fanfic Marlon but it does amuse me that everyone is like "he'd treat Marnie better than Lewis" (even though I've gone that path myself).

autumn tide
#

marnie's a girlboss she doesn't need either of them SDVcharmarnie

#

hypothetically is it possible to make custom cutscene things?

#

like the ones with the spring onions or green tea

golden basin
#

is the person who made the custom tc channel mod in the server?

autumn tide
#

uhhh no i have no clue what I'm doing

golden basin
#

you can make a large gif image in a map

autumn tide
#

I can't even code LMAO just mimcking other people and using the wiki

#

oh!

#

I'll try that then!

golden basin
#

yeah just make a map and treat it like a tv screen for your player. you can put a still pic or a gif

autumn tide
#

okayy

fast plaza
fast plaza
ornate locust
#

Gunther has backwards facing sprites but in the wrong spot on the sprite sheet

autumn tide
fast plaza
ornate locust
#

so I got to make a conditional event patch for people using mods that give him a walk cycle and people NOT using one for an event just to have him hang out, facing back

fast plaza
ornate locust
#

it's the domino meme where the tiny domino is "hey I can have him in the town crowd facing the right way, he has a sprite for it" and the big domino is "MORE DYNAMIC TOKENS"

autumn tide
#

i'm go grateful it's only one line-

fast plaza
#

Aw man I gotta test if my event is broken cuz of that tomorrow

autumn tide
#

..just made marlon teleport in mine bc of that

fast plaza
#

Rip

autumn tide
#

...hopefully no one will notice-

ornate locust
#

and then there's three diferent things Gunther oculd be named depending on what mod you're using to make Gunther real

autumn tide
#

LMAO what if i add the wizard teleport animation and act like him teleporting in canon

#

if he doesn't have walking sprites he is canonically able to teleport

ornate locust
#

There's TWO things Marlon could be named based on if you are using SVE or not, he has a different internal name for that

lucid mulch
#

He does associate with Lance in sve lore that has the targetable warp sceptre

ornate locust
#

so yes I also regret using Gunther and Marlon for anything LOL it's really done some stuff to my dynamic tokens

autumn tide
#

..what if he's the wizards illigitimate child

ornate locust
#

Because just putting Gunther or Marlon in a scene isn't gonna work if you have SVE, you need to use the new name or it's nothing where they were standing

fast plaza
#

Damnit really? Aw that sucks so baddd

ornate locust
#

same with Morris after he leaves

fast plaza
#

Ok well thanks for telling me that cuz that completely slipped my radar. Mod compatibility stuff is so hard

ornate locust
#

who I also had an event with, MORE DYNAMIC TOKENS

autumn tide
ornate locust
#

And Morris Redeemed also has its internal name

lucid mulch
#

I went vanilla, vanilla+sve, vanilla+sve+rsv+es+whatever else

autumn tide
ornate locust
#

https://smapi.io/json/none/3308a4824b1c4ab5af0295d3f4b8a5cc
Here's how I did it and made it pretty easy. Instead of using any of them in an event by name, I use one of these dynamic tokens. And for the event, I use the event dynamic token to show the right frame for vanilla/his position and use the normal walk cycle for anything else

#

The Morrises only change after a certain event, so there's conditions for that

#

and luckily I hadn't needed to MOVE Marlon much for my events, so I didn't have to do the GuntherEvent treatment to him

autumn tide
#

that sounds so tedious omg

ornate locust
#

Feel free to yoink those tokens, though obviously the event one is only gonna work in my event so maybe not that one

autumn tide
#

...he's just gonna teleport :)

ornate locust
#

I mean to use the correct internal name so he'll actually show up with SVE LOL

#

I remember first playing my event and being like "why won't he show up" and SVE gave me two reasons, his internal name being different and also the floor being on the damn always front layer in the adventurer's guild for SOME REASOn where he normally stands

#

so once I got him working, he was also hiding under the floor

vernal crest
ornate locust
#

but tokens are great, love tokens. Once you get them in the right shape, they make some compatibility stuff waaay easier

autumn tide
verbal narwhal
#

mhmmmm I currently have my smapi mod have its own configmenu and gmcm config thingie.
but now I am refactoring things, trying to use/rely/benefit more from CP and realize having two config menus for basically the same mod (but technically split into two) is kinda dumb and annoying.
if I want to put all the config into the content pack, can/should I keep my gmcm stuff and just read the modconfig from the (cp)versionโ„ข ? or does that mean i can leave out the whole gmcm mentioning and api in my c# wholly?

vernal crest
autumn tide
#

HAD I'm less insane now dw

ornate locust
#

I think Sims CC just multiplies like rabbits

vernal crest
autumn tide
#

oh yeah

uncut viper
vernal crest
#

-sees Button typing- yesss it worked

autumn tide
autumn tide
#

one sec

#

i havent played for a few months

verbal narwhal
#

same

#

i actually was really invested and did some small mods for sims until they hit me with "lets break everything)

autumn tide
#

dammit i lost the 'irresponsibly large amount of cc' contest ๐Ÿ˜”

#

i did so much merging with S4S so it would run-

uncut viper
#

if you need a C# component anyway, i personally recommend just doing the config in the C#

#

and exposing them as tokens like Aba says

#

other people may recommend the opposite

lucid mulch
#

Which is what most of the major mods do

uncut viper
#

but i dont listen to the other people

#

as a benefit, other mods that are not your mod will be able to access your config, if need be

craggy nest
#

Do you guys think it's inappropriate to go to #1139016532966506576 to look for people to do multiplayer testing for a mod beta?

uncut viper
#

personally, yes

verbal narwhal
#

ok thank you! so I will just provide some placeholder asset options and let my cp pack replace/editimage it

lucid mulch
#

The opposite feels like the worst of both worlds, get limited gmcm API but also not get the good C# access to the condig

verbal narwhal
#

thanks!

lucid mulch
#

For multiplayer testing I just do it myself and run multiple instances

craggy nest
lucid mulch
#

Can join via IP and either use localhost or 127.0.0.1 or just leave it blank

#

If using stardrop or other mod managers that mess with filesystem on startup, only launch new instances when the others are idling ingame or on main menu

verbal narwhal
#

and you need to press unlock smapi/stardrop (one of those) before you can start a new one for stardrop (at least for me)

autumn tide
#

uhh how can you switch to a different map area during an event? i want to go from the mountiains to the mines back to the mountains again

craggy nest
#

you could always chain three events together

autumn tide
#

oh?

#

I didn't know that was a thing

craggy nest
#

part 1 in the mountains, part 2 in the mines, part 3 in the mountains, have the end of one trigger the beginning of the next

autumn tide
#

huh, okay! thanks :)

autumn tide
#

NVM

uncut viper
#

there is also the changeLocation event command

autumn tide
#

got confused ik it's not that

vernal crest
uncut viper
#

or changeToTemporaryMap

autumn tide
#

hmm i don't feel like setting up all my stuff yet so I'll just temporarily shove my event into another mod to test it

craggy nest
#

shoot, the debug commands don't work properly during multiplayer, do they SDVpufferchickpaint

autumn tide
#

hmm would I have to like reload in my characters after changeLocation?

vernal crest
#

Nope

verbal narwhal
autumn tide
#

alr, sooo just warp them in right after then unfade?

verbal narwhal
#

never... in my whole four weeks of sdv modding schmoovin

vernal crest
autumn tide
verbal narwhal
#

what are you working on? what kind of mod? something something event-related would be my very deductive and seasoned guess be Heehee

autumn tide
#

Krobus and dwarf expansion :)

#

def not hyperfixating

verbal narwhal
#

ouhhh

autumn tide
#

very neurotypical interest

#

spending a very normal and healthy amount of time on it

#

wbu?

verbal narwhal
#

omg same!!!

#

i totally never couldnt sleep because silly frogs kept spawning and I was laying in my bed thinking about how to control it and decided sleep isnt worth it, frogs are priority

wheat sundial
#

hey question