#making-mods-general

1 messages · Page 312 of 1

golden delta
#

it's not obvious where they are

#

let me try visual studio

old edge
#

I want to add lot's of moss stuff how can i DO that

tender bloom
#

Visual studio doesn’t work on a Mac

#

They discontinued it

#

(Meanies)

old edge
#

get linux on your mac it works

golden delta
#

isntalling

proud wyvern
tender bloom
#

It worked fine, rider seems a little nicer so far

tender bloom
golden delta
#

i'm trying to make a mod that can take the mouse-hover chinese character and display a modal with its translation and pinyin somewhere on the screen

does this sound feasible?

#

once i get things working. is this available by the game engine and the mod api?

brittle pasture
#

requires a bit of external integration, but yes

tender bloom
#

Yeah that seems possible, you might need to pull in some extra stuff

#

Mainly the translation aspect

golden delta
#

yeah i have some data store thing of the lookups

#

i'm going to do it without http stuff

tender bloom
#

Pinyin would probably be doable by lookups, but translation seems harder by lookup

lucid iron
#

The problem is chinese doesn't work like that

#

Source im fluent

golden delta
#

yeah just the character is fine for now

tender bloom
#

I mean it would work a little

rigid oriole
#

Does the game load multiple language fonts at once? E.g. english and chinese

tender bloom
#

The phrase thing would be annoying

lucid iron
#

It's a highly context sensitive language

tender bloom
#

I think the Chinese font can do Latin text

golden delta
#

then is a browser extension that's figured it out, without web requests

tender bloom
#

You might consider whether you want to do tones

rigid oriole
#

I remember playing in JP for a while, switching back to english, and then all the JP characters in my ranodmly-generated animal names were error chars

tender bloom
#

Since idk if that’s supported

#

The game can’t do that way (JP to ENG)

#

But Latin text is fallback I think

rigid oriole
#

makes sense, just wanted to make sure the game would have the font they need

lucid iron
#

Yeah the latin font has no support for cjk characters

#

I think font setting might fix it

golden delta
#

i'm mostly concerned about:

  1. can i get a handle on what text character the cursor is over
  2. i can display a modal arbitrarily on the screen
tender bloom
#

Like if I look up 難過 vs just one of those it’s gonna be very different is I think what chu is getting at

#

Displaying stuff on screen is easy, if not pretty

#

Determining what you’re over in the cursor is definitely possible but might require more work

#

There’s only finite draw code for text

golden delta
#

Does the game load multiple language fonts at once? E.g. english and chinese

oh i see what you're getting at

lucid iron
#

1 might be difficult but not impossible, perhaps something via patching drawtext to get vounds and i assume u just give up gamepad support

#

2 is ez

proud wyvern
lucid iron
#

More specifically sdv just doesn't have any UI framework

proud wyvern
#

sounds unrealistic

golden delta
#

ouch

lucid iron
#

You call draw directly

#

And make it work

tender bloom
#

I mean the game has to calculate where to draw each letter

proud wyvern
#

the game doesn't

#

MonoGame does

tender bloom
#

From a brute force perspective the stuff is in there somewhere

lucid iron
#

Yeah i was talking about 2 (draw modal) with the understanding that 1 (find text bounds) is magically working perfectly

tender bloom
#

Fine, poking into monogame is possible too though. Maybe less painful to manually recalculate?

golden delta
#

so if you hover, can you get the full text (if not the character)?

tender bloom
#

There is no native support

#

No native function to call

golden delta
#

i wonder if this is easier with a unity game and BepInEx?

#

a mono game, not IL2CPP

lucid iron
#

Yeah this ain't like webdev where you have hover events

tender bloom
#

Chinese is pretty much fixed width, so recalculating might be easier

lucid iron
#

Do it yerself

golden delta
#

the first game i tried was basically hostile to modding

#

they packaged their global-metadata to stop modding

tender bloom
#

This game isn’t designed for modding but it’s not hostile to it either. What you are describing is just so different from the design paradigm of the game.

lucid iron
#

SDV is modding friendly it just that mr ape didn't have it any easier than us for menu things Dokkan

golden delta
#

apparently cult of the lamb is friendly to BepInEx

tender bloom
#

There isn’t support for it because the game never needed any of that kind of thing

#

Not because it was purposely left out or obfuscated or anything

golden delta
#

have any idea for a good candidate game?

tender bloom
#

No idea

golden delta
#

i kind of just was interested in making a mod for learning

tender bloom
#

I don’t play other games

golden delta
#

i'm using OCR for it now

#

which works fine, but it's slow

lucid iron
#

Something that is possible is to get the active dialogue line being displayed

golden delta
#

right

lucid iron
#

And then show the translation box at a fixed place

golden delta
#

any game that gives me some kind of hover of a TextMesh or whatever equivalent

tender bloom
#

It would probably start to get into better suited for one of the off topic channels when talking about other games

golden delta
#

yeah true

lucid iron
#

There's no TextMesh

golden delta
#

Something that is possible is to get the active dialogue line being displayed

im fine with this

lucid iron
#

!decompile

ocean sailBOT
lucid iron
#

Take a look at Dialogue and DialogueBox

golden delta
#

im fine with something messy like the entire text with just the pinyin all in a list

lucid iron
#

First thing is the parser (cursed) and second is the menu

golden delta
#

ok i have VS im going to try what was suggested

proud wyvern
#

it sounds kinda backwards to decide on a project like that first, without deciding on the right game for it

calm nebula
#

(Tbh I'm just doing trainchinese)

harsh crystal
#

does the body not actually support the scale modifier? or is it cached somehow THONK
i added in the body as a shirt and it scaled there

tender bloom
#

I would not be surprised if the body doesn’t support the scale modifier but I don’t know offhand

#

Bodies are weird

#

I also wouldn’t be surprised if there is caching

golden delta
#

@ivory plume

tender bloom
#

Chu said there was something funny with the body having its own content cache or something?

harsh crystal
#

oh fun
how would i clear it if it exists THONK

golden delta
#

is that expected?

lucid iron
#

Yeah FarmerRenderer has its own content manager iirc

ivory plume
golden delta
#

ok removing

lucid iron
#

I know FS does have a body scale mod by peacefulend

golden delta
#

do i build this in the UI somehow?

lucid iron
tender bloom
#

Hmm, worth testing the example mod to see if it works

lucid iron
#

FS just takes over farmer renderer so it works

harsh crystal
#

hmm i saw that, it looks like it just changes the sprite height within the bounds?
i'm testing with something that's 256x256 (cuz im zesty) and trying to downscale it so it doesnt. do this LOL
(ft pokemon rebel trainer as my test subject)

tender bloom
#

You could read the source code to see whether body actually supports/uses scale

harsh crystal
#

what language is the sc in :? im fairly new to stardew modding and not familiar with the technical side yet
i think i saw someone meantion dotnet earlier though so if its c# i should be fine

proud wyvern
#

the game, SMAPI, and mods for it are in C#, yes

#

technically you can use stuff like F# or whatever, too

golden delta
#

something is caching this network mirror or source or whatever: 1>E:\DrewMods\MyHoverMod\MyHoverMod\MyHoverMod.csproj : error NU1301: Failed to retrieve information about 'Newtonsoft.Json' from remote source 'https://nuget.smapi.io/FindPackagesById()?id='Newtonsoft.Json'&semVerLevel=2.0.0'.

harsh crystal
#

oh
yea theres no scale property in the bodymodel.cs

golden delta
#

i removed the source, restarted IDE, checked again

#

maybe ill just delete everything and start again

harsh crystal
#

its in the docs though so i was Bamboozled

#

or. wait. maybe im looking in the wrong place

sour sleet
#

How can I remove this yellow text on the 1st of each season?

lucid iron
#

Does your Load target have tokens

sharp field
#

So it's been awhile. If I'm not mistaken, someone had created a tool to create mod manifest files. Anyone know the tool?

lucid iron
#

Mod manifest builder

sharp field
#

Thanks!

sour sleet
harsh crystal
#

found a workaround, in that if i ust re label everything appropriately and put the bodymod in as an accessory it works gummy

lucid iron
#

The reason why the asset cease to exist is because the token entered an unready state

rigid musk
#

If I do "PLAYER_HAS_MAIL Current MSB_Lewis MBS_Pierre Received", as a GSQ that would make it so that the condition triggers if the player has either mail, right?

hallow prism
#

i don't believe the GSQ accept multiple arguments

#

you will need to check the format on wiki, but i'm pretty sure the third argument is for now/received/tomorrow/any

#

you'll need the ANY for each check

rigid musk
#

Would that be two trigger actions then? One for the first letter and one for the second?

#

Because if I add it to the same GSQ it would require both to be sent at some point

lucid iron
#

You can use ANY

#

This would be like

rigid musk
#

but that would still require both mails to be in the queue for the mailbox, or already received

#

or am i misunderstanding that

lucid iron
#

ANY "GSQ 1" "GSQ 2"

rigid musk
#

Oh

lucid iron
#

Which gives u mail 1 true or mail 2 true or mail 1 and mail 2 true

#

Is that what you want

rigid musk
#

I see what you mean lol I was confused for a second because I thought you were referring to the ANY in the PLAYER_HAS_MAIL Gsq not the other one

#

thank you!

#

Where do I put that ? is it at the start of the "Conditions" field?

#

so like ANY "GSQ1", "GSQ2",

#

aka do they need commas

hallow prism
#

no, but they may need backslash

rigid musk
#

Thank you! I see how that's done on the Wiki so ill try that :)

hallow prism
#

ok! i was grabbing the link in case you hadn't it already

rigid musk
#

Yeah I was a bit confused because the first one (the example with the weather) has commas

#

so I wasn't sure if I needed them or not

#

er didnt have commas

#

but the second one did

#

wait no neither does
I ... may be a bit tired lol

hallow prism
#

the commas are here but inside a ... sub GSQ?

#

i don't know how to tell

#

like, it would be ANY "group of condition 1, that may have comma" "group of condition 2, that may have comma", whatever condition you want here that will always be needed

rigid musk
#

Thank you :3

#

It also confused me a bit / I couldn't tell

#

Hm.. is the ANY also supposed to be enclosed in quotes?

hallow prism
#

no

#

well

lucid mulch
#

GSQs parser is very quote aware.
The outer most layer is comma separated queries to join in an AND relationship.
Within those queries are space separated argument

hallow prism
#

it's in the "condition":"ANY whatever blablabla" quote

#

but not having quote in itself or in addition

lucid mulch
#

Spaces and commas inside the quotes don't count to the outer layer

rigid musk
#

I figured it out B)

#

"ANY \"PLAYER_HAS_MAIL Current MSB_Lewis Received\" \"PLAYER_HAS_MAIL Current MBS_Pierre Received\"",

it would look like this (at least its not throwing errors anyways so I think it looks like this)

hallow prism
#

looks ok at first glance

rigid musk
#

it worked! :D

whole raptor
#

What exactly is the difference between a normal map and a temporary one?

#

Like with changeLocation and changeToTemporaryMap

calm nebula
#

Change location changes to that locaiton

#

Change to temporary map changes to a location named Temp

#

That then loafs that map file

#

It's not actually that location

sour sleet
#

One of my NPC's has sent me their cooking recipe in the mail but I don't actually see anything other than the shadow in the collection tab. Any reason for this?

whole raptor
#

Ah, so it's so we can edit Temp with our map, without adding a new location?

sour sleet
#

Ok so I figured something must be wrong with my recipe data

#

Can anyone tell me what's wrong? "256 2 Lilybrook.Redacted 1 Carrot 1/25 5/Lilybrook.Redacted/f TracyLilybrook 4/{{i18n:Lilybrook.Redacted.Name}}"

#

I think I'm missing the yield field but I don't fully understand it

rigid musk
#

cooking recipe?

sour sleet
#

Yepp

rigid musk
#

I believe you don't need the i18n at the end? I think that just goes in the actual item data instead

#

so try removing that (and making sure the i18n token is in the object's data) and see if that works

sour sleet
#

I'm actually using the same i18n token for this recipe entry and the actual object. Maybe it's causing issues - will change now c:

ornate trellis
#

Here's one of my recipes as an example

"{{ModID}}_bakedredsnappercurry": "150 1 192 1 260 1/1 1/{{ModID}}_bakedredsnappercurry/none/{{i18n:VoidWitchCult.CP.TheFishmongerNPC.bakedredsnappercurry.Name}}",
Name/Ingredient/unused/yield/unlock condition/display name. Idk what this recipe is making but according to as it is now the yield would be "Lilybrook.Redacted"

rigid musk
#

hmmm

ornate trellis
#

thats the unused one

rigid musk
#

doesnt do anything - yeah

ornate trellis
#

i just put 1 1 out of habit in all mine

rigid musk
#

yeah i do the 25 5 out of habit myself

#

technically you could just do //

ornate trellis
#

ye

#

since you use Lilybrook.Redacted as an ingredient your yield field which is the same is probs the issue

rigid musk
#

so when you say the recipe isnt working is it not being sent or does it show as like, a torch recipe

#

also its not actually that void

#

they just redacted the names of the object and recipe

ornate trellis
#

oh so its a placeholder

rigid musk
#

yeah they're keeping it secret xD

sour sleet
#

Ah fine I'll share it - it's confusing haha

ornate trellis
#

that makes it more confusing- yeah

sour sleet
#

"8BitAlien.Lilybrook_TomatoSoup": "256 2 Lilybrook.Onion 1 Carrot 1/25 5/Lilybrook.TomatoSoup/f TracyLilybrook 4/{{i18n:Lilybrook.TomatoSoup.Name}}"

rigid musk
#

is the internal name of your npc actually "TracyLilyBrook" or does it have your mod id

#

because that would be causing the issue

#

ohhh

sour sleet
#

it's actually TracyLilybrook

rigid musk
#

your recipe yield needs to be the same as your first part

#

so it would be 8BitAlien.Lilybrook_TomatoSoup, not just Lilybrook.TomatoSoup

ornate trellis
#

yes

#

we got a winner

sour sleet
#

Ohh ok! Will try that now

#

Nope, still nothing 😦

#

The name of my object is actually Lilybrook.TomatoSoup, so I should actually be changing my entry key instead?

latent mauve
#

Is Lilybrook.Onion the correct ID for the ingredient?

#

Your key should match your object data.

rigid musk
#

If the object is called Lilybrook.TomatoSoup the entry and output need to be Lilybrook.TomatoSoup

sour sleet
#

Yay, that seems to work, thanks everyone SDVpuffersquee I have one last question. I have added other food items and they have a shadow on the cooking tab even though I don't want some to have a recipe. How do I remove these?

rigid musk
#

That should only happen if you gave them recipe data pondering

#

also yippie! :D

#

mmm i could go for some nice tomato soup right now

sour sleet
#

They only have object data rn

#

They have Type:Cooking but I assumed all food had that lol

latent mauve
#

You are absolutely certain you haven't given anything with their object ID a Data/CookingRecipes entry? I mean, you could try giving it the Basic type but I don't know that it should matter.

sour sleet
#

I'm certain. I only learned how to do Recipe Data today haha

latent mauve
#

Sorry, my phone refuses to spell today

rigid musk
#

hmm thats odd cause I do definitely have foods for qi that dont show in the cooking tab... i htink

sour sleet
#

Ooo will try doing that now

brittle pasture
#

you'd also need to change their category to anything but -7

latent mauve
#

Honestly I don't know that I have ever given my custom objects a Type that wasn't Basic

#

I usually just make the context tags do the job of labeling them

brittle pasture
#

Type is kinda a relic, but some of the game code still checks them

#

though most of them also checks category

sour sleet
#

Nope, they're still there

#

Ohhh

#

I will change the category now

brittle pasture
#

yeah sorry I was busy checking source code to see if the category change was needed lol

sour sleet
#

None of the categories fit haha

brittle pasture
#

if you have spacecore you can override the category text

sour sleet
#

I might try -17

brittle pasture
#

actually -25 also gets written as "Cooking"

sour sleet
#

Oh I will use that then

latent mauve
#

Ingredients are still edible

brittle pasture
#

(also, huh, -25 exists)

latent mauve
#

Which is -25

brittle pasture
#

(it is not used in vanilla anywhere)

#

(how long has that been there, goodness)
(is it introduced solely so mods can add "Cooking" items that doesn't count towards Perfection)

sour sleet
#

Yay that worked 😄

zealous rivet
#

I'm sorry to bother you, but could you show me an example? I'm a little dumb

rigid musk
#

Here's an example of me doing something similar, though the only thing I changed is the response

#

(which, i realize i can do with dyamic tokens, but i didnt know how dynamic tokens were made when doing this and i dont wanna redo it so... phooey on that)

#

maybe ill do that actually... less patches is better i think

whole raptor
rigid musk
#

local tokens...

#

well ive already dynamic-tokened-it up so im not even gonna look at that

rigid musk
#

I was already corrupted into using dynamic tokens

#

i cannot deal with more corruption

rigid musk
lucid iron
#

Local tokens are just dynamic tokens but for 1 include

rigid musk
#

does that mean im already doing it

#

the corruption is inevitable i guess

lucid iron
#

Not unless you have LocalTokens somewhere

rigid musk
#

oh well

#

I'm doing it in my own special way ✨✨

calm nebula
sour sleet
#

But that's the good thing about modding. There are several ways of doing thingsSDVpuffersquee

calm nebula
#

I need ternary

lucid iron
calm nebula
#

If?

#

In a token?

lucid iron
#

The trigger action

calm nebula
#

No, I meant ternary in local token

lucid iron
#

Ah a token 3sSmolMiku

#

Why r u ask me for this

faint ingot
#

Is there a way to take a stat that I increment from time to time and put it in a piece of event dialogue?

calm nebula
lucid iron
#

Yeah tokenized string i think

calm nebula
#

Why

lucid iron
#

[FarmerStat <key>]

#

I'm assuming they work in event dialogue, haven't tried

rigid musk
#

do you define them similarly to dynamic tokens... I shouldnt look at this i think ill make myself insane

lucid iron
#

Not really you get "TokenName": "Thing"

#

Cus the point is to use this within a patch which may already have a When

rigid musk
#

ah i see i see

faint ingot
rigid musk
#

Is there a reason why a spouse would stand facing to the left while at the kitchen pondering

#

I don't know why he started doing that and I have no clue what i changed to make him do that

brittle pasture
scarlet ether
#

Is there/does anyone have: an annotated reference sheet for, firstly, the user interface (e.g. where all the parts are used in-game like the hotbar/hotbar selector/inventory menu), and secondly, (just curious for this one) for the town/outdoors tilesheets that notes what things are and/or used for?

rigid oriole
#

someone may prove me wrong but i'd be VERY surprised if the interface had any in-depth user-created documentation at all

#

(please prove me wrong, that'd be pretty neat)

scarlet ether
#

sad. 😦

rigid oriole
#

what are you trying to accomplish?

scarlet ether
#

Mostly I just want to make it easier to modify the look of the UI. Since I separate all the UI pieces into separate layers in order to facilitate easier editing down the line, naming the layers with what they are/where they're used is very helpful.

#

If no one has notes, I'll just have to make my own. I'm just lazy. 😛

rigid oriole
#

Oh for UI recolors?

scarlet ether
#

Yeah, but I'm also redrawing some of the elements to make it more flat/minimalistic.

tender bloom
#

I think there's a resource to help show what bits to recolor

#

But idk that it's that extensive

scarlet ether
#

Yes, this one is the most recent resource. Very helpful if all you're doing is changing colors. No need to know what everything is used for specifically.

lucid mulch
# lucid iron Local tokens are just dynamic tokens but for 1 include

LocalTokens can be put on any patch directly as well, its just that when putting them on Include its inheritable

    {
      "LogName": "Aquarium Fishes",
      "Action": "EditData",
      "Target": "Data/AquariumFish",
      "Entries": {
        "Lumisteria.MtVapius_Sturgiant": "0/fish/////{{AquariumFishTexture}}",
        "Lumisteria.MtVapius_AlpineCharPrince": "1/fish/////{{AquariumFishTexture}}",
        "Lumisteria.MtVapius_WhiteVendace": "2/fish/////{{AquariumFishTexture}}",
        "Lumisteria.MtVapius_VapiusRoach": "3/fish/////{{AquariumFishTexture}}",
        "Lumisteria.MtVapius_MossyCrayfish": "4/crawl/////{{AquariumFishTexture}}",
        "Lumisteria.MtVapius_AlpineChar": "5/fish/////{{AquariumFishTexture}}",
        "Lumisteria.MtVapius_CrystalFish": "6/fish/////{{AquariumFishTexture}}",
        "Lumisteria.MtVapius_GiantCrystalFish": "7/fish/////{{AquariumFishTexture}}",
        "Lumisteria.MtVapius_RainbowPerch": "8/fish/////{{AquariumFishTexture}}",
        "Lumisteria.MtVapius_LeafyTrout": "10/fish/////{{AquariumFishTexture}}",
        "Lumisteria.MtVapius_PlanetFish": "11/fish/////{{AquariumFishTexture}}",
      },
      "LocalTokens": {
          "AquariumFishTexture": "Mods\\Lumisteria.MtVapius\\AquariumFishes"
      }
    },

(I picked a random patch with repeated content and did it)

lucid iron
#

this is true tho i feel like it is not any different kyuuchan_run

valid folio
#

Hello, could you guide me on how I can make this mod? I translated it into Spanish, but now I wanted to reinstall it and the author deleted it. The only way I can think of is using a recipe, but the original mod was exactly the same object that you obtained through a mini quest to get the recipe and craft the drink, which was a loved gift by everyone, just like the original Stardrop Tea.

lucid iron
#

well the stardrop tea is just an object

#

you would make a cooking recipe for it, though idk the details of this mini quest so you will have to summon it from memory

rigid musk
#

like chu said wouldnt know how to help with the quest stuff since we dont know the details of said quest

valid folio
rigid musk
valid folio
rigid musk
#

Of course! I definitely think you should do it anyways! :D

lucid iron
#

!twocakes

ocean sailBOT
#

If you discover that someone has made or is making a mod with a similar concept to yours, don't stress! Our community promotes the idea of "two cakes", where two versions of the same idea can peacefully co-exist. Your mod will have your own unique stamp on it that makes it special.

rigid musk
#

If you're wanting to make a recipe and add it to the Traveling cart shop -

#

YEAH

valid folio
# rigid musk If you're wanting to make a recipe and add it to the Traveling cart shop -

Actually, I could do this: make the Stardrop Tea mod with just the recipe, obtainable from the Traveller, and add a link to the “Star Crops and Galaxy Rainbow Trees - Stardrop Tea Ancient Starfruit Fruit Sapling Mod,” mentioning that if anyone wants something more complete, they can try that mod.

What really interests me is trying to make the mod haha. Not to mention, I’m also going to translate Anaira’s mod. By the way, her nickname sounds familiar, I’ll check if I haven’t translated something for her before.

rigid musk
#

She's made a fair few cool mods!

valid folio
boreal pulsar
#

Hi everyone
If I understand correctly the wiki, in order to add a new mail to the mailbox I have to call Game1.mailbox.add() containing the unique key of that mail. from what I found the default mails are stored in Content\Data\Mail.xnb
how can I add new mails toh? do I create another content/data/mail.xnb or what

tender bloom
#

Most people use content patcher to add a new mail to Content/Data/Mail

#

Using an EditData action

sour sleet
#

How do you make a furniture piece that acts like an archway? So there is collision on some tiles and you can walk through the middle

lucid mulch
hard fern
#

🤔

tender bloom
#

Maybe ask chu

hard fern
#

Is it even possible without-

#

I don't think regular cp can do it at least

tender bloom
#

I feel like chu was up to something with collision

vernal crest
#

Chu just made a thing that can do that, it's going into calcifer at some point maybe

tender bloom
#

No, regular CP can't yeah

sour sleet
#

Ahh okee

tender bloom
#

I am not familiar enough with furniture framework to say whether it has anything

sour sleet
#

On a related note, how can you add furniture that has a front layer too, like a sofa?

#

Can that be done with an EditData alone?

hard fern
#

Wdym like a front layer 🤔 for what

sour sleet
#

Like, I want the player to be able to walk behind it and it not have collision there

hard fern
#

I think normal furniture already can do that by just editing the collision boxes though

sour sleet
#

When editing Data/Furniture?

latent mauve
#

When you edit your furniture, there's a reference for where the front layer is located.

sour sleet
#

Would BoundingBoxSize be relevant here?

hard fern
#

Im like confused too bc i thought you could already walk behind furniture

#

If it's Tall

brittle pasture
#

you can specify furniture hitboxes that are smaller than their texture
what you can't do is have furniture that goes XOOX where O is walkable but X is not

tender bloom
#

but with front in front of the name

sour sleet
#

Ahh ok, I will try doing that. Will it automatically draw it?

#

Or do i need to specify it's the front texture?

tender bloom
#

it automatically looks

latent mauve
#

Make sure your front texture lines up with where the furniture will be on the normal asset.

sour sleet
#

Ok, thanks. Will try now c:

sour sleet
#

I don't understand what I'm doing at all lol. Is there a different way?

rigid musk
#

so for front textures you have your two pngs right

#

here let me get you an example with my furniture yeah

sour sleet
#

Thanks Lily c:

rigid musk
#

first we got the two pngs here, the furniture file and then the furniture file with Front at the end

latent mauve
#

in vanilla, you have for example, furniture and furnitureFront

rigid musk
#

Then in the "Front" file, at the same tile(s) that your furniture is on you put the part that you want to draw in front there

#

if that makes sense

latent mauve
#

So I think the suggestion earlier to put Front in the beginning of the name was technically just wrong spot

tender bloom
#

yeah sorry

rigid musk
#

(without the shadows cause then itll draw the shadows twice and look funny when you sit on it)

sour sleet
#

Ok, I follow all the part about the pngs, but I'm confused about how to code it in

tender bloom
#

i remembered wrong about the name

#

just use Load on the other png

rigid musk
#

no code

latent mauve
#

Load it as a Target

rigid musk
#

it automatically does it

tender bloom
#

the game automatically looks for it

rigid musk
#

you dont even have to load the front png iirc

#

i am aliar

latent mauve
#

(Load both)

rigid musk
#

you do have to laod the front one lmao I just didnt remember doing it

sour sleet
#

Thanks all!

rigid musk
#

happy to help! :D

round timber
#

so with doing island resort stuff for an NPC, do you need to do anything beyond dialogue, sprites, and the CanVisitIsland setting in the disposition?

tiny zealot
#

i think that's all you need

round timber
#

gotcha

lucid iron
#

did u want island outfit

#

that one needs a Data/Characters appearances edit

tiny zealot
#

i included that in "sprites"

vernal crest
#

You can do animations if you want to as well

boreal pulsar
#

Mhh, the thing I don't have a static list of mails
Basically every start of the season I generate a quest. The quest is delivered through a mail, which is named "quest name + number of questa done so far" and it contains a simple description (stored in the quest data) + key to activate the quest being tracked

Would it work anyway if I edit it through asset requested any time I generate a new quest? Or maybe there's a better way

boreal pulsar
rigid musk
#

How do you choose where they go when they go to the island pondering

#

like standing and such

round timber
#

hmm i was under the impression that just having the file be called NPCName_beach automatically made it an island outfit

#

is that no longer true?

vernal crest
#

No you're right it is true

#

Only Winter outfits require Appearance data

rigid musk
#

shock wh..

tiny zealot
#

(you can prohibit them from doing certain activities which require a matching animation, by not providing the animation. but that's all the control you have)

vernal crest
#

Island schedules are hardcoded

lucid iron
#

why would B) go to the island resort when he has a darker cooler resort

rigid musk
#

kekw I was thinking about it for Honey but sending Qi to the resort would be pretty funny...

lucid iron
#

oh no

calm nebula
#

Yessss

rigid musk
#

I do have the power to do such a thing

#

Will i ? remains to be seen

sour sleet
#

Doesn't seem to be loading the front png. Is this right? { "LogName": "Load Furniture", "Action": "Load", "Target": "Mods/{{ModId}}/Furniture", "FromFile": "Assets/Items/Furniture.png" }, { "LogName": "Load Furniture Front", "Action": "Load", "Target": "Mods/{{ModId}}/FurnitureFront", "FromFile": "Assets/Items/FurnitureFront.png" },

round timber
#

wait whomst is Honey

rigid musk
#

Also chu im sorry but I won't be uploading the 1.2 update with the Nyapu portraits - they might take a while for permissions and there are a fair few important bug fixes I need to release -

#

Oh! Honey is gonna be my Apple Orchard NPC :)

round timber
#

ooh

rigid musk
#

they're lovely I think, I commissioned Pau to make portraits of them

round timber
#

i ask because my NPC is named Honeyfuggle LOL

rigid musk
#

Honey's name is Honey because... Honey Crisp apple

#

Look at them <3 I love them <3

round timber
#

oh wow i love those portraits

#

gorgeous!!

lucid iron
#

crisp ukimasu

rigid musk
#

I really gotta get started on making their sprites but I hhhhhate sprite making

#

Honey Crisp and Cosmic Crisp (Cosmic is their cat)

#

What if I named the orchard Crisp Orchard... then I wouldn't have to think too hard about names... I think I will

lucid iron
#

someone give me a tile action to make LilyDerp

rigid musk
#

u click on tile it gives you 10000 qi gem /j

#

although clicking on a tile and getting currency sounds kinda neat

lucid iron
#

thats in BETAS already

rigid musk
#

i dont know the documentation of everything chuuu im just a little guy

calm nebula
rigid musk
#

wHEEZE

calm nebula
#

Oh

lucid iron
#

is ferngill simple economy too simple for you atra

calm nebula
#

And I'll need snap implemented

lucid iron
#

ferngill advanced economy

rigid musk
#

Not SNAP HAhah

crude plank
#

Ferngill expert economy

rigid musk
#

Ferngill Proficient Economy - not to be confused with Ferngill Intermediate Economy

calm nebula
#

The stock market needs options, futures, and also margin

lucid iron
#

idk what a money is

calm nebula
#

Games top 🚀

calm nebula
rigid musk
#

does BETAS have a tileaction that resets every day where you can go and click on it and it gives you something? like a once a day tile action? (it probably does, i should probably just go look at what it does to see...)

lucid iron
#

no but spacecore does

#

kind of

calm nebula
#

Like a Pokémon cliff

lucid iron
#

ah the fabled bridge...

#

spacecore tile trigger action -> do the thing in a mark as applied -> unapply it at end o day

#

u can randomize which trigger action you get using a {{Random}}

#

i looked at how wall paper and flooring work and took 2d6 blunt damage

calm nebula
#

Oh chue the internet told me

#

In canada

#

It is legal to grab a pigeon off the street

#

And keep it as a pet

#

Implant in stardew plz

lucid iron
#

r u sure

calm nebula
#

No

rigid musk
#

tile action to change the weather or time

#

i dunno i actually never thought of what tile actions id want in the game

sour sleet
#

Ok, so I've definitely loaded the front png in. Do I need to do anything else?

calm nebula
#

Okay a pigeon isn't migratory

calm nebula
#

What about an action that changes your daily luck

rigid musk
#

ooohh random luck...

#

maybe one that adds random daily luck?

#

llike a little lucky statue...

sour sleet
lucid iron
#

thats just AddBuff

rigid musk
#

Cause that doesn't have to do with the furniture drawing over itself that has to do with what you set the bounding box to

lucid iron
#

you need a mod to make furniture conditionally not have collision

sour sleet
lucid iron
sour sleet
lucid iron
#

vanilla only lets u have rectangle shaped bounding boxes, tho it can be different than the texture source rect

#

why dont u just add a fence then

sour sleet
#

Because I don't want it to act like a fence

lucid iron
#

but ill clarify

sour sleet
#

I want it to be more like decor

lucid iron
#
"WizardStudy": "WizardStudy/decor/3 3/3 1/1/999/-1/[LocalizedText Strings\\Furniture:WizardStudy]/46/TileSheets\\wizard_furniture/true/collection_wizard",
#

u see the 3rd and 4th slash deliminated field?

sour sleet
#

Yup

lucid iron
#

3 3 is the texture bounds (in 16px tiles)

#

3 1 is the collision bounds

#

so in the game u can walk behind the wizard study

sour sleet
#

Ahhhh

#

Ok I'm understanding now

lucid iron
#

what game won't let u do is like

#

XOX

#

where u get to walk through the O

#

and u also cant make a rug have collision

rigid musk
sour sleet
#

Fr

lucid iron
#

but now u can ukimasu

sour sleet
#

Ok I'm following now yay haha

rigid musk
#

My Stardew Foliage mod would be so much better if I could (with just content patcher i dont wanna use more im so laaaaaazy chu)

lucid iron
#

i believe FF has this feature too

vernal crest
#

Hmmm I am trying to use a dynamic token for chance and precedence here but CP doesn't like it. Can I just not use a token here? I thought I could use them anywhere.

{ //Location: Secret Woods
            "LogName": "Adding Secret Woods fish...",
            "Action": "EditData",
            "Target": "Data/Locations",
            "TargetField": [
                "Woods",
                "Fish"
            ],
            "Entries": {
                "{{ModId}}_LunarSalmon": {
                    "ItemId": "{{ModId}}_LunarSalmon",
                    "Condition": "LOCATION_SEASON Here summer fall, WEATHER Here sun",
                    "Chance": {{LunarSalmonChance}},
                    "Precedence": {{LunarSalmonPrecedence}}
                },
}
lucid iron
#

can u show us the token

#

oh

#

congration u are patient number 4 or so

sour sleet
#

Ok it's still not working. It will only let me walk to here

rigid musk
#

can you show us the furniture data,

lucid iron
#

spawn new one just in case?

vernal crest
#

Wow I did not understand anything SinZ wrote in that PR lol

rigid musk
#

oh yeah did you spawn a new one--

lucid iron
#

aba ur problem is that in current version of content patcher this is no good

"{{ModId}}_LunarSalmon": { "something": "{{token}}" }
sour sleet
#

Yayyyy

rigid musk
#

the old furniture items don't do the thing when you update them (I had the same thing happen to me where I had one of my night stands not rotating because i forgot to add the rotations, and then i fixed it and it still wasn't rotating and i was very very confused)

sour sleet
#

Haha that worked

lucid iron
#

sinz PR fixes this bug

sour sleet
#

Thanks all - you're the best

vernal crest
lucid iron
#

backend spaget reasons

#

its not intentional

rigid musk
#

mmm ... code spaget

gray bear
#

when the issue is furniture the answer is more furniture SBVMischief

vernal crest
#

Could it be fixed by just removing the modid token then?

rigid musk
#

I feel like ive made things with tokens like that before and they worked... but maybe its not the same thing and is something unrelated i dunno

lucid iron
#

maybe NotteThink

#

although hm i thought mod id is fine actually

#

since it is a invariant token

#

can u patch export Data/Locations and see what actually got edited in?

lucid mulch
lucid iron
#

yea modid was one thing thats ok right, i just forgor blobcatgooglyblep

lucid mulch
#

the entry key is allowed tokens and is serialized separately from the inner contents.
(also ModId being immutable means it just gets baked in immediately)

vernal crest
#

It never actually applies the patch because it says it is invalid json

lucid mulch
#

you don't have quotes around Chance and Precedence values

vernal crest
#

Because it doesn't have quote marks around the token, maybe? But then adding quote marks breaks it in a different way

#

Because it can't have quote marks because the type is double

lucid iron
#

cp handles that tho

vernal crest
ocean sailBOT
#

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

#

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

rotund elm
#

mi log XD

lucid iron
#

oh did u want a {{query: }}

vernal crest
#

Oh wait

#

This is because he wrote the token wrong isn't it

lucid iron
#

idk why u r mult by 1 tho

lucid mulch
#

Whats the value of {{LunarSalmonChance}}

#

if the contents aint a number you are going to have a problem

rotund elm
#

0.1

#

is how the values are set

vernal crest
#

The contents are meant to be a number

rotund elm
#

this is the query

vernal crest
#

Yes this is on me for not checking how he wrote the tokens kyuuchan_hide

lucid mulch
#

throw an extra layer of brackets around those

#

the value of a dynamic token I don't think is implicitly a token

rotund elm
#

{{Query: ?

#

I seeeee

vernal crest
#

Thank you chu and sinz

rigid oriole
#

i empathize with this

lucid mulch
#

For the Reference issue, the patch needs to be more like

{
    "Action": "EditData",
    "Target": "{{PATH}}/Data",
    "Entries": {
         "SimpleDictionary": {
            "UntokenisedKey_SimpleDictionary": "{{PATH}}/String",
            "{{KEY}}_SimpleDictionary": "{{PATH}}/String"
        }
    }
}

where the contents of the entry has a key and value both doing tokenized strings that aren't immutable.
if the value is a object/array/etc its fine, the value needs to be a string

#

and same thing with fields, but needs to be after the two layers of keys first (one to select the entry, second to select the field)

lucid iron
faint ingot
#

Can someone tell me the default ambient light value I should use for outdoor daytime? I have an event where I alter the ambient light and I'm having trouble changing it back afterwards so that it matches what it looked like at the start.

rigid oriole
#

Is there an advantage/disadvantage to using the builtin SMAPI reflection helpers vs harmony's AccessTools?

boreal pulsar
# tender bloom Most people use content patcher to add a new mail to Content/Data/Mail

Im not sure if I understand how this whole thing works in Stardew. Do I have to save my custom letters to the game, so whenever the game loads back it has those templates stored to load back received letters? Or does it need them only the time I send a letter?
I'm asking this because my mod doesn't have a static list of letters, but they are randomly generated (both ID and content) so I can't write a list of them to store.
Currently I'm using an aassetRequested event in c# to edit an asset but I'm not sure its the correct way.

From what I've seen I do receive a mail but it's completely empty (couldn't check more to maybe the issue is somewhere else, had to go)

lucid iron
#

The smapi ones get cached i think?

rigid oriole
#

the cache i did see

lucid iron
#

I don't think there's other meaningful differences

#

AccessTools is more powerful in general too

#

I still have no clue how to get a Property's getter with other reflection things weh

rigid oriole
#

honestly I just care to read a protected field right now but the SMAPI cache is probably worth if this gets called every draw tick SDVpufferlurk

tender bloom
rigid oriole
#

A harmony traverse might also do the same thing if i don't keep constructing it over and over

boreal pulsar
lucid mulch
#

found that out the hard way

proud wyvern
#

does it?

#

i've been doing that fine

lucid mulch
#

using smapi's ReflectionHelper class?

proud wyvern
#

oh yeah, i'm not using that

#

sorry, missed the context

lucid mulch
#

was like the one time I wanted to be good and use the caching stuff, and got bit for using it on smapi

proud wyvern
#

i usually cache reflection stuff myself

lucid mulch
#

if we got a newer .NET version I don't think the cache would even be needed

proud wyvern
#

i don't think that's ever happening

#

unless SMAPI starts bundling its own .NET runtime

lucid mulch
#

I think at some point SMAPI should bump the .NET version, smapi already is installed via an installer that could ensure an up to date .NET runtime is installed.

does require some low level reworks to have StardewModdingAPI.exe/dll to be in a different folder to StardewValley.exe and then do the corresponding changes in the asset pipeline and audio stack to still know how to find the Content folder correctly

#

I had a poc at some point that had it working (except the audiostack)

#

but I doubt vanilla is ever going above .NET 6 due to dropping compatibility for win7, despite the fact Steam and GOG both already dropped it first

#

since SMAPI is the actual executable that runs, it doesn't need to be version parity with vanilla and can be a newer version.
a .NET 9 assembly can load a .NET 6 library perfectly fine

past knot
#

One more thing about maps. This map wont have a door, but kind of a cave entry that leads to the npc room. can i still use the lockeddoorwarp property?

vernal crest
next plaza
rigid oriole
#

Any thoughts on why _reflectionHelper.GetField<float>(Game1.specialCurrencyDisplay, "currentPosition").GetValue() throws an error for the field not existing? I've got a check before this to make sure Game1.specialCurrencyDisplay isn't null. the SpecialCurrencyDisplay class definitely has this field as per the image. Similar issues existed when I tried to use Harmony traverses. Listing out all the fields on the traverse instance listed fields with names that don't even show up in my decompile SDVpufferthinkblob

#

what reflection concept am I missing?

woeful lintel
faint ingot
#

I have an event that uses Chu's mmap framework to create a texture/panoramic effect 'beneath the map' (similar to the summit). This is working wonderfully however that map also has an event take place there, and I'm struggling to find a replacement method for the normal fade option of globalFade/viewport -1000 -1000, since moving the viewport off the map is no longer a black screen but the under-map texture. I also tried changeLocation between the two commands but he snap back from fade is still clearly there. Any ideas?

woeful lintel
#

A dumbass put spaces in the keys of the FF json format, is there a way to format the data model properties so that NewtonsoftJson can parse a json with space in keys to the data model directly? Like writing the same names without spaces or replacing spaces with underscores?
I know I can make a simple JsonConverter that does this, I was just wondering if it was possible to skip it.

past knot
#

Okay so i might have gotten ambitious. Is there a tutorial on items/objects, and how to add buffs to an edible object?

old edge
#

Yes

#

On item eaten

sturdy wyvern
#

i am making a texture replacement mod for a mod, in the original mod some of the assets are load only when a token set via a configschema is true. for the texture replacement i am using EditImage, so i am wondering would my patch effect the original patch or how would i go about inherting the config schema from the original mod?

old edge
#

Use priority property

proud wyvern
#

i don't see that field in the decompile repo

old edge
#

Oh the config schema you have to apply the same one to your mod I think.

rigid oriole
#

well then. my decompile appears to be from SEVERAL minor versions ago

#

thanks 💀

#

i think this means i should not stay up later

#

the updated code has a lot more comments which is nice!

proud wyvern
#

silver lining

rigid oriole
#

i'm... surprised i didn't run into issues earlier considering how many harmony patches i've been writing

past knot
vernal crest
vernal crest
old edge
# past knot Huh?

you can use space core's spacechase0.SpaceCore_OnItemEaten trigger action

#

first mark the item for trigger actions ```json
{
"Action": "EditData",
"Target": "spacechase0.SpaceCore/ObjectExtensionData",
"Entries": {
"{{ModId}}_YOURITEM": { // The object ID//
"UseForTriggerAction": true,
}
},
"When": {
"HasMod": "spacechase0.SpaceCore",
}
},

old edge
#

then make the trigger action ```json
{
"Action": "EditData",
"Target": "Data/TriggerActions",
"When": {
"HasMod": "spacechase0.SpaceCore"
},
"Entries": {
"{{ModId}}_YourItemTrigger": {
"Id": "{{ModId}}_YourItemTrigger",
"Trigger": "spacechase0.SpaceCore_OnItemEaten",
"Condition": "ITEM_CONTEXT_TAG Input food egg_item",
"MarkActionApplied": true,
"Action": "AddBuff 18",
}
}
},

vernal crest
#

Do you need Spacecore? There's a spot in Data/Objects where you can specify buffs via CP.

old edge
#

oh yeah that works but the space core version you can add multiple actions with the ```json
"Actions":

grim latch
#

Mostly I make mods for personal use only, but I just published my 3rd ever mod to Nexus : a 1.6 update of my favourite greenhouse which has been broken for ages - I only just noticed that permissions were open on the original

https://www.nexusmods.com/stardewvalley/mods/33992

Nexus Mods :: Stardew Valley

Updated version of Forkmaster's Custom Greenhouse for Stardew Valley 1.6

grim latch
#

There was already a secondary patch mod that apparently fixed it, but I figured it was easier to just redo the whole thing.

Plus I wanted to make the cellar its own map.

woeful lintel
#

I'm having an issue making a custom JsonConverter: how do I convert a JObject to the target type without going through the JsonConverter I just wrote?
I made this:

public override object? ReadJson(JsonReader reader, Type objectType, object? existingValue, JsonSerializer serializer)
{
    if (reader.TokenType == JsonToken.StartObject)
    {
        JObject obj = JObject.Load(reader);
        JObject new_obj = new();
        foreach (JProperty property in obj.Properties())
        {
            new_obj.Add(property.Name.Replace(" ", null), property.Value);
        }
        return new_obj.ToObject(objectType);
    }

    throw new InvalidDataException($"Could not parse Furniture from {reader.Value} at {reader.Path}.");
}

But return new_obj.ToObject(objectType); creates an infinite loop, how do I parse it normally without going through this converter again?

#

i can't seem to find a way to specify a converter (or none) in any newtonsoft methods

woeful lintel
#

maybe something to do with the Serializer?

woeful lintel
#

Fixed this by switching to JsonConverter<T> and doing:

public override T ReadJson(JsonReader reader, Type objectType, T? existingValue, bool hasExistingValue, JsonSerializer serializer)
{
    if (reader.TokenType == JsonToken.StartObject)
    {
        JObject obj = JObject.Load(reader);
        JObject new_obj = new();
        foreach (JProperty property in obj.Properties())
        {
            new_obj.Add(property.Name.Replace(" ", null), property.Value);
        }
        
        T result = new();
        serializer.Populate(new_obj.CreateReader(), result);
        return result;
    }
    
    throw new InvalidDataException($"Could not parse Furniture from {reader.Value} at {reader.Path}.");
}
grim latch
#

Is Spacechase still modding or are all their mods now being updated by pathos?

#

I know they stopped for a while, but I vaguely recall they might have come back?

lucid iron
#

Casey hiatus rn

#

What do u require

grim latch
#

Ah ok, nm it was just a suggestion for GMCM

#

nothing urgent

daring ruin
#

How can I make a Linux Desktop session use the GPU without Steam or any launcher?

#

Through mono?

lucid iron
#

I don't think u need anything special but maybe check whatever driver settings you may have

daring ruin
#

Also without mono I could not get that working in a Docker container with an Nvidia GPU exposed

#

While I can do nvidia-smi inside that container

lucid iron
#

!mh if it's not for mod making u can go open a thread here

ocean sailBOT
#

For help with modding issues, please ask in #1272025932932055121! When asking for assistance there, sharing an error log will help others identify your issue (see https://smapi.io/log for instructions).

lucid iron
#

That said your setup sounds very niche I don't think im capable of helping

lucid mulch
#

(also stardew is pretty much entirely cpu heavy, integrated graphics does stardew perfectly fine with how idle the gpu will be)

blissful panther
#

I would still love to see a comparison between MonoGame's supposedly... not great OpenGL renderer and the DirectX one.

lucid mulch
#

but its also how stardew does its draw loop isn't great

#

particularly none of the asset pipeline edit stuff really interacts with the gpu other than getting in the way going back and forth

#

Don't really use shapes or shaders much, just a bunch of cpu animated sprites

whole raptor
#

Is there a point to making where everybody sits in a wedding configurable...? SDVpufferthink

tiny zealot
#

for just your custom wedding? i would say no

#

for all weddings in general? i once started working on a mod that could place wedding guests automatically but i shelved it

whole raptor
#

Yeah, just mine

#

I thought it'd be nice (even if very rarely used by anyone), buuut... it's a shitton of additional configs and tokens 😅

tiny zealot
#

yeah it's a ton of work for like a 30-second cutscene

#

probably difficult (as a user) to reason about the effect the configs would even have without being able to test and replay it, for that matter

whole raptor
#

(I am planning to make the wedding replay able with debug ebi for people who already married the wizard)

#

But yeah, nice, less (self imposed) work for me SDVkrobusgiggle

calm nebula
tiny zealot
whole raptor
#

I do hope we'll get more custom weddings in the future

tiny zealot
#

(i technically have one, but it's only barely different from vanilla. i really only converted to it so i could stop overwriting the generic dialogue lines, which i found distasteful when a non-competitive option became available)

lucid iron
#

Ichor what if mouseverse wedding

tiny zealot
#

tell me more

lucid iron
#

Special cindersnap wedding where the mouse friends fieval rose r all there

tiny zealot
#

thinkblob

lucid iron
#

Oh and cap mouse yes

#

Just depends on how many mouse mods were installed

whole raptor
#

Maybe temporarily turn the farmer into a mouse too for the wedding SDVpuffersquee /jk

lucid iron
#

Idk if the mouse friends have back sprites tho

calm nebula
#

I'm still thinking Wedding Pssive Festival

#

Mayne I should add it to !modideas

tiny zealot
#

i would really enjoy a wedding playercontrol event, honestly. i should look into that

#

don't even have to fix the hardcoded lewis thing, since he's the officiant SDVpuffersquee

calm nebula
#

I just want to be able to walk around and talk to people

whole raptor
#

Down with Lewis! Let others be officiants!

calm nebula
#

Rehearse a speech in my head

tiny zealot
#

let people congratulate you on your wedding while it's happening!

calm nebula
#

Put my wife's face into the cake ||wait never do that that is so rude why is it the new social media trend||

whole raptor
#

That would be amazing, ngl

tiny zealot
lucid iron
#

I thought it's Haley

calm nebula
#

No a festival will default to Lewis

#

Ashley has a differe t hardcoded onr

#

Is fun

tiny zealot
#

i wouldn't be surprised if it's like

if (festival) {
    return "Lewis";
}
else if (eventId == haley) {
    return "Haley";
}```
calm nebula
#

It's not, iirc

#

There is a festival set up iirc

lucid mulch
#

Festival logic is separate from the player control command

#

The playercontrol one iirc wasn't so much hardcoded to Haley as much as the playercontrol objectives were

lucid iron
#

I thought atra suggestion is actually like

#

Wedding event goes normally

#

But that day is also made into passive festival

whole raptor
#

That's probably the easiest... but would be nice if we could trigger the wedding event ourselves during the passive festival

#

Cause also... who gets married at 6 in the morning?! SDVkrobusgiggle

#

On another note... is Krobus dancing here? SDVpufferthinkblob When does he do that?

tiny zealot
whole raptor
#

Farmer has wedding clothes..? How come I've never seen it 😅

lucid mulch
#

Male farmer does iirc, female farmers are expected to byo

whole raptor
#

Ah, that's why I've never seen it SDVkrobusgiggle

tiny zealot
#

i think 1.6 got rid of male farmer auto tux shirt? but i don't know for sure
anyway it was about having to dress the night before because you don't have a chance the morning of

unreal spoke
whole raptor
#

Nope, that's the bottom row of the sheet

vernal crest
#

My farmer was "male" and got married in their work clothes (thanks to an event the night before that sent me to bed without my consent!!!)

lucid mulch
#

Just play multiplayer and events can't sleep anymore

vernal crest
#

I spend way too much time in the menu while the game is alt-tabbed for that lol

whole raptor
#

I also just noticed Krobus has a non standard sprite size... SDVpuffereyes

#

Hmm... I think I'm done, just needs some testing and making screenshots for the mod page SDVpufferparty

inland rain
#

idk if this is the right place to mention, but Farmer Portraits received an update that a) lets ppl place portrait and background files in the mod's folder, and b) lets you use per-farmer portraits / backgrounds (should work in split-screen as well)
https://www.nexusmods.com/stardewvalley/mods/11398

Nexus Mods :: Stardew Valley

Shows the player's portrait along with dialogue boxes. You can choose between using the farmer sprite or a custom CP portrait, and optionally use a custom background for the portrait as well.

whole raptor
valid folio
#

Hello, I have amnesia and can't remember where the link that explains how to add food buffs is, haha. Could someone please share it with me?

fathom hound
fathom hound
#

Under Edibility

valid folio
whole raptor
#

Oh... I completely forgot male NPCs have completely different wedding sprite indexes SDVpuffereyes

hoary lake
#

Could we have kittens and puppies? Same kinda thing as animals but pets instead?

#

You wake up to a baby pet event.

brittle pasture
#

it's trivial to add puppies/kittens as pets

#

if you meant making them able to grow up later, then no

gaunt orbit
#

It sounds be possible with c# though

blissful panther
#

Probably not too bad at all, yeah.

#

Oh no, now I'm imagining pet evolutions Pokemon style... 4 hearts + 60 days old + prismatic shard when petting...

brittle pasture
#

well if you're fine with farm animals instead of pets there's a framework for that SDVkrobusgiggle

#

no feeding them items to evolve them yet though

tawny ore
#

Big brain move would be to build the concept around Pals so that you're technically not borrowing concepts from Pokemon directly

#

"This is the Pal-inspired mod..."

whole raptor
#

Eh, you'll get sued either way /lh

rough lintel
#

call them friends 🤣

gaunt orbit
#

Call them yokai

rough lintel
#

yokai watch peers its head into chat

whole raptor
tawny ore
#

With Palworld, don't they evolve by putting a bunch of them into the meat grinder?

whole raptor
#

In one way, sure SDVpuffersquee

gaunt orbit
#

Not exactly

#

You can pulp pals of the same type to rank up a pal but it doesn't change them mechanically, just boosts stats

tawny ore
#

I guess evolution would've been a step too far for them

opaque field
whole raptor
#

Now I can't stop imagining Nintendo as a rabid dog breathing down your neck and just waiting for the smallest reason to eat you SDVpufferthinkblob

lucid iron
gaunt orbit
#

Figuring out evolution chains would require critical thinking though which is not pocketpair's strong suit

brittle pasture
#

meanwhile digimon subscribes to the model of "everything evolves into hot humans"

whole raptor
#

All I know about digimon evolutions is it's "Cute pet -> Hot human -> Big ass dragon" SDVpuffersquee

unreal spoke
#

SDVpufferlurk Do I spy a chance to complain about the dog > cat > barely clothed angel > pink fluffy dragon line?

unreal spoke
#

… or straight up machines. Looking at you, Gundramon.

whole raptor
#

Complain? But it makes perfect sense SDVkrobusgiggle /lh

median dune
#

hiiyyaaa if anyone even remembers me I just wanna give a heads up that I'm backk and will probably again have lots of questions SDVpufferparty SDVpufferheart

unreal spoke
#

I don’t, but questions are always a great way to learn!

unreal spoke
#

May I mention Gundramon again?

unreal spoke
#

Terriermon line, my beloved. The best part of Tamers.

#

… I admit the gun hands are random. Oh, just for the record, though, I had a Terriermon-colored version of one jacket in my Survive FS pack!

#

That I scrapped for the full release

lucid iron
#

What would people want out of a pet framework hm

#

That pet overhaul isn't already doing at least

rough lintel
unreal spoke
#

Allowing pets to grow up would be pretty cool. Change sprites and/or behavior depending on age and other factors?

tawny ore
#

Pet Companions

unreal spoke
lucid iron
rough lintel
#

i want to level up my dog to become Terathrax the Destroyer (Supersaiyan 2)

rough lintel
#

i just want. to level up my dogy. every time he beats an enemy he gets xp

#

just like me fr

unreal spoke
#

I think the one you mean isn’t actually called Pet Overhaul? You might be thinking of Pets Enhanced.

lucid iron
lucid iron
#

I think it'd just be a trigger action of some sort to swap the pet's breed and or species

tawny ore
#

Just had an idea, think Lemmings but Junimos.

rough lintel
#

dog doesnt need new animations. he can just shoot projectiles from his mouth 🫡

tawny ore
#

I know the hut kind of already does what I'm thinking

rough lintel
#

like how in pokemon, scratch doesnt actually make the pokemon move … theres just a graphic to show theyre being scratched

tawny ore
#

Or like the Earthbound/Mother battle system. Just sound/visual effects.

inner harbor
tiny zealot
proud idol
#

How do I get the Id of a cooking recipe? CraftingRecipe.cookingRecipes is indexing them by their name, but Game1.player.recipesCooked is indexing by Id.

#

Figured it out. Just need to instantiate a CraftingRecipe object from the recipe name, then look at CraftingRecipe.itemToProduce property

grim latch
#

I come to you with yet another question

#

Is there a guide anywhere for converting CP mods (specifically farm animal replacements) to Alternative Textures ?

#

...and how much of a PITA is it to do?

calm nebula
#

You shouldn't need to

#

AT supoortd the CP farm animal skins feature now

grim latch
calm nebula
#

Yup

grim latch
#

Huh

whole raptor
grim latch
#

So if for example I have a CP mod with 6 different options for sheep, all of those options will show in AT regardless of which one I pick as my default in te CP mod's config?

brittle pasture
#

you need to specifically add them as Skins to the animal data

grim latch
brittle pasture
#

yeah, same with building skins

#

AT explicitly has support for both

grim latch
#

I'll have to look at the AT documentation, I think support for CP mods is new since I last tinkered with it an age ago

calm nebula
#

You should add them as skins btw

brittle pasture
#

your mod wouldn't need AT for anything, but you can tell its users to use the AT tool to change the sheep's skins yourself

calm nebula
#

See elle's

grim latch
#

RIght - I remember Elle used to have seperate versions for AT

grim latch
#

Will read up on it 🙂

#

Oh skin randomisation is supported by default in 1.6

#

Huh

#

Didn't realise that. That's cool.

lucid iron
#

Yeah and AT supports picking skins

#

Not really losing much to switch

grim latch
#

That's really neat

lucid iron
#

There's also alt purchase type but you should only use that if you want the produce to be different

grim latch
#

Awesome 🙂

Now I just need to learn how to deactivate the vanilla default skins

lucid iron
#

E.g. white vs brown chicken

#

I don't think u can deactivate the default skins and you probably shouldn't

grim latch
#

Yeah makes sense, thanks for the pointers

lucid iron
#

What you can do is offer choice to replace the base variant

grim latch
#

right, gotcha

lucid iron
#

You can do this by editing the Texture field

grim latch
#

Yeah 🙂

Perfect, thanks

lucid iron
#

(or edit image ig but u already got those textures loaded)

sour sleet
#

I have made a front facing bench that I'm trying to make sittable. What do I put for the draw tiles if I haven't got anything I want in front of the player?

faint ingot
#

I have a 'firefly' animation working the way I want it in Tiled, but in the game it doesn't look correct. When I created the tileset I set the tile width/height as 48 as I want a single animation that stretches over a 9x9 tile area in the map. Does that just not work for the game, or is there a way to correct/adjust for it?

lucid iron
#

Game expects 16x16 tiles always

faint ingot
#

dang that will make the animation harder to manage if it's possible at all

lucid iron
#

Usually a bigger animation like that is just several tiles animated in sync, e.g. waterfalls

tender bloom
#

I’m pretty sure you’ll have to split up the animation yeah

faint ingot
#

OK thanks

lucid iron
#

Also mmap has the power to spawn real firefly Critters

tender bloom
#

It should be possible to do it with multiple tiles in synch

#

Just more annoying

lucid iron
#

You can use that if u don't really care where they are going

faint ingot
lucid iron
#

Yeah they r same as the fireflies in the summer

unique sigil
faint ingot
#

OK I'll play with the mmap fireflies thanks

lucid iron
#

But they also move like fireflies so u can't really confine them to 1 9x9 area

#

They go where they want

sour sleet
faint ingot
unique sigil
#

you only need them for back facing seats pretty much

sour sleet
#

Ahh no, I was on the Modding:Maps

unique sigil
#

i recommend taking references from that tutorial instead for chairtiles. more comprehensive imo

valid folio
#

I have this error; my files aren’t supposed to be in that location, but I can see them there... I don’t know why they aren’t being recognized.

[Content Patcher] Error loading patch '(CP) Nando's Artisan Goods > Mate': file 'assets\Nando_Recipes\Yerba_Recipes\Mate\objects.json' doesn't exist..
[Content Patcher] Error loading patch '(CP) Nando's Artisan Goods > Mate Shops': file 'assets\Nando_Recipes\Yerba_Recipes\Mate\Shops.json' doesn't exist..

sour sleet
unique sigil
#

if you need a finished example for chairtile code i've made, there should be one in Central Station's CP component content.json SDVpufferthumbsup

#

i used an alternate draw tilesheet there

urban patrol
ocean sailBOT
#

JSON is a standard format for machine-readable text files that's used by Stardew Valley mods.

If you need help with a JSON file, you can upload it to smapi.io/json to see automatic validation and share the link here.

When making mods, it's recommended to edit your files in a text editor with JSON support, such as VS Code, Notepad++, or Sublime Text. These programs will check for syntax errors.

valid folio
sour sleet
urban patrol
valid folio
#

It´s very confused

urban patrol
#

yeah i’m stumped to be honest. your includes and paths look correct, so i don’t know why it wouldn’t recognize them

valid folio
#

I guess I’ll have to upload it without that content, at least for now.

sour sleet
#

This is my chair tile data, does it look ok? "LBFurniture/3/4": "1/1/down/bench/-1/-1/false",

#

It still won't let me sit on the bench I've made. The sittable tile is on 3,4 of LBFurniture

#

My bench is the exact same size as the front facing pelican town bench

faint ingot
#

Am I correct that you can't use content patcher to edit the properties of multiple tiles at once?

rough lintel
#

why wouldnt you be able to

faint ingot
#

like I have to have a separate editmap section for each tile or no?

rough lintel
#

i think

#

idk what ur doing tho

lucid iron
#

You specify each tile at once yep

sour sleet
#

wait. Can you only edit chair tiles for furniture loaded into Maps?

faint ingot
tender bloom
#

Benches have to have type bench and there's some math behind where it sits

#

Couches have to have type couch, etc

ornate locust
#

Except sometimes couches use "highback_chair"

#

namely when facing up

sour sleet
valid folio
ornate locust
#

oh wait I may have misread, the thing I said is for tileset furniture, not item furniture. I read that the other way around

tender bloom
#

Like you should also be adding specific furniture items with a type

tender bloom
#

To Data/furniture or whatever

lucid iron
#

Here's more examples

tender bloom
#

Are you trying to make furniture embedded in a map or are you trying to make furniture items you can hold in inventory, just to be super clear?

#

The sittability of the first type is defined by ChairTiles (I'm not super familiar with them), the sittability of the second type is auto-calculated by the game for chairs, benches, couches, and generally sittable furniture types in the vanilla game.

lucid iron
#

Sittability is a great word

visual dirge
#

WHY is max friendship (1 + maxHearts) * 250 - 1 thats so weird

tender bloom
#

adding 1 point to that would make it spill over to the next heart level

visual dirge
#

yes but why isnt it just the max heart level

tender bloom
#

that makes it exactly 1 point shy of level 11 or 15 or 9, depending

sturdy wyvern
#

is it possible to make a special item using content patcher?

visual dirge
#

instead of 1 point less than the next level

lucid iron
#

Oh cus you can go up to 10.996 heart with a marriage candidate

tender bloom
#

well when you date someone you can get super close to 9 without dating yet, for example

lucid iron
#

And then get married

visual dirge
#

ugh this is weird

tender bloom
#

or same deal w what Chu said

#

the idea is that your effort after 10H should count towards progress to 14H later

whole raptor
#

Also there's friendship decay I guess

visual dirge
#

making me do a tiny bit of math to tell how many overflow hearts the player has.... grr..

sour sleet
lucid iron
ornate locust
#

Yeah then that's not the one that uses chair tiles

tender bloom
#

Okay, then for sittability I would be looking at the furniture data declaration (should be an EditData on Data/furniture iirc)

#

There's only certain types out of the 17 or so furniture types that are sittable

sturdy wyvern
#

plan to make a mod where to go to a location your require the special item, kinda something like the skull key door

tender bloom
#

DGA used to let you customize the sitting tiles (rip DGA)

#

I'm not sure if the current frameworks do or not

calm nebula
#

I think spacecore or calcifer do

lucid iron
#

Yeah make a power

uncut viper
#

Special Items & Powers as of 1.6

tender bloom
#

I would look at SpaceCore, Calcifer, and Furniture Framework yeah — assuming the vanilla sit tiles aren't satisfactory, which they totally might be

uncut viper
#

cant make an actual SpecialItem through any means other than C# constructing one directly

tender bloom
#

The vanilla sit tiles should work 100% fine for stuff that's very similar to the existing vanilla sizes

sour sleet
lucid iron
#

Is this a chair or an arm chair

tender bloom
#

That really shouldn't be the issue, so I'm not sure what's wrong either

#

Do you want to post the jsons with the furniture info?

sour sleet
#

It's an outdoor bench and this is the info: "LBFurniture/3/4": "1/1/down/bench/-1/-1/false",

tender bloom
#

what makes it outdoor? or is that just a descriptor?

#

also why is there slashes in the name?

#

I guess there's nothing stopping that but it seems weird

lucid iron
#

There's no tilesheet specified

tender bloom
#

also a good point

sour sleet
#

It's the same size as the bench in pelican town

lucid iron
#

Go copy a vanilla bench furniture perhaps

tender bloom
#

by default it would pull from default furniture tilesheet

sour sleet
#

And it's just a descriptor

lucid iron
#

JunimoBench

#

Or something like that

sour sleet
#

The tilesheet it's pulling from is LBFurniture

lucid iron
#

No it's not

sour sleet
#

Isn't that what the key is?

tender bloom
#

"{{ModId}}_Bonsai1": "{{ModId}}_Bonsai1/decor/1 2/1 1/1/1000/-1/[LocalizedText Strings\\Furniture:{{ModId}}_Bonsai1.Name]/0/Mods\\{{ModId}}\\bonsai_trees" this is what a furniture data looks like in my mod

lucid iron
#

No the key is the item id

tender bloom
#

No, the key is the furntiure name!!

sour sleet
#

This is my furniture data: "8BitAlien.Lilybrook_Bench": "Bench/other/2 2/2 1/1/1000/2/{{i18n:Lilybrook.Bench.Name}}/33/Mods\\8BitAlien.Lilybrook\\LBFurniture",

tender bloom
#

"FurnitureUniqueID": "FurnitureUniqueID/type/bounding box/collision box/rotations/price/placement location/translation/locations in spritesheet/spritesheet name" at a glance

#

You named your Bench Bench and it has type other

#

The first one is probbaly fine but bad practice

#

The second is the culprit

sour sleet
#

I've already added it as furniture, I'm now trying to get it to be sittable

tender bloom
#

the 2nd field there, where it says other needs to be a sittable type of furniture

sour sleet
#

Editing the chair tiles

tender bloom
#

try making it bench

sour sleet
#

Ohhh

#

Ok will try that

tender bloom
#

Chair tiles won't do anything here

sour sleet
#

Ok that makes it sittable!! So now there's a new problem lol. Is this related to draw tiles?

tender bloom
#

Yeah you have too much on Front in that orientation

#

the bit that is drawing on front is from the Front sheet

#

in the forward orientation you don't want any Front stuff

sour sleet
#

But i still want the player to be able to walk behind it though - is that possible?

#

And after seeing the sitting - I need to redraw my bench to be bigger lol

tiny zealot
#

so having that upper part on Front is a problem when you try to sit on the bench

lucid iron
#

I don't think you need any Front for the player to walk behind furniture

tiny zealot
#

the way the game gets around this with the sittable bench in town is by not putting it on Front, and placing shrubs to block access to the back so you can't walk behind the bench and ruin the illusion

#

in case you ever wondered why there are bushes there in front of the saloon, that's why

lucid iron
#

It mainly comes up when it's rotated to have the back face player

#

Map tile chairs is whole other system not relevant fo this discussion

sour sleet
#

Ahh ok that's helpful to know. So basically, it's not possible aaaa

tiny zealot
#

anyway, gotta go byebye

sour sleet
#

Byeee

lucid iron
#

No it is possible and game literally does it

#

Check any vanilla bench/couch furniture

ornate locust
#

Ichortower is talking about map tiles

#

when you talk about "furniture", it can mean either, which is confusing

sour sleet
#

Ahh ok. If I remove the front part though, it will have weird collision on the top that will make it look like the player is standing on top of it

lucid iron
#

Have you tried?

sour sleet
#

Nope, but it was weird with my fence I was making yesterday. Will try it now, seeing as it's a bench, it might work differently?

#

Yay, it works!

#

I had a type set as other yesterday and it wouldn't let me walk behind it. Guess setting the type to bench fixes it

lucid iron
#

Your fence's issue is the bounding box

#

It's a whole other Problem

#

Pls don't conflate these things

sour sleet
#

Yep it was. I'm new to adding furniture to the game and only ever made AT furniture packs before. At least I'm trying to learn lol

lucid iron
#

And that's y i am emphasize on the actual issue so u don't end up with misconception